12007-10-14  Eric Seidel  <eric@webkit.org>
2
3        Reviewed by aroben.
4
5        Remove senseless malloc from paintOutline
6        No tests needed, no functional change.
7
8        * rendering/RenderFlow.cpp:
9        (WebCore::RenderFlow::paintOutline): remove unneeded malloc
10
112007-10-13  Eric Seidel  <eric@webkit.org>
12
13        Reviewed by Mark Rowe.
14
15        Fix SVGSVGElement::currentView() to not leak by using an OwnPtr.
16        This fix is incompatible with changes eventually needed for supporting
17        SVGSVGElement.currentView in the bindings (that needs a ref'd object)
18        There are also several parser crashers in SVGViewSpec, but those will be fixed
19        in my next patch.
20        
21        Leak fix only, no additional tests needed.
22
23        * ksvg2/svg/SVGSVGElement.cpp:
24        (WebCore::SVGSVGElement::currentView): call .get() and .set()
25        * ksvg2/svg/SVGSVGElement.h: use OwnPtr
26
272007-10-13  Oliver Hunt  <oliver@apple.com>
28
29        Reviewed by Maciej.
30
31        Fixing a few testcases by enabling SVG_EXPERIMENTAL on windows, and making the
32        required fixes and corrections.
33
34        * WebCore.vcproj/WebCore.vcproj:
35        * WebCore.vcproj/build-generated-files.sh:
36        * bindings/scripts/CodeGeneratorJS.pm:
37        * ksvg2/scripts/make_names.pl:
38        * ksvg2/svg/SVGColor.cpp:
39        (WebCore::SVGColor::colorFromRGBColorString):
40        * page/DOMWindow.idl:
41        * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
42        * platform/win/WebCoreTextRenderer.cpp:
43
442007-10-12  Darin Adler  <darin@apple.com>
45
46        Reviewed by Sam.
47
48        - more float/int conversion (to try to get the old builbot up)
49
50        * rendering/RenderSVGRoot.cpp:
51        (WebCore::RenderSVGRoot::layout): Cast to int.
52        (WebCore::RenderSVGRoot::applyContentTransforms): Ditto.
53        (WebCore::RenderSVGRoot::nodeAtPoint): Ditto.
54
552007-10-12  Justin Garcia  <justin.garcia@apple.com>
56
57        Reviewed by Harrison.
58        
59        <rdar://problem/5483370> GoogleDocs: Deleting cell text in a table row also removes any empty rows beneath the row being edited
60        <rdar://problem/5482524> GoogleDocs: A hang occurs when applying list to selected table
61        
62        * editing/DeleteSelectionCommand.cpp:
63        (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
64        * editing/InsertListCommand.cpp:
65        (WebCore::InsertListCommand::modifyRange):
66        (WebCore::InsertListCommand::doApply):
67
682007-10-12  Darin Adler  <darin@apple.com>
69
70        - fix another float/int conversion
71
72        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
73        (WebCore::SVGResourceMasker::applyMask): Explicitly cast to int.
74
752007-10-12  Darin Adler  <darin@apple.com>
76
77        Reviewed by Oliver Hunt.
78
79        - fix float/int conversions that cause warnings on older versions
80          of gcc (like the version currently being used on the PowerPC
81          buildbot slave)
82
83        * rendering/RenderPath.cpp:
84        (WebCore::RenderPath::paint): Explicitly cast to int.
85        (WebCore::RenderPath::addFocusRingRects): Use enclosingIntRect
86        to convert a FloatRect to an IntRect.
87        * rendering/SVGRootInlineBox.cpp:
88        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
89        Use 0 for the initial value of an int, rather than 0.0f.
90        (WebCore::svgTextStyleForInlineTextBox): Explicitly cast to int.
91        (WebCore::applyTextAnchorToTextChunk): Ditto.
92
932007-10-12  Oliver Hunt  <oliver@apple.com>
94
95        Reviewed by Mark.
96
97        Cast zoom factor to int as the original patch did.  This is necessary to appease some versions of gcc.
98
99        * ksvg2/svg/SVGSVGElement.cpp:
100        (WebCore::SVGSVGElement::setCurrentScale):
101
1022007-10-12  Eric Seidel  <eric@webkit.org>
103
104        Reviewed by Mark Rowe.
105
106        Fix leaks in SVG code from feature-branch.
107
108        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
109        (WebCore::SVGFEDiffuseLightingElement::filterEffect):
110        * ksvg2/svg/SVGFEFloodElement.cpp:
111        (WebCore::SVGFEFloodElement::filterEffect):
112        * ksvg2/svg/SVGFESpecularLightingElement.cpp:
113        (WebCore::SVGFESpecularLightingElement::filterEffect):
114        * ksvg2/svg/SVGGradientElement.cpp:
115        (WebCore::SVGGradientElement::buildStops):
116        * ksvg2/svg/SVGStyledElement.cpp:
117        (WebCore::SVGStyledElement::resolveStyle): always refs style
118        * platform/graphics/cg/ImageBufferCG.cpp:
119        (WebCore::ImageBuffer::create): fastFree buffer if CG Context creation fails
120
1212007-10-12  Mark Rowe  <mrowe@apple.com>
122
123        Windows, Gtk and Qt build fixes.  Add new files to projects.
124
125        * WebCore.pro:
126        * WebCore.vcproj/WebCore.vcproj:
127
128=== Start merge of feature-branch 2007-10-12 ===
129
1302007-10-11  Oliver Hunt  <oliver@apple.com>
131
132        Reviewed by Sam.
133
134        Bug 15469: feature branch has 100's of implicit double -> float conversions
135
136        Re-enable -Wshorten-64-to-32, and make required code changes to make us build sanely again.
137        
138        * WebCore.xcodeproj/project.pbxproj:
139        * bindings/js/JSSVGMatrixCustom.cpp:
140        (WebCore::JSSVGMatrix::translate):
141        (WebCore::JSSVGMatrix::scale):
142        (WebCore::JSSVGMatrix::scaleNonUniform):
143        (WebCore::JSSVGMatrix::rotate):
144        (WebCore::JSSVGMatrix::skewX):
145        (WebCore::JSSVGMatrix::skewY):
146        * bindings/scripts/CodeGeneratorJS.pm:
147        * bindings/scripts/CodeGeneratorObjC.pm:
148        * ksvg2/css/SVGRenderStyle.cpp:
149        (WebCore::SVGRenderStyle::cssPrimitiveToLength):
150        * ksvg2/css/SVGRenderStyle.h:
151        * ksvg2/svg/SVGAnimateMotionElement.cpp:
152        (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
153        (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
154        (WebCore::parsePoint):
155        (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
156        * ksvg2/svg/SVGAnimationElement.cpp:
157        (WebCore::SVGAnimationElement::parseKeyNumbers):
158        (WebCore::parseKeySplines):
159        * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
160        (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
161        (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
162        * ksvg2/svg/SVGFECompositeElement.cpp:
163        (WebCore::SVGFECompositeElement::SVGFECompositeElement):
164        (WebCore::SVGFECompositeElement::parseMappedAttribute):
165        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
166        (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
167        (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
168        * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
169        (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
170        (WebCore::SVGFEDisplacementMapElement::parseMappedAttribute):
171        * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
172        (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
173        (WebCore::SVGFEGaussianBlurElement::parseMappedAttribute):
174        * ksvg2/svg/SVGFELightElement.cpp:
175        (WebCore::SVGFELightElement::SVGFELightElement):
176        (WebCore::SVGFELightElement::parseMappedAttribute):
177        * ksvg2/svg/SVGFEOffsetElement.cpp:
178        (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
179        (WebCore::SVGFEOffsetElement::parseMappedAttribute):
180        * ksvg2/svg/SVGFESpecularLightingElement.cpp:
181        (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
182        (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
183        * ksvg2/svg/SVGFETurbulenceElement.cpp:
184        (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
185        (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
186        * ksvg2/svg/SVGFitToViewBox.cpp:
187        (WebCore::SVGFitToViewBox::parseMappedAttribute):
188        * ksvg2/svg/SVGFitToViewBox.h:
189        * ksvg2/svg/SVGLength.cpp:
190        (WebCore::SVGLength::setValueAsString):
191        (WebCore::SVGLength::PercentageOfViewport):
192        * ksvg2/svg/SVGNumber.idl:
193        * ksvg2/svg/SVGNumberList.cpp:
194        (WebCore::SVGNumberList::parse):
195        * ksvg2/svg/SVGNumberList.h:
196        * ksvg2/svg/SVGParserUtilities.cpp:
197        (WebCore::_parseNumber):
198        (WebCore::parseNumber):
199        (WebCore::pointsListFromSVGData):
200        (WebCore::PathBuilder::svgMoveTo):
201        (WebCore::PathBuilder::svgLineTo):
202        (WebCore::PathBuilder::svgCurveToCubic):
203        (WebCore::SVGPathSegListBuilder::svgMoveTo):
204        (WebCore::SVGPathSegListBuilder::svgLineTo):
205        (WebCore::SVGPathSegListBuilder::svgLineToHorizontal):
206        (WebCore::SVGPathSegListBuilder::svgLineToVertical):
207        (WebCore::SVGPathSegListBuilder::svgCurveToCubic):
208        (WebCore::SVGPathSegListBuilder::svgCurveToCubicSmooth):
209        (WebCore::SVGPathSegListBuilder::svgCurveToQuadratic):
210        (WebCore::SVGPathSegListBuilder::svgCurveToQuadraticSmooth):
211        (WebCore::SVGPathSegListBuilder::svgArcTo):
212        * ksvg2/svg/SVGParserUtilities.h:
213        * ksvg2/svg/SVGPathElement.cpp:
214        (WebCore::SVGPathElement::SVGPathElement):
215        * ksvg2/svg/SVGSVGElement.cpp:
216        (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
217        (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
218        * ksvg2/svg/SVGSVGElement.h:
219        * ksvg2/svg/SVGTransformDistance.cpp:
220        (WebCore::SVGTransformDistance::addToSVGTransform):
221        (WebCore::SVGTransformDistance::distance):
222        * ksvg2/svg/SVGTransformDistance.h:
223        * ksvg2/svg/SVGTransformable.cpp:
224        (WebCore::SVGTransformable::parseTransformValue):
225        * ksvg2/svg/SVGViewSpec.cpp:
226        (WebCore::SVGViewSpec::parseViewSpec):
227        * platform/graphics/svg/SVGResourceFilter.cpp:
228        (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
229        * platform/graphics/svg/cg/CgSupport.cpp:
230        (WebCore::applyStrokeStyleToContext):
231        * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
232        (WebCore::SVGPaintServerPattern::setup):
233        * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
234        (WebCore::SVGResourceFilter::applyFilter):
235        * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
236        (WebCore::SVGComponentTransferFunction::SVGComponentTransferFunction):
237        * platform/graphics/svg/filters/SVGFEComposite.cpp:
238        (WebCore::SVGFEComposite::SVGFEComposite):
239        * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
240        (WebCore::SVGFEConvolveMatrix::SVGFEConvolveMatrix):
241        * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
242        (WebCore::SVGFEDiffuseLighting::SVGFEDiffuseLighting):
243        * platform/graphics/svg/filters/SVGFEFlood.cpp:
244        (WebCore::SVGFEFlood::SVGFEFlood):
245        * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
246        (WebCore::SVGFEGaussianBlur::SVGFEGaussianBlur):
247        * platform/graphics/svg/filters/SVGFEMorphology.cpp:
248        (WebCore::SVGFEMorphology::SVGFEMorphology):
249        * platform/graphics/svg/filters/SVGFEOffset.cpp:
250        (WebCore::SVGFEOffset::SVGFEOffset):
251        * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
252        (WebCore::SVGFESpecularLighting::SVGFESpecularLighting):
253        * platform/graphics/svg/filters/SVGFETurbulence.cpp:
254        (WebCore::SVGFETurbulence::SVGFETurbulence):
255        * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
256        (WebCore::SVGFEColorMatrix::getCIFilter):
257        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
258        (WebCore::getVectorForChannel):
259        (WebCore::getLightVectors):
260        * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
261        (WebCore::SVGFEImage::getCIFilter):
262        * rendering/RenderPath.cpp:
263        (WebCore::RenderPath::drawMarkersIfNeeded):
264        * rendering/RenderSVGImage.cpp:
265        (WebCore::RenderSVGImage::paint):
266        * rendering/RenderSVGInlineText.cpp:
267        (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
268        * rendering/RenderSVGRoot.cpp:
269        (WebCore::RenderSVGRoot::applyContentTransforms):
270        (WebCore::RenderSVGRoot::calcViewport):
271        (WebCore::RenderSVGRoot::nodeAtPoint):
272        * rendering/RenderSVGText.cpp:
273        (WebCore::RenderSVGText::absoluteRects):
274        (WebCore::RenderSVGText::relativeBBox):
275        * rendering/RenderSVGTextPath.cpp:
276        * rendering/SVGCharacterLayoutInfo.cpp:
277        (WebCore::calculateBaselineShift):
278        (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
279        (WebCore::SVGCharacterLayoutInfo::processedChunk):
280        (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
281        (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
282        * rendering/SVGCharacterLayoutInfo.h:
283        * rendering/SVGInlineTextBox.cpp:
284        (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
285        (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
286        (WebCore::pathForDecoration):
287        * rendering/SVGRenderTreeAsText.cpp:
288        (WebCore::writeStyle):
289        * rendering/SVGRootInlineBox.cpp:
290        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
291        (WebCore::applyTextAnchorToTextChunk):
292        (WebCore::SVGRootInlineBox::buildLayoutInformation):
293        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
294
2952007-10-11  Andrew Wellington  <proton@wiretapped.net>
296
297        Reviewed by Eric Seidel.
298
299        Fix for http://bugs.webkit.org/show_bug.cgi?id=15076
300        "deg2rad has multiple definitions"
301        
302        Use deg2rad, rad2deg, deg2grad, grad2deg, rad2grad, grad2rad
303        from wtf where appropriate.
304        
305        No test cases as this doesn't change behaviour.
306        
307        Change based on original patch by Rob Buis.
308
309        * ksvg2/svg/SVGAngle.cpp:
310        (WebCore::SVGAngle::calculate):
311        (WebCore::SVGAngle::convertToSpecifiedUnits):
312        (WebCore::SVGAngle::todeg):
313        (WebCore::SVGAngle::torad):
314        * platform/graphics/AffineTransform.cpp:
315        (WebCore::AffineTransform::rotateFromVector):
316        (WebCore::AffineTransform::skewX):
317        (WebCore::AffineTransform::skewY):
318        * platform/graphics/cg/AffineTransformCG.cpp:
319        (WebCore::AffineTransform::rotate):
320        * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
321        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
322        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
323        * rendering/RenderPath.cpp:
324        (WebCore::drawMarkerWithData):
325
3262007-10-11  Nikolas Zimmermann  <zimmermann@kde.org>
327
328        Reviewed by Oliver.
329
330        Fixes: http://bugs.webkit.org/show_bug.cgi?id=6421 (<text> textLength attribute is not respected)
331        Fixes: http://bugs.webkit.org/show_bug.cgi?id=6422 (<text> lengthAdjust attribute is not respected)
332
333        Implement textLength and full lengthAdjust (both 'spacing' & 'spacingAndGlyphs' mode)
334        for <text> & <tspan> & friends. <textPath> is still todo, as it's special.
335
336        Also fix usage of cummulatedGlyphWidth/Height in SVGInlineTextBox, calculateGlyphBoundaries was
337        supposed to be used in the distance calculations, to take per character transformations into account (ie. rotation).
338
339        Fixes: svg/W3C-SVG-1.1/text-text-01-b.svg (complelty fixed the single W3C textLength testcase)
340        Partly fixed: svg/batik/text/textOnPathSpaces.svg (kerning support missing)
341        Partly fixed: svg/batik/text/textLayout.svg (word-letter spacing & textLength is todo)
342
343        * ksvg2/svg/SVGTextContentElement.cpp:
344        (WebCore::SVGTextContentElement::SVGTextContentElement):
345        (WebCore::SVGTextContentElement::parseMappedAttribute):
346        * rendering/SVGCharacterLayoutInfo.cpp:
347        (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
348        * rendering/SVGCharacterLayoutInfo.h:
349        (WebCore::SVGTextChunk::SVGTextChunk):
350        (WebCore::SVGTextChunkWalker::operator()):
351        * rendering/SVGInlineTextBox.cpp:
352        (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
353        (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
354        (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
355        * rendering/SVGRootInlineBox.cpp:
356        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
357        (WebCore::cummulatedWidthOrHeightOfTextChunk):
358        (WebCore::cummulatedWidthOfTextChunk):
359        (WebCore::cummulatedHeightOfTextChunk):
360        (WebCore::applyTextAnchorToTextChunk):
361        (WebCore::applyTextLengthCorrectionToTextChunk):
362        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
363        (WebCore::SVGRootInlineBox::buildTextChunks):
364        (WebCore::SVGRootInlineBox::layoutTextChunks):
365        (WebCore::SVGRootInlineBox::walkTextChunks):
366
3672007-10-11  Oliver Hunt  <oliver@apple.com>
368
369        Reviewed by Niko.
370
371        Fix for Bug 15468: Parsing of numbers and lists is too lenient in SVG
372
373        Correct parsing of numbers, number lists, and length lists in SVG.
374
375        * ksvg2/svg/SVGLength.cpp:
376        (WebCore::SVGLength::setValueAsString):
377        * ksvg2/svg/SVGLength.h:
378        * ksvg2/svg/SVGLengthList.cpp:
379        (WebCore::SVGLengthList::parse):
380        * ksvg2/svg/SVGParserUtilities.cpp:
381        (WebCore::parseNumber):
382
3832007-10-11  Allan Sandfeld Jensen  <sandfeld@kde.org>
384 
385         Reviewed by Maciej and Eric.
386 
387         Implement CSS selector combinators nondeterministic matching. 
388         Fixes http://bugs.webkit.org/show_bug.cgi?id=3428
389 
390         * css/CSSStyleSelector.cpp:
391         (WebCore::CSSStyleSelector::matchRulesForList):
392         (WebCore::CSSStyleSelector::checkSelector): Split the function and make the second part recursive
393         (WebCore::CSSStyleSelector::checkOneSelector): Handle pseodo-elements rules and hoveractive quirks 
394         here instead of in checkSelector.
395         * css/CSSStyleSelector.h:
396 
3972007-10-10  Eric Seidel  <eric@webkit.org>
398
399        Reviewed by Nikolas Zimmermann.
400        
401        Fix the SVG dom so that rect.x.baseVal = rect.x.baseVal like it should.
402        http://bugs.webkit.org/show_bug.cgi?id=14150
403
404        Test: svg/dom/animated-tearoff-equlity.xhtml
405
406        * ksvg2/svg/SVGAnimatedTemplate.h:
407        (WebCore::SVGAnimatedTypeWrapperKey::SVGAnimatedTypeWrapperKey):
408        (WebCore::SVGAnimatedTypeWrapperKey::operator==):
409        (WebCore::SVGAnimatedTypeWrapperKeyHash::hash):
410        (WebCore::SVGAnimatedTypeWrapperKeyHash::equal):
411        (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::deletedValue):
412        (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::emptyValue):
413        (WebCore::SVGAnimatedTemplate::~SVGAnimatedTemplate):
414        (WebCore::SVGAnimatedTemplate::wrapperCache):
415        (WebCore::SVGAnimatedTemplate::forgetWrapper):
416        (WebCore::lookupOrCreateWrapper):
417        * ksvg2/svg/SVGElement.h:
418
4192007-10-10  Oliver Hunt  <oliver@apple.com>
420
421        Reviewed by Maciej.
422
423        Leopard build fix -- SVGDocument should not trty to make read/write properties read-only
424
425        Remove those API definitions SVGDocument now inherits from Document
426
427        * ksvg2/svg/SVGDocument.idl:
428
4292007-10-10  Eric Seidel  <eric@webkit.org>
430
431        Reviewed by Oliver.
432
433        Make renderers pull localTransform instead of depending on DOM elements to push
434        This allows for cleaner invalidation code, and makes writing animation easier.
435        Also fixed a tiny bug in SVGRenderImage focus ring calculations while there
436        
437        Updated test results for svg/custom/focus-ring.svg
438
439        * WebCore.xcodeproj/project.pbxproj:
440        * ksvg2/svg/SVGAElement.cpp:
441        (WebCore::SVGAElement::createRenderer):
442        * ksvg2/svg/SVGAnimateMotionElement.cpp:
443        (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
444        * ksvg2/svg/SVGAnimateTransformElement.cpp:
445        (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
446        * ksvg2/svg/SVGClipPathElement.cpp:
447        (WebCore::SVGClipPathElement::canvasResource):
448        * ksvg2/svg/SVGElement.h:
449        * ksvg2/svg/SVGGElement.cpp:
450        (WebCore::SVGGElement::createRenderer):
451        * ksvg2/svg/SVGImageElement.cpp:
452        * ksvg2/svg/SVGLocatable.cpp:
453        (WebCore::SVGLocatable::getCTM):
454        (WebCore::SVGLocatable::getScreenCTM):
455        * ksvg2/svg/SVGMarkerElement.cpp:
456        (WebCore::SVGMarkerElement::canvasResource):
457        (WebCore::SVGMarkerElement::notifyAttributeChange):
458        * ksvg2/svg/SVGSVGElement.h:
459        * ksvg2/svg/SVGStyledElement.cpp:
460        (WebCore::SVGStyledElement::rendererIsNeeded):
461        (WebCore::SVGStyledElement::notifyResourceParentIfExistant):
462        * ksvg2/svg/SVGStyledElement.h:
463        (WebCore::SVGStyledElement::style):
464        * ksvg2/svg/SVGStyledTransformableElement.cpp:
465        (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
466        (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
467        (WebCore::SVGStyledTransformableElement::notifyAttributeChange):
468        (WebCore::SVGStyledTransformableElement::createRenderer):
469        * ksvg2/svg/SVGStyledTransformableElement.h:
470        (WebCore::SVGStyledTransformableElement::toPathData):
471        * ksvg2/svg/SVGSwitchElement.cpp:
472        (WebCore::SVGSwitchElement::createRenderer):
473        * ksvg2/svg/SVGTRefElement.cpp:
474        (WebCore::SVGTRefElement::updateReferencedText):
475        * ksvg2/svg/SVGTextElement.cpp:
476        (WebCore::SVGTextElement::parseMappedAttribute):
477        (WebCore::SVGTextElement::animatedLocalTransform):
478        * ksvg2/svg/SVGTextElement.h:
479        * ksvg2/svg/SVGTextPathElement.cpp:
480        * ksvg2/svg/SVGTextPathElement.h:
481        * ksvg2/svg/SVGTransformable.cpp:
482        (WebCore::SVGTransformable::getCTM):
483        (WebCore::SVGTransformable::getScreenCTM):
484        * ksvg2/svg/SVGTransformable.h:
485        * ksvg2/svg/SVGUseElement.cpp:
486        (WebCore::SVGUseElement::createRenderer):
487        (WebCore::SVGUseElement::attachShadowTree):
488        * platform/graphics/AffineTransform.h:
489        (WebCore::AffineTransform::operator!=):
490        * platform/graphics/svg/SVGResourceMarker.cpp:
491        (WebCore::SVGResourceMarker::setMarker):
492        * platform/graphics/svg/SVGResourceMarker.h:
493        * rendering/RenderForeignObject.cpp:
494        (WebCore::RenderForeignObject::calculateLocalTransform):
495        (WebCore::RenderForeignObject::layout):
496        * rendering/RenderForeignObject.h:
497        (WebCore::RenderForeignObject::localTransform):
498        * rendering/RenderObject.cpp:
499        * rendering/RenderObject.h:
500        * rendering/RenderPath.cpp:
501        (WebCore::RenderPath::RenderPath):
502        (WebCore::RenderPath::localTransform):
503        (WebCore::RenderPath::calculateLocalTransform):
504        (WebCore::RenderPath::layout):
505        * rendering/RenderPath.h:
506        * rendering/RenderSVGContainer.cpp:
507        (WebCore::RenderSVGContainer::localTransform):
508        (WebCore::RenderSVGContainer::calculateLocalTransform):
509        (WebCore::RenderSVGContainer::layout):
510        * rendering/RenderSVGContainer.h:
511        * rendering/RenderSVGImage.h:
512        (WebCore::RenderSVGImage::localTransform):
513        * rendering/RenderSVGText.cpp:
514        (WebCore::RenderSVGText::calculateLocalTransform):
515        (WebCore::RenderSVGText::layout):
516        * rendering/RenderSVGText.h:
517        (WebCore::RenderSVGText::isSVGText):
518        (WebCore::RenderSVGText::localTransform):
519        * rendering/RenderSVGTextPath.cpp:
520        (WebCore::RenderSVGTextPath::layoutPath):
521        (WebCore::RenderSVGTextPath::startOffset):
522        (WebCore::RenderSVGTextPath::exactAlignment):
523        (WebCore::RenderSVGTextPath::stretchMethod):
524        * rendering/RenderSVGTextPath.h:
525        * rendering/RenderSVGTransformableContainer.cpp: Added.
526        (WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer):
527        (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
528        * rendering/RenderSVGTransformableContainer.h: Added.
529        * rendering/RenderSVGViewportContainer.h:
530
5312007-10-10  Oliver Hunt  <oliver@apple.com>
532
533        Reviewed by Eric.
534
535        Bug 15451: SVGStyledElement must unregister itself from Resources on detach
536        
537        Use a global hashtable to maintain the relationship between the
538        various SVG resources and their clients, across dom updates, etc.
539
540        * ksvg2/svg/SVGStyledElement.cpp:
541        (WebCore::SVGStyledElement::detach):
542        * ksvg2/svg/SVGStyledElement.h:
543        * platform/graphics/svg/SVGPaintServer.h:
544        * platform/graphics/svg/SVGResource.cpp:
545        (WebCore::ResourceSet::ResourceSet):
546        (WebCore::clientMap):
547        (WebCore::SVGResource::~SVGResource):
548        (WebCore::SVGResource::invalidate):
549        (WebCore::SVGResource::removeClient):
550        (WebCore::SVGResource::addClient):
551        * platform/graphics/svg/SVGResource.h:
552        (WebCore::):
553        (WebCore::SVGResource::isPaintServer):
554        (WebCore::SVGResource::isFilter):
555        (WebCore::SVGResource::isClipper):
556        (WebCore::SVGResource::isMarker):
557        (WebCore::SVGResource::isMasker):
558        * platform/graphics/svg/SVGResourceClipper.h:
559        (WebCore::SVGResourceClipper::resourceType):
560        * platform/graphics/svg/SVGResourceFilter.h:
561        * platform/graphics/svg/SVGResourceMarker.h:
562        * platform/graphics/svg/SVGResourceMasker.h:
563
5642007-10-10  Mark Rowe  <mrowe@apple.com>
565
566        Windows build fix after r26109.
567
568        * WebCore.vcproj/WebCore.vcproj:
569
5702007-10-10  Oliver Hunt  <oliver@apple.com>
571
572        Reviewed by Eric.
573
574        Fix Bug 15433: Filters do not repaint when base resources change/update
575
576        SVGFEImage now actually responds to image updates, and triggers a repaint.
577
578        * platform/graphics/svg/SVGResource.h:
579        * platform/graphics/svg/filters/SVGFEImage.cpp:
580        (WebCore::SVGFEImage::setCachedImage):
581          Don't re-set the image lest we want to trigger infinite recursion.
582        (WebCore::SVGFEImage::imageChanged):
583          Image change means we need to tell our clients to repaint
584        * platform/graphics/svg/filters/SVGFEImage.h:
585        * rendering/SVGRenderSupport.cpp:
586        (WebCore::prepareToRenderSVGContent):
587          make sure that users of filters are registered.
588
5892007-10-09  Eric Seidel  <eric@webkit.org>
590
591        Reviewed by Alp.
592
593        Track changes in r26109 to fix the Gtk+ build.
594
595        * WebCore.pro:
596
5972007-10-09  Alexey Proskuryakov  <ap@webkit.org>
598
599        Reviewed by Anders.
600
601        http://bugs.webkit.org/show_bug.cgi?id=15436
602        Wrong node order for XPath reverse axes
603
604        Test: fast/xpath/reverse-axes.html
605
606        * xml/XPathStep.cpp:
607        (WebCore::XPath::Step::nodesInAxis): Do not prematurely sort reverse
608        axes. Generate preceding axis nodes in reversed document order.
609
6102007-10-09  Alexey Proskuryakov  <ap@webkit.org>
611
612        Reviewed by Mitz.
613
614        http://bugs.webkit.org/show_bug.cgi?id=15437
615        XPath substring-after function is broken
616
617        Test: fast/xpath/substring-after.html
618
619        * xml/XPathFunctions.cpp:
620        (WebCore::XPath::FunSubstringAfter::evaluate): Fix it for real this time, hopefully.
621
6222007-10-09  Rob Buis  <buis@kde.org>
623
624        Reviewed by Eric.
625
626        http://bugs.webkit.org/show_bug.cgi?id=15080
627        <use> element not refresh after adding objects by script in referrer
628
629        Update shadow tree when elements are added/removed from a tree
630        that is referenced by a <use>.
631
632        * ksvg2/svg/SVGStyledElement.cpp:
633        (WebCore::SVGStyledElement::childrenChanged):
634        * ksvg2/svg/SVGStyledElement.h:
635
6362007-10-09  Rob Buis  <buis@kde.org>
637
638        Reviewed by Maciej.
639
640        http://bugs.webkit.org/show_bug.cgi?id=15088
641        HTMLOptionElement.selected returns false when parent HTMLSelectElement is "display: none" until parent's .selectedIndex is accessed
642
643        Make sure the list items are up to date when there is no renderer.
644
645        * html/HTMLSelectElement.cpp:
646        (WebCore::HTMLSelectElement::recalcStyle):
647
6482007-10-08  Eric Seidel  <eric@webkit.org>
649
650        Reviewed by Oliver.
651
652        Build fix.  Fix circular build rule for CSS*.in files evident on clean build.
653
654        * DerivedSources.make:
655        * WebCore.xcodeproj/project.pbxproj:
656        * ksvg2/css/CSSPropertyNames.in: Removed.
657        * ksvg2/css/CSSValueKeywords.in: Removed.
658        * ksvg2/css/SVGCSSPropertyNames.in: Copied from ksvg2/css/CSSPropertyNames.in.
659        * ksvg2/css/SVGCSSValueKeywords.in: Copied from ksvg2/css/CSSValueKeywords.in.
660
6612007-10-08  Eric Seidel  <eric@webkit.org>
662
663        Reviewed by hyatt.
664
665        Implement getComputedStyle support for SVG CSS values
666        http://bugs.webkit.org/show_bug.cgi?id=15422
667        
668        This also unifies SVG and non-SVG CSS hash lookups. A unified hash
669        solves correctness problems as well as offers improved speed.
670        
671        Test: svg/css/getComputedStyle-basic.xhtml
672
673        * DerivedSources.make: unify SVG and non-SVG CSS hash files
674        * WebCore.xcodeproj/project.pbxproj: remove old SVG CSS hash files
675        * css/CSSComputedStyleDeclaration.cpp:
676        (WebCore::):
677        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): call getPropertyCSSValue
678        * css/CSSComputedStyleDeclaration.h: add getPropertyCSSValue
679        * css/CSSGrammar.y:
680        * css/CSSParser.cpp:
681        (WebCore::CSSParser::parseValue):
682        * css/CSSStyleDeclaration.cpp:
683        (WebCore::propertyID):
684        * css/CSSStyleSelector.cpp:
685        (WebCore::CSSStyleSelector::applyProperty):
686        * ksvg2/css/CSSPropertyNames.in: remove font-size-adjust
687        * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp: Added.
688        (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue): added.
689        * ksvg2/css/SVGCSSParser.cpp:
690        (WebCore::CSSParser::parseSVGValue):
691        * ksvg2/css/SVGCSSStyleSelector.cpp:
692        (WebCore::CSSStyleSelector::applySVGProperty):
693        * ksvg2/scripts/cssmakeprops: Removed.
694        * ksvg2/scripts/cssmakevalues: Removed.
695        * ksvg2/svg/SVGAnimationElement.cpp:
696        * ksvg2/svg/SVGStyledElement.cpp:
697        (WebCore::mapAttributeToCSSProperty):
698        (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): remove font-size-adjust
699
7002007-10-08  Sam Weinig  <sam@webkit.org>
701
702        Reviewed by Steve Falkenburg;
703
704        Fix for <rdar://problem/5519698> CrashTracer: [USER] 47 crashes in Safari at com.apple.WebCore: WebCore::XMLTokenizer::lineNumber const + 9
705
706        Test: fast/innerHTML/innerHTML-script-tag-crash.xhtml
707
708        * dom/XMLTokenizer.cpp:
709        (WebCore::XMLTokenizer::lineNumber): Return 1 when there is no context.
710        (WebCore::XMLTokenizer::columnNumber): ditto.
711
7122007-10-08  Alexey Proskuryakov  <ap@webkit.org>
713
714        * platform/mac/FontPlatformDataMac.mm:
715        (WebCore::FontPlatformData::setFont): Restored one of the -1 checks removed in
716        the previous change - we do need to check m_font!
717
7182007-10-08  Alexey Proskuryakov  <ap@webkit.org>
719
720        Reviewed by Darin.
721
722        http://bugs.webkit.org/show_bug.cgi?id=15397
723        Layout tests freeze in HashTable::lookup
724
725        Fixes a DRT freeze on PowerPC.
726
727        * platform/mac/FontPlatformDataMac.mm:
728        (WebCore::FontPlatformData::FontPlatformData): Don't ask for a size of a nil font,
729        the result is undefined.
730        (WebCore::FontPlatformData::setFont): Ditto. Also removed some checks for -1 that
731        were not sufficient, and thus likely unnecessary,
732
7332007-10-07  Nikolas Zimmermann  <zimmermann@kde.org>
734
735        Reviewed by Eric.
736
737        Fix some issues with rotation & baseline-shift, when spanning
738        across <tspan> elements. Highlighted by the existing batik tests.
739
740        * rendering/SVGCharacterLayoutInfo.cpp:
741        (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
742        (WebCore::SVGCharacterLayoutInfo::processedChunk):
743        (WebCore::SVGChar::characterTransform):
744        * rendering/SVGCharacterLayoutInfo.h:
745        * rendering/SVGInlineTextBox.cpp:
746        (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
747        (WebCore::SVGInlineTextBox::paintCharacters):
748        (WebCore::SVGInlineTextBox::paintDecoration):
749        * rendering/SVGRootInlineBox.cpp:
750        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
751
7522007-10-07  Mark Rowe  <mrowe@apple.com>
753
754        Reviewed by Maciej.
755
756        Bug 5122: Need an equivalent of Mozilla's DOMContentLoaded event
757        http://bugs.webkit.org/show_bug.cgi?id=5122
758
759        This is based on a patch by Daniel Peebles (pumpkingod@gmail.com).
760
761        Test: http/tests/loading/DOMContentLoaded-event.html
762
763        * dom/Document.cpp:
764        (WebCore::Document::finishedParsing): Dispatch the DOMContentLoaded event when parsing completes.
765        * dom/EventNames.h:  Add DOMContentLoaded to the list of events.
766
7672007-10-07  Alexey Proskuryakov  <ap@webkit.org>
768
769        Reviewed by Eric Seidel.
770
771        http://bugs.webkit.org/show_bug.cgi?id=15368
772        xsl:import fails when preceded by comment
773
774        Test: fast/xsl/import-after-comment.xml
775
776        * xml/XSLStyleSheet.cpp:
777        (WebCore::XSLStyleSheet::loadChildSheets): It's OK for xsl:import to be preceded by
778        non-element nodes.
779
7802007-10-07  Vincent Ricard  <magic@magicninja.org>
781
782        Reviewed by Maciej.  Landed by eseidel.
783
784        http://bugs.webkit.org/show_bug.cgi?id=15062
785        Implement document.compatMode
786
787        Tests: fast/dom/compatMode-AlmostStrict.html
788               fast/dom/compatMode-Compat.html
789               fast/dom/compatMode-Strict.html
790
791        * html/HTMLDocument.cpp:
792        (WebCore::HTMLDocument::compatMode):
793        * html/HTMLDocument.h:
794        * html/HTMLDocument.idl:
795
7962007-10-07  Sam Weinig  <sam@webkit.org>
797
798        Reviewed by Darin & Nikolas.  Landed by eseidel.
799
800        Patch for http://bugs.webkit.org/show_bug.cgi?id=14455
801        Autogenerate the JS bindings for the StyleSheetList
802
803        * DerivedSources.make:
804        * WebCore.pro:
805        * WebCore.vcproj/WebCore.vcproj:
806        * WebCore.xcodeproj/project.pbxproj:
807        * bindings/js/JSStyleSheetListCustom.cpp: Added.
808        (WebCore::JSStyleSheetList::canGetItemsForName):
809        (WebCore::JSStyleSheetList::nameGetter):
810        * bindings/js/kjs_css.cpp:
811        * bindings/js/kjs_css.h:
812        * bindings/objc/DOMUtility.mm:
813        * bindings/scripts/CodeGeneratorJS.pm:
814        * css/StyleSheetList.cpp:
815        (WebCore::StyleSheetList::StyleSheetList):
816        (WebCore::StyleSheetList::documentDestroyed):
817        (WebCore::StyleSheetList::getNamedItem):
818        * css/StyleSheetList.h: Add Document member variable and
819        getNamedItem function to accommodate the odd javascript 
820        name getter functionality.
821        * css/StyleSheetList.idl:
822        * dom/Document.cpp:
823        (WebCore::Document::Document):
824        (WebCore::Document::~Document):
825        * page/DOMWindow.idl: Add StyleSheetListConstructor
826
8272007-10-07  Lars Naesbye Christensen  <lars@naesbye.dk>
828
829        Reviewed by Eric Seidel.
830
831        make CSS cell cursor more mac-like
832        http://bugs.webkit.org/show_bug.cgi?id=15325
833
834        * Resources/cellCursor.png:
835
8362007-10-06  Eric Seidel  <eric@webkit.org>
837
838        Reviewed by Oliver.
839        
840        SVG does not correctly handle onfocusin, onfocusout or onactivate
841        http://bugs.webkit.org/show_bug.cgi?id=12573
842
843        Test: svg/W3C-SVG-1.1/script-handle-02-b.svg
844
845        * ksvg2/svg/SVGElement.cpp:
846        (WebCore::SVGElement::parseMappedAttribute):
847        * ksvg2/svg/svgattrs.in: add onfocusin, onfocusout and onactivate
848
8492007-10-06  Nikolas Zimmermann  <zimmermann@kde.org>
850
851        Reviewed by Oliver.
852
853        Never pass null input images to CICrop filter.
854
855        * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
856        (WebCore::SVGFEComponentTransfer::getCIFilter):
857        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
858
8592007-10-06  Mark Rowe  <mrowe@apple.com>
860
861        Reviewed by Alp Toker.
862
863        Gtk+ build fix and minor code cleanup.
864
865        * WebCore.pro:
866        * platform/gtk/FontCacheGtk.cpp:
867        (WebCore::FontCache::getLastResortFallbackFont):
868        (WebCore::FontCache::fontExists):
869
8702007-10-06  Alexey Proskuryakov  <ap@webkit.org>
871
872        Reviewed by Mitz.
873
874        http://bugs.webkit.org/show_bug.cgi?id=15380
875        XPath: id('foo') doesn't resolve correctly
876
877        Test: fast/xpath/id-simple.html
878
879        * xml/XPathFunctions.cpp:
880        (WebCore::XPath::FunId::evaluate): Fixed a logic error in id() parameter parsing.
881
8822007-10-06  Alexey Proskuryakov  <ap@webkit.org>
883
884        Reviewed by Darin.
885
886        Patch for http://bugs.webkit.org/show_bug.cgi?id=13707
887        REGRESSION: JavaScript exceptions on quotes.burntelectrons.org
888
889        http://bugs.webkit.org/show_bug.cgi?id=12628
890        document.body is not supported in XHTML documents
891
892        http://bugs.webkit.org/show_bug.cgi?id=14213
893        On page with MIME type application/xhtml+xml, cookie don't work
894
895        Moved a bunch of methods and properties from HTMLDocument down into Document to make
896        them available for all documents (xml, svg).
897        What was kept in HTMLDocument:
898        - some methods and properties that are not in HTML5 (yet?);
899        - open/write/writeln/close, as they will need to be modified to work on XML documents, and aren't
900        of much use for those anyway;
901        - designMode, because its definition in HTML5 is incompatible with our implementation.
902
903        Covered by existing tests.
904
905        * bindings/js/JSDocumentCustom.cpp:
906        (WebCore::JSDocument::location):
907        (WebCore::JSDocument::setLocation):
908        * bindings/js/JSHTMLDocumentCustom.cpp:
909        * bindings/objc/PublicDOMInterfaces.h:
910        * dom/Document.cpp:
911        (WebCore::Document::setBody):
912        (WebCore::Document::cookie):
913        (WebCore::Document::setCookie):
914        (WebCore::Document::lastModified):
915        * dom/Document.h:
916        (WebCore::Document::title):
917        * dom/Document.idl:
918        * html/HTMLDocument.cpp:
919        * html/HTMLDocument.h:
920        * html/HTMLDocument.idl:
921
9222007-10-06  Eric Seidel  <eric@webkit.org>
923
924        Reviewed by Oliver Hunt.
925
926        RenderSVGContainer (<g>) should not repaint when its bounds change (unless it has a filter)
927        http://bugs.webkit.org/show_bug.cgi?id=15388
928        This makes the Sun Lively Kernel invalidate only what it should!
929        
930        No tests possible in DRT.
931
932        * ksvg2/svg/SVGCircleElement.cpp:
933        (WebCore::SVGCircleElement::notifyAttributeChange): replace call to rebuildRenderer
934        * ksvg2/svg/SVGEllipseElement.cpp:
935        (WebCore::SVGEllipseElement::notifyAttributeChange): replace call to rebuildRenderer
936        * ksvg2/svg/SVGImageElement.cpp:
937        (WebCore::SVGImageElement::notifyAttributeChange): replace call to rebuildRenderer
938        (WebCore::SVGImageElement::hasRelativeValues): implemented
939        * ksvg2/svg/SVGImageElement.h:
940        * ksvg2/svg/SVGLineElement.cpp:
941        (WebCore::SVGLineElement::notifyAttributeChange): replace call to rebuildRenderer
942        * ksvg2/svg/SVGPathElement.cpp:
943        (WebCore::SVGPathElement::notifyAttributeChange): replace call to rebuildRenderer
944        * ksvg2/svg/SVGPolyElement.cpp:
945        (WebCore::SVGPolyElement::notifyAttributeChange): replace call to rebuildRenderer
946        * ksvg2/svg/SVGRectElement.cpp:
947        (WebCore::SVGRectElement::notifyAttributeChange): replace call to rebuildRenderer
948        * ksvg2/svg/SVGStyledElement.cpp:
949        * ksvg2/svg/SVGStyledElement.h:
950        (WebCore::SVGStyledElement::hasRelativeValues): default to true instead
951        * ksvg2/svg/SVGStyledTransformableElement.cpp:
952        (WebCore::SVGStyledTransformableElement::updateLocalTransform): don't layout if no change
953        * ksvg2/svg/SVGStyledTransformableElement.h:
954        * ksvg2/svg/SVGTransform.h:
955        * rendering/RenderPath.cpp:
956        (WebCore::RenderPath::layout):
957        * rendering/RenderPath.h:
958        * rendering/RenderSVGContainer.cpp:
959        (WebCore::RenderSVGContainer::layout):
960        (WebCore::RenderSVGContainer::selfWillPaint): return true if have a filter
961        (WebCore::RenderSVGContainer::paint):
962        * rendering/RenderSVGContainer.h:
963        * rendering/RenderSVGHiddenContainer.cpp:
964        (WebCore::RenderSVGHiddenContainer::layout):
965        * rendering/RenderSVGRoot.cpp:
966        (WebCore::RenderSVGRoot::layout):
967        * rendering/RenderSVGViewportContainer.cpp:
968        (WebCore::RenderSVGViewportContainer::layout):
969        (WebCore::RenderSVGViewportContainer::calcViewport): use floats
970
9712007-10-06  Rob Buis  <buis@kde.org>
972
973        Reviewed by Eric.
974
975        Use document() instead of ownerDocument() and a few other cleanups.
976
977        * ksvg2/misc/SVGDocumentExtensions.cpp:
978        (WebCore::SVGDocumentExtensions::mapInstanceToElement):
979        * ksvg2/svg/SVGCircleElement.cpp:
980        (WebCore::SVGCircleElement::notifyAttributeChange):
981        * ksvg2/svg/SVGClipPathElement.cpp:
982        (WebCore::SVGClipPathElement::notifyAttributeChange):
983        * ksvg2/svg/SVGElementInstance.cpp:
984        (WebCore::containsUseChildNode):
985        * ksvg2/svg/SVGEllipseElement.cpp:
986        (WebCore::SVGEllipseElement::notifyAttributeChange):
987        * ksvg2/svg/SVGGradientElement.cpp:
988        (WebCore::SVGGradientElement::notifyAttributeChange):
989        * ksvg2/svg/SVGImageElement.cpp:
990        (WebCore::SVGImageElement::notifyAttributeChange):
991        * ksvg2/svg/SVGLineElement.cpp:
992        (WebCore::SVGLineElement::notifyAttributeChange):
993        * ksvg2/svg/SVGMarkerElement.cpp:
994        (WebCore::SVGMarkerElement::notifyAttributeChange):
995        * ksvg2/svg/SVGMaskElement.cpp:
996        (WebCore::SVGMaskElement::notifyAttributeChange):
997        * ksvg2/svg/SVGPathElement.cpp:
998        (WebCore::SVGPathElement::notifyAttributeChange):
999        * ksvg2/svg/SVGPatternElement.cpp:
1000        (WebCore::SVGPatternElement::notifyAttributeChange):
1001        * ksvg2/svg/SVGPolyElement.cpp:
1002        (WebCore::SVGPolyElement::notifyAttributeChange):
1003        * ksvg2/svg/SVGRectElement.cpp:
1004        (WebCore::SVGRectElement::notifyAttributeChange):
1005        * ksvg2/svg/SVGStopElement.cpp:
1006        (WebCore::SVGStopElement::notifyAttributeChange):
1007
10082007-10-05  Eric Seidel  <eric@webkit.org>
1009
1010        Reviewed by Oliver Hunt.
1011
1012        SVG invalidates way too much during layout()
1013        http://bugs.webkit.org/show_bug.cgi?id=14003
1014
1015        * ksvg2/svg/SVGElement.cpp:
1016        (WebCore::SVGElement::ownerSVGElement): simplify if
1017        (WebCore::SVGElement::viewportElement): simplify if
1018        * rendering/RenderSVGContainer.cpp:
1019        (WebCore::RenderSVGContainer::layout): only layout children if parent changed
1020        * rendering/RenderSVGRoot.cpp:
1021        (WebCore::RenderSVGRoot::layout): only layout children when size changes
1022        * rendering/RenderSVGText.cpp:
1023        (WebCore::RenderSVGText::layout): hack to avoid bad RenderBlock::layout code
1024        * rendering/RenderSVGViewportContainer.cpp:
1025        (WebCore::RenderSVGViewportContainer::layout): don't use RenderSVGContainer::layout()
1026
10272007-10-05  Oliver Hunt  <oliver@apple.com>
1028
1029        Reviewed by Eric.
1030
1031        30%+ performance improvement for svg embedded in xhtml
1032
1033        Relayout internal to SVG was incorrectly being propagated to
1034        the containing xhtml element, which subsequently resulted in
1035        a full paint of the SVG, rather than just the dirty regions.
1036
1037        * rendering/RenderObject.cpp:
1038        (WebCore::objectIsRelayoutBoundary):
1039        (WebCore::RenderObject::markContainingBlocksForLayout):
1040
10412007-10-03  Eric Seidel  <eric@webkit.org>
1042
1043        Reviewed by Maciej.
1044        
1045        http://bugs.webkit.org/show_bug.cgi?id=12310
1046        Remove static variables from removeAllChildren causing crash.
1047        removeAllChildren now iterates over the entire tree instead of recursing.
1048        Also (according to Maciej) a possible 1-2% speedboost on HTML iBench.
1049
1050        Test: fast/images/svg-background-crash-on-refresh.html
1051
1052        * WebCore.xcodeproj/project.pbxproj:
1053        * dom/ContainerNode.cpp:
1054        (WebCore::addChildNodesToDeletionQueue):
1055        (WebCore::ContainerNode::removeAllChildren): use new addChildNodesToDeletionQueue
1056
10572007-10-03  David Hyatt  <hyatt@apple.com>
1058
1059        Land support for the CSS @font-face rule.  This patch allows custom fonts
1060        to be downloaded from the Web and rendered in Web pages.  Right now only
1061        TrueType fonts are supported.  Proprietary formats like .eot are not
1062        supported.
1063
1064        Reviewed by Eric Seidel
1065
1066        Many tests will be coming in a future landing.
1067
1068        * WebCore.base.exp:
1069        Expose some more stuff for WebKit, caused by font restructuring.
1070
1071        * WebCore.xcodeproj/project.pbxproj:
1072        Add all the new font face files.
1073
1074        * css/CSSComputedStyleDeclaration.cpp:
1075        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1076        Make sure to ignore the 'src' property of @font-face rules.
1077
1078        * css/CSSFontFace.cpp: Added.
1079        (WebCore::CSSFontFace::CSSFontFace):
1080        (WebCore::CSSFontFace::~CSSFontFace):
1081        (WebCore::CSSFontFace::isLoaded):
1082        (WebCore::CSSFontFace::isValid):
1083        (WebCore::CSSFontFace::addSource):
1084        (WebCore::CSSFontFace::fontLoaded):
1085        (WebCore::CSSFontFace::getFontData):
1086        * css/CSSFontFace.h: Added.
1087        A CSSFontFace is a composite object.  It consists of multiple font-face sources, where each source represents either a remote or local
1088        file in a @font-face rule's src list.
1089
1090        * css/CSSFontFaceRule.cpp:
1091        (WebCore::CSSFontFaceRule::setDeclaration):
1092        (WebCore::CSSFontFaceRule::cssText):
1093        * css/CSSFontFaceRule.h:
1094        The implementation of the @font-face rule itself in the CSS sheet back end.
1095        
1096        * css/CSSFontFaceSource.cpp: Added.
1097        (WebCore::CSSFontFaceSource::CSSFontFaceSource):
1098        (WebCore::CSSFontFaceSource::~CSSFontFaceSource):
1099        (WebCore::CSSFontFaceSource::pruneTable):
1100        (WebCore::CSSFontFaceSource::isLoaded):
1101        (WebCore::CSSFontFaceSource::isValid):
1102        (WebCore::CSSFontFaceSource::fontLoaded):
1103        (WebCore::CSSFontFaceSource::getFontData):
1104        * css/CSSFontFaceSource.h: Added.
1105        (WebCore::CSSFontFaceSource::string):
1106        (WebCore::CSSFontFaceSource::setFontFace):
1107        A font face source represents a single remote or local font.  If it represents a remote font than it wraps a CachedFont.
1108        
1109        * css/CSSFontFaceSrcValue.cpp: Added.
1110        (WebCore::CSSFontFaceSrcValue::isSupportedFormat):
1111        (WebCore::CSSFontFaceSrcValue::cssText):
1112        * css/CSSFontFaceSrcValue.h: Added.
1113        (WebCore::CSSFontFaceSrcValue::m_isLocal):
1114        (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
1115        (WebCore::CSSFontFaceSrcValue::resource):
1116        (WebCore::CSSFontFaceSrcValue::format):
1117        (WebCore::CSSFontFaceSrcValue::isLocal):
1118        (WebCore::CSSFontFaceSrcValue::setFormat):
1119        Used in parsing.  Represents the parsed form of the src value that can then be used to build up a CSSFontFace.
1120
1121        * css/CSSFontSelector.cpp: Added.
1122        (WebCore::CSSFontSelector::CSSFontSelector):
1123        (WebCore::CSSFontSelector::~CSSFontSelector):
1124        (WebCore::CSSFontSelector::isEmpty):
1125        (WebCore::CSSFontSelector::docLoader):
1126        (WebCore::hashForFont):
1127        (WebCore::CSSFontSelector::addFontFaceRule):
1128        (WebCore::CSSFontSelector::fontLoaded):
1129        (WebCore::CSSFontSelector::getFontData):
1130        * css/CSSFontSelector.h: Added.
1131        The CSS font selector is the object that selects the correct font given a specified font family.  It builds up a database of CSSFontFaces that can then be handed
1132        back.
1133
1134        * css/CSSGrammar.y:
1135        * css/CSSParser.cpp:
1136        (WebCore::CSSParser::parseValue):
1137        (WebCore::CSSParser::parseFontFaceSrc):
1138        (WebCore::CSSParser::createFontFaceRule):
1139        * css/CSSParser.h:
1140        Modify the CSS grammar to now understand @font-face rules.
1141
1142        * css/CSSPropertyNames.in:
1143        Add the src property.
1144
1145        * css/CSSStyleSelector.cpp:
1146        (WebCore::CSSStyleSelector::CSSStyleSelector):
1147        (WebCore::CSSStyleSelector::styleForElement):
1148        (WebCore::CSSStyleSelector::updateFont):
1149        (WebCore::CSSRuleSet::addRulesFromSheet):
1150        (WebCore::CSSStyleSelector::applyProperty):
1151        (WebCore::CSSStyleSelector::ensureFontSelector):
1152        * css/CSSStyleSelector.h:
1153        (WebCore::CSSStyleSelector::fontSelector):
1154        The style selector now creates a font selector object and feeds it the appropriate information when @font-face rules are encountered.
1155    
1156        * dom/Document.cpp:
1157        (WebCore::Document::recalcStyle):
1158        Patch the update method now that it takes a font selector argument.
1159    
1160        * loader/Cache.cpp:
1161        (WebCore::createResource):
1162        (WebCore::Cache::getStatistics):
1163        * loader/Cache.h:
1164        Teach the Cache about CachedFonts.
1165
1166        * loader/CachedFont.cpp: Added.
1167        (WebCore::CachedFont::CachedFont):
1168        (WebCore::CachedFont::~CachedFont):
1169        (WebCore::CachedFont::ref):
1170        (WebCore::CachedFont::data):
1171        (WebCore::CachedFont::beginLoadIfNeeded):
1172        (WebCore::CachedFont::ensureCustomFontData):
1173        (WebCore::CachedFont::platformDataFromCustomData):
1174        (WebCore::CachedFont::allReferencesRemoved):
1175        (WebCore::CachedFont::checkNotify):
1176        (WebCore::CachedFont::error):
1177        * loader/CachedFont.h: Added.
1178        (WebCore::CachedFont::schedule):
1179        The implementation of CachedFont.  This represents the downloaded resource and has all the raw font data.
1180
1181        * loader/CachedResource.h:
1182        (WebCore::CachedResource::):
1183        * loader/CachedResourceClient.h:
1184        (WebCore::CachedResourceClient::fontLoaded):
1185        Add a new fontLoaded method for clients of cached resources to track when fonts finish downloading.
1186    
1187        * loader/DocLoader.cpp:
1188        (WebCore::DocLoader::requestFont):
1189        * loader/DocLoader.h:
1190         Add the ability to request a font.
1191
1192        * platform/Font.cpp:
1193        (WebCore::Font::operator==):
1194        (WebCore::Font::update):
1195        (WebCore::Font::drawText):
1196        * platform/Font.h:
1197        * platform/FontCache.cpp:
1198        (WebCore::FontCache::getFontData):
1199        * platform/FontCache.h:
1200        * platform/FontData.cpp:
1201        (WebCore::FontData::FontData):
1202        * platform/FontData.h:
1203        (WebCore::FontData::isCustomFont):
1204        (WebCore::FontData::isLoading):
1205        * platform/FontFallbackList.cpp:
1206        (WebCore::FontFallbackList::FontFallbackList):
1207        (WebCore::FontFallbackList::invalidate):
1208        (WebCore::FontFallbackList::fontDataAt):
1209        * platform/FontFallbackList.h:
1210        (WebCore::FontFallbackList::loadingCustomFonts):
1211        (WebCore::FontFallbackList::fontSelector):
1212        * platform/FontSelector.h: Added.
1213        (WebCore::FontSelector::~FontSelector):
1214        * platform/GlyphPageTreeNode.cpp:
1215        (WebCore::GlyphPageTreeNode::getRoot):
1216        (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
1217        (WebCore::GlyphPageTreeNode::~GlyphPageTreeNode):
1218        (WebCore::GlyphPageTreeNode::initializePage):
1219        (WebCore::GlyphPageTreeNode::getChild):
1220        (WebCore::GlyphPageTreeNode::pruneCustomFontData):
1221        * platform/GlyphPageTreeNode.h:
1222        (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
1223        (WebCore::GlyphPageTreeNode::page):
1224        * platform/PopupMenuClient.h:
1225        * platform/mac/FontCacheMac.mm:
1226        (WebCore::FontCache::getFontDataForCharacters):
1227        (WebCore::FontCache::getLastResortFallbackFont):
1228        (WebCore::FontCache::fontExists):
1229        (WebCore::FontCache::createFontPlatformData):
1230        * platform/mac/FontCustomPlatformData.cpp: Added.
1231        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1232        (WebCore::FontCustomPlatformData::fontPlatformData):
1233        (WebCore::createFontCustomPlatformData):
1234        * platform/mac/FontCustomPlatformData.h: Added.
1235        (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1236        * platform/mac/FontDataMac.mm:
1237        (WebCore::initFontData):
1238        (WebCore::FontData::platformInit):
1239        (WebCore::FontData::smallCapsFontData):
1240        (WebCore::FontData::platformWidthForGlyph):
1241        (WebCore::FontData::checkShapesArabic):
1242        * platform/mac/FontMac.mm:
1243        (WebCore::initializeATSUStyle):
1244        (WebCore::Font::drawGlyphs):
1245        * platform/mac/FontPlatformData.h:
1246        (WebCore::FontPlatformData::FontPlatformData):
1247        (WebCore::FontPlatformData::hash):
1248        (WebCore::FontPlatformData::operator==):
1249        * platform/mac/FontPlatformDataMac.mm: Added.
1250        (WebCore::FontPlatformData::FontPlatformData):
1251        (WebCore::~FontPlatformData):
1252        (WebCore::FontPlatformData::setFont):
1253        * platform/mac/WebCoreSystemInterface.h:
1254        * platform/mac/WebCoreSystemInterface.mm:
1255        * platform/win/FontCacheWin.cpp:
1256        (WebCore::FontCache::getLastResortFallbackFont):
1257        (WebCore::FontCache::fontExists):
1258        * platform/win/FontCustomPlatformData.cpp: Added.
1259        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
1260        (WebCore::FontCustomPlatformData::fontPlatformData):
1261        (WebCore::getData):
1262        (WebCore::releaseData):
1263        (WebCore::getBytesWithOffset):
1264        (WebCore::createFontCustomPlatformData):
1265        * platform/win/FontCustomPlatformData.h: Added.
1266        (WebCore::FontCustomPlatformData::FontCustomPlatformData):
1267        * platform/win/FontDataWin.cpp:
1268        (WebCore::FontData::platformInit):
1269        (WebCore::FontData::platformDestroy):
1270        (WebCore::FontData::smallCapsFontData):
1271        (WebCore::FontData::containsCharacters):
1272        (WebCore::FontData::determinePitch):
1273        * platform/win/FontPlatformData.h:
1274        (WebCore::FontPlatformData::FontPlatformData):
1275        (WebCore::FontPlatformData::hash):
1276        (WebCore::FontPlatformData::operator==):
1277        * platform/win/FontPlatformDataWin.cpp:
1278        (WebCore::FontPlatformData::FontPlatformData):
1279        * platform/win/PopupMenuWin.cpp:
1280        (WebCore::PopupMenu::paint):
1281        Changes to platform to support rendering of custom fonts.  Too large to go into, but for ports, the relevant object to implement is
1282        FontCustomPlatformData (to get the data loaded into your native font format), and then you have to patch your other font objects to know
1283        how to use the font.
1284
1285        * rendering/RenderListBox.cpp:
1286        (WebCore::RenderListBox::updateFromElement):
1287        (WebCore::RenderListBox::paintItemForeground):
1288        * rendering/RenderMenuList.cpp:
1289        (WebCore::RenderMenuList::fontSelector):
1290        * rendering/RenderMenuList.h:
1291        * rendering/RenderTextControl.cpp:
1292        (WebCore::RenderTextControl::fontSelector):
1293        * rendering/RenderTextControl.h:
1294        * rendering/RenderThemeMac.mm:
1295        (WebCore::RenderThemeMac::setFontFromControlSize):
1296        * rendering/RenderThemeSafari.cpp:
1297        (WebCore::RenderThemeSafari::setFontFromControlSize):
1298        Patches for update now taking a font selector argument.
1299    
13002007-10-03  Rob Buis  <buis@kde.org>
1301
1302        Reviewed by Eric.
1303
1304        Remove unneeded code and other cleanups.
1305
1306        * ksvg2/svg/SVGScriptElement.cpp:
1307        (WebCore::SVGScriptElement::parseMappedAttribute):
1308        * ksvg2/svg/SVGScriptElement.h:
1309
13102007-10-03  Rob Buis  <buis@kde.org>
1311
1312        Reviewed by Maciej.
1313
1314        http://bugs.webkit.org/show_bug.cgi?id=15260
1315        Any styles defined after <element> {<property>:%} style are ignored by Safari
1316    
1317        Add dummy rule to skip constructions like width: %.
1318
1319        * css/CSSGrammar.y:
1320
13212007-10-03  Mark Rowe  <mrowe@apple.com>
1322
1323        Reviewed by Lars.
1324
1325        Get Gtk+ port building on the feature branch.
1326
1327        * WebCore.pro:
1328        * ksvg2/svg/SVGSVGElement.cpp:
1329        * platform/graphics/svg/cairo/RenderPathCairo.cpp:
1330        (WebCore::RenderPath::strokeContains):
1331        * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp:
1332        (WebCore::SVGPaintServer::draw):
1333        (WebCore::SVGPaintServer::renderPath):
1334        * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
1335        (WebCore::SVGPaintServerSolid::setup):
1336        * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp:
1337        (WebCore::SVGResourceMasker::applyMask):
1338        * rendering/SVGCharacterLayoutInfo.cpp:
1339        * rendering/SVGInlineTextBox.cpp:
1340        * rendering/SVGRootInlineBox.cpp:
1341
13422007-10-02  Alexey Proskuryakov  <ap@webkit.org>
1343
1344        Reviewed by Maciej.
1345
1346        http://bugs.webkit.org/show_bug.cgi?id=15102
1347        XMLHttpRequests should dispatch a readystatechange event.
1348
1349        Test: http/tests/xmlhttprequest/readystatechange.html
1350
1351        * xml/XMLHttpRequest.cpp:
1352        (WebCore::XMLHttpRequest::callReadyStateChangeListener): Added readystatechange
1353        event support. Fixed the function to dispatch the same event to all listeners
1354        instead of creating a new copy for each one. Changed bubbling/cancelability of
1355        load and readystatechange events to match Firefox.
1356
13572007-10-02  Eric Seidel  <eric@webkit.org>
1358
1359        Reviewed by Oliver Hunt.
1360
1361        http://bugs.webkit.org/show_bug.cgi?id=13828
1362        Fixes svg/custom/rootmost-svg-xy-attrs.xhtml
1363
1364        * WebCore.xcodeproj/project.pbxproj: fix warning about SVGDOM.h
1365        * ksvg2/svg/SVGSVGElement.cpp:
1366        (WebCore::SVGSVGElement::viewport): use new isOutermostSVG()
1367        (WebCore::SVGSVGElement::getCTM): use isOutermostSVG()
1368        (WebCore::SVGSVGElement::getScreenCTM): use isOutermostSVG()
1369        (WebCore::SVGSVGElement::createRenderer): use isOutermostSVG()
1370        (WebCore::SVGSVGElement::isOutermostSVG):
1371        * ksvg2/svg/SVGSVGElement.h: add isOutermostSVG
1372        * rendering/RenderSVGRoot.cpp:
1373        (WebCore::RenderSVGRoot::calcViewport): ignore x/y
1374
13752007-10-02  Maciej Stachowiak  <mjs@apple.com>
1376
1377        Reviewed by Mitz.
1378        
1379        - Avoid uselessly serializing CSS property values on replacement for 10% CK DOM speedup
1380        http://bugs.webkit.org/show_bug.cgi?id=15340
1381
1382        * css/CSSMutableStyleDeclaration.cpp:
1383        (WebCore::CSSMutableStyleDeclaration::removeProperty): Don't generate return value unless needed.
1384        (WebCore::CSSMutableStyleDeclaration::setProperty): Use the no-return version appropriately.
1385        * css/CSSMutableStyleDeclaration.h:
1386        (WebCore::CSSMutableStyleDeclaration::removeProperty): New version with no return value.
1387
13882007-10-02  Maciej Stachowiak  <mjs@apple.com>
1389
1390        Reviewed by Oliver.
1391
1392        - Use Vector<UChar> instead of DeprecatedString for innerHTML, for 35% speedup on CK DOM test
1393        http://bugs.webkit.org/show_bug.cgi?id=15339
1394
1395        Rewrote both versions of createMarkup to build based on
1396        Vector<UChar> instead of String. Also other miscellaneous
1397        speedups (mainly content strings are now encoded in a way that
1398        doesn't take a function call per character, and switch is avoided).
1399        
1400        This also causes a functional change - we no longer escape '>' since this was unnecessary and it's faster
1401        to avoid testing for it. See updated test results.
1402        
1403        * editing/markup.cpp:
1404        (WebCore::appendString):
1405        (WebCore::appendAttributeValue):
1406        (WebCore::escapeContentText):
1407        (WebCore::appendEscapedContent):
1408        (WebCore::appendDeprecatedString):
1409        (WebCore::appendQuotedURLAttributeValue):
1410        (WebCore::stringValueForRange):
1411        (WebCore::ucharRange):
1412        (WebCore::appendUCharRange):
1413        (WebCore::appendNamespace):
1414        (WebCore::appendStartMarkup):
1415        (WebCore::getStartMarkup):
1416        (WebCore::appendEndMarkup):
1417        (WebCore::getEndMarkup):
1418        (WebCore::appendMarkup):
1419        (WebCore::joinMarkups):
1420        (WebCore::createMarkup):
1421        * editing/markup.h:
1422        * page/mac/WebCoreFrameBridge.mm:
1423        (-[WebCoreFrameBridge markupStringFromNode:nodes:]):
1424        (-[WebCoreFrameBridge markupStringFromRange:nodes:]):
1425
14262007-10-02  Maciej Stachowiak  <mjs@apple.com>
1427
1428        Reviewed by Eric.
1429        
1430        - fixed "innerHTML updates layout every time (very bad if adding to it in a loop)"
1431        http://bugs.webkit.org/show_bug.cgi?id=15326
1432        (65% speedup on Celtic Kane JS 2007 DOM test)
1433
1434        * editing/markup.cpp:
1435        (WebCore::createMarkup): The Node version of this function currently never uses
1436        the render tree, so don't bother to update layout. This is the version used for
1437        innerHTML.
1438
14392007-10-02  Nicholas Shanks  <webkit@nickshanks.com>
1440
1441        Reviewed by eseidel & hyatt.
1442
1443        Add support for CSS3 values 'start' and 'end' to text-align property.
1444
1445        * css/cssparser.cpp:
1446        (WebCore::CSSParser::parseValue): allow start and end values
1447        * css/cssstyleselector.cpp:
1448        (WebCore::CSSStyleSelector::applyProperty): handle start and end values
1449
14502007-10-01  Oliver Hunt  <oliver@apple.com>
1451
1452        Reviewed by Mark.
1453
1454        Enable Experimental SVG features by default when building from Xcode
1455
1456        * Configurations/WebCore.xcconfig:
1457
14582007-10-01  Eric Seidel  <eric@webkit.org>
1459
1460        Reviewed by Oliver Hunt.
1461
1462        This only affects Debug builds, and the ability to save SVGs as WebArchives
1463        neither are testable via DumpRenderTree.
1464
1465        * Configurations/WebCore.xcconfig: change where Xcode looks for WebCore.exp
1466        * DerivedSources.make: adds SVG symbols to WebCore.exp when necessary
1467        * WebCore.SVG.exp: Added.
1468        * WebCore.exp: moved to WebCore.base.exp
1469        * WebCore.xcodeproj/project.pbxproj: updated to reflect moved files
1470        * bindings/objc/DOMSVGExecption.h: moved to DOMSVGException.h
1471
14722007-10-01  Eric Seidel  <eric@webkit.org>
1473
1474        Reviewed by olliej.
1475
1476        Make feature-branch build again with ENABLE_SVG_EXPERIMENTAL_FEATURES
1477        Needed a double -> float change to make the new filter types build.
1478
1479        Build fix, no test cases.
1480
1481        * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
1482        * ksvg2/svg/SVGComponentTransferFunctionElement.h:
1483        * ksvg2/svg/SVGFECompositeElement.cpp:
1484        * ksvg2/svg/SVGFECompositeElement.h:
1485        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
1486        * ksvg2/svg/SVGFEDiffuseLightingElement.h:
1487        * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
1488        * ksvg2/svg/SVGFEDisplacementMapElement.h:
1489        * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
1490        * ksvg2/svg/SVGFEGaussianBlurElement.h:
1491        * ksvg2/svg/SVGFELightElement.cpp:
1492        * ksvg2/svg/SVGFELightElement.h:
1493        * ksvg2/svg/SVGFEOffsetElement.cpp:
1494        * ksvg2/svg/SVGFEOffsetElement.h:
1495        * ksvg2/svg/SVGFESpecularLightingElement.cpp:
1496        * ksvg2/svg/SVGFESpecularLightingElement.h:
1497        * ksvg2/svg/SVGFETurbulenceElement.cpp:
1498        * ksvg2/svg/SVGFETurbulenceElement.h:
1499
15002007-09-30  Julien  <julien.chaffraix@gmail.com>
1501
1502        Reviewed by aroben & eseidel.
1503
1504        fix http://bugs.webkit.org/show_bug.cgi?id=14898
1505
1506        getAllResponseHeaders() separates each header with a CR LF according to the specification
1507
1508        Test: http/tests/xmlhttprequest/xmlhttprequest-crlf-getAllResponseHeader.html
1509
1510        * xml/XMLHttpRequest.cpp:
1511        (WebCore::XMLHttpRequest::getAllResponseHeaders):
1512
15132007-09-28  Eric Seidel  <eric@webkit.org>
1514
1515        Reviewed by Sam Wenig.
1516
1517        ASSERT when dragging <svg:image> with non-null prefix
1518        http://bugs.webkit.org/show_bug.cgi?id=15308
1519
1520        * bindings/objc/DOM.mm:
1521        (WebCore::lookupElementClass): added
1522        (WebCore::elementClass): use new lookupElementClass function
1523
15242007-09-25  Eric Seidel  <eric@webkit.org>
1525
1526        Reviewed by Mark Rowe.
1527
1528        I managed to break the SVG build when fixing the --no-svg build for
1529        http://bugs.webkit.org/show_bug.cgi?id=15281
1530        This adds the appropriate DOMSVG headers to the copy headers phase
1531        (in fixing the no-svg build I mistakenly re-marked them project-only)
1532
1533        * WebCore.xcodeproj/project.pbxproj:
1534
15352007-09-25  Eric Seidel  <eric@webkit.org>
1536
1537        Reviewed by Rob Buis.
1538
1539        Already tested by SVG/W3C-SVG-1.1/linking-a-07-t.svg
1540
1541        * ksvg2/svg/SVGAElement.cpp:
1542        (WebCore::SVGAElement::defaultEventHandler): properly pass along target values
1543
15442007-09-22  Oliver Hunt  <oliver@apple.com>
1545
1546        Reviewed by NOBODY (Build fix).
1547
1548        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1549        (WebCore::SVGPaintServerGradient::teardown):
1550        (WebCore::SVGPaintServerGradient::renderPath):
1551        * rendering/SVGRootInlineBox.cpp:
1552        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
1553
15542007-09-09  Nikolas Zimmermann  <zimmermann@kde.org>
1555
1556        Reviewed by Oliver.
1557
1558        Rework <pattern> support to take overflow & viewBox into account.
1559        Also fix all possible combinations of patternUnits/patternContentUnits, tested by several batik testcases.
1560        (Status: <mask>, <pattern>, <linearGradient>, <radialGradient>, <filter> regions work perfectly. <clipPath> is sill todo)
1561
1562        While I'm at it, add a very helpful debugging tool "dumpCGOutputImage" and rename "dumpOutputImage" to "dumpCIOutputImage".
1563        Also fix possible null image buffer problems. (ie. large alloc)
1564
1565        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12221 (Webkit ToT fails to render this pattern example)
1566
1567        * ksvg2/svg/PatternAttributes.h:
1568        (WebCore::PatternAttributes::PatternAttributes):
1569        (WebCore::PatternAttributes::x):
1570        (WebCore::PatternAttributes::y):
1571        (WebCore::PatternAttributes::width):
1572        (WebCore::PatternAttributes::height):
1573        (WebCore::PatternAttributes::setX):
1574        (WebCore::PatternAttributes::setY):
1575        (WebCore::PatternAttributes::setWidth):
1576        (WebCore::PatternAttributes::setHeight):
1577        * ksvg2/svg/SVGPatternElement.cpp:
1578        (WebCore::SVGPatternElement::buildPattern):
1579        (WebCore::SVGPatternElement::collectPatternProperties):
1580        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1581        (WebCore::SVGPaintServerGradient::setup):
1582        * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
1583        (WebCore::patternCallback):
1584        (WebCore::SVGPaintServerPattern::setup):
1585        * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
1586        (WebCore::dumpCIOutputImage):
1587        (WebCore::dumpCGOutputImage):
1588
15892007-09-05  Nikolas Zimmermann  <zimmermann@kde.org>
1590
1591        Reviewed by Oliver.
1592
1593        Fix <mask> in userSpaceOnUse coordinates. Verified by new testcase taken from Batik.
1594
1595        * ksvg2/svg/SVGMaskElement.cpp:
1596        (WebCore::SVGMaskElement::drawMaskerContent):
1597
15982007-09-03  Nikolas Zimmermann  <zimmermann@kde.org>
1599
1600        Reviewed by Oliver.
1601
1602        Rewrite text painting code path, to be based on "text chunks" instead of using the InlineBox* hierarchy.
1603        This allows us to reuse paint servers as long as possible - and to actually paint in the way didacted by the spec.
1604
1605        This also implements advanced SVG text decorations (ie. stroked/filled decos with gradient/pattern).
1606        Fixes: http://bugs.webkit.org/show_bug.cgi?id=7200 (Gradient appears and disappears in SVG when text is off screen)
1607
1608        Fixes paint server usage on text paths. (ie. styled text paths, with gradients/filters).
1609
1610        * platform/graphics/svg/SVGPaintServer.h:
1611        * platform/graphics/svg/SVGPaintServerGradient.h:
1612        * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
1613        (WebCore::SVGPaintServer::draw):
1614        (WebCore::SVGPaintServer::renderPath):
1615        (WebCore::SVGPaintServer::strokePath):
1616        (WebCore::SVGPaintServer::clipToStrokePath):
1617        (WebCore::SVGPaintServer::fillPath):
1618        (WebCore::SVGPaintServer::clipToFillPath):
1619        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1620        (WebCore::findTextRootObject):
1621        (WebCore::SVGPaintServerGradient::teardown):
1622        (WebCore::SVGPaintServerGradient::renderPath):
1623        (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
1624        (WebCore::SVGPaintServerGradient::setup):
1625        * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
1626        (WebCore::SVGPaintServerSolid::setup):
1627        * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
1628        (WebCore::SVGPaintServer::draw):
1629        (WebCore::SVGPaintServer::renderPath):
1630        * rendering/RenderSVGInlineText.cpp:
1631        * rendering/RenderSVGTSpan.cpp:
1632        * rendering/RenderSVGText.cpp:
1633        * rendering/RenderSVGTextPath.cpp:
1634        * rendering/SVGCharacterLayoutInfo.h:
1635        (WebCore::SVGTextChunkWalkerBase::~SVGTextChunkWalkerBase):
1636        (WebCore::SVGTextChunkWalker::SVGTextChunkWalker):
1637        (WebCore::SVGTextChunkWalker::operator()):
1638        (WebCore::SVGTextChunkWalker::start):
1639        (WebCore::SVGTextChunkWalker::end):
1640        (WebCore::SVGTextChunkWalker::setupFill):
1641        (WebCore::SVGTextChunkWalker::setupStroke):
1642        * rendering/SVGInlineFlowBox.h:
1643        * rendering/SVGInlineTextBox.cpp:
1644        (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::SVGInlineTextBoxClosestCharacterToPositionWalker):
1645        (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
1646        (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::character):
1647        (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::offset):
1648        (WebCore::SVGInlineTextBoxSelectionRectWalker::SVGInlineTextBoxSelectionRectWalker):
1649        (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
1650        (WebCore::SVGInlineTextBoxSelectionRectWalker::selectionRect):
1651        (WebCore::SVGInlineTextBox::closestCharacterToPosition):
1652        (WebCore::SVGInlineTextBox::selectionRect):
1653        (WebCore::SVGInlineTextBox::paintCharacters):
1654        (WebCore::SVGInlineTextBox::paintSelection):
1655        (WebCore::pathForDecoration):
1656        (WebCore::SVGInlineTextBox::paintDecoration):
1657        * rendering/SVGInlineTextBox.h:
1658        * rendering/SVGRenderSupport.cpp:
1659        (WebCore::prepareToRenderSVGContent):
1660        * rendering/SVGRenderSupport.h:
1661        * rendering/SVGRootInlineBox.cpp:
1662        (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
1663        (WebCore::SVGRootInlineBoxPaintWalker::~SVGRootInlineBoxPaintWalker):
1664        (WebCore::SVGRootInlineBoxPaintWalker::teardownFillPaintServer):
1665        (WebCore::SVGRootInlineBoxPaintWalker::teardownStrokePaintServer):
1666        (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
1667        (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
1668        (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupFillCallback):
1669        (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupStrokeCallback):
1670        (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
1671        (WebCore::SVGRootInlineBox::paint):
1672        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
1673        (WebCore::addPaintServerToTextDecorationInfo):
1674        (WebCore::SVGRootInlineBox::retrievePaintServersForTextDecoration):
1675        (WebCore::SVGRootInlineBox::walkTextChunks):
1676        * rendering/SVGRootInlineBox.h:
1677
16782007-08-27  Nikolas Zimmermann  <zimmermann@kde.org>
1679
1680        Reviewed by Mitz.
1681
1682        Expose unitsPerEm() in Font classes.
1683        This is needed to implement SVG's advanced text decorations. We won't draw lines for text-decorations
1684        but fillable & strokable rectangles with a certain height, computed through unitsPerEm & font size.
1685
1686        * platform/Font.cpp:
1687        (WebCore::Font::unitsPerEm):
1688        * platform/Font.h:
1689        * platform/FontData.h:
1690        (WebCore::FontData::unitsPerEm):
1691        * platform/gdk/FontDataGdk.cpp:
1692        (WebCore::FontData::platformInit):
1693        * platform/mac/FontDataMac.mm:
1694        (WebCore::FontData::platformInit):
1695        * platform/qt/FontDataQt.cpp:
1696        (WebCore::FontData::platformInit):
1697        * platform/win/FontDataWin.cpp:
1698        (WebCore::FontData::platformInit):
1699        * platform/wx/FontDataWx.cpp:
1700        (WebCore::FontData::platformInit):
1701
17022007-08-27  Oliver Hunt  <oliver@apple.com>
1703
1704        Reviewed by NOBODY (Build fix).
1705
1706        Initialise iterators to appease gcc
1707
1708        * rendering/SVGInlineTextBox.cpp:
1709        (WebCore::SVGInlineTextBox::closestCharacterToPosition):
1710
17112007-08-22  Rob Buis  <buis@kde.org>
1712
1713        Reviewed by Sam.
1714
1715        http://bugs.webkit.org/show_bug.cgi?id=12059
1716        SVG colors have two separate parsing paths (one CSS and one SVGColor::setRGBColor)
1717
1718        Reuse the css parser as much as possible in setRGBColor.
1719
1720        * css/cssparser.cpp:
1721        (WebCore::CSSParser::parseColor):
1722        * css/cssparser.h:
1723        * editing/ApplyStyleCommand.cpp:
1724        (WebCore::StyleChange::checkForLegacyHTMLStyleChange):
1725        * html/CanvasGradient.cpp:
1726        (WebCore::CanvasGradient::addColorStop):
1727        * html/CanvasRenderingContext2D.cpp:
1728        (WebCore::CanvasRenderingContext2D::setShadow):
1729        (WebCore::CanvasRenderingContext2D::applyShadow):
1730        * html/CanvasStyle.cpp:
1731        (WebCore::CanvasStyle::applyStrokeColor):
1732        (WebCore::CanvasStyle::applyFillColor):
1733        * ksvg2/svg/SVGColor.cpp:
1734        (WebCore::SVGColor::colorFromRGBColorString):
1735
17362007-08-21  Nikolas Zimmermann  <zimmermann@kde.org>
1737
1738        Reviewed by Oliver.
1739
1740        Large SVG filter rework. Bring it back in a useable state.
1741
1742        Fixes: http://bugs.webkit.org/show_bug.cgi?id=5527 (Filters need subregion support)
1743        Fixes: http://bugs.webkit.org/show_bug.cgi?id=5579 (WebKit+SVG renders full-filters-example incorrectly)
1744        Fixes: http://bugs.webkit.org/show_bug.cgi?id=5976 (filterUnits="userSpaceOnUse" is broken (breaking feTile test case))
1745        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12064 (Need function for manual style-resolution for things like gradient stops)
1746
1747        filters-blend-01-b.svg & filters-example-01-b.svg & filters-displace-01-b.svg & filters-diffuse-01-f.svg are fixed now.
1748
1749        In detail:
1750        - flood-color & flood-opacity have been incorrectly resolved on the <feBlend> parent element!
1751        - sizing of filter region was truncated in some cases, as the bbox was used to resolve the needed filter region instead of the filter rect
1752        - add subregion support to all filter primitives (primitiveUnits & filterUnits handled in all cases)
1753        - WKDisplacmentMap.cikernel incorrectly flipped the y-axis.
1754        - Correctly specify default values for all filter primitives in ksvg2/svg!
1755        - Initialize all variables of the SVGFE* classes in platform/graphics/svg/filters.
1756        - Fix 'flood-color' initial value (was set to the _stop_ color initial value)
1757          -> both initial values were pointing to 'black' though, so it was no visible problem.
1758        - Parse 'lighting-color' css property, no more hacking in SVGFEDiffuseLighting.
1759          -> Correct it's initial from black to white value fixes SVG lighting filters!
1760        - Add diffuseConstant support to feDiffuseLighting filter.
1761        - Centralize manual style resolution (needed for stop-color, flood-color & flood-opacity, lighting-color)
1762
1763        * ksvg2/css/SVGCSSParser.cpp:
1764        * ksvg2/css/SVGCSSStyleSelector.cpp:
1765        (WebCore::CSSStyleSelector::applySVGProperty):
1766        * ksvg2/css/SVGRenderStyle.h:
1767        * ksvg2/css/SVGRenderStyleDefs.cpp:
1768        (StyleMiscData::StyleMiscData):
1769        (StyleMiscData::operator==):
1770        * ksvg2/css/SVGRenderStyleDefs.h:
1771        * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
1772        (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
1773        * ksvg2/svg/SVGFEBlendElement.cpp:
1774        (WebCore::SVGFEBlendElement::SVGFEBlendElement):
1775        (WebCore::SVGFEBlendElement::filterEffect):
1776        * ksvg2/svg/SVGFEBlendElement.h:
1777        * ksvg2/svg/SVGFEColorMatrixElement.cpp:
1778        (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
1779        (WebCore::SVGFEColorMatrixElement::filterEffect):
1780        * ksvg2/svg/SVGFEColorMatrixElement.h:
1781        * ksvg2/svg/SVGFEComponentTransferElement.cpp:
1782        (WebCore::SVGFEComponentTransferElement::filterEffect):
1783        * ksvg2/svg/SVGFEComponentTransferElement.h:
1784        * ksvg2/svg/SVGFECompositeElement.cpp:
1785        (WebCore::SVGFECompositeElement::SVGFECompositeElement):
1786        (WebCore::SVGFECompositeElement::parseMappedAttribute):
1787        (WebCore::SVGFECompositeElement::filterEffect):
1788        * ksvg2/svg/SVGFECompositeElement.h:
1789        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
1790        (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
1791        (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
1792        (WebCore::SVGFEDiffuseLightingElement::filterEffect):
1793        * ksvg2/svg/SVGFEDiffuseLightingElement.h:
1794        * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
1795        (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
1796        (WebCore::SVGFEDisplacementMapElement::filterEffect):
1797        * ksvg2/svg/SVGFEDisplacementMapElement.h:
1798        * ksvg2/svg/SVGFEDistantLightElement.cpp:
1799        (WebCore::SVGFEDistantLightElement::SVGFEDistantLightElement):
1800        * ksvg2/svg/SVGFEDistantLightElement.h:
1801        * ksvg2/svg/SVGFEFloodElement.cpp:
1802        (WebCore::SVGFEFloodElement::filterEffect):
1803        * ksvg2/svg/SVGFEFloodElement.h:
1804        * ksvg2/svg/SVGFEFuncAElement.cpp:
1805        * ksvg2/svg/SVGFEFuncAElement.h:
1806        * ksvg2/svg/SVGFEFuncBElement.cpp:
1807        * ksvg2/svg/SVGFEFuncBElement.h:
1808        * ksvg2/svg/SVGFEFuncGElement.cpp:
1809        (WebCore::SVGFEFuncGElement::SVGFEFuncGElement):
1810        * ksvg2/svg/SVGFEFuncGElement.h:
1811        * ksvg2/svg/SVGFEFuncRElement.cpp:
1812        * ksvg2/svg/SVGFEFuncRElement.h:
1813        * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
1814        (WebCore::SVGFEGaussianBlurElement::filterEffect):
1815        * ksvg2/svg/SVGFEGaussianBlurElement.h:
1816        * ksvg2/svg/SVGFEImageElement.cpp:
1817        (WebCore::SVGFEImageElement::notifyFinished):
1818        (WebCore::SVGFEImageElement::filterEffect):
1819        * ksvg2/svg/SVGFEImageElement.h:
1820        * ksvg2/svg/SVGFELightElement.cpp:
1821        (WebCore::SVGFELightElement::SVGFELightElement):
1822        * ksvg2/svg/SVGFELightElement.h:
1823        * ksvg2/svg/SVGFEMergeElement.cpp:
1824        (WebCore::SVGFEMergeElement::filterEffect):
1825        * ksvg2/svg/SVGFEMergeElement.h:
1826        * ksvg2/svg/SVGFEMergeNodeElement.cpp:
1827        * ksvg2/svg/SVGFEMergeNodeElement.h:
1828        * ksvg2/svg/SVGFEOffsetElement.cpp:
1829        (WebCore::SVGFEOffsetElement::filterEffect):
1830        * ksvg2/svg/SVGFEOffsetElement.h:
1831        * ksvg2/svg/SVGFEPointLightElement.h:
1832        * ksvg2/svg/SVGFESpecularLightingElement.cpp:
1833        (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
1834        (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
1835        (WebCore::SVGFESpecularLightingElement::filterEffect):
1836        (WebCore::SVGFESpecularLightingElement::updateLights):
1837        * ksvg2/svg/SVGFESpecularLightingElement.h:
1838        * ksvg2/svg/SVGFESpotLightElement.cpp:
1839        (WebCore::SVGFESpotLightElement::lightSource):
1840        * ksvg2/svg/SVGFESpotLightElement.h:
1841        * ksvg2/svg/SVGFETileElement.cpp:
1842        (WebCore::SVGFETileElement::filterEffect):
1843        * ksvg2/svg/SVGFETileElement.h:
1844        * ksvg2/svg/SVGFETurbulenceElement.cpp:
1845        (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
1846        (WebCore::SVGFETurbulenceElement::filterEffect):
1847        * ksvg2/svg/SVGFETurbulenceElement.h:
1848        * ksvg2/svg/SVGFilterElement.cpp:
1849        (WebCore::SVGFilterElement::canvasResource):
1850        * ksvg2/svg/SVGFilterElement.h:
1851        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
1852        (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
1853        (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
1854        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
1855        * ksvg2/svg/SVGGradientElement.cpp:
1856        (WebCore::SVGGradientElement::buildStops):
1857        * ksvg2/svg/SVGStyledElement.cpp:
1858        (WebCore::SVGStyledElement::resolveStyle):
1859        * ksvg2/svg/SVGStyledElement.h:
1860        * platform/graphics/svg/SVGResourceFilter.cpp:
1861        (WebCore::SVGResourceFilter::addFilterEffect):
1862        (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
1863        * platform/graphics/svg/SVGResourceFilter.h:
1864        (WebCore::SVGResourceFilter::xBoundingBoxMode):
1865        (WebCore::SVGResourceFilter::setXBoundingBoxMode):
1866        (WebCore::SVGResourceFilter::yBoundingBoxMode):
1867        (WebCore::SVGResourceFilter::setYBoundingBoxMode):
1868        * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
1869        (WebCore::SVGResourceFilter::SVGResourceFilter):
1870        (WebCore::SVGResourceFilter::createFilterEffect):
1871        (WebCore::SVGResourceFilter::prepareFilter):
1872        (WebCore::dumpOutputImage):
1873        (WebCore::SVGResourceFilter::applyFilter):
1874        (WebCore::SVGResourceFilter::getCIFilterStack):
1875        (WebCore::SVGResourceFilter::imageForName):
1876        (WebCore::SVGResourceFilter::setImageForName):
1877        (WebCore::SVGResourceFilter::setOutputImage):
1878        (WebCore::alphaImageForImage):
1879        (WebCore::SVGResourceFilter::inputImage):
1880        * platform/graphics/svg/filters/SVGDistantLightSource.h:
1881        * platform/graphics/svg/filters/SVGFEBlend.cpp:
1882        (WebCore::SVGFEBlend::SVGFEBlend):
1883        * platform/graphics/svg/filters/SVGFEBlend.h:
1884        * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
1885        (WebCore::SVGFEColorMatrix::SVGFEColorMatrix):
1886        * platform/graphics/svg/filters/SVGFEColorMatrix.h:
1887        * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
1888        (WebCore::SVGFEComponentTransfer::SVGFEComponentTransfer):
1889        * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
1890        (WebCore::SVGComponentTransferFunction::SVGComponentTransferFunction):
1891        * platform/graphics/svg/filters/SVGFEComposite.cpp:
1892        (WebCore::SVGFEComposite::SVGFEComposite):
1893        * platform/graphics/svg/filters/SVGFEComposite.h:
1894        * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
1895        (WebCore::SVGFEConvolveMatrix::SVGFEConvolveMatrix):
1896        * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
1897        * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
1898        (WebCore::SVGFEDiffuseLighting::SVGFEDiffuseLighting):
1899        * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
1900        * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
1901        (WebCore::SVGFEDisplacementMap::SVGFEDisplacementMap):
1902        * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
1903        * platform/graphics/svg/filters/SVGFEFlood.cpp:
1904        (WebCore::SVGFEFlood::SVGFEFlood):
1905        * platform/graphics/svg/filters/SVGFEFlood.h:
1906        * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
1907        (WebCore::SVGFEGaussianBlur::SVGFEGaussianBlur):
1908        * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
1909        * platform/graphics/svg/filters/SVGFEImage.cpp:
1910        (WebCore::SVGFEImage::SVGFEImage):
1911        * platform/graphics/svg/filters/SVGFEImage.h:
1912        * platform/graphics/svg/filters/SVGFEMerge.cpp:
1913        * platform/graphics/svg/filters/SVGFEMerge.h:
1914        (WebCore::SVGFEMerge::SVGFEMerge):
1915        * platform/graphics/svg/filters/SVGFEMorphology.cpp:
1916        (WebCore::SVGFEMorphology::SVGFEMorphology):
1917        * platform/graphics/svg/filters/SVGFEMorphology.h:
1918        * platform/graphics/svg/filters/SVGFEOffset.cpp:
1919        (WebCore::SVGFEOffset::SVGFEOffset):
1920        * platform/graphics/svg/filters/SVGFEOffset.h:
1921        * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
1922        (WebCore::SVGFESpecularLighting::SVGFESpecularLighting):
1923        * platform/graphics/svg/filters/SVGFESpecularLighting.h:
1924        * platform/graphics/svg/filters/SVGFETile.h:
1925        (WebCore::SVGFETile::SVGFETile):
1926        * platform/graphics/svg/filters/SVGFETurbulence.cpp:
1927        (WebCore::SVGFETurbulence::SVGFETurbulence):
1928        * platform/graphics/svg/filters/SVGFETurbulence.h:
1929        * platform/graphics/svg/filters/SVGFilterEffect.cpp:
1930        (WebCore::SVGFilterEffect::SVGFilterEffect):
1931        (WebCore::SVGFilterEffect::primitiveBBoxForFilterBBox):
1932        (WebCore::SVGFilterEffect::filter):
1933        (WebCore::SVGFilterEffect::setFilter):
1934        * platform/graphics/svg/filters/SVGFilterEffect.h:
1935        (WebCore::SVGFilterEffect::xBoundingBoxMode):
1936        (WebCore::SVGFilterEffect::setXBoundingBoxMode):
1937        (WebCore::SVGFilterEffect::yBoundingBoxMode):
1938        (WebCore::SVGFilterEffect::setYBoundingBoxMode):
1939        (WebCore::SVGFilterEffect::widthBoundingBoxMode):
1940        (WebCore::SVGFilterEffect::setWidthBoundingBoxMode):
1941        (WebCore::SVGFilterEffect::heightBoundingBoxMode):
1942        (WebCore::SVGFilterEffect::setHeightBoundingBoxMode):
1943        * platform/graphics/svg/filters/SVGLightSource.cpp:
1944        * platform/graphics/svg/filters/SVGLightSource.h:
1945        * platform/graphics/svg/filters/SVGPointLightSource.h:
1946        (WebCore::SVGPointLightSource::SVGPointLightSource):
1947        * platform/graphics/svg/filters/SVGSpotLightSource.h:
1948        (WebCore::SVGSpotLightSource::SVGSpotLightSource):
1949        * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
1950        (WebCore::SVGFEBlend::getCIFilter):
1951        * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
1952        (WebCore::SVGFEColorMatrix::getCIFilter):
1953        * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
1954        (WebCore::filterForComponentFunc):
1955        (WebCore::SVGFEComponentTransfer::getCIFilter):
1956        * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
1957        (WebCore::SVGFEComposite::getCIFilter):
1958        * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
1959        (WebCore::SVGFEDiffuseLighting::getCIFilter):
1960        * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
1961        (WebCore::SVGFEDisplacementMap::getCIFilter):
1962        * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
1963        (WebCore::SVGFEFlood::getCIFilter):
1964        * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
1965        (WebCore::SVGFEGaussianBlur::getCIFilter):
1966        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
1967        * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
1968        (WebCore::SVGFEImage::getCIFilter):
1969        * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
1970        (WebCore::SVGFEMerge::getCIFilter):
1971        * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
1972        (WebCore::SVGFEOffset::getCIFilter):
1973        * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
1974        (WebCore::SVGFESpecularLighting::getCIFilter):
1975        * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
1976        (WebCore::SVGFETile::getCIFilter):
1977        * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
1978        (WebCore::SVGFilterEffect::getCIFilter):
1979        * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.cikernel:
1980        * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.cikernel:
1981        * platform/graphics/svg/filters/cg/WKSpotLightFilter.m:
1982        (-[WKSpotLightFilter outputImage]):
1983        * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
1984        (WebCore::SVGResourceFilter::createFilterEffect):
1985
19862007-08-20  Rob Buis  <buis@kde.org>
1987
1988        Reviewed by Nikolas.
1989
1990        http://bugs.webkit.org/show_bug.cgi?id=14924
1991        rotated rect with pattern draws incorrectly
1992
1993        Use the bounding box before transformation.
1994
1995        * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
1996        (WebCore::SVGPaintServerPattern::setup):
1997
19982007-08-19  Rob Buis  <buis@kde.org>
1999
2000        Reviewed by Nikolas.
2001
2002        http://bugs.webkit.org/show_bug.cgi?id=14926
2003        WebKit has 'em' length handling problems related to CSS properties
2004
2005        Parse the properties in inline style attributes non-strict for SVG.
2006
2007        * dom/StyledElement.cpp:
2008        (WebCore::StyledElement::createInlineStyleDecl):
2009
20102007-08-17  Rob Buis  <buis@kde.org>
2011
2012        Reviewed by Oliver.
2013
2014        http://bugs.webkit.org/show_bug.cgi?id=14927
2015        use element in SVG does not render after parent is displayed off and on
2016
2017        Also detach the shadow tree when detaching the <use>.
2018
2019        * ksvg2/svg/SVGUseElement.cpp:
2020        (WebCore::SVGUseElement::detach):
2021        * ksvg2/svg/SVGUseElement.h:
2022
20232007-08-10  Nikolas Zimmermann  <zimmermann@kde.org>
2024
2025        Reviewed by Rob.
2026
2027        Fixes: http://bugs.webkit.org/show_bug.cgi?id=14153
2028
2029        Final, long-awaited RenderSVGContainer split. Make RenderSVGContainer really a simple
2030        container without special cases for inner <svg> elements or <marker>. Create a new
2031        RenderSVGViewportContainer class handling these cases now.
2032
2033        * WebCore.xcodeproj/project.pbxproj:
2034        * ksvg2/svg/SVGMarkerElement.cpp:
2035        (WebCore::SVGMarkerElement::createRenderer):
2036        * ksvg2/svg/SVGSVGElement.cpp:
2037        (WebCore::SVGSVGElement::createRenderer):
2038        * ksvg2/svg/SVGSVGElement.h:
2039        * rendering/RenderSVGContainer.cpp:
2040        (WebCore::RenderSVGContainer::layout):
2041        (WebCore::RenderSVGContainer::applyContentTransforms):
2042        (WebCore::RenderSVGContainer::applyAdditionalTransforms):
2043        (WebCore::RenderSVGContainer::paint):
2044        (WebCore::RenderSVGContainer::viewportTransform):
2045        (WebCore::RenderSVGContainer::relativeBBox):
2046        (WebCore::RenderSVGContainer::nodeAtPoint):
2047        * rendering/RenderSVGContainer.h:
2048        * rendering/RenderSVGRoot.cpp:
2049        * rendering/RenderSVGViewportContainer.cpp: Added.
2050        (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
2051        (WebCore::RenderSVGViewportContainer::~RenderSVGViewportContainer):
2052        (WebCore::RenderSVGViewportContainer::layout):
2053        (WebCore::RenderSVGViewportContainer::paint):
2054        (WebCore::RenderSVGViewportContainer::applyContentTransforms):
2055        (WebCore::RenderSVGViewportContainer::applyAdditionalTransforms):
2056        (WebCore::RenderSVGViewportContainer::viewport):
2057        (WebCore::RenderSVGViewportContainer::calcViewport):
2058        (WebCore::RenderSVGViewportContainer::viewportTransform):
2059        (WebCore::RenderSVGViewportContainer::absoluteTransform):
2060        (WebCore::RenderSVGViewportContainer::nodeAtPoint):
2061        * rendering/RenderSVGViewportContainer.h: Added.
2062        (WebCore::RenderSVGViewportContainer::isSVGContainer):
2063        (WebCore::RenderSVGViewportContainer::renderName):
2064
20652007-08-10  Nikolas Zimmermann  <zimmermann@kde.org>
2066
2067        Reviewed by Oliver & Rob.
2068
2069        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12501 (SVG Text fails to respect opacity, fill-opacity and stroke-opacity)
2070        Fixes: http://bugs.webkit.org/show_bug.cgi?id=14045 (Incorrect support for opacity, fill-opacity and stroke-opacity)
2071
2072        Based on an older patch from Rob, this fixes SVG text opacity as well as group opacity for solid fills & gradients.
2073        The pattern changes are still missing a testcase (need to wait for Antoine Quint for that).
2074
2075        * platform/graphics/svg/SVGResourceFilter.h:
2076        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2077        (WebCore::SVGPaintServerGradient::setup):
2078        * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
2079        (WebCore::SVGPaintServerPattern::setup):
2080        * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
2081        (WebCore::colorFromFloatComponents):
2082        (WebCore::SVGPaintServerSolid::setup):
2083        * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
2084        (WebCore::SVGResourceFilter::SVGResourceFilter):
2085        (WebCore::SVGResourceFilter::prepareFilter):
2086        (WebCore::SVGResourceFilter::applyFilter):
2087        * rendering/RenderPath.cpp:
2088        (WebCore::RenderPath::paint):
2089        * rendering/RenderSVGContainer.cpp:
2090        (WebCore::RenderSVGContainer::paint):
2091        (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
2092        * rendering/RenderSVGImage.cpp:
2093        (WebCore::RenderSVGImage::paint):
2094        (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
2095        * rendering/RenderSVGRoot.cpp:
2096        (WebCore::RenderSVGRoot::paint):
2097        * rendering/RenderSVGText.cpp:
2098        (WebCore::RenderSVGText::absoluteClippedOverflowRect):
2099        * rendering/SVGRenderSupport.cpp:
2100        (WebCore::prepareToRenderSVGContent):
2101        (WebCore::finishRenderSVGContent):
2102        * rendering/SVGRenderSupport.h:
2103        * rendering/SVGRootInlineBox.cpp:
2104        (WebCore::prepareTextRendering):
2105        (WebCore::SVGRootInlineBox::paint):
2106        (WebCore::SVGRootInlineBox::paintChildInlineFlowBox):
2107
21082007-08-08  Rob Buis  <buis@kde.org>
2109
2110        Reviewed by Nikolas.
2111
2112        http://bugs.webkit.org/show_bug.cgi?id=11909
2113        Regression: large SVG from Illustrator comes out blank
2114
2115        Fix last issue with the Illustrator file by making relativeBBox
2116        calculation take into account viewBox.
2117
2118        * rendering/RenderSVGContainer.cpp:
2119        (WebCore::RenderSVGContainer::relativeBBox):
2120        * rendering/RenderSVGRoot.cpp:
2121        (WebCore::RenderSVGRoot::relativeBBox):
2122
21232007-08-08  Nikolas Zimmermann  <zimmermann@kde.org>
2124
2125        Reviewed by Oliver.
2126
2127        Fixes: http://bugs.webkit.org/show_bug.cgi?id=14896 (SVG InlineText/Flow box sizes don't take rotated glyphs into account)
2128
2129        Introduce new helper function calculateGlyphBoundaries, which takes into account any per-character transformation.
2130        This fixes box size calculations in svg/W3C-SVG-1.1/text-text-07-t.svg, svg/batik/text/textEffect3.svg (rotated glyphs)
2131        -> These strings can be properly selected now, just as well as text path elements.
2132
2133        * rendering/SVGInlineTextBox.cpp:
2134        (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
2135        (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2136        (WebCore::SVGInlineTextBox::nodeAtPoint):
2137        (WebCore::SVGInlineTextBox::selectionRect):
2138        * rendering/SVGInlineTextBox.h:
2139        * rendering/SVGRootInlineBox.cpp:
2140        (WebCore::SVGRootInlineBox::layoutInlineBoxes):
2141
21422007-08-08  Nikolas Zimmermann  <zimmermann@kde.org>
2143
2144        Reviewed by Oliver.
2145
2146        Fixes: http://bugs.webkit.org/show_bug.cgi?id=13909 (SVG text selection doesn't work with RTL text)
2147
2148        Use drawHighlightForText() to draw the selection, instead of my home-brewn solution.
2149        Affected code in SVGRootInlineBox::paintSelectionForTextBox. Removed not anymore needed
2150        helper function cummulatedWidthOfSelectionRange.
2151
2152        Dump all contained InlineTextBox(es) in SVGRenderTreeAsText, take into account multiple
2153        child text boxes in ie. a RenderSVGInlineText objects (which happens for RTL text and
2154        LTR text cases where newlines were involved - see changed testcase results.)
2155        This affects a lot of LTR tests which actually had more than one child text box, that
2156        wasn't taken properly into account before (in terms of selection, not rendering.)
2157
2158        Fix selection for RTL text by taking box start offsets into account in closestCharacterToPosition()
2159        and by offering RTL text selection special cases in svgCharacterHitsPosition().
2160
2161        Centralized the creation of a TextStyle object for text selection/painting in a new helper function
2162        svgTextStyleForInlineTextBox. Add new helper functions calculateGlyphWidth/calculateGlyphHeight to
2163        centralize these calculations -> use these new helpers everywhere to avoid code duplication.
2164
2165        A single fix in bidi.cpp was needed to fix SVG's unicode-bidi/direction handling, to fix text-intro-02-b.svg.
2166        SVG didacts that the 'direction' attribute is ignored if unicode-bidi is set to 'normal' (default).
2167        Discussed with Mitz.
2168
2169        * rendering/RenderSVGInlineText.cpp:
2170        (WebCore::RenderSVGInlineText::positionForCoordinates):
2171        * rendering/SVGInlineTextBox.cpp:
2172        (WebCore::SVGInlineTextBox::calculateGlyphWidth):
2173        (WebCore::SVGInlineTextBox::calculateGlyphHeight):
2174        (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2175        (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
2176        (WebCore::SVGInlineTextBox::nodeAtPoint):
2177        (WebCore::SVGInlineTextBox::selectionRect):
2178        * rendering/SVGInlineTextBox.h:
2179        * rendering/SVGRenderTreeAsText.cpp:
2180        (WebCore::writeSVGInlineTextBox):
2181        (WebCore::writeSVGInlineText):
2182        * rendering/SVGRootInlineBox.cpp:
2183        (WebCore::cummulatedWidthOfInlineBoxCharacterRange): Take box start offset into account.
2184        (WebCore::svgTextStyleForInlineTextBox): New helper function.
2185        (WebCore::totalAdvanceOfInlineTextBox): Take box start offset into account.
2186        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Ditto. (correctly calculate advance values in RTL mode!)
2187        (WebCore::SVGRootInlineBox::paintSelectionForTextBox): Use GraphicsContext drawHighlightForText() instead of self-made hacks.
2188        (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox): Use new helper function svgTextStyleForInlineTextBox.
2189        * rendering/SVGRootInlineBox.h:
2190        * rendering/bidi.cpp: Add special case for SVG.
2191        (WebCore::RenderBlock::layoutInlineChildren):
2192
21932007-07-30  Nikolas Zimmermann  <zimmermann@kde.org>
2194
2195        Reviewed by Oliver & Rob.
2196
2197        Enable SVG textPath selection. Actually build chunks for them instead of
2198        ignoring them - was easier than I thought. Respect per-character transformation
2199        when calculating the chunk boundaries for the selection rectangles. Also fixes
2200        selection rect drawing of rotated characters.
2201
2202        Next thing todo is to unify the glyph size calculations, as per-glyph transformations
2203        are not respected when calculating flow box sizes in SVGRootInlineBox.
2204 
2205        * rendering/RenderObject.h:
2206        (WebCore::RenderObject::isSVGHiddenContainer):
2207        * rendering/RenderSVGHiddenContainer.h:
2208        (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
2209        * rendering/RenderSVGInlineText.cpp:
2210        (WebCore::isChildOfHiddenContainer):
2211        (WebCore::RenderSVGInlineText::selectionRect):
2212        (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
2213        * rendering/SVGCharacterLayoutInfo.h:
2214        (WebCore::SVGTextChunk::SVGTextChunk):
2215        (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
2216        * rendering/SVGInlineTextBox.cpp:
2217        (WebCore::SVGInlineTextBox::selectionRect):
2218        * rendering/SVGRootInlineBox.cpp:
2219        (WebCore::applyTextAnchorToTextChunk):
2220        (WebCore::SVGRootInlineBox::buildTextChunks):
2221
22222007-07-25  Rob Buis  <buis@kde.org>
2223
2224        Reviewed by Nikolas.
2225
2226        http://bugs.webkit.org/show_bug.cgi?id=14312
2227        Removing an attribute has no effect on SVG
2228
2229        Update the transform matrix also when transform attribute is empty.
2230
2231        * ksvg2/svg/SVGStyledTransformableElement.cpp:
2232        (WebCore::SVGStyledTransformableElement::updateLocalTransform):
2233
22342007-07-26  Nikolas Zimmermann  <zimmermann@kde.org>
2235
2236        Reviewed by Oliver.
2237
2238        Unify absoluteRects() of RenderSVGTSpan & RenderSVGTextPath.
2239        The RenderSVGTextPath one was still using the old, wrong concept.
2240
2241        * rendering/RenderSVGTSpan.cpp: Remove unused params tx, ty, while I'm at it.
2242        (WebCore::RenderSVGTSpan::absoluteRects):
2243        * rendering/RenderSVGTextPath.cpp:
2244        (WebCore::RenderSVGTextPath::absoluteRects):
2245
22462007-07-25  Nikolas Zimmermann  <zimmermann@kde.org>
2247
2248        Reviewed by Sam.
2249
2250        Let <textPath> be recognized within the ObjC bindings.
2251        Forgot to add that months ago.
2252
2253        * bindings/objc/DOM.mm:
2254        (WebCore::createElementClassMap):
2255        * bindings/objc/DOMInternal.h:
2256        * bindings/objc/DOMSVG.h:
2257
22582007-07-25  Nikolas Zimmermann  <zimmermann@kde.org>
2259
2260        Reviewed by Oliver.
2261
2262        Fixes: http://bugs.webkit.org/show_bug.cgi?id=14065
2263
2264        Fix all known bugs regarding to SVG text selection, when embedded in XHTML.
2265        Also fix inspecting <text> elements when embedded in XHTML. (WebInspector)
2266
2267        Short story: selectionRect() & friends are special in terms of the "HTML parent translation".
2268        Caused by ie. CSS translation like "left: 50px; top: 50px" when <svg> is a child of a <div>.
2269        For non-textual objects like RenderPath, we can easily add a translation to a new coordinate
2270        space in RenderSVGRoot::applyContentTransformations() and we're done with it.
2271
2272        Same for painting text, but text selection makes problems in this concept.
2273        We have to remove the 'html parent translation' from our selection rects that we return
2274        from RenderSVGText & RenderSVGInlineText. Hopefully all issues are fixed now.
2275
2276        Long story:
2277        - RenderSVGRoot::nodeAtPoint didn't take the parent 'scroll offset' into account. We exited
2278          too early, because the overflow rect wasn't correctly sized. Fixed.
2279        - RenderSVGRoot::absoluteRects() can't return the absoluteClippedOverflowRect() as it includes
2280          the 'html parent translation', which needs to be removed, otherwhise the painted rects are off
2281          when inspecting with WebInspector. -> Pass down absoluteRects() call to it's children..
2282        - RenderSVGText::absoluteRects() can't use absoluteClippedOverflowRect() for the same reason.
2283        - Add RenderSVGInlineText::computeAbsoluteRectForRange() function - shared by absoluteRects() and
2284          selectionRect() - and remove the 'html parent translation' there by asking the RenderSVGRoot
2285          object for the correct offsets.
2286
2287        This lead to nasty bugs showing that SVGInlineTextBox::selectionRect() wasn't actually returning
2288        correct rectangles. It couldn't work for text chunks the way it was implemented. Fixed by implementing
2289        it exactly the same way that closestCharacterToPosition() was done - could share more code later on.
2290
2291        * rendering/RenderSVGInlineText.cpp:
2292        (WebCore::RenderSVGInlineText::absoluteRects):
2293        (WebCore::RenderSVGInlineText::selectionRect):
2294        (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
2295        * rendering/RenderSVGInlineText.h:
2296        * rendering/RenderSVGRoot.cpp:
2297        (WebCore::RenderSVGRoot::absoluteRects):
2298        (WebCore::RenderSVGRoot::nodeAtPoint):
2299        * rendering/RenderSVGText.cpp:
2300        (WebCore::RenderSVGText::absoluteRects):
2301        * rendering/SVGCharacterLayoutInfo.h: Removed unused variable 'bool selected'
2302        * rendering/SVGInlineTextBox.cpp:
2303        (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2304        (WebCore::SVGInlineTextBox::nodeAtPoint):
2305        (WebCore::SVGInlineTextBox::selectionRect):
2306        * rendering/SVGRootInlineBox.cpp: Add 'findSVGRootObject' helper function.
2307        (WebCore::findSVGRootObject):
2308        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2309        (WebCore::SVGRootInlineBox::paintSelectionForTextBox): Remove unused tx/ty parameters.
2310        (WebCore::SVGRootInlineBox::paintChildInlineTextBox):
2311        (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox):
2312        * rendering/SVGRootInlineBox.h:
2313
23142007-07-17  Nikolas Zimmermann  <zimmermann@kde.org>
2315
2316        Build fix. Not reviewed.
2317
2318        Rob forgot to land the changes to SVGResourceMarker in his last commit.
2319
2320        * platform/graphics/svg/SVGResourceMarker.cpp:
2321        (WebCore::SVGResourceMarker::draw):
2322
23232007-07-17  Rob Buis  <buis@kde.org>
2324
2325        Reviewed by Nikolas.
2326
2327        http://bugs.webkit.org/show_bug.cgi?id=5996
2328        SVG <view> is unimplemented
2329
2330        Implement <view> and refactor the code in the svg renderer container classes.
2331
2332        * WebCore.xcodeproj/project.pbxproj:
2333        * ksvg2/svg/SVGDocument.cpp:
2334        (WebCore::SVGDocument::zoomAndPanEnabled): Take into account currentView for zoom/pan
2335        * ksvg2/svg/SVGDocument.h:
2336        * ksvg2/svg/SVGFEImageElement.cpp:
2337        (WebCore::SVGFEImageElement::parseMappedAttribute):
2338        * ksvg2/svg/SVGFitToViewBox.cpp:
2339        (WebCore::SVGFitToViewBox::parseViewBox):
2340        (WebCore::SVGFitToViewBox::parseMappedAttribute):
2341        * ksvg2/svg/SVGFitToViewBox.h:
2342        * ksvg2/svg/SVGImageElement.cpp:
2343        (WebCore::SVGImageElement::parseMappedAttribute):
2344        * ksvg2/svg/SVGLocatable.h:
2345        * ksvg2/svg/SVGMarkerElement.cpp:
2346        (WebCore::SVGMarkerElement::createRenderer):
2347        (WebCore::SVGMarkerElement::notifyAttributeChange):
2348        * ksvg2/svg/SVGPreserveAspectRatio.cpp:
2349        (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
2350        * ksvg2/svg/SVGPreserveAspectRatio.h:
2351        * ksvg2/svg/SVGSVGElement.cpp:
2352        (WebCore::SVGSVGElement::SVGSVGElement):
2353        (WebCore::SVGSVGElement::currentView):
2354        (WebCore::SVGSVGElement::parseMappedAttribute):
2355        (WebCore::SVGSVGElement::createRenderer):
2356        (WebCore::SVGSVGElement::viewBoxToViewTransform):
2357        (WebCore::SVGSVGElement::inheritViewAttributes):
2358        * ksvg2/svg/SVGSVGElement.h:
2359        * ksvg2/svg/SVGTransformable.cpp:
2360        (WebCore::SVGTransformable::parseTransformAttribute):
2361        * ksvg2/svg/SVGTransformable.h:
2362        * ksvg2/svg/SVGViewElement.cpp:
2363        (WebCore::SVGViewElement::parseMappedAttribute):
2364        * ksvg2/svg/SVGViewElement.h:
2365        * ksvg2/svg/SVGViewSpec.cpp: Added.
2366        (WebCore::SVGViewSpec::SVGViewSpec):
2367        (WebCore::SVGViewSpec::~SVGViewSpec):
2368        (WebCore::SVGViewSpec::setTransform):
2369        (WebCore::SVGViewSpec::setViewBoxString):
2370        (WebCore::SVGViewSpec::setPreserveAspectRatioString):
2371        (WebCore::SVGViewSpec::setViewTargetString):
2372        (WebCore::SVGViewSpec::viewTarget):
2373        (WebCore::SVGViewSpec::contextElement):
2374        (WebCore::):
2375        (WebCore::SVGViewSpec::parseViewSpec):
2376        * ksvg2/svg/SVGViewSpec.h: Added.
2377        (WebCore::SVGViewSpec::transform):
2378        (WebCore::SVGViewSpec::viewTargetString):
2379        * ksvg2/svg/SVGZoomAndPan.cpp:
2380        (WebCore::SVGZoomAndPan::parseMappedAttribute):
2381        (WebCore::):
2382        (WebCore::SVGZoomAndPan::parseZoomAndPan):
2383        * ksvg2/svg/SVGZoomAndPan.h:
2384        * loader/FrameLoader.cpp:
2385        (WebCore::FrameLoader::gotoAnchor):
2386        * page/Frame.cpp:
2387        (WebCore::Frame::setZoomFactor): do not zoom when it is disabled
2388        * rendering/RenderSVGContainer.cpp:
2389        (WebCore::RenderSVGContainer::RenderSVGContainer):
2390        (WebCore::RenderSVGContainer::paint):
2391        (WebCore::RenderSVGContainer::viewportTransform):
2392        * rendering/RenderSVGContainer.h:
2393        * rendering/RenderSVGRoot.cpp:
2394        (WebCore::RenderSVGRoot::RenderSVGRoot):
2395        (WebCore::RenderSVGRoot::applyContentTransforms):
2396        (WebCore::RenderSVGRoot::paint):
2397        (WebCore::RenderSVGRoot::absoluteTransform):
2398        (WebCore::RenderSVGRoot::localTransform):
2399        * rendering/RenderSVGRoot.h:
2400
24012007-07-16  Nikolas Zimmermann  <zimmermann@kde.org>
2402
2403        Reviewed by Rob.
2404
2405        Fixes: http://bugs.webkit.org/show_bug.cgi?id=13611 (Crash in setAttributeNS setting href of SVG <use> to nonexistent symbol)
2406        Fixes: http://bugs.webkit.org/show_bug.cgi?id=14631 (<use> doesn't deep-expand <symbol> elements.)
2407
2408        Rework <use> on <foreignObject> cases, to not just ignore these cases, but actually proceed and skip <fO> objects
2409        from the resulting cloned tree. This fixes parts of "treasure_map.svg" (no bug report availabe on that one, private "testcase").
2410
2411        Fix assertion happening with <use> on <g> containing <symbol>. Introduce expandSymbolElementsInShadowTree()
2412        concept, just like it's done for <use> on <use>, to deep-replace all <symbol> elements by <svg>, as demanded
2413        by the spec. This only worked on <use> on <symbol> direct cases so far.
2414
2415        Added testcase: svg/custom/use-on-g-containing-foreignObject-and-image.svg (testcase for treasure_map.svg)
2416                        svg/custom/use-on-disallowed-foreign-object-5.svg (<use> on <symbol> containg <foreignObject>)
2417                        svg/custom/use-on-disallowed-foreign-object-6.svg (<use> on <g> containing <svg> containing <foreignObject>)
2418                        svg/custom/use-on-disallowed-foreign-object-7.svg (<use> on <g> containing <symbol> containing <foreignObject>)
2419                        svg/custom/use-scripting-changes-to-nonexistant-href.svg
2420
2421        * ksvg2/svg/SVGUseElement.cpp:
2422        (WebCore::isDisallowedElement):
2423        (WebCore::subtreeContainsDisallowedElement):
2424        (WebCore::SVGUseElement::buildPendingResource):
2425        (WebCore::SVGUseElement::buildInstanceTree):
2426        (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
2427        (WebCore::SVGUseElement::buildShadowTree):
2428        (WebCore::SVGUseElement::expandUseElementsInShadowTree):
2429        (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
2430        * ksvg2/svg/SVGUseElement.h:
2431
24322007-07-15  Nikolas Zimmermann  <zimmermann@kde.org>
2433
2434        Reviewed by Rob.
2435
2436        Fix invisible-text-after-scrolling.xhtml regression. Scroll offset not
2437        taken into account properly. Also fix RenderSVGInlineText::selectionRect(),
2438        so that SVG text can be selected, when being embedded in XHTML.
2439
2440        * rendering/RenderSVGInlineText.cpp:
2441        (WebCore::RenderSVGInlineText::selectionRect):
2442        * rendering/RenderSVGRoot.cpp:
2443        (WebCore::RenderSVGRoot::applyContentTransforms):
2444
24452007-07-15  Nikolas Zimmermann  <zimmermann@kde.org>
2446
2447        Reviewed by Oliver.
2448
2449        Fixes: http://bugs.webkit.org/show_bug.cgi?id=5940 (<svg> inside <body> incorrectly extends over top/bottom borders)
2450        Fixes: http://bugs.webkit.org/show_bug.cgi?id=14145 (RenderSVGContainer should not inherit from RenderContainer)
2451
2452        Make RenderSVGContainer inherit from RenderObject directly, instead of RenderContainer.
2453        Itdoes a lot of things that we don't need for SVG, and by removing this inheritance
2454        we can finally fix the differences about SVG object positioning, as we don't need
2455        parent translation (tx/ty). Fixes SVG text rendering within XHTML.
2456
2457        Fix requireLayer() function on RenderSVGRoot, as it can actually be a layer now.
2458        This change is based on Rob's patch at 5940 - fixing z-order indexing.
2459
2460        Change RenderSVGRoot renderName() and update all layout tests, because of this change.
2461        
2462        Fix absoluteRects() function for RenderSVGInlineText & RenderSVGTSpan.
2463        Checked extensively using WebInspector, to assure all rects are correctly displayed.
2464
2465        Testcases fixed: junk-data.svg, missing-xlink.svg hixie/013.xml (all regressions!)
2466        (junk-data.svg & missing-xlink.svg previously relied on SVG text painting out of <svg> overflow rect.
2467         Fix these testcases, as within this new RenderSVGContainer concept, that bug is now fixed, and breaks them)
2468
2469        Testcases added: custom/absolute-sized-svg-in-xhtml.xhtml, custom/inline-svg-in-xhtml.xml (Mozilla XTech demo)
2470
2471        * ksvg2/svg/SVGSVGElement.cpp:
2472        (WebCore::SVGSVGElement::parseMappedAttribute):
2473        * rendering/RenderObject.cpp:
2474        (WebCore::RenderObject::containingBlock):
2475        * rendering/RenderObject.h:
2476        (WebCore::RenderObject::isSVGRoot):
2477        * rendering/RenderPath.cpp:
2478        (WebCore::RenderPath::paint):
2479        (WebCore::RenderPath::addFocusRingRects):
2480        * rendering/RenderSVGContainer.cpp:
2481        (WebCore::RenderSVGContainer::RenderSVGContainer):
2482        (WebCore::RenderSVGContainer::canHaveChildren):
2483        (WebCore::RenderSVGContainer::addChild):
2484        (WebCore::RenderSVGContainer::removeChild):
2485        (WebCore::RenderSVGContainer::destroy):
2486        (WebCore::RenderSVGContainer::destroyLeftoverChildren):
2487        (WebCore::RenderSVGContainer::removeChildNode):
2488        (WebCore::RenderSVGContainer::appendChildNode):
2489        (WebCore::RenderSVGContainer::insertChildNode):
2490        (WebCore::RenderSVGContainer::layout):
2491        (WebCore::RenderSVGContainer::calcReplacedWidth):
2492        (WebCore::RenderSVGContainer::calcReplacedHeight):
2493        (WebCore::RenderSVGContainer::applyContentTransforms):
2494        (WebCore::RenderSVGContainer::paint):
2495        (WebCore::RenderSVGContainer::absoluteTransform):
2496        (WebCore::RenderSVGContainer::nodeAtPoint):
2497        * rendering/RenderSVGContainer.h:
2498        (WebCore::RenderSVGContainer::firstChild):
2499        (WebCore::RenderSVGContainer::lastChild):
2500        (WebCore::RenderSVGContainer::width):
2501        (WebCore::RenderSVGContainer::height):
2502        (WebCore::RenderSVGContainer::moveChildNode):
2503        (WebCore::RenderSVGContainer::calcPrefWidths):
2504        * rendering/RenderSVGHiddenContainer.cpp:
2505        (WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
2506        (WebCore::RenderSVGHiddenContainer::paint):
2507        (WebCore::RenderSVGHiddenContainer::absoluteRects):
2508        (WebCore::RenderSVGHiddenContainer::relativeBBox):
2509        * rendering/RenderSVGHiddenContainer.h:
2510        * rendering/RenderSVGImage.cpp:
2511        (WebCore::RenderSVGImage::paint):
2512        * rendering/RenderSVGInline.cpp:
2513        (WebCore::RenderSVGInline::RenderSVGInline):
2514        * rendering/RenderSVGInlineText.cpp:
2515        (WebCore::RenderSVGInlineText::absoluteRects):
2516        * rendering/RenderSVGRoot.cpp:
2517        (WebCore::RenderSVGRoot::applyContentTransforms):
2518        (WebCore::RenderSVGRoot::paint):
2519        (WebCore::RenderSVGRoot::addFocusRingRects):
2520        * rendering/RenderSVGRoot.h:
2521        (WebCore::RenderSVGRoot::isSVGRoot):
2522        (WebCore::RenderSVGRoot::renderName):
2523        * rendering/RenderSVGTSpan.cpp:
2524        (WebCore::RenderSVGTSpan::RenderSVGTSpan):
2525        (WebCore::RenderSVGTSpan::absoluteRects):
2526        * rendering/RenderSVGTextPath.cpp:
2527        (WebCore::RenderSVGTextPath::absoluteRects):
2528        * rendering/RenderTreeAsText.cpp:
2529        (WebCore::write):
2530        * rendering/SVGRenderTreeAsText.cpp:
2531        (WebCore::operator<<):
2532        (WebCore::write):
2533        * rendering/SVGRenderTreeAsText.h:
2534
25352007-07-11  Nikolas Zimmermann  <zimmermann@kde.org>
2536
2537        Reviewed by Sam.
2538
2539        Remove all "SVGElement* m_context" parameters spread over SVG primitives
2540        (like SVGAngle, SVGPreserveAspectRatio, SVGTransformList, ...)
2541
2542        This is all handled by the JS generation in the bindings now, leading
2543        to a faster static rendering codepaths, and easier handling of the dynamic
2544        parts like JS scripting. Remove the mystified genericContext() concept alltogether.
2545
2546        * bindings/js/JSSVGMatrixCustom.cpp: Adapt to the context() change.
2547        (WebCore::JSSVGMatrix::multiply):
2548        (WebCore::JSSVGMatrix::inverse):
2549        (WebCore::JSSVGMatrix::translate):
2550        (WebCore::JSSVGMatrix::scale):
2551        (WebCore::JSSVGMatrix::scaleNonUniform):
2552        (WebCore::JSSVGMatrix::rotate):
2553        (WebCore::JSSVGMatrix::rotateFromVector):
2554        (WebCore::JSSVGMatrix::flipX):
2555        (WebCore::JSSVGMatrix::flipY):
2556        (WebCore::JSSVGMatrix::skewX):
2557        (WebCore::JSSVGMatrix::skewY):
2558        * bindings/js/JSSVGPODTypeWrapper.h: Remove all nAC() calls here!
2559        (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
2560        (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
2561        (WebCore::JSSVGPODTypeWrapperCreatorForList::~JSSVGPODTypeWrapperCreatorForList):
2562        * bindings/js/JSSVGPathSegCustom.cpp: Adapt to the context() change.
2563        (WebCore::toJS):
2564        * bindings/js/JSSVGPathSegListCustom.cpp: Ditto.
2565        (WebCore::JSSVGPathSegList::clear):
2566        (WebCore::JSSVGPathSegList::initialize):
2567        (WebCore::JSSVGPathSegList::getItem):
2568        (WebCore::JSSVGPathSegList::insertItemBefore):
2569        (WebCore::JSSVGPathSegList::replaceItem):
2570        (WebCore::JSSVGPathSegList::removeItem):
2571        (WebCore::JSSVGPathSegList::appendItem):
2572        * bindings/js/JSSVGPointListCustom.cpp: Ditto.
2573        (WebCore::JSSVGPointList::clear):
2574        (WebCore::JSSVGPointList::initialize):
2575        (WebCore::JSSVGPointList::getItem):
2576        (WebCore::JSSVGPointList::insertItemBefore):
2577        (WebCore::JSSVGPointList::replaceItem):
2578        (WebCore::JSSVGPointList::removeItem):
2579        (WebCore::JSSVGPointList::appendItem): 
2580        * bindings/js/JSSVGTransformListCustom.cpp: Ditto.
2581        (WebCore::JSSVGTransformList::clear):
2582        (WebCore::JSSVGTransformList::initialize):
2583        (WebCore::JSSVGTransformList::getItem):
2584        (WebCore::JSSVGTransformList::insertItemBefore):
2585        (WebCore::JSSVGTransformList::replaceItem):
2586        (WebCore::JSSVGTransformList::removeItem):
2587        (WebCore::JSSVGTransformList::appendItem):
2588        * bindings/js/kjs_binding.h: Add new cacheSVGDOMObject, taking third parameter: context.
2589        (KJS::cacheSVGDOMObject):
2590        * bindings/scripts/CodeGeneratorJS.pm: Change generation to step aways from genericContext().
2591        * ksvg2/misc/SVGDocumentExtensions.h: Kill all genericContext() stuff.
2592        (WebCore::SVGDocumentExtensions::hasBaseValue):
2593        * ksvg2/svg/SVGAngle.cpp: Kill context parameter.
2594        (WebCore::SVGAngle::SVGAngle):
2595        * ksvg2/svg/SVGAngle.h: ditto.
2596        * ksvg2/svg/SVGFEImageElement.cpp: SVG classes don't get context params passed anymore.
2597        (WebCore::SVGFEImageElement::SVGFEImageElement):
2598        * ksvg2/svg/SVGFitToViewBox.cpp: Ditto.
2599        (WebCore::SVGFitToViewBox::SVGFitToViewBox):
2600        * ksvg2/svg/SVGGradientElement.cpp: Ditto.
2601        (WebCore::SVGGradientElement::SVGGradientElement):
2602        * ksvg2/svg/SVGImageElement.cpp: Ditto.
2603        (WebCore::SVGImageElement::SVGImageElement):
2604        * ksvg2/svg/SVGMarkerElement.cpp: Ditto.
2605        (WebCore::SVGMarkerElement::SVGMarkerElement):
2606        (WebCore::SVGMarkerElement::parseMappedAttribute):
2607        * ksvg2/svg/SVGPathElement.cpp: Ditto.
2608        (WebCore::SVGPathElement::pathSegList):
2609        * ksvg2/svg/SVGPathSegList.cpp: Kill context parameter.
2610        (WebCore::SVGPathSegList::SVGPathSegList):
2611        * ksvg2/svg/SVGPathSegList.h:
2612        * ksvg2/svg/SVGPatternElement.cpp: SVG classes don't get context params passed anymore.
2613        (WebCore::SVGPatternElement::SVGPatternElement):
2614        * ksvg2/svg/SVGPointList.cpp: Kill context parameter.
2615        (SVGPointList::SVGPointList):
2616        * ksvg2/svg/SVGPointList.h:
2617        * ksvg2/svg/SVGPolyElement.cpp: SVG classes don't get context params passed anymore.
2618        (WebCore::SVGPolyElement::points):
2619        * ksvg2/svg/SVGPreserveAspectRatio.cpp: Kill context parameter.
2620        (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
2621        (WebCore::SVGPreserveAspectRatio::setAlign):
2622        (WebCore::SVGPreserveAspectRatio::setMeetOrSlice):
2623        (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
2624        * ksvg2/svg/SVGPreserveAspectRatio.h:
2625        * ksvg2/svg/SVGSVGElement.cpp: SVG classes don't get cntext params passed anymore.
2626        (WebCore::SVGSVGElement::createSVGAngle):
2627        * ksvg2/svg/SVGStyledTransformableElement.cpp: Ditto.
2628        (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
2629        * ksvg2/svg/SVGTextElement.cpp: Ditto.
2630        (WebCore::SVGTextElement::SVGTextElement):
2631        * ksvg2/svg/SVGTransformList.cpp: Kill context parameter.
2632        (SVGTransformList::SVGTransformList):
2633        * ksvg2/svg/SVGTransformList.h:
2634
26352007-07-10  Nikolas Zimmermann  <zimmermann@kde.org>
2636
2637        Reviewed by Sam.
2638
2639        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11167.
2640
2641        Recognize <textPath> in SVG JS bindings.
2642        Add JSSVGTextPathElement to JSSVGElementWrapperFactory.
2643
2644        Add SVGException.idl just for the JS generation.
2645        Turn on all SVG JS constructors and add them to DOMWindow.idl.
2646
2647        Testcase added: LayoutTests/svg/custom/js-svg-constructors.svg
2648    
2649        * DerivedSources.make: Add JSSVGException.h
2650        * WebCore.xcodeproj/project.pbxproj: Correct paths for DOM/JS*SVGTextPathElement
2651        * bindings/scripts/CodeGeneratorJS.pm: Forward port hash fix from trunk.
2652        * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGTextPathElement support
2653        * ksvg2/svg/SVGComponentTransferFunctionElement.idl:
2654        * ksvg2/svg/SVGTextPathElement.h:
2655        * ksvg2/svg/SVGException.h:
2656        * ksvg2/svg/SVGException.idl: Added.
2657        * ksvg2/svg/SVGFEBlendElement.idl:
2658        * ksvg2/svg/SVGFEColorMatrixElement.idl:
2659        * ksvg2/svg/SVGFECompositeElement.idl:
2660        * ksvg2/svg/SVGFEDisplacementMapElement.idl:
2661        * ksvg2/svg/SVGFETurbulenceElement.idl:
2662        * ksvg2/svg/SVGGradientElement.idl:
2663        * ksvg2/svg/SVGMarkerElement.idl:
2664        * ksvg2/svg/SVGTextContentElement.idl:
2665        * ksvg2/svg/SVGTextPathElement.idl:
2666        * page/DOMWindow.idl: Recognize new js svg constructors.
2667
26682007-06-28  Rob Buis  <buis@kde.org>
2669
2670        Reviewed by Maciej.
2671
2672        http://bugs.webkit.org/show_bug.cgi?id=14241
2673        SVG <image> with height or width less than 1 fails to render image
2674
2675        Keep extra member vars to get width/height as floats for accurate
2676        calculations.
2677
2678        * rendering/RenderSVGImage.cpp:
2679        (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
2680        (WebCore::RenderSVGImage::paint):
2681        (WebCore::RenderSVGImage::calcWidth):
2682        (WebCore::RenderSVGImage::calcHeight):
2683        * rendering/RenderSVGImage.h:
2684
26852007-06-26  Rob Buis  <buis@kde.org>
2686
2687        Reviewed by Maciej.
2688
2689        http://bugs.webkit.org/show_bug.cgi?id=9976
2690        Fix negative width issue in Hixie's test
2691
2692        Refuse to render zero or negative width/height.
2693
2694        * rendering/RenderSVGContainer.cpp:
2695        (WebCore::RenderSVGContainer::paint):
2696        * rendering/RenderSVGRoot.cpp:
2697        (WebCore::RenderSVGRoot::paint):
2698
26992007-06-26  Rob Buis  <buis@kde.org>
2700
2701        Reviewed by Maciej.
2702
2703        http://bugs.webkit.org/show_bug.cgi?id=12062
2704        WebCore does not handle CSS-specified fill fallback correctly
2705
2706        Implement fallback for fill and stroke.
2707
2708        * ksvg2/css/SVGCSSParser.cpp:
2709        (WebCore::CSSParser::parseSVGValue):
2710        * ksvg2/svg/SVGPaint.cpp:
2711        (WebCore::SVGPaint::SVGPaint):
2712        * ksvg2/svg/SVGPaint.h:
2713        * platform/graphics/svg/SVGPaintServer.cpp:
2714        (WebCore::SVGPaintServer::fillPaintServer):
2715        (WebCore::SVGPaintServer::strokePaintServer):
2716
27172007-06-20  Rob Buis  <buis@kde.org>
2718
2719        Reviewed by Eric.
2720
2721        http://bugs.webkit.org/show_bug.cgi?id=14157
2722        Rotated shape has wrong gradient rendering
2723
2724        Use the untransformed bbox in objectBoundingBoxMode. Also
2725        don't do objectBoundingBoxMode should the bbox width ort height
2726        be zero.
2727
2728        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2729        (WebCore::SVGPaintServerGradient::teardown):
2730        (WebCore::SVGPaintServerGradient::renderPath):
2731
27322007-06-20  Nikolas Zimmermann  <zimmermann@kde.org>
2733
2734        Reviewed by Eric & Oliver.
2735
2736        Fixes: http://bugs.webkit.org/show_bug.cgi?id=14198
2737
2738        Reeanble <foreignObject>. Explicitely disallow <use> on <foreignObject>
2739        as it may lead to bad problems. 
2740
2741        While I'm at it disallow <use> on any non-svg element.
2742
2743        * bindings/js/JSSVGElementWrapperFactory.cpp:
2744        * bindings/objc/DOM.mm:
2745        (WebCore::createElementClassMap):
2746        * ksvg2/svg/SVGForeignObjectElement.cpp:
2747        * ksvg2/svg/SVGForeignObjectElement.h:
2748        * ksvg2/svg/SVGForeignObjectElement.idl:
2749        * ksvg2/svg/SVGLocatable.cpp:
2750        (WebCore::SVGLocatable::nearestViewportElement):
2751        (WebCore::SVGLocatable::farthestViewportElement):
2752        * ksvg2/svg/SVGUseElement.cpp:
2753        (WebCore::SVGUseElement::buildPendingResource):
2754        * ksvg2/svg/svgtags.in:
2755        * rendering/RenderForeignObject.cpp:
2756
27572007-06-19  Rob Buis  <buis@kde.org>
2758
2759        Reviewed by Oliver.
2760
2761        http://bugs.webkit.org/show_bug.cgi?id=14144
2762        All tx/ty (parentX/parentY) usage should be removed from SVG renders
2763        http://bugs.webkit.org/show_bug.cgi?id=13981
2764        <br> prevents click handler from firing
2765
2766        Fix the hit testing issues by making RenderSVGRoot take its m_x, m_y
2767        into account in the absolute transform.
2768
2769        * rendering/RenderPath.cpp:
2770        (WebCore::RenderPath::absoluteRects):
2771        (WebCore::RenderPath::nodeAtPoint):
2772        * rendering/RenderSVGImage.cpp:
2773        (WebCore::RenderSVGImage::nodeAtPoint):
2774        * rendering/RenderSVGRoot.cpp:
2775        (WebCore::RenderSVGRoot::absoluteTransform):
2776        (WebCore::RenderSVGRoot::nodeAtPoint):
2777
27782007-06-16  Nikolas Zimmermann  <zimmermann@kde.org>
2779
2780        Reviewed by Eric.
2781
2782        Fixes: http://bugs.webkit.org/show_bug.cgi?id=14015 (SVGTransformList::initialize() has no effect)
2783
2784        Fix SVGTransformList usage in SVG DOM exposed to JS.
2785        This also fixes SVG space invaders including most repainting issues. (still some unrelated ones left)
2786
2787        This is basically the _same_ fix applied to SVGPointList some months ago. We just forgot
2788        to add JSSVGTransformListCustom when switching from SVGTransform* -> SVGTransform (POD type).
2789
2790        * WebCore.xcodeproj/project.pbxproj:
2791        * bindings/js/JSSVGTransformListCustom.cpp: Added.
2792        (WebCore::JSSVGTransformList::clear):
2793        (WebCore::JSSVGTransformList::initialize):
2794        (WebCore::JSSVGTransformList::getItem):
2795        (WebCore::JSSVGTransformList::insertItemBefore):
2796        (WebCore::JSSVGTransformList::replaceItem):
2797        (WebCore::JSSVGTransformList::removeItem):
2798        (WebCore::JSSVGTransformList::appendItem):
2799        * ksvg2/svg/SVGCircleElement.cpp:
2800        (WebCore::SVGCircleElement::notifyAttributeChange):
2801        * ksvg2/svg/SVGEllipseElement.cpp:
2802        (WebCore::SVGEllipseElement::notifyAttributeChange):
2803        * ksvg2/svg/SVGGradientElement.cpp:
2804        (WebCore::SVGGradientElement::SVGGradientElement):
2805        * ksvg2/svg/SVGImageElement.cpp:
2806        (WebCore::SVGImageElement::notifyAttributeChange):
2807        * ksvg2/svg/SVGLineElement.cpp:
2808        (WebCore::SVGLineElement::notifyAttributeChange):
2809        * ksvg2/svg/SVGPathElement.cpp:
2810        (WebCore::SVGPathElement::notifyAttributeChange):
2811        * ksvg2/svg/SVGPatternElement.cpp:
2812        (WebCore::SVGPatternElement::SVGPatternElement):
2813        * ksvg2/svg/SVGPolyElement.cpp:
2814        (WebCore::SVGPolyElement::notifyAttributeChange):
2815        * ksvg2/svg/SVGRectElement.cpp:
2816        (WebCore::SVGRectElement::notifyAttributeChange):
2817        * ksvg2/svg/SVGStyledTransformableElement.cpp:
2818        (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
2819        (WebCore::SVGStyledTransformableElement::notifyAttributeChange):
2820        * ksvg2/svg/SVGStyledTransformableElement.h:
2821        * ksvg2/svg/SVGTextElement.cpp:
2822        (WebCore::SVGTextElement::SVGTextElement):
2823        * ksvg2/svg/SVGTransformList.cpp:
2824        (SVGTransformList::SVGTransformList):
2825        (SVGTransformList::context):
2826        * ksvg2/svg/SVGTransformList.h:
2827        * ksvg2/svg/SVGTransformList.idl:
2828
28292007-06-15  Nikolas Zimmermann  <zimmermann@kde.org>
2830
2831        Reviewed by Eric.
2832
2833        Fixes: http://bugs.webkit.org/show_bug.cgi?id=14155
2834
2835        JSSVGMatrix was not working properly.
2836        "matrix.translate(10, 10)" actually altered 'matrix' instead of returning a
2837        new SVGMatrix object, as described in SVG 1.1 specification.
2838
2839        * bindings/js/JSSVGMatrixCustom.cpp:
2840        (WebCore::JSSVGMatrix::multiply):
2841        (WebCore::JSSVGMatrix::inverse):
2842        (WebCore::JSSVGMatrix::translate):
2843        (WebCore::JSSVGMatrix::scale):
2844        (WebCore::JSSVGMatrix::scaleNonUniform):
2845        (WebCore::JSSVGMatrix::rotate):
2846        (WebCore::JSSVGMatrix::flipX):
2847        (WebCore::JSSVGMatrix::flipY):
2848        (WebCore::JSSVGMatrix::skewX):
2849        (WebCore::JSSVGMatrix::skewY):
2850        * ksvg2/svg/SVGMatrix.idl:
2851
28522007-06-15  Eric Seidel  <eric@webkit.org>
2853
2854        Reviewed by Niko.
2855
2856        Fix the release build.
2857
2858        * rendering/SVGRootInlineBox.cpp:
2859        (WebCore::applyTextAnchorToTextChunk):
2860
28612007-06-15  Rob Buis  <buis@kde.org>
2862
2863        Reviewed by Eric.
2864
2865        http://bugs.webkit.org/show_bug.cgi?id=14051
2866        <svg:image> fails to position correctly when <svg> is inside an inline <div>
2867
2868        Leave parent translation to the containers.
2869
2870        * rendering/RenderSVGImage.cpp:
2871        (WebCore::RenderSVGImage::paint):
2872
28732007-06-15  Nikolas Zimmermann  <zimmermann@kde.org>
2874
2875        Reviewed by Eric.
2876
2877        Fixes: http://bugs.webkit.org/show_bug.cgi?id=13963
2878
2879        Fix SVG space invaders. It actually highlighted a bad problem with our JSSVGPODTypeWrapper's.
2880        Introduce a new "2nd-level cache" for all readwrite POD properties. Subsequent calls to ie.
2881        myRect.x.baseVal.value don't create a new wrapper everytime, but are properly cached now.
2882        This leads to a massive reduction in created wrappers.
2883
2884        * bindings/js/JSSVGMatrixCustom.cpp:
2885        (WebCore::JSSVGMatrix::inverse):
2886        (WebCore::JSSVGMatrix::rotateFromVector):
2887        * bindings/js/JSSVGPODTypeWrapper.h:
2888        (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::JSSVGPODTypeWrapperCreatorReadWrite):
2889        (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::~JSSVGPODTypeWrapperCreatorReadWrite):
2890        (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::operator PODType):
2891        (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
2892        (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::JSSVGPODTypeWrapperCreatorReadOnly):
2893        (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::~JSSVGPODTypeWrapperCreatorReadOnly):
2894        (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::operator PODType):
2895        (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
2896        (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
2897        (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
2898        (WebCore::PODTypeReadWriteHashInfo::PODTypeReadWriteHashInfo):
2899        (WebCore::PODTypeReadWriteHashInfo::operator==):
2900        (WebCore::PODTypeReadWriteHashInfoHash::hash):
2901        (WebCore::PODTypeReadWriteHashInfoHash::equal):
2902        (WebCore::PODTypeReadWriteHashInfoTraits::deletedValue):
2903        (WebCore::PODTypeReadWriteHashInfoTraits::emptyValue):
2904        (WebCore::JSSVGPODTypeWrapperCache::readWriteHashMap):
2905        (WebCore::JSSVGPODTypeWrapperCache::lookupOrCreateWrapper):
2906        (WebCore::JSSVGPODTypeWrapperCache::forgetWrapper):
2907        * bindings/js/JSSVGPointListCustom.cpp:
2908        (WebCore::JSSVGPointList::removeItem):
2909        * bindings/scripts/CodeGeneratorJS.pm:
2910
29112007-06-14  Eric Seidel  <eric@webkit.org>
2912
2913        Reviewed by Niko.
2914
2915        Text gradients are broken on feature branch
2916        http://bugs.webkit.org/show_bug.cgi?id=14142
2917
2918        * rendering/SVGRenderSupport.cpp:
2919        (WebCore::prepareToRenderSVGContent):
2920        * rendering/SVGRootInlineBox.cpp:
2921        (WebCore::prepareTextRendering):
2922        (WebCore::SVGRootInlineBox::paint):
2923        (WebCore::SVGRootInlineBox::paintInlineBoxes):
2924        (WebCore::SVGRootInlineBox::paintChildInlineTextBox):
2925        (WebCore::SVGRootInlineBox::paintChildInlineFlowBox):
2926        * rendering/SVGRootInlineBox.h:
2927
29282007-06-14  Nikolas Zimmermann  <zimmermann@kde.org>
2929
2930        Reviewed by Sam.
2931
2932        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11273
2933
2934        Implement pixelUnitToMillimeterX(), pixelUnitToMillimeterY() in SVGSVGElement.
2935        Use cssPixelsPerInch, just like done in CSSPrimitiveValue & SVGLength.
2936
2937        * ksvg2/svg/SVGSVGElement.cpp:
2938        (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
2939        (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
2940
29412007-06-14  Rob Buis  <buis@kde.org>
2942
2943        Reviewed by Eric.
2944
2945        http://bugs.webkit.org/show_bug.cgi?id=9752
2946        %-sizing of elements with a html parent is broken
2947
2948        Calculate width/height for length percentages when embedded in xhtml.
2949
2950        * ksvg2/svg/SVGLength.cpp:
2951        (WebCore::SVGLength::PercentageOfViewport):
2952
29532007-06-14  Rob Buis  <buis@kde.org>
2954
2955        Build fix.
2956
2957        * rendering/SVGCharacterLayoutInfo.cpp:
2958
29592007-06-14  Rob Buis  <buis@kde.org>
2960
2961        Reviewed by Eric.
2962
2963        http://bugs.webkit.org/show_bug.cgi?id=12207
2964        RenderSVGContainer should be split into multiple classes
2965        http://bugs.webkit.org/show_bug.cgi?id=14125
2966        KCanvasRenderingStyle should be removed
2967
2968        Introduce the RenderSVGRoot class and kill the KCanvas enums.
2969
2970        * WebCore.xcodeproj/project.pbxproj:
2971        * ksvg2/css/SVGRenderStyle.cpp:
2972        (WebCore::SVGRenderStyle::cssPrimitiveToLength):
2973        * ksvg2/css/SVGRenderStyle.h:
2974        * ksvg2/misc/KCanvasRenderingStyle.cpp: Removed.
2975        * ksvg2/misc/KCanvasRenderingStyle.h: Removed.
2976        * ksvg2/svg/SVGMarkerElement.cpp:
2977        (WebCore::SVGMarkerElement::createRenderer):
2978        (WebCore::SVGMarkerElement::notifyAttributeChange):
2979        * ksvg2/svg/SVGSVGElement.cpp:
2980        (WebCore::SVGSVGElement::createRenderer):
2981        * ksvg2/svg/SVGSVGElement.h:
2982        * platform/graphics/svg/SVGPaintServer.cpp:
2983        (WebCore::sharedSolidPaintServer):
2984        (WebCore::SVGPaintServer::fillPaintServer):
2985        (WebCore::SVGPaintServer::strokePaintServer):
2986        (WebCore::dashArrayFromRenderingStyle):
2987        * platform/graphics/svg/SVGPaintServer.h:
2988        * platform/graphics/svg/cg/CgSupport.cpp:
2989        (WebCore::applyStrokeStyleToContext):
2990        * platform/graphics/svg/cg/RenderPathCg.cpp:
2991        (WebCore::RenderPath::strokeContains):
2992        * rendering/RenderPath.cpp:
2993        (WebCore::RenderPath::fillContains):
2994        (WebCore::fillAndStrokePath):
2995        (WebCore::RenderPath::drawMarkersIfNeeded):
2996        * rendering/RenderSVGContainer.cpp:
2997        (WebCore::RenderSVGContainer::requiresLayer):
2998        (WebCore::RenderSVGContainer::layout):
2999        (WebCore::RenderSVGContainer::applyContentTransforms):
3000        (WebCore::RenderSVGContainer::paint):
3001        (WebCore::RenderSVGContainer::setAlign):
3002        (WebCore::RenderSVGContainer::align):
3003        (WebCore::RenderSVGContainer::viewportTransform):
3004        (WebCore::RenderSVGContainer::absoluteTransform):
3005        (WebCore::RenderSVGContainer::getAspectRatio):
3006        * rendering/RenderSVGContainer.h:
3007        * rendering/RenderSVGInlineText.cpp:
3008        * rendering/RenderSVGRoot.cpp: Added.
3009        (WebCore::RenderSVGRoot::RenderSVGRoot):
3010        (WebCore::RenderSVGRoot::~RenderSVGRoot):
3011        (WebCore::RenderSVGRoot::localTransform):
3012        (WebCore::RenderSVGRoot::setLocalTransform):
3013        (WebCore::RenderSVGRoot::requiresLayer):
3014        (WebCore::RenderSVGRoot::lineHeight):
3015        (WebCore::RenderSVGRoot::baselinePosition):
3016        (WebCore::RenderSVGRoot::layout):
3017        (WebCore::RenderSVGRoot::applyContentTransforms):
3018        (WebCore::RenderSVGRoot::paint):
3019        (WebCore::RenderSVGRoot::viewport):
3020        (WebCore::RenderSVGRoot::calcViewport):
3021        (WebCore::RenderSVGRoot::setViewBox):
3022        (WebCore::RenderSVGRoot::viewBox):
3023        (WebCore::RenderSVGRoot::setAlign):
3024        (WebCore::RenderSVGRoot::align):
3025        (WebCore::RenderSVGRoot::viewportTransform):
3026        (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
3027        (WebCore::RenderSVGRoot::addFocusRingRects):
3028        (WebCore::RenderSVGRoot::absoluteRects):
3029        (WebCore::RenderSVGRoot::absoluteTransform):
3030        (WebCore::RenderSVGRoot::fillContains):
3031        (WebCore::RenderSVGRoot::strokeContains):
3032        (WebCore::RenderSVGRoot::relativeBBox):
3033        (WebCore::RenderSVGRoot::setSlice):
3034        (WebCore::RenderSVGRoot::slice):
3035        (WebCore::RenderSVGRoot::getAspectRatio):
3036        (WebCore::RenderSVGRoot::nodeAtPoint):
3037        * rendering/RenderSVGRoot.h: Added.
3038        (WebCore::RenderSVGRoot::isSVGContainer):
3039        (WebCore::RenderSVGRoot::renderName):
3040        * rendering/RenderSVGTSpan.cpp:
3041        * rendering/RenderSVGText.cpp:
3042        (WebCore::RenderSVGText::relativeBBox):
3043        * rendering/SVGRenderTreeAsText.cpp:
3044        (WebCore::operator<<):
3045        (WebCore::writeStyle):
3046        * rendering/SVGRootInlineBox.cpp:
3047        (WebCore::SVGRootInlineBox::paint):
3048        (WebCore::SVGRootInlineBox::paintInlineBoxes):
3049
30502007-06-12  Nikolas Zimmermann  <zimmermann@kde.org>
3051
3052        Reviewed by Eric.
3053
3054        Fix regression: SVG images drawn in the wrong paint phase.
3055
3056        * rendering/RenderSVGImage.cpp:
3057        (WebCore::RenderSVGImage::paint):
3058
30592007-06-11  Rob Buis  <buis@kde.org>
3060
3061        Reviewed by weinig.
3062
3063        http://bugs.webkit.org/show_bug.cgi?id=14064
3064        fill property is reported as type SVGColor
3065
3066        Do the checks in the right order.
3067
3068        * bindings/js/kjs_css.cpp:
3069        (KJS::toJS):
3070
30712007-06-07  Rob Buis  <buis@kde.org>
3072
3073        Reviewed by Eric.
3074
3075        http://bugs.webkit.org/show_bug.cgi?id=12122
3076        SVGPathElement should not inherit from SVGPathParser
3077
3078        Use path builders for building Path and PathSegLists.
3079
3080        * ksvg2/svg/SVGAnimateMotionElement.cpp:
3081        (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
3082        * ksvg2/svg/SVGParserUtilities.cpp:
3083        (WebCore::pointsListFromSVGData):
3084        (WebCore::SVGPathParser::~SVGPathParser):
3085        (WebCore::SVGPathParser::svgLineToHorizontal):
3086        (WebCore::SVGPathParser::svgLineToVertical):
3087        (WebCore::SVGPathParser::svgCurveToCubicSmooth):
3088        (WebCore::SVGPathParser::svgCurveToQuadratic):
3089        (WebCore::SVGPathParser::svgCurveToQuadraticSmooth):
3090        (WebCore::SVGPathParser::svgArcTo):
3091        (WebCore::PathBuilder::build):
3092        (WebCore::PathBuilder::svgMoveTo):
3093        (WebCore::PathBuilder::svgLineTo):
3094        (WebCore::PathBuilder::svgCurveToCubic):
3095        (WebCore::PathBuilder::svgClosePath):
3096        (WebCore::pathFromSVGData):
3097        (WebCore::SVGPathSegListBuilder::build):
3098        (WebCore::SVGPathSegListBuilder::svgMoveTo):
3099        (WebCore::SVGPathSegListBuilder::svgLineTo):
3100        (WebCore::SVGPathSegListBuilder::svgLineToHorizontal):
3101        (WebCore::SVGPathSegListBuilder::svgLineToVertical):
3102        (WebCore::SVGPathSegListBuilder::svgCurveToCubic):
3103        (WebCore::SVGPathSegListBuilder::svgCurveToCubicSmooth):
3104        (WebCore::SVGPathSegListBuilder::svgCurveToQuadratic):
3105        (WebCore::SVGPathSegListBuilder::svgCurveToQuadraticSmooth):
3106        (WebCore::SVGPathSegListBuilder::svgArcTo):
3107        (WebCore::SVGPathSegListBuilder::svgClosePath):
3108        (WebCore::pathSegListFromSVGData):
3109        * ksvg2/svg/SVGParserUtilities.h:
3110        * ksvg2/svg/SVGPathElement.cpp:
3111        (WebCore::SVGPathElement::SVGPathElement):
3112        (WebCore::SVGPathElement::parseMappedAttribute):
3113        * ksvg2/svg/SVGPathElement.h:
3114        * ksvg2/svg/SVGPolyElement.cpp:
3115        (WebCore::SVGPolyElement::SVGPolyElement):
3116        (WebCore::SVGPolyElement::parseMappedAttribute):
3117        * ksvg2/svg/SVGPolyElement.h:
3118
31192007-06-06  Eric Seidel  <eric@webkit.org>
3120
3121        Reviewed by olliej.
3122
3123        Add support for tabbing between links in an SVG file
3124        Also add support for drawing a focus ring around focused svg content.
3125        http://bugs.webkit.org/show_bug.cgi?id=8823
3126        
3127        Layout test is blocked by http://bugs.webkit.org/show_bug.cgi?id=14027
3128
3129        * css/svg.css:
3130        * ksvg2/svg/SVGAElement.cpp:
3131        (WebCore::SVGAElement::defaultEventHandler):
3132        (WebCore::SVGAElement::supportsFocus):
3133        (WebCore::SVGAElement::isFocusable):
3134        (WebCore::SVGAElement::isMouseFocusable):
3135        (WebCore::SVGAElement::isKeyboardFocusable):
3136        * ksvg2/svg/SVGAElement.h:
3137
31382007-06-06  Eric Seidel  <eric@webkit.org>
3139
3140        Reviewed by olliej.
3141
3142        Make SVG (mostly) support CSS outline property (and thus focus rings)
3143        http://bugs.webkit.org/show_bug.cgi?id=10849
3144
3145        Test: svg/custom/focus-ring.svg
3146
3147        * rendering/RenderPath.cpp:
3148        (WebCore::RenderPath::paint):
3149        (WebCore::RenderPath::addFocusRingRects):
3150        * rendering/RenderPath.h:
3151        * rendering/RenderSVGContainer.cpp:
3152        (WebCore::RenderSVGContainer::paint):
3153        (WebCore::RenderSVGContainer::addFocusRingRects):
3154        * rendering/RenderSVGContainer.h:
3155        * rendering/RenderSVGImage.cpp:
3156        (WebCore::RenderSVGImage::paint):
3157        (WebCore::RenderSVGImage::addFocusRingRects):
3158        * rendering/RenderSVGImage.h:
3159
31602007-06-06  Eric Seidel  <eric@webkit.org>
3161
3162        Reviewed by weinig.
3163        
3164        Break out common SVG rendering logic into prepareToRenderSVGContent in SVGRenderSupport
3165
3166        No test cases should be changed by this.
3167
3168        * WebCore.xcodeproj/project.pbxproj:
3169        * rendering/RenderPath.cpp:
3170        (WebCore::fillAndStrokePath):
3171        (WebCore::RenderPath::paint):
3172        * rendering/RenderSVGContainer.cpp:
3173        (WebCore::RenderSVGContainer::RenderSVGContainer):
3174        (WebCore::RenderSVGContainer::requiresLayer):
3175        (WebCore::RenderSVGContainer::isOutermostSVG):
3176        (WebCore::RenderSVGContainer::layout):
3177        (WebCore::RenderSVGContainer::applyContentTransforms):
3178        (WebCore::RenderSVGContainer::paint):
3179        (WebCore::RenderSVGContainer::viewportTransform):
3180        (WebCore::RenderSVGContainer::absoluteTransform):
3181        * rendering/RenderSVGContainer.h:
3182        * rendering/RenderSVGImage.cpp:
3183        (WebCore::RenderSVGImage::paint):
3184        (WebCore::RenderSVGImage::translationForAttributes):
3185        * rendering/SVGRenderSupport.cpp: Added.
3186        (WebCore::prepareToRenderSVGContent):
3187        * rendering/SVGRenderSupport.h: Added.
3188        * rendering/SVGRootInlineBox.cpp:
3189        (WebCore::prepareTextRendering):
3190        (WebCore::SVGRootInlineBox::paint):
3191        (WebCore::SVGRootInlineBox::paintInlineBoxes):
3192
31932007-06-06  Rob Buis  <buis@kde.org>
3194
3195        Reviewed by Eric.
3196
3197        http://bugs.webkit.org/show_bug.cgi?id=13976
3198        getPresentationAttribute not implemented
3199
3200        Implement getPresentationAttribute.
3201
3202        * ksvg2/svg/SVGStylable.h:
3203        * ksvg2/svg/SVGStylable.idl:
3204        * ksvg2/svg/SVGStyledElement.cpp:
3205        (WebCore::SVGStyledElement::getPresentationAttribute):
3206        * ksvg2/svg/SVGStyledElement.h:
3207
32082007-06-06  Rob Buis  <buis@kde.org>
3209
3210        Reviewed by olliej and eric.
3211
3212        http://bugs.webkit.org/show_bug.cgi?id=12430
3213        SVG has two transform parsers when it should have one.
3214
3215        Refactor SVGTransformable parser so SVGAnimateTransformElement can reuse it better.
3216
3217        * ksvg2/svg/SVGAnimateTransformElement.cpp:
3218        (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
3219        * ksvg2/svg/SVGAnimateTransformElement.h:
3220        * ksvg2/svg/SVGTransformable.cpp:
3221        (WebCore::):
3222        (WebCore::SVGTransformable::parseTransformValue):
3223        (WebCore::SVGTransformable::parseTransformAttribute):
3224        * ksvg2/svg/SVGTransformable.h:
3225
32262007-06-05  Eric Seidel  <eric@webkit.org>
3227
3228        Reviewed by olliej.
3229
3230        Commit files missing from previous commit, oops!
3231        
3232        * platform/graphics/svg/SVGResourceMasker.cpp:
3233        (WebCore::SVGResourceMasker::SVGResourceMasker):
3234        (WebCore::SVGResourceMasker::invalidate):
3235        * platform/graphics/svg/SVGResourceMasker.h:
3236        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
3237        (WebCore::SVGResourceMasker::applyMask):
3238
32392007-06-01  Eric Seidel  <eric@webkit.org>
3240
3241        Reviewed by olliej.
3242
3243        Add support for maskUnits and maskContentUnits
3244        http://bugs.webkit.org/show_bug.cgi?id=12568
3245        
3246        This is covered by the W3C tests (including mask-intro01)
3247
3248        * ksvg2/svg/SVGMaskElement.cpp:
3249        (WebCore::SVGMaskElement::SVGMaskElement):
3250        (WebCore::SVGMaskElement::parseMappedAttribute):
3251        (WebCore::SVGMaskElement::drawMaskerContent):
3252        (WebCore::SVGMaskElement::canvasResource):
3253        (WebCore::SVGMaskElement::notifyAttributeChange):
3254        * ksvg2/svg/SVGMaskElement.h:
3255        * ksvg2/svg/SVGMaskElement.idl:
3256        * platform/graphics/svg/SVGResourceMasker.cpp:
3257        (WebCore::SVGResourceMasker::SVGResourceMasker):
3258        (WebCore::SVGResourceMasker::invalidate):
3259        * platform/graphics/svg/SVGResourceMasker.h:
3260        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
3261        (WebCore::SVGResourceMasker::applyMask):
3262
32632007-06-01  Eric Seidel  <eric@webkit.org>
3264
3265        Reviewed by lars.
3266        
3267        Cursor does not change to hand over links containing <use>
3268        http://bugs.webkit.org/show_bug.cgi?id=12630
3269
3270        Test: manual-tests/svg-link-hover-use.svg
3271
3272        * manual-tests/svg-link-hover-use.svg: Added.
3273        * rendering/RenderLayer.cpp:
3274        (WebCore::RenderLayer::hitTest): use eventParentNode instead of parentNode
3275
32762007-06-01  Eric Seidel  <eric@webkit.org>
3277
3278        Reviewed by olliej.
3279
3280        SVG is not correctly respecting scroll during hit testing
3281        http://bugs.webkit.org/show_bug.cgi?id=13083
3282
3283        Test: svg/custom/scroll-hit-test.svg
3284
3285        * rendering/RenderPath.cpp:
3286        (WebCore::RenderPath::nodeAtPoint):
3287        * rendering/RenderSVGContainer.cpp:
3288        (WebCore::RenderSVGContainer::nodeAtPoint):
3289
32902007-06-01  Eric Seidel  <eric@webkit.org>
3291
3292        Reviewed by hyatt.
3293
3294        Fix for: http://bugs.webkit.org/show_bug.cgi?id=12187
3295
3296        Tests: fast/dom/attribute-case-sensitivity.html, fast/dom/attribute-case-sensitivity2.xhtml
3297
3298        * dom/Element.cpp:
3299        (WebCore::shouldIgnoreAttributeCase): check to make sure element is an HTMLElement
3300        (WebCore::Element::getAttribute):
3301        (WebCore::Element::setAttribute):
3302        (WebCore::Element::removeAttribute):
3303        (WebCore::Element::getAttributeNode):
3304        (WebCore::Element::hasAttribute):
3305        * dom/NamedAttrMap.cpp:
3306        (WebCore::shouldIgnoreAttributeCase):
3307        (WebCore::NamedAttrMap::getNamedItem):
3308        (WebCore::NamedAttrMap::removeNamedItem):
3309
33102007-05-31  Eric Seidel  <eric@webkit.org>
3311
3312        Reviewed by Niko.
3313
3314        Links are activated based on mouse down events instead of click events
3315        http://bugs.webkit.org/show_bug.cgi?id=12570
3316        
3317        Test: svg/custom/prevent-default.svg
3318
3319        * html/HTMLAnchorElement.cpp: use MiddleButton and RightButton instead of 1 and 2
3320        (WebCore::HTMLAnchorElement::defaultEventHandler):
3321        * ksvg2/svg/SVGAElement.cpp:
3322        (WebCore::SVGAElement::defaultEventHandler): make it function more like the HTML side
3323
33242007-05-30  Rob Buis  <buis@kde.org>
3325
3326        Reviewed by Darin.
3327
3328        http://bugs.webkit.org/show_bug.cgi?id=11272
3329        Implement currentScale(), setCurrentScale() and currentTranslate() in SVGSVGElement
3330
3331        Allow zooming and panning, thereby implementing the above methods.
3332
3333        * ksvg2/svg/SVGDocument.cpp:
3334        (WebCore::SVGDocument::zoomAndPanEnabled):
3335        (WebCore::SVGDocument::startPan):
3336        (WebCore::SVGDocument::updatePan):
3337        * ksvg2/svg/SVGDocument.h:
3338        * ksvg2/svg/SVGSVGElement.cpp:
3339        (WebCore::SVGSVGElement::currentScale):
3340        (WebCore::SVGSVGElement::setCurrentScale):
3341        (WebCore::SVGSVGElement::currentTranslate):
3342        (WebCore::SVGSVGElement::setCurrentTranslate):
3343        * ksvg2/svg/SVGSVGElement.h:
3344        * page/EventHandler.cpp:
3345        (WebCore::EventHandler::EventHandler):
3346        (WebCore::EventHandler::handleMousePressEvent):
3347        (WebCore::EventHandler::handleMouseMoveEvent):
3348        (WebCore::EventHandler::handleMouseReleaseEvent):
3349        * page/EventHandler.h:
3350        * page/Frame.cpp:
3351        (WebCore::Frame::setZoomFactor):
3352        * rendering/RenderSVGContainer.cpp:
3353        (WebCore::RenderSVGContainer::layout):
3354        (WebCore::RenderSVGContainer::paint):
3355        (WebCore::RenderSVGContainer::absoluteTransform):
3356
33572007-05-30  Nikolas Zimmermann  <zimmermann@kde.org>
3358
3359        Reviewed by Oliver.
3360
3361        Fix regression: gradient on fill of text works again!
3362
3363        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
3364        (WebCore::SVGPaintServerGradient::teardown):
3365
33662007-05-29  Nikolas Zimmermann  <zimmermann@kde.org>
3367
3368        Reviewed by Oliver.
3369
3370        Fix "jumpy" selection by correcting the way svgCharacterHitsPosition works.
3371        I basically mixed up the "closest character to position" logic.
3372
3373        * rendering/RenderSVGInlineText.cpp: Only call svgCharacterHitsPosition for the firstTextBox -> it handles all children anyway.
3374        (WebCore::RenderSVGInlineText::positionForCoordinates):
3375        * rendering/SVGInlineTextBox.cpp:
3376        (WebCore::SVGInlineTextBox::closestCharacterToPosition): Fix logic - was really broken!
3377        (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
3378        (WebCore::SVGInlineTextBox::nodeAtPoint): Do not use svgCharacterHitsPosition here - too accurate!
3379                                                  We don't want to loose the 'text' cursor if one is just between two characters.
3380
33812007-05-24  Nikolas Zimmermann  <zimmermann@kde.org>
3382
3383        Reviewed by Oliver.
3384
3385        Add new code path dumping SVG text engine specific layout test results.
3386        Finally the dumped results are actually accurate and respond to the
3387        rendered glyphs. This has never been correct so far.
3388
3389        * rendering/RenderTreeAsText.cpp:
3390        (WebCore::quoteAndEscapeNonPrintables):
3391        (WebCore::write):
3392        * rendering/RenderTreeAsText.h:
3393        * rendering/SVGInlineTextBox.h:
3394        * rendering/SVGRenderTreeAsText.cpp:
3395        (WebCore::operator<<):
3396        (WebCore::containsInlineTextBox):
3397        (WebCore::writeSVGInlineText):
3398        (WebCore::write):
3399        * rendering/SVGRenderTreeAsText.h:
3400        * rendering/SVGRootInlineBox.cpp:
3401        (WebCore::topLeftPositionOfCharacterRange):
3402        (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
3403        (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
3404        (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
3405        * rendering/SVGRootInlineBox.h:
3406
34072007-05-20  Nikolas Zimmermann  <zimmermann@kde.org>
3408
3409        Reviewed by Oliver.
3410
3411        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12698 (SVG text needs a special per-character layout mode.)
3412
3413        Fixes: http://bugs.webkit.org/show_bug.cgi?id=6420 (<text> does not respect x,y offset lists)
3414        Fixes: http://bugs.webkit.org/show_bug.cgi?id=6425 (<textPath> element not implemented)
3415        Fixes: http://bugs.webkit.org/show_bug.cgi?id=6481 (text-anchor (vertical) does not work in SVG text elements)
3416        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11941 (REGRESSION: Missing text stroke in svg/W3C-SVG-1.1/text-deco-01-b.svg)
3417        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12376 (glyph rotation in text/tspan not implemented)
3418        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12377 (multiple dx and dy attributes not respected in text and tspan elements)
3419        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12574 (<text> does not handle baseline-shift correctly)
3420
3421        Introduce new experimental SVG text engine - after 5+ months of hacking.
3422
3423        Add textPath support, absolute positioned SVG characters, vertical text,
3424        text rotation, baseline-shift, text chunks spanning <tspan>'s etc.
3425
3426        Check my Flickr page for screenshots: http://www.flickr.com/photos/43532360@N00 (a bit outdated)
3427
3428        Fixes/Improvments:
3429        - animate-elem-40-t.svg (x/y lists respected on <text> now)
3430        - interact-cursor-01-f.svg (text-anchor correctly handled in <text><a> situations)
3431        - struct-frag-05-t.svg (ditto)
3432        - text-align-02-b.svg (baseline-shift recognized)
3433        - text-align-04-b.svg (textPath displayed)
3434        - text-align-05-b.svg (text-anchor & vertical text handled correctly)
3435        - text-align-06-b.svg (baseline-shift & vertical text handled correctly)
3436        - text-deco-01-b.svg (longstanding regression fixed for text-decoration)
3437        - text-path-01-b.svg (all textPaths are displayed correctly)
3438        - text-text-04-t.svg (all x/y/dx/dy list situations work fine now)
3439        - text-text-05-t.svg (ditto)
3440        - text-text-06-t.svg (ditto)
3441        - text-text-07-t.svg (rotation works fine now)
3442        - text-tspan-01-b.svg (per character placment works great in all situations)
3443
3444        Most files using text-anchor show 0.5-1% differences because the shift offset calculation is more correct now.
3445
3446        Regressions:    
3447        - Gradient on fill is broken (on stroke works) -> this is a regression (easy to fix soon)
3448          js-late-gradient-and-object-creation.svg & js-late-gradient-creation.svg & pservers-grad-08-b.svg & pservers-grad-11-b.svg are broken
3449
3450        Complete list of missing things:
3451        - 'textLength' / 'lengthAdjust' properties on <text>/<tspan> not yet handled.
3452        - 'dominant-baseline / alignment-baseline missing (neither FF/Opera/Batik support this)
3453        - 'kerning' property ignored
3454        - 'glyph-orientation-vertical' / 'glyph-orientation-horizontal' not yet handled.
3455        - Hebrew text selection broken (discontinous selection doesn't work)
3456        - <textPath> doesn't yet participate in text selection
3457        - <textPath> 'text-anchor' handling is flawed
3458        - <textPath> doesn't yet handle 'method' / 'spacing' properties
3459        - 'letter-spacing' / 'word-spacing' is still handled in the "legacy" mode. That means it only works
3460          for simple cases -> won't work for textPath's for instance
3461        - SVG fonts (<altGlyph>, <font> ..... tons more)
3462
3463        * DerivedSources.make: Add DOM/JSSVGTextPathElement.h to build
3464        * WebCore.xcodeproj/project.pbxproj: Add textPath related files to build
3465        * css/svg.css: Correct white-space default setting for textPath element
3466        * ksvg2/svg/SVGFEFloodElement.cpp: Missing include (experimental build was broken)
3467        * ksvg2/svg/SVGTSpanElement.cpp: Recognize textPath children.
3468        (WebCore::SVGTSpanElement::childShouldCreateRenderer):
3469        * ksvg2/svg/SVGTextElement.cpp: Ditto.
3470        (WebCore::SVGTextElement::childShouldCreateRenderer):
3471        * ksvg2/svg/SVGTextPathElement.cpp: Added.
3472        (WebCore::SVGTextPathElement::SVGTextPathElement):
3473        (WebCore::SVGTextPathElement::~SVGTextPathElement):
3474        (WebCore::SVGTextPathElement::parseMappedAttribute):
3475        (WebCore::SVGTextPathElement::createRenderer):
3476        (WebCore::SVGTextPathElement::childShouldCreateRenderer):
3477        (WebCore::SVGTextPathElement::insertedIntoDocument):
3478        (WebCore::SVGTextPathElement::buildPendingResource):
3479        (WebCore::SVGTextPathElement::attach):
3480        * ksvg2/svg/SVGTextPathElement.h: Added.
3481        (WebCore::):
3482        (WebCore::SVGTextPathElement::rendererIsNeeded):
3483        (WebCore::SVGTextPathElement::contextElement):
3484        * ksvg2/svg/SVGTextPathElement.idl: Added.
3485        * ksvg2/svg/svgtags.in: Add textPath tag.
3486        * rendering/InlineTextBox.cpp: Make two methods non static to share with SVG.
3487        (WebCore::correctedTextColor):
3488        (WebCore::updateGraphicsContext):
3489        * rendering/InlineTextBox.h:
3490        * rendering/RenderSVGInlineText.cpp: Special positionForCoordinates() implementation. Stub caretRect() for SVG.
3491        (WebCore::RenderSVGInlineText::selectionRect):
3492        (WebCore::RenderSVGInlineText::caretRect):
3493        (WebCore::RenderSVGInlineText::positionForCoordinates):
3494        * rendering/RenderSVGInlineText.h:
3495        * rendering/RenderSVGTextPath.cpp: Added.
3496        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
3497        (WebCore::RenderSVGTextPath::layoutPath):
3498        (WebCore::RenderSVGTextPath::setLayoutPath):
3499        (WebCore::RenderSVGTextPath::startOffset):
3500        (WebCore::RenderSVGTextPath::setStartOffset):
3501        (WebCore::RenderSVGTextPath::exactAlignment):
3502        (WebCore::RenderSVGTextPath::setExactAlignment):
3503        (WebCore::RenderSVGTextPath::stretchMethod):
3504        (WebCore::RenderSVGTextPath::setStretchMethod):
3505        (WebCore::RenderSVGTextPath::absoluteRects):
3506        * rendering/RenderSVGTextPath.h: Added.
3507        (WebCore::RenderSVGTextPath::renderName):
3508        * rendering/RenderText.cpp: Fix indention and use StringImpl::empty() instead of creating an empty string manually.
3509        (WebCore::RenderText::setTextInternal):
3510        * rendering/RootInlineBox.h: Add virtual no-op computePerCharacterLayoutInformation().
3511        (WebCore::RootInlineBox::computePerCharacterLayoutInformation):
3512        * rendering/SVGCharacterLayoutInfo.cpp: Added.
3513        (WebCore::calculateBaselineShift):
3514        (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
3515        (WebCore::SVGCharacterLayoutInfo::xValueAvailable):
3516        (WebCore::SVGCharacterLayoutInfo::yValueAvailable):
3517        (WebCore::SVGCharacterLayoutInfo::dxValueAvailable):
3518        (WebCore::SVGCharacterLayoutInfo::dyValueAvailable):
3519        (WebCore::SVGCharacterLayoutInfo::angleValueAvailable):
3520        (WebCore::SVGCharacterLayoutInfo::baselineShiftValueAvailable):
3521        (WebCore::SVGCharacterLayoutInfo::xValueNext):
3522        (WebCore::SVGCharacterLayoutInfo::yValueNext):
3523        (WebCore::SVGCharacterLayoutInfo::dxValueNext):
3524        (WebCore::SVGCharacterLayoutInfo::dyValueNext):
3525        (WebCore::SVGCharacterLayoutInfo::angleValueNext):
3526        (WebCore::SVGCharacterLayoutInfo::baselineShiftValueNext):
3527        (WebCore::SVGCharacterLayoutInfo::processedSingleCharacter):
3528        (WebCore::SVGCharacterLayoutInfo::processedChunk):
3529        (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
3530        (WebCore::SVGCharacterLayoutInfo::inPathLayout):
3531        (WebCore::SVGCharacterLayoutInfo::setInPathLayout):
3532        (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
3533        (WebCore::SVGCharacterLayoutInfo::addStackContent):
3534        (WebCore::SVGCharacterLayoutInfo::xStackWalk):
3535        (WebCore::SVGCharacterLayoutInfo::yStackWalk):
3536        (WebCore::SVGCharacterLayoutInfo::dxStackWalk):
3537        (WebCore::SVGCharacterLayoutInfo::dyStackWalk):
3538        (WebCore::SVGCharacterLayoutInfo::angleStackWalk):
3539        (WebCore::SVGCharacterLayoutInfo::baselineShiftStackWalk):
3540        * rendering/SVGCharacterLayoutInfo.h: Added.
3541        (WebCore::PositionedVector::Type):
3542        (WebCore::PositionedVector::position):
3543        (WebCore::PositionedVector::advance):
3544        (WebCore::PositionedVector::valueAtCurrentPosition):
3545        (WebCore::SVGCharacterLayoutInfo::):
3546        (WebCore::SVGInlineBoxCharacterRange::SVGInlineBoxCharacterRange):
3547        (WebCore::SVGInlineBoxCharacterRange::isOpen):
3548        (WebCore::SVGInlineBoxCharacterRange::isClosed):
3549        (WebCore::SVGTextChunk::SVGTextChunk):
3550        (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
3551        * rendering/SVGInlineFlowBox.cpp: Make all methods no-ops when using the new text engine.
3552        (WebCore::SVGInlineFlowBox::paint):
3553        (WebCore::SVGInlineFlowBox::placeBoxesHorizontally):
3554        (WebCore::SVGInlineFlowBox::verticallyAlignBoxes):
3555        * rendering/SVGInlineFlowBox.h:
3556        * rendering/SVGInlineTextBox.cpp: Add new text selection / character hit detection related code.
3557        (WebCore::SVGInlineTextBox::SVGInlineTextBox):
3558        (WebCore::SVGInlineTextBox::selectionTop):
3559        (WebCore::SVGInlineTextBox::svgRootInlineBox):
3560        (WebCore::SVGInlineTextBox::closestCharacterToPosition):
3561        (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
3562        (WebCore::SVGInlineTextBox::offsetForPosition):
3563        (WebCore::SVGInlineTextBox::positionForOffset):
3564        (WebCore::SVGInlineTextBox::nodeAtPoint):
3565        (WebCore::SVGInlineTextBox::selectionRect):
3566        * rendering/SVGInlineTextBox.h:
3567        * rendering/SVGRootInlineBox.cpp: The heart of the new text engine lives here.
3568        (WebCore::prepareTextRendering):
3569        (WebCore::isVerticalWritingMode):
3570        (WebCore::SVGRootInlineBox::paint):
3571        (WebCore::SVGRootInlineBox::placeBoxesHorizontally):
3572        (WebCore::SVGRootInlineBox::verticallyAlignBoxes):
3573        (WebCore::SVGRootInlineBox::cummulatedWidthOfSelectionRange):
3574        (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
3575        (WebCore::cummulatedWidthOfTextChunk):
3576        (WebCore::cummulatedHeightOfTextChunk):
3577        (WebCore::applyTextAnchorToTextChunk):
3578        (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
3579        (WebCore::totalAdvanceOfInlineTextBox):
3580        (WebCore::totalAdvanceOfInlineBox):
3581        (WebCore::SVGRootInlineBox::buildLayoutInformation):
3582        (WebCore::SVGRootInlineBox::layoutInlineBoxes):
3583        (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
3584        (WebCore::SVGRootInlineBox::buildTextChunks):
3585        (WebCore::SVGRootInlineBox::svgTextChunks):
3586        (WebCore::SVGRootInlineBox::layoutTextChunks):
3587        (WebCore::SVGRootInlineBox::paintSelectionForTextBox):
3588        (WebCore::SVGRootInlineBox::paintInlineBoxes):
3589        (WebCore::SVGRootInlineBox::paintCharacterRangeForTextBox):
3590        * rendering/SVGRootInlineBox.h:
3591        * rendering/bidi.cpp: Call the new computePerCharacterLayoutInformation() method.
3592        (WebCore::RenderBlock::layoutInlineChildren):
3593
35942007-05-10  Eric Seidel  <eric@webkit.org>
3595
3596        Reviewed by olliej.
3597
3598        http://bugs.webkit.org/show_bug.cgi?id=11931
3599        PathCG fails to hit on unclosed sub-paths
3600
3601        Test: svg/custom/hit-test-unclosed-subpaths.svg
3602
3603        * platform/graphics/cg/PathCG.cpp:
3604        (WebCore::copyClosingSubpathsApplierFunction):
3605        (WebCore::copyCGPathClosingSubpaths):
3606        (WebCore::Path::contains): use new copy & close function
3607
3608=== End merge of feature-branch 2007-10-12 ===
3609
36102007-10-11  Jon Honeycutt  <jhoneycutt@apple.com>
3611
3612        Reviewed by Anders.
3613
3614        Handle a race condition that could arise if a plugin was loaded while it
3615        was scheduled to be freed: check whether the timer that schedules
3616        library frees is active in PluginPackageWin::load().
3617
3618        * plugins/win/PluginPackageWin.cpp:
3619        (WebCore::PluginPackageWin::freeLibrarySoon): Added assertions
3620        (WebCore::PluginPackageWin::freeLibraryTimerFired): Added assertion
3621        (WebCore::PluginPackageWin::load): If we are scheduled to free this
3622        library, cancel the timer, and don't call LoadLibrary
3623
36242007-10-11  Justin Garcia  <justin.garcia@apple.com>
3625
3626        Reviewed by Harrison.
3627
3628        <rdar://problem/5483567> REGRESSION (Tiger only): Pasting words copied from TextEdit in Mail adds extra newline
3629        
3630        * editing/ReplaceSelectionCommand.cpp:
3631        (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Added.
3632        We would like to insert the fragment as-is if possible, but AppKit on Tiger
3633        creates fragments from RTF data that have carriage returns and spaces at the
3634        beginning and end, and those need to be removed since they'll interfere with 
3635        paragraph merging.
3636        (WebCore::ReplaceSelectionCommand::doApply):
3637        * editing/ReplaceSelectionCommand.h:
3638
36392007-10-10  Justin Garcia  <justin.garcia@apple.com>
3640
3641        Reviewed by Maciej.
3642        
3643        <rdar://problem/5521237> Pasting a word copied from TextEdit after a regular, breaking space, adds a leading newline
3644        
3645        * editing/CompositeEditCommand.cpp:
3646        (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
3647        Fixed a typo.
3648
36492007-10-10  Jon Honeycutt  <jhoneycutt@apple.com>
3650
3651        Reviewed by Darin.
3652
3653        <rdar://5530519> REGRESSION (303-310A18): Crash when closing tab with
3654        pdf file (Reader 7 only)
3655
3656        Reader 7 subclasses its parent window, so posting a WM_DESTROY to this
3657        window puts us in plugin code. When the plugin forwards the message
3658        back to the original window proc, and we free the plugin library from
3659        there, we will jump back to code we just freed when we return, so delay 
3660        calling FreeLibrary at least until the next message loop
3661
3662        * plugins/win/PluginPackageWin.cpp:
3663        (WebCore::PluginPackageWin::freeLibrarySoon): Start a timer to free the
3664        plugin library
3665        (WebCore::PluginPackageWin::freeLibraryTimerFired): Free the library
3666        (WebCore::PluginPackageWin::PluginPackageWin): Initialize the timer that
3667        will free this library
3668        (WebCore::PluginPackageWin::unloadWithoutShutdown): Call
3669        freeLibrarySoon()
3670        * plugins/win/PluginPackageWin.h: Added m_freeLibraryTimer
3671
36722007-10-11  Ada Chan  <adachan@apple.com>
3673
3674        <rdar://problem/5534421> 
3675        Switched to using wkGetDefaultHTTPCookieStorage() and removed some cookie-related
3676        methods we no longer need in ResourceHandle.
3677        
3678        <rdar://problem/5244261> "Never" cookie policy was ignored on windows
3679        Need to set the cookie accept policy on each CFURLRequest.
3680        
3681        Reviewed by Oliver.
3682
3683        * platform/network/ResourceHandle.h:
3684        * platform/network/cf/ResourceHandleCFNet.cpp:
3685        (WebCore::makeFinalRequest):
3686        * platform/network/cf/ResourceRequestCFNet.cpp:
3687        (WebCore::ResourceRequest::doUpdatePlatformRequest):
3688        * platform/network/win/CookieJarWin.cpp:
3689        (WebCore::setCookies):
3690        (WebCore::cookies):
3691        (WebCore::cookiesEnabled):
3692
36932007-10-11  Mark Rowe  <mrowe@apple.com>
3694
3695        Reviewed by Tim Hatcher.
3696
3697        Fix for <rdar://problem/5488678>.  Disable debugging symbols in production builds for 10.4
3698        PowerPC to prevent a huge STABS section from being generated.
3699
3700        * Configurations/Base.xcconfig:
3701
37022007-10-11  Lars Knoll  <lars@trolltech.com>
3703
3704        Reviewed by Erik Seidel and Simon.
3705
3706        Ensure that setting innerHTML on an element doesn't do
3707        weird things with the document.
3708        Fixes most issues with http://bugs.webkit.org/show_bug.cgi?id=15456
3709
3710        Test: fast/innerHTML/innerHTML-changing-document-properties.xhtml
3711
3712        * dom/XMLTokenizer.cpp:
3713        (WebCore::XMLTokenizer::write):
3714        (WebCore::XMLTokenizer::startDocument):
3715        (WebCore::XMLTokenizer::end):
3716        (WebCore::):
3717
37182007-10-10  George Staikos  <staikos@kde.org>
3719
3720        Reviewed by Adam Roben.
3721
3722        Fix Qt build on Win32 with VS2005.
3723
3724        * loader/FTPDirectoryDocument.cpp:
3725        (WebCore::processFileDateString):
3726        * loader/FTPDirectoryParser.cpp:
3727        (WebCore::parseOneFTPLine):
3728
37292007-10-10  Alice Liu  <alice.liu@apple.com>
3730
3731        Reviewed by Geoff Garen.
3732
3733        Fixed <rdar://5464402> Crash when running fast/frames/onload-remove-iframe-crash.html in DRT
3734        createFrame() now returns a RefPtr instead of a raw Frame pointer. 
3735        Making this change improves the way we handle frames on Windows webkit. 
3736
3737        * loader/FrameLoader.cpp:
3738        (WebCore::FrameLoader::loadSubframe):
3739        * loader/FrameLoaderClient.h:
3740        * platform/graphics/svg/SVGImageEmptyClients.h:
3741        (WebCore::SVGEmptyFrameLoaderClient::createFrame):
3742
37432007-10-10  Simon Hausmann  <hausmann@kde.org>
3744
3745        Reviewed by Lars.
3746
3747        Fix compilation using gcc 4.3. Header files have been reorganized and as a result some extra
3748        includes are needed for INT_MAX, std::auto_ptr and the like.
3749
3750        WARNING: NO TEST CASES ADDED OR CHANGED
3751
3752        * bridge/AXObjectCache.h:
3753        * ksvg2/misc/SVGDocumentExtensions.h:
3754        * platform/Base64.cpp:
3755        * platform/graphics/svg/SVGPaintServerPattern.h:
3756        * platform/graphics/svg/SVGResourceMasker.h:
3757
37582007-10-08  Sam Weinig  <sam@webkit.org>
3759
3760        Reviewed by Steve Falkenburg.
3761
3762        Fix for <rdar://problem/5519698> CrashTracer: [USER] 47 crashes in Safari at com.apple.WebCore: WebCore::XMLTokenizer::lineNumber const + 9
3763
3764        Test: fast/innerHTML/innerHTML-script-tag-crash.xhtml
3765
3766        * dom/XMLTokenizer.cpp:
3767        (WebCore::XMLTokenizer::lineNumber): Return 1 when there is no context.
3768        (WebCore::XMLTokenizer::columnNumber): ditto.
3769
37702007-10-08  Adam Roben  <aroben@apple.com>
3771
3772        Fix Bug 15305: Crash when dragging an image when "load images automatically" preference is off
3773
3774        http://bugs.webkit.org/show_bug.cgi?id=15305
3775        <rdar://problem/5524774>
3776
3777        Reviewed by Eric Seidel.
3778
3779        No test possible: to reproduce this you have to change a WebKit
3780        preference and reload the page. See
3781        http://bugs.webkit.org/show_bug.cgi?id=15414
3782
3783        * platform/win/ClipboardWin.cpp:
3784        (WebCore::createGlobalImageFileDescriptor): ASSERT that we have an
3785        image and that it has a SharedBuffer.
3786        (WebCore::writeImageToDataObject): The fix: null-check imageBuffer.
3787
37882007-10-05  Geoffrey Garen  <ggaren@apple.com>
3789
3790        Reviewed by Sam Weinig.
3791        
3792        New fix for <rdar://problem/5522487> REGRESSION: With JavaScript 
3793        disabled, any page load causes a crash in PropertyMap::put
3794        
3795        Explicitly remove the "document" property from the window. The old 
3796        solution would leave a stale "document" property around after JavaScript
3797        was re-enabled.
3798
3799        The architecture for disabling JavaScript could use some consolidation. 
3800        It seems wrong that a script proxy even exists when JavaScript is 
3801        disabled. It also seems wrong that so many individual call sites are 
3802        responsible for checking whether JavaScript is enabled. I've filed a 
3803        bug about this: http://bugs.webkit.org/show_bug.cgi?id=15385.
3804
3805        * bindings/js/kjs_proxy.cpp:
3806        (WebCore::KJSProxy::clearDocumentWrapper):
3807        * bindings/js/kjs_proxy.h:
3808        * page/Frame.cpp:
3809        (WebCore::Frame::setDocument):
3810
38112007-10-05  Jon Honeycutt  <jhoneycutt@apple.com>
3812
3813        Reviewed by Anders.
3814
3815        <rdar://5520913> Ticketmaster.com doesn't display correctly (Flash
3816        related?)
3817
3818        The plugin is requesting files that don't exist on the server, and
3819        we are passing the 404 error page to the plugin. This change cancels the
3820        stream if the response code indicates a failure.
3821
3822        This is a port of the safari / mac code.
3823
3824        * loader/win/NetscapePlugInStreamLoaderWin.cpp:
3825        (WebCore::NetscapePlugInStreamLoader::didReceiveResponse): If the
3826        response code indicates a failure, cancel the stream
3827
38282007-10-05  Geoffrey Garen  <ggaren@apple.com>
3829
3830        Reviewed by Sam Weinig.
3831        
3832        Fixed <rdar://problem/5522487> REGRESSION: With JavaScript disabled, 
3833        any page load causes a crash in PropertyMap::put
3834        
3835        The problem was that we were using JavaScript when JavaScript was
3836        disabled. The architecture for disabling JavaScript could use some
3837        consolidation, but this is the simplest, safest change for now.
3838        
3839        Currently passing layout tests still pass.
3840
3841        * bindings/js/kjs_proxy.cpp:
3842        (WebCore::KJSProxy::updateDocumentWrapper):
3843
38442007-10-04  Beth Dakin  <bdakin@apple.com>
3845
3846        Reviewed by John Sullivan.
3847
3848        Fix for <rdar://problem/5441823> REGRESSION (r25142, Tiger only): 
3849        Vertical scroll bar not redrawn properly when going back in history 
3850        (15033)
3851
3852        This fix if-defs r25142 to be Leopard-only since it causes 
3853        correctness issues on Tiger and does not seem to have any 
3854        performance impact on Tiger either.
3855
3856        * loader/FrameLoader.cpp:
3857        (WebCore::FrameLoader::transitionToCommitted):
3858
38592007-10-05  Ada Chan  <adachan@apple.com>
3860
3861        <rdar://problem/5436617> Favicons sometimes don't show up even when they are
3862        in the database
3863        - A client can try to retain an icon for a page before the database is actually
3864        opened.  Since isOpened() is not a requirement to retain an icon, remove the check
3865        for that.  Instead, we'll check to make sure whether this database is enabled
3866        before proceeding.
3867
3868        Reviewed by Brady.
3869
3870        * loader/icon/IconDatabase.cpp:
3871        (WebCore::IconDatabase::retainIconForPageURL):
3872        (WebCore::IconDatabase::releaseIconForPageURL): only check isOpen() before we
3873        schedule for a sync.
3874
38752007-10-05  Lars Knoll  <lars@trolltech.com>
3876
3877        Reviewed by olliej.
3878
3879        fix a hang in editing/selection/extend-by-word-002.html
3880
3881        * platform/qt/TextBreakIteratorQt.cpp:
3882        (WebCore::CharBreakIteratorQt::next):
3883        (WebCore::characterBreakIterator):
3884
38852007-10-04  Mark Rowe  <mrowe@apple.com>
3886
3887        Reviewed by Oliver.
3888
3889        Switch to default level of debugging symbols to resolve <rdar://problem/5488678>.
3890        The "full" level appears to offer no observable benefits even though the documentation
3891        suggests it be used for dead code stripping.  This should also decrease link times.
3892
3893        * Configurations/Base.xcconfig:
3894
38952007-10-04  Adele Peterson  <adele@apple.com>
3896
3897        Reviewed by Darin.
3898
3899        WebCore part of fix for <rdar://problem/5369017> REGRESSION: Can't tab to webview that doesn't have editable content
3900
3901        * page/FocusController.h: Added FocusDirection argument.
3902        * page/FocusController.cpp: (WebCore::FocusController::setInitialFocus):
3903          Use FocusDirection argument instead of key modifiers to send direction to advanceFocus.
3904        * WebCore.exp: Updated symbol.
3905
39062007-10-04  Kevin Decker  <kdecker@apple.com>
3907
3908        Reviewed by John.
3909        
3910        <rdar://problems/5516309>
3911        
3912        * page/FrameView.cpp:
3913        (WebCore::FrameView::updateControlTints): Avoid the expense of updating tints on controls for the
3914        empty-window case since this can take a significant amount of time even on windows that have no
3915        content at all. Note this fix specifically optimizes the empty window/tab case; for a more broad
3916        fix John wrote up rdar://problem/5521050.
3917
39182007-10-04  Darin Adler  <darin@apple.com>
3919
3920        * page/Frame.h: Put functions into categories to indicate other classes
3921        we'd like to move them into in the future. Just organizational -- no code
3922        change.
3923
39242007-10-04  Lars Knoll  <lars@trolltech.com>
3925
3926        Reviewed by maciej.
3927
3928        fix a crash in the FrameLoader that can happen under certain
3929        conditions in the Qt port.
3930
3931        Test: fast/loader/iframe-crash-on-missing-image.xhtml
3932
3933        * loader/FrameLoader.cpp:
3934        (WebCore::FrameLoader::receivedMainResourceError):
3935
39362007-10-03  Alp Toker  <alp@atoker.com>
3937
3938        Reviewed by Adam.
3939
3940        http://bugs.webkit.org/show_bug.cgi?id=14726
3941        [gtk] API design. Mapping the WebView delegates to signals.
3942
3943        Change the API namespace of the Gtk+ port from 'WebKitGtk' to 'WebKit'.
3944
3945        * WebCore.pro:
3946
39472007-10-03  Alp Toker  <alp@atoker.com>
3948
3949        Reviewed by Eric.
3950
3951        http://bugs.webkit.org/show_bug.cgi?id=14129
3952        [CAIRO] Support the canvas element
3953
3954        Add a new canvas implementation using Cairo for rendering.
3955
3956        * html/CanvasGradient.cpp:
3957        (WebCore::CanvasGradient::CanvasGradient):
3958        (WebCore::CanvasGradient::~CanvasGradient):
3959        (WebCore::CanvasGradient::addColorStop):
3960        (WebCore::CanvasGradient::platformShading):
3961        * html/CanvasGradient.h:
3962        * html/CanvasRenderingContext2D.cpp:
3963        (WebCore::CanvasRenderingContext2D::setFillStyle):
3964        (WebCore::CanvasRenderingContext2D::fill):
3965        (WebCore::CanvasRenderingContext2D::stroke):
3966        (WebCore::CanvasRenderingContext2D::fillRect):
3967        (WebCore::CanvasRenderingContext2D::drawImage):
3968        (WebCore::CanvasRenderingContext2D::applyStrokePattern):
3969        * html/CanvasStyle.cpp:
3970        (WebCore::CanvasStyle::applyStrokeColor):
3971        * html/HTMLCanvasElement.cpp:
3972        (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
3973        (WebCore::HTMLCanvasElement::reset):
3974        (WebCore::HTMLCanvasElement::paint):
3975        (WebCore::HTMLCanvasElement::createDrawingContext):
3976        (WebCore::HTMLCanvasElement::createPlatformImage):
3977        * html/HTMLCanvasElement.h:
3978
39792007-10-03  Lars Knoll  <lars@trolltech.com>
3980
3981        Signed off by olliej.
3982
3983        move WebKitQt to WebKit/qt for consistency with the other ports.
3984
3985        WARNING: NO TEST CASES ADDED OR CHANGED
3986
3987        * WebCore.pro:
3988
39892007-10-02  Sam Weinig  <sam@webkit.org>
3990
3991        Reviewed by Oliver and Adam.
3992
3993        Patch for <rdar://problem/5506968> Fail to DnD local file with non-ascii character in path from desktop to Safari (can open it with file menu)
3994
3995        Use CoreFoundation to do the conversion from path to URL, as the Windows API was not
3996        correctly converting to UTF-8 and we know CFURL will.
3997
3998        * platform/win/ClipboardUtilitiesWin.cpp:
3999        (WebCore::urlFromPath):
4000        (WebCore::getURL):
4001
40022007-10-02  Tristan O'Tierney  <tristan@apple.com>
4003
4004        Reviewed by Darin Adler.
4005
4006        <rdar://problem/5511842> REGRESSION: Webkit stops responding while loading Apple Store Canada page (15304)
4007        
4008        Included the NSSynchronousURLConnection_PrivateMode mode, in addition to the default run loop modes
4009        as an acceptable mode when using performSelectorOnMainThread with our syncronous url callbacks.
4010
4011        * platform/network/mac/ResourceHandleMac.mm:
4012        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
4013        Added NSSynchronousURLConnection_PrivateMode to the list of accepted modes.
4014
40152007-10-02  Darin Adler  <darin@apple.com>
4016
4017        Reviewed by Adam.
4018
4019        - add support for GDI objects to OwnPtr; I plan to use this
4020          to fix some GDI handle leaks
4021
4022        * css/CSSGrammar.y: Change parser to avoid macro that conflicts
4023        with macro defined in Windows system headers: FLOAT. This is needed
4024        because OwnPtr.h will now include <windows.h>.
4025        * css/CSSParser.cpp: (WebCore::CSSParser::lex): Ditto.
4026        * css/tokenizer.flex: Ditto.
4027
4028        * platform/win/CursorWin.cpp: (WebCore::Cursor::Cursor):
4029        Use OwnPtr for a few HBITMAP objects as a test case.
4030
4031        * platform/win/COMPtr.h: (COMPtr::COMPtr): Fix so that we can use
4032        Query with other COMPtr. Before this would not compile if it was
4033        ever instantiated.
4034
40352007-10-02  Steve Falkenburg  <sfalken@apple.com>
4036
4037        Reviewed by Adam, Ada.
4038
4039        Fix leak of GDI handle when we call MLANG.
4040
4041        * platform/win/FontCacheWin.cpp:
4042        (WebCore::FontCache::getFontDataForCharacters):
4043
40442007-10-02  Lars Knoll  <lars@trolltech.com>
4045
4046        Reviewed by Olliej.
4047
4048        The cookies() method should only return the value of the
4049        cookie, not additional info such as the expiration date.
4050
4051        * platform/qt/CookieJarQt.cpp:
4052        (WebCore::cookies):
4053
40542007-10-01  Lars Knoll  <lars@trolltech.com>
4055
4056        Reviewed by Eric.
4057
4058        Fix a wrong extension mapping in the MIMETypeRegistry and identify about: url's as frames in the FrameLoaderClient.
4059
4060        * platform/qt/MIMETypeRegistryQt.cpp:
4061        (WebCore::):
4062
40632007-10-01  Justin Garcia  <justin.garcia@apple.com>
4064
4065        Reviewed by Harrison.
4066
4067        <rdar://problem/5516183> REGRESSION: Creating a ToDo on an incoming message fails
4068        
4069        Rolling out r25721.
4070
4071        * editing/ReplaceSelectionCommand.cpp:
4072        (WebCore::ReplaceSelectionCommand::doApply):
4073        * editing/ReplaceSelectionCommand.h:
4074
40752007-10-01  Beth Dakin  <bdakin@apple.com>
4076
4077        Reviewed by Adam.
4078
4079        Fix for <rdar://problem/5515426> NetNewsWire 3 crashes at launch in 
4080        WebCore::FrameView::layout (other repro scenarios too)
4081
4082        The new call to updateWidget() that we added to FrameView::layout() 
4083        can destroy the RenderPartObject. And so we were crashing on the 
4084        subsequent call to updateWidgetPosition(). This patch fixes that by 
4085        checking to make sure the RenderPartObject is still in the HashSet 
4086        after updateWidget(). Because m_widgetUpdateSet can be modified 
4087        during the call to updateWidget(), we need it to be intact while we 
4088        are iterating through the copy, so we cannot use the HashSet::swap 
4089        call we were using before. This patch instead uses a Vector to 
4090        iterate through the HashSet data and calls clear() on the HashSet 
4091        at the end.
4092
4093        * page/FrameView.cpp:
4094        (WebCore::FrameView::layout):
4095
40962007-10-01  Eli Fidler  <eli@staikos.net>
4097
4098        Reviewed by George Staikos.
4099
4100        Switch bogus assert to a conditional and return.  This case happens
4101        when a widget is hidden.
4102
4103        * platform/qt/WidgetQt.cpp:
4104        (WebCore::Widget::invalidateRect):
4105
41062007-09-30  Darin Adler  <darin@apple.com>
4107
4108        Reviewed by Maciej.
4109
4110        - tone down the assertion I asked Harrison to include in his fix for
4111          <rdar://problem/5511128>; it's OK to re-ref and deref the document
4112          as long as you do so after the children are done being destroyed
4113
4114        No effect on release builds. Assertion change only.
4115
4116        Besides the changes listed below, renamed m_hasDeleted flag to
4117        m_deletionHasBegun.
4118
4119        * dom/ContainerNode.cpp: (WebCore::ContainerNode::removeAllChildren):
4120        Added code to set the m_deletionHasBegun flag and some assertions
4121        that test its state.
4122
4123        * dom/Document.h: Removed m_hasDeleted -- we now use m_deletionHasBegun
4124        in the base class TreeShared.
4125        * dom/Document.cpp:
4126        (WebCore::Document::Document): Removed initialization of m_hasDeleted.
4127        (WebCore::Document::removedLastRef): Added code to clear
4128        m_inRemovedLastRefFunction if we end up deciding not to delete this.
4129
4130        * platform/Shared.h:
4131        (WebCore::TreeShared::TreeShared): Added m_deletionHasBegun in addition to
4132        m_inRemovedLastRefFunction (formerly named m_hasRemovedLastRef).
4133        (WebCore::TreeShared::~TreeShared): Assert that m_deletionHasBegun is true.
4134        (WebCore::TreeShared::ref): Assert neither flag is true.
4135        (WebCore::TreeShared::deref): Ditto.
4136        (WebCore::TreeShared::hasOneRef): Ditto.
4137        (WebCore::TreeShared::removedLastRef): Made private. Added code to
4138        set m_hasDeleted to true. Also removed cast; since this class template
4139        has a virtual destructor, we don't need to cast before calling delete.
4140
41412007-09-29  Holger Hans Peter Freyther  <zecke@selfish.org>
4142
4143        Reviewed by Mark.
4144
4145        -Fix http://bugs.webkit.org/show_bug.cgi?id=13226.
4146        Remove Bakefiles from svn.
4147
4148        * Projects/gdk/webcore-gdk.bkl: Removed.
4149        * Projects/wx/webcore-wx.bkl: Removed.
4150        * WebCoreSources.bkl: Removed.
4151        * webcore-base.bkl: Removed.
4152
41532007-09-28  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
4154
4155        Reviewed by Mark.
4156
4157        -Fix http://bugs.webkit.org/show_bug.cgi?id=15254.
4158
4159        * platform/gtk/RenderThemeGtk.cpp:
4160        (WebCore::RenderThemeGtk::determineState):
4161            - Apply state if control is readonly
4162            - Added state GTK_STATE_SELECTED of object is checked
4163            - Apply GTK_STATE_ACTIVE if RenderObject isFocused()
4164        (WebCore::RenderThemeGtk::paintTextField):
4165        (WebCore::RenderThemeGtk::gtkEntry):
4166            - Implemented theme-aware text field based on gtk/gtkentry.c implementation
4167
41682007-09-29  Holger Hans Peter Freyther  <zecke@selfish.org>
4169
4170        Reviewed by Eric.
4171
4172        Build fix for Mac Gtk+ and Qt builds. In revision 25798 changing
4173        XSLTProcessor.cpp was forgotten.
4174
4175        * xml/XSLTProcessor.cpp: Use PLATFORM(MAC) instead of PLATFORM(DARWIN)
4176
41772007-09-29  Adam Roben  <aroben@apple.com>
4178
4179        Fix <rdar://4965715> Horizontal scrollwheel scrolling moves in opposite direction on Vista
4180
4181        Reviewed by Sam.
4182
4183        No regression test possible.
4184
4185        * platform/win/WheelEventWin.cpp:
4186        (WebCore::PlatformWheelEvent::PlatformWheelEvent): Use a negative
4187        delta when scrolling right to match EventHandler's expectations (which
4188        are based on AppKit).
4189
41902007-09-28  Kevin Decker  <kdecker@apple.com>
4191
4192        Reviewed by Mark Rowe
4193
4194        Build fix for Mac Gtk+ and Qt builds.
4195        
4196        * xml/XSLStyleSheet.cpp: Use PLATFORM(MAC) instead of PLATFORM(DARWIN)
4197        * xml/XSLTExtensions.cpp: Ditto.
4198
41992007-09-28  David Harrison  <harrison@apple.com>
4200
4201        Reviewed by Darin Adler.
4202
4203        <rdar://problem/5511128> Crash closing or reloading this SVG
4204
4205        * dom/ContainerNode.cpp:
4206        (WebCore::dispatchChildInsertionEvents):
4207        (WebCore::dispatchChildRemovalEvents):
4208        Use DocPtr instead of RefPtr, since these events are dispatched
4209        when the Document is being being torn down by removedLastRef().
4210
4211        * dom/DocPtr.h:
4212        (WebCore::DocPtr::DocPtr):
4213        Fix longstanding typo in template so that the DocPtr(DocPtr) constructor can be used.
4214
4215        * dom/Document.cpp:
4216        (WebCore::Document::Document):
4217        (WebCore::Document::removedLastRef):
4218        * dom/Document.h:
4219        (WebCore::Document::selfOnlyRef):
4220        (WebCore::Document::selfOnlyDeref):
4221        * platform/Shared.h:
4222        (WebCore::Shared::Shared):
4223        (WebCore::Shared::ref):
4224        (WebCore::Shared::deref):
4225        (WebCore::Shared::hasOneRef):
4226        (WebCore::TreeShared::TreeShared):
4227        (WebCore::TreeShared::ref):
4228        (WebCore::TreeShared::deref):
4229        (WebCore::TreeShared::hasOneRef):
4230        (WebCore::TreeShared::refCount):
4231        Add debug-only checks for a document being ref-counted while being deleted.
4232
42332007-09-27  Kevin McCullough  <kmccullough@apple.com>
4234
4235        Reviewed by Darin.
4236
4237        - <rdar://5261371> Nothing downloaded when exporting bookmarks from iGoogle web history
4238
4239        Function for use by WebKit. Currently used only on Windows.
4240
4241        * platform/network/ResourceResponse.cpp:
4242        (WebCore::ResourceResponse::isAttachment):
4243        * platform/network/ResourceResponse.h:
4244
42452007-09-27  Mitz Pettel  <mitz@webkit.org>
4246
4247        Reviewed by Dave Hyatt.
4248
4249        - fix http://bugs.webkit.org/show_bug.cgi?id=15262
4250          REGRESSION: Margin-top:18px is pushing down the multiple select list box outside the div.
4251
4252        Reflected in existing tests.
4253
4254        * css/html4.css: Changed listboxes to use border-box sizing, to match Firefox,
4255        WinIE and apparently also Safari 2.
4256
42572007-09-27  Kevin Decker  <kdecker@apple.com>
4258
4259        <rdar://problem/5493093>
4260    
4261        Rubber stamped by John Sullivan.
4262        
4263        * WebCore.order: Added.
4264        * WebCore.xcodeproj/project.pbxproj:  We're changing from using an order file built by another team to using one
4265         we actually check into our project repository. Linker settings for Symbol Ordering Flags have been updated
4266         accordingly.
4267         
42682007-09-27  Antti Koivisto  <antti@apple.com>
4269
4270        Reviewed by Geoff.
4271        
4272        Fix for <rdar://problem/5499125>
4273        REGRESSION (r21367): After launching Kidzui beta, a webview frame fails to appear in its main window
4274        
4275        If window object properties were modified when it had initial empty document (synchronously after 
4276        window.open() for example) those modifications were lost when the real document was switched in.
4277        
4278        Match Firefox behavior where window properties are not cleared if the inital document and the loaded one
4279        have matching security domains.
4280
4281        Tests: fast/dom/Window/window-early-properties.html
4282               http/tests/security/window-properties-clear-domain.html
4283               http/tests/security/window-properties-clear-port.html
4284               http/tests/security/window-properties-pass.html
4285
4286        * WebCore.exp:
4287        * loader/FrameLoader.cpp:
4288        (WebCore::FrameLoader::FrameLoader):
4289        (WebCore::FrameLoader::init):
4290        (WebCore::FrameLoader::clear):
4291        (WebCore::FrameLoader::isSecureTransition):
4292        (WebCore::FrameLoader::begin):
4293        * loader/FrameLoader.h:
4294        If we are transitioning from initial empty document to the final one, do a domain security check
4295        between old security policy URL and new URL. If that passes don't clear script proxy and script objects.
4296        
4297        * bindings/js/kjs_proxy.cpp:
4298        (WebCore::KJSProxy::updateDocumentWrapper):
4299        * bindings/js/kjs_proxy.h:
4300        * page/Frame.cpp:
4301        (WebCore::Frame::setDocument):
4302        Since we don't always clear window properties anymore, we need to update the document property to point to
4303        the newly created one. 
4304        
43052007-09-27  Kevin Decker  <kdecker@apple.com>
4306
4307        Reviewed by Darin.
4308
4309        <rdar://problem/5493093>
4310        
4311        * WebCore.xcodeproj/project.pbxproj: Removed libxslt from statically linked frameworks.
4312        * platform/mac/SoftLinking.h: Formatting tweakes, added SOFT_LINK_LIBRARY, and if'def for 
4313        PLATFORM(DARWIN)
4314        * xml/XSLStyleSheet.cpp: Soft-linked libxslt.
4315        * xml/XSLTExtensions.cpp: Removed the call to xsltGenericError, and added a FIXME comment stating
4316        that it might be helpful to push any errors from xmlXPathNewValueTree up to the Javascript Console. 
4317        * xml/XSLTProcessor.cpp: Soft-linked libxslt.
4318        
43192007-09-27  Adele Peterson  <adele@apple.com>
4320
4321        Reviewed by Brady.
4322
4323        Fix for <rdar://problem/5453350> REGRESSION (r18541, Tiger only): Refreshing a cached https page does not reload CSS and JavaScript resources
4324        http://bugs.webkit.org/show_bug.cgi?id=15121
4325
4326        * loader/FrameLoader.cpp: (WebCore::FrameLoader::addExtraFieldsToRequest): Now sets the cache policy to ReloadIgnoringCacheData.  Without setting the cache policy,
4327        the default policy in this case was ReturnCacheDataElseLoad.  If we're in a situation where the resource is in the cache, we want to make sure to avoid loading from the cache in this case.
4328
43292007-09-27  Timothy Hatcher  <timothy@apple.com>
4330
4331        Reviewed by Darin.
4332
4333        <rdar://problem/5199546> CrashTracer: [REGRESSION] 8216 crashes in Safari at com.apple.WebCore: WebCore::ResourceHandle::client const + 6
4334
4335        On Tiger NSURLConnection can sometimes call the connection:willCacheResponse: delegate method on
4336        a secondary thread instead of the main thread. This was never an issue before, since the implementation 
4337        of this method was very simple and thread safe.
4338
4339        The fix is to block during connection:willCacheResponse: and perform the work on the main thread.
4340        We need to block since this delegate method needs to return a result. If we are already on the
4341        main thread (which sometimes we are), the method does nothing different. If we are on a secondary
4342        thread, we make a mutable dictionary to hold all the arguments and later the result object.
4343        Then performSelectorOnMainThread:withObject: using the _callConnectionWillCacheResponseWithInfo:
4344        selector. This new method just pulls the arguments out for the dictionary and calls the real
4345        connection:willCacheResponse: delegate method (this time on the main thread). The result is stored
4346        in the dictionary, and when performSelectorOnMainThread:withObject: finishes the result is pulled
4347        out and returned.
4348
4349        * platform/network/mac/ResourceHandleMac.mm:
4350        (-[WebCoreResourceHandleAsDelegate _callConnectionWillCacheResponseWithInfo:]):
4351        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
4352
43532007-09-27  David Hyatt  <hyatt@apple.com>
4354
4355        Update to reflect the minimal WebKitSystemInterface changes required
4356        to support @font-face.
4357
4358        Reviewed by john
4359
4360        * platform/mac/FontDataMac.mm:
4361        (WebCore::FontData::platformInit):
4362        (WebCore::FontData::platformWidthForGlyph):
4363        * platform/mac/WebCoreSystemInterface.h:
4364        * platform/mac/WebCoreSystemInterface.mm:
4365
43662007-09-26  Darin Adler  <darin@apple.com>
4367
4368        - fix Windows build
4369
4370        * platform/win/ClipboardWin.cpp:
4371        (WebCore::writeURL): Add a check for empty URL. Remove the check for invalid URL.
4372        (WebCore::ClipboardWin::setData): Remove the check for invalid URL.
4373        * plugins/win/PluginViewWin.cpp:
4374        (WebCore::PluginViewWin::start): Check for empty URL instead of invalid URL.
4375        (WebCore::PluginViewWin::load): Same here.
4376
43772007-09-26  Darin Adler  <darin@apple.com>
4378
4379        Reviewed by John Sullivan.
4380
4381        - fix <rdar://problem/5491054> REGRESSION (Mail, plain-text only): Nothing happens
4382          when you click on rdar://<num>&<num> links (or AOL links in Safari)
4383
4384        Remove the non-useful concept of a "malformed"/"invalid" URL.
4385
4386        There are URLs we can parse, and others we can't, but that's not sufficient to
4387        determine if we should try to work with the URL. It's entirely possible that
4388        a so-called "malformed" URL will work just fine if it's passed to the right
4389        software.
4390
4391        * platform/KURL.h: Removed isMalformed() and isValid().
4392
4393        * loader/Cache.cpp: (WebCore::Cache::requestResource): Removed unneeded check
4394        if the URL is valid. But do check for an empty URL just to guarantee we don't
4395        trip up with a null string. It's possible we can remove this empty URL check
4396        later, but it's less risky to leave the empty string behavior alone for now.
4397
4398        * loader/FrameLoader.cpp:
4399        (WebCore::FrameLoader::urlSelected): Removed unneeded check if the URL is valid.
4400        Back on 2007-07-08, we realized that we needed to allow empty URLs. But we also
4401        need to allow other URLs here. This is the code path from the Mail case.
4402        (WebCore::FrameLoader::submitForm): Replaced URL validity check with a check
4403        for an empty URL (same reasoning as for requestResource above).
4404
4405        * page/InspectorController.cpp: (WebCore::InspectorResource::type):
4406        * rendering/RenderObject.cpp: (WebCore::RenderObject::addPDFURLRect):
4407        Removed unneeded check for an invalid URL. In both of these cases it's definitely
4408        safe to allow event an empty URL.
4409
44102007-09-26  George Staikos  <staikos@kde.org>
4411
4412        Reviewed by John Sullivan.
4413
4414        Only highlight the applicable portion of the text run for a search
4415        highlight.  No way to make a testcase for this presently.
4416
4417        * rendering/InlineTextBox.cpp:
4418        (WebCore::InlineTextBox::paintTextMatchMarker):
4419
44202007-09-25  David Kilzer  <ddkilzer@webkit.org>
4421
4422        Reviewed by Adam.
4423
4424        - Fix http://bugs.webkit.org/show_bug.cgi?id=14885
4425          LGPL'ed files contain incorrect FSF address
4426
4427        * LICENSE-LGPL-2:
4428        * LICENSE-LGPL-2.1:
4429        * WebCorePrefix.h:
4430        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
4431        * bindings/js/JSDOMWindowCustom.cpp:
4432        * bindings/js/JSDocumentCustom.cpp:
4433        * bindings/js/JSHTMLCollectionCustom.cpp:
4434        * bindings/js/JSHTMLElementWrapperFactory.cpp:
4435        * bindings/js/JSHTMLElementWrapperFactory.h:
4436        * bindings/js/JSHTMLInputElementBase.cpp:
4437        * bindings/js/JSHTMLInputElementBase.h:
4438        * bindings/js/JSHTMLOptionElementConstructor.cpp:
4439        * bindings/js/JSHTMLOptionElementConstructor.h:
4440        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
4441        * bindings/js/JSHTMLSelectElementCustom.cpp:
4442        * bindings/js/JSNodeFilterCondition.cpp:
4443        * bindings/js/JSNodeFilterCondition.h:
4444        * bindings/js/JSNodeIteratorCustom.cpp:
4445        * bindings/js/JSSVGElementWrapperFactory.cpp:
4446        * bindings/js/JSSVGElementWrapperFactory.h:
4447        * bindings/js/JSSVGMatrixCustom.cpp:
4448        * bindings/js/JSSVGPathSegCustom.cpp:
4449        * bindings/js/JSSVGPathSegListCustom.cpp:
4450        * bindings/js/JSSVGPointListCustom.cpp:
4451        * bindings/js/JSTreeWalkerCustom.cpp:
4452        * bindings/js/JSXMLHttpRequest.cpp:
4453        * bindings/js/JSXMLHttpRequest.h:
4454        * bindings/js/kjs_binding.cpp:
4455        * bindings/js/kjs_binding.h:
4456        * bindings/js/kjs_css.cpp:
4457        * bindings/js/kjs_css.h:
4458        * bindings/js/kjs_dom.cpp:
4459        * bindings/js/kjs_dom.h:
4460        * bindings/js/kjs_events.cpp:
4461        * bindings/js/kjs_events.h:
4462        * bindings/js/kjs_html.cpp:
4463        * bindings/js/kjs_html.h:
4464        * bindings/js/kjs_navigator.cpp:
4465        * bindings/js/kjs_navigator.h:
4466        * bindings/js/kjs_proxy.cpp:
4467        * bindings/js/kjs_proxy.h:
4468        * bindings/js/kjs_window.cpp:
4469        * bindings/js/kjs_window.h:
4470        * bindings/objc/DOMImplementationFront.cpp:
4471        * bindings/objc/DOMImplementationFront.h:
4472        * bindings/scripts/CodeGenerator.pm:
4473        * bindings/scripts/CodeGeneratorJS.pm:
4474        * bindings/scripts/CodeGeneratorObjC.pm:
4475        * bindings/scripts/IDLParser.pm:
4476        * bindings/scripts/IDLStructure.pm:
4477        * bindings/scripts/generate-bindings.pl:
4478        * config.h:
4479        * css/CSSBorderImageValue.cpp:
4480        * css/CSSBorderImageValue.h:
4481        * css/CSSCharsetRule.cpp:
4482        * css/CSSCharsetRule.h:
4483        * css/CSSCharsetRule.idl:
4484        * css/CSSComputedStyleDeclaration.cpp:
4485        * css/CSSComputedStyleDeclaration.h:
4486        * css/CSSCursorImageValue.cpp:
4487        * css/CSSCursorImageValue.h:
4488        * css/CSSFontFaceRule.cpp:
4489        * css/CSSFontFaceRule.h:
4490        * css/CSSFontFaceRule.idl:
4491        * css/CSSGrammar.y:
4492        * css/CSSHelper.cpp:
4493        * css/CSSHelper.h:
4494        * css/CSSImageValue.cpp:
4495        * css/CSSImageValue.h:
4496        * css/CSSImportRule.cpp:
4497        * css/CSSImportRule.h:
4498        * css/CSSImportRule.idl:
4499        * css/CSSInheritedValue.cpp:
4500        * css/CSSInheritedValue.h:
4501        * css/CSSInitialValue.cpp:
4502        * css/CSSInitialValue.h:
4503        * css/CSSMediaRule.cpp:
4504        * css/CSSMediaRule.h:
4505        * css/CSSMediaRule.idl:
4506        * css/CSSMutableStyleDeclaration.cpp:
4507        * css/CSSMutableStyleDeclaration.h:
4508        * css/CSSNamespace.h:
4509        * css/CSSPageRule.cpp:
4510        * css/CSSPageRule.h:
4511        * css/CSSPageRule.idl:
4512        * css/CSSParser.cpp:
4513        * css/CSSParser.h:
4514        * css/CSSPrimitiveValue.cpp:
4515        * css/CSSPrimitiveValue.h:
4516        * css/CSSPrimitiveValue.idl:
4517        * css/CSSProperty.cpp:
4518        * css/CSSProperty.h:
4519        * css/CSSQuirkPrimitiveValue.h:
4520        * css/CSSRule.cpp:
4521        * css/CSSRule.h:
4522        * css/CSSRule.idl:
4523        * css/CSSRuleList.cpp:
4524        * css/CSSRuleList.h:
4525        * css/CSSSelector.cpp:
4526        * css/CSSSelector.h:
4527        * css/CSSStyleDeclaration.cpp:
4528        * css/CSSStyleDeclaration.h:
4529        * css/CSSStyleDeclaration.idl:
4530        * css/CSSStyleRule.cpp:
4531        * css/CSSStyleRule.h:
4532        * css/CSSStyleRule.idl:
4533        * css/CSSStyleSelector.cpp:
4534        * css/CSSStyleSelector.h:
4535        * css/CSSStyleSheet.cpp:
4536        * css/CSSStyleSheet.h:
4537        * css/CSSStyleSheet.idl:
4538        * css/CSSUnknownRule.h:
4539        * css/CSSUnknownRule.idl:
4540        * css/CSSValue.h:
4541        * css/CSSValue.idl:
4542        * css/CSSValueList.cpp:
4543        * css/CSSValueList.h:
4544        * css/Counter.h:
4545        * css/Counter.idl:
4546        * css/DashboardRegion.h:
4547        * css/FontFamilyValue.cpp:
4548        * css/FontFamilyValue.h:
4549        * css/FontValue.cpp:
4550        * css/FontValue.h:
4551        * css/MediaFeatureNames.cpp:
4552        * css/MediaFeatureNames.h:
4553        * css/MediaList.cpp:
4554        * css/MediaList.h:
4555        * css/Pair.h:
4556        * css/RGBColor.idl:
4557        * css/Rect.h:
4558        * css/Rect.idl:
4559        * css/ShadowValue.cpp:
4560        * css/ShadowValue.h:
4561        * css/StyleBase.cpp:
4562        * css/StyleBase.h:
4563        * css/StyleList.cpp:
4564        * css/StyleList.h:
4565        * css/StyleSheet.cpp:
4566        * css/StyleSheet.h:
4567        * css/StyleSheet.idl:
4568        * css/StyleSheetList.cpp:
4569        * css/StyleSheetList.h:
4570        * css/StyleSheetList.idl:
4571        * css/html4.css:
4572        * css/make-css-file-arrays.pl:
4573        * css/makegrammar.pl:
4574        * css/makeprop.pl:
4575        * css/maketokenizer:
4576        * css/makevalues.pl:
4577        * css/quirks.css:
4578        * dom/AtomicStringList.h:
4579        * dom/Attr.cpp:
4580        * dom/Attr.h:
4581        * dom/Attr.idl:
4582        * dom/Attribute.cpp:
4583        * dom/Attribute.h:
4584        * dom/BeforeUnloadEvent.cpp:
4585        * dom/BeforeUnloadEvent.h:
4586        * dom/CDATASection.cpp:
4587        * dom/CDATASection.h:
4588        * dom/CDATASection.idl:
4589        * dom/CSSMappedAttributeDeclaration.cpp:
4590        * dom/CSSMappedAttributeDeclaration.h:
4591        * dom/CharacterData.cpp:
4592        * dom/CharacterData.h:
4593        * dom/CharacterData.idl:
4594        * dom/ChildNodeList.cpp:
4595        * dom/ChildNodeList.h:
4596        * dom/Clipboard.h:
4597        * dom/ClipboardEvent.cpp:
4598        * dom/ClipboardEvent.h:
4599        * dom/Comment.cpp:
4600        * dom/Comment.h:
4601        * dom/Comment.idl:
4602        * dom/ContainerNode.cpp:
4603        * dom/ContainerNode.h:
4604        * dom/DOMImplementation.cpp:
4605        * dom/DOMImplementation.h:
4606        * dom/DOMImplementation.idl:
4607        * dom/DocPtr.h:
4608        * dom/Document.cpp:
4609        * dom/Document.h:
4610        * dom/Document.idl:
4611        * dom/DocumentFragment.cpp:
4612        * dom/DocumentFragment.h:
4613        * dom/DocumentFragment.idl:
4614        * dom/DocumentMarker.h:
4615        * dom/DocumentType.cpp:
4616        * dom/DocumentType.h:
4617        * dom/DocumentType.idl:
4618        * dom/EditingText.cpp:
4619        * dom/EditingText.h:
4620        * dom/Element.cpp:
4621        * dom/Element.h:
4622        * dom/Element.idl:
4623        * dom/Entity.cpp:
4624        * dom/Entity.h:
4625        * dom/Entity.idl:
4626        * dom/EntityReference.cpp:
4627        * dom/EntityReference.h:
4628        * dom/EntityReference.idl:
4629        * dom/Event.cpp:
4630        * dom/Event.h:
4631        * dom/Event.idl:
4632        * dom/EventListener.h:
4633        * dom/EventListener.idl:
4634        * dom/EventNames.cpp:
4635        * dom/EventNames.h:
4636        * dom/EventTarget.idl:
4637        * dom/EventTargetNode.cpp:
4638        * dom/EventTargetNode.h:
4639        * dom/ExceptionCode.h:
4640        * dom/KeyboardEvent.cpp:
4641        * dom/KeyboardEvent.h:
4642        * dom/KeyboardEvent.idl:
4643        * dom/MappedAttribute.cpp:
4644        * dom/MappedAttribute.h:
4645        * dom/MappedAttributeEntry.h:
4646        * dom/MouseEvent.cpp:
4647        * dom/MouseEvent.h:
4648        * dom/MouseEvent.idl:
4649        * dom/MouseRelatedEvent.cpp:
4650        * dom/MouseRelatedEvent.h:
4651        * dom/MutationEvent.cpp:
4652        * dom/MutationEvent.h:
4653        * dom/MutationEvent.idl:
4654        * dom/NameNodeList.cpp:
4655        * dom/NameNodeList.h:
4656        * dom/NamedAttrMap.cpp:
4657        * dom/NamedAttrMap.h:
4658        * dom/NamedMappedAttrMap.cpp:
4659        * dom/NamedMappedAttrMap.h:
4660        * dom/NamedNodeMap.h:
4661        * dom/NamedNodeMap.idl:
4662        * dom/Node.cpp:
4663        * dom/Node.h:
4664        * dom/Node.idl:
4665        * dom/NodeFilter.cpp:
4666        * dom/NodeFilter.h:
4667        * dom/NodeFilter.idl:
4668        * dom/NodeFilterCondition.cpp:
4669        * dom/NodeFilterCondition.h:
4670        * dom/NodeIterator.cpp:
4671        * dom/NodeIterator.h:
4672        * dom/NodeIterator.idl:
4673        * dom/NodeList.cpp:
4674        * dom/NodeList.h:
4675        * dom/NodeList.idl:
4676        * dom/Notation.cpp:
4677        * dom/Notation.h:
4678        * dom/Notation.idl:
4679        * dom/ProcessingInstruction.cpp:
4680        * dom/ProcessingInstruction.h:
4681        * dom/ProcessingInstruction.idl:
4682        * dom/QualifiedName.cpp:
4683        * dom/QualifiedName.h:
4684        * dom/Range.cpp:
4685        * dom/Range.h:
4686        * dom/Range.idl:
4687        * dom/RangeException.h:
4688        * dom/RangeException.idl:
4689        * dom/RegisteredEventListener.cpp:
4690        * dom/RegisteredEventListener.h:
4691        * dom/StyleElement.cpp:
4692        * dom/StyleElement.h:
4693        * dom/StyledElement.cpp:
4694        * dom/StyledElement.h:
4695        * dom/Text.cpp:
4696        * dom/Text.h:
4697        * dom/Text.idl:
4698        * dom/Tokenizer.h:
4699        * dom/Traversal.cpp:
4700        * dom/Traversal.h:
4701        * dom/TreeWalker.cpp:
4702        * dom/TreeWalker.h:
4703        * dom/TreeWalker.idl:
4704        * dom/UIEvent.cpp:
4705        * dom/UIEvent.h:
4706        * dom/UIEvent.idl:
4707        * dom/UIEventWithKeyState.cpp:
4708        * dom/UIEventWithKeyState.h:
4709        * dom/WheelEvent.cpp:
4710        * dom/WheelEvent.h:
4711        * dom/WheelEvent.idl:
4712        * dom/XMLTokenizer.cpp:
4713        * dom/XMLTokenizer.h:
4714        * html/FormDataList.cpp:
4715        * html/FormDataList.h:
4716        * html/HTMLAnchorElement.cpp:
4717        * html/HTMLAnchorElement.h:
4718        * html/HTMLAnchorElement.idl:
4719        * html/HTMLAppletElement.cpp:
4720        * html/HTMLAppletElement.h:
4721        * html/HTMLAppletElement.idl:
4722        * html/HTMLAreaElement.cpp:
4723        * html/HTMLAreaElement.h:
4724        * html/HTMLAreaElement.idl:
4725        * html/HTMLBRElement.cpp:
4726        * html/HTMLBRElement.h:
4727        * html/HTMLBRElement.idl:
4728        * html/HTMLBaseElement.cpp:
4729        * html/HTMLBaseElement.h:
4730        * html/HTMLBaseElement.idl:
4731        * html/HTMLBaseFontElement.cpp:
4732        * html/HTMLBaseFontElement.h:
4733        * html/HTMLBaseFontElement.idl:
4734        * html/HTMLBlockquoteElement.cpp:
4735        * html/HTMLBlockquoteElement.h:
4736        * html/HTMLBlockquoteElement.idl:
4737        * html/HTMLBodyElement.cpp:
4738        * html/HTMLBodyElement.h:
4739        * html/HTMLBodyElement.idl:
4740        * html/HTMLButtonElement.cpp:
4741        * html/HTMLButtonElement.h:
4742        * html/HTMLButtonElement.idl:
4743        * html/HTMLCollection.cpp:
4744        * html/HTMLCollection.h:
4745        * html/HTMLCollection.idl:
4746        * html/HTMLDListElement.cpp:
4747        * html/HTMLDListElement.h:
4748        * html/HTMLDListElement.idl:
4749        * html/HTMLDirectoryElement.cpp:
4750        * html/HTMLDirectoryElement.h:
4751        * html/HTMLDirectoryElement.idl:
4752        * html/HTMLDivElement.cpp:
4753        * html/HTMLDivElement.h:
4754        * html/HTMLDivElement.idl:
4755        * html/HTMLDocument.cpp:
4756        * html/HTMLDocument.h:
4757        * html/HTMLDocument.idl:
4758        * html/HTMLElement.cpp:
4759        * html/HTMLElement.h:
4760        * html/HTMLElement.idl:
4761        * html/HTMLElementFactory.cpp:
4762        * html/HTMLElementFactory.h:
4763        * html/HTMLEmbedElement.cpp:
4764        * html/HTMLEmbedElement.h:
4765        * html/HTMLEmbedElement.idl:
4766        * html/HTMLEntityNames.gperf:
4767        * html/HTMLFieldSetElement.cpp:
4768        * html/HTMLFieldSetElement.h:
4769        * html/HTMLFieldSetElement.idl:
4770        * html/HTMLFontElement.cpp:
4771        * html/HTMLFontElement.h:
4772        * html/HTMLFontElement.idl:
4773        * html/HTMLFormCollection.cpp:
4774        * html/HTMLFormCollection.h:
4775        * html/HTMLFormElement.cpp:
4776        * html/HTMLFormElement.h:
4777        * html/HTMLFormElement.idl:
4778        * html/HTMLFrameElement.cpp:
4779        * html/HTMLFrameElement.h:
4780        * html/HTMLFrameElement.idl:
4781        * html/HTMLFrameElementBase.cpp:
4782        * html/HTMLFrameElementBase.h:
4783        * html/HTMLFrameOwnerElement.cpp:
4784        * html/HTMLFrameOwnerElement.h:
4785        * html/HTMLFrameSetElement.cpp:
4786        * html/HTMLFrameSetElement.h:
4787        * html/HTMLFrameSetElement.idl:
4788        * html/HTMLGenericFormElement.cpp:
4789        * html/HTMLGenericFormElement.h:
4790        * html/HTMLHRElement.cpp:
4791        * html/HTMLHRElement.h:
4792        * html/HTMLHRElement.idl:
4793        * html/HTMLHeadElement.cpp:
4794        * html/HTMLHeadElement.h:
4795        * html/HTMLHeadElement.idl:
4796        * html/HTMLHeadingElement.cpp:
4797        * html/HTMLHeadingElement.h:
4798        * html/HTMLHeadingElement.idl:
4799        * html/HTMLHtmlElement.cpp:
4800        * html/HTMLHtmlElement.h:
4801        * html/HTMLHtmlElement.idl:
4802        * html/HTMLIFrameElement.cpp:
4803        * html/HTMLIFrameElement.h:
4804        * html/HTMLIFrameElement.idl:
4805        * html/HTMLImageElement.cpp:
4806        * html/HTMLImageElement.h:
4807        * html/HTMLImageElement.idl:
4808        * html/HTMLImageLoader.cpp:
4809        * html/HTMLImageLoader.h:
4810        * html/HTMLInputElement.cpp:
4811        * html/HTMLInputElement.h:
4812        * html/HTMLInputElement.idl:
4813        * html/HTMLIsIndexElement.cpp:
4814        * html/HTMLIsIndexElement.h:
4815        * html/HTMLIsIndexElement.idl:
4816        * html/HTMLKeygenElement.cpp:
4817        * html/HTMLKeygenElement.h:
4818        * html/HTMLLIElement.cpp:
4819        * html/HTMLLIElement.h:
4820        * html/HTMLLIElement.idl:
4821        * html/HTMLLabelElement.cpp:
4822        * html/HTMLLabelElement.h:
4823        * html/HTMLLabelElement.idl:
4824        * html/HTMLLegendElement.cpp:
4825        * html/HTMLLegendElement.h:
4826        * html/HTMLLegendElement.idl:
4827        * html/HTMLLinkElement.cpp:
4828        * html/HTMLLinkElement.h:
4829        * html/HTMLLinkElement.idl:
4830        * html/HTMLMapElement.cpp:
4831        * html/HTMLMapElement.h:
4832        * html/HTMLMapElement.idl:
4833        * html/HTMLMarqueeElement.cpp:
4834        * html/HTMLMarqueeElement.h:
4835        * html/HTMLMarqueeElement.idl:
4836        * html/HTMLMenuElement.cpp:
4837        * html/HTMLMenuElement.h:
4838        * html/HTMLMenuElement.idl:
4839        * html/HTMLMetaElement.cpp:
4840        * html/HTMLMetaElement.h:
4841        * html/HTMLMetaElement.idl:
4842        * html/HTMLModElement.cpp:
4843        * html/HTMLModElement.h:
4844        * html/HTMLModElement.idl:
4845        * html/HTMLNameCollection.cpp:
4846        * html/HTMLNameCollection.h:
4847        * html/HTMLOListElement.cpp:
4848        * html/HTMLOListElement.h:
4849        * html/HTMLOListElement.idl:
4850        * html/HTMLObjectElement.cpp:
4851        * html/HTMLObjectElement.h:
4852        * html/HTMLObjectElement.idl:
4853        * html/HTMLOptGroupElement.cpp:
4854        * html/HTMLOptGroupElement.h:
4855        * html/HTMLOptGroupElement.idl:
4856        * html/HTMLOptionElement.cpp:
4857        * html/HTMLOptionElement.h:
4858        * html/HTMLOptionElement.idl:
4859        * html/HTMLOptionsCollection.cpp:
4860        * html/HTMLOptionsCollection.h:
4861        * html/HTMLOptionsCollection.idl:
4862        * html/HTMLParagraphElement.cpp:
4863        * html/HTMLParagraphElement.h:
4864        * html/HTMLParagraphElement.idl:
4865        * html/HTMLParamElement.cpp:
4866        * html/HTMLParamElement.h:
4867        * html/HTMLParamElement.idl:
4868        * html/HTMLParser.cpp:
4869        * html/HTMLParser.h:
4870        * html/HTMLPlugInElement.cpp:
4871        * html/HTMLPlugInElement.h:
4872        * html/HTMLPreElement.cpp:
4873        * html/HTMLPreElement.h:
4874        * html/HTMLPreElement.idl:
4875        * html/HTMLQuoteElement.cpp:
4876        * html/HTMLQuoteElement.h:
4877        * html/HTMLQuoteElement.idl:
4878        * html/HTMLScriptElement.cpp:
4879        * html/HTMLScriptElement.h:
4880        * html/HTMLScriptElement.idl:
4881        * html/HTMLSelectElement.cpp:
4882        * html/HTMLSelectElement.h:
4883        * html/HTMLSelectElement.idl:
4884        * html/HTMLStyleElement.cpp:
4885        * html/HTMLStyleElement.h:
4886        * html/HTMLStyleElement.idl:
4887        * html/HTMLTableCaptionElement.cpp:
4888        * html/HTMLTableCaptionElement.h:
4889        * html/HTMLTableCaptionElement.idl:
4890        * html/HTMLTableCellElement.cpp:
4891        * html/HTMLTableCellElement.h:
4892        * html/HTMLTableCellElement.idl:
4893        * html/HTMLTableColElement.cpp:
4894        * html/HTMLTableColElement.h:
4895        * html/HTMLTableColElement.idl:
4896        * html/HTMLTableElement.cpp:
4897        * html/HTMLTableElement.h:
4898        * html/HTMLTableElement.idl:
4899        * html/HTMLTablePartElement.cpp:
4900        * html/HTMLTablePartElement.h:
4901        * html/HTMLTableRowElement.cpp:
4902        * html/HTMLTableRowElement.h:
4903        * html/HTMLTableRowElement.idl:
4904        * html/HTMLTableSectionElement.cpp:
4905        * html/HTMLTableSectionElement.h:
4906        * html/HTMLTableSectionElement.idl:
4907        * html/HTMLTextAreaElement.cpp:
4908        * html/HTMLTextAreaElement.h:
4909        * html/HTMLTextAreaElement.idl:
4910        * html/HTMLTitleElement.cpp:
4911        * html/HTMLTitleElement.h:
4912        * html/HTMLTitleElement.idl:
4913        * html/HTMLTokenizer.cpp:
4914        * html/HTMLTokenizer.h:
4915        * html/HTMLUListElement.cpp:
4916        * html/HTMLUListElement.h:
4917        * html/HTMLUListElement.idl:
4918        * ksvg2/css/SVGCSSParser.cpp:
4919        * ksvg2/css/SVGCSSStyleSelector.cpp:
4920        * ksvg2/css/SVGRenderStyle.cpp:
4921        * ksvg2/css/SVGRenderStyle.h:
4922        * ksvg2/css/SVGRenderStyleDefs.cpp:
4923        * ksvg2/css/SVGRenderStyleDefs.h:
4924        * ksvg2/events/JSSVGLazyEventListener.cpp:
4925        * ksvg2/events/JSSVGLazyEventListener.h:
4926        * ksvg2/events/SVGZoomEvent.cpp:
4927        * ksvg2/events/SVGZoomEvent.h:
4928        * ksvg2/misc/KCanvasRenderingStyle.cpp:
4929        * ksvg2/misc/KCanvasRenderingStyle.h:
4930        * ksvg2/misc/PointerEventsHitRules.cpp:
4931        * ksvg2/misc/PointerEventsHitRules.h:
4932        * ksvg2/misc/SVGDocumentExtensions.cpp:
4933        * ksvg2/misc/SVGDocumentExtensions.h:
4934        * ksvg2/misc/SVGImageLoader.cpp:
4935        * ksvg2/misc/SVGImageLoader.h:
4936        * ksvg2/misc/SVGTimer.cpp:
4937        * ksvg2/misc/SVGTimer.h:
4938        * ksvg2/misc/TimeScheduler.cpp:
4939        * ksvg2/misc/TimeScheduler.h:
4940        * ksvg2/scripts/cssmakeprops:
4941        * ksvg2/scripts/cssmakevalues:
4942        * ksvg2/svg/ColorDistance.cpp:
4943        * ksvg2/svg/ColorDistance.h:
4944        * ksvg2/svg/GradientAttributes.h:
4945        * ksvg2/svg/LinearGradientAttributes.h:
4946        * ksvg2/svg/PatternAttributes.h:
4947        * ksvg2/svg/RadialGradientAttributes.h:
4948        * ksvg2/svg/SVGAElement.cpp:
4949        * ksvg2/svg/SVGAElement.h:
4950        * ksvg2/svg/SVGAngle.cpp:
4951        * ksvg2/svg/SVGAngle.h:
4952        * ksvg2/svg/SVGAngle.idl:
4953        * ksvg2/svg/SVGAnimateColorElement.cpp:
4954        * ksvg2/svg/SVGAnimateColorElement.h:
4955        * ksvg2/svg/SVGAnimateElement.cpp:
4956        * ksvg2/svg/SVGAnimateElement.h:
4957        * ksvg2/svg/SVGAnimateMotionElement.cpp:
4958        * ksvg2/svg/SVGAnimateMotionElement.h:
4959        * ksvg2/svg/SVGAnimateTransformElement.cpp:
4960        * ksvg2/svg/SVGAnimateTransformElement.h:
4961        * ksvg2/svg/SVGAnimatedPathData.cpp:
4962        * ksvg2/svg/SVGAnimatedPathData.h:
4963        * ksvg2/svg/SVGAnimatedPoints.cpp:
4964        * ksvg2/svg/SVGAnimatedPoints.h:
4965        * ksvg2/svg/SVGAnimatedTemplate.h:
4966        * ksvg2/svg/SVGAnimationElement.cpp:
4967        * ksvg2/svg/SVGAnimationElement.h:
4968        * ksvg2/svg/SVGCircleElement.cpp:
4969        * ksvg2/svg/SVGCircleElement.h:
4970        * ksvg2/svg/SVGClipPathElement.cpp:
4971        * ksvg2/svg/SVGClipPathElement.h:
4972        * ksvg2/svg/SVGColor.cpp:
4973        * ksvg2/svg/SVGColor.h:
4974        * ksvg2/svg/SVGColor.idl:
4975        * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
4976        * ksvg2/svg/SVGComponentTransferFunctionElement.h:
4977        * ksvg2/svg/SVGCursorElement.cpp:
4978        * ksvg2/svg/SVGCursorElement.h:
4979        * ksvg2/svg/SVGDefsElement.cpp:
4980        * ksvg2/svg/SVGDefsElement.h:
4981        * ksvg2/svg/SVGDescElement.cpp:
4982        * ksvg2/svg/SVGDescElement.h:
4983        * ksvg2/svg/SVGDocument.cpp:
4984        * ksvg2/svg/SVGDocument.h:
4985        * ksvg2/svg/SVGDocument.idl:
4986        * ksvg2/svg/SVGElement.cpp:
4987        * ksvg2/svg/SVGElement.h:
4988        * ksvg2/svg/SVGElement.idl:
4989        * ksvg2/svg/SVGElementInstance.cpp:
4990        * ksvg2/svg/SVGElementInstance.h:
4991        * ksvg2/svg/SVGElementInstanceList.cpp:
4992        * ksvg2/svg/SVGElementInstanceList.h:
4993        * ksvg2/svg/SVGEllipseElement.cpp:
4994        * ksvg2/svg/SVGEllipseElement.h:
4995        * ksvg2/svg/SVGException.h:
4996        * ksvg2/svg/SVGExternalResourcesRequired.cpp:
4997        * ksvg2/svg/SVGExternalResourcesRequired.h:
4998        * ksvg2/svg/SVGFEBlendElement.cpp:
4999        * ksvg2/svg/SVGFEBlendElement.h:
5000        * ksvg2/svg/SVGFEColorMatrixElement.cpp:
5001        * ksvg2/svg/SVGFEColorMatrixElement.h:
5002        * ksvg2/svg/SVGFEComponentTransferElement.cpp:
5003        * ksvg2/svg/SVGFEComponentTransferElement.h:
5004        * ksvg2/svg/SVGFECompositeElement.cpp:
5005        * ksvg2/svg/SVGFECompositeElement.h:
5006        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
5007        * ksvg2/svg/SVGFEDiffuseLightingElement.h:
5008        * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
5009        * ksvg2/svg/SVGFEDisplacementMapElement.h:
5010        * ksvg2/svg/SVGFEDistantLightElement.cpp:
5011        * ksvg2/svg/SVGFEDistantLightElement.h:
5012        * ksvg2/svg/SVGFEFloodElement.cpp:
5013        * ksvg2/svg/SVGFEFloodElement.h:
5014        * ksvg2/svg/SVGFEFuncAElement.cpp:
5015        * ksvg2/svg/SVGFEFuncAElement.h:
5016        * ksvg2/svg/SVGFEFuncBElement.cpp:
5017        * ksvg2/svg/SVGFEFuncBElement.h:
5018        * ksvg2/svg/SVGFEFuncGElement.cpp:
5019        * ksvg2/svg/SVGFEFuncGElement.h:
5020        * ksvg2/svg/SVGFEFuncRElement.cpp:
5021        * ksvg2/svg/SVGFEFuncRElement.h:
5022        * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
5023        * ksvg2/svg/SVGFEGaussianBlurElement.h:
5024        * ksvg2/svg/SVGFEImageElement.cpp:
5025        * ksvg2/svg/SVGFEImageElement.h:
5026        * ksvg2/svg/SVGFELightElement.cpp:
5027        * ksvg2/svg/SVGFELightElement.h:
5028        * ksvg2/svg/SVGFEMergeElement.cpp:
5029        * ksvg2/svg/SVGFEMergeElement.h:
5030        * ksvg2/svg/SVGFEMergeNodeElement.cpp:
5031        * ksvg2/svg/SVGFEMergeNodeElement.h:
5032        * ksvg2/svg/SVGFEOffsetElement.cpp:
5033        * ksvg2/svg/SVGFEOffsetElement.h:
5034        * ksvg2/svg/SVGFEPointLightElement.cpp:
5035        * ksvg2/svg/SVGFEPointLightElement.h:
5036        * ksvg2/svg/SVGFESpecularLightingElement.cpp:
5037        * ksvg2/svg/SVGFESpecularLightingElement.h:
5038        * ksvg2/svg/SVGFESpotLightElement.cpp:
5039        * ksvg2/svg/SVGFESpotLightElement.h:
5040        * ksvg2/svg/SVGFETileElement.cpp:
5041        * ksvg2/svg/SVGFETileElement.h:
5042        * ksvg2/svg/SVGFETurbulenceElement.cpp:
5043        * ksvg2/svg/SVGFETurbulenceElement.h:
5044        * ksvg2/svg/SVGFilterElement.cpp:
5045        * ksvg2/svg/SVGFilterElement.h:
5046        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
5047        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
5048        * ksvg2/svg/SVGFitToViewBox.cpp:
5049        * ksvg2/svg/SVGFitToViewBox.h:
5050        * ksvg2/svg/SVGForeignObjectElement.cpp:
5051        * ksvg2/svg/SVGForeignObjectElement.h:
5052        * ksvg2/svg/SVGGElement.cpp:
5053        * ksvg2/svg/SVGGElement.h:
5054        * ksvg2/svg/SVGGradientElement.cpp:
5055        * ksvg2/svg/SVGGradientElement.h:
5056        * ksvg2/svg/SVGImageElement.cpp:
5057        * ksvg2/svg/SVGImageElement.h:
5058        * ksvg2/svg/SVGLangSpace.cpp:
5059        * ksvg2/svg/SVGLangSpace.h:
5060        * ksvg2/svg/SVGLength.cpp:
5061        * ksvg2/svg/SVGLength.h:
5062        * ksvg2/svg/SVGLength.idl:
5063        * ksvg2/svg/SVGLengthList.cpp:
5064        * ksvg2/svg/SVGLengthList.h:
5065        * ksvg2/svg/SVGLineElement.cpp:
5066        * ksvg2/svg/SVGLineElement.h:
5067        * ksvg2/svg/SVGLinearGradientElement.cpp:
5068        * ksvg2/svg/SVGLinearGradientElement.h:
5069        * ksvg2/svg/SVGList.h:
5070        * ksvg2/svg/SVGListTraits.h:
5071        * ksvg2/svg/SVGLocatable.cpp:
5072        * ksvg2/svg/SVGLocatable.h:
5073        * ksvg2/svg/SVGMPathElement.cpp:
5074        * ksvg2/svg/SVGMPathElement.h:
5075        * ksvg2/svg/SVGMarkerElement.cpp:
5076        * ksvg2/svg/SVGMarkerElement.h:
5077        * ksvg2/svg/SVGMaskElement.cpp:
5078        * ksvg2/svg/SVGMaskElement.h:
5079        * ksvg2/svg/SVGMatrix.idl:
5080        * ksvg2/svg/SVGMetadataElement.cpp:
5081        * ksvg2/svg/SVGMetadataElement.h:
5082        * ksvg2/svg/SVGMetadataElement.idl:
5083        * ksvg2/svg/SVGNumber.idl:
5084        * ksvg2/svg/SVGNumberList.cpp:
5085        * ksvg2/svg/SVGNumberList.h:
5086        * ksvg2/svg/SVGPaint.cpp:
5087        * ksvg2/svg/SVGPaint.h:
5088        * ksvg2/svg/SVGParserUtilities.cpp:
5089        * ksvg2/svg/SVGParserUtilities.h:
5090        * ksvg2/svg/SVGPathElement.cpp:
5091        * ksvg2/svg/SVGPathElement.h:
5092        * ksvg2/svg/SVGPathSeg.h:
5093        * ksvg2/svg/SVGPathSegArc.cpp:
5094        * ksvg2/svg/SVGPathSegArc.h:
5095        * ksvg2/svg/SVGPathSegClosePath.cpp:
5096        * ksvg2/svg/SVGPathSegClosePath.h:
5097        * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
5098        * ksvg2/svg/SVGPathSegCurvetoCubic.h:
5099        * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
5100        * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
5101        * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
5102        * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
5103        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
5104        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
5105        * ksvg2/svg/SVGPathSegLineto.cpp:
5106        * ksvg2/svg/SVGPathSegLineto.h:
5107        * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
5108        * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
5109        * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
5110        * ksvg2/svg/SVGPathSegLinetoVertical.h:
5111        * ksvg2/svg/SVGPathSegList.cpp:
5112        * ksvg2/svg/SVGPathSegList.h:
5113        * ksvg2/svg/SVGPathSegMoveto.cpp:
5114        * ksvg2/svg/SVGPathSegMoveto.h:
5115        * ksvg2/svg/SVGPatternElement.cpp:
5116        * ksvg2/svg/SVGPatternElement.h:
5117        * ksvg2/svg/SVGPoint.idl:
5118        * ksvg2/svg/SVGPointList.cpp:
5119        * ksvg2/svg/SVGPointList.h:
5120        * ksvg2/svg/SVGPolyElement.cpp:
5121        * ksvg2/svg/SVGPolyElement.h:
5122        * ksvg2/svg/SVGPolygonElement.cpp:
5123        * ksvg2/svg/SVGPolygonElement.h:
5124        * ksvg2/svg/SVGPolylineElement.cpp:
5125        * ksvg2/svg/SVGPolylineElement.h:
5126        * ksvg2/svg/SVGPreserveAspectRatio.cpp:
5127        * ksvg2/svg/SVGPreserveAspectRatio.h:
5128        * ksvg2/svg/SVGRadialGradientElement.cpp:
5129        * ksvg2/svg/SVGRadialGradientElement.h:
5130        * ksvg2/svg/SVGRect.idl:
5131        * ksvg2/svg/SVGRectElement.cpp:
5132        * ksvg2/svg/SVGRectElement.h:
5133        * ksvg2/svg/SVGRenderingIntent.h:
5134        * ksvg2/svg/SVGSVGElement.cpp:
5135        * ksvg2/svg/SVGSVGElement.h:
5136        * ksvg2/svg/SVGSVGElement.idl:
5137        * ksvg2/svg/SVGScriptElement.cpp:
5138        * ksvg2/svg/SVGScriptElement.h:
5139        * ksvg2/svg/SVGSetElement.cpp:
5140        * ksvg2/svg/SVGSetElement.h:
5141        * ksvg2/svg/SVGStopElement.cpp:
5142        * ksvg2/svg/SVGStopElement.h:
5143        * ksvg2/svg/SVGStringList.cpp:
5144        * ksvg2/svg/SVGStringList.h:
5145        * ksvg2/svg/SVGStylable.cpp:
5146        * ksvg2/svg/SVGStylable.h:
5147        * ksvg2/svg/SVGStyleElement.cpp:
5148        * ksvg2/svg/SVGStyleElement.h:
5149        * ksvg2/svg/SVGStyledElement.cpp:
5150        * ksvg2/svg/SVGStyledElement.h:
5151        * ksvg2/svg/SVGStyledLocatableElement.cpp:
5152        * ksvg2/svg/SVGStyledLocatableElement.h:
5153        * ksvg2/svg/SVGStyledTransformableElement.cpp:
5154        * ksvg2/svg/SVGStyledTransformableElement.h:
5155        * ksvg2/svg/SVGSwitchElement.cpp:
5156        * ksvg2/svg/SVGSwitchElement.h:
5157        * ksvg2/svg/SVGSymbolElement.cpp:
5158        * ksvg2/svg/SVGSymbolElement.h:
5159        * ksvg2/svg/SVGTRefElement.cpp:
5160        * ksvg2/svg/SVGTRefElement.h:
5161        * ksvg2/svg/SVGTSpanElement.cpp:
5162        * ksvg2/svg/SVGTSpanElement.h:
5163        * ksvg2/svg/SVGTests.cpp:
5164        * ksvg2/svg/SVGTests.h:
5165        * ksvg2/svg/SVGTextContentElement.cpp:
5166        * ksvg2/svg/SVGTextContentElement.h:
5167        * ksvg2/svg/SVGTextElement.cpp:
5168        * ksvg2/svg/SVGTextElement.h:
5169        * ksvg2/svg/SVGTextPositioningElement.cpp:
5170        * ksvg2/svg/SVGTextPositioningElement.h:
5171        * ksvg2/svg/SVGTitleElement.cpp:
5172        * ksvg2/svg/SVGTitleElement.h:
5173        * ksvg2/svg/SVGTransform.cpp:
5174        * ksvg2/svg/SVGTransform.h:
5175        * ksvg2/svg/SVGTransform.idl:
5176        * ksvg2/svg/SVGTransformDistance.cpp:
5177        * ksvg2/svg/SVGTransformDistance.h:
5178        * ksvg2/svg/SVGTransformList.cpp:
5179        * ksvg2/svg/SVGTransformList.h:
5180        * ksvg2/svg/SVGTransformable.cpp:
5181        * ksvg2/svg/SVGTransformable.h:
5182        * ksvg2/svg/SVGURIReference.cpp:
5183        * ksvg2/svg/SVGURIReference.h:
5184        * ksvg2/svg/SVGUnitTypes.h:
5185        * ksvg2/svg/SVGUseElement.cpp:
5186        * ksvg2/svg/SVGUseElement.h:
5187        * ksvg2/svg/SVGViewElement.cpp:
5188        * ksvg2/svg/SVGViewElement.h:
5189        * ksvg2/svg/SVGZoomAndPan.cpp:
5190        * ksvg2/svg/SVGZoomAndPan.h:
5191        * loader/Cache.cpp:
5192        * loader/Cache.h:
5193        * loader/CachedCSSStyleSheet.cpp:
5194        * loader/CachedCSSStyleSheet.h:
5195        * loader/CachedImage.cpp:
5196        * loader/CachedImage.h:
5197        * loader/CachedResource.cpp:
5198        * loader/CachedResource.h:
5199        * loader/CachedResourceClient.h:
5200        * loader/CachedResourceClientWalker.cpp:
5201        * loader/CachedResourceClientWalker.h:
5202        * loader/CachedScript.cpp:
5203        * loader/CachedScript.h:
5204        * loader/CachedXBLDocument.cpp:
5205        * loader/CachedXBLDocument.h:
5206        * loader/CachedXSLStyleSheet.cpp:
5207        * loader/CachedXSLStyleSheet.h:
5208        * loader/DocLoader.cpp:
5209        * loader/DocLoader.h:
5210        * loader/FTPDirectoryParser.cpp:
5211        * loader/FTPDirectoryParser.h:
5212        * loader/Request.cpp:
5213        * loader/Request.h:
5214        * loader/TextResourceDecoder.cpp:
5215        * loader/TextResourceDecoder.h:
5216        * loader/loader.cpp:
5217        * loader/loader.h:
5218        * page/Chrome.cpp:
5219        * page/Chrome.h:
5220        * page/ChromeClient.h:
5221        * page/Frame.cpp:
5222        * page/Frame.h:
5223        * page/FramePrivate.h:
5224        * page/FrameTree.cpp:
5225        * page/FrameTree.h:
5226        * page/FrameView.cpp:
5227        * page/FrameView.h:
5228        * page/MouseEventWithHitTestResults.cpp:
5229        * page/MouseEventWithHitTestResults.h:
5230        * page/Page.cpp:
5231        * page/Page.h:
5232        * page/Plugin.h:
5233        * page/mac/ChromeMac.mm:
5234        * platform/Arena.cpp:
5235        * platform/Arena.h:
5236        * platform/AtomicString.cpp:
5237        * platform/AtomicString.h:
5238        * platform/AtomicStringImpl.h:
5239        * platform/BidiContext.cpp:
5240        * platform/BidiContext.h:
5241        * platform/BidiResolver.h:
5242        * platform/Font.cpp:
5243        * platform/Font.h:
5244        * platform/FontData.h:
5245        * platform/FontDescription.h:
5246        * platform/FontFallbackList.h:
5247        * platform/PlatformString.h:
5248        * platform/PopupMenu.h:
5249        * platform/PopupMenuClient.h:
5250        * platform/SearchPopupMenu.h:
5251        * platform/SegmentedString.cpp:
5252        * platform/SegmentedString.h:
5253        * platform/Shared.h:
5254        * platform/StaticConstructors.h:
5255        * platform/String.cpp:
5256        * platform/StringHash.h:
5257        * platform/StringImpl.cpp:
5258        * platform/StringImpl.h:
5259        * platform/TextBreakIterator.h:
5260        * platform/TextBreakIteratorICU.cpp:
5261        * platform/TextBreakIteratorInternalICU.h:
5262        * platform/TextStyle.h:
5263        * platform/UnicodeRange.cpp:
5264        * platform/UnicodeRange.h:
5265        * platform/cf/StringCF.cpp:
5266        * platform/cf/StringImplCF.cpp:
5267        * platform/graphics/FloatPoint3D.cpp:
5268        * platform/graphics/FloatPoint3D.h:
5269        * platform/graphics/Icon.h:
5270        * platform/graphics/IntSizeHash.h:
5271        * platform/graphics/PathTraversalState.cpp:
5272        * platform/graphics/cairo/CairoPath.h:
5273        * platform/graphics/cairo/PathCairo.cpp:
5274        * platform/graphics/mac/IconMac.mm:
5275        * platform/graphics/qt/IconQt.cpp:
5276        * platform/graphics/svg/SVGResourceFilter.cpp:
5277        * platform/graphics/svg/SVGResourceFilter.h:
5278        * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
5279        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
5280        * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
5281        * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
5282        * platform/graphics/svg/filters/SVGDistantLightSource.h:
5283        * platform/graphics/svg/filters/SVGFEBlend.cpp:
5284        * platform/graphics/svg/filters/SVGFEBlend.h:
5285        * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
5286        * platform/graphics/svg/filters/SVGFEColorMatrix.h:
5287        * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
5288        * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
5289        * platform/graphics/svg/filters/SVGFEComposite.cpp:
5290        * platform/graphics/svg/filters/SVGFEComposite.h:
5291        * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
5292        * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
5293        * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
5294        * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
5295        * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
5296        * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
5297        * platform/graphics/svg/filters/SVGFEFlood.cpp:
5298        * platform/graphics/svg/filters/SVGFEFlood.h:
5299        * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
5300        * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
5301        * platform/graphics/svg/filters/SVGFEImage.cpp:
5302        * platform/graphics/svg/filters/SVGFEImage.h:
5303        * platform/graphics/svg/filters/SVGFEMerge.cpp:
5304        * platform/graphics/svg/filters/SVGFEMerge.h:
5305        * platform/graphics/svg/filters/SVGFEMorphology.cpp:
5306        * platform/graphics/svg/filters/SVGFEMorphology.h:
5307        * platform/graphics/svg/filters/SVGFEOffset.cpp:
5308        * platform/graphics/svg/filters/SVGFEOffset.h:
5309        * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
5310        * platform/graphics/svg/filters/SVGFESpecularLighting.h:
5311        * platform/graphics/svg/filters/SVGFETile.h:
5312        * platform/graphics/svg/filters/SVGFETurbulence.cpp:
5313        * platform/graphics/svg/filters/SVGFETurbulence.h:
5314        * platform/graphics/svg/filters/SVGFilterEffect.cpp:
5315        * platform/graphics/svg/filters/SVGFilterEffect.h:
5316        * platform/graphics/svg/filters/SVGLightSource.cpp:
5317        * platform/graphics/svg/filters/SVGLightSource.h:
5318        * platform/graphics/svg/filters/SVGPointLightSource.h:
5319        * platform/graphics/svg/filters/SVGSpotLightSource.h:
5320        * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
5321        * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
5322        * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
5323        * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
5324        * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
5325        * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
5326        * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
5327        * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
5328        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
5329        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
5330        * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
5331        * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
5332        * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
5333        * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
5334        * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
5335        * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
5336        * platform/graphics/svg/qt/RenderPathQt.cpp:
5337        * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
5338        * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
5339        * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
5340        * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
5341        * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
5342        * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
5343        * platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
5344        * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
5345        * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
5346        * platform/graphics/win/IconWin.cpp:
5347        * platform/gtk/FontPlatformData.h:
5348        * platform/gtk/FontPlatformDataGtk.cpp:
5349        * platform/gtk/PopupMenuGtk.cpp:
5350        * platform/gtk/RenderThemeGtk.cpp:
5351        * platform/gtk/RenderThemeGtk.h:
5352        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
5353        * platform/image-decoders/png/PNGImageDecoder.cpp:
5354        * platform/mac/FontMac.mm:
5355        * platform/mac/FontPlatformData.h:
5356        * platform/mac/LocalCurrentGraphicsContext.h:
5357        * platform/mac/LocalCurrentGraphicsContext.mm:
5358        * platform/mac/PopupMenuMac.mm:
5359        * platform/mac/SearchPopupMenuMac.mm:
5360        * platform/mac/StringImplMac.mm:
5361        * platform/mac/StringMac.mm:
5362        * platform/mac/TextBreakIteratorInternalICUMac.mm:
5363        * platform/network/FormData.cpp:
5364        * platform/network/FormData.h:
5365        * platform/qt/FileChooserQt.cpp:
5366        * platform/qt/FontQt.cpp:
5367        * platform/qt/MenuEventProxy.h:
5368        * platform/qt/PlugInInfoStoreQt.cpp:
5369        * platform/qt/PopupMenuQt.cpp:
5370        * platform/qt/QWebPopup.cpp:
5371        * platform/qt/QWebPopup.h:
5372        * platform/qt/RenderThemeQt.cpp:
5373        * platform/qt/RenderThemeQt.h:
5374        * platform/qt/SearchPopupMenuQt.cpp:
5375        * platform/qt/TextBreakIteratorQt.cpp:
5376        * platform/qt/WheelEventQt.cpp:
5377        * platform/win/FontPlatformData.h:
5378        * platform/win/FontPlatformDataWin.cpp:
5379        * platform/win/PopupMenuWin.cpp:
5380        * platform/win/SearchPopupMenuWin.cpp:
5381        * platform/win/TextBreakIteratorInternalICUWin.cpp:
5382        * rendering/AutoTableLayout.cpp:
5383        * rendering/AutoTableLayout.h:
5384        * rendering/CounterNode.cpp:
5385        * rendering/CounterNode.h:
5386        * rendering/DataRef.h:
5387        * rendering/EllipsisBox.cpp:
5388        * rendering/EllipsisBox.h:
5389        * rendering/FixedTableLayout.cpp:
5390        * rendering/FixedTableLayout.h:
5391        * rendering/GapRects.h:
5392        * rendering/HitTestRequest.h:
5393        * rendering/HitTestResult.cpp:
5394        * rendering/HitTestResult.h:
5395        * rendering/InlineBox.cpp:
5396        * rendering/InlineBox.h:
5397        * rendering/InlineFlowBox.cpp:
5398        * rendering/InlineFlowBox.h:
5399        * rendering/InlineRunBox.h:
5400        * rendering/InlineTextBox.cpp:
5401        * rendering/InlineTextBox.h:
5402        * rendering/Length.h:
5403        * rendering/ListMarkerBox.cpp:
5404        * rendering/ListMarkerBox.h:
5405        * rendering/RenderApplet.cpp:
5406        * rendering/RenderApplet.h:
5407        * rendering/RenderArena.cpp:
5408        * rendering/RenderArena.h:
5409        * rendering/RenderBR.cpp:
5410        * rendering/RenderBR.h:
5411        * rendering/RenderBlock.cpp:
5412        * rendering/RenderBlock.h:
5413        * rendering/RenderBox.cpp:
5414        * rendering/RenderBox.h:
5415        * rendering/RenderButton.cpp:
5416        * rendering/RenderButton.h:
5417        * rendering/RenderContainer.cpp:
5418        * rendering/RenderContainer.h:
5419        * rendering/RenderCounter.cpp:
5420        * rendering/RenderCounter.h:
5421        * rendering/RenderFieldset.cpp:
5422        * rendering/RenderFieldset.h:
5423        * rendering/RenderFileUploadControl.cpp:
5424        * rendering/RenderFileUploadControl.h:
5425        * rendering/RenderFlexibleBox.cpp:
5426        * rendering/RenderFlexibleBox.h:
5427        * rendering/RenderFlow.cpp:
5428        * rendering/RenderFlow.h:
5429        * rendering/RenderForeignObject.cpp:
5430        * rendering/RenderForeignObject.h:
5431        * rendering/RenderFrame.cpp:
5432        * rendering/RenderFrame.h:
5433        * rendering/RenderFrameSet.cpp:
5434        * rendering/RenderFrameSet.h:
5435        * rendering/RenderImage.cpp:
5436        * rendering/RenderImage.h:
5437        * rendering/RenderInline.cpp:
5438        * rendering/RenderInline.h:
5439        * rendering/RenderLayer.cpp:
5440        * rendering/RenderLayer.h:
5441        * rendering/RenderLegend.cpp:
5442        * rendering/RenderLegend.h:
5443        * rendering/RenderListItem.cpp:
5444        * rendering/RenderListItem.h:
5445        * rendering/RenderListMarker.cpp:
5446        * rendering/RenderListMarker.h:
5447        * rendering/RenderMenuList.cpp:
5448        * rendering/RenderMenuList.h:
5449        * rendering/RenderObject.cpp:
5450        * rendering/RenderObject.h:
5451        * rendering/RenderPart.cpp:
5452        * rendering/RenderPart.h:
5453        * rendering/RenderPartObject.cpp:
5454        * rendering/RenderPartObject.h:
5455        * rendering/RenderPath.cpp:
5456        * rendering/RenderPath.h:
5457        * rendering/RenderReplaced.cpp:
5458        * rendering/RenderReplaced.h:
5459        * rendering/RenderSVGBlock.cpp:
5460        * rendering/RenderSVGBlock.h:
5461        * rendering/RenderSVGContainer.cpp:
5462        * rendering/RenderSVGContainer.h:
5463        * rendering/RenderSVGGradientStop.cpp:
5464        * rendering/RenderSVGGradientStop.h:
5465        * rendering/RenderSVGHiddenContainer.cpp:
5466        * rendering/RenderSVGHiddenContainer.h:
5467        * rendering/RenderSVGImage.cpp:
5468        * rendering/RenderSVGImage.h:
5469        * rendering/RenderSVGInline.cpp:
5470        * rendering/RenderSVGInline.h:
5471        * rendering/RenderSVGInlineText.cpp:
5472        * rendering/RenderSVGInlineText.h:
5473        * rendering/RenderSVGTSpan.cpp:
5474        * rendering/RenderSVGTSpan.h:
5475        * rendering/RenderSVGText.cpp:
5476        * rendering/RenderSVGText.h:
5477        * rendering/RenderSlider.cpp:
5478        * rendering/RenderSlider.h:
5479        * rendering/RenderStyle.cpp:
5480        * rendering/RenderStyle.h:
5481        * rendering/RenderTable.cpp:
5482        * rendering/RenderTable.h:
5483        * rendering/RenderTableCell.cpp:
5484        * rendering/RenderTableCell.h:
5485        * rendering/RenderTableCol.cpp:
5486        * rendering/RenderTableCol.h:
5487        * rendering/RenderTableRow.cpp:
5488        * rendering/RenderTableRow.h:
5489        * rendering/RenderTableSection.cpp:
5490        * rendering/RenderTableSection.h:
5491        * rendering/RenderText.cpp:
5492        * rendering/RenderText.h:
5493        * rendering/RenderTextControl.cpp:
5494        * rendering/RenderTextControl.h:
5495        * rendering/RenderTextFragment.cpp:
5496        * rendering/RenderTextFragment.h:
5497        * rendering/RenderTheme.cpp:
5498        * rendering/RenderTheme.h:
5499        * rendering/RenderThemeMac.h:
5500        * rendering/RenderThemeMac.mm:
5501        * rendering/RenderThemeSafari.cpp:
5502        * rendering/RenderThemeSafari.h:
5503        * rendering/RenderThemeWin.cpp:
5504        * rendering/RenderThemeWin.h:
5505        * rendering/RenderView.cpp:
5506        * rendering/RenderView.h:
5507        * rendering/RenderWidget.cpp:
5508        * rendering/RenderWidget.h:
5509        * rendering/RootInlineBox.cpp:
5510        * rendering/RootInlineBox.h:
5511        * rendering/SVGInlineFlowBox.cpp:
5512        * rendering/SVGInlineFlowBox.h:
5513        * rendering/SVGInlineTextBox.cpp:
5514        * rendering/SVGInlineTextBox.h:
5515        * rendering/SVGRootInlineBox.cpp:
5516        * rendering/SVGRootInlineBox.h:
5517        * rendering/TableLayout.h:
5518        * rendering/bidi.cpp:
5519        * rendering/bidi.h:
5520        * rendering/break_lines.cpp:
5521        * rendering/break_lines.h:
5522        * xml/DOMParser.cpp:
5523        * xml/DOMParser.h:
5524        * xml/DOMParser.idl:
5525        * xml/XMLHttpRequest.cpp:
5526        * xml/XMLHttpRequest.h:
5527        * xml/XMLSerializer.cpp:
5528        * xml/XMLSerializer.h:
5529        * xml/XMLSerializer.idl:
5530        * xml/XPathEvaluator.idl:
5531        * xml/XPathExpression.idl:
5532        * xml/XPathNSResolver.idl:
5533        * xml/XPathResult.idl:
5534        * xml/XSLImportRule.cpp:
5535        * xml/XSLImportRule.h:
5536        * xml/XSLStyleSheet.cpp:
5537        * xml/XSLStyleSheet.h:
5538        * xml/XSLTProcessor.cpp:
5539        * xml/XSLTProcessor.h:
5540
55412007-09-25  Darin Adler  <darin@apple.com>
5542
5543        Reviewed by Harrison.
5544
5545        - fix <rdar://problem/5503225> CrashTracer: [USER] 2 crashes in Dashcode
5546          at com.apple.WebCore: WebCore::Frame::document const + 0
5547
5548        * page/FrameView.cpp: (WebCore::FrameView::updateControlTints):
5549        Added null check.
5550
55512007-09-25  Beth Dakin  <bdakin@apple.com>
5552
5553        Reviewed by Darin.
5554
5555        Fixes http://bugs.webkit.org/show_bug.cgi?id=15282 r25726 caused 
5556        plugins/mouse-events.html to fail
5557
5558        * page/FrameView.cpp:
5559        (WebCore::FrameView::layout): We need to call 
5560        updateWidgetPosition() after updating each widget.
5561
55622007-09-25  Anders Carlsson  <andersca@apple.com>
5563
5564        Build fix.
5565        
5566        * page/Chrome.cpp:
5567        (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
5568
55692007-09-25  Anders Carlsson  <andersca@apple.com>
5570
5571        Reviewed by Geoff.
5572
5573        <rdar://problem/5283916>
5574        JavaScript timers may be firing while JavaScript alerts are displayed.
5575        
5576        Pause JavaScript timeouts while calling UI delegate methods that might show dialogs.
5577        
5578        * page/Chrome.cpp:
5579        (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
5580        (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
5581
55822007-09-26  Holger Hans Peter Freyther  <zecke@selfish.org>
5583
5584        Reviewed by Anders.
5585
5586        Implement PopupMenu using GtkMenu.
5587
5588        * platform/PopupMenu.h:
5589        * platform/gtk/PopupMenuGtk.cpp:
5590        (WebCore::PopupMenu::PopupMenu):
5591        (WebCore::PopupMenu::~PopupMenu):
5592        (WebCore::PopupMenu::show):
5593        (WebCore::PopupMenu::hide):
5594        (WebCore::PopupMenu::updateFromElement):
5595        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
5596        (WebCore::PopupMenu::menuItemActivated):
5597        (WebCore::PopupMenu::menuUnmapped):
5598        (WebCore::PopupMenu::menuPositionFunction):
5599        (WebCore::PopupMenu::menuRemoveItem):
5600
56012007-09-23  Holger Hans Peter Freyther  <zecke@selfish.org>
5602
5603        Rubber stamped by Mark.
5604
5605        Obey the Coding-Style and move the asterisk to the
5606        left to be part of the type.
5607
5608        * platform/gtk/RenderThemeGtk.h:
5609
56102007-09-25  Beth Dakin  <bdakin@apple.com>
5611
5612        Reviewed by Darin.
5613
5614        Fix for <rdar://problem/5466459> CrashTracer: [USER] 1 crash in 
5615        NetNewsWire at com.apple.WebCore: WebCore::bidiNext + 485 (15241)
5616
5617        Mitz discovered that this crash appeared because r25128 made it 
5618        possible for RenderPartObject::updateWidget() to be called during 
5619        layout. updateWidget() can, through a series of calls, cause an 
5620        attach/detach to happen, which is very bad in the middle of a 
5621        layout and is what led to this crash. This patch fixes that by 
5622        having the FrameView keep track of a queue of RenderPartObjects 
5623        that need to call updateWidget(), and it goes through the queue 
5624        calling updateWidget() as soon as layout is done.
5625
5626        * page/FrameView.cpp: We only want to call updateWidget() if we are 
5627        not in a nested layout. Unfortunately, the existing variables on 
5628        FrameViewPrivate do not have exactly the information that we need, 
5629        so I added nestedLayoutCount.
5630        (WebCore::FrameViewPrivate::reset): Reset nestedLayoutCount.
5631        (WebCore::FrameView::layout): Increment nestedLayoutCount once we 
5632        have gotten through all of the early returns. Call updateWidget() 
5633        after layout is nestedLayoutCount is 1 and there are widgets to 
5634        update. Decrement nestedLayoutCount at the end.
5635        (WebCore::FrameView::addWidgetToUpdate):
5636        (WebCore::FrameView::removeWidgetToUpdate):
5637        * page/FrameView.h:
5638        * rendering/RenderPartObject.cpp:
5639        (WebCore::RenderPartObject::~RenderPartObject): Remove this from 
5640        the FrameView's update set.
5641        (WebCore::RenderPartObject::layout): Instead of calling 
5642        updateWidget() immediately, add this to the update widget set on 
5643        FrameView.
5644        * rendering/RenderPartObject.h:
5645
56462007-09-25  David Kilzer  <ddkilzer@webkit.org>
5647
5648        Reviewed by Mark Rowe.
5649
5650        - fix http://bugs.webkit.org/show_bug.cgi?id=15275
5651          SVG dependency on WebCore/dom/XMLTokenizer.cpp
5652
5653        * dom/XMLTokenizer.cpp: Moved #include "SVGStyleElement.h" into #if ENABLE(SVG).
5654
56552007-09-25  Justin Garcia  <justin.garcia@apple.com>
5656
5657        Reviewed by Darin.
5658
5659        <rdar://problem/5483567> 
5660        REGRESSION (Tiger only, workaround in AppKit on Leopard): Pasting words copied from TextEdit in Mail adds extra newline
5661        
5662        * editing/ReplaceSelectionCommand.cpp:
5663        (WebCore::ReplaceSelectionCommand::removeUnrenderedNodes): Added.
5664        (WebCore::ReplaceSelectionCommand::doApply): Call removeUnrenderedNodes
5665        to prevent unrendered spaces from interfering with paragraph merging.
5666        * editing/ReplaceSelectionCommand.h:
5667
56682007-09-24  Steve Falkenburg  <sfalken@apple.com>
5669
5670        Reviewed by Darin.
5671
5672        - fix <rdar://problem/5502513>
5673
5674        * platform/win/FontCacheWin.cpp:
5675        (WebCore::FontCache::getFontLinkInterface):
5676        Roll back this file; the old code leaked a global COM object, but that's
5677        no big deal and the new code caused a crash on quit.
5678
56792007-09-24  Anders Carlsson  <andersca@apple.com>
5680
5681        Reviewed by Adam.
5682
5683        <rdar://problem/5494608>
5684        Seed: Safari will follow links in Flash movies without clicking.
5685
5686        Make sure to handle mouseover and mouseout so the plug-in can track when the mouse is over it.
5687                
5688        * plugins/win/PluginViewWin.cpp:
5689        (WebCore::PluginViewWin::handleMouseEvent):
5690
56912007-09-24  Mike Fenton  <mike@staikos.net>
5692
5693        Reviewed by George Staikos.
5694
5695        Switch to using a QImage instead of a QPixmap to make transparency work.
5696
5697        * html/CanvasRenderingContext2D.cpp:
5698        (WebCore::CanvasRenderingContext2D::drawImage):
5699        * html/HTMLCanvasElement.cpp:
5700        (WebCore::HTMLCanvasElement::paint):
5701        (WebCore::HTMLCanvasElement::createDrawingContext):
5702        (WebCore::HTMLCanvasElement::createPlatformImage):
5703        * html/HTMLCanvasElement.h:
5704
57052007-09-21  Kevin McCullough  <kmccullough@apple.com>
5706
5707        Reviewed by Sam.
5708
5709        - Updated project files to not use Edit and Continue for Debug Information since it doesn't work and breaks some functionality.
5710
5711        * WebCore.vcproj/WebCore.vcproj:
5712
57132007-09-24  Brady Eidson  <beidson@apple.com>
5714
5715        Reviewed by John Sullivan
5716
5717        * loader/icon/IconDatabase.cpp:
5718        (WebCore::IconDatabase::iconForPageURL): Assert the page url is non-null
5719
57202007-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
5721
5722        Rubber stamped by Adam.
5723
5724        Renamed files from *Gdk to *Gtk (see #14732) using the
5725        work of Juan A. Suarez Romero as a base.
5726
5727        GDK -> GTK
5728
5729        * Projects/gdk/webcore-gdk.bkl:
5730        * WebCore.pro:
5731        * WebCoreSources.bkl:
5732        * loader/gdk: Removed.
5733        * loader/gdk/DocumentLoaderGdk.cpp: Removed.
5734        * loader/gtk: Added.
5735        * loader/gtk/DocumentLoaderGdk.cpp: Removed.
5736        * loader/gtk/DocumentLoaderGtk.cpp: Added.
5737        * page/FrameView.cpp:
5738        * page/FrameView.h:
5739        * page/gdk: Removed.
5740        * page/gdk/DragControllerGdk.cpp: Removed.
5741        * page/gdk/EventHandlerGdk.cpp: Removed.
5742        * page/gdk/FrameGdk.cpp: Removed.
5743        * page/gtk: Added.
5744        * page/gtk/DragControllerGdk.cpp: Removed.
5745        * page/gtk/DragControllerGtk.cpp: Added.
5746        * page/gtk/EventHandlerGdk.cpp: Removed.
5747        * page/gtk/EventHandlerGtk.cpp: Added.
5748        (WebCore::EventHandler::createDraggingClipboard):
5749        * page/gtk/FrameGdk.cpp: Removed.
5750        * page/gtk/FrameGtk.cpp: Added.
5751        * platform/ContextMenuItem.h:
5752        * platform/Cursor.h:
5753        * platform/DragData.h:
5754        * platform/DragImage.h:
5755        * platform/FontData.h:
5756        * platform/NotImplemented.h:
5757        * platform/PlatformKeyboardEvent.h:
5758        * platform/PlatformMenuDescription.h:
5759        * platform/PlatformMouseEvent.h:
5760        * platform/PlatformWheelEvent.h:
5761        * platform/ScrollView.h:
5762        * platform/Widget.h:
5763        * platform/gdk: Removed.
5764        * platform/gdk/ClipboardGdk.cpp: Removed.
5765        * platform/gdk/ClipboardGdk.h: Removed.
5766        * platform/gdk/ContextMenuGdk.cpp: Removed.
5767        * platform/gdk/ContextMenuItemGdk.cpp: Removed.
5768        * platform/gdk/CookieJarGdk.cpp: Removed.
5769        * platform/gdk/CursorGdk.cpp: Removed.
5770        * platform/gdk/DragDataGdk.cpp: Removed.
5771        * platform/gdk/DragImageGdk.cpp: Removed.
5772        * platform/gdk/FileChooserGdk.cpp: Removed.
5773        * platform/gdk/FileSystemGdk.cpp: Removed.
5774        * platform/gdk/FontCacheGdk.cpp: Removed.
5775        * platform/gdk/FontDataGdk.cpp: Removed.
5776        * platform/gdk/FontGdk.cpp: Removed.
5777        * platform/gdk/FontPlatformData.h: Removed.
5778        * platform/gdk/FontPlatformDataGdk.cpp: Removed.
5779        * platform/gdk/GlyphPageTreeNodeGdk.cpp: Removed.
5780        * platform/gdk/KeyEventGdk.cpp: Removed.
5781        * platform/gdk/KeyboardCodes.h: Removed.
5782        * platform/gdk/LocalizedStringsGdk.cpp: Removed.
5783        * platform/gdk/LoggingGdk.cpp: Removed.
5784        * platform/gdk/MIMETypeRegistryGdk.cpp: Removed.
5785        * platform/gdk/MouseEventGdk.cpp: Removed.
5786        * platform/gdk/PasteboardGdk.cpp: Removed.
5787        * platform/gdk/PlatformScreenGdk.cpp: Removed.
5788        * platform/gdk/PlatformScrollBar.h: Removed.
5789        * platform/gdk/PlatformScrollBarGdk.cpp: Removed.
5790        * platform/gdk/PopupMenuGdk.cpp: Removed.
5791        * platform/gdk/RenderThemeGdk.cpp: Removed.
5792        * platform/gdk/RenderThemeGdk.h: Removed.
5793        * platform/gdk/ScrollViewGdk.cpp: Removed.
5794        * platform/gdk/SearchPopupMenuGdk.cpp: Removed.
5795        * platform/gdk/SharedTimerLinux.cpp: Removed.
5796        * platform/gdk/SoundGdk.cpp: Removed.
5797        * platform/gdk/SystemTimeLinux.cpp: Removed.
5798        * platform/gdk/TemporaryLinkStubs.cpp: Removed.
5799        * platform/gdk/WheelEventGdk.cpp: Removed.
5800        * platform/gdk/WidgetGdk.cpp: Removed.
5801        * platform/graphics/GraphicsContext.h:
5802        * platform/graphics/cairo/GraphicsContextCairo.cpp:
5803        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
5804        (WebCore::GraphicsContext::setPlatformFont):
5805        * platform/graphics/gdk: Removed.
5806        * platform/graphics/gdk/IconGdk.cpp: Removed.
5807        * platform/graphics/gdk/ImageGdk.cpp: Removed.
5808        * platform/graphics/gtk: Added.
5809        * platform/graphics/gtk/IconGdk.cpp: Removed.
5810        * platform/graphics/gtk/IconGtk.cpp: Added.
5811        * platform/graphics/gtk/ImageGdk.cpp: Removed.
5812        * platform/graphics/gtk/ImageGtk.cpp: Added.
5813        * platform/gtk: Added.
5814        * platform/gtk/ClipboardGdk.cpp: Removed.
5815        * platform/gtk/ClipboardGdk.h: Removed.
5816        * platform/gtk/ClipboardGtk.cpp: Added.
5817        (WebCore::ClipboardGtk::ClipboardGtk):
5818        (WebCore::ClipboardGtk::~ClipboardGtk):
5819        (WebCore::ClipboardGtk::clearData):
5820        (WebCore::ClipboardGtk::clearAllData):
5821        (WebCore::ClipboardGtk::getData):
5822        (WebCore::ClipboardGtk::setData):
5823        (WebCore::ClipboardGtk::types):
5824        (WebCore::ClipboardGtk::dragLocation):
5825        (WebCore::ClipboardGtk::dragImage):
5826        (WebCore::ClipboardGtk::setDragImage):
5827        (WebCore::ClipboardGtk::dragImageElement):
5828        (WebCore::ClipboardGtk::setDragImageElement):
5829        (WebCore::ClipboardGtk::createDragImage):
5830        (WebCore::ClipboardGtk::declareAndWriteDragImage):
5831        (WebCore::ClipboardGtk::writeURL):
5832        (WebCore::ClipboardGtk::writeRange):
5833        (WebCore::ClipboardGtk::hasData):
5834        * platform/gtk/ClipboardGtk.h: Added.
5835        * platform/gtk/ContextMenuGdk.cpp: Removed.
5836        * platform/gtk/ContextMenuGtk.cpp: Added.
5837        * platform/gtk/ContextMenuItemGdk.cpp: Removed.
5838        * platform/gtk/ContextMenuItemGtk.cpp: Added.
5839        * platform/gtk/CookieJarGdk.cpp: Removed.
5840        * platform/gtk/CookieJarGtk.cpp: Added.
5841        * platform/gtk/CursorGdk.cpp: Removed.
5842        * platform/gtk/CursorGtk.cpp: Added.
5843        * platform/gtk/DragDataGdk.cpp: Removed.
5844        * platform/gtk/DragDataGtk.cpp: Added.
5845        * platform/gtk/DragImageGdk.cpp: Removed.
5846        * platform/gtk/DragImageGtk.cpp: Added.
5847        * platform/gtk/FileChooserGdk.cpp: Removed.
5848        * platform/gtk/FileChooserGtk.cpp: Added.
5849        * platform/gtk/FileSystemGdk.cpp: Removed.
5850        * platform/gtk/FileSystemGtk.cpp: Added.
5851        * platform/gtk/FontCacheGdk.cpp: Removed.
5852        * platform/gtk/FontCacheGtk.cpp: Added.
5853        * platform/gtk/FontDataGdk.cpp: Removed.
5854        * platform/gtk/FontDataGtk.cpp: Added.
5855        * platform/gtk/FontGdk.cpp: Removed.
5856        * platform/gtk/FontGtk.cpp: Added.
5857        * platform/gtk/FontPlatformDataGdk.cpp: Removed.
5858        * platform/gtk/FontPlatformDataGtk.cpp: Added.
5859        * platform/gtk/GlyphPageTreeNodeGdk.cpp: Removed.
5860        * platform/gtk/GlyphPageTreeNodeGtk.cpp: Added.
5861        * platform/gtk/KeyEventGdk.cpp: Removed.
5862        * platform/gtk/KeyEventGtk.cpp: Added.
5863        * platform/gtk/LocalizedStringsGdk.cpp: Removed.
5864        * platform/gtk/LocalizedStringsGtk.cpp: Added.
5865        * platform/gtk/LoggingGdk.cpp: Removed.
5866        * platform/gtk/LoggingGtk.cpp: Added.
5867        * platform/gtk/MIMETypeRegistryGdk.cpp: Removed.
5868        * platform/gtk/MIMETypeRegistryGtk.cpp: Added.
5869        * platform/gtk/MouseEventGdk.cpp: Removed.
5870        * platform/gtk/MouseEventGtk.cpp: Added.
5871        * platform/gtk/PasteboardGdk.cpp: Removed.
5872        * platform/gtk/PasteboardGtk.cpp: Added.
5873        * platform/gtk/PlatformScreenGdk.cpp: Removed.
5874        * platform/gtk/PlatformScreenGtk.cpp: Added.
5875        * platform/gtk/PlatformScrollBarGdk.cpp: Removed.
5876        * platform/gtk/PlatformScrollBarGtk.cpp: Added.
5877        * platform/gtk/PopupMenuGdk.cpp: Removed.
5878        * platform/gtk/PopupMenuGtk.cpp: Added.
5879        * platform/gtk/RenderThemeGdk.cpp: Removed.
5880        * platform/gtk/RenderThemeGdk.h: Removed.
5881        * platform/gtk/RenderThemeGtk.cpp: Added.
5882        (WebCore::theme):
5883        (WebCore::RenderThemeGtk::RenderThemeGtk):
5884        (WebCore::RenderThemeGtk::close):
5885        (WebCore::RenderThemeGtk::addIntrinsicMargins):
5886        (WebCore::RenderThemeGtk::supportsFocus):
5887        (WebCore::RenderThemeGtk::determineState):
5888        (WebCore::RenderThemeGtk::determineShadow):
5889        (WebCore::RenderThemeGtk::getThemeData):
5890        (WebCore::RenderThemeGtk::setCheckboxSize):
5891        (WebCore::RenderThemeGtk::paintCheckbox):
5892        (WebCore::RenderThemeGtk::setRadioSize):
5893        (WebCore::RenderThemeGtk::paintRadio):
5894        (WebCore::RenderThemeGtk::paintButton):
5895        (WebCore::RenderThemeGtk::adjustTextFieldStyle):
5896        (WebCore::RenderThemeGtk::paintTextField):
5897        (WebCore::RenderThemeGtk::paintTextArea):
5898        (WebCore::RenderThemeGtk::adjustButtonStyle):
5899        (WebCore::RenderThemeGtk::systemFont):
5900        (WebCore::RenderThemeGtk::gtkButton):
5901        (WebCore::RenderThemeGtk::gtkCheckbox):
5902        (WebCore::RenderThemeGtk::gtkRadioButton):
5903        (WebCore::RenderThemeGtk::gtkWindowContainer):
5904        * platform/gtk/RenderThemeGtk.h: Added.
5905        * platform/gtk/ScrollViewGdk.cpp: Removed.
5906        * platform/gtk/ScrollViewGtk.cpp: Added.
5907        * platform/gtk/SearchPopupMenuGdk.cpp: Removed.
5908        * platform/gtk/SearchPopupMenuGtk.cpp: Added.
5909        * platform/gtk/SoundGdk.cpp: Removed.
5910        * platform/gtk/SoundGtk.cpp: Added.
5911        * platform/gtk/WheelEventGdk.cpp: Removed.
5912        * platform/gtk/WheelEventGtk.cpp: Added.
5913        * platform/gtk/WidgetGdk.cpp: Removed.
5914        * platform/gtk/WidgetGtk.cpp: Added.
5915        * platform/network/ResourceHandle.h:
5916
59172007-09-23  Rob Buis  <buis@kde.org>
5918
5919        Reviewed by Hyatt.
5920
5921        http://bugs.webkit.org/show_bug.cgi?id=15025
5922        Background repeat css property is not inherited from parent if unspecified
5923
5924        Don't let invalid url specification in background shorthand make
5925        the entire shorthand invalid.
5926
5927        * css/CSSParser.cpp:
5928        (WebCore::CSSParser::parseBackgroundImage):
5929        (WebCore::CSSParser::parseBackgroundProperty):
5930        * css/CSSParser.h:
5931
59322007-09-22  Adam Roben  <aroben@apple.com>
5933
5934        Fix Bug 15251: REGRESSION: <input type=range> doesn't respond to form.reset() or setting input.value
5935
5936        http://bugs.webkit.org/show_bug.cgi?id=15251
5937        <rdar://5498169>
5938
5939        Reviewed by Maciej.
5940
5941        Test: fast/forms/range-reset.html
5942
5943        * html/HTMLInputElement.cpp:
5944        (WebCore::HTMLInputElement::storesValueSeparateFromAttribute): <input
5945        type=range> should be storing its value separately from the value
5946        attribute, as do all of our variable-input input types.
5947
59482007-09-21  Mark Rowe  <mrowe@apple.com>
5949
5950        Build fix for non-Mac platforms after r25697.
5951        
5952        Rename Frame::cleanupPlatformScriptObjects to Frame::clearPlatformScriptObjects.
5953
5954        * bridge/win/FrameWin.cpp:
5955        * page/gdk/FrameGdk.cpp:
5956        * page/qt/FrameQt.cpp:
5957        * platform/wx/TemporaryLinkStubs.cpp:
5958
59592007-09-21  Adele Peterson  <adele@apple.com>
5960
5961        Reviewed by Sam.
5962
5963        Fix for <rdar://problem/5497357> REGRESSION: Safari doesn't show the month days on AirFrance reservation page
5964
5965        Test: fast/dom/HTMLSelectElement/options-collection-set-string-length.html
5966
5967        * bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::setLength):
5968          Convert the value to a number.  We already have code here to check if the value is not a number.
5969          This matches other browsers, which allow a string value to be used to set the length.
5970
59712007-09-21  Timothy Hatcher  <timothy@apple.com>
5972
5973        Reviewed by Darin.
5974
5975        <rdar://problem/5491013> REGRESSION: -[WebView windowScriptObject] returns a dummy object or nil if a page hasn't loaded
5976
5977        Calling -[WebView windowScriptObject] before the page loads would give you nil. This behavior didn't match Tiger.
5978        The API behavior in Tiger let you get the window script object once and keep ahold of it as long as you needed it.
5979        The window object would remain valid even after page loads. This change restores the Tiger behavior.
5980
5981        <rdar://problem/5495790> NULL dereference crash beneath Bindings::RootObject::interpreter when saving Dashcode document
5982
5983        The changes to WebScriptObject's _isSafeScript call also fixed the crash in Dashcode.
5984
5985        * bindings/objc/WebScriptObject.mm:
5986        (-[WebScriptObject _setOriginRootObject:andRootObject:]): New method used to update the the root objects,
5987        so the WebScriptObject can still be used after a page load.
5988        (-[WebScriptObject _isSafeScript]): Call [self _rootObject] instead of accessing the data member directly.
5989        DOMNode has an override for the _rootObject method, and it can return 0 when _private->_rootObject
5990        is non-zero. We would return YES here when it wasn't safe and later crash with my modified layout tests.
5991        Checking _rootObject first prevents other calls sites from needing to check for a valid root object,
5992        this fixed the Dashcode crash.
5993        (-[WebScriptObject _imp]): Ditto.
5994
5995        * bindings/objc/WebScriptObjectPrivate.h: Add _setOriginRootObject:andRootObject:.
5996
5997        * loader/FrameLoader.cpp:
5998        (WebCore::FrameLoader::clear): Call the renamed clearScriptObjects function.
5999        (WebCore::FrameLoader::dispatchWindowObjectAvailable): Some gratuitous code cleanup.
6000
6001        * page/Frame.cpp:
6002        (WebCore::Frame::clearScriptObjects): Renamed cleanupScriptObject to clearScriptObjects.
6003        Call clearPlatformScriptObjects last so m_bindingRootObject is already NULL.
6004        (WebCore::Frame::windowScriptNPObject): Hold a JSLock before accessing the window. This
6005        change is unrelated to the bug, but should be fixed.
6006
6007        * page/mac/FrameMac.mm:
6008        (WebCore::Frame::windowScriptObject): Return a script object even if the interpreter is NULL.
6009        This resotres the Tiger behavior of always being able to access the window object.
6010        (WebCore::Frame::clearPlatformScriptObjects): Keep the window script object around, and update
6011        the root objects for the window script object.
6012
6013        * page/Frame.h: Rename cleanupScriptObject to clearScriptObjects.
6014        * page/FramePrivate.h: Use a RetainPtr for m_windowScriptObject.
6015
60162007-09-21  Mike Fenton  <mike@staikos.net>
6017
6018        Reviewed by George Staikos.
6019
6020        Fix styled pen support by not clobbering QPen properties.
6021
6022        * html/CanvasStyle.cpp:
6023        (WebCore::CanvasStyle::applyStrokeColor):
6024        (WebCore::CanvasStyle::applyFillColor):
6025
60262007-09-21  Oliver Hunt  <oliver@apple.com>
6027
6028        Reviewed by Tristan and Darin
6029
6030        http://bugs.webkit.org/show_bug.cgi?id=15239
6031        <rdar://problem/5491955> REGRESSION (r25547): With Hanin IME, one cannot input characters into forms (15239)
6032        
6033        This problem was caused by the setComposition method failing to clear
6034        the composition markers in the presence of an empty string.  This would 
6035        result in the caret being locked within the 0 length bounds of the "composition"
6036        and so preventing basic keyboard interaction.
6037
6038        * editing/Editor.cpp:
6039        (WebCore::Editor::setComposition):
6040
60412007-09-21  Adele Peterson  <adele@apple.com>
6042
6043        Reviewed by Tristan.
6044
6045        Fix for <rdar://problem/5497346> "Check spelling when I click Send" crashes on stationery messages every time
6046
6047        No test. I wasn't able to find a way to get this to occur with Safari or DumpRenderTree.
6048
6049        * editing/Editor.cpp: (WebCore::Editor::advanceToNextMisspelling): Updated comment.
6050        * editing/htmlediting.cpp:
6051        (WebCore::firstEditablePositionAfterPositionInRoot): Only return the root position if its editable.
6052        (WebCore::maxDeepOffset): Added nil check & assert.
6053
60542007-09-21  Anders Carlsson  <andersca@apple.com>
6055
6056        Reviewed by Steve.
6057
6058        <rdar://problem/5404339>
6059        Site redirects continuosly, starving UI thread, causing app to hang.
6060        
6061        Use GetQueueStatus to see if there are input messages in the queue that aren't being processed.
6062        If so, use a low-priority timer instead of PostMessage.
6063        
6064        * platform/win/SharedTimerWin.cpp:
6065        (WebCore::setSharedTimerFireTime):
6066
60672007-09-22  Darin Adler  <darin@apple.com>
6068
6069        Reviewed by Anders.
6070
6071        - add QueryInterface capabilities to COMPtr
6072
6073        * platform/win/COMPtr.h:
6074        (COMPtr::COMPtr): Added constructor that takes a Query tag and
6075        does an appropriate QueryInterface.
6076        (COMPtr::query): Added function to do a queryInterface.
6077        (COMPtr::copyQueryInterfaceRef): Added private helper used by
6078        both of the above. Note that when the query fails you get a 0,
6079        which is the same thing you get if a 0 pointer is passed in.
6080
6081        * platform/win/FontCacheWin.cpp:
6082        (WebCore::FontCache::getFontLinkInterface): Convert to using
6083        the new query as a test case. Also eliminate the unnecessary
6084        second global variable and use COMPtr objects rather than just
6085        leaking references.
6086
6087        * platform/win/WCDataObject.h: Removed unneeded include and
6088        using statements.
6089
60902007-09-21  Anders Carlsson  <andersca@apple.com>
6091
6092        Reviewed by Adam.
6093
6094        <rdar://problem/5494790>
6095        clicking any link in the Flash regions at bananarepublic.com results in bad page
6096
6097        Don't replace the frame contents, the Mac version doesn't do this.
6098        
6099        * plugins/win/PluginViewWin.cpp:
6100        (WebCore::PluginViewWin::performRequest):
6101
61022007-09-21  Anders Carlsson  <andersca@apple.com>
6103
6104        Reviewed by Darin.
6105
6106        <rdar://problem/5496700>
6107        Repro crash loading http://www.tivo.com/whatistivo/tivohd/index.html
6108
6109        Don't continue if the plug-in cancelled the stream.
6110                
6111        * loader/win/NetscapePlugInStreamLoaderWin.cpp:
6112        (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
6113
61142007-09-21  Kevin Decker  <kdecker@apple.com>
6115
6116        * platform/mac/SoftLinking.h: Build fix; added necessary #imports. 
6117
61182007-09-21  Kevin Decker  <kdecker@apple.com>
6119
6120        Reviewed by Darin Adler.
6121
6122        * WebCore.xcodeproj/project.pbxproj: Added SoftLinking.h to the project.
6123        * platform/mac/SoftLinking.h: Contains a new macro; useful in helping to lazily load frameworks.
6124
61252007-09-20  Ada Chan  <adachan@apple.com>
6126
6127        <rdar://problem/5477240> Regression: Footer is too high in print preview
6128        Make computePageRectsForFrame() return the height of the page adjusted for margins.
6129
6130        Reviewed by Steve.
6131
6132        * bridge/win/FrameWin.cpp:
6133        (WebCore::computePageRectsForFrame):
6134        * bridge/win/FrameWin.h:
6135
61362007-09-19  Kevin McCullough  <kmccullough@apple.com>
6137
6138        Reviewed by Hyatt.
6139
6140        - <rdar://problem/5101991> Avril Lavigne music player comes up in a window with scrollbars
6141        - Implementing missing scrollbar functionality to allow turning off scrollbars correctly.
6142
6143        * platform/ScrollView.h:
6144        * platform/win/ScrollViewWin.cpp:
6145        (WebCore::ScrollView::ScrollViewPrivate::setAllowsScrolling):
6146        (WebCore::ScrollView::ScrollViewPrivate::allowsScrolling):
6147        (WebCore::ScrollView::updateScrollbars):
6148        (WebCore::ScrollView::setAllowsScrolling):
6149        (WebCore::ScrollView::allowsScrolling):
6150
61512007-09-20  Brady Eidson  <beidson@apple.com>
6152
6153        Reviewed by Dave Hyatt
6154
6155        <rdar://problem/5245981> - No favicon shows up for cnet.com
6156        
6157        CNet's favicon has two images in it - a 32x32 white square, and a 16x16 image that is their actual icon
6158        Till now on Windows we've always gone straight for the first image in an icon for the favicon, now we
6159        actually do proper size matching
6160
6161        * platform/graphics/BitmapImage.h:
6162
6163        * platform/graphics/Image.h:
6164        (WebCore::Image::getHBITMAPOfSize): 
6165        (WebCore::Image::drawFrameMatchingSourceSize): Search through the frames of the image for the correct size
6166
6167        * platform/graphics/win/ImageWin.cpp:
6168        (WebCore::BitmapImage::getHBITMAP):
6169        (WebCore::BitmapImage::getHBITMAPOfSize):
6170        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
6171
61722007-09-20  Steve Falkenburg  <sfalken@apple.com>
6173
6174        Reviewed by Brady.
6175
6176        Call ascii() instead of utf8() from debug logging code to avoid threading
6177        issues associated w/ converting to UTF8.
6178
6179        * loader/icon/IconDatabase.cpp:
6180        (WebCore::makeAllDirectories):
6181        (WebCore::IconDatabase::retainIconForPageURL):
6182        (WebCore::IconDatabase::releaseIconForPageURL):
6183        (WebCore::IconDatabase::setIconDataForIconURL):
6184        (WebCore::IconDatabase::setIconURLForPageURL):
6185        (WebCore::IconDatabase::loadDecisionForIconURL):
6186        (WebCore::IconDatabase::getOrCreatePageURLRecord):
6187        (WebCore::IconDatabase::iconDatabaseSyncThread):
6188        (WebCore::IconDatabase::performOpenInitialization):
6189        (WebCore::IconDatabase::checkIntegrity):
6190        (WebCore::IconDatabase::performURLImport):
6191        (WebCore::IconDatabase::readFromDatabase):
6192        (WebCore::IconDatabase::writeToDatabase):
6193        (WebCore::readySQLStatement):
6194        (WebCore::IconDatabase::setIconURLForPageURLInSQLDatabase):
6195        (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
6196        (WebCore::IconDatabase::removePageURLFromSQLDatabase):
6197        (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
6198        (WebCore::IconDatabase::addIconURLToSQLDatabase):
6199        (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
6200        (WebCore::IconDatabase::removeIconFromSQLDatabase):
6201        (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
6202
62032007-09-20  Mike Fenton  <mike@staikos.net>
6204
6205        Reviewed by George Staikos.
6206
6207        Implement gradients and more of canvas for Qt.  Style changes and some
6208        of the stroking fixes by George.
6209
6210        * html/CanvasGradient.cpp:
6211        (WebCore::CanvasGradient::CanvasGradient):
6212        (WebCore::CanvasGradient::~CanvasGradient):
6213        (WebCore::CanvasGradient::addColorStop):
6214        (WebCore::CanvasGradient::platformShading):
6215        * html/CanvasGradient.h:
6216        * html/CanvasRenderingContext2D.cpp:
6217        (WebCore::CanvasRenderingContext2D::fill):
6218        (WebCore::CanvasRenderingContext2D::stroke):
6219        (WebCore::CanvasRenderingContext2D::fillRect):
6220        (WebCore::CanvasRenderingContext2D::applyFillPattern):
6221
62222007-09-20  Rob Buis  <buis@kde.org>
6223
6224        Reviewed by Mitz.
6225
6226        http://bugs.webkit.org/show_bug.cgi?id=15235
6227        Options can not be removed from a Select element with OptGroup's using JavaScript
6228        <rdar://problem/5494123>
6229
6230        Remove HTMLOptionElement children against the proper parent node.
6231
6232        * html/HTMLSelectElement.cpp:
6233        (WebCore::HTMLSelectElement::remove):
6234
62352007-09-19  John Sullivan  <sullivan@apple.com>
6236
6237        Reviewed by Darin Adler.
6238        
6239        - WebCore part of speculative fix for <rdar://problem/5490627>, about crashes constructing a
6240          String using the values filled in by checkSpellingOfString()
6241
6242        * editing/Editor.cpp:
6243        (WebCore::findFirstMisspellingInRange):
6244        initialize out parameters the way we do elsewhere; add many assertions for improper results
6245        from checkSpellingOfString(); don't create a String at all until we've checked all the ways
6246        that checkSpellingOfString() results could indicate invalid string, even the unexpected ones;
6247        as an optimization, don't construct a String at all when looping through to mark all instances.
6248
62492007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6250
6251        Reviewed by Adam.
6252
6253        There is no need to have FTPDirectoryDocument stubs. We can
6254        compile FTPDirectoryDocument.cpp and FTPDirectoryTokenizer.cpp
6255        instead.
6256
6257        * WebCore.pro:
6258        * platform/gdk/TemporaryLinkStubs.cpp:
6259        * platform/qt/TemporaryLinkStubs.cpp:
6260
62612007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6262
6263        Reviewed by Adam.
6264
6265        Remove includes that are not needed.
6266
6267        * platform/gdk/TemporaryLinkStubs.cpp:
6268
62692007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6270
6271        Reviewed by Adam.
6272
6273        Move the Pasteboard stubs to PasteboardGdk.cpp.
6274
6275        * WebCore.pro:
6276        * platform/gdk/PasteboardGdk.cpp: Added.
6277        (WebCore::Pasteboard::generalPasteboard):
6278        (WebCore::Pasteboard::writeSelection):
6279        (WebCore::Pasteboard::writeURL):
6280        (WebCore::Pasteboard::writeImage):
6281        (WebCore::Pasteboard::clear):
6282        (WebCore::Pasteboard::canSmartReplace):
6283        (WebCore::Pasteboard::documentFragment):
6284        (WebCore::Pasteboard::plainText):
6285        (WebCore::Pasteboard::Pasteboard):
6286        * platform/gdk/TemporaryLinkStubs.cpp:
6287
62882007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6289
6290        Reviewed by Adam.
6291
6292        Move the Icon stubs to IconGdk.cpp
6293
6294        * WebCore.pro:
6295        * platform/gdk/TemporaryLinkStubs.cpp:
6296        * platform/graphics/gdk/IconGdk.cpp: Added.
6297        (WebCore::Icon::Icon):
6298        (WebCore::Icon::~Icon):
6299        (WebCore::Icon::newIconForFile):
6300
63012007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6302
6303        Reviewed by Adam.
6304
6305        Move the Font stubs to FontGdk.cpp
6306
6307        * platform/gdk/FontGdk.cpp:
6308        (WebCore::Font::drawComplexText):
6309        (WebCore::Font::floatWidthForComplexText):
6310        (WebCore::Font::offsetForPositionForComplexText):
6311        (WebCore::Font::selectionRectForComplexText):
6312        * platform/gdk/TemporaryLinkStubs.cpp:
6313
63142007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6315
6316        Reviewed by Adam.
6317
6318        Move the SearchPopupMenu stubs to SearchPopupMenuGdk.cpp
6319
6320        * WebCore.pro:
6321        * platform/gdk/SearchPopupMenuGdk.cpp: Added.
6322        (WebCore::SearchPopupMenu::SearchPopupMenu):
6323        (WebCore::SearchPopupMenu::saveRecentSearches):
6324        (WebCore::SearchPopupMenu::loadRecentSearches):
6325        (WebCore::SearchPopupMenu::enabled):
6326        * platform/gdk/TemporaryLinkStubs.cpp:
6327
63282007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6329
6330        Reviewed by Adam.
6331
6332        Move the ContextMenu and ContextMenuItem stubs to
6333        ContextMenuGdk.cpp and ContextMenuItemGdk.cpp.
6334
6335        * WebCore.pro:
6336        * platform/gdk/ContextMenuGdk.cpp: Added.
6337        (WebCore::ContextMenu::ContextMenu):
6338        (WebCore::ContextMenu::~ContextMenu):
6339        (WebCore::ContextMenu::appendItem):
6340        (WebCore::ContextMenu::setPlatformDescription):
6341        (WebCore::ContextMenu::platformDescription):
6342        (WebCore::ContextMenu::releasePlatformDescription):
6343        * platform/gdk/ContextMenuItemGdk.cpp: Added.
6344        (WebCore::ContextMenuItem::ContextMenuItem):
6345        (WebCore::ContextMenuItem::~ContextMenuItem):
6346        (WebCore::ContextMenuItem::releasePlatformDescription):
6347        (WebCore::ContextMenuItem::type):
6348        (WebCore::ContextMenuItem::setType):
6349        (WebCore::ContextMenuItem::action):
6350        (WebCore::ContextMenuItem::setAction):
6351        (WebCore::ContextMenuItem::title):
6352        (WebCore::ContextMenuItem::setTitle):
6353        (WebCore::ContextMenuItem::platformSubMenu):
6354        (WebCore::ContextMenuItem::setSubMenu):
6355        (WebCore::ContextMenuItem::setChecked):
6356        * platform/gdk/TemporaryLinkStubs.cpp:
6357
63582007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6359
6360        Reviewed by Adam.
6361
6362        Implement the WebCore::fileSize function using g_stat.
6363
6364        * platform/gdk/FileSystemGdk.cpp:
6365        (WebCore::fileSize):
6366        * platform/gdk/TemporaryLinkStubs.cpp:
6367
63682007-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
6369
6370        Reviewed by Adam.
6371
6372        Move the ResourceHandle stubs from TemporaryLinkStubs
6373        to the ResourceHandleCurl.cpp file. This affects the
6374        Gtk+ and wx port as they share the curl implementation.
6375
6376
6377        * platform/gdk/TemporaryLinkStubs.cpp:
6378        * platform/network/curl/ResourceHandleCurl.cpp:
6379        (WebCore::ResourceHandle::willLoadFromCache):
6380        (WebCore::ResourceHandle::loadsBlocked):
6381        * platform/wx/TemporaryLinkStubs.cpp:
6382
63832007-09-17  Holger Hans Peter Freyther  <zecke@selfish.org>
6384
6385        Reviewed by Mark.
6386
6387        Take http://bugs.webkit.org/show_bug.cgi?id=15221 into account
6388        and change the variable names from nameSystem to systemName and
6389        change the name of the function to stringByAdoptingFileSystemRepresentation.
6390
6391        * platform/gdk/FileChooserGdk.cpp:
6392        (WebCore::stringByAdoptingFileSystemRepresentation):
6393        (WebCore::FileChooser::basenameForWidth):
6394
63952007-09-19  Sam Weinig  <sam@webkit.org>
6396
6397        Reviewed by Geoff Garen.
6398
6399        Fix <rdar://problem/5492141> Assertion in isdigit() on windows Safari
6400
6401        Test: fast/css/hexColor-isDigit-assert.html
6402
6403        * platform/DeprecatedString.cpp:
6404        (WebCore::isCharacterAllowedInBase): Check that the character is ascii 
6405        to avoid an assertions on Windows.
6406
64072007-09-19  Anders Carlsson  <andersca@apple.com>
6408
6409        Reviewed by Geoff.
6410
6411        <rdar://problem/5489879>
6412        Combination of real player with high connection quality in selecting player makes Safari quit.
6413        
6414        Prevent the Real Player plug-in from calling the window proc recursively.
6415        
6416        * plugins/win/PluginViewWin.cpp:
6417        (WebCore::PluginViewWin::wndProc):
6418        (WebCore::PluginViewWin::setNPWindowRect):
6419        (WebCore::PluginViewWin::determineQuirks):
6420        (WebCore::PluginViewWin::PluginViewWin):
6421        * plugins/win/PluginViewWin.h:
6422        (WebCore::):
6423
64242007-09-18  Adele Peterson  <adele@apple.com>
6425
6426        Reviewed by Maciej.
6427
6428        Fix for <rdar://problem/5472062> -webkit-user-select: none makes selection difficult
6429        and for <rdar://problem/5472056> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
6430
6431        Tests:
6432
6433        This fix has a few steps:
6434        1) Removes the ignore value for the -webkit-user-select property.  We now decide when to prevent selection from starting by calling canStartSelection on the node.
6435        2) Implements canStartSelection which returns false for all elements that used to have -webkit-user-select:ignore set, true for content editable nodes, 
6436           and walks up the tree to ask the parent before allowing selection to be started on any other nodes.
6437        3) We used to disallow selection from starting within -webkit-user-select:none blocks, but now we only use canStartSelection for that.  This will allow easy selections
6438           in cases like iChat where there's a mix of selectable and non-selectable content.
6439        4) Makes -webkit-user-select inherited.  After removing the "ignore" value, -webkit-user-select would behave like it was inherited anyways since we already allowed the text value to override the none value.
6440
6441
6442        * css/html4.css: Removed all usage of -webkit-user-select: ignore.  This is now handled internally with canStartSelection().
6443          Now -webkit-user-select won't be unintentionally overridden by nodes that don't want to allow selection to be started, but do want to honor the -webkit-user-select to
6444          determine whether or not selection is allowed at all.
6445
6446        * editing/SelectionController.cpp: (WebCore::SelectionController::selectAll):
6447          Don't try to determine whether selection is allowed inside the root node here.  VisiblePosition and Selection creation will keep Selection endpoints out of -webkit-user-select:none regions.
6448        
6449        * dom/Node.h:
6450        * dom/Node.cpp: (WebCore::Node::canStartSelection): Added. Always allows selection to be started in a content editable node.  If there's a parent, ask the parent if starting a selection is allowed.
6451          If there's no parent, default to allowing selection.
6452        * html/HTMLAnchorElement.h:
6453        * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::canStartSelection): Added. If its not a link, then calls the base class. Disallows selection for non-editable links.
6454          Allows selection for editable links.
6455          This logic used to be done in CSSStyleSelector by changing the user-select property.
6456        * html/HTMLButtonElement.h: (WebCore::HTMLButtonElement::canStartSelection): Added. Disallows selection from starting in buttons.
6457        * html/HTMLImageElement.h: (WebCore::HTMLImageElement::canStartSelection): Added. Disallows selection from starting in images.
6458        * html/HTMLInputElement.h:
6459        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::canStartSelection): Added. Disallows selection from anything that's not a text field.  Text fields call up to the base class.
6460          When they're editable, text controls will always be selectable because of the case for content editable content. Otherwise, they'll respect their parent element's decision about starting a selection. 
6461        * html/HTMLSelectElement.h: (WebCore::HTMLSelectElement::canStartSelection): Added. Disallows selection from starting in popup buttons.
6462
6463        * page/EventHandler.cpp:
6464        (WebCore::EventHandler::selectClosestWordFromMouseEvent): Use canMouseDownStartSelect instead of the ambiguously named shouldSelect().
6465        (WebCore::EventHandler::handleMousePressEventTripleClick): ditto.
6466        (WebCore::EventHandler::handleMousePressEventSingleClick): ditto.
6467        (WebCore::EventHandler::updateSelectionForMouseDrag): Use canMouseDragExtendSelect.
6468        (WebCore::EventHandler::selectCursor): Paint an ibeam in any region that allows you to click to create a selection.
6469        (WebCore::EventHandler::canMouseDownStartSelect): Now fires the selectStart event, and calls canStartSelection instead of checking the user-select property.
6470        (WebCore::EventHandler::canMouseDragExtendSelect): This is identical to canMouseDownStartSelect because of 12823, even though it seems strange that we would fire the selectStart event here.
6471        * page/EventHandler.h:
6472        * page/FocusController.cpp: (WebCore::clearSelectionIfNeeded): Calls canStartSelection instead of checking the user-select property to decide when to prevent selection creation. 
6473        * rendering/RenderObject.cpp: (WebCore::RenderObject::draggableNode): ditto.
6474        * rendering/RenderObject.h: Removed helper methods that are no longer needed.
6475
6476        * rendering/RenderStyle.h: Made userSelect inherited.  After removing the "ignore" value, -webkit-user-select would behave like it was inherited 
6477          anyways since we already allowed the text value to override the none value.
6478          Removed the SELECT_AUTO and SELECT_IGNORE values since they're no longer used.
6479        (WebCore::):
6480        (WebCore::RenderStyle::userSelect):
6481        (WebCore::RenderStyle::setUserSelect):
6482        (WebCore::RenderStyle::initialUserSelect):
6483        * rendering/RenderStyle.cpp:
6484        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
6485        (WebCore::StyleRareNonInheritedData::operator==):
6486        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
6487        (WebCore::StyleRareInheritedData::operator==):
6488        (WebCore::RenderStyle::diff):
6489
6490        * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Remove case for SELECT_AUTO and SELECT_IGNORE
6491        * css/CSSStyleSelector.cpp:
6492        (WebCore::CSSStyleSelector::adjustRenderStyle):  Remove adjustment for links.  This is now handled in HTMLAnchorElement::canStartSelection.
6493        (WebCore::CSSStyleSelector::applyProperty): Map CSS_VAL_AUTO to SELECT_TEXT.  Remove CSS_VAL_IGNORE.
6494
64952007-09-18  Timothy Hatcher  <timothy@apple.com>
6496
6497        Reviewed by Darin.
6498
6499        <rdar://problem/5478250> REGRESSION: After pasting text copied from Mail subject and typing return, the cursor disappears because of negative left margin
6500
6501        When pasting text from the Mail subject line, the RTF pasteboard contains text that has a first line negative indent along with a
6502        paragraph indent that has a counteracting positive indent. This results in the first line being flush left justified, and the remaining
6503        wrapped lines being indented. When this is converted to a DOM fragment, AppKit makes a block element with a margin-left and a negative
6504        text-indent that matches the RTF. So far this is all correct behavior.
6505
6506        When this content is pasted on the line of an existing paragraph that has content, ReplaceSelectionCommand will decided to merge the paragraphs.
6507        This will convert the block element to a style span that has all inherited style properties. These inherited properties will still contain block
6508        properties that have no affect on inline elements. These block properties will hang around on the style span and will get cloned to new block
6509        elements if the user hit return on that line. The new block elements would then have the text-indent but not the margin-left, so the text would be
6510        hidden off the left edge of the page.
6511
6512        In the end, we should never hang on to block-only properties in our style spans. This cuts out meaningless properties and prevents properties
6513        from magically affecting blocks later if the style is cloned for a new block element during a future editing operation.
6514
6515        * editing/ReplaceSelectionCommand.cpp:
6516        (WebCore::ReplaceSelectionCommand::removeRedundantStyles): Remove any inherited block properties that are now in the span's style.
6517        * editing/markup.cpp:
6518        (WebCore::createMarkup): Ditto.
6519
65202007-09-18  Dave Hyatt  <hyatt@apple.com>
6521
6522        Land a UnicodeRange helper class (ported from Mozilla) that we are going to use to prepare for making
6523        language-sensitive fallback choices for fonts.
6524
6525        Reviewed by olliej
6526
6527        * WebCore.vcproj/WebCore.vcproj:
6528        * platform/UnicodeRange.cpp: Added.
6529        (WebCore::):
6530        (WebCore::findCharUnicodeRange):
6531        (WebCore::langGroupFromUnicodeRange):
6532        * platform/UnicodeRange.h: Added.
6533
65342007-09-18  Dave Hyatt  <hyatt@apple.com>
6535
6536        Fix a bug in my previous patch.  Make sure to select the old font back into the HDC and to also release the HDC.
6537       
6538        Reviewed by aroben
6539
6540        * platform/win/FontCacheWin.cpp:
6541        (WebCore::FontCache::getFontDataForCharacters):
6542
65432007-09-18  Sam Weinig  <sam@webkit.org>
6544
6545        Reviewed by Darin.
6546
6547        Patch for <rdar://problem/5488478> Safari crashes when passing null to Range.insertNode()
6548
6549        Test: fast/dom/Range-insertNode-crash.html
6550
6551        * dom/Range.cpp:
6552        (WebCore::Range::insertNode): Null check the passed in node to insert.
6553
65542007-09-18  Mike Fenton  <mike@staikos.net>
6555
6556        Reviewed by George Staikos.
6557
6558        Retain the pen properties when changing one aspect of the pen.
6559
6560        * html/CanvasStyle.cpp:
6561        (WebCore::CanvasStyle::applyStrokeColor):
6562
65632007-09-18  Mike Fenton  <mike@staikos.net>
6564
6565        Reviewed by George Staikos.
6566
6567        Make <canvas> work in more cases by restarting the painter after we
6568        finish painting, and restoring the pen and opacity.
6569
6570        * html/HTMLCanvasElement.cpp:
6571        (WebCore::HTMLCanvasElement::paint):
6572
65732007-09-18  Mitz Pettel  <mitz@webkit.org>
6574
6575        Reviewed by Darin.
6576
6577        - fix http://bugs.webkit.org/show_bug.cgi?id=15169
6578          Freeze on Google maps using the "Dig a hole" tool
6579          <rdar://problem/5477414>
6580
6581        Test: fast/dom/CSSStyleDeclaration-empty-string-property.html
6582
6583        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
6584        (WebCore::cssPropertyName): Added an early return if the property name
6585        is the empty string, thus avoiding a loop that is not prepared for that
6586        case.
6587
65882007-09-19  Darin Adler <darin@apple.com>
6589
6590        Reviewed by Adam.
6591
6592        - fix <rdar://problem/5415734> <select> draws incorrectly if size of menu options
6593          is changed after it pops up once
6594
6595        * platform/win/PopupMenuWin.cpp:
6596        (WebCore::PopupMenu::PopupMenu): Removed unnecessary initialization of IntRect.
6597        (WebCore::PopupMenu::show): Check that the clientRect is empty instead of checking
6598        the entire windowRect -- this fixes a bug where we pop up a tiny 2-pixel high black
6599        box when you click on an empty menu.
6600        (WebCore::PopupMenu::visibleItems): Base the number of items on the client rect
6601        instead of the window rect. Rounding down means this would have worked anyway, but
6602        it's more correct to do it this way.
6603        (WebCore::PopupMenu::paint): Deallocate the bitmap so it gets reallocated if it
6604        has the wrong width or height (or if GetObject returns false, which should not
6605        happen in practice).
6606
66072007-09-18  David Harrison  <harrison@apple.com>
6608
6609        Reviewed by Darin.
6610
6611        <rdar://problem/5486974> REGRESSION(r25373): 1/4 second to doubleclick word in GMail when using Kotoeri IM, also slow in other IMs (15163)
6612
6613        Updated tests:
6614        * fast/dom/Window/window-xy-properties-expected.txt:
6615        * fast/dom/plugin-attributes-enumeration-expected.txt:
6616        * fast/events/onerror-bubbling-expected.txt:
6617        * fast/events/related-target-expected.txt:
6618        * fast/forms/select-namedItem-expected.txt:
6619        * fast/table/incomplete-table-in-fragment-2-expected.txt:
6620        * fast/table/incomplete-table-in-fragment-hang-expected.txt:
6621        * fast/table/large-rowspan-crash-expected.txt:
6622        * plugins/embed-attributes-setting-expected.txt:
6623
6624        * editing/TextIterator.cpp:
6625        (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
6626        Avoid VisiblePosition check if the current node is a descendant
6627        of the start container and the start offset was 0. In that case
6628        we already had enough context to correctly decide whether to emit
6629        a newline after a preceding block. We chose not to emit
6630        (m_haveEmitted is false), so don't second guess that.
6631            
6632        (WebCore::TextIterator::exitNode):
6633        Changed some comments.
6634
66352007-09-17  Geoffrey Garen  <ggaren@apple.com>
6636
6637        Reviewed by Darin Adler.
6638
6639        Speculative fix for <rdar://problem/5479443> REGRESSION: Hang due to 
6640        infinite JS recursion on close @ engadget.com (onunload-based ad)
6641        
6642        If page is NULL, shouldInterruptScript now returns true, so you can't 
6643        get stuck in a state in which a script executes forever without putting 
6644        up a UI to ask if it should stop.
6645
6646        * bindings/js/kjs_binding.cpp:
6647        (KJS::ScriptInterpreter::shouldInterruptScript):
6648
66492007-09-17  Dave Hyatt  <hyatt@apple.com>
6650
6651        Fix for bug 14743, missing glyphs on many international sites because of MLang's tiny cache.
6652        
6653        Bypass Mlang's cache entirely.  Get the mapped font from MLang, obtain the font name, and then feed
6654        the name back into our own system so that it gets created and cached again without MLang being involved.
6655        Then free up the font obtained from MLang immediately so that its cache just remains empty.
6656           
6657        Reviewed by aroben
6658
6659        * platform/FontData.h:
6660        (WebCore::FontData::isSystemFont):
6661        * platform/win/FontCacheWin.cpp:
6662        (WebCore::FontCache::getFontDataForCharacters):
6663        * platform/win/FontDataWin.cpp:
6664        (WebCore::FontData::platformInit):
6665        (WebCore::FontData::platformDestroy):
6666        * platform/win/UniscribeController.cpp:
6667        (WebCore::UniscribeController::shapeAndPlaceItem):
6668        
66692007-09-17  Adam Roben  <aroben@apple.com>
6670
6671        Fix <rdar://5423441> Should get focus ring color from SafariTheme
6672
6673        Reviewed by Hyatt.
6674
6675        No regression test possible.
6676
6677        * WebCore.vcproj/WebCore.vcproj: Added ColorSafari.cpp.
6678        * platform/graphics/win/ColorSafari.cpp: Added.
6679        (WebCore::makeRGBAFromCGColor): Added.
6680        (WebCore::focusRingColor): Added. Gets the focus ring color from
6681        SafariTheme if SafariTheme has support for it.
6682        (WebCore::setFocusRingColorChangeFunction): Added.
6683        * platform/win/TemporaryLinkStubs.cpp: Removed focus ring color
6684        functions.
6685
66862007-09-17  Anders Carlsson  <andersca@apple.com>
6687
6688        Fix Windows build.
6689
6690        * WebCore.vcproj/WebCore.vcproj:
6691        * loader/NetscapePlugInStreamLoader.h:
6692
66932007-09-17  Anders Carlsson  <andersca@apple.com>
6694
6695        Fix Mac build.
6696        
6697        * loader/NetscapePlugInStreamLoader.cpp:
6698        * loader/NetscapePlugInStreamLoader.h:
6699        * loader/win/NetscapePlugInStreamLoaderWin.cpp: Copied from loader/NetscapePlugInStreamLoader.cpp.
6700
67012007-09-17  Anders Carlsson  <andersca@apple.com>
6702
6703        Reviewed by Adam.
6704
6705        <rdar://problem/5483346>
6706        crash at vw.com WebCore::PluginViewWin::disconnectStream.
6707        
6708        The following events would lead to this crash:
6709        
6710        1. a plug-in stream finishes loading and calls NPP_DestroyStream.
6711        2. the DestroyStream handler calls NPN_Evaluate, submitting a form through JavaScript.
6712        3. A new page is going to be loaded and DocumentLoader::stopLoading is called.
6713        4. DocumentLoader::stopLoading will stop all loader, including the one that is done loading!
6714        
6715        The fix is to port NetscapePluginStreamLoader over from the Mac code and use it instead. This fixes the crash
6716        because it disassociates the stream loader with the document loader _before_ calling NPP_DestroyStream, whereas
6717        SubresourceLoader does this _after_ calling NPP_DestroyStream. 
6718        
6719        * loader/NetscapePlugInStreamLoader.cpp:
6720        (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
6721        (WebCore::NetscapePlugInStreamLoader::~NetscapePlugInStreamLoader):
6722        (WebCore::NetscapePlugInStreamLoader::create):
6723        (WebCore::NetscapePlugInStreamLoader::isDone):
6724        (WebCore::NetscapePlugInStreamLoader::releaseResources):
6725        (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
6726        (WebCore::NetscapePlugInStreamLoader::didReceiveData):
6727        (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
6728        (WebCore::NetscapePlugInStreamLoader::didFail):
6729        (WebCore::NetscapePlugInStreamLoader::didCancel):
6730        * loader/NetscapePlugInStreamLoader.h:
6731        (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
6732        * plugins/win/PluginStreamWin.cpp:
6733        (WebCore::PluginStreamWin::start):
6734        (WebCore::PluginStreamWin::didReceiveResponse):
6735        (WebCore::PluginStreamWin::didReceiveData):
6736        (WebCore::PluginStreamWin::didFail):
6737        (WebCore::PluginStreamWin::didFinishLoading):
6738        * plugins/win/PluginStreamWin.h:
6739        * plugins/win/PluginViewWin.cpp:
6740        (WebCore::PluginViewWin::load):
6741
67422007-09-17  Anders Carlsson  <andersca@apple.com>
6743
6744        Reviewed by Adam.
6745
6746        <rdar://problem/5483839>
6747        Crash loading http://www.microsoft.com if Silverlight 1.0 is installed.
6748        
6749        Work around a problem in our NPRuntime implementation by never unloading the silverlight plug-in dll.
6750        
6751        * plugins/win/PluginViewWin.cpp:
6752        (WebCore::PluginViewWin::~PluginViewWin):
6753        (WebCore::PluginViewWin::determineQuirks):
6754        * plugins/win/PluginViewWin.h:
6755        (WebCore::):
6756
67572007-09-17  Brady Eidson  <beidson@apple.com>
6758
6759        Reviewed by John Sullivan
6760
6761        Fix for http://bugs.webkit.org/show_bug.cgi?id=15178
6762        and
6763        <rdar://problem/5474001>
6764
6765        The stress test proves that this was an overzealous ASSERT.  It is very possible to mark an icon
6766        for addition to the on-disk database and then mark it for removal before it is ever written out.  
6767        This is not an error and was already handled gracefully
6768
6769        * loader/icon/IconDatabase.cpp:
6770        (WebCore::IconDatabase::removeIconFromSQLDatabase): Don't ASSERT of log if the icon wasn't on disk
6771
67722007-09-17  Brady Eidson  <beidson@apple.com>
6773
6774        Reviewed by Oliver
6775
6776        <rdar://problem/5487048> - ASSERT in stress test in IconDatabase
6777
6778        If a PageURLRecord went away, it never clears its URL from the IconRecord it retained.
6779
6780        * loader/icon/PageURLRecord.cpp:
6781        (WebCore::PageURLRecord::~PageURLRecord): Set the icon record to 0, clearing the page url
6782        * loader/icon/PageURLRecord.h: Add the destructor
6783
67842007-09-17  Antti Koivisto  <antti@apple.com>
6785
6786        Reviewed by Darin.
6787        
6788        Fix <rdar://problem/5480050>
6789        Leopard9A551 with Dashcode 112: Dashcode crash when dragging image into canvas.
6790        
6791        If @import stylesheet was modified through CSS DOM style selector would not get updated. This
6792        could lead to crashes.
6793
6794        Test: fast/css/import-style-update.html
6795
6796        * css/CSSStyleSheet.cpp:
6797        (WebCore::CSSStyleSheet::styleSheetChanged):
6798
67992007-09-17  Anders Carlsson  <andersca@apple.com>
6800
6801        Reviewed by Adam.
6802
6803        <rdar://problem/5421997>
6804        http://bugs.webkit.org/show_bug.cgi?id=14247
6805        Display problem with Flash - image does not stop changing
6806        
6807        Port the manual load code over from the Mac version.
6808
6809        * plugins/win/PluginDatabaseWin.cpp:
6810        (WebCore::PluginDatabaseWin::createPluginView):
6811        * plugins/win/PluginDatabaseWin.h:
6812        Add load manually parameter.
6813        
6814        * plugins/win/PluginStreamWin.cpp:
6815        (WebCore::PluginStreamWin::stop):
6816        If we're loading manually, cancel the main resource load.
6817         
6818        (WebCore::PluginStreamWin::destroyStream):
6819        Don't disconnect the stream if we're loading manually.
6820        
6821        * plugins/win/PluginViewWin.cpp:
6822        (WebCore::PluginViewWin::setFrameGeometry):
6823        Always call updateWindow()
6824        
6825        (WebCore::PluginViewWin::PluginViewWin):
6826        Initialize loadManually.
6827        
6828        (WebCore::PluginViewWin::init):
6829        Don't set the width and height of the window here since it will make the plug-in HWND show briefly
6830        before it's been positioned.
6831        
6832        (WebCore::PluginViewWin::didReceiveResponse):
6833        Create the manual stream.
6834        
6835        (WebCore::PluginViewWin::didReceiveData):
6836        (WebCore::PluginViewWin::didFinishLoading):
6837        (WebCore::PluginViewWin::didFail):
6838        Call through to the manual stream.
6839        
6840        * plugins/win/PluginViewWin.h:
6841
68422007-09-16  Sam Weinig  <sam@webkit.org>
6843
6844        Reviewed by Maciej.
6845
6846        Fix for http://bugs.webkit.org/show_bug.cgi?id=14693
6847        document.width/height doesn't force layout
6848
6849        Test: fast/dom/document-width-height-force-layout.html
6850
6851        * html/HTMLDocument.cpp:
6852        (WebCore::HTMLDocument::width): Force layout.
6853        (WebCore::HTMLDocument::height): ditto.
6854        * html/HTMLDocument.h:
6855
68562007-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
6857
6858        Reviewed by Mark.
6859
6860        Convert the filenames from WebCore::String to the filesystem encoding
6861        and vice versa using g_filename_{from,to}_utf8 functions. Also add the needed NULL
6862        checks for the return values where glib and gtk+ can return NULL.
6863
6864        * platform/gdk/FileChooserGdk.cpp:
6865        (WebCore::convertToStringByAdoptingTheFilesystemRepresentation):
6866        (WebCore::FileChooser::openFileChooser):
6867        (WebCore::FileChooser::basenameForWidth):
6868
68692007-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
6870
6871        Reviewed by Mark.
6872
6873        Use the new WebCore::String::fromUTF8 function to create
6874        the labels.
6875
6876        * platform/gdk/LocalizedStringsGdk.cpp:
6877        (WebCore::submitButtonDefaultLabel):
6878        (WebCore::inputElementAltText):
6879        (WebCore::resetButtonDefaultLabel):
6880        (WebCore::searchableIndexIntroduction):
6881        (WebCore::fileButtonChooseFileLabel):
6882        (WebCore::fileButtonNoFileSelectedLabel):
6883        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
6884        (WebCore::contextMenuItemTagDownloadLinkToDisk):
6885        (WebCore::contextMenuItemTagCopyLinkToClipboard):
6886        (WebCore::contextMenuItemTagOpenImageInNewWindow):
6887        (WebCore::contextMenuItemTagDownloadImageToDisk):
6888        (WebCore::contextMenuItemTagCopyImageToClipboard):
6889        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
6890        (WebCore::contextMenuItemTagCopy):
6891        (WebCore::contextMenuItemTagGoBack):
6892        (WebCore::contextMenuItemTagGoForward):
6893        (WebCore::contextMenuItemTagStop):
6894        (WebCore::contextMenuItemTagReload):
6895        (WebCore::contextMenuItemTagCut):
6896        (WebCore::contextMenuItemTagPaste):
6897        (WebCore::contextMenuItemTagNoGuessesFound):
6898        (WebCore::contextMenuItemTagIgnoreSpelling):
6899        (WebCore::contextMenuItemTagLearnSpelling):
6900        (WebCore::contextMenuItemTagSearchWeb):
6901        (WebCore::contextMenuItemTagLookUpInDictionary):
6902        (WebCore::contextMenuItemTagOpenLink):
6903        (WebCore::contextMenuItemTagIgnoreGrammar):
6904        (WebCore::contextMenuItemTagSpellingMenu):
6905        (WebCore::contextMenuItemTagShowSpellingPanel):
6906        (WebCore::contextMenuItemTagCheckSpelling):
6907        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
6908        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
6909        (WebCore::contextMenuItemTagFontMenu):
6910        (WebCore::contextMenuItemTagBold):
6911        (WebCore::contextMenuItemTagItalic):
6912        (WebCore::contextMenuItemTagUnderline):
6913        (WebCore::contextMenuItemTagOutline):
6914        (WebCore::contextMenuItemTagWritingDirectionMenu):
6915        (WebCore::contextMenuItemTagDefaultDirection):
6916        (WebCore::contextMenuItemTagLeftToRight):
6917        (WebCore::contextMenuItemTagRightToLeft):
6918        (WebCore::contextMenuItemTagInspectElement):
6919        (WebCore::searchMenuNoRecentSearchesText):
6920        (WebCore::searchMenuRecentSearchesText):
6921        (WebCore::searchMenuClearRecentSearchesText):
6922
69232007-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
6924
6925        Reviewed by Mark.
6926
6927        Add WebCore::String::fromUTF8 to convert from UTF-8
6928        to a WebCore::String. This is meant to be used by
6929        the Gtk+ port and the signature and implementation
6930        is similiar to the one of DeprecatedString.
6931
6932        * platform/PlatformString.h:
6933        * platform/String.cpp:
6934        (WebCore::String::fromUTF8):
6935
69362007-09-13  Holger Hans Peter Freyther  <zecke@selfish.org>
6937
6938        Reviewed by Anders.
6939
6940        Implement the fileExists and deleteFile functions
6941        using glib.
6942
6943        * WebCore.pro:
6944        * platform/gdk/FileSystemGdk.cpp: Added.
6945        (WebCore::fileExists):
6946        * platform/gdk/TemporaryLinkStubs.cpp:
6947
69482007-09-16  David Harrison  <harrison@apple.com>
6949
6950        Reviewed by Darin.
6951
6952        <rdar://problem/5472125> REGRESSION (9A535-9A548): No VO cursor shown when navigating in a mail message body
6953
6954        The problem was that the visible units code was mishandling non-editable content, generating null
6955        VisiblePositions instead of the actual boundary VisiblePositions.
6956        
6957        Updated tests:
6958        * fast/dom/Window/window-xy-properties-expected.txt:
6959        * fast/dom/plugin-attributes-enumeration-expected.txt:
6960        * fast/events/onerror-bubbling-expected.txt:
6961        * fast/events/related-target-expected.txt:
6962        * fast/forms/select-namedItem-expected.txt:
6963        * fast/table/incomplete-table-in-fragment-2-expected.txt:
6964        * fast/table/incomplete-table-in-fragment-hang-expected.txt:
6965        * fast/table/large-rowspan-crash-expected.txt:
6966        * plugins/embed-attributes-setting-expected.txt:
6967       
6968        Source Changes:
6969        * editing/VisiblePosition.cpp:
6970        (WebCore::VisiblePosition::next):
6971        (WebCore::VisiblePosition::previous):
6972        (WebCore::VisiblePosition::honorEditableBoundaryAtOrBefore):
6973        (WebCore::VisiblePosition::honorEditableBoundaryAtOrAfter):
6974        Rename firstEditablePositionAtOrAfter to honorEditableBoundaryAtOrAfter.
6975        Rename firstEditablePositionAtOrBefore to honorEditableBoundaryAtOrBefore.
6976        Changed these two functions to handle non-editable positions.
6977        
6978        * editing/VisiblePosition.h:
6979        * editing/visible_units.cpp:
6980        (WebCore::previousWordPosition):
6981        (WebCore::nextWordPosition):
6982        (WebCore::positionAvoidingFirstPositionInTable):
6983        (WebCore::startPositionForLine):
6984        (WebCore::startOfLine):
6985        (WebCore::endOfLine):
6986        (WebCore::previousSentencePosition):
6987        (WebCore::nextSentencePosition):
6988        Rename firstEditablePositionAtOrAfter to honorEditableBoundaryAtOrAfter.
6989        Rename firstEditablePositionAtOrBefore to honorEditableBoundaryAtOrBefore.
6990        Also, startOfLine() now calls positionAvoidingFirstPositionInTable() in the empty block early return case.
6991        positionAvoidingFirstPositionInTable() was the logic startOfLine() used in the normal case. Now in a reusable function.
6992
69932007-09-14  Oliver Hunt  <oliver@apple.com>
6994
6995        Reviewed by Adam.
6996
6997        Mac doesn't have any kind of not implemented macro, so we'll actually implement
6998        fileSize.
6999
7000        * platform/mac/FileSystemMac.mm:
7001        (WebCore::fileSize):
7002
70032007-09-14  Timothy Hatcher  <timothy@apple.com>
7004
7005        Initialize m_dialogArguments to 0. Fixes the newly crashing layout tests.
7006
7007        * bindings/js/kjs_window.cpp:
7008        (KJS::WindowPrivate::WindowPrivate):
7009
70102007-09-14  Oliver Hunt  <oliver@apple.com>
7011
7012        Reviewed by Brady, John H.
7013
7014        <rdar://problem/5483632> File system operation wrappers are unimplemented on windows
7015        
7016        Implement Windows versions of fileExists and deleteFile. 
7017        Also corrects fileSize to use a 64-bit version of stat.
7018
7019        * platform/win/FileSystemWin.cpp:
7020        (WebCore::fileSize):  
7021          Renamed argument to be more consistent with others.
7022          And converted to _stat32i64 to allow 64-bit filesizes
7023        (WebCore::fileExists):
7024        (WebCore::deleteFile):
7025        * platform/win/TemporaryLinkStubs.cpp:
7026
70272007-09-14  Oliver Hunt  <oliver@apple.com>
7028
7029        Reviewed by Sam and Geoff.
7030
7031        <rdar://problem/5333272> Cannot upload files when path contains 
7032        non-ascii/multibyte characters
7033
7034        We can't use _stat to determine file size on Windows as it may not 
7035        correctly handle multibyte characters, so we have to use _wstat.
7036        
7037        In deference to the fact that we may one day use the FormDataStreamCFNet.cpp
7038        on Mac i've wrapped the call to _wstat with a generic fileSize
7039        method in FileSystem.h
7040
7041        * WebCore.vcproj/WebCore.vcproj:
7042        * platform/FileSystem.h:
7043        * platform/network/cf/FormDataStreamCFNet.cpp:
7044        * platform/win/FileSystemWin.cpp: Added.
7045        (WebCore::setHTTPBody):
7046        * platform/gdk/TemporaryLinkStubs.cpp:
7047        * platform/mac/FileSystemMac.mm:
7048        (WebCore::fileSize):
7049        * platform/qt/TemporaryLinkStubs.cpp:
7050
70512007-09-14  Timothy Hatcher  <timothy@apple.com>
7052
7053        Reviewed by Sam.
7054
7055        <rdar://problem/5472970> REGRESSION (r24276): TinyMCE popups show an empty window with no content
7056
7057        Accessing the document of a window before the load finished would cause the window
7058        object to hold onto the initial empty document, and never switch over to the real document
7059        once the load finished. This regression was caused by r24276 which added a check to prevent
7060        clearing the window object when the load finished. The absence of this clear allowed the
7061        dialogArguments set with showModalDialog to persist on the window after the load. However,
7062        not clearing the window would keep other properties (and the empty document object) around.
7063
7064        So the fix is to store away the dialog arguments that were passed to showModalDialog and
7065        put them back on the window object in the dialogArguments property each time
7066        the window is cleared.
7067
7068        * bindings/js/kjs_window.cpp:
7069        (KJS::createWindow): No longer put dialogArguments on the window here.
7070        (KJS::showModalDialog): Put dialogArguments on the window and call
7071        setDialogArgumentsAndReturnValueSlot to remember the arguments.
7072        (KJS::Window::clear): Put m_dialogArguments back on the window as dialogArguments.
7073        (KJS::WindowFunc::callAsFunction): Call the new setDialogArgumentsAndReturnValue.
7074        (KJS::Window::setDialogArgumentsAndReturnValue): Store the arguments in m_dialogArguments.
7075        * bindings/js/kjs_window.h: Rename setReturnValueSlot to setDialogArgumentsAndReturnValueSlot.
7076        * manual-tests/modal-dialog-arguments.html: Confirmed that this test still passes.
7077
7078        Reverted r24276 which was all the changes in FrameLoader.cpp and FrameLoader.h.
7079
7080        * loader/FrameLoader.cpp:
7081        (WebCore::FrameLoader::FrameLoader): Remove m_shouldClearWindowProperties.
7082        (WebCore::FrameLoader::createWindow): Remove the call to setShouldClearWindowProperties.
7083        (WebCore::FrameLoader::clear): No longer check m_shouldClearWindowProperties, clear the
7084        window whenever clearWindowProperties is set.
7085        (WebCore::FrameLoader::begin): Remove m_shouldClearWindowProperties.
7086        (WebCore::FrameLoader::open): Ditto.
7087        * loader/FrameLoader.h: Remove m_shouldClearWindowProperties.
7088
70892007-09-14  Brady Eidson  <beidson@apple.com>
7090
7091        How about a build fix that works on *all* platforms?
7092
7093        * platform/Threading.h:
7094        (WebCore::initializeThreading):
7095
70962007-09-14  Brady Eidson  <beidson@apple.com>
7097
7098        Roll out my previous build fix and just make the stupid thing inline
7099        (I knew there was something easier but oh boy, no coffee yet... weinig?)
7100
71012007-09-14  Brady Eidson  <beidson@apple.com>
7102
7103        Rubberstamped by Mark Rowe
7104
7105        Add the logging channel I just created to the initialize list on Mac
7106
7107        * platform/mac/LoggingMac.mm:
7108        (WebCore::InitializeLoggingChannelsIfNecessary):
7109
71102007-09-14  Brady Eidson  <beidson@apple.com>
7111
7112        Build fix
7113
7114        That method can't go in the header, apparently
7115
7116        * platform/Threading.h:
7117        * platform/gdk/TemporaryLinkStubs.cpp:
7118        (WebCore::initializeThreading):
7119        * platform/mac/Threading.mm:
7120        (WebCore::initializeThreading):
7121        * platform/qt/TemporaryLinkStubs.cpp:
7122        (WebCore::initializeThreading):
7123
71242007-09-14  Brady Eidson  <beidson@apple.com>
7125
7126        Reviewed by Darin
7127
7128        -Add callOnMainThread() implementation to Windows
7129
7130        * WebCore.vcproj/WebCore.vcproj:
7131        
7132        * loader/icon/IconDatabase.cpp:
7133        (WebCore::IconDatabase::open): Call initializeThreading() from the main thread before kicking off the secondary thread
7134        
7135        * platform/Logging.cpp: Added Threading logging channel
7136        (WebCore::):
7137        * platform/Logging.h: Ditto
7138        
7139        * platform/Threading.h:
7140        (WebCore::initializeThreading): Added - only needs Windows impl for now
7141        * platform/win/ThreadingWin.cpp: Added.
7142        (WebCore::callFunctionsOnMainThread): Calls each function currently in the main-thread queue
7143        (WebCore::ThreadingWindowWndProc):
7144        (WebCore::initializeThreading): Creates a message-only window to use for callOnMainThread()
7145        (WebCore::callOnMainThread): Queues the function to be called and posts a message to the threading
7146          window such that the function-call-queue can be addressed
7147        
7148        * platform/win/TemporaryLinkStubs.cpp:
7149        (WebCore::signedPublicKeyAndChallengeString):
7150        
71512007-09-14  Anders Carlsson  <andersca@apple.com>
7152
7153        Reviewed by Adam.
7154
7155        <rdar://problem/5316743>
7156        Safari does not handle filename parameter of content-disposition
7157        
7158        Use CFURLResponseCopySuggestedFilename instead of our own hand-rolled implementation. 
7159        
7160        While we do return the correct filename in all cases I've tried, using CFNetwork is better because
7161        it might handle corner cases that we don't.
7162        
7163        * platform/network/cf/ResourceResponseCFNet.cpp:
7164        (WebCore::ResourceResponse::doUpdateResourceResponse):
7165        
71662007-09-14  Geoffrey Garen  <ggaren@apple.com>
7167
7168        Reviewed by Adam Roben.
7169
7170        Fixed http://bugs.webkit.org/show_bug.cgi?id=15209
7171        Sometimes removing an iframe from the DOM does not remove its frame 
7172        from the page
7173
7174        * loader/FrameLoader.cpp:
7175        (WebCore::FrameLoader::requestFrame): Use the contentFrame pointer
7176        directly instead of searching for a frame by the frame element's name, 
7177        because the frame element's name may have changed. (Another reason to do
7178        this is that it's just plain more straight-forward and efficient.)
7179
71802007-09-14  Darin Adler  <darin@apple.com>
7181
7182        Reviewed by Mitz and Kevin Decker.
7183
7184        - fix http://bugs.webkit.org/show_bug.cgi?id=15197
7185          <rdar://problem/5478271> REGRESSION: Some Yahoo text entry fields
7186          render as lines rather than text entry boxes
7187
7188        Test: fast/forms/textarea-rows-cols.html
7189
7190        * html/HTMLTextAreaElement.cpp:
7191        (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Use constants for the default number
7192        of rows and columns.
7193        (WebCore::HTMLTextAreaElement::parseMappedAttribute): If rows/cols attribute has a value
7194        that's missing, non-numeric, or zero, then use the default value. Also check for the
7195        case where the effective value of the attribute isn't changing.
7196
71972007-09-14  Sven Herzberg  <sven@imendio.com>
7198
7199        Reviewed by George.
7200
7201        Don't maintain obsolete code, fixes:
7202        http://bugs.webkit.org/show_bug.cgi?id=15215
7203
7204        * platform/gdk/FontPlatformData.cpp: remove static
7205        FontPlatformData::list() (isn't used at any place)
7206
72072007-09-14  Sven Herzberg  <sven@imendio.com>
7208
7209        Reviewed by Adam Roben.
7210
7211        Don't use fontconfig types if necessary, fixes:
7212        http://bugs.webkit.org/show_bug.cgi?id=15203
7213
7214        * platform/gdk/FontPlatformData.cpp: don't use an FcBool to store the
7215        initialized state, use a plain c++ bool instead
7216
72172007-09-13  Brady Eidson  <beidson@apple.com>
7218
7219        Reviewed by Maciej
7220
7221        <rdar://problem/5480437> - No site icon at launch and related error messages
7222
7223        The error message was actually indicative of a larger bug that might've resulted in icons getting
7224        improperly pruned because they were never added to the set of retained page URLs.
7225
7226        To solve the no-icon-at-launch problem, we send the "didReceiveIcon:" delegate call for every page 
7227        load that has an icon, whether the icon comes in from network, from disk, or was already in ram
7228
7229        * loader/FrameLoader.cpp:
7230        (WebCore::FrameLoader::startIconLoader): Always send the didReceiveIcon delegate call when an icon's 
7231          image data is known
7232
7233        * loader/icon/IconDatabase.cpp:
7234        (WebCore::IconDatabase::retainIconForPageURL): Much more accurately track the set of retained pages by
7235          adding them when their retain count moves from 0 to 1
7236
7237        * loader/icon/PageURLRecord.h:
7238        (WebCore::PageURLRecord::retain): Correctly distinguish the "retain count just went from 0 to 1" case
7239          in the return value
7240
72412007-09-13  Brady Eidson  <beidson@apple.com>
7242
7243        Rubberstamped by Geoff and Maciej
7244
7245        Fix MSVC build warning due to out of range data in a char array
7246
7247        * loader/icon/IconDatabase.cpp:
7248        (WebCore::IconDatabase::defaultIcon): The buffer is now unsigned data
7249
7250        * platform/SharedBuffer.cpp:
7251        (WebCore::SharedBuffer::SharedBuffer): Add the "unsigned char*" c'tor
7252        * platform/SharedBuffer.h:
7253
72542007-09-13  Darin Adler  <darin@apple.com>
7255
7256        Reviewed by Oliver.
7257
7258        - fix <rdar://problem/5470457> REGRESSION: Input method inline hole is mishandled in text
7259          <input> elements with maxlength limit
7260
7261        * editing/Editor.h: Moved MarkedTextUnderline here and renamed it CompositionUnderline.
7262        Moved the rest of the marked text API here and used the term that will be more familiar
7263        to those on platforms other than Macintosh, "composition". This helps prevent confusion
7264        with the other kinds of mark -- the emacs "mark" and spelling/grammar marks. Also
7265        cleaned up the conditionals a bit for the Macintosh-specific parts of this header.
7266
7267        * editing/Editor.cpp:
7268        (WebCore::Editor::Editor): Updated for name change.
7269        (WebCore::Editor::clear): Added. To be called by FrameLoader::clear().
7270        (WebCore::Editor::insertTextWithoutSendingTextEvent): Removed code to make inserted
7271        text replace the marked text range -- we now deal with this explicitly by not
7272        calling this function to replace marked text. Also removed unneeded code that was
7273        specific to the use of this to replace the marked text.
7274        (WebCore::Editor::selectComposition): Renamed from selectMarkedText. Updated since
7275        the composition range is not stored as a Range.
7276        (WebCore::Editor::confirmComposition): Added. To be called when changing a composition
7277        into actual text. Unlike the old code path, deletes the composition first, then inserts
7278        the text, triggering the normal insertion code path and events. This is helpful because
7279        it means the inserted text will be truncated by the <input> element, for example.
7280        (WebCore::Editor::confirmCompositionWithoutDisturbingSelection): Added.
7281        (WebCore::Editor::setComposition): Added. To be called when changing the composition.
7282        Takes parameters for the underlines and selection. Unlike the old code path, this passes
7283        a flag down that indicates the inserted text is part of a composition. This is helpful
7284        because we don't send the event that will cause the <input> element to do truncation.
7285        It's also a better API for future improvements to our input method handling.
7286        (WebCore::Editor::revealSelectionAfterEditingOperation): Updated for name change.
7287        (WebCore::Editor::setIgnoreCompositionSelectionChange): Ditto.
7288        (WebCore::Editor::compositionRange): Added. Needed now that the composition is not
7289        stored as a Range.
7290        (WebCore::Editor::getCompositionSelection): Added.
7291
7292        * editing/TypingCommand.h:
7293        * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText):
7294        Added an insertedTextIsComposition parameter, and don't send the BeforeTextInsertedEvent
7295        if it's true.
7296
7297        * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Replaced the Macintosh-specific
7298        call to setMarkedTextRange with a call to the new Editor::clear().
7299
7300        * page/Frame.h:
7301        * page/Frame.cpp:
7302        * page/FramePrivate.h:
7303        * page/mac/FrameMac.mm:
7304        Removed the marked text code. It was streamlined and moved to Editor, except for the
7305        Mac-specific code, which was moved into WebKit.
7306
7307        * page/mac/WebCoreFrameBridge.h:
7308        * page/mac/WebCoreFrameBridge.mm: Removed some now-unneeded marked text code.
7309        (-[WebCoreFrameBridge markedTextNSRange]): Updated for name/API change.
7310
7311        * rendering/InlineTextBox.h:
7312        * rendering/InlineTextBox.cpp:
7313        (WebCore::InlineTextBox::paint): Updated marked text code for name changes, and also
7314        streamlined the code a bit for the case where there is no composition.
7315        (WebCore::InlineTextBox::paintCompositionBackground): Name change.
7316        (WebCore::InlineTextBox::paintCompositionUnderline): Ditto.
7317
7318        * rendering/RenderTextControl.h:
7319        * rendering/RenderTextControl.cpp:
7320        (WebCore::RenderTextControl::finishText): Added. Helper function shared by the
7321        (WebCore::RenderTextControl::text):
7322        (WebCore::getNextSoftBreak):
7323        (WebCore::RenderTextControl::textWithHardLineBreaks):
7324
7325        * platform/CharacterNames.h: Added newlineCharacter.
7326
7327        * dom/Range.h: Remove the now-unneeded version of toString that converts <br>
7328        elements into newlines.
7329        * dom/Range.cpp:
7330        (WebCore::Range::toString): Changed this to use a Vector<UChar> instead of
7331        a String so it will not have pathological reallocation performance, and removed
7332        the <br> feature.
7333        (WebCore::Range::pastEndNode): Made this return 0 when there is no start node.
7334        This bit of extra robustness guarantees you can't do a null dereference if the
7335        start node is 0 and the end node is not. Not sure this case really exists.
7336
7337        * page/ContextMenuController.cpp: (ContextMenuController::contextMenuItemSelected):
7338        Removed a semi-bogus use of Range::toString(true). The right function to use here
7339        is plainText().
7340
7341        * bridge/EditorClient.h: Removed obsolete markedTextAbandoned function.
7342
7343        * WebCore.exp: Updated for above changes. 
7344
73452007-09-13  Anders Carlsson  <andersca@apple.com>
7346
7347        Reviewed by Adam and Geoff.
7348
7349        <rdar://problem/5304000>
7350        Windows Safari doesn't always call NPP_SetWindow() for NPAPI plugins.
7351        
7352        This does two things:
7353        
7354        1. Makes sure that the plug-in get the correct initial size.
7355        
7356        2. Always updates the size of the HWND, even if the widget size didn't change. This is because
7357        the widget size can be different before the HWND has been created.
7358        
7359        * plugins/win/PluginDatabaseWin.cpp:
7360        (WebCore::PluginDatabaseWin::createPluginView):
7361        * plugins/win/PluginDatabaseWin.h:
7362        * plugins/win/PluginViewWin.cpp:
7363        (WebCore::PluginViewWin::setFrameGeometry):
7364        (WebCore::PluginViewWin::PluginViewWin):
7365        * plugins/win/PluginViewWin.h:
7366
73672007-09-13  Kevin McCullough  <kmccullough@apple.com>
7368
7369        Reviewed by Geof, Sam, Adam, Hyatt, Darin.
7370
7371        - <rdar://problem/5480234> JS setTimeout function requires a second argument
7372        - Removed check for number of arguments in setTimeout to behave like other browsers.
7373        - Added layoutTest setTimeout-no-arguments.html
7374
7375        * bindings/js/kjs_window.cpp:
7376        (KJS::WindowFunc::callAsFunction):
7377
73782007-09-13   Dave Hyatt  <hyatt@apple.com>
7379
7380        Some minor Windows font improvements before I make the larger changes.
7381        
7382        Reviewed by aroben, weinig
7383
7384        * platform/win/FontCacheWin.cpp:
7385        (WebCore::FontCache::getFontDataForCharacters):
7386        Don't use the currently selected font in the HDC when passing priority code pages to MLANG.  Make
7387        sure to use ACP code pages instead so that there won't be any confusion regarding traditional vs.
7388        simplified chinese, etc.
7389
7390        * platform/win/FontDataWin.cpp:
7391        (WebCore::FontData::containsCharacters):
7392        Rewrite containsCharacters so that it isn't glyph-dependent (since CG doesn't shape, this call is
7393        rejecting fonts that it shouldn't).  Re-implement this method in terms of MLang and use code page
7394        testing.
7395        
7396        * platform/win/UniscribeController.cpp:
7397        (WebCore::UniscribeController::itemizeShapeAndPlace):
7398        Add some comments to explain the additional item in the items array.
7399       
7400        (WebCore::UniscribeController::shape):
7401        Fix up the missing glyph check when doing uniscribe shaping.  Only wgDefault matters as far as doing
7402        font fallback.
7403        
74042007-09-13  kuchhal  <kuchhal@yahoo.com>
7405
7406        Reviewed, tweaked and landed by Anders.
7407
7408        <rdar://problem/5461153> 
7409        http://bugs.webkit.org/show_bug.cgi?id=15143
7410        Crash seen on Windows
7411        
7412        Null check frame before calling Frame::settings.
7413        
7414        * loader/PluginDocument.cpp:
7415        (WebCore::PluginTokenizer::writeRawData):
7416
74172007-09-12  Holger Hans Peter Freyther  <zecke@selfish.org>
7418
7419        Reviewed by Mark.
7420
7421        Implement the FileChooser for the WebKit/Gtk+ port by using
7422        the GtkFileChooserDialog and g_path_get_basename to get the
7423        basename for the current filename.
7424
7425
7426        * WebCore.pro:
7427        * platform/gdk/FileChooserGdk.cpp: Added.
7428        (WebCore::FileChooser::FileChooser):
7429        (WebCore::FileChooser::~FileChooser):
7430        (WebCore::FileChooser::openFileChooser):
7431        (WebCore::FileChooser::basenameForWidth):
7432        * platform/gdk/TemporaryLinkStubs.cpp:
7433
74342007-09-12  Holger Hans Peter Freyther  <zecke@selfish.org>
7435
7436        Reviewed by Mark.
7437
7438        Move the "string" functions from the TemporaryLinkStubs.cpp
7439        to LocalizedStringsGdk.cpp and implement them using the text
7440        from the win port and glib-i18n (gettext).
7441
7442        * platform/gdk/LocalizedStringsGdk.cpp: Added.
7443        (WebCore::submitButtonDefaultLabel):
7444        (WebCore::inputElementAltText):
7445        (WebCore::resetButtonDefaultLabel):
7446        (WebCore::searchableIndexIntroduction):
7447        (WebCore::fileButtonChooseFileLabel):
7448        (WebCore::fileButtonNoFileSelectedLabel):
7449        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
7450        (WebCore::contextMenuItemTagDownloadLinkToDisk):
7451        (WebCore::contextMenuItemTagCopyLinkToClipboard):
7452        (WebCore::contextMenuItemTagOpenImageInNewWindow):
7453        (WebCore::contextMenuItemTagDownloadImageToDisk):
7454        (WebCore::contextMenuItemTagCopyImageToClipboard):
7455        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
7456        (WebCore::contextMenuItemTagCopy):
7457        (WebCore::contextMenuItemTagGoBack):
7458        (WebCore::contextMenuItemTagGoForward):
7459        (WebCore::contextMenuItemTagStop):
7460        (WebCore::contextMenuItemTagReload):
7461        (WebCore::contextMenuItemTagCut):
7462        (WebCore::contextMenuItemTagPaste):
7463        (WebCore::contextMenuItemTagNoGuessesFound):
7464        (WebCore::contextMenuItemTagIgnoreSpelling):
7465        (WebCore::contextMenuItemTagLearnSpelling):
7466        (WebCore::contextMenuItemTagSearchWeb):
7467        (WebCore::contextMenuItemTagLookUpInDictionary):
7468        (WebCore::contextMenuItemTagOpenLink):
7469        (WebCore::contextMenuItemTagIgnoreGrammar):
7470        (WebCore::contextMenuItemTagSpellingMenu):
7471        (WebCore::contextMenuItemTagShowSpellingPanel):
7472        (WebCore::contextMenuItemTagCheckSpelling):
7473        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
7474        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
7475        (WebCore::contextMenuItemTagFontMenu):
7476        (WebCore::contextMenuItemTagBold):
7477        (WebCore::contextMenuItemTagItalic):
7478        (WebCore::contextMenuItemTagUnderline):
7479        (WebCore::contextMenuItemTagOutline):
7480        (WebCore::contextMenuItemTagWritingDirectionMenu):
7481        (WebCore::contextMenuItemTagDefaultDirection):
7482        (WebCore::contextMenuItemTagLeftToRight):
7483        (WebCore::contextMenuItemTagRightToLeft):
7484        (WebCore::contextMenuItemTagInspectElement):
7485        (WebCore::searchMenuNoRecentSearchesText):
7486        (WebCore::searchMenuRecentSearchesText):
7487        (WebCore::searchMenuClearRecentSearchesText):
7488        (WebCore::unknownFileSizeText):
7489        * platform/gdk/TemporaryLinkStubs.cpp:
7490
74912007-09-10  Holger Hans Peter Freyther  <zecke@selfish.org>
7492
7493        Reviewed by Mark.
7494
7495        EventHandlerGdk::createDraggingClipboard must succeed otherwise an
7496        ASSERT is hit. Add Clipboard stubs for the Gdk/Gtk+ port and
7497        instantiate ClipboardGdk from the EventHandlerGdk to make the ASSERT
7498        go away. In contrast to the Windows and Mac port this clipboard is not
7499        inheriting CachedResourceClient. This was proposed by Oliver.
7500
7501        * WebCore.pro:
7502        * page/gdk/EventHandlerGdk.cpp:
7503        * platform/gdk/ClipboardGdk.cpp: Added.
7504        (WebCore::ClipboardGdk::ClipboardGdk):
7505        (WebCore::ClipboardGdk::~ClipboardGdk):
7506        (WebCore::ClipboardGdk::clearData):
7507        (WebCore::ClipboardGdk::clearAllData):
7508        (WebCore::ClipboardGdk::getData):
7509        (WebCore::ClipboardGdk::setData):
7510        (WebCore::ClipboardGdk::types):
7511        (WebCore::ClipboardGdk::dragLocation):
7512        (WebCore::ClipboardGdk::dragImage):
7513        (WebCore::ClipboardGdk::setDragImage):
7514        (WebCore::ClipboardGdk::dragImageElement):
7515        (WebCore::ClipboardGdk::setDragImageElement):
7516        (WebCore::ClipboardGdk::createDragImage):
7517        (WebCore::ClipboardGdk::declareAndWriteDragImage):
7518        (WebCore::ClipboardGdk::writeURL):
7519        (WebCore::ClipboardGdk::writeRange):
7520        (WebCore::ClipboardGdk::hasData):
7521        * platform/gdk/ClipboardGdk.h: Added.
7522
75232007-09-12  Oliver Hunt  <oliver@apple.com>
7524
7525        Reviewed by Adam.
7526
7527        Corrections missed in previous revision
7528
7529        * platform/Cursor.h:
7530        * platform/win/CursorWin.cpp:
7531        (WebCore::loadCursorByName):
7532
75332007-09-12  Oliver Hunt  <oliver@apple.com>
7534
7535        Reviewed by Adam.
7536
7537        Fixing 
7538            <rdar://problem/5018591> Windows doesn't have a standard vertical text cursor
7539            <rdar://problem/5224996> Add zoom in and zoom out cursors
7540
7541        Added SharedCursor for CursorWin so we can correctly track lifetime of custom/image
7542        based cursors, such as the vertical text and zooming cursors.
7543
7544        * platform/Cursor.h:
7545        (WebCore::SharedCursor::SharedCursor):
7546        (WebCore::SharedCursor::~SharedCursor):
7547        (WebCore::SharedCursor::nativeCursor):
7548        * platform/win/CursorWin.cpp:
7549        (WebCore::Cursor::Cursor):
7550        (WebCore::loadCursorByName):
7551        (WebCore::loadSharedCursor):
7552        (WebCore::pointerCursor):
7553        (WebCore::crossCursor):
7554        (WebCore::handCursor):
7555        (WebCore::iBeamCursor):
7556        (WebCore::waitCursor):
7557        (WebCore::helpCursor):
7558        (WebCore::eastResizeCursor):
7559        (WebCore::northResizeCursor):
7560        (WebCore::northEastResizeCursor):
7561        (WebCore::northWestResizeCursor):
7562        (WebCore::southResizeCursor):
7563        (WebCore::southEastResizeCursor):
7564        (WebCore::southWestResizeCursor):
7565        (WebCore::westResizeCursor):
7566        (WebCore::northSouthResizeCursor):
7567        (WebCore::eastWestResizeCursor):
7568        (WebCore::northEastSouthWestResizeCursor):
7569        (WebCore::northWestSouthEastResizeCursor):
7570        (WebCore::columnResizeCursor):
7571        (WebCore::rowResizeCursor):
7572        (WebCore::moveCursor):
7573        (WebCore::verticalTextCursor):
7574        (WebCore::progressCursor):
7575        (WebCore::notAllowedCursor):
7576        (WebCore::zoomInCursor):
7577        (WebCore::zoomOutCursor):
7578        * platform/win/WidgetWin.cpp:
7579        (WebCore::Widget::setCursor):
7580
75812007-09-12  Brady Eidson  <beidson@apple.com>
7582
7583        Reviewed by Geoff Garen
7584
7585        <rdar://problem/5478577> - Further improve cold launch time with Icon Database changes
7586
7587        * loader/icon/IconDatabase.cpp:
7588        (WebCore::IconDatabase::open): Store the directory and full path for later usage and access in the API, respectively
7589          Move the makeAllDirectories() call to the background thread.
7590        (WebCore::IconDatabase::IconDatabase): Don't set up the timer here...
7591        (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Create the timer on demand
7592        (WebCore::IconDatabase::iconDatabaseSyncThread): makeAllDirectories() here where it's not as expensive
7593        (WebCore::IconDatabase::cleanupSyncThread): Cleanup the directory as well as full path
7594
7595        * loader/icon/IconDatabase.h: m_syncTimer becomes an OwnPtr, and we add the database directory
7596          as a member to set it on the main thread and act with it on the background thread
7597
75982007-09-12  Justin Garcia  <justin.garcia@apple.com>
7599
7600        Reviewed by Tristan.
7601
7602        <rdar://problem/5469868> 
7603        GoogleDocs: A hang occurs when applying list styling to a selection in a <table>
7604        
7605        When list insertion moves selected paragraphs into list items, it relies on 
7606        the selection preservation code inside moveParagraphs to iterate over the 
7607        selected paragraphs.  If a selection is ever restored incorrectly (before
7608        the original, or inside the original) list insertion will go into an infinite loop.
7609        
7610        In this hang, a table was selected and the selection preservation code incorrectly
7611        restored a selection, placing it inside the table.
7612        
7613        The bug was that a TextIterator, when being used for selection preservation, must
7614        emit a character between every VisiblePosition in the Range used to create the
7615        iterator.
7616        
7617        * editing/TextIterator.cpp:
7618        (WebCore::TextIterator::TextIterator): Renamed the boolean that we use for 
7619        selection preservation.  It used to be m_emitForReplacedElements because
7620        we believed that replaced elements were the only case where TextIterators
7621        should have emitted differently when used for selection preservation.
7622        (WebCore::TextIterator::handleReplacedElement): Ditto.
7623        (WebCore::TextIterator::shouldRepresentNodeOffsetZero): Represent the 
7624        position before block tables, but only if we are emitting for selection 
7625        preservation.
7626        (WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode): We should emit 
7627        a space before and after block tables if we are emitting for selection 
7628        preservation (because we have VisiblePositions before and after them).
7629        (WebCore::TextIterator::handleNonTextNode): Use a renamed variable.
7630        * editing/TextIterator.h: Made shouldEmitSpaceBeforeAndAfterNode a member
7631        function, because whether or not we emit spaces before and after a block
7632        table depends we're emitting for selection preservation.
7633
76342007-09-12  Beth Dakin  <bdakin@apple.com>
7635
7636        Reviewed by Hyatt.
7637
7638        Fix for <rdar://problem/5464998> REGRESSION (9A543): Using Sort 
7639        options takes you back to search screen on zappos.com
7640
7641        The current mechanism for preserving form elements across removes 
7642        did not work in the case where the input was moved by the parser to 
7643        be out of scope of the form. This fixes that problem by having the 
7644        parser keep track of the preserve boolean rather than the current 
7645        form element.
7646
7647        * dom/Tokenizer.h:
7648        (WebCore::Tokenizer::isHTMLTokenizer): New function.
7649        * html/HTMLFormElement.cpp:
7650        (WebCore::HTMLFormElement::HTMLFormElement): Get rid of 
7651        m_preserveAcrossRemove.
7652        * html/HTMLFormElement.h:
7653        (WebCore::HTMLFormElement::isMalformed): Get rid of 
7654        m_preserveAcrossRemove.
7655        * html/HTMLGenericFormElement.cpp:
7656        (WebCore::HTMLGenericFormElement::removedFromTree): Ask the parser 
7657        if it is currently handling residual style rather than asking the 
7658        form if it wants to preserveAcrossRemove.
7659        * html/HTMLParser.cpp:
7660        (WebCore::HTMLParser::HTMLParser): New boolean to initialize.
7661        (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Set 
7662        m_handlingResidualStyleAcrossBlocks to true at the beginning and 
7663        false at the end.
7664        * html/HTMLParser.h:
7665        (WebCore::HTMLParser::isHandlingResidualStyleAcrossBlocks):
7666        * html/HTMLTokenizer.h:
7667        (WebCore::HTMLTokenizer::isHTMLTokenizer):
7668        (WebCore::HTMLTokenizer::htmlParser):
7669
76702007-09-12  George Staikos  <staikos@kde.org>
7671
7672        Fix compilation in some configurations for patch I reviewed and missed
7673        this option on.
7674
7675        * platform/qt/CursorQt.cpp:
7676        (WebCore::Cursor::Cursor):
7677
76782007-09-12  Brady Eidson  <beidson@apple.com>
7679
7680        Reviewed by Tim Hatcher and Kevin Decker
7681
7682        <rdar://problem/5367045> - Launch time regression due to accessing resource from a different bundle
7683
7684        When the default icon was moved from WebKit to WebCore, we had to access an entirely new bundle on launch which
7685        measurably increased time during launch accessing the disk.
7686
7687        Instead of moving it back to the WebKit bundle, lets make launch time even faster by compiling in the icon.
7688
7689        * Resources/urlIcon.tiff: Removed.
7690
7691        * WebCore.xcodeproj/project.pbxproj: Removed urlIcon.tiff
7692
7693        * loader/icon/IconDatabase.cpp:
7694        (WebCore::IconDatabase::defaultIcon): Compile in the icon data here.
7695
76962007-09-12  Adam Roben  <aroben@apple.com>
7697
7698        Always specify that slider thumbs are small when painting with SafariTheme
7699
7700        This is the only size we support.
7701
7702        Reviewed by Sam.
7703
7704        * rendering/RenderThemeSafari.cpp:
7705        (WebCore::RenderThemeSafari::paintSliderThumb):
7706
77072007-09-12  Brady Eidson  <beidson@apple.com>
7708
7709        Reviewed by Darin
7710
7711        <rdar://problem/5474753> - ASSERT in IconDatabase ReadySQLStatement
7712
7713        * loader/icon/IconDatabase.cpp:
7714        (WebCore::readySQLStatement): This is a LOG_ERROR situation, not really an ASSERT situation
7715
77162007-09-12  Adam Roben  <aroben@apple.com>
7717
7718        Don't ask SafariTheme to draw focus rings around text controls
7719
7720        We do this ourselves.
7721
7722        Reviewed by Oliver.
7723
7724        * rendering/RenderThemeSafari.cpp:
7725
77262007-09-11  Brady Eidson  <beidson@apple.com>
7727
7728        Reviewed by Darin
7729
7730        <rdar://problem/5475639> and http://bugs.webkit.org/show_bug.cgi?id=15185 -
7731        Prevent two WebKits from fighting over the database schema in the future in case it ever changes again
7732
7733        By telling the "older schema" WebKit to simply close itself and not bother to do any icon related stuff
7734        if the database schema is newer, we prevent the possibility of an older webkit run side-by-side with a newer
7735        WebKit causing icon database issues.
7736
7737        * loader/icon/IconDatabase.cpp:
7738        (WebCore::IconDatabase::defaultDatabaseFilename): Rev the icon database filename to be "WebpageIcons.db"  The name is
7739          more appropriate for what is actually stored in the file, and since we're already not converting v5 to v6 icons, 
7740          making this leap now makes sense and gives us a good "future-proof" baseline
7741        (WebCore::isValidDatabase): Change the validity check to be "less then" instead of "not equal to" - the
7742          "greater than" case is now handled in performOpenInitialization()
7743        (WebCore::IconDatabase::performOpenInitialization): If the schema version is greater than the current, then
7744          close the database as to not conflict with the newer version.  Also noted that the integrity check failure 
7745          should actually close the sql database, not the icondatabase
7746        (WebCore::IconDatabase::syncThreadMainLoop): If termination has already been requested, skip straight to cleanup
7747        (WebCore::IconDatabase::cleanupSyncThread): More correctly set the "sync thread running" flag to false here,
7748          as the thread can now decide to exit on its own
7749
77502007-09-12  Mike Fenton <mike@staikos.net>
7751
7752        Reviewed by George Staikos.
7753
7754        Patch from Mike Fenton to allow custom cursors.
7755
7756        * platform/qt/CursorQt.cpp:
7757
77582007-09-11  Kevin Decker <kdecker@apple.com>
7759
7760        Reviewed by Oliver Hunt.
7761
7762        Fixed: <rdar://problem/5472402> crash due to infinite recursion in expandUseElementsInShadowTree on SVG from wikipedia
7763
7764        * ksvg2/svg/SVGUseElement.cpp: Added SVG_EXPERIMENTAL #ifdef for expandUseElementsInShadowTree().
7765        (WebCore::SVGUseElement::buildPendingResource): Ditto.
7766        (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements): Tweaked an ASSERT to not fire on non-experimental builds.
7767        * ksvg2/svg/SVGUseElement.h: Added SVG_EXPERIMENTAL #ifdef for expandUseElementsInShadowTree().
7768
77692007-09-11  Brady Eidson  <beidson@apple.com>
7770
7771        Reviewed by Maciej
7772
7773        Fix for <rdar://problem/5473046> - Crash when resetting all icons
7774
7775        Originally I'd written the "reset all icons" to be synchronous on the main thread, but it
7776        was decided that it should be async since it involved I/O.  Turns out it needs to be... both!
7777        Synchronous removal of all in-memory records of icons, and then continue and clean up the 
7778        on-disk database on the background thread.
7779
7780        Also, it turns out that resetting all the page url retain counts should *not* be part of 
7781        "reset all icons" because it breaks various contracts the API makes about maintaining retain counts.
7782
7783        The problem that occured here was removing all the icons, then all the history items that were 
7784        removed as part of "Reset Safari..." would try to release their icon, but their icon doesn't exist
7785        anymore.
7786
7787        We get around this by simply leaving the in-memory page url records and retain counts alone - they
7788        are still wiped from disk.
7789
7790        * loader/icon/IconDatabase.cpp:
7791        (WebCore::IconDatabase::removeAllIcons): Clear in-memory records of all icons then tell the thread to
7792          wipe the on-disk tables
7793        (WebCore::IconDatabase::removeAllIconsOnThread): Only do the disk cleanup - in-memory maintenance is
7794          handled on the main thread
7795        (WebCore::IconDatabase::cleanupSyncThread): Now that it's possible for new "icons to be written to disk"
7796          to appear while on-disk deleting is occuring, let the cleanup procedure perform 1 final write *after*
7797          it does the remove all icons
7798        * loader/icon/IconDatabase.h: Removed unused lock and condition
7799
7800        * loader/icon/PageURLRecord.cpp:
7801        (WebCore::PageURLRecord::setIconRecord): Allow setting a NULL icon record, so a PageURLRecord can be
7802          cleared as part of removeAllIcons()
7803
78042007-09-11  Tristan O'Tierney  <tristan@apple.com>
7805
7806        Reviewed by David Harrison.
7807        
7808        <rdar://problem/5467203> CrashTracer: [USER] 1 crash in Mail at <unknown binary>: WebCore::Range::startContainer const
7809
7810        * editing/SelectionController.cpp:
7811        (WebCore::SelectionController::addRange):
7812        (WebCore::SelectionController::setSelectedRange):
7813        Added a check to make sure the passed in Range* value is not null
7814        before performing operations on it.
7815
78162007-09-11  Justin Garcia  <justin.garcia@apple.com>
7817
7818        Reviewed by Maciej.
7819        
7820        <rdar://problem/5458246> 
7821        GoogleDocs: A hang occurs when applying list styling to selection that contains a <HR>
7822        
7823        List insertion moves selected paragraphs into list items, and relies on the selection
7824        preservation code inside moveParagraphs to iterate over the selected paragraphs.
7825        When list insertion would try to listify a paragraph that came after a list item 
7826        containing an <hr>, the selection preservation code would set an incorrect ending 
7827        selection because of a TextIterator bug, and we would try to listify the same 
7828        paragraph over and over.
7829        
7830        * editing/CompositeEditCommand.cpp:
7831        (WebCore::CompositeEditCommand::moveParagraphs): Pass range compliant equivalents to
7832        the Range constructor here.  The position [hr, 0] is not a valid DOM Range endpoint 
7833        for example.
7834        * editing/TextIterator.cpp:
7835        (WebCore::shouldEmitSpaceForNode): Added.
7836        (WebCore::TextIterator::handleNonTextNode): Emit a space to represent a horizontal rule,
7837        since it has VisiblePositions before and after it, but only for TextIterators used for
7838        selection preservation, so innerText will be unaffected.
7839
78402007-09-11  Ada Chan  <adachan@apple.com>
7841
7842        <rdar://problem/5472130> Support NTLM authentication via CFNetwork.
7843
7844        Reviewed by Darin.
7845
7846        * platform/network/ProtectionSpace.h:
7847        (WebCore::):
7848        * platform/network/cf/AuthenticationCF.cpp:
7849        (WebCore::createCF):
7850        (WebCore::core):
7851
78522007-09-11  Darin Adler  <darin@apple.com>
7853
7854        Rubber-stamped by Dave Harrison.
7855
7856        - fixed pasteboard types here to match WebKit and use constants instead of
7857          WebKitSystemInterface
7858
7859        * platform/mac/PasteboardMac.mm: Use constants for all pasteboard type strings.
7860
7861        * platform/mac/WebCoreSystemInterface.h: Removed wkCreateURLPasteboardFlavorTypeName
7862        and wkCreateURLNPasteboardFlavorTypeName.
7863
78642007-09-11  Sven Herzberg  <sven@imendio.com>
7865
7866        Reviewed by Mark.
7867
7868        Remove unnecessary fields in FontPlatformData
7869        http://bugs.webkit.org/show_bug.cgi?id=15177
7870
7871        * platform/gdk/FontDataGdk.cpp: removed the destroy code of the fields
7872        that have been removed
7873        * platform/gdk/FontPlatformData.h: removed m_fontFace, m_fontMatrix
7874        and m_options; hask on m_scaledFont
7875        * platform/gdk/FontPlatformDataGdk.cpp: simplified setFont() by using
7876        m_scaledFont only; turned the former struct members into local
7877        variables
7878
78792007-09-11  George Staikos  <staikos@kde.org>
7880
7881        Reviewed by Anders.
7882
7883        Work around gcc bug with some old gcc versions.
7884
7885        * platform/qt/WidgetQt.cpp:
7886        (WebCore::Widget::convertToContainingWindow):
7887        (WebCore::Widget::convertFromContainingWindow):
7888
78892007-09-10  Mitz Pettel  <mitz@webkit.org>
7890
7891        Reviewed by Maciej Stachowiak.
7892
7893        - fix http://bugs.webkit.org/show_bug.cgi?id=15157
7894          Image defined in background-position: top center gets unexpectedly truncated
7895          <rdar://problem/5469095>
7896
7897        Test: fast/repaint/body-background-image.html
7898
7899        * rendering/RenderBox.cpp:
7900        (WebCore::RenderBox::imageChanged): Refined the logic for when the root takes
7901        over painting the background, to match paintBoxDecorations(). In particular,
7902        if the root has defined a background, the body should paint its own background.
7903
79042007-09-10  David Harrison  <harrison@apple.com>
7905
7906        Reviewed by Kevin and Tristan.
7907
7908        Tests added:
7909        * editing/pasteboard/paste-into-anchor-text.html: Added.
7910        * editing/pasteboard/paste-table-cells.html: Added.
7911
7912        Source changes:
7913        * editing/CompositeEditCommand.cpp:
7914        (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
7915        Nil check enclosingAnchor.
7916        
7917        * editing/ReplaceSelectionCommand.cpp:
7918        (WebCore::ReplaceSelectionCommand::removeNodeAndPruneAncestors):
7919        New. Keeps m_firstNodeInserted and m_lastLeafInserted updated.
7920        
7921        (WebCore::ReplaceSelectionCommand::negateStyleRulesThatAffectAppearance):
7922        Added a comment.
7923        
7924        (WebCore::ReplaceSelectionCommand::removeRedundantStyles):
7925        Let ReplaceSelectionCommand::removeNodeAndPruneAncestors() update the nodes.
7926         
7927        (WebCore::ReplaceSelectionCommand::doApply):
7928        Pass originalVisPosBeforeEndBR to shouldRemoveEndBR()
7929        
7930        (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR):
7931        Don't remove the br if nothing was inserted.
7932        
7933        * editing/ReplaceSelectionCommand.h:
7934        Add VisiblePosition parameter to shouldRemoveEndBR()
7935        
7936        * editing/markup.cpp:
7937        (WebCore::createMarkup):
7938        Wrap orphan tr element with a table element, just like we were doing
7939        for tobody elements.
7940
79412007-09-10  David Kilzer  <ddkilzer@apple.com>
7942
7943        Rubberstamped by Kevin Decker.
7944
7945        No test required since there is no change in functionality.
7946
7947        * history/BackForwardList.cpp:
7948        (WebCore::BackForwardList::BackForwardList): Fix misspelling of DefaultCapacitiy to DefaultCapacity.
7949
79502007-09-10  Mitz Pettel  <mitz@webkit.org>
7951
7952        Reviewed by Adele Peterson.
7953
7954        - fix http://bugs.webkit.org/show_bug.cgi?id=15156
7955          REGRESSION (r24594-r24668): The bottom of styled <select> button text is clipped out
7956          <rdar://problem/5464301>
7957
7958        Test: fast/forms/menulist-clip.html
7959
7960        * rendering/RenderMenuList.cpp:
7961        (WebCore::RenderMenuList::controlClipRect): Use correct coordinates for
7962        the inner block's content rect.
7963
79642007-09-10  Brady Eidson  <beidson@apple.com>
7965
7966        Reviewed by Darin, Sam, Oliver, Geoff, probably others - what a fun one to review!
7967
7968        <rdar://problem/5471641> - URLs get the wrong icon
7969
7970        Turns out sqlite3_reset() doesn't clear bindings, so previously bound icons were being
7971        written out for pages without icons.  Easy fix!
7972
7973        * loader/icon/IconDatabase.cpp:
7974        (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase): For null icons, manually
7975          bind NULL - otherwise, the previously bound icon will be written out to disk
7976
7977        * loader/icon/SQLStatement.cpp:
7978        (WebCore::SQLStatement::bindNull): Access to sqlite3_bind_null
7979        * loader/icon/SQLStatement.h:
7980
79812007-09-10  Anders Carlsson  <andersca@apple.com>
7982
7983        Reviewed by Oliver and Darin.
7984
7985        <rdar://problem/5468613>
7986        Using shockwave pages first time after plugin install crashed safari in PluginPing.
7987        
7988        Only restore the window proc if the plugin didn't override it.
7989        
7990        * plugins/win/PluginViewWin.cpp:
7991        (WebCore::PluginViewWin::stop):
7992
79932007-09-10  Justin Garcia  <justin.garcia@apple.com>
7994
7995        Reviewed by Darin.
7996
7997        <rdar://problem/5467405> 
7998        Revert back behavior of -webkit-user-select to fix widget selection problems
7999        
8000        Rolled out r25086 and r25057.  I will be re-opening:
8001        <rdar://problem/5333725> -webkit-user-select: none makes selection difficult
8002        Which we will either to defer or fix by introducing a new value of -webkit-user-select.
8003        <rdar://problem/5370059> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
8004        Which we will either defer or fix with Adele's patch that doesn't involve making 
8005        -webkit-user-select inherited.
8006
8007        * css/CSSComputedStyleDeclaration.cpp:
8008        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
8009        * css/CSSStyleSelector.cpp:
8010        (WebCore::CSSStyleSelector::adjustRenderStyle):
8011        (WebCore::CSSStyleSelector::applyProperty):
8012        * editing/SelectionController.cpp:
8013        (WebCore::SelectionController::selectAll):
8014        * page/EventHandler.cpp:
8015        (WebCore::EventHandler::selectClosestWordFromMouseEvent):
8016        (WebCore::EventHandler::handleMousePressEventTripleClick):
8017        (WebCore::EventHandler::handleMousePressEventSingleClick):
8018        (WebCore::EventHandler::updateSelectionForMouseDrag):
8019        (WebCore::EventHandler::selectCursor):
8020        (WebCore::EventHandler::canMouseDownStartSelect):
8021        * page/EventHandler.h:
8022        * rendering/RenderObject.cpp:
8023        (WebCore::selectStartNode):
8024        (WebCore::RenderObject::canSelect):
8025        (WebCore::RenderObject::shouldSelect):
8026        (WebCore::RenderObject::draggableNode):
8027        * rendering/RenderObject.h:
8028        * rendering/RenderStyle.cpp:
8029        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
8030        (WebCore::StyleRareNonInheritedData::operator==):
8031        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
8032        (WebCore::StyleRareInheritedData::operator==):
8033        (WebCore::RenderStyle::diff):
8034        * rendering/RenderStyle.h:
8035        (WebCore::):
8036        (WebCore::RenderStyle::userSelect):
8037        (WebCore::RenderStyle::setUserSelect):
8038        (WebCore::RenderStyle::initialUserSelect):
8039
80402007-09-10  Antti Koivisto  <antti@apple.com>
8041
8042        Reviewed by Kevin.
8043
8044        Fix <rdar://problem/5444866>
8045        REGRESSION: missing text in Acrobat "Getting Started" screen due to change in load ordering of large resources
8046        
8047        Make external scripts loaded using file: wait until all style sheet loads have completed before executing. 
8048        Fixes a class of problems where there is a dependency between script and stylesheet and results would effectively 
8049        get randomized based on which order the resources arrived. In Tiger file loads were effectively serialized by
8050        lower level components, which is why this regressed. 
8051
8052        Test: http/tests/local/stylesheet-and-script-load-order.html
8053
8054        * dom/Document.cpp:
8055        (WebCore::Document::removePendingSheet):
8056        * dom/Tokenizer.h:
8057        (WebCore::Tokenizer::executeScriptsWaitingForStylesheets):
8058        * html/HTMLTokenizer.cpp:
8059        (WebCore::HTMLTokenizer::HTMLTokenizer):
8060        (WebCore::HTMLTokenizer::begin):
8061        (WebCore::HTMLTokenizer::executeScriptsWaitingForStylesheets):
8062        (WebCore::HTMLTokenizer::notifyFinished):
8063        * html/HTMLTokenizer.h:
8064
80652007-09-08  David Smith  <catfish.man@gmail.com>
8066
8067        Reviewed by Maciej Stachowiak.
8068        
8069        http://bugs.webkit.org/show_bug.cgi?id=15148
8070        Bug 15148: Poor performance on crazy DOM raytracer
8071        
8072        Switch data structures to avoid quadratic behavior.
8073
8074        * rendering/RenderBlock.cpp:
8075        (WebCore::RenderBlock::layoutPositionedObjects): Update for ListHashSet
8076        (WebCore::RenderBlock::markPositionedObjectsForLayout): Update for ListHashSet
8077        (WebCore::RenderBlock::insertPositionedObject): Use ListHashSet to avoid expensive uniqueing
8078        (WebCore::RenderBlock::removePositionedObject): Update for ListHashSet
8079        (WebCore::RenderBlock::removePositionedObjects): Update for ListHashSet
8080        (WebCore::RenderBlock::lowestPosition): Update for ListHashSet
8081        (WebCore::RenderBlock::rightmostPosition): Update for ListHashSet
8082        (WebCore::RenderBlock::leftmostPosition): Update for ListHashSet
8083        (WebCore::RenderBlock::rightBottom): Update for ListHashSet
8084        * rendering/RenderBlock.h: Change m_positionedObjects from DeprecatedPtrList to ListHashSet
8085
80862007-09-09  Brady Eidson <beidson@apple.com>
8087
8088        Rubberstamped by Darin
8089
8090        pthread_main_np() is a Darwin thing, not a Mac thing
8091
8092        * loader/icon/IconDatabase.cpp:
8093        (WebCore::IconDatabase::IconDatabase):
8094
80952007-09-09  Holger Hans Peter Freyther  <zecke@selfish.org>
8096
8097        Build fix for Gtk+ by adding WebCore::callOnMainThread to the TemporaryLinkStubs.
8098
8099        * platform/gdk/TemporaryLinkStubs.cpp:
8100        (WebCore::callOnMainThread):
8101
81022007-09-08  George Staikos  <staikos@kde.org>
8103
8104        Reviewed by Olliej.
8105
8106        Separate out and implement FileSystem functions,  and stub out the
8107        icondatabase function for future implementation.
8108
8109        * WebCore.pro:
8110        * platform/qt/FileSystemQt.cpp: Added.
8111        (WebCore::fileExists):
8112        (WebCore::deleteFile):
8113        * platform/qt/TemporaryLinkStubs.cpp:
8114        * platform/qt/ThreadingQt.cpp: Added.
8115        (WebCore::callOnMainThread):
8116
81172007-09-08  Mark Rowe  <mrowe@apple.com>
8118
8119        Build fix for when ENABLE(ICONDATABASE) is not set.
8120
8121        * loader/icon/IconDatabaseNone.cpp:
8122        (WebCore::IconDatabase::~IconDatabase):
8123
81242007-09-08  Mark Rowe  <mrowe@apple.com>
8125
8126        More fixes for the Qt and Gtk builds.
8127
8128        * WebCore.pro: Update for file changes.
8129        * loader/icon/IconDatabase.cpp: Include errno.h for EDEADLK.
8130        * loader/icon/PageURLRecord.h:
8131
81322007-09-08  Justin Garcia  <justin.garcia@apple.com>
8133
8134        Backing my change back in without the changes to VisiblePosition::next 
8135        and previous that weren't necessary to fix the bug and were causing some
8136        layout test failures.  Most of the failures appeared to be fixes but I
8137        want more time to investigate and have to move to on to another task.
8138
8139        * editing/Selection.cpp:
8140        (WebCore::Selection::validate):
8141        * editing/visible_units.cpp:
8142        (WebCore::endOfWord):
8143
81442007-09-08  Brady Eidson  <beidson@apple.com>
8145
8146        Reviewed by Mark Rowe
8147
8148        Fix the _NSAutoreleaseNoPool() errors on launch - We were using NSFileManager on the secondary
8149        thread with no NSAutoreleasePool in place
8150
8151        * loader/icon/IconDatabase.cpp:
8152        (WebCore::IconDatabase::iconDatabaseSyncThread):
8153
81542007-09-08  Sam Weinig  <sam@webkit.org>
8155
8156        Add fix to the correct file.
8157
8158        * loader/icon/SQLDatabase.h:
8159        * loader/icon/SQLStatement.h:
8160
81612007-09-08  Sam Weinig  <sam@webkit.org>
8162
8163        Fix Windows build.
8164
8165        * loader/icon/SQLStatement.h: Disable boolean conversion warning.
8166
81672007-09-08  Brady Eidson  <beidson@apple.com>
8168
8169        Build fix for non-Mac platforms that use Icon Database
8170
8171        * loader/icon/IconDatabase.cpp:
8172        (WebCore::IconDatabase::IconDatabase): Apparently only Mac has the beauty that is pthread_main_np()
8173
81742007-09-08  Mark Rowe  <mrowe@apple.com>
8175
8176        Build fix.
8177
8178        * WebCore.xcodeproj/project.pbxproj: Headers used up in WebKit need to be be "private" rather than "project".
8179
81802007-09-08  Brady Eidson  <beidson@apple.com>
8181
8182        Reviewed by Darin
8183
8184        <rdar://problem/5434431> - Asynchronous Icon Database
8185
8186        The IconDatabase API was originally designed to be fully asynchronous - if an icon wasn't read in from disk
8187        when you asked for it, you would be notified when it was.
8188
8189        Safari 2 did writes on a background thread, but reads blocked the main thread.
8190
8191        The current WebCore implementation using SQLite attempted to get rid of the background thread by defering expensive 
8192        writes via timers, but falls short in moderate to extreme usage cases
8193
8194        Time to make the IconDatabase live up to it's fully asynchronous destiny.
8195
8196        This should -
8197        - Make the browser instantly usable while converting Safari 2 icons in the background occurs
8198        - Remedy any UI slowness/blocking when on slow network home directories
8199        - Remedy random UI slowness, pauses, and stutters do to random I/O occurring at the exact wrong time or under heavy
8200          disk usage from swapping or other apps on the system
8201        - Allow certain long-running procedures to be interruptible (Safari 2 import, reading icons in from disk when trying to quit, etc)
8202
8203        This will have a noticeable effect on current Safari 2 and Safari 3 beta browsers, including icons not appearing in bookmarks, history,
8204        or the location field the first time they're asked for, as current released Safari's don't properly listen for these async notifations.  
8205        The second time such a menu or view is brought up, the icon should be there.
8206
8207        Additionally this includes a SQLite schema change which will be a lot more efficient but will result in the loss of current SQLite icons.
8208        Converting from Safari 2 style icons will still work.
8209
8210        WebCore, welcome to multi-threadedness
8211
8212        * WebCore.exp:
8213        * WebCore.xcodeproj/project.pbxproj:
8214        * WebCore.vcproj/WebCore.vcproj:
8215
8216        * loader/DocumentLoader.cpp:
8217        (WebCore::DocumentLoader::iconLoadDecisionAvailable): Called when an Icon becomes available that was requested by this 
8218          DocumentLoader (to support the webView:didReceiveIcon: delegate call in WebKit)
8219        * loader/DocumentLoader.h:
8220
8221        * loader/FrameLoader.cpp:
8222        (WebCore::FrameLoader::iconLoadDecisionAvailable): Called from the DocumentLoaders who get notified - if the FrameLoader 
8223          ends up not caring because the WebView has transitioned to a new page, nothing occurs.  Otherwise, the FrameLoader possibly
8224          starts it Icon Loader and possibly sends the webView:didReceiveIcon: delegate call
8225        (WebCore::FrameLoader::startIconLoader): Instead of "Yes, load the icon now" or "No, don't load it" there is a third possibility -
8226          "You might be asked to load your icon later."  Add supporting logic for receiving this state, and being called a second time
8227          when the load decision is finally available.
8228        * loader/FrameLoader.h:
8229
8230        * loader/FrameLoaderClient.h: Added "registerForIconNotification" which is a way to tell WebViews "The icon you are interested in might
8231          become available via the generic WebIconDatabaseDidAddIconNotification instead of a targeted delegate call"
8232          A WebView can then receive the generic notification and pass on it's own targeted delegate call.
8233
8234        * loader/icon/IconDataCache.cpp: Removed.
8235        * loader/icon/IconDataCache.h: Removed.
8236
8237        * loader/icon/IconDatabase.cpp:
8238        (WebCore::urlForLogging): Cut a URL down in length for sane logging and debugging
8239        (WebCore::defaultClient): Return the default, empty IconDatabaseClient incase the API doesn't set one.
8240
8241        Following block of methods are for the Main thread's usage -
8242        (WebCore::IconDatabase::setClient):
8243        (WebCore::makeAllDirectories): Small optimization that checks to see if the entire path exists already, and doesn't try to loop
8244          through each patch component if the full path is already present
8245        (WebCore::IconDatabase::open): Makes all directories to the target path and kicks off the background thread - nothing more.
8246        (WebCore::IconDatabase::close): Signals the thread to quit and waits for it to do so
8247        (WebCore::IconDatabase::removeAllIcons): Purge the icon database
8248        (WebCore::IconDatabase::iconForPageURL):
8249        (WebCore::IconDatabase::readIconForPageURLFromDisk):
8250        (WebCore::IconDatabase::iconURLForPageURL):
8251        (WebCore::IconDatabase::defaultIcon):
8252        (WebCore::IconDatabase::retainIconForPageURL):
8253        (WebCore::IconDatabase::releaseIconForPageURL):
8254        (WebCore::IconDatabase::setIconDataForIconURL):
8255        (WebCore::IconDatabase::setIconURLForPageURL):
8256        (WebCore::IconDatabase::loadDecisionForIconURL): Determine if an icon loader should load now.  If the decision is "maybe later", then
8257          mark the DocumentLoader to be notified later when the final decision is available.
8258        (WebCore::IconDatabase::iconDataKnownForIconURL): Determine if the actual image data has been read from disk (or set from the loader) for 
8259          icon URL in question
8260        (WebCore::IconDatabase::setEnabled):
8261        (WebCore::IconDatabase::isEnabled):
8262        (WebCore::IconDatabase::setPrivateBrowsingEnabled):
8263        (WebCore::IconDatabase::isPrivateBrowsingEnabled):
8264        (WebCore::IconDatabase::delayDatabaseCleanup): Restore this method from a year ago, as asynchronous pruning of icons can now occur on a 
8265          background thread.
8266        (WebCore::IconDatabase::allowDatabaseCleanup):
8267        (WebCore::IconDatabase::checkIntegrityBeforeOpening):
8268        (WebCore::IconDatabase::pageURLMappingCount):
8269        (WebCore::IconDatabase::retainedPageURLCount):
8270        (WebCore::IconDatabase::iconRecordCount):
8271        (WebCore::IconDatabase::iconRecordCountWithData):
8272        (WebCore::IconDatabase::IconDatabase):
8273        (WebCore::IconDatabase::~IconDatabase):
8274        (WebCore::IconDatabase::notifyPendingLoadDecisions): Tell all the registered DocumentLoaders "Hey, we've read in all URL mappings from disk,
8275          so check to see if you are interested in any of them"
8276        (WebCore::IconDatabase::notifyPendingLoadDecisionsInternal):
8277        (WebCore::IconDatabase::wakeSyncThread): Wake the sync thread, if it is idle
8278        (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Even though we're on a background thread, we still defer writing out to disk during
8279          periods of high activity
8280        (WebCore::IconDatabase::syncTimerFired): Call wakeSyncThread()
8281
8282        Following block of methods may be used by either thread -
8283        (WebCore::IconDatabase::isOpen):
8284        (WebCore::IconDatabase::databasePath):
8285        (WebCore::IconDatabase::defaultDatabaseFilename):
8286        (WebCore::IconDatabase::getOrCreateIconRecord):
8287        (WebCore::IconDatabase::getOrCreatePageURLRecord):
8288
8289        Following block of methods are used by the secondary thread only -
8290        (WebCore::IconDatabase::importIconURLForPageURL): For the Safari 2 import procedure - write a URL mapping directly out to disk
8291        (WebCore::IconDatabase::importIconDataForIconURL): For the Safari 2 import procedure - write an Icon directly out to disk
8292        (WebCore::IconDatabase::shouldStopThreadActivity): To check and see if the thread should stop what it is doing now to do something
8293          more important (such as quit, or delete all icons)
8294        (WebCore::IconDatabase::iconDatabaseSyncThreadStart):
8295        (WebCore::IconDatabase::iconDatabaseSyncThread): Entry point for the background thread
8296        (WebCore::databaseVersionNumber):
8297        (WebCore::isValidDatabase):
8298        (WebCore::createDatabaseTables):
8299        (WebCore::IconDatabase::performOpenInitialization): Open and validate the SQLite database, making sure it's schema jives with what
8300          is expected
8301        (WebCore::IconDatabase::checkIntegrity):
8302        (WebCore::IconDatabase::performURLImport): Import all the Page URL -> Icon URL mappings from the database.  Done "1st thing" on startup,
8303          this is necessary to be able to give the loader decisions about whether or not it should load icons from the network
8304        (WebCore::IconDatabase::syncThreadMainLoop): Main loop - sleeps until woken up, then does a read cycle and a write cycle until both cycles
8305          do no work - then it goes back to sleep.
8306        (WebCore::IconDatabase::readFromDatabase): Reads icons from the database that clients are waiting on
8307        (WebCore::IconDatabase::writeToDatabase): Writes any changes page -> icon url mappings to disk, as well as any new image data that has 
8308          been received from the loader
8309        (WebCore::IconDatabase::pruneUnretainedIcons): Done only once, and only after the first write to the database, this procedure removes all
8310          icons and page URLs from disk that haven't been retained by any client.  Note that the prune can be delayed by utilizing delayDatabaseCleanup()
8311        (WebCore::IconDatabase::checkForDanglingPageURLs): Usually part of the prune procedure, prunes any pages who point to icons that no longer exist 
8312          in the database
8313        (WebCore::IconDatabase::removeAllIconsOnThread): Completely purge both the on-disk and in memory records of all icons
8314        (WebCore::IconDatabase::deleteAllPreparedStatements): Part of removeAllIcons and the thread cleanup procedure
8315        (WebCore::IconDatabase::cleanupSyncThread): Write out any last remaining writes to disk, close the database, and then end the thread
8316        (WebCore::IconDatabase::imported): Checks the DB to see if the Safari 2 import has occured
8317        (WebCore::IconDatabase::setImported): Sets the "Safari 2 imported" flag
8318        (WebCore::readySQLStatement):
8319        (WebCore::IconDatabase::setIconURLForPageURLInSQLDatabase): This and the following "SQLDatabase" suffixed methods are pretty self explanatory
8320        (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
8321        (WebCore::IconDatabase::removePageURLFromSQLDatabase):
8322        (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
8323        (WebCore::IconDatabase::addIconURLToSQLDatabase):
8324        (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
8325        (WebCore::IconDatabase::removeIconFromSQLDatabase):
8326        (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
8327        * loader/icon/IconDatabase.h:
8328
8329        * loader/icon/IconDatabaseClient.h: Added.
8330        (WebCore::IconDatabaseClient::~IconDatabaseClient):
8331        (WebCore::IconDatabaseClient::performImport): Perform the Safari 2 import, implemented by WebKit
8332        (WebCore::IconDatabaseClient::dispatchDidRemoveAllIcons): Send the API notification
8333        (WebCore::IconDatabaseClient::dispatchDidAddIconForPageURL): Ditto
8334
8335        * loader/icon/IconDatabaseNone.cpp: Best attempt to keep non icon-DB platforms building
8336        (WebCore::IconDatabase::defaultDatabaseFilename):
8337        (WebCore::IconDatabase::readIconForPageURLFromDisk):
8338        (WebCore::IconDatabase::loadDecisionForIconURL):
8339        (WebCore::IconDatabase::iconDataKnownForIconURL):
8340        (WebCore::IconDatabase::setIconURLForPageURL):
8341        (WebCore::IconDatabase::isEnabled):
8342        (WebCore::IconDatabase::delayDatabaseCleanup):
8343        (WebCore::IconDatabase::allowDatabaseCleanup):
8344        (WebCore::IconDatabase::setClient):
8345
8346        * loader/icon/IconRecord.cpp: Added.
8347        (WebCore::IconRecord::IconRecord): IconRecord used to be "IconDataCache" - it is merely a container for the url, timestamp, and image for a site icon.
8348          It is Shared, and therefore ref counted - PageURLRecords are the owning containers.  This is a tricky way to track how many page urls are retaining 
8349          an IconRecord and therefore tracking when we should try to get rid of one.
8350        (WebCore::IconRecord::~IconRecord):
8351        (WebCore::IconRecord::image):
8352        (WebCore::IconRecord::setImageData):
8353        (WebCore::IconRecord::loadImageFromResource):
8354        (WebCore::IconRecord::imageDataStatus): Return whether the image data hasn't been read yet, exists in memory, or is absent (site with no icon)
8355        (WebCore::IconRecord::snapshot): Returns a snapshot of the icon's data - url, timestamp, and image data - to be written to disk
8356        * loader/icon/IconRecord.h: Added.
8357        (WebCore::IconSnapshot::IconSnapshot):
8358        (WebCore::IconRecord::getTimestamp):
8359        (WebCore::IconRecord::setTimestamp):
8360        (WebCore::IconRecord::iconURL):
8361        (WebCore::IconRecord::retainingPageURLs):
8362
8363        * loader/icon/PageURLRecord.cpp: Added.
8364        (WebCore::PageURLRecord::PageURLRecord): PageURLRecord is fundamentally a pairing of a Page URL to an Icon.  It has manual ref counting for the sake
8365          of "retainIconForPageURL" and "releaseIconForPageURL", and can provide a quick snapshot of it's Page URL -> Icon URL mapping for writing to
8366          the database
8367        (WebCore::PageURLRecord::setIconRecord):
8368        (WebCore::PageURLRecord::snapshot):
8369        * loader/icon/PageURLRecord.h: Added.
8370        (WebCore::PageURLSnapshot::PageURLSnapshot):
8371        (WebCore::PageURLRecord::url):
8372        (WebCore::PageURLRecord::PageURLRecord::iconRecord):
8373        (WebCore::PageURLRecord::retain):
8374        (WebCore::PageURLRecord::release):
8375        (WebCore::PageURLRecord::retainCount):
8376
8377        * platform/SharedBuffer.cpp:
8378        (WebCore::SharedBuffer::copy): Added a deep copy method for the purposes of handing icon data across the thread boundary into the icon database
8379        * platform/SharedBuffer.h:
8380
8381        * platform/graphics/svg/SVGImageEmptyClients.h:
8382        (WebCore::SVGEmptyFrameLoaderClient::registerForIconNotification):
8383
8384        * platform/win/TemporaryLinkStubs.cpp:
8385        (WebCore::callOnMainThread): Only other IconDatabase utilizing platform - keep their build going
8386
83872007-09-07  David Kilzer  <ddkilzer@apple.com>
8388
8389        Reviewed by Timothy Hatcher.
8390
8391        Housekeeping.  No test required.
8392
8393        * bindings/objc/WebScriptObjectInternal.h: Removed unused file.
8394        * bindings/objc/WebScriptObjectPrivate.h: Updated copyright statement.
8395
83962007-09-07  Justin Garcia  <justin.garcia@apple.com>
8397        
8398        Rolling out my changes from r25421 while I investigate the layout test failures
8399        they caused.
8400        
8401        * editing/Selection.cpp:
8402        (WebCore::Selection::validate):
8403        * editing/VisiblePosition.cpp:
8404        (WebCore::VisiblePosition::next):
8405        (WebCore::VisiblePosition::previous):
8406        (WebCore::VisiblePosition::lastEditablePositionAtOrBefore):
8407        (WebCore::VisiblePosition::firstEditablePositionAtOrAfter):
8408        * editing/VisiblePosition.h:
8409        * editing/visible_units.cpp:
8410        (WebCore::endOfWord):
8411        (WebCore::previousWordPosition):
8412        (WebCore::nextWordPosition):
8413        (WebCore::startOfLine):
8414        (WebCore::endOfLine):
8415        (WebCore::previousSentencePosition):
8416        (WebCore::nextSentencePosition):
8417
84182007-09-05  Geoffrey Garen  <ggaren@apple.com>
8419
8420        Reviewed by Darin Adler, Maciej Stachowiak, Mark Rowe, Tim Hatcher.
8421        
8422        Fixed <rdar://problem/5326009> Make non-browser WebKit clients have no 
8423        memory cache, or a very tiny one
8424
8425        Added a client callback to notify WebKit when the first navigation has
8426        taken place. "Navigation" here means a transition from one page to 
8427        another that ends up in the back/forward list.
8428        
8429        WebKit Mac uses this notification to grow its cache model under certain
8430        circumstances.
8431        
8432        * loader/FrameLoader.cpp:
8433        (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
8434        * loader/FrameLoaderClient.h:
8435
8436        * platform/graphics/svg/SVGImageEmptyClients.h:
8437        (WebCore::SVGEmptyFrameLoaderClient::didPerformFirstNavigation): Ah, 
8438        SVGEmptyFrameLoaderClient, my old friend. 
8439
84402007-09-07  Adele Peterson  <adele@apple.com>
8441
8442        Reviewed by Dave Harrison.
8443
8444        Fix for <rdar://problem/5428427> Wrong characters are re-converted after doing reconversion with Kotoeri
8445
8446        Revert change for<rdar://problem/5279521> and add nil checks for the result of TextIterator::rangeFromLocationAndLength
8447        TextIterator::exitNode shouldn't require the m_lastTextNode to be true, but we can't change that without making the logic in _web_attributedStringFromRange match.
8448        We'll get that for free when we switch to use TextIterator in _web_attributedStringFromRange.
8449
8450        * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::applyBlockStyle): Added nil checks.
8451        * editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::indentRegion): ditto.
8452        * editing/TextIterator.cpp: (WebCore::TextIterator::exitNode): Re-added check for m_lastTextNode before emitting newline.
8453
84542007-09-07  Ada Chan  <adachan@apple.com>
8455
8456        <rdar://problem/5395928> Need to be able to handle context menu item selection by index
8457        
8458        Reviewed by Beth.
8459
8460        * platform/ContextMenu.h: Added method to retrieve context menu item by index
8461        * platform/win/ContextMenuWin.cpp:
8462        (WebCore::ContextMenu::ContextMenu): call setPlatformDescription() since that will handle
8463        adding the MNS_NOTIFYBYPOS style to the context menu.
8464        (WebCore::contextMenuItemByIdOrPosition): helper method so we don't have to duplicate code
8465        between itemWithAction() and itemAtIndex().
8466        (WebCore::ContextMenu::itemWithAction):
8467        (WebCore::ContextMenu::itemAtIndex):
8468        (WebCore::ContextMenu::setPlatformDescription): add MNS_NOTIFYBYPOS style to the context menu
8469        so we will get notified by menu position through WM_MENUCOMMAND when the item is selected.
8470
84712007-09-07  Justin Garcia  <justin.garcia@apple.com>
8472
8473        Reviewed by Darin.
8474        
8475        <rdar://problem/5057506> Double-clicking after ToDo content doesn't select the paragraph break
8476        
8477        * editing/Selection.cpp:
8478        (WebCore::Selection::validate):
8479        Moved the code that moves across a paragraph boundary
8480        when expanding selections by word granularity from
8481        endOfWord to here.
8482        In the word and paragraph granularity cases, if the 
8483        end of the selection is at the end of the last paragraph 
8484        in the last cell of a block table, expand it so that 
8485        it ends at the start of the paragraph after the table, 
8486        instead of just after the table, so that ToDo content 
8487        gets the same double/tripled click behavior that normal 
8488        paragraphs get (added two testcases).
8489        When expanding the selection to include paragraph
8490        breaks, pass VisiblePosition::next true so that it
8491        doesn't change editability.
8492        * editing/VisiblePosition.cpp:
8493        (WebCore::VisiblePosition::next): Renamed the bool because it's now also
8494        used to keep non-editable positions non-editable.
8495        (WebCore::VisiblePosition::previous): Ditto.
8496        (WebCore::VisiblePosition::lastPositionWithSameEditabilityAtOrBefore):
8497        Renamed this function and made it also work with non-editable positions.
8498        (WebCore::VisiblePosition::firstPositionWithSameEditabilityAtOrAfter):
8499        Ditto.
8500        * editing/VisiblePosition.h:
8501        * editing/visible_units.cpp:
8502        (WebCore::endOfWord): Called the renamed function.
8503        (WebCore::previousWordPosition): Ditto.
8504        (WebCore::nextWordPosition): Ditto.
8505        (WebCore::startOfLine): Ditto.
8506        (WebCore::endOfLine): Ditto.
8507        (WebCore::previousSentencePosition): Ditto.
8508        (WebCore::nextSentencePosition): Ditto.
8509
85102007-09-07  Brady Eidson  <beidson@apple.com>
8511
8512        Reviewed by Sam
8513
8514        <rdar://problem/5089241> - ASSERT and other funky effects in IconLoader with large 404 pages
8515
8516        There were two problems:
8517        1 - I originally didn't expect SubresourceLoader to keep pulling in data after it received a 404 response,
8518            but if the server sends back a complex 404 page, the loader did just that.  That could result in the 
8519            IconLoader "finishing" twice
8520        2 - In this case, the long messy 404 page would be committed to the database as image data.  This would 
8521            result in wasted space on disk, wasted space in RAM, and wasting processor time trying to parse 50k+
8522            of HTML as image data
8523
8524        Fix is two parts - 1, monitor the "m_loadIsInProgress" flag and 2, make ::finishLoading() take an actual 
8525        SharedBuffer argument that is what should be committed to the database so the ResourceHandle is unnecessary
8526
8527        * loader/icon/IconLoader.cpp:
8528        (WebCore::IconLoader::didReceiveResponse): If the response is not valid, commit null data 
8529        (WebCore::IconLoader::didFail): If we've already finished loading once (the 404 response), don't
8530          finish again!
8531        (WebCore::IconLoader::didFinishLoading): Ditto
8532        (WebCore::IconLoader::finishLoading): Take a SharedBuffer argumnt as the actual data to commit
8533        * loader/icon/IconLoader.h: Add a SharedBuffer arg to ::finishLoading()
8534
85352007-09-07  Brady Eidson  <beidson@apple.com>
8536
8537        Reviewed by Darin
8538
8539        Inline the in-header definitions for non-Mac platforms
8540
8541        * platform/AutodrainedPool.h:
8542        (WebCore::AutodrainedPool::AutodrainedPool):
8543        (WebCore::AutodrainedPool::~AutodrainedPool):
8544        (WebCore::AutodrainedPool::cycle):
8545
85462007-09-07  Brady Eidson  <beidson@apple.com>
8547
8548        Reviewed by Darin
8549
8550        Add some AutoreleasePool and Threading utilities in preparation for the multi-threaded
8551        fix for <rdar://problem/5434431>
8552
8553        AutodrainedPool wraps an NSAutoreleasePool and tracks a "cycle" count.  This allows clients
8554        in WebCore to simply call ::cycle() and after a preset number of iterations the pool will drain
8555        and recreate the underlying NSAutoreleasePool
8556   
8557        Threading utilities include C++ wrappers for pthread mutexes and conditions, as well as a generic
8558        "callOnMainThread()" function for any non-main thread to use.
8559
8560        * platform/AutodrainedPool.h: Added.  
8561        (WebCore::AutodrainedPool::AutodrainedPool): Empty implementations for all non-mac platforms
8562        (WebCore::AutodrainedPool::~AutodrainedPool): ditto
8563        (WebCore::AutodrainedPool::cycle): ditto
8564        * platform/mac/AutodrainedPool.mm: Added.
8565        (WebCore::AutodrainedPool::AutodrainedPool): 
8566        (WebCore::AutodrainedPool::~AutodrainedPool):
8567        (WebCore::AutodrainedPool::cycle): Keep track of number of cycles, and drain/recreate the pool if the
8568          cycle limit is hit
8569
8570        * platform/Threading.h: Added.
8571        (WebCore::Mutex::Mutex): C++ wrapper for pthread_mutex
8572        (WebCore::Mutex::~Mutex):
8573        (WebCore::Mutex::lock):
8574        (WebCore::Mutex::tryLock):
8575        (WebCore::Mutex::unlock):
8576        (WebCore::MutexLocker::MutexLocker): Handles automatically locking/unlocking a Mutex (for early returns
8577          from a function, for example)
8578        (WebCore::MutexLocker::~MutexLocker):
8579        (WebCore::ThreadCondition::ThreadCondition): C++ wrapper for pthread_condition
8580        (WebCore::ThreadCondition::~ThreadCondition):
8581        (WebCore::ThreadCondition::wait):
8582        (WebCore::ThreadCondition::signal):
8583        (WebCore::ThreadCondition::broadcast):
8584        * platform/mac/Threading.mm: Added.
8585        (-[WebCoreFunctionWrapper initWithFunction:]): Obj-C implementation of "callOnMainThread"
8586        (-[WebCoreFunctionWrapper _call]):
8587        (WebCore::callOnMainThread):
8588
85892007-09-07  George Staikos  <staikos@kde.org>
8590
8591        Fix typo.
8592
8593        * loader/ProgressTracker.h:
8594        (WebCore::ProgressTracker::totalPageAndResourceBytesToLoad):
8595
85962007-09-07  Qing Zhao  <qing@staikos.net>
8597
8598        Reviewed by Anders and George.
8599
8600        Add accessors for these two variables.
8601
8602        * loader/ProgressTracker.h:
8603        (WebCore::ProgressTracker::totalPageAndResourseBytesToLoad):
8604        (WebCore::ProgressTracker::totalBytesReceived):
8605
86062007-09-06  Tristan O'Tierney  <tristan@apple.com>
8607
8608        Reviewed by Maciej Stachowiak.
8609        
8610        <rdar://problem/5333496> Back button stopped working on sfgate.com (14957)
8611        
8612        This fix is specifically targted to address sfgate.com and reuters.com with minimal
8613        impact to other areas of the frameloader.  It does not cause any regression tests to fail.
8614        I've added two layout tests: One to detect this particular bug, and one to address
8615        a secondary issue: if an iframe navigation occurs during onload by a timeout an
8616        additional history item is added, similarly to firefox.  We tried to match firefox
8617        more than IE with this fix but did gain a little bit of IE compatability.
8618
8619        Tests: http/tests/navigation/onload-navigation-iframe-timeout.html
8620               http/tests/navigation/onload-navigation-iframe.html
8621
8622        * dom/Document.h:
8623        (WebCore::Document::processingLoadEvent):
8624        Return the m_processingLoadEvent boolean so FrameLoader knows
8625        that the document is in the middle of calling <body onload>
8626        
8627        * html/HTMLFrameOwnerElement.cpp:
8628        (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
8629        * html/HTMLFrameOwnerElement.h:
8630        (WebCore::HTMLFrameOwnerElement::createdByParser):
8631        (WebCore::HTMLFrameOwnerElement::setCreatedByParser):
8632        Added support for a new member variable of frame elements: m_createdByParser.
8633        This lets us specifically target the fix to only iframes created via JS
8634        and not in-document.
8635        
8636        * loader/FrameLoader.cpp:
8637        (WebCore::FrameLoader::FrameLoader):
8638        Initialize m_navigationDuringLoad to false
8639        
8640        (WebCore::FrameLoader::provisionalLoadStarted):
8641        Determine if the load we're about to start is occuring during
8642        an onload.
8643        
8644        (WebCore::FrameLoader::updateHistoryForStandardLoad):
8645        If the current frameloader is for a child frame, and the navigation is occuring
8646        during an onload update the current history item rather than adding a new one.
8647        
8648        * loader/FrameLoader.h:
8649        Added a new member variable, m_navigationDuringLoad to track
8650        the navigation status during the on load, rather than trying to determine
8651        the status after (which is nearly impossible due to a new runloop spin).
8652
86532007-09-06  David Kilzer  <ddkilzer@apple.com>
8654
8655        Reviewed by Darin.
8656
8657        The implementation of BackForwardList::clearPageCache() was removed in r21793.
8658        It's now safe to remove it from the header.
8659
8660        * history/BackForwardList.h: Removed clearPageCache().
8661
86622007-09-06  Anders Carlsson  <andersca@apple.com>
8663
8664        Reviewed by Ada.
8665
8666        <rdar://problem/5457844>
8667        Crash when using mouse wheel with plug-ins disabled.
8668
8669        Null check the widget.
8670
8671        * page/EventHandler.cpp:
8672        (WebCore::EventHandler::handleWheelEvent):
8673
86742007-09-06  Anders Carlsson  <andersca@apple.com>
8675
8676        Reviewed by Mitz.
8677
8678        Small tweak.
8679        
8680        * plugins/win/PluginStreamWin.cpp:
8681        (WebCore::PluginStreamWin::startStream):
8682
86832007-09-06  Anders Carlsson  <andersca@apple.com>
8684
8685        Reviewed by Adam and Steve.
8686
8687        <rdar://problem/5459321>
8688        ADOBE: Safari 3 on Windows is passing bogus values in stream->headers in NPP_NewStream, causing Flash Player to crash.
8689        
8690        Serialize the headers into a stream and pass it to NPP_NewStream in stream->headers.
8691        
8692        * plugins/win/PluginStreamWin.cpp:
8693        (WebCore::PluginStreamWin::startStream):
8694        * plugins/win/PluginStreamWin.h:
8695
86962007-09-06  Darin Adler  <darin@apple.com>
8697
8698        Reviewed by Hyatt.
8699
8700        - fix http://bugs.webkit.org/show_bug.cgi?id=15153
8701          REGRESSION: Assertion failure in FrameView::scheduleRelayout() (m_frame->view() == this)
8702
8703        Back out the willRemove() part of the previous patch.
8704        It was incorrect and not needed to fix the bug anyway.
8705
8706        * dom/Document.cpp: (WebCore::Document::detach): Remove willRemove().
8707
8708        * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Put the willRemove() call
8709        back here where it was originally before the previous fix.
8710
8711        * history/CachedPage.cpp: (WebCore::CachedPage::clear):
8712        * page/Frame.cpp:
8713        (WebCore::Frame::setView):
8714        (WebCore::Frame::setDocument):
8715        Added FIXMEs about the fact that we call detach() on the document but not willRemove().
8716
87172007-09-05  Timothy Hatcher  <timothy@apple.com>
8718
8719        Reviewed by Darin.
8720
8721        Changed the blocked exception log message to match AppKit's blocked exception message.
8722
8723        * platform/mac/BlockExceptions.mm:
8724        (ReportBlockedObjCException):
8725
87262007-09-06  Darin Adler  <darin@apple.com>
8727
8728        Reviewed by Hyatt.
8729
8730        - <rdar://problem/5457865> REGRESSION (9A527): Safari crashes when opening a page
8731          that immediately redirects to a PDF
8732
8733        I don't know how to make an automated test that trips over this.
8734
8735        The immediate cause of this regression was making a back/forward list entry in
8736        this case. Earlier, the quick redirect would not results in a separate entry.
8737        That's possibly a bug too, but it's better to fix the crash first.
8738
8739        The page cache was putting the document into a strange state: Still attached but
8740        with the renderer set to 0. There was no good reason to do this, so got rid of it.
8741        Moved the responsibility to the caller of not calling detach() when moving into
8742        the page cache. This is more of a frame loader thing than a document thing.
8743
8744        * dom/Document.cpp: (WebCore::Document::detach): Added assertions that this is
8745        only called on a document that's attached and not in the page cache. Also moved
8746        the call to willRemove in here, so that callers can't make the mistake of not
8747        calling that function. Removed the incorrectly-positioned code that made this
8748        function do less if it was called on a document in the page cache.
8749
8750        * history/CachedPage.cpp: (WebCore::CachedPage::clear): Removed the code to handle
8751        a document with a renderer of 0. There was no need to put the document into this
8752        state. Any document in the page cache will always be "attached".
8753
8754        * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Added a check to prevent
8755        from calling an unnecessary cancelParsing() on a document that's in the page cache
8756        and guard the call to detach() with a check of attached(), like all other calls to
8757        detach() on DOM objects.
8758
8759        * page/Frame.cpp:
8760        (WebCore::Frame::setView): Added a missing check of attached(), like all other
8761        calls to detach() on DOM objects. Also added code to not call detach() on the
8762        document when it's in the page cache.
8763        (WebCore::Frame::setDocument): This call site already had the attached() check,
8764        but was missing the page cache check.
8765
87662007-09-05  David Harrison  <harrison@apple.com>
8767
8768        Reviewed by Darin.
8769
8770        Follow up on my fix for <rdar://problem/5306171>.
8771        My first patch (r25373) broke svg/custom/stroke-width-click.svg.
8772
8773        * editing/TextIterator.cpp:
8774        (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
8775        Add currPos.isNotNull() check because positions in non-html content (like svg)
8776        do not have visible positions, and we don't want to emit for them either.
8777
87782007-09-06  Mitz Pettel  <mitz@webkit.org>
8779
8780        Reviewed by Adam Roben.
8781
8782        - fix http://bugs.webkit.org/show_bug.cgi?id=14685
8783          <rdar://problem/5349755> text-align affects <select> button but not its drop-down menu
8784
8785        * platform/PlatformString.h:
8786        (WebCore::String::defaultWritingDirection):
8787        * platform/StringImpl.cpp:
8788        (WebCore::StringImpl::defaultWritingDirection): Moved textDirectionForParagraph()
8789        from RenderMenuList.cpp here.
8790        * platform/StringImpl.h:
8791        * platform/win/PopupMenuWin.cpp:
8792        (WebCore::PopupMenu::itemWritingDirectionIsNatural): Changed to return 'true'.
8793        (WebCore::PopupMenu::paint): Changed to use natural directionality for menu
8794        items.
8795        * rendering/RenderMenuList.cpp:
8796        (WebCore::RenderMenuList::adjustInnerStyle): Use defaultWritingDirection.
8797
87982007-09-06  Maciej Stachowiak  <mjs@apple.com>
8799
8800        Reviewed by Oliver Hunt.
8801
8802        - fixed <rdar://problem/5455457> REGRESSION (9A527-9A535): Colloquy crash on launch in WebCoreScriptDebugger initWithDelegate (with announce.js plug-in installed)
8803
8804        * page/mac/FrameMac.mm:
8805        (WebCore::Frame::windowScriptObject): Ensure that -[WebView
8806        windowScriptObject] and -[WebFrame windowObject] return null until
8807        the windowScriptObjectAvailable: delegate method is sent.
8808
88092007-09-05  David Harrison  <harrison@apple.com>
8810
8811        Reviewed by Kevin Decker.
8812
8813        <rdar://problem/5306171> Mail: The first return after an attachment in multipart/mixed message is lost
8814
8815        Test added: editing/selection/toString-1.html
8816        
8817        Source changes:
8818        * editing/TextIterator.cpp:
8819        (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
8820        - Remove outdated and erroneous check for m_lastTextNode.
8821        - Fix VisiblePosition check to look for line diff. Simple position diff gives the
8822        wrong answer when the start is table/0 and the current is the first position
8823        inside the content of the table.
8824
88252007-09-04  Brett Wilson  <brettw@chromium.org>
8826
8827        Reviewed by Maciej Stachowiak.
8828
8829        http://bugs.webkit.org/show_bug.cgi?id=15072
8830        Bug 15072: Fix ImageDecoder.cpp to not copy incoming data
8831
8832        Change ImageDecoder::setData to take a SharedBuffer*.
8833
8834        * platform/graphics/cairo/ImageSourceCairo.cpp:
8835        (WebCore::ImageSource::setData):
8836        * platform/image-decoders/ImageDecoder.h:
8837        (WebCore::RGBA32Buffer::bytes):
8838        (WebCore::RGBA32Buffer::height):
8839        (WebCore::ImageDecoder::setData):
8840        * platform/image-decoders/gif/GIFImageDecoder.cpp:
8841        (WebCore::GIFImageDecoder::setData):
8842        (WebCore::GIFImageDecoder::frameCount):
8843        (WebCore::GIFImageDecoder::decode):
8844        (WebCore::GIFImageDecoder::decodingHalted):
8845        (WebCore::GIFImageDecoder::initFrameBuffer):
8846        * platform/image-decoders/gif/GIFImageDecoder.h:
8847        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
8848        (WebCore::JPEGImageDecoder::setData):
8849        (WebCore::JPEGImageDecoder::decode):
8850        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
8851        * platform/image-decoders/png/PNGImageDecoder.cpp:
8852        (WebCore::PNGImageDecoder::setData):
8853        (WebCore::PNGImageDecoder::decode):
8854        (WebCore::PNGImageDecoder::headerAvailable):
8855        (WebCore::PNGImageDecoder::rowAvailable):
8856        * platform/image-decoders/png/PNGImageDecoder.h:
8857
88582007-09-04  David Hyatt  <hyatt@apple.com>
8859
8860        Fix for <rdar://problem/5271213>, resizing iChat window is slower than in
8861        Tiger. This patch implements a fast scaling mode that can be used by
8862        WebViews, e.g., during window resizing.
8863
8864        Reviewed by John Sullivan
8865
8866        * WebCore.exp:
8867        * WebCore.xcodeproj/project.pbxproj:
8868        * page/Frame.cpp:
8869        (WebCore::FramePrivate::FramePrivate):
8870        * page/Page.cpp:
8871        (WebCore::Page::Page):
8872        (WebCore::Page::inLowQualityImageInterpolationMode):
8873        (WebCore::Page::setInLowQualityImageInterpolationMode):
8874        * page/Page.h:
8875        * platform/graphics/GraphicsContext.cpp:
8876        (WebCore::GraphicsContext::drawImage):
8877        * platform/graphics/GraphicsContext.h:
8878        (WebCore::GraphicsContext::setUseLowQualityImageInterpolation):
8879        (WebCore::GraphicsContext::useLowQualityImageInterpolation):
8880        * platform/graphics/cg/GraphicsContextCG.cpp:
8881        (WebCore::GraphicsContext::setUseLowQualityImageInterpolation):
8882        (WebCore::GraphicsContext::useLowQualityImageInterpolation):
8883        * rendering/RenderImage.cpp:
8884        (WebCore::RenderImage::paint):
8885
88862007-09-04  Brady Eidson  <beidson@apple.com>
8887
8888        Reviewed by Adam
8889
8890        Some SQLite tweaks for debugging
8891        -In debug builds, track the thread that opened the database and enforce that any statements
8892         that operate on the SQLDatabase do so from the thread that opened it
8893        -Track whether or not a transaction is in progress for the SQLDatabase to find cases where
8894         someone opens a new transaction while there is still one outstanding (a SQLite logic error)
8895
8896        * loader/icon/SQLDatabase.cpp:
8897        (WebCore::SQLDatabase::SQLDatabase): 
8898        (WebCore::SQLDatabase::open): Track the opening thread.  Also, return false if the DB failed to
8899          open instead of trying to run a PRAGMA on it!
8900        (WebCore::SQLDatabase::close): Reset the opening thread
8901        * loader/icon/SQLDatabase.h:
8902        (WebCore::SQLDatabase::transactionInProgress): 
8903        (WebCore::SQLDatabase::sqlite3Handle): For access to the raw sqlite3* handle to do a thread
8904          safety check
8905
8906        * loader/icon/SQLStatement.cpp:
8907        (WebCore::SQLStatement::prepare): Use the new sqlite3Handle accessor
8908        (WebCore::SQLStatement::step): Ditto
8909
8910        * loader/icon/SQLTransaction.cpp:
8911        (WebCore::SQLTransaction::SQLTransaction): Removed the c'tor form that could automatically
8912          begin the transaction - never used and shouldn't be in practice!
8913        (WebCore::SQLTransaction::begin): Maintain the transaction-in-progress flag on the DB
8914        (WebCore::SQLTransaction::commit): Ditto
8915        (WebCore::SQLTransaction::rollback): Ditto
8916        * loader/icon/SQLTransaction.h:
8917
89182007-09-04  David Harrison  <harrison@apple.com>
8919
8920        Reviewed by Maciej and John.
8921
8922        <rdar://problem/5452675> CrashTracer: [USER] 10 crashes in Mail at com.apple.WebCore: WebCore::Node::nodeIndex const + 6
8923
8924        * editing/InsertParagraphSeparatorCommand.cpp:
8925        (WebCore::InsertParagraphSeparatorCommand::doApply):
8926        Adjust pos to pos.downstream() after the refNode is calculated, but before the insertion. Doing it earlier
8927        undid the logic of positionAvoidingSpecialElementBoundary(). The downstream is still needed just to set the
8928        ending selection.
8929
89302007-09-04  Antti Koivisto  <antti@apple.com>
8931
8932        Reviewed by Maciej.
8933        
8934        Fix <rdar://problem/5452112>
8935        REGRESSION: Initially focused textfield on www.mac.com login page has no insertion point, and doesn't accept typed characters
8936        
8937        Use updateLayoutIgnorePendingStylesheets() instead of updateLayout(). We need to have rendering to set input focus.
8938
8939        Test: fast/forms/focus-style-pending.html
8940
8941        * dom/Element.cpp:
8942        (WebCore::Element::focus):
8943
89442007-09-04  Girish Ramakrishnan  <girish@trolltech.com>
8945
8946        Reviewed by Simon.
8947
8948        Fixed Qt build on Windows
8949
8950        * html/HTMLFormElement.cpp:
8951        (WebCore::pathGetFilename):
8952
89532007-09-03  David Harrison  <harrison@apple.com>
8954
8955        Reviewed by Kevin Decker.
8956
8957        <rdar://problem/5456785> REGRESSION (r15963-r15970): Heading text not placed in VoiceOver Item Chooser (15132)
8958
8959        * bridge/mac/WebCoreAXObject.mm:
8960        (-[WebCoreAXObject title]):
8961        For headings, return the text under the element instead of nil.
8962
89632007-08-20  Oleg Sukhodolsky <son.two@gmail.com>
8964
8965        Reviewed by Mark.
8966
8967        WebKitQt/WebCoreSupport should not be added to INCLUDEPATH for gdk-port
8968
8969        * WebCore.pro:
8970
89712007-09-03  Mark Rowe  <mrowe@apple.com>
8972
8973        Reviewed by Tim Hatcher.
8974
8975        <rdar://problem/5452164> Production build with in symbols directory has no debug info
8976
8977        Enable debug symbol generation on all build configurations.  Production builds are stripped
8978        of symbols by Xcode during deployment post-processing.
8979
8980        * Configurations/Base.xcconfig:
8981        * WebCore.xcodeproj/project.pbxproj:
8982
89832007-09-02  Brady Eidson  <beidson@apple.com>
8984
8985        Reviewed by John Sullivan and Mark Rowe
8986
8987        Groundwork for support for monitoring IconDatabase in-memory statistics
8988
8989        * WebCore.exp:
8990        * loader/icon/IconDatabase.cpp:
8991        (WebCore::IconDatabase::pageURLMappingCount): Stub for now
8992        (WebCore::IconDatabase::retainedPageURLCount): Ditto
8993        (WebCore::IconDatabase::iconRecordCount): Ditto
8994        (WebCore::IconDatabase::iconRecordCountWithData): Ditto
8995        * loader/icon/IconDatabase.h:
8996
89972007-09-02  Mark Rowe  <mrowe@apple.com>
8998
8999        Reviewed by Antti.
9000
9001        <rdar://problem/5454704> WebKit seems to get too-narrow widths for "Monotype Corsiva", so lays out incorrectly
9002
9003        * platform/mac/FontDataMac.mm:
9004        (WebCore::FontData::determinePitch): Work around NSFont incorrectly reporting Monotype Corsiva as fixed pitch.
9005
90062007-09-01  Darin Adler  <darin@apple.com>
9007
9008        - rolled out fix for bug 12988 because it broke getElementById in a layout test
9009          I'm working on a new fix.
9010
9011        * dom/Document.cpp: Rolled out.
9012
90132007-09-01  Oliver Hunt  <oliver@apple.com>
9014
9015        Reviewed by Sam.
9016
9017        <rdar://problem/5344848> IME is incorrectly used for key events when on non-editable regions
9018
9019        Adding a new EditorClient method so it is possible to inform WebKit of focus changes.
9020        Also added new virtual method Node::shouldUseInputMethod to allow us to trivially check
9021        whether an input method should be used when processing input for the currently focused
9022        Node.
9023
9024        * bridge/EditorClient.h:
9025        * dom/Node.cpp:
9026        (WebCore::Node::shouldUseInputMethod):
9027        * dom/Node.h:
9028        * html/HTMLInputElement.cpp:
9029        (WebCore::HTMLInputElement::shouldUseInputMethod):
9030        * html/HTMLInputElement.h:
9031        * html/HTMLTextAreaElement.cpp:
9032        (WebCore::HTMLTextAreaElement::shouldUseInputMethod):
9033        * html/HTMLTextAreaElement.h:
9034        * page/FocusController.cpp:
9035        (WebCore::FocusController::setFocusedNode):
9036        * platform/graphics/svg/SVGImageEmptyClients.h:
9037        (WebCore::SVGEmptyEditorClient::setInputMethodState):
9038
90392007-09-01  Rob Buis  <buis@kde.org>
9040
9041        Reviewed by Darin.
9042
9043        http://bugs.webkit.org/show_bug.cgi?id=12988
9044        First element (in document order) is not returned when other duplicate ID-ed elements were created first
9045
9046        Reset the element id cache when id's are added or removed and there
9047        are duplicates for that id.
9048
9049        Tests: fast/dom/duplicate-ids-document-order.html
9050
9051        * dom/Document.cpp:
9052        (WebCore::Document::getElementById):
9053        (WebCore::Document::addElementById):
9054        (WebCore::Document::removeElementById):
9055
90562007-09-01  Rob Buis  <buis@kde.org>
9057
9058        Reviewed by Darin.
9059
9060        http://bugs.webkit.org/show_bug.cgi?id=15083
9061        Some symbols in WebKit do not need to be exported
9062
9063        Do not export these symbols.
9064
9065        * dom/QualifiedName.cpp:
9066        (WebCore::hashComponents):
9067        * dom/XMLTokenizer.cpp:
9068        (WebCore::toString):
9069        (WebCore::getTokenizer):
9070        * history/HistoryItem.cpp:
9071        (WebCore::defaultNotifyHistoryItemChanged):
9072        * platform/Arena.cpp:
9073        (WebCore::CeilingLog2):
9074        * platform/graphics/Color.cpp:
9075        (WebCore::calcHue):
9076        * platform/graphics/Path.cpp:
9077        (WebCore::pathLengthApplierFunction):
9078        * platform/graphics/cg/PathCG.cpp:
9079        (WebCore::CGPathToCFStringApplierFunction):
9080        (WebCore::CFStringFromCGPath):
9081        * rendering/RenderText.cpp:
9082        (WebCore::isSpaceAccordingToStyle):
9083
90842007-08-31  Alice Liu  <alice.liu@apple.com>
9085
9086        Reviewed by Tim Hatcher.
9087
9088        Fixed <rdar://problem/5420682> Mail crashes at WebCore::InsertLineBreakCommand::doApply() after dropping a selected image over container's close box
9089
9090        * editing/DeleteButtonController.cpp:
9091        (WebCore::DeleteButtonController::show):
9092        Factored out the code in ::show() that created and styled the elements of the Deletion UI
9093
9094        (WebCore::DeleteButtonController::createDeletionUI):
9095        Neglecting to move the append of the deletionUI elements into the same clause that handles the creation
9096        of them ended up creating multiple elements at were repeatedly appended to the target, resulting in a 
9097        bloated table deletion UI which was slow to show and hide. 
9098
9099        * editing/DeleteButtonController.h:
9100        (WebCore::DeleteButtonController::enabled):
9101        Restore this function to how it used to be pre-r25305, sans asserts
9102
9103        * editing/EditCommand.cpp:
9104        Add disable/enable sandwich when undoing/redoing commands too
9105        (WebCore::EditCommand::unapply):
9106        (WebCore::EditCommand::reapply):
9107
91082007-08-31  Antti Koivisto  <antti@apple.com>
9109
9110        Reviewed by Anders.
9111
9112        Fix <rdar://problem/5452943>
9113        REGRESSION (r25283): Reproducible crash in HTMLObjectElement::getInstance under guard malloc
9114        
9115        Calling updateLayoutIgnorePendingStylesheets() may do arbitrary things to render tree so
9116        no RenderObjects can be cached over it.
9117
9118        * html/HTMLEmbedElement.cpp:
9119        (WebCore::findWidgetRenderer):
9120        (WebCore::HTMLEmbedElement::getInstance):
9121        * html/HTMLObjectElement.cpp:
9122        (WebCore::HTMLObjectElement::getInstance):
9123
91242007-08-31  Anders Carlsson  <andersca@apple.com>
9125
9126        Reviewed by Mitz.
9127
9128        <rdar://problem/5443936>
9129        Crash after QT movie completes playback at apple.com/imac
9130        
9131        If the plug-in or one of its children have focus, set it to NULL to prevent the web view window from getting the focus, 
9132        which can cause a layout to happen while in HTMLObjectElement::detach. (This is what we do on the Mac).
9133        
9134        * plugins/win/PluginViewWin.cpp:
9135        (WebCore::PluginViewWin::setParent):
9136
91372007-08-30  Adele Peterson  <adele@apple.com>
9138
9139        Reviewed by Justin.
9140
9141        Fix for <rdar://problem/5450600> REGRESSION: can't paste in textfield if its in a body that has user-select:none set (affects widgets)
9142
9143        Test: editing/pasteboard/paste-plaintext-user-select-none.html
9144
9145        * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplacementFragment::insertFragmentForTestRendering):
9146          Copy the user-select style from the current selection node and apply it so it is considered during the test rendering.
9147          This is important since we recently changed user-select to be inherited.  When we consider valid VisiblePositions for the test rendering,
9148          we need to have the correct user-select value that will actually be used for the real insertion.
9149
91502007-08-31  Anders Carlsson  <andersca@apple.com>
9151
9152        Reviewed by Oliver.
9153
9154        <rdar://problem/5423939>
9155        http://bugs.webkit.org/show_bug.cgi?id=15013
9156        ASSERTION FAILED !m_inDestructor in WebCore::Shared<WebCore::PluginStreamWin>::ref() on Windows
9157        
9158        Protect the stream in case it's destroyed by the plug-in.
9159        
9160        * plugins/win/PluginStreamWin.cpp:
9161        (WebCore::PluginStreamWin::didReceiveData):
9162
9163a2007-08-31  Darin Adler  <darin@apple.com>
9164
9165        Reviewed by Anders.
9166
9167        - http://bugs.webkit.org/show_bug.cgi?id=15122
9168
9169        * editing/htmlediting.cpp: (WebCore::avoidIntersectionWithNode):
9170        Change assertion so that it only fires when actually modifying the selection.
9171        This isn't nearly as helpful, because the old assertion could catch potential
9172        problems in more cases, but it's not obvious how to do better.
9173
91742007-08-30  Oliver Hunt  <oliver@apple.com>
9175
9176        Reviewed by Adam.
9177        
9178        <rdar://problem/5430772> REGRESSION(303-310A5) list items do not show with mouse over on istweb.apple.com/quack.apple.com
9179        
9180        VC++ treats bitfields as signed members, so Node::m_styleChange would be
9181        sign extended if it was assigned the value FullStyleChange.  This caused
9182        style recalculation to stop propagating.  
9183        
9184        We work around this VC++ oddity by storing the enum as an unsigned, and
9185        casting back to StyleChangeType in the getter.
9186                
9187        Test: fast/css/hover-affects-child.html
9188
9189        * dom/Node.h:
9190        (WebCore::Node::styleChangeType):
9191
91922007-08-29  Justin Garcia  <justin.garcia@apple.com>
9193
9194        Reviewed by Darin.
9195
9196        <rdar://problem/5368833> 
9197        REGRESSION: Pasting a triple-clicked line of quoted text at the top of a message adds an extra, quoted line
9198
9199        * editing/CompositeEditCommand.cpp:
9200        (WebCore::CompositeEditCommand::insertParagraphSeparator): Added an option for
9201        using a plain div to hold the new paragraph, instead of a clone of the previous
9202        block.
9203        * editing/CompositeEditCommand.h:
9204        * editing/InsertParagraphSeparatorCommand.cpp: Ditto.
9205        (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): Ditto.
9206        (WebCore::InsertParagraphSeparatorCommand::doApply): Ditto.
9207        * editing/InsertParagraphSeparatorCommand.h:
9208        * editing/ReplaceSelectionCommand.cpp:
9209        (WebCore::ReplaceSelectionCommand::doApply): Use a default block element when creating
9210        new paragraphs, so that empty paragraphs don't contain the block style of the previous
9211        one.
9212        Don't expand collapsed brs at the end of inserted content, this was the root of the bug.
9213        We'd copy <blockquote>hello<br></blockquote><br class="Apple-interchange-newline">
9214        and get an extra paragraph.  The removed code used to make sure that if the copied 
9215        selection ends with a paragraph break that is represented in the copied markup by a 
9216        regular br (not an interchange newline br), that that paragraph break appears in the 
9217        pasted content, but shouldMergeEnd, which was introduced after this code was written, 
9218        now takes care of that.
9219        (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR): Inserted content should always
9220        displace placeholder brs, even if that inserted content ends with a br.
9221        * editing/markup.cpp:
9222        (WebCore::needInterchangeNewlineAfter): This code failed to add an interchange newline
9223        if the user copied <div>hello</div><br>, only don't add an interchange newline when
9224        copying ^hello<br>^<br>, because then the copied paragraph break will already be 
9225        represented in the copied markup by a br.
9226        (WebCore::createMarkup):
9227
92282007-08-30  David Harrison  <harrison@apple.com>
9229
9230        Reviewed by Darin.
9231
9232        <rdar://problem/5423900> Seed: safari crashes on submit feedback page in -[WebCoreAXObject isAttachment]
9233
9234        * bridge/mac/WebCoreAXObject.mm:
9235        (-[WebCoreAXObject isAttachment]):
9236        Add nil check since element could be detached.
9237
92382007-08-30  Mitz Pettel  <mitz@webkit.org>
9239
9240        Reviewed by Dave Hyatt.
9241
9242        - fix http://bugs.webkit.org/show_bug.cgi?id=13282
9243          <rdar://problem/5126392> REGRESSION (NativePopUp): Rightmost character cut off in pop-up menu
9244
9245        * rendering/RenderMenuList.cpp:
9246        (WebCore::RenderMenuList::updateOptionsWidth): When measuring option text, use
9247        the same WebCore run rounding behavior that is used to draw it in the popup button.
9248
92492007-08-30  Riku Voipio  <riku.voipio@iki.fi>
9250
9251        Reviewed by Dave Kilzer.
9252
9253        Better ARM defines.
9254
9255        * platform/DeprecatedString.h: Update comments to reflect the
9256        change and update test to fit changes to Platform.h.
9257
92582007-08-30  Darin Adler  <darin@apple.com>
9259
9260        Reviewed by Tim Hatcher.
9261
9262        - fix http://bugs.webkig.org/show_bug.cgi?id=14981
9263          DEBUG builds of WebKit hang videwing Yahoo! Mail messages
9264          with ~5 MB text attachment
9265
9266        * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::checkConsistency):
9267        * rendering/RenderFlow.cpp: (WebCore::RenderFlow::checkConsistency):
9268        * rendering/RenderText.cpp: (WebCore::RenderText::checkConsistency):
9269        Put the actual consistency check inside an ifdef. If you need it you can
9270        turn it on. There's still some function call overhead in builds that don't
9271        have NDEBUG defined, but that's worth it so we can turn this on and off
9272        without recompiling the world.
9273
9274        - small code style improvement to recently changed function
9275
9276        * editing/TextIterator.cpp: (WebCore::plainTextToMallocAllocatedBuffer):
9277        Use a typedef and make_pair to make the code dealing with the pair simpler to read.
9278
92792007-08-30  Simon Hausmann  <hausmann@kde.org>
9280
9281        Reviewed by Zack.
9282
9283        Fix Qt/Gdk build. gcc on Linux at least doesn't like initializing
9284        variables between jumps with goto ("jump to label foo crosses
9285        initialization of bar").
9286
9287        * editing/TextIterator.cpp:
9288        (WebCore::plainTextToMallocAllocatedBuffer):
9289
92902007-08-30  Darin Adler  <darin@apple.com>
9291
9292        Reviewed by Antti.
9293 
9294        - fix <rdar://problem/5423270> CrashTracer: [USER] 1 crash in Safari at com.apple.WebCore:
9295          WebCore::plainTextToMallocAllocatedBuffer + 762
9296
9297        * editing/TextIterator.cpp: (WebCore::plainTextToMallocAllocatedBuffer):
9298        Check for a malloc failure and exit the function if it failed.
9299
93002007-08-29  Anders Carlsson  <andersca@apple.com>
9301
9302        Reviewed by Oliver.
9303
9304        <rdar://problem/5404329>
9305        Plugin content starves WM_TIMER events on UI thread (affects idle behavior of app) on http://www.vincent-vella.com/, http://www.sagmeister.com/
9306        
9307        Add a tiny delay to invalidation timer to prevent it from starving other timers.
9308        
9309        * plugins/win/PluginViewWin.cpp:
9310        (WebCore::PluginViewWin::invalidateRect):
9311
93122007-08-29  Darin Adler  <darin@apple.com>
9313
9314        Reviewed by Adele.
9315
9316        * editing/htmlediting.cpp: (WebCore::avoidIntersectionWithNode):
9317        Fix an assert that was firing for me all the time when doing editing operations.
9318
93192007-08-29  Anders Carlsson <andersca@apple.com>
9320
9321        Reviewed by Adam.
9322
9323        <rdar://problem/5386098>
9324        Repro hang with some Flash plugin content (http://dougmccune.com/blog/2007/07/25/coming-to-flexcamp-at-adobe/)
9325        
9326        In some cases, Flash ends up starving the main loop by sending a lot of WM_USER + 1 messages. Throttle these
9327        messages so they won't end up hanging the web browser.
9328        
9329        * plugins/win/PluginViewWin.cpp:
9330        (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
9331        (WebCore::PluginMessageThrottlerWin::~PluginMessageThrottlerWin):
9332        (WebCore::PluginMessageThrottlerWin::appendMessage):
9333        (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired):
9334        (WebCore::PluginMessageThrottlerWin::allocateMessage):
9335        (WebCore::PluginMessageThrottlerWin::isInlineMessage):
9336        (WebCore::PluginMessageThrottlerWin::freeMessage):
9337        (WebCore::PluginViewWndProc):
9338        (WebCore::PluginViewWin::wndProc):
9339        (WebCore::PluginViewWin::determineQuirks):
9340        * plugins/win/PluginViewWin.h:
9341        (WebCore::):
9342        (WebCore::PluginViewWin::pluginWndProc):
9343
93442007-08-29  Beth Dakin  <bdakin@apple.com>
9345
9346        Reviewed by Hyatt.
9347
9348        Fix for <rdar://problem/5436800> REGRESSION: PLT is 1.5% slower due 
9349        to r24593 and r25098
9350
9351        In r25098, we only called setCreatedByParser for XML! This patch 
9352        calls it for HTML too, and takes care of the performance 
9353        regression.
9354
9355        * html/HTMLElementFactory.cpp:
9356        (WebCore::styleConstructor):
9357
93582007-08-29  Antti Koivisto  <antti@apple.com>
9359
9360        Reviewed by Mitz.
9361        
9362        Fix <rdar://problem/5425951>
9363        REGRESSION: change to updateLayoutIgnorePendingStylesheets causes SAP Portal page to render wrong
9364        
9365        If new nodes have been added or style recalc has been done with style sheets still pending, some nodes 
9366        may not have had their real style calculated yet. Normally this state gets cleaned when style sheets arrive 
9367        but in updateLayoutIgnorePendingStylesheets() we need to do full style recalc to get up-to-date style immediatly.
9368        
9369        Added a document flag to track if there are any nodes that did not have their real style calculated due to
9370        pending stylesheets.
9371
9372        Test: fast/dynamic/style-access-late-stylesheet-load.html
9373
9374        * css/CSSStyleSelector.cpp:
9375        (WebCore::CSSStyleSelector::styleForElement):
9376        * dom/Document.cpp:
9377        (WebCore::Document::Document):
9378        (WebCore::Document::recalcStyle):
9379        (WebCore::Document::updateLayoutIgnorePendingStylesheets):
9380        * dom/Document.h:
9381        (WebCore::Document::setHasNodesWithPlaceholderStyle):
9382
93832007-08-29  Alice Liu  <alice.liu@apple.com>
9384
9385        Reviewed by Maciej.
9386
9387        We disable the DeleteButton UI before applying any editing commands.
9388        This patch simply moves those disable/enable calls to a more correct place, closer to the actual application of the editing command. 
9389
9390        * editing/EditCommand.cpp:
9391        (WebCore::EditCommand::apply):
9392        (WebCore::applyCommand):
9393
93942007-08-28  Alice Liu  <alice.liu@apple.com>
9395
9396        fixed <rdar://problem/5420682> Mail crashes at WebCore::InsertLineBreakCommand::doApply() 
9397                                       after dropping a selected image over container's close box
9398
9399        Reviewed by Darin and Maciej.
9400
9401        * editing/DeleteButtonController.cpp:
9402        (WebCore::DeleteButtonController::show):
9403        (WebCore::DeleteButtonController::hide):
9404        * editing/DeleteButtonController.h:
9405        (WebCore::DeleteButtonController::enabled):
9406        General changes made to DeleteButtonController: when hiding, it's not necessary to clear out 
9407        the m_containerElement and m_target, especially since to fix this bug we need to keep 
9408        their values around.  It's sufficient to just detach the container from target.
9409
9410        * editing/EditCommand.cpp:
9411        (WebCore::EditCommand::EditCommand):
9412        Move the selection out of the deletion UI since we don't want to expose the deletion UI to any editing.
9413
9414        * editing/Editor.cpp:
9415        (WebCore::Editor::rangeForPoint):
9416        Move the range out of the deletion UI since we don't want to expose the deletion UI to any editing.
9417
9418        * editing/htmlediting.cpp:
9419        * editing/htmlediting.h:
9420        (WebCore::avoidIntersectionWithNode):
9421        Moved function that operates on Range from markup.cpp to here
9422        Added new implementation for function that operates on Selection
9423
9424        * editing/markup.cpp:
9425        (WebCore::createMarkup):
9426        Moved function out of this file to htmlediting.cpp, and renamed to avoidIntersectionWithNode
9427
94282007-08-29  David Hyatt  <hyatt@apple.com>
9429
9430        Fix for 5441281, remove our dependency on cursor rects and drag margins
9431        in AppKit for a large performance boost on the PLT and iBench.
9432
9433        Reviewed by darin
9434
9435        * platform/mac/WidgetMac.mm:
9436        (WebCore::safeRemoveFromSuperview):
9437        (WebCore::Widget::addToSuperview):
9438        Suppress the resetting of drag margins when views are added and removed.
9439
9440        (WebCore::Widget::setCursor):
9441        Just use NSCursor's set method to immediately set the cursor.  We no longer
9442        rely on NSScrollView/NSClipView setDocumentCursor, since that is implemented
9443        using cursor rects.
9444
94452007-08-29  Rick  <rick@writhe.org.uk>
9446
9447        Reviewed by Tim Hatcher.
9448
9449        Fix http://bugs.webkit.org/show_bug.cgi?id=14853
9450        Bug 14853: Incorrect implementation of ArrayImpl's equality operator
9451
9452        * platform/ArrayImpl.cpp:
9453        (WebCore::ArrayImpl::operator==):
9454        Fixed typo so that correct variable is used in equality comparison.
9455
94562007-08-29  Peter Kasting  <pkasting@google.com>
9457
9458        Reviewed by Maciej.
9459
9460        - fix http://bugs.webkit.org/show_bug.cgi?id=15096
9461        Move the GIF frame duration minimum check into the various
9462        ImageSource*.cpp backends and use the same values as
9463        ImageSourceCG.cpp.
9464
9465        * platform/graphics/cairo/ImageSourceCairo.cpp:
9466        (WebCore::ImageSource::frameDurationAtIndex):
9467        * platform/graphics/qt/ImageSourceQt.cpp:
9468        (WebCore::ImageSource::frameDurationAtIndex):
9469        * platform/image-decoders/gif/GIFImageReader.cpp:
9470        (GIFImageReader::read):
9471
94722007-08-29  Peter Kasting  <pkasting@google.com>
9473
9474        Reviewed by Maciej.
9475
9476        - fix http://bugs.webkit.org/show_bug.cgi?id=15097
9477        Make PNGImageDecoder.cpp size its frame buffer vector in its
9478        constructor, so it never throws decoded image data away no matter
9479        what order its functions are called in.
9480
9481        * platform/image-decoders/png/PNGImageDecoder.cpp:
9482        (WebCore::PNGImageDecoder::PNGImageDecoder):
9483        (WebCore::PNGImageDecoder::frameBufferAtIndex):
9484        (WebCore::PNGImageDecoder::decode):
9485        (WebCore::PNGImageDecoder::rowAvailable):
9486        (WebCore::PNGImageDecoder::pngComplete):
9487
94882007-08-29  Peter Kasting  <pkasting@google.com>
9489
9490        Reviewed by Maciej.
9491
9492        - fix http://bugs.webkit.org/show_bug.cgi?id=15104
9493        Don't double-compensate for sizeof(unsigned) when making a buffer
9494        overflow check in the GIF decoder.  Now interlaced GIFs don't
9495        sometimes get nothing/garbage in some of the bottom rows.
9496
9497        * platform/image-decoders/gif/GIFImageDecoder.cpp:
9498        (WebCore::GIFImageDecoder::haveDecodedRow):
9499
95002007-08-28  Sam Weinig  <sam@webkit.org>
9501
9502        Reviewed by Darin.
9503
9504        Update fix landed in r25249 to account for XMLHttpRequest, which can also be EventTargets.
9505
9506        Tests: http/tests/security/listener/xss-XMLHttpRequest-addEventListener.html
9507               http/tests/security/listener/xss-XMLHttpRequest-shortcut.html
9508
9509        * bindings/js/JSXMLHttpRequest.cpp:
9510        (KJS::JSXMLHttpRequest::putValueProperty): Use the Window object associated with document's frame, not the active Window.
9511        (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction): ditto
9512        * xml/XMLHttpRequest.h:
9513        (WebCore::XMLHttpRequest::document): Expose Document member so bindings can access the correct frame.
9514
95152007-08-28  Anders Carlsson  <andersca@apple.com>
9516
9517        Reviewed by Darin.
9518
9519        <rdar://problem/5424866> Bottom portion of any Web Clip widget appears transparent
9520
9521        Restore the previous behavior, creating plug-ins on attach, for WebKit plug-ins. Netscape plug-ins
9522        are still created during the first layout.
9523        
9524        * html/HTMLEmbedElement.cpp:
9525        (WebCore::HTMLEmbedElement::getInstance):
9526        Only call layout if the renderer doesn't have a widget.
9527        
9528        * html/HTMLObjectElement.cpp:
9529        (WebCore::HTMLObjectElement::getInstance):
9530        Likewise.
9531        
9532        * loader/FrameLoader.cpp:
9533        (WebCore::FrameLoader::shouldUsePlugin):
9534        Update for enum change.
9535        
9536        * loader/FrameLoaderTypes.h:
9537        Add ObjectContentNetscapePlugin and ObjectContentOtherPlugin.
9538        
9539        * page/mac/WebCoreFrameBridge.h:
9540        Get rid of the enum here, we can use the one in FrameLoaderTypes.h
9541        
9542        * rendering/RenderPartObject.cpp:
9543        (WebCore::RenderPartObject::updateWidget):
9544        Only create the plug-in if it's not a Netscape plug-in.
9545        
9546        (WebCore::RenderPartObject::layout):
9547        Fix indentation.
9548        
95492007-08-28  David Harrison  <harrison@apple.com>
9550
9551        Reviewed by Darin.
9552
9553        <rdar://problem/5415006> Command Left in a To Do causes caret to disappear
9554
9555        The selection was ending up inside non-editable content at the To Do Options
9556        arrow image, rather then at the editable position just to the left of that image.
9557        The problem was that startPositionForLine looked only at line boxes, and there
9558        is no linebox for the editable position at the far left of a To Do, which is
9559        a table. Addressed by having startPositionForLine use table offset 0 instead
9560        of the first VisiblePosition inside the table.
9561        
9562        Found and fixed the similar case with option-left (move by word position).
9563        
9564        Test cases:
9565        * editing/selection/mixed-editability-8.html: Added.
9566        * editing/selection/mixed-editability-9.html: Added.
9567
9568        Source changes:
9569        * editing/SelectionController.cpp:
9570        (WebCore::SelectionController::modifyMovingLeftBackward):
9571        
9572        * editing/VisiblePosition.cpp:
9573        (WebCore::VisiblePosition::next):
9574        (WebCore::VisiblePosition::previous):
9575        (WebCore::VisiblePosition::stayInEditableContentLeft):
9576        (WebCore::VisiblePosition::stayInEditableContentRight):
9577        Factored stayInEditableContentLeft() and stayInEditableContentRight()
9578        out of previous() and next().
9579        
9580        * editing/VisiblePosition.h:
9581        Declare stayInEditableContentLeft() and stayInEditableContentRight().
9582
9583        * editing/visible_units.cpp:
9584        (WebCore::previousWordPosition):
9585        (WebCore::nextWordPosition):
9586        (WebCore::startOfLine):
9587        (WebCore::endOfLine):
9588        (WebCore::previousSentencePosition):
9589        (WebCore::nextSentencePosition):
9590        Call stayInEditableContentLeft() or stayInEditableContentRight(), as 
9591        appropriate, so prevent crossing from editable content into
9592        uneditable content.
9593        
9594        (WebCore::startPositionForLine):
9595        Use table offset 0 instead of the first VisiblePosition in the table.
9596        
95972007-08-28  Mark Rowe  <mrowe@apple.com>
9598
9599        Reviewed by Darin Adler.
9600
9601        <rdar://problem/5443453> Decreasing history expiration time from 1 year to 1 week can lead to long hang while icon database syncs
9602
9603        Perform the sync inside a SQLite transaction.  This drops the time taken for the sync from over 90s to under half a second in the
9604        extreme case of over 90,000 URLs being pruned.
9605
9606        * loader/icon/IconDatabase.cpp:
9607        (WebCore::IconDatabase::syncDatabase):
9608
96092007-08-28  Mark Rowe  <mrowe@apple.com>
9610
9611        Reviewed by Darin Adler.
9612
9613        <rdar://problem/5437983> Loading history containing 100,000 entries adds 20s to Safari's startup
9614
9615        Add a new constructor for HistoryItem that initializes the alternate title.  This prevents WebHistoryItem
9616        in WebKit from having explicitly set the display title, which triggers a history item changed notification
9617        to be posted, for each history item loaded.
9618
9619        * WebCore.exp:
9620        * history/HistoryItem.cpp:
9621        (WebCore::HistoryItem::HistoryItem):
9622        * history/HistoryItem.h:
9623
96242007-08-28  Anders Carlsson  <andersca@apple.com>
9625
9626        Reviewed by Darin.
9627
9628        <rdar://problem/5298296> XMLHttpRequest readyState 3 & responseText buffer issues
9629        
9630        Add a shouldContentSniff flag to ResourceLoader and ResourceHandle and have XMLHttpRequest 
9631        pass in false when creating its subresource loader.
9632        
9633        * WebCore.exp:
9634        * loader/MainResourceLoader.cpp:
9635        (WebCore::MainResourceLoader::MainResourceLoader):
9636        (WebCore::MainResourceLoader::loadNow):
9637        * loader/ResourceLoader.cpp:
9638        (WebCore::ResourceLoader::ResourceLoader):
9639        (WebCore::ResourceLoader::load):
9640        * loader/ResourceLoader.h:
9641        * loader/SubresourceLoader.cpp:
9642        (WebCore::SubresourceLoader::SubresourceLoader):
9643        (WebCore::SubresourceLoader::create):
9644        * loader/SubresourceLoader.h:
9645        * loader/mac/NetscapePlugInStreamLoaderMac.mm:
9646        (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
9647        * platform/mac/WebCoreSystemInterface.h:
9648        * platform/mac/WebCoreSystemInterface.mm:
9649        * platform/network/ResourceHandle.cpp:
9650        (WebCore::ResourceHandle::ResourceHandle):
9651        (WebCore::ResourceHandle::create):
9652        * platform/network/ResourceHandle.h:
9653        * platform/network/ResourceHandleInternal.h:
9654        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
9655        * platform/network/mac/ResourceHandleMac.mm:
9656        (WebCore::ResourceHandle::start):
9657        * xml/XMLHttpRequest.cpp:
9658        (WebCore::XMLHttpRequest::send):
9659
96602007-08-27  Steve Falkenburg  <sfalken@apple.com>
9661
9662        Added getter for committedFirstRealDocumentLoad.
9663        
9664        Reviewed by Maciej.
9665
9666        * loader/FrameLoader.h: Added committedFirstRealDocumentLoad.
9667        (WebCore::FrameLoader::committedFirstRealDocumentLoad): Added.
9668
96692007-08-27  Antti Koivisto  <antti@apple.com>
9670
9671        Reviewed by Maciej.
9672        
9673        Fix <rdar://problem/5433144>
9674        REGRESSION: Unable to click "Select" link at Expedia for car rentals
9675        
9676        javascript: URLs need special handling when serializing. Escaping them like
9677        normal attribute values can do bad things. Try hard to not escape anything,
9678        escape quote characters only if really necessary. Try to match Firefox.
9679
9680        Test: fast/innerHTML/javascript-url.html
9681
9682        * editing/markup.cpp:
9683        (WebCore::urlAttributeToQuotedString):
9684        (WebCore::startMarkup):
9685
96862007-08-27  David Hyatt  <hyatt@apple.com>
9687
9688        Fix for 5441224, micro-optimizations to improve the PLT by 1%.
9689
9690        Reviewed by Darin
9691
9692        * css/CSSStyleSelector.cpp:
9693        (WebCore::CSSStyleSelector::canShareStyleWithElement):
9694        * platform/mac/FontMac.mm:
9695        (WebCore::Font::drawGlyphs):
9696        * rendering/RenderInline.cpp:
9697        (WebCore::RenderInline::requiresLayer):
9698        * rendering/RenderObject.cpp:
9699        (WebCore::RenderObject::isBody):
9700        * rendering/RenderObject.h:
9701        (WebCore::RenderObject::renderArena):
9702        (WebCore::RenderObject::isRoot):
9703
97042007-08-27  Mitz Pettel  <mitz@webkit.org>
9705
9706        Reviewed by Darin.
9707
9708        - fix http://bugs.webkit.org/show_bug.cgi?id=15091
9709          Crash in RenderBlock::skipWhitespace during layout <rdar://problem/5439631> 
9710
9711        Test: fast/replaced/applet-disabled-positioned.html
9712
9713        * html/HTMLAppletElement.cpp:
9714        (WebCore::HTMLAppletElement::createRenderer): Changed to call
9715        RenderObject::createObject(), which accounts for style.
9716
97172007-08-26  Antti Koivisto  <antti@apple.com>
9718
9719        Reviewed by Darin.
9720        
9721        Fix for <rdar://problem/5433726>
9722        Mail crash at WebCore::Frame::styleForSelectionStart() when deleting a selection in a HTML message (http://www.yahoo.com/)
9723
9724        Test: editing/style/temporary-span-crash.html
9725
9726        * page/Frame.cpp:
9727        (WebCore::Frame::styleForSelectionStart):
9728        Temporary span created here might not have renderer if document has style sheet that makes it display:none.
9729        Set display:inline explicitly in spans style attribute. This temporary span does not need to get its display 
9730        value from actual document style sheets. Null check the renderer too to be sure.
9731
9732
97332007-08-24  Sam Weinig  <sam@webkit.org>
9734
9735        Reviewed by Adele.
9736
9737        Fix for <rdar://problem/5426142>
9738
9739        Use the EventTarget's frame when creating the EventListener.
9740
9741        Tests: http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener.html
9742               http/tests/security/listener/xss-JSTargetNode-onclick-shortcut.html
9743               http/tests/security/listener/xss-window-onclick-addEventListener.html
9744               http/tests/security/listener/xss-window-onclick-shortcut.html
9745
9746        * bindings/js/JSEventTargetNode.cpp:
9747        (WebCore::JSEventTargetNode::setListener):
9748        (WebCore::JSEventTargetNodePrototypeFunction::callAsFunction):
9749        * bindings/js/kjs_window.cpp:
9750        (KJS::WindowFunc::callAsFunction):
9751
97522007-08-25  Mitz Pettel  <mitz@webkit.org>
9753
9754        Reviewed by Sam Weinig.
9755
9756        - fix http://bugs.webkit.org/show_bug.cgi?id=15077
9757          REGRESSION: Cannot drag selected text out of a background window
9758
9759        * manual-tests/drag-out-of-background-window.html: Added.
9760        * page/EventHandler.cpp:
9761        (WebCore::EventHandler::eventMayStartDrag): Added missing coordinate
9762        conversion.
9763
97642007-08-25  Rob Buis  <buis@kde.org>
9765
9766        Reviewed by Darin.
9767
9768        http://bugs.webkit.org/show_bug.cgi?id=14848
9769        DOM table rules are not updated when changed
9770
9771        On a dynamic rules attr change, mark the table cells and
9772        their ancestors (up to and including the table tag) as
9773        changed.
9774
9775        Tests: fast/table/rules-attr-dynchange1.html
9776               fast/table/rules-attr-dynchange2.html
9777
9778        * html/HTMLTableElement.cpp:
9779        (WebCore::isTableCellAncestor):
9780        (WebCore::setTableCellsChanged):
9781        (WebCore::HTMLTableElement::parseMappedAttribute):
9782
97832007-08-25  Adele Peterson  <adele@apple.com>
9784
9785        Reviewed by Mitz.
9786
9787        Fix for http://bugs.webkit.org/show_bug.cgi?id=15073
9788        <rdar://problem/5426557> REGRESSION: Can no longer drag text from textareas
9789        
9790        Test: fast/forms/drag-out-of-textarea.html
9791
9792        * rendering/RenderTextControl.cpp: (WebCore::RenderTextControlInnerBlock::nodeAtPoint):
9793          Only restricts hit testing if the placeholder text is visible.
9794        * rendering/RenderTextControl.h: (WebCore::RenderTextControl::placeholderIsVisible): Added. 
9795
97962007-08-25  Peter Kasting  <pkasting@google.com>
9797
9798        Reviewed by Sam Weinig.
9799
9800        Part 2 of http://bugs.webkit.org/show_bug.cgi?id=14967.
9801        Eliminate all remaining implicit conversions of wtf::Vector<T> to T*.  Where code was
9802        previously checking that the Vector's data pointer was non-NULL, check !Vector::isEmpty()
9803        instead.
9804
9805        * bindings/js/kjs_navigator.cpp:
9806        (KJS::PluginBase::cachePluginDataIfNecessary):
9807        * loader/mac/LoaderNSURLExtras.m:
9808        (suggestedFilenameWithMIMEType):
9809        * page/FrameView.cpp:
9810        (WebCore::FrameView::~FrameView):
9811        (WebCore::FrameView::pauseScheduledEvents):
9812        (WebCore::FrameView::resumeScheduledEvents):
9813        (WebCore::FrameView::dispatchScheduledEvents):
9814        * platform/mac/PlugInInfoStoreMac.mm:
9815        (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
9816
98172007-08-25  Mitz Pettel  <mitz@webkit.org>
9818
9819        Rubber-stamped by Adam Roben
9820
9821        - remove unused file
9822
9823        * platform/win/MouseEventWin.cpp: Removed.
9824
98252007-08-25  Jasper Bryant-Greene  <m@ni.ac.nz>
9826
9827        Reviewed by Oliver Hunt.
9828
9829        Set paintingDisabled to true in Cairo's GraphicsContext constructor
9830        when passed a null PlatformGraphicsContext.
9831
9832        * platform/graphics/cairo/GraphicsContextCairo.cpp:
9833        (WebCore::GraphicsContext::GraphicsContext):
9834
98352007-08-25  Mitz Pettel  <mitz@webkit.org>
9836
9837        Reviewed by Dave Hyatt.
9838
9839        - fix http://bugs.webkit.org/show_bug.cgi?id=15056
9840          REGRESSION (r21472): Digg Podcasts Episodes Render "Digg" counter incorrectly
9841
9842        Covered by fast/parser/residual-style-close-across-n-blocks.html
9843
9844        * html/HTMLParser.cpp:
9845        (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): If the
9846        residual style was closed before anything else in the block (so it does
9847        not apply to anything inside the block) avoid creating an empty element for
9848        it inside the block.
9849
98502007-08-25  Mitz Pettel  <mitz@webkit.org>
9851
9852        Reviewed by Dave Hyatt.
9853
9854        - fix http://bugs.webkit.org/show_bug.cgi?id=14972
9855          Moving cursor down in contentEditable section fails if styled line-height:1em
9856
9857        Test: editing/selection/move-by-line-003.html
9858
9859        * rendering/RenderText.cpp:
9860        (WebCore::RenderText::positionForCoordinates): Changed hit testing so that each
9861        line is tested for hits between its overflow top and the next line's overflow top.
9862        This matches RenderBlock::positionForCoordinates.
9863
98642007-08-25  Mitz Pettel  <mitz@webkit.org>
9865
9866        Reviewed by Justin.
9867
9868        - fix http://bugs.webkit.org/show_bug.cgi?id=14792
9869          <rdar://problem/5367763> REGRESSION: Copy inserts carriage return in middle of selection
9870
9871        Test: editing/pasteboard/newlines-around-floating-or-positioned.html
9872
9873        * editing/TextIterator.cpp:
9874        (WebCore::shouldEmitNewlinesBeforeAndAfterNode): Do not emit newlines around
9875        floating or positioned blocks. This behavior seems to match WinIE's.
9876
98772007-08-23  Justin Garcia  <justin.garcia@apple.com>
9878
9879        Reviewed by Darin.
9880        
9881        <rdar://problem/5432254> GoogleDocs: A hang occurs when applying list style to selected table
9882        
9883        * editing/DeleteSelectionCommand.cpp:
9884        (WebCore::DeleteSelectionCommand::handleGeneralDelete): If the position
9885        that marked the start of the range to delete has been removed from the
9886        document, and it was inside the node that holds the position that marks
9887        the end of the range to delete, don't remove any children of that node,
9888        because we don't know how many to remove.  For example, if the end is
9889        [a, 5] and the start was in some descendant of a and was removed, don't
9890        remove any of the children of a.  We will now refuse to remove some content
9891        incorrectly, but that's less dangerous than removing content incorrectly.
9892        Long term we need to update these positions as we remove content from the 
9893        document, but that seems like a more risky change.  Added a testcase.
9894        * editing/InsertListCommand.cpp:
9895        (WebCore::InsertListCommand::modifyRange): If the end of the selection to 
9896        modify is just after a table, and if the start of the selection is inside 
9897        that table, the last paragraph that we'll want modify is the last one inside 
9898        the table, not the paragraph that contains the table itself. Adjust 
9899        startOfLastParagraph here to avoid infinite recursion.
9900
99012007-08-24  Anders Carlsson  <andersca@apple.com>
9902
9903        Reviewed by Geoff.
9904
9905        <rdar://problem/5430165>
9906        REGRESSION: Dynamically loaded images fail to load
9907
9908        * html/HTMLImageLoader.cpp:
9909        (WebCore::HTMLImageLoader::HTMLImageLoader):
9910        Initialize the m_elementIsProtected member.
9911
9912        (WebCore::HTMLImageLoader::~HTMLImageLoader):
9913        Assert that the element is not protected.
9914        
9915        (WebCore::HTMLImageLoader::setLoadingImage):
9916        If the image is not null, protect the element. Otherwise, unprotect it.
9917        
9918        (WebCore::HTMLImageLoader::dispatchLoadEvent):
9919        Unprotect the element here.
9920
9921        (WebCore::HTMLImageLoader::protectElement):
9922        (WebCore::HTMLImageLoader::unprotectElement):
9923        New methods which protect and unprotect the element.
9924        
9925        * html/HTMLImageLoader.h:
9926
99272007-08-24  Kevin McCullough  <kmccullough@apple.com>
9928
9929        - Updated ChangeLog
9930
99312007-08-24  Beth Dakin  <bdakin@apple.com>
9932
9933        Reviewed by Hyatt and Adele.
9934
9935        Fix for <rdar://problem/5417203> Google Gmail 1.0 widget - unread 
9936        count is missing
9937
9938        * rendering/FixedTableLayout.cpp:
9939        (WebCore::FixedTableLayout::calcWidthArray): Calc pref widths for 
9940        our cells, if needed.
9941
99422007-08-24  Kevin McCullough  <kmccullough@apple.com>
9943
9944        Reviewed by Darin.
9945
9946        <rdar://problem/5437038> 1 credential object leaked for each call to credentialWithUser:password:persistence
9947        - Use initWithUser instead of credentialWithUser because credentialWithUser leaks.
9948
9949        * platform/network/mac/AuthenticationMac.mm:
9950        (WebCore::mac):
9951        * platform/network/mac/ResourceHandleMac.mm:
9952        (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
9953        (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]):
9954
99552007-08-24  Jon Honeycutt  <jhoneycutt@apple.com>
9956
9957        Reviewed by Darin.
9958
9959        <rdar://problem/5433236> Print preview of empty txt file crashes Safari
9960        Fix: Adjust computePageRectsForFrame to always return at least one 
9961        page rect, even if document height is zero.
9962
9963        * WebCore.vcproj/WebCore.vcproj:
9964        * bridge/win/FrameWin.h: Added Vector& parameter to 
9965        computePagesRectsForFrame; changed its return type to void.
9966        * bridge/win/FrameWin.cpp:
9967        (WebCore::computePageRectsForFrame): Reordered the loop that inserts
9968        rects into the vector.
9969
99702007-08-24  Antti Koivisto  <antti@apple.com>
9971
9972        Reviewed by Oliver
9973
9974        Fix <rdar://problem/5393758>
9975        Crash in WebCore::FontData::platformInit
9976        
9977        Null check glyph page. 
9978        
9979        If font has somehow failed to initialize it is possible to have null glyph page. Based on
9980        crash dumps this seems to occasionally happen when running Mail under guard malloc. 
9981        
9982        No test case, I don't know how to get to this state.
9983
9984        * platform/FontData.cpp:
9985        (WebCore::FontData::FontData):
9986        * platform/mac/FontDataMac.mm:
9987        (WebCore::FontData::platformInit):
9988
99892007-08-24  George Wright  <george.wright@collabora.co.uk>
9990
9991        Reviewed by Oliver.
9992
9993        http://bugs.webkit.org/show_bug.cgi?id=15071
9994        [cairo] SVG skews are incorrect
9995
9996        Fix Cairo implementation of AffineTransform::shear so that shearing is
9997        done in the correct direction.
9998
9999        * platform/graphics/cairo/AffineTransformCairo.cpp:
10000        (WebCore::AffineTransform::shear):
10001
100022007-08-23  Anders Carlsson  <andersca@apple.com>
10003
10004        Reviewed by Steve.
10005
10006        If necessary, re-set the window proc after each call to NPP_SetWindow. This is to ensure that
10007        our window proc is always run even if a plug-in subclasses the window and replaces the window proc.
10008        
10009        Also, make sure that the default window proc is of type ASCII so we can eliminate the 
10010        * plugins/win/PluginViewWin.cpp:
10011        (WebCore::registerPluginView):
10012        (WebCore::PluginViewWndProc):
10013        (WebCore::PluginViewWin::setNPWindowRect):
10014        (WebCore::PluginViewWin::stop):
10015        (WebCore::PluginViewWin::determineQuirks):
10016        (WebCore::PluginViewWin::PluginViewWin):
10017        (WebCore::PluginViewWin::init):
10018        * plugins/win/PluginViewWin.h:
10019        (WebCore::):
10020        (WebCore::PluginViewWin::pluginWndProc):
10021
100222007-08-23  Justin Garcia  <justin.garcia@apple.com>
10023
10024        Reviewed by Adele.
10025
10026        <rdar://problem/5156801> REGRESSION: Crash at DeleteSelectionCommand::doApply() when deleting table content
10027
10028        * editing/DeleteSelectionCommand.cpp:
10029        (WebCore::DeleteSelectionCommand::handleGeneralDelete): Use a RefPtr
10030        for node.  If the node to be removed contains the selection, and if
10031        the next node to be removed (nextNode) is inside the deletion UI,
10032        removing node will remove nextNode from the document.  nextNode is
10033        a RefPtr, but node isn't and when nextNode falls out of scope the node
10034        that node points to will be destroyed and we'll end up using a stale pointer.
10035        Long term we should probably just disable the deletion UI before editing 
10036        operations because the undo of the removal of node in the situation 
10037        described above relies on the presence of the deletion UI, but it isn't 
10038        present because its added and removed in a non-undoable way.
10039
100402007-08-23  Mitz Pettel  <mitz@webkit.org>
10041
10042        Reviewed by Darin.
10043
10044        - fix http://bugs.webkit.org/show_bug.cgi?id=14899
10045          !d->m_view->needsLayout() in Frame::paint() (Causes assert)
10046
10047        WebKit copies the width and height attributes of an <embed> to its
10048        nearest <object> ancestor. This used to be done in updateWidget(), but
10049        that could lead to the document being dirty right after layout and
10050        before painting. The patch moves the copying of the attributes to when
10051        the <embed> is inserted into the document or its attributes change.
10052
10053        * html/HTMLEmbedElement.cpp:
10054        (WebCore::HTMLEmbedElement::insertedIntoDocument):
10055        (WebCore::HTMLEmbedElement::attributeChanged):
10056        * html/HTMLEmbedElement.h:
10057        * manual-tests/bugzilla-14899.html: Added.
10058        * rendering/RenderPartObject.cpp:
10059        (WebCore::RenderPartObject::updateWidget):
10060
100612007-08-22  Anders Carlsson  <andersca@apple.com>
10062
10063        Reviewed by Darin and Oliver.
10064
10065        <rdar://problem/5422410>
10066        http://bugs.webkit.org/show_bug.cgi?id=15019
10067        REGRESSION (r25124-r25140): New posts and hot topics won't show at mobile01.com
10068
10069        Remove the call to checkCallImplicitClose(). Calling it in loadPlugin is bad for two reasons:
10070        
10071        1. It could cause onload to be dispatched even when the page has subresources that are still
10072        loading, such as images.
10073        
10074        2. Now that loadPlugin is called during layout, it could cause onload to be dispatched during
10075        layout, which can execute javascript and do pretty much anything while the render tree is in an
10076        inconsistent state.
10077        
10078        * loader/FrameLoader.cpp:
10079        (WebCore::FrameLoader::loadPlugin):
10080
100812007-08-22  Anders Carlsson  <andersca@apple.com>
10082
10083        Reviewed by Adam.
10084
10085        <rdar://problem/5430584>
10086        http://bugs.webkit.org/show_bug.cgi?id=15053        
10087        WebKit does not check Windows Registry HKEY_CURRENT_USER for NPAPI plugin locations
10088        
10089        * plugins/win/PluginDatabaseWin.cpp:
10090        (WebCore::addPluginsFromRegistry):
10091        (WebCore::PluginDatabaseWin::getPluginsInPaths):
10092
100932007-08-22  Justin Garcia  <justin.garcia@apple.com>
10094
10095        Reviewed by Adam.
10096        
10097        <rdar://problem/5418891> CrashTracer: [USER] 1 crash in Mail at -[WebViewEditor webView:shouldInsertText:replacingDOMRange:givenAction:]
10098
10099        * editing/BreakBlockquoteCommand.cpp:
10100        (WebCore::BreakBlockquoteCommand::doApply): We're reusing the topBlockquote
10101        variable.  Null it out first.  If there is no new topBlockquote and we don't null
10102        it out first, we'll assume that there was a new one and crash.
10103
101042007-08-22  Kevin McCullough  <kmccullough@apple.com>
10105
10106        Reviewed by Adele.
10107
10108        - rdar:5423067 Reapplyingthe change but only when the text area is in focus.
10109
10110        * html/HTMLTextAreaElement.cpp:
10111        (WebCore::HTMLTextAreaElement::setValue):
10112
101132007-08-21  David Hyatt  <hyatt@apple.com>
10114
10115        Fix for <rdar://problem/5249757> Painting of JPGs in WebKit is too slow.
10116
10117        Use a new Leopard API for fast tiling of images.  We only use this API
10118        when the whole image is being tiled and when the current CGImageRef to tile
10119        has a size that matches the size of the whole image.
10120
10121        We can optimize border-image in the future by adding a cache of the 9
10122        sub-images.
10123
10124        Reviewed by darin
10125
10126        * platform/graphics/cg/ImageCG.cpp:
10127        (WebCore::Image::drawPattern):
10128
101292007-08-22  Kevin McCullough  <kmccullough@apple.com>
10130
10131        - Rolling back since I need to update some layouttests this change breaks.
10132
10133        * html/HTMLTextAreaElement.cpp:
10134        (WebCore::HTMLTextAreaElement::setValue):
10135
101362007-08-21  Kevin McCullough  <kmccullough@apple.com>
10137
10138        Reviewed by Geof, Adam, Hyatt, Maciej and Oliver.
10139
10140        - In order to match the behavior of the other major browsers, selection is moved to the end of the text value when a change occurs to the contents of a text area instead of remembering the location of the selection.
10141        - <rdar://problem/5423067> gmail is super annoying when trying to add a new name to the TO, CC or BCC fields
10142
10143        * html/HTMLTextAreaElement.cpp:
10144        (WebCore::HTMLTextAreaElement::setValue):
10145
101462007-08-21  Adam Roben  <aroben@apple.com>
10147
10148        Build fix for Mac
10149
10150        Keep FrameView::layoutIfNeededRecursive Windows- and Gtk-only for now
10151        (sadly). This will have to wait until we merge ScrollView and FrameView.
10152
10153        Reviewed by NOBODY.
10154
10155        * page/FrameView.cpp:
10156        * page/FrameView.h:
10157
101582007-08-21  Adam Roben  <aroben@apple.com>
10159
10160        Fix an ASSERT when using Find in Page
10161
10162        Reviewed by Darin.
10163
10164        No test possible.
10165
10166        * bridge/win/FrameWin.cpp:
10167        (WebCore::imageFromSelection): Make sure to update layout before
10168        painting so we don't hit an ASSERT in painting code (Frame::selectionImage
10169        in FrameMac.mm does this as well).
10170
101712007-08-21  Adam Roben  <aroben@apple.com>
10172
10173        Made FrameView::layoutIfNeededRecursive available to all platforms
10174
10175        Currently it's only used on Gtk+ and Windows.
10176
10177        Reviewed by Darin.
10178
10179        * page/FrameView.cpp: Removed #ifdef.
10180        * page/FrameView.h: Ditto.
10181
101822007-08-21  Adele Peterson  <adele@apple.com>
10183
10184        Build fix for release build.
10185
10186        * rendering/AutoTableLayout.cpp:
10187        (WebCore::AutoTableLayout::calcEffectiveWidth):
10188        (WebCore::AutoTableLayout::layout):
10189
101902007-08-21  Mitz Pettel  <mitz@webkit.org>
10191
10192        Reviewed by Darin.
10193
10194        - fix http://bugs.webkit.org/show_bug.cgi?id=15010
10195          <rdar://problem/5423956> REGRESSION (r25000-r25065): Table rendering broken by a recent nightly
10196
10197        Test: fast/table/max-width-integer-overflow.html
10198
10199        Avoid integer overflows when dealing with maximum widths by
10200        1) using floating point arithmetic when summing or multiplying column max widths
10201        2) capping max widths at INT_MAX / 2
10202
10203        * rendering/AutoTableLayout.cpp:
10204        (WebCore::AutoTableLayout::calcPrefWidths):
10205        (WebCore::AutoTableLayout::calcEffectiveWidth):
10206        (WebCore::AutoTableLayout::layout):
10207
102082007-08-20  John Sullivan  <sullivan@apple.com>
10209
10210        Reviewed by Adam Roben
10211
10212        WebCore part of fix for: 
10213        <rdar://problem/5417777> WebKit focus ring color no longer matches system focus rings
10214        
10215        Adele wrote the first version of this patch. No test cases added because I made sure the 
10216        layout tests are unaffected. Two additional bug fixes were made in passing, but neither 
10217        of them had any effect on any known real-world case, and both were too difficult to write 
10218        test cases for to be worthwhile.
10219
10220        * WebCore.exp:
10221        added symbols for these new functions so WebKit can call them
10222        
10223        * WebCore.xcodeproj/project.pbxproj:
10224        updated for new file
10225        
10226        * platform/graphics/mac/ColorMac.h: Added.
10227        New file to hold the increasing amount of Mac-specific color stuff.
10228        
10229        * platform/graphics/Color.h:
10230        removed #if PLATFORM(MAC) code, which is now in ColorMac.h
10231        
10232        * platform/graphics/mac/ColorMac.mm:
10233        (WebCore::makeRGBAFromNSColor):
10234        new static function to convert an NSColor object to an RGBA32 struct
10235        (WebCore::colorFromNSColor):
10236        new public function to convert an NSColor object to a WebCore-style Color object
10237        (WebCore::focusRingColor):
10238        Uses (cached) systemFocusRingColor instead of hardwired values, unless usesTestModeFocusRingColor is true,
10239        in which case it uses the old hardwired color
10240        (WebCore::usesTestModeFocusRingColor):
10241        returns value of global var
10242        (WebCore::setUsesTestModeFocusRingColor):
10243        sets value of global var
10244        (+[WebCoreControlTintObserver controlTintDidChange]):
10245        Uses [NSColor keyboardFocusIndicatorColor] to set systemFocusRingColor; don't compile if COLORMATCH_EVERYTHING
10246        is set since we don't know what it would take to satisfy this state.
10247
10248        * bindings/objc/DOMRGBColor.mm:
10249        now includes ColorMac.h to account for moved declarations
10250        * bridge/mac/WebCoreAXObject.mm:
10251        ditto
10252        
10253        * page/mac/FrameMac.mm:
10254        (WebCore::convertAttributesToUnderlines):
10255        now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
10256        this function is only used to convert the color of an input manager's marked text underline, which is always black
10257        
10258        * page/mac/WebCoreFrameBridge.mm:
10259        (-[WebCoreFrameBridge setBaseBackgroundColor:]):
10260        now uses new colorFromNSColor. The old code was swapping G & B, but it didn't matter in practice because
10261        this function is only called with a grayscale color perhaps containing an alpha value
10262                
10263        * rendering/RenderView.cpp:
10264        (WebCore::RenderView::paintBoxDecorations):
10265        just updated a comment
10266
102672007-08-20  Mitz Pettel  <mitz@webkit.org>
10268
10269        Reviewed by Dave Hyatt.
10270
10271        - fix http://bugs.webkit.org/show_bug.cgi?id=15023
10272          REGRESSION (r21113-r21143): JavaScript tooltip rendering bug
10273
10274        Test: fast/repaint/layer-visibility.html
10275
10276        * rendering/RenderLayer.cpp:
10277        (WebCore::RenderLayer::setHasVisibleContent): Cache the layer's
10278        rects when it changes to visible.
10279
102802007-08-20  Kevin Decker <kdecker@apple.com>
10281
10282        Reviewed by Anders.
10283
10284        Fixed: <rdar://problem/5325262> REGRESSION (Tiger-Leopard): PictureTalk plug-in doesn't work
10285
10286        The problem was that this particular plug-in handles "text/ptf", but WebCore wasn't giving the plug-in a chance to load
10287        any type with "text/"
10288
10289        * dom/DOMImplementation.cpp:
10290        (WebCore::DOMImplementation::createDocument): Allow plug-ins to once again use "text/" MIME types, but only if the MIME
10291        type is not "text/plain". Disallowing plug-ins to use text/plain prevents plug-ins from hijacking a fundamental type 
10292        that the browser is expected to handle, and also serves as an optimization to prevent loading the plug-in database in 
10293        the common case.
10294
102952007-08-20  Adam Roben  <aroben@apple.com>
10296
10297        Remove workarounds for <rdar://problem/5386894> now that it's been fixed
10298
10299        Reviewed by Darin.
10300
10301        Tests: fast/loader/local-svg-parsed-as-svg.svg
10302               fast/loader/local-xhtml-parsed-as-xhtml.xhtml
10303
10304        * platform/network/cf/ResourceResponseCFNet.cpp:
10305        (WebCore::ResourceResponse::doUpdateResourceResponse): Removed hackish
10306        workaround.
10307
103082007-08-20  Anders Carlsson  <andersca@apple.com>
10309
10310        Reviewed by Adam.
10311
10312        <rdar://problem/5412988>
10313        Crash when visiting http://www.rockonflash.com/blog/?p=58
10314        
10315        * plugins/win/PluginViewWin.cpp:
10316        (WebCore::PluginViewWin::updateWindow):
10317        Just return if the plugin view hasn't been inserted in the hierarchy yet.
10318
103192007-08-20  Holger Hans Peter Freyther  <zecke@selfish.org>
10320
10321        Reviewed by Zack.
10322
10323        Do not define svg as ImageMIMEType if we can use ksvg2.
10324
10325        * platform/MIMETypeRegistry.cpp:
10326        (WebCore::initialiseSupportedImageMIMETypes):
10327
103282007-08-19  Adam Roben  <aroben@apple.com>
10329
10330        Gtk+ build fix.
10331
10332        * platform/gdk/TemporaryLinkStubs.cpp: Removed const.
10333
103342007-08-19  Adam Roben  <aroben@apple.com>
10335
10336        Fix <rdar://5395835> REGRESSION (r24527): Context menu for edit fields is missing "Font & Writing Direction"
10337
10338        The problem was that ContextMenuItem::setSubMenu was just copying the
10339        HMENU from the ContextMenu passed in on Windows, but that HMENU was
10340        later getting destroyed when the ContextMenu went out of scope.
10341
10342        I added a new ContextMenu::releasePlatformDescription method that is
10343        used in setSubMenu instead. I think an ultimately better design would
10344        be for setSubMenu to take ownership of the ContextMenu that's passed in
10345        (as should insertItem and appendItem), but I decided to be conservative
10346        and just make the changes needed to fix the bug.
10347
10348        Reviewed by Darin.
10349
10350        No test possible.
10351
10352        * platform/ContextMenu.h: Added releasePlatformDescription.
10353        * platform/gdk/TemporaryLinkStubs.cpp: Added stub implementation.
10354        * platform/mac/ContextMenuMac.mm:
10355        (WebCore::ContextMenu::releasePlatformDescription): Implemented, though
10356        it's never called on this platform.
10357        * platform/qt/ContextMenuQt.cpp:
10358        (WebCore::ContextMenu::releasePlatformDescription): Ditto.
10359        * platform/win/ContextMenuItemWin.cpp:
10360        (WebCore::ContextMenuItem::setSubMenu): Call releasePlatformDescription
10361        since we need to take ownership of the HMENU.
10362        * platform/win/ContextMenuWin.cpp:
10363        (WebCore::ContextMenu::releasePlatformDescription): Implemented.
10364
103652007-08-18  Maciej Stachowiak  <mjs@apple.com>
10366
10367        Reviewed by Darin.
10368
10369        - fixed <rdar://problem/5198272> REGRESSION: PLT 1.5% slower due to r21367 (change to start frames with empty documents)
10370        
10371        There were three main cuases of extra time due to creating the initial empty document:
10372        
10373        1) Creating an extra WebHTMLView and swapping it for a new one for each frame created.
10374        2) Parsing the minimal markup for the initial document's contents.
10375        3) Clearing the Window object an extra time and dispatching the corresponding delegate method.
10376        
10377        The WebCore part of the fixes addresses 2 and 3.
10378        
10379        * loader/FrameLoader.cpp:
10380        (WebCore::FrameLoader::init): Don't parse "<html><body>" for the initial
10381        empty document; it turns out not to be needed.
10382        (WebCore::FrameLoader::dispatchWindowObjectAvailable): Don't 
10383        dispatch the delegate if we haven't created a ScriptInterpreter yet.
10384        * bindings/js/kjs_proxy.cpp:
10385        (WebCore::KJSProxy::initScriptIfNeeded): Dispatch the window object
10386        delegate when we first create the interpreter, since that is now done
10387        lazily.
10388        * loader/FrameLoader.h:
10389        (WebCore::FrameLoader::committingFirstRealLoad): Helper for WebKit
10390        to know when to reuse a WebHTMLView.
10391
103922007-08-19  Mitz Pettel  <mitz@webkit.org>
10393
10394        Reviewed by Adam Roben.
10395
10396        - fix http://bugs.webkit.org/show_bug.cgi?id=15008
10397          ASSERTION FAILED: !firstLineBox() == !lastLineBox() setting content on image
10398
10399        Test: fast/images/text-content-crash-2.html
10400
10401        * html/HTMLImageLoader.cpp:
10402        (WebCore::HTMLImageLoader::setImage): Added a check that the renderer is an
10403        image.
10404        (WebCore::HTMLImageLoader::updateFromElement): Ditto.
10405        (WebCore::HTMLImageLoader::notifyFinished): Ditto.
10406
104072007-08-17  Maciej Stachowiak  <mjs@apple.com>
10408
10409        Reviewed by Darin.
10410
10411        - WebCore part of fix to scrollbar suppression hack for Leopard
10412
10413        * loader/FrameLoader.cpp:
10414        (WebCore::FrameLoader::transitionToCommitted): Suppress scrollbars earlier, so it happens
10415        before any potential view swap.
10416
104172007-08-17  Antti Koivisto  <antti@apple.com>
10418
10419        Reviewed by Hyatt.
10420        
10421        Fix <rdar://problem/5403773>
10422        CrashTracer: [USER] 88 crashes in Safari at com.apple.WebCore: WebCore::RenderTableSection::paint + 846
10423
10424        * rendering/RenderBlock.cpp:
10425        (WebCore::RenderBlock::removePositionedObjects):
10426        
10427        Fix crash in http://www.infobae.com/interior/home.html
10428        Positioned objects removed from m_positionedObjects would in some cases not get added back to any 
10429        positioned objects list. Adding objects happens in block layout but since layout was not invalidated 
10430        correctly in removePositionedObjects() it would not get invoked. As a result some positioned objects 
10431        would stay in layout dirty state leading to crashes and other bad things.
10432        
10433        * rendering/RenderTableSection.cpp:
10434        (WebCore::RenderTableSection::paint):
10435        
10436        Add needLayout() guard to eliminate this class of crashes from release builds. 
10437        Assert commented out for now since one existing layout test can't handle it.
10438
104392007-08-17  Kevin Decker <kdecker@apple.com>
10440
10441        Code change by Darin, landed and reviewed by me.
10442
10443        Fixed: <rdar://problem/5252836> Adobe Help Viewer: Japanese characters in the Help Tree structure are shown as garbage
10444        Added fast/encoding/namespace-tolerance.html test.
10445
10446        * loader/TextResourceDecoder.cpp:
10447        (WebCore::TextResourceDecoder::checkForHeadCharset): Slightly loosen the charset decoder heuristic by tweaking it
10448        to ignore namespaces. This restores compatibility to documents which (1) use namespace prefixes on HTML elements
10449        (2) specify a non-latin charset and (3) contain non-latin characters.
10450        
10451        Added fast/encoding/namespace-tolerance.html test.
10452        
104532007-08-17  Anders Carlsson  <andersca@apple.com>
10454
10455        Reviewed by Dave Hyatt.
10456        
10457        <rdar://problem/5379040>
10458        REGRESSION (Tiger-Leopard): ADOBE: Safari calls NPP_SetWindow with bad values sometimes
10459
10460        Instantiate plug-ins during the first layout instead of doing so when creating the renderer.
10461        This ensures that the plug-in widget will have a correct initial size.
10462        
10463        * html/HTMLEmbedElement.cpp:
10464        (WebCore::HTMLEmbedElement::getInstance):
10465        Force a layout if the plug-in doesn't have an instance.
10466        
10467        (WebCore::HTMLEmbedElement::attach):
10468        Pass true to updateWidget, causing it to only create a widget if it won't be a plug-in.
10469        
10470        * html/HTMLIFrameElement.cpp:        
10471        (WebCore::HTMLIFrameElement::attach):
10472        Pass false to updateWidget, this will only create subframes anyway.
10473        
10474        * html/HTMLObjectElement.cpp:
10475        (WebCore::HTMLObjectElement::getInstance):
10476        Force a layout if the plug-in doesn't have an instance.
10477        
10478        (WebCore::HTMLObjectElement::attach):
10479        Pass true to updateWidget, causing it to only create a widget if it won't be a plug-in.
10480        
10481        * loader/FrameLoader.cpp:
10482        (WebCore::FrameLoader::loadPlugin):
10483        Get the size from the renderer and pass it to the client.
10484        
10485        * loader/FrameLoaderClient.h:
10486        * page/mac/WebCoreFrameBridge.h:
10487        * platform/graphics/svg/SVGImageEmptyClients.h:
10488        (WebCore::SVGEmptyFrameLoaderClient::createPlugin):
10489        Update declarations.
10490        
10491        * rendering/RenderPart.cpp:
10492        (WebCore::RenderPart::setWidget):
10493        No need to mark the renderer as dirty here.
10494        
10495        * rendering/RenderPartObject.h:
10496        * rendering/RenderPartObject.cpp:
10497        (WebCore::RenderPartObject::updateWidget):
10498        Add a parameter, onlyCreateNonPlugins. If this is true the widget 
10499        will only be created if it's not a plug-in.
10500        
10501        (WebCore::RenderPartObject::layout):
10502        Call updateWidget here if m_widget is 0, causing the plug-in to be instantiated.
10503        
105042007-08-17  Oliver Hunt  <oliver@apple.com>
10505
10506        Reviewed by Maciej.
10507
10508        http://bugs.webkit.org/show_bug.cgi?id=14189
10509        <rdar://problem/5319511> REPRODUCIBLE CRASH: Canvas createPattern(canvas, ...) crashes on Windows (14189)
10510
10511        Ensure that we actually retain the CG pattern correctly.
10512
10513        Credit to Henry Mason <hmason@mac.com> for finding the cause of this.
10514
10515        * html/CanvasPattern.cpp:
10516        (WebCore::CanvasPattern::~CanvasPattern):
10517        (WebCore::CanvasPattern::createPattern):
10518        * html/CanvasPattern.h:
10519        (WebCore::CanvasPattern::platformImage):
10520
105212007-08-16  Geoffrey Garen  <ggaren@apple.com>
10522
10523        Build fix. (Maybe?)
10524        
10525        * loader/Cache.cpp:
10526        (WebCore::Cache::pruneLiveResources):
10527        (WebCore::Cache::pruneDeadResources):
10528
105292007-08-16  Justin Garcia  <justin.garcia@apple.com>
10530
10531        Reviewed by Harrison.
10532
10533        <rdar://problem/5378473> 
10534        REGRESSION: Undoing a deletion that is part of an open typing command fails to reinsert the caret
10535        
10536        We recently made Undo of a series of deletes select all of the 
10537        characters that were deleted, not just the most recently deleted
10538        character.  But the code that did this set a new starting selection 
10539        after every delete, even those that were part of an open typing 
10540        command that started with character insertions or forward deletes, 
10541        operations that when undone, remove the starting selection being 
10542        set from the document.
10543        
10544        After this change we only set a new starting selection if the open typing
10545        command was opened by a backward delete. The new behavior matches TextEdit.  
10546        We don't do something similar or forward deletes because TextEdit opens 
10547        and closes a new typing command on forward delete (added a FIXME about this).
10548
10549        * editing/TypingCommand.cpp:
10550        (WebCore::TypingCommand::TypingCommand): Initialize 
10551        m_openedByBackwardDelete.
10552        (WebCore::TypingCommand::forwardDeleteKeyPressed): Added a FIXME about
10553        how in TextEdit, forward deletes open and close a new typing command.
10554        (WebCore::TypingCommand::doApply): Set m_openedByBackwardDelete
10555        appropriately.
10556        (WebCore::TypingCommand::deleteKeyPressed): Only set the starting
10557        selection if this delete is the first one in an open typing command
10558        or one in a series of deletes that opened the typing command.
10559        * editing/TypingCommand.h: Added m_openedByBackwardDelete.
10560
105612007-08-13  Geoffrey Garen  <ggaren@apple.com>
10562
10563        Reviewed by Dave Hyatt.
10564        
10565        Tweaked the cache eviction model to better balance between live and 
10566        dead resources.
10567        
10568        For the sake of avoiding evictions during the PLT, the old model 
10569        required the sum of dead and live resources to grow to twice the cache 
10570        capacity before evicting, and would then evict dead or live down to 0 
10571        if necessary. This was a too-high high water mark, which would nullify 
10572        much of the value of eviction, and a too-low low water mark, which 
10573        would nullify much of the value of the LRU-SP strategy.
10574        
10575        This patch changes the model in 3 ways.
10576        
10577        1. The new model for dead resources is a flexible window with a fixed 
10578        minimum and maximum. The dead resource window is big when live resource 
10579        pressure is small, and vice versa. This has the immediate advantage of
10580        cutting the high water mark by up to 50%. It also enables the following
10581        tunable optimizations in future patches:
10582            a. A dead resource limit of 0 for clients who want that. (Just set
10583            the fixed maximum to 0.)
10584            b. A much higher low water mark. (Just set the fixed minimum to, 
10585            say, 25% of the cache's capacity.)
10586            c. A much lower high water mark for users who browse simple pages
10587            in one tab. (Just set the fixed maximum to, say, 50% of the cache's
10588            capacity.)
10589        
10590        I plan to make the changes that actually take advantage of these 
10591        tunable optimizations in another check-in.
10592
10593        The new model won't hurt the PLT because it will notice the PLT's low
10594        live resource size, and up the dead resource capacity in response. For
10595        the same reason, the new model should establish a good balance in 
10596        real-world use.
10597        
10598        2. Live resource eviction is now based on size(), not encodedSize().
10599        So, a page with lots of large, encoded images will start evicting 
10600        resources, if necessary, even before all the images paint. This allows 
10601        you to more accurately stipulate an exact high water mark.
10602        
10603        3. When pruning, prune to a small percentage below capacity, to avoid
10604        just having to prune again immediately.
10605
10606        Layout tests pass. PLT shows no regression.
10607
10608        * history/PageCache.cpp:
10609        (WebCore::PageCache::releaseAutoreleasedPagesNow): Updated for rename.
10610
10611        * loader/Cache.cpp: Implemented the algorithm explained above.
10612        * loader/Cache.h: Removed explicit tracking of decoded data size, since
10613        it was unused.
10614
10615        * loader/CachedResource.cpp: ditto on tracking of decoded data size
10616
106172007-08-16  Darin Adler  <darin@apple.com>
10618
10619        Reviewed by Tim Hatcher.
10620
10621        - fix <rdar://problem/5415029> In Mail, a crash occurs at WebCore::Node::isDescendantOf()
10622          when attempting to delete a selection in a table
10623
10624        The bug was caused by createMarkup trying to operate on a range that
10625        has an endpoint in the delete button DOM, because it removes that DOM
10626        during its operation! Still working on a regression test -- it's hard
10627        to make the kind of bad selection that's needed with the DOM, so I might
10628        have to use the eventSender.
10629
10630        * editing/DeleteButtonController.h: Made some of the identifiers private.
10631        We can make them public if we need to use them. Added a getter function
10632        for the container element so we can figure out if a given node is inside
10633        the DOM added for the delete button.
10634
10635        * editing/markup.cpp:
10636        (WebCore::moveEndpointsBeforeNode): Added. General purpose helper function
10637        that moves endpoints of a range to before a given node -- we do this before
10638        removing the delete button, so the endpoint is where the delete button was,
10639        rather than having an endpoint that's not in the document.
10640        (WebCore::createMarkup): Always return empty string, not null string.
10641        Get the document by calling ownerDocument on the range rather than getting
10642        the document of the commonAncestorContainer. That's because we need to
10643        get at the delete button before calling commonAncestorContainer. Call
10644        moveEndpointsBeforeNode to move the range endpoints out of the delete
10645        button interface before calling disable() which will remove it from the
10646        DOM if it's in there. Added an early return for the case where commonAncestor
10647        is non-0. If this happens, we would crash later because pastEndNode would
10648        not be in the tree. This change alone would prevent the crash, but we'd get
10649        bad markup, so we need the moveEndpointsBeforeNode fix. Added null checks
10650        for the frame to the range version as in the single-node version so this
10651        won't crash immediately on documents that are not in a frame. For the
10652        single-node version, added a check if a ndoe of 0 and a node inside the
10653        delete button user interface, and return the empty string for those cases.
10654
106552007-08-16  Justin Garcia  <justin.garcia@apple.com>
10656
10657        Reviewed by Maciej.
10658        
10659        <rdar://problem/5378847> After creating and removing a ToDo, the caret disappears as soon as I start to type
10660        
10661        * editing/InsertTextCommand.cpp:
10662        (WebCore::InsertTextCommand::input): A whitespace text node inserted by Mail
10663        when a ToDo is removed is completely removed by deleteInsignificantWhitespace,
10664        and since it contains the text insertion position, insertion fails.
10665        Save the position before the node where text insertion will occur,
10666        and if that node is removed, use the saved position for insertion.
10667
106682007-08-16  Darin Adler  <darin@apple.com>
10669
10670        Reviewed by Adele.
10671
10672        - fix <rdar://problem/5413488> REGRESSION: every DOM element is about 40
10673          bytes bigger because it has a Timer
10674
10675        Moved the timer to the document from the element.
10676
10677        * dom/Document.h: Made frame() inline. Added updateFocusApperanceSoon(),
10678        cancelFocusAppearanceUpdate(), m_updateFocusAppearanceTimer,
10679        clearXMLVersion(), and updateFocusAppearanceTimerFired(). Also made
10680        everything that was previously protected be private instead.
10681        * dom/Document.cpp:
10682        (WebCore::Document::Document): Initialize m_updateFocusAppearanceTimer.
10683        (WebCore::Document::updateFocusAppearanceSoon): Added. Starts timer.
10684        (WebCore::Document::cancelFocusAppearanceUpdate): Added. Stops timer.
10685        (WebCore::Document::updateFocusAppearanceTimerFired): Added. If the
10686        focused node is a focusable element, then calls
10687        updateFocusAppearance(false) on it.
10688
10689        * dom/Element.h: Removed default value of the boolean parameter to
10690        updateFocusAppareance. Removed needsFocusAppearanceUpdate(),
10691        setNeedsFocusAppearanceUpdate(), updateFocusAppearanceTimerFired(),
10692        stopUpdateFocusAppearanceTimer(), m_updateFocusAppearanceTimer, and
10693        m_needsFocusAppearanceUpdate. Added
10694        updateFocusAppearanceSoonAfterAttach() and cancelFocusAppearanceUpdate().
10695        * dom/Element.cpp:
10696        (WebCore::ElementRareData::ElementRareData): Added initializer for
10697        m_needsFocusAppearanceUpdateSoonAfterAttach.
10698        (WebCore::Element::Element): Removed initializers for
10699        m_updateFocusAppearanceTimer and m_needsFocusAppearanceUpdate.
10700        (WebCore::Element::attach): Updated code that starts the focus
10701        appearance timer to instead call updateFocusAppearanceSoon() on the
10702        document.
10703        (WebCore::Element::detach): Replaced call to
10704        stopUpdateFocusAppearanceTimer with call to cancelFocusAppearanceUpdate.
10705        (WebCore::Element::focus): Added check for node that's already focused,
10706        to match the logic that's in the derived classes. This makes it safe for
10707        us to remove the override in the derived classes. Also replaced the code
10708        that called setNeedsFocusAppearanceUpdate(true) with code to set the
10709        rare data flag m_needsFocusAppearanceUpdateSoonAfterAttach and added a
10710        call to cancelFocusAppearanceUpdate() in the case where there's no focus
10711        appearance update.
10712        (WebCore::Element::blur): Replaced call to
10713        stopUpdateFocusAppearanceTimer with call to cancelFocusAppearanceUpdate.
10714        (WebCore::Element::cancelFocusAppearanceUpdate): Added. Sets
10715        m_needsFocusAppearanceUpdateSoonAfterAttach to false, and then calls
10716        cancelFocusAppearanceUpdate() on the document, but only if the element
10717        is the focused node of the document.
10718
10719        * html/HTMLDocument.cpp:
10720        (WebCore::HTMLDocument::HTMLDocument): Replaced code that sets
10721        m_xmlVersion directly with a call to a new inline clearXMLVersion()
10722        function.
10723        (WebCore::HTMLDocument::setCookie): Replaced use of m_policyBaseURL with
10724        policyBaseURL().
10725        (WebCore::HTMLDocument::createTokenizer): Replaced uses of m_frame with
10726        frame().
10727        (WebCore::HTMLDocument::determineParseMode): Replaced code that sets
10728        pMode and hMode directly with calls to setParseMode and setHTMLMode.
10729        Replaced use of m_styleSelector with styleSelector().
10730
10731        * html/HTMLInputElement.h: Removed now-unneed override of focus().
10732        Removed default value of the boolean parameter to updateFocusAppareance.
10733        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance):
10734        Pass the restorePreviousSelection boolean through -- while it's ignored,
10735        it no longer has a default value.
10736
10737        * html/HTMLTextAreaElement.h: Removed now-unneed override of focus().
10738        Removed default value of the boolean parameter to updateFocusAppareance.
10739        * html/HTMLTextAreaElement.cpp: Ditto.
10740
10741        * WebCore.exp: Removed the Document::frame() symbol, since it's now inline.
10742
107432007-08-15  Antti Koivisto  <antti@apple.com>
10744
10745        Reviewed by Maciej.
10746        
10747        Fix <rdar://problem/5388936>
10748        Crash while setting display:none for a table cell with selection
10749        
10750        Super class destroy() could (through some selection code in removeChild()) trigger section recalc 
10751        in middle of RenderTableCell::destroy(), cleaning section dirty bit. This would later crash in 
10752        layout since cell grid would still have refence to the dead cell.
10753        
10754        Ensure table sections are dirty when leaving destroy method.
10755        
10756        I can't figure out tests for row and section changes but they look like
10757        they could crash in similar way as cell.
10758
10759        * rendering/RenderTableCell.cpp:
10760        (WebCore::RenderTableCell::destroy):
10761        * rendering/RenderTableRow.cpp:
10762        (WebCore::RenderTableRow::destroy):
10763        * rendering/RenderTableSection.cpp:
10764        (WebCore::RenderTableSection::destroy):
10765
107662007-08-15  Maciej Stachowiak  <mjs@apple.com>
10767
10768        Reviewed by Geoff.
10769
10770        <rdar://problem/5389696> leak of 32-byte NSData object (and more?) in WebIconDatabase code path with each refresh of http://www.apple.com
10771        
10772        * platform/graphics/BitmapImage.h: Use RetainPtr for m_nsImage and m_tiffRep
10773        * platform/graphics/mac/ImageMac.mm:
10774        (WebCore::BitmapImage::initPlatformData): No need to do anything now
10775        (WebCore::BitmapImage::invalidatePlatformData): Simplify
10776        (WebCore::BitmapImage::getTIFFRepresentation): Use RetainPtr to avoid leaks
10777        (WebCore::BitmapImage::getNSImage): Use RetainPtr to avoid leaks
10778
107792007-08-15  Darin Adler  <darin@apple.com>
10780
10781        Reviewed by Anders.
10782
10783        - fix <rdar://problem/5094895> REGRESSION (r19094): JavaScript timers don't
10784          work inside showModalDialog; caret also doesn't blink
10785
10786        * platform/Timer.h: Added fireTimersInNestedEventLoop.
10787        * platform/Timer.cpp:
10788        (WebCore::TimerBase::fireTimers): Added code to exit if the timersReadyToFire
10789        is cleared. This indicates that someone fired the timers in the nested event
10790        loop, so we should not fire any more timers ourselves.
10791        (WebCore::TimerBase::fireTimersInNestedEventLoop): Added. Sets timersReadyToFire
10792        to 0 so we won't return early and do nothing if the shared timer first. Then
10793        calls updateSharedTimer() so the shared timer will get scheduled as needed based
10794        on any pending timers.
10795
10796        * page/Chrome.cpp: (WebCore::Chrome::runModal): Call
10797        fireTimersInNestedEventLoop before calling runModal on the client.
10798
10799        * manual-tests/modal-dialog.html: Added a test that uses a timeout.
10800        * manual-tests/show-modal-dialog-test.html: Fixed a typo.
10801
108022007-08-15  Justin Garcia  <justin.garcia@apple.com>
10803
10804        Reviewed by Darin.
10805        
10806        http://bugs.webkit.org/show_bug.cgi?id=14971
10807        REGRESSION: cannot select reporter's e-mail in bugzilla
10808
10809        * page/EventHandler.cpp:
10810        (WebCore::EventHandler::canMouseDragExtendSelect): Allow drag-selecting inside
10811        a -webkit-user-select:ignore region.
10812
108132007-08-15  Beth Dakin  <bdakin@apple.com>
10814
10815        Reviewed by Hyatt.
10816
10817        Rolling back in. I made a silly mistake in XMLTokenizer that caused 
10818        this patch to crash SVG tests. It's fixed now!
10819
10820        Refactor of change for <rdar://problem/5404899> REGRESSION: Mail 
10821        crash in WebCore::FontFallbackList::fontDataAt() after dragging 
10822        image into text multiple times
10823
10824        The original fix that I made last night prevents the pending style 
10825        sheet count from being incremented until the element is in the 
10826        document. This fix prevents the style sheet from loading at all 
10827        until it is in the document.
10828
10829        Here is the fix.
10830        * dom/StyleElement.cpp:
10831        (WebCore::StyleElement::insertedIntoDocument): Call process.
10832        (WebCore::StyleElement::removedFromDocument): This can be reverted 
10833        to its original state before my patch last night.
10834        (WebCore::StyleElement::process): childrenChanged is now called 
10835        process. Return early if your not in the document.
10836        (WebCore::StyleElement::createSheet): Revert change from last 
10837        night. The inDocument check is now in caller childrenChanged.
10838        * dom/StyleElement.h: insertedIntoDocument() must now accept an 
10839        element in addition to a document.
10840
10841        This is an optimization to prevent calling updateStyleSelector() 
10842        too frequently.
10843        * dom/XMLTokenizer.cpp:
10844        (WebCore::XMLTokenizer::startElementNs):
10845        * html/HTMLStyleElement.cpp:
10846        (WebCore::HTMLStyleElement::HTMLStyleElement):
10847        (WebCore::HTMLStyleElement::finishedParsing):
10848        (WebCore::HTMLStyleElement::insertedIntoDocument):
10849        (WebCore::HTMLStyleElement::childrenChanged):
10850        (WebCore::HTMLStyleElement::sheetLoaded):
10851        * html/HTMLStyleElement.h:
10852        * ksvg2/svg/SVGStyleElement.cpp:
10853        (WebCore::SVGStyleElement::SVGStyleElement):
10854        (WebCore::SVGStyleElement::finishedParsing):
10855        (WebCore::SVGStyleElement::insertedIntoDocument):
10856        (WebCore::SVGStyleElement::childrenChanged):
10857        (WebCore::SVGStyleElement::sheetLoaded):
10858        * ksvg2/svg/SVGStyleElement.h:
10859        (WebCore::SVGStyleElement::setCreatedByParser):
10860
10861        This is a name change. Document::stylesheetLoaded() 
10862        is now Document::removePendingSheet()
10863        * dom/Document.cpp:
10864        (WebCore::Document::removePendingSheet):
10865        * dom/Document.h:
10866        * dom/ProcessingInstruction.cpp:
10867        (WebCore::ProcessingInstruction::sheetLoaded):
10868        * html/HTMLLinkElement.cpp:
10869        (WebCore::HTMLLinkElement::~HTMLLinkElement):
10870        (WebCore::HTMLLinkElement::setDisabledState):
10871        (WebCore::HTMLLinkElement::process):
10872        (WebCore::HTMLLinkElement::sheetLoaded):
10873        * page/Frame.cpp:
10874        (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
10875        (WebCore::UserStyleSheetLoader::setCSSStyleSheet):
10876
10877        This is another name change. closeRenderer() is now 
10878        finishedParsing()
10879        * dom/Node.h:
10880        (WebCore::Node::finishedParsing):
10881        * dom/XMLTokenizer.cpp:
10882        (WebCore::XMLTokenizer::endElementNs):
10883        (WebCore::):
10884        * html/HTMLAppletElement.cpp:
10885        (WebCore::HTMLAppletElement::finishedParsing):
10886        * html/HTMLAppletElement.h:
10887        * html/HTMLGenericFormElement.cpp:
10888        (WebCore::HTMLFormControlElementWithState::finishedParsing):
10889        * html/HTMLGenericFormElement.h:
10890        * html/HTMLObjectElement.cpp:
10891        (WebCore::HTMLObjectElement::finishedParsing):
10892        * html/HTMLObjectElement.h:
10893        * html/HTMLParser.cpp:
10894        (WebCore::HTMLParser::insertNode):
10895        (WebCore::HTMLParser::popOneBlockCommon):
10896        * html/HTMLScriptElement.cpp:
10897        (WebCore::HTMLScriptElement::finishedParsing):
10898        * html/HTMLScriptElement.h:
10899        (WebCore::HTMLStyleElement::setCreatedByParser):
10900        * ksvg2/svg/SVGAnimationElement.cpp:
10901        (WebCore::SVGAnimationElement::finishedParsing):
10902        * ksvg2/svg/SVGAnimationElement.h:
10903        * ksvg2/svg/SVGElement.cpp:
10904        (WebCore::SVGElement::finishedParsing):
10905        * ksvg2/svg/SVGElement.h:
10906
109072007-08-15  David Harrison  <harrison@apple.com>
10908
10909        Reviewed by Antti Koivisto.
10910
10911        <rdar://problem/5411803> Bumpercar crashes when loading a partial URL (FrameLoader::receivedMainResourceError())
10912
10913        * loader/MainResourceLoader.cpp:
10914        (WebCore::MainResourceLoader::receivedError):
10915        Nil check for the FrameLoader.
10916
109172007-08-14  Steve Falkenburg  <sfalken@apple.com>
10918
10919        <rdar://problem/5411482> Windows user agent language always returns "en"
10920        
10921        Implement defaultLanguage().
10922
10923        Reviewed by Oliver.
10924
10925        * WebCore.vcproj/WebCore.vcproj: Added Language.cpp.
10926        * platform/win/Language.cpp: Added.
10927        (WebCore::localeInfo): Added.
10928        (WebCore::defaultLanguage): Added.
10929        * platform/win/TemporaryLinkStubs.cpp: Remove defaultLanguage stub.
10930
109312007-08-14  Sam Weinig  <sam@webkit.org>
10932
10933        Reviewed by Geoff and Oliver.
10934
10935        Fix for <rdar://problem/5267870>
10936        Mangleme: Reproducible assertion failure in -[WebCoreFrameBridge installInFrame:]
10937
10938        - Change embed/plugin code path to detach the frame on willRemove instead of detach.
10939          This matches what frame and iframe do.
10940
10941        Test: http/tests/misc/embedCrasher.html
10942
10943        * html/HTMLPlugInElement.cpp:
10944        (WebCore::HTMLPlugInElement::willRemove):
10945        * html/HTMLPlugInElement.h:
10946
109472007-08-14  Adele Peterson  <adele@apple.com>
10948
10949        Reviewed by Maciej.
10950
10951        Fix for <rdar://problem/5370059> REGRESSION: Cannot type into edit fields on a form (sccsheriff.org)
10952
10953        This change makes -webkit-user-select an inherited css property.  For "user-select: none" we were already 
10954        acting like it was an inheritable property, where we let user-select:text on the children override its parent's user-select:none.
10955        By making user-select really inherited (instead of inherited for some values), we eliminate the need for crawling up the tree to see 
10956        if an ancestor has user-select ignore set.
10957
10958        * page/EventHandler.cpp: (WebCore::EventHandler::canMouseDownStartSelect):
10959          Now that user-select is inherited, you don't need to walk up the render tree looking for ancestors with user-select:ignore set.
10960
10961        * css/CSSStyleSelector.cpp: Eliminate SELECT_AUTO.
10962        (WebCore::CSSStyleSelector::adjustRenderStyle):
10963        (WebCore::CSSStyleSelector::applyProperty):
10964        * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
10965
10966        * rendering/RenderStyle.h:
10967        (WebCore::): Eliminate SELECT_AUTO.  Make userSelect inherited.
10968        (WebCore::RenderStyle::userSelect):
10969        (WebCore::RenderStyle::setUserSelect):
10970        (WebCore::RenderStyle::initialUserSelect):
10971        * rendering/RenderStyle.cpp:
10972        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
10973        (WebCore::StyleRareNonInheritedData::operator==):
10974        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
10975        (WebCore::StyleRareInheritedData::operator==):
10976        (WebCore::RenderStyle::diff):
10977
109782007-08-15  Peter Kasting  <pkasting@google.com>
10979
10980        Reviewed by Darin.
10981        
10982        http://bugs.webkit.org/show_bug.cgi?id=14967 part 1 - Eliminate most implicit
10983        conversions of wtf::Vector<T> to T* by explicitly calling .data()
10984
10985        * html/HTMLSelectElement.cpp:
10986        (WebCore::HTMLSelectElement::saveState):
10987        * platform/KURL.cpp:
10988        (WebCore::KURL::KURL):
10989        (WebCore::KURL::init):
10990        (WebCore::KURL::decode_string):
10991        (WebCore::KURL::parse):
10992        (WebCore::KURL::encode_string):
10993        * platform/cf/KURLCFNet.cpp:
10994        (WebCore::KURL::KURL):
10995        * platform/mac/KURLMac.mm:
10996        (WebCore::KURL::KURL):
10997        * rendering/RenderFrameSet.cpp:
10998        (WebCore::RenderFrameSet::layOutAxis):
10999
110002007-08-14  Ricci Adams  <iccir@apple.com>
11001
11002        Reviewed by Darin, Hyatt.
11003
11004        - fix <rdar://problem/5407795> -apple-line-clamp should never display less than one line
11005
11006        * rendering/RenderFlexibleBox.cpp:(WebCore::RenderFlexibleBox::layoutVerticalBox): Use
11007        max to make sure it never computes a minimum of less than one line.
11008
110092007-08-14  Brady Eidson  <beidson@apple.com>
11010
11011        Reviewed by Darin, John, Maciej, Oliver, and Tim
11012
11013        <rdar://problem/5394708> - Crash on launch with corrupt icon database
11014
11015        The main part of the fix is to not disable SQLite's default level of protection - to leave the sync options at their normal,
11016        mostly safe levels.  
11017
11018        But in case lightning strikes at the exact right moment and someone ends up with a corrupt database, add some support code to
11019        detect that condition and recover from it.  
11020
11021        This is mainly accomplished by exposing the "PRAGMA integrity_check;" facilities of sqlite through IconDatabase SPI as well as
11022        running that integrity check if a journal file is detected at launch (a strong indication that the last quit was not clean).
11023        There's also a method exposed to allow clients to tell the icon database "I suspect something bad happened, please check integrity"
11024
11025        * loader/icon/IconDatabase.cpp:
11026        (WebCore::IconDatabase::checkIntegrityBeforeOpening): Allow clients to suggest an integrity check
11027        (WebCore::IconDatabase::open): Add a check to see if the journal file for the database exists.  If it does, run the integrity
11028          check.  Also run the check if a client has suggested it to be necessary.
11029          If the integrity-check fails, we sadly have to destroy the database and recreate from scratch.
11030          Also - quite importantly - do not adjust the default sync preferences for the SQLDatabase.  They were an optimization that 
11031          might have been valid at one time but no longer affects any benchmarks we care about.
11032        (WebCore::IconDatabase::checkIntegrity): Perform the SQLite integrity_check pragma
11033        * loader/icon/IconDatabase.h:
11034
11035        * loader/icon/IconDatabaseNone.cpp:
11036        (WebCore::IconDatabase::checkIntegrity): Keep IconDatabaseNone users building
11037        (WebCore::IconDatabase::checkIntegrityBeforeOpening): Ditto
11038
11039        * loader/icon/SQLDatabase.cpp:
11040        (WebCore::SQLDatabase::open): Make a copy of the path string so we don't accidentally mutate anyone else's string on ::close()
11041
11042        * platform/FileSystem.h: Added. Begin a long-needed platform file system abstraction
11043        * platform/mac/FileSystemMac.mm: Added.
11044        (WebCore::fileExists): Check if a file exists
11045        (WebCore::deleteFile): Delete a file
11046
11047        * platform/gdk/TemporaryLinkStubs.cpp:
11048        (WebCore::fileExists):
11049        (WebCore::deleteFile):
11050        * platform/qt/TemporaryLinkStubs.cpp:
11051        (WebCore::fileExists):
11052        (WebCore::deleteFile):
11053        * platform/win/TemporaryLinkStubs.cpp:
11054        (WebCore::fileExists):
11055        (WebCore::deleteFile):
11056
11057        * WebCore.exp:
11058        * WebCore.xcodeproj/project.pbxproj:
11059
110602007-08-14  Jon Honeycutt  <jhoneycutt@apple.com>
11061
11062        Reviewed by Steve.
11063
11064        Build fix for Windows.
11065
11066        * html/HTMLFormElement.cpp:
11067
110682007-08-14  George Staikos  <staikos@kde.org>
11069
11070        Only connect the menu signal once.
11071
11072        * platform/qt/ContextMenuQt.cpp:
11073        (WebCore::ContextMenu::ContextMenu):
11074        (WebCore::ContextMenu::insertItem):
11075
110762007-08-14  Justin Garcia  <justin.garcia@apple.com>
11077
11078        Reviewed by Tim.
11079
11080        <rdar://problem/5408255> REGRESSION: In Mail, clicking the containing element's UI closebox doesn't delete element
11081
11082        * editing/DeleteButtonController.cpp:
11083        (WebCore::DeleteButtonController::show): Use -webkit-user-select:ignore for
11084        the deletion UI.
11085
110862007-08-14  Antti Koivisto  <antti@apple.com>
11087
11088        Reviewed by Darin.
11089        
11090        Fix <rdar://problem/5143183>
11091        Air Mail postmark shows up wrong in Firefox due to use of CSS background-position-x/y
11092        
11093        Safari was using non-standard background-position-x/y properties when serializing style, both normal 
11094        and computed. As a result Safari generated CSS would not render correctly in Firefox. 
11095        
11096        Use standard background-position property instead.
11097
11098        * css/CSSComputedStyleDeclaration.cpp:
11099        (WebCore::):
11100        * css/CSSMutableStyleDeclaration.cpp:
11101        (WebCore::CSSMutableStyleDeclaration::cssText):
11102
111032007-08-14  Sam Weinig  <sam@webkit.org>
11104
11105        Reviewed by Brady and Dr. Harrison.
11106
11107        Fix typo.  'whitespace' property is spelled 'white-space'.
11108
11109        * page/inspector/inspector.css:
11110
111112007-08-13  Beth Dakin  <bdakin@apple.com>
11112
11113        Reviewed by Maciej.
11114
11115        Fix for <rdar://problem/5404899> REGRESSION: Mail crash in 
11116        WebCore::FontFallbackList::fontDataAt() after dragging image into 
11117        text multiple times
11118
11119        We were crashing because style information was not up-to-date. This 
11120        patch fixes the problem in two ways:
11121
11122        Style information was not up to date at the time of the crash 
11123        because the document thought there was still a pending style sheet. 
11124        The pending style sheet counter was incremented when a call to 
11125        cloneNode from Mail cloned a style node with an imported style 
11126        sheet. Because Mail disables the cache, the style sheet did not 
11127        load immediately for the cloned node, and we do not check again to 
11128        see if it has loaded in time to decrement the pending style sheet 
11129        counter before the crash point. The fix here is only to increment 
11130        the pending style sheet counter for elements that are already in 
11131        the document.
11132        * dom/StyleElement.cpp:
11133        (WebCore::StyleElement::insertedIntoDocument): If we have a CSS 
11134        style sheet that is currently loading, increment the pending style 
11135        sheet counter. This should keep the counter accurate in the case 
11136        where a style node is cloned and then immediately inserted into the 
11137        document.
11138        (WebCore::StyleElement::removedFromDocument): If we have a CSS 
11139        style sheet that is currently loading, decrement the pending style 
11140        sheet count. This is required to keep the correct balance, given 
11141        the change above.
11142        (WebCore::StyleElement::createSheet): Only addPendingSheet() and 
11143        checkLoaded() if we are in the document.
11144
11145        Here is Darin's original fix. It seems worth keeping this fix too. 
11146        Font style information should not cause a crash if there are still 
11147        pending style sheets. This is good belt-and-suspenders in case 
11148        there is another way to run into this bug with a wacky timing 
11149        issue.
11150        * css/CSSStyleSelector.cpp:
11151        (WebCore::CSSStyleSelector::styleForElement): Update the font.
11152
111532007-08-13  Alexey Proskuryakov  <ap@webkit.org>
11154
11155        Reviewed by Darin.
11156
11157        http://bugs.webkit.org/show_bug.cgi?id=14635
11158        rdar://problem/5340188
11159        Uploading file with non-ASCII character in path fails
11160
11161        File upload cannot be tested in DumpRenderTree.
11162
11163        * html/HTMLFormElement.cpp:
11164        (WebCore::pathGetFilename): A cross-platform helper that extracts a file name from a path.
11165        (WebCore::HTMLFormElement::formData): Use the above helper instead of code that doesn't
11166        work on Windows.
11167
111682007-08-13  Alexey Proskuryakov  <ap@webkit.org>
11169
11170        Reviewed by Darin.
11171
11172        http://bugs.webkit.org/show_bug.cgi?id=14951
11173        REGRESSION: page interpreted as UTF-8 because of stray <?xml> after <head>
11174
11175        Test: fast/encoding/misplaced-xml-declaration.html
11176
11177        * loader/TextResourceDecoder.cpp:
11178        (WebCore::TextResourceDecoder::checkForHeadCharset): Only honor XML declaration
11179        at the very beginning of the file.
11180
111812007-08-13  Oliver Hunt  <oliver@apple.com>
11182
11183        rs=sam
11184
11185        Correct accidentally modified code.
11186
11187        * platform/mac/FontDataMac.mm:
11188        (WebCore::FontData::platformInit):
11189
111902007-08-13  Adele Peterson  <adele@apple.com>
11191
11192        Reviewed by Brady.
11193
11194        Fix for http://bugs.webkit.org/show_bug.cgi?id=14746
11195        <rdar://problem/5401041> REGRESSION: Form state not saved for forms that submit via HTTPS even if they do not contain a password field
11196
11197        * loader/FrameLoader.cpp: (WebCore::FrameLoader::saveDocumentState): Restore our old behavior that will save form state for secure forms.
11198          This will also match Firefox behavior.
11199
11200        * dom/Document.cpp: Removed secureFormAdded(), secureFormRemoved(), hasSecureForm() which are no longer used.
11201        * dom/Document.h:
11202        * html/HTMLFormElement.cpp:
11203        (WebCore::HTMLFormElement::attach):
11204        (WebCore::HTMLFormElement::parseMappedAttribute):
11205
112062007-08-13  Oliver Hunt  <oliver@apple.com>
11207
11208        Reviewed by Maciej.
11209
11210        <rdar://problem/5386183> REGRESSION (9A504-9A508): Underline of inline hole is too thin 
11211        on Japanese DotMac page
11212        
11213        Hack the line metrics for the Hiragino font families so that they always allow space for
11214        the marked text underline.
11215        
11216        * platform/mac/FontDataMac.mm:
11217        (WebCore::FontData::platformInit):
11218
112192007-08-13  David Hyatt  <hyatt@apple.com>
11220
11221        Reviewed by aroben
11222 
11223        <rdar://problem/5400446> messed up content on calendar.yahoo.com and my.yahoo.com
11224
11225        Fix some more bad assumptions about <html> being the first child of the document now that we
11226        properly support HTML5's model (where a comment node preceding <html> will in fact be its sibling).
11227
11228        * html/HTMLParser.cpp:
11229        (WebCore::HTMLParser::handleError):
11230        (WebCore::HTMLParser::createHead):
11231
112322007-08-13  Justin Garcia  <justin.garcia@apple.com>
11233
11234        Reviewed by Darin.
11235        
11236        <rdar://problem/5333725> -webkit-user-select: none makes selection difficult
11237        
11238        Let users create selections if they mouse down in a -webkit-user-select:none
11239        region, just (continue to) disallow selection endpoints in those regions, and
11240        don't paint those regions as selected if they are fully enclosed by a selection. 
11241        For example, in xxyyyxx where x is -webkit-user-select:none, a user can mouse down
11242        between the first two xs and drag across yyy to the second two xs to create a 
11243        selection xx^yyy^xx.
11244        
11245        * editing/SelectionController.cpp:
11246        (WebCore::SelectionController::selectAll): Allow selectAll inside a root
11247        that has -webkit-user-select:none, because it may contain content that
11248        is selectable (VisiblePosition and Selection creation will keep Selection
11249        endpoints out of -webkit-user-select:none regions).
11250        * page/EventHandler.cpp:
11251        (WebCore::EventHandler::selectClosestWordFromMouseEvent): Use canMouseDownStartSelect
11252        instead of the ambiguously named shouldSelect().
11253        (WebCore::EventHandler::handleMousePressEventTripleClick): Ditto.
11254        (WebCore::EventHandler::handleMousePressEventSingleClick): Ditto.
11255        (WebCore::EventHandler::updateSelectionForMouseDrag): Use canMouseDragExtendSelect.
11256        (WebCore::EventHandler::selectCursor): Paint an ibeam in -webkit-user-select:none regions,
11257        because you can click in those regions to create a selection.
11258        (WebCore::EventHandler::canMouseDownStartSelect): Now fires the selectStart event, and
11259        returns true in -webkit-user-select: none regions.
11260        (WebCore::EventHandler::canMouseDragExtendSelect): This is identical to 
11261        canMouseDownStartSelect because of 12823, even though it seems strange that we would fire 
11262        the selectStart event here.
11263        * page/EventHandler.h:
11264        * rendering/RenderObject.cpp:
11265        (WebCore::RenderObject::draggableNode): Only -webkit-user-select:ignore regions will
11266        prevent selection creation.
11267        * rendering/RenderObject.h:
11268
112692007-08-13  Anders Carlsson  <andersca@apple.com>
11270
11271        Reviewed by Maciej.
11272
11273        <rdar://problem/5360748>
11274        REGRESSION (r21002-r21003): Flash widget sniffer doesn't work (affects iWeb)
11275
11276        Don't check whether the document is being parsed or not, because the node list
11277        could be accessed after the document has finished parsing.
11278        
11279        * dom/Node.cpp:
11280        (WebCore::Node::registerNodeList):
11281
112822007-08-13  Lars Knoll  <lars@trolltech.com>
11283
11284        Reviewed by Simon.
11285
11286        no need to update regions that are not visible on the webpage.
11287
11288        * platform/qt/ScrollViewQt.cpp:
11289        (WebCore::ScrollView::updateContents):
11290
112912007-08-12  Maciej Stachowiak  <mjs@apple.com>
11292
11293        Reviewed by Darin and Sam.
11294        
11295        <rdar://problem/5395213> cross-domain access to individual components of location object should be denied.
11296
11297        * bindings/js/kjs_window.cpp:
11298        (KJS::Location::put): Add the appropriate cross-domain access checks.
11299
113002007-08-12  Darin Adler  <darin@apple.com>
11301
11302        Reviewed by John Sullivan.
11303
11304        - fix <rdar://problem/5403724> REGRESSION: text inputs are not scrolled to make inline input visible (14912)
11305
11306        * editing/Editor.h: Made setIgnoreMarkedTextSelectionChange no longer inline.
11307        It now has a side effect of revealing the selection when you set it to false.
11308        Added private revealSelectionAfterEditingOperation helper.
11309        * editing/Editor.cpp:
11310        (WebCore::Editor::deleteRange): Calls revealSelectionAfterEditingOperation instead
11311        of calling m_frame->revealSelection directly.
11312        (WebCore::Editor::replaceSelectionWithFragment): Ditto.
11313        (WebCore::Editor::insertOrderedList): Ditto.
11314        (WebCore::Editor::insertUnorderedList): Ditto.
11315        (WebCore::Editor::increaseSelectionListLevel): Ditto.
11316        (WebCore::Editor::increaseSelectionListLevelOrdered): Ditto.
11317        (WebCore::Editor::increaseSelectionListLevelUnordered): Ditto.
11318        (WebCore::Editor::decreaseSelectionListLevel): Ditto.
11319        (WebCore::Editor::insertLineBreak): Ditto.
11320        (WebCore::Editor::insertParagraphSeparator): Ditto.
11321        (WebCore::Editor::replaceMarkedText): Ditto.
11322        (WebCore::Editor::revealSelectionAfterEditingOperation): Added. Calls revealSelection,
11323        unless we are in the ignoreMarkedTextSelectionChange state. If we are in that state,
11324        we're in the middle of a composite editing operation and we shouldn't try to scroll
11325        to reveal the selection until the operation is done.
11326        (WebCore::Editor::setIgnoreMarkedTextSelectionChange): Made no longer inline. If
11327        changing the state from true to false, then calls revealSelectionAfterEditingOperation.
11328
11329        * WebCore.exp: Add new entry point for no-longer-inline setter function.
11330
113312007-08-12  Geoffrey Garen  <ggaren@apple.com>
11332
11333        Reviewed by Maciej Stachowiak, Dave Hyatt.
11334        
11335        Changed the dead resource LRU-SP algorithm to measure an object's
11336        total size, not just its encoded size. This will allow us to make 
11337        better decisions about what data to evict when the cache is small. For 
11338        example, the PLT can now run with a 16MB cache without fully evicting
11339        any resources.
11340        
11341        (Previously, we had assumed that decoded size would be an OK estimate
11342        of encoded size, but that is not true of GIF, whose decoded size can be 
11343        orders of magnitude greater than its encoded size.)
11344        
11345        Subtly, destroying a resource's decoded data now increases its recency 
11346        by moving it to the head of a smaller LRU list. This is slightly odd,
11347        but, since all resources get the same treatment, it shouldn't hurt 
11348        the eviction algorithm.
11349
11350        * history/PageCache.cpp:
11351        (WebCore::PageCache::releaseAutoreleasedPagesNow): Make sure that a
11352        dead resource eviction doesn't happen until we've released all of our
11353        dead pages. Otherwise, the cache will make terrible decisions about 
11354        what to evict because all of our dead resources will seem live.
11355
11356        * loader/Cache.cpp:
11357        (WebCore::Cache::Cache):
11358        (WebCore::Cache::pruneLiveResources):
11359        (WebCore::Cache::pruneDeadResources): Removed call to 
11360        removeFromLiveDecodedResourcesList because this happens automatically
11361        now as a part of the process of changing the resource's decoded size.
11362        (WebCore::Cache::lruListFor): *** The key change. *** Compute the 
11363        appropriate LRU list based on total size, not encoded size.
11364        (WebCore::Cache::dumpLRULists): Added debug logging function to help
11365        visualize the cache.
11366
11367        * loader/Cache.h:
11368        (WebCore::Cache::setDeadResourcePruneEnabled):
11369        (WebCore::Cache::deadResourcePruneEnabled):
11370
11371        * loader/CachedImage.cpp: Moved decoded size tracking code from here
11372        up into the base class. Currently, only CachedImage has a use for that
11373        functionality, but other subclasses might need it in the future, and
11374        the base class is already responsible for similar code related to 
11375        encoded size tracking.
11376        (WebCore::CachedImage::decodedSizeChanged):
11377        * loader/CachedImage.h:
11378
11379        * loader/CachedResource.cpp:
11380        (WebCore::CachedResource::CachedResource):
11381        (WebCore::CachedResource::setDecodedSize): Move us in the LRU-SP list
11382        just like setEncodedSize does, since decoded size counts now, too.
11383        (WebCore::CachedResource::setEncodedSize): Changed slightly to match
11384        the style of setDecodedSize.
11385
11386        * loader/CachedResource.h:
11387        (WebCore::CachedResource::decodedSize):
11388
113892007-08-11  Mitz Pettel  <mitz@webkit.org>
11390
11391        Reviewed by Darin.
11392
11393        - fix http://bugs.webkit.org/show_bug.cgi?id=13670
11394          <rdar://problem/5399619> Table misrender when one of the TDs has width=100%
11395
11396        Tests: fast/table/100-percent-cell-width.html
11397               fast/table/percent-widths-stretch.html
11398
11399        * rendering/AutoTableLayout.cpp:
11400        (WebCore::AutoTableLayout::calcPrefWidths): Changed the value used instead of
11401        0% to avoid division by zero from 1% to less than 0.01%. Removed code that
11402        added 0.5px to non-percent widths when calculating the scaling factor. The
11403        latter change is covered by the percent-widths-stretch test, where the new
11404        results match both WinIE 7 and Firefox 3.
11405
114062007-08-11  Darin Adler  <darin@apple.com>
11407
11408        Reviewed by Antti.
11409
11410        - fix <rdar://problem/5266535> REGRESSION: <img> inside <map> no longer allowed in strict mode
11411          (breaks chemicalelements.com)
11412
11413        Test: fast/parser/strict-img-in-map.html
11414
11415        * html/HTMLMapElement.cpp: (WebCore::HTMLMapElement::checkDTD): Removed FIXME saying this
11416        code is strange, since this code matches the HTML 4 specification almost exactly. Made
11417        <img> elements allowed even in strict mode and added small comments to clarify what comes
11418        from the DTD and what is non-standard.
11419
114202007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11421
11422        Reviewed by Anders.
11423
11424        Implement passing events to a subframe. The code is copied from
11425        the windows port and passSubframeEventToSubframe was removed as it
11426        is not called and it is not avilable in the windows port as well.
11427
11428        * page/gdk/EventHandlerGdk.cpp:
11429        (WebCore::EventHandler::passMousePressEventToSubframe):
11430        (WebCore::EventHandler::passMouseMoveEventToSubframe):
11431        (WebCore::EventHandler::passMouseReleaseEventToSubframe):
11432
114332007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11434
11435        Reviewed by Lars.
11436
11437        GdkEventKey::string is not supposed to be used. The length
11438        of this string is zero for non ascii characters. Use the
11439        gdk_unicode_to_keyval to convert the keyval to a UChar and construct
11440        a String. This change makes it possible to input non ascii
11441        characters.
11442
11443        * platform/gdk/KeyEventGdk.cpp:
11444        (WebCore::keyIdentifierForGdkKeyCode):
11445        (WebCore::singleCharacterString):
11446        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
11447
114482007-08-11  Andrew Wellington  <proton@wiretapped.net>
11449
11450        Reviewed by Mark Rowe.
11451        
11452        Fix http://bugs.webkit.org/show_bug.cgi?id=14645
11453        getPropertyValue should be case insensitive
11454        
11455        When we get the propertyID for a given string we convert to lowercase.
11456        
11457        This also applies to setProperty, removeProperty and others.
11458        
11459        * css/CSSStyleDeclaration.cpp:
11460        (WebCore::propertyID):
11461
114622007-08-11  Mark Rowe  <mrowe@apple.com>
11463
11464        Build fix.  Change "#ifdef PLATFORM(GDK)" to "#if PLATFORM(GDK)".
11465
11466        * page/FrameView.cpp:
11467        * page/FrameView.h:
11468
114692007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11470
11471        Reviewed by Adam.
11472
11473        Copy the WebFrame::layoutIfNeededRecursive method of the windows port
11474        to FrameView to be used by the Gtk+ port. Simplify the implementation due
11475        moving it to the FrameView class.
11476
11477        Implement the ScrollView::children() method for the Gtk+ port and make it
11478        available to the FrameView as children() is used within the layoutIfNeededRecursive method.
11479
11480        * page/FrameView.cpp:
11481        (WebCore::FrameView::layoutIfNeededRecursive):
11482        * page/FrameView.h:
11483        * platform/ScrollView.h:
11484        * platform/gdk/ScrollViewGdk.cpp:
11485
114862007-08-11  Holger Hans Peter Freyther  <zecke@selfish.org>
11487
11488        Reviewed by Adam.
11489
11490        To fix text selection make the PlatformMouseEvent set the pressed
11491        button even when moving the mouse.
11492        
11493        Add building of the WebKit::DragClient stubs as they are needed to
11494        make text selection work.
11495
11496        * WebCore.pro:
11497        * platform/gdk/MouseEventGdk.cpp:
11498        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
11499
115002007-08-10  Anders Carlsson  <andersca@apple.com>
11501
11502        Reviewed by Darin and Maciej.
11503
11504        <rdar://problem/5360748>
11505        REGRESSION(r21002-r21003) Flash widget sniffer doesn't work
11506        
11507        Add a per-document NodeList counter. When parsing, only call notifyNodeListsChildrenChanged
11508        if the document has node lists. Also, make sure to reset the cache when the node list count has 
11509        been 0 and a new node list is registered to avoid any stale cache information.
11510        
11511        * dom/ContainerNode.cpp:
11512        (WebCore::ContainerNode::addChild):
11513        * dom/Document.cpp:
11514        (WebCore::Document::Document):
11515        * dom/Document.h:
11516        (WebCore::Document::addNodeList):
11517        (WebCore::Document::removeNodeList):
11518        (WebCore::Document::hasNodeLists):
11519        * dom/Node.cpp:
11520        (WebCore::Node::registerNodeList):
11521        (WebCore::Node::unregisterNodeList):
11522
115232007-08-10  Timothy Hatcher  <timothy@apple.com>
11524
11525        Reviewed by Adam.
11526
11527        <rdar://problem/5394449> Stop using some Carbon UI APIs for 64 bit
11528
11529        Disable NPObject use in 64-bit on Mac OS X.
11530
11531        * Configurations/WebCore.xcconfig: Add a framework search path to the sub-framworks of Carbon.
11532        * WebCore.xcodeproj/project.pbxproj: Filter out the Frame::windowScriptNPObject() symbol in 64-bit.
11533        * bindings/objc/DOM.mm:
11534        (-[DOMElement _NPObject]): Return null in 64-bit.
11535        * config.h: Set WTF_USE_NPOBJECT to 0 in 64-bit Mac OS X.
11536        * page/Frame.cpp:
11537        (WebCore::Frame::cleanupScriptObjects): Add more #if USE(NPOBJECT) blocks where needed.
11538        * page/Frame.h: Ditto.
11539        * page/mac/FrameMac.mm:
11540        (WebCore::Frame::createScriptInstanceForWidget): Ditto.
11541        * page/mac/WebCoreFrameBridge.h: Ditto.
11542        * page/mac/WebCoreFrameBridge.mm: Ditto.
11543
115442007-08-10  Mitz Pettel  <mitz@webkit.org>
11545
11546        Reviewed by Justin.
11547
11548        - fix <rdar://problem/5397344> http://bugs.webkit.org/show_bug.cgi?id=14911
11549          REGRESSION: Clicking in pasted text doesn't position the insertion point correctly
11550
11551        Test: editing/selection/inline-closest-leaf-child.html
11552
11553        * rendering/RootInlineBox.cpp:
11554        (WebCore::RootInlineBox::closestLeafChildForXPos): Return the last leaf if
11555        it's the closest match, or if no other leaf matches (for example if all
11556        leaves are list markers or non-editable where editable is required).
11557
115582007-08-10  Anders Carlsson  <andersca@apple.com>
11559
11560        Reviewed by Geoff.
11561
11562        <rdar://problem/5390568> 
11563        REGRESSION: -[WebFrame loadHTMLString:baseURL:] leaks the data source.
11564        
11565        Revert the fix for <rdar://problem/5133420> which caused us to not cancel 
11566        substitute data loads. It's better to remove the assertion in the WebKit layer.
11567        
11568        * loader/ResourceLoader.cpp:
11569        (WebCore::ResourceLoader::didCancel):
11570
115712007-08-10  Sam Weinig  <sam@webkit.org>
11572
11573        Rubber-stamped by Adam Roben.
11574
11575        Fix Windows, Qt and Gtk build.
11576
11577        * WebCore.pro:
11578        * WebCore.vcproj/WebCore.vcproj:
11579
115802007-08-09  Sam Weinig  <sam@webkit.org>
11581
11582        Reviewed by Maciej.
11583
11584        Fix for <rdar://problem/5395618>
11585
11586        Use checkNodeSecurity when setting the 'src' or 'location' attribute of an
11587        iframe or frame element.  
11588
11589        * WebCore.xcodeproj/project.pbxproj:
11590        * bindings/js/JSAttrCustom.cpp: Added.
11591        (WebCore::JSAttr::setValue): Call checkNodeSecurity for attributes with a current iframe or frame
11592        ownerElement when setting src to a javascript: URL.
11593        * bindings/js/JSElementCustom.cpp: Added.
11594        (WebCore::allowSettingSrcToJavascriptURL):
11595        (WebCore::JSElement::setAttribute): Call checkNodeSecurity when element is a frame or iframe and 
11596        setting he src attribute to a javascript: URL.
11597        (WebCore::JSElement::setAttributeNode): Ditto.
11598        (WebCore::JSElement::setAttributeNS): Ditto.
11599        (WebCore::JSElement::setAttributeNodeNS): Ditto.
11600        * bindings/js/JSHTMLFrameElementCustom.cpp: Added.
11601        (WebCore::allowSettingJavascriptURL):
11602        (WebCore::JSHTMLFrameElement::setSrc): Call checkNodeSecurity when setting to a javascript: URL.
11603        (WebCore::JSHTMLFrameElement::setLocation): Ditto.
11604        * bindings/js/JSHTMLIFrameElementCustom.cpp: Added.
11605        (WebCore::JSHTMLIFrameElement::setSrc): Call checkNodeSecurity when setting to a javascript: URL.
11606        * bindings/scripts/CodeGeneratorJS.pm: Add support for [CustomGetter] and [CustomSetter]
11607        * dom/Attr.idl:
11608        * dom/Element.idl:
11609        * html/HTMLFrameElement.idl:
11610        * html/HTMLIFrameElement.idl:
11611
116122007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11613
11614        Reviewed by Anders.
11615
11616        Make the containingWindow a GtkContainer and make use of the
11617        GtkWidget::window instead of the GtkLayout::bin_window.
11618
11619        * platform/Widget.h:
11620        * platform/gdk/PlatformScreenGdk.cpp:
11621        (WebCore::screenDepth):
11622        * platform/gdk/ScrollViewGdk.cpp:
11623        (WebCore::ScrollView::updateContents):
11624        (WebCore::ScrollView::update):
11625        * platform/gdk/WidgetGdk.cpp:
11626        (WebCore::Widget::setContainingWindow):
11627        (WebCore::Widget::setCursor):
11628
116292007-08-10  Simon Hausmann  <hausmann@kde.org>
11630
11631        Reviewed by Lars.
11632
11633        Revert r24699 as it broke timers. The precision of QTime::toTime_t() is just seconds, which is not good enough. Revert back
11634        to the old implementation and use the simple implementation of currentTime() from win/ for the Qt/Windows build (fingers crossed :)
11635
11636        * WebCore.pro:
11637        * platform/qt/SystemTimeQt.cpp:
11638        (WebCore::currentTime):
11639
116402007-08-10  Simon Hausmann  <hausmann@kde.org>
11641
11642        Reviewed by Lars.
11643
11644        Recognize .htm as valid extension for text/html.
11645
11646        * platform/qt/MIMETypeRegistryQt.cpp:
11647        (WebCore::):
11648
116492007-08-10  Lars Knoll  <lars@trolltech.com>
11650
11651        Reviewed by Simon.
11652
11653        remove an assertion that leads to crashes. The whole design of WidgetQt and ScrollViewQt needs to be reevaluated soon anyways.
11654
11655        * platform/qt/ScrollViewQt.cpp:
11656
116572007-08-10  Mark Rowe  <mrowe@apple.com>
11658
11659        Fix the Mac build.
11660
11661        * ForwardingHeaders/bindings/runtime_object.h: Added.
11662
116632007-08-10  Simon Hausmann  <hausmann@kde.org>
11664
11665        Reviewed by Lars.
11666
11667        Make sure -fno-strict-aliasing is also added for mkspecs like linux-g++-64.
11668
11669        * WebCore.pro:
11670
116712007-08-10  Simon Hausmann  <hausmann@kde.org>
11672
11673        Reviewed by Lars.
11674
11675        Enable JavaScript bindings for HTML Object/Applet elements in the Qt port.
11676
11677        * WebCore.pro:
11678        * bindings/js/kjs_dom.cpp:
11679        * html/HTMLAppletElement.h:
11680        * html/HTMLEmbedElement.h:
11681        * page/qt/FrameQt.cpp:
11682        (WebCore::Frame::createScriptInstanceForWidget):
11683
116842007-08-10  Mitz Pettel  <mitz@webkit.org>
11685
11686        Reviewed by Dave Hyatt.
11687
11688        - fix http://bugs.webkit.org/show_bug.cgi?id=14798
11689          Incorrect bidi reordering of neutrals and digits after RTL embed
11690          and other bugs in the bidi algorithm.
11691
11692        Test: fast/text/international/bidi-neutral-run.html
11693
11694        Fixed several bugs in resolving the embedding level of runs of neutral
11695        characters. Changed the logic to rely on the eor direction only for
11696        the number types, and otherwise consider the last strong type.
11697
11698        * platform/BidiContext.h:
11699        (WebCore::BidiContext::BidiContext): Added an ASSERT.
11700        * platform/BidiResolver.h:
11701        (WebCore::::embed):
11702        (WebCore::::createBidiRunsForLine):
11703        * platform/graphics/GraphicsContext.cpp:
11704        (WebCore::TextRunIterator::atEnd): Changed to return true instead of
11705        crashing when called on the empty iterator.
11706
117072007-08-09  Mark Rowe  <mrowe@apple.com>
11708
11709        Reviewed by Antti.
11710
11711        <rdar://problem/5400709> Versioning in debug and release builds should include minor and tiny version before +
11712
11713        * Configurations/Version.xcconfig:
11714        * WebCore.xcodeproj/project.pbxproj: Add a shell script phase to make to dependency between
11715        Version.xcconfig and Info.plist explicit to Xcode.
11716
117172007-08-09  Mitz Pettel  <mitz@webkit.org>
11718
11719        Reviewed by Justin Garcia.
11720
11721        - fix http://bugs.webkit.org/show_bug.cgi?id=14347
11722          REGRESSION (r21291): Initiating a drag near the edge of a selection deselects it
11723
11724        Test: editing/selection/contains-boundaries.html
11725
11726        * editing/SelectionController.cpp:
11727        (WebCore::SelectionController::contains): Changed to return true for the
11728        selection boundaries too.
11729
117302007-08-09  Mitz Pettel  <mitz@webkit.org>
11731
11732        Reviewed by Dave Hyatt.
11733
11734        - fix http://bugs.webkit.org/show_bug.cgi?id=14742
11735          Document::recalcStyle(Force) called for every updateStyleIgnorePendingStylesheets while waiting for stylesheets
11736          <rdar://problem/5376306>
11737
11738        updateStyleSelector() is normally called when something changes that factors
11739        into the style selector. However, updateLayoutIgnorePendingStylesheets() calls it for
11740        a different reason, namely to account for all the preceding changes that were ignored
11741        because of the early return in updateStyleSelector(). After that, the early return
11742        can no longer occur, so changes are accounted for as they happen, and
11743        updateLayoutIgnorePendingStylesheets() does not need to call updateStyleSelector()
11744        again.
11745
11746        * dom/Document.cpp:
11747        (WebCore::Document::updateLayoutIgnorePendingStylesheets): Call updateStyleSelector()
11748        only before the first layout.
11749
117502007-08-09  Mitz Pettel  <mitz@webkit.org>
11751
11752        Reviewed by Adam Roben.
11753
11754        - fix http://bugs.webkit.org/show_bug.cgi?id=14362
11755          Opening a select list always highlights first element in list
11756
11757        * platform/win/PopupMenuWin.cpp:
11758        (WebCore::PopupWndProc): Track the mouse only inside the popup.
11759
117602007-08-09  Mitz Pettel  <mitz@webkit.org>
11761
11762        Reviewed by Dave Hyatt.
11763
11764        - fix http://bugs.webkit.org/show_bug.cgi?id=14875
11765          Textarea with nowrap - left/right nav, Up/down nav both hide text
11766
11767        Test: fast/layers/scroll-rect-to-visible.html
11768
11769        * rendering/RenderLayer.cpp:
11770        (WebCore::RenderLayer::scrollRectToVisible): Account for borders and scroll bars.
11771
117722007-08-09  Geoffrey Garen  <ggaren@apple.com>
11773
11774        Reviewed by Dave Hyatt.
11775        
11776        Refactored live decoded resource eviction to be more modular / 
11777        encapsulated. 
11778        
11779        This fixes one known place where we forgot to hook into the live 
11780        decoded eviction mechanism -- canvas. There might be other, unknown 
11781        places. In a canvas test page, which I broke off from the Safari 
11782        pageout test, I saw an RPRVT reduction of ~10MB.
11783        
11784        A few renames:
11785        - "m_lastLiveAccessTime" => "m_lastDecodedAccessTime" because the data
11786        point we're recording is access to the resource in decoded form.
11787        
11788        - "liveResourceAccessed" => "didAccessDecodedData" for the same reason.
11789
11790        - "pruneAllResources" => "pruneDeadResources" because this function 
11791        does not prune live resources.
11792        
11793        And the fix:
11794        Instead of updating cache metadata at the call site whenver drawing an 
11795        image, just have an image notify its observer whenever it draws. The 
11796        observer, which is a CachedResource, can then update the metadata.
11797        
11798        * loader/Cache.cpp: Renames
11799        * loader/Cache.h: Removed stale declarations, updated comments
11800        * loader/CachedImage.cpp:
11801        (WebCore::CachedImage::didDraw): Implemented didDraw to update cache
11802        metadata whenever our image draws.
11803        * loader/CachedImage.h: Grouped parts of the ImageObserver interface.
11804        * loader/CachedResource.cpp:
11805        (WebCore::CachedResource::CachedResource):
11806        (WebCore::CachedResource::deref):
11807        (WebCore::CachedResource::didAccessDecodedData): Made this function
11808        slightly more modular by allowing the caller to provide a time stamp.
11809        In theory, not all CachedResources will necessarily want to use the 
11810        current paint time stamp.
11811        * platform/graphics/cg/ImageCG.cpp:
11812        (WebCore::BitmapImage::draw): Notify our observer that we drew.
11813        (WebCore::Image::drawPattern): ditto
11814        * platform/graphics/cg/PDFDocumentImage.cpp:
11815        (WebCore::PDFDocumentImage::draw): ditto
11816        * platform/graphics/svg/SVGImage.cpp:
11817        (WebCore::SVGImage::draw): ditto
11818        
11819        Removed old code at image drawing call sites:
11820        
11821        * rendering/RenderBox.cpp:
11822        (WebCore::RenderBox::paintBackgroundExtended):
11823        * rendering/RenderImage.cpp:
11824        (WebCore::RenderImage::paint):
11825        * rendering/RenderListMarker.cpp:
11826        (WebCore::RenderListMarker::paint):
11827        * rendering/RenderObject.cpp:
11828        (WebCore::RenderObject::paintBorderImage):
11829
118302007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11831
11832        Reviewed by Adam.
11833
11834        Move the various *ClientGdk.{h,cpp} away from the WebCore directory as
11835        of http://bugs.webkit.org/show_bug.cgi?id=14727.
11836
11837        * WebCore.pro:
11838        * platform/gdk/TemporaryLinkStubs.cpp:
11839
118402007-08-09  Anders Carlsson  <andersca@apple.com>
11841
11842        Reviewed by Maciej.
11843
11844        <rdar://problem/5400029> iframes with an image src rarely load image
11845        
11846        Don't try to shrink standalone images in subframes. The resize event is not 
11847        sent for subframes which screws up the shrink-to-fit logic.
11848        
11849        * loader/ImageDocument.cpp:
11850        (WebCore::ImageDocument::createDocumentStructure):
11851        (WebCore::ImageDocument::imageChanged):
11852        (WebCore::ImageDocument::shouldShrinkToFit):
11853        * loader/ImageDocument.h:
11854
118552007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11856
11857        Reviewed by Adam.
11858
11859        Implement FrameLoaderClientGdk::createFrame mostly by copying
11860        the windows implementation. A method similiar to WebFrame::loadURLIntoChild
11861        was not introduced instead we have a simplified version similiar to the
11862        one of the Qt port.
11863
11864        Remove building of WebKit/gtk/webkitgtkframedata.{cpp,h}.
11865
11866        * WebCore.pro:
11867        * loader/gdk/FrameLoaderClientGdk.cpp:
11868        (WebCore::FrameLoaderClientGdk::createFrame):
11869
118702007-08-10  Holger Hans Peter Freyther  <zecke@selfish.org>
11871
11872        Reviewed by Adam.
11873
11874        Use the ScrollView/Widget design of the Windows port to only use one
11875        native window for the whole page. This will make it possible to implement
11876        FrameLoaderClientGdk::createFrame.
11877
11878        In contrast to the windows port the ScrollBars are GtkWidgets. To paint them
11879        at the right position we need to position them correctly. To not scroll the
11880        ScrollBar's belonging to the ScrollView a ScrollViewScrollbar is introduced with
11881        a different geometryChanged method.
11882
11883        To allow the Gtk+ way of scrolling the ScrollView allows to get GtkAdjustments
11884        set. In this case no ScrollViewScrollbar will be created.
11885
11886
11887        * platform/ScrollView.h:
11888        * platform/Widget.h:
11889        * platform/gdk/PlatformScreenGdk.cpp:
11890        (WebCore::screenDepth):
11891        * platform/gdk/PlatformScrollBar.h:
11892        * platform/gdk/PlatformScrollBarGdk.cpp:
11893        (PlatformScrollbar::PlatformScrollbar):
11894        (PlatformScrollbar::~PlatformScrollbar):
11895        (PlatformScrollbar::setRect):
11896        (PlatformScrollbar::geometryChanged):
11897        * platform/gdk/ScrollViewGdk.cpp:
11898        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
11899        (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
11900        (WebCore::ScrollViewScrollbar::ScrollViewScrollbar):
11901        (WebCore::ScrollViewScrollbar::geometryChanged):
11902        (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
11903        (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
11904        (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
11905        (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
11906        (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
11907        (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
11908        (WebCore::ScrollView::setGtkAdjustments):
11909        (WebCore::ScrollView::updateContents):
11910        (WebCore::ScrollView::update):
11911        (WebCore::ScrollView::visibleWidth):
11912        (WebCore::ScrollView::resizeContents):
11913        (WebCore::ScrollView::contentsX):
11914        (WebCore::ScrollView::scrollOffset):
11915        (WebCore::ScrollView::maximumScroll):
11916        (WebCore::ScrollView::scrollBy):
11917        (WebCore::ScrollView::suppressScrollbars):
11918        (WebCore::ScrollView::setHScrollbarMode):
11919        (WebCore::ScrollView::setVScrollbarMode):
11920        (WebCore::ScrollView::setScrollbarsMode):
11921        (WebCore::ScrollView::setFrameGeometry):
11922        (WebCore::ScrollView::addChild):
11923        (WebCore::ScrollView::removeChild):
11924        (WebCore::ScrollView::scrollRectIntoViewRecursively):
11925        (WebCore::ScrollView::wheelEvent):
11926        (WebCore::ScrollView::updateScrollbars):
11927        (WebCore::ScrollView::windowToContents):
11928        (WebCore::ScrollView::contentsToWindow):
11929        (WebCore::ScrollView::scrollbarUnderMouse):
11930        (WebCore::ScrollView::convertChildToSelf):
11931        (WebCore::ScrollView::convertSelfToChild):
11932        (WebCore::ScrollView::paint):
11933        (WebCore::ScrollView::geometryChanged):
11934        (WebCore::ScrollView::scroll):
11935        (WebCore::ScrollView::addToDirtyRegion):
11936        (WebCore::ScrollView::scrollBackingStore):
11937        (WebCore::ScrollView::updateBackingStore):
11938        * platform/gdk/WidgetGdk.cpp:
11939        (WebCore::WidgetPrivate::gdkDrawable):
11940        (WebCore::Widget::Widget):
11941        (WebCore::Widget::setContainingWindow):
11942        (WebCore::Widget::containingWindow):
11943        (WebCore::Widget::frameGeometry):
11944        (WebCore::Widget::setFrameGeometry):
11945        (WebCore::Widget::setParent):
11946        (WebCore::Widget::parent):
11947        (WebCore::Widget::setCursor):
11948        (WebCore::Widget::show):
11949        (WebCore::Widget::hide):
11950        (WebCore::Widget::removeFromParent):
11951        (WebCore::Widget::paint):
11952        (WebCore::Widget::invalidate):
11953        (WebCore::Widget::invalidateRect):
11954        (WebCore::Widget::convertToContainingWindow):
11955        (WebCore::Widget::convertFromContainingWindow):
11956        (WebCore::Widget::convertChildToSelf):
11957        (WebCore::Widget::convertSelfToChild):
11958        (WebCore::Widget::suppressInvalidation):
11959        (WebCore::Widget::setSuppressInvalidation):
11960
119612007-08-09  Adele Peterson  <adele@apple.com>
11962
11963        Fix by Brady, reviewed by me.
11964
11965        Fix for <rdar://problem/5380697> connection:willSendRequest:redirectResponse: is called on every NSURLConnection
11966
11967        * platform/network/mac/ResourceHandleMac.mm: (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
11968          Work around a behavior change in CFNetwork where willSendRequest gets called more often by returning early.
11969
119702007-08-09  Darin Adler  <darin@apple.com>
11971
11972        Reviewed by Antti.
11973
11974        - fix <rdar://problem/4889753> REGRESSION: Selection doesn't continue with drag selecting
11975          when autoscrolling vertically (in Notes as well as Safari)
11976
11977        The bug doesn't happen inside DumpRenderTree, so I was unable to make an automated
11978        regression test.
11979
11980        * manual-tests/autoscroll-when-outside-window.html: Added.
11981
11982        * rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll): Removed unneeded null
11983        check for the layer's renderer and the document, neither of which can be null. Call
11984        the new updateSelectionForMouseDrag instead of doing selection updating here.
11985
11986        * page/EventHandler.h:
11987        * page/EventHandler.cpp:
11988        (WebCore::EventHandler::handleMouseDraggedEvent): Refactored most of the logic
11989        about updating the selection into updateSelectionForMouseDrag.
11990        (WebCore::EventHandler::updateSelectionForMouseDrag): Added. The public version of
11991        this function takes no parameters, and is for use from auto-scrolling code. The
11992        private version of this function takes node and point parameters and contains the
11993        shared code, including everything from updateSelectionForMouseDragOverPosition.
11994        Aside from the code motion, variable name changes, and sharing more code, this
11995        differs from the old code in RenderLayer::autoscroll in the following ways:
11996
11997          1) The old code did hit testing only in the layer that was auto-scrolling,
11998             and the new code instead starts the hit testing at the root layer, which is
11999             better because it's the same thing we do for mouse moved events. Further,
12000             the code to do this by calling convertToLayerCoords had a bug  because the
12001             x and y variables were uninitialized.
12002          2) The old code passed false for active to HitTestRequest, which was wrong.
12003             The new code passes true. This flag needs to be true for hit testing done
12004             while the mouse is down and false for hit testing done while the mouse is up.
12005          3) The old code did not have the SVG-specific logic to match the mouse moved case.
12006          4) The old code wouldn't do any selection updating if the return value from hitTest
12007             was false, which is incorrect. The new code ignores the return value as it should.
12008
120092007-08-08  Beth Dakin  <bdakin@apple.com>
12010
12011        Reviewed by Geoff Garen.
12012
12013        Fx for <rdar://problem/5286443>, http://bugs.webkit.org/
12014        show_bug.cgi?id=14268 REGRESSION: Radio buttons don't stay selected 
12015        due to unclosed <label> tags
12016
12017        This patch maintains the behavior that allows <label> tags to nest. 
12018        This matches WinIE, and appears to match the spec, since the spec 
12019        does not explicitly say that they cannot nest. It fixes the bug 
12020        instead by calling setDefaultHandled() in two places it should have 
12021        been called anyway. This keeps the appropriate button checked as 
12022        the event bubbles.
12023
12024        * html/HTMLInputElement.cpp:
12025        (WebCore::HTMLInputElement::postDispatchEventHandler):
12026        * html/HTMLLabelElement.cpp:
12027        (WebCore::HTMLLabelElement::defaultEventHandler):
12028
120292007-08-08  Justin Garcia  <justin.garcia@apple.com>
12030
12031        Reviewed by Oliver.
12032
12033        <rdar://problem/5387578> Crash at ReplaceSelectionCommand::doApply() when pasting just after table cell content
12034        
12035        ReplaceSelectionCommand::doApply() inserts a line break before insertion
12036        to prevent block nesting.  InsertLineBreakCommand::doApply was accidently
12037        destroying a text node when it removed insignificant whitespace and then
12038        setting a nil endingSelection().
12039
12040        * editing/InsertLineBreakCommand.cpp:
12041        (WebCore::InsertLineBreakCommand::doApply): If insignificant whitespace
12042        removal removes textNode from the document, insert a text node containing
12043        the non-breaking space we were attempting to insert and then insert it
12044        at the position that the removed textNode occupied.
12045
120462007-08-08  Geoffrey Garen  <ggaren@apple.com>
12047
12048        Reviewed by Maciej Stachowiak.
12049
12050        Added a thrash check to live decoded resource eviction.
12051        
12052        Here's the strategy: Stamp every image with its paint time. Don't evict 
12053        a live decoded resource until another resource paints with a reasonably
12054        (1 second) larger time stamp. 
12055        
12056        If no other resource paints, or another resource paints, but very soon 
12057        after the resource in question, the resource in question is very likely 
12058        to paint again soon. In fact, it's probably still on screen. So we 
12059        leave it alone. (Previously, we evicted it on a timer, but that would 
12060        evict a resource that was still on screen, hurting speed without 
12061        helping memory use.)
12062
12063        In theory, this algorithm allows a single large resource or closely 
12064        related set of resources to linger in the live decoded cache even 
12065        though the cache is over its limit. However, that can only happen as 
12066        long as no other resource ever paints again, which guarantees an 
12067        absolute cap on cache memory usage from then on. Also, the resources 
12068        will only linger as long as they remain live. Upon going dead, they 
12069        will flush. Also, these circumstances are so rare that they are almost 
12070        impossible to encounter in the wild. So don't sweat it.
12071        
12072        Stop evicting if the next resource painted too recently:
12073        
12074        * loader/Cache.cpp:
12075        (WebCore::Cache::pruneLiveResources):
12076        * loader/CachedResource.cpp:
12077        (WebCore::CachedResource::CachedResource):
12078        (WebCore::CachedResource::liveResourceAccessed):
12079        * loader/CachedResource.h:
12080
12081        Track the paint time stamp in Frame. We do this to give a consistent
12082        stamp to all resources painted in a single paint operation (in case the
12083        operation takes a significant amount of time), and to avoid excessive 
12084        calls to system time functions, which hurt the PLT:
12085
12086        * page/Frame.cpp:
12087        (WebCore::Frame::paint):
12088        * page/Frame.h:
12089        (WebCore::Frame::currentPaintTimeStamp):
12090
120912007-08-08  Sam Weinig  <sam@webkit.org>
12092
12093        Reviewed by Adam Roben.
12094
12095        Update project file to reflect the moving of character-sets.txt
12096        and make-charset-table.pl to platform/mac a while ago.
12097
12098        * WebCore.xcodeproj/project.pbxproj:
12099
121002007-08-08  Justin Garcia  <justin.garcia@apple.com>
12101
12102        Reviewed by Harrison.
12103
12104        <rdar://problem/5390681> WebKit asserts when deleting To Do content selected with a double-click
12105        
12106        * dom/Position.cpp:
12107        (WebCore::Position::trailingWhitespacePosition): Use VisiblePosition::characterAfter
12108        to look for a trailing space.  The old code would incorrectly return a position before
12109        a non-editable space if it had a collapsed space before it.
12110
121112007-08-08  Sam Weinig  <sam@webkit.org>
12112
12113        Reviewed by Brady.
12114
12115        Make protocol and host compares case-insensitive.
12116
12117        * bindings/js/kjs_window.cpp:
12118        (KJS::Window::isSafeScript):
12119        * dom/Document.cpp:
12120        (WebCore::Document::initSecurityPolicyURL):
12121        * platform/DeprecatedString.cpp:
12122        (WebCore::equalIgnoringCase):
12123        * platform/DeprecatedString.h:
12124        (WebCore::equalIgnoringCase):
12125
121262007-08-08  Justin Garcia  <justin.garcia@apple.com>
12127
12128        Reviewed by Harrison.
12129
12130        <rdar://problem/5390681> WebKit asserts when deleting To Do content selected with a double-click
12131
12132        * dom/Position.cpp:
12133        (WebCore::Position::leadingWhitespacePosition): Added checks to prevent expansion across editable an boundary.
12134        (WebCore::Position::trailingWhitespacePosition): Ditto.
12135
121362007-08-08  Adele Peterson  <adele@apple.com>
12137
12138        Reviewed by John.
12139
12140        Fix for <rdar://problem/5393798> 100% reproducible crash in WebCore::Scrollbar::setValue
12141
12142        * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent):
12143          If the hit testing originally determined the event was in a scrollbar, 
12144          refetch the MouseEventWithHitTestResults in case the scrollbar widget was destroyed when the mouse event was handled.
12145
121462007-08-08  Sam Weinig  <sam@webkit.org>
12147
12148        Reviewed by Geoff Garen.
12149
12150        Fix for <rdar://problem/5354635>
12151
12152        Match Firefox's model for data: URLs by not allowing them script access
12153        to any frames other then itself.
12154
12155        * bindings/js/kjs_window.cpp:
12156        (KJS::Window::isSafeScript):
12157        * dom/Document.cpp:
12158        (WebCore::Document::initSecurityPolicyURL):
12159
121602007-08-08  Darin Adler  <darin@apple.com>
12161
12162        Reviewed by Kevin Decker.
12163
12164        - fix for <rdar://problem/5390708> CrashTracer: [USER] 27 crashes in Safari at
12165          com.apple.WebCore: WTF::HashMap<etc>::set + 68, beneath pruneUnretainedIconsAtStartup
12166
12167        * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::pruneUnretainedIconsOnStartup):
12168        Eliminate an unnecessary HashMap from the implementation; we can just use the
12169        m_pageURLToRetainCount map directly. This simplifies the code and allows us to handle
12170        the empty string, which otherwise poses a problem for HashMap.
12171
121722007-08-08  Antti Koivisto  <antti@apple.com>
12173
12174        Reviewed by Darin.
12175        
12176        Fix for <rdar://problem/5391576>
12177        Malformed table innerHTML causes Safari to crash in HTMLParser::handleError (14894)
12178        
12179        Add null checks to protect against 
12180        
12181        e.innerHTML = "<tr>text</tr>";
12182        
12183        type cases. Normal assumptions about document tree structure don't hold when parsing 
12184        fragments. Results don't match Firefox in all cases. It seems to have some sort of 
12185        anything-goes fragment parsing mode.
12186        
12187        * html/HTMLParser.cpp:
12188        (WebCore::HTMLParser::handleError):
12189
121902007-08-07  Kevin McCullough  <kmccullough@apple.com>
12191
12192        Reviewed by Maciej and Hyatt.
12193
12194        - <rdar://problem/4976879> REGRESSION: Safari doesn't work with Zimbra enhanced login.
12195        - Reverting a previous change, and modifying how documents are created so that we better match other browsers behavior with respect to namespaceURIs.
12196
12197        * WebCore.xcodeproj/project.pbxproj:
12198        * dom/DOMImplementation.cpp:
12199        (WebCore::DOMImplementation::createDocument):
12200        * dom/Document.cpp:
12201        (WebCore::Document::Document):
12202        (WebCore::Document::createElement):
12203        * dom/Document.h:
12204        * html/HTMLDocument.cpp:
12205        (WebCore::HTMLDocument::createElement):
12206        * html/HTMLDocument.h:
12207
122082007-08-08  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
12209
12210        Reviewed and landed by Brady
12211
12212        Fixes <http://bugs.webkit.org/show_bug.cgi?id=13422>
12213
12214        Bug 13422: REGRESSION: Page reload loses page position
12215
12216        * loader/FrameLoader.cpp:
12217        (WebCore::FrameLoader::updateHistoryForReload):
12218
122192007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12220
12221        Reviewed by Niko.
12222
12223        Be paranoid and disconnect from the signal before going away.
12224
12225        * platform/gdk/PlatformScrollBarGdk.cpp:
12226        (PlatformScrollbar::~PlatformScrollbar):
12227
122282007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12229
12230        Reviewed by Niko.
12231
12232        Use GraphicsContext::translatePoint in RenderThemeGdk to paint at the
12233        right position.
12234        This is needed as the Gtk+ theming code does not know about the translation
12235        of the GraphicsContext.
12236
12237        * platform/gdk/RenderThemeGdk.cpp:
12238        (WebCore::RenderThemeGdk::paintCheckbox):
12239        (WebCore::RenderThemeGdk::paintRadio):
12240        (WebCore::RenderThemeGdk::paintButton):
12241
122422007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12243
12244        Reviewed by Niko.
12245
12246        Implement Widget::paint for the Gtk port. This is needed to paint
12247        Widgets in z-order. The original GdkEventExpose is stored within the
12248        GraphicsContext and then used to draw the children. This is similiar
12249        to gtk_container_propagate_expose but we try to honor the GraphicsConntext
12250        translation.
12251
12252        * platform/gdk/WidgetGdk.cpp:
12253        (WebCore::Widget::paint):
12254        * platform/graphics/GraphicsContext.h:
12255        * platform/graphics/cairo/GraphicsContextCairo.cpp:
12256        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
12257        (WebCore::GraphicsContext::setGdkExposeEvent):
12258        (WebCore::GraphicsContext::gdkExposeEvent):
12259        (WebCore::GraphicsContext::gdkDrawable):
12260        (WebCore::GraphicsContext::translatePoint):
12261
122622007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12263
12264        Reviewed by Oliver Hunt.
12265
12266        Implement PlatformScrollbar by calling ScrollBar::setValue from 
12267        gtkValueChange connected to the value-changed signal of the
12268        GtkAdjustment.
12269        Update 'value' of the GtkAdjustment in updateThumbPosition and
12270        set upper, page-increment, step-increment and page_size in
12271        updateThumbProportion.
12272
12273        This is from bug http://bugs.webkit.org/show_bug.cgi?id=14795.
12274
12275        * platform/gdk/PlatformScrollBar.h:
12276        * platform/gdk/PlatformScrollBarGdk.cpp:
12277        (PlatformScrollbar::PlatformScrollbar):
12278        (PlatformScrollbar::updateThumbPosition):
12279        (PlatformScrollbar::updateThumbProportion):
12280        (PlatformScrollbar::gtkValueChanged):
12281
122822007-08-07  Geoffrey Garen  <ggaren@apple.com>
12283
12284        Reviewed by Maciej Stachowiak. Based on earlier review from Dave Hyatt.
12285
12286        First chunk of work for <rdar://problem/5326009> Make non-browser 
12287        WebKit clients have no memory cache, or a very tiny one
12288        
12289        Layout tests pass.
12290        
12291        Removed decodedSizeWillChange mechanism because my last patch to
12292        change the live resources list to a strict LRU model made that code
12293        vestigial.
12294        
12295        Renamed "liveResourcesList" and related stuff => 
12296        "liveDecodedResourcesList" because only live resources with decoded 
12297        data are kept in the list.
12298
12299        * loader/CachedImage.cpp:
12300        (WebCore::CachedImage::decodedSizeChanged): Only add ourselves to the
12301        list if we're live, our decoded size has grown, and we're not in the 
12302        list already. (Otherwise, either we're not live, we're not decoded,
12303        or we're already in the list.)
12304
12305        * loader/CachedResource.cpp:
12306        (WebCore::CachedResource::liveResourceAccessed): Only re-insert
12307        ourselves into the list if we're already there. (In theory, this should
12308        be always, but it's a little more clear to check.)
12309
123102007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12311
12312        Reviewed by Adam.
12313
12314        Kill class FrameGdk and move the stubs to page/gdk/FrameGdk.cpp and the
12315        remainings into WebKitGtkFrame.
12316        The DRT functionality of class FrameGdk is currently lost.
12317
12318        * WebCore.pro:
12319        * loader/gdk/FrameLoaderClientGdk.cpp:
12320        * loader/gdk/FrameLoaderClientGdk.h:
12321        * page/gdk/FrameGdk.cpp: Renamed from WebCore/platform/gdk/FrameGdk.cpp.
12322        (WebCore::Frame::issueTransposeCommand):
12323        (WebCore::Frame::cleanupPlatformScriptObjects):
12324        (WebCore::Frame::dragImageForSelection):
12325        (WebCore::Frame::dashboardRegionsChanged):
12326        * platform/gdk/FrameGdk.h: Removed.
12327        * platform/gdk/TemporaryLinkStubs.cpp: Removed Frame stub, added the loadResourceIntoArray stub
12328        * platform/gdk/WidgetGdk.cpp:
12329
123302007-08-08  Holger Hans Peter Freyther  <zecke@selfish.org>
12331
12332        Reviewed by Adam.
12333
12334        Remove the event handling code and move it to WebKit/gtk/Api/webkitgtkpage.cpp
12335
12336        * platform/gdk/FrameGdk.cpp:
12337        * platform/gdk/FrameGdk.h:
12338
123392007-08-07  Holger Hans Peter Freyther  <zecke@selfish.org>
12340
12341        Reviewed by Niko.
12342
12343        Switch from the generic union GdkEvent to the specific struct GdkEvent*. This is needed
12344        to make WebKitGtkPage handle the events by reimplementing the default handlers in the near
12345        future.
12346
12347        * platform/PlatformKeyboardEvent.h:
12348        * platform/PlatformMouseEvent.h:
12349        * platform/PlatformWheelEvent.h:
12350        * platform/gdk/FrameGdk.cpp:
12351        (WebCore::FrameGdk::handleGdkEvent):
12352        * platform/gdk/KeyEventGdk.cpp:
12353        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
12354        * platform/gdk/MouseEventGdk.cpp:
12355        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
12356        * platform/gdk/WheelEventGdk.cpp:
12357        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
12358
123592007-08-07  George Staikos  <staikos@kde.org>
12360
12361        Some QStyles don't handle negative maximum well (crash)
12362
12363        * platform/qt/PlatformScrollBarQt.cpp:
12364        (WebCore::PlatformScrollbar::paint):
12365
123662007-08-07  Antti Koivisto  <antti@apple.com>
12367
12368        Reviewed by Hyatt.
12369
12370        Fix <rdar://problem/5102553>
12371        Mail spins trying to display or edit a specific long plain text message in WebCore::TimerBase::...
12372
12373        Calling removeLeftoverAnonymousBoxes() from RenderBlock::addChildToFlow() made adding children
12374        O(n^2) in simple cases (repeated <div><div></div></div> for example).
12375        
12376        I couldn't find any limited fix so here is a more complete one. It removes iterating/recursing 
12377        removeLeftoverAnonymousBoxes() method altogether. Instead of hunting around wildly, just get 
12378        rid of anonymous boxes with block children when they occur.
12379
12380        * rendering/RenderBlock.cpp:
12381        (WebCore::RenderBlock::addChildToFlow):
12382        * rendering/RenderButton.h:
12383        (WebCore::RenderButton::removeLeftoverAnonymousBlock):
12384        * rendering/RenderContainer.cpp:
12385        (WebCore::RenderContainer::removeLeftoverAnonymousBlock):
12386        * rendering/RenderContainer.h:
12387        * rendering/RenderObject.cpp:
12388        (WebCore::RenderObject::handleDynamicFloatPositionChange):
12389        (WebCore::RenderObject::removeLeftoverAnonymousBlock):
12390        * rendering/RenderObject.h:
12391        * rendering/RenderTextControl.h:
12392        (WebCore::RenderTextControl::removeLeftoverAnonymousBlock):
12393
123942007-08-06  Sam Weinig  <sam@webkit.org>
12395
12396        Reviewed by Maciej.
12397
12398        Fix for <rdar://problem/5354689>
12399
12400        - Use document variable to determine permissions instead
12401          of traversing the frame tree. 
12402
12403        * bindings/js/kjs_window.cpp:
12404        (KJS::Window::isSafeScript):
12405        * dom/Document.cpp:
12406        (WebCore::Document::Document):
12407        (WebCore::Document::initSecurityPolicyURL):
12408        * dom/Document.h:
12409        (WebCore::Document::securityPolicyURL):
12410        * loader/FrameLoader.cpp:
12411        (WebCore::FrameLoader::setOpener): We must re-initialize the
12412        safeScript URL when setting the opener because the opener was
12413        not known at Document construction.
12414
124152007-08-06  David Hyatt  <hyatt@apple.com>
12416
12417        Make sure to clear out the parent of the ellipsis box so that it doesn't
12418        trigger the consistency check for line boxes.
12419
12420        Reviewed by darin
12421
12422        * ChangeLog:
12423        * rendering/RootInlineBox.cpp:
12424        (WebCore::RootInlineBox::detachEllipsisBox):
12425
124262007-08-06  David Hyatt  <hyatt@apple.com>
12427
12428        Back out fix for <rdar://problem/5366582> and replace it with the correct
12429        fix.  Make sure to delete the line box tree before splitting an inline flow
12430        into a continuation.  The added layout test for the original checkin covers
12431        the problem.
12432
12433        Reviewed by beth
12434
12435        * rendering/RenderBlock.cpp:
12436        (WebCore::RenderBlock::makeChildrenNonInline):
12437        Back out fix.
12438
12439        * rendering/RenderFlow.cpp:
12440        (WebCore::RenderFlow::destroy):
12441        Back out fix.
12442
12443        * rendering/RenderInline.cpp:
12444        (WebCore::RenderInline::splitFlow):
12445        Here's the new fix.
12446
124472007-08-06  Geoffrey Garen  <ggaren@apple.com>
12448
12449        Reviewed by Darin Adler.
12450        
12451        Touching a file to force a re-build.
12452
124532007-08-06  Darin Adler  <darin@apple.com>
12454
12455        - fix release build
12456
12457        * rendering/RenderText.h: (WebCore::RenderText::checkConsistency):
12458        Add missing const.
12459
124602007-08-06  Darin Adler  <darin@apple.com>
12461
12462        Reviewed by Maciej.
12463
12464        - fix <rdar://problem/5366582> crash on it.eurosport.yahoo.com page
12465
12466        Test: fast/dynamic/inline-to-block-crash.html
12467
12468        I added some consistency checks for the line box tree, which helped me figure out
12469        what was going on with this bug pretty quickly.
12470
12471        * rendering/RenderBlock.cpp: (WebCore::RenderBlock::makeChildrenNonInline):
12472        This is the actual fix. If the block needs layout, then don't try to delete the line
12473        box tree because it's going to be rebuilt as part of layout. More importantly, the
12474        child list in the tree is no good, so we will crash if we try to delete here.
12475
12476        * rendering/RenderFlow.cpp: (WebCore::RenderFlow::destroy):
12477        Here's a second fix. We have the same issue in the code that handles anonymous
12478        blocks -- if it's already running as part of layout, we can't walk through the
12479        already partly destroyed line box tree. This crashed in one of the layout tests.
12480
12481        * rendering/InlineBox.h: Made more fields private, since I wanted to do a bit more
12482        work in setters. Made setNextOnLine() and setPrevOnLine() assert that the box has a
12483        parent. Made parent() assert that the parent is good. Also removed the unused
12484        isChildOfParent() function.
12485        * rendering/InlineBox.cpp: (WebCore::InlineBox::~InlineBox): At destruction time, if
12486        we are still attached to a parent, tag that parent as having a "bad" child list.
12487
12488        * rendering/InlineFlowBox.h: Added m_reasonForBadChildList, checkConsistency(),
12489        setHasBadChildList(), and hasBadChildList(). Also changed firstChild() and lastChild() so
12490        they call checkConsistency() and made all the fields private instead of protected.
12491        * rendering/InlineFlowBox.cpp:
12492        (WebCore::InlineFlowBox::addToLine): Added consistency checks before and after adding a
12493        box to the line. Also checked that next and prev start out as 0. Changed manipulation of
12494        next and prev to use accessor functions.
12495        (WebCore::InlineFlowBox::removeChild): Added consistency checks before and after removing
12496        the box from the line.
12497        (WebCore::InlineFlowBox::deleteLine): Use firstChild() instead of getting at m_firstChild
12498        directly so we get a consistency check. Also set the parent to 0 before destroying so that
12499        the assertion in ~InlineBox will work properly.
12500        (WebCore::InlineFlowBox::extractLine): Ditto.
12501        (WebCore::InlineFlowBox::attachLine): Ditto.
12502        (WebCore::InlineFlowBox::adjustPosition): Ditto.
12503        (WebCore::InlineFlowBox::checkConsistency): Added. Checks consistency of the child list by
12504        looking at the parent, next, and prev pointers. Also asserts that we are not yet in the
12505        "bad" child list state, which happens if one of our children is destroyed without removing
12506        it from our list; that's normal, but once it happens we can't look at our child list again.
12507
12508        * rendering/InlineTextBox.h:
12509        * rendering/InlineTextBox.cpp: Remove unnneeded destroy/new/delete functions -- these are
12510        inherited from the InlineBox base class and don't need to be defined again.
12511
12512        * rendering/RenderFlow.h:
12513        * rendering/RenderFlow.cpp:
12514        (WebCore::RenderFlow::~RenderFlow): Assert that there are no children to confirm that we
12515        didn't leak something.
12516        (WebCore::RenderFlow::extractLineBox): Added consistency checks before and after removing
12517        a run of boxes from the list.
12518        (WebCore::RenderFlow::attachLineBox): Added consistency checks before and after adding
12519        a box to the list.
12520        (WebCore::RenderFlow::removeLineBox): Added consistency checks before and after removing
12521        a box from the list.
12522        (WebCore::RenderFlow::createInlineBox): Added consistency checks before and after adding
12523        a box to the list.
12524        (WebCore::RenderFlow::checkConsistency): Added.
12525
12526        * rendering/RenderText.h:
12527        * rendering/RenderText.cpp:
12528        (WebCore::RenderText::~RenderText): Assert that there are no children to confirm that we
12529        didn't leak something.
12530        (WebCore::RenderText::extractTextBox): Added consistency checks before and after removing
12531        a run of boxes from the list.
12532        (WebCore::RenderText::attachTextBox): Added consistency checks before and after adding
12533        a box to the list.
12534        (WebCore::RenderText::removeTextBox): Added consistency checks before and after removing
12535        a box from the list.
12536        (WebCore::RenderText::deleteTextBoxes): Added code to call setHasBadChildList since this
12537        destroys line boxes without informing the parent.
12538        (WebCore::RenderText::checkConsistency): Added.
12539
125402007-08-06  Adele Peterson  <adele@apple.com>
12541
12542        Reviewed by Darin.
12543
12544        Fix for <rdar://problem/5382483> REGRESSION: <select> element's text is clipped when a CSS line-height is specified
12545
12546        Don't honor line-height for styled popup buttons.  We already don't honor line-height for unstyled popups
12547        and since IE and FF don't honor it at all for popups, we shouldn't either.
12548
12549        * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustMenuListButtonStyle):
12550        * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
12551
125522007-08-06  Antti  <antti@apple.com>
12553
12554        Reviewed by Darin.
12555
12556        Fix <rdar://problem/5378214>
12557        Mail crashes at RenderLayer::paintLayer() when dragging a selection over To Do text
12558        
12559        ObjC interface does not guarantee that Document::updateRendering() gets called after
12560        modification are made to document. This can lead to situation where paint()
12561        is invoked with document still dirty which can then crash in number of interesting ways.
12562        
12563        - add hasChangedChild() as needsLayout() condition. layout() will then call recalcStyle() 
12564          catching most cases and making sure document is not dirty when entering painting.
12565        - protect recalcStyle() and layout() from being executed during painting. There are some
12566          cases needsLayout() protection does not cover.
12567        
12568        No layout test, these states are very hard or impossible to reach using Javascript interface
12569        (which generally guarantees that updateRendering() is done right after execution).
12570
12571        * dom/Document.cpp:
12572        (WebCore::Document::recalcStyle):
12573        * page/Frame.cpp:
12574        (WebCore::Frame::paint):
12575        (WebCore::Frame::setPaintRestriction):
12576        (WebCore::Frame::isPainting):
12577        (WebCore::FramePrivate::FramePrivate):
12578        * page/Frame.h:
12579        * page/FramePrivate.h:
12580        * page/FrameView.cpp:
12581        (WebCore::FrameView::layout):
12582        (WebCore::FrameView::needsLayout):
12583
125842007-08-05  Maciej Stachowiak  <mjs@apple.com>
12585
12586        Reviewed by Darin Adler.
12587        
12588        <rdar://problem/5369110> CrashTracer: [USER] reproducible crash opening particular mail messages
12589
12590        * platform/network/mac/ResourceHandleMac.mm:
12591        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Make sure to retain
12592        self for the body of this method. Otherwise, the willSendRequest could trigger events which will
12593        cancel the connection, and we access ivars after this point.
12594        (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): retain and release
12595        in the right order.
12596
125972007-08-04  Adam Roben  <aroben@apple.com>
12598
12599        Another workaround for <rdar://problem/5386894>
12600
12601        Reviewed by Sam.
12602
12603        This fixed ~150 failing tests.
12604
12605        * platform/network/cf/ResourceResponseCFNet.cpp:
12606        (WebCore::ResourceResponse::doUpdateResourceResponse): Hardcode the
12607        MIME type for .svg files as well.
12608
126092007-08-04  Adam Roben  <aroben@apple.com>
12610
12611        Workaround for <rdar://problem/5386894> CFURLResponseGetMIMEType returns "text/html" for local .xhtml and .xml files
12612
12613        Reviewed by Sam.
12614
12615        This fixes ~350 failing tests.
12616
12617        * platform/network/cf/ResourceResponseCFNet.cpp:
12618        (WebCore::ResourceResponse::doUpdateResourceResponse): Use a workaround
12619        identical to the one in ResourceResponseMac.mm, but include .xml files
12620        as well.
12621
126222007-08-04  David Kilzer  <ddkilzer@webkit.org>
12623
12624        Reviewed by Oliver.
12625
12626        - fix for http://bugs.webkit.org/show_bug.cgi?id=14882
12627          <rdar://problem/5386550> REGRESSION (r24866): text/plain documents are always downloaded
12628
12629        The supportedNonImageMimeTypes list is used to determine which MIME types may be viewed
12630        within the web browser (e.g., plug-ins add their own MIME types to the list during
12631        initialization), so we must add "text/plain" and "text/" back to the list.  Since
12632        this change would then break DOMImplementation::isTextMIMEType(), that method was reverted
12633        to its original form and MIMETypeRegistry::shouldTreatAsText() was removed.
12634
12635        * dom/DOMImplementation.cpp:
12636        (WebCore::DOMImplementation::isTextMIMEType): Revert to previous version.
12637        * platform/MIMETypeRegistry.cpp:
12638        (WebCore::initialiseSupportedNonImageMimeTypes): Added back "text/plain" and "text/" to the list.
12639        (WebCore::MIMETypeRegistry::shouldTreatAsText): Removed.
12640        * platform/MIMETypeRegistry.h:
12641
126422007-08-03  Brady Eidson  <beidson@apple.com>
12643
12644        Reviewed by Oliver
12645
12646        Fix for http://bugs.webkit.org/show_bug.cgi?id=14824 and <rdar://problem/5372989>
12647
12648        Two issues - 
12649        1 - The WebCore MIMEType registry was designed assuming the list of types would never change
12650            That is false, as WebKit has API and SPI calls which directly mutate the MIMETypeRegistry
12651        2 - DOMImplementation didn't consult the registry for any MIMEType that started with "text/", 
12652            instead maintaining it's own hard coded rules
12653
12654        * dom/DOMImplementation.cpp:
12655        (WebCore::DOMImplementation::isTextMIMEType): For now, call through to the MIMETypeRegistry
12656          until we decided a different fate for this function
12657
12658        * platform/MIMETypeRegistry.cpp:
12659        (WebCore::initialiseSupportedNonImageMimeTypes):  "SupportedNonImageMIMETypes" is really a misnomer for 
12660          "MIMETypes we should show as HTML" but that line has slowly been blurred since Tiger.  In an attempt
12661          to start to unblur it, remove "text/" and "text/plain"
12662        (WebCore::MIMETypeRegistry::shouldTreatAsText):  The decision is very close to the old DOMImplementation 
12663          method, except we don't automatically hand off "text/" types as true if they are in the set of supported
12664          MIMETypes
12665        (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes): Non-const (can be changed!)
12666        (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes): Non-const (can be changed!)
12667        (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes): Non-const (can be changed!)
12668        * platform/MIMETypeRegistry.h:
12669
126702007-08-03  Adele Peterson  <adele@apple.com>
12671
12672        Reviewed by Adam.
12673
12674        Fix for <rdar://problem/5345862> CrashTracer: [USER] 4 crashes in Safari at com.apple.WebCore: WebCore::Frame::isContentEditable const + 10
12675
12676        Couldn't reproduce the problem, but a nil check for the frame should fix this.
12677
12678        * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::adjustRenderStyle):
12679
126802007-08-03  Anders Carlsson  <andersca@apple.com>
12681
12682        Reviewed by Oliver.
12683
12684        <rdar://problem/5383286>
12685        XMLHTTPRequest does not return 401 when user cancels authentication dialog (affects .Mac)
12686        
12687        * loader/ResourceLoader.h:
12688        Make receivedCancellation virtual.
12689        
12690        * loader/SubresourceLoader.cpp:
12691        (WebCore::SubresourceLoader::receivedCancellation):
12692        Call SubresourceLoaderClient::receivedCancellation.
12693        
12694        * xml/XMLHttpRequest.cpp:
12695        (WebCore::XMLHttpRequest::receivedCancellation):
12696        Save the failure response.
12697
126982007-08-03  Anders Carlsson  <andersca@apple.com>
12699
12700        Reviewed by Geoff.
12701
12702        <rdar://problem/5374393> 
12703        Image change on disk not noticed by WebView; -[WebCache setDisabled:] used to cause a reload every time
12704        
12705        This is essentially a better fix for the crash in <rdar://problem/5362783>.
12706        
12707        * loader/DocLoader.cpp:
12708        (WebCore::DocLoader::requestResource):
12709        If the resource already exists in the m_docResources map, remove it and disassociate it from the doc loader.
12710
127112007-08-03  Oliver Hunt  <oliver@apple.com>
12712
12713        Reviewed by Geoff.
12714
12715        <rdar://problem/5375190> Mail crashed in WebCore::CachedImage::imageSize() const when viewing a particular message
12716
12717        Fix the uncached load path to confirm that the type of resource being 
12718        returned actually matches the type that was requested.
12719
12720        Also make sure we never create a resource in the Cache for invalid urls.
12721
12722        * loader/Cache.cpp:
12723        (WebCore::Cache::requestResource):
12724        * loader/DocLoader.cpp:
12725        (WebCore::DocLoader::requestResource):
12726
127272007-08-03  Mitz Pettel  <mitz@webkit.org>
12728
12729        Reviewed by Adele.
12730
12731        - fix http://bugs.webkit.org/show_bug.cgi?id=14879
12732          REGRESSION: First item in select (pop-up menu) is displayed even if another item was selected via JavaScript
12733
12734        Test: fast/forms/menulist-deselect-update.html
12735
12736        * html/HTMLOptionElement.cpp:
12737        (WebCore::HTMLOptionElement::setSelected): Reordered to allow setSelectedIndex() to call setChanged().
12738
127392007-08-03  Anders Carlsson  <andersca@apple.com>
12740
12741        Reviewed by Darin.
12742
12743        <rdar://problem/5286444>
12744        http://bugs.webkit.org/show_bug.cgi?id=14269
12745        REGRESSION: Gmail links stop working after computer sleep
12746        
12747        Add a PowerNotifier object that takes care of resetting and firing the shared timer when coming
12748        back from sleep.
12749        
12750        * platform/mac/SharedTimerMac.cpp:
12751        (-[PowerNotifier init]):
12752        (-[PowerNotifier didWake:]):
12753        (WebCore::setSharedTimerFireTime):
12754
127552007-08-04  Mark Rowe  <mrowe@apple.com>
12756
12757        Windows build fix.
12758
12759        * rendering/RenderTextControl.cpp: Don't use the same name for two arguments.
12760
127612007-08-03  Mitz Pettel  <mitz@webkit.org>
12762
12763        Reviewed by Darin.
12764
12765        - fix http://bugs.webkit.org/show_bug.cgi?id=14653
12766          REGRESSION (r23994): No caret is drawn after clicking a search field's placeholder text
12767          <rdar://problem/5383841>
12768
12769        Test: fast/forms/search-click-in-placeholder.html
12770
12771        Defined a subclass of RenderBlock that never hit-tests children for use in
12772        text controls. This avoids returning placeholder text as the hit node.
12773        Since text controls cannot contain inline elements, there is no harm in
12774        doing that unconditionally, and not just in the case that the field is
12775        showing placeholder text.
12776
12777        * rendering/RenderTextControl.cpp:
12778        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
12779        (WebCore::RenderTextControlInnerBlock::~RenderTextControlInnerBlock):
12780        (WebCore::RenderTextControlInnerBlock::nodeAtPoint):
12781        (WebCore::RenderTextControl::createSubtreeIfNeeded):
12782
127832007-08-02  Oliver Hunt  <oliver@apple.com>
12784
12785        Reviewed by Geoff
12786
12787        Fix for <rdar://problem/5369332> Xcode crashes while selecting a hyperlink within a AppleScript dictionary (WebCore::Font::drawGlyphBuffer)
12788
12789        There were many places where we were not correctly retaining/releasing the
12790        NSFont object stored in the C++ PlatformFontData object, this resulted in
12791        the GC incorrectly collecting the NSFont.
12792
12793        This patch fixes the problem by prevent direct modification of the PlatformFontData
12794        font pointer, allowing us to enforce correct CFRetain/Release behaviour.
12795
12796        * platform/FontData.h:
12797        (WebCore::FontData::getNSFont):
12798        * platform/mac/FontCacheMac.mm:
12799        (WebCore::FontCache::getFontDataForCharacters):
12800        (WebCore::FontCache::createFontPlatformData):
12801        * platform/mac/FontDataMac.mm:
12802        (WebCore::initFontData):
12803        (WebCore::FontData::platformInit):
12804        (WebCore::FontData::platformDestroy):
12805        (WebCore::FontData::smallCapsFontData):
12806        (WebCore::FontData::containsCharacters):
12807        (WebCore::FontData::determinePitch):
12808        (WebCore::FontData::platformWidthForGlyph):
12809        (WebCore::FontData::checkShapesArabic):
12810        * platform/mac/FontMac.mm:
12811        (WebCore::initializeATSUStyle):
12812        (WebCore::overrideLayoutOperation):
12813        (WebCore::Font::drawGlyphs):
12814        * platform/mac/FontPlatformData.h:
12815        (WebCore::FontPlatformData::FontPlatformData):
12816        (WebCore::FontPlatformData::~FontPlatformData):
12817        (WebCore::FontPlatformData::hash):
12818        (WebCore::FontPlatformData::operator==):
12819        (WebCore::FontPlatformData::font):
12820        (WebCore::FontPlatformData::setFont):
12821
128222007-08-03  Antti Koivisto  <antti@apple.com>
12823
12824        Oops, this change wasn't supposed to be commited.
12825
12826        * page/mac/WebCoreFrameBridge.mm:
12827        (-[WebCoreFrameBridge setBaseBackgroundColor:]):
12828
128292007-08-02  Antti Koivisto  <antti@apple.com>
12830
12831        Reviewed by Darin.
12832
12833        <rdar://problem/5355951>
12834        plainText() fragments TCMalloc heap badly on large pages
12835        
12836        also likely fixes some cases of
12837        <rdar://problem/5335382>
12838        CrashTracer: [REGRESSION] 73 crashes in Safari at com.apple.WebCore: WebCore::DeprecatedStringData::increaseUnicodeSize + 52
12839        
12840        If you load http://dscoder.com/test.txt with WebKit build with TCMalloc and system malloc you see that
12841        Safari RPRVT with TCMalloc is 118.8MB
12842        Safari RPRVT with system malloc is 69.7MB
12843        
12844        Difference is almost entirely caused by heap fragmentation from a full document plainText() call (for indexing purposes).
12845        
12846        The patch helps in two ways:
12847        - construct plainText string in pieces to avoid O(n^2) reallocs
12848        - allocate buffers using system malloc so they can be returned back to OS and don't fragment and grow TCMalloc heap
12849    
12850        This shrinks http://dscoder.com/test.txt RPRVT to 79.0MB and makes full document plainText() take 50ms instead of 500ms.
12851        The benefits are not limited to extreme cases, web pages above ~200kB can show substantial improvement in RPRVT.
12852
12853        * editing/TextIterator.cpp:
12854        (WebCore::plainTextToMallocAllocatedBuffer):
12855        (WebCore::plainText):
12856        * editing/TextIterator.h:
12857        * page/mac/WebCoreFrameBridge.mm:
12858        (-[WebCoreFrameBridge selectedString]):
12859        (-[WebCoreFrameBridge stringForRange:]):
12860
128612007-08-02  David Hyatt  <hyatt@apple.com>
12862
12863        Fix for 5374437, allow comment nodes to be the child of a document.
12864        Refine the check to always make a root element to check documentElement()
12865        rather than firstChild(), since a comment node could be present as the
12866        firstChild() now.
12867
12868        Reviewed by Tim Hatcher
12869
12870        * html/HTMLDocument.cpp:
12871        (WebCore::HTMLDocument::childAllowed):
12872        * html/HTMLParser.cpp:
12873        (WebCore::HTMLParser::finished):
12874
128752007-08-02  Antti Koivisto  <antti@apple.com>
12876
12877        Reviewed by Darin.
12878        
12879        <rdar://problem/5228138>
12880        REGRESSION(Leopard): test failures: tests that test Georgian numbering
12881
12882        Fix to Georgian number tables to get CSS2.1 test results right. Font has relevant characters now 
12883        which revealed that results were actually wrong. 
12884
12885        * rendering/RenderListMarker.cpp:
12886        (WebCore::toGeorgian):
12887
128882007-08-02  Ada Chan  <adachan@apple.com>
12889
12890        Reviewed by Steve.
12891
12892        <rdar://problem/5079175> Added parameters headerHeight and footerHeight to 
12893        computePageRectsForFrame() so we can account for the header and footer when
12894        calculating page heights for this frame.
12895
12896        * bridge/win/FrameWin.cpp:
12897        (WebCore::computePageRectsForFrame):
12898        * bridge/win/FrameWin.h:
12899
129002007-08-02  Alice Liu  <alice.liu@apple.com>
12901
12902        Reviewed by Kevin McCullough.
12903
12904        fixed <rdar://problem/5310312> REGRESSION: javascript is mis-escaped at http://labs.zarate.org/passwd causing bookmarklet to break
12905        
12906        * WebCore.exp:
12907        expose some calls for WebKit to call. 
12908        * manual-tests/JavaScript-bookmarklets.html: Added.
12909
129102007-08-01  Adam Treat  <treat@kde.org>
12911
12912        Reviewed by George Staikos.
12913
12914        Add an interface to manage global history for clients
12915
12916        * WebCore.pro:
12917        * platform/qt/TemporaryLinkStubs.cpp:
12918
129192007-08-01  Adam Treat  <treat@kde.org>
12920
12921        Reviewed by George Staikos.
12922
12923        Do not call update or paint from inside a paint event.
12924
12925        * platform/qt/ScrollViewQt.cpp:
12926        (WebCore::ScrollView::updateContents):
12927        * platform/qt/WidgetQt.cpp:
12928        (WebCore::Widget::invalidateRect):
12929
129302007-08-01  Timothy Hatcher  <timothy@apple.com>
12931
12932        Reviewed by Justin.
12933
12934        <rdar://problem/5376156> Mail crash in DeleteButtonController::hide() when dropping selected image on DIV's border
12935
12936        Add the container element back so the selection can not touch the deletion UI nodes. The container
12937        has style to prevent user selection, user drag and user modification.
12938
12939        * editing/DeleteButtonController.cpp:
12940        (WebCore::DeleteButtonController::show): Make the container node, and append the button and outline elements.
12941        (WebCore::DeleteButtonController::hide): Remove the container elements and null out the other nodes.
12942        * editing/DeleteButtonController.h:
12943
129442007-08-01  Steve Falkenburg  <sfalken@apple.com>
12945
12946        Build mod: Fix sln to match configs in vcproj.
12947        
12948        Reviewed by Adam.
12949
12950        * WebCore.vcproj/WebCore.make:
12951
129522007-07-31  David Harrison  <harrison@apple.com>
12953
12954        Reviewed by Justin.
12955
12956        <rdar://problem/5362659> CrashTracer: [USER] 11 crashes in Mail at WebCore::InsertLineBreakCommand::doApply()
12957
12958        The problem was that deleting with the X control leaves the selection inside the fragment that was deleted.
12959
12960        * editing/DeleteButtonController.cpp:
12961        (WebCore::DeleteButtonController::deleteTarget):
12962        Because the deletion UI only appears when the selection is entirely
12963        within the target, we unconditionally update the selection to be
12964        a caret where the target had been.
12965
129662007-07-31  Adele Peterson  <adele@apple.com>
12967
12968        Reviewed by Hyatt.
12969
12970         Fix for <rdar://problem/5339395> REGRESSION:http://sudokucraving.com does not render grid correctly
12971
12972        * rendering/RenderTextControl.h: (WebCore::RenderTextControl::hasControlClip): Clip for search fields.
12973        * rendering/RenderTextControl.cpp:
12974        (WebCore::RenderTextControl::controlClipRect): Added a control clip so the search field's cancel button and magnifier glass
12975         never draw outside the control's bounds.
12976        (WebCore::RenderTextControl::calcPrefWidths): Only include the inner box's padding when calculating the min/max width without using calcContentBoxWidth.
12977         Our old behavior was causing that inner padding to get counted twice.  Also, no need to add in the border
12978         for an inner box that can't be controlled from outside this class.
12979        * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::calcPrefWidths): ditto.
12980
129812007-07-31  Anders Carlsson  <andersca@apple.com>
12982
12983        Reviewed by Geoff.
12984
12985        Speculative fix for <rdar://problem/5359695> 
12986        REGRESSION (Tiger Beta): Multiple crashes in WebCore::Widget::getView() const + 6
12987                
12988        * page/EventHandler.cpp:
12989        (WebCore::EventHandler::updateDragAndDrop):
12990        Null check the frame view.
12991
129922007-07-31  Timothy Hatcher  <timothy@apple.com>
12993
12994        Reviewed by Oliver and Beth.
12995
12996        <rdar://problem/5211271> ADOBE Leopard 9A410: At the first Launching InDesign after deactivate, EULA page gets blanked.
12997
12998        Rename needsAcrobatFrameReloadingQuirk to needsAdobeFrameReloadingQuirk, since this now applies to more Adobe applications.
12999
13000        * WebCore.exp:
13001        * page/Settings.cpp:
13002        (WebCore::Settings::Settings):
13003        (WebCore::Settings::setNeedsAdobeFrameReloadingQuirk):
13004        * page/Settings.h:
13005        (WebCore::Settings::needsAcrobatFrameReloadingQuirk):
13006
130072007-07-31  Matt Perry  <mpComplete@gmail.com>
13008
13009        Reviewed by Brady and Darin, tweaked by Brady, landed by Brady
13010
13011        Fix for http://bugs.webkit.org/show_bug.cgi?id=14757 and <rdar://problem/5364692>
13012        HTMLTokenizer::processingData implementation is incorrect
13013
13014        * html/HTMLTokenizer.cpp:
13015        (WebCore::HTMLTokenizer::processingData): Made it also return true if the HTMLTokenizer was inside the write() call.
13016        * loader/FrameLoader.cpp:
13017        (WebCore::FrameLoader::FrameLoader):
13018        (WebCore::FrameLoader::checkLoadCompleteTimerFired):
13019        (WebCore::FrameLoader::scheduleCheckLoadComplete):
13020        (WebCore::FrameLoader::stopForUserCancel): Changed a call to checkLoadComplete to be asynchronous, since
13021        stopForUserCancel can be called while parsing.
13022        * loader/FrameLoader.h:
13023
130242007-07-31  Anders Carlsson  <andersca@apple.com>
13025
13026        Reviewed by Geoff.
13027
13028        <rdar://problem/5371582>
13029        REGRESSION: PLT .5% slower due to r24451 (copying HTMLCollection objects)
13030        
13031        Make the hash maps store CollectionInfo pointers to reduce amount of copying when
13032        inserting/rehashing etc.
13033        
13034        * dom/Document.cpp:
13035        (WebCore::Document::~Document):
13036        (WebCore::Document::nameCollectionInfo):
13037        * dom/Document.h:
13038
130392007-07-31  Sam Weinig  <sam@webkit.org>
13040
13041        Reviewed by Mitz.
13042
13043        Fix for http://bugs.webkit.org/show_bug.cgi?id=14825
13044        Non-integer hsl() colours are ignored
13045
13046        * css/CSSParser.cpp:
13047        (WebCore::CSSParser::parseHSLParameters): Parse hue as a Number,
13048        not an Integer. 
13049
130502007-07-30  Justin Garcia  <justin.garcia@apple.com>
13051
13052        Reviewed by Darin.
13053
13054        <rdar://problem/5369009> Crash due to infinite recursion in moveParagraphs on delete
13055        
13056        After the delete, we moved content into the previous block, and a style
13057        rule turned a style span in the moved content into a block, throwing
13058        moveParagraphs into infinite recursion, as it continually tried and failed
13059        to get the style span into the same paragraph as the content just before it.
13060        
13061        Added a method to ReplaceSelectionCommand to keep inserted style spans 
13062        from turning into blocks because of style rules.  Will add code to prevent
13063        other kinds of content from changing appearance because of style rules,
13064        post-Leopard (5371536). Also added a bool to ReplaceSelectionCommand's 
13065        constructor to guard against infinite recursion.
13066
13067        * editing/CompositeEditCommand.cpp:
13068        (WebCore::CompositeEditCommand::moveParagraphs):
13069        * editing/JSEditor.cpp:
13070        * editing/ReplaceSelectionCommand.cpp:
13071        (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
13072        (WebCore::ReplaceSelectionCommand::negateStyleRulesThatEffectAppearance):
13073        (WebCore::ReplaceSelectionCommand::doApply):
13074        * editing/ReplaceSelectionCommand.h:
13075
130762007-07-30  Anders Carlsson  <andersca@apple.com>
13077
13078        Reviewed by Brady.
13079
13080        <rdar://problem/5371515>
13081        BitmapImage::getTIFFRepresentation() bug results in favicons not working at many sites
13082
13083        Don't bail out if a single frame is invalid.
13084        
13085        * platform/graphics/mac/ImageMac.mm:
13086        (WebCore::BitmapImage::getTIFFRepresentation):
13087
130882007-07-30  Adele Peterson  <adele@apple.com>
13089
13090        Reviewed by Darin.
13091
13092        Fix for <rdar://problem/5274937> Safari 3 breaks Missing Sync's WebKit code by crashing
13093
13094        * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::continueAfterContentPolicy): Nil check for the FrameLoader.
13095
130962007-07-30  Anders Carlsson  <andersca@apple.com>
13097
13098        Reviewed by Darin.
13099
13100        <rdar://problem/5370710> 
13101        REGRESSION: After switching from Bookmark view, the Find Banner won't appear while displaying a PDF file
13102
13103        Add a hasHTMLView to FrameLoaderClient. This is only useful for clients who can show different views for different
13104        MIME types and URL schemes.
13105        
13106        * loader/FrameLoader.cpp:
13107        (WebCore::FrameLoader::transitionToCommitted):
13108        Call delegate methods here if the current view is not a HTML view.
13109        
13110        * loader/FrameLoaderClient.h:
13111        (WebCore::FrameLoaderClient::hasHTMLView):
13112
131132007-07-30  Sam Weinig  <sam@webkit.org>
13114
13115        Reviewed by Maciej.
13116
13117        Fix for <rdar://problem/5363896>
13118        REGRESSION: Setting document.domain does not override port-based cross-frame security checks -- breaks SAP NetWeaver
13119
13120        Updates the results for:
13121            http/tests/security/cross-frame-access-port-explicit-domain.html
13122            http/tests/security/cross-frame-access-protocol-explicit-domain.html
13123
13124        * bindings/js/kjs_window.cpp:
13125        (KJS::createWindow): Use the new setDomainInternal method.
13126        (KJS::Window::isSafeScript): Don't set check the port or protocol 
13127        if both documents have explicitly set document.domain in the DOM
13128        and the those domains are equal.
13129        * dom/Document.cpp:
13130        (WebCore::Document::Document):
13131        (WebCore::Document::setDomain): Remove force parameter and change 
13132        all calls that relied on it use the new setDomainInternal method
13133        which does the same thing.
13134        (WebCore::Document::setDomainInternal): 
13135        * dom/Document.h: Add new m_domainWasSetInDOM variable and accessor.
13136        (WebCore::Document::domainWasSetInDOM):
13137        * loader/FrameLoader.cpp:
13138        (WebCore::FrameLoader::checkCallImplicitClose): Use the new setDomainInternal method. 
13139
131402007-07-30  Justin Garcia  <justin.garcia@apple.com>
13141
13142        Reviewed by Tristan.
13143        
13144        <rdar://problem/5098931> Attachments are lost when they are moved into a ToDo after a delete
13145        
13146        Added an editor client method for asking whether or not it is
13147        OK to merge content after a delete.
13148
13149        * bridge/EditorClient.h:
13150        * editing/DeleteSelectionCommand.cpp:
13151        (WebCore::DeleteSelectionCommand::mergeParagraphs): Ask if the 
13152        merge is allowed.
13153        * platform/gdk/EditorClientGdk.cpp: 
13154        (WebCore::EditorClientGdk::shouldMoveRangeAfterDelete): Added a method stub.
13155        * platform/gdk/EditorClientGdk.h:
13156        * platform/graphics/svg/SVGImageEmptyClients.h: 
13157        (WebCore::SVGEmptyEditorClient::shouldMoveRangeAfterDelete): Ditto.
13158
131592007-07-30  Alexey Proskuryakov  <ap@webkit.org>
13160
13161        Reviewed by Anders.
13162
13163        <rdar://problem/5352526>
13164        http://bugs.webkit.org/show_bug.cgi?id=14704
13165        REGRESSION: sync XMLHttpRequest.send() raises an exception for failed authentication
13166
13167        Test: http/tests/xmlhttprequest/failed-auth.html
13168
13169        * platform/network/mac/ResourceHandleMac.mm:
13170        (WebCore::ResourceHandle::loadResourceSynchronously): Make the fake response better match the real one
13171        in case of failed authentication. Unfortunately, NSURLConnection doesn't give us the real response.
13172
13173        * xml/XMLHttpRequest.cpp:
13174        (WebCore::XMLHttpRequest::send): If the response has an HTTP code in it, then the error wasn't
13175        a network one, and an exception shouldn't be raised.
13176
131772007-07-30  Anders Carlsson  <andersca@apple.com>
13178
13179        Reviewed by Darin.
13180
13181        <rdar://problem/4942372> REGRESSION: Anchor links in Mail don't work anymore
13182        
13183        Make it possible for KURL to handle addig fragments to non-hierarchical URLs
13184        such as mailto: and cid:.
13185    
13186        * platform/KURL.cpp:
13187        (WebCore::KURL::init):
13188        If the base URL is not hierarchical but the relative URL is a fragment, then 
13189        allow parsing it.
13190        
13191        (WebCore::KURL::parse):
13192        If the URL is not hierarchical, set the fragment start and end positions correctly.
13193
131942007-07-30  Simon Hausmann  <hausmann@kde.org>
13195
13196        Reviewed by Lars.
13197
13198        On Windows make sure the dll also ends up in $$OUTPUT_DIR/bin, so that QtLauncher can find it.
13199
13200        * WebCore.pro:
13201
132022007-07-30  Simon Hausmann  <hausmann@kde.org>
13203
13204        Reviewed by Lars.
13205
13206        Removed the __BUILDING_QT ifdef in JSStringRef.h and changed UChar for the Qt build to use wchar_t on Windows.
13207
13208        * platform/TextEncoding.cpp:
13209        (WebCore::TextEncoding::encode):
13210
132112007-07-30  Simon Hausmann  <hausmann@kde.org>
13212
13213        Reviewed by Lars.
13214
13215        Don't link against libxml/libxslt unless we really need it.
13216
13217        * WebCore.pro:
13218
132192007-07-29  Tristan O'Tierney  <tristan@apple.com>
13220
13221        Reviewed by Oliver Hunt.
13222
13223        <rdar://problem/5369282> REGRESSION: DOMHTMLInput throwing exception due to missing _isEdited method
13224
13225        * bindings/objc/DOMHTML.mm:
13226        (-[DOMHTMLInputElement _isEdited]):
13227        (-[DOMHTMLTextAreaElement _isEdited]):
13228        * bindings/objc/DOMPrivate.h:
13229        Renamed _isUserEdited to _isEdited.
13230
132312007-07-29  Adam Treat  <treat@kde.org>
13232
13233        Reviewed by George Staikos.
13234
13235        Correctly set the update rect for the scrollbars when they are invalidated.
13236        Do not paint entire page for each scroll delta.  Cache the dirty regions
13237        when webkit calls ScrollView::updateContents as webkit expects the paint
13238        routine to use the dirty regions bounding rect.
13239
13240        These changes greatly reduce the cpu load as we are no longer painting the
13241        entire page for each 1px scroll :P
13242
13243        * platform/qt/ScrollViewQt.cpp:
13244        (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
13245        (WebCore::ScrollView::updateContents):
13246        (WebCore::ScrollView::paint):
13247        * platform/qt/WidgetQt.cpp:
13248        (WebCore::Widget::invalidateRect):
13249
132502007-07-29  Adele Peterson  <adele@apple.com>
13251
13252        Reviewed by John.
13253
13254        WebCore part of fix for <rdar://problem/5102522> REGRESSION: Can't tab to webview that doesn't have editable content (affects Safari, preview pane in Mail)
13255
13256        * WebCore.exp:
13257        * page/FocusController.cpp:
13258        (WebCore::FocusController::setInitialFocus): Added.
13259        (WebCore::FocusController::advanceFocus): Don't give the focus back to the chrome if this is the initial focus.
13260        * page/FocusController.h:
13261
132622007-07-29  Adam Treat  <treat@kde.org>
13263
13264        Reviewed by Alexey Proskuryakov.
13265
13266        WebCore::Widget::setParent should be virtual.
13267        It is reimplemented in ScrollViewQt for instance.
13268
13269        * platform/Widget.h:
13270
132712007-07-29  Alp Toker  <alp.toker@collabora.co.uk>
13272
13273        Reviewed by bdash.
13274
13275        http://bugs.webkit.org/show_bug.cgi?id=14711 (revisited)
13276        RenderThemeGdk's buttons are state-agnostic (pressed, hovered)
13277
13278        Generalize shadow state into a function.
13279        use a GtkHBox to work around a theme bug (thanks to Nigel Tao).
13280
13281        * platform/gdk/RenderThemeGdk.cpp:
13282        (WebCore::RenderThemeGdk::determineShadow):
13283        (WebCore::RenderThemeGdk::paintCheckbox):
13284        (WebCore::RenderThemeGdk::paintRadio):
13285        (WebCore::RenderThemeGdk::paintButton):
13286        (WebCore::RenderThemeGdk::gtkWindowContainer):
13287        * platform/gdk/RenderThemeGdk.h:
13288
132892007-07-27  Adele Peterson  <adele@apple.com>
13290
13291        Reviewed by Darin. 
13292
13293        Temporary fix for Windows to prevent crashing on all frame pages.  Darin
13294        is working on a more permanent fix.
13295
13296        * loader/FrameLoader.cpp:
13297
132982007-07-27  Adam Treat  <treat@kde.org>
13299
13300        Reviewed by David Hyatt.
13301
13302        Fix crash when using QtWebKit canvas support.
13303
13304        * ChangeLog:
13305        * html/HTMLCanvasElement.cpp:
13306        (WebCore::HTMLCanvasElement::reset):
13307
133082007-07-27  Darin Adler  <darin@apple.com>
13309
13310        * rendering/RenderLayer.cpp: Rolled out accidentally-checked-in code.
13311
133122007-07-27  Darin Adler  <darin@apple.com>
13313
13314        Reviewed by John Sullivan.
13315
13316        - fix <rdar://problem/5261393> In Mail the plain text alternatives to messages with attachments show weird little OBJ thingies
13317
13318        The "weird little thingies" are U+FFFC characters. It's good to render them as zero-width, the way we do
13319        with control characters -- helps Mail and doesn't hurt web browsing.
13320
13321        Test: fast/text/zero-width-characters.html
13322
13323        * platform/CharacterNames.h: Add names for leftToRightMark, rightToLeftMark, and objectReplacementCharacter.
13324        * platform/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): Give objectReplacementCharacter
13325        zero width in the same way we do it for the various other characters.
13326
133272007-07-27  Lars Knoll <lars@trolltech.com>
13328
13329        Reviewed by Zack
13330
13331        Enable XSLT support for the gtk port.
13332
13333        * WebCore.pro:
13334
133352007-07-27  Zack Rusin  <zack@kde.org>
13336
13337        Reviewed by Zack and Lars.
13338
13339        Premature end after finishing parsing is a fatal error.
13340
13341        * dom/XMLTokenizer.cpp:
13342        (WebCore::XMLTokenizer::end):
13343
133442007-07-27  Lars Knoll  <lars@trolltech.com>
13345
13346        Reviewed by Zack and Lars.
13347
13348        Simplify conversions that go from a QStringRef to a WebCore::String to not use a temporary QString.
13349
13350        * dom/XMLTokenizer.cpp:
13351        (WebCore::):
13352
133532007-07-27  Zack Rusin  <zack@kde.org>
13354
13355        Reviewed by Zack and Lars.
13356
13357        Fix entity handling in the main document content (attributes still broken)
13358
13359        * dom/XMLTokenizer.cpp:
13360        (WebCore::):
13361
133622007-07-27  Lars Knoll  <lars@trolltech.com>
13363
13364        Reviewed by Zack and Lars.
13365
13366        Correctly convert a null QString into a null WebCore::String. Add a String(const QStringRef&) constructor so that we can avoid converting QStringRef via QString to WebCore::String.
13367
13368        * dom/XMLTokenizer.cpp:
13369        (WebCore::):
13370        * platform/PlatformString.h:
13371        * platform/qt/StringQt.cpp:
13372        (WebCore::String::String):
13373
133742007-07-27  Zack Rusin  <zack@kde.org>
13375
13376        Reviewed by Zack and Lars.
13377
13378        Parse version and encoding of the xml document.
13379
13380        * dom/XMLTokenizer.cpp:
13381        (WebCore::XMLTokenizer::write):
13382
133832007-07-27  Zack Rusin  <zack@kde.org>
13384
13385        Reviewed by Zack and Lars.
13386
13387        Correctly or semi-correctly parse the public and system id.
13388
13389        Patch from Lars.
13390
13391        * dom/XMLTokenizer.cpp:
13392        (WebCore::):
13393
133942007-07-27  Zack Rusin  <zack@kde.org>
13395
13396        Reviewed by Zack and Lars.
13397
13398        Fix uri parsing for attributes.
13399
13400        * dom/XMLTokenizer.cpp:
13401        (WebCore::):
13402
134032007-07-27  Zack Rusin  <zack@kde.org>
13404
13405        Reviewed by Zack and Lars.
13406
13407        Fixing qualified name parsing - from Lars.
13408
13409        * dom/XMLTokenizer.cpp:
13410        (WebCore::XMLTokenizer::insertErrorMessageBlock):
13411        (WebCore::):
13412
134132007-07-27  Zack Rusin  <zack@kde.org>
13414
13415        Reviewed by Zack and Lars.
13416
13417        Parse dtd's
13418
13419        * dom/XMLTokenizer.cpp:
13420        (WebCore::XMLTokenizer::resumeParsing):
13421        (WebCore::):
13422        * dom/XMLTokenizer.h:
13423
134242007-07-27  Zack Rusin  <zack@kde.org>
13425
13426        Reviewed by Zack and Lars.
13427
13428        Implement error handling.
13429
13430        Add our copyrights
13431
13432        * dom/XMLTokenizer.cpp:
13433        (WebCore::XMLTokenizer::handleError):
13434        (WebCore::XMLTokenizer::end):
13435        (WebCore::):
13436        * dom/XMLTokenizer.h:
13437
134382007-07-27  Zack Rusin  <zack@kde.org>
13439
13440        Reviewed by Zack and Lars.
13441
13442        Making the stylesheets work (plus everything else basically)
13443
13444        * dom/XMLTokenizer.cpp:
13445        (WebCore::XMLTokenizer::write):
13446        (WebCore::XMLTokenizer::insertErrorMessageBlock):
13447        (WebCore::):
13448        * dom/XMLTokenizer.h:
13449
134502007-07-27  Zack Rusin  <zack@kde.org>
13451
13452        Reviewed by Zack and Lars.
13453
13454        Remove the libxml dependency when not compiling with XSLT.
13455
13456        Just ifdefing, displaying xml doesn't work.
13457
13458        * WebCore.pro:
13459        * dom/XMLTokenizer.cpp:
13460        (WebCore::XMLTokenizer::XMLTokenizer):
13461        (WebCore::XMLTokenizer::write):
13462        (WebCore::XMLTokenizer::startElementNs):
13463        (WebCore::XMLTokenizer::enterText):
13464        (WebCore::XMLTokenizer::exitText):
13465        (WebCore::XMLTokenizer::initializeParserContext):
13466        (WebCore::XMLTokenizer::end):
13467        (WebCore::XMLTokenizer::lineNumber):
13468        (WebCore::XMLTokenizer::columnNumber):
13469        (WebCore::XMLTokenizer::stopParsing):
13470        (WebCore::XMLTokenizer::resumeParsing):
13471        (WebCore::):
13472        * dom/XMLTokenizer.h:
13473
134742007-07-27  Simon Hausmann  <hausmann@kde.org>
13475
13476        Reviewed by Zack.
13477
13478        Work around bug in the moc when used as preprocessor for generating the bindings. -DFOO=1 is needed instead of -DFOO
13479        to make the <hash>if FOO conditional match.
13480
13481        * WebCore.pro:
13482
134832007-07-27  Patrick Hanna  <phanna@email.unc.edu>
13484
13485        Reviewed by Darin Adler.
13486
13487        Change PluginBase::refresh to be static and update PluginsFunc::callAsFunction accordingly. Now we no longer
13488        allocate an instance of a JSObject subclass on the stack which could lead to a crash during garbage collection.
13489
13490        * bindings/js/kjs_navigator.cpp:
13491        (KJS::PluginsFunc::callAsFunction):
13492
134932007-07-27  Simon Hausmann  <hausmann@kde.org>
13494
13495        Done with and reviewed by Lars and Zack.
13496
13497        Fix snprintf hack for the Qt/Windows build with mingw-gcc. MingW has snprintf, so we don't need this helper function.
13498
13499        * page/FrameTree.cpp:
13500        * platform/DeprecatedString.cpp:
13501        (WebCore::DeprecatedString::format):
13502        * platform/String.cpp:
13503        (WebCore::String::format):
13504
135052007-07-27  Simon Hausmann  <hausmann@kde.org>
13506
13507        Done with and reviewed by Lars and Zack.
13508
13509        Make the DocTypeStrings.cpp generation work with MingW. Cleaned it up to be a regular extra compiler at the same time.
13510
13511        * WebCore.pro:
13512
135132007-07-27  Simon Hausmann  <hausmann@kde.org>
13514
13515        Done with and reviewed by Lars and Zack.
13516
13517        MingW build fixes: Do the "OBJECTS_TRAILING_SLASH" trick not only for win32-msvc but for all win32 mkspecs. Added LIB/INCLUDE hack from Qt to make us pick up 3rdparty libraries such as libxml from these environment variables.
13518
13519        * WebCore.pro:
13520
135212007-07-27  Simon Hausmann  <hausmann@kde.org>
13522
13523        Done with and reviewed by Lars and Zack.
13524
13525        Use $(MOVE) instead of mv to eliminated the shell dependency and replaced the long shell line to call bison and modify the css grammar file with a few lines of portable perl code.
13526
13527        * WebCore.pro:
13528        * css/makegrammar.pl: Added.
13529
135302007-07-27  Simon Hausmann  <hausmann@kde.org>
13531
13532        Done with and reviewed by Lars and Zack.
13533
13534        On make install on Windows copy the dll into the bin dir.
13535
13536        * WebCore.pro:
13537
135382007-07-27  Simon Hausmann  <hausmann@kde.org>
13539
13540        Done with and reviewed by Lars and Zack.
13541
13542        Link in libxml and libxslt on Windows.
13543
13544        * WebCore.pro:
13545
135462007-07-27  Simon Hausmann  <hausmann@kde.org>
13547
13548        Done with and reviewed by Lars and Zack.
13549
13550        Temporarily disable the ICO support for the Qt build on Windows.
13551
13552        * WebCore.pro:
13553        * platform/graphics/qt/ImageDecoderQt.cpp:
13554
135552007-07-27  Simon Hausmann  <hausmann@kde.org>
13556
13557        Done with and reviewed by Lars and Zack.
13558
13559        Fix evaluation with ActiveState Perl 5.6. Somehow it tried to treat nameEntries as array.
13560
13561        * bindings/scripts/CodeGeneratorJS.pm:
13562
135632007-07-27  Simon Hausmann  <hausmann@kde.org>
13564
13565        Done with and reviewed by Lars and Zack.
13566
13567        Fix compilation with MSVC in the Qt build (missing header files).
13568
13569        * loader/icon/IconDatabaseNone.cpp:
13570        * platform/graphics/svg/SVGImage.cpp:
13571
135722007-07-27  Simon Hausmann  <hausmann@kde.org>
13573
13574        Done with and reviewed by Lars and Zack.
13575
13576        Disable the favicon database on Windows for now, to eliminate the sqlite dependency.
13577
13578        * WebCore.pro:
13579
135802007-07-27  Simon Hausmann  <hausmann@kde.org>
13581
13582        Done with and reviewed by Lars and Zack.
13583
13584        Added custom preprocessor support to make_names.pl and use the moc for it in the Qt build.
13585
13586        * WebCore.pro:
13587        * ksvg2/scripts/make_names.pl:
13588
135892007-07-27  Simon Hausmann  <hausmann@kde.org>
13590
13591        Done with and reviewed by Lars and Zack.
13592
13593        Disable the batch mode for nmake to work around the clash of Node.c and Node.cpp both mapping to Node.obj
13594
13595        * WebCore.pro:
13596
135972007-07-27  Simon Hausmann  <hausmann@kde.org>
13598
13599        Done with and reviewed by Lars and Zack.
13600
13601        Fix compilation under Windows (removed sys/time.h dependency, use Qt instead).
13602
13603        * platform/qt/SystemTimeQt.cpp:
13604
136052007-07-27  Simon Hausmann  <hausmann@kde.org>
13606
13607        Done with and reviewed by Lars and Zack.
13608
13609        Fix compilation on Windows.
13610
13611        * platform/graphics/qt/PathQt.cpp:
13612
136132007-07-27  Simon Hausmann  <hausmann@kde.org>
13614
13615        Done with and reviewed by Lars and Zack.
13616
13617        Fix generation of ColorData.c on Windows.
13618
13619        * WebCore.pro:
13620
136212007-07-27  Simon Hausmann  <hausmann@kde.org>
13622
13623        Done with and reviewed by Lars and Zack.
13624
13625        Fix compilation under Qt/Windows.
13626
13627        * loader/icon/IconDatabase.cpp:
13628        (WebCore::IconDatabase::open):
13629
136302007-07-27  Simon Hausmann  <hausmann@kde.org>
13631
13632        Done with and reviewed by Lars and Zack.
13633
13634        Changed extendedAttributes to be a variable instead of a hash directly. Required to work with ActiveState perl.
13635
13636        * bindings/scripts/IDLStructure.pm:
13637
136382007-07-27  Simon Hausmann  <hausmann@kde.org>
13639
13640        Done with and reviewed by Lars and Zack.
13641
13642        Fix header guard generation for CSSGrammar.h under Windows
13643
13644        * WebCore.pro:
13645
136462007-07-27  Simon Hausmann  <hausmann@kde.org>
13647
13648        Done with and reviewed by Lars and Zack.
13649
13650        Fix build with moc as preprocessor. Don't rely the preprocessor preserving whitespace at the beginning of lines.
13651
13652        * bindings/scripts/IDLParser.pm:
13653
136542007-07-27  Simon Hausmann  <hausmann@kde.org>
13655
13656        Done with and reviewed by Lars and Zack.
13657
13658        Make make-css-file-arrays.pl work on Windows by not calling /usr/bin/gcc as preprocessor for the Qt build.
13659
13660        * WebCore.pro:
13661        * css/make-css-file-arrays.pl:
13662
136632007-07-27  Simon Hausmann  <hausmann@kde.org>
13664
13665        Done with and reviewed by Lars and Zack.
13666
13667        More gperf commandline fixes for Windows.
13668
13669        * WebCore.pro:
13670
136712007-07-27  Simon Hausmann  <hausmann@kde.org>
13672
13673        Done with and reviewed by Lars and Zack.
13674
13675        More quoting fixes for perl under Windows.
13676
13677        * WebCore.pro:
13678
136792007-07-27  Simon Hausmann  <hausmann@kde.org>
13680
13681        Done with and reviewed by Lars and Zack.
13682
13683        Fix command quoting under Windows
13684
13685        * WebCore.pro:
13686
136872007-07-27  Simon Hausmann  <hausmann@kde.org>
13688
13689        Done with and reviewed by Lars and Zack.
13690
13691        Fix cssmakeprops and cssmakevalue scripts to work on Windows without cygwin perl. Avoid inplace substitutions and direct invocation of /bin/sh. Also call gperf with arguments that GnuWin32's gperf understands.
13692
13693        * ksvg2/scripts/cssmakeprops:
13694        * ksvg2/scripts/cssmakevalues:
13695
136962007-07-27  Simon Hausmann  <hausmann@kde.org>
13697
13698        Done with and reviewed by Lars and Zack.
13699
13700        Beautiful hacks to make more of the extra compiler magic work under Windows outside of cygwin.
13701
13702        * WebCore.pro:
13703
137042007-07-27  Simon Hausmann  <hausmann@kde.org>
13705
13706        Done with and reviewed by Lars and Zack.
13707
13708        Correctly propagate the custom preprocessor option through the idl parser and the codegenerator.
13709
13710        * bindings/scripts/CodeGenerator.pm:
13711        * bindings/scripts/generate-bindings.pl:
13712
137132007-07-27  Simon Hausmann  <hausmann@kde.org>
13714
13715        Done with and reviewed by Lars and Zack.
13716
13717        When constructing the absolute path when searching for IDL files in the list of search paths don't prepend a slash if $SOURCEROOT as environment variable is not set. In the Qt build we pass absolute search paths already and we don't set SOURCEROOT. Under Unix that gives a double slash for the directory which works fine, under Windows we get /c:\webkit\foo which of course does not work.
13718
13719        * bindings/scripts/CodeGenerator.pm:
13720
137212007-07-27  Simon Hausmann  <hausmann@kde.org>
13722
13723        Done with and reviewed by Lars and Zack.
13724
13725        Relax the regular expression that tries to find constant declarations in the IDL source to not require leading whitespace. This makes it work with preprocessors that happen to eliminate leading whitespace.
13726
13727        * bindings/scripts/IDLParser.pm:
13728
137292007-07-27  Simon Hausmann  <hausmann@kde.org>
13730
13731        Done with and reviewed by Lars and Zack.
13732
13733        Try to use the moc as preprocessor for the IDL bindings generator
13734
13735        * WebCore.pro:
13736
137372007-07-27  Simon Hausmann  <hausmann@kde.org>
13738
13739        Done with and reviewed by Lars and Zack.
13740
13741        Make it possible to specify the preprocessor the bindings generator uses instead of hardcoding /usr/bin/gcc (which is of course no option on Windows). Also try to use a more portable and Windows friendly way of opening the reading pipe to the preprocessor.
13742
13743        * bindings/scripts/IDLParser.pm:
13744        * bindings/scripts/generate-bindings.pl:
13745
137462007-07-27  Simon Hausmann  <hausmann@kde.org>
13747
13748        Done with and reviewed by Lars and Zack.
13749
13750        Don't use stdout redirection for make_names.pl as it doesn't work under Windows perl (outside cygwin).
13751
13752        * ksvg2/scripts/make_names.pl:
13753
137542007-07-27  Simon Hausmann  <hausmann@kde.org>
13755
13756        Done with and reviewed by Lars and Zack.
13757
13758        Fix DocTypeStrings.cpp generation to work on Windows with cmd.exe
13759
13760        * WebCore.pro:
13761
137622007-07-27  Simon Hausmann  <hausmann@kde.org>
13763
13764        Reviewed by Lars.
13765
13766        Work around aliasing bugs in WebCore by compiling with -fno-strict-aliasing for gcc builds for now.
13767
13768        * WebCore.pro:
13769
137702007-07-27  Simon Hausmann  <hausmann@kde.org>
13771
13772        Reviewed by Lars.
13773
13774        Use -Wreturn-type only when compiling with g++
13775
13776        * WebCore.pro:
13777
137782007-07-27  Simon Hausmann  <hausmann@kde.org>
13779
13780        Reviewed by Zack.
13781
13782        Don't use pkg-config on Windows for the Qt build
13783
13784        * WebCore.pro:
13785
137862007-07-27  Simon Hausmann  <hausmann@kde.org>
13787
13788        Reviewed by Zack.
13789
13790        Fix compilation with MSVC.
13791
13792        * platform/graphics/qt/ImageDecoderQt.cpp:
13793
137942007-07-26  Tristan O'Tierney  <tristan@apple.com>
13795
13796        Reviewed by Anders Carlsson.
13797
13798        <rdar://problem/5350019> REGRESSION: Pages on milliyet.com are added to Back list when visited, causing Back button to just reload
13799
13800        * loader/FrameLoader.cpp:
13801        (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
13802        If the policy action is FrameLoadTypeRedirectLockHistory, don't add the frame load url to the history.
13803
138042007-07-26  Anders Carlsson  <andersca@apple.com>
13805
13806        Reviewed by Geoff.
13807
13808        Add a FIXME about caching pages with plug-ins that have outstanding NPObjects.
13809        
13810        * loader/FrameLoader.cpp:
13811        (WebCore::FrameLoader::canCachePage):
13812
138132007-07-26  David Hyatt  <hyatt@apple.com>
13814
13815        FIx for <rdar://problem/5289721> CrashTracer: [REGRESSION] 2658 crashes in Safari at com.apple.WebCore: WebCore::RenderInline::height const + 16
13816
13817        Adding a null check for now and an assert.  We don't know how/why this
13818        bug happens, but hopefully the assert will help people to reproduce.
13819
13820        Reviewed by kevin
13821
13822        * rendering/RenderInline.cpp:
13823        (WebCore::RenderInline::height):
13824
138252007-07-26  Anders Carlsson  <andersca@apple.com>
13826
13827        Reviewed by Oliver.
13828
13829        <rdar://problem/5362783>
13830        In Mail, a crash occurs at WTF::fastMalloc() when attempting to create a new HTML message from http://nytimes.com/
13831        
13832        If the cache is disabled and there is already a resource with the given URL, return it instead of creating a new one.
13833        
13834        * loader/DocLoader.cpp:
13835        (WebCore::DocLoader::requestResource):
13836
138372007-07-26  Adele Peterson  <adele@apple.com>
13838
13839        Reviewed by Geoff. 
13840
13841        Build fix.
13842
13843        * platform/network/cf/ResourceRequest.h:
13844
138452007-07-26  Anders Carlsson  <andersca@apple.com>
13846
13847        Reviewed by John Sullivan.
13848
13849        <rdar://problem/5349389> 
13850        Some frame load delegate methods not called when loading a page from the BF cache
13851        
13852        These calls were moved to FrameLoader::begin, which is never called for pages loaded
13853        from the BF cache. This happened in revision 24490.
13854         
13855        * loader/FrameLoader.cpp:
13856        (WebCore::FrameLoader::transitionToCommitted):
13857        Call delegate methods if the load is from the BF cache.
13858
138592007-07-26  Kevin McCullough  <kmccullough@apple.com>
13860
13861        Reviewed by Darin, Geoff and Sam.
13862
13863        - <rdar://problem/5150461> Resizing the window larger than the screen causes no resize.
13864        - We now better match the behavior of other browsers.
13865
13866        * bindings/js/kjs_window.cpp:
13867        (KJS::constrainToVisible):
13868        (KJS::WindowFunc::callAsFunction):
13869
138702007-07-26  Tristan O'Tierney  <tristan@apple.com>
13871
13872        Reviewed by Adele Peterson.
13873        
13874        <rdar://problem/5359921> WebCore should maintain a dirty flag for confirmation on unsaved changes
13875
13876        * bindings/objc/DOMHTML.mm:
13877        (-[DOMHTMLInputElement _isUserEdited]):
13878        (-[DOMHTMLTextAreaElement _isUserEdited]):
13879        Renamed _isEdited to _isUserEdited since the functionality is now different
13880        
13881        * bindings/objc/DOMPrivate.h:
13882        Renamed _isEdited to _isUserEdited.
13883        
13884        * rendering/RenderTextControl.cpp:
13885        (WebCore::RenderTextControl::RenderTextControl):
13886        Defaulted m_userEdited to false
13887        
13888        (WebCore::RenderTextControl::updateFromElement):
13889        Set m_userEdited to false, since the change wasn't triggered first by an edit
13890        
13891        (WebCore::RenderTextControl::subtreeHasChanged):
13892        Set m_userEdited to true, since it has been touched by the user
13893        
13894        * rendering/RenderTextControl.h:
13895        (WebCore::RenderTextControl::isUserEdited):
13896        (WebCore::RenderTextControl::setUserEdited):
13897        Added two new methods to set/return the userEdited boolean value.
13898        
138992007-07-26  Geoffrey Garen  <ggaren@apple.com>
13900
13901        Reviewed by Beth Dakin.
13902
13903        Fixed NULL-dereference crash seen on buildbot.
13904        
13905        No bug filed because this is a part of <rdar://problem/5241167>.
13906
13907        * history/PageCache.h:
13908        (WebCore::PageCache::get): NULL-check HistoryItems passed to get()
13909        and remove(), to match the old semantics of HashMap. For clarity,
13910        ASSERT that add() is not called with NULL arguments.
13911
139122007-07-26  Anders Carlsson  <andersca@apple.com>
13913
13914        Reviewed by Oliver Hunt.
13915
13916        <rdar://problem/5361106> Crash in user style sheet when loading webpage
13917
13918        Null check m_frame.
13919        
13920        * dom/Document.cpp:
13921        (WebCore::Document::stylesheetLoaded):
13922
139232007-07-26  Geoffrey Garen  <ggaren@apple.com>
13924
13925        Used `svn merge -r24646:24645' to revert project changes I accidentally
13926        checked in.
13927
13928        * WebCore.xcodeproj/project.pbxproj:
13929
139302007-07-26  Geoffrey Garen  <ggaren@apple.com>
13931
13932        Reviewed by Darin Adler.
13933
13934        Fixed <rdar://problem/5241167> REGRESSION: PLT 1% slower due to r21793 
13935        (global page cache cap)
13936        
13937        I just measured a .1%-.2% regression in PLT average, but a .4% win in 
13938        PLT fastest run, so I think this regression is licked.
13939
13940        Surprisingly, the combination of wtf data structures I originally used 
13941        for PageCache turned out to be too slow, so I reworked PageCache to use
13942        a hand-crafted linked list for LRU tracking (instead of ListHashSet), 
13943        to store its CachedPages in the HistoryItems to which they corresponded 
13944        (instead of using a HashMap), and to ref/deref HistoryItems manually
13945        (instead of using RefPtr, which would ref once for every reference in 
13946        the linked list).
13947
13948        * history/HistoryItem.h: Added data members for PageCache data. Made
13949        PageCache a friend so it could access them. Ideally (from an 
13950        encapsulation perspective), we would store this data an independent 
13951        structure, but that's just too slow.
13952
13953        * history/PageCache.cpp: Added a hand-crafted linked list for LRU 
13954        tracking.
13955        (WebCore::PageCache::PageCache):
13956        (WebCore::PageCache::add): Adopt the HistoryItem's ref when it's added.
13957        (WebCore::PageCache::remove): deref() the Historyitem when it's 
13958        removed.
13959        (WebCore::PageCache::prune):
13960        (WebCore::PageCache::addToLRUList):
13961        (WebCore::PageCache::removeFromLRUList):
13962
13963        * history/PageCache.h:
13964        (WebCore::PageCache::get): Inlined just in case.
13965
139662007-07-26  Adam Treat  <treat@kde.org>
13967
13968        Reviewed by George Staikos.
13969
13970        Launch the context menu in the right place.
13971
13972        * platform/qt/ContextMenuQt.cpp:
13973        (WebCore::ContextMenu::setPlatformDescription):
13974
139752007-07-25  Maciej Stachowiak  <mjs@apple.com>
13976
13977        Reviewed by Mark.
13978
13979        - follow-up to previous change to avoid assertion failures in debug
13980        
13981        * xml/XMLHttpRequest.cpp:
13982        (WebCore::XMLHttpRequest::getResponseText): hold JSLock when needed
13983        (WebCore::XMLHttpRequest::open): ditto
13984        (WebCore::XMLHttpRequest::didFinishLoading): ditto
13985        (WebCore::XMLHttpRequest::didReceiveData): ditto
13986        * xml/XMLHttpRequest.h:
13987
139882007-07-25  Anders Carlsson  <andersca@apple.com>
13989
13990        Reviewed by Darin.
13991
13992        <rdar://problem/5327912> 
13993        iDisk: Web iDisk & main iDisk appear blank
13994        
13995        Prepend any remaining text that scripts might have written.
13996        
13997        * html/HTMLTokenizer.cpp:
13998        (WebCore::HTMLTokenizer::scriptExecution):
13999
140002007-07-25  Kevin McCullough  <kmccullough@apple.com>
14001
14002        Reviewed by Tim, Darin, Oliver.
14003
14004        - <rdar://problem/5329440> REGRESSION: Clicking links with the feed:// protocol in Safari 3 does nothing
14005        - Check for file:// urls when clicking links, not block all schemes that are treated as local.
14006
14007        * loader/FrameLoader.cpp:
14008        (WebCore::FrameLoader::load):
14009
140102007-07-25  Maciej Stachowiak  <mjs@apple.com>
14011
14012        Reviewed by Darin.
14013
14014        - fixed <rdar://problem/5300291> Optimize GC to reclaim big, temporary objects (like XMLHttpRequest.responseXML) quickly
14015        
14016        With this plus related JavaScriptCore changes, a number of XMLHttpRequest situations that
14017        result in huge data sets are addressed, including a single huge responseXML on an XMR done
14018        repeatedly, or accessing responseText repeatedly during loading of a single large XHR.
14019        
14020        In addition to the GC changes in JavaScriptCore, I changed responseText to be stored as a
14021        KJS::UString instead of a WebCore::String so that the JavaScript responseText value can
14022        share the buffer (indeed multiple intermediate responseTexts can share its buffer).
14023
14024        
14025        First of all, here's some manual test cases that will each blow out the process VM without this fix,
14026        but will settle into decent steady state with.
14027        
14028        * manual-tests/memory: Added.
14029        * manual-tests/memory/MessageUidsAlreadyDownloaded2: Added.
14030        * manual-tests/memory/string-growth.html: Added.
14031        * manual-tests/memory/xhr-multiple-requests-responseText.html: Added.
14032        * manual-tests/memory/xhr-multiple-requests-responseXML.html: Added.
14033        * manual-tests/memory/xhr-multiple-requests.html: Added.
14034        * manual-tests/memory/xhr-repeated-string-access.xml: Added.
14035
14036        And here's the actual code changes:
14037        
14038        * WebCore.xcodeproj/project.pbxproj:
14039        * bindings/js/JSDocumentCustom.cpp:
14040        (WebCore::toJS): Record extra cost if the document is frameless (counting the nodes
14041        doesn't make a measurable performance difference here in any case I could find)
14042        * bindings/js/JSXMLHttpRequest.cpp:
14043        (KJS::JSXMLHttpRequest::getValueProperty): Adjust for the fact that ressponseText
14044        is now stored as a UString.
14045        * bindings/js/kjs_binding.cpp:
14046        (KJS::jsOwnedStringOrNull): New helper.
14047        * bindings/js/kjs_binding.h:
14048        * xml/XMLHttpRequest.cpp:
14049        (WebCore::XMLHttpRequest::getResponseText): It's a UString!
14050        (WebCore::XMLHttpRequest::getResponseXML): handle the fact that m_responseText
14051        is a UString.
14052        (WebCore::XMLHttpRequest::XMLHttpRequest): ditto.
14053        (WebCore::XMLHttpRequest::abort): call dropProtection
14054        (WebCore::XMLHttpRequest::didFinishLoading): call dropProtection
14055        (WebCore::XMLHttpRequest::dropProtection): after removing our GC protection,
14056        report extra cost of this XHR's responseText buffer.
14057        * xml/XMLHttpRequest.h:
14058
140592007-07-25  Timothy Hatcher  <timothy@apple.com>
14060
14061        Reviewed by Brady.
14062
14063        <rdar://problem/4796657> table deletion outline does not always follow the table size as editing occurs inside
14064
14065        Change the outline element to position itself automaticlly using the top, left, bottom and right CSS properties.
14066        This made the container element redundant, so it has been removed. Now the outline element and the delete button
14067        both get appended to the target element and positioned based on that container element. This removes the need
14068        to update the width and height when the target contents changed.
14069
14070        * editing/DeleteButtonController.cpp:
14071        (WebCore::DeleteButtonController::show): Change the style properties and remove the container element.
14072        (WebCore::DeleteButtonController::hide): Remove the button and outline from the target element.
14073        * editing/DeleteButtonController.h: Removed updateOutlineStyle, respondToChangedContents and m_containerElement.
14074        * editing/Editor.cpp:
14075        (WebCore::Editor::respondToChangedContents): Remove the call to DeleteButtonController respondToChangedContents.
14076
140772007-07-25  Anders Carlsson  <andersca@apple.com>
14078
14079        Reviewed by Darin.
14080
14081        <rdar://problem/5344471>
14082        CrashTracer: [USER] 1 crash in Mail at WebCore::PluginTokenizer::writeRawData(char const*, int)
14083        
14084        Make sure to layout so we'll have a renderer. Also null-check the renderer for extra safety.
14085        
14086        * loader/PluginDocument.cpp:
14087        (WebCore::PluginTokenizer::writeRawData):
14088
140892007-07-25  Brett Wilson  <brettw@chromium.org>
14090
14091        Reviewed by Maciej, Darin.
14092
14093        - http://bugs.webkit.org/show_bug.cgi?id=14030
14094
14095        Add ResourceHandle::setClient to resolve some messiness with handle
14096        releasing. Clear the client when ResourceLoader is going to release
14097        the handle to prevent crashes in the case where somebody still holds a
14098        reference (this doesn't seem to currently happen in practice). Add
14099        NULL-checking for ResourceHandle implementations using the client.
14100
14101        * loader/ResourceLoader.cpp:
14102        (WebCore::ResourceLoader::releaseResources):
14103        * platform/network/ResourceHandle.cpp:
14104        (WebCore::ResourceHandle::fireBlockedFailure):
14105        (WebCore::ResourceHandle::setClient):
14106        * platform/network/ResourceHandle.h:
14107        * platform/network/cf/ResourceHandleCFNet.cpp:
14108        (WebCore::willSendRequest):
14109        (WebCore::didReceiveResponse):
14110        (WebCore::didReceiveData):
14111        (WebCore::didFinishLoading):
14112        (WebCore::didFail):
14113        (WebCore::willCacheResponse):
14114        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
14115        (WebCore::ResourceHandle::receivedCancellation):
14116        * platform/network/mac/ResourceHandleMac.mm:
14117        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
14118        (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
14119        (WebCore::ResourceHandle::receivedCancellation):
14120        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
14121        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
14122        (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
14123        (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
14124        (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
14125        (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
14126        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
14127
141282007-07-25  Maxime Britto  <mbritto@pleyo.com>
14129
14130        Reviewed by Darin.
14131
14132        - fix http://bugs.webkit.org/show_bug.cgi?id=11756
14133          REGRESSION: link targeting a frame in another window does not work
14134          <rdar://problem/5286420>
14135
14136        Test: http/tests/navigation/target-frame-from-window.html
14137
14138        Fix a typo error to really compare the present domain to the domain of the parent of the targeted frame.
14139
14140        * loader/FrameLoader.cpp: (WebCore::FrameLoader::canTarget):
14141
141422007-07-25  Mitz Pettel  <mitz@webkit.org>
14143
14144        Reviewed by Darin.
14145
14146        - fix http://bugs.webkit.org/show_bug.cgi?id=14758
14147          REGRESSION: Repeated text after line break on facebook.com
14148
14149        Test: fast/text/reset-emptyRun.html
14150
14151        * platform/BidiResolver.h:
14152        (WebCore::::deleteRuns): Re-add a line that was removed for no reason at all
14153        during refactoring in r24485.
14154        * rendering/bidi.cpp:
14155        (WebCore::BidiState::deleteRuns): Ditto.
14156
141572007-07-24  Oliver Hunt  <oliver@apple.com>
14158
14159        Reviewed by Adam and Justin.
14160
14161        <rdar://problem/5141779> WebView editableDOMRangeForPoint: & moveDragCaretToPoint: returns last position in DOMText range
14162
14163        Remove bridge implementation for editableDOMRangeForPoint: and moveDragCaretToPoint:. 
14164        Now use cross-platform code Editor::rangeForPoint and DragController::placeDragCaret instead.
14165        This required lifting local code from DragController.cpp into the shared methods
14166        Frame::visiblePositionForPoint and Frame::documentAtPoint.
14167
14168        * WebCore.exp:
14169        * editing/Editor.cpp:
14170        (WebCore::Editor::rangeForPoint):
14171        * editing/Editor.h:
14172        * page/DragController.cpp:
14173        (WebCore::DragController::dragEnded):
14174        (WebCore::DragController::performDrag):
14175        (WebCore::DragController::dragEnteredOrUpdated):
14176        (WebCore::DragController::tryDocumentDrag):
14177        (WebCore::DragController::operationForLoad):
14178        (WebCore::setSelectionToDragCaret):
14179        (WebCore::DragController::concludeDrag):
14180        (WebCore::DragController::placeDragCaret):
14181        * page/DragController.h:
14182        * page/Frame.cpp:
14183        (WebCore::Frame::visiblePositionForPoint):
14184        (WebCore::Frame::documentAtPoint):
14185        * page/Frame.h:
14186        * page/mac/WebCoreFrameBridge.h:
14187        * page/mac/WebCoreFrameBridge.mm:
14188
141892007-07-24  Sam Weinig  <sam@webkit.org>
14190
14191        Rubber-stamped by Adam Roben.
14192
14193        Remove unused .strip files.
14194
14195        * WebCore.xcodeproj/project.pbxproj:
14196
141972007-07-24  Adele Peterson  <adele@apple.com>
14198
14199        Reviewed by Hyatt.
14200
14201        Fix for <rdar://problem/5308492> Computed width for elements with box-sizing: border-box is not equal to the width set in the CSS
14202
14203        Test: fast/css/getComputedStyle-border-box.html
14204
14205        * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14206          For the width and height properties, when you get the value from the renderer, use the renderer's box sizing value to determine the size.
14207
142082007-07-24  Anders Carlsson  <andersca@apple.com>
14209
14210        Reviewed by Kevin Decker.
14211
14212        <rdar://problem/5355781>
14213        REGRESSION: reproducible crash in CoreFoundation!CFRunLoopFinished on Flash pages
14214        
14215        Null check the loader.
14216        
14217        * plugins/win/PluginStreamWin.cpp:
14218        (WebCore::PluginStreamWin::start):
14219
142202007-07-24  Adele Peterson  <adele@apple.com>
14221
14222        Reviewed by Hyatt and Adam.
14223
14224        Fix for <rdar://problem/5130590> REGRESSION: style="width:1px" on <select> element no longer hides the element
14225
14226        Removed hack that forced large padding on popup buttons.  Now we put that padding in the inner block, so that
14227        the specified width will be honored.
14228
14229        * rendering/RenderMenuList.cpp:
14230        (WebCore::RenderMenuList::adjustInnerStyle): Set the padding on the inner block based on the metrics provided by the theme.
14231        (WebCore::RenderMenuList::controlClipRect): Clip to the intersection of the inner content box and the outer content box.
14232         This will leave room for the arrows which sit in the inner box padding, and if the inner box ever spills out of the outer box, 
14233         that will get clipped too.
14234        (WebCore::RenderMenuList::calcPrefWidths):  Add in the inner box's padding and border to the pref widths.
14235
14236        * rendering/RenderThemeMac.mm:
14237        (WebCore::RenderThemeMac::paintMenuList): Only inflate the rect for the shadow if the rect is big enough to fit the whole control.
14238         Also, on Leopard, the NSCell will draw outside of a small rect, so add a clip for that case.
14239        (WebCore::RenderThemeMac::paintMenuListButton): Restrict font scale to make sure the arrows will actually fit in the bounds vertically.
14240         Don't draw the arrows if they won't fit horizontally.  Reset padding.  Since WinIE doesn't honor padding for popups, its not critical to
14241         support padding at this time.
14242        (WebCore::RenderThemeMac::adjustMenuListStyle): Don't set the padding here.  Instead, we're going to set the padding on the inner block of the select.
14243        (WebCore::RenderThemeMac::adjustMenuListButtonStyle): ditto.
14244        (WebCore::RenderThemeMac::popupInternalPaddingLeft): Added.  Provides internal padding values for RenderMenuList.
14245        (WebCore::RenderThemeMac::popupInternalPaddingRight): ditto.
14246        (WebCore::RenderThemeMac::popupInternalPaddingTop): ditto.
14247        (WebCore::RenderThemeMac::popupInternalPaddingBottom): ditto.
14248        * rendering/RenderThemeMac.h:
14249
14250        * rendering/RenderThemeSafari.cpp:  The same changes that were made to RenderThemeMac were made here, with variations for the arrow differences.
14251          This code should be refactored and shared, but now did not seem like the right time to do that refactoring.
14252        (WebCore::RenderThemeSafari::paintMenuList):
14253        (WebCore::RenderThemeSafari::paintMenuListButton):
14254        (WebCore::RenderThemeSafari::adjustMenuListStyle):
14255        (WebCore::RenderThemeSafari::popupInternalPaddingLeft):
14256        (WebCore::RenderThemeSafari::popupInternalPaddingRight):
14257        (WebCore::RenderThemeSafari::popupInternalPaddingTop):
14258        (WebCore::RenderThemeSafari::popupInternalPaddingBottom):
14259        (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
14260        * rendering/RenderThemeSafari.h:
14261
14262        * rendering/RenderTheme.h: Added to provide internal padding values for RenderMenuList.
14263        (WebCore::RenderTheme::popupInternalPaddingLeft):
14264        (WebCore::RenderTheme::popupInternalPaddingRight):
14265        (WebCore::RenderTheme::popupInternalPaddingTop):
14266        (WebCore::RenderTheme::popupInternalPaddingBottom):
14267
142682007-07-24  Lars Knoll  <lars@trolltech.com>
14269
14270        Reviewed by Adam Roben & David Kilzer.
14271
14272        replace the makeprop and makevalues shell scripts by equivalent perl versions. This is required to remove the last shell dependency when building QtWebKit on Windows.
14273
14274        * DerivedSources.make:
14275        * WebCore.pro:
14276        * WebCore.xcodeproj/project.pbxproj:
14277        * css/makeprop: Added.
14278        * css/makeprop.pl: Removed.
14279        * css/makevalues: Added.
14280        * css/makevalues.pl: Removed.
14281
142822007-07-24  Beth Dakin  <bdakin@apple.com>
14283
14284        Reviewed by Darin.
14285
14286        Fix for http://bugs.webkit.org/show_bug.cgi?id=14714 REGRESSION: 
14287        ASSERTION FAILED: i < size() in Vector.h:401 on negative -webkit-
14288        column-width
14289        - and -
14290        http://bugs.webkit.org/show_bug.cgi?id=14718 REGRESSION: ASSERTION 
14291        FAILED: i < size() in Vector.h:401 on zero -webkit-column-count
14292
14293        * rendering/RenderBlock.cpp:
14294        (WebCore::RenderBlock::calcColumnWidth): Make 1 the minimum value 
14295        for column-width and column-count. Since the spec does not address 
14296        what to do with negative values for these properties, we are 
14297        patching the rendering code instead of the parser.
14298
142992007-07-24  Anders Carlsson  <andersca@apple.com>
14300
14301        Reviewed by Steve.
14302        
14303        <rdar://problem/5355403>
14304        REGRESSION: 303A2 does not display pdf files with AdobeReader 8.1
14305        
14306        Close the file before handing off the file name to the plug-in.
14307        
14308        * plugins/win/PluginStreamWin.cpp:
14309        (WebCore::PluginStreamWin::destroyStream):
14310
143112007-07-24  Alp Toker  <alp.toker@collabora.co.uk>
14312
14313        Reviewed by Adam.
14314
14315        http://bugs.webkit.org/show_bug.cgi?id=14711
14316        RenderThemeGdk's buttons are state-agnostic (pressed, hovered)
14317
14318        Remove unnecessary label from widget instances.
14319        Render check and radio widgets correctly.
14320        Determine the widget state and render it appropriately.
14321
14322        * platform/gdk/RenderThemeGdk.cpp:
14323        (WebCore::RenderThemeGdk::determineState):
14324        (WebCore::RenderThemeGdk::paintCheckbox):
14325        (WebCore::RenderThemeGdk::paintRadio):
14326        (WebCore::RenderThemeGdk::paintButton):
14327        (WebCore::RenderThemeGdk::gtkButton):
14328        (WebCore::RenderThemeGdk::gtkCheckbox):
14329        (WebCore::RenderThemeGdk::gtkRadioButton):
14330        * platform/gdk/RenderThemeGdk.h:
14331
143322007-07-24  Mark Rowe  <mrowe@apple.com>
14333
14334        Reviewed by Antti.
14335
14336        <rdar://problem/5356666> NSMenuItem's seen leaking on buildbot
14337
14338        * platform/mac/ContextMenuItemMac.mm:
14339        (WebCore::ContextMenuItem::releasePlatformDescription): Transfer ownership from the RetainPtr's CF-based retain
14340        count to the Foundation retain count so that callers of releasePlatformDescription can use -[NSObject release]
14341        to dispose of it in a manner that won't leak under Obj-C GC.
14342        * platform/mac/ContextMenuMac.mm:
14343        (WebCore::ContextMenu::appendItem): Release platformItem as we were transferred its ownership by releasePlatformDescription.
14344        (WebCore::ContextMenu::insertItem): ditto.
14345
143462007-07-24  Mitz Pettel  <mitz@webkit.org>
14347
14348        Reviewed by Darin.
14349
14350        - fix http://bugs.webkit.org/show_bug.cgi?id=14684
14351          Hebrew text in Safari chrome is reversed (LTR instead of RTL)
14352
14353        Test: fast/text/drawBidiText.html
14354
14355        * WebCore.pro:
14356        * WebCore.vcproj/WebCore.vcproj:
14357        * WebCore.xcodeproj/project.pbxproj:
14358        * WebCoreSources.bkl:
14359        * manual-tests/chrome-bidi-text.html: Added.
14360        * manual-tests/resources/chrome-bidi-text-window.html: Added.
14361        * platform/BidiReorderCharacters.cpp: Removed.
14362        * platform/BidiReorderCharacters.h: Removed.
14363        * platform/BidiResolver.h:
14364        (WebCore::BidiCharacterRun::start): Added accessor method.
14365        (WebCore::BidiCharacterRun::stop): Ditto.
14366        (WebCore::BidiCharacterRun::level): Ditto.
14367        (WebCore::BidiCharacterRun::next): Ditto.
14368        (WebCore::::appendRun): Added default implementation.
14369        * platform/TextStyle.h:
14370        (WebCore::TextStyle::setDirectionalOverride): Added accessor method.
14371        * platform/graphics/GraphicsContext.cpp:
14372        (WebCore::TextRunIterator::TextRunIterator): Added. A BidiResolver-
14373        compliant iterator over the characters in a TextRun.
14374        (WebCore::TextRunIterator::offset):
14375        (WebCore::TextRunIterator::increment):
14376        (WebCore::TextRunIterator::atEnd):
14377        (WebCore::TextRunIterator::current):
14378        (WebCore::TextRunIterator::direction):
14379        (WebCore::TextRunIterator::operator==):
14380        (WebCore::TextRunIterator::operator!=):
14381        (WebCore::GraphicsContext::drawBidiText): Added. Applies the Unicode
14382        Bidi Algorithm to the text and draws the resulting unidirectional runs
14383        in the right order and with the right directionality.
14384        * platform/graphics/GraphicsContext.h:
14385        * platform/win/PopupMenuWin.cpp:
14386        (WebCore::PopupMenu::paint): Replaced the use of a character buffer
14387        and BidiReorderCharacters with calling to drawBidiText(). Removed special
14388        handling of '-webkit-rtl-ordering:visual' because that CSS property is an
14389        implementation detail of WebCore's visual Hebrew support, and the UA stylesheet
14390        sets it to 'logical' for this form control. Authors can specify the ordering
14391        using the 'direction' and 'unicode-bidi' properties.
14392        * platform/win/WebCoreTextRenderer.cpp:
14393        (WebCore::isOneLeftToRightRun): Added. Checks if the text consists of
14394        a single left-to-right run, in which case it requires no bidi processing.
14395        (WebCore::doDrawTextAtPoint): Changed to call drawBidiText if the text
14396        is not entirely left-to-right.
14397        * rendering/RenderFileUploadControl.cpp:
14398        (WebCore::RenderFileUploadControl::paintObject): Replaced the use of a
14399        character buffer in BidiReorderCharacters with calling to drawBidiText().
14400        Removed special handling of '-webkit-rtl-ordering:visual' for the same reason
14401        stated above.
14402        * rendering/RenderListBox.cpp:
14403        (WebCore::RenderListBox::paintItemForeground): Ditto. Also changed the
14404        run-rounding modes used when drawing to match those used when measuring.
14405
144062007-07-23  Oliver Hunt  <oliver@apple.com>
14407
14408        Reviewed by Steve.
14409
14410        Windows build fix, remove superfluous !
14411
14412        * page/EventHandler.cpp:
14413        (WebCore::EventHandler::keyEvent):
14414
144152007-07-23  Adam Roben  <aroben@apple.com>
14416
14417        Add an assignment operator for BString that takes a BSTR
14418
14419        Reviewed by Geoff and Oliver.
14420
14421        * platform/win/BString.cpp:
14422        (WebCore::BString::operator=):
14423        * platform/win/BString.h:
14424
144252007-07-23  Justin Garcia  <justin.garcia@apple.com>
14426
14427        Reviewed by Geoff.
14428        
14429        <rdar://problem/5354455> Word selection when right-clicking can be confusing (14728)
14430
14431        * page/EventHandler.cpp:
14432        (WebCore::EventHandler::sendContextMenuEvent): In non-editable content,
14433        only do word selection over text.  In editable content, we will continue
14434        to select images, line breaks and other elements on right-clicks, to match 
14435        TextEdit.  For now, in editable content, we'll live with the cases where 
14436        positionForPoint creates selections that aren't underneath the mouse.  These
14437        aren't regressions because we've always done word selection on right clicks
14438        in editable content.
14439
144402007-07-23  Anders Carlsson  <andersca@apple.com>
14441
14442        Reviewed by Oliver.
14443
14444        <rdar://problem/5335354>
14445        REGRESSION(r21359-r21368): Can't edit inside RTEF editable region
14446        
14447        If Document::open is called and there's a pending load that has not yet started,
14448        that load should be cancelled.
14449        
14450        * dom/Document.cpp:
14451        (WebCore::Document::open):
14452
144532007-07-23  Timothy Hatcher  <timothy@apple.com>
14454
14455        Reviewed by Hyatt.
14456
14457        <rdar://problem/5242145> REGRESSION: Clicking on symbol in documentation often doesn't scroll to symbol
14458
14459        A renderer for the anchor wasn't always available at the time parsing finished. So we need
14460        to bail out of gotoAnchor if stylesheets are pending and remember to call gotoAnchor later
14461        once all of the pending stylesheets load.
14462
14463        * dom/Document.cpp:
14464        (WebCore::Document::Document): Initialize m_gotoAnchorNeededAfterStylesheetsLoad to false.
14465        (WebCore::Document::stylesheetLoaded): If we have no more pending stylesheets, call gotoAnchor if needed.
14466        * dom/Document.h:
14467        (WebCore::Document::gotoAnchorNeededAfterStylesheetsLoad): New method.
14468        (WebCore::Document::setGotoAnchorNeededAfterStylesheetsLoad): Ditto.
14469        * loader/FrameLoader.cpp:
14470        (WebCore::FrameLoader::gotoAnchor): Bail early if the document still has pending stylesheets.
14471        * loader/FrameLoader.h: Make gotoAnchor() public.
14472
144732007-07-23  John Sullivan  <sullivan@apple.com>
14474
14475        Reviewed by Darin
14476        
14477        - fixed <rdar://problem/5327887> Printing Mail note (or Safari page) with misspelled word prints red underline
14478
14479        * rendering/InlineTextBox.cpp:
14480        (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
14481        When printing, bail out without doing any work. Also moved a couple of lines down below another early
14482        bailout since they were pointless above it.
14483
144842007-07-23  Oliver Hunt  <oliver@apple.com>
14485
14486        Reviewed by Darin.
14487        
14488        <rdar://problem/5353577> WebKit key event behaviour needs to better match other browsers keyevent behaviour
14489        <rdar://problem/5352152> REGRESSION (24399-24479): Pressing Enter in a search field at apple.com no longer starts a search with Korean IM
14490        <rdar://problem/5352649> WebKit should send keyDown event on autorepeat keyDowns
14491        http://bugs.webkit.org/show_bug.cgi?id=14690
14492
14493        Perform Input Method call first so that our behaviour is determined by whether or not 
14494        the input method has actually handle the event, rather than by making guesses based 
14495        on the existences of marked text.  This fixes issues with IMs that have side effects
14496        even on events they do not handle.
14497
14498        Refactored the code in order to improve clarity given the hoisting required by performing
14499        the IM call earlier.
14500
14501        * page/EventHandler.cpp:
14502        (WebCore::EventHandler::keyEvent):
14503
145042007-07-23  Anders Carlsson  <andersca@apple.com>
14505
14506        Reviewed by Darin.
14507
14508        <rdar://problem/5045711> 
14509        http://bugs.webkit.org/show_bug.cgi?id=12938
14510        Google calendar settings page crashes
14511        
14512        Move handling of checked radio buttons to a new class, HTMLFormElement::CheckedRadioButtons. 
14513        Each <form> element has an instance of this class. For radio buttons without a containing 
14514        form, the document has an instance of HTMLFormElement::CheckedRadioButtons where the
14515        state of those radio buttons will be stored.
14516        be stored.
14517        
14518        This also fixes another bug where removing a checked radio button that does not have a
14519        containing form would not remove the radio button from the checked radio buttons map,
14520        which could lead to a crash due to a dangling pointer.
14521        
14522        * dom/Document.cpp:
14523        (WebCore::Document::~Document):
14524        * dom/Document.h:
14525        (WebCore::Document::checkedRadioButtons):
14526        * html/HTMLFormElement.cpp:
14527        (WebCore::HTMLFormElement::registerFormElement):
14528        (WebCore::HTMLFormElement::removeFormElement):
14529        (WebCore::HTMLFormElement::CheckedRadioButtons::didCheckButton):
14530        (WebCore::HTMLFormElement::CheckedRadioButtons::checkedButtonForGroup):
14531        (WebCore::HTMLFormElement::CheckedRadioButtons::removeButtonIfChecked):
14532        * html/HTMLFormElement.h:
14533        (WebCore::HTMLFormElement::checkedRadioButtons):
14534        * html/HTMLGenericFormElement.cpp:
14535        (WebCore::HTMLGenericFormElement::insertedIntoTree):
14536        * html/HTMLInputElement.cpp:
14537        (WebCore::HTMLInputElement::~HTMLInputElement):
14538        (WebCore::checkedRadioButtons):
14539        (WebCore::HTMLInputElement::isKeyboardFocusable):
14540        (WebCore::HTMLInputElement::setInputType):
14541        (WebCore::HTMLInputElement::parseMappedAttribute):
14542        (WebCore::HTMLInputElement::setChecked):
14543        (WebCore::HTMLInputElement::preDispatchEventHandler):
14544        (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
14545        * manual-tests/remove-form-node-with-radio-buttons-crash.html: Added.
14546
145472007-07-23  David Hyatt  <hyatt@apple.com>
14548
14549        Fix for 5350587, hang in iExploder text 8101.  The code that painted outlines for continuations was buggy
14550        in that it assumed the chain was always inline-block-inline, but this is only true for the innermost chained
14551        continuation.  To make this more robust, we always just use the inline's containing block's containing block,
14552        which should be guaranteed to enclose all renderers in the continuation chain.  In addition, there is now a
14553        null check (to guarantee no more hangs) and an assert (to check if we hit this situation again where the block
14554        used to paint does not properly enclose the continuation chain).
14555
14556        Reviewed by beth
14557
14558        fast/inline/outline-continuation.html
14559
14560        * rendering/RenderBlock.cpp:
14561        (WebCore::RenderBlock::paintContinuationOutlines):
14562        * rendering/InlineFlowBox.cpp:
14563        (WebCore::RenderInline::paint):
14564
145652007-07-22  Holger Hans Peter Freyther  <zecke@selfish.org>
14566
14567        Reviewed by Adam.
14568
14569        WARNING: NO TEST CASES ADDED OR CHANGED
14570
14571        Add the WebKit/Gtk API to the buildsystem, ask qmake to create a
14572        pkg-config file and install headers and libraries.
14573
14574        Start to emit signals from FrameLoaderClientGdk, hide the kit Frame
14575        inside the the FrameLoaderClientGdk.
14576
14577        Move ChromeClientGdk to WebKit/gtk/WebCoreSupport
14578
14579        * WebCore.pro:
14580        * loader/gdk/FrameLoaderClientGdk.cpp:
14581        * loader/gdk/FrameLoaderClientGdk.h:
14582        * platform/gdk/ChromeClientGdk.h: Removed.
14583        * platform/gdk/FrameGdk.cpp: Remove code not belonging here
14584        * platform/gdk/FrameGdk.h:
14585        * platform/gdk/ScrollViewGdk.cpp: The gdkDrawable won't exist at that time and it is fine
14586        * platform/gdk/TemporaryLinkStubs.cpp: Removed ChromeClientGdk stubs
14587
145882007-07-22  Maciej Stachowiak  <mjs@apple.com>
14589
14590        Reviewed by Adam.
14591
14592        <rdar://problem/5353174> REGRESSION: 1% JavaScript performance regression fro Window refactoring (14717)
14593        http://bugs.webkit.org/show_bug.cgi?id=14717
14594        
14595        * bindings/js/kjs_window.cpp:
14596        * bindings/js/kjs_window.h:
14597        (KJS::Window::impl): inlined
14598        * page/DOMWindow.cpp:
14599        * page/DOMWindow.h:
14600        (WebCore::DOMWindow::frame): inlined
14601
146022007-07-22  Darin Adler  <darin@apple.com>
14603
14604        * platform/ContextMenu.cpp: Added missing include.
14605
146062007-07-22  Sam Weinig  <sam@webkit.org>
14607
14608        Reviewed by Darin.
14609
14610        Fix for http://bugs.webkit.org/show_bug.cgi?id=14682
14611        REGRESSION(24285-24399): alerts do not appear at W3C RTL test page
14612
14613        Test: fast/dom/Window/window-function-name-getter-precedence.html
14614
14615        * bindings/js/JSDOMWindowCustom.cpp:
14616        (WebCore::JSDOMWindow::customGetOwnPropertySlot): Make sure to return functions
14617        before the custom name getter.
14618
146192007-07-22  Darin Adler  <darin@apple.com>
14620
14621        Reviewed by Adam.
14622
14623        - fix <rdar://problem/5353263> ContextMenuItem and ContextMenu objects leaking (seen on buildbot)
14624
14625        * platform/ContextMenu.cpp:
14626        (WebCore::separatorItem): Return an auto_ptr instead of a raw pointer, since this function
14627        creates an object that's the caller's responsibility to delete.
14628        (WebCore::createAndAppendFontSubMenu): Create the context menu on the stack, not the heap,
14629        since setSubMenu does not take ownership, and hence the objects were leaking.
14630        (WebCore::createAndAppendSpellingAndGrammarSubMenu): Ditto.
14631        (WebCore::createAndAppendSpellingSubMenu): Ditto.
14632        (WebCore::createAndAppendSpeechSubMenu): Ditto.
14633        (WebCore::createAndAppendWritingDirectionSubMenu): Ditto.
14634
146352007-07-22  Darin Adler  <darin@apple.com>
14636
14637        Reviewed by Kevin Decker.
14638
14639        - fix <rdar://problem/5126394> REGRESSION: Crash after clicking back button in test application (13250)
14640          http://bugs.webkit.org/show_bug.cgi?id=13250
14641
14642        * bindings/objc/WebScriptObject.mm:
14643        (_didExecute): Removed unnecessary check for isValid() since the _rootObject method already
14644        takes care of that check.
14645        (-[WebScriptObject _imp]): Made this return 0 if there is not a valid rootObject.
14646        (-[WebScriptObject _isSafeScript]): Made this always return false if there is not a valid
14647        rootObject, eliminating the need to check _rootObject for nil if the code is checking _isSafeScript.
14648        (-[WebScriptObject callWebScriptMethod:withArguments:]): Removed check of _rootObject, since it's
14649        immediately followed by a check of _isSafeScript. Removed awkward conversion of name from NSString *
14650        to KJS::Identifier and did it using WebCore::String instead -- makes it clear that there's no
14651        arbitrary JavaScript execution after _isSafeScript and before _imp, so we don't need to null-check
14652        the _imp pointer. Added a second check of _isSafeScript after calling get to get the function
14653        object, since arbitrary changes could occur in there, including navigation to a new frame.
14654        This also takes care of null checking the second call to _imp.
14655        (-[WebScriptObject evaluateWebScript:]): Removed check of _rootObject, since it's
14656        immediately followed by a check of _isSafeScript. Removed awkward conversion of script from NSString *
14657        to KJS::Identifier and did it using WebCore::String instead -- makes it clear that there's no
14658        arbitrary JavaScript execution after _isSafeScript and before _imp, so we don't need to null-check
14659        the _imp pointer.
14660        (-[WebScriptObject setValue:forKey:]): Removed check of _rootObject, since it's
14661        immediately followed by a check of _isSafeScript. Removed awkward conversion of key from NSString *
14662        to KJS::Identifier and did it using WebCore::String instead -- makes it clear that there's no
14663        arbitrary JavaScript execution after _isSafeScript and before _imp, so we don't need to null-check
14664        the _imp pointer.
14665        (-[WebScriptObject valueForKey:]): Ditto.
14666        (-[WebScriptObject removeWebScriptKey:]): Ditto.
14667        (-[WebScriptObject stringRepresentation]): Removed check of _rootObject, since it's
14668        immediately followed by a check of _isSafeScript. Removed unnecessary local variable
14669        and const_cast from the call to the _imp method.
14670        (-[WebScriptObject webScriptValueAtIndex:]): Removed check of _rootObject, since it's
14671        immediately followed by a check of _isSafeScript.
14672        (-[WebScriptObject setWebScriptValueAtIndex:value:]): Ditto.
14673        (-[WebScriptObject JSObject]): Ditto.
14674
146752007-07-22  Darin Adler  <darin@apple.com>
14676
14677        Reviewed by Anders Carlsson and John Sullivan.
14678
14679        - speculative fix for <rdar://problem/5337500> CrashTracer: [USER] 4 crashes in Mail
14680          at WebCore::HTMLImageElement::isURLAttribute(WebCore::Attribute*) const
14681
14682        * editing/markup.cpp: Added AttributeChange class.
14683        (WebCore::completeURLs): Changed function so that all the URL completion is done in
14684        a separate pass after finding all the URL attributes. This is safer, since actually
14685        applying an attribute change could have any arbitrary effect on the document; it's
14686        tricky to iterate a document while it's being modified and we don't have the checks
14687        here that would be needed to make that work in pathological cases.
14688
146892007-07-18  Darin Adler  <darin@apple.com>
14690
14691        Reviewed by Adam.
14692
14693        - fix <rdar://problem/5350604> REGRESSION: Crash in inspector controller code after
14694          clicking back button in test application (14337)
14695
14696        * page/InspectorController.cpp: (WebCore::InspectorController::addScriptResource):
14697        Replace an assertion that was firing with some code that at least doesn't immediately crash.
14698
146992007-07-22  Darin Adler  <darin@apple.com>
14700
14701        Reviewed by Anders.
14702
14703        - improve the fix for <rdar://problem/5298816> Crash redirecting message,
14704          in -[SharedBufferData initWithSharedBuffer:]; fixes a crash seen on the buildbot
14705
14706        * loader/DocLoader.cpp: (WebCore::DocLoader::~DocLoader): Call setDocLoader(0) on all
14707        the resources so they don't try to use a stale DocLoader pointer later.
14708
147092007-07-21  Mitz Pettel  <mitz@webkit.org>
14710
14711        Reviewed by Sam Weinig.
14712
14713        - fixed typos and markup in the following manual tests
14714
14715        * manual-tests/accidental-strict-mode.html:
14716        * manual-tests/caretScrolling.html:
14717        * manual-tests/close-on-closedWindow.html:
14718
147192007-07-21  Sam Weinig  <sam@webkit.org>
14720
14721        Reviewed by Mitz.
14722
14723        Patch for <rdar://problem/5352013>
14724        The computed style for background-position is wrong for the initial value
14725
14726        - Set the initial value for background-position-x and background-position-y (and
14727          therefore background-position) to 0% instead of 0px.
14728
14729        * rendering/RenderStyle.cpp:
14730        (WebCore::BackgroundLayer::BackgroundLayer):
14731        * rendering/RenderStyle.h:
14732        (WebCore::RenderStyle::initialBackgroundXPosition):
14733        (WebCore::RenderStyle::initialBackgroundYPosition):
14734
147352007-07-20  Brady Eidson  <beidson@apple.com>
14736
14737        Reviewed by Adele and Andersca
14738
14739        <rdar://problem/5336105> - WebBackForwardList created from scratch is unusable (always leads to crash)
14740
14741        * WebCore.exp: Export the BackForwardList c'tor so WebKit can create one explicitly
14742
147432007-07-20  Sam Weinig  <sam@webkit.org>
14744
14745        Reviewed by Beth Dakin.
14746
14747        Fix for <rdar://problem/5351901>
14748        Computed value of border-position should return a CSSValueList, not a CSSPrimitiveValue
14749
14750        - Return a space separated CSSValueList for background-position
14751          instead of a CSSPrimitiveValue (string type).
14752        - Remove the "else if (renderer)" case as it never returns a different
14753          value than just calling length.value().
14754        - Make background-position-x and background-position-y behave like
14755          background-position.  Fix case of initial value return 'auto' instead
14756          of 0.
14757
14758        Test: fast/css/getComputedStyle-background-position.html
14759
14760        * css/CSSComputedStyleDeclaration.cpp:
14761        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14762
147632007-07-20  Geoffrey Garen  <ggaren@apple.com>
14764
14765        Build fix for non-Mac platforms.
14766        
14767        * bindings/js/GCController.cpp:
14768
147692007-07-20  Anders Carlsson  <andersca@apple.com>
14770
14771        Reviewed by Darin.
14772
14773        If the style sheet requested is a user style sheet, don't store it in the DocLoader's resource map;
14774        user style sheets can outlive their doc loaders.
14775
14776        * loader/DocLoader.cpp:
14777        (WebCore::DocLoader::requestCSSStyleSheet):
14778
147792007-07-20  Justin Garcia  <justin.garcia@apple.com>
14780
14781        Reviewed by Darin.
14782
14783        <rdar://problem/5109817> Ctrl-click on word in non-editable text doesn't select it
14784        
14785        * bridge/EditorClient.h: Removed a client method for enabling/disabling
14786        word selection on right clicks.
14787        * editing/Editor.cpp: Ditto.
14788        * editing/Editor.h:
14789        * page/EventHandler.cpp:
14790        (WebCore::EventHandler::sendContextMenuEvent): Select the
14791        word underneath the mouse regardless of whether its editable.
14792
147932007-07-20  Ada Chan  <adachan@apple.com>
14794
14795        Reviewed by Darin and Adam.
14796
14797        <rdar://problem/5338385> Fixed infinite loop in ScrollView::scrollRectIntoViewRecursively().
14798        Also removed an unused local variable.
14799
14800        * platform/win/ScrollViewWin.cpp:
14801        (WebCore::ScrollView::scrollRectIntoViewRecursively):
14802
148032007-07-21  Antti  <antti@apple.com>
14804
14805        Reviewed by Darin.
14806        
14807        Fix <rdar://problem/5305788>
14808        REGRESSION: Safari sometimes loads IE-specific stylesheet on www.apaema.org
14809        
14810        Pick the preferred style sheet set based on document order even if the sheet is still loading. Previously 
14811        the set was chosen based on which stylesheet happened to arrive first. Just fix the problem at hand 
14812        and resist urge to start refactoring this function.
14813
14814        * dom/Document.cpp:
14815        (WebCore::Document::recalcStyleSelector):
14816
148172007-07-20  Sam Weinig  <sam@webkit.org>
14818
14819        Reviewed by Darin.
14820
14821        Fix for <rdar://problem/5351252>
14822        Computed value for -webkit-background-size and border-spacing
14823        should be space separated CSSValueLists.
14824
14825        * css/CSSComputedStyleDeclaration.cpp:
14826        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
14827
148282007-07-20  Geoffrey Garen  <ggaren@apple.com>
14829
14830        Suggested by Darin Adler.
14831        
14832        Slight tweak to my last commit: changed gcController() to return a 
14833        reference instead of a pointer.
14834
148352007-07-20  Geoffrey Garen  <ggaren@apple.com>
14836
14837        Reviewed by Darin Adler.
14838        
14839        Fixed http://bugs.webkit.org/show_bug.cgi?id=12900 Page tear-down 
14840        forces garbage collection once per frame
14841
14842        Also fixed <rdar://problem/5286989> GC on window close does not always 
14843        bring the JS object count down to 0
14844        
14845        Implemented a 0-delay GC timer in WebCore. Instead of forcing GC
14846        immediately, code that thinks it has created a lot of garbage starts
14847        the timer. This has two advantages: 
14848
14849        1) Multiple GCs can coalesce. In my pathological test case, this 
14850        improves performance by an order of magnitude. 
14851        
14852        2) Conservative marking is less likely to keep alive important dead
14853        objects, like the window object, because the stack is small and free of
14854        JS processing when the timer fires.
14855
14856        Added GCController.h/.cpp, sometimes blindly:
14857        * WebCore.pro:
14858        * WebCore.vcproj/WebCore.vcproj:
14859        * WebCore.xcodeproj/project.pbxproj:
14860        * WebCoreSources.bkl:
14861
14862        Added singleton that implements GC on a 0-delay timer:
14863        * bindings/js/GCController.h: Added.
14864        * bindings/js/GCController.cpp: Added.
14865        
14866        Changed Collector::collect() calls below to call to the singleton:
14867        * bindings/js/kjs_proxy.cpp:
14868        (WebCore::KJSProxy::~KJSProxy):
14869        * bindings/js/kjs_window.cpp:
14870        (KJS::Window::clear):
14871        * history/CachedPage.cpp:
14872        (WebCore::CachedPage::clear):
14873        
14874        * page/Frame.cpp:
14875        (WebCore::Frame::~Frame): Removed previous slightly hackish attempt to
14876        avoid conservative marking of the window object.
14877
148782007-07-20  Anders Carlsson  <andersca@apple.com>
14879    
14880        Reviewed by Darin.
14881
14882        <rdar://problem/5298816> Crash redirecting message, in -[SharedBufferData initWithSharedBuffer:]
14883        
14884        Have cached resources keep track of what DocLoader they belong to. This is so that they can remove themselves
14885        from the DocLoader's resource map when they're destroyed when the cache is disabled.
14886        
14887        * html/HTMLImageLoader.cpp:
14888        (WebCore::HTMLImageLoader::updateFromElement):
14889        * loader/Cache.cpp:
14890        (WebCore::Cache::requestResource):
14891        * loader/CachedResource.cpp:
14892        (WebCore::CachedResource::CachedResource):
14893        (WebCore::CachedResource::~CachedResource):
14894        * loader/CachedResource.h:
14895        (WebCore::CachedResource::setDocLoader):
14896
148972007-07-20  Brady Eidson  <beidson@apple.com>
14898
14899        Reviewed by Darin
14900
14901        <rdar://problem/5153021> and http://bugs.webkit.org/show_bug.cgi?id=13364
14902
14903        The issue here was that if a document in a subframe was loaded from a URL, but then a script did 
14904        document.open or document.write during parsing, we would overwrite the document's url and baseurl 
14905        with the parent frame's url.  WRONG!
14906
14907        * dom/Document.cpp:
14908        (WebCore::Document::open): Only set the url and baseURL in document.open if they are still empty or about:blank
14909
149102007-07-20  Maciej Stachowiak  <mjs@apple.com>
14911
14912        Reviewed by Oliver.
14913
14914        <rdar://problem/5326303> REGRESSION: blur event fires upon navigating away from a page with focused element
14915
14916
14917        
14918        The proximate cause was the recent change to keep focus on the
14919        WebHTMLView when switching views. But the reason this happend was
14920        that didCommitLoadForFrame got called at a time when the new view
14921        was in place, but the old document was still there. This was a
14922        longstanding problem with the delegate, and fixing it cleans it
14923        up.
14924
14925        * loader/FrameLoader.cpp:
14926        (WebCore::FrameLoader::begin): Don't send dispatchWindowObjectAvailable if
14927        caller asked not to (this is to allow order of delegates to be the same).
14928        (WebCore::FrameLoader::transitionToCommitted): Don't emit didCommitLoadForFrame here.
14929        (WebCore::FrameLoader::receivedFirstData): Instead do it here, after calling begin(),
14930        so the new document is set up.
14931        * loader/FrameLoader.h: Add new optional parameter to begin().
14932
149332007-07-20  Sam Weinig  <sam@webkit.org>
14934
14935        Reviewed by Beth Dakin.
14936
14937        Update for fix for http://bugs.webkit.org/show_bug.cgi?id=14646
14938        <rdar://problem/5340449>
14939
14940        - Return a CSSValueList instead of CSSValue (with a Pair type) for
14941          computed values of border radii.
14942        - Add ability to CSSValueList to print out a space separated list
14943          instead of a comma.
14944        - Add border radii to list of computed styles that we create and can
14945          iterate over.
14946
14947        * css/CSSComputedStyleDeclaration.cpp:
14948        (WebCore::):
14949        (WebCore::getBorderRadiusCornerValue):
14950        * css/CSSValueList.cpp:
14951        (WebCore::CSSValueList::CSSValueList):
14952        (WebCore::CSSValueList::cssText):
14953        * css/CSSValueList.h:
14954
149552007-07-20  Mitz Pettel  <mitz@webkit.org>
14956
14957        Reviewed by Darin.
14958
14959        - http://bugs.webkit.org/show_bug.cgi?id=14626
14960          Make bidiReorderCharacters independent of RenderBlock
14961
14962        No layout test possible because there is no change in functionality.
14963
14964        This patch generalizes RenderBlock's implementation of the Unicode Bidi Algorithm
14965        in the form of the BidiResolver class template. An instance of a BidiResolver class
14966        can generate a sequence of runs with corresponding level and override attributes,
14967        given a range specified by start and end iterators. The iterators can optionally
14968        call back to the BidiResolver instance to push or pop explicit embedding levels.
14969
14970        The patch replaces BidiState with a specialization of BidiResolver that uses
14971        BidiIterators and generates BidiRuns. It also eliminates some of the file statics
14972        in bidi.cpp, instead relying on BidiResolver data members.
14973
14974        The patch makes the BidiContext part of BidiStatus, thus making BidiStatus the
14975        entire state that needs to be saved and restored in order to restart the bidi
14976        algorithm at a given point. Previously, you had to keep and pass around two
14977        separate structures, namely the BidiContext and the BidiStatus.
14978
14979        bidiReorderCharacters is implemented without relying on render objects, using
14980        a BidiResolver specialization that uses simple character buffer iterators and
14981        simple run structures.
14982
14983        * WebCore.pro:
14984        * WebCore.vcproj/WebCore.vcproj:
14985        * WebCore.xcodeproj/project.pbxproj:
14986        * WebCoreSources.bkl:
14987        * platform/BidiContext.cpp: Added.
14988        (WebCore::operator==):
14989        * platform/BidiContext.h: Added.
14990        (WebCore::BidiContext::BidiContext):
14991        (WebCore::BidiContext::ref):
14992        (WebCore::BidiContext::deref):
14993        (WebCore::BidiContext::parent):
14994        (WebCore::BidiContext::level):
14995        (WebCore::BidiContext::dir):
14996        (WebCore::BidiContext::override):
14997        * platform/BidiReorderCharacters.cpp: Added.
14998        (WebCore::CharacterBufferIterator::CharacterBufferIterator):
14999        (WebCore::CharacterBufferIterator::offset):
15000        (WebCore::CharacterBufferIterator::increment):
15001        (WebCore::CharacterBufferIterator::atEnd):
15002        (WebCore::CharacterBufferIterator::current):
15003        (WebCore::CharacterBufferIterator::direction):
15004        (WebCore::CharacterBufferIterator::operator==):
15005        (WebCore::CharacterBufferIterator::operator!=):
15006        (WebCore::::appendRun):
15007        (WebCore::bidiReorderCharacters):
15008        * platform/BidiReorderCharacters.h: Added.
15009        * platform/BidiResolver.h: Added.
15010        (WebCore::BidiStatus::BidiStatus):
15011        (WebCore::operator==):
15012        (WebCore::operator!=):
15013        (WebCore::BidiCharacterRun::BidiCharacterRun):
15014        (WebCore::BidiCharacterRun::reversed):
15015        (WebCore::BidiCharacterRun::dirOverride):
15016        (WebCore::BidiCharacterRun::next):
15017        (WebCore::BidiResolver::):
15018        (WebCore::BidiResolver::context):
15019        (WebCore::BidiResolver::setContext):
15020        (WebCore::BidiResolver::setLastDir):
15021        (WebCore::BidiResolver::setLastStrongDir):
15022        (WebCore::BidiResolver::setEorDir):
15023        (WebCore::BidiResolver::dir):
15024        (WebCore::BidiResolver::setDir):
15025        (WebCore::BidiResolver::status):
15026        (WebCore::BidiResolver::setStatus):
15027        (WebCore::BidiResolver::adjustEmbedding):
15028        (WebCore::BidiResolver::setAdjustEmbedding):
15029        (WebCore::BidiResolver::firstRun):
15030        (WebCore::BidiResolver::lastRun):
15031        (WebCore::BidiResolver::runCount):
15032        (WebCore::::embed):
15033        (WebCore::::deleteRuns):
15034        (WebCore::::reverseRuns):
15035        (WebCore::::createBidiRunsForLine):
15036        * platform/win/PopupMenuWin.cpp:
15037        (WebCore::PopupMenu::paint):
15038        * rendering/RenderBlock.h:
15039        * rendering/RenderFileUploadControl.cpp:
15040        (WebCore::RenderFileUploadControl::paintObject):
15041        * rendering/RenderListBox.cpp:
15042        (WebCore::RenderListBox::paintItemForeground):
15043        * rendering/RootInlineBox.cpp:
15044        (WebCore::RootInlineBox::childRemoved):
15045        (WebCore::RootInlineBox::lineBreakBidiStatus):
15046        (WebCore::RootInlineBox::setLineBreakInfo):
15047        * rendering/RootInlineBox.h:
15048        (WebCore::RootInlineBox::RootInlineBox):
15049        * rendering/bidi.cpp:
15050        (WebCore::BidiIterator::BidiIterator):
15051        (WebCore::BidiState::deleteRuns):
15052        (WebCore::operator==):
15053        (WebCore::operator!=):
15054        (WebCore::bidiNext):
15055        (WebCore::bidiFirst):
15056        (WebCore::BidiState::addRun):
15057        (WebCore::appendRunsForObject):
15058        (WebCore::BidiState::appendRun):
15059        (WebCore::RenderBlock::constructLine):
15060        (WebCore::RenderBlock::computeHorizontalPositionsForLine):
15061        (WebCore::RenderBlock::computeVerticalPositionsForLine):
15062        (WebCore::RenderBlock::bidiReorderLine):
15063        (WebCore::buildCompactRuns):
15064        (WebCore::RenderBlock::layoutInlineChildren):
15065        (WebCore::RenderBlock::determineStartPosition):
15066        (WebCore::RenderBlock::determineEndPosition):
15067        (WebCore::RenderBlock::matchedEndLine):
15068        (WebCore::RenderBlock::skipWhitespace):
15069        * rendering/bidi.h:
15070        (WebCore::BidiRun::BidiRun):
15071        (WebCore::BidiRun::next):
15072
150732007-07-20  Darin Adler  <darin@apple.com>
15074
15075        Reviewed by John Sullivan.
15076
15077        - fix for <rdar://problem/5331723> <rdar://problem/5331723> Safari gives error
15078          103 for URLs that Adobe Lightroom's Preview feature produces, with ":1" in the hostname
15079
15080        Test: fast/loader/file-URL-with-port-number.html
15081
15082        * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::portAllowed):
15083        Don't do any port blocking for file URLs.
15084
150852007-07-20  Mitz Pettel  <mitz@webkit.org>
15086
15087        Reviewed by Darin.
15088
15089        - fix http://bugs.webkit.org/show_bug.cgi?id=14689
15090          REGRESSION (3.0.2-TOT): <select> menu items have incorrect background color
15091
15092        * manual-tests/item-background.html: Added.
15093        * platform/PopupMenuClient.h:
15094        * platform/graphics/Color.cpp:
15095        (WebCore::blendComponent): Renamed the static method blend() to this.
15096        (WebCore::Color::blend): Added. Compositing (in "normal" or "source over"
15097        blend mode) B.blend(C) over A is equivalent to compositing C over the
15098        result of compositing B over A.
15099        (WebCore::Color::blendWithWhite): Changed for the above rename.
15100        * platform/graphics/Color.h:
15101        * platform/win/PopupMenuWin.cpp:
15102        (WebCore::PopupMenu::paint): Changed to use itemBackgroundColor().
15103        * rendering/RenderMenuList.cpp:
15104        (WebCore::RenderMenuList::itemBackgroundColor): Added. Returns the color
15105        that would result from overlaying the item's background color over the
15106        menu's background color over solid white. Note that clientStyle() cannot
15107        be used for the menu's background color, since background color is not
15108        inherited by the inner block (the regression resulted from changing
15109        clientStyle() to return the inner block's style), and that the color
15110        returned from this method is guaranteed to be opaque.
15111        * rendering/RenderMenuList.h:
15112        * rendering/RenderTextControl.cpp:
15113        (WebCore::RenderTextControl::itemBackgroundColor): Added.
15114        * rendering/RenderTextControl.h:
15115
151162007-07-20  Rob Buis  <buis@kde.org>
15117
15118        Reviewed by Darin.
15119
15120        http://bugs.webkit.org/show_bug.cgi?id=14642
15121        REGRESSION(r24064-24096): Reflection type effect in canvas tag broke
15122
15123        Do not stop the fill/stroke operation when encountering an empty path.
15124
15125        * html/CanvasRenderingContext2D.cpp:
15126        (WebCore::CanvasRenderingContext2D::fill):
15127        (WebCore::CanvasRenderingContext2D::stroke):
15128
151292007-07-20  Lars Knoll  <lars@trolltech.com>
15130
15131        Reviewed by Simon.
15132
15133        Remove some files that are not used anymore.
15134
15135        * platform/qt/FontCacheQt.cpp: Removed.
15136        * platform/qt/FontDataQt.cpp: Removed.
15137        * platform/qt/FontPlatformData.h: Removed.
15138        * platform/qt/FontPlatformDataQt.cpp: Removed.
15139        * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
15140
151412007-07-20  Lars Knoll  <lars@trolltech.com>
15142
15143        Reviewed by Simon.
15144
15145        use the correct font for spaces.
15146
15147        * platform/qt/FontQt.cpp:
15148        (WebCore::generateComponents):
15149
151502007-07-20  Lars Knoll  <lars@trolltech.com>
15151
15152        Reviewed by Simon.
15153
15154        spaces where not correctly taken into account for both offsetForPosition and selectionRectForText. Because of that selections sort of worked in LTR text, but completely failed in RTL.
15155
15156        * platform/qt/FontQt.cpp:
15157        (WebCore::TextRunComponent::isSpace):
15158        (WebCore::TextRunComponent::TextRunComponent):
15159        (WebCore::generateComponents):
15160        (WebCore::Font::drawText):
15161        (WebCore::Font::offsetForPosition):
15162        (WebCore::Font::selectionRectForText):
15163
151642007-07-20  Lars Knoll  <lars@trolltech.com>
15165
15166        Reviewed by Simon.
15167
15168        fix up some smaller issues in selection handling. It's still not perfect and selections in mixed rtl/ltr text are still broken, but it's getting there.
15169
15170        * platform/qt/FontQt.cpp:
15171        (WebCore::Font::offsetForPosition):
15172        (WebCore::cursorToX):
15173        (WebCore::Font::selectionRectForText):
15174
151752007-07-20  Lars Knoll  <lars@trolltech.com>
15176
15177        Reviewed by Simon.
15178
15179        make offsetForPosition and selectionRectForText work correctly with small caps.
15180
15181        * platform/qt/FontQt.cpp:
15182        (WebCore::Font::offsetForPosition):
15183        (WebCore::cursorToX):
15184        (WebCore::Font::selectionRectForText):
15185
151862007-07-20  Lars Knoll  <lars@trolltech.com>
15187
15188        Reviewed by Simon.
15189
15190        clip the drawn text correctly when needed.
15191
15192        * platform/qt/FontQt.cpp:
15193        (WebCore::Font::drawText):
15194
151952007-07-20  Lars Knoll  <lars@trolltech.com>
15196
15197        Reviewed by Simon.
15198
15199        Fix offsetForPosition and selectionRectForText methods.
15200
15201        * platform/qt/FontQt.cpp:
15202        (WebCore::Font::offsetForPosition):
15203        (WebCore::cursorToX):
15204        (WebCore::Font::selectionRectForText):
15205
152062007-07-20  Lars Knoll  <lars@trolltech.com>
15207
15208        Reviewed by Simon.
15209
15210        fix BiDi text rendering.
15211
15212        * platform/qt/FontQt.cpp:
15213        (WebCore::TextRunComponent::TextRunComponent):
15214        (WebCore::generateComponents):
15215        (WebCore::Font::drawText):
15216
152172007-07-20  Mark Rowe  <mrowe@apple.com>
15218
15219        Reviewed by Maciej.
15220
15221        Move FTPDirectoryTokenizer::m_templateDocumentData to be a function-scoped static
15222        to avoid creating a global initializer.  This fixes the build for x86_64.
15223
15224        * loader/FTPDirectoryDocument.cpp:
15225        (WebCore::FTPDirectoryTokenizer::loadDocumentTemplate):
15226
152272007-07-19  Geoffrey Garen  <ggaren@apple.com>
15228
15229        Reviewed by Maciej Stachowiak.
15230        
15231        Fixed <rdar://problem/5347849> Cache eviction of live decoded data is 
15232        thrash-y
15233        
15234        The solution here is to evict live decoded data based on a strict LRU
15235        model. This should work well as a "scrolling window."
15236
15237        With this patch, I see a substantial reduction in CPU while scrolling
15238        through a page with large images on a low memory system. Layout tests
15239        pass.
15240
15241        * loader/Cache.h: Changed from a size-based vector of LRU lists to a
15242        single LRU list in order to implement strict LRU.
15243        
15244        * loader/CachedResource.h: Removed tracking of access count, since that
15245        was the old cache eviction model.
15246
152472007-07-19  Oliver Hunt  <oliver@apple.com>
15248
15249        Reviewed by Maciej.
15250
15251        <rdar://problem/5076807> REGRESSION: Can't undo conversion of inline text (by hitting ESC)
15252        <rdar://problem/5346167> DOM key events triggered during IME composition differ in webkit/mac vs all windows browsers
15253
15254        We now basically match the behaviour of IE/Windows. This means that during composition keydown and autorepeat
15255        keys generate keydown events with a keyCode of 229, which correlates to the windows VK_PROCESSKEY message.
15256        keyup events are generated with the keyCode of the actual key that was pressed.
15257
15258        The only difference is on the first keydown of a composition, in which IE will use keyCode == 229, and we will
15259        send an event with the keyCode for the actual key that was pressed.
15260
15261        * page/EventHandler.cpp:
15262        (WebCore::EventHandler::keyEvent):
15263        * platform/PlatformKeyboardEvent.h:
15264        (WebCore::PlatformKeyboardEvent::setWindowsKeyCode):
15265
152662007-07-19  Brady Eidson  <beidson@apple.com>
15267
15268        Reviewed by Sam
15269
15270        <rdar://problem/5134929> REGRESSION: Colon detected as delimiting an empty port is stripped
15271
15272        The fix for this was in KURL::parse() which had a slightly changed rule that would strip the colon if there
15273        was no port.
15274
15275        An additional canonicalization fix was made in window.location.host to match the expected behavior of leaving
15276        the colon in place - before this fix, if the colon was there but no port was there, we'd see the port as 0.
15277
15278        * bindings/js/kjs_window.cpp:
15279        (KJS::Location::put): Call setHostAndPort instead of setHost and setPort seperately
15280
15281        * manual-tests/location-host-canonicalization.html: Added.
15282
15283        * platform/KURL.cpp:
15284        (WebCore::KURL::setHostAndPort): Set the host and port as one string component then reparse the URL
15285        (WebCore::KURL::parse): Change one line to consider the empty colon as part of the host name
15286        * platform/KURL.h:
15287
152882007-07-19  Anders Carlsson  <andersca@apple.com>
15289
15290        Reviewed by Adam.
15291
15292        <rdar://problem/5288617>
15293        Crash playing a very large QuickTime movie in Safari
15294        
15295        <rdar://problem/5271174>
15296        http://bugs.webkit.org/show_bug.cgi?id=14148
15297        LEAK: Serious memory consumption and leak when loading QT movies.
15298        
15299        Don't keep plugin stream data in memory since some plugin resources (like QT movies)
15300        can be really big. If a plug-in wants data in a file, create a file and write data to it 
15301        as it's coming from the wire, instead of using a big buffer.
15302        
15303        * loader/ResourceLoader.cpp:
15304        (WebCore::ResourceLoader::ResourceLoader):
15305        (WebCore::ResourceLoader::addData):
15306        (WebCore::ResourceLoader::willStopBufferingData):
15307        * loader/ResourceLoader.h:
15308        (WebCore::ResourceLoader::setShouldBufferData):
15309        * plugins/win/PluginStreamWin.cpp:
15310        (WebCore::PluginStreamWin::PluginStreamWin):
15311        (WebCore::PluginStreamWin::start):
15312        (WebCore::PluginStreamWin::startStream):
15313        (WebCore::PluginStreamWin::destroyStream):
15314        (WebCore::PluginStreamWin::didReceiveData):
15315        (WebCore::PluginStreamWin::didFinishLoading):
15316        * plugins/win/PluginStreamWin.h:
15317
153182007-07-19  Geoffrey Garen  <ggaren@apple.com>
15319
15320        Reviewed by Darin Adler.
15321        
15322        Fixed <rdar://problem/5348384> Restore old return value behavior of 
15323        stringByEvaluatingJavaScriptFromString
15324        
15325        Return an empty string unless you have a string, boolean, or number
15326        result.
15327
15328        * WebCore.xcodeproj/project.pbxproj:
15329        * page/mac/WebCoreFrameBridge.mm:
15330        (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
15331
153322007-07-19  Darin Adler  <darin@apple.com>
15333
15334        Reviewed by Alexey.
15335
15336        - fix http://bugs.webkit.org/show_bug.cgi?id=14666
15337          remove unused xxx-encodings.txt for all platforms other than Mac
15338
15339        * platform/gdk/gdk-encodings.txt: Removed.
15340        * platform/win/win-encodings.txt: Removed.
15341        * platform/wx/wx-encodings.txt: Removed.
15342
15343        * platform/character-sets.txt: Moved into mac subdirectory since it's only used for Mac; at some
15344        point I hope to remove it completely.
15345        * platform/make-charset-table.pl: Ditto.
15346        * platform/mac/character-sets.txt: Copied from platform/character-sets.txt.
15347        * platform/mac/make-charset-table.pl: Copied from platform/make-charset-table.pl.
15348
15349        * DerivedSources.make: Moved CharsetData.cpp into the MACOS section.
15350        Changed the build rule to use Mac-specific paths for everything and got rid of
15351        make variables.
15352
15353        * WebCore.vcproj/build-generated-files.sh: Removed code to set ENCODINGS_FILE and ENCODINGS_PREFIX.
15354        * WebCore.xcodeproj/project.pbxproj: Ditto.
15355        * make-generated-sources.sh: Ditto.
15356
15357        * Projects/gdk/webcore-gdk.bkl: Removed code to pass gdk-encodings.txt to make-generated-sources.sh.
15358        * Projects/wx/webcore-wx.bkl: Ditto, but for wx-encodings.txt.
15359
153602007-07-19  Antti  <antti@apple.com>
15361
15362        Reviewed by Darin.
15363
15364        Fix <rdar://problem/5257371>
15365        Dashcode Client crash when clicking on placemarks in Maps widget in WebCore::DeprecatedPtrListImpl::addIterator
15366        
15367        FlexibleBoxes should never have inline children. Don't move children out from last remaining anonymous block.
15368
15369        * rendering/RenderBlock.cpp:
15370        (WebCore::RenderBlock::removeChild): real fix
15371        * rendering/RenderFlexibleBox.cpp:
15372        (WebCore::RenderFlexibleBox::layoutVerticalBox): just to be sure, this is checked elsewhere too
15373
153742007-07-19  Anders Carlsson  <andersca@apple.com>
15375
15376        Reviewed by Darin.
15377
15378        <rdar://problem/5322268>
15379        Safari Crash at http://www.exlibrisgroup.com/sfx_openurl.htm
15380        
15381        Add a real copy constructor and assignment operator for CollectionInfo
15382        so that the vectors in the cache maps will be copied correctly.
15383        
15384        * html/HTMLCollection.cpp:
15385        (WebCore::HTMLCollection::CollectionInfo::CollectionInfo):
15386        (WebCore::HTMLCollection::CollectionInfo::swap):
15387        * html/HTMLCollection.h:
15388        (WebCore::HTMLCollection::CollectionInfo::operator=):
15389        (WebCore::HTMLCollection::CollectionInfo::copyCacheMap):
15390
153912007-07-19  David Hyatt  <hyatt@apple.com>
15392
15393        Fix for 5237574, Colloquy main view does not size correctly.  Make
15394        sure to reset the baseilne when calculating a row's height/baseline, so
15395        that old values don't stick around.
15396
15397        Reviewed by Tim Hatcher
15398
15399        * rendering/RenderTableSection.cpp:
15400        (WebCore::RenderTableSection::calcRowHeight):
15401
154022007-07-19  Antti  <antti@apple.com>
15403
15404        Reviewed by John.
15405        
15406        Fix <rdar://problem/5346697>
15407        REGRESSION(r23773): Visibile children on invisible layer are not painted (fast/layers/layer-visibility.html fails)
15408        
15409        Test m_hasVisibleContent instead of renderer()->style()->visibility(). 
15410        This takes children into account too.
15411
15412        Regression spotted by Mitz.
15413
15414        * rendering/RenderLayer.cpp:
15415        (WebCore::RenderLayer::paintLayer):
15416
154172007-07-18  Oliver Hunt  <oliver@apple.com>
15418
15419        Rubber stamped by maciej
15420
15421        Rollout patch from r24437.
15422
15423        * page/EventHandler.cpp:
15424        (WebCore::EventHandler::keyEvent):
15425
154262007-07-18  Oliver Hunt  <oliver@apple.com>
15427
15428        Reviewed by Kevin M.
15429
15430        Fix for <rdar://problem/5346167> DOM key events triggered during
15431                IME composition differ in webkit/mac vs all windows browsers
15432
15433        We no longer send DOM key events during IME composition.  This behaviour 
15434        matches the behaviour of WebKit/Win.
15435
15436        * page/EventHandler.cpp:
15437        (WebCore::EventHandler::keyEvent):
15438
154392007-07-18  Sam Weinig  <sam@webkit.org>
15440
15441        Reviewed by Oliver.
15442
15443        Fix for http://bugs.webkit.org/show_bug.cgi?id=14646
15444        WebKit border radius properties are unavailable via JavaScript
15445
15446        Test: fast/dom/getComputedStyle-borderRadius.html
15447
15448        * css/CSSComputedStyleDeclaration.cpp:
15449        (WebCore::getBorderRadiusCornerValue): Helper function that returns a single value if
15450        width and the height of the corner radius are equal, and otherwise a pair.
15451        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
15452
154532007-07-18  Anders Carlsson  <andersca@apple.com>
15454
15455        Reviewed by Darin.
15456
15457        <rdar://problem/5262136> Double form repost alert going forward on britishairways.com
15458        
15459        When checking if the request has changed and a new policy callback needs to be sent, 
15460        ignore the request headers. NSURLConnection in Leopard will always call willSendRequest,
15461        with a request that was different from the one passed to -[NSURLConnection connectionWithRequest:]
15462        (a few Accept headers are added).
15463
15464        * loader/FrameLoader.cpp:
15465        (WebCore::FrameLoader::checkNavigationPolicy):
15466        * platform/network/ResourceRequestBase.cpp:
15467        (WebCore::equalIgnoringHeaderFields):
15468        (WebCore::operator==):
15469        * platform/network/ResourceRequestBase.h:
15470
154712007-07-18  Anders Carlsson  <andersca@apple.com>
15472
15473        Reviewed by Darin.
15474
15475        <rdar://problem/5340098>
15476        http://bugs.webkit.org/show_bug.cgi?id=13366
15477        REGRESSION (r10935): AOL beta music player doesn't play
15478
15479        The AOL beta music player has a typo, causing it to create an <embed"> element inside of
15480        an <object> element
15481        Because of this, it will not be treated as an embed tag, so its name will not be added
15482        to the document's named item map. Furthermore, since the <object> contains a child that
15483        is not a <param>, the object's name won't be added either.
15484        
15485        The (somewhat ugly) fix is to add <object> to the named map only if it has <param> or
15486        unknown elements as children.
15487        
15488        * html/HTMLObjectElement.cpp:
15489        (WebCore::HTMLObjectElement::updateDocNamedItem):
15490
154912007-07-18  Timothy Hatcher  <timothy@apple.com>
15492
15493        Reviewed by Adam.
15494
15495        <rdar://problem/5343767> Should have a way to disable the Web Inspector
15496
15497        This change facilitates the ability to turn the Web Inspector on and off.
15498
15499        Makes the InspectorClient be required to create a new Page. This also means that
15500        InspectorController will never be NULL. Adds a new function on Page to test
15501        if the inspector is enabled.
15502
15503        * WebCore.exp: New symbol for the Page constructor.
15504        * WebCore.pro: Add InspectorClientGdk.cpp.
15505        * WebCoreSources.bkl: ditto.
15506        * html/HTMLDocument.cpp:
15507        (WebCore::HTMLDocument::createTokenizer):
15508        * loader/FrameLoader.cpp:
15509        (WebCore::FrameLoader::detachFromParent): Don't null check the InspectorCOntroller.
15510        (WebCore::FrameLoader::dispatchDidCommitLoad): Ditto.
15511        (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest): Ditto.
15512        (WebCore::FrameLoader::dispatchWillSendRequest): Ditto.
15513        (WebCore::FrameLoader::dispatchDidReceiveResponse): Ditto.
15514        (WebCore::FrameLoader::dispatchDidReceiveContentLength): Ditto.
15515        (WebCore::FrameLoader::dispatchDidFinishLoading): Ditto.
15516        (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Ditto.
15517        * page/ContextMenuController.cpp:
15518        (WebCore::ContextMenuController::handleContextMenuEvent): Ask the InspectorController if it is enabled.
15519        (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
15520        * page/InspectorController.cpp:
15521        (WebCore::InspectorController::enabled): Ask the Page's settings if developer extras are enabled.
15522        (WebCore::InspectorController::inspect): Check if the InspectorController is enabled.
15523        (WebCore::InspectorController::focusNode): Ditto.
15524        (WebCore::InspectorController::highlight): Ditto.
15525        (WebCore::InspectorController::hideHighlight): Ditto.
15526        (WebCore::InspectorController::addMessageToConsole): Ditto.
15527        (WebCore::InspectorController::attachWindow): Ditto.
15528        (WebCore::InspectorController::detachWindow): Ditto.
15529        (WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
15530        (WebCore::InspectorController::didCommitLoad): Ditto.
15531        (WebCore::InspectorController::frameDetachedFromParent): Ditto.
15532        (WebCore::InspectorController::didLoadResourceFromMemoryCache): Ditto.
15533        (WebCore::InspectorController::identifierForInitialRequest): Ditto.
15534        (WebCore::InspectorController::willSendRequest): Ditto.
15535        (WebCore::InspectorController::didReceiveResponse): Ditto.
15536        (WebCore::InspectorController::didReceiveContentLength): Ditto.
15537        (WebCore::InspectorController::didFinishLoading): Ditto.
15538        (WebCore::InspectorController::didFailLoading): Ditto.
15539        * page/InspectorController.h:
15540        * page/Page.cpp:
15541        (WebCore::Page::Page): Require an InspectorClient.
15542        (WebCore::Page::~Page): Always call pageDestroyed on the InspectorController.
15543        (WebCore::Page::inspectorEnabled): Check the WebCore settings if the developer extras are enabled.
15544        * page/Page.h:
15545        * page/gdk/InspectorClientGdk.cpp: Added.
15546        (WebCore::InspectorClientGdk::inspectorDestroyed): Empty stub calling notImplemented.
15547        (WebCore::InspectorClientGdk::createPage): Ditto.
15548        (WebCore::InspectorClientGdk::showWindow): Ditto.
15549        (WebCore::InspectorClientGdk::closeWindow): Ditto.
15550        (WebCore::InspectorClientGdk::attachWindow): Ditto.
15551        (WebCore::InspectorClientGdk::detachWindow): Ditto.
15552        (WebCore::InspectorClientGdk::highlight): Ditto.
15553        (WebCore::InspectorClientGdk::hideHighlight): Ditto.
15554        (WebCore::InspectorClientGdk::inspectedURLChanged): Ditto.
15555        * page/gdk/InspectorClientGdk.h: Added.
15556        * platform/graphics/svg/SVGImage.cpp:
15557        (WebCore::SVGImage::dataChanged): Pass in a dummy InspectorClient.
15558        * platform/graphics/svg/SVGImageEmptyClients.h:
15559        (WebCore::SVGEmptyInspectorClient::~SVGEmptyInspectorClient): Empty dummy implementation.
15560        (WebCore::SVGEmptyInspectorClient::inspectorDestroyed): Ditto.
15561        (WebCore::SVGEmptyInspectorClient::createPage): Ditto.
15562        (WebCore::SVGEmptyInspectorClient::showWindow): Ditto.
15563        (WebCore::SVGEmptyInspectorClient::closeWindow): Ditto.
15564        (WebCore::SVGEmptyInspectorClient::attachWindow): Ditto.
15565        (WebCore::SVGEmptyInspectorClient::detachWindow): Ditto.
15566        (WebCore::SVGEmptyInspectorClient::highlight): Ditto.
15567        (WebCore::SVGEmptyInspectorClient::hideHighlight): Ditto.
15568        (WebCore::SVGEmptyInspectorClient::inspectedURLChanged): Ditto.
15569
155702007-07-18  Anders Carlsson  <andersca@apple.com>
15571
15572        Make some headers private instead of project.
15573        
15574        * WebCore.xcodeproj/project.pbxproj:
15575
155762007-07-18  John Sullivan  <sullivan@apple.com>
15577
15578        Reviewed by Maciej and Kevin Decker
15579
15580        - fixed <rdar://problem/5315926> REGRESSION: ~.4% PLT regression from r23949 (canonicalization change)
15581
15582        * loader/mac/LoaderNSURLExtras.m:
15583        (canonicalURL):
15584        Rolled out the fix for 5249730 that caused this regression. 5249730 is addressed a different way now.
15585
155862007-07-18  Sam Weinig  <sam@webkit.org>
15587
15588        Build fix.
15589
15590        * WebCore.xcodeproj/project.pbxproj:
15591        * loader/gdk/FrameLoaderClientGdk.cpp:
15592        (WebCore::FrameLoaderClientGdk::objectContentType):
15593        * platform/graphics/win/ImageWin.cpp:
15594        * platform/network/cf/ResourceResponseCFNet.cpp:
15595        * platform/win/ClipboardWin.cpp:
15596        (WebCore::createGlobalImageFileDescriptor):
15597
155982007-07-18  Sam Weinig  <sam@webkit.org>
15599
15600        Rubber-stamped by Adam Roben.
15601
15602        Rename MimeTypeRegistry to MIMETypeRegistry and xmlhttprequest to XMLHttpRequest
15603
15604        * WebCore.exp:
15605        * WebCore.pro:
15606        * WebCore.vcproj/WebCore.vcproj:
15607        * bindings/js/JSXMLHttpRequest.cpp:
15608        * bindings/js/kjs_binding.cpp:
15609        * bindings/js/kjs_dom.cpp:
15610        * dom/Document.cpp:
15611        * html/HTMLFormElement.cpp:
15612        (WebCore::HTMLFormElement::formData):
15613        * html/HTMLObjectElement.cpp:
15614        (WebCore::HTMLObjectElement::containsJavaApplet):
15615        * loader/FrameLoader.cpp:
15616        (WebCore::FrameLoader::requestObject):
15617        * loader/mac/LoaderNSURLExtras.m:
15618        (suggestedFilenameWithMIMEType):
15619        * platform/MIMETypeRegistry.cpp: Copied from platform/MimeTypeRegistry.cpp.
15620        (WebCore::initialiseSupportedImageMIMETypes):
15621        (WebCore::initialiseMIMETypeRegistry):
15622        (WebCore::MIMETypeRegistry::getMIMETypeForPath):
15623        (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
15624        (WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType):
15625        (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
15626        (WebCore::MIMETypeRegistry::isJavaAppletMIMEType):
15627        (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes):
15628        (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes):
15629        (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes):
15630        * platform/MIMETypeRegistry.h: Copied from platform/MimeTypeRegistry.h.
15631        * platform/MimeTypeRegistry.cpp: Removed.
15632        * platform/MimeTypeRegistry.h: Removed.
15633        * platform/gdk/MIMETypeRegistryGdk.cpp: Copied from platform/gdk/MimeTypeRegistryGdk.cpp.
15634        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15635        * platform/gdk/MimeTypeRegistryGdk.cpp: Removed.
15636        * platform/graphics/BitmapImage.cpp:
15637        * platform/graphics/Image.cpp:
15638        (WebCore::Image::supportsType):
15639        * platform/mac/DragDataMac.mm:
15640        * platform/mac/MIMETypeRegistryMac.mm: Copied from platform/mac/MimeTypeRegistryMac.mm.
15641        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15642        (WebCore::MIMETypeRegistry::getExtensionsForMIMEType):
15643        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
15644        * platform/mac/MimeTypeRegistryMac.mm: Removed.
15645        * platform/mac/PasteboardMac.mm:
15646        (WebCore::Pasteboard::writeImage):
15647        * platform/qt/MIMETypeRegistryQt.cpp: Copied from platform/qt/MimeTypeRegistryQt.cpp.
15648        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15649        * platform/qt/MimeTypeRegistryQt.cpp: Removed.
15650        * platform/win/MIMETypeRegistryWin.cpp: Copied from platform/win/MimeTypeRegistryWin.cpp.
15651        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
15652        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
15653        * platform/win/MimeTypeRegistryWin.cpp: Removed.
15654        * rendering/RenderPartObject.cpp:
15655        (WebCore::RenderPartObject::updateWidget):
15656        * xml/xmlhttprequest.cpp: Removed.
15657        * xml/xmlhttprequest.h: Removed.
15658        * xml/XMLHttpRequest.cpp: Copied from xml/xmlhttprequest.cpp.
15659        * xml/XMLHttpRequest.h: Copied from xml/xmlhttprequest.h.
15660
156612007-07-18  Sam Weinig  <sam@webkit.org>
15662
15663        Rubber-stamped by Adam Roben.
15664
15665        Rename csshelper.h, csshelper.cpp, cssparser.h, cssparser.cpp,
15666        cssstyleselector.h, and cssstyleselector.cpp to be CamelCase.
15667
15668        * WebCore.pro:
15669        * WebCore.vcproj/WebCore.vcproj:
15670        * bindings/objc/DOM.mm:
15671        * bindings/objc/DOMHTML.mm:
15672        * css/CSSGrammar.y:
15673        * css/CSSMediaRule.cpp:
15674        * css/CSSMutableStyleDeclaration.cpp:
15675        * css/CSSPrimitiveValue.cpp:
15676        * css/CSSStyleSheet.cpp:
15677        * css/MediaList.cpp:
15678        * css/MediaQueryExp.cpp:
15679        * css/csshelper.cpp: Removed.
15680        * css/csshelper.h: Removed.
15681        * css/CSSHelper.cpp: Copied from css/csshelper.cpp.
15682        * css/CSSHelper.h: Copied from css/csshelper.h.
15683        * css/cssparser.cpp: Removed.
15684        * css/cssparser.h: Removed.
15685        * css/CSSParser.cpp: Copied from css/cssparser.cpp.
15686        * css/CSSParser.h: Copied from css/cssparser.h.
15687        * css/cssstyleselector.cpp: Removed.
15688        * css/cssstyleselector.h: Removed.
15689        * css/CSSStyleSelector.cpp: Copied from css/cssstyleselector.cpp.
15690        * css/CSSStyleSelector.h: Copied from css/cssstyleselector.h.
15691        * dom/Document.cpp:
15692        * dom/Element.cpp:
15693        * dom/StyledElement.cpp:
15694        * editing/ApplyStyleCommand.cpp:
15695        * editing/markup.cpp:
15696        * html/CanvasGradient.cpp:
15697        * html/CanvasRenderingContext2D.cpp:
15698        * html/CanvasStyle.cpp:
15699        * html/HTMLAnchorElement.cpp:
15700        * html/HTMLBaseElement.cpp:
15701        * html/HTMLBodyElement.cpp:
15702        * html/HTMLDocument.cpp:
15703        * html/HTMLEmbedElement.cpp:
15704        * html/HTMLFormElement.cpp:
15705        * html/HTMLFrameElementBase.cpp:
15706        * html/HTMLImageElement.cpp:
15707        * html/HTMLImageLoader.cpp:
15708        * html/HTMLLinkElement.cpp:
15709        * html/HTMLObjectElement.cpp:
15710        * html/HTMLOptGroupElement.cpp:
15711        * html/HTMLOptionElement.cpp:
15712        * html/HTMLSelectElement.cpp:
15713        * html/HTMLTableElement.cpp:
15714        * html/HTMLTablePartElement.cpp:
15715        * html/HTMLTokenizer.cpp:
15716        * ksvg2/css/SVGCSSParser.cpp:
15717        * ksvg2/css/SVGCSSStyleSelector.cpp:
15718        * ksvg2/svg/SVGAElement.cpp:
15719        * ksvg2/svg/SVGClipPathElement.cpp:
15720        * ksvg2/svg/SVGGradientElement.cpp:
15721        * ksvg2/svg/SVGLength.cpp:
15722        * ksvg2/svg/SVGMaskElement.cpp:
15723        * ksvg2/svg/SVGStyledElement.cpp:
15724        * ksvg2/svg/SVGUseElement.cpp:
15725        * page/DOMWindow.cpp:
15726        * page/mac/FrameMac.mm:
15727        * page/mac/WebCoreFrameBridge.mm:
15728        * rendering/HitTestResult.cpp:
15729        * rendering/RenderObject.cpp:
15730        * rendering/RenderStyle.cpp:
15731        * rendering/RenderThemeMac.mm:
15732
157332007-07-18  Brady Eidson  <beidson@apple.com>
15734
15735        Rubberstamped by Adam
15736
15737        * platform/win/SharedBufferWin.cpp:
15738        (WebCore::SharedBuffer::createWithContentsOfFile): Correct license on this newly checked in file from yesterday
15739
157402007-07-18  Maciej Stachowiak  <mjs@apple.com>
15741
15742        Reviewed by Oliver.
15743
15744        - fixed <rdar://problem/5340603> REGRESSION: javascript being written to the screen in Safari
15745
15746        Test Case: fast/tokenizer/badscript.html
15747        
15748        * html/HTMLTokenizer.cpp:
15749        (WebCore::HTMLTokenizer::parseTag): Don't apply our self-closing
15750        <script> quirk in cases where the / appears in a mangled attribtue
15751        value.
15752
157532007-07-17  Peter Kasting  <pkasting@google.com>
15754
15755        Reviewed by Hyatt.
15756
15757        http://bugs.webkit.org/show_bug.cgi?id=13618
15758        Don't set link targets to "_blank" on middle-click; rely on the policy
15759        delegate to do the right thing.
15760
15761        * html/HTMLAnchorElement.cpp:
15762        (WebCore::HTMLAnchorElement::defaultEventHandler):
15763
157642007-07-17  Oliver Hunt  <oliver@apple.com>
15765
15766        Reviewed by Maciej.
15767
15768        Fix for <rdar://problem/4799967> Safari and other WebKit 
15769        apps sometimes crash in WebCore::FontData::platformInit
15770
15771        Always retain/release our font handle, instead of only retaining
15772        in the presence of GC.
15773
15774        * platform/mac/FontPlatformData.h:
15775        (WebCore::FontPlatformData::FontPlatformData):
15776        (WebCore::FontPlatformData::~FontPlatformData):
15777
157782007-07-17  Sam Weinig  <sam@webkit.org>
15779
15780        Reviewed by Geoff Garen.
15781
15782        Fix for <rdar://problem/5333957>
15783                http://bugs.webkit.org/show_bug.cgi?id=14610
15784
15785        Original patch by Feng Qian.
15786
15787        - Clear the selection object when disconnecting a frame.
15788
15789        Test: http/tests/security/cross-frame-access-selection.html
15790
15791        * loader/FrameLoader.cpp:
15792        (WebCore::FrameLoader::clear):
15793        * page/DOMWindow.cpp:
15794        (WebCore::DOMWindow::disconnectFrame):
15795        (WebCore::DOMWindow::clear):
15796        * page/DOMWindow.h:
15797        * page/Frame.cpp:
15798        (WebCore::Frame::clearScriptProxy):
15799        (WebCore::Frame::clearDOMWindow):
15800        * page/Frame.h:
15801
158022007-07-17  Oliver Hunt  <oliver@apple.com>
15803
15804        Reviewed by Sam.
15805
15806        Fix for <rdar://problem/5154518> REGRESSION: Hitting return does
15807        nothing in ruby terminal at http://tryruby.hobix.com/
15808
15809        Calling event.preventDefault() during a keydown event should not 
15810        prevent the keypress event from firing.
15811
15812        * WebCore.xcodeproj/project.pbxproj:
15813        * page/EventHandler.cpp:
15814        (WebCore::EventHandler::keyEvent):
15815        (WebCore::EventHandler::defaultKeyboardEventHandler):
15816
158172007-07-17  Anders Carlsson  <andersca@apple.com>
15818
15819        Reviewed by Geoff.
15820
15821        <rdar://problem/4993463> 
15822        http://bugs.webkit.org/show_bug.cgi?id=12732
15823        REGRESSION: Comments fields on ircimages not showing up in nightly
15824
15825        Postpone setting the frame name to just right before we request the frame. Otherwise, 
15826        two calls to FrameTree::uniqueChildName will return the same frame name and in that case only
15827        one Frame object will actually be created and multiple iframe elements will refer to it.
15828        
15829        * html/HTMLFrameElementBase.cpp:
15830        (WebCore::HTMLFrameElementBase::openURL):
15831        (WebCore::HTMLFrameElementBase::setNameAndOpenURL):
15832        (WebCore::HTMLFrameElementBase::setNameAndOpenURLCallback):
15833        (WebCore::HTMLFrameElementBase::insertedIntoDocument):
15834        (WebCore::HTMLFrameElementBase::attach):
15835        * html/HTMLFrameElementBase.h:
15836
158372007-07-17  Brady Eidson  <beidson@apple.com>
15838
15839        Reviewed by Steve
15840
15841        Required for <rdar://problem/4516185> - FTP Directory Listings
15842
15843        * WebCore.vcproj/WebCore.vcproj: Added SharedBufferWin
15844        
15845        * platform/SharedBuffer.cpp: Windows doesn't get the default empty resource anymore
15846        * platform/win/SharedBufferWin.cpp: Added.
15847        (WebCore::SharedBuffer::createWithContentsOfFile):
15848
158492007-07-17  Brady Eidson  <beidson@apple.com>
15850
15851        Reviewed by Tim Hatcher
15852
15853        Tweak the class names we give to the icon table cell to make it easier to style
15854
15855        * loader/FTPDirectoryDocument.cpp:
15856          (WebCore::FTPDirectoryTokenizer::appendEntry): The the table cell a "IconCell" class name and
15857          either a "FileType" or "DirectoryType" class name depending on the type
15858
158592007-07-17  Holger Hans Peter Freyther  <zecke@selfish.org>
15860
15861        Reviewed by NOBODY.
15862
15863        Build fix after r24366 add an additional ResourceRequest parameter to
15864        the download method.
15865
15866        * loader/gdk/FrameLoaderClientGdk.cpp:
15867        (WebCore::FrameLoaderClientGdk::download):
15868        * loader/gdk/FrameLoaderClientGdk.h:
15869
158702007-07-17  Adam Roben  <aroben@apple.com>
15871
15872        Fix Bug 14324: Cannot remove/customize the "Inspect Element" contextual menu item
15873        http://bugs.webkit.org/show_bug.cgi?id=14324
15874
15875        Reviewed by Tim.
15876
15877        No regression test possible.
15878
15879        * page/ContextMenuController.cpp:
15880        (WebCore::ContextMenuController::handleContextMenuEvent): Add the
15881        Inspect Element item to the menu before passing it to the
15882        ContextMenuClient so that the UI delegate has a chance to
15883        modify/remove the item.
15884
158852007-07-17  Adam Roben  <aroben@apple.com>
15886
15887        Remove ContextMenuClient::shouldIncludeInspectElementItem
15888
15889        Reviewed by Tim.
15890
15891        No regression test possible.
15892
15893        * page/ContextMenuClient.h:
15894        * page/ContextMenuController.cpp:
15895        (WebCore::ContextMenuController::handleContextMenuEvent): Use Settings
15896        to determine whether to include the Inspect Element item.
15897        * page/gdk/ContextMenuClientGdk.cpp:
15898        * page/gdk/ContextMenuClientGdk.h:
15899        * platform/graphics/svg/SVGImageEmptyClients.h:
15900
159012007-07-17  Adam Roben  <aroben@apple.com>
15902
15903        Initialize ContextMenuController::m_page
15904
15905        Somehow this variable had never been initialized before.
15906
15907        Reviewed by Tim.
15908
15909        * page/ContextMenuController.cpp:
15910        (WebCore::ContextMenuController::ContextMenuController):
15911        * page/ContextMenuController.h:
15912        * page/Page.cpp:
15913        (WebCore::Page::Page):
15914
159152007-07-17  Adam Roben  <aroben@apple.com>
15916
15917        Add Settings::developerExtrasEnabled
15918
15919        Reviewed by Tim.
15920
15921        * WebCore.exp:
15922        * page/Settings.cpp:
15923        * page/Settings.h:
15924
159252007-07-17  Justin Garcia  <justin.garcia@apple.com>
15926
15927        Reviewed by Antti.
15928
15929        <rdar://problem/5206311> 
15930        Whitespace can't be removed when editing text pasted into from web page
15931        
15932        The whitespace comes from table rows that aren't being removed after they are
15933        emptied out during a deletion.
15934
15935        * editing/DeleteSelectionCommand.cpp:
15936        (WebCore::isTableCell):
15937        (WebCore::isTableRow):
15938        (WebCore::isTableCellEmpty):
15939        (WebCore::isTableRowEmpty):
15940        (WebCore::DeleteSelectionCommand::initializePositionData): Remember the table
15941        rows that contained the start and end of the selection.
15942        (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
15943        Remove table rows that come before the end of the selection
15944        that was removed (except for the row that contained the start of the selection
15945        and any before that).
15946        Remove table rows that are come after the start of the selection
15947        that was removed (except for the row that contained the end of the selection
15948        and any after that).
15949        (WebCore::DeleteSelectionCommand::doApply): Call the new function.
15950        * editing/DeleteSelectionCommand.h:
15951
159522007-07-17  Geoffrey Garen  <ggaren@apple.com>
15953
15954        Reviewed by Kevin Decker.
15955
15956        Removed ASSERT that was breaking the pageout test. It's trivial to
15957        reproduce this ASSERT when navigating between pages that change their
15958        names, but nothing bad seems to happen.
15959
15960        * page/Page.cpp:
15961        (WebCore::Page::goToItem):
15962
159632007-07-17  Geoffrey Garen  <ggaren@apple.com>
15964
15965        Build fix.
15966        
15967        * plugins/win/PluginViewWin.cpp: Pass false for lockHistory like we
15968        do elsewhere.
15969
159702007-07-17  Holger Hans Peter Freyther  <zecke@selfish.org>
15971
15972        Reviewed by Maciej.
15973
15974        Implement the callback responsible for handling HTTP headers. This
15975        callback gets called for every header.
15976        We will add these headers to our ResourceResponse and on the 'end-of-header'
15977        indicator we will update the ResourceResponse and dispatch it.
15978
15979        This patch adds various set methods to ResourceResponse. This improves
15980        the readability of the headerCallback and avoids storing a CURL handle inside
15981        the ResourceResponse which would be needed to implement ResourceResponse::doUpdateResourceResponse
15982
15983        Add a destructor for ResourceHandleManager which would free the resources and remove
15984        a unused variable.
15985
15986        * platform/network/ResourceHandleInternal.h:
15987        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
15988        * platform/network/ResourceResponse.cpp:
15989        (WebCore::ResourceResponse::setUrl):
15990        (WebCore::ResourceResponse::setMimeType):
15991        (WebCore::ResourceResponse::setExpectedContentLength):
15992        (WebCore::ResourceResponse::setTextEncodingName):
15993        (WebCore::ResourceResponse::setSuggestedFilename):
15994        * platform/network/ResourceResponse.h:
15995        * platform/network/curl/ResourceHandleCurl.cpp:
15996        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
15997        * platform/network/curl/ResourceHandleManager.cpp:
15998        (WebCore::ResourceHandleManager::~ResourceHandleManager):
15999        (WebCore::ResourceHandleManager::sharedInstance):
16000        (WebCore::headerCallback):
16001        * platform/network/curl/ResourceHandleManager.h:
16002
160032007-07-17  Sam Weinig  <sam@webkit.org>
16004
16005        Reviewed by Adam Roben.
16006
16007        Convert JS undefined to the empty string when calling alert, confirm, and prompt. 
16008
16009        Test: fast/dom/Window/alert-undefined.html
16010
16011        * page/DOMWindow.idl:
16012
160132007-07-17  Geoffrey Garen  <ggaren@apple.com>
16014
16015        Reviewed by Kevin McCulough.
16016
16017        Fixed failing layout test.
16018        
16019        Renamed "FrameLoadTypeInternal" to "FrameLoadTypeRedirectWithLockedHistory".
16020        This is almost certainly not a correct name for the original intent
16021        of this load type, but it's a correct name for its current behavior.
16022        
16023        (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
16024        When history is supposed to be locked, and no current history item
16025        exists, only add a new history item if you're the top-level frame.
16026        
16027        This rule, combined with the rule that setting iframe.src should not
16028        create a history item, is pretty hackish. On the other hand, it
16029        matches WinIE and doesn't cause any test regressions. So I'm OK with
16030        it as a short-term solution until the solution described in 
16031        <rdar://problem/5339292> can be implemented.
16032
160332007-07-17  Tristan O'Tierney  <tristan@apple.com>
16034
16035        Reviewed by Maciej Stachowiak.
16036
16037        <rdar://problem/5294691> Source of file is misrepresented if downloaded by typing in URL in Safari address bar
16038
16039        * loader/FrameLoaderClient.h:
16040        * loader/MainResourceLoader.cpp:        
16041        (WebCore::MainResourceLoader::continueAfterContentPolicy):
16042        Added an extra request parameter, initialRequest, to the download() method
16043        by passing up the resource handle's request.
16044        
16045        * platform/graphics/svg/SVGImageEmptyClients.h:
16046        (WebCore::SVGEmptyFrameLoaderClient::download):
16047        Added an extra parameter to the empty SVG download method.
16048        
160492007-07-17  Antti  <antti@apple.com>
16050
16051        Reviewed by home-bradee.
16052
16053        <rdar://problem/5336372>
16054        Icon database uses too much memory
16055        
16056        XRaying Safari startup memory consumption revealed that icon database is eating quite
16057        a bit of RAM if Icon.db is large (which it probably is if it has been in use for a while, 
16058        mine used for getting figures below was 2.6MB). 
16059        
16060        Note that the wins are less impressive with smaller Icon.db.
16061        
16062        This patch addresses three separate issues
16063        
16064        - SQLite fails to free the memory used by temporary tables. Icon database uses a temporary table
16065          on startup for pruning unused page urls. This wastes around 1MB. Addressed by rewriting
16066          pruning so it does not need a temporary table. The new method is also quite a bit faster speeding
16067          up Safari launch time by around 100ms
16068        - SQLite has it's own memory cache limited by default to 3MB. Icon database does not really need that much.
16069          Dropped the cache size to 300kB saving ~1MB on startup. 
16070          Smaller cache slows down startup by ~30ms (more than compensated by faster pruning above)
16071        - Don't populate m_pageURLToIconURLMap with all urls from database on startup, instead let it get populated
16072          when urls are accessed (user opens history menu for example). This shouldn't have any real performance impact 
16073          as the accesses are icon loads that need to hit the database anyway. This saves ~700kB.
16074          
16075        All in all with this Icon.db these changes reduce allocated memory by around 2.7MB on startup. Release build
16076        Safari RPRVT (empty start page) goes from 12.4MB to 10.4MB (TCMalloc pooling probably explaining why the win 
16077        looks bit smaller here).
16078
16079        * loader/icon/IconDatabase.cpp:
16080        (WebCore::IconDatabase::IconDatabase):
16081        (WebCore::IconDatabase::open):
16082        (WebCore::IconDatabase::deleteAllPreparedStatements):
16083        (WebCore::IconDatabase::retainIconForPageURL):
16084        (WebCore::IconDatabase::releaseIconForPageURL):
16085        (WebCore::IconDatabase::establishIconIDForIconURL):
16086        (WebCore::IconDatabase::pruneUnretainedIconsOnStartup):
16087        * loader/icon/IconDatabase.h:
16088
160892007-07-17  Darin Adler  <darin@apple.com>
16090
16091        Reviewed by Mitz.
16092
16093        - fix http://bugs.webkit.org/show_bug.cgi?id=14569
16094          Repro crash due to saved state not being cleared when select and textarea elements
16095          are adopted by another document
16096
16097        Test: fast/forms/saved-state-adoptNode-crash.html
16098
16099        * dom/Document.h:
16100        (WebCore::Document::registerFormElementWithState): Updated parameter type to be
16101        HTMLFormControlElementWithState.
16102        (WebCore::Document::unregisterFormElementWithState): Ditto.
16103        Also removed isFormElementRegistered function and changed the type of the
16104        m_formElementsWithState ListHashSet.
16105        * dom/Document.cpp: (WebCore::Document::formElementsState): Updated to use new type,
16106        for set contents and to use new saveState() function and only save state for elements
16107        that return true.
16108
16109        * html/HTMLGenericFormElement.h: Added HTMLFormControlElementWithState class,
16110        derived from HTMLGenericFormElement, and moved down all the behavior related to
16111        saving form control element state. Also removed the unnecessary default parameter
16112        to the HTMLGenericFormElement constructor.
16113        * html/HTMLGenericFormElement.cpp:
16114        (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState): Added.
16115        Calls registerFormElementWithState.
16116        (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState): Added.
16117        Calls unregisterFormElementWithState.
16118        (WebCore::HTMLFormControlElementWithState::willMoveToNewOwnerDocument): Added.
16119        Calls unregisterFormElementWithState.
16120        (WebCore::HTMLFormControlElementWithState::didMoveToNewOwnerDocument): Added.
16121        Calls registerFormElementWithState.
16122        (WebCore::HTMLFormControlElementWithState::closeRenderer): Moved to this class from
16123        the base class.
16124
16125        * html/HTMLInputElement.h: Updated the base class name and overrode saveState instead
16126        of stateValue.
16127        * html/HTMLInputElement.cpp: Updated the base class name.
16128        (WebCore::HTMLInputElement::init): Removed the call to registerFormElementWithState.
16129        (WebCore::HTMLInputElement::~HTMLInputElement): Removed the call to
16130        unregisterFormElementWithState. Also changed the code to only call the
16131        unregisterForDidRestoreFromCacheCallback function for type PASSWORD (consistency
16132        and efficiency).
16133        (WebCore::HTMLInputElement::setInputType): Removed calls to registerFormElementWithState
16134        and unregisterFormElementWithState; we now let the element stay registered and simply
16135        don't save or restore state for password fields.
16136        (WebCore::HTMLInputElement::saveState): Updated function name and signature to replace
16137        the old stateValue function. Returns false for password fields.
16138        (WebCore::HTMLInputElement::willMoveToNewOwnerDocument): Removed the call to
16139        unregisterFormElementWithState.
16140        (WebCore::HTMLInputElement::didMoveToNewOwnerDocument): Removed the call to
16141        registerFormElementWithState.
16142
16143        * html/HTMLSelectElement.h: Updated the base class name and overrode saveState instead
16144        of stateValue.
16145        * html/HTMLSelectElement.cpp: Updated the base class name.
16146        (WebCore::HTMLSelectElement::HTMLSelectElement): Removed the call to
16147        registerFormElementWithState.
16148        (WebCore::HTMLSelectElement::~HTMLSelectElement): Removed the call to
16149        unregisterFormElementWithState.
16150        (WebCore::HTMLSelectElement::saveState): Updated function name and signature to
16151        replace the old stateValue function.
16152        (WebCore::HTMLSelectElement::setLength): Updated to use document() instead of
16153        ownerDocument(); the latter is just a slower virtual-function way of doing the
16154        same thing in all cases except for Document and XPathNamespace.
16155
16156        * html/HTMLTextAreaElement.h: Update the base class name, overrode saveState instead
16157        of stateValue, and removed the now-unnecessary explicit destructor.
16158        * html/HTMLTextAreaElement.cpp: Updated the base class name.
16159        (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Removed the call to
16160        registerFormElementWithState.
16161        (WebCore::HTMLTextAreaElement::saveState): Updated function name and signature to replace
16162        the old stateValue function.
16163
161642007-07-17  Sam Weinig  <sam@webkit.org>
16165
16166        Reviewed by Darin.
16167
16168        - Make HTMLFrameOwnerElement::contentWindow() return a DOMWindow instead of a Frame
16169        - Remove the unnecessary hack in HTMLFrameElement.idl and HTMLIFrameElement.idl that
16170          converted from Frame to Window now that it is not necessary.
16171        - Remove now unused [NullCheck] extended attribute from CodeGeneratorJS.pm.
16172
16173        * bindings/scripts/CodeGeneratorJS.pm:
16174        * html/HTMLDocument.idl:
16175        * html/HTMLFrameElement.idl:
16176        * html/HTMLFrameOwnerElement.cpp:
16177        (WebCore::HTMLFrameOwnerElement::contentWindow):
16178        * html/HTMLFrameOwnerElement.h:
16179        * html/HTMLIFrameElement.idl:
16180
161812007-07-16  Sam Weinig  <sam@webkit.org>
16182
16183        Reviewed by Adam Roben.
16184
16185        Move self, opener, parent, top, window, and frames from kjs_window
16186        to DOMWindow and auto-generate the bindings for them.
16187
16188        * bindings/js/kjs_window.cpp:
16189        (KJS::Window::getValueProperty):
16190        * bindings/js/kjs_window.h:
16191        (KJS::Window::):
16192        * page/DOMWindow.cpp:
16193        (WebCore::DOMWindow::self):
16194        (WebCore::DOMWindow::opener):
16195        (WebCore::DOMWindow::parent):
16196        (WebCore::DOMWindow::top):
16197        * page/DOMWindow.h:
16198        (WebCore::DOMWindow::window):
16199        (WebCore::DOMWindow::frames):
16200        * page/DOMWindow.idl:
16201
162022007-07-16  Geoffrey Garen  <ggaren@apple.com>
16203
16204        Reviewed by Sam Weinig.
16205        
16206        Fixed <rdar://problem/5334483> REGRESSION: JavaScript-induced 
16207        window.open loads not added to back/forward list
16208        
16209        I did an audit of our history rules in loading and tried to establish
16210        some sane uniformity.
16211        
16212        The uniform rule is:
16213            - HTTP redirects and HTTP redirects simulated by <meta http-equiv>
16214            add a history item if and only if the redirect takes > 1 second.
16215            - Other navigations, including JavaScript navigations, always
16216            add a history item, except for location.replace navigations.
16217
16218        In the future, we'll want to refine the second case to be more like the
16219        first. I've filed <rdar://problem/5339292> about that.
16220
16221        * bindings/js/JSHTMLDocumentCustom.cpp:
16222        (WebCore::JSHTMLDocument::setLocation): Don't pass 'true' for 
16223        userGesture unconditionally. userGesture is used to determine popup 
16224        blocking, not history item creation.
16225
16226        * bindings/js/kjs_window.cpp: Pass 'false' for lockHistory in all loads
16227        except location.replace, which intends to lock history.
16228
16229        * loader/FrameLoader.cpp: Distinguish between lockHistory and 
16230        userGesture. The former determines whether a new history item gets
16231        created. The latter determines whether JavaScript can open popup
16232        windows. Start passing these variables in functions that used to
16233        swallow or conflate them.
16234        
16235        (WebCore::FrameLoader::requestFrame): Pass 'true' for lockHistory here
16236        because that's usually correct when setting the 'src' attribute of a
16237        child frame, and we want to avoid regressing <rdar://problem/4921797>.
16238
16239        (WebCore::FrameLoader::load): Use the lockHistory variable to determine
16240        whether to start a history-creating load. Using userGesture for this
16241        purpose is wrong, as explained above.
16242
16243        * loader/FrameLoader.h: Renamed one variant of scheduleRedirection to
16244        scheduleHTTPRedirection because the behavior there of measuring elapsed
16245        time is specific to the HTTP redirection case.
16246
16247        * page/ContextMenuController.cpp:
16248        (WebCore::ContextMenuController::contextMenuItemSelected): lockHistory
16249        can always be false here because this navigation is never the result of
16250        a redirection.
16251
162522007-07-16  Sam Weinig  <sam@webkit.org>
16253
16254        Reviewed by Adam and Maciej.
16255
16256        Move the frameElement attribute from kjs_window to DOMWindow and
16257        auto-generate the bindings for it. 
16258
16259        * bindings/js/kjs_window.cpp:
16260        (KJS::Window::getValueProperty):
16261        * bindings/js/kjs_window.h:
16262        (KJS::Window::):
16263        * bindings/scripts/CodeGeneratorJS.pm:
16264        * page/DOMWindow.cpp:
16265        (WebCore::DOMWindow::frameElement):
16266        (WebCore::DOMWindow::devicePixelRatio):
16267        * page/DOMWindow.h:
16268        * page/DOMWindow.idl:
16269
162702007-07-16  Sam Weinig  <sam@webkit.org>
16271
16272        Reviewed by Adam.
16273
16274        Move more functions from kjs_window to DOMWindow and auto-generate
16275        the bindings for them.
16276
16277        * bindings/js/kjs_window.cpp:
16278        (KJS::WindowFunc::callAsFunction):
16279        * bindings/js/kjs_window.h:
16280        (KJS::Window::):
16281        * page/DOMWindow.cpp:
16282        (WebCore::DOMWindow::print):
16283        (WebCore::DOMWindow::stop):
16284        (WebCore::DOMWindow::alert):
16285        (WebCore::DOMWindow::confirm):
16286        (WebCore::DOMWindow::prompt):
16287        (WebCore::DOMWindow::find):
16288        * page/DOMWindow.h:
16289        * page/DOMWindow.idl:
16290
162912007-07-17  Mark Rowe  <mrowe@apple.com>
16292
16293        Gdk build fix.
16294
16295        * platform/gdk/ChromeClientGdk.h:
16296
162972007-07-16  Brady Eidson  <beidson@apple.com>
16298
16299        Reviewed by Adam
16300
16301        Begin the arduous task of localizing FTP directory listings while removing a global initializer!
16302
16303        * loader/FTPDirectoryDocument.cpp:
16304        (WebCore::processFilesizeString):
16305
16306        * page/mac/WebCoreViewFactory.h:
16307
16308        * platform/LocalizedStrings.h:
16309
16310        * platform/gdk/TemporaryLinkStubs.cpp:
16311        (WebCore::unknownFileSizeText):
16312
16313        * platform/mac/LocalizedStringsMac.mm:
16314        (WebCore::unknownFileSizeText):
16315
16316        * platform/qt/Localizations.cpp:
16317        (WebCore::unknownFileSizeText):
16318
163192007-07-16  Sam Weinig  <sam@webkit.org>
16320
16321        Reviewed by Oliver.
16322
16323        Remove more redundant isSafeScript checks.
16324
16325        * bindings/js/kjs_window.cpp:
16326        (KJS::Window::getOwnPropertySlot):
16327
163282007-07-16  Sam Weinig  <sam@webkit.org>
16329
16330        Reviewed by Oliver.
16331
16332        Turn off -Wshorten-64-to-32 warning for 64-bit builds.
16333
16334        * Configurations/Base.xcconfig:
16335
163362007-07-16  Anders Carlsson  <andersca@apple.com>
16337
16338        Reviewed by Oliver.
16339
16340        <rdar://problem/5336276>
16341        ASSERT(cs->accessCount() > 0) when instantiating widget templates in DashCode
16342
16343        If the cache is disabled, accessCount will always be 0. Account for this in the assert.
16344        
16345        * html/HTMLTokenizer.cpp:
16346        (WebCore::HTMLTokenizer::reset):
16347        (WebCore::HTMLTokenizer::notifyFinished):
16348
163492007-07-16  Brady Eidson  <beidson@apple.com>
16350
16351        Reviewed by Darin.
16352
16353        Append FTP row entries to the first TBODY instead of the TABLE element itself, 
16354        as many TABLE elements end up with an implicit TBODY and that's where most people would
16355        expect it to be added.
16356
16357        * html/HTMLTableElement.h:
16358        (WebCore::HTMLTableElement::firstTBody): Added this accessor
16359
16360        * loader/FTPDirectoryDocument.cpp:
16361        (WebCore::FTPDirectoryTokenizer::appendEntry): Add to the first tbody if it exists
16362
163632007-07-16  Justin Garcia  <justin.garcia@apple.com>
16364
16365        Reviewed by Adele.
16366
16367        <rdar://problem/5240265> 
16368        REGRESSION: Clicking a <button> clears the selection in contenteditable areas
16369
16370        * page/FocusController.cpp:
16371        (WebCore::clearSelectionIfNeeded): Don't clear the selection if
16372        the mouse press that caused the focus shift occurred in 
16373        a -webkit-user-select: ignore region.
16374
163752007-07-16  David Hyatt  <hyatt@apple.com>
16376
16377        Fix for 5335829, avoid creating a pathological # of FontData objects
16378        on Windows.  The MLang service actually caches and reuses HFONTs, which
16379        means it is safe to use our FontPlatformData -> FontData cache.
16380
16381        Reviewed by olliej
16382
16383        * platform/win/FontCacheWin.cpp:
16384        (WebCore::FontCache::getFontDataForCharacters):
16385
163862007-07-16  Adam Roben  <aroben@apple.com>
16387
16388        Added a manual test to test calling window.print on a subframe.
16389
16390        Reviewed by Darin.
16391
16392        * manual-tests/resources/print-subframe.html: Added.
16393        * manual-tests/window-print-subframe.html: Added.
16394
163952007-07-16  Adam Roben  <aroben@apple.com>
16396
16397        Replace Frame::print with Chrome::print
16398
16399        This also adds a Frame* parameter to Chrome::print and
16400        ChromeClient::print so that it knows which Frame to print.
16401
16402        Reviewed by Darin.
16403
16404        All tests pass.
16405
16406        * bindings/js/kjs_window.cpp:
16407        (KJS::WindowFunc::callAsFunction): Call Chrome::print.
16408        * editing/JSEditor.cpp: Ditto.
16409
16410        * bridge/win/FrameWin.cpp: Removed Frame::print.
16411        * page/Frame.h: Ditto.
16412        * page/mac/FrameMac.mm: Ditto.
16413        * page/qt/FrameQt.cpp: Ditto.
16414        * platform/gdk/FrameGdk.cpp: Ditto.
16415        * page/mac/WebCoreFrameBridge.h: Removed -print.
16416
16417        * page/Chrome.cpp: Added Frame* parameter to Chrome::print and pass it
16418        up to the ChromeClient.
16419        * page/Chrome.h: Ditto.
16420        * page/ChromeClient.h: Ditto.
16421        * platform/gdk/TemporaryLinkStubs.cpp: Ditto.
16422        * platform/graphics/svg/SVGImageEmptyClients.h: Ditto.
16423
164242007-07-16  Adele Peterson  <adele@apple.com>
16425
16426        Reviewed by Brady.
16427
16428        Fix for <rdar://problem/5321490> REGRESSION: visibility:hidden property doesn't hide parts of file input element and listbox
16429        http://bugs.webkit.org/show_bug.cgi?id=14565
16430
16431        Tests:
16432        fast/forms/hidden-input-file.html
16433        fast/forms/hidden-listbox.html
16434
16435        * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject):
16436        Only paint if the control is supposed to be visible.
16437        * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintObject):
16438        ditto.  We already had checks to prevent drawing the text that considered the option's style too, but if visibility: hidden
16439        was just set on the listbox then a lot of extra work was being done, and the scrollbar was drawing too.  This change fixes that.
16440
164412007-07-16  David Hyatt  <hyatt@apple.com>
16442
16443        Fix for Radar 5338081, text-shadow should be reset on form controls so that
16444        it doesn't inherit in when set e.g., on the <body>.
16445
16446        Reviewed by beth
16447
16448        * css/html4.css:
16449
164502007-07-16  Holger Hans Peter Freyther  <zecke@selfish.org>
16451
16452        Reviewed by Niko.
16453
16454        FrameView, PlatformScrollbar and changes to the way we draw
16455
16456        Fix the lifetime of PlatformScrollbar, use a default width and
16457        height and fix drawing of the PlatformScrollbar and other widgets
16458        the following way: FrameGdk handles the expose events of the Frame
16459        and will make the frame redraw and now it will draw the childrent of
16460        the FrameView as well. This approach has the issue of honoring the
16461        z-order of elements inside the RenderTree. Honoring the z-order will
16462        be a bit more work
16463
16464        Widget can now handle Widget::setGtkWidget call where the GtkWidget
16465        has not yet a GdkWindow allocated. We will lazily set the GdkDrawable.
16466
16467        In preparation of honoring the z-order of the RenderTree for RenderWidgets
16468        it is started to store native objects inside the GraphicsContext. Doing this
16469        nicely eliminates the need of RenderThemeGdk to do any drawing to a temporary
16470        GdkPixmap. This should fix themes with rounded buttons.
16471
16472        ScrollView implement add- and removeChild to get a working PlatformScrollbar
16473
16474
16475        * platform/Widget.h:
16476        * platform/gdk/FrameGdk.cpp:
16477        (frame_gdk_expose_child): Will send the expose to all children
16478        (WebCore::FrameGdk::handleGdkEvent): Painting changes, move to mouseMoved
16479        * platform/gdk/PlatformScreenGdk.cpp:
16480        (WebCore::screenDepth): gdkDrawable
16481        * platform/gdk/PlatformScrollBarGdk.cpp:
16482        (PlatformScrollbar::PlatformScrollbar): Fix ownership
16483        (PlatformScrollbar::~PlatformScrollbar): Fix ownership
16484        (PlatformScrollbar::paint): Widget::paint will do the right thing soon
16485        * platform/gdk/RenderThemeGdk.cpp: No need for using a GdkPixmap, draw directly
16486        (WebCore::RenderThemeGdk::paintCheckbox): No need for using a GdkPixmap, draw directly
16487        (WebCore::RenderThemeGdk::paintRadio): No need for using a GdkPixmap, draw directly
16488        (WebCore::RenderThemeGdk::paintButton): No need for using a GdkPixmap, draw directly
16489        * platform/gdk/RenderThemeGdk.h: remove the copyContext call
16490        * platform/gdk/ScrollViewGdk.cpp: gdkDrawable
16491        (WebCore::ScrollView::updateView): gdkDrawable
16492        (WebCore::ScrollView::update): clear the area to fix repainting issues
16493        (WebCore::ScrollView::setGtkWidget): gdkDrawable
16494        (WebCore::ScrollView::addChild): implement
16495        (WebCore::ScrollView::removeChild): implement
16496        * platform/gdk/TemporaryLinkStubs.cpp: Not needed header removed
16497        * platform/gdk/WidgetGdk.cpp:
16498        (WebCore::Widget::gdkDrawable): Renamed from drawable
16499        (WebCore::Widget::setGtkWidget): use gdkDrawable
16500        (WebCore::Widget::setCursor): gdkDrawable
16501        (WebCore::Widget::show): gdkDrawable
16502        (WebCore::Widget::hide): gdkDrawable
16503        * platform/graphics/GraphicsContext.h: Allow to set the GdkDrawable, e.g. used inside a expose event
16504        * platform/graphics/cairo/GraphicsContextCairo.cpp:
16505        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
16506        (WebCore::GraphicsContext::setGdkDrawable):
16507        (WebCore::GraphicsContext::gdkDrawable):
16508
165092007-07-16  Holger Hans Peter Freyther  <zecke@selfish.org>
16510
16511        Reviewed by Maciej.
16512
16513        Lazily update the scrollbars (e.g. on loading a page) to
16514        generate less expose events, which will lead to laying out less often
16515         and will fix http://bugs.webkit.org/show_bug.cgi?id=14020.
16516
16517        * platform/gdk/ScrollViewGdk.cpp:
16518        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
16519        (WebCore::ScrollView::update):
16520        (WebCore::ScrollView::resizeContents):
16521        (WebCore::ScrollView::updateScrollbars):
16522
165232007-07-16  Rob Buis  <buis@kde.org>
16524
16525        Reviewed by Maciej.
16526
16527        http://bugs.webkit.org/show_bug.cgi?id=14462
16528        non empty <style> element doesn't work
16529
16530        Return an empty sheet for empty <style> elements
16531        instead of a null sheet. Clean up StyleElement a bit.
16532
16533        * dom/StyleElement.cpp:
16534        (WebCore::StyleElement::StyleElement):
16535        (WebCore::StyleElement::sheet):
16536        (WebCore::StyleElement::childrenChanged):
16537        (WebCore::StyleElement::createSheet):
16538        * dom/StyleElement.h:
16539        (WebCore::StyleElement::setLoading):
16540        * html/HTMLStyleElement.cpp:
16541        (WebCore::HTMLStyleElement::HTMLStyleElement):
16542        (WebCore::HTMLStyleElement::sheet):
16543        * html/HTMLStyleElement.h:
16544        (WebCore::HTMLStyleElement::setLoading):
16545        * ksvg2/svg/SVGStyleElement.cpp:
16546        (WebCore::SVGStyleElement::sheet):
16547        (WebCore::SVGStyleElement::sheetLoaded):
16548        * ksvg2/svg/SVGStyleElement.h:
16549
165502007-07-15  Oliver Hunt  <oliver@apple.com>
16551
16552        Reviewed by Adam.
16553
16554        Fix for fix for <rdar://problem/5336602> REGRESSION: tab characters
16555                        cannot be entered into text fields
16556                        http://bugs.webkit.org/show_bug.cgi?id=14032
16557
16558        Need to use UChar not char.
16559
16560        * html/HTMLInputElement.cpp:
16561        (WebCore::HTMLInputElement::constrainValue):
16562
165632007-07-15  Sam Weinig  <sam@webkit.org>
16564
16565        Reviewed by Geoff Garen.
16566
16567        Remove redundant calls to isSafeScript()
16568
16569        * bindings/js/JSDOMWindowCustom.cpp:
16570        (WebCore::JSDOMWindow::customPut):
16571        * bindings/js/kjs_window.cpp:
16572        (KJS::Window::put):
16573
165742007-07-15  Geoffrey Garen  <ggaren@apple.com>
16575
16576        Reviewed by Maciej Stachowiak.
16577        
16578        Removed incorrect error log, seen while running layout tests.
16579        
16580        Perhaps at some point FrameLoadTypeInteral had a specific meaning
16581        that prevented it from being used in non-child frame, non-redirect
16582        situations. However, that meaning has been lost and nobody remembers
16583        how to get it back.
16584        
16585        We currently use FrameLoadTypeInternal for any load that is not
16586        initiated by a user gesture, so it's trivial to produce this error
16587        log, even though nothing has gone wrong.
16588
16589        * loader/FrameLoader.cpp:
16590        (WebCore::FrameLoader::updateHistoryForInternalLoad):
16591
165922007-07-15  Oliver Hunt  <oliver@apple.com>
16593
16594        Reviewed by Maciej
16595
16596        Fix for <rdar://problem/5336602> REGRESSION: tab characters cannot be entered into text fields
16597                http://bugs.webkit.org/show_bug.cgi?id=14032
16598
16599        constrainValue attempted to block control characters from being inserted 
16600        by a simple less than ' ' check, which prevent tab characters from being
16601        inserted.  This patch adds an additional check to allow the tab character 
16602        again
16603
16604        * html/HTMLInputElement.cpp:
16605        (WebCore::HTMLInputElement::constrainValue):
16606
166072007-07-14  Brady Eidson  <beidson@apple.com>
16608
16609        Third shot at blind Qt/GDK build fix
16610
16611        * platform/gdk/TemporaryLinkStubs.cpp:
16612        (FTPDirectoryDocument::createTokenizer):
16613        * platform/qt/TemporaryLinkStubs.cpp:
16614        (FTPDirectoryDocument::createTokenizer):
16615
166162007-07-14  Brady Eidson  <beidson@apple.com>
16617
16618        Reviewed by Sam
16619
16620        Windows build fix
16621
16622        * WebCore.vcproj/WebCore.vcproj:
16623
166242007-07-14  Sam Weinig  <sam@webkit.org>
16625
16626        Fix Tiger build.
16627
16628        * config.h:
16629
166302007-07-14  Brady Eidson  <beidson@apple.com>
16631
16632        Blind attempt at (hopefully) fixing the Qt and GDK builds
16633
16634        * platform/gdk/TemporaryLinkStubs.cpp:
16635        (FTPDirectoryDocument::FTPDirectoryDocument):
16636        * platform/qt/TemporaryLinkStubs.cpp:
16637        (FTPDirectoryDocument::FTPDirectoryDocument):
16638
166392007-07-14  Brady Eidson  <beidson@apple.com>
16640
16641        Reviewed by Sam Weinig
16642
16643        Initial check-in for <rdar://problem/3154486> - Supporting FTP directory listings in the browser
16644
16645        Development has taken place on both Leopard and Windows (windows enabling patch will follow shortly)
16646        Support will only exist on platforms whose network layers (ie, ResourceHandle) support piping the raw
16647        FTP Directory data into the engine.  
16648
16649        This is known to include Leopard, Windows, and CURL based platforms - probably others
16650        Known incompatible platforms include Tiger.
16651
16652        The FTP listing page is built in HTML.  An external HTML document can be provided as a template for the 
16653        directory listing.  This document is parsed, and expected to have a <table> with a certain class in it.
16654        As FTP directory listings come in, each entry is added to this table as a row.
16655
16656        If no HTML template is provided to work with, a very basic empty document is hard coded that contains only 
16657        this special table.
16658
16659        Upgrades to the look and feel of the directory listings can take place largely in this HTML template which,
16660        admittedly, is conspicuously absent in this initial checkin
16661
16662        * WebCore.exp: New Settings symbols for WebKit
16663        * WebCore.xcodeproj/project.pbxproj:
16664
16665        * config.h: If BUILDING_ON_TIGER, disable FTP directory listing support
16666
16667        * dom/DOMImplementation.cpp:
16668        (WebCore::DOMImplementation::createDocument): Create an FTPDirectoryDocument if the mime type is 
16669          "application/x-ftp-directory"
16670
16671        * loader/FTPDirectoryDocument.cpp: Added.
16672        (WebCore::FTPDirectoryTokenizer::isWaitingForScripts):
16673        (WebCore::FTPDirectoryTokenizer::checkBuffer):
16674        (WebCore::FTPDirectoryTokenizer::FTPDirectoryTokenizer): Building on HTML tokenizer, this facilitates 
16675          parsing FTP Directory listings in the engine
16676        (WebCore::FTPDirectoryTokenizer::appendEntry): Add a table row for a directory listing to the document
16677        (WebCore::FTPDirectoryTokenizer::createTDForFilename): Create the TD for the filename with the anchor in it
16678
16679        (WebCore::processFilesizeString): Prettify the filesize
16680        (WebCore::wasLastDayOfMonth):
16681        (WebCore::processFileDateString): Prettify the date
16682        (WebCore::FTPDirectoryTokenizer::parseAndAppendOneLine):
16683        (WebCore::FTPDirectoryTokenizer::loadDocumentTemplate): Loads the HTML template that FTP directory listings
16684          can build on top of
16685        (WebCore::FTPDirectoryTokenizer::createBasicDocument): Creates a most basic document (body and one table) to
16686          append the rows to in case the document template is not loaded and parsed
16687        (WebCore::FTPDirectoryTokenizer::write): Add the FTP listing to the buffer and parse entries out of it
16688        (WebCore::FTPDirectoryTokenizer::finish): 
16689
16690        (WebCore::FTPDirectoryDocument::FTPDirectoryDocument): Special document-type for FTP directory listings
16691        (WebCore::FTPDirectoryDocument::createTokenizer):
16692        * loader/FTPDirectoryDocument.h: Added.
16693        (WebCore::FTPDirectoryDocument::isImageDocument):
16694        
16695        * loader/FTPDirectoryParser.cpp: Added.
16696        (WebCore::parseOneFTPLine): Adapted from ParseFTPList.cpp from Firefox - parses most known
16697          FTP directory listing styles into discrete FTP directory entries
16698        * loader/FTPDirectoryParser.h: Added.
16699        (WebCore::ListState::ListState): Maintains FTP Parser state
16700        (WebCore::ListResult::ListResult): Represents one FTP directory listing
16701        (WebCore::ListResult::clear):
16702
16703        * loader/FrameLoader.cpp:
16704        (WebCore::FrameLoader::checkContentPolicy): If the Settings say to bypass the policy check for 
16705          "application/x-ftp-directory", skip it.  This will allow people to test this feature even if their 
16706          browser/WebKit app would otherwise not allow it
16707
16708        * page/Settings.cpp:
16709        (WebCore::Settings::Settings):
16710        (WebCore::Settings::setFTPDirectoryTemplatePath): Set the path to the FTP listing document template
16711        (WebCore::Settings::setForceFTPDirectoryListings): Set to bypass the policy delegate check for mime type
16712          "application/x-ftp-directory"
16713        * page/Settings.h:
16714        (WebCore::Settings::ftpDirectoryTemplatePath):
16715        (WebCore::Settings::forceFTPDirectoryListings):
16716
16717        * platform/Logging.cpp: Add an "LogFTP" logging channel
16718        * platform/Logging.h:
16719        * platform/mac/LoggingMac.mm:
16720        (WebCore::InitializeLoggingChannelsIfNecessary):
16721
16722        * platform/MimeTypeRegistry.cpp:
16723        (WebCore::initialiseSupportedNonImageMimeTypes): Add "application/x-ftp-directory"
16724
16725        * platform/SharedBuffer.cpp:
16726        (WebCore::SharedBuffer::createWithContentsOfFile): Stub for now
16727        * platform/SharedBuffer.h:
16728
16729        * platform/mac/SharedBufferMac.mm:
16730        (WebCore::SharedBuffer::createWithContentsOfFile): Load contents of the file into an NSData, then
16731          wrap that NSData
16732
167332007-07-14  Alexey Proskuryakov  <ap@webkit.org>
16734
16735        Reviewed by Darin.
16736
16737        http://bugs.webkit.org/show_bug.cgi?id=14618
16738        REGRESSION(13464): drivehq.com login form doesn't work
16739
16740        Test: http/tests/misc/post-submit-button.html
16741
16742        * html/HTMLInputElement.cpp:
16743        (WebCore::HTMLInputElement::appendFormData): Append a submit even if its value is empty.
16744
167452007-07-13  Oliver Hunt  <oliver@apple.com>
16746
16747        Reviewed by Sam.
16748
16749        Fix for 
16750            <rdar://problem/5335265> REGRESSION: WebCore::DragController crashes if WebDragSourceActionDHTML cleared
16751            http://bugs.webkit.org/show_bug.cgi?id=13652
16752
16753        Reorder logic for drag initiation: we can always preflight the clipboard, regardless as to whether 
16754        we are performing any dhtml drag handling    
16755
16756        * page/EventHandler.cpp:
16757        (WebCore::EventHandler::handleDrag):
16758
167592007-07-13  Matt Lilek  <pewtermoose@gmail.com>
16760
16761        Reviewed by Tim Hatcher.
16762
16763        Bug 14401: Semi-regression: Can no longer copy anything from the inspector
16764        http://bugs.webkit.org/show_bug.cgi?id=14401
16765
16766        * page/inspector/inspector.css:
16767
167682007-07-13  Beth Dakin  <bdakin@apple.com>
16769
16770        Reviewed by Hyatt.
16771
16772        Fix for <rdar://problem/5304742> A hang occurs when attempting to 
16773        display web clip banner at http://www.signonsandiego.com/sports/
16774        chargers/index.html
16775
16776        Here is the actual fix. 
16777        * rendering/RenderInline.cpp:
16778        (WebCore::RenderInline::absoluteRects): Set topLevel to 
16779        false when we recurse to get our children's absoluteRects.
16780        * rendering/RenderInline.h: New boolean parameter 
16781        topLevel that defaults to true.
16782        * rendering/RenderObject.cpp:
16783        (WebCore::RenderObject::absoluteRects):
16784        * rendering/RenderObject.h:
16785
16786        And these are just other implementations/declarations of this 
16787        (virtual) function that have to add the parameter. No behavior 
16788        change here.
16789        * rendering/RenderPath.cpp:
16790        (WebCore::RenderPath::absoluteRects):
16791        * rendering/RenderPath.h:
16792        * rendering/RenderSVGContainer.cpp:
16793        (WebCore::RenderSVGContainer::absoluteRects):
16794        * rendering/RenderSVGContainer.h:
16795        * rendering/RenderSVGHiddenContainer.cpp:
16796        (WebCore::RenderSVGHiddenContainer::absoluteRects):
16797        * rendering/RenderSVGHiddenContainer.h:
16798        * rendering/RenderSVGImage.cpp:
16799        (WebCore::RenderSVGImage::absoluteRects):
16800        * rendering/RenderSVGImage.h:
16801        * rendering/RenderSVGInlineText.cpp:
16802        (WebCore::RenderSVGInlineText::absoluteRects):
16803        * rendering/RenderSVGInlineText.h:
16804        * rendering/RenderSVGTSpan.cpp:
16805        (WebCore::RenderSVGTSpan::absoluteRects):
16806        * rendering/RenderSVGTSpan.h:
16807        * rendering/RenderSVGText.cpp:
16808        (WebCore::RenderSVGText::absoluteRects):
16809        * rendering/RenderSVGText.h:
16810        * rendering/RenderText.cpp:
16811        (WebCore::RenderText::absoluteRects):
16812        * rendering/RenderText.h:
16813        * rendering/RenderView.cpp:
16814        (WebCore::RenderView::absoluteRects):
16815        * rendering/RenderView.h:
16816
168172007-07-13  Mitz Pettel  <mitz@webkit.org>
16818
16819        Reviewed by Hyatt.
16820
16821        - fix http://bugs.webkit.org/show_bug.cgi?id=13438 <rdar://problem/5153030>
16822              Run rounding makes word-break:break-all/word not functional
16823
16824        Test: fast/text/word-break-run-rounding.html
16825
16826        * rendering/RenderText.cpp:
16827        (WebCore::RenderText::calcPrefWidths): Update the maximum width only on word
16828        boundaries to avoid rounding errors.
16829        * rendering/bidi.cpp:
16830        (WebCore::RenderBlock::findNextLineBreak): Integrated breakAll with the
16831        midWordBreak/wrapW mechanism. Also made the wrapW upper bound more accurate
16832        by resetting it when tmpW is committed.
16833
168342007-07-13  Sam Weinig  <sam@webkit.org>
16835
16836        Reviewed by Geoff Garen.
16837
16838        Patch for <rdar://problem/5318394>
16839        http site can read/write content of https site in same domain
16840
16841        Add protocol and port checks in isSafeScript.
16842
16843        * bindings/js/kjs_window.cpp:
16844        (KJS::Window::isSafeScript):
16845
168462007-07-13  Anders Carlsson  <andersca@apple.com>
16847
16848        Reviewed by Mitz Pettel.
16849
16850        <rdar://problem/5298870> 
16851        REGRESSION: In Yahoo Mail modal dialog, OK and Cancel buttons do not work, and descriptive text is missing (14327)
16852        
16853        http://bugs.webkit.org/show_bug.cgi?id=14327
16854        REGRESSION (r21367): dialogArguments not set in window generated by showModalDialog
16855
16856        When creating popup windows/dialogs, prevent the window properties from being cleared by the initial frame load.
16857        
16858        * loader/FrameLoader.cpp:
16859        (WebCore::FrameLoader::FrameLoader):
16860        (WebCore::FrameLoader::createWindow):
16861        (WebCore::FrameLoader::clear):
16862        (WebCore::FrameLoader::begin):
16863        (WebCore::FrameLoader::open):
16864        * loader/FrameLoader.h:
16865        (WebCore::FrameLoader::setShouldClearWindowProperties):
16866        * manual-tests/modal-dialog-arguments.html: Added.
16867
168682007-07-13  Steve Falkenburg  <sfalken@apple.com>
16869
16870        Update ResourceError related code to account for changes in CF interfaces.
16871
16872        Reviewed by Darin, Ada.
16873
16874        * platform/network/ResourceError.h: Change Mac conditionals to CF to share more code.
16875        * platform/network/cf/ResourceErrorCF.cpp:
16876        (WebCore::ResourceError::ResourceError): Modified based on CFErrorRef changes
16877        (WebCore::ResourceError::unpackPlatformError): Ported from ResourceErrorMac.mm.
16878        (WebCore::ResourceError::operator CFErrorRef): Ported from ResourceErrorMac.mm.
16879        (WebCore::ResourceError::operator CFStreamError): Modified based on CFErrorRef changes.
16880
168812007-07-13  Antti Koivisto  <antti@apple.com>
16882
16883        Reviewed by Adele.
16884        
16885        Fix <rdar://problem/5192256>
16886        click() in onchange handler causes another change event (causes hang at http://forums.whirlpool.net.au/)
16887        
16888        Guard against generating a simulated event from within a simulated event in the same node. Try to
16889        match Firefox behavior.
16890
16891        * dom/EventTargetNode.cpp:
16892        (WebCore::EventTargetNode::dispatchSimulatedMouseEvent):
16893        (WebCore::EventTargetNode::dispatchSimulatedClick):
16894        * dom/Node.cpp:
16895        (WebCore::Node::Node):
16896        * dom/Node.h:
16897
168982007-07-13  Antti Koivisto  <antti@apple.com>
16899
16900        Reviewed by Darin.
16901        
16902        Fix <rdar://problem/5333387>
16903        Combination of selection and click() on checkbox crashes
16904        
16905        Ensure there is no pending style update before doing synchronous paint. Under certain
16906        circumstances this ends up doing style recalc in middle of paint() which may
16907        for example tear down the rendering tree being painted, with bad results.
16908
16909        * dom/ContainerNode.cpp:
16910        (WebCore::ContainerNode::setActive):
16911
169122007-07-13  Antti Koivisto  <antti@apple.com>
16913
16914        Reviewed by Adele.
16915        
16916        Fix <rdar://problem/5333365>
16917        Calling click() is very slow
16918        
16919        There is a 100ms delay in ContainerNode::setActive() to do an activation effect. It is used for
16920        simulated mouse activations (using keyboard for example). However, it shouldn't be done when calling from javascript 
16921        (through click() interface) since it hangs script execution.
16922
16923        * html/HTMLElement.cpp:
16924        (WebCore::HTMLElement::click):
16925
169262007-07-13  Mitz Pettel  <mitz@webkit.org>
16927
16928        Reviewed by Dave Hyatt.
16929
16930        - fix http://bugs.webkit.org/show_bug.cgi?id=13873
16931          Incomplete repaint of replaced element's box shadow
16932
16933        Tests: fast/repaint/box-shadow-h.html
16934               fast/repaint/box-shadow-v.html
16935
16936        * rendering/RenderHTMLCanvas.cpp:
16937        (WebCore::RenderHTMLCanvas::layout): Added a call to adjustOverflowForBoxShadow().
16938        * rendering/RenderImage.cpp:
16939        (WebCore::RenderImage::layout): Ditto.
16940        * rendering/RenderPartObject.cpp:
16941        (WebCore::RenderPartObject::layout): Ditto.
16942        * rendering/RenderReplaced.cpp:
16943        (WebCore::RenderReplaced::RenderReplaced): Initialize m_hasOverflow.
16944        (WebCore::RenderReplaced::~RenderReplaced): Added. Removes this object from the
16945        overflow rect map if it has overflow.
16946        (WebCore::RenderReplaced::shouldPaint): Account for overflow.
16947        (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Added. Creates or
16948        removes an entry for this object in the global overflow rect map.
16949        (WebCore::RenderReplaced::overflowHeight): Added.
16950        (WebCore::RenderReplaced::overflowWidth): Added.
16951        (WebCore::RenderReplaced::overflowLeft): Added.
16952        (WebCore::RenderReplaced::overflowTop): Added.
16953        (WebCore::RenderReplaced::overflowRect): Added.
16954        * rendering/RenderReplaced.h:
16955
169562007-07-13  Mitz Pettel  <mitz@webkit.org>
16957
16958        Reviewed by Dave Hyatt.
16959
16960        - fix http://bugs.webkit.org/show_bug.cgi?id=14395
16961          When a <p> is inside <li> two <BR>s are rendered
16962
16963        Test: fast/lists/marker-before-empty-inline.html
16964
16965        * rendering/RenderBlock.h:
16966        * rendering/RenderListItem.cpp:
16967        (WebCore::getParentOfFirstLineBox): Changed to skip empty inline flows that
16968        do not actually generate any line boxes. Limited the nested lists quirk to
16969        the case where the list is a child of the list item, to match Firefox.
16970        * rendering/bidi.cpp:
16971        (WebCore::requiresLineBox): Added. Factored out of skipWhitespace.
16972        (WebCore::RenderBlock::generatesLineBoxesForInlineChild): Added. Checkes
16973        whether the child or any of its siblings following it will generate a line
16974        box in the flow.
16975        (WebCore::RenderBlock::skipWhitespace):
16976
169772007-07-13  Holger Hans Peter Freyther  <zecke@selfish.org>
16978
16979        Reviewed by Alexey.
16980
16981        Move HTTP methods to parse Content-Type from xmlhttprequest.cpp
16982        which is LGPL to HTTPParsers.cpp. As both files were written by the
16983        same author and the advice to move them came from him I think this move
16984        is what is meant to be done.
16985
16986        Move filenameFromHTTPContentDisposition to HTTPParsers as well. This parse
16987        function uses Vector<String>::split and doesn't honor quoting. This needs
16988        to be fixed in later versions.
16989
16990        http://bugs.webkit.org/show_bug.cgi?id=5954 and http://bugs.webkit.org/show_bug.cgi?id=14059
16991        benefit from this change.
16992
16993        * platform/network/HTTPParsers.cpp:
16994        (WebCore::filenameFromHTTPContentDisposition):
16995        (WebCore::extractMIMETypeFromMediaType):
16996        (WebCore::extractCharsetFromMediaType):
16997        * platform/network/HTTPParsers.h:
16998        * platform/network/cf/ResourceResponseCFNet.cpp:
16999        * xml/xmlhttprequest.cpp:
17000        (WebCore::XMLHttpRequest::responseMIMEType):
17001        (WebCore::XMLHttpRequest::didReceiveResponse):
17002
170032007-07-13  Mark Rowe  <mrowe@apple.com>
17004
17005        Reviewed by Mitz.
17006
17007        Build fix.  Stub out ChromeClientGdk::print and SVGEmptyChromeClient::print.
17008
17009        * platform/gdk/ChromeClientGdk.h:
17010        * platform/gdk/TemporaryLinkStubs.cpp:
17011        (ChromeClientGdk::print):
17012        * platform/graphics/svg/SVGImageEmptyClients.h:
17013        (WebCore::SVGEmptyChromeClient::print):
17014
170152007-07-12  Alice Liu  <alice.liu@apple.com>
17016
17017        Reviewed by Maciej and Steve.
17018
17019        fixed <rdar://4982432> window.print() needs to be implemented
17020
17021        * bridge/win/FrameWin.cpp:
17022        (WebCore::Frame::print):
17023        * page/Chrome.cpp:
17024        (WebCore::Chrome::print):
17025        * page/Chrome.h:
17026        * page/ChromeClient.h:
17027        * platform/win/TemporaryLinkStubs.cpp:
17028
170292007-07-11  Justin Garcia  <justin.garcia@apple.com>
17030
17031        Reviewed by Harrison.
17032        
17033        <rdar://problem/5300379> Mail hung on option-delete
17034        
17035        We were starting backward iteration at [container, 0] and
17036        emitting for container over and over.
17037
17038        * editing/TextIterator.cpp:
17039        (WebCore::SimplifiedBackwardsTextIterator::advance): Don't 
17040        emit characters for a node if we're starting iteration at 
17041        [container, 0].  Don't emit characters for exiting containers
17042        if we've already done so.
17043
170442007-07-12  Kevin Decker  <kdecker@apple.com>
17045
17046        Reviewed by Mark Rowe.
17047
17048        <rdar://problem/5039463> find a good gray that works well for full frame plug-ins; consistent look for plugins
17049
17050        * loader/PluginDocument.cpp:
17051        (WebCore::PluginTokenizer::createDocumentStructure): Changed values to a darker gray, per request from the HI team.
17052
170532007-07-11  Sam Weinig  <sam@webkit.org>
17054
17055        Reviewed by Maciej.
17056
17057        Patch for <rdar://problem/5329841>
17058        Calling window.closed on a closed window causes Safari to crash
17059
17060        - Replaces the Frame member variable in KJS::Window for more appropriate DOMWindow
17061        - Adds additional new null checks as necessary
17062        - Removes bogus toBoolean method
17063        - Removes unused scheduleClose method
17064
17065        Test: fast/dom/Window/window-closed-crash.html
17066
17067        * bindings/js/JSCustomXPathNSResolver.cpp:
17068        (WebCore::JSCustomXPathNSResolver::create):
17069        * bindings/js/JSDOMWindowCustom.cpp:
17070        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
17071        (WebCore::JSDOMWindow::customPut):
17072        * bindings/js/JSXMLHttpRequest.cpp:
17073        (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
17074        * bindings/js/kjs_events.cpp:
17075        (WebCore::JSAbstractEventListener::handleEvent):
17076        (WebCore::JSLazyEventListener::parseCode):
17077        * bindings/js/kjs_window.cpp:
17078        (KJS::Window::Window):
17079        (KJS::Window::impl):
17080        (KJS::Window::interpreter):
17081        (KJS::Window::location):
17082        (KJS::Window::find):
17083        (KJS::allowPopUp):
17084        (KJS::createWindow):
17085        (KJS::canShowModalDialog):
17086        (KJS::canShowModalDialogNow):
17087        (KJS::showModalDialog):
17088        (KJS::Window::getValueProperty):
17089        (KJS::Window::childFrameGetter):
17090        (KJS::Window::indexGetter):
17091        (KJS::Window::namedItemGetter):
17092        (KJS::Window::getOwnPropertySlot):
17093        (KJS::Window::put):
17094        (KJS::Window::isSafeScript):
17095        (KJS::Window::setListener):
17096        (KJS::Window::getListener):
17097        (KJS::Window::clear):
17098        (KJS::WindowFunc::callAsFunction):
17099        (KJS::Window::updateLayout):
17100        (KJS::ScheduledAction::execute):
17101        (KJS::Window::disconnectFrame):
17102        (KJS::Location::put):
17103        (KJS::LocationFunc::callAsFunction):
17104        * bindings/js/kjs_window.h:
17105        * page/mac/WebCoreFrameBridge.mm:
17106        (updateRenderingForBindings):
17107
171082007-07-12  Mark Rowe  <mrowe@apple.com>
17109
17110        Reviewed by Ada.
17111
17112        <rdar://problem/5329877> REGRESSION: Document::setTransformSource leaks an xmlDocPtr if called more than once per document
17113
17114        * dom/Document.cpp:
17115        (WebCore::Document::setTransformSource): Free any existing m_transformSource before overwriting it, rather than simply leaking it.
17116        * dom/Document.h:
17117
171182007-07-12  Holger Hans Peter Freyther  <zecke@selfish.org>
17119
17120        Reviewed by Mark Rowe.
17121
17122        Fix compilation of the CURL backend after the removing of accessors from ResourceHandle in r24202
17123
17124        * platform/network/curl/ResourceHandleManager.cpp:
17125        (WebCore::ResourceHandleManager::setupPOST):
17126        (WebCore::ResourceHandleManager::startJob):
17127
171282007-07-12  Mark Rowe  <mrowe@apple.com>
17129
17130        Reviewed by Darin.
17131
17132        <rdar://problem/5327189> Logic error in DeprecatedString::to{,U}Int{,64} can lead to reading past end of buffer
17133
17134        The fix for reading past the end of the buffer is to verify we are not at the end of the string before checking
17135        for a leading '+' character.  Rather than fixing the logic error in four nearly-identical functions I chose to
17136        extract the common functionality into the toIntegralType helper function which the four functions call through to.
17137
17138        * platform/DeprecatedString.cpp:
17139        (WebCore::isCharacterAllowedInBase):
17140        (WebCore::toIntegralType):
17141        (WebCore::DeprecatedString::toInt):
17142        (WebCore::DeprecatedString::toInt64):
17143        (WebCore::DeprecatedString::toUInt):
17144        (WebCore::DeprecatedString::toUInt64):
17145
171462007-07-12  George Staikos  <staikos@kde.org>
17147
17148        Reviewed by Alexey.
17149
17150        Remove unused variables and fix rendering of comoboxes.
17151
17152        * platform/graphics/qt/ImageQt.cpp:
17153        (WebCore::BitmapImage::draw):
17154        * platform/qt/RenderThemeQt.cpp:
17155        (WebCore::RenderThemeQt::paintMenuList):
17156
171572007-07-11  Oliver Hunt  <oliver@apple.com>
17158
17159        Reviewed by Maciej
17160
17161        Fix for <rdar://problem/5329712> GMail crash when trying to compose new message
17162
17163        * platform/win/FontDataWin.cpp:
17164        (WebCore::FontData::containsCharacters):
17165
171662007-07-11  Alexey Proskuryakov  <ap@webkit.org>
17167
17168        Reviewed by Darin.
17169
17170        http://bugs.webkit.org/show_bug.cgi?id=14584
17171        XMLHttpRequest treats null login/password incorrectly
17172
17173        Test: http/tests/xmlhttprequest/null-auth.php
17174
17175        * xml/xmlhttprequest.cpp:
17176        (WebCore::XMLHttpRequest::open):
17177        * xml/xmlhttprequest.h:
17178        Split the open() method into three to distinguish between missing and null credentials.
17179
17180        * bindings/js/JSXMLHttpRequest.cpp:
17181        (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction): Call the appropriate open().
17182
171832007-07-11  Oliver Hunt  <oliver@apple.com>
17184
17185        Build fix for windows
17186
17187        * page/Frame.cpp:
17188        (WebCore::Frame::firstRectForRange):
17189
171902007-07-11  Oliver Hunt  <oliver@apple.com>
17191
17192        Reviewed by Maciej.
17193
17194        Fix <rdar://problem/5329481> Character range rect code for IME support needs to be crossplatform
17195
17196        Move -[WebCoreFrameBridge firstRectForDOMRange:] to Frame::firstRectForRange
17197
17198        * page/Frame.cpp:
17199        (WebCore::Frame::firstRectForRange):
17200        * page/Frame.h:
17201        * page/mac/WebCoreFrameBridge.mm:
17202        (-[WebCoreFrameBridge firstRectForDOMRange:]):
17203
172042007-07-11  Steve Falkenburg  <sfalken@apple.com>
17205
17206        Static analysis build fix.
17207        
17208        Only specify /analyze (PREfast) if it is available.
17209        Prevents entire project from rebuilding each time.        
17210
17211        Reviewed by Hyatt.
17212
17213        * WebCore.vcproj/WebCore.vcproj:
17214
172152007-07-11  George Staikos  <staikos@kde.org>
17216
17217        Reviewed by Olliej.
17218
17219        Make comboboxes update when the current item is changed.
17220
17221        * platform/qt/PopupMenuQt.cpp:
17222        (WebCore::PopupMenu::updateFromElement):
17223        * platform/qt/QWebPopup.cpp:
17224        (WebCore::QWebPopup::activeChanged):
17225
172262007-07-11  George Staikos  <staikos@kde.org>
17227
17228        Reviewed by Brady.
17229
17230        Add a destructor to cleanup the SQL handle.
17231
17232        * loader/icon/SQLDatabase.h:
17233        (WebCore::SQLDatabase::~SQLDatabase):
17234
172352007-07-11  Holger Hans Peter Freyther  <zecke@selfish.org>
17236
17237        Reviewed by Darin.
17238
17239        As of http://bugs.webkit.org/show_bug.cgi?id=14527 move the
17240        WebCore/ForwardingHeader/JavaScriptCore to JavaScriptCore
17241
17242        * ForwardingHeaders/JavaScriptCore: Removed.
17243        * ForwardingHeaders/JavaScriptCore/APICast.h: Removed.
17244        * ForwardingHeaders/JavaScriptCore/JSBase.h: Removed.
17245        * ForwardingHeaders/JavaScriptCore/JSContextRef.h: Removed.
17246        * ForwardingHeaders/JavaScriptCore/JSLock.h: Removed.
17247        * ForwardingHeaders/JavaScriptCore/JSObjectRef.h: Removed.
17248        * ForwardingHeaders/JavaScriptCore/JSStringRef.h: Removed.
17249        * ForwardingHeaders/JavaScriptCore/JSStringRefCF.h: Removed.
17250        * ForwardingHeaders/JavaScriptCore/JSValueRef.h: Removed.
17251        * ForwardingHeaders/JavaScriptCore/JavaScriptCore.h: Removed.
17252
172532007-07-11  Anders Carlsson  <andersca@apple.com>
17254
17255        Fix build.
17256        
17257        * platform/network/cf/ResourceHandleCFNet.cpp:
17258        (WebCore::willSendRequest):
17259        (WebCore::didReceiveResponse):
17260        (WebCore::didReceiveData):
17261        (WebCore::didFinishLoading):
17262        (WebCore::didFail):
17263        (WebCore::didReceiveChallenge):
17264
172652007-07-11  George Staikos  <staikos@kde.org>
17266
17267        Repair the build.
17268
17269        * platform/network/qt/ResourceHandleQt.cpp:
17270        (WebCore::ResourceHandle::start):
17271
172722007-07-11  Adele Peterson  <adele@apple.com>
17273
17274        Reviewed by Darin.
17275
17276        Fix for <rdar://problem/5230188> REGRESSION: Active/inactive marked text is not distinguished in textfields and textareas
17277
17278        We were previously trying to leave room for 1px of space between the text and the underline.
17279        This change removes that requirement so that if we don't have room for the extra space, we still draw the thick underline
17280        touching the text.
17281
17282        * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextUnderline):
17283
172842007-07-11  Anders Carlsson  <andersca@apple.com>
17285
17286        Reviewed by Darin and Geoff.
17287
17288        <rdar://problem/5313508>
17289        REGRESSION (Leopard): http/tests/xmlhttprequest/basic-auth.html hangs
17290        
17291        Leopard Foundation now ignores credentials passed in as part of the URL so we need to pass them ourselves.
17292        
17293        For the asynchronous case, we simply keep track of the URL and if it has a user name and password, we
17294        pass those if we're asked to authenticate.
17295                
17296        For the synchronous case, implement a new connection delegate and run it in a separate mode so 
17297        no other sources will fire.
17298
17299        * platform/network/mac/ResourceHandleMac.mm:
17300        (WebCore::ResourceHandle::loadResourceSynchronously):
17301        (-[WebCoreResourceHandleAsDelegate dealloc]):
17302        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
17303        (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
17304        (-[WebCoreSynchronousLoader _isDone]):
17305        (-[WebCoreSynchronousLoader dealloc]):
17306        (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]):
17307        (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]):
17308        (-[WebCoreSynchronousLoader connection:didReceiveResponse:]):
17309        (-[WebCoreSynchronousLoader connection:didReceiveData:]):
17310        (-[WebCoreSynchronousLoader connectionDidFinishLoading:]):
17311        (-[WebCoreSynchronousLoader connection:didFailWithError:]):
17312        (-[WebCoreSynchronousLoader _data]):
17313        (-[WebCoreSynchronousLoader _response]):
17314        (-[WebCoreSynchronousLoader _error]):
17315        (+[WebCoreSynchronousLoader loadRequest:returningResponse:error:]):
17316
173172007-07-11  Darin Adler  <darin@apple.com>
17318
17319        Reviewed by Sam Weinig.
17320
17321        - fix <rdar://problem/5315265> REGRESSION: Leopard launch time -
17322          there are about 190 stats of icudt36b files during launch
17323
17324        * platform/TextEncodingRegistry.cpp: (WebCore::atomicCanonicalTextEncodingName):
17325        Add a special case for the empty string so we don't load the extended text
17326        encodings just so we can return 0 for that case.
17327
173282007-07-11  Anders Carlsson  <andersca@apple.com>
17329
17330        Reviewed by Darin.
17331
17332        Remove a bunch of unneeded accessors from ResourceHandle.
17333        
17334        * loader/icon/IconLoader.cpp:
17335        (WebCore::IconLoader::didReceiveResponse):
17336        (WebCore::IconLoader::didFail):
17337        (WebCore::IconLoader::didFinishLoading):
17338        * platform/network/ResourceHandle.cpp:
17339        * platform/network/ResourceHandle.h:
17340
173412007-07-09  Justin Garcia  <justin.garcia@apple.com>
17342
17343        Reviewed by Darin.
17344        
17345        <rdar://problem/5234383> REGRESSION: Sentence breaker method returning entire document length
17346        
17347        The functions for moving the caret to the next/previous sentence boundary
17348        were in many cases moving to the beginning/end of the document.  The functions that 
17349        should move the caret to an equivalent position in the next/previous sentence behaved
17350        like the aforementioned functions ought to.  Put the code from the second two functions
17351        in the first and made sure that the second two are properly FIXMEd.  They're rarely 
17352        used (filed 5323691).
17353        
17354        * editing/SelectionController.cpp:
17355        (WebCore::SelectionController::modify): Added an option for sentenceBoundary granularity,
17356        so that we can test the functions that were broken from JS.
17357        * editing/visible_units.cpp:
17358        (WebCore::startOfSentence): Removed the FIXME about 5234383.
17359        (WebCore::endSentenceBoundary): Make this function do what nextSentencePositionBoundary
17360        current does.
17361        (WebCore::endOfSentence): Removed the FIXME about 5234383.
17362        (WebCore::previousSentencePosition): Removed an incorrect FIXME.
17363        (WebCore::nextSentencePositionBoundary): Tweaked FIXME.  This function is
17364        identical, not close to endSentenceBoundary.
17365        (WebCore::nextSentencePosition): Removed an incorrect FIXME.
17366
173672007-07-11  Rob Buis  <buis@kde.org>
17368
17369        Reviewed by Darin.
17370
17371        http://bugs.webkit.org/show_bug.cgi?id=14453
17372        REGRESSION: www.nzherald.co.nz almost all the formating is gone
17373 
17374        Be less strict for the hex color definition.
17375
17376        * css/CSSGrammar.y:
17377        * css/cssparser.cpp:
17378        (WebCore::CSSParser::lex):
17379        (WebCore::CSSParser::text):
17380        * css/tokenizer.flex:
17381
173822007-07-11  Rob Buis  <buis@kde.org>
17383
17384        Reviewed by Oliver.
17385
17386        Forgot to commit this as part of commit r24146. Now we are sure
17387        createElement creates elements in the xhtml namespace only.
17388
17389        * ksvg2/svg/SVGDocument.cpp:
17390        * ksvg2/svg/SVGDocument.h:
17391
173922007-07-10  Sam Weinig  <sam@webkit.org>
17393
17394        Reviewed by Oliver.
17395
17396        Move more attributes from the pure JS bindings in KJS::Window
17397        to the implementation in DOMWindow and autogenerate the new bindings
17398
17399        Test: fast/dom/Window/get-set-properties.html
17400
17401        * bindings/js/JSDOMWindowCustom.cpp:
17402        (WebCore::JSDOMWindow::customGetOwnPropertySlot): Change to use propHashTable in
17403        JSDOMWindow instead of KJS::Window
17404        * bindings/js/kjs_window.cpp:
17405        (KJS::Window::getValueProperty):
17406        (KJS::Window::put):
17407        * bindings/js/kjs_window.h:
17408        (KJS::Window::):
17409        * bindings/scripts/CodeGeneratorJS.pm: Cleanup getValueProperty and put generation
17410        to reduce code duplication. 
17411        * page/DOMWindow.cpp:
17412        (WebCore::DOMWindow::closed):
17413        (WebCore::DOMWindow::length):
17414        (WebCore::DOMWindow::name):
17415        (WebCore::DOMWindow::setName):
17416        (WebCore::DOMWindow::status):
17417        (WebCore::DOMWindow::setStatus):
17418        (WebCore::DOMWindow::defaultStatus):
17419        (WebCore::DOMWindow::setDefaultStatus):
17420        * page/DOMWindow.h:
17421        (WebCore::DOMWindow::defaultstatus):
17422        (WebCore::DOMWindow::setDefaultstatus):
17423        * page/DOMWindow.idl:
17424
174252007-07-10  Sam Weinig  <sam@webkit.org>
17426
17427        Reviewed by Geoff.
17428
17429        Fix for <rdar://problem/5326791> XSS vulnerability: ability to set window.defaultStatus,
17430        window.defaultstatus and window.status cross domains
17431
17432        Test: http/tests/security/cross-frame-access-put.html
17433
17434        * bindings/js/kjs_window.cpp:
17435        (KJS::Window::put): Adds isSafeScript check for defaultStatus,
17436        defaultstatus and status cases.
17437
174382007-07-10  Sam Weinig  <sam@webkit.org>
17439
17440        Fix build for BuildBot.
17441
17442        * page/DOMWindow.cpp:
17443        (WebCore::DOMWindow::outerHeight):
17444        (WebCore::DOMWindow::outerWidth):
17445        (WebCore::DOMWindow::screenX):
17446        (WebCore::DOMWindow::screenY):
17447
174482007-07-10  Brady Eidson  <beidson@apple.com>
17449
17450        Reviewed by Sam
17451
17452        <rdar://problem/5326653> - REGRESSION: [WebBackForwardList forwardListCount] might return incorrect result
17453
17454        No layout test because this is an API issue that can't be tested in DRT or the browser
17455
17456        * history/BackForwardList.cpp:
17457        (WebCore::BackForwardList::forwardListCount): If the index is NoCurrentItemIndex, return 0
17458
174592007-07-10  Sam Weinig  <sam@webkit.org>
17460
17461        Reviewed by Darin.
17462
17463        Move more readonly attributes from pure JS bindings in KJS::Window
17464        to the implementation in DOMWindow and autogenerate the new bindings.
17465
17466        * bindings/js/kjs_window.cpp:
17467        (KJS::Window::getValueProperty):  Sort the hashmap comment into categories
17468        to make further migration easier.
17469        * bindings/js/kjs_window.h: Sort the enum into categories to make further
17470        migration easier.
17471        (KJS::Window::):
17472        * page/DOMWindow.cpp: Add new methods.
17473        (WebCore::DOMWindow::focus):
17474        (WebCore::DOMWindow::blur):
17475        (WebCore::DOMWindow::offscreenBuffering):
17476        (WebCore::DOMWindow::outerHeight):
17477        (WebCore::DOMWindow::outerWidth):
17478        (WebCore::DOMWindow::innerHeight):
17479        (WebCore::DOMWindow::innerWidth):
17480        (WebCore::DOMWindow::screenX):
17481        (WebCore::DOMWindow::screenY):
17482        (WebCore::DOMWindow::scrollX):
17483        (WebCore::DOMWindow::scrollY):
17484        (WebCore::DOMWindow::getComputedStyle):
17485        (WebCore::DOMWindow::getMatchedCSSRules): Add null Document assertion.
17486        (WebCore::DOMWindow::devicePixelRatio): Add null Frame and Page checks.
17487        * page/DOMWindow.h:
17488        (WebCore::DOMWindow::screenLeft):
17489        (WebCore::DOMWindow::screenTop):
17490        (WebCore::DOMWindow::pageXOffset):
17491        (WebCore::DOMWindow::pageYOffset):
17492        * page/DOMWindow.idl:
17493
174942007-07-10  Oliver Hunt  <oliver@apple.com>
17495
17496        Reviewed by Maciej.
17497
17498        Fix for <rdar://problem/5326417> Editor::unmarkText needs to be crossplatform
17499
17500        Missed this in earlier patch to make text marking platform independent.
17501
17502        * editing/Editor.cpp:
17503        (WebCore::Editor::unmarkText):
17504           Add platform independent impl
17505        * editing/mac/EditorMac.mm:
17506           Remove the old mac path.
17507
175082007-07-10  Geoffrey Garen  <ggaren@apple.com>
17509
17510        Reviewed by Tim Hatcher.
17511
17512        Added a Page counter. This helped me while investigating 
17513        <rdar://problem/5314463> 40MB of WebKit memory still allocated after 
17514        closing large email in Mail
17515
17516        * WebCore.xcodeproj/project.pbxproj:
17517        * page/Page.cpp:
17518        (WebCore::):
17519        (WebCore::PageCounter::~PageCounter):
17520        (WebCore::Page::Page):
17521        (WebCore::Page::~Page):
17522
175232007-07-10  Timothy Hatcher  <timothy@apple.com>
17524
17525        Reviewed by Geoff.
17526
17527        <rdar://problem/5326126> InspectorResource holds onto more data than it needs
17528
17529        Reduces the fixed size of InspectorResource from 630 bytes to 224 bytes. Now
17530        selectively pick out parts of the ResourceRequest and ResourceResponse objects
17531        for the info needed and store that directly in InspectorResource.
17532
17533        The ResourceRequest and ResourceResponse objects hold a reference to the original
17534        NSURL object, so almost double the data was being kept around. So the struct size
17535        reduction is just the tip of the ice burg on what this really saves.
17536
17537        In a test of 100,000 XMLHTTPRequests using a 85 byte long data URL, I see ~21 MB less
17538        RSIZE compared to Safari running without this change.
17539
17540        * page/InspectorController.cpp:
17541        (WebCore::InspectorResource::InspectorResource):
17542        (WebCore::InspectorResource::type):
17543        (WebCore::addSourceToFrame):
17544        (WebCore::scriptObjectForRequest):
17545        (WebCore::scriptObjectForResponse):
17546        (WebCore::InspectorController::addScriptResource):
17547        (WebCore::InspectorController::addAndUpdateScriptResource):
17548        (WebCore::updateResourceRequest):
17549        (WebCore::updateResourceResponse):
17550        (WebCore::InspectorController::updateScriptResourceRequest):
17551        (WebCore::InspectorController::updateScriptResourceResponse):
17552        (WebCore::InspectorController::didLoadResourceFromMemoryCache):
17553        (WebCore::InspectorController::identifierForInitialRequest):
17554        (WebCore::InspectorController::willSendRequest):
17555        (WebCore::InspectorController::didReceiveResponse):
17556        (WebCore::InspectorController::didFailLoading):
17557        * page/InspectorController.h:
17558
175592007-07-10  Darin Adler  <darin@apple.com>
17560
17561        Reviewed by Brady.
17562
17563        - fix crash introduced by my patch for 5318732, only seen in release builds
17564
17565        * page/Page.cpp: (WebCore::Page::~Page): Added a missing null check.
17566
175672007-07-10  Andrea Cavalli  <amc82@cam.ac.uk>
17568
17569        Reviewed by George Staikos.
17570
17571        Fixed render theme for text field.
17572
17573        * platform/qt/RenderThemeQt.cpp:
17574        (WebCore::RenderThemeQt::paintTextField):
17575
175762007-07-10  Qing Zhao  <qing@staikos.net>
17577
17578        Reviewed by George Staikos.
17579
17580        Draw focus rings for nodes that are not rendered by QStyle.
17581
17582        * platform/graphics/qt/GraphicsContextQt.cpp:
17583        (WebCore::focusRingColor):
17584        (WebCore::GraphicsContext::drawFocusRing):
17585        * platform/qt/RenderThemeQt.cpp:
17586        (WebCore::RenderThemeQt::supportsFocusRing):
17587        (WebCore::RenderThemeQt::supportsFocus):
17588
175892007-07-10  Nikolas Zimmermann  <zimmermann@kde.org>
17590
17591        Reviewed by Geoff.
17592
17593        Fix 'unsigned int' overflow in CodeGeneratorJS.pm.
17594        This fixes hashing of "SVG_FEBLEND_MODE_NORMAL". Its hashvalue exceeded 2^32, which
17595        is no problem in perl but in the cpp code. Emulate C/C++ behaviour by using "% 2^32" in
17596        the perl code. Testcase available in feature-branch soon (js-svg-constructors.svg).
17597
17598        * bindings/scripts/CodeGeneratorJS.pm:
17599
176002007-07-10  Geoffrey Garen  <ggaren@apple.com>
17601
17602        Reviewed by Maciej Stachowiak.
17603
17604        Disabled Arena recycling in RenderArena. PLT shows no regression 
17605        (possibly a small speedup), and this can reduce allocated memory in 
17606        WebKit clients by about 120K (4K per Arena * 30 Arenas).
17607        
17608        I happened upon this optimization while investigating 
17609        <rdar://problem/5314463> WebKit hangs on to 40MB RAM after closing 
17610        large email in Mail (appears to be render tree arena allocator), 
17611        although I don't think it will come close to fixing that bug 
17612        completely.
17613
17614        * rendering/RenderArena.cpp:
17615        (WebCore::RenderArena::~RenderArena): Use FinishArenaPool, which frees
17616        the ArenaPool's Arenas immediately.
17617
176182007-07-10  Mitz Pettel  <mitz@webkit.org>
17619
17620        Reviewed by Hyatt.
17621
17622        - fix http://bugs.webkit.org/show_bug.cgi?id=14449
17623          REGRESSION (r14345-r14375): Absolutely positioned image does not scale to containing element's height
17624
17625        Test: fast/replaced/absolute-position-percentage-height.html
17626
17627        * rendering/RenderBox.cpp:
17628        (WebCore::RenderBox::calcReplacedHeightUsing): For positioned elements, evaluate
17629        the percentage with respect to the container's final height.
17630
176312007-07-10  Brady Eidson  <beidson@apple.com>
17632
17633        Reviewed by Mark Rowe
17634
17635        Add 64-bit integer converters to our string classes for future work
17636
17637        * platform/DeprecatedString.cpp:
17638        (WebCore::DeprecatedString::toInt64):
17639        (WebCore::DeprecatedString::toUInt64):
17640        * platform/DeprecatedString.h:
17641
17642        * platform/PlatformString.h:
17643        * platform/String.cpp:
17644        (WebCore::String::toInt64):
17645        (WebCore::String::toUInt64):
17646
17647        * platform/StringImpl.cpp:
17648        (WebCore::StringImpl::toInt64):
17649        (WebCore::StringImpl::toUInt64):
17650        * platform/StringImpl.h:
17651
176522007-07-10  Darin Adler  <darin@apple.com>
17653
17654        Reviewed by Anders.
17655
17656        - fix <rdar://problem/5318732> REGRESSION: In Mail, a crash occurs when attempting to send
17657          a HTML based message (nytimes.com, washingtonpost.com, latimes.com)
17658
17659        Did an audit of calls to get the inspector and most other uses of Page* and added null
17660        checks since Frame* can outlast its Page*.
17661
17662        * loader/FrameLoader.cpp:
17663        (WebCore::FrameLoader::createWindow): Added null check.
17664        (WebCore::FrameLoader::loadSubframe): Ditto.
17665        (WebCore::FrameLoader::load): Ditto.
17666        (WebCore::FrameLoader::transitionToCommitted): Ditto.
17667        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ditto.
17668        (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Ditto.
17669        (WebCore::FrameLoader::addExtraFieldsToRequest): Ditto.
17670        (WebCore::FrameLoader::loadResourceSynchronously): Ditto.
17671        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Ditto.
17672        (WebCore::FrameLoader::requestFromDelegate): Ditto.
17673        (WebCore::FrameLoader::canGoBackOrForward): Ditto.
17674        (WebCore::FrameLoader::getHistoryLength): Ditto.
17675        (WebCore::FrameLoader::historyURL): Ditto.
17676        (WebCore::FrameLoader::cachePageForHistoryItem): Ditto.
17677        (WebCore::FrameLoader::addBackForwardItemClippedAtTarget): Ditto.
17678        (WebCore::FrameLoader::goToItem): Ditto.
17679        (WebCore::FrameLoader::dispatchWindowObjectAvailable): Ditto.
17680        (WebCore::FrameLoader::dispatchDidCommitLoad): Ditto.
17681        (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest): Ditto.
17682        (WebCore::FrameLoader::dispatchWillSendRequest): Ditto.
17683        (WebCore::FrameLoader::dispatchDidReceiveResponse): Ditto.
17684        (WebCore::FrameLoader::dispatchDidReceiveContentLength): Ditto.
17685        (WebCore::FrameLoader::dispatchDidFinishLoading): Ditto.
17686        (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Ditto.
17687
17688        * page/ContextMenuController.h:
17689        * page/ContextMenuController.cpp:
17690        (WebCore::ContextMenuController::ContextMenuController): Removed unneeded and
17691        unused Page* parameter.
17692        (WebCore::openNewWindow): Added null check.
17693        (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
17694
17695        * page/InspectorController.h:
17696        (WebCore::InspectorController::pageDestroyed): Added. Since this object is
17697        owned by the Page and has a back-pointer to it, it needs an explicit disconnect.
17698        There's already a higher-level one, but this is more reliable than that.
17699        * page/InspectorController.cpp:
17700        (WebCore::InspectorController::windowScriptObjectAvailable): Added null check.
17701        (WebCore::InspectorController::windowUnloading): Ditto.
17702
17703        * page/Page.cpp:
17704        (WebCore::Page::Page): Updated for change in parameters of ContextMenuController 
17705        constructor.
17706        (WebCore::Page::~Page): Added call to InspectorController pageDestroyed().
17707
17708        * page/Chrome.cpp: Updated includes.
17709        * page/DragController.cpp: Ditto.
17710
177112007-07-10  Adam Treat  <adam@staikos.net>
17712
17713        Reviewed by George Staikos.
17714
17715        Bring scroll wheel out of Ludicrous Speed.
17716
17717        * platform/qt/WheelEventQt.cpp:
17718        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
17719
177202007-07-09  Geoffrey Garen  <ggaren@apple.com>
17721
17722        Reviewed by Maciej Stachowiak.
17723
17724        Fixed http://bugs.webkit.org/show_bug.cgi?id=13241 | <rdar://problem/5126396>
17725        onload fires before content is finished loading (woot.com)
17726        
17727        * dom/Document.cpp:
17728        (WebCore::Document::close): Try to go through the normal "Am I done loading?"
17729        machinery before dispatching the load event. As the comment indicates, 
17730        we can't do this in all cases, so the fix isn't perfect. However, a perfect 
17731        solution would require much riskier sweeping changes to the loader, which 
17732        are best left for later, I think.
17733
17734        * xml/XSLTProcessor.cpp:
17735        (WebCore::XSLTProcessor::createDocumentFromSource): Removed a slightly
17736        worse solution to the same problem.
17737
177382007-07-10  Rob Buis  <buis@kde.org>
17739
17740        Reviewed by Maciej.
17741
17742        http://bugs.webkit.org/show_bug.cgi?id=8007
17743        createElement() and XHTML (A dynamically created table not rendered as such)
17744
17745        Follow the HTML5 rules of making the name lowercase and then
17746        creating the element in the xhtml namespace.
17747
17748        * dom/Document.cpp:
17749        (WebCore::Document::createElement):
17750        * dom/Document.h:
17751        * html/HTMLDocument.cpp:
17752        * html/HTMLDocument.h:
17753
177542007-07-09  Qing Zhao  <qing@staikos.net>
17755
17756        Reviewed by George Staikos.
17757
17758        Add qt context menu support.
17759
17760        * WebCore.pro:
17761        * platform/ContextMenu.h:
17762        * platform/ContextMenuItem.h:
17763        (WebCore::PlatformMenuItemDescriptionType::PlatformMenuItemDescriptionType):
17764        * platform/qt/ContextMenuItemQt.cpp:
17765        (WebCore::ContextMenuItem::ContextMenuItem):
17766        (WebCore::ContextMenuItem::~ContextMenuItem):
17767        (WebCore::ContextMenuItem::releasePlatformDescription):
17768        (WebCore::ContextMenuItem::type):
17769        (WebCore::ContextMenuItem::setType):
17770        (WebCore::ContextMenuItem::action):
17771        (WebCore::ContextMenuItem::setAction):
17772        (WebCore::ContextMenuItem::title):
17773        (WebCore::ContextMenuItem::setTitle):
17774        (WebCore::ContextMenuItem::platformSubMenu):
17775        (WebCore::ContextMenuItem::setSubMenu):
17776        (WebCore::ContextMenuItem::setChecked):
17777        (WebCore::ContextMenuItem::setEnabled):
17778        (WebCore::ContextMenuItem::enabled):
17779        * platform/qt/ContextMenuQt.cpp:
17780        (WebCore::ContextMenu::ContextMenu):
17781        (WebCore::ContextMenu::~ContextMenu):
17782        (WebCore::ContextMenu::appendItem):
17783        (WebCore::ContextMenu::itemCount):
17784        (WebCore::ContextMenu::insertItem):
17785        (WebCore::ContextMenu::setPlatformDescription):
17786        (WebCore::ContextMenu::platformDescription):
17787
177882007-07-09  Anders Carlsson  <andersca@apple.com>
17789
17790        Build fix.
17791        
17792        * plugins/win/PluginViewWin.cpp:
17793        (WebCore::PluginViewWin::performRequest):
17794
177952007-07-09  Anders Carlsson  <andersca@apple.com>
17796
17797        Reviewed by Geoff.
17798
17799        Get rid of the node argument in our various script execution functions.
17800        
17801        * bindings/js/kjs_proxy.cpp:
17802        (WebCore::KJSProxy::evaluate):
17803        * bindings/js/kjs_proxy.h:
17804        * bindings/js/kjs_window.cpp:
17805        (KJS::ScheduledAction::execute):
17806        * dom/XMLTokenizer.cpp:
17807        (WebCore::XMLTokenizer::endElementNs):
17808        (WebCore::XMLTokenizer::notifyFinished):
17809        * html/HTMLScriptElement.cpp:
17810        (WebCore::HTMLScriptElement::evaluateScript):
17811        * html/HTMLTokenizer.cpp:
17812        (WebCore::HTMLTokenizer::scriptExecution):
17813        * loader/FrameLoader.cpp:
17814        (WebCore::FrameLoader::changeLocation):
17815        (WebCore::FrameLoader::urlSelected):
17816        (WebCore::FrameLoader::submitForm):
17817        (WebCore::FrameLoader::replaceContentsWithScriptResult):
17818        (WebCore::FrameLoader::executeScript):
17819        * loader/FrameLoader.h:
17820        * page/mac/WebCoreFrameBridge.mm:
17821        (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
17822        (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]):
17823
178242007-07-09  Justin Garcia  <justin.garcia@apple.com>
17825
17826        Rolling the fix for 5290534 back in now that 5310404 has been fixed in Mail.
17827
17828        * editing/DeleteSelectionCommand.cpp:
17829        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
17830
178312007-07-09  Geoffrey Garen  <ggaren@apple.com>
17832
17833        Reviewed by Anders Carlsson.
17834
17835        A little more FrameLoader cleanup while working on <rdar://problem/5126396>.
17836        
17837        Rename: "checkEmitLoadEvent" => "checkCallImplicitClose" because the function
17838        doesn't emit the load event; it just calls implicitClose.
17839        
17840        Rename: "m_wasLoadEventEmitted" => "m_didCallImplicitClose" because the variable
17841        tracks whether implicitClose was called.
17842
17843        * dom/Document.cpp:
17844        (WebCore::Document::implicitClose): Turned 12 lines of code into 6, adding ASSERT.
17845        * loader/FrameLoader.h: Removed bogus declaration of non-existent emitLoadEvent().
17846
178472007-07-09  Justin Garcia  <justin.garcia@apple.com>
17848
17849        Reviewed by John.
17850        
17851        REGRESSION: Crash when deleting table content in Leopard Mail
17852
17853        * editing/DeleteSelectionCommand.cpp:
17854        (WebCore::DeleteSelectionCommand::handleGeneralDelete): Use a RefPtr
17855        for the next node to delete, in case it is destroyed when the
17856        current node is deleted.  In the crash reported in the radar, we
17857        crash because the next node is the div that holds the delete button
17858        and it's destroyed when the node that contains the selection is removed.
17859
178602007-07-09  Adam Treat  <adam@staikos.net>
17861
17862        Reviewed by George Staikos.
17863
17864        Convert QWebFrame from a QFrame to a pure QObject to eliminate all
17865        traces of widgets.
17866
17867        * page/qt/EventHandlerQt.cpp:
17868        (WebCore::EventHandler::passSubframeEventToSubframe):
17869        * platform/ScrollView.h:
17870        * platform/Widget.h:
17871        * platform/qt/PlatformScrollBarQt.cpp:
17872        (WebCore::PlatformScrollbar::handleMouseMoveEvent):
17873        (WebCore::PlatformScrollbar::handleMousePressEvent):
17874        (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
17875        * platform/qt/PopupMenuQt.cpp:
17876        (WebCore::PopupMenu::show):
17877        * platform/qt/ScrollViewQt.cpp:
17878        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
17879        (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
17880        (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
17881        (WebCore::ScrollView::updateContents):
17882        (WebCore::ScrollView::update):
17883        (WebCore::ScrollView::geometryChanged):
17884        (WebCore::ScrollView::windowToContents):
17885        (WebCore::ScrollView::contentsToWindow):
17886        (WebCore::ScrollView::convertChildToSelf):
17887        (WebCore::ScrollView::convertSelfToChild):
17888        (WebCore::ScrollView::scrollbarUnderMouse):
17889        (WebCore::ScrollView::addChild):
17890        (WebCore::ScrollView::paint):
17891        * platform/qt/WidgetQt.cpp:
17892        (WebCore::WidgetPrivate::WidgetPrivate):
17893        (WebCore::WidgetPrivate::~WidgetPrivate):
17894        (WebCore::WidgetPrivate::setGeometry):
17895        (WebCore::WidgetPrivate::geometry):
17896        (WebCore::Widget::frameGeometry):
17897        (WebCore::Widget::setFocus):
17898        (WebCore::Widget::setCursor):
17899        (WebCore::Widget::show):
17900        (WebCore::Widget::hide):
17901        (WebCore::Widget::qwebframe):
17902        (WebCore::Widget::setQWebFrame):
17903        (WebCore::Widget::qwidget):
17904        (WebCore::Widget::setQWidget):
17905        (WebCore::Widget::setFrameGeometry):
17906        (WebCore::Widget::isEnabled):
17907        (WebCore::Widget::setEnabled):
17908        (WebCore::Widget::setIsSelected):
17909        (WebCore::Widget::invalidate):
17910        (WebCore::Widget::invalidateRect):
17911        (WebCore::Widget::removeFromParent):
17912        (WebCore::Widget::geometryChanged):
17913        (WebCore::Widget::convertToContainingWindow):
17914        (WebCore::Widget::convertFromContainingWindow):
17915        (WebCore::Widget::convertChildToSelf):
17916        (WebCore::Widget::convertSelfToChild):
17917        (WebCore::Widget::containingWindow):
17918
179192007-07-09  Anders Carlsson  <andersca@apple.com>
17920
17921        Reviewed by Oliver.
17922
17923        Add DocumentLoader::isLoadingMainResource.
17924
17925        * WebCore.exp:
17926
179272007-07-09  John Sullivan  <sullivan@apple.com>
17928
17929        Reviewed by Darin
17930
17931        * WebCore.exp:
17932        * WebCore.xcodeproj/project.pbxproj:
17933        exported String::createCFString, needed for <rdar://problem/5320208>
17934
179352007-07-09  Mitz Pettel  <mitz@webkit.org>
17936
17937        Reviewed by Maciej.
17938
17939        Test case for the bug below, which is http://bugs.webkit.org/show_bug.cgi?id=14207
17940
17941        * manual-tests/flash-unload-tab.html: Added.
17942
179432007-07-09  Maciej Stachowiak  <mjs@apple.com>
17944
17945        Reviewed by Oliver.
17946
17947        <rdar://problem/5295734> Repro crash closing tab/window @ maps.google.com in
17948        WTF::HashSet<KJS::RuntimeObjectImp*, WTF::PtrHash<KJS::RuntimeObjectImp*>,
17949        WTF::HashTraits<KJS::RuntimeObjectImp*> >::add + 11
17950        
17951        Automated test case is not possible. Did not bother with manual test this time.
17952
17953        * bindings/js/kjs_dom.cpp:
17954        (WebCore::getRuntimeObject): Check that runtime root isn't null, as well as instance;
17955        this should cover the case where the plugin is already shut down and onunload time.
17956
179572007-07-08  Maciej Stachowiak  <mjs@apple.com>
17958
17959        Reviewed by Sam.
17960
17961        - fixed <rdar://problem/5220706> REGRESSION (TOT): repro crash in -[WebView(WebViewInternal) _addObject:forIdentifier:] [14425]
17962        http://bugs.webkit.org/show_bug.cgi?id=14425
17963
17964        * bindings/js/kjs_window.cpp:
17965        (KJS::createWindow): No longer take an immediate argument - always do immediate loads
17966        on a newly created Window. Also, do a load of "" to make sure that the right info makes
17967        it to the app.
17968        (KJS::showModalDialog): Updated for above.
17969        (KJS::WindowFunc::callAsFunction): Updated for above.
17970        * dom/Document.cpp:
17971        (WebCore::Document::shouldBeAllowedToLoadLocalResources): If our URL is about:blank,
17972        we're allowed if our opener is (since the opener must have written the contents).
17973        * loader/FrameLoader.cpp:
17974        (WebCore::FrameLoader::changeLocation): Add a variant which takes a KURL, which it
17975        expects to be pre-completed. This is to avoid completing "" to the opener URL.
17976        (WebCore::FrameLoader::urlSelected): Allow loading empty URLs.
17977        * loader/FrameLoader.h:
17978        
17979        Test case is manual only, since it takes particular app behavior to reproduce:
17980        
17981        * manual-tests/new-window-subresource-crash.html: Added.
17982
179832007-07-08  Mitz Pettel  <mitz@webkit.org>
17984
17985        Reviewed by Maciej.
17986
17987        - fix leaks introduced in r24099
17988
17989        * dom/Element.cpp:
17990        (WebCore::Element::~Element): Do not delete the cached computed style here.
17991        (WebCore::Element::detach): Delete the computed style here instead.
17992        (WebCore::Element::computedStyle): Removed a redundant ref() which was
17993        causing the leak. Changed to return 0 if the element is not attached,
17994        because in that case there is currently no way to tell when to delete the computed
17995        style.
17996
179972007-07-08  Mitz Pettel  <mitz@webkit.org>
17998
17999        Reviewed by Darin.
18000
18001        - fix http://bugs.webkit.org/show_bug.cgi?id=12384
18002          getComputedStyle with td.style.display='none' reports '' for all properties except display
18003
18004        Test: fast/css/computed-style-without-renderer.html
18005
18006        Implement rich computed style for elements that do not have a renderer.
18007
18008        * css/CSSComputedStyleDeclaration.cpp:
18009        (WebCore::getPositionOffsetValue): Changed to take a RenderStyle instead of
18010        a RenderObject.
18011        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed to
18012        use the computed style returned by the node instead of going through the
18013        renderer. Changed properties that compute by measuring the renderer to
18014        fall back on returning the length from the RenderStyle if a renderer does
18015        not exist.
18016        (WebCore::CSSComputedStyleDeclaration::length): Changed to return the number
18017        of properties we can compute even if the element has no renderer.
18018        (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties): Changed
18019        to use the computed style returned by the node instead of going through the
18020        renderer.
18021        * dom/Element.cpp:
18022        (WebCore::ElementRareData::ElementRareData): Added a computed style member,
18023        used to cache computed style for elements that do not have a renderer.
18024        (WebCore::ElementRareData::resetComputedStyle): Added.
18025        (WebCore::Element::~Element): Delete the cached computed style.
18026        (WebCore::Element::recalcStyle): Added code to delete the cached computed
18027        style when necessary.
18028        (WebCore::Element::computedStyle): Added. Returns the style used in rendering
18029        the element, if available. Otherwise uses the style selector to compute style
18030        for the element.
18031        * dom/Element.h:
18032        * dom/Node.cpp:
18033        (WebCore::Node::computedStyle): Added. This method returns either the style
18034        used in rendering the node, or the style that would be used if the node
18035        had a renderer.
18036        * dom/Node.h:
18037
180382007-07-08  Mitz Pettel  <mitz@webkit.org>
18039
18040        Reviewed by Darin.
18041
18042        - fix http://bugs.webkit.org/show_bug.cgi?id=14544
18043          Scroll wheel events are ignored when the cursor is over an iframe's border
18044
18045        * page/mac/EventHandlerMac.mm:
18046        (WebCore::EventHandler::passWheelEventToWidget): Changed to return false if
18047        the event coordinates are not inside the widget's NSView hierarchy.
18048
180492007-07-08  Rob Buis  <buis@kde.org>
18050
18051        Reviewed by Mitz.
18052
18053        http://bugs.webkit.org/show_bug.cgi?id=10752
18054        The inspector should not respond to Make Text Smaller/Bigger commands
18055
18056        Use the -webkit-text-size-adjust property to ignore text sizing        
18057        and do not take the zoom factor into account for line height when
18058        -webkit-text-size-adjust is set to none.
18059
18060        * css/cssstyleselector.cpp:
18061        (WebCore::CSSStyleSelector::applyProperty):
18062        * page/inspector/inspector.css:
18063
180642007-07-08  Darin Adler  <darin@apple.com>
18065
18066        Reviewed by Maciej.
18067
18068        - fix <rdar://problem/5318994> Integer overflow in WebCore's Base64.cpp:base64Encode
18069
18070        * platform/Base64.cpp:
18071        (WebCore::base64Encode): Check against a maximum size.
18072        (WebCore::base64Decode): Ditto.
18073
180742007-07-08  Darin Adler  <darin@apple.com>
18075
18076        Reviewed by Maciej.
18077
18078        - fix <rdar://problem/5124665> WebCore secondary-thread assertion should use linked-on-or-after check instead of building on Tiger check
18079
18080        * platform/ThreadCheck.h: Renamed _WebCoreThreadViolationCheck to reportThreadViolation
18081        since it's in the WebCore namespace and also we shouldn't use leading underscores since
18082        those are reserved for the compiler and standard library. Added a new function named
18083        setDefaultThreadViolationBehavior and an enum for the parameter. Removed the
18084        threadViolationIsException parameter from WebCoreReportThreadViolation since we use
18085        a global variable for it now. Got rid of the unnecessary use of do while (0) in the
18086        WebCoreThreadViolationCheck macro -- since it's only a single function call it's already
18087        a statement and doesn't need to be turned into one with the do while (0) trick.
18088
18089        * platform/mac/ThreadCheck.mm:
18090        (WebCore::readThreadViolationBehaviorFromUserDefaults): Moved the code to read from
18091        NSUserDefaults into this helper function. Changed it to use stringForKey instead of
18092        objectForKey so we don't get a "method not found" if someone puts something other than
18093        a string in there. Updated to use the new globals.
18094        (WebCore::setDefaultThreadViolationBehavior): Added.
18095        (WebCore::reportThreadViolation): Simplified, now that most of the work is in the
18096        readThreadViolationBehaviorFromUserDefaults function.
18097        (WebCoreReportThreadViolation): Changed to use a global variable instead of parameter
18098        to determine how to report a violation. Added LogOnFirstThreadViolation, which will
18099        log only once for each function that violates.
18100
18101        * WebCore.exp: Updated for above changes.
18102
181032007-07-08  Mitz Pettel  <mitz@webkit.org>
18104
18105        Reviewed by Darin.
18106
18107        - fix http://bugs.webkit.org/show_bug.cgi?id=14221
18108          Repro crash (ASSERTION FAILED: oldText in RenderBlock::updateFirstLetter() during relayout of :before content with first-letter style)
18109
18110        Test: fast/css-generated-content/before-with-first-letter.html
18111
18112        * rendering/RenderContainer.cpp:
18113        (WebCore::RenderContainer::updateBeforeAfterContentForContainer): If a child
18114        of the existing 'before' container is not text, do not assume that it is an
18115        image, since it can also be an inline wrapping a first-letter. In that case,
18116        do not update its style (so in particular, keep it a FIRST_LETTER type style)
18117        and leave it to updateFirstLetter() to take care of.
18118
181192007-07-07  Sam Weinig  <sam@webkit.org>
18120
18121        Reviewed by Oliver Hunt.
18122
18123        Bailout early in Window::put() if attribute is readonly to avoid
18124        extra calls to isSafeScript().
18125
18126        * bindings/js/kjs_window.cpp:
18127        (KJS::Window::put):
18128
181292007-07-07  Darin Adler  <darin@apple.com>
18130
18131        Reviewed by Oliver Hunt.
18132
18133        - fix <rdar://problem/5292364> REGRESSION: ZX Spectrum 3.0 widget - graphic anomalies in widget window frame
18134
18135        Updated Dashboard quirk so it affects fill, stroke, and clip, rather than just stroke.
18136
18137        Test: fast/canvas/fill-stroke-clip-reset-path.html
18138
18139        * html/CanvasRenderingContext2D.h: Added clearPathForDashboardBackwardCompatibilityMode.
18140        * html/CanvasRenderingContext2D.cpp:
18141        (WebCore::CanvasRenderingContext2D::clearPathForDashboardBackwardCompatibilityMode): Added.
18142        (WebCore::CanvasRenderingContext2D::fill): Call the new function.
18143        (WebCore::CanvasRenderingContext2D::stroke): Replaced in-line code with a call to the new function.
18144        (WebCore::CanvasRenderingContext2D::clip): Call the new function.
18145
181462007-07-07  Rob Buis  <buis@kde.org>
18147
18148        Reviewed and tweaked by Darin.
18149
18150        http://bugs.webkit.org/show_bug.cgi?id=8994
18151        Canvas doesn't reset on resize
18152
18153        Also reset the rendering context when resetting the canvas.
18154
18155        * html/HTMLCanvasElement.cpp:
18156        (WebCore::HTMLCanvasElement::reset):
18157        (WebCore::HTMLCanvasElement::drawingContext):
18158
181592007-07-07  Alexey Proskuryakov  <ap@webkit.org>
18160
18161        Reviewed by Maciej.
18162
18163        http://bugs.webkit.org/show_bug.cgi?id=14525
18164        Support exslt:node-set()
18165
18166        Test: fast/xsl/exslt-node-set.xml
18167
18168        * xml/XSLTExtensions.cpp: Added.
18169        (WebCore::exsltNodeSetFunction): A copy of exslt:node-set() implementation
18170        from libexslt 1.1.11 (shipped with Tiger).
18171        (WebCore::registerXSLTExtensions): This function registers any WebCore-provided
18172        extensions on a context. Currently, the only extension is exslt:node-set().
18173        * xml/XSLTExtensions.h: Added.
18174
18175        * xml/XSLTProcessor.cpp:
18176        (WebCore::XSLTProcessor::transformToString):
18177        Register extensions when creating a context.
18178
18179        * WebCore.pro:
18180        * WebCore.vcproj/WebCore.vcproj:
18181        * WebCore.xcodeproj/project.pbxproj:
18182        * WebCoreSources.bkl:
18183        Add XSLTExtensions.{h,cpp} to projects.
18184
181852007-07-06  Maciej Stachowiak  <mjs@apple.com>
18186
18187        Reviewed by Oliver.
18188
18189        - fixed <rdar://problem/5133420> ASSERT in WebDocumentLoaderMac::decreaseLoadCount() un-discarding Gmail message
18190        
18191        test case: fast/loader/early-load-cancel.html
18192
18193        * loader/ResourceLoader.cpp:
18194        (WebCore::ResourceLoader::didCancel): Don't send cancel-related client callbacks
18195        if we never even sent willSendRequest because we were deferred.
18196
181972007-07-06  Oliver Hunt  <oliver@apple.com>
18198
18199        Reviewed by Maciej.
18200
18201        Pulled a number of methods from WebKit and WebCoreFrameBridge into 
18202        C++ objects.
18203
18204        * WebCore.exp:
18205        * WebCore.xcodeproj/project.pbxproj:
18206        * editing/Editor.cpp:
18207        (WebCore::Editor::replaceMarkedText):
18208            From -[WebCoreFrameBridge replaceMarkedTextWithText:]
18209        * editing/Editor.h:
18210        * page/Frame.cpp:
18211        (WebCore::Frame::setMarkedTextRange):
18212            Pulled platform independent logic from Mac specific implementation
18213        (WebCore::Frame::selectRangeInMarkedText):
18214            Converted from -[WebHTMLView _selectRangeInMarkedText:]
18215        * page/Frame.h:
18216        * page/mac/FrameMac.mm:
18217        (WebCore::Frame::setMarkedTextRange):
18218            Now only does Mac specific logic when manipulating initial
18219            NSAttributedString
18220        * page/mac/WebCoreFrameBridge.h:
18221        * page/mac/WebCoreFrameBridge.mm:
18222            Removed -[WebCoreFrameBridge replaceMarkedTextWithText:]
18223
182242007-07-06  Mitz Pettel  <mitz@webkit.org>
18225
18226        Reviewed by Darin.
18227
18228        - fix http://bugs.webkit.org/show_bug.cgi?id=14545
18229          REGRESSION (r21854-r21869): Repro crash in RenderBlock::updateFirstLetter @ nola.com/rose/
18230
18231        Test: fast/css/first-letter-capitalized.html
18232
18233        * rendering/RenderBlock.cpp:
18234        (WebCore::RenderBlock::updateFirstLetter): Moved the call to setFirstLetter
18235        further down so that the first letter is not destroyed if a text transform
18236        is applied to the remaining text fragment when it is add to the render tree.
18237        * rendering/RenderText.cpp:
18238        (WebCore::RenderText::previousCharacter): Factored out of setTextInternal.
18239        (WebCore::RenderText::setTextInternal): Changed to call previousCharacter().
18240        * rendering/RenderText.h:
18241        * rendering/RenderTextFragment.cpp:
18242        (WebCore::RenderTextFragment::previousCharacter): Override to return the
18243        character in the original string before the start of the fragment. 
18244        * rendering/RenderTextFragment.h:
18245
182462007-07-06  Mitz Pettel  <mitz@webkit.org>
18247
18248        Reviewed by Beth.
18249
18250        - fix http://bugs.webkit.org/show_bug.cgi?id=14536
18251          Unnecessary layout done when mousing down in text field
18252
18253        No test possible because there is no change in functionality.
18254
18255        * rendering/RenderTextControl.cpp:
18256        (WebCore::RenderTextControl::setStyle): Reset the height and the width in
18257        the old style to avoid getting a layout hint as a result of having mutated
18258        the old style during layout.
18259        (WebCore::RenderTextControl::layout): Update children's layout if an inner
18260        block's dimensions should change. This need for layout was previously masked
18261        by the bug.
18262
182632007-07-06  Brady Eidson  <beidson@apple.com>
18264
18265        Fix builds that use IconDatabaseNone.cpp - better, this time
18266
18267        * loader/icon/IconDatabaseNone.cpp:
18268        (WebCore::IconDatabase::isOpen):
18269
182702007-07-06  Brady Eidson  <beidson@apple.com>
18271
18272        Fix builds that use IconDatabaseNone.cpp
18273
18274        * loader/icon/IconDatabaseNone.cpp:
18275        (WebCore::IconDatabase::databasePath): 
18276
182772007-07-06  John Sullivan  <sullivan@apple.com>
18278
18279        Reviewed by Brady
18280        
18281        - WebCore part of fix for: 
18282          <rdar://problem/5310739> Time Machine shouldn't back up WebKit's icon database files
18283        
18284        * loader/icon/IconDatabase.h:
18285        * loader/icon/IconDatabase.cpp:
18286        (WebCore::IconDatabase::isOpen): 
18287        made this method const (necessary to make IconDatabase::databasePath const)
18288        (WebCore::IconDatabase::databasePath): 
18289        new method, returns SQLDatabase's path if open, otherwise empty string
18290        
18291        * loader/icon/SQLDatabase.cpp:
18292        (WebCore::SQLDatabase::open):
18293        don't append a null character to the m_path ivar. The appended null character was making the path()
18294        method return a String with a trailing null, which is bad. However, there were no callers to the
18295        path() method until now. Instead of appending a null character to the ivar, use charactersWithNullTermination()
18296        instead of characters() when opening the database.
18297        
18298        * loader/icon/SQLDatabase.h:
18299        (WebCore::SQLDatabase::isOpen):
18300        made this method const (necessary to make IconDatabase::databasePath const)
18301        (WebCore::SQLDatabase::path):
18302        made this method const (not required for these changes, but seemed worth doing at the same time)
18303
18304        * WebCore.exp:
18305        added symbol for IconDatabase::databasePath
18306
183072007-07-06  George Staikos  <staikos@kde.org>
18308
18309        No real functional change - just move the localizations out and
18310        stick some placeholder text in.
18311
18312        * platform/qt/Localizations.cpp: Added.
18313        (WebCore::submitButtonDefaultLabel):
18314        (WebCore::inputElementAltText):
18315        (WebCore::resetButtonDefaultLabel):
18316        (WebCore::defaultLanguage):
18317        (WebCore::searchableIndexIntroduction):
18318        (WebCore::fileButtonChooseFileLabel):
18319        (WebCore::fileButtonNoFileSelectedLabel):
18320        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
18321        (WebCore::contextMenuItemTagDownloadLinkToDisk):
18322        (WebCore::contextMenuItemTagCopyLinkToClipboard):
18323        (WebCore::contextMenuItemTagOpenImageInNewWindow):
18324        (WebCore::contextMenuItemTagDownloadImageToDisk):
18325        (WebCore::contextMenuItemTagCopyImageToClipboard):
18326        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
18327        (WebCore::contextMenuItemTagCopy):
18328        (WebCore::contextMenuItemTagGoBack):
18329        (WebCore::contextMenuItemTagGoForward):
18330        (WebCore::contextMenuItemTagStop):
18331        (WebCore::contextMenuItemTagReload):
18332        (WebCore::contextMenuItemTagCut):
18333        (WebCore::contextMenuItemTagPaste):
18334        (WebCore::contextMenuItemTagNoGuessesFound):
18335        (WebCore::contextMenuItemTagIgnoreSpelling):
18336        (WebCore::contextMenuItemTagLearnSpelling):
18337        (WebCore::contextMenuItemTagSearchWeb):
18338        (WebCore::contextMenuItemTagLookUpInDictionary):
18339        (WebCore::contextMenuItemTagOpenLink):
18340        (WebCore::contextMenuItemTagIgnoreGrammar):
18341        (WebCore::contextMenuItemTagSpellingMenu):
18342        (WebCore::contextMenuItemTagShowSpellingPanel):
18343        (WebCore::contextMenuItemTagCheckSpelling):
18344        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
18345        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
18346        (WebCore::contextMenuItemTagFontMenu):
18347        (WebCore::contextMenuItemTagBold):
18348        (WebCore::contextMenuItemTagItalic):
18349        (WebCore::contextMenuItemTagUnderline):
18350        (WebCore::contextMenuItemTagOutline):
18351        (WebCore::contextMenuItemTagWritingDirectionMenu):
18352        (WebCore::contextMenuItemTagDefaultDirection):
18353        (WebCore::contextMenuItemTagLeftToRight):
18354        (WebCore::contextMenuItemTagRightToLeft):
18355        (WebCore::contextMenuItemTagInspectElement):
18356        (WebCore::searchMenuNoRecentSearchesText):
18357        (WebCore::searchMenuRecentSearchesText):
18358        (WebCore::searchMenuClearRecentSearchesText):
18359        (WebCore::AXWebAreaText):
18360        (WebCore::AXLinkText):
18361        (WebCore::AXListMarkerText):
18362        (WebCore::AXImageMapText):
18363        (WebCore::AXHeadingText):
18364        * platform/qt/TemporaryLinkStubs.cpp:
18365
183662007-07-06  Geoffrey Garen  <ggaren@apple.com>
18367
18368        Reviewed by Anders Carlsson.
18369
18370        A little more FrameLoader cleanup while working on <rdar://problem/5126396>.
18371        
18372        Moved url() and URL() methods next to each other to highlight their subtlety.
18373
18374        * loader/FrameLoader.cpp:
18375        (WebCore::FrameLoader::url):
18376        * loader/FrameLoader.h:
18377
183782007-07-06  Geoffrey Garen  <ggaren@apple.com>
18379
18380        Reviewed by Anders Carlsson.
18381
18382        A little FrameLoader cleanup while working on <rdar://problem/5126396>.
18383        
18384        Renamed endIfNotLoading() to endIfNotLoadingMainResource() because "loading"
18385        and "loadingMainResource" have distinct meanings and this function
18386        honors the latter.
18387
18388        (WebCore::FrameLoader::endIfNotLoadingMainResource): Protect after the
18389        early return to avoid ref count churn.
18390        * loader/FrameLoader.h:
18391        (WebCore::FrameLoader::isLoadingMainResource): Inlined this function.
18392
183932007-07-06  Adam Treat  <adam@staikos.net>
18394
18395        Reviewed by George Staikos.
18396
18397        Convert QWebFrame to a QFrame from a scroll area.
18398
18399        * page/qt/EventHandlerQt.cpp:
18400        (WebCore::EventHandler::passSubframeEventToSubframe):
18401        (WebCore::EventHandler::passWheelEventToWidget):
18402        (WebCore::EventHandler::createDraggingClipboard):
18403        (WebCore::EventHandler::passMousePressEventToScrollbar):
18404        * platform/ScrollView.h:
18405        * platform/Widget.h:
18406        * platform/qt/PlatformScrollBar.h:
18407        * platform/qt/PlatformScrollBarQt.cpp:
18408        (WebCore::PlatformScrollbar::setRect):
18409        (WebCore::PlatformScrollbar::frameGeometry):
18410        (WebCore::PlatformScrollbar::setFrameGeometry):
18411        (WebCore::PlatformScrollbar::handleMouseMoveEvent):
18412        (WebCore::PlatformScrollbar::handleMousePressEvent):
18413        (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
18414        * platform/qt/ScrollViewQt.cpp:
18415        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
18416        (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
18417        (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
18418        (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
18419        (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
18420        (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
18421        (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
18422        (WebCore::ScrollView::ScrollView):
18423        (WebCore::ScrollView::~ScrollView):
18424        (WebCore::ScrollView::setScrollArea):
18425        (WebCore::ScrollView::horizontalScrollBar):
18426        (WebCore::ScrollView::verticalScrollBar):
18427        (WebCore::ScrollView::updateContents):
18428        (WebCore::ScrollView::update):
18429        (WebCore::ScrollView::visibleWidth):
18430        (WebCore::ScrollView::visibleHeight):
18431        (WebCore::ScrollView::visibleContentRect):
18432        (WebCore::ScrollView::setContentsPos):
18433        (WebCore::ScrollView::resizeContents):
18434        (WebCore::ScrollView::setFrameGeometry):
18435        (WebCore::ScrollView::geometryChanged):
18436        (WebCore::ScrollView::contentsX):
18437        (WebCore::ScrollView::contentsY):
18438        (WebCore::ScrollView::contentsWidth):
18439        (WebCore::ScrollView::contentsHeight):
18440        (WebCore::ScrollView::windowToContents):
18441        (WebCore::ScrollView::contentsToWindow):
18442        (WebCore::ScrollView::scrollOffset):
18443        (WebCore::ScrollView::maximumScroll):
18444        (WebCore::ScrollView::scrollBy):
18445        (WebCore::ScrollView::scrollRectIntoViewRecursively):
18446        (WebCore::ScrollView::hScrollbarMode):
18447        (WebCore::ScrollView::vScrollbarMode):
18448        (WebCore::ScrollView::suppressScrollbars):
18449        (WebCore::ScrollView::setHScrollbarMode):
18450        (WebCore::ScrollView::setVScrollbarMode):
18451        (WebCore::ScrollView::setScrollbarsMode):
18452        (WebCore::ScrollView::setStaticBackground):
18453        (WebCore::ScrollView::inWindow):
18454        (WebCore::ScrollView::updateScrollbars):
18455        (WebCore::ScrollView::scrollbarUnderMouse):
18456        (WebCore::ScrollView::addChild):
18457        (WebCore::ScrollView::removeChild):
18458        (WebCore::ScrollView::paint):
18459        (WebCore::ScrollView::wheelEvent):
18460        (WebCore::ScrollView::scroll):
18461        (WebCore::ScrollView::windowResizerRect):
18462        (WebCore::ScrollView::resizerOverlapsContent):
18463        (WebCore::ScrollView::adjustOverlappingScrollbarCount):
18464        (WebCore::ScrollView::setParent):
18465        (WebCore::ScrollView::addToDirtyRegion):
18466        (WebCore::ScrollView::scrollBackingStore):
18467        (WebCore::ScrollView::updateBackingStore):
18468        * platform/qt/WidgetQt.cpp:
18469        (WebCore::WidgetPrivate::canvas):
18470        (WebCore::WidgetPrivate::setGeometry):
18471        (WebCore::WidgetPrivate::geometry):
18472        (WebCore::Widget::setQWidget):
18473        (WebCore::Widget::paint):
18474        (WebCore::Widget::originalGeometry):
18475        (WebCore::Widget::geometryChanged):
18476
184772007-07-06  Anders Carlsson  <andersca@apple.com>
18478
18479        Reviewed by Mitz.
18480
18481        <rdar://problem/5280532> 
18482        REGRESSION: Can't access nested embed by document.name if object is not immediate parent
18483        
18484        Traverse up the tree looking for an object element.
18485        
18486        * html/HTMLEmbedElement.cpp:
18487        (WebCore::HTMLEmbedElement::getInstance):
18488
184892007-07-06  George Staikos  <staikos@kde.org>
18490
18491        Qt build fix: Don't clobber qmake variables that are already set.
18492
18493        * WebCore.pro:
18494
184952007-07-05  Maciej Stachowiak  <mjs@apple.com>
18496
18497        Reviewed by Antti.
18498
18499        - <rdar://problem/5311093> JavaScriptCore fails to build with strict-aliasing warnings
18500
18501        * platform/StringHash.h:
18502        (WTF::): Adapt to newer way to do storage types.
18503
185042007-07-06  Bernhard Rosenkraenzer  <bero@arklinux.org>
18505
18506        Reviewed by Sam.
18507
18508        Fix for http://bugs.webkit.org/show_bug.cgi?id=13985
18509        Bug 13985: WebCore/rendering/RenderTable.cpp fails to compile with gcc 4.2.x
18510
18511        * rendering/RenderTable.cpp:
18512        (WebKit::RenderTable::calcBorderLeft)
18513        (WebKit::RenderTable::calcBorderRight)
18514
185152007-07-06  Maxime Britto  <mbritto@pleyo.com>
18516
18517        Reviewed by Maciej.
18518
18519        Fix http://bugs.webkit.org/show_bug.cgi?id=13038
18520        Bug 13038: ASSERTION FAILED: item->target().isEmpty() || m_mainFrame->tree()->find(item->target()) == m_mainFrame
18521
18522        Modify an ASSERT in goToItem related to going back/forward in history.  We don't need to check the frameset if the target is _blank.
18523        The attached test case is a manual one since it relies on having pages opened in tabs in Safari.
18524
18525        * manual-tests/goBack-blank-tab-page.html: Added.
18526        * manual-tests/resources/before-go-back.html: Added.
18527        * manual-tests/resources/will-go-back.html: Added.
18528        * page/Page.cpp:
18529        (WebCore::Page::goToItem):
18530
185312007-07-06  Mitz Pettel  <mitz@webkit.org>
18532
18533        Reviewed by Maciej.
18534
18535        - fix http://bugs.webkit.org/show_bug.cgi?id=14400
18536          Assertion failure (SHOULD NEVER BE REACHED) going back on YouTube
18537
18538        Test: fast/forms/button-state-restore.html
18539
18540        * dom/Document.h:
18541        (WebCore::Document::isFormElementRegistered): Added.
18542        * html/HTMLGenericFormElement.cpp:
18543        (WebCore::HTMLGenericFormElement::closeRenderer): Restore saved form
18544        element state only if the element is registered with the document to
18545        have its state saved.
18546
185472007-07-06  Mitz Pettel  <mitz@webkit.org>
18548
18549        Reviewed by Maciej.
18550
18551        - fix http://bugs.webkit.org/show_bug.cgi?id=14487
18552          Incomplete repaint of background and border of boxes with -webkit-border-fit:lines
18553
18554        Test: fast/repaint/border-fit-lines.html
18555
18556        * rendering/RenderObject.cpp:
18557        (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Do a full repaint if
18558        -webkit-border-fit:lines was specified.
18559
185602007-07-06  Tony Chang  <idealisms@gmail.com>
18561
18562        Reviewed by Maciej.
18563
18564        http://bugs.webkit.org/show_bug.cgi?id=14516
18565        Bug 14516: crash loading multipart/x-mixed-replace data on windows safari
18566
18567        NULL check m_resourceData to prevent a crash in Safari on Windows.
18568
18569        * loader/ResourceLoader.cpp:
18570        (WebCore::ResourceLoader::clearResourceData):
18571
185722007-07-06  Jungshik Shin  <jungshik.shin@gmail.com>
18573
18574        Reviewed by Alexey.
18575
18576        - Add UTF-32 encoding support 
18577          http://bugs.webkit.org/show_bug.cgi?id=13415
18578
18579        Test:
18580         - fast/encoding/utf-32-big-endian-bom.html
18581         - fast/encoding/utf-32-big-endian-nobom.xml
18582         - fast/encoding/utf-32-little-endian-bom.html
18583         - fast/encoding/utf-32-little-endian-nobom.xml
18584
18585        * loader/TextResourceDecoder.cpp:
18586        (WebCore::TextResourceDecoder::checkForBOM):
18587        (WebCore::TextResourceDecoder::checkForHeadCharset):
18588        * platform/TextDecoder.cpp:
18589        (WebCore::TextDecoder::checkForBOM):
18590        * platform/TextDecoder.h:
18591        * platform/TextEncoding.cpp:
18592        (WebCore::UTF32BigEndianEncoding):
18593        (WebCore::UTF32LittleEndianEncoding):
18594        * platform/TextEncoding.h:
18595
185962007-07-06  Holger Hans Peter Freyther  <zecke@selfish.org>
18597
18598        Reviewed by Maciej.
18599
18600        Start implementening RenderThemeGdk/Gtk using GtkStyle. The approach is
18601        to allocate one native control for each widget type. And use margins, spacing,
18602        style properties from the Widget. And for drawing use GtkStyle on the rect supplied.
18603
18604        This should allow nice integration and be relative resource friendly. Mozilla is using
18605        a similiar approach. They seem to share the GdkPixmap among several operations and this
18606        will be an obvious candidate for improvements. Create a normally big enough GdkPixmap and
18607        use that for drawing and then set clip regions for cairo to make sure to not go beyond the
18608        width and height.
18609
18610        The next steps will be to introduce states for the widgets, add more widgets, handle focus,
18611        and various other style attributes, honor the size and margin and use that to propagate this
18612        back to RenderStyle*.
18613
18614        * platform/gdk/RenderThemeGdk.cpp:
18615        (WebCore::RenderThemeGdk::RenderThemeGdk):
18616        (WebCore::RenderThemeGdk::setCheckboxSize):
18617        (WebCore::RenderThemeGdk::paintCheckbox):
18618        (WebCore::RenderThemeGdk::setRadioSize):
18619        (WebCore::RenderThemeGdk::paintRadio):
18620        (WebCore::RenderThemeGdk::paintButton):
18621        (WebCore::RenderThemeGdk::copyToContext):
18622        (WebCore::RenderThemeGdk::gtkButton):
18623        (WebCore::RenderThemeGdk::gtkCheckbox):
18624        (WebCore::RenderThemeGdk::gtkRadioButton):
18625        (WebCore::RenderThemeGdk::gtkWindowContainer):
18626        * platform/gdk/RenderThemeGdk.h:
18627
186282007-07-06  Rob Buis  <buis@kde.org>
18629
18630        Reviewed by Adam.
18631
18632        http://bugs.webkit.org/show_bug.cgi?id=14442
18633        Adding a stop with value 1.0 to a gradient that has already been used has no effect
18634
18635        Implement start and end stop handling differently so they are not
18636        in the color stop array.
18637
18638        * html/CanvasGradient.cpp:
18639        (WebCore::compareStops):
18640        (WebCore::CanvasGradient::getColor):
18641        (WebCore::CanvasGradient::findStop):
18642
186432007-07-06  Adam Roben  <aroben@apple.com>
18644
18645        Fix <rdar://problem/5301994> Garbled text still showing on some sites
18646
18647        Replace calls to GetGlyphIndices with wkGetGlyphs.
18648
18649        Reviewed by Alice.
18650
18651        * platform/win/GlyphPageTreeNodeWin.cpp:
18652        (WebCore::GlyphPage::fill): Use wkGetGlyphs.
18653        * platform/win/FontDataWin.cpp:
18654        (WebCore::FontData::containsCharacters):
18655
186562007-07-06  Matt Lilek  <pewtermoose@gmail.com>
18657
18658        Not reviewed - Windows build fix.
18659
18660        * bridge/win/FrameWin.cpp:
18661        (WebCore::imageFromSelection):
18662
186632007-07-06  George Staikos  <staikos@kde.org>
18664
18665        Reviewed by Maciej.
18666
18667        Switch USE(ICONDATABASE) to ENABLE(ICONDATABASE) and activate the
18668        flag via the .pro file
18669
18670        * WebCore.pro:
18671        * loader/icon/IconDatabase.h:
18672
186732007-07-05  John Sullivan  <sullivan@apple.com>
18674
18675        Reviewed by Adam
18676
18677        - WebCore part of fix for <rdar://problem/5315033>
18678
18679        * rendering/RenderObject.h:
18680        replaced PaintRestrictionSelectionOnlyWhiteText with PaintRestrictionSelectionOnlyBlackText
18681        (WebCore::RenderObject::PaintInfo::PaintInfo):
18682        replaced forceWhiteText with forceBlackText
18683
18684        * rendering/RenderObject.cpp:
18685        (WebCore::RenderObject::addLineBoxRects):
18686        added a useSelectionHeight parameter, which defaults to false; this method is unimplemented
18687        at this level so this has no effect.
18688
18689        * rendering/RenderText.h:
18690        * rendering/RenderText.cpp:
18691        (WebCore::RenderText::addLineBoxRects):
18692        added a useSelectionHeight parameter, which defaults to false. If true, use the vertical position
18693        and height returned by selectionRect rather than replacing it with the more tight-fitting position
18694        and height of the line box.
18695
18696        * dom/Range.h:
18697        * dom/Range.cpp:
18698        (WebCore::Range::addLineBoxRects):
18699        added a useSelectionHeight parameter, which defaults to false. Passes this along to RenderObject.        
18700
18701        * page/Frame.h:
18702        renamed parameter to selectionImage
18703        * page/Frame.cpp:
18704        (WebCore::Frame::selectionTextRects):
18705        pass true for addLineBoxRects new useSelectionHeight parameter, so the rects returned by this new
18706        method will match the height that the selection would be painted here
18707        (WebCore::Frame::paint):
18708        updated for white->black name changes
18709        
18710        * page/mac/FrameMac.mm:
18711        (WebCore::Frame::selectionImage):
18712        updated for white->black name changes
18713        
18714        * rendering/InlineFlowBox.cpp:
18715        (WebCore::InlineFlowBox::paintTextDecorations):
18716        updated for white->black name changes
18717
18718        * rendering/RenderLayer.cpp:
18719        (WebCore::RenderLayer::paintLayer):
18720        updated for white->black name changes
18721
18722        * rendering/InlineTextBox.cpp:
18723        (WebCore::InlineTextBox::paint):
18724        updated for white->black name changes, and actually use black instead of white. This was the goal
18725        of all the name changes.
18726
187272007-07-05  Anders Carlsson  <andersca@apple.com>
18728
18729        Reviewed by Oliver.
18730
18731        Fix layout test failures.
18732        
18733        * loader/FrameLoader.cpp:
18734        (WebCore::FrameLoader::commitProvisionalLoad):
18735        Don't make a representation if we're creating the initial document.
18736
187372007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18738
18739        Fix Bug 14388: Input in text fields limited to 1024 characters
18740        http://bugs.webkit.org/show_bug.cgi?id=14388
18741
18742        Slightly modified by Adam Roben.
18743
18744        Reviewed by Adele.
18745
18746        Tests: fast/forms/input-implicit-length-limit.html
18747               fast/forms/input-maxlength.html
18748
18749        * html/HTMLInputElement.cpp: Bump limit to 524288.
18750        (WebCore::HTMLInputElement::init):
18751        (WebCore::HTMLInputElement::parseMappedAttribute):
18752        * html/HTMLInputElement.h:
18753
187542007-07-05  Anders Carlsson  <andersca@apple.com>
18755
18756        Build fix.
18757        
18758        * loader/FrameLoader.cpp:
18759        (WebCore::FrameLoader::init):
18760
187612007-07-05  Sam Weinig  <sam@webkit.org>
18762
18763        Reviewed by Geoff.
18764
18765        Add focus, blur and close functions to DOMWindow implementation class
18766        and move bindings from Window to JSDOMWindow.
18767
18768        * bindings/js/JSDOMWindowCustom.cpp:
18769        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
18770        * bindings/js/kjs_window.cpp:
18771        (KJS::Window::getOwnPropertySlot):
18772        (KJS::WindowFunc::callAsFunction):
18773        * bindings/js/kjs_window.h:
18774        (KJS::Window::):
18775        * bindings/scripts/CodeGeneratorJS.pm: Move prototype function declaration from
18776        the implementation to the header.
18777        * page/DOMWindow.cpp:
18778        (WebCore::DOMWindow::focus):
18779        (WebCore::DOMWindow::blur):
18780        (WebCore::DOMWindow::close):
18781        * page/DOMWindow.h:
18782        * page/DOMWindow.idl:
18783
187842007-07-05  Justin Garcia  <justin.garcia@apple.com>
18785
18786        Reviewed by Harrison.
18787
18788        <rdar://problem/5279521> REGRESSION: In Mail, a crash occurs at WebCore::Range::startPosition() when attempting to apply alignment to selected image/text in message body
18789
18790        * editing/TextIterator.cpp:
18791        (WebCore::TextIterator::exitNode): Previously emitted content shouldn't have
18792        to come from a text node in order to emit a '\n' as we exit block containers.
18793
187942007-07-05  Anders Carlsson  <andersca@apple.com>
18795
18796        Reviewed by Geoff.
18797
18798        <rdar://problem/5315284> REGRESSION: Leopard Launch Time - plugins are being accessed at startup.
18799
18800        Set a response that has a MIME type of "text/html" on the document loader so WebKit won't refresh the 
18801        plugin database looking for a plug-in that can handle the document's MIME type (which will be null anyway).
18802                 
18803        * loader/FrameLoader.cpp:
18804        (WebCore::FrameLoader::init):
18805
188062007-07-05  Anders Carlsson  <andersca@apple.com>
18807
18808        Reviewed by Oliver.
18809
18810        <rdar://problem/5106788>
18811        WebKit loads user style sheets too late as seen in Mail (breaks DataDetectors; Mail flashes wrong font)
18812
18813        Let the document know when the user style sheet is loading so that it try not to display anything
18814        until the user style sheet has finished loading.
18815        
18816        * page/Frame.cpp:
18817        (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
18818        (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
18819        (WebCore::UserStyleSheetLoader::setCSSStyleSheet):
18820        (WebCore::Frame::setUserStyleSheetLocation):
18821
188222007-07-05  Sam Weinig  <sam@webkit.org>
18823
18824        Reviewed by Darin.
18825
18826        Move JSDOMWindow overriding getOwnPropertySlot logic from KJS::Window
18827        up into JSDOMWindow.  No change in functionality so no testcase required. 
18828
18829        * bindings/js/JSDOMWindowCustom.cpp:
18830        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
18831        * bindings/js/kjs_window.cpp:
18832        (KJS::Window::getOwnPropertySlot):
18833        * bindings/js/kjs_window.h:
18834
188352007-07-05  Mitz Pettel  <mitz@webkit.org>
18836
18837        Reviewed and Landed by Sam.
18838
18839        - fix bug 14465 for window.showModalDialog
18840
18841        * bindings/js/kjs_window.cpp:
18842        (KJS::parseModalDialogFeatures):
18843        (KJS::showModalDialog):
18844
188452007-07-05  Sam Weinig  <sam@webkit.org>
18846
18847        Reviewed by Mitz.
18848
18849        Patch for http://bugs.webkit.org/show_bug.cgi?id=14465
18850        window.open() uses the literal "undefined" as the URL
18851
18852        * bindings/js/kjs_window.cpp:
18853        (KJS::WindowFunc::callAsFunction): add checks for undefined and null values when setting the url.
18854        * manual-tests/open-url-undefined.html: Added.
18855
188562007-07-05  Holger Hans Peter Freyther  <zecke@selfish.org>
18857
18858        Reviewed by Rob Buis.
18859
18860        Rework FontData and FontPlatformData for the Gdk work to make valgrind
18861        happy.
18862
18863        Move destroying of FontConfig and Cairo objects held in FontPlatformData
18864        to FontData::platformDestroy. The ownership of these objects is held by
18865        FontData. This is following the Mac and Qt port at least.
18866
18867        Currently it is possible that FontPlatformData will not create cairo resources
18868        in this case at least make sure the variables are initialized to 0.
18869        Initialize x,y of the cairo_glyph_t with zero to avoid extents.x_advance depending
18870        on subtracing with not defined values.
18871
18872        FontPlatformData::hash. Using FontDescription is a bad idea as we don't have a clue
18873        about how it is packed, if holes are present, etc. The FcPattern and the m_fontMatrix
18874        should be good enough to describe the Font. All other objects are created using these
18875        variables
18876
18877        Replace C-style casts with C++ casts, in this case reinterpret_cast.
18878
18879        * platform/gdk/FontDataGdk.cpp:
18880        (WebCore::FontData::platformInit): Don't assert
18881        (WebCore::FontData::platformDestroy): Take over ownership
18882        (WebCore::FontData::platformWidthForGlyph): initialize
18883        (WebCore::FontData::setFont): be paranoid and assert
18884        * platform/gdk/FontPlatformData.h:
18885        (WebCore::FontPlatformData::FontPlatformData): Initialize everything
18886        (WebCore::FontPlatformData::hash): make valgrind happy and don't use m_fontDescription
18887        * platform/gdk/FontPlatformDataGdk.cpp:
18888        (WebCore::FontPlatformData::FontPlatformData):
18889        (WebCore::FontPlatformData::~FontPlatformData): FontData::platformDestroy will do this
18890        (WebCore::FontPlatformData::list): Don't use C-style casts.
18891        (WebCore::FontPlatformData::setFont): m_fontFace, m_fontMatrix, m_options might not be initialized
18892        (WebCore::FontPlatformData::operator==): Don't use C-style casts.
18893
188942007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18895
18896        Reviewed by Mark Rowe.
18897
18898        http://bugs.webkit.org/show_bug.cgi?id=14445
18899        GraphicsContextCairo code style cleanup
18900
18901        Follow the cr naming convention for cairo_t*.
18902        Remove trailing whitespace.
18903        Replace C casts with C++ casts.
18904        Avoid needless casts.
18905
18906        * platform/graphics/cairo/GraphicsContextCairo.cpp:
18907        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
18908        (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
18909        (WebCore::GraphicsContext::GraphicsContext):
18910        (WebCore::GraphicsContext::platformContext):
18911        (WebCore::GraphicsContext::savePlatformState):
18912        (WebCore::GraphicsContext::restorePlatformState):
18913        (WebCore::GraphicsContext::drawRect):
18914        (WebCore::adjustLineToPixelBoundaries):
18915        (WebCore::GraphicsContext::drawLine):
18916        (WebCore::GraphicsContext::drawEllipse):
18917        (WebCore::GraphicsContext::strokeArc): Save/restore the graphics state.
18918        (WebCore::GraphicsContext::drawConvexPolygon):
18919        (WebCore::GraphicsContext::fillRect):
18920        (WebCore::GraphicsContext::clip):
18921        (WebCore::GraphicsContext::drawFocusRing):
18922        (WebCore::GraphicsContext::roundToDevicePixels):
18923        (WebCore::GraphicsContext::translate):
18924        (WebCore::GraphicsContext::origin):
18925        (WebCore::GraphicsContext::setPlatformStrokeThickness):
18926        (WebCore::GraphicsContext::setPlatformStrokeStyle):
18927        (WebCore::GraphicsContext::setPlatformFont):
18928        (WebCore::GraphicsContext::concatCTM):
18929        (WebCore::GraphicsContext::addInnerRoundedRectClip):
18930        (WebCore::GraphicsContext::beginTransparencyLayer):
18931        (WebCore::GraphicsContext::endTransparencyLayer):
18932        (WebCore::GraphicsContext::clearRect):
18933        (WebCore::GraphicsContext::setLineCap):
18934        (WebCore::GraphicsContext::setLineJoin):
18935        (WebCore::GraphicsContext::setMiterLimit):
18936        (WebCore::GraphicsContext::setCompositeOperation):
18937        (WebCore::GraphicsContext::beginPath):
18938        (WebCore::GraphicsContext::addPath):
18939        (WebCore::GraphicsContext::rotate):
18940        (WebCore::GraphicsContext::scale):
18941        * platform/graphics/cairo/ImageBufferCairo.cpp:
18942        (WebCore::ImageBuffer::ImageBuffer):
18943        * platform/graphics/cairo/ImageCairo.cpp: Avoid the confusing ctxt/context naming scheme.
18944        (WebCore::BitmapImage::draw):
18945        (WebCore::Image::drawPattern):
18946
189472007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18948
18949        Reviewed by Mark Rowe.
18950
18951        http://bugs.webkit.org/show_bug.cgi?id=14531
18952        Cairo SVGImage::nativeImageForCurrentFrame() has no return
18953
18954        Return the Cairo surface from the frame cache.
18955
18956        Also add a fall-through else macro with notImplemented() so that future
18957        ports do not make the same mistake.
18958
18959        * platform/graphics/svg/SVGImage.cpp:
18960        (WebCore::SVGImage::nativeImageForCurrentFrame):
18961
189622007-07-05  Alp Toker  <alp.toker@collabora.co.uk>
18963
18964        Reviewed by Mark Rowe.
18965
18966        http://bugs.webkit.org/show_bug.cgi?id=14513
18967        Cairo animated GIF support is broken
18968
18969        Implement ImageSource::frameIsCompleteAtIndex() to enable animated GIFs.
18970
18971        * platform/graphics/cairo/ImageSourceCairo.cpp:
18972        (WebCore::ImageSource::frameIsCompleteAtIndex):
18973
189742007-07-04  Matt Perry  <mpComplete@gmail.com>
18975
18976        Reviewed by Adam.
18977
18978        Fix for http://bugs.webkit.org/show_bug.cgi?id=13400
18979        Bug 13400: REGRESSION (r20809-20814): No back entry created for navigations created by assigning to document.location
18980        <rdar://problem/5153025>
18981
18982        Treat userGesture as always true for setLocation, forcing a back/forward
18983        entry to be created.
18984
18985        * bindings/js/JSHTMLDocumentCustom.cpp:
18986        (WebCore::JSHTMLDocument::setLocation):
18987
189882007-07-04  Adam Roben  <aroben@apple.com>
18989
18990        Restore MouseEventWithHitTestResults::targetNode's old behavior
18991
18992        Reviewed by Mark.
18993
18994        Fixes fast/images/imagemap-case and fast/replace/image-map.
18995
18996        * page/MouseEventWithHitTestResults.cpp:
18997        (WebCore::MouseEventWithHitTestResults::targetNode): Use the inner
18998        node, not the inner non-shared node.
18999
190002007-07-04  Adam Roben  <aroben@apple.com>
19001
19002        Mac, Qt, and Gdk build fixes.
19003
19004        * page/EventHandler.h:
19005        * page/gdk/EventHandlerGdk.cpp:
19006        * page/mac/EventHandlerMac.mm:
19007        (WebCore::EventHandler::passSubframeEventToSubframe):
19008        * page/qt/EventHandlerQt.cpp:
19009
190102007-07-04  Adam Roben  <aroben@apple.com>
19011
19012        Fix the Qt/Gdk builds.
19013
19014        * page/gdk/EventHandlerGdk.cpp:
19015        * page/qt/EventHandlerQt.cpp:
19016
190172007-07-04  Adam Roben  <aroben@apple.com>
19018
19019        Move tooltip logic down into WebCore so that it can be shared cross-platform
19020
19021        Reviewed by Sam.
19022
19023        * page/Chrome.cpp:
19024        (WebCore::Chrome::setToolTip): Added.
19025        * page/Chrome.h:
19026        * page/ChromeClient.h:
19027        * page/EventHandler.cpp:
19028        (WebCore::EventHandler::mouseMoved): Call Chrome::setToolTip.
19029        * platform/graphics/svg/SVGImageEmptyClients.h:
19030
19031        Added stubs for Gdk:
19032
19033        * platform/gdk/ChromeClientGdk.h:
19034        * platform/gdk/TemporaryLinkStubs.cpp:
19035        (ChromeClientGdk::setToolTip):
19036
190372007-07-04  Adam Roben  <aroben@apple.com>
19038
19039        Add Settings::showsURLsInToolTips
19040
19041        Reviewed by Sam.
19042
19043        * WebCore.exp:
19044        * page/Settings.cpp:
19045        (WebCore::Settings::Settings):
19046        * page/Settings.h:
19047
190482007-07-04  Adam Roben  <aroben@apple.com>
19049
19050        Move logic for calling mouseDidMoveOverElement into WebCore
19051
19052        Reviewed by Sam.
19053
19054        * page/EventHandler.cpp:
19055        (WebCore::EventHandler::mouseMoved): Added. Calls Chrome::mouseDidMoveOverElement.
19056        (WebCore::EventHandler::handleMouseMoveEvent): Now takes an optional
19057        HitTestResult* parameter which is used to communicate to the caller the
19058        node the mouse is over.
19059        * page/EventHandler.h:
19060        * page/mac/EventHandlerMac.mm:
19061        (WebCore::EventHandler::mouseMoved): Changed to call the overloaded
19062        mouseMoved().
19063        (WebCore::EventHandler::passMouseMoveEventToSubframe): Pass hoveredNode
19064        through to the subframe so we can get the deepest node hovered, not
19065        just the node's parent frame.
19066        * page/win/EventHandlerWin.cpp:
19067        (WebCore::EventHandler::passMouseMoveEventToSubframe): Ditto.
19068
190692007-07-04  Adam Roben  <aroben@apple.com>
19070
19071        Add Chrome::mouseDidMoveOverElement
19072
19073        This does the work of calling up to the ChromeClient (which will call
19074        the UI delegate).
19075
19076        Reviewed by Sam.
19077
19078        * page/Chrome.cpp:
19079        (WebCore::Chrome::mouseDidMoveOverElement): Added.
19080        * page/Chrome.h:
19081        * page/ChromeClient.h:
19082        * platform/graphics/svg/SVGImageEmptyClients.h: Updated for change to
19083        ChromeClient.
19084        * platform/gdk/ChromeClientGdk.h:
19085        * platform/gdk/TemporaryLinkStubs.cpp:
19086        (ChromeClientGdk::mouseDidMoveOverElement):
19087
190882007-07-04  Adam Roben  <aroben@apple.com>
19089
19090        Changed PlatformMouseEvent to store the modifier flags of the event
19091
19092        Reviewed by Sam.
19093
19094        * platform/PlatformMouseEvent.h:
19095        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
19096        * platform/mac/PlatformMouseEventMac.mm:
19097        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
19098        * platform/win/PlatformMouseEventWin.cpp:
19099        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
19100
191012007-07-04  Adam Roben  <aroben@apple.com>
19102
19103        Add HitTestResult::setToNonShadowAncestor
19104
19105        Reviewed by Sam.
19106
19107        * page/EventHandler.cpp:
19108        (WebCore::EventHandler::hitTestResultAtPoint): Moved logic into
19109        HitTestResult::setToNonShadowAncestor.
19110        * rendering/HitTestResult.cpp:
19111        (WebCore::HitTestResult::setToNonShadowAncestor):
19112        * rendering/HitTestResult.h:
19113
191142007-07-04  Adam Roben  <aroben@apple.com>
19115
19116        Change MouseEventWithHitTestResults to hold onto a HitTestResult
19117
19118        Reviewed by Sam.
19119
19120        * dom/Document.cpp:
19121        (WebCore::Document::prepareMouseEvent):
19122        * page/MouseEventWithHitTestResults.cpp:
19123        (WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
19124        (WebCore::MouseEventWithHitTestResults::targetNode):
19125        (WebCore::MouseEventWithHitTestResults::localPoint):
19126        (WebCore::MouseEventWithHitTestResults::scrollbar):
19127        * page/MouseEventWithHitTestResults.h:
19128        (WebCore::MouseEventWithHitTestResults::event):
19129        (WebCore::MouseEventWithHitTestResults::hitTestResult):
19130
191312007-07-04  Matt Lilek  <pewtermoose@gmail.com>
19132
19133        Not reviewed, gdk build fix.
19134
19135        * platform/gdk/FrameGdk.cpp:
19136
191372007-07-05  Antti Koivisto  <antti@apple.com>
19138
19139        Reviewed by John.
19140        
19141        Fix Repro crash due to infinite recursion in HTMLParser::handleError @ youos.com
19142        <rdar://problem/5237811>
19143        
19144        It is possible to add table parts (thead etc) without table ancestor to a document fragment. If a new table element
19145        was added to such a part, as in
19146        
19147        div.innerHTML = '<tbody><table>';
19148        
19149        the parser error handling code would try to pop the previous table as normal. However since
19150        the table does not actually exist nothing would happen and parser would go to infinite recursion.
19151        
19152        Solution here is to pop table parts one by one when handling the error inside a fragment instead of trying to pop
19153        the table straight away (as it might not exist).
19154
19155        * html/HTMLParser.cpp:
19156        (WebCore::HTMLParser::handleError):
19157
191582007-07-04  Qing Zhao  <qing@staikos.net>
19159
19160        Reviewed by George Staikos.
19161
19162        Draw menulist (comboboxes) without text overlap on the button.
19163
19164        * platform/qt/RenderThemeQt.cpp:
19165        (WebCore::RenderThemeQt::setPopupPadding):
19166
191672007-07-04  George Staikos  <staikos@kde.org>
19168
19169        Compile
19170
19171        * page/qt/FrameQt.cpp:
19172        * WebCore.pro:
19173
191742007-07-04  Sam Weinig  <sam@webkit.org>
19175
19176        Reviewed by Mitz.
19177
19178        Patch for http://bugs.webkit.org/show_bug.cgi?id=14504
19179        REGRESSION (r23573): Amazon Book Excerpt can not be viewed in recent nightly
19180
19181        - Made it possible (again) to shadow window properties with local variable names.
19182
19183        Test: fast/dom/Window/window-property-shadowing.html
19184
19185        * bindings/js/JSDOMWindowCustom.cpp:
19186        (WebCore::JSDOMWindow::customPut):
19187        * bindings/js/kjs_window.cpp:
19188        (KJS::Window::put):
19189        * bindings/scripts/CodeGeneratorJS.pm:
19190        * page/DOMWindow.idl:
19191
191922007-07-03  Alice Liu  <alice.liu@apple.com>
19193
19194        Reviewed by Adam.
19195
19196        Fixed <rdar://problem/5225119> support smart pasting on Windows
19197
19198        * WebCore.vcproj/WebCore.vcproj:
19199        * WebCore.xcodeproj/project.pbxproj:
19200            Added new files
19201        * editing/SmartReplace.cpp: Added.
19202        (WebCore::isCharacterSmartReplaceExempt):
19203            Added non-CF implementation placeholder
19204        * editing/SmartReplace.h: Added.
19205        * editing/SmartReplaceCF.cpp: Added.
19206        (WebCore::getSmartSet):
19207        (WebCore::isCharacterSmartReplaceExempt):
19208            Added new implementation
19209
19210        * bridge/win/FrameWin.cpp:
19211        * page/Frame.h:
19212        * page/mac/FrameMac.mm:
19213            Removed old declaration and implementation
19214
19215        * editing/ReplaceSelectionCommand.cpp:
19216        (WebCore::ReplaceSelectionCommand::doApply):
19217            Changed to call the new function instead of old
19218
19219        * page/mac/WebCoreFrameBridge.h:
19220        * page/mac/WebCoreFrameBridge.mm:
19221            Removed old declaration and implementation
19222        (-[WebCoreFrameBridge smartInsertForString:replacingRange:beforeString:afterString:]):
19223            Changed to call the new function instead of old
19224
19225        * platform/win/PasteboardWin.cpp:
19226        (WebCore::Pasteboard::Pasteboard):
19227            Register new clipboard format
19228        (WebCore::Pasteboard::writeSelection):
19229            Set data for smartpaste format on clipboard
19230        (WebCore::Pasteboard::canSmartReplace):
19231            Added non-stub implementation
19232
192332007-07-04  Qing Zhao  <qing@staikos.net>
19234
19235        Reviewed by George Staikos.
19236
19237        Similar to the PlatformScrollbar fixes, adjust the painter to make the
19238        styler draw all subcontrols, and in this case the focus rect, in the
19239        proper location
19240
19241        * platform/qt/RenderThemeQt.cpp:
19242        (WebCore::RenderThemeQt::paintMenuList):
19243
192442007-07-04  Mitz Pettel  <mitz@webkit.org>
19245
19246        Reviewed by Maciej.
19247
19248        - fix http://bugs.webkit.org/show_bug.cgi?id=14495
19249          REGRESSION: Wrong cursor is displayed during drag and drop when text is selected
19250          <rdar://problem/5312384>
19251
19252        No test possible because DumpRenderTree cannot query the current cursor.
19253
19254        * page/EventHandler.cpp:
19255        (WebCore::EventHandler::selectCursor): Changed into a member function and
19256        added that if the last mouse down event could not have started a
19257        selection, then the cursor should not change to an I-beam unconditionally.
19258        (WebCore::EventHandler::handleMouseMoveEvent):
19259        * page/EventHandler.h:
19260
192612007-07-04  Holger Hans Peter Freyther  <zecke@selfish.org>
19262
19263        Reviewed by Rob Buis.
19264
19265        A little progress in tracking dependencies.
19266
19267        * WebCore.pro: Add DEPENDPATH for the Gdk port.
19268
192692007-07-03  Darin Adler  <darin@apple.com>
19270
19271        Reviewed by Tim Hatcher.
19272
19273        - fix <rdar://problem/5221297> Font family name in the cssText for a DOMCSSStyleDeclaration needs quotes
19274
19275        Test: editing/style/font-family-with-space.html
19276
19277        * css/FontFamilyValue.cpp:
19278        (WebCore::isValidCSSIdentifier): Added. Implements the same rule that the CSS lexer does.
19279        (WebCore::quoteStringIfNeeded): Changed to call isValidCSSIdentifier instead of just
19280        checking for a leading "#" character.
19281        * editing/markup.cpp:
19282        (WebCore::escapeTextForMarkup): Changed to take a String parameter for better efficiency.
19283        (WebCore::renderedText): Changed to return a String for better efficiency.
19284        (WebCore::addNamespace): Updated to pass String to escapeTextForMarkup.
19285        (WebCore::startMarkup): Updated to pass String to escapeTextForMarkup. Added missing call
19286        to escapeTextForMarkup in the special case for the style property.
19287        (WebCore::createMarkup): Changed from single quotes to double quotes and also added missing
19288        call to escapeTextForMarkup in two special cases for the style property.
19289
192902007-07-03  Sam Weinig  <sam@webkit.org>
19291
19292        Reviewed by Darin.
19293
19294        Twelfth round of fixes for implicit 64-32 bit conversion errors.
19295        <rdar://problem/5292262>
19296
19297        - Add casts and accompanying FIXMEs to avoid remaining compiler errors.
19298
19299        * WebCore.xcodeproj/project.pbxproj:
19300        * loader/FrameLoader.cpp:
19301        (WebCore::FrameLoader::opened):
19302        (WebCore::FrameLoader::sendRemainingDelegateMessages):
19303        * loader/FrameLoader.h:
19304        * loader/ResourceLoader.cpp:
19305        (WebCore::ResourceLoader::didReceiveData):
19306        * platform/network/mac/ResourceHandleMac.mm:
19307        (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
19308        (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
19309        * platform/network/mac/ResourceResponseMac.mm:
19310        (WebCore::ResourceResponse::nsURLResponse):
19311
193122007-07-03  Anders Carlsson  <andersca@apple.com>
19313
19314        Reviewed by Adam.
19315
19316        <rdar://problem/5093862>
19317        Nothing shown in plugin area when trying to play content using the DivX plugin
19318        
19319        Defer calling SetWindow for the DivX plugin, just like we do with the WMP plugin.
19320                
19321        * plugins/win/PluginViewWin.cpp:
19322        (WebCore::PluginViewWin::determineQuirks):
19323
193242007-07-03  Sam Weinig  <sam@webkit.org>
19325
19326        Reviewed by Brady Eidson.
19327
19328        Ninth round of fixes for implicit 64-32 bit conversion errors.
19329        <rdar://problem/5292262>
19330
19331        - Fix function signature to use unsigned long instead of unsigned long long.
19332
19333        * loader/ProgressTracker.cpp:
19334        (WebCore::ProgressTracker::completeProgress):
19335        * loader/ProgressTracker.h:
19336
193372007-07-03  Sam Weinig  <sam@webkit.org>
19338
19339        Reviewed by Oliver.
19340
19341        Eighth round of fixes for implicit 64-32 bit conversion errors.
19342        <rdar://problem/5292262>
19343
19344        - Convert SVG implementation files to use floats instead of doubles
19345          to match the spec/IDLs.
19346
19347        * bindings/scripts/CodeGeneratorJS.pm:
19348        * ksvg2/svg/SVGAngle.cpp:
19349        * ksvg2/svg/SVGAnimatedTemplate.h:
19350        * ksvg2/svg/SVGAnimationElement.cpp:
19351        (WebCore::SVGAnimationElement::getEndTime):
19352        (WebCore::SVGAnimationElement::getStartTime):
19353        (WebCore::SVGAnimationElement::getCurrentTime):
19354        (WebCore::SVGAnimationElement::getSimpleDuration):
19355        * ksvg2/svg/SVGAnimationElement.h:
19356        * ksvg2/svg/SVGFitToViewBox.cpp:
19357        (WebCore::SVGFitToViewBox::parseViewBox):
19358        * ksvg2/svg/SVGLength.cpp:
19359        (WebCore::SVGLength::setValueAsString):
19360        * ksvg2/svg/SVGLinearGradientElement.cpp:
19361        (WebCore::SVGLinearGradientElement::buildGradient):
19362        * ksvg2/svg/SVGMatrix.idl:
19363        * ksvg2/svg/SVGNumber.idl:
19364        * ksvg2/svg/SVGParserUtilities.cpp:
19365        (WebCore::SVGPathParser::parseSVG):
19366        (WebCore::SVGPathParser::calculateArc):
19367        (WebCore::SVGPathParser::svgLineToHorizontal):
19368        (WebCore::SVGPathParser::svgLineToVertical):
19369        (WebCore::SVGPathParser::svgCurveToCubicSmooth):
19370        (WebCore::SVGPathParser::svgCurveToQuadratic):
19371        (WebCore::SVGPathParser::svgCurveToQuadraticSmooth):
19372        (WebCore::SVGPathParser::svgArcTo):
19373        * ksvg2/svg/SVGParserUtilities.h:
19374        * ksvg2/svg/SVGPathElement.cpp:
19375        (WebCore::SVGPathElement::SVGPathElement):
19376        (WebCore::SVGPathElement::getTotalLength):
19377        (WebCore::SVGPathElement::getPointAtLength):
19378        (WebCore::SVGPathElement::getPathSegAtLength):
19379        (WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
19380        (WebCore::SVGPathElement::createSVGPathSegMovetoRel):
19381        (WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
19382        (WebCore::SVGPathElement::createSVGPathSegLinetoRel):
19383        (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
19384        (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
19385        (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
19386        (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
19387        (WebCore::SVGPathElement::createSVGPathSegArcAbs):
19388        (WebCore::SVGPathElement::createSVGPathSegArcRel):
19389        (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
19390        (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
19391        (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
19392        (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
19393        (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
19394        (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
19395        (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
19396        (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):
19397        (WebCore::SVGPathElement::svgMoveTo):
19398        (WebCore::SVGPathElement::svgLineTo):
19399        (WebCore::SVGPathElement::svgLineToHorizontal):
19400        (WebCore::SVGPathElement::svgLineToVertical):
19401        (WebCore::SVGPathElement::svgCurveToCubic):
19402        (WebCore::SVGPathElement::svgCurveToCubicSmooth):
19403        (WebCore::SVGPathElement::svgCurveToQuadratic):
19404        (WebCore::SVGPathElement::svgCurveToQuadraticSmooth):
19405        (WebCore::SVGPathElement::svgArcTo):
19406        (WebCore::SVGPathElement::parseMappedAttribute):
19407        * ksvg2/svg/SVGPathElement.h:
19408        * ksvg2/svg/SVGPathSegArc.cpp:
19409        (WebCore::SVGPathSegArcAbs::SVGPathSegArcAbs):
19410        (WebCore::SVGPathSegArcAbs::setX):
19411        (WebCore::SVGPathSegArcAbs::x):
19412        (WebCore::SVGPathSegArcAbs::setY):
19413        (WebCore::SVGPathSegArcAbs::y):
19414        (WebCore::SVGPathSegArcAbs::setR1):
19415        (WebCore::SVGPathSegArcAbs::r1):
19416        (WebCore::SVGPathSegArcAbs::setR2):
19417        (WebCore::SVGPathSegArcAbs::r2):
19418        (WebCore::SVGPathSegArcAbs::setAngle):
19419        (WebCore::SVGPathSegArcAbs::angle):
19420        (WebCore::SVGPathSegArcRel::SVGPathSegArcRel):
19421        (WebCore::SVGPathSegArcRel::setX):
19422        (WebCore::SVGPathSegArcRel::x):
19423        (WebCore::SVGPathSegArcRel::setY):
19424        (WebCore::SVGPathSegArcRel::y):
19425        (WebCore::SVGPathSegArcRel::setR1):
19426        (WebCore::SVGPathSegArcRel::r1):
19427        (WebCore::SVGPathSegArcRel::setR2):
19428        (WebCore::SVGPathSegArcRel::r2):
19429        (WebCore::SVGPathSegArcRel::setAngle):
19430        (WebCore::SVGPathSegArcRel::angle):
19431        * ksvg2/svg/SVGPathSegArc.h:
19432        * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
19433        (WebCore::SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs):
19434        (WebCore::SVGPathSegCurvetoCubicAbs::setX):
19435        (WebCore::SVGPathSegCurvetoCubicAbs::x):
19436        (WebCore::SVGPathSegCurvetoCubicAbs::setY):
19437        (WebCore::SVGPathSegCurvetoCubicAbs::y):
19438        (WebCore::SVGPathSegCurvetoCubicAbs::setX1):
19439        (WebCore::SVGPathSegCurvetoCubicAbs::x1):
19440        (WebCore::SVGPathSegCurvetoCubicAbs::setY1):
19441        (WebCore::SVGPathSegCurvetoCubicAbs::y1):
19442        (WebCore::SVGPathSegCurvetoCubicAbs::setX2):
19443        (WebCore::SVGPathSegCurvetoCubicAbs::x2):
19444        (WebCore::SVGPathSegCurvetoCubicAbs::setY2):
19445        (WebCore::SVGPathSegCurvetoCubicAbs::y2):
19446        (WebCore::SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel):
19447        (WebCore::SVGPathSegCurvetoCubicRel::setX):
19448        (WebCore::SVGPathSegCurvetoCubicRel::x):
19449        (WebCore::SVGPathSegCurvetoCubicRel::setY):
19450        (WebCore::SVGPathSegCurvetoCubicRel::y):
19451        (WebCore::SVGPathSegCurvetoCubicRel::setX1):
19452        (WebCore::SVGPathSegCurvetoCubicRel::x1):
19453        (WebCore::SVGPathSegCurvetoCubicRel::setY1):
19454        (WebCore::SVGPathSegCurvetoCubicRel::y1):
19455        (WebCore::SVGPathSegCurvetoCubicRel::setX2):
19456        (WebCore::SVGPathSegCurvetoCubicRel::x2):
19457        (WebCore::SVGPathSegCurvetoCubicRel::setY2):
19458        (WebCore::SVGPathSegCurvetoCubicRel::y2):
19459        * ksvg2/svg/SVGPathSegCurvetoCubic.h:
19460        * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
19461        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs):
19462        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setX):
19463        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::x):
19464        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setY):
19465        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::y):
19466        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setX2):
19467        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::x2):
19468        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::setY2):
19469        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::y2):
19470        (WebCore::SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel):
19471        (WebCore::SVGPathSegCurvetoCubicSmoothRel::setX):
19472        (WebCore::SVGPathSegCurvetoCubicSmoothRel::x):
19473        (WebCore::SVGPathSegCurvetoCubicSmoothRel::setY):
19474        (WebCore::SVGPathSegCurvetoCubicSmoothRel::y):
19475        (WebCore::SVGPathSegCurvetoCubicSmoothRel::setX2):
19476        (WebCore::SVGPathSegCurvetoCubicSmoothRel::x2):
19477        (WebCore::SVGPathSegCurvetoCubicSmoothRel::setY2):
19478        (WebCore::SVGPathSegCurvetoCubicSmoothRel::y2):
19479        * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
19480        * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
19481        (WebCore::SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs):
19482        (WebCore::SVGPathSegCurvetoQuadraticAbs::setX):
19483        (WebCore::SVGPathSegCurvetoQuadraticAbs::x):
19484        (WebCore::SVGPathSegCurvetoQuadraticAbs::setY):
19485        (WebCore::SVGPathSegCurvetoQuadraticAbs::y):
19486        (WebCore::SVGPathSegCurvetoQuadraticAbs::setX1):
19487        (WebCore::SVGPathSegCurvetoQuadraticAbs::x1):
19488        (WebCore::SVGPathSegCurvetoQuadraticAbs::setY1):
19489        (WebCore::SVGPathSegCurvetoQuadraticAbs::y1):
19490        (WebCore::SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel):
19491        (WebCore::SVGPathSegCurvetoQuadraticRel::setX):
19492        (WebCore::SVGPathSegCurvetoQuadraticRel::x):
19493        (WebCore::SVGPathSegCurvetoQuadraticRel::setY):
19494        (WebCore::SVGPathSegCurvetoQuadraticRel::y):
19495        (WebCore::SVGPathSegCurvetoQuadraticRel::setX1):
19496        (WebCore::SVGPathSegCurvetoQuadraticRel::x1):
19497        (WebCore::SVGPathSegCurvetoQuadraticRel::setY1):
19498        (WebCore::SVGPathSegCurvetoQuadraticRel::y1):
19499        * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
19500        (WebCore::SVGPathSegCurvetoQuadraticRel::toString):
19501        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
19502        (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs):
19503        (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::setX):
19504        (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::x):
19505        (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::setY):
19506        (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::y):
19507        (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel):
19508        (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::setX):
19509        (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::x):
19510        (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::setY):
19511        (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::y):
19512        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
19513        * ksvg2/svg/SVGPathSegLineto.cpp:
19514        (WebCore::SVGPathSegLinetoAbs::SVGPathSegLinetoAbs):
19515        (WebCore::SVGPathSegLinetoAbs::setX):
19516        (WebCore::SVGPathSegLinetoAbs::x):
19517        (WebCore::SVGPathSegLinetoAbs::setY):
19518        (WebCore::SVGPathSegLinetoAbs::y):
19519        (WebCore::SVGPathSegLinetoRel::SVGPathSegLinetoRel):
19520        (WebCore::SVGPathSegLinetoRel::setX):
19521        (WebCore::SVGPathSegLinetoRel::x):
19522        (WebCore::SVGPathSegLinetoRel::setY):
19523        (WebCore::SVGPathSegLinetoRel::y):
19524        * ksvg2/svg/SVGPathSegLineto.h:
19525        * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
19526        (WebCore::SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs):
19527        (WebCore::SVGPathSegLinetoHorizontalAbs::setX):
19528        (WebCore::SVGPathSegLinetoHorizontalAbs::x):
19529        (WebCore::SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel):
19530        (WebCore::SVGPathSegLinetoHorizontalRel::setX):
19531        (WebCore::SVGPathSegLinetoHorizontalRel::x):
19532        * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
19533        * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
19534        (WebCore::SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs):
19535        (WebCore::SVGPathSegLinetoVerticalAbs::setY):
19536        (WebCore::SVGPathSegLinetoVerticalAbs::y):
19537        (WebCore::SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel):
19538        (WebCore::SVGPathSegLinetoVerticalRel::setY):
19539        (WebCore::SVGPathSegLinetoVerticalRel::y):
19540        * ksvg2/svg/SVGPathSegLinetoVertical.h:
19541        * ksvg2/svg/SVGPathSegList.cpp:
19542        (WebCore::SVGPathSegList::getPathSegAtLength):
19543        * ksvg2/svg/SVGPathSegList.h:
19544        * ksvg2/svg/SVGPathSegMoveto.cpp:
19545        (WebCore::SVGPathSegMovetoAbs::SVGPathSegMovetoAbs):
19546        (WebCore::SVGPathSegMovetoAbs::setX):
19547        (WebCore::SVGPathSegMovetoAbs::x):
19548        (WebCore::SVGPathSegMovetoAbs::setY):
19549        (WebCore::SVGPathSegMovetoAbs::y):
19550        (WebCore::SVGPathSegMovetoRel::SVGPathSegMovetoRel):
19551        (WebCore::SVGPathSegMovetoRel::setX):
19552        (WebCore::SVGPathSegMovetoRel::x):
19553        (WebCore::SVGPathSegMovetoRel::setY):
19554        (WebCore::SVGPathSegMovetoRel::y):
19555        * ksvg2/svg/SVGPathSegMoveto.h:
19556        * ksvg2/svg/SVGPolyElement.cpp:
19557        (WebCore::SVGPolyElement::svgPolyTo):
19558        * ksvg2/svg/SVGRadialGradientElement.cpp:
19559        (WebCore::SVGRadialGradientElement::buildGradient):
19560        * ksvg2/svg/SVGSVGElement.cpp:
19561        (WebCore::SVGSVGElement::viewport):
19562        (WebCore::SVGSVGElement::getCurrentTime):
19563        * ksvg2/svg/SVGStopElement.cpp:
19564        (WebCore::SVGStopElement::SVGStopElement):
19565        (WebCore::SVGStopElement::parseMappedAttribute):
19566        * ksvg2/svg/SVGStopElement.h:
19567        * ksvg2/svg/SVGTransform.cpp:
19568        (SVGTransform::translate):
19569        (SVGTransform::scale):
19570        * ksvg2/svg/SVGTransformDistance.cpp:
19571        (WebCore::SVGTransformDistance::addToSVGTransform):
19572        (WebCore::SVGTransformDistance::distance):
19573        * ksvg2/svg/SVGTransformable.cpp:
19574        (WebCore::SVGTransformable::parseTransformAttribute):
19575
195762007-07-03  Anders Carlsson  <andersca@apple.com>
19577
19578        Reviewed by Darin.
19579
19580        <rdar://problem/5289718>
19581        http://bugs.webkit.org/show_bug.cgi?id=14437
19582        CrashTracer: [REGRESSION] 76 crashes in Safari at com.apple.WebCore: WebCore::Frame::settings const + 6 (14437)
19583        
19584        Based on a patch from Maxime Britto.
19585        
19586        * page/mac/WebCoreFrameBridge.mm:
19587        (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
19588        If the script caused the frame to go away, return nil. This can only happen if a plugin in a subframe destroys
19589        its frame.
19590
19591        (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]):
19592        ASSERT that this is only called on the main frame.
19593
195942007-07-03  John Sullivan  <sullivan@apple.com>
19595
19596        Written by Darin, reviewed by me
19597        
19598        - fixed <rdar://problem/5249730> REGRESSION (Leopard, around 9A464): Safari opens the same local 
19599          documents more than once due to canonicalization change
19600
19601        * loader/mac/LoaderNSURLExtras.m:
19602        (canonicalURL):
19603        pass URL through KURL so we get KURL's version of canonicalization as well as
19604        NSURLProtocol's version of canonicalization
19605
196062007-07-03  Sam Weinig  <sam@webkit.org>
19607
19608        Reviewed by Darin.
19609
19610        Seventh round of fixes for implicit 64-32 bit conversion errors.
19611        <rdar://problem/5292262>
19612
19613        - Adds more narrowPrecision functions to FloatPoint, FloatSize and FloatRect.
19614        - Changes over more implicit conversions to use new functions.
19615
19616        * bindings/js/kjs_window.cpp:
19617        (KJS::WindowFunc::callAsFunction):
19618        * platform/graphics/FloatPoint.cpp:
19619        (WebCore::FloatPoint::matrixTransform):
19620        (WebCore::FloatPoint::narrowPrecision):
19621        * platform/graphics/FloatPoint.h:
19622        * platform/graphics/FloatRect.cpp:
19623        (WebCore::FloatRect::narrowPrecision):
19624        * platform/graphics/FloatRect.h:
19625        * platform/graphics/FloatSize.cpp:
19626        (WebCore::FloatSize::narrowPrecision):
19627        * platform/graphics/FloatSize.h:
19628        * platform/graphics/Path.cpp:
19629        (WebCore::Path::createRoundedRectangle):
19630        (WebCore::Path::createRectangle):
19631        (WebCore::Path::createEllipse):
19632        * platform/graphics/mac/ColorMac.mm:
19633        (WebCore::nsColor):
19634        * platform/graphics/mac/IconMac.mm:
19635        (WebCore::Icon::paint):
19636        * platform/graphics/svg/cg/CgSupport.cpp:
19637        (WebCore::applyStrokeStyleToContext):
19638        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
19639        (WebCore::CGShadingRefForRadialGradient):
19640        (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
19641        (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
19642        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
19643        (WebCore::applyLuminanceToAlphaFilter):
19644        (WebCore::applyExpandAlphatoGrayscaleFilter):
19645        (WebCore::transformImageIntoGrayscaleMask):
19646        * platform/mac/WebCoreTextRenderer.mm:
19647        (WebCoreDrawTextAtPoint):
19648        * rendering/RenderPath.cpp:
19649        (WebCore::RenderPath::mapAbsolutePointToLocal):
19650        * rendering/RenderSVGContainer.cpp:
19651        (WebCore::RenderSVGContainer::calcViewport):
19652        * rendering/RenderSVGImage.cpp:
19653        (WebCore::RenderSVGImage::nodeAtPoint):
19654        * rendering/RenderSVGText.cpp:
19655        (WebCore::RenderSVGText::relativeBBox):
19656
196572007-07-03  Anders Carlsson  <andersca@apple.com>
19658
19659        Reviewed by Adam.
19660
19661        <rdar://problem/5261523>
19662        Crash playing MP11 on cnbc.com
19663        
19664        The WMP Netscape plugin still creates a window even when windowless mode is turned on. Work around this by
19665        always removing the "windowlessvideo" parameter before passing it to the plugin.
19666        According to http://msdn2.microsoft.com/en-us/library/bb249373.aspx, "The windowlessVideo property is not 
19667        supported for Netscape Navigator. Setting a value for this property in Navigator may yield unexpected results."
19668        
19669        * plugins/win/PluginViewWin.cpp:
19670        (WebCore::PluginViewWndProc):
19671        (WebCore::PluginViewWin::paint):
19672        (WebCore::PluginViewWin::invalidateRect):
19673        (WebCore::PluginViewWin::determineQuirks):
19674        (WebCore::PluginViewWin::setParameters):
19675        (WebCore::PluginViewWin::PluginViewWin):
19676        (WebCore::PluginViewWin::init):
19677        * plugins/win/PluginViewWin.h:
19678        (WebCore::):
19679
196802007-07-03  Qing Zhao  <qing@staikos.net>
19681
19682        Reviewed by George Staikos.
19683
19684        Only draw sunken state for appropriate widgets. Not, for example, for
19685        lineedits.
19686
19687        * platform/qt/RenderThemeQt.cpp:
19688        (WebCore::RenderThemeQt::applyTheme):
19689
196902007-07-03  Antti Koivisto  <antti@apple.com>
19691
19692        Reviewed by Maciej.
19693        
19694        REGRESSION: misplaced selection ring remains after link is no longer focused.
19695        <rdar://problem/5205580>
19696        
19697        Fix placement of selection ring when part of the ring is in a different layer.
19698
19699        * rendering/RenderFlow.cpp:
19700        (WebCore::RenderFlow::addFocusRingRects): Get coordinates right when moving to a different layer.
19701        * rendering/RenderObject.cpp:
19702        (WebCore::RenderObject::setStyle): 
19703        Don't reset state variables when not necessary.  When repaint() was called at the end of setSyle() it would
19704        get repaint rects wrong in some cases.
19705
197062007-07-03  Antti Koivisto  <antti@apple.com>
19707
19708        Reviewed by Maciej.
19709
19710        Blind fix for CrashTracer: [USER] 25 crashes in Safari at com.apple.WebCore: WebCore::Frame::document const + 6
19711        <rdar://problem/5263939>
19712        
19713        No one has managed to reproduce this but it looks like null check is needed here. There are plausible ways
19714        m_frame could be null for a live FrameView object.
19715
19716        * page/FrameView.cpp:
19717        (WebCore::FrameView::needsLayout):
19718
197192007-07-02  Oliver Hunt  <oliver@apple.com>
19720
19721        Reviewed by Darin.
19722
19723        Fix for <rdar://problem/5098378> single-pixel image optimization needs to be rewritten to not depend on floating point bitmap
19724        Tested by fast/replaced/image-solid-color-with-alpha.html
19725
19726        Switch from float to byte based bitmap when pulling the color from 1x1 pixel images so
19727        that we can use the single pixel image optimisation in WebKit/win.
19728
19729        * platform/graphics/cg/ImageCG.cpp:
19730        (WebCore::BitmapImage::checkForSolidColor):
19731
197322007-07-02  Adam Roben  <aroben@apple.com>
19733
19734        Fix Bug 14498: RenderContainer::positionForCoordinates contains an order of operations error
19735        http://bugs.webkit.org/show_bug.cgi?id=14498
19736
19737        There were two bugs:
19738        1) xPos/yPos were flipped
19739        2) + binds tighter than ?:, so the order of operations was incorrect
19740
19741        Reviewed by Darin.
19742
19743        Test: fast/inline-block/14498-positionForCoordinates.html
19744
19745        * rendering/RenderContainer.cpp:
19746        (WebCore::RenderContainer::positionForCoordinates):
19747
197482007-07-02  Darin Adler  <darin@apple.com>
19749
19750        Reviewed by Kevin Decker and Tim Hatcher.
19751
19752        - fix <rdar://problem/5307906> some classes need finalize methods because
19753          of non-trivial work done in dealloc methods
19754
19755        * bindings/objc/DOMRGBColor.mm:
19756        (+[DOMRGBColor initialize]): Added. Tells finalizer to run on main thread,
19757        which is needed because we are sharing a CFDictionary here with no locking.
19758
19759        * bridge/mac/WebCoreAXObject.mm:
19760        (+[WebCoreAXObject initialize]): Added. Tells finalizer to run on main thread.
19761        (-[WebCoreAXObject finalize]): Added. Calls detach.
19762
19763        * WebCore.xcodeproj/project.pbxproj: Let Xcode do what it wants to do.
19764
197652007-07-02  Sam Weinig  <sam@webkit.org>
19766
19767        Reviewed by Darin.
19768
19769        Sixth round of fixes for implicit 64-32 bit conversion errors.
19770        <rdar://problem/5292262>
19771
19772        Use new narrowPrecisionToFloat() and narrowPrecisionToCGFloat() where
19773        appropriate.
19774
19775        * html/CanvasRenderingContext2D.cpp:
19776        (WebCore::CanvasRenderingContext2D::setShadow):
19777        (WebCore::CanvasRenderingContext2D::applyShadow):
19778        * html/CanvasStyle.cpp:
19779        (WebCore::CanvasStyle::applyStrokeColor):
19780        (WebCore::CanvasStyle::applyFillColor):
19781        * ksvg2/svg/SVGAngle.cpp:
19782        * ksvg2/svg/SVGAnimationElement.cpp:
19783        (WebCore::SVGAnimationElement::parseKeyNumbers):
19784        (WebCore::parseKeySplines):
19785        (WebCore::SVGAnimationElement::handleTimerEvent):
19786        (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
19787        * ksvg2/svg/SVGPatternElement.cpp:
19788        (WebCore::SVGPatternElement::buildPattern):
19789        * ksvg2/svg/SVGRadialGradientElement.cpp:
19790        (WebCore::SVGRadialGradientElement::buildGradient):
19791        * platform/graphics/cg/AffineTransformCG.cpp:
19792        (WebCore::AffineTransform::AffineTransform):
19793        (WebCore::AffineTransform::setMatrix):
19794        (WebCore::AffineTransform::map):
19795        (WebCore::AffineTransform::setA):
19796        (WebCore::AffineTransform::setB):
19797        (WebCore::AffineTransform::setC):
19798        (WebCore::AffineTransform::setD):
19799        (WebCore::AffineTransform::setE):
19800        (WebCore::AffineTransform::setF):
19801        (WebCore::AffineTransform::scale):
19802        (WebCore::AffineTransform::rotate):
19803        (WebCore::AffineTransform::translate):
19804        (WebCore::AffineTransform::shear):
19805
198062007-07-02  John Sullivan  <sullivan@apple.com>
19807
19808        * page/mac/WebCoreFrameBridge.mm:
19809        (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
19810        added a comment
19811
198122007-07-02  Sam Weinig  <sam@webkit.org>
19813
19814        Rubberstamped by Darin.
19815
19816        Rename FloatConversionUtilities.h to FloatConversion.h.
19817        Fix Win32 build.
19818
19819        * WebCore.vcproj/WebCore.vcproj:
19820        * WebCore.xcodeproj/project.pbxproj:
19821        * platform/DeprecatedString.cpp:
19822        * platform/FloatConversion.h: Copied from platform/FloatConversionUtilities.h.
19823        * platform/FloatConversionUtilities.h: Removed.
19824        * platform/StringImpl.cpp:
19825
198262007-07-02  Sam Weinig  <sam@webkit.org>
19827
19828        Reviewed by Darin.
19829
19830        Fifth round of fixes for implicit 64-32 bit conversion errors.
19831        <rdar://problem/5292262>
19832
19833        Add toFloat() method to string classes and use it where appropriate.
19834
19835        * WebCore.xcodeproj/project.pbxproj:
19836        * css/cssparser.cpp:
19837        (WebCore::CSSParser::lex):
19838        * ksvg2/svg/SVGAngle.cpp:
19839        (WebCore::SVGAngle::setValueAsString):
19840        * platform/AtomicString.h:
19841        (WebCore::AtomicString::toFloat):
19842        * platform/DeprecatedString.cpp:
19843        (WebCore::DeprecatedString::toFloat):
19844        * platform/DeprecatedString.h:
19845        * platform/FloatConversionUtilities.h: Added.
19846        (WebCore::narrowPrecisionToFloat):
19847        (WebCore::narrowPrecisionToCGFloat):
19848        * platform/PlatformString.h:
19849        * platform/String.cpp:
19850        (WebCore::String::toFloat):
19851        * platform/StringImpl.cpp:
19852        (WebCore::StringImpl::toFloat):
19853        * platform/StringImpl.h:
19854
198552007-07-02  Sam Weinig  <sam@webkit.org>
19856
19857        Reviewed by Kevin McCullough.
19858
19859        Fourth round of fixes for implicit 64-32 bit conversion errors.
19860        <rdar://problem/5292262>
19861
19862        Use new piDouble and piFloat constants instead of M_PI.
19863
19864        * html/CanvasRenderingContext2D.cpp:
19865        (WebCore::CanvasRenderingContext2D::rotate):
19866        * ksvg2/svg/SVGParserUtilities.cpp:
19867        (WebCore::SVGPathParser::calculateArc):
19868        * platform/graphics/Path.cpp:
19869        (WebCore::pathLengthApplierFunction):
19870        (WebCore::Path::createEllipse):
19871        * platform/graphics/cg/GraphicsContextCG.cpp:
19872        (WebCore::GraphicsContext::drawEllipse):
19873        (WebCore::GraphicsContext::strokeArc):
19874        * platform/graphics/cg/PDFDocumentImage.cpp:
19875        (WebCore::PDFDocumentImage::setCurrentPage):
19876        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
19877        * rendering/RenderPath.cpp:
19878        (WebCore::drawMarkerWithData):
19879
198802007-07-01  Adam Roben  <aroben@apple.com>
19881
19882        Clarify/fix {Shadow,BorderImage}ParseContext's memory management
19883
19884        Prefast emitted warnings that drew my attention to
19885        {Shadow,BorderImage}ParseContext::failed().  It turned out that these
19886        methods were actually correct, but rather confusing. "failed" really
19887        meant "abort and clean up" rather than "did you fail?", which was
19888        unclear. However, once I figured that out, the "and clean up" part was
19889        still a bit confusing, because all failed() did was to set a flag that
19890        would later cause the ParseContext's members to be deleted in the
19891        destructor. To clear this up, I've gotten rid of the failed() method
19892        altogether. It always returned false, so I've replaced all calls to
19893        it with the value false.
19894
19895        I also noticed that the lifetime management of the ParseContexts'
19896        members was in all cases confusing, and in some cases wrong. The
19897        m_border{Top,Right,Bottom,Left} members of BorderImageParseContext
19898        were leaked whenever a border-image property was successfully parsed.
19899        I fixed that by holding these members in OwnPtrs. The
19900        CSSPrimitiveValue members of {Shadow,BorderImage}ParseContext, which
19901        inherit from Shared, were being explicitly deleted, which is not a
19902        safe way to manage the lifetime of objects that inherit from Shared.
19903        To fix this, I put those members inside RefPtrs. These two changes
19904        allowed me to remove the destructors entirely.
19905
19906        Reviewed by Darin.
19907
19908        All regression tests pass.
19909
19910        * css/cssparser.cpp:
19911        (WebCore::ShadowParseContext::commitValue): Use .release() to avoid
19912        ref-count churn.
19913        (WebCore::ShadowParseContext::commitLength): Use a RefPtr for the new
19914        value to avoid a leak.
19915        (WebCore::CSSParser::parseShadow): Use 'false' instead of
19916        'context.failed()', and use .release() to avoid ref-count churn.
19917        (WebCore::BorderImageParseContext::commitWidth): Updated to use
19918        OwnPtr.
19919        (WebCore::CSSParser::parseBorderImage): Use 'false' instead of
19920        'context.failed'.
19921
199222007-07-01  Anders Carlsson  <andersca@apple.com>
19923
19924        Reviewed by John Sullivan.
19925
19926        <rdar://problem/5297146>
19927        Crash in Mail at WebCore::Frame::setUserStyleSheetLocation (reproducible w/ particular message)
19928        
19929        * loader/Cache.cpp:
19930        (WebCore::Cache::requestResource):
19931        Only insert the resource in the LRU list if the cache is enabled.
19932        
19933        (WebCore::Cache::insertInLRUList):
19934        (WebCore::Cache::resourceAccessed):
19935        Assert that the resource is in the cache.
19936
199372007-07-01  Darin Adler  <darin@apple.com>
19938
19939        * css/tokenizer.flex: Rolled out the fix for 14453.
19940        The layout test wasn't passing. We'll try again.
19941
199422007-07-01  Adam Roben  <aroben@apple.com>
19943
19944        Fix a crash in ~PluginViewWin()
19945
19946        This crash was introduced in r23827.
19947
19948        Reviewed by Anders.
19949
19950        Fixes dom/html/level2/html/HTMLAnchorElement01.html
19951
19952        * plugins/win/PluginViewWin.cpp:
19953        (WebCore::PluginViewWin::~PluginViewWin): Allow m_plugin to be null.
19954
199552007-07-01  Rob Buis  <buis@kde.org>
19956
19957        Reviewed by Darin.
19958
19959        http://bugs.webkit.org/show_bug.cgi?id=14453
19960        REGRESSION: www.nzherald.co.nz almost all the formating is gone
19961 
19962        * css/tokenizer.flex: Allow hex colors with 2, 4, or 5 hex digits.
19963
199642007-07-01  Sam Weinig  <sam@webkit.org>
19965
19966        Reviewed by Oliver.
19967
19968        Third round of implicit 64-32 bit conversion errors fixes.
19969        <rdar://problem/5292262>
19970
19971        - Use new CSSPrimitiveValue::getDoubleValue() and CSSPrimitiveValue::getIntValue()
19972          methods instead of CSSPrimitiveValue::getFloatValue() where appropriate.
19973
19974        * css/CSSPrimitiveValue.cpp:
19975        (WebCore::CSSPrimitiveValue::computeLengthInt):
19976        (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
19977        (WebCore::CSSPrimitiveValue::computeLengthShort):
19978        (WebCore::CSSPrimitiveValue::computeLengthFloat):
19979        (WebCore::CSSPrimitiveValue::computeLengthDouble):
19980        (WebCore::CSSPrimitiveValue::getDoubleValue):
19981        * css/CSSPrimitiveValue.h:
19982        (WebCore::CSSPrimitiveValue::getDoubleValue):
19983        (WebCore::CSSPrimitiveValue::getFloatValue):
19984        (WebCore::CSSPrimitiveValue::getIntValue):
19985        * css/Counter.h:
19986        (WebCore::Counter::listStyleNumber):
19987        * css/MediaQueryEvaluator.cpp:
19988        (WebCore::parseAspectRatio):
19989        * css/cssparser.cpp:
19990        (WebCore::BorderImageParseContext::commitBorderImage):
19991        * css/cssstyleselector.cpp:
19992        (WebCore::convertToLength):
19993        (WebCore::applyCounterList):
19994        (WebCore::CSSStyleSelector::applyProperty):
19995        (WebCore::CSSStyleSelector::mapBackgroundSize):
19996        (WebCore::CSSStyleSelector::mapBackgroundXPosition):
19997        (WebCore::CSSStyleSelector::mapBackgroundYPosition):
19998        * html/HTMLTableElement.cpp:
19999        (WebCore::HTMLTableElement::parseMappedAttribute):
20000        * ksvg2/css/SVGCSSStyleSelector.cpp:
20001        (WebCore::CSSStyleSelector::applySVGProperty):
20002        * ksvg2/misc/KCanvasRenderingStyle.cpp:
20003        (WebCore::KSVGPainterFactory::cssPrimitiveToLength):
20004        (WebCore::KSVGPainterFactory::dashArrayFromRenderingStyle):
20005
200062007-07-01  Pamela Greene  <pamg.bugs@gmail.com>
20007
20008        Reviewed by Darin.
20009
20010        Fix for <http://bugs.webkit.org/show_bug.cgi?id=14320>
20011        Bug 14320: <canvas> gradient stops at identical offsets are applied in the wrong order
20012        <rdar://problem/5290084>
20013
20014        Use std::stable_sort() instead of qsort() to sort gradient stops.
20015        Adjust the comparison function accordingly.
20016
20017        * html/CanvasGradient.cpp:
20018        (WebCore::compareStops):
20019        (WebCore::CanvasGradient::findStop):
20020
200212007-07-01  Holger Hans Peter Freyther  <zecke@selfish.org>
20022
20023        Reviewed by Darin.
20024
20025        m_usesPageCache was not initialized. As the b/f cache is only
20026        implemented in the Mac port and WebView.mm is taking care of calling
20027        Settings::setUsesPageCache I decided to make it false by default.
20028
20029        * page/Settings.cpp:
20030        (WebCore::Settings::Settings): m_usesPageCache was not initialized
20031
200322007-07-01  Holger Hans Peter Freyther  <zecke@selfish.org>
20033
20034        Reviewed by Darin.
20035
20036        Inherited- and NonInheritedFlags is a bit field. But for comparsion
20037        the other part of the union _iflags/_niflags is used for comparions.
20038        This will compare 5 uninitialized bits of _iflags and 22 of _niflags.
20039        Make sure the unused bits have a specified value.
20040
20041        * ksvg2/css/SVGRenderStyle.h:
20042        (WebCore::SVGRenderStyle::setBitDefaults): Make sure the unused bits
20043        have a value as well.
20044
200452007-06-30  Adam Roben  <aroben@apple.com>
20046
20047        Compile WebCore with /W4 on Windows
20048
20049        Some more warnings were disabled globally, including assignment within
20050        a conditional, unused variable, and various warnings related to
20051        inability to instantiate opaque structs.
20052
20053        In addition, the "unreachable code" warning was turned off for
20054        CSSGrammar.cpp and XPathGrammar.cpp.
20055
20056        Reviewed by Oliver.
20057
20058        * WebCore.vcproj/WebCore.vcproj:
20059
200602007-06-29  Adam Roben  <aroben@apple.com>
20061
20062        Give CString an equality operator to fix a bug in HTMLFormElement::formData
20063
20064        The bug was spotted by MSVC /W4. The problem was that we were comparing
20065        a CString to a char* using ==, but CString had no equality operator.
20066        The result was that the CString was being cast to a const char* and a
20067        pointer comparison was being done, which would (essentially) always
20068        return false.
20069
20070        There are two parts to the fix: get rid of CString's const char*
20071        casting operator, and add an equality operator. Previous uses of the
20072        casting operator have been changed to use CString::data().
20073
20074        Test: http/misc/isindex-formdata.html
20075
20076        Reviewed by Oliver.
20077
20078        * dom/XMLTokenizer.cpp:
20079        (WebCore::parseXMLDocumentFragment):
20080        * html/HTMLDocument.cpp:
20081        (WebCore::HTMLDocument::determineParseMode):
20082        * html/HTMLFormElement.cpp:
20083        (WebCore::HTMLFormElement::formData):
20084        * loader/TextResourceDecoder.cpp:
20085        (WebCore::TextResourceDecoder::checkForCSSCharset):
20086        * platform/CString.cpp:
20087        (WebCore::operator==):
20088        * platform/CString.h:
20089        * platform/KURL.cpp:
20090        (WebCore::encodeRelativeString):
20091        * platform/StringImpl.cpp:
20092        (WebCore::StringImpl::toDouble):
20093        * platform/network/cf/FormDataStreamCFNet.cpp:
20094        (WebCore::setHTTPBody):
20095        * platform/network/mac/FormDataStreamMac.mm:
20096        (WebCore::setHTTPBody):
20097        * platform/win/ClipboardUtilitiesWin.cpp:
20098        (WebCore::markupToCF_HTML):
20099        * plugins/win/PluginPackageWin.cpp:
20100        (WebCore::splitString):
20101        * plugins/win/PluginStreamWin.cpp:
20102        (WebCore::PluginStreamWin::startStream):
20103        (WebCore::PluginStreamWin::destroyStream):
20104        (WebCore::PluginStreamWin::sendJavaScriptStream):
20105        (WebCore::PluginStreamWin::didFinishLoading):
20106        * plugins/win/PluginViewWin.cpp:
20107        (WebCore::PluginViewWin::start):
20108        (WebCore::createUTF8String):
20109        (WebCore::PluginViewWin::userAgent):
20110        * xml/XSLStyleSheet.cpp:
20111        (WebCore::XSLStyleSheet::locateStylesheetSubResource):
20112        * xml/XSLTProcessor.cpp:
20113        (WebCore::xsltParamArrayFromParameterMap):
20114
201152007-06-29  Adam Roben  <aroben@apple.com>
20116
20117        Initialize two variables that MSVC /W4 isn't smart enough to realize always get initialized
20118
20119        Reviewed by John.
20120
20121        * editing/Editor.cpp:
20122        (WebCore::Editor::advanceToNextMisspelling):
20123        * html/HTMLParser.cpp:
20124
201252007-06-29  Adam Roben  <aroben@apple.com>
20126
20127        Fix some possibly unitialized variables found by MSVC /W4
20128
20129        Reviewed by John.
20130
20131        * rendering/bidi.cpp:
20132        (WebCore::RenderBlock::layoutInlineChildren):
20133
201342007-06-29  Adam Roben  <aroben@apple.com>
20135
20136        Remove bogus cast found by MSVC /W4
20137
20138        Reviewed by John and Oliver.
20139
20140        * ksvg2/css/SVGCSSParser.cpp:
20141        (WebCore::CSSParser::parseSVGValue):
20142
201432007-06-29  Adam Roben  <aroben@apple.com>
20144
20145        Remove unused local functions uncovered by MSVC /W4
20146
20147        Reviewed by John and Oliver.
20148
20149        * platform/win/SearchPopupMenuWin.cpp:
20150        * rendering/RenderText.cpp:
20151
201522007-06-29  Adam Roben  <aroben@apple.com>
20153
20154        Don't take the address of temporary values to appease MSVC /W4
20155
20156        Reviewed by Oliver.
20157
20158        No regression test possible.
20159
20160        * platform/win/PopupMenuWin.cpp:
20161        (WebCore::PopupMenu::invalidateItem):
20162        (WebCore::PopupMenu::valueChanged):
20163        (WebCore::PopupWndProc):
20164        * platform/win/ScrollViewWin.cpp:
20165        (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
20166        * platform/win/UniscribeController.cpp:
20167        (WebCore::UniscribeController::shapeAndPlaceItem):
20168        * platform/win/WidgetWin.cpp:
20169        (WebCore::Widget::invalidateRect):
20170
201712007-06-29  Adam Roben  <aroben@apple.com>
20172
20173        Make an int -> UINT conversion explicit that MSVC /W4 complains about
20174
20175        Reviewed by John and Oliver.
20176
20177        No regression test possible.
20178
20179        * platform/win/SoundWin.cpp:
20180
201812007-06-29  Adam Roben  <aroben@apple.com>
20182
20183        Remove unreachable code uncovered by MSVC /W4
20184
20185        Reviewed by Oliver.
20186
20187        No regression test possible.
20188
20189        * html/CanvasRenderingContext2D.cpp:
20190        (WebCore::CanvasRenderingContext2D::createPattern):
20191        * html/HTMLAnchorElement.cpp:
20192        (WebCore::HTMLAnchorElement::isLiveLink):
20193        * html/HTMLElement.cpp:
20194        (WebCore::HTMLElement::contentEditable):
20195        * platform/DeprecatedString.cpp:
20196        (WebCore::allocateHandle):
20197        (WebCore::freeHandle):
20198        * plugins/win/npapi.cpp:
20199        (pluginViewForInstance):
20200        * rendering/RenderImage.cpp:
20201        (WebCore::RenderImage::isWidthSpecified):
20202        (WebCore::RenderImage::isHeightSpecified):
20203        * rendering/RenderTheme.cpp:
20204        (WebCore::RenderTheme::isControlStyled):
20205
202062007-06-29  John Sullivan  <sullivan@apple.com>
20207
20208        Reviewed by Oliver Hunt.
20209        
20210        - WebCore support for accessing the set of rectangles that encompass the selected text
20211        
20212        * page/Frame.h:
20213        * page/Frame.cpp:
20214        (WebCore::Frame::selectionTextRects):
20215        new function, fills in a passed Vector with the line box rects that represent the selected range
20216
20217        * rendering/RenderText.cpp:
20218        (WebCore::RenderText::addLineBoxRects):
20219        fixed off-by-one bug involving use of the confusing function InlineTextBox::end()
20220
20221        * WebCore.exp:
20222        exported symbol for this new function
20223
202242007-06-29  Justin Garcia  <justin.garcia@apple.com>
20225
20226        Reviewed by Harrison.
20227        
20228        <rdar://problem/5299513> REGRESSION: In Mail, a crash occurs when attempting to undo a newly created To Do
20229        
20230        Rolled out a change made in r23787.
20231        
20232        * editing/DeleteSelectionCommand.cpp:
20233        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
20234
202352007-06-29  Geoffrey Garen  <ggaren@apple.com>
20236
20237        Reviewed by Darin Adler, Anders Carlsson.
20238        
20239        Fixed <rdar://problem/5303567> REGRESSION: XMLHttpRequest.responseXML 
20240        returns NULL if response MIME type is not XML -- breaks Wikipedia widget
20241        
20242        The spec says that responseXML must return null for any HTTP response
20243        with a non-XML MIME type. Technically, that leaves non-HTTP responses
20244        free to do whatever they want.
20245
20246        * xml/xmlhttprequest.cpp:
20247        (WebCore::XMLHttpRequest::getResponseXML): Only return null for non-XML
20248        MIME types if the response was HTTP.
20249
202502007-06-29  Sam Weinig  <sam@webkit.org>
20251
20252        Reviewed by Darin.
20253
20254        Second pass at fixing implicit 64-32 bit conversion errors.
20255        <rdar://problem/5292262>
20256
20257        - Use new JSValue::toFloat() method instead of toNumber() where
20258          appropriate.
20259
20260        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
20261        (WebCore::JSCanvasRenderingContext2D::setFillColor):
20262        (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
20263        (WebCore::JSCanvasRenderingContext2D::strokeRect):
20264        (WebCore::JSCanvasRenderingContext2D::drawImage):
20265        (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
20266        (WebCore::JSCanvasRenderingContext2D::setShadow):
20267        * bindings/js/JSHTMLSelectElementCustom.cpp:
20268        (WebCore::JSHTMLSelectElement::remove):
20269        * bindings/js/JSSVGMatrixCustom.cpp:
20270        (WebCore::JSSVGMatrix::rotateFromVector):
20271        * bindings/js/kjs_events.cpp:
20272        (KJS::JSClipboardPrototypeFunction::callAsFunction):
20273        * bindings/scripts/CodeGeneratorJS.pm:
20274        * ksvg2/svg/SVGScriptElement.cpp:
20275        (WebCore::SVGScriptElement::executeScript):
20276
202772007-06-29  Adele Peterson  <adele@apple.com>
20278
20279        Rolling out fix for <rdar://problem/5301322> since it broke layout tests.
20280
20281        * html/HTMLInputElement.h:
20282        * html/HTMLTextAreaElement.h:
20283
202842007-06-29  Geoffrey Garen  <ggaren@apple.com>
20285
20286        Reviewed by Oliver Hunt.
20287
20288        Fixed <rdar://problem/4962298> REGRESSION: Synchronous XHR for missing 
20289        local file throws exception -- breaks Wikipedia widget
20290
20291        * WebCore.xcodeproj/project.pbxproj:
20292        * xml/xmlhttprequest.cpp:
20293        (WebCore::XMLHttpRequest::send): Don't throw exceptions for local files.
20294
202952007-06-29  Ada Chan  <adachan@apple.com>
20296
20297        Reviewed by Adam.
20298
20299        Fixed a previous fix to a signed/unsigned mismatch.
20300
20301        * plugins/win/PluginPackageWin.cpp:
20302        (WebCore::splitString):
20303
203042007-06-29  Adele Peterson  <adele@apple.com>
20305
20306        Reviewed by Ada and Kevin McCullough.
20307
20308        Fix for <rdar://problem/5301322> REGRESSION: Select All selects the whole page when used in readonly textareas
20309
20310        Implemented canSelectAll and selectAll for text fields and textareas, since they're special cases even when they're not editable.
20311
20312        Tests:
20313        fast/forms/input-readonly-select-all.html
20314        fast/forms/textarea-readonly-select-all.html
20315
20316        * html/HTMLInputElement.h:
20317        (WebCore::HTMLInputElement::canSelectAll):
20318        (WebCore::HTMLInputElement::selectAll):
20319        * html/HTMLTextAreaElement.h:
20320        (WebCore::HTMLTextAreaElement::canSelectAll):
20321        (WebCore::HTMLTextAreaElement::selectAll):
20322
203232007-06-29  Adam Roben  <aroben@apple.com>
20324
20325        Build fix
20326
20327        This is what happens when you test your patch on two OSs and then
20328        commit from the wrong one.
20329
20330        * rendering/RenderTextControl.cpp:
20331        (WebCore::RenderTextControl::valueChanged):
20332        (WebCore::RenderTextControl::itemText):
20333        (WebCore::RenderTextControl::itemIsSeparator):
20334
203352007-06-29  Adam Roben  <aroben@apple.com>
20336
20337        Start compiling WebCore with /W3 under MSVC
20338
20339        One warning was globally disabled: implicit conversion of int to bool.
20340
20341        Reviewed by Darin.
20342
20343        * WebCore.vcproj/WebCore.vcproj:
20344
203452007-06-29  Adam Roben  <aroben@apple.com>
20346
20347        Turn DeprecatedStringData's copy constructor into a static method to appease MSVC /W3
20348
20349        DeprecatedStringData now has no public copy constructor. The single
20350        call to the old one has been replaced with a call to the new
20351        DeprecatedStringData::createAndAdopt static method.
20352
20353        Reviewed by Darin.
20354
20355        All regression tests pass.
20356
20357        * platform/DeprecatedString.cpp:
20358        (WebCore::DeprecatedStringData::createAndAdopt):
20359        (WebCore::DeprecatedStringData::adopt):
20360        (WebCore::DeprecatedString::detachIfInternal):
20361        * platform/DeprecatedString.h:
20362
203632007-06-29  Adam Roben  <aroben@apple.com>
20364
20365        Fix more signed/unsigned mismatches uncovered by MSVC /W3
20366
20367        Reviewed by John.
20368
20369        No regression tests possible.
20370
20371        * platform/network/cf/ResourceResponseCFNet.cpp:
20372        (WebCore::filenameHasSaneExtension):
20373        * platform/win/FontDataWin.cpp:
20374        (WebCore::FontData::containsCharacters):
20375        * platform/win/PlatformScrollBarSafari.cpp:
20376        (WebCore::):
20377        * platform/win/UniscribeController.cpp:
20378        (WebCore::UniscribeController::advance):
20379        (WebCore::UniscribeController::shapeAndPlaceItem):
20380        * platform/win/WebCoreTextRenderer.cpp:
20381        (WebCore::doDrawTextAtPoint):
20382        * plugins/win/PluginDatabaseWin.cpp:
20383        (WebCore::parseVersionString):
20384        * plugins/win/PluginPackageWin.cpp:
20385        (WebCore::splitString):
20386        * plugins/win/PluginViewWin.cpp:
20387        (WebCore::freeStringArray):
20388        (WebCore::PluginViewWin::invalidateTimerFired):
20389
203902007-06-29  Adam Roben  <aroben@apple.com>
20391
20392        Change PopupMenuClient::listSize to return an int to appease warnings from MSVC /W3
20393
20394        Reviewed by John.
20395
20396        No regression test possible.
20397
20398        * html/HTMLSelectElement.cpp:
20399        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
20400        * platform/PopupMenuClient.h:
20401        * platform/win/PopupMenuWin.cpp:
20402        (WebCore::PopupMenu::calculatePositionAndSize):
20403        (WebCore::PopupMenu::focusFirst):
20404        (WebCore::PopupMenu::focusLast):
20405        (WebCore::PopupMenu::down):
20406        (WebCore::PopupMenu::up):
20407        (WebCore::PopupMenu::paint):
20408        * rendering/RenderMenuList.cpp:
20409        * rendering/RenderMenuList.h:
20410        * rendering/RenderTextControl.cpp:
20411        * rendering/RenderTextControl.h:
20412
204132007-06-29  Adam Roben  <aroben@apple.com>
20414
20415        Fix two typos spotted by MSVC /W3
20416
20417        Both typos were a semicolon following the condition of an if. This
20418        would cause the intended body of the if to always execute.
20419
20420        Unfortunately neither of these fixes are testable.
20421        BackForwardList::goForward is only called from WebBackForwardList, and
20422        the createDragImageFromImage bug would only manifest itself when
20423        CreateCompatibleDC failed.
20424
20425        Reviewed by Mark.
20426
20427        * history/BackForwardList.cpp:
20428        (WebCore::BackForwardList::goForward):
20429        * platform/win/DragImageWin.cpp:
20430        (WebCore::createDragImageFromImage):
20431
204322007-06-29  Adam Treat  <adam@staikos.net>
20433
20434        Reviewed by george Staikos.
20435
20436        Support horizontal and vertical scroll, and set the right units.
20437
20438        * platform/qt/WheelEventQt.cpp:
20439        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
20440
204412007-06-28  Adam Roben  <aroben@apple.com>
20442
20443        Get WebCore compiling with /W2 on Windows
20444
20445        Reviewed by Steve.
20446
20447        No regression tests affected.
20448
20449        * WebCore.vcproj/WebCore.vcproj: Turn the warning level up to 2, and
20450        disable two warnings: implicit int <=> float conversion, and class vs.
20451        struct inconsistency.
20452        * dom/CharacterData.cpp:
20453        (WebCore::CharacterData::deleteData): Cast to int before negating.
20454        * loader/Cache.cpp:
20455        (WebCore::Cache::remove): Ditto.
20456        * platform/graphics/Path.cpp:
20457        (WebCore::pathLengthApplierFunction): Consistently use floats.
20458        * platform/graphics/cg/GraphicsContextCG.cpp:
20459        (WebCore::GraphicsContext::drawEllipse): Ditto.
20460        * platform/win/GraphicsContextWin.cpp:
20461        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): Ditto.
20462
204632007-06-28  Geoffrey Garen  <ggaren@apple.com>
20464
20465        Reviewed by Maciej Stachowiak.
20466        
20467        Fixed <rdar://problem/5299005> DOM timers fire without a local autorelease 
20468        pool => pathologically high high water mark
20469        
20470        I couldn't measure any performance problems with iBench HTML or PLT.
20471
20472        * WebCore.xcodeproj/project.pbxproj: Changed .cpp file to be ObjC++.
20473        * platform/mac/SharedTimerMac.cpp:
20474        (WebCore::timerFired): Added autorelease pool.
20475
204762007-06-28  Mitz Pettel  <mitz@webkit.org>
20477
20478        Reviewed by Beth.
20479
20480        - fix http://bugs.webkit.org/show_bug.cgi?id=14118
20481          ASSERTION FAILED: !needsLayout() seen again
20482
20483        Test: fast/dynamic/recursive-layout.html
20484
20485        * page/FrameView.cpp:
20486        (WebCore::FrameView::layout): Removed the midLayout guards around
20487        the calls to invalidateSelection() and updateWidgetPositions(). Those
20488        calls may dirty the layout, but in that case they also update it, so
20489        they should be allowed to do it. Added an ASSERT to make sure that when
20490        they return, the root is not marked for layout.
20491
204922007-06-28  Sam Weinig  <sam@webkit.org>
20493
20494        Rubberstamped by Adam Roben.
20495
20496        Roll out r23861.  It caused the buildbot to fail on intel.
20497
20498        * page/Page.cpp:
20499        (WebCore::Page::goToItem):
20500
205012007-06-26  Maxime Britto  <mbritto@pleyo.com>
20502
20503        Reviewed by Geoff.
20504
20505        Patch for http://bugs.webkit.org/show_bug.cgi?id=13038
20506        ASSERTION FAILED: item->target().isEmpty() || m_mainFrame->tree()->find(item->target()) == m_mainFrame
20507
20508        Modification of an ASSERT on goToItem related to go back/forward in
20509        history.Don't need to check the frameset if the target is _blank.
20510
20511         * page/Page.cpp:
20512         (WebCore::Page::goToItem):
20513
205142007-06-28  Anders Carlsson  <andersca@apple.com>
20515
20516        Reviewed by Oliver.
20517
20518        <rdar://problem/5234139>
20519        <object> with PNG src rendered as image document.
20520        
20521        Complete the URL before passing it to the frame loader client.
20522        
20523        * html/HTMLObjectElement.cpp:
20524        (WebCore::HTMLObjectElement::isImageType):
20525
205262007-06-28  Rob Buis  <buis@kde.org>
20527
20528        Reviewed by Maciej.
20529
20530        http://bugs.webkit.org/show_bug.cgi?id=14373
20531        CSS1: selectors (classes and IDs) cannot start with a dash or with a digit
20532
20533        Make sure the id selector validates against the CSS2.1 identfier
20534        definition, not the hexcolor/HASH definition.
20535
20536        * css/CSSGrammar.y:
20537        * css/cssparser.cpp:
20538        (WebCore::CSSParser::lex):
20539        (WebCore::CSSParser::text):
20540        * css/tokenizer.flex:
20541
205422007-06-28  Simon Hausmann  <hausmann@kde.org>
20543
20544        Reviewed by Zack.
20545
20546        Implemented PasteboardQt::writeSelection to copy the selected text into the Clipboard as well as PasteboardQt::plainText to retrieve plain text from the clipboard for pasting for example into form fields.
20547
20548        * platform/qt/PasteboardQt.cpp:
20549        (WebCore::Pasteboard::writeSelection):
20550
205512007-06-28  Antti Koivisto  <antti@apple.com>
20552
20553        Reviewed by Mitz.
20554        
20555        Fix http://bugs.webkit.org/show_bug.cgi?id=14332
20556        Bug 14332: REGRESSION (r21145): <td> width ignored
20557        <rdar://problem/5290123>
20558        
20559        Cells in table with non-zero cellpadding are not considered empty.
20560
20561        * rendering/AutoTableLayout.cpp:
20562        (WebCore::AutoTableLayout::recalcColumn):
20563
205642007-06-28  Adam Roben  <aroben@apple.com>
20565
20566        Fix <rdar://problem/5300455> Prefast: typo in RenderBlock::paintObject
20567
20568        Reviewed by Hyatt.
20569
20570        No layout test possible, as this bug didn't have any effect since
20571        "bool & bool" has the same value as "bool && bool"
20572
20573        * rendering/RenderBlock.cpp:
20574        (WebCore::RenderBlock::paintObject): Changed & to &&.
20575
205762007-06-28  Adam Roben  <aroben@apple.com>
20577
20578        Fix <rdar://problem/5300443> word-break and -webkit-user-modify allow any value
20579
20580        The bug was caused by two typos found by prefast.
20581
20582        Reviewed by Hyatt.
20583
20584        * css/cssparser.cpp:
20585        (WebCore::CSSParser::parseValue): Fixed typos.
20586
205872007-06-20  Matt Perry  <mpComplete@gmail.com>
20588
20589        Reviewed by Adam.
20590
20591        - Fix http://bugs.webkit.org/show_bug.cgi?id=14251:
20592          onchange handler for select controls doesn't fire when changing via keyboard
20593
20594        * html/HTMLSelectElement.cpp:
20595        (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Got rid of
20596        a call to saveLastSelection in the "Enter" key handler for select
20597        controls that was preventing onchange from firing.
20598
205992007-06-27  Sam Weinig  <sam@webkit.org>
20600
20601        Fix Gdk, Qt, and Win32 builds.
20602
20603        * WebCore.pro:
20604        * WebCore.vcproj/WebCore.vcproj:
20605
206062007-06-27  Sam Weinig  <sam@webkit.org>
20607
20608        Reviewed by Geoff.
20609
20610        Patch for http://bugs.webkit.org/show_bug.cgi?id=14319
20611        Move the Selection object out of the JS bindings
20612
20613        - Renames JS Object Selection to DOMSelection to avoid a name
20614          conflict.
20615
20616        * DerivedSources.make:
20617        * WebCore.xcodeproj/project.pbxproj:
20618        * bindings/js/kjs_window.cpp:
20619        (KJS::WindowPrivate::WindowPrivate):
20620        (KJS::Window::mark):
20621        (KJS::Window::clearHelperObjectProperties):
20622        (KJS::WindowFunc::callAsFunction):
20623        (KJS::Window::disconnectFrame):
20624        * bindings/js/kjs_window.h:
20625        (KJS::Window::):
20626        * page/DOMSelection.cpp: Added.
20627        (WebCore::DOMSelection::DOMSelection):
20628        (WebCore::DOMSelection::frame):
20629        (WebCore::DOMSelection::disconnectFrame):
20630        (WebCore::DOMSelection::anchorNode):
20631        (WebCore::DOMSelection::baseNode):
20632        (WebCore::DOMSelection::anchorOffset):
20633        (WebCore::DOMSelection::baseOffset):
20634        (WebCore::DOMSelection::focusNode):
20635        (WebCore::DOMSelection::extentNode):
20636        (WebCore::DOMSelection::focusOffset):
20637        (WebCore::DOMSelection::extentOffset):
20638        (WebCore::DOMSelection::isCollapsed):
20639        (WebCore::DOMSelection::type):
20640        (WebCore::DOMSelection::rangeCount):
20641        (WebCore::DOMSelection::collapse):
20642        (WebCore::DOMSelection::collapseToEnd):
20643        (WebCore::DOMSelection::collapseToStart):
20644        (WebCore::DOMSelection::empty):
20645        (WebCore::DOMSelection::setBaseAndExtent):
20646        (WebCore::DOMSelection::setPosition):
20647        (WebCore::DOMSelection::modify):
20648        (WebCore::DOMSelection::getRangeAt):
20649        (WebCore::DOMSelection::removeAllRanges):
20650        (WebCore::DOMSelection::addRange):
20651        (WebCore::DOMSelection::toString):
20652        * page/DOMSelection.h: Added.
20653        * page/DOMSelection.idl: Added.
20654        * page/DOMWindow.cpp:
20655        (WebCore::DOMWindow::disconnectFrame):
20656        (WebCore::DOMWindow::getSelection):
20657        * page/DOMWindow.h:
20658        * page/DOMWindow.idl:
20659
206602007-06-27  Sam Weinig  <sam@webkit.org>
20661
20662        Reviewed by Maciej.
20663
20664        2nd patch for http://bugs.webkit.org/show_bug.cgi?id=14111
20665        Autogenerate Event JS binding
20666
20667        - Cleanup kjs_events
20668
20669        * bindings/js/kjs_events.cpp:
20670        (WebCore::JSAbstractEventListener::JSAbstractEventListener):
20671        (WebCore::JSAbstractEventListener::handleEvent):
20672        (WebCore::JSAbstractEventListener::isHTMLEventListener):
20673        (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
20674        (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
20675        (WebCore::JSUnprotectedEventListener::listenerObj):
20676        (WebCore::JSUnprotectedEventListener::windowObj):
20677        (WebCore::JSUnprotectedEventListener::clearWindowObj):
20678        (WebCore::JSUnprotectedEventListener::mark):
20679        (WebCore::JSEventListener::JSEventListener):
20680        (WebCore::JSEventListener::~JSEventListener):
20681        (WebCore::JSEventListener::listenerObj):
20682        (WebCore::JSEventListener::windowObj):
20683        (WebCore::JSEventListener::clearWindowObj):
20684        (WebCore::JSLazyEventListener::JSLazyEventListener):
20685        (WebCore::JSLazyEventListener::listenerObj):
20686        (WebCore::JSLazyEventListener::parseCode):
20687        (WebCore::getNodeEventListener):
20688        (WebCore::JSClipboard::JSClipboard):
20689        (WebCore::JSClipboard::getValueProperty):
20690        (WebCore::JSClipboard::putValueProperty):
20691        (WebCore::JSClipboardPrototypeFunction::callAsFunction):
20692        (WebCore::toJS):
20693        (WebCore::toClipboard):
20694        * bindings/js/kjs_events.h:
20695        (WebCore::JSClipboard::classInfo):
20696        (WebCore::JSClipboard::impl):
20697        * bindings/js/kjs_window.h:
20698        * ksvg2/events/JSSVGLazyEventListener.h:
20699
207002007-06-27  Sam Weinig  <sam@webkit.org>
20701
20702        Reviewed by Adam Roben.
20703
20704        Patch for http://bugs.webkit.org/show_bug.cgi?id=12045
20705        Crash under gmalloc at WTF::RefPtr<WebCore::HTMLSliderThumbElement>::operator->
20706        <rdar://problem/5286670>
20707
20708        Test: fast/forms/thumbslider-no-parent-slider.html
20709        Test: fast/forms/thumbslider-crash.html
20710
20711        * rendering/RenderObject.h:
20712        (WebCore::RenderObject::isSlider):
20713        * rendering/RenderSlider.h:
20714        (WebCore::RenderSlider::isSlider):
20715        * rendering/RenderTheme.cpp:
20716        (WebCore::RenderTheme::paint): Only paint thumbslider
20717        if the parent renderer is a RenderSlider.
20718        * rendering/RenderThemeMac.mm:
20719        (WebCore::RenderThemeMac::paintSliderThumb):
20720        * rendering/RenderThemeSafari.cpp:
20721        (WebCore::RenderThemeSafari::paintSliderThumb):
20722
207232007-06-27  George Staikos  <staikos@kde.org>
20724
20725        Make Qt builds link when XSLT is turned off.
20726
20727        * WebCore.pro:
20728
207292007-06-27  Steve Falkenburg  <sfalken@apple.com>
20730
20731        Turn on static code analysis (Windows only).
20732
20733        Affects only folks that have Visual Studio Team Suite installed,
20734        or who have replaced their compiler with the version shipping in the
20735        Vista SDK.
20736        
20737        Reviewed by Oliver.
20738
20739        * WebCore.vcproj/WebCore.vcproj:
20740
207412007-06-27  George Staikos  <staikos@kde.org>
20742
20743        Remove old commented out files that no-longer exist.
20744
20745        * WebCore.pro:
20746
207472007-06-27  Justin Garcia  <justin.garcia@apple.com>
20748
20749        Reviewed by John.
20750
20751        <rdar://problem/5247341> REGRESSION: Pasting sometimes leaves out trailing newline
20752        
20753        Pasting with a trailing interchange newline doesn't work when pasting
20754        into an empty line.  Code that handles removing brs at the insertion
20755        position tries to also handle trailing interchange newlines by re-using
20756        those brs and fails.  Removed that code and handle all interchange
20757        newlines with code later in doApply().
20758
20759        * editing/ReplaceSelectionCommand.cpp:
20760        (WebCore::ReplaceSelectionCommand::doApply): Don't try to re-use the
20761        endBR when there's a trailing interchange newline.
20762        
207632007-06-27  Anders Carlsson  <andersca@apple.com>
20764
20765        Reviewed by Oliver.
20766
20767        <rdar://problem/5253950>
20768        When Shockwave plugin has been loaded, exiting crashes Safari
20769        
20770        Add a "load count" for plugin packages. When the load count is zero, unload the plugin.
20771        
20772        * plugins/win/PluginPackageWin.cpp:
20773        (WebCore::PluginPackageWin::PluginPackageWin):
20774        (WebCore::PluginPackageWin::load):
20775        (WebCore::PluginPackageWin::unload):
20776        (WebCore::PluginPackageWin::unloadWithoutShutdown):
20777        * plugins/win/PluginPackageWin.h:
20778        
20779        * plugins/win/PluginViewWin.cpp:
20780        (WebCore::PluginViewWin::~PluginViewWin):
20781        Make sure to unload the plugin package and clear any references to plugin script objects.
20782
207832007-06-27  George Staikos  <staikos@kde.org>
20784
20785        This was succeeding compile by luck.  Setup dependencies properly.
20786
20787        * WebCore.pro:
20788
207892007-06-27  Justin Garcia  <justin.garcia@apple.com>
20790
20791        Reviewed by John.
20792
20793        <rdar://problem/4580583> Breaking blockquoted list should not automatically renumber the second list
20794        
20795        When a quoted numbered list is broken in half, it's cloned
20796        to make the second list. That second list needs its start attribute
20797        set so that the numbers of the list items in it will be preserved.
20798
20799        * editing/BreakBlockquoteCommand.cpp:
20800        (WebCore::BreakBlockquoteCommand::doApply): Set the start attribute
20801        of a cloned list to be the original number of the first list item in it.
20802
208032007-06-27  Alexey Proskuryakov  <ap@webkit.org>
20804
20805        Reviewed by Geoff.
20806
20807        http://bugs.webkit.org/show_bug.cgi?id=14413
20808        GIF animation throttling is different from MSIE
20809
20810        * platform/graphics/cg/ImageSourceCG.cpp:
20811        (WebCore::ImageSource::frameDurationAtIndex):
20812        Change the cut-off value to 50ms to match MSIE.
20813
208142007-06-27  Sam Weinig  <sam@webkit.org>
20815
20816        Reviewed by Darin.
20817
20818        First pass at fixing implicit 64-32 bit conversion errors.
20819        <rdar://problem/5292262>
20820
20821        - Add 'f' suffix where necessary.
20822
20823        * bridge/mac/WebCoreAXObject.mm:
20824        (-[WebCoreAXObject accessibilityAttributeValue:forParameter:]):
20825        * css/csshelper.h:
20826        * css/cssstyleselector.cpp:
20827        (WebCore::):
20828        (WebCore::CSSStyleSelector::largerFontSize):
20829        (WebCore::CSSStyleSelector::smallerFontSize):
20830        * html/CanvasGradient.cpp:
20831        (WebCore::CanvasGradient::addColorStop):
20832        * html/CanvasPattern.cpp:
20833        (WebCore::CanvasPattern::createPattern):
20834        * ksvg2/css/SVGCSSStyleSelector.cpp:
20835        (WebCore::CSSStyleSelector::applySVGProperty):
20836        * ksvg2/css/SVGRenderStyle.h:
20837        * ksvg2/events/SVGZoomEvent.cpp:
20838        (WebCore::SVGZoomEvent::SVGZoomEvent):
20839        * ksvg2/svg/SVGLength.cpp:
20840        (WebCore::SVGLength::SVGLength):
20841        (WebCore::SVGLength::value):
20842        (WebCore::SVGLength::setValue):
20843        (WebCore::SVGLength::valueAsPercentage):
20844        (WebCore::SVGLength::PercentageOfViewport):
20845        * ksvg2/svg/SVGSVGElement.cpp:
20846        (WebCore::SVGSVGElement::pixelUnitToMillimeterX):
20847        (WebCore::SVGSVGElement::pixelUnitToMillimeterY):
20848        (WebCore::SVGSVGElement::getScreenCTM):
20849        * ksvg2/svg/SVGTextContentElement.cpp:
20850        (WebCore::SVGTextContentElement::getComputedTextLength):
20851        (WebCore::SVGTextContentElement::getSubStringLength):
20852        (WebCore::SVGTextContentElement::getRotationOfChar):
20853        * ksvg2/svg/SVGTransformDistance.cpp:
20854        (WebCore::SVGTransformDistance::SVGTransformDistance):
20855        (WebCore::SVGTransformDistance::distance):
20856        * page/InspectorController.cpp:
20857        (WebCore::InspectorResource::InspectorResource):
20858        * platform/graphics/FloatPoint3D.cpp:
20859        (WebCore::FloatPoint3D::normalize):
20860        * platform/graphics/Path.cpp:
20861        (WebCore::pathLengthApplierFunction):
20862        (WebCore::Path::createRoundedRectangle):
20863        * platform/graphics/cg/GraphicsContextCG.cpp:
20864        (WebCore::GraphicsContext::drawLine):
20865        (WebCore::GraphicsContext::strokeArc):
20866        * platform/graphics/cg/ImageCG.cpp:
20867        (WebCore::FrameData::clear):
20868        * platform/graphics/cg/ImageSourceCG.cpp:
20869        (WebCore::ImageSource::frameDurationAtIndex):
20870        * platform/graphics/cg/PDFDocumentImage.cpp:
20871        (WebCore::PDFDocumentImage::setCurrentPage):
20872        * platform/graphics/svg/SVGPaintServerPattern.cpp:
20873        (WebCore::SVGPaintServerPattern::externalRepresentation):
20874        * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
20875        (WebCore::SVGPaintServerRadialGradient::SVGPaintServerRadialGradient):
20876        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
20877        (WebCore::cgGradientCallback):
20878        (WebCore::CGShadingRefForRadialGradient):
20879        (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
20880        * platform/mac/FontDataMac.mm:
20881        (WebCore::webFallbackFontFamily):
20882        * platform/mac/PopupMenuMac.mm:
20883        (WebCore::PopupMenu::show):
20884        * rendering/InlineFlowBox.cpp:
20885        (WebCore::InlineFlowBox::placeBoxesHorizontally):
20886        * rendering/RenderSlider.cpp:
20887        (WebCore::RenderSlider::setValueForPosition):
20888        (WebCore::RenderSlider::setPositionFromValue):
20889
208902007-06-27  Alexey Proskuryakov  <ap@webkit.org>
20891
20892        Reviewed by Geoff.
20893
20894        http://bugs.webkit.org/show_bug.cgi?id=14288
20895        XMLHttpRequest doesn't use a correct content type for file:// URLs
20896
20897        Test: fast/dom/xmlhttprequest-html-response-encoding.html
20898
20899        * xml/xmlhttprequest.cpp:
20900        (WebCore::XMLHttpRequest::responseMIMEType): Use MIME type provided by
20901        the network layer, since it provides it even for non-HTTP responses.
20902
209032007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
20904
20905        Reviewed by Sam Weinig.
20906
20907        http://bugs.webkit.org/show_bug.cgi?id=14061
20908        Implement more of FrameLoaderClientGdk
20909
20910        Make FrameLoaderClientGdk work properly when the MIME type is set.
20911
20912        * loader/gdk/FrameLoaderClientGdk.cpp:
20913        (WebCore::FrameLoaderClientGdk::objectContentType):
20914        (WebCore::FrameLoaderClientGdk::canShowMIMEType):
20915
209162007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
20917
20918        Reviewed by Maciej.
20919
20920        http://bugs.webkit.org/show_bug.cgi?id=14058
20921        Gdk font backend cleanup
20922
20923        * platform/FontData.h: Remove obsolete function.
20924        * platform/gdk/FontDataGdk.cpp:
20925        (WebCore::FontData::containsCharacters): Lock/unlock only once.
20926        (WebCore::FontData::platformWidthForGlyph): Remove needless cast.
20927        * platform/gdk/FontPlatformData.h: Remove obsolete function.
20928        * platform/gdk/FontPlatformDataGdk.cpp:
20929        (WebCore::FontPlatformData::FontPlatformData): Pass the actual size,
20930        not the pixel size.
20931        (WebCore::FontPlatformData::~FontPlatformData): Free m_fontMatrix.
20932        * platform/gdk/GlyphPageTreeNodeGdk.cpp:
20933        (WebCore::GlyphPage::fill): Lock/unlock only once.
20934
209352007-06-26  Mitz Pettel  <mitz@webkit.org>
20936
20937        Reviewed by Hyatt.
20938
20939        - fix http://bugs.webkit.org/show_bug.cgi?id=14406
20940          <colgroup>'s borders are ignored when it has <col> children
20941
20942        Covered by existing tests.
20943
20944        * rendering/RenderTableCell.cpp:
20945        (WebCore::RenderTableCell::collapsedLeftBorder):
20946        (WebCore::RenderTableCell::collapsedRightBorder):
20947        (WebCore::RenderTableCell::collapsedTopBorder):
20948        (WebCore::RenderTableCell::collapsedBottomBorder):
20949
209502007-06-26  Mitz Pettel  <mitz@webkit.org>
20951
20952        Reviewed by Oliver.
20953
20954        - fix http://bugs.webkit.org/show_bug.cgi?id=14329
20955          REGRESSION: TEXTAREA - cannot drag-and-drop text at en.wikipedia.org/
20956
20957        Test: fast/repaint/text-selection-rect-in-overflow-2.html
20958
20959        * rendering/RenderObject.cpp:
20960        (WebCore::RenderObject::computeAbsoluteRepaintRect): Added code to account
20961        for overflow scroll and columns.
20962        * rendering/RenderText.cpp:
20963        (WebCore::RenderText::selectionRect): Adjust for columns only in the
20964        non-clipped case, since RenderObject::absolutePosition() does not.
20965
209662007-06-26  Mitz Pettel  <mitz@webkit.org>
20967
20968        Reviewed by Sam.
20969
20970        - http://bugs.webkit.org/show_bug.cgi?id=14415
20971          Remove the unused method RenderObject::setTable()
20972
20973        * rendering/RenderObject.h:
20974
209752007-06-26  Darin Fisher  <darin@chromium.org>
20976
20977        Reviewed by Maciej.
20978
20979        Implement http://bugs.webkit.org/show_bug.cgi?id=14225
20980        Bug 14225: Make it possible to define platform-specific ResourceRequest without #ifdefs
20981
20982        This change moves the bulk of ResourceRequest into a base class named
20983        ResourceRequestBase with all platform-specific bits pushed into
20984        ResourceRequest.  This allows ports to easily add new members to a
20985        ResourceRequest without having to #ifdef the code that is shared
20986        between ports.
20987
20988        * WebCore.exp:
20989        * WebCore.pro:
20990        * WebCore.vcproj/WebCore.vcproj:
20991        * WebCore.xcodeproj/project.pbxproj:
20992        * platform/network/ResourceRequest.cpp: Removed.
20993        * platform/network/ResourceRequest.h: Removed.
20994        * platform/network/ResourceRequestBase.cpp: Added.
20995        (WebCore::ResourceRequestBase::asResourceRequest):
20996        (WebCore::ResourceRequestBase::isEmpty):
20997        (WebCore::ResourceRequestBase::isNull):
20998        (WebCore::ResourceRequestBase::url):
20999        (WebCore::ResourceRequestBase::setURL):
21000        (WebCore::ResourceRequestBase::cachePolicy):
21001        (WebCore::ResourceRequestBase::setCachePolicy):
21002        (WebCore::ResourceRequestBase::timeoutInterval):
21003        (WebCore::ResourceRequestBase::setTimeoutInterval):
21004        (WebCore::ResourceRequestBase::mainDocumentURL):
21005        (WebCore::ResourceRequestBase::setMainDocumentURL):
21006        (WebCore::ResourceRequestBase::httpMethod):
21007        (WebCore::ResourceRequestBase::setHTTPMethod):
21008        (WebCore::ResourceRequestBase::httpHeaderFields):
21009        (WebCore::ResourceRequestBase::httpHeaderField):
21010        (WebCore::ResourceRequestBase::setHTTPHeaderField):
21011        (WebCore::ResourceRequestBase::httpBody):
21012        (WebCore::ResourceRequestBase::setHTTPBody):
21013        (WebCore::ResourceRequestBase::allowHTTPCookies):
21014        (WebCore::ResourceRequestBase::setAllowHTTPCookies):
21015        (WebCore::ResourceRequestBase::addHTTPHeaderField):
21016        (WebCore::ResourceRequestBase::addHTTPHeaderFields):
21017        (WebCore::operator==):
21018        (WebCore::ResourceRequestBase::isConditional):
21019        (WebCore::ResourceRequestBase::updatePlatformRequest):
21020        (WebCore::ResourceRequestBase::updateResourceRequest):
21021        * platform/network/ResourceRequestBase.h: Added.
21022        (WebCore::):
21023        (WebCore::ResourceRequestBase::httpContentType):
21024        (WebCore::ResourceRequestBase::setHTTPContentType):
21025        (WebCore::ResourceRequestBase::httpReferrer):
21026        (WebCore::ResourceRequestBase::setHTTPReferrer):
21027        (WebCore::ResourceRequestBase::clearHTTPReferrer):
21028        (WebCore::ResourceRequestBase::httpUserAgent):
21029        (WebCore::ResourceRequestBase::setHTTPUserAgent):
21030        (WebCore::ResourceRequestBase::httpAccept):
21031        (WebCore::ResourceRequestBase::setHTTPAccept):
21032        (WebCore::ResourceRequestBase::ResourceRequestBase):
21033        (WebCore::operator!=):
21034        * platform/network/cf/ResourceRequest.h: Added.
21035        (WebCore::ResourceRequest::ResourceRequest):
21036        * platform/network/curl/ResourceRequest.h: Added.
21037        (WebCore::ResourceRequest::ResourceRequest):
21038        (WebCore::ResourceRequest::doUpdatePlatformRequest):
21039        (WebCore::ResourceRequest::doUpdateResourceRequest):
21040        * platform/network/mac/ResourceRequest.h: Added.
21041        (WebCore::ResourceRequest::ResourceRequest):
21042        * platform/network/qt/ResourceRequest.h: Added.
21043        (WebCore::ResourceRequest::ResourceRequest):
21044        (WebCore::ResourceRequest::doUpdatePlatformRequest):
21045        (WebCore::ResourceRequest::doUpdateResourceRequest):
21046
210472007-06-26  Adam Roben  <aroben@apple.com>
21048
21049        Add ChangeLog entries from the Windows merge.
21050
21051        Reviewed by Maciej.
21052
21053        * ChangeLog:
21054
210552007-06-26  Sam Weinig  <sam@webkit.org>
21056
21057        Reviewed by Maciej.
21058
21059        Make sure not to enumerate the toString() function.
21060        <rdar://problem/5297118>
21061
21062        * bindings/js/kjs_window.cpp:
21063        * bindings/scripts/CodeGeneratorJS.pm: Add support for [DontEnum].
21064        * html/HTMLAnchorElement.idl:
21065
210662007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
21067
21068        Reviewed by Mitz, landed by Anders.
21069
21070        http://bugs.webkit.org/show_bug.cgi?id=14421
21071        Implement GraphicsContext::clearRect()
21072
21073        * platform/graphics/cairo/GraphicsContextCairo.cpp:
21074        (WebCore::GraphicsContext::clearRect):
21075
210762007-06-26  Alp Toker  <alp.toker@collabora.co.uk>
21077
21078        Reviewed and landed by Anders.
21079
21080        http://bugs.webkit.org/show_bug.cgi?id=14416
21081        Content does not render fully in some cases
21082
21083        Fix mismatched calls to cairo_save/restore due to an early method return.
21084
21085        * platform/graphics/cairo/GraphicsContextCairo.cpp:
21086        (WebCore::GraphicsContext::drawLine):
21087
210882007-06-26  Tristan O'Tierney  <tristan@apple.com>
21089
21090        Reviewed by John Sullivan.
21091
21092        Added two accessor functions for <rdar://problem/4119138>
21093
21094        * bindings/objc/DOMHTML.mm:
21095        (-[DOMHTMLInputElement _isEdited]):
21096        (-[DOMHTMLTextAreaElement _isEdited]):
21097        Added an accessor to the isEdited value of a DOM node's render object
21098
21099        * bindings/objc/DOMPrivate.h:
21100        Added header definitions for _isEdited
21101
211022007-06-26  Sam Weinig  <sam@webkit.org>
21103
21104        Fix Win32 build.
21105
21106        * WebCore.vcproj/WebCore.vcproj:
21107
211082007-06-26  Sam Weinig  <sam@webkit.org>
21109
21110        Fix Qt and Gdk builds.
21111
21112        * WebCore.pro:
21113
211142007-06-26  Sam Weinig  <sam@webkit.org>
21115
21116        Reviewed by Geoff.
21117
21118        Patch for http://bugs.webkit.org/show_bug.cgi?id=14111
21119        Autogenerate Event JS binding
21120
21121        - Moves the dataTransfer method into MouseEvent where it should be.
21122
21123        * WebCore.xcodeproj/project.pbxproj:
21124        * bindings/js/JSEventCustom.cpp: Added.
21125        (WebCore::JSEvent::clipboardData):
21126        (WebCore::toJS):
21127        * bindings/js/JSEventTargetNode.cpp:
21128        * bindings/js/JSXMLHttpRequest.cpp:
21129        * bindings/js/kjs_events.cpp:
21130        * bindings/js/kjs_events.h:
21131        * bindings/objc/DOMUtility.mm:
21132        (KJS::createDOMWrapper):
21133        * bindings/scripts/CodeGeneratorJS.pm:
21134        * dom/Event.h:
21135        (WebCore::Event::returnValue):
21136        (WebCore::Event::setReturnValue):
21137        (WebCore::Event::clipboardData):
21138        * dom/Event.idl:
21139        * dom/MouseEvent.h:
21140        (WebCore::MouseEvent::dataTransfer):
21141        * dom/MouseEvent.idl:
21142
211432007-06-26  Timothy Hatcher  <timothy@apple.com>
21144
21145        Reviewed by Mark Rowe.
21146
21147        Follow up fix for: Bug 14385: Web Inspector's computed style doesn't show implicitly set properties
21148        http://bugs.webkit.org/show_bug.cgi?id=14385
21149
21150        Correctly remember the "Show implicit properties" setting as you switch nodes.
21151
21152        * page/inspector/ResourcePanel.js:
21153
211542007-06-26  Justin Garcia  <justin.garcia@apple.com>
21155
21156        Reviewed by John.
21157
21158        <rdar://problem/5290534> Crash at RenderTextControl::calcHeight() after deleting text in a search field
21159        
21160        Editing removed a node that was part of a search field's internal
21161        structure that should not be removed.
21162
21163        * editing/DeleteSelectionCommand.cpp:
21164        (WebCore::DeleteSelectionCommand::handleGeneralDelete): If the
21165        selection to delete ends at [container, x], where x is the number
21166        of children in container, don't remove container.  Special case
21167        code elsewhere in this function will remove it if necessary.
21168
211692007-06-25  Sam Weinig  <sam@webkit.org>
21170
21171        Reviewed by Maciej.
21172
21173        Patch for http://bugs.webkit.org/show_bug.cgi?id=11315
21174        Mutating document.constructor.prototype mutates Object.prototype
21175
21176        Test: fast/js/constructor.html
21177
21178        * bindings/scripts/CodeGeneratorJS.pm: add constructor attribute to
21179        classes with constructors.  It is an non-enumeratable, non-deletable,
21180        readonly attribute.
21181
211822007-06-26  George Staikos  <staikos@kde.org>
21183
21184        Repair the OS X build.
21185
21186        * WebCore.exp:
21187
211882007-06-26  Adam Treat  <adam@staikos.net>
21189
21190        Reviewed by Adam Roben.
21191
21192        Make the SQLite icon database optional.
21193
21194        * loader/icon/IconDatabase.cpp:
21195        (WebCore::IconDatabase::isOpen):
21196        (WebCore::IconDatabase::isPrivateBrowsingEnabled):
21197        (WebCore::IconDatabase::enabled):
21198        * loader/icon/IconDatabase.h:
21199
212002007-06-25  Sam Weinig  <sam@webkit.org>
21201
21202        Reviewed by Adam Roben.
21203
21204        Patch for http://bugs.webkit.org/show_bug.cgi?id=14369
21205        HTML syntax highlighting colors and DOM tree colors should be the same
21206
21207        * css/view-source.css:
21208        * page/inspector/ResourcePanel.js:
21209        * page/inspector/inspector.css:
21210        * page/inspector/inspector.js:
21211        * page/inspector/utilities.js:
21212
212132007-06-25  Adam Roben  <aroben@apple.com>
21214
21215        Fix Bug 14402: Main resource of http://www.apple.com/safari/ is called "www.apple.com" instead of "safari"
21216        http://bugs.webkit.org/show_bug.cgi?id=14402
21217
21218        The solution was to make KURL::lastPathComponent ignore trailing
21219        slashes, which is what -[NSURL lastPathComponent] does, too.
21220
21221        Reviewed by Oliver.
21222
21223        * platform/KURL.cpp:
21224        (WebCore::KURL::lastPathComponent):
21225
212262007-06-25  Sam Weinig  <sam@webkit.org>
21227
21228        Reviewed by Adam Roben.
21229
21230        Patch for http://bugs.webkit.org/show_bug.cgi?id=14257
21231        Web Inspector lists favicon.ico as "other" instead of "image"
21232
21233        * page/InspectorController.cpp:
21234        (WebCore::InspectorResource::type):
21235
212362007-06-25  Adele Peterson  <adele@apple.com>
21237
21238        Reviewed by Hyatt.
21239
21240        Fix for <rdar://problem/5286410> Scrollbar and resize corner for overflow area is not hidden with style "visibility: hidden;"
21241        http://bugs.webkit.org/show_bug.cgi?id=14297
21242
21243        Test: fast/overflow/hidden-scrollbar-resize.html
21244
21245        * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayer):
21246        Updated our shouldPaint check to consider visibility.
21247
212482007-06-25  Oliver Hunt  <oliver@apple.com>
21249
21250        Reviewed by Darin.
21251
21252        <rdar://problem/5293444> REGRESSION: Dragging plain text into a styled text region does not acquire the correct style info
21253
21254        Fixing logic error in DragController
21255
21256        * manual-tests/drop-text-acquires-style.html: Added.
21257        * page/DragController.cpp:
21258        (WebCore::documentFragmentFromDragData):
21259
212602007-06-25  Sam Weinig  <sam@webkit.org>
21261
21262        Reviewed by Adam Roben.
21263
21264        Annotate prototypes by adding "Prototype" subtitle.
21265
21266        * page/inspector/ResourcePanel.js:
21267
212682007-06-25  George Staikos  <staikos@kde.org>
21269
21270        Reviewed by Zack.
21271
21272        Start to add proxy and SSL support to WebKitQt.  Proxying works.
21273
21274        * platform/network/ResourceHandleInternal.h:
21275        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
21276        * platform/network/qt/ResourceHandleQt.cpp:
21277        (WebCore::ResourceHandle::start):
21278
212792007-06-25  Alp Toker  <alp.toker@collabora.co.uk>
21280
21281        Reviewed by Adam Roben.
21282
21283        http://bugs.webkit.org/show_bug.cgi?id=14386
21284        Gdk build fix
21285
21286        * WebCore.pro: Fix gtk/gdk typo.
21287
212882007-06-25  Timothy Hatcher  <timothy@apple.com>
21289
21290        Reviewed by Anders.
21291
21292        Bug 14385: Web Inspector's computed style doesn't show implicitly set properties
21293        http://bugs.webkit.org/show_bug.cgi?id=14385
21294
21295        Add a toggle to show implict computed properties.
21296
21297        * page/inspector/ResourcePanel.js:
21298        * page/inspector/inspector.css:
21299        * page/inspector/inspector.js:
21300
213012007-06-25  Alp Toker  <alp.toker@collabora.co.uk>
21302
21303        Reviewed by Mark.
21304
21305        http://bugs.webkit.org/show_bug.cgi?id=13975
21306        Use system-provided libjpeg and libpng
21307
21308        * WebCore.pro: Remove bundled libjpeg and libpng sources.
21309        * platform/image-decoders/jpeg: Remove sources.
21310        * platform/image-decoders/png: Remove sources.
21311
213122007-06-25  Mitz Pettel  <mitz@webkit.org>
21313
21314        Reviewed by Darin.
21315
21316        - fix http://bugs.webkit.org/show_bug.cgi?id=14202
21317          Table caption renders too narrow sometimes
21318
21319        Test: fast/table/caption-relayout.html
21320
21321        * rendering/RenderTable.cpp:
21322        (WebCore::RenderTable::layout): Mark the caption for layout if the table
21323        width changed.
21324
213252007-06-25  Mitz Pettel  <mitz@webkit.org>
21326
21327        Reviewed by Darin.
21328
21329        - fix http://bugs.webkit.org/show_bug.cgi?id=14245
21330          Underline painted under <br>, not repainted properly
21331
21332        Test: fast/inline/br-text-decoration.html
21333
21334        * platform/graphics/cg/GraphicsContextCG.cpp:
21335        (WebCore::GraphicsContext::drawLineForText): Added an early return if the line width
21336        is zero. Also changed the line stroke to a rect fill, so that lines with length shorter
21337        than their thickness paint correctly.
21338
213392007-06-25  Mitz Pettel  <mitz@webkit.org>
21340
21341        Reviewed by Maciej.
21342
21343        - fix http://bugs.webkit.org/show_bug.cgi?id=14341
21344          rules="none" ignored in certain cases
21345
21346        Covered by existing tests.
21347
21348        * html/HTMLTableElement.cpp:
21349        (WebCore::HTMLTableElement::getSharedCellDecl):
21350
213512007-06-24  Sam Weinig  <sam@webkit.org>
21352
21353        Reviewed by Mitz.
21354
21355        Patch for http://bugs.webkit.org/show_bug.cgi?id=14379
21356        Anchor elements show up as their href in the properties pane, not HTMLAnchorElement
21357
21358        * page/inspector/ResourcePanel.js: make sure not to call an overriden
21359        toString() by using Object.prototype.toString.call().
21360
213612007-06-24  Adam Roben  <aroben@apple.com>
21362
21363        Fix http://bugs.webkit.org/show_bug.cgi?id=14374
21364        Bug 14374: Computed Style section should be expanded by default
21365
21366        Reviewed by Sam.
21367
21368        No regression test possible.
21369
21370        * page/inspector/ResourcePanel.js: Expand all style sections.
21371
213722007-06-24  Adam Roben  <aroben@apple.com>
21373
21374        Unify the style of enums in the Inspector JS
21375
21376        All our enums are now represented by an object with a property for
21377        each enum value.
21378
21379        Reviewed by Sam.
21380
21381        No regression test possible.
21382
21383        * page/inspector/ConsolePanel.js:
21384        * page/inspector/Resource.js:
21385        * page/inspector/ResourcePanel.js:
21386        * page/inspector/inspector.js:
21387
213882007-06-23  Sam Weinig  <sam@webkit.org>
21389
21390        Reviewed by Mitz.
21391
21392        Patch for http://bugs.webkit.org/show_bug.cgi?id=14321
21393        getComputedStyle(...).zIndex returns string "normal"
21394
21395        Test: fast/css/getComputedStyle-zIndex-auto.html
21396
21397        * css/CSSComputedStyleDeclaration.cpp:
21398        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return 'auto' instead of 'normal'.
21399
214002007-06-24  Matt Lilek  <pewtermoose@gmail.com>
21401
21402        Reviewed by Tim Hatcher.
21403
21404        Bug 14265: Cannot resize columns in webinspector
21405        http://bugs.webkit.org/show_bug.cgi?id=14265
21406
21407        * page/inspector/inspector.css:
21408        * page/inspector/inspector.html:
21409        * page/inspector/inspector.js:
21410
214112007-06-23  Adam Roben  <aroben@apple.com>
21412
21413        Silence a build warning about not finding `num-cpus`
21414
21415        Reviewed by Mark Rowe.
21416
21417        * WebCore.vcproj/build-generated-files.sh: Look for num-cpus in its new
21418        location.
21419
214202007-06-22  Anders Carlsson  <andersca@apple.com>
21421
21422        Reviewed by Darin.
21423
21424        * plugins/win/PluginStreamWin.cpp:
21425        (WebCore::PluginStreamWin::didFinishLoading):
21426        No need to fetch the size from resourceData.
21427
214282007-06-22  Anders Carlsson  <andersca@apple.com>
21429
21430        Reviewed by Darin.
21431
21432        <rdar://problem/5288617>
21433        Crash playing a very large QuickTime movie inside Safari.
21434
21435        Get rid of m_completeDeliveryData and use the loader's resource data instead. This reduces the memory usage for 
21436        plug-ins which loads large files and use a transfer mode of NP_ASFILE or NP_ASFILEONLY.
21437        
21438        * plugins/win/PluginStreamWin.cpp:
21439        (WebCore::PluginStreamWin::PluginStreamWin):
21440        (WebCore::PluginStreamWin::~PluginStreamWin):
21441        (WebCore::PluginStreamWin::didReceiveData):
21442        (WebCore::PluginStreamWin::didFinishLoading):
21443        * plugins/win/PluginStreamWin.h:
21444
214452007-06-22  Beth Dakin  <bdakin@apple.com>
21446
21447        Reviewed by Oliver and Darin.
21448
21449        Fix for <rdar://problem/5266999> Loading page from MangleMe fuzz 
21450        tester crashes in RenderTableRow::addChild (giant ROWSPAN)
21451
21452        We already have code that tries to prevent allocating too-large 
21453        rowspans. The rowspan in this test, however, was small enough that 
21454        we thought it was okay in that code, even though clearly it was 
21455        still too large. I did a bunch of testing in Firefox, and it seems 
21456        that they set a hard limit on the maximum rowspan right in the DOM 
21457        -- 8k. So that is what this patch implements. 
21458
21459        * html/HTMLTableCellElement.cpp:
21460        (WebCore::HTMLTableCellElement::parseMappedAttribute):
21461
214622007-06-22  Justin Garcia  <justin.garcia@apple.com>
21463
21464        Reviewed by Darin.
21465        
21466        <rdar://problem/5272440> Adding To Do via Note received in e-mail adds newlines on delete
21467        
21468        Deletion inserts a placeholder after it removes full paragraphs if
21469        one doesn't already exist.  The code that looked for a pre-existing
21470        placeholder didn't work because of a bug in enclosingNodeOfType.
21471
21472        * editing/htmlediting.cpp:
21473        (WebCore::enclosingNodeOfType): We start looking at node->parentNode(),
21474        but don't go above an editing root.
21475
214762007-06-22  Anders Carlsson  <andersca@apple.com>
21477
21478        Reviewed by Maciej and Geoff.
21479
21480        <rdar://problem/5244734>
21481        WebKit shouldn't send delegate resource load methods for the user stylesheet (doing so causes assertions in Safari)
21482        
21483        Add a sendResourceLoadCallbacks argument to the ResourceLoader and only send resource load callbacks if it's true. Make it so that
21484        loading the user style sheet creates a resource loader with sendResourceLoadCallbacks set to false (done by adding a sendResourceLoadCallbacks 
21485        argument to a bunch of classes).
21486        
21487        * loader/Cache.cpp:
21488        (WebCore::createResource):
21489        (WebCore::Cache::requestResource):
21490        * loader/Cache.h:
21491        * loader/CachedCSSStyleSheet.cpp:
21492        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
21493        * loader/CachedCSSStyleSheet.h:
21494        * loader/CachedResource.cpp:
21495        (WebCore::CachedResource::CachedResource):
21496        * loader/CachedResource.h:
21497        (WebCore::CachedResource::sendResourceLoadCallbacks):
21498        * loader/DocLoader.cpp:
21499        (WebCore::DocLoader::requestCSSStyleSheet):
21500        (WebCore::DocLoader::requestResource):
21501        (WebCore::DocLoader::checkCacheObjectStatus):
21502        * loader/DocLoader.h:
21503        * loader/MainResourceLoader.cpp:
21504        (WebCore::MainResourceLoader::MainResourceLoader):
21505        * loader/Request.cpp:
21506        (WebCore::Request::Request):
21507        * loader/Request.h:
21508        (WebCore::Request::sendResourceLoadCallbacks):
21509        * loader/ResourceLoader.cpp:
21510        (WebCore::ResourceLoader::ResourceLoader):
21511        (WebCore::ResourceLoader::willSendRequest):
21512        (WebCore::ResourceLoader::didReceiveResponse):
21513        (WebCore::ResourceLoader::didReceiveData):
21514        (WebCore::ResourceLoader::didFinishLoadingOnePart):
21515        (WebCore::ResourceLoader::didFail):
21516        (WebCore::ResourceLoader::didCancel):
21517        * loader/ResourceLoader.h:
21518        (WebCore::ResourceLoader::sendResourceLoadCallbacks):
21519        * loader/SubresourceLoader.cpp:
21520        (WebCore::SubresourceLoader::SubresourceLoader):
21521        (WebCore::SubresourceLoader::create):
21522        * loader/SubresourceLoader.h:
21523        * loader/loader.cpp:
21524        (WebCore::Loader::load):
21525        (WebCore::Loader::servePendingRequests):
21526        * loader/loader.h:
21527        * loader/mac/NetscapePlugInStreamLoaderMac.mm:
21528        (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
21529
215302007-06-21  Richard Connamacher  <rich@indieimage.com>
21531
21532        Reviewed by Tim Hatcher.
21533
21534        Bug 14305: Web Inspector marks local files with server-side compression tip
21535        http://bugs.webkit.org/show_bug.cgi?id=14305
21536
21537        * page/inspector/Resource.js:
21538        (WebInspector.Resource._shouldCompress): Prevent server-side compression tip
21539        from being given to local files
21540
215412007-06-21  Mark Rowe  <mrowe@apple.com>
21542
21543        Reviewed by Darin.
21544
21545        Fix for <rdar://problem/5266928> REGRESSION: crash/assert failure beneath RenderFrameSet::layOutAxis when loading
21546
21547        * platform/StringImpl.cpp:
21548        (WebCore::StringImpl::toLengthArray): Simplify whitespace before checking for an empty string.  This avoids returning
21549        a length of zero when the string is collapsed to empty by whitespace simplification.
21550
215512007-06-21  Dave Hyatt  <hyatt@apple.com>
21552
21553        Fix for <rdar://problem/5286978>, large font sizes crash Windows.
21554        
21555        Limit the maximum font size to 1,000,000 to avoid crashes and issues with platforms that
21556        start failing to do anything useful if the font size is too big.
21557        
21558        Reviewed by olliej
21559
21560        * css/cssstyleselector.cpp:
21561        (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
21562        
215632007-06-21  Andrew Wellington  <proton@wiretapped.net>
21564
21565        Reviewed by Timothy.
21566
21567        Stop shift+scroll wheel performing a horizontal scroll in Web Inspector
21568
21569        * page/inspector/inspector.css: Set body margin to 0
21570
215712007-06-21  Adam Treat  <adam@staikos.net>
21572
21573        Reviewed by George Staikos.
21574
21575        Implement the default resources on Qt.
21576
21577        * platform/graphics/BitmapImage.h:
21578        * platform/graphics/Image.h:
21579        * platform/graphics/qt/ImageQt.cpp:
21580        (WebCore::Image::loadPlatformResource):
21581        (WebCore::BitmapImage::BitmapImage):
21582        (WebCore::BitmapImage::initPlatformData):
21583        (WebCore::BitmapImage::invalidatePlatformData):
21584        (WebCore::BitmapImage::getPixmap):
21585        * platform/qt/TemporaryLinkStubs.cpp:
21586
215872007-06-21  Oliver Hunt  <oliver@apple.com>
21588
21589        Reviewed by Darin.
21590
21591        Use RetainPtr for holding currentEvent.  This removes explicit HardRetain/Release calls
21592        and makes reference handling simpler in advance of IME refactoring.
21593
21594        * WebCore.xcodeproj/project.pbxproj:
21595        * page/mac/EventHandlerMac.mm:
21596        (WebCore::currentEvent):
21597        (WebCore::EventHandler::currentNSEvent):
21598        (WebCore::EventHandler::wheelEvent):
21599        (WebCore::EventHandler::keyEvent):
21600        (WebCore::lastEventIsMouseUp):
21601        (WebCore::EventHandler::passMouseDownEventToWidget):
21602        (WebCore::EventHandler::eventLoopHandleMouseDragged):
21603        (WebCore::EventHandler::eventLoopHandleMouseUp):
21604        (WebCore::EventHandler::passSubframeEventToSubframe):
21605        (WebCore::EventHandler::passWheelEventToWidget):
21606        (WebCore::EventHandler::mouseDown):
21607        (WebCore::EventHandler::mouseDragged):
21608        (WebCore::EventHandler::mouseUp):
21609        (WebCore::EventHandler::mouseMoved):
21610
216112007-06-21  George Staikos  <staikos@kde.org>
21612
21613        Reviewed by George & Marius.
21614
21615        Patch by me, revision by Marius, minor rev by me.  Adds rendered
21616        and stylable scrollbars.
21617
21618        * page/qt/EventHandlerQt.cpp:
21619        (WebCore::EventHandler::passMousePressEventToScrollbar):
21620        * platform/Widget.h:
21621        * platform/qt/PlatformScrollBar.h:
21622        (WebCore::PlatformScrollbar::isWidget):
21623        * platform/qt/PlatformScrollBarQt.cpp:
21624        (WebCore::PlatformScrollbar::PlatformScrollbar):
21625        (WebCore::PlatformScrollbar::~PlatformScrollbar):
21626        (WebCore::PlatformScrollbar::updateThumbPosition):
21627        (WebCore::PlatformScrollbar::updateThumbProportion):
21628        (WebCore::PlatformScrollbar::width):
21629        (WebCore::PlatformScrollbar::height):
21630        (WebCore::PlatformScrollbar::setRect):
21631        (WebCore::PlatformScrollbar::isEnabled):
21632        (WebCore::PlatformScrollbar::setEnabled):
21633        (WebCore::PlatformScrollbar::paint):
21634        (WebCore::PlatformScrollbar::thumbPosition):
21635        (WebCore::PlatformScrollbar::thumbLength):
21636        (WebCore::PlatformScrollbar::trackLength):
21637        (WebCore::PlatformScrollbar::handleMouseMoveEvent):
21638        (WebCore::PlatformScrollbar::handleMouseOutEvent):
21639        (WebCore::PlatformScrollbar::handleMousePressEvent):
21640        (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
21641        (WebCore::PlatformScrollbar::startTimerIfNeeded):
21642        (WebCore::PlatformScrollbar::stopTimerIfNeeded):
21643        (WebCore::PlatformScrollbar::autoscrollPressedPart):
21644        (WebCore::PlatformScrollbar::autoscrollTimerFired):
21645        (WebCore::PlatformScrollbar::pressedPartScrollDirection):
21646        (WebCore::PlatformScrollbar::pressedPartScrollGranularity):
21647        (WebCore::PlatformScrollbar::thumbUnderMouse):
21648        (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
21649        (WebCore::PlatformScrollbar::verticalScrollbarWidth):
21650        (WebCore::PlatformScrollbar::windowClipRect):
21651        * platform/qt/ScrollViewQt.cpp:
21652        (WebCore::ScrollView::addChild):
21653        (WebCore::ScrollView::removeChild):
21654        * platform/qt/WidgetQt.cpp:
21655        (WebCore::WidgetPrivate::WidgetPrivate):
21656        (WebCore::Widget::setQWidget):
21657        (WebCore::Widget::invalidate):
21658        (WebCore::Widget::invalidateRect):
21659        (WebCore::Widget::setParent):
21660        (WebCore::Widget::parent):
21661
216622007-06-21  Geoffrey Garen  <ggaren@apple.com>
21663
21664        Reviewed by Dave Hyatt.
21665        
21666        Fixed <rdar://problem/4977124> | http://bugs.webkit.org/show_bug.cgi?id=12646
21667        REGRESSION: RapidWeaver's "Hello" HTML page doesn't display any DHTML 
21668        effects when clicking on its links (12646)
21669        
21670        I'm rolling our r7703 for these reasons:
21671
21672        1. It broke RapidWeaver.
21673        
21674        2. WebKit is now orders of magnitude faster when handling deep nesting
21675        (5 seconds vs 3 minutes on my MBP in this particular case).
21676
21677        3. Firefox, IE, and HTML5 all allow nested heading tags.
21678        
21679        4. Hyatt said so.
21680
21681        * html/HTMLParser.cpp:
21682        (WebCore::HTMLParser::parseToken):
21683
216842007-06-21  Sam Weinig  <sam@webkit.org>
21685
21686        Reviewed by Tim Hatcher.
21687
21688        http://bugs.webkit.org/show_bug.cgi?id=14260
21689        ASSERTION FAILED: m_mainResource->loader == loader going back in history on any page
21690
21691        Remove assert for now as it is causing the back button to not
21692        work in debug builds.
21693
21694        * page/InspectorController.cpp:
21695        (WebCore::InspectorController::didCommitLoad):
21696
216972007-06-21  Lars Knoll <lars@trolltech.com>
21698
21699        Remove some debug output.
21700
21701        * platform/qt/FontQt.cpp:
21702        (WebCore::generateComponents):
21703        (WebCore::Font::width):
21704
217052007-06-21  George Staikos  <staikos@kde.org>
21706
21707        Repair Qt/Mac OS X build.
21708
21709        * WebCore.pro:
21710
217112007-06-21  Alexey Proskuryakov  <ap@webkit.org>
21712
21713        Reviewed by Anders.
21714
21715        http://bugs.webkit.org/show_bug.cgi?id=13905
21716        REGRESSION: A Chinese dictionary widget has a problem with XMLHttpRequest response encoding
21717
21718        Tiger WebKit accidentally looked at HTML Http-Equiv META to determine the response encoding
21719        (regardless of the actual response MIME type). This was corrected a while ago to match other 
21720        browsers and the draft XHR spec.
21721
21722        Now restoring this functionality for "text/html", with spec editor's blessing.
21723
21724        * xml/xmlhttprequest.cpp:
21725        (WebCore::XMLHttpRequest::responseMIMEType):
21726        (WebCore::XMLHttpRequest::responseIsXML):
21727        (WebCore::XMLHttpRequest::didReceiveData):
21728        * xml/xmlhttprequest.h:
21729
217302007-06-21  Andrew Wellington  <proton@wiretapped.net>
21731
21732        Mac build fix.
21733
21734        * platform/Font.h:
21735
217362007-06-21  Lars Knoll  <lars@trolltech.com>
21737
21738        Reviewed by Simon.
21739
21740        another small fix for letter spacing
21741
21742        * platform/qt/FontQt.cpp:
21743        (WebCore::generateComponents):
21744
217452007-06-21  Lars Knoll  <lars@trolltech.com>
21746
21747        Reviewed by Simon.
21748
21749        fix word-spacing
21750
21751        * platform/qt/FontQt.cpp:
21752        (WebCore::generateComponents):
21753        (WebCore::Font::width):
21754
217552007-06-21  Lars Knoll  <lars@trolltech.com>
21756
21757        Reviewed by Simon.
21758
21759        fix letterspacing and small caps.
21760
21761        * platform/Font.h:
21762        * platform/graphics/qt/GraphicsContextQt.cpp:
21763        (WebCore::GraphicsContext::setPlatformFont):
21764        * platform/qt/FileChooserQt.cpp:
21765        * platform/qt/FontQt.cpp:
21766        (WebCore::TextRunComponent::TextRunComponent):
21767        (WebCore::Font::Font):
21768        (WebCore::Font::operator=):
21769        (WebCore::Font::update):
21770        (WebCore::generateComponents):
21771        (WebCore::Font::selectionRectForText):
21772        * platform/qt/RenderThemeQt.cpp:
21773
217742007-06-21  Lars Knoll  <lars@trolltech.com>
21775
21776        Reviewed by Simon.
21777
21778        store the metrics and space width in the Font object
21779
21780        * platform/Font.h:
21781        * platform/qt/FontQt.cpp:
21782        (WebCore::Font::Font):
21783        (WebCore::Font::drawText):
21784        (WebCore::Font::width):
21785        (WebCore::Font::isFixedPitch):
21786        (WebCore::Font::ascent):
21787        (WebCore::Font::descent):
21788        (WebCore::Font::lineSpacing):
21789
217902007-06-21  Lars Knoll  <lars@trolltech.com>
21791
21792        Reviewed by Simon.
21793
21794        simplify some codepaths
21795
21796        * platform/qt/FontQt.cpp:
21797        (WebCore::Font::drawText):
21798        (WebCore::Font::width):
21799
218002007-06-21  Lars Knoll  <lars@trolltech.com>
21801
21802        Reviewed by Simon.
21803
21804        fix copyright header
21805
21806        * platform/qt/FontQt.cpp:
21807
218082007-06-21  Lars Knoll  <lars@trolltech.com>
21809
21810        Reviewed by Simon.
21811
21812        correctly load fonts when a list of font families is given
21813
21814        * platform/qt/FontQt.cpp:
21815        (WebCore::Font::Font):
21816
218172007-06-21  Lars Knoll  <lars@trolltech.com>
21818
21819        Reviewed by Simon.
21820
21821        fix some more of the font support
21822
21823        * platform/qt/FontQt.cpp:
21824        (WebCore::Font::drawText):
21825        (WebCore::Font::width):
21826
218272007-06-21  Lars Knoll  <lars@trolltech.com>
21828
21829        Reviewed by Simon.
21830
21831        Compile fixes
21832
21833        * platform/Font.h:
21834        (WebCore::Font::isRoundingHackCharacter):
21835        * platform/qt/FontQt.cpp:
21836        (WebCore::Font::drawText):
21837
218382007-06-21  Lars Knoll  <lars@trolltech.com>
21839
21840        Reviewed by Simon.
21841
21842        Some more work on the implementation of FontQt.
21843
21844        * platform/qt/FontQt.cpp:
21845        (WebCore::Font::Font):
21846        (WebCore::Font::~Font):
21847        (WebCore::Font::operator=):
21848
218492007-06-21  Lars Knoll  <lars@trolltech.com>
21850
21851        Reviewed by Simon.
21852
21853        Started work on the new font infrastructure for the Qt port.
21854
21855        * WebCore.pro:
21856        * editing/Editor.cpp:
21857        (WebCore::Editor::fontForSelection):
21858        * platform/Font.h:
21859        (WebCore::Font::treatAsSpace):
21860        (WebCore::Font::treatAsZeroWidthSpace):
21861        (WebCore::Font::isRoundingHackCharacter):
21862        * platform/qt/FontQt.cpp:
21863        (WebCore::Font::operator QFont):
21864        * platform/qt/TemporaryLinkStubs.cpp:
21865
218662007-06-21  Adam Roben  <aroben@apple.com>
21867
21868        More Gdk build fixes.
21869
21870        * page/gdk/ContextMenuClientGdk.cpp:
21871        (WebCore::ContextMenuClientGdk::shouldIncludeInspectElementItem):
21872        * page/gdk/ContextMenuClientGdk.h:
21873        * platform/gdk/TemporaryLinkStubs.cpp:
21874
218752007-06-21  Adam Roben  <aroben@apple.com>
21876
21877        Speculative Gdk build fix.
21878
21879        * page/InspectorController.h: Only include the JS headers we really
21880        need to avoid pulling in ones like JSStringRefCF.h.
21881
218822007-06-20  Adam Roben  <aroben@apple.com>
21883
21884        Speculative Gdk build fix.
21885
21886        * WebCore.pro: Don't try to build WebKitQt/Plugins on Gdk.
21887
218882007-06-20  Adam Roben  <aroben@apple.com>
21889
21890        Windows build fix.
21891
21892        * WebCore.vcproj/WebCore.vcproj: Include ForwardingHeaders after
21893        everything but $WebKitLibrariesDir so that we will pick up
21894        JavaScriptCore headers directly.
21895
218962007-06-15  George Staikos  <staikos@kde.org>
21897
21898        Add missing symbol.
21899
21900        * platform/qt/TemporaryLinkStubs.cpp:
21901        (WebCore::contextMenuItemTagInspectElement):
21902
219032007-06-20  Steve Falkenburg  <sfalken@apple.com>
21904
21905        Reviewed by Maciej, Anders.
21906        
21907        <rdar://problem/5283789> Crash after dismissing JavaScript alert at end of test on http://lcamtuf.coredump.cx/ierace/
21908
21909        Keep a reference to the Page (via the main frame) for the
21910        load deferred pages.
21911        
21912        Reference is held via the frame since Page isn't refcounted.
21913
21914        * page/Chrome.cpp:
21915        (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
21916        (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
21917
219182007-06-15  Adam Treat <adam@staikos.net>
21919
21920        Reviewed by George Staikos.
21921
21922        Add ICO support to the Qt build.
21923
21924        * WebCore.pro:
21925        * platform/graphics/qt/ImageDecoderQt.cpp:
21926        (Q_IMPORT_PLUGIN):
21927
219282007-06-15  George Staikos  <staikos@kde.org>
21929
21930        Fixing Qt build.
21931
21932        * ForwardingHeaders/JavaScriptCore/APICast.h: Added.
21933        * WebCore.pro:
21934        * page/InspectorController.h:
21935
219362007-06-20  Adam Roben  <aroben@apple.com>
21937
21938        More speculative Qt/Gdk build fixes.
21939
21940        * WebCore.pro: Add new files.
21941
219422007-06-20  Adam Roben  <aroben@apple.com>
21943
21944        Speculative Qt/Gdk build fix.
21945
21946        Added forwarding headers for JavaScriptCore. We may eventually move
21947        InspectorController off of the JSC API, but for now this is the
21948        quickest way to a working build.
21949
21950        * ForwardingHeaders/JavaScriptCore/JSBase.h: Added.
21951        * ForwardingHeaders/JavaScriptCore/JSContextRef.h: Added.
21952        * ForwardingHeaders/JavaScriptCore/JSObjectRef.h: Added.
21953        * ForwardingHeaders/JavaScriptCore/JSStringRef.h: Added.
21954        * ForwardingHeaders/JavaScriptCore/JSStringRefCF.h: Added.
21955        * ForwardingHeaders/JavaScriptCore/JSValueRef.h: Added.
21956        * ForwardingHeaders/JavaScriptCore/JavaScriptCore.h: Added.
21957
219582007-06-20  Sam Weinig  <sam@webkit.org>
21959
21960        Rubber stamped by Adam Roben.
21961
21962        Add licenses.
21963
21964        * page/inspector/ConsolePanel.js:
21965        * page/inspector/NetworkPanel.js:
21966        * page/inspector/Resource.js:
21967        * page/inspector/ResourceCategory.js:
21968        * page/inspector/ResourcePanel.js:
21969
219702007-06-20  Mark Rowe  <mrowe@apple.com>
21971
21972        Reviewed by Adam.
21973
21974        * WebCore.exp: Export InspectorController::inspect so WebKit can see it.
21975
219762007-06-20  Geoffrey Garen  <ggaren@apple.com>
21977
21978        Reviewed by Adele Peterson, Oliver Hunt, Anders Carlsson.
21979
21980        Fixed <rdar://problem/5222911> Leopard9A446 : VitalSource Bookshelf 4.5: 
21981        Crashes when you click on sign in (stringByEvaluatingJavaScriptFromString 
21982        returning nil instead of "")
21983
21984        I'm basically rolling out the change for <rdar://problem/4782422> because
21985        my testing shows that it was backwards.
21986        
21987        * html/HTMLElement.cpp:
21988        (dumpInnerHTML): New debug-only function to work around gdb being 
21989        perpetually suck-tastic.
21990
21991        * page/mac/WebCoreFrameBridge.mm:
21992        (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
21993        
21994        Return "", not nil. This function never used to return nil, so let's not
21995        start now. I've filed <rdar://problem/5283271> to cover the documentation bug,
21996
219972007-06-20  Adam Roben  <aroben@apple.com>
21998
21999        Addressed some of Geoff's comments.
22000
22001        * page/ContextMenuController.cpp:
22002        (WebCore::ContextMenuController::handleContextMenuEvent): Added a
22003        FIXME.
22004        * platform/ContextMenu.cpp:
22005        (WebCore::ContextMenu::addInspectElementItem): Null-check
22006        frame->page().
22007
220082007-06-20  Adam Roben  <aroben@apple.com>
22009
22010        Fix crash in fast/dom/dir-no-body.html
22011
22012        Reviewed by Mark.
22013
22014        * html/HTMLDocument.cpp:
22015        (WebCore::HTMLDocument::createTokenizer): Don't assume we have a
22016        Frame, since we won't if someone creates an HTMLDocument from JS.
22017
220182007-06-20  Adam Roben  <aroben@apple.com>
22019
22020        Land the new Inspector.
22021
22022        Co-written with Tim Hatcher.
22023
22024        Reviewed by Anders, Adele, Hyatt, and Sam.
22025
22026        No regression tests possible.
22027
22028        Add a new InspectorController that is in charge of the Inspector. It
22029        has an InspectorClient that controls the Inspector's window and node
22030        highlight.
22031
22032        * page/InspectorClient.h: Added.
22033        (WebCore::InspectorClient::~InspectorClient):
22034        * page/InspectorController.cpp: Added.
22035        (WebCore::ConsoleMessage::ConsoleMessage):
22036        (WebCore::InspectorResource::): Represents a single resource that the
22037        Inspector knows about.
22038        (WebCore::InspectorResource::InspectorResource):
22039        (WebCore::InspectorResource::~InspectorResource):
22040        (WebCore::InspectorResource::type):
22041        (WebCore::InspectorResource::setScriptObject):
22042        (WebCore::addSourceToFrame): Callback available from JS.
22043        (WebCore::getResourceDocumentNode): Ditto.
22044        (WebCore::highlightDOMNode): Ditto.
22045        (WebCore::hideDOMNodeHighlight): Ditto.
22046        (WebCore::loaded): Ditto.
22047        (WebCore::unloading): Ditto.
22048        (WebCore::attach): Ditto.
22049        (WebCore::detach): Ditto.
22050        (WebCore::log): Ditto.
22051        (WebCore::search): Ditto.
22052        (WebCore::inspectedWindow): Ditto.
22053        (WebCore::InspectorController::InspectorController):
22054        (WebCore::InspectorController::~InspectorController):
22055        (WebCore::InspectorController::inspect): Called by
22056        ContextMenuController to inspect a node.
22057        (WebCore::InspectorController::focusNode):
22058        (WebCore::InspectorController::highlight):
22059        (WebCore::InspectorController::hideHighlight):
22060        (WebCore::InspectorController::windowVisible):
22061        (WebCore::InspectorController::setWindowVisible):
22062        (WebCore::InspectorController::addMessageToConsole):
22063        (WebCore::InspectorController::attachWindow):
22064        (WebCore::InspectorController::detachWindow):
22065        (WebCore::InspectorController::windowScriptObjectAvailable):
22066        (WebCore::InspectorController::scriptObjectReady):
22067        (WebCore::InspectorController::windowUnloading):
22068        (WebCore::addHeaders): Static helper function.
22069        (WebCore::objectForRequest): Ditto.
22070        (WebCore::objectForResponse): Ditto.
22071        (WebCore::InspectorController::addScriptResource):
22072        (WebCore::InspectorController::addAndUpdateScriptResource):
22073        (WebCore::InspectorController::removeScriptResource):
22074        (WebCore::InspectorController::updateScriptResource):
22075        (WebCore::InspectorController::populateScriptResources):
22076        (WebCore::InspectorController::addScriptConsoleMessage):
22077        (WebCore::callClearFunction): Static helper function.
22078        (WebCore::InspectorController::clearScriptResources):
22079        (WebCore::InspectorController::clearScriptConsoleMessages):
22080        (WebCore::InspectorController::clearNetworkTimeline):
22081        (WebCore::InspectorController::pruneResources):
22082        (WebCore::InspectorController::didCommitLoad): Callback from
22083        FrameLoader.
22084        (WebCore::InspectorController::frameDetachedFromParent): Ditto.
22085        (WebCore::InspectorController::addResource): Ditto.
22086        (WebCore::InspectorController::removeResource): Ditto.
22087        (WebCore::InspectorController::didLoadResourceFromMemoryCache): Ditto.
22088        (WebCore::InspectorController::identifierForInitialRequest): Ditto.
22089        (WebCore::InspectorController::willSendRequest): Ditto.
22090        (WebCore::InspectorController::didReceiveResponse): Ditto.
22091        (WebCore::InspectorController::didReceiveContentLength): Ditto.
22092        (WebCore::InspectorController::didFinishLoading): Ditto.
22093        (WebCore::InspectorController::didFailLoading): Ditto.
22094        * page/InspectorController.h: Added.
22095        (WebCore::InspectorController::inspectedPage):
22096        (WebCore::InspectorController::scriptContext):
22097        (WebCore::InspectorController::setScriptContext):
22098        (WebCore::InspectorController::resources):
22099        (WebCore::InspectorController::removeAllResources):
22100
22101        Add the JavaScript that defines most of the behavior of the Inspector.
22102        
22103        * page/inspector/ConsolePanel.js: Added.
22104        * page/inspector/NetworkPanel.js: Added.
22105        * page/inspector/Resource.js: Added.
22106        * page/inspector/ResourceCategory.js: Added.
22107        * page/inspector/ResourcePanel.js: Added.
22108        * page/inspector/inspector.js: Added.
22109        * page/inspector/treeoutline.js: Renamed from WebKit/WebInspector/webInspector/treeoutline.js.
22110        * page/inspector/utilities.js: Added.
22111
22112        Add the Inspector's CSS and HTML.
22113
22114        * page/inspector/inspector.css: Added.
22115        * page/inspector/inspector.html: Added.
22116
22117        Hang the InspectorController off of Page. We only create an
22118        InspectorController if an InspectorClient is given to the Page.
22119
22120        * page/Page.cpp:
22121        (WebCore::Page::Page):
22122        * page/Page.h:
22123        (WebCore::Page::inspectorController):
22124
22125        Use FrameLoader to notify the InspectorController of resource loads.
22126
22127        * loader/FrameLoader.cpp:
22128        (WebCore::FrameLoader::begin):
22129        (WebCore::FrameLoader::transitionToCommitted):
22130        (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
22131        (WebCore::FrameLoader::detachFromParent):
22132        (WebCore::FrameLoader::assignIdentifierToInitialRequest):
22133        (WebCore::FrameLoader::willSendRequest):
22134        (WebCore::FrameLoader::didReceiveResponse):
22135        (WebCore::FrameLoader::didReceiveData):
22136        (WebCore::FrameLoader::sendRemainingDelegateMessages):
22137        (WebCore::FrameLoader::requestFromDelegate):
22138        (WebCore::FrameLoader::didFinishLoad):
22139        (WebCore::FrameLoader::dispatchWindowObjectAvailable):
22140        (WebCore::FrameLoader::dispatchDidCommitLoad):
22141        (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest):
22142        (WebCore::FrameLoader::dispatchWillSendRequest):
22143        (WebCore::FrameLoader::dispatchDidReceiveResponse):
22144        (WebCore::FrameLoader::dispatchDidReceiveContentLength):
22145        (WebCore::FrameLoader::dispatchDidFinishLoading):
22146        (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache):
22147        * loader/FrameLoader.h:
22148
22149        Send console messages to the InspectorController.
22150
22151        * page/Chrome.cpp:
22152        (WebCore::Chrome::addMessageToConsole): Send all console messages to
22153        the InspectorController.
22154        * page/Chrome.h: Add a new MessageLevel and MessageSource that are
22155        used in the Inspector JS.
22156
22157        Report HTML errors when the Inspector window is open.
22158        We don't report errors when the window is closed because we don't want
22159        to slow down the HTMLTokenizer.
22160
22161        * html/HTMLDocument.cpp:
22162        (WebCore::HTMLDocument::createTokenizer):
22163        * html/HTMLParser.cpp:
22164        (WebCore::HTMLParser::HTMLParser):
22165        * html/HTMLParser.h:
22166        * html/HTMLTokenizer.cpp:
22167        (WebCore::HTMLTokenizer::HTMLTokenizer):
22168        * html/HTMLTokenizer.h:
22169
22170        Append the "Inspect Element" context menu item after passing the
22171        context menu to the ContextMenuClient. This work used to be done in
22172        WebKit.
22173
22174        * page/ContextMenuClient.h:
22175        * page/ContextMenuController.cpp:
22176        (WebCore::ContextMenuController::handleContextMenuEvent): Add the
22177        "Inspect Element" item.
22178        (WebCore::ContextMenuController::contextMenuItemSelected): Handle the
22179        "Inspect Element" item.
22180        * platform/ContextMenu.cpp:
22181        (WebCore::ContextMenu::addInspectElementItem):
22182        (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for "Inspect
22183        Element" item.
22184        * platform/ContextMenu.h:
22185        * platform/ContextMenuItem.h:
22186        (WebCore::): Add ContextMenuItemTagInspectElement.
22187        * platform/graphics/svg/SVGImageEmptyClients.h:
22188        * page/mac/WebCoreViewFactory.h: Add the "Inspect Element" localized
22189        string.
22190        * platform/LocalizedStrings.h: Ditto.
22191        * platform/mac/LocalizedStringsMac.mm:
22192        (WebCore::contextMenuItemTagInspectElement): Ditto.
22193
22194        Miscellaneous changes:
22195
22196        * css/view-source.css: Add message bubble styles.
22197        * loader/DocumentLoader.h: Add a frame getter.
22198        * platform/win/ScrollViewWin.cpp:
22199        (WebCore::ScrollView::updateScrollbars): Respect
22200        Frame::prohibitsScrolling.
22201
22202        Add new images needed for the Inspector.
22203
22204        * page/inspector/Images/attachedShadow.png: Added.
22205        * page/inspector/Images/bottomShadow.png: Added.
22206        * page/inspector/Images/breadcrumbBackground.png: Added.
22207        * page/inspector/Images/checker.png: Added.
22208        * page/inspector/Images/console.png: Added.
22209        * page/inspector/Images/darkShadow.png: Added.
22210        * page/inspector/Images/disclosureDownPressed.png: Added.
22211        * page/inspector/Images/disclosureRightDown.png: Added.
22212        * page/inspector/Images/disclosureRightPressed.png: Added.
22213        * page/inspector/Images/document.png: Added.
22214        * page/inspector/Images/domViewButton.png: Added.
22215        * page/inspector/Images/domViewButtonSelected.png: Added.
22216        * page/inspector/Images/downTriangle.png: Added.
22217        * page/inspector/Images/errorIcon.png: Added.
22218        * page/inspector/Images/errorMediumIcon.png: Added.
22219        * page/inspector/Images/folder.png: Added.
22220        * page/inspector/Images/goArrow.png: Added.
22221        * page/inspector/Images/gradient.png: Added.
22222        * page/inspector/Images/gradientHighlight.png: Added.
22223        * page/inspector/Images/gradientHighlightBottom.png: Added.
22224        * page/inspector/Images/hideStatusWidget.png: Added.
22225        * page/inspector/Images/hideStatusWidgetPressed.png: Added.
22226        * page/inspector/Images/network.png: Added.
22227        * page/inspector/Images/paneBottomGrow.png: Added.
22228        * page/inspector/Images/paneBottomGrowActive.png: Added.
22229        * page/inspector/Images/paneGrowHandleLine.png: Added.
22230        * page/inspector/Images/paneHeader.png: Added.
22231        * page/inspector/Images/paneHeaderActive.png: Added.
22232        * page/inspector/Images/plainDocument.png: Added.
22233        * page/inspector/Images/popupArrows.png: Added.
22234        * page/inspector/Images/rightTriangle.png: Added.
22235        * page/inspector/Images/segment.png: Added.
22236        * page/inspector/Images/segmentEnd.png: Added.
22237        * page/inspector/Images/segmentHover.png: Added.
22238        * page/inspector/Images/segmentHoverEnd.png: Added.
22239        * page/inspector/Images/segmentSelected.png: Added.
22240        * page/inspector/Images/segmentSelectedEnd.png: Added.
22241        * page/inspector/Images/showStatusWidget.png: Added.
22242        * page/inspector/Images/showStatusWidgetPressed.png: Added.
22243        * page/inspector/Images/sidbarItemBackground.png: Added.
22244        * page/inspector/Images/sidebarActionWidget.png: Added.
22245        * page/inspector/Images/sidebarActionWidgetPressed.png: Added.
22246        * page/inspector/Images/sidebarAttachWidget.png: Added.
22247        * page/inspector/Images/sidebarAttachWidgetPressed.png: Added.
22248        * page/inspector/Images/sidebarDetachWidget.png: Added.
22249        * page/inspector/Images/sidebarDetachWidgetPressed.png: Added.
22250        * page/inspector/Images/sidebarResizeWidget.png: Added.
22251        * page/inspector/Images/sidebarSelection.png: Added.
22252        * page/inspector/Images/sidebarSelectionBlurred.png: Added.
22253        * page/inspector/Images/sidebarSelectionBlurredTall.png: Added.
22254        * page/inspector/Images/sidebarSelectionGray.png: Added.
22255        * page/inspector/Images/sidebarSelectionGrayTall.png: Added.
22256        * page/inspector/Images/sidebarSelectionTall.png: Added.
22257        * page/inspector/Images/sidebarStatusAreaBackground.png: Added.
22258        * page/inspector/Images/sourceViewButton.png: Added.
22259        * page/inspector/Images/sourceViewButtonSelected.png: Added.
22260        * page/inspector/Images/splitviewDimple.png: Added.
22261        * page/inspector/Images/splitviewDividerBackground.png: Added.
22262        * page/inspector/Images/tab.png: Added.
22263        * page/inspector/Images/tabSelected.png: Added.
22264        * page/inspector/Images/timelinePillBlue.png: Added.
22265        * page/inspector/Images/timelinePillGray.png: Added.
22266        * page/inspector/Images/timelinePillGreen.png: Added.
22267        * page/inspector/Images/timelinePillOrange.png: Added.
22268        * page/inspector/Images/timelinePillPurple.png: Added.
22269        * page/inspector/Images/timelinePillRed.png: Added.
22270        * page/inspector/Images/timelinePillYellow.png: Added.
22271        * page/inspector/Images/tipBalloon.png: Added.
22272        * page/inspector/Images/tipBalloonBottom.png: Added.
22273        * page/inspector/Images/tipIcon.png: Added.
22274        * page/inspector/Images/tipIconPressed.png: Added.
22275        * page/inspector/Images/toggleDown.png: Added.
22276        * page/inspector/Images/toggleUp.png: Added.
22277        * page/inspector/Images/toolbarBackground.png: Added.
22278        * page/inspector/Images/toolbarBackgroundInactive.png: Added.
22279        * page/inspector/Images/toolbarButton.png: Added.
22280        * page/inspector/Images/toolbarButtonInactive.png: Added.
22281        * page/inspector/Images/toolbarButtonPressed.png: Added.
22282        * page/inspector/Images/toolbarButtonPressedInactive.png: Added.
22283        * page/inspector/Images/toolbarSplitButtonDivider.png: Added.
22284        * page/inspector/Images/toolbarSplitButtonDividerInactive.png: Added.
22285        * page/inspector/Images/treeDownTriangleBlack.png: Added.
22286        * page/inspector/Images/treeDownTriangleWhite.png: Added.
22287        * page/inspector/Images/treeLeftTriangleBlack.png: Added.
22288        * page/inspector/Images/treeRightTriangleBlack.png: Added.
22289        * page/inspector/Images/treeRightTriangleWhite.png: Added.
22290        * page/inspector/Images/warningIcon.png: Added.
22291        * page/inspector/Images/warningMediumIcon.png: Added.
22292        * page/inspector/Images/warningsErrors.png: Added.
22293
22294        Build-fu:
22295
22296        * WebCore.exp: Added new symbols.
22297        * WebCore.xcodeproj/project.pbxproj: Added new source files and
22298        resources.
22299        * WebCore.vcproj/WebCore.vcproj: Ditto, and copy the resources to
22300        $WebKitOutputDir.
22301
22302        Windows build fixes:
22303
22304        * history/HistoryItem.h: ResourceRequest is a struct.
22305        * loader/FrameLoaderClient.h: Ditto.
22306
223072007-06-20  Mitz Pettel  <mitz@webkit.org>
22308
22309        Reviewed by Beth.
22310
22311        - fix http://bugs.webkit.org/show_bug.cgi?id=14056
22312          REGRESSION (r21113-21143): TR background not repainted via style class change
22313
22314        Test: fast/repaint/table-row.html
22315
22316        * rendering/RenderTableRow.cpp:
22317        (WebCore::RenderTableRow::layout): Added a repaint to make up for the case where the
22318        table row also needs layout, so it doesn't get a repaint in setStyle().
22319
223202007-06-20  Mitz Pettel  <mitz@webkit.org>
22321
22322        Reviewed by Adele.
22323
22324        - fix http://bugs.webkit.org/show_bug.cgi?id=14040
22325          Top and bottom border images flipped when using -webkit-border-image when border end up tiled
22326
22327        Test: fast/borders/border-image-01.html
22328
22329        Correctly account for the fact that "pattern space" is flipped.
22330
22331        * platform/graphics/Image.cpp: (WebCore::Image::drawTiled):
22332        * platform/graphics/cg/ImageCG.cpp:
22333        (WebCore::Image::drawPatternCallback):
22334        (WebCore::Image::drawPattern):
22335
223362007-06-20  Anders Carlsson  <andersca@apple.com>
22337
22338        Reviewed by Darin.
22339
22340        <rdar://problem/5245555> REGRESSION: HTTP header injection in XMLHttpRequest.setRequestHeader
22341        
22342        Check for either '\r' or '\n' in the header value.
22343        
22344        * xml/xmlhttprequest.cpp:
22345        (WebCore::isValidHeaderValue):
22346
223472007-06-20  Patti Hoa  <patti@apple.com>
22348
22349        Reviewed by Geoffrey Garen.
22350
22351        <rdar://problem/4882527> VO should speak URL of image links that lack tags
22352        Add additional change from review
22353        
22354        * bridge/mac/WebCoreAXObject.mm:
22355        (-[WebCoreAXObject accessibilityAttributeValue:]):
22356        Check if the element has imgTag before asking for its url
22357        
223582007-06-20  Patti Hoa  <patti@apple.com>
22359
22360        Reviewed by Tristan O'Tierney.
22361
22362        <rdar://problem/4882527> VO should speak URL of image links that lack tags
22363        
22364        * bridge/mac/WebCoreAXObject.mm:
22365        (-[WebCoreAXObject accessibilityAttributeNames]):
22366        (-[WebCoreAXObject accessibilityAttributeValue:]):
22367        Return the url of images.
22368
223692007-06-19  Anders Carlsson  <andersca@apple.com>
22370
22371        Reviewed by Kevin Decker.
22372
22373        <rdar://problem/5266289> REGRESSION (Safari 3 Beta 1): Incoming iChat messages are delayed
22374        
22375        Add a new m_deferMainResourceDataLoad that can be used to control whether a data load should be deferred using a timer or not.
22376        
22377        * loader/DocumentLoader.cpp:
22378        (WebCore::DocumentLoader::DocumentLoader):
22379        * loader/DocumentLoader.h:
22380        (WebCore::DocumentLoader::deferMainResourceDataLoad):
22381        * loader/MainResourceLoader.cpp:
22382        (WebCore::MainResourceLoader::handleDataLoadSoon):
22383        (WebCore::MainResourceLoader::loadNow):
22384        (WebCore::MainResourceLoader::setDefersLoading):
22385
223862007-06-19  Patti Hoa <patti@apple.com>
22387
22388        Reviewed by Justin Garcia.
22389        
22390        <rdar://problem/5237325> Incorrect AXLeftLineTextMarkerRangeForTextMarker/AXPreviousLineStartTextMarkerForTextMarker for non-editable text
22391        
22392        * editing/visible_units.cpp:
22393        (WebCore::startPositionForLine):
22394        (WebCore::startOfLine):
22395        (WebCore::endPositionForLine):
22396        (WebCore::endOfLine):
22397        Break down the line routines to allow another try to ask for start/end of line if the returned position is not valid.
22398        An example would be when lineStart/lineEnd at different line than the input position.
22399        This can happen if the input position is before the space character at the end of a soft-wrapped non-editable line, 
22400        specifically a line without webkit-line-break:after-white-space style.
22401
224022007-06-19  Patti Hoa  <patti@apple.com>
22403
22404        Reviewed by Justin Garcia.
22405        
22406        <rdar://problem/3992645> VO view bounds misplaced when reading text after a line wrap
22407        
22408        * bridge/mac/WebCoreAXObject.mm:
22409        (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
22410        Improve the accuracy of the bounds for a given range
22411        
224122007-06-19  Anders Carlsson  <andersca@apple.com>
22413
22414        Reviewed by Darin.
22415
22416        <rdar://problem/5130630>
22417        XPath fails LayoutTests on Windows
22418        
22419        * xml/XPathPredicate.cpp:
22420        Include MathExtras.h here so we get a version of fmod that works around a bug in the Microsoft CRT.
22421        
22422        * xml/XPathValue.cpp:
22423        (WebCore::XPath::Value::toNumber):
22424        Instead of using NAN, which isn't really the NaN value on Windows, use numeric_limits.
22425        
224262007-06-19  Geoffrey Garen  <ggaren@apple.com>
22427
22428        Reviewed by Darin Adler.
22429
22430        Fixed cross-frame access. <rdar://problem/5251309>. 
22431
22432        * bindings/js/kjs_window.cpp:
22433        (KJS::Window::getValueProperty):
22434        * bindings/scripts/CodeGeneratorJS.pm:
22435        * page/DOMWindow.idl:
22436
224372007-06-19  Anders Carlsson  <andersca@apple.com>
22438
22439        Build fix.
22440        
22441        * platform/win/PopupMenuWin.cpp:
22442
224432007-06-19  Lars Knoll <lars@trolltech.com>
22444
22445        Reviewed by Zack
22446
22447        Implement these methods correctly.
22448
22449        * platform/qt/PlatformScreenQt.cpp:
22450        (WebCore::screenRect):
22451        (WebCore::screenAvailableRect):
22452
224532007-06-19  Sam Weinig  <sam@webkit.org>
22454
22455        Reviewed by Geoff.
22456
22457        Patch for http://bugs.webkit.org/show_bug.cgi?id=14226
22458        Move the History object out of the JS bindings
22459
22460        - Autogenerate JSHistory.
22461
22462        * DerivedSources.make:
22463        * WebCore.pro:
22464        * WebCore.vcproj/WebCore.vcproj:
22465        * WebCore.xcodeproj/project.pbxproj:
22466        * bindings/js/kjs_window.cpp:
22467        (KJS::WindowPrivate::WindowPrivate):
22468        (KJS::Window::mark):
22469        (KJS::Window::getValueProperty):
22470        (KJS::Window::clearHelperObjectProperties):
22471        (KJS::Window::disconnectFrame):
22472        * bindings/js/kjs_window.h:
22473        (KJS::Window::):
22474        * bridge/GlobalHistory.h: Copied from WebCore/bridge/History.h.
22475        * bridge/History.h: Removed.
22476        * bridge/mac/GlobalHistoryMac.mm: Copied from WebCore/bridge/mac/HistoryMac.mm.
22477        * bridge/mac/HistoryMac.mm: Removed.
22478        * bridge/win/GlobalHistoryWin.cpp: Copied from WebCore/bridge/win/HistoryWin.cpp.
22479        * bridge/win/HistoryWin.cpp: Removed.
22480        * css/cssstyleselector.cpp:
22481        * page/DOMWindow.cpp:
22482        (WebCore::DOMWindow::disconnectFrame):
22483        (WebCore::DOMWindow::history):
22484        * page/DOMWindow.h:
22485        * page/DOMWindow.idl:
22486        * page/History.cpp: Added.
22487        (WebCore::History::History):
22488        (WebCore::History::frame):
22489        (WebCore::History::disconnectFrame):
22490        (WebCore::History::length):
22491        (WebCore::History::back):
22492        (WebCore::History::forward):
22493        (WebCore::History::go):
22494        * page/History.h: Added.
22495        * page/History.idl: Added.
22496        * platform/gdk/TemporaryLinkStubs.cpp:
22497        * platform/qt/TemporaryLinkStubs.cpp:
22498        * platform/wx/TemporaryLinkStubs.cpp:
22499
225002007-06-18  Sam Weinig  <sam@webkit.org>
22501
22502        Qt build fix.
22503
22504        * platform/qt/PlatformScreenQt.cpp:
22505        (WebCore::screenDepth):
22506        (WebCore::screenDepthPerComponent):
22507        (WebCore::screenIsMonochrome):
22508        (WebCore::screenRect):
22509        (WebCore::screenAvailableRect):
22510
225112007-06-18  Sam Weinig  <sam@webkit.org>
22512
22513        Reviewed by Beth.
22514
22515        Fix build and update licenses. 
22516
22517        * WebCore.xcodeproj/project.pbxproj:
22518        * page/BarInfo.cpp:
22519        * page/BarInfo.h:
22520        * page/BarInfo.idl:
22521        * page/Screen.cpp:
22522        (WebCore::Screen::height):
22523        (WebCore::Screen::width):
22524        (WebCore::Screen::colorDepth):
22525        (WebCore::Screen::pixelDepth):
22526        (WebCore::Screen::availLeft):
22527        (WebCore::Screen::availTop):
22528        (WebCore::Screen::availHeight):
22529        (WebCore::Screen::availWidth):
22530        * page/Screen.h:
22531        * page/Screen.idl:
22532
225332007-06-18  Anders Carlsson  <andersca@apple.com>
22534
22535        Reviewed by John Sullivan.
22536
22537        <rdar://problem/5277008> Assertion in [LocationChangeHandler finishedLoadingFrame:]
22538        
22539        Don't send any frame load callbacks if the document load hasn't been
22540        committed for real.
22541        
22542        * loader/FrameLoader.cpp:
22543        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
22544
225452007-06-18  Sam Weinig  <sam@webkit.org>
22546
22547        Reviewed by Geoff.
22548
22549        Patch for http://bugs.webkit.org/show_bug.cgi?id=14193
22550        Move the Screen object out of the JS bindings
22551
22552        - Renames Screen.h to PlatformScreen.h to accommodate new class.
22553        - Autogenerates JSScreen.
22554
22555        * DerivedSources.make:
22556        * WebCore.pro:
22557        * WebCore.vcproj/WebCore.vcproj:
22558        * WebCore.xcodeproj/project.pbxproj:
22559        * bindings/js/kjs_window.cpp:
22560        (KJS::WindowPrivate::WindowPrivate):
22561        (KJS::Window::mark):
22562        (KJS::Window::getValueProperty):
22563        (KJS::Window::clearHelperObjectProperties):
22564        * bindings/js/kjs_window.h:
22565        (KJS::Window::):
22566        * css/MediaQueryEvaluator.cpp:
22567        * page/DOMWindow.cpp:
22568        (WebCore::DOMWindow::DOMWindow):
22569        (WebCore::DOMWindow::~DOMWindow):
22570        (WebCore::DOMWindow::frame):
22571        (WebCore::DOMWindow::disconnectFrame):
22572        (WebCore::DOMWindow::screen):
22573        * page/DOMWindow.h:
22574        * page/DOMWindow.idl:
22575        * page/Screen.cpp: Added.
22576        (WebCore::Screen::Screen):
22577        (WebCore::Screen::disconnectFrame):
22578        (WebCore::Screen::height):
22579        (WebCore::Screen::width):
22580        (WebCore::Screen::colorDepth):
22581        (WebCore::Screen::pixelDepth):
22582        (WebCore::Screen::availLeft):
22583        (WebCore::Screen::availTop):
22584        (WebCore::Screen::availHeight):
22585        (WebCore::Screen::availWidth):
22586        * page/Screen.h: Added.
22587        * page/Screen.idl: Added.
22588        * page/mac/WebCoreFrameBridge.mm:
22589        * platform/PlatformScreen.h: Copied from WebCore/platform/Screen.h.
22590        * platform/Screen.h: Removed.
22591        * platform/gdk/PlatformScreenGdk.cpp: Copied from WebCore/platform/gdk/ScreenGdk.cpp.
22592        * platform/gdk/ScreenGdk.cpp: Removed.
22593        * platform/mac/PlatformMouseEventMac.mm:
22594        * platform/mac/PlatformScreenMac.mm: Copied from WebCore/platform/mac/ScreenMac.mm.
22595        * platform/mac/ScreenMac.mm: Removed.
22596        * platform/qt/PlatformScreenQt.cpp: Added.
22597        (WebCore::WebCore::screenDepth):
22598        (WebCore::WebCore::screenDepthPerComponent):
22599        (WebCore::WebCore::screenIsMonochrome):
22600        (WebCore::WebCore::screenRect):
22601        (WebCore::WebCore::screenAvailableRect):
22602        * platform/qt/TemporaryLinkStubs.cpp:
22603        * platform/win/PlatformScreenWin.cpp: Copied from WebCore/platform/win/ScreenWin.cpp.
22604        * platform/win/ScreenWin.cpp: Removed.
22605        * rendering/RenderObject.cpp:
22606
226072007-06-18  Sam Weinig  <sam@webkit.org>
22608
22609        Reviewed by Geoff.
22610
22611        Patch for http://bugs.webkit.org/show_bug.cgi?id=14211
22612        Move the BarInfo object out of the JS bindings
22613
22614        * DerivedSources.make:
22615        * WebCore.pro:
22616        * WebCore.vcproj/WebCore.vcproj:
22617        * WebCore.xcodeproj/project.pbxproj:
22618        * bindings/js/kjs_window.cpp:
22619        (KJS::WindowPrivate::WindowPrivate):
22620        (KJS::Window::mark):
22621        (KJS::Window::getValueProperty):
22622        (KJS::Window::clearHelperObjectProperties):
22623        (KJS::Window::disconnectFrame):
22624        * bindings/js/kjs_window.h:
22625        (KJS::Window::):
22626        * page/BarInfo.cpp: Added.
22627        (WebCore::BarInfo::BarInfo):
22628        (WebCore::BarInfo::disconnectFrame):
22629        (WebCore::BarInfo::visible):
22630        * page/BarInfo.h: Added.
22631        (WebCore::BarInfo::):
22632        * page/BarInfo.idl: Added.
22633        * page/DOMWindow.cpp:
22634        (WebCore::DOMWindow::~DOMWindow):
22635        (WebCore::DOMWindow::disconnectFrame):
22636        (WebCore::DOMWindow::locationbar):
22637        (WebCore::DOMWindow::menubar):
22638        (WebCore::DOMWindow::personalbar):
22639        (WebCore::DOMWindow::scrollbars):
22640        (WebCore::DOMWindow::statusbar):
22641        (WebCore::DOMWindow::toolbar):
22642        * page/DOMWindow.h:
22643        * page/DOMWindow.idl:
22644
226452007-06-18  Sam Weinig  <sam@webkit.org>
22646
22647        Reviewed by Darin.
22648
22649        Remove the FrameArray class and instead make window.frames another
22650        self-reference for window (like window.window, window.self, etc).
22651        This is what Firefox and what the HTML5 dictates.
22652
22653        * bindings/js/kjs_window.cpp:
22654        (KJS::WindowPrivate::WindowPrivate):
22655        (KJS::Window::mark):
22656        (KJS::Window::getValueProperty):
22657        (KJS::Window::clearHelperObjectProperties):
22658        (KJS::Window::disconnectFrame):
22659        * bindings/js/kjs_window.h:
22660
226612007-06-18  Mitz Pettel  <mitz@webkit.org>
22662
22663        Reviewed by Adele.
22664
22665        - fix http://bugs.webkit.org/show_bug.cgi?id=13413
22666          Failed assertion in RenderTextControl::setSelectionRange in Google Spreadsheets
22667
22668        Test: fast/forms/input-zero-height-focus.html
22669
22670        * rendering/RenderTextControl.cpp:
22671        (WebCore::RenderTextControl::setSelectionRange): Avoid setting the
22672        selection in a zero-height text control.
22673
226742007-06-18  Alp Toker  <alp.toker@collabora.co.uk>
22675
22676        Reviewed by Sam Weinig.
22677
22678        http://bugs.webkit.org/show_bug.cgi?id=14052
22679        Implement SoundGdk
22680
22681        * WebCore.pro:
22682        * platform/gdk/SoundGdk.cpp: Added.
22683        (WebCore::systemBeep):
22684        * platform/gdk/TemporaryLinkStubs.cpp:
22685        (WebCore::systemBeep):
22686
226872007-06-18  Dave Hyatt  <hyatt@apple.com>
22688
22689        Add support for horizontal mouse wheeling on Windows.
22690        
22691        Reviewed by aroben
22692
22693        * platform/PlatformWheelEvent.h:
22694        * platform/win/WheelEventWin.cpp:
22695        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
22696
226972007-06-17  Sam Weinig  <sam@webkit.org>
22698
22699        Win32 build fix.
22700
22701        * WebCore.vcproj/WebCore.vcproj:
22702
227032007-06-15  David Hyatt  <hyatt@apple.com>
22704
22705        Fix for bugzilla bugs 14183 and 14184, 'repeat' regressed in border-image
22706        because of a botched 'round' support removal.  Also update for a change in
22707        the spec that has the second stretch/round/repeat keyword match the first
22708        if omitted.
22709        
22710        Reviewed by olliej
22711
22712        * css/cssparser.cpp:
22713        (WebCore::BorderImageParseContext::commitBorderImage):
22714        * platform/graphics/Image.cpp:
22715        (WebCore::Image::drawTiled):
22716        * platform/graphics/Image.h:
22717        (WebCore::Image::):
22718
227192007-06-15  Sam Weinig  <sam@webkit.org>
22720
22721        Reviewed by Darin.
22722
22723        Patch for http://bugs.webkit.org/show_bug.cgi?id=14053
22724        Autogenerate JS binding for Rect
22725
22726        - Renames RectImpl to Rect, DOMStyleSheetList to JSStyleSheetList 
22727          and DOMRGBColor to JSRGBColor
22728        - Moves JSStyleSheetList and JSRGBColor into the WebCore namespace.
22729
22730        * DerivedSources.make:
22731        * WebCore.pro:
22732        * WebCore.xcodeproj/project.pbxproj:
22733        * bindings/js/kjs_css.cpp:
22734        (WebCore::):
22735        (WebCore::JSStyleSheetList::JSStyleSheetList):
22736        (WebCore::JSStyleSheetList::~JSStyleSheetList):
22737        (WebCore::JSStyleSheetList::getValueProperty):
22738        (WebCore::JSStyleSheetList::indexGetter):
22739        (WebCore::JSStyleSheetList::nameGetter):
22740        (WebCore::JSStyleSheetList::getOwnPropertySlot):
22741        (WebCore::toJS):
22742        (WebCore::JSStyleSheetListFunc::callAsFunction):
22743        (WebCore::JSRGBColor::JSRGBColor):
22744        (WebCore::JSRGBColor::~JSRGBColor):
22745        (WebCore::JSRGBColor::getOwnPropertySlot):
22746        (WebCore::JSRGBColor::getValueProperty):
22747        (WebCore::getJSRGBColor):
22748        * bindings/js/kjs_css.h:
22749        (WebCore::JSStyleSheetList::classInfo):
22750        (WebCore::JSStyleSheetList::):
22751        (WebCore::JSStyleSheetList::impl):
22752        (WebCore::JSRGBColor::classInfo):
22753        (WebCore::JSRGBColor::):
22754        (WebCore::JSRGBColor::impl):
22755        * bindings/objc/DOMUtility.mm:
22756        (KJS::createDOMWrapper):
22757        * bindings/scripts/CodeGeneratorJS.pm:
22758        * bindings/scripts/CodeGeneratorObjC.pm:
22759        * css/CSSBorderImageValue.cpp:
22760        (WebCore::CSSBorderImageValue::CSSBorderImageValue):
22761        * css/CSSBorderImageValue.h:
22762        * css/CSSPrimitiveValue.cpp:
22763        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
22764        (WebCore::CSSPrimitiveValue::cssText):
22765        * css/CSSPrimitiveValue.h:
22766        (WebCore::CSSPrimitiveValue::getRectValue):
22767        (WebCore::CSSPrimitiveValue::):
22768        * css/DashboardRegion.h:
22769        * css/Rect.h: Copied from css/RectImpl.h.
22770        (WebCore::Rect::~Rect):
22771        (WebCore::Rect::top):
22772        (WebCore::Rect::right):
22773        (WebCore::Rect::bottom):
22774        (WebCore::Rect::left):
22775        (WebCore::Rect::setTop):
22776        (WebCore::Rect::setRight):
22777        (WebCore::Rect::setBottom):
22778        (WebCore::Rect::setLeft):
22779        * css/Rect.idl:
22780        * css/RectImpl.h: Removed.
22781        * css/cssparser.cpp:
22782        (WebCore::CSSParser::parseShape):
22783        (WebCore::BorderImageParseContext::commitBorderImage):
22784        * css/cssstyleselector.cpp:
22785        (WebCore::CSSStyleSelector::applyProperty):
22786        * page/DOMWindow.idl:
22787
227882007-06-14  George Staikos  <staikos@kde.org>
22789
22790        Reviewed by Lars.
22791
22792        Implement missing tab support and a slight refactor.
22793
22794        * platform/qt/PlatformKeyboardEventQt.cpp:
22795        (WebCore::keyIdentifierForQtKeyCode):
22796        (WebCore::windowsKeyCodeForKeyEvent):
22797        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
22798
227992007-06-14  Dave Hyatt  <hyatt@apple.com>
22800
22801        Fix for Bugzilla bug 14806, missing text for bold/italic fonts in non-English Windows installs.
22802        
22803        This patch adds an additional step after the lookup by full name fails.  It will then look up
22804        a PostScript name in a (localized full name) -> (PostScript name) cache.  If the name is not
22805        found, then the font's name table is obtained and searched for a PostScript name (and the
22806        result is cached).
22807        
22808        If lookup on PostScript name fails too, then we now properly fall back to the next font in the
22809        list (so text should never be missing).
22810
22811        Reviewed by Darin (thoroughly reviewed, super reviewed even)
22812
22813        * platform/win/FontCacheWin.cpp:
22814        * platform/win/FontPlatformDataWin.cpp:
22815
228162007-06-14  Anders Carlsson  <andersca@apple.com>
22817
22818        Reviewed by Geoff.
22819
22820        Add Frame::cleanupScriptObjectsForPlugin which will invalidate the root object
22821        for a given plug-in.
22822
22823        * WebCore.exp:
22824        * page/Frame.cpp:
22825        (WebCore::Frame::cleanupScriptObjectsForPlugin):
22826        * page/Frame.h:
22827
228282007-06-14  Anders Carlsson  <andersca@apple.com>
22829
22830        Reviewed by Geoff.
22831
22832        <rdar://problem/5211677>
22833        -[WebPreferences setJavaEnabled:] only disables java inside <applet>, not <object>
22834        
22835        * loader/FrameLoader.cpp:
22836        (WebCore::FrameLoader::requestObject):
22837        If the object is a Java MIME type and Java is disabled, don't load the plug-in.
22838        
22839        * platform/MimeTypeRegistry.cpp:
22840        (WebCore::MimeTypeRegistry::isJavaAppletMIMEType):
22841        Clean this up and add another applet MIME type.
22842
228432007-06-14  George Staikos  <staikos@kde.org>
22844
22845        Reviewed by Lars.
22846
22847        Implement the file chooser for Qt.
22848
22849        * platform/qt/FileChooserQt.cpp:
22850        (WebCore::FileChooser::openFileChooser):
22851        (WebCore::FileChooser::basenameForWidth):
22852
228532007-06-14  George Staikos  <staikos@kde.org>
22854
22855        Reviewed by Lars.
22856
22857        Add missing initialization of pointer.
22858
22859        * platform/qt/ContextMenuQt.cpp:
22860        (WebCore::ContextMenu::ContextMenu):
22861
228622007-06-14  Anders Carlsson  <andersca@apple.com>
22863
22864        Reviewed by Mitz.
22865
22866        <rdar://problem/5244948>
22867        Safari keeps on complaining about slow script playing NBC TV video (14133)
22868
22869        http://bugs.webkit.org/show_bug.cgi?id=14133
22870        Runaway JavaScript timer fires when spinning around in Google Maps street view
22871
22872        Make sure to start and stop the timeout checker around calls to JS.
22873
22874        * bindings/objc/WebScriptObject.mm:
22875        (-[WebScriptObject callWebScriptMethod:withArguments:]):
22876        (-[WebScriptObject evaluateWebScript:]):
22877
228782007-06-14  George Staikos  <staikos@kde.org>
22879
22880        Reviewed by Maciej.
22881
22882        Keypress causes typeahead crash on empty selects due to modulo 0.
22883
22884        * html/HTMLSelectElement.cpp:
22885        (WebCore::HTMLSelectElement::typeAheadFind):
22886
228872007-06-13  George Staikos  <staikos@kde.org>
22888
22889        Reviewed by Lars.
22890
22891        Compile without self-linking.
22892
22893        * WebCore.pro:
22894
228952007-06-13  Darin Adler  <darin@apple.com>
22896
22897        Reviewed by Kevin Decker.
22898
22899        - fix <rdar://problem/5264923> Safari frequently "stalls" beneath
22900          +[NSFont fontWithName:size:] while loading a web page (searching on disk for the font)
22901
22902        * platform/mac/WebFontCache.mm:
22903        (+[WebFontCache internalFontWithFamily:traits:size:]): Renamed from fontWithFamily.
22904        Took out the auto-activation code.
22905        (+[WebFontCache fontWithFamily:traits:size:]): Added. Calls internalFontWithFamily,
22906        then calls NSFont to trigger activation if that returned nil, then calls
22907        internalFontWithFamily again.
22908
229092007-06-13  Anders Carlsson  <andersca@apple.com>
22910
22911        Reviewed by Geoff.
22912
22913        Pass the root object to methods that end up creating new ObjcInstance objects.
22914        
22915        * bindings/objc/WebScriptObject.mm:
22916        (listFromNSArray):
22917        (-[WebScriptObject callWebScriptMethod:withArguments:]):
22918        (-[WebScriptObject evaluateWebScript:]):
22919        (-[WebScriptObject setValue:forKey:]):
22920        (-[WebScriptObject valueForKey:]):
22921        (-[WebScriptObject removeWebScriptKey:]):
22922        (-[WebScriptObject setWebScriptValueAtIndex:value:]):
22923
229242007-06-13  Anders Carlsson  <andersca@apple.com>
22925
22926        Reviewed by Darin.
22927
22928        <rdar://problem/5267992>
22929        Make sure an alert doesn't allow loading to continue inside a script.
22930        
22931        Make sure to defer all loads where it's possible for a second main loop to be running.
22932        
22933        * page/Chrome.cpp:
22934        (WebCore::Chrome::runModal):
22935        (WebCore::Chrome::runBeforeUnloadConfirmPanel):
22936        (WebCore::Chrome::runJavaScriptAlert):
22937        (WebCore::Chrome::runJavaScriptConfirm):
22938        (WebCore::Chrome::runJavaScriptPrompt):
22939        (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
22940        (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
22941        
22942        * platform/network/cf/ResourceHandleCFNet.cpp:
22943        (WebCore::ResourceHandle::setDefersLoading):
22944        Implement this.
22945
229462007-06-13  Alp Toker  <alp.toker@collabora.co.uk>
22947
22948        Reviewed by Rob.
22949
22950        http://bugs.webkit.org/show_bug.cgi?id=14060
22951        Cairo SVG support
22952
22953        * WebCore.pro: Add new files to the build.
22954        * platform/graphics/svg/SVGPaintServerPattern.h:
22955        * platform/graphics/svg/SVGPaintServerSolid.h:
22956        * platform/graphics/svg/cairo: Added.
22957        * platform/graphics/svg/cairo/RenderPathCairo.cpp: Added.
22958        (WebCore::RenderPath::strokeContains):
22959        (WebCore::RenderPath::strokeBBox):
22960        * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp: Added.
22961        (WebCore::SVGPaintServer::draw):
22962        (WebCore::SVGPaintServer::teardown):
22963        (WebCore::SVGPaintServer::renderPath):
22964        * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp: Added.
22965        (WebCore::SVGPaintServerGradient::setup):
22966        * platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp: Added.
22967        (WebCore::SVGPaintServerPattern::setup):
22968        * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp: Added.
22969        (WebCore::SVGPaintServerSolid::setup):
22970        * platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp: Added.
22971        (WebCore::SVGResourceClipper::applyClip):
22972        * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp: Added.
22973        (WebCore::SVGResourceMasker::applyMask):
22974
229752007-06-13  Simon Hausmann  <hausmann@kde.org>
22976
22977        Reviewed by Lars.
22978
22979        Added a make install target that installs the Qt port and renamed
22980        WebKitQt to QtWebKit
22981
22982        * WebCore.pro:
22983
229842007-06-13  Adam Roben  <aroben@apple.com>
22985
22986        Fix one more BITMAPINFO/BITMAPINFOHEADER typo.
22987
22988        Rubberstamped by Oliver.
22989
22990        * platform/win/DragImageWin.cpp:
22991        (WebCore::allocImage):
22992
229932007-06-12  Oliver Hunt  <oliver@apple.com>
22994
22995        Reviewed by Darin.
22996
22997        Use correct size for BITMAPINFOHEADER -- whoops.
22998
22999        * platform/win/CursorWin.cpp:
23000        (WebCore::Cursor::Cursor):
23001        * platform/win/PasteboardWin.cpp:
23002        (WebCore::Pasteboard::writeImage):
23003
230042007-06-12  Sam Weinig  <sam@webkit.org>
23005
23006        Reviewed by Oliver.
23007
23008        Patch for http://bugs.webkit.org/show_bug.cgi?id=14109
23009        Cleanup JSEvent and JSClipboard in preperation for autogeneration
23010
23011        * bindings/js/kjs_events.cpp:
23012        (KJS::DOMEvent::DOMEvent):
23013        (KJS::DOMEvent::getValueProperty):
23014        (KJS::DOMEvent::put):
23015        (KJS::DOMEvent::putValueProperty):
23016        (KJS::DOMEventPrototypeFunction::callAsFunction):
23017        (KJS::toJS):
23018        (KJS::toEvent):
23019        (KJS::):
23020        (KJS::JSClipboard::JSClipboard):
23021        (KJS::JSClipboard::~JSClipboard):
23022        (KJS::JSClipboard::getOwnPropertySlot):
23023        (KJS::JSClipboard::getValueProperty):
23024        (KJS::JSClipboard::put):
23025        (KJS::JSClipboard::putValueProperty):
23026        (KJS::JSClipboardPrototypeFunction::callAsFunction):
23027        (KJS::toClipboard):
23028        * bindings/js/kjs_events.h:
23029        (KJS::DOMEvent::):
23030        (KJS::DOMEvent::impl):
23031        (KJS::JSClipboard::impl):
23032        * dom/ClipboardEvent.h:
23033        * dom/Event.h:
23034        (WebCore::Event::srcElement):
23035        (WebCore::Event::returnValue):
23036        (WebCore::Event::clipboardData):
23037        (WebCore::Event::dataTransfer):
23038        (WebCore::Event::clipboard):
23039        * dom/MouseEvent.h:
23040
230412007-06-13  Lars Knoll <lars@trolltech.com>
23042
23043        Reviewed by Niko.
23044
23045        Small cleanup
23046
23047        * platform/qt/PlugInInfoStoreQt.cpp:
23048        (WebCore::PlugInInfoStore::supportsMIMEType):
23049
230502007-06-13  Lars Knoll <lars@trolltech.com>
23051
23052        Reviewed by Niko
23053
23054        Implement the parts required for the JS bridge
23055        to know about the plugins.
23056
23057        * WebCore.pro:
23058        * platform/qt/PlugInInfoStoreQt.cpp: Added.
23059        (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
23060        (WebCore::PlugInInfoStore::pluginCount):
23061        (WebCore::PlugInInfoStore::supportsMIMEType):
23062        (WebCore::refreshPlugins):
23063        * platform/qt/TemporaryLinkStubs.cpp:
23064
23065=== Merged the following changes from branches/WindowsMerge ===
23066
230672007-06-09  Sam Weinig  <sam@webkit.org>
23068
23069        Build fix.
23070
23071        * WebCore.vcproj/WebCore.vcproj:
23072
230732007-06-08  Anders Carlsson  <andersca@apple.com>
23074
23075        Reviewed by Adam.
23076
23077        If both the old and new WMP plugins are present, remove the old one
23078        so we won't end up choosing it.
23079        
23080        * plugins/win/PluginDatabaseWin.cpp:
23081        (WebCore::PluginDatabaseWin::getPluginsInPaths):
23082
230832007-06-08  David Hyatt  <hyatt@apple.com>
23084
23085        Update licenses/copyrights for WebCoreWin.
23086
23087        Reviewed by mccullough
23088
23089        * WebCorePrefix.cpp:
23090        * bridge/win/FrameWin.cpp:
23091        * bridge/win/FrameWin.h:
23092        * bridge/win/HistoryWin.cpp:
23093        * bridge/win/PageWin.cpp:
23094        * page/win/EventHandlerWin.cpp:
23095        * platform/graphics/cg/ColorCG.cpp:
23096        * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
23097        * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
23098        * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp:
23099        * platform/graphics/win/IconWin.cpp:
23100        * platform/graphics/win/ImageWin.cpp:
23101        * platform/network/cf/FormDataStreamCFNet.cpp:
23102        * platform/network/cf/FormDataStreamCFNet.h:
23103        * platform/network/cf/ResourceHandleCFNet.cpp:
23104        * platform/network/cf/ResourceRequestCFNet.cpp:
23105        * platform/network/cf/ResourceResponseCFNet.cpp:
23106        * platform/network/win/CookieJarWin.cpp:
23107        * platform/network/win/ResourceHandleWin.cpp:
23108        * platform/network/win/ResourceHandleWin.h:
23109        * platform/win/BString.cpp:
23110        * platform/win/BString.h:
23111        * platform/win/ClipboardWin.h:
23112        * platform/win/ContextMenuWin.cpp:
23113        * platform/win/CursorWin.cpp:
23114        * platform/win/EditorWin.cpp:
23115        * platform/win/FontCacheWin.cpp:
23116        * platform/win/FontDataWin.cpp:
23117        * platform/win/FontPlatformData.h:
23118        * platform/win/FontPlatformDataWin.cpp:
23119        * platform/win/FontWin.cpp:
23120        * platform/win/GlyphPageTreeNodeWin.cpp:
23121        * platform/win/GraphicsContextWin.cpp:
23122        * platform/win/KeyEventWin.cpp:
23123        * platform/win/MimeTypeRegistryWin.cpp:
23124        * platform/win/NotImplemented.h:
23125        * platform/win/PlatformMouseEventWin.cpp:
23126        * platform/win/PlatformScrollBar.h:
23127        * platform/win/PlatformScrollBarWin.cpp:
23128        * platform/win/PopupMenuWin.cpp:
23129        * platform/win/ScreenWin.cpp:
23130        * platform/win/ScrollViewWin.cpp:
23131        * platform/win/SearchPopupMenuWin.cpp:
23132        * platform/win/SoundWin.cpp:
23133        * platform/win/TemporaryLinkStubs.cpp:
23134        * platform/win/TextBoundariesWin.cpp:
23135        * platform/win/WebCoreHistory.cpp:
23136        * platform/win/WebCoreHistory.h:
23137        * platform/win/WebCoreSystemInterface.cpp:
23138        * platform/win/WebCoreSystemInterface.h:
23139        * platform/win/WheelEventWin.cpp:
23140        * platform/win/WidgetWin.cpp:
23141        * plugins/win/PlugInInfoStoreWin.cpp:
23142        * plugins/win/PluginDatabaseWin.cpp:
23143        * plugins/win/PluginDatabaseWin.h:
23144        * plugins/win/PluginDebug.h:
23145        * plugins/win/PluginPackageWin.cpp:
23146        * plugins/win/PluginPackageWin.h:
23147        * plugins/win/PluginStreamWin.cpp:
23148        * plugins/win/PluginStreamWin.h:
23149        * plugins/win/PluginViewWin.cpp:
23150        * plugins/win/PluginViewWin.h:
23151        * plugins/win/npapi.cpp:
23152        * plugins/win/npfunctions.h:
23153        * rendering/RenderThemeSafari.cpp:
23154        * rendering/RenderThemeSafari.h:
23155        * rendering/RenderThemeWin.h:
23156
231572007-06-07  Sam Weinig  <sam@webkit.org>
23158
23159        Fix build.
23160
23161        * WebCore.vcproj/WebCore.vcproj:
23162
231632007-06-07  Anders Carlsson  <andersca@apple.com>
23164
23165        Reviewed by Steve.
23166
23167        <rdar://problem/5252902>
23168        Shockwave plug-in content crashes.
23169        
23170        Add a new quirk for plug-ins that need their WNDPROCs to be ASCII. If someone uses SetWindowLongA to set the WNDPROC to an ASCII one
23171        and the previous one was an Unicode one, the value returned from SetWindowLongA (the old WNDPROC) will not be a function pointer, but instead
23172        a special value. The Win32 API CallWndProc knows that when it encounters a special value it must convert the message to Unicode. Shockwave 
23173        does not use CallWndProc but instead treats the WNDPROC as a function.
23174        
23175        * plugins/win/PluginViewWin.cpp:
23176        (WebCore::PluginViewWndProc):
23177        (WebCore::PluginViewWin::determineQuirks):
23178        (WebCore::PluginViewWin::init):
23179        * plugins/win/PluginViewWin.h:
23180        (WebCore::):
23181        (WebCore::PluginViewWin::quirks):
23182
231832007-06-07  Sam Weinig  <sam@webkit.org>
23184
23185        Build fix for the build fix.
23186
23187        * WebCore.vcproj/WebCore.vcproj:
23188
231892007-06-07  Sam Weinig  <sam@webkit.org>
23190
23191        Build fix.
23192
23193        * WebCore.vcproj/WebCore.vcproj:
23194
231952007-06-06  Sam Weinig  <sam@webkit.org>
23196
23197        Build fix.
23198
23199        * WebCore.vcproj/WebCore.vcproj:
23200
232012007-06-03  Steve Falkenburg  <sfalken@apple.com>
23202
23203        Reviewed by Oliver.
23204
23205        Update to last fix.
23206        Invalidate a list of rects rather than unioning them.
23207
23208        * plugins/win/PluginViewWin.cpp:
23209        (WebCore::PluginViewWin::invalidateTimerFired):
23210        (WebCore::PluginViewWin::invalidateRect):
23211        * plugins/win/PluginViewWin.h:
23212
232132007-06-03  Steve Falkenburg  <sfalken@apple.com>
23214
23215        Reviewed by Oliver.
23216
23217        <rdar://problem/5245016> 100A89+WebKit.dll: Can't select text in page location field at kids.yahoo.com
23218        
23219        Delay invalidates for windowless Flash to prevent Flash WM_PAINT and WM_USER+1 messages from
23220        starving other HWNDs.
23221        
23222        This code defers the invalidate through a WebCore::Timer.  We could have used a Windows ::SetTimer
23223        to further lessen CPU load, but this would have the additional risk of negatively impacting Flash
23224        performance, since WebCore::Timer is set up to be more responsive than ::SetTimer.
23225
23226        * plugins/win/PluginViewWin.cpp:
23227        (WebCore::PluginViewWin::invalidateTimerFired): Added.
23228        (WebCore::PluginViewWin::invalidateRect): Delay invalidates for windowless Flash.
23229        (WebCore::PluginViewWin::determineQuirks): Add delayed invalidate quirk.
23230        * plugins/win/PluginViewWin.h:
23231
232322007-06-02  Steve Falkenburg  <sfalken@apple.com>
23233
23234        Reviewed by Adam.
23235
23236        Update last fix to use startsWith instead of strcmpi.
23237
23238        * plugins/win/PluginStreamWin.cpp:
23239        (WebCore::PluginStreamWin::startStream):
23240        * plugins/win/PluginViewWin.cpp:
23241        (WebCore::scriptStringIfJavaScriptURL):
23242
232432007-06-02  Steve Falkenburg  <sfalken@apple.com>
23244
23245        Reviewed by gramps.
23246
23247        Fix http://www.tvguide.com/ "LAUNCH VIDEO & PHOTO PLAYER" button.
23248        Make "javascript" URL scheme string compare case insensitive.
23249
23250        * plugins/win/PluginStreamWin.cpp:
23251        (WebCore::PluginStreamWin::startStream): Use strcmpi.
23252        * plugins/win/PluginViewWin.cpp:
23253        (WebCore::scriptStringIfJavaScriptURL): Use strcmpi.
23254
232552007-06-01  Anders Carlsson  <andersca@apple.com>
23256
23257        Reviewed by Steve.
23258
23259        If the value exists but is empty, return an empty String.
23260        
23261        * plugins/win/PluginPackageWin.cpp:
23262        (WebCore::getVersionInfo):
23263
232642007-06-01  Anders Carlsson  <andersca@apple.com>
23265
23266        Reviewed by Steve.
23267
23268        Add the default path for the new WMP Firefox plugin.
23269
23270        * plugins/win/PluginDatabaseWin.cpp:
23271        (WebCore::addWindowsMediaPlayerPluginPath):
23272
232732007-05-31  Sam Weinig  <sam@webkit.org>
23274
23275        Fixed build.
23276
23277        * WebCore.vcproj/WebCore.vcproj:
23278
232792007-05-31  Sam Weinig  <sam@webkit.org>
23280
23281        Fixed build.
23282
23283        * WebCore.vcproj/WebCore.vcproj:
23284
232852007-05-30  Ada Chan  <adachan@apple.com>
23286
23287        Reviewed by Adam.
23288
23289        Fixed build.
23290
23291        * platform/win/PopupMenuWin.cpp:
23292        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
23293
232942007-05-30  Sam Weinig  <sam@webkit.org>
23295
23296        Build Fix.
23297
23298        * WebCore.vcproj/WebCore.vcproj:
23299
233002007-05-29  Sam Weinig  <sam@webkit.org>
23301
23302        Fix the build.
23303
23304        * WebCore.vcproj/WebCore.vcproj:
23305
233062007-05-29  Anders Carlsson  <andersca@apple.com>
23307
23308        Reviewed by Adam.
23309
23310        <rdar://4782915> plugin is not in the right place at jumble.com/play.html
23311
23312        Pass the plugin window coordinates for windowed plugins too.
23313        
23314        * plugins/win/PluginViewWin.cpp:
23315        (WebCore::PluginViewWin::setNPWindowRect):
23316
233172007-05-29  Anders Carlsson  <andersca@apple.com>
23318
23319        Reviewed by Adam.
23320
23321        <rdar://problem/4761543> nike.com doesn't finish loading if Flash plugin is installed
23322        <rdar://problem/5131528> play button on Flash in ESPN front page does not start movie
23323        
23324        Make sure to call NPP_SetWindow right after creating the plugin, and not from the main loop. However,
23325        the WMP plugin needs to have the plugin's window coordinates set correctly when calling NPP_SetWindow so add a 
23326        quirk for that.
23327        
23328        * plugins/win/PluginViewWin.cpp:
23329        (WebCore::PluginViewWin::determineQuirks):
23330        (WebCore::PluginViewWin::init):
23331        * plugins/win/PluginViewWin.h:
23332        (WebCore::):
23333
233342007-05-29  Sam Weinig  <sam@webkit.org>
23335
23336        Reviewed by Adam Roben.
23337
23338        - Removes platform/win/NotImplemented.h because we have consolidated
23339          the notImplemented() for all platforms in platform/NotImplemented.h
23340        - Fixes remaining uses of old macro to use the new notImplemented() one.
23341
23342        * WebCore.vcproj/WebCore.vcproj:
23343        * page/win/EventHandlerWin.cpp:
23344        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
23345        * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
23346        (WebCore::SVGResourceFilter::prepareFilter):
23347        (WebCore::SVGResourceFilter::applyFilter):
23348        * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp:
23349        (WebCore::SVGResourceMasker::applyMask):
23350        * platform/win/GraphicsContextWin.cpp:
23351        (WebCore::contextForImage):
23352        * platform/win/NotImplemented.h: Removed.
23353        * platform/win/SearchPopupMenuWin.cpp:
23354        (WebCore::SearchPopupMenu::saveRecentSearches):
23355        (WebCore::SearchPopupMenu::loadRecentSearches):
23356        * platform/win/TemporaryLinkStubs.cpp:
23357        (Frame::print):
23358        (Frame::issueTransposeCommand):
23359        (GraphicsContextPlatformPrivate::clip):
23360        (WebCore::FrameView::updateBorder):
23361        (Widget::setIsSelected):
23362        (ScrollView::inWindow):
23363        (WebCore::focusRingColor):
23364        (WebCore::setFocusRingColorChangeFunction):
23365        (Frame::setNeedsReapplyStyles):
23366        (FrameLoader::overrideMediaType):
23367        (DocumentLoader::getResponseModifiedHeader):
23368        (ResourceHandle::willLoadFromCache):
23369        (WebCore::userIdleTime):
23370        (CachedPage::close):
23371        (WebCore::supportedKeySizes):
23372        (WebCore::signedPublicKeyAndChallengeString):
23373        * plugins/win/PluginViewWin.cpp:
23374        (WebCore::PluginViewWin::newStream):
23375        (WebCore::PluginViewWin::write):
23376        (WebCore::PluginViewWin::setValue):
23377
233782007-05-29  Anders Carlsson  <andersca@apple.com>
23379
23380        Build fix.
23381        
23382        * rendering/RenderThemeSafari.cpp:
23383        (WebCore::RenderThemeSafari::adjustSliderThumbStyle):
23384
233852007-05-29  Anders Carlsson  <andersca@apple.com>
23386
23387        Reviewed by Adam.
23388
23389        Port code from open source changeset 21808, fixing
23390        http://bugs.webkit.org/show_bug.cgi?id=13871 
23391        
23392        * rendering/RenderThemeSafari.cpp:
23393        (WebCore::RenderThemeMac::adjustSliderThumbStyle):
23394        * rendering/RenderThemeSafari.h:
23395
233962007-05-29  Ada Chan  <adachan@apple.com>
23397
23398        Build fix.
23399        - Added "$(ProjectDir)..\platform\win" to include paths
23400        - Added WebCore\bindings\js\JSCSSStyleDeclarationCustom.cpp to project
23401
23402        * WebCore.vcproj/WebCore.vcproj:
23403
234042007-05-28  Sam Weinig  <sam@webkit.org>
23405
23406        Build fix.
23407
23408        * WebCore.vcproj/WebCore.vcproj:
23409
234102007-05-27  Sam Weinig  <sam@webkit.org>
23411
23412        Build fix.
23413
23414        * WebCore.vcproj/WebCore.vcproj:
23415
234162007-05-24  Geoffrey Garen  <ggaren@apple.com>
23417
23418        Reviewed by Darin Adler.
23419
23420        Fixed a bug with Settings where a number of different objects held bare 
23421        Settings* data members, even though the Page owns the Settings object and 
23422        deletes it upon destruction.
23423
23424        Added NULL checks since the Page can be deleted before the frame/document.
23425
23426        * plugins/win/PluginViewWin.cpp:
23427        (WebCore::PluginViewWin::load):
23428
234292007-05-24  Sam Weinig  <sam@webkit.org>
23430
23431        Reviewed by NOBODY.
23432
23433        Build fix.
23434
23435        * WebCore.vcproj/WebCore.vcproj:
23436
234372007-05-24  Anders Carlsson  <andersca@apple.com>
23438
23439        Reviewed by Adam.
23440
23441        <rdar://5211882>
23442        Need to relaunch Boomer to recognize newly installed QT plug-in
23443        
23444        <rdar://5061867>
23445        After installing Flash, Safari would still not display pages that needed it
23446        
23447        * plugins/win/PluginDatabaseWin.cpp:
23448        (WebCore::PluginDatabaseWin::refresh):
23449        Return whether the plugin database changed or not.
23450        
23451        (WebCore::PluginDatabaseWin::findPlugin):
23452        New function that tries to find a plug-in given its url and MIME type.
23453        
23454        (WebCore::PluginDatabaseWin::createPluginView):
23455        If no plugin is found, refresh the database and search for the plugin again if the database changed.
23456        
234572007-05-24  Adele Peterson  <adele@apple.com>
23458
23459        - fix http://bugs.webkit.org/show_bug.cgi?id=13837
23460          Separator in new <select> widget disappears when block element with border is in document.
23461
23462        * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintMenuListButton):
23463         Added calls to set the stroke style and thickness when painting the arrows and the separator.
23464
234652007-05-24  Sam Weinig  <sam@webkit.org>
23466
23467        Build fix.
23468
23469        * WebCore.vcproj/WebCore.vcproj:
23470
234712007-05-23  Sam Weinig  <sam@webkit.org>
23472
23473        Build fix.
23474
23475        * WebCore.vcproj/WebCore.vcproj:
23476
234772007-05-23  Anders Carlsson  <andersca@apple.com>
23478
23479        Fix build.
23480        
23481        * platform/win/CursorWin.cpp:
23482        (WebCore::zoomInCursor):
23483        (WebCore::zoomOutCursor):
23484
234852007-05-22  Ada Chan  <adachan@apple.com>
23486
23487        Fix build.
23488
23489        * plugins/win/PluginViewWin.cpp:
23490        (WebCore::PluginViewWin::handleMouseEvent):
23491
234922007-05-22  Justin Garcia  <justin.garcia@apple.com>
23493
23494        Reviewed by oliver
23495
23496        Build fix.
23497
23498        * plugins/win/PluginViewWin.cpp:
23499        (WebCore::PluginViewWin::handleMouseEvent): 
23500
235012007-05-21  Sam Weinig  <sam@webkit.org>
23502
23503        Reviewed by Oliver.
23504
23505        Build fix.
23506
23507        * WebCore.vcproj/WebCore.vcproj:
23508
235092007-05-21  Sam Weinig  <sam@webkit.org>
23510
23511        Reviewed by Adam.
23512
23513        Build fix.
23514
23515        * WebCore.vcproj/WebCore.vcproj:
23516
235172007-05-17  Steve Falkenburg  <sfalken@apple.com>
23518
23519        Reviewed by Geoff, Adam.
23520
23521        Use precompiled headers (via WebCorePrefix.h) to speed up WebCoreWin builds.
23522        This improved WebCore debug rebuild time from 40 minutes to 25 for me.
23523        
23524        A few files needed to be excluded, since they didn't build properly with
23525        the prefix file: ColorData.c, CSSGrammar.cpp, HTMLEntityNames.c, XPathGrammar.cpp, XPathParser.cpp.
23526
23527        * WebCore.vcproj/WebCore.vcproj: Turn on precompiled header, force includes flags.
23528        * WebCorePrefix.cpp: Added.
23529        * WebCorePrefix.h: Added.
23530        * config.h: Modified to be compatible with WebCorePrefix.h.
23531
235322007-05-18  Sam Weinig  <sam@webkit.org>
23533
23534        Reviewed by Adam.
23535
23536        Fixing the vcproj paths.
23537
23538        * WebCore.vcproj/WebCore.vcproj:
23539
235402007-05-18  Sam Weinig  <sam@webkit.org>
23541
23542        Reviewed by Geoff.
23543
23544        Build fix after r21577.
23545
23546        * WebCore.vcproj/WebCore.vcproj:
23547
235482007-05-18  Adam Roben  <aroben@apple.com>
23549
23550        Build fix after r21562.
23551
23552        * platform/win/TemporaryLinkStubs.cpp:
23553        * platform/win/WidgetWin.cpp:
23554        * plugins/win/PluginViewWin.cpp:
23555        * plugins/win/PluginViewWin.h:
23556
235572007-05-18  Anders Carlsson  <andersca@apple.com>
23558
23559        Reviewed by Geoff.
23560        
23561        <rdar://problem/4914940> Some plugins won't redraw correctly when scrolling
23562        
23563        This patch does two things:
23564        
23565        1. It comments out the call to set the window's region to an empty region while it's being moved. This was done to prevent
23566        the QT plugin from drawing outside its bounds when scrolling it when it's inside an iframe or div with overflow.
23567        
23568        2. It lets Windows handle its invalid region when moving the window and setting its new window region.
23569        
23570        * plugins/win/PluginViewWin.cpp:
23571        (WebCore::PluginViewWin::updateWindow):
23572
235732007-05-18  Adam Roben  <aroben@apple.com>
23574
23575        Build fix after r21555.
23576
23577        * page/win/EventHandlerWin.cpp:
23578        (WebCore::EventHandler::passMouseMoveEventToSubframe):
23579
235802007-05-17  Sam Weinig  <sam@webkit.org>
23581
23582        Reviewed by Adam.
23583
23584        Build Fix after <rdar://problem/5201423>
23585
23586        * WebCore.vcproj/WebCore.vcproj:
23587
235882007-05-17  Adele Peterson  <adele@apple.com>
23589
23590        Reviewed by Hyatt.
23591
23592        Follow up to <rdar://problem/5092645> PopupMenuWin needs bidiReorderCharacters logic from RenderListBox
23593
23594        * platform/win/PopupMenuWin.cpp: (WebCore::PopupMenu::paint):
23595          Use the clientStyle to determine how to handle bidi text.  For popup buttons, which we restrict to LTR,
23596          we will match the button text.
23597
235982007-05-17  Anders Carlsson  <andersca@apple.com>
23599
23600        Reviewed by Darin.
23601
23602        <rdar://problem/5210600> New WMP plugin doesn't show any contents
23603
23604        Call NPP_SetWindow after the window's size has been updated.
23605        
23606        * plugins/win/PluginViewWin.cpp:
23607        (WebCore::PluginViewWin::setFrameGeometry):
23608
236092007-05-17  Anders Carlsson  <andersca@apple.com>
23610
23611        Reviewed by John.
23612
23613        <rdar://problem/5204016> Repro crash on nytimes.com in MimeTypeRegistry::getMIMETypeForExtension
23614        
23615        Return null if the extension is null.
23616        
23617        * platform/win/MimeTypeRegistryWin.cpp:
23618        (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
23619
236202007-05-16  Adele Peterson  <adele@apple.com>
23621
23622        Reviewed by Hyatt.
23623
23624        Fix for:
23625            <rdar://problem/5092645> PopupMenuWin needs bidiReorderCharacters logic from RenderListBox
23626            <rdar://problem/5205654> Select popup menus should always be ltr to match the mac
23627
23628        * platform/win/PopupMenuWin.cpp:
23629        (WebCore::PopupMenu::show): Remove special cases for RTL menus, since we are always going to left align.
23630        (WebCore::PopupMenu::calculatePositionAndSize): ditto.
23631        (WebCore::PopupMenu::paint): Added call to bidiReorderCharacters.
23632
236332007-05-14  Oliver Hunt  <oliver@apple.com>
23634
23635        Reviewed by Sam.
23636
23637        Fix for <rdar://problem/5147895> REGRESSION: Content-Disposition: filename is ignored for drag-and-drop.
23638
23639        If the image does not already have a title, fall back to the 
23640        name suggested by Content-Disposition.
23641
23642        * platform/win/ClipboardWin.cpp:
23643        (WebCore::createGlobalImageFileDescriptor):
23644
236452007-05-14  Oliver Hunt  <oliver@apple.com>
23646
23647        Reviewed by Sam.
23648
23649        Fix for <rdar://problem/5202805> Null dereference in createGlobalData(CString str)
23650        
23651        Null terminate manually to prevent us from dereferencing null.
23652
23653        * platform/win/ClipboardUtilitiesWin.cpp:
23654        (WebCore::createGlobalData):
23655
236562007-05-14  Oliver Hunt  <oliver@apple.com>
23657
23658        Reviewed by Geoff.
23659
23660        Windows side of fix for
23661        <rdar://problem/4728842> Can't drag-and-drop files onto <input type="file">
23662
23663        * platform/win/ClipboardUtilitiesWin.cpp:
23664        (WebCore::cfHDropFormat):
23665          Need to be able to access externally
23666          
23667        * platform/win/ClipboardUtilitiesWin.h:
23668          Declare cfHDropFormat
23669          
23670        * platform/win/DragDataWin.cpp:
23671        (WebCore::DragData::containsFiles):
23672        (WebCore::DragData::asFilenames):
23673          Add implementation of containsFiles and asFilenames
23674
236752007-05-14  Geoffrey Garen  <ggaren@apple.com>
23676
23677        Build fix.
23678
23679        * WebCore.vcproj/WebCore.vcproj:
23680
236812007-05-14  Anders Carlsson  <andersca@apple.com>
23682
23683        Reviewed by Geoff.
23684
23685        <rdar://problem/5176940> Seed10: MS Silverlight 1.0 beta plug-in is not supported
23686        
23687        * plugins/win/PluginDatabaseWin.cpp:
23688        (WebCore::addPluginsFromRegistry):
23689        New function that adds plugins from the registry from HKEY_LOCAL_MACHINE/MozillaPlugins.
23690
23691        * plugins/win/PluginViewWin.cpp:
23692        (WebCore::PluginViewWin::invalidateRect):
23693        (WebCore::PluginViewWin::forceRedraw):
23694        Make these work with windowed plugins.
23695        
236962007-05-13  Darin Adler  <darin@apple.com>
23697
23698        Requested by Hyatt.
23699
23700        - internal part of http://bugs.webkit.org/show_bug.cgi?id=13529
23701          DOM3 keyIdentifier text is incorrect
23702
23703        * platform/win/KeyEventWin.cpp:
23704        (WebCore::keyIdentifierForWindowsKeyCode): Use 4 digits for "U+" stuff.
23705
237062007-05-12  Oliver Hunt  <oliver@apple.com>
23707
23708        rs=hyatt.
23709
23710        Stubs to prevent build bustage
23711
23712        * platform/win/DragDataWin.cpp:
23713        (WebCore::DragData::containsFiles):
23714        (WebCore::DragData::asFilenames):
23715
237162007-05-11  Darin Adler  <darin@apple.com>
23717
23718        * WebCore.vcproj/WebCore.vcproj: Added new RenderWordBreak.cpp/h files.
23719
237202007-05-10  Adele Peterson  <adele@apple.com>
23721
23722        Reviewed by Hyatt.
23723
23724        * bridge/win/FrameWin.cpp:
23725        (WebCore::imageFromSelection): Updated to use selectionRect instead of visibleSelectionRect
23726        
237272007-05-08  Steve Falkenburg  <sfalken@apple.com>
23728
23729        Rubber-stamped by Geoff.
23730
23731        Moved shared EditorWin code to Editor.cpp in open source.
23732
23733        * platform/win/EditorWin.cpp: Deleted (moved) most of this file.
23734
237352007-05-08  Steve Falkenburg  <sfalken@apple.com>
23736
23737        Reviewed by Darin, Oliver.
23738
23739        Removed localized string stubs.
23740
23741        * platform/win/TemporaryLinkStubs.cpp:
23742
237432007-05-08  Steve Falkenburg  <sfalken@apple.com>
23744
23745        Reviewed by Ada.
23746
23747        Updated for new editor interface.
23748
23749        * platform/win/EditorWin.cpp:
23750        (WebCore::Editor::advanceToNextMisspelling):
23751        (WebCore::isRangeUngrammatical):
23752
237532007-05-07  Alice Liu  <alice.liu@apple.com>
23754
23755        Reviewed by Oliver.
23756
23757        Fixed <rdar://5087119> Paste fidelity isn't as good as it is on the mac
23758        and <rdar://5087118> Plain text copy/paste yields bad line endings on Boomer
23759        and re-organized standalone functions in DragDataWin.cpp and PasteboardWin.cpp
23760        into ClipboardUtilitiesWin.h/cpp.
23761
23762        * WebCore.vcproj/WebCore.vcproj:
23763        * platform/win/ClipboardUtilitiesWin.cpp: Added.
23764        (WebCore::cfHDropFormat):
23765        (WebCore::getWebLocData):
23766        (WebCore::extractURL):
23767        (WebCore::texthtmlFormat):
23768        (WebCore::createGlobalData):
23769        (WebCore::markupToCF_HTML):
23770        (WebCore::urlToMarkup):
23771        (WebCore::replaceNewlinesWithWindowsStyleNewlines):
23772        (WebCore::replaceNBSPWithSpace):
23773        (WebCore::urlWFormat):
23774        (WebCore::urlFormat):
23775        (WebCore::plainTextFormat):
23776        (WebCore::plainTextWFormat):
23777        (WebCore::filenameWFormat):
23778        (WebCore::filenameFormat):
23779        (WebCore::htmlFormat):
23780        (WebCore::getURL):
23781        (WebCore::getPlainText):
23782        (WebCore::fragmentFromFilenames):
23783        (WebCore::containsFilenames):
23784        (WebCore::fragmentFromCF_HTML):
23785        (WebCore::fragmentFromHTML):
23786        (WebCore::containsHTML):
23787        * platform/win/ClipboardUtilitiesWin.h: Added.
23788        * platform/win/ClipboardWin.cpp:
23789        (WebCore::ClipboardWin::writeRange):
23790        * platform/win/DragDataWin.cpp:
23791        * platform/win/PasteboardWin.cpp:
23792        (WebCore::Pasteboard::writeSelection):
23793        (WebCore::Pasteboard::documentFragment):
23794
237952007-05-04  Steve Falkenburg  <sfalken@apple.com>
23796
23797        Reviewed by Darin.
23798
23799        Fix crash when using "check spelling while typing".
23800
23801        * WebCore.vcproj/WebCore.vcproj: Added TextBreakIteratorInternalICUWin.cpp
23802        * platform/win/TemporaryLinkStubs.cpp: Removed findSentenceBoundary, findNextSentenceFromIndex.
23803
238042007-05-04  Alice Liu  <alice.liu@apple.com>
23805
23806        Reviewed by Darin.
23807
23808        changed use of DeprecatedString::fromUTF8 to UTF8Encoding().decode()
23809
23810        * platform/win/DragDataWin.cpp:
23811        (WebCore::fragmentFromHTML):
23812        * platform/win/PasteboardWin.cpp:
23813        (WebCore::Pasteboard::documentFragment):
23814
238152007-05-03  Steve Falkenburg  <sfalken@apple.com>
23816
23817        Reviewed by Ada, Oliver.
23818
23819        Checkpoint:
23820        <rdar://problem/4602372> Spelling
23821        <rdar://problem/4769763> Spell checking engine support
23822
23823        * platform/win/EditorWin.cpp:
23824        (WebCore::findFirstBadGrammarInRange): Account for start offset when reporting bad grammar range (fixed my porting mistake).
23825        (WebCore::Editor::advanceToNextMisspelling): Include user description with spelling error.
23826        (WebCore::isRangeUngrammatical): Include user description with spelling error.
23827
238282007-05-03  Alice Liu  <alice.liu@apple.com>
23829
23830        Reviewed by Oliver.
23831
23832        Fixed <rdar://5181466> HTML formatted clipboard data is not converted from UTF8 when pasted
23833
23834        * platform/win/DragDataWin.cpp:
23835        (WebCore::fragmentFromHTML):
23836        * platform/win/PasteboardWin.cpp:
23837        (WebCore::fragmentFromCF_HTML):
23838        (WebCore::Pasteboard::documentFragment):
23839
238402007-05-03  Oliver Hunt  <oliver@apple.com>
23841
23842        Reviewed by Steve
23843
23844        Fix misuse of GlobalLock.
23845
23846        * platform/win/PasteboardWin.cpp:
23847        (WebCore::createGlobalData):
23848
238492007-05-03  Oliver Hunt  <oliver@apple.com>
23850
23851        Reviewed by Steve.
23852
23853        Add logic to draw underlines for grammar and spelling errors.
23854        (rdar://problem/4769832)
23855
23856        * platform/win/GraphicsContextWin.cpp:
23857        (WebCore::spellingPatternColor):
23858        (WebCore::grammarPatternColor):
23859          Can't define global const with constructor so use function scoped globals instead.
23860        (WebCore::setCGStrokeColor):
23861          Utility function pulled over from GraphicsContextCG          
23862        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
23863        
23864        * platform/win/TemporaryLinkStubs.cpp:
23865          Remove old drawLineForMisspellingOrBadGrammar stub
23866
238672007-05-01  Steve Falkenburg  <sfalken@apple.com>
23868
23869        Reviewed by Oliver.
23870
23871        Fix crash when retrieving title of context menu after it has been selected.
23872        Necessary to get spelling corrections code working.
23873
23874        * platform/win/ContextMenuWin.cpp:
23875        (WebCore::ContextMenu::itemWithAction): menu item info fType is a set of flags, MFT_STRING is 0, so we need to or off flags before comparing.
23876
238772007-04-29  Adam Roben  <aroben@apple.com>
23878
23879        Build fix after r21183.
23880
23881        * WebCore.vcproj/WebCore.vcproj: Added LayoutState.(h|cpp).
23882
238832007-04-29  Oliver Hunt  <oliver@apple.com>
23884
23885        Reviewed by Steve.
23886
23887        Fix for <rdar://problem/5126393> REGRESSION (r19672-19697): Safari drag image drags at original size (13261)
23888 
23889        Prevent build bustage from opensource changes, correct scaling
23890
23891        * platform/win/DragImageWin.cpp:
23892        (WebCore::scaleDragImage):
23893
238942007-04-24  Steve Falkenburg  <sfalken@apple.com>
23895
23896        Reviewed by Darin, Oliver.
23897
23898        Checkpoint:
23899        <rdar://problem/4602372> Spelling
23900        <rdar://problem/4769763> Spell checking engine support
23901        
23902        Ported code from EditorMac.mm into EditorWin.cpp.
23903        Once this works, I'll move this code into Editor.cpp and remove it
23904        form EditorMac.mm.
23905
23906        * platform/win/EditorWin.cpp:
23907        (WebCore::Editor::ignoreSpelling):
23908        (WebCore::Editor::learnSpelling):
23909        (WebCore::findFirstMisspellingInRange):
23910        (WebCore::paragraphAlignedRangeForRange):
23911        (WebCore::findFirstGrammarDetailInRange):
23912        (WebCore::findFirstBadGrammarInRange):
23913        (WebCore::Editor::advanceToNextMisspelling):
23914        (WebCore::Editor::isSelectionMisspelled):
23915        (WebCore::isRangeUngrammatical):
23916        (WebCore::Editor::isSelectionUngrammatical):
23917        (WebCore::Editor::guessesForUngrammaticalSelection):
23918        (WebCore::Editor::guessesForMisspelledSelection):
23919        (WebCore::Editor::showSpellingGuessPanel):
23920        (WebCore::Editor::spellingPanelIsShowing):
23921        (WebCore::Editor::markMisspellingsAfterTypingToPosition):
23922        (WebCore::markAllMisspellingsInRange):
23923        (WebCore::markAllBadGrammarInRange):
23924        (WebCore::markMisspellingsOrBadGrammar):
23925        (WebCore::Editor::markMisspellings):
23926        (WebCore::Editor::markBadGrammar):
23927        * platform/win/TemporaryLinkStubs.cpp:
23928
239292007-04-23  Anders Carlsson  <andersca@apple.com>
23930
23931        Reviewed by Ada.
23932
23933        <rdar://problem/5061022>
23934        REGRESSION: Acrobat 8 plug-in fails to scroll with trackpad two-finger scroll or mouse wheel (12995)
23935        
23936        * page/win/EventHandlerWin.cpp:
23937        (WebCore::EventHandler::passWheelEventToWidget):
23938        Get rid of passWheelEventToSubframe and pass wheel events to all widgets.
23939
239402007-04-23  Adam Roben  <aroben@apple.com>
23941
23942        Build fix.
23943
23944        * page/win/EventHandlerWin.cpp: Removed passWheelEventToSubframe.
23945
239462007-04-20  Beth Dakin  <bdakin@apple.com>
23947
23948        Reviewed by Adam.
23949
23950        Fix for <rdar://problem/5089822> Boomer does not send scroll events
23951
23952        * platform/win/ScrollViewWin.cpp:
23953        (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
23954
239552007-04-19  Adam Roben  <aroben@apple.com>
23956
23957        * WebCore.vcproj/WebCore.vcproj: Removed empty filter.
23958
239592007-04-19  Adam Roben  <aroben@apple.com>
23960
23961        * WebCore.vcproj/WebCore.vcproj: Removed unused files.
23962
239632007-04-18  Adam Roben  <aroben@apple.com>
23964
23965        Reviewed by Oliver.
23966
23967        Added an equality operator to COMPtr.
23968
23969        * platform/win/COMPtr.h:
23970        (operator==):
23971        (operator!=):
23972
239732007-04-18  Oliver Hunt  <oliver@apple.com>
23974
23975        Reviewed by Geoff.
23976
23977        Allow images to be dragged from page and dropped as files.
23978        This is the remainder of the fix for <rdar://problem/5035948> 
23979          -- Dragging image or link from boomer doesn't create webloc 
23980             or image file.
23981
23982        * platform/win/ClipboardWin.cpp:
23983        (WebCore::filesystemPathFromUrlOrTitle):
23984          Make name generation nicer, and better match Firefox
23985        
23986        (WebCore::createGlobalURLContent):
23987          rename function
23988        
23989        (WebCore::createGlobalImageFileContent):
23990          Copies image data into global store
23991        
23992        (WebCore::createGlobalUrlFileDescriptor):
23993          Rename function
23994          Updated for parameter change on filesystemPathFromUrlOrTitle
23995        
23996        (WebCore::createGlobalImageFileDescriptor):
23997          Set up file descriptor for image drag
23998        
23999        (WebCore::getCachedImage):
24000          Helper function
24001        
24002        (WebCore::writeImageToDataObject):
24003          Attempts to build and insert data for image->file drag
24004        
24005        (WebCore::ClipboardWin::declareAndWriteDragImage):
24006          Attempts to build and insert data for image->file drag
24007        
24008        (WebCore::ClipboardWin::writeURL):
24009          Add call to imageDataToDataObject
24010
240112007-04-17  Adam Roben  <aroben@apple.com>
24012
24013        Rubberstamped by Oliver.
24014
24015        * platform/network/cf/ResourceHandleCFNet.cpp: Removed an unnecessary
24016        include.
24017
240182007-04-17  Oliver Hunt  <oliver@apple.com>
24019
24020        Whoops, had code commented out from manual failure test.
24021        Also fixed date of previous changelog entry
24022
24023        * platform/win/ClipboardWin.cpp:
24024        (WebCore::writeFileToDataObject):
24025
240262007-04-17  Oliver Hunt  <oliver@apple.com>
24027
24028        Reviewed by Ada.
24029
24030        Partial fix for <rdar://problem/5035948> -- Dragging image 
24031        or link from boomer doesn't create webloc or image file.
24032        
24033        Add all the ground work to set up FileDescriptors and FileContent
24034        for allowing files to be created from drag and drop actions,
24035        and hook up logic for links to create WebLoc data for drag and drop.
24036
24037        * platform/win/ClipboardWin.cpp:
24038        (WebCore::fileDescriptorFormat):
24039        (WebCore::fileContentFormat):
24040          Clipboard formats 
24041          
24042        (WebCore::pathRemoveBadFSCharacters):
24043        (WebCore::filesystemPathFromUrlOrTitle):
24044          Helper functions for create filenames
24045          
24046        (WebCore::createGlobalDataForURLContent):
24047          Create the WebLoc content
24048          
24049        (WebCore::createGlobalDataForUrlFileDescriptor):
24050          Create a file descriptor for the WebLoc data
24051          
24052        (WebCore::writeFileToDataObject):
24053          Basic helper function to push generated file info
24054          into the target DataObject
24055          
24056        (WebCore::ClipboardWin::writeURL):
24057          Now puts WebLoc file onto the Clipboard
24058
240592007-04-16  Adam Roben  <aroben@apple.com>
24060
24061        Reviewed by Adele.
24062
24063        Fix <rdar://problem/5002577> Focus ring SPI in GraphicsContextWin.cpp
24064        needs to move to WebKitSystemInterface
24065
24066        * platform/win/GraphicsContextWin.cpp:
24067        (WebCore::GraphicsContext::drawFocusRing): Use wkDrawFocusRing.
24068
240692007-04-14  Adam Roben  <aroben@apple.com>
24070
24071        * WebCore.vcproj/WebCore.submit.sln: Use the Debug_Internal
24072        configuration.
24073
240742007-04-14  Adam Roben  <aroben@apple.com>
24075
24076        Small correctness fix that is needed for building OpenSource.
24077
24078        * platform/win/PopupMenuWin.cpp: Use RenderTheme instead of RenderThemeWin.
24079
240802007-04-13  Adam Roben  <aroben@apple.com>
24081
24082        Reviewed by Tim.
24083
24084        Sync our config.h with the OpenSource version so we can merge ours in
24085        later.
24086
24087        * config.h: Added #defines from the OpenSource version, moved
24088        Windows-specific defines inside #if PLATFORM(WIN[_OS]), and got rid
24089        of assert.h
24090        * platform/win/CursorWin.cpp:
24091        (WebCore::Cursor::Cursor): Use ASSERT instead of assert.
24092
240932007-04-13  Adam Roben  <aroben@apple.com>
24094
24095        Rubberstamped by Tim.
24096
24097        Removed the loader/win directory since it only contains empty files.
24098
24099        * WebCore.vcproj/WebCore.vcproj: Removed empty files.
24100        * loader/win/FrameLoaderWin.cpp: Removed.
24101        * loader/win/ResourceLoaderWin.cpp: Removed.
24102
241032007-04-12  Adam Roben  <aroben@apple.com>
24104
24105        Rubberstamped by Steve.
24106
24107        Removed unused file.
24108
24109        * WebCore.vcproj/WebCore.sln: Removed.
24110
241112007-04-12  Adam Roben  <aroben@apple.com>
24112
24113        Didn't mean to commit this.
24114
24115        * WebCore.vcproj/WebCore.vcproj:
24116
241172007-04-12  Adam Roben  <aroben@apple.com>
24118
24119        Reviewed by Steve.
24120
24121        <rdar://problem/5131565> Need to be able to use debug WebKit with
24122        release Safari.
24123
24124        * WebCore.vcproj/WebCore.vcproj:
24125        * WebCore.vcproj/debug.vsprops:
24126        * WebCore.vcproj/debug_internal.vsprops: Added.
24127        * WebCore.vcproj/release.vsprops:
24128
241292007-04-11  Adam Roben  <aroben@apple.com>
24130
24131        Reviewed by Tim.
24132
24133        Get rid of FrameViewWin.cpp, since it's empty.
24134
24135        * WebCore.vcproj/WebCore.vcproj:
24136        * bridge/win/FrameViewWin.cpp: Removed.
24137
241382007-04-11  Adam Roben  <aroben@apple.com>
24139
24140        Reviewed by Anders.
24141
24142        Update for changes to Pasteboard.
24143
24144        * platform/win/PasteboardWin.cpp:
24145        (WebCore::Pasteboard::writeImage):
24146
241472007-04-10  Brady Eidson  <beidson@apple.com>
24148
24149        Reviewed by Darin
24150
24151        <rdar://problem/4887095> - PageCache and PageState should be combined
24152
24153        Changed a TemporaryLinkStub and updated the project file
24154
24155        * WebCore.vcproj/WebCore.vcproj:
24156        * platform/win/TemporaryLinkStubs.cpp:
24157        (CachedPage::close):
24158
241592007-04-10  John Sullivan  <sullivan@apple.com>
24160
24161        * platform/win/TemporaryLinkStubs.cpp:
24162        (WebCore::Editor::markBadGrammar):
24163        Keep build going: added stub for this new method
24164
241652007-04-10  Anders Carlsson  <andersca@apple.com>
24166
24167        Reviewed by Adam.
24168
24169        <rdar://problem/5056988>
24170        Can not open player on http://radioalice.com
24171
24172        Fix scriptStringIfJavaScriptURL to not use the path of the URL. This would ignore any characters past 
24173        a '?' character because that would be parsed as the query part of the URL.
24174        
24175        * plugins/win/PluginViewWin.cpp:
24176        (WebCore::scriptStringIfJavaScriptURL):
24177        Make this be more like the mac, chopping off the first 12 characters ("javascript:") 
24178        and then decoding the remaining characters.
24179
241802007-04-10  Anders Carlsson  <acarlsson@apple.com>
24181
24182        * plugins/win/PluginViewWin.cpp:
24183        (WebCore::PluginViewWin::PluginViewWin):
24184        Initialize m_status.
24185
241862007-04-09  Anders Carlsson  <acarlsson@apple.com>
24187
24188        Reviewed by Adam.
24189
24190        <rdar://problem/5062624>
24191        No prompt to install QT for pages with uninstalled QT plug-in.
24192        
24193        Add a status() accessor to PluginViewWin. This can be used by WebKit to find out if the plug-in
24194        loaded successfully or not.
24195        
24196        * plugins/win/PluginViewWin.cpp:
24197        (WebCore::PluginViewWin::PluginViewWin):
24198        (WebCore::PluginViewWin::init):
24199        * plugins/win/PluginViewWin.h:
24200        (WebCore::):
24201        (WebCore::PluginViewWin::status):
24202
242032007-04-09  Brady Eidson  <beidson@apple.com>
24204
24205        Build fix
24206
24207        * plugins/win/PluginViewWin.cpp:
24208        (WebCore::PluginViewWin::performRequest): assume userGesture is true
24209
242102007-04-09  Adam Roben  <aroben@apple.com>
24211
24212        Build fix.
24213
24214        * platform/win/PasteboardWin.cpp:
24215        (WebCore::Pasteboard::writeImage):
24216
242172007-04-08  Adam Roben  <aroben@apple.com>
24218
24219        Reviewed by Oliver.
24220
24221        Stubbed out Frame::dashboardRegionsChanged now that it's not
24222        Mac-specific.
24223
24224        * bridge/win/FrameWin.cpp:
24225        (WebCore::Frame::dashboardRegionsChanged):
24226
242272007-04-06  Oliver Hunt  <oliver@apple.com>
24228
24229        Reviewed by Adam.
24230
24231        Fix for rdar://problem/5097227 Can't drag Flash-based 
24232        scrollbar on mtv.com
24233        
24234        The problem was when creating a mouse move event for the 
24235        plugin we weren't passing on the mouse button state.  
24236        
24237        The opensource side of this patch adds logic that allows 
24238        us to distinguish between a MouseEvent with NoButton and
24239        a MouseEvent with LeftButton, so we can then provide the 
24240        correct information to the plugin.
24241
24242        * plugins/win/PluginViewWin.cpp:
24243        (WebCore::PluginViewWin::handleMouseEvent):
24244
242452007-04-06  Dave Hyatt  <hyatt@apple.com>
24246
24247        Internal side of fix for bug 13274.
24248
24249        Reviewed by olliej
24250
24251        * page/win/EventHandlerWin.cpp:
24252        (WebCore::EventHandler::passMousePressEventToSubframe):
24253        * platform/win/PlatformScrollBarSafari.cpp:
24254        (WebCore::PlatformScrollbar::handleMousePressEvent):
24255        * platform/win/PopupMenuWin.cpp:
24256        (WebCore::PopupMenu::PopupMenu):
24257        (WebCore::PopupWndProc):
24258        * platform/win/ScrollViewWin.cpp:
24259        (WebCore::ScrollView::removeChild):
24260        * platform/win/WidgetWin.cpp:
24261
242622007-04-07  Mark Rowe  <mrowe@apple.com>
24263
24264        Internal build fox after opensource r20753.
24265
24266        * platform/win/PlatformMouseEventWin.cpp:
24267        * platform/win/TemporaryLinkStubs.cpp:
24268
242692007-04-03  Oliver Hunt  <oliver@apple.com>
24270
24271        Buildfix
24272
24273        * platform/network/cf/ResourceResponseCFNet.cpp:
24274        (WebCore::ResourceResponse::doUpdateResourceResponse):
24275           Adding .get() calls
24276
242772007-04-03  Maciej Stachowiak  <mjs@apple.com>
24278
24279        Reviewed by Alice.
24280
24281        - fixed <rdar://problem/5107069> WebCore leaks a copy of the CFHTTPMessage CFDictionary (from CFHTTPMessageCopyAllHeaderFields)
24282
24283        * platform/network/cf/ResourceResponseCFNet.cpp:
24284        (WebCore::ResourceResponse::doUpdateResourceResponse): Use RetainPtr (once to avoid a leak and once
24285        just as style cleanup).
24286
242872007-04-02  Anders Carlsson  <andersca@apple.com>
24288
24289        Reviewed by Adam.
24290
24291        Fix crashes seen when running the plugin layout tests.
24292        
24293        * plugins/win/PluginPackageWin.cpp:
24294        (WebCore::PluginPackageWin::load):
24295        Fill in the enumerate pointer, not the evaluate pointer (it's already been filled in).
24296        
24297        * plugins/win/PluginStreamWin.cpp:
24298        (WebCore::PluginStreamWin::didFinishLoading):
24299        Handle the case where there was no plugin stream data at all.
24300
243012007-04-02  Anders Carlsson  <andersca@apple.com>
24302
24303        Reviewed by Darin.
24304
24305        Check that NPStream pointers passed to NPN_DestroyStream are valid.
24306        
24307        * plugins/win/PluginStreamWin.cpp:
24308        (WebCore::streams):
24309        (WebCore::PluginStreamWin::PluginStreamWin):
24310        (WebCore::PluginStreamWin::~PluginStreamWin):
24311        (WebCore::PluginStreamWin::ownerForStream):
24312        * plugins/win/PluginStreamWin.h:
24313        * plugins/win/PluginViewWin.cpp:
24314        (WebCore::PluginViewWin::destroyStream):
24315
243162007-04-02  Anders Carlsson  <andersca@apple.com>
24317
24318        Reviewed by Darin.
24319
24320        <rdar://problem/5095582>
24321        PluginViewWin doesn't implement NPN_DestroyStream.
24322
24323        * plugins/win/PluginStreamWin.cpp:
24324        (WebCore::PluginStreamWin::startStream):
24325        Handle the case where NPN_DestroyStream is called from the newstream handler.
24326        
24327        * plugins/win/PluginViewWin.cpp:
24328        (WebCore::PluginViewWin::destroyStream):
24329        Implement this.
24330
243312007-04-02  Anders Carlsson  <andersca@apple.com>
24332
24333        Reviewed by Dave Hyatt.
24334
24335        <rdar://problem/5097225> 
24336        Mouse cursors don't work with windowless plugins
24337        
24338        * platform/win/WidgetWin.cpp:
24339        (WebCore::Widget::setCursor):
24340        Add an "ignoreNextSetCursor" boolean and don't call SetCursor if it's true.
24341        
24342        * plugins/win/PluginViewWin.cpp:
24343        (WebCore::PluginViewWin::handleMouseEvent):
24344        Store away the current cursor and make sure that it won't be reset.
24345
243462007-04-02  Anders Carlsson  <andersca@apple.com>
24347
24348        Reviewed by Adam.
24349
24350        Fix logic in windowless paint functions.
24351        
24352        * plugins/win/PluginViewWin.cpp:
24353        (WebCore::PluginViewWin::invalidateRect):
24354        (WebCore::PluginViewWin::invalidateRegion):
24355        (WebCore::PluginViewWin::forceRedraw):
24356
243572007-03-31  Dave Hyatt  <hyatt@apple.com>
24358
24359        Internal side of 13234.   Open source side was reviewed by
24360        Mitz.  Layout of justified text was broken when dragged or
24361        when a ::selection style was in effect.
24362
24363        * platform/win/FontWin.cpp:
24364        (WebCore::Font::selectionRectForComplexText):
24365        (WebCore::Font::drawComplexText):
24366        (WebCore::Font::floatWidthForComplexText):
24367        * platform/win/UniscribeController.cpp:
24368        (WebCore::UniscribeController::UniscribeController):
24369        (WebCore::UniscribeController::offsetForPosition):
24370        * platform/win/UniscribeController.h:
24371        * platform/win/WebCoreTextRenderer.cpp:
24372        (WebCore::doDrawTextAtPoint):
24373
243742007-03-30  Anders Carlsson  <andersca@apple.com>
24375
24376        Reviewed by Geoff.
24377
24378        * plugins/win/PluginDatabaseWin.cpp:
24379        (WebCore::PluginDatabaseWin::addExtraPluginPath):
24380        * plugins/win/PluginDatabaseWin.h:
24381        New function for adding an extra plugin path, to be used by DRT.
24382        
24383        * plugins/win/PluginPackageWin.cpp:
24384        (WebCore::PluginPackageWin::load):
24385        Set the current directory tho the plugin directory while loading the plugin. Add new NPN callbacks.
24386        
24387        * plugins/win/PluginViewWin.cpp:
24388        (WebCore::PluginViewWin::invalidateRect):
24389        (WebCore::PluginViewWin::invalidateRegion):
24390        (WebCore::PluginViewWin::forceRedraw):
24391        Don't do anything if the plugin is windowed.
24392        
24393        * plugins/win/npapi.cpp:
24394        (NPN_PushPopupsEnabledState):
24395        (NPN_PopPopupsEnabledState):
24396        Add stubs.
24397        
24398        * plugins/win/npfunctions.h:
24399        Add new methods and merge some fixes from the open source version.
24400
244012007-03-29  Dave Hyatt  <hyatt@apple.com>
24402
24403        Enable CG's local font cache.  rdar://problem/5070005
24404       
24405        Reviewed by aroben
24406
24407        * platform/win/FontCacheWin.cpp:
24408        (WebCore::FontCache::platformInit):
24409
244102007-03-28  Maciej Stachowiak  <mjs@apple.com>
24411
24412        Reviewed by Darin.
24413
24414        - updates for <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
24415
24416
24417        * platform/win/ScrollViewWin.cpp:
24418        (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
24419        (WebCore::ScrollView::scrollRectIntoViewRecursively):
24420
244212007-03-27  Dave Hyatt  <hyatt@apple.com>
24422
24423        Fix for 5090964, arabic text is all jumbled in list boxes and popup menus (and in the
24424        Boomer app too).  The fallback font was not the right size because the font you're mapping
24425        from had to be selected into the HDC first.
24426       
24427        Reviewed by ggaren
24428
24429        * ChangeLog:
24430        * platform/win/FontCacheWin.cpp:
24431        (WebCore::FontCache::getFontDataForCharacters):
24432
244332007-03-27  Geoffrey Garen  <ggaren@apple.com>
24434
24435        Reviewed by Anders Carlsson.
24436
24437        Fixed <rdar://problem/5085076> WebView stops painting after 
24438        loading stand-alone netflix movie preview in WMP format
24439        
24440        The stand-alone WMP plug-in seems to do all its drawing in
24441        the WM_ERASEBKGN phase, not the WM_PAINT phase, so our
24442        InvalidateRect call for plug-in windows needs to specify 
24443        'true' for whether the background region should be erased.
24444        
24445        A smart plug-in that wants to avoid background draws can
24446        still do so by just returning 1 in response to WM_ERASEBKGN,
24447        or by setting its background brush to NULL.
24448
24449        * plugins/win/PluginViewWin.cpp:
24450        (WebCore::PluginViewWin::updateWindow):
24451
244522007-03-27  Anders Carlsson  <acarlsson@apple.com>
24453
24454        Reviewed by Maciej.
24455
24456        <rdar://problem/5091459>
24457        Crash when destroying "null plugin"
24458        
24459        <rdar://problem/5056845>
24460        Invoking itunes page has missing plugin icon on it
24461        
24462        * plugins/win/PluginViewWin.cpp:
24463        (WebCore::PluginViewWin::paintMissingPluginIcon):
24464        Clip before painting.
24465        
24466        (WebCore::freeStringArray):
24467        Add null-check.
24468        
24469        (WebCore::PluginViewWin::PluginViewWin):
24470        Initialize plugin names and values.
24471        
244722007-03-27  Dave Hyatt  <hyatt@apple.com>
24473
24474        Add support for glyph offsets to the GlyphBuffer.
24475       
24476        Reviewed by olliej
24477
24478        * platform/win/FontWin.cpp:
24479        (WebCore::Font::drawGlyphs):
24480        * platform/win/UniscribeController.cpp:
24481        (WebCore::UniscribeController::shapeAndPlaceItem):
24482
244832007-03-26  Antti Koivisto  <antti@apple.com>
24484
24485        Reviewed by Darin.
24486        
24487        Initialize new m_isContinuous field in WheelEvent
24488
24489        * platform/win/WheelEventWin.cpp:
24490        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
24491
244922007-03-27  Dave Hyatt  <hyatt@apple.com>
24493
24494        Enable complex text.  Selection and small-caps support are now enabled with this patch.
24495        
24496        Reviewed by aroben
24497
24498        * platform/win/FontWin.cpp:
24499        (WebCore::Font::selectionRectForComplexText):
24500        (WebCore::Font::drawComplexText):
24501        (WebCore::Font::floatWidthForComplexText):
24502        (WebCore::Font::offsetForPositionForComplexText):
24503        * platform/win/UniscribeController.cpp:
24504        (WebCore::UniscribeController::UniscribeController):
24505        (WebCore::UniscribeController::floatWidth):
24506        (WebCore::UniscribeController::offsetForPosition):
24507        (WebCore::UniscribeController::advance):
24508        (WebCore::UniscribeController::itemizeShapeAndPlace):
24509        (WebCore::UniscribeController::shapeAndPlaceItem):
24510        * platform/win/UniscribeController.h:
24511        (WebCore::UniscribeController::runWidthSoFar):
24512
245132007-03-26  Adele Peterson  <adele@apple.com>
24514
24515        Reviewed by Adam.
24516
24517        Fix for <rdar://problem/5088844> Popup menu is not positioned correctly on a yahoo comics page
24518        
24519        Fixes test: fast/forms/control-restrict-line-height.html
24520        
24521        This change was made in RenderThemeMac a while ago, and will fix the line height for aqua popup buttons, 
24522        buttons and search fields.
24523        
24524        * rendering/RenderThemeSafari.cpp: WebCore::RenderThemeSafari::setFontFromControlSize):
24525          Don't honor line-height for controls that have restricted font size.
24526          
245272007-03-25  Brady Eidson  <beidson@apple.com>
24528
24529        Reviewed by Oliver
24530
24531        <rdar://problem/5086888> - WebHistory(Item) Leak
24532
24533        * platform/win/COMPtr.h:
24534        (COMPtr::COMPtr): An an adoptRef constructor
24535
245362007-03-24  Adam Roben  <aroben@apple.com>
24537
24538        Reviewed by Maciej.
24539
24540        Fix <rdar://problem/5076610> Crash in PluginViewWin::updateWindow when
24541        loading a PDF page for the first time after installing Acrobat Reader
24542
24543        Don't call PluginPackageWin::load() until the PluginViewWin has been
24544        inserted into the Widget tree. load() can result in arbitrary code
24545        execution (in this case, a EULA window appears which takes focus from
24546        the WebView, causing Frame::setIsActive(false) to be called), and we
24547        don't want to be in a transitional state when that happens.
24548
24549        * plugins/win/PluginDatabaseWin.cpp:
24550        (WebCore::PluginDatabaseWin::createPluginView): Call PluginViewWin's
24551        one and only constructor.
24552        * plugins/win/PluginViewWin.cpp:
24553        (WebCore::PluginViewWin::setParent): Call init() after inserting
24554        ourselves into the Widget tree.
24555        (WebCore::PluginViewWin::PluginViewWin): Defer all real work until
24556        init() is called.
24557        (WebCore::PluginViewWin::init): Added. Calls m_plugin->load(), then
24558        does the rest of the work that was once done by the constructor.
24559        * plugins/win/PluginViewWin.h: Removed createNullPlugin and simplified
24560        constructor, added setParent override and new init method.
24561
245622007-03-24  Brady Eidson  <beidson@apple.com>
24563
24564        Reviewed by Adam
24565
24566        <rdar://problem/5086210> - Move RetainPtr to WTF for WebKitWin and the App
24567
24568        * WebCore.vcproj/WebCore.vcproj: Add the ForwardingHeader to the vcprojs
24569
245702007-03-23  Adele Peterson  <adele@apple.com>
24571
24572        Reviewed by Maciej.
24573
24574        Fix for <rdar://problem/5083928> In editable webviews, caps lock key is ignored
24575
24576        * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
24577        Removed code to store lowercase characters in m_text.  Now that we use the character code
24578        to create m_text this is already taken care of.  This does mean that m_unmodifiedText is
24579        not right.  This is used for accesskeys, which don't work yet, so that is covered in rdar://5085596.
24580        This also fixes line endings in this file.
24581
245822007-03-22  Geoffrey Garen  <ggaren@apple.com>
24583
24584        Reviewed by Adam Roben.
24585        
24586        Fixed <rdar://problem/5082985> Select menus are too see-through
24587
24588        Upped alpha value from 90 to 95. Menus will still seem a little
24589        more see-through than on the mac, since their backgrounds are
24590        white, not grey, but white matches other Windows browsers.
24591        
24592        * ChangeLog:
24593        * platform/win/PopupMenuWin.cpp:
24594
245952007-03-22  Anders Carlsson  <acarlsson@apple.com>
24596
24597        Reviewed by Maciej.
24598
24599        <rdar://problem/5081539>
24600        QT content is dupped on a page, if page is being previewed or printed.
24601        
24602        Don't update the frame geometry if the document is in printing mode.
24603        
24604        * plugins/win/PluginViewWin.cpp:
24605        (WebCore::PluginViewWin::setFrameGeometry):
24606
246072007-03-22  Beth Dakin  <bdakin@apple.com>
24608
24609        Fix by Hyatt, reviewed and committed by me.
24610
24611        Fix for <rdar://problem/5082360> Incomplete frame paint when 
24612        shrinking window @ google.com
24613
24614        * platform/win/ScrollViewWin.cpp:
24615        (WebCore::ScrollView::setFrameGeometry): Wrong order!
24616
246172007-03-22  Dave Hyatt  <hyatt@apple.com>
24618
24619        Fix for crasher in layout caused by paints that happen without layout being current.  Change to be
24620        more like the Mac and crawl the frame tree up front ensuring everyone is up to date before painting.
24621
24622        Reviewed by olliej
24623
24624        * platform/win/ScrollViewWin.cpp:
24625        (WebCore::ScrollView::setFrameGeometry):
24626        (WebCore::ScrollView::children):
24627        (WebCore::ScrollView::geometryChanged):
24628
246292007-03-22  Dave Hyatt  <hyatt@apple.com>
24630
24631        Fix for mouse wheel issues.  Only return success from passWheelEventToSubframe is the event was
24632        actually accepted.
24633        
24634        * page/win/EventHandlerWin.cpp:
24635        (WebCore::EventHandler::passWheelEventToSubframe):
24636
246372007-03-21  Dave Hyatt  <hyatt@apple.com>
24638
24639        Fix numerous bugs in RTL support.  Only use a directional override if the run
24640        tells us to.  Uniscribe will give incorrect results when measuring RTL runs as LTR if the
24641        directional override is set.  Switch from logical order for glyphs to visual order
24642        instead.  This is more similar to ATSUI (less similar to the fast code path, which always uses
24643        logical ordering for glyph generation).  Using visual ordering forces a lot of games to be played
24644        (have to walk the script items in backwards order for RTL for example), but Uniscribe does not combine
24645        glyphs properly if visual ordering is not used.
24646        
24647        Add support for justification, letter-spacing, word-spacing and rounding hacks.  The CG vs. ATSUI layout
24648        test now passes with identical results to the Mac.  The ATSUI spacing features layout test now
24649        generates correct results (although they are different from the Mac because we fall back to Arial for
24650        Hebrew instead of Lucida Grande).
24651
24652        Reviewed by oliver
24653
24654        * platform/win/UniscribeController.cpp:
24655        (WebCore::UniscribeController::UniscribeController):
24656        (WebCore::UniscribeController::resetControlAndState):
24657        (WebCore::UniscribeController::shapeAndPlaceItem):
24658        (WebCore::UniscribeController::shape):
24659        * platform/win/UniscribeController.h:
24660
246612007-03-20  Adam Roben  <aroben@apple.com>
24662
24663        Reviewed by Ada.
24664
24665        Added null-checks for ResourceHandle::cookieStorage() before passing it
24666        into CFNetwork functions, which are not null-safe.
24667
24668        * platform/network/win/CookieJarWin.cpp:
24669        (WebCore::setCookies):
24670        (WebCore::cookies):
24671
246722007-03-20  Adam Roben  <aroben@apple.com>
24673
24674        Build fix.
24675
24676        * WebCore.vcproj/WebCore.vcproj: Added XPathNodeSet.(cpp|h).
24677
246782007-03-20  Adam Roben  <aroben@apple.com>
24679
24680        Reviewed by Oliver.
24681
24682        Made the metrics of styled selects match those on the Mac to get
24683        fast/forms/001.html passing.
24684
24685        * rendering/RenderThemeSafari.cpp: Use 2px less padding for the
24686        select's arrow since the arrow is 2px wider than on the Mac.
24687
246882007-03-20  Adam Roben  <aroben@apple.com>
24689
24690        Build fix.
24691
24692        * platform/network/cf/ResourceHandleCFNet.cpp:
24693        (WebCore::makeFinalRequest): Fix typo.
24694
246952007-03-20  Dave Hyatt  <hyatt@apple.com>
24696
24697        Land advanced text code path (turned off).
24698       
24699        Reviewed by aroben
24700        
24701        * WebCore.vcproj/WebCore.vcproj:
24702        * platform/win/FontCacheWin.cpp:
24703        (WebCore::FontCache::createFontPlatformData):
24704        * platform/win/FontDataWin.cpp:
24705        (WebCore::FontData::platformInit):
24706        (WebCore::FontData::platformDestroy):
24707        (WebCore::FontData::smallCapsFontData):
24708        (WebCore::FontData::scriptFontProperties):
24709        * platform/win/FontWin.cpp:
24710        (WebCore::Font::drawComplexText):
24711        (WebCore::Font::floatWidthForComplexText):
24712        (WebCore::Font::offsetForPositionForComplexText):
24713        * platform/win/UniscribeController.cpp: Added.
24714        (WebCore::UniscribeController::UniscribeController):
24715        (WebCore::UniscribeController::resetControlAndState):
24716        (WebCore::UniscribeController::shapeAndPlaceItem):
24717        (WebCore::UniscribeController::shape):
24718        * platform/win/UniscribeController.h: Added.
24719        (WebCore::UniscribeController::width):
24720        (WebCore::UniscribeController::glyphBuffer):
24721
247222007-03-20  Anders Carlsson  <acarlsson@apple.com>
24723
24724        Reviewed by Adam.
24725
24726        <rdar://problem/4921198>
24727        Cookie acceptance policy not settable
24728
24729        * platform/network/cf/ResourceHandleCFNet.cpp:
24730        
24731        (WebCore::willSendRequest):
24732        (WebCore::willCacheResponse):
24733        Remove FIXMEs.
24734        
24735        (WebCore::makeFinalRequest):
24736        New function that makes a final CFURLRequest depending on cookie policy and whether any
24737        invalid SSL certificates should be ignored.
24738        
24739        (WebCore::ResourceHandle::start):
24740        (WebCore::ResourceHandle::loadResourceSynchronously):
24741        Use makeFinalRequest.
24742        
24743        (WebCore::ResourceHandle::cookieStorageAcceptPolicy):
24744        (WebCore::ResourceHandle::setCookieStorageAcceptPolicy):
24745        (WebCore::ResourceHandle::cookieStorage):
24746        (WebCore::ResourceHandle::setCookieStorage):
24747        (WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate):
24748        New functions for setting cookie policy, the deafult cookie storage and whether invalid
24749        SSL certificates should result in an error.
24750        
24751        * platform/network/cf/ResourceRequestCFNet.cpp:
24752        (WebCore::ResourceRequest::doUpdatePlatformRequest):
24753        Set cookie storage, cookie policy and SSL properties.
24754
24755        * platform/network/win/CookieJarWin.cpp:
24756        (WebCore::setCookies):
24757        (WebCore::cookies):
24758        Use same functions as the mac (sorta).
24759        
24760        (WebCore::cookiesEnabled):
24761        Implement this.
24762
247632007-03-19  Adam Roben  <aroben@apple.com>
24764
24765        Reviewed by Anders and Darin.
24766
24767        Added JavaScriptStatistics to the project for
24768        <rdar://problems/5071653>.
24769
24770        * WebCore.vcproj/WebCore.vcproj: Added include/pthreads to the include
24771        path, and added JavaScriptStatistics.(cpp|h).
24772
247732007-03-18  David Hyatt  <hyatt@apple.com>
24774
24775        Fix the CSS2 system font for 'menu' to match Mac.  Makes the system fonts layout test pass.
24776
24777        * rendering/RenderThemeSafari.cpp:
24778        (WebCore::RenderThemeSafari::systemFont):
24779
247802007-03-18  Adam Roben  <aroben@apple.com>
24781
24782        Reviewed by Hyatt.
24783
24784        Changed the file upload button to say "Choose File" to match Mac.
24785
24786        * platform/win/TemporaryLinkStubs.cpp:
24787        (WebCore::fileButtonChooseFileLabel):
24788
247892007-03-18  Geoffrey Garen  <ggaren@apple.com>
24790
24791        Reviewed by Oliver Hunt.
24792
24793        Fixed <rdar://problem/5061807> STRESS (2): Crash in PlatformScrollbar::setRect
24794
24795        No test case because I can't seem to get the Windows DRT to cooperate. I'll try again tomorrow.
24796
24797        The problem was that the FrameView would try to reset the document's scrollbars after having 
24798        been removed from the page, so its page pointer would be NULL. Added NULL checks.
24799
24800        This situation ultimately results from the FrameView's non-trivial destructor, which
24801        creates a fragile dependency on tear-down timing. It looks like the timing on Windows
24802        is slightly different from the timing on Mac. I didn't see any obvious resulting bugs,
24803        though, so the NULL checks should be sufficient for now.
24804
24805        * platform/win/ScrollViewWin.cpp:
24806        (WebCore::ScrollView::windowResizerRect):
24807        (WebCore::ScrollView::addToDirtyRegion):
24808        (WebCore::ScrollView::scrollBackingStore):
24809        (WebCore::ScrollView::updateBackingStore):
24810
248112007-03-17  David Hyatt  <hyatt@apple.com>
24812
24813        The internal side of the patch that ensures Boomer paints twice on ibench.  Don't let the timer beat out
24814        that first paint.
24815
24816        Reviewed by aroben
24817
24818        * platform/win/ScrollViewWin.cpp:
24819        (WebCore::ScrollView::update):
24820
248212007-03-17  Adam Roben  <aroben@apple.com>
24822
24823        Reviewed by Brady.
24824
24825        Fix fast/dom/isindex-002.html.
24826
24827        Add default strings to our two remaining unimplemented localizable
24828        strings in WebCore.
24829
24830        * platform/win/TemporaryLinkStubs.cpp:
24831        (WebCore::searchableIndexIntroduction): Added English string from Mac.
24832        (WebCore::inputElementAltText): Ditto.
24833
248342007-03-17  Adele Peterson  <adele@apple.com>
24835
24836        Reviewed by Hyatt.
24837
24838        Fix for <rdar://problem/4960391> REGRESSION (r18922): onChange never fired after selecting an item from a menulist
24839
24840        * platform/win/PopupMenuWin.cpp:
24841        (WebCore::PopupMenu::PopupMenu): Initialize m_focusedIndex to 0.  Instead of using the client to track the focused index, we'll
24842         keep track of it internally.  Our old behavior was trying to match Firefox by updating the selected index as you focus items, but that
24843         doesn't seem necessary if the selection never gets committed.
24844        (WebCore::PopupMenu::show): Initialize the focused index to the client's selected index.
24845        (WebCore::PopupMenu::setFocusedIndex): Remove the fireOnChange argument.  Remove the call to valueChanged.
24846        (WebCore::PopupMenu::focusedIndex): Return m_focusedIndex instead of getting this from the client.
24847        (WebCore::PopupMenu::down): Use the focusedIndex.
24848        (WebCore::PopupMenu::up): ditto.
24849        (WebCore::PopupMenu::paint): Paint a selected appearance for the item with the focused index.
24850
248512007-03-16  Adele Peterson  <adele@apple.com>
24852
24853        Reviewed by Lou.
24854
24855        Fix for <rdar://problem/5065040> cannot mousedown + drag in a <select> menu
24856
24857        * platform/win/PopupMenuWin.cpp:
24858        (WebCore::PopupMenu::show): Set the capture when the popup window comes up.
24859        (WebCore::PopupWndProc): Release the capture only when the mouse is not down, and the mouse moves outside the popup window, 
24860         or if you mouse up inside the window, and you're about to hide the popup.  The mouse will get recaptured if you mouse down
24861         again in the window.
24862
248632007-03-15  Brady Eidson  <beidson@apple.com>
24864
24865        Reviewed by Oliver
24866
24867        CFNetwork related cleanup that was a work around for previous deficiencies in CFURLDownload
24868        This might fix some of the random crashers we see on stress testing if they end up 
24869        downloading links.
24870
24871        * platform/network/cf/ResourceHandleCFNet.cpp:
24872        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):  Always call cancel if theres a
24873          connection - the ref-count-check hack is no longer neccesary
24874        (WebCore::ResourceHandle::releaseConnectionForDownload): Give up the CFURLConnection without
24875          derefing it
24876
248772007-03-15  Maciej Stachowiak  <mjs@apple.com>
24878
24879        Reviewed by Geoff and Steve.
24880        
24881        - fixed <rdar://problem/5029776> iBench JavaScript test slower than Opera
24882        - fixes to use FastMalloc on Windows
24883
24884        * config.h: Don't force USE_SYSTEM_MALLOC
24885
248862007-03-15  Adam Roben  <aroben@apple.com>
24887
24888        Rubberstamped by Hyatt.
24889
24890        * platform/win/FontDataWin.cpp:
24891        (WebCore::FontData::platformInit): Move the code to get the font face
24892        to the top of the function for easier debugging.
24893        * platform/win/FontPlatformDataWin.cpp:
24894        (WebCore::FontPlatformData::FontPlatformData): ASSERT that we got a
24895        valid CGFontRef back from CG, as CG and GDI should agree on the fonts
24896        installed.
24897
248982007-03-14  Anders Carlsson  <acarlsson@apple.com>
24899
24900        Reviewed by Adam.
24901
24902        Use CFURLResponseCopySuggestedFilename.
24903        
24904        * platform/network/cf/ResourceResponseCFNet.cpp:
24905        (WebCore::suggestedFilenameForResponse):
24906
249072007-03-14  Adam Roben  <aroben@apple.com>
24908
24909        Reviewed by Hyatt.
24910
24911        Use CG to get xHeight.
24912
24913        * platform/win/FontDataWin.cpp:
24914        (WebCore::scaleEmToUnits): Made robust against divide-by-zero errors.
24915        (WebCore::FontData::platformInit): Ported Mac code to get xHeight using CG.
24916
249172007-03-14  Anders Carlsson  <acarlsson@apple.com>
24918
24919        Build fixes.
24920        
24921        * platform/graphics/win/ImageWin.cpp:
24922        (WebCore::Image::loadPlatformResource):
24923        * platform/win/EditorWin.cpp:
24924
249252007-03-13  Adam Roben  <aroben@apple.com>
24926
24927        Reviewed by Anders.
24928
24929        * platform/win/FontDataWin.cpp:
24930        (WebCore::scaleEmToUnits): Ported from FontDataMac.
24931        (WebCore::FontData::platformInit): Use CG for metrics, and apply Mac's
24932        line-height hack for Times, Helvetica, and Courier.
24933        (WebCore::FontData::platformWidthForGlyph): Call wkGetGlyphAdvances to
24934        use some CG SPI to match Mac.
24935
249362007-03-12  Darin Adler  <darin@apple.com>
24937
24938        * WebCore.vcproj/WebCore.vcproj: Added new JavaScript wrapper derived source files.
24939
249402007-03-12  Anders Carlsson  <acarlsson@apple.com>
24941
24942        Reviewed by Darin.
24943
24944        <rdar://problem/5054694>
24945        Repro crash when viewing fast/dom/HTMLObjectElement/object-as-frame.html
24946        
24947        * bridge/win/FrameWin.cpp:
24948        (WebCore::Frame::createScriptInstanceForWidget):
24949        Return 0 for frame views.
24950
249512007-03-12  Anders Carlsson  <acarlsson@apple.com>
24952
24953        Reviewed by Adam.
24954
24955        <rdar://problem/5054713>
24956        Crash in suggestedFilenameForResponse in two fast/encoding tests.
24957        
24958        Add null checks.
24959        
24960        * platform/network/cf/ResourceResponseCFNet.cpp:
24961        (WebCore::suggestedFilenameForResponse):
24962
249632007-03-12  Adele Peterson  <adele@apple.com>
24964
24965        Reviewed by Oliver.
24966
24967        Fix for <rdar://problem/5053618> Disable "recent searches" search field menu.
24968
24969        * platform/win/SearchPopupMenuWin.cpp: (WebCore::SearchPopupMenu::enabled):
24970
249712007-03-12  Adele Peterson  <adele@apple.com>
24972
24973        Reviewed by Oliver.
24974        
24975        WebCore part of fix for <rdar://problem/5044790> preventing default of keypress event doesn't work (affects .mac)
24976
24977        * platform/win/KeyEventWin.cpp:
24978        (WebCore::singleCharacterString): Added inline keyword.   
24979        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
24980        Renamed arguments to be more meaningful.  Added characterCode argument to be used when constructing m_text.
24981
249822007-03-12  Adele Peterson  <adele@apple.com>
24983
24984        Reviewed by Oliver.
24985
24986        Forking KeyEventWin.cpp from revision 20118.
24987
24988        * WebCore.vcproj/WebCore.vcproj:
24989        * platform/win/KeyEventWin.cpp: Added.
24990
249912007-03-11  Oliver Hunt  <oliver@apple.com>
24992
24993        Reviewed by Adele.
24994
24995        Removed Frame::respondToChangedSelection stub
24996        added Editor::markMisspellings stub
24997
24998        * platform/win/TemporaryLinkStubs.cpp:
24999        (WebCore::Editor::markMisspellings):
25000
250012007-03-10  Geoffrey Garen  <ggaren@apple.com>
25002
25003        Reviewed by Darin Adler.
25004
25005        Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and 
25006        JSCore causes a hang @ www.panoramas.dk
25007        
25008        See JavaScriptCore ChangeLog for details.
25009        
25010        Stress test doesn't show any problems.
25011        
25012        Drop the JSLock before making calls through the plug-in API from functions
25013        that may have been called by JavaScript.
25014        
25015        * plugins/win/PluginViewWin.cpp:
25016        (WebCore::PluginViewWin::paint):
25017        (WebCore::PluginViewWin::handleKeyboardEvent):
25018        (WebCore::PluginViewWin::handleMouseEvent):
25019        (WebCore::PluginViewWin::setNPWindowRect):
25020        (WebCore::PluginViewWin::start):
25021        (WebCore::PluginViewWin::stop):
25022        (WebCore::PluginViewWin::performRequest):
25023        (WebCore::PluginViewWin::bindingInstance):
25024
250252007-03-09  Oliver Hunt  <oliver@apple.com>
25026
25027        Reviewed by John.
25028
25029        Fix the doubled text in the image used to drag a link
25030
25031        * platform/win/WebCoreTextRenderer.cpp:
25032        (WebCore::WebCoreDrawDoubledTextAtPoint):
25033
250342007-03-09  Anders Carlsson  <acarlsson@apple.com>
25035
25036        Reviewed by Adam.
25037
25038        Implement setting the suggested filename for a response.
25039        
25040        * platform/network/cf/ResourceResponseCFNet.cpp:
25041        (WebCore::filenameFromHTTPContentDisposition):
25042        (WebCore::filenameHasSaneExtension):
25043        (WebCore::suggestedFilenameForResponse):
25044        (WebCore::ResourceResponse::doUpdateResourceResponse):
25045        * platform/win/MimeTypeRegistryWin.cpp:
25046        (WebCore::getMIMETypeForUTI):
25047        
25048        (WebCore::mimeTypeForExtension):
25049        Fix two bugs in this function.
25050        
25051        (WebCore::MimeTypeRegistry::getPreferredExtensionForMIMEType):
25052
250532007-03-09  Anders Carlsson  <acarlsson@apple.com>
25054
25055        * plugins/win/PluginViewWin.cpp:
25056        (WebCore::PluginViewWin::performRequest):
25057        Fixup comments and remove an obsolete FIXME.
25058
250592007-03-09  Oliver Hunt  <oliver@apple.com>
25060
25061        Reviewed by Steve.
25062
25063        Executing a script for a plugin can cause cause this to be deleted
25064        so we take a reference to our parent prior to executing the script
25065
25066        * plugins/win/PluginViewWin.cpp:
25067        (WebCore::PluginViewWin::performRequest):
25068
250692007-03-08  Oliver Hunt  <oliver@apple.com>
25070
25071        Reviewed by Steve.
25072
25073        Allow webloc files to be dropped onto the webview
25074        
25075        <rdar://problem/4883564> Regression: cannot open webloc file by dnd to Boomer's window
25076
25077        * platform/win/DragDataWin.cpp:
25078        (WebCore::cfHDropFormat):
25079           Clipboard format for HDROP, non-static as i will need it elsewhere in the future 
25080        (WebCore::getWebLocData):
25081           Extract a url from a webloc file
25082        (WebCore::getURL):
25083           Call getWebLocData
25084
250852007-03-08  Steve Falkenburg  <sfalken@apple.com>
25086
25087        Fix Production build more
25088
25089        * WebCore.vcproj/WebCore.vcproj:
25090
250912007-03-08  Steve Falkenburg  <sfalken@apple.com>
25092
25093        Production build fix
25094
25095        * WebCore.vcproj/WebCore.vcproj:
25096
250972007-03-08  Adam Roben  <aroben@apple.com>
25098
25099        Reviewed by Steve.
25100        
25101        Fix <rdar://problem/4969070> Failed error pages show "unknown error"
25102        rather than specific error
25103
25104        Make ResourceError aware of kCFErrorDomainCFNetwork.
25105
25106        * platform/network/cf/ResourceErrorCF.cpp:
25107        (WebCore::ResourceError::ResourceError): Added case for
25108        kCFErrorDomainCFNetwork.
25109
251102007-03-06  Adam Roben  <aroben@apple.com>
25111
25112        Fixing the build while semi-blind is fun.
25113
25114        * platform/win/TemporaryLinkStubs.cpp:
25115        (WebCore::supportedKeySizes): Need a namespace.
25116        (WebCore::signedPublicKeyAndChallengeString): Ditto.
25117
251182007-03-06  Adam Roben  <aroben@apple.com>
25119
25120        It works better if you use valid C++ syntax.
25121
25122        * platform/win/TemporaryLinkStubs.cpp:
25123
251242007-03-06  Adam Roben  <aroben@apple.com>
25125
25126        Build fix.
25127
25128        * platform/win/TemporaryLinkStubs.cpp: Added missing stubs.
25129
251302007-03-06  Adam Roben  <aroben@apple.com>
25131
25132        Reviewed by Anders.
25133
25134        Always keep rounding hacks on.
25135
25136        * platform/win/FileChooserWin.cpp:
25137        (WebCore::FileChooser::basenameForWidth): Tell StringTruncator to keep
25138        rounding hacks on.
25139        * platform/win/WebCoreTextRenderer.cpp:
25140        (WebCore::WebCoreTextFloatWidth): Ditto.
25141
251422007-03-06  Anders Carlsson  <acarlsson@apple.com>
25143
25144        Build fix.
25145        
25146        * plugins/win/PluginViewWin.cpp:
25147        (WebCore::PluginViewWin::userAgent):
25148
251492007-03-05  Anders Carlsson  <acarlsson@apple.com>
25150
25151        Reviewed by Adam.
25152
25153        <rdar://problem/5041348>
25154        Can't watch videos at cnn.com
25155        
25156        * plugins/win/PluginStreamWin.cpp:
25157        (WebCore::PluginStreamWin::cancelAndDestroyStream):
25158        Change this function back to call call stop() after destroyStream(). Also, make sure to
25159        protect the stream since destroyStream can eventually, well, destroy it.
25160
251612007-03-05  Anders Carlsson  <acarlsson@apple.com>
25162
25163        Reviewed by Adam.
25164
25165        <rdar://problem/4987743>
25166        Regression: java content is represented as broken images on pages
25167        
25168        * plugins/win/PluginPackageWin.cpp:
25169        (WebCore::PluginPackageWin::load):
25170        Make sure to set the size of the NPPluginFuncs struct correctly.
25171
251722007-03-05  Steve Falkenburg  <sfalken@apple.com>
25173
25174        Fix build
25175
25176        * plugins/win/PluginStreamWin.cpp:
25177        (WebCore::PluginStreamWin::stop): Call cancel() instead of stopLoading(), since the latter was removed.
25178
251792007-03-02  Adam Roben  <aroben@apple.com>
25180
25181        Reviewed by Anders.
25182
25183        Added optional underlining of a single character to
25184        WebCoreTextRenderer.
25185
25186        No layout tests possible.
25187
25188        * platform/win/WebCoreTextRenderer.cpp:
25189        (WebCore::doDrawTextAtPoint): Added. This is an extraction of the code
25190        from DrawTextAtPoint that now also contains the underlining code.
25191        (WebCore::WebCoreDrawTextAtPoint): Call the helper function.
25192        (WebCore::WebCoreDrawDoubledTextAtPoint): Ditto.
25193        * platform/win/WebCoreTextRenderer.h: Added optional underlinedIndex
25194        parameters.
25195
251962007-03-01  Anders Carlsson  <acarlsson@apple.com>
25197
25198        Reviewed by Tim.
25199
25200        * plugins/win/npfunctions.h:
25201        Fix tyop.
25202        
252032007-02-28  Adam Roben  <aroben@apple.com>
25204
25205        Reviewed by Anders.
25206
25207        Clean up WebCoreTextRenderer. WebCoreDrawTextAtPoint now just draws
25208        text at a point. It doesn't center truncate, clip, or modify alignment.
25209
25210        No layout test possible.
25211
25212        * platform/win/WebCoreTextRenderer.cpp:
25213        (WebCore::WebCoreDrawTextAtPoint): Use only WebCore types, and don't
25214        center truncate or modify alignment.
25215        (WebCore::WebCoreDrawDoubledTextAtPoint): Moved from WebKitGraphics.cpp.
25216        (WebCore::WebCoreTextFloatWidth): Added.
25217        * platform/win/WebCoreTextRenderer.h: Updated/added declarations.
25218
252192007-02-28  Adele Peterson  <adele@apple.com>
25220
25221        Reviewed by Adam.
25222
25223        Fix for <rdar://problem/4887423> REGRESSION: search results popup menu strings are not localized
25224        and <rdar://problem/3517227> accessibility-related strings in WebCore are not localized
25225
25226        * platform/win/TemporaryLinkStubs.cpp:
25227        (WebCore::searchMenuNoRecentSearchesText):
25228        (WebCore::searchMenuRecentSearchesText):
25229        (WebCore::searchMenuClearRecentSearchesText):
25230        (WebCore::AXWebAreaText):
25231        (WebCore::AXLinkText):
25232        (WebCore::AXListMarkerText):
25233        (WebCore::AXImageMapText):
25234        (WebCore::AXHeadingText):
25235
252362007-02-28  Maciej Stachowiak  <mjs@apple.com>
25237
25238        Reviewed by Adam.
25239
25240        - fixed <rdar://problem/5005120> Crash: selecting View all RSS Articles from context menu of bookmark folder
25241
25242        * platform/network/cf/ResourceRequestCFNet.cpp:
25243        (WebCore::ResourceRequest::doUpdatePlatformRequest): Use RetainPtr
25244        instead of explicit release, as this was caused by CFRelease on
25245        a null pointer, and REtainPtr is tolerant.
25246
252472007-02-27  Beth Dakin  <bdakin@apple.com>
25248
25249        Reviewed by Adam.
25250
25251        <rdar://problem/4956528> Implement Pasteboard::writeImage for 
25252        Boomer context menus
25253
25254        * platform/win/PasteboardWin.cpp:
25255        (WebCore::Pasteboard::writeImage): Copy a bitmap to the clipboard.
25256
252572007-02-27  Oliver Hunt  <oliver@apple.com>
25258
25259        Reviewed by Lou and Steve.
25260
25261        Add a store for current Cursor to fix <rdar://problem/4788352>
25262
25263        * platform/win/WidgetWin.cpp:
25264        (WebCore::Widget::setCursor):
25265
252662007-02-26  Oliver Hunt  <oliver@apple.com>
25267
25268        Reviewed by Maciej.
25269
25270        To stop the drag image for transparent images from looking 
25271        ugly (especially fully transparent images) we render the 
25272        image to a white background prior to passing the image on to 
25273        Windows
25274        
25275        <rdar://problem/5015946>
25276
25277        * platform/win/DragImageWin.cpp:
25278        (WebCore::createDragImageFromImage):
25279
252802007-02-26  Adam Roben  <aroben@apple.com>
25281
25282        Reviewed by Adele.
25283
25284        * platform/win/GraphicsContextWin.cpp: Get rid of so-five-hours-ago SVG_SUPPORT.
25285
252862007-02-26  Adam Roben  <aroben@apple.com>
25287
25288        Build fix.
25289
25290        * config.h: Remove redundant #define.
25291        * WebCore.vcproj/WebCore.vcproj: Update to new macros.
25292
252932007-02-26  Adam Roben  <aroben@apple.com>
25294
25295        Rubberstamped by Ada.
25296
25297        * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Make #if match the header file.
25298
252992007-02-26  Adam Roben  <aroben@apple.com>
25300
25301        Reviewed by Darin.
25302
25303        Build fix.
25304
25305        * WebCore.vcproj/build-generated-files.sh: Updated FEATURE_DEFINES.
25306        * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Use shiny new ENABLE(SVG).
25307        * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Ditto.
25308
253092007-02-25  Maciej Stachowiak  <mjs@apple.com>
25310
25311        Reviewed by Adam.
25312
25313        - fixed layout test failure in fast/overflow/scrollRevealButton
25314        
25315        I added a new ScrollView method, fullyClippedContentRect, that vies the content rect
25316        as clipped by all ancestor scroll views, not just this one. Currently it only works
25317        correctly on mac however. visibleContentRect, only accounting for the clipping from
25318        this particular scroll view, is sufficient for most purposes.
25319
25320        * platform/win/ScrollViewWin.cpp:
25321        (WebCore::ScrolView::fullyClippedContentRect):
25322
253232007-02-24  Adam Roben  <aroben@apple.com>
25324
25325        Change #if to #ifdef to match style.
25326
25327        * platform/win/PopupMenuWin.cpp:
25328        (WebCore::PopupMenu::show):
25329
253302007-02-24  Adam Roben  <aroben@apple.com>
25331
25332        Reviewed by Steve.
25333
25334        Fix <rdar://problem/5013502> REGRESSION: <select> menus are not
25335        animating smoothly
25336
25337        This was caused by making the menus partially transparent in r12250.
25338
25339        * platform/win/PopupMenuWin.cpp:
25340        (WebCore::PopupMenu::show): Disable animations.
25341
253422007-02-23  Anders Carlsson  <acarlsson@apple.com>
25343
25344        Reviewed by Adam.
25345
25346        <rdar://problem/4761543>
25347        nike.com doesn't finish loading if Flash plugin is installed.
25348        
25349        If a plugin requests a JavaScript URL with a non null frame target, execute the JavaScript expression. If the result 
25350        is not "undefined", replace the contents of the frame with the result converted to a string.
25351
25352        * plugins/win/PluginViewWin.cpp:
25353        (WebCore::getString):
25354        (WebCore::PluginViewWin::performRequest):
25355        (WebCore::PluginViewWin::requestTimerFired):
25356
253572007-02-22  Oliver Hunt  <oliver@apple.com>
25358
25359        rs = adam
25360        
25361        Replacing radar numbers from previous patch with one
25362        the isn't fictitious <rdar://problem/5018591>
25363
25364        * platform/win/CursorWin.cpp:
25365        (WebCore::columnResizeCursor):
25366        (WebCore::rowResizeCursor):
25367        (WebCore::verticalTextCursor):
25368
253692007-02-22  Oliver Hunt  <oliver@apple.com>
25370
25371        Reviewed by Ada.
25372
25373        Implemented a couple more cursor methods
25374
25375        * platform/win/CursorWin.cpp:
25376        (WebCore::columnResizeCursor):
25377        (WebCore::rowResizeCursor):
25378        (WebCore::verticalTextCursor):
25379          Added radar bug reference <rdar://problem/5018452>
25380        (WebCore::progressCursor):
25381        (WebCore::noDropCursor):
25382        (WebCore::notAllowedCursor):
25383          Making them return the correct cursor
25384
253852007-02-22  Oliver Hunt  <oliver@apple.com>
25386
25387        Reviewed by Anders.
25388
25389        Removing accessive COMPtr use from ClipboardWin constructors
25390        Adding data verification to ClipoardWin::SetData
25391        Small amount code tidying, and allowing for failure when writing an URL
25392
25393        * page/win/EventHandlerWin.cpp:
25394        (WebCore::EventHandler::createDraggingClipboard):
25395          Updated for new ClipboardWin constructor
25396        * platform/win/ClipboardWin.cpp:
25397        (WebCore::ClipboardWin::ClipboardWin):
25398        (WebCore::writeURL):
25399        (WebCore::ClipboardWin::getData):
25400          Tidying code, and allowing failure
25401        (WebCore::ClipboardWin::setData):
25402          Verifying that we're writing a valid url
25403                    
25404        * platform/win/ClipboardWin.h:
25405        * platform/win/EditorWin.cpp:
25406        (WebCore::Editor::newGeneralClipboard):
25407          Updated for new ClipboardWin constructor
25408
254092007-02-22  Oliver Hunt  <oliver@apple.com>
25410
25411        Reviewed by Ada, Lou, and Steve.
25412
25413        Last of the major Drag and drop implementation 
25414        patches for windows:
25415        * Adds support for DOM Clipboard during drag operations
25416        * Un-statics and refactors a few Pasteboard and DragData functions
25417          to allow them to share implementation with ClipboardWin and other 
25418          drag logic
25419        * Moves COMPtr.h from WebKit to WebCore
25420        * Adds WCDataObject, which is basically a direct copy of
25421          SDataObject from the app, with a few modifications to support
25422          DOM clipboard functionality.  Also includes a few suggestions
25423          from Ada and Steve, mostly involving memory management :D
25424        
25425        This resolves 
25426        <rdar://problem/4821407> Cannot drag link to bookmarks bar to create new link
25427        <rdar://problem/4869496> User Interaction Essentials: Drag
25428
25429        * WebCore.vcproj/WebCore.vcproj:
25430          Adding new files
25431          
25432        * page/win/DragControllerWin.cpp:
25433        (WebCore::DragController::maxDragImageSize):
25434          Maximum size of drag image to allow sharp edges
25435          is 208x208
25436          
25437        * page/win/EventHandlerWin.cpp:
25438        (WebCore::EventHandler::createDraggingClipboard):
25439          Properly implemented now
25440          
25441        * platform/win/ClipboardWin.cpp:
25442        (WebCore::):
25443        (WebCore::clipboardTypeFromMIMEType):
25444        (WebCore::ClipboardWin::ClipboardWin):
25445        (WebCore::ClipboardWin::~ClipboardWin):
25446        (WebCore::writeURL):
25447          Helper function to write a url to a WCDataObject
25448        (WebCore::ClipboardWin::clearData):
25449        (WebCore::ClipboardWin::clearAllData):
25450        (WebCore::ClipboardWin::getData):
25451        (WebCore::ClipboardWin::setData):
25452        (WebCore::addMimeTypesForFormat):
25453          Helper function for ClipboardWin::types
25454        (WebCore::ClipboardWin::types):
25455        (WebCore::ClipboardWin::setDragImage):
25456        (WebCore::ClipboardWin::setDragImageElement):
25457          General setters, match behaviour of WebKit/Mac
25458        (WebCore::ClipboardWin::createDragImage):
25459          Creates a drag image for a DOM specified Image is specified
25460          can't currently generate an image for an arbitrary element
25461        (WebCore::imageToMarkup):
25462          Wraps a url in an img tag
25463        (WebCore::ClipboardWin::declareAndWriteDragImage):
25464        (WebCore::ClipboardWin::writeURL):
25465        (WebCore::ClipboardWin::writeRange):
25466        (WebCore::ClipboardWin::hasData):
25467          Implement Clipboard required by DragController.
25468          Provides read/write DOM Clipboard implementation for dragging,
25469          read only when accessing system clipboard.
25470          
25471        * platform/win/ClipboardWin.h:
25472        (WebCore::ClipboardWin::dataObject):
25473          Provide an accessor for the dataObject
25474          
25475        * platform/win/DragDataWin.cpp:
25476        (WebCore::urlWFormat):
25477        (WebCore::urlFormat):
25478        (WebCore::plainTextFormat):
25479        (WebCore::plainTextWFormat):
25480        (WebCore::texthtmlFormat):
25481        (WebCore::htmlFormat):
25482        (WebCore::getURL):
25483        (WebCore::DragData::asURL):
25484        (WebCore::getPlainText):
25485        (WebCore::DragData::asPlainText):
25486        (WebCore::DragData::asFragment):
25487          Refactoring and removing of a few static modifiers to allow sharing with Clipboard
25488          
25489        * platform/win/DragImageWin.cpp:
25490        (WebCore::dragImageSize):
25491        (WebCore::deleteDragImage):
25492        (WebCore::allocImage):
25493        (WebCore::createCgContextFromBitmap):
25494        (WebCore::scaleDragImage):
25495        (WebCore::dissolveDragImageToFraction):
25496        (WebCore::createDragImageFromImage):
25497        (WebCore::createDragImageIconForCachedImage):
25498          Implement DragImage functions
25499          
25500        * platform/win/EditorWin.cpp:
25501        (WebCore::Editor::newGeneralClipboard):
25502          Creating a Clipboard that wraps the system clipboard
25503          
25504        * platform/win/PasteboardWin.cpp:
25505        (WebCore::createGlobalData):
25506        (WebCore::markupToCF_HTML):
25507        (WebCore::urlToMarkup):
25508        (WebCore::replaceNBSP):
25509          removing 'static'
25510          
25511        * platform/win/WCDataObject.cpp: Added.
25512        (WebCore::WCEnumFormatEtc::WCEnumFormatEtc):
25513        (WebCore::WCEnumFormatEtc::QueryInterface):
25514        (WebCore::WCEnumFormatEtc::AddRef):
25515        (WebCore::WCEnumFormatEtc::Release):
25516        (WebCore::WCEnumFormatEtc::Next):
25517        (WebCore::WCEnumFormatEtc::Skip):
25518        (WebCore::WCEnumFormatEtc::Reset):
25519        (WebCore::WCEnumFormatEtc::Clone):
25520        (WebCore::WCDataObject::createInstance):
25521        (WebCore::WCDataObject::WCDataObject):
25522        (WebCore::WCDataObject::~WCDataObject):
25523        (WebCore::WCDataObject::QueryInterface):
25524        (WebCore::WCDataObject::AddRef):
25525        (WebCore::WCDataObject::Release):
25526        (WebCore::WCDataObject::GetData):
25527        (WebCore::WCDataObject::GetDataHere):
25528        (WebCore::WCDataObject::QueryGetData):
25529        (WebCore::WCDataObject::GetCanonicalFormatEtc):
25530        (WebCore::WCDataObject::SetData):
25531        (WebCore::WCDataObject::CopyMedium):
25532        (WebCore::WCDataObject::EnumFormatEtc):
25533        (WebCore::WCDataObject::DAdvise):
25534        (WebCore::WCDataObject::DUnadvise):
25535        (WebCore::WCDataObject::EnumDAdvise):
25536        (WebCore::WCDataObject::clearData):
25537          Copied from SDataObject in the App createInstance and clearData
25538          are the only new functions.  clearData removes any entries in the
25539          object with a specified CLIPFORMAT.
25540          Have also made a few error and memory handling changes suggested
25541          by Steve and Ada
25542        * platform/win/WCDataObject.h: Added.
25543          Header for the above
25544
255452007-02-22  Adam Roben  <aroben@apple.com>
25546
25547        Reviewed by Adele.
25548
25549        Make sure we always paint the right size search results icon.
25550
25551        * rendering/RenderThemeSafari.cpp:
25552        (WebCore::RenderThemeSafari::paintSearchFieldCancelButton): Removed unused parameter.
25553        (WebCore::RenderThemeSafari::paintSearchFieldDecoration): Ditto.
25554        (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): Base
25555        the control size off of the search field rect to ensure that the icon
25556        and the control are the same size.
25557        (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): Ditto.
25558
255592007-02-21  Adam Roben  <aroben@apple.com>
25560
25561        Reviewed by Adele.
25562
25563        Updated for SafariTheme changes.
25564
25565        * rendering/RenderThemeSafari.cpp:
25566        (WebCore::RenderThemeSafari::paintMenuList): Use DropDownButtonPart.
25567
255682007-02-20  Adele Peterson  <adele@apple.com>
25569
25570        Reviewed by Darin.
25571
25572        * WebCore.vcproj/WebCore.vcproj: Added JSHTMLSelectElementCustom.h
25573
255742007-02-20  Beth Dakin  <bdakin@apple.com>
25575
25576        Reviewed by Maciej.
25577
25578        Some changes needed to match moving writeImage() to the Pasteboard 
25579        on the Mac.
25580
25581        * platform/win/PasteboardWin.cpp:
25582        (WebCore::Pasteboard::writeURL): Now takes a bool indicating if the 
25583        url if for an image.
25584        (WebCore::Pasteboard::writeImage): This is just a stub for now. I 
25585        am putting it here instead of on TemporaryLinkStubs because I plan 
25586        on implementing it very soon.
25587
255882007-02-20  Adam Roben  <aroben@apple.com>
25589
25590        Reviewed by Darin and Anders.
25591
25592        Fix <rdar://problem/5003318> App: Status bar text is more difficult to
25593        read than Mac OS X Safari
25594
25595        * WebCore.vcproj/WebCore.vcproj: Added new files.
25596        * platform/win/FileChooserWin.cpp:
25597        (WebCore::FileChooser::openFileChooser):
25598        (WebCore::FileChooser::basenameForWidth): Added truncation.
25599        * platform/win/WebCoreTextRenderer.cpp:
25600        (WebCore::WebCoreDrawTextAtPoint): Added bottomAlign and centerTruncate parameters.
25601        * platform/win/WebCoreTextRenderer.h: Ditto.
25602
256032007-02-20  Alice Liu  <alice.liu@apple.com>
25604
25605        Build fix
25606
25607        * WebCore.vcproj/WebCore.vcproj:
25608        Added PositionIterator.cpp & h
25609
256102007-02-20  Steve Falkenburg  <sfalken@apple.com>
25611
25612        Production build fix
25613
25614        * WebCore.vcproj/WebCore.vcproj:
25615
256162007-02-19  Geoffrey Garen  <ggaren@apple.com>
25617
25618        Reviewed by Adam Roben.
25619
25620        Fixed some leaks in RenderThemeSafari.
25621        
25622        I just merged some of the code I wrote for RenderThemeMac.
25623        
25624        * rendering/RenderThemeSafari.cpp:
25625        (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
25626        (WebCore::RenderThemeSafari::paintSliderTrack):
25627
256282007-02-19  Anders Carlsson  <acarlsson@apple.com>
25629
25630        Reviewed by Oliver.
25631
25632        Fix build.
25633
25634        * page/win/DragControllerWin.cpp:
25635        (WebCore::DragController::maxDragImageSize):
25636
256372007-02-19  Adele Peterson  <adele@apple.com>
25638
25639        Reviewed by Adam.
25640
25641        Fix for <rdar://problem/5006882> PlatformScrollbarSafari doesn't support small scroll bars
25642
25643        * platform/win/PlatformScrollBar.h:
25644        * platform/win/PlatformScrollBarSafari.cpp:
25645        (WebCore::):
25646        (WebCore::PlatformScrollbar::PlatformScrollbar):
25647        (WebCore::trackRepaintRect):
25648        (WebCore::buttonRepaintRect):
25649        (WebCore::PlatformScrollbar::invalidateTrack):
25650        (WebCore::PlatformScrollbar::invalidatePart):
25651        (WebCore::PlatformScrollbar::backButtonRect):
25652        (WebCore::PlatformScrollbar::forwardButtonRect):
25653        (WebCore::PlatformScrollbar::trackRect):
25654        (WebCore::PlatformScrollbar::splitTrack):
25655        (WebCore::PlatformScrollbar::thumbLength):
25656        (WebCore::PlatformScrollbar::paintButton):
25657        (WebCore::PlatformScrollbar::paintTrack):
25658        (WebCore::PlatformScrollbar::paintThumb):
25659        (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
25660        (WebCore::PlatformScrollbar::verticalScrollbarWidth):
25661        * platform/win/PopupMenuWin.cpp:
25662        (WebCore::PopupMenu::show):
25663        (WebCore::PopupMenu::calculatePositionAndSize):
25664
256652007-02-19  Anders Carlsson  <acarlsson@apple.com>
25666
25667        Reviewed by Adam.
25668
25669        <rdar://problem/5008424>
25670        Regression: Crash loading mp3.com
25671        
25672        * platform/network/cf/ResourceErrorCF.cpp:
25673        (WebCore::ResourceError::ResourceError):
25674        Handle null resource errrors.
25675
256762007-02-19  Adam Roben  <aroben@apple.com>
25677
25678        Build fix.
25679
25680        * bridge/win/FrameWin.cpp:
25681        (WebCore::computePageRectsForFrame): This is no longer an instance
25682        method of Frame.
25683        * bridge/win/FrameWin.h:
25684
256852007-02-18  Maciej Stachowiak  <mjs@apple.com>
25686
25687        Reviewed by Oliver.
25688
25689        - Adapt for Lars's patch to clean up Frame
25690
25691        * bridge/win/FrameWin.cpp:
25692        (WebCore::Frame::cleanupPlatformScriptObjects):
25693        (WebCore::Frame::createScriptInstanceForWidget):
25694        (WebCore::Frame::computePageRects):
25695        (WebCore::drawRectIntoContext):
25696        (WebCore::imageFromSelection):
25697        (WebCore::Frame::isCharacterSmartReplaceExempt):
25698        * bridge/win/FrameWin.h:
25699        * page/win/EventHandlerWin.cpp:
25700        * platform/win/ScrollViewWin.cpp:
25701        (WebCore::ScrollView::windowResizerRect):
25702        (WebCore::ScrollView::addToDirtyRegion):
25703        (WebCore::ScrollView::scrollBackingStore):
25704        (WebCore::ScrollView::updateBackingStore):
25705        * platform/win/TemporaryLinkStubs.cpp:
25706        (Frame::print):
25707        (Frame::issueTransposeCommand):
25708        (WebCore::Frame::respondToChangedSelection):
25709        * plugins/win/PluginDatabaseWin.cpp:
25710        (WebCore::PluginDatabaseWin::createPluginView):
25711        * plugins/win/PluginDatabaseWin.h:
25712        * plugins/win/PluginViewWin.cpp:
25713        (WebCore::PluginViewWin::createNullPluginView):
25714        (WebCore::PluginViewWin::PluginViewWin):
25715        * plugins/win/PluginViewWin.h:
25716
257172007-02-18  Ada Chan  <adachan@apple.com>
25718
25719        Reviewed by Adam.
25720
25721        Move app text controls to use WebView.
25722        - added a method to let us render text using WebKit.
25723
25724        * WebCore.vcproj/WebCore.vcproj:
25725        * platform/win/WebCoreTextRenderer.cpp: Added.
25726        (WebCore::WebCoreDrawTextAtPoint):
25727        * platform/win/WebCoreTextRenderer.h: Added.
25728
257292007-02-18  Adam Roben  <aroben@apple.com>
25730
25731        Rubberstamped by Hyatt.
25732
25733        Fix <rdar://problem/5006918> All selected text is black, even if it is
25734        some other color when not selected
25735
25736        * platform/win/PopupMenuWin.cpp:
25737        (WebCore::PopupMenu::paint): Use the listbox colors for selected items.
25738        * rendering/RenderThemeSafari.cpp: Removed platformActiveSelectionForegroundColor.
25739        * rendering/RenderThemeSafari.h: Ditto.
25740
257412007-02-18  Adam Roben  <aroben@apple.com>
25742
25743        Reviewed by Hyatt.
25744
25745        Fix <rdar://problem/5006872> <select> popups need Aqua scroll bars
25746
25747        PopupMenuWin now uses a PlatformScrollbar.
25748
25749        * platform/win/PlatformScrollBarSafari.cpp:
25750        (WebCore::PlatformScrollbar::hitTest): Allow hit testing even when we
25751        don't have a parent widget.
25752        (WebCore::PlatformScrollbar::autoscrollPressedPart): Don't autoscroll
25753        if nothing is pressed.
25754        * platform/win/PopupMenuWin.cpp: m_scrollOffset is now measured in menu
25755        items, not in pixels.
25756        (WebCore::PopupMenu::PopupMenu): Initialize new member.
25757        (WebCore::PopupMenu::show): Make popups partially transparent, don't
25758        use Windows' built-in scroll bars, and create a PlatformScrollbar if
25759        needed.
25760        (WebCore::PopupMenu::calculatePositionAndSize): Get the scroll bar's
25761        width from PlatformScrollbar instead of from Windows.
25762        (WebCore::PopupMenu::visibleItems): Added.
25763        (WebCore::PopupMenu::listIndexAtPoint): Definition moved here from header.
25764        (WebCore::PopupMenu::invalidateItem): Update for m_scrollOffset change,
25765        and shrink the damage rect to not invalidate the scroll bar unnecessarily.
25766        (WebCore::PopupMenu::scrollToRevealSelection): Updated to use PlatformScrollbar.
25767        (WebCore::PopupMenu::updateFromElement): Changed bool to BOOL.
25768        (WebCore::PopupMenu::paint): Updated for m_scrollOffset change, and
25769        paint the scroll bar at the end.
25770        (WebCore::PopupMenu::valueChanged): Added. Code comes from the old scrollTo method.
25771        (WebCore::PopupMenu::windowClipRect): Added.
25772        (WebCore::PopupWndProc):
25773            - Set up the scroll bar in WM_SIZE
25774            - Send mouse events to the scroll bar when appropriate
25775            - Get rid of handling of WM_VSCROLL events (we shouldn't receive these anymore)
25776
257772007-02-18  Oliver Hunt  <oliver@apple.com>
25778
25779        Reviewed by Adam.
25780
25781        Updated to include stubs for drag and drop methods
25782        Added DragImage[Win].cpp to project file
25783        Now uses platform independent EventHandler::handleDrag
25784
25785        * WebCore.vcproj/WebCore.vcproj:
25786
25787        * bridge/win/FrameWin.cpp:
25788        (WebCore::Frame::dragImageForSelection):
25789          Just wrap the platform specific selectionImage method
25790
25791        * page/win/DragControllerWin.cpp:
25792          Defining constants for drag images -- basically copied the Mac definitions
25793
25794        * page/win/EventHandlerWin.cpp:
25795        (WebCore::EventHandler::createDraggingClipboard):
25796          Basic implementation -- needs to create an IDataObject to be useful
25797          but ClipboardWin is basically unimplemented anyway so not yet a problem
25798
25799        * platform/win/ClipboardWin.cpp:
25800        (WebCore::ClipboardWin::createDragImage):
25801        (WebCore::ClipboardWin::declareAndWriteDragImage):
25802        (WebCore::ClipboardWin::writeURL):
25803        (WebCore::ClipboardWin::writeRange):
25804        (WebCore::ClipboardWin::hasData):
25805          Stubs
25806
25807        * platform/win/ClipboardWin.h:
25808          Updated interface
25809
25810        * platform/win/DragImageWin.cpp: Added.
25811        (WebCore::dragImageSize):
25812        (WebCore::deleteDragImage):
25813        (WebCore::scaleDragImage):
25814        (WebCore::dissolveDragImageToFraction):
25815        (WebCore::createDragImageFromImage):
25816        (WebCore::createDragImageIconForCachedImage):
25817          Stubs
25818
258192007-02-17  Adam Roben  <aroben@apple.com>
25820
25821        * WebCore.vcproj/WebCore.vcproj: Removed bogus single-file
25822        configuration for MimeTypeRegistryWin.cpp.
25823
258242007-02-17  David Hyatt  <hyatt@apple.com>
25825
25826        Part of the OpenSource fix to make sure the fill color starts off as transparent.  Make sure our CG context
25827        has its state properly in sync with the CGContext.
25828
25829        Reviewed by aroben
25830
25831        * platform/win/GraphicsContextWin.cpp:
25832        (WebCore::GraphicsContext::GraphicsContext):
25833
258342007-02-17  Adam Roben  <aroben@apple.com>
25835
25836        Build fix.
25837
25838        * platform/win/CursorWin.cpp:
25839        (WebCore::notAllowedCursor):
25840
258412007-02-17  Dave Hyatt <hyatt@apple.com>
25842
25843        Change how resizers are invalidated to fix Radar bug #4976772.
25844        
25845        Reviewed by olliej
25846
25847        * platform/win/GraphicsContextWin.cpp:
25848        (WebCore::GraphicsContext::GraphicsContext):
25849        * platform/win/ScrollViewWin.cpp:
25850        (WebCore::ScrollView::suppressScrollbars):
25851        (WebCore::ScrollView::paint):
25852        (WebCore::ScrollView::adjustOverlappingScrollbarCount):
25853        * platform/win/WidgetWin.cpp:
25854        (WebCore::Widget::invalidateRect):
25855
258562007-02-16  Dave Hyatt <hyatt@apple.com>
25857
25858        Fix for Radar bug #4981074, RSS Scrollbar overlaps window resizer.  Teach all scrollbars how to
25859        avoid the window resizer.
25860        
25861        Reviewed by aroben
25862
25863        * platform/win/PlatformScrollBar.h:
25864        * platform/win/PlatformScrollBarSafari.cpp:
25865        (WebCore::PlatformScrollbar::PlatformScrollbar):
25866        (WebCore::PlatformScrollbar::setRect):
25867        (WebCore::PlatformScrollbar::setParent):
25868        * platform/win/PlatformScrollBarWin.cpp:
25869        (WebCore::PlatformScrollbar::PlatformScrollbar):
25870        (WebCore::PlatformScrollbar::setRect):
25871        (WebCore::PlatformScrollbar::setParent):
25872        * platform/win/ScrollViewWin.cpp:
25873        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
25874        (WebCore::ScrollView::updateScrollbars):
25875        (WebCore::ScrollView::resizerOverlapsContent):
25876        (WebCore::ScrollView::adjustOverlappingScrollbarCount):
25877        (WebCore::ScrollView::setParent):
25878
258792007-02-16  Adam Roben  <aroben@apple.com>
25880
25881        Rubberstamped by Anders.
25882
25883        * platform/win/PlatformScrollBarSafari.cpp:
25884        (WebCore::PlatformScrollbar::paint): Don't draw the arrows when we're disabled.
25885
258862007-02-15  Dave Hyatt  <hyatt@apple.com>
25887
25888        Reviewed by Adam.
25889
25890        Fix for 4804657 and 4952931, scroll view gets confused and ends up at a bad scroll
25891        offset.
25892        
25893        * platform/win/ScrollViewWin.cpp:
25894        (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
25895        (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
25896        (WebCore::ScrollView::updateScrollbars):
25897
258982007-02-16  Anders Carlsson  <acarlsson@apple.com>
25899
25900        Reviewed by Adam.
25901
25902        <rdar://problem/4993040>
25903        Crash in plugin code watching yahoo news video
25904        
25905        Zero out the plugin function struct.
25906        
25907        * plugins/win/PluginPackageWin.cpp:
25908        (WebCore::PluginPackageWin::load):
25909
259102007-02-16  Anders Carlsson  <acarlsson@apple.com>
25911
25912        Fix build.
25913
25914        Use adoptCF instead of adopt.
25915
25916        * platform/network/cf/ResourceHandleCFNet.cpp:
25917        (WebCore::ResourceHandle::start):
25918        * platform/network/cf/ResourceRequestCFNet.cpp:
25919        (WebCore::ResourceRequest::doUpdatePlatformRequest):
25920
259212007-02-16  Adam Roben  <aroben@apple.com>
25922
25923        Reviewed by Oliver.
25924
25925        Implemented square button look.
25926
25927        * rendering/RenderThemeSafari.cpp:
25928        (WebCore::RenderThemeSafari::adjustRepaintRect): Only inflate the rect
25929        if we have a pushbutton.
25930        (WebCore::RenderThemeSafari::paintButton): Ditto.
25931
259322007-02-15  Anders Carlsson  <acarlsson@apple.com>
25933
25934        Reviewed by Adam.
25935
25936        Add the default Flash plugin location to the list of plugin paths.
25937
25938        * plugins/win/PluginDatabaseWin.cpp:
25939        (WebCore::addFlashPluginPath):
25940        (WebCore::PluginDatabaseWin::defaultPluginPaths):
25941
259422007-02-15  Lou Amadio  <lamadio@apple.com>
25943
25944        Reviewed by Steve.
25945
25946        <rdar://problem/4945799> CGText: should use correct mechanism to set font smoothing style
25947        
25948        * platform/win/FontWin.cpp:
25949        (WebCore::Font::drawGlyphs):
25950
259512007-02-15  Anders Carlsson  <acarlsson@apple.com>
25952
25953        Reviewed by Adam.
25954
25955        <rdar://problem/4987529>
25956        Regression: first clicks don't work at flash-based Nokia.com
25957
25958        * plugins/win/PluginViewWin.cpp:
25959        (WebCore::PluginViewWin::handleMouseEvent):
25960        Don't set buttons for mouse move. Also, ignore unknown mouse events.
25961
259622007-02-13  Brady Eidson  <beidson@apple.com>
25963
25964        Reviewed by Adam
25965
25966        Switch permanently from CFStreamError to CFErrorRef in ResourceHandleCF
25967
25968        * platform/network/cf/ResourceHandleCFNet.cpp:
25969        (WebCore::didFail):
25970        (WebCore::ResourceHandle::start):
25971
259722007-02-13  Adam Roben  <aroben@apple.com>
25973
25974        Build fix.
25975
25976        * WebCore.vcproj/WebCore.vcproj: Remove SVGDOMImplementation.(cpp|h)
25977
259782007-02-12  Ada Chan  <adachan@apple.com>
25979
25980        Reviewed by Steve.
25981
25982        <rdar://4952715> Events not being passed from WebCore/WebKit up through IWebForm::doCommandBySelector
25983        Frame::doTextFieldCommandFromEvent()'s signature has changed from taking in a PlatformKeyboardEvent
25984        to KeyboardEvent.  Match that in FrameWin.
25985
25986        * bridge/win/FrameWin.cpp:
25987        (WebCore::FrameWin::doTextFieldCommandFromEvent):
25988        * bridge/win/FrameWin.h:
25989
259902007-02-10  Adam Roben  <aroben@apple.com>
25991
25992        Rubberstamped by Oliver.
25993
25994        * rendering/RenderThemeSafari.cpp:
25995        (WebCore::RenderThemeSafari::paintButton): Call controlSizeFromRect
25996        instead of controlSizeForFont to determine the correct control size.
25997
259982007-02-09  Alice Liu  <alice.liu@apple.com>
25999
26000        Reviewed by Brady and Adam.
26001
26002        Fixed <rdar://4986194> Typing in content editable body does not automatically scroll to reveal cursor
26003
26004        * platform/win/ScrollViewWin.cpp:
26005        (WebCore::ScrollView::updateScrollbars):
26006        The scrollview's scrolloffset wasn't getting set in cases where there were no scrollbars
26007        You can have a scrolloffset even if you don't have scrollbars
26008
260092007-02-09  Darin Adler  <darin@apple.com>
26010
26011        Reviewed by Adele.
26012
26013        - Add TextEvent to the DOM (based on the proposed DOM level 3)
26014          to be used to fix some international input bugs soon.
26015          At this point, we don't send any text events.
26016
26017        - Remove some obsolete files.
26018
26019        * WebCore.vcproj/WebCore.vcproj: Add new files, remove obsolete files.
26020
260212007-02-09  Anders Carlsson  <acarlsson@apple.com>
26022
26023        Reviewed by Adam.
26024
26025        * plugins/win/PluginViewWin.cpp:
26026        (WebCore::PluginViewWin::performRequest):
26027        Add the stream to the m_streams hash set.
26028
260292007-02-08  Adele Peterson  <adele@apple.com>
26030
26031        Reviewed by Brady.
26032
26033        Fix for http://bugs.webkit.org/show_bug.cgi?id=12599
26034        <rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
26035
26036        This also fixes a bug where when you called window.focus() on a background window, it did not come to the front.
26037
26038        * bridge/win/FrameWin.h: Removed focusWindow() and unfocusWindow() stubs since there are now implementations in the base class.
26039        * platform/win/TemporaryLinkStubs.cpp:
26040
260412007-02-08  Anders Carlsson  <acarlsson@apple.com>
26042
26043        Reviewed by Geoff.
26044
26045        <rdar://problem/4955068>
26046        PluginViewWin leaks memory.
26047        
26048        Make streams ref-counted. Remove streams from the hash set once they're done loading.
26049        
26050        Don't try to paint if painting is disabled.
26051        
26052        * plugins/win/PluginStreamWin.cpp:
26053        (WebCore::PluginStreamWin::PluginStreamWin):
26054        (WebCore::PluginStreamWin::cancelAndDestroyStream):
26055        (WebCore::PluginStreamWin::destroyStream):
26056        * plugins/win/PluginStreamWin.h:
26057        * plugins/win/PluginViewWin.cpp:
26058        (WebCore::PluginViewWin::paint):
26059        (WebCore::PluginViewWin::stop):
26060        (WebCore::PluginViewWin::~PluginViewWin):
26061        (WebCore::PluginViewWin::disconnectStream):
26062        * plugins/win/PluginViewWin.h:
26063
260642007-02-08  Adam Roben  <aroben@apple.com>
26065
26066        Reviewed by Adele.
26067
26068        Fix scrollbar painting.
26069
26070        * platform/win/PlatformScrollBarSafari.cpp:
26071        (WebCore::trackRepaintRect): Added.
26072        (WebCore::buttonRepaintRect): Added.
26073        (WebCore::PlatformScrollbar::invalidateTrack): Inavlidate the repaint
26074        rect, not the rect used for hit testing.
26075        (WebCore::PlatformScrollbar::invalidatePart): Ditto.
26076        (WebCore::PlatformScrollbar::paint): Paint the track first, then the
26077        buttons, then the thumb.
26078        (WebCore::PlatformScrollbar::paintButton): Paint in the repaintRect,
26079        not the rect used for hit testing.
26080        (WebCore::PlatformScrollbar::paintTrack): Ditto.
26081
260822007-02-08  Anders Carlsson  <acarlsson@apple.com>
26083
26084        Remove unused stub.
26085        
26086        * platform/win/TemporaryLinkStubs.cpp:
26087
260882007-02-08  Anders Carlsson  <acarlsson@apple.com>
26089
26090        Reviewed by Brady.
26091
26092        <rdar://problem/4888871>
26093        Need to support synchronous XMLHttpRequest.
26094
26095        * platform/network/cf/ResourceHandleCFNet.cpp:
26096        (WebCore::ResourceHandle::loadResourceSynchronously):
26097
260982007-02-07  Adam Roben  <aroben@apple.com>
26099
26100        Reviewed by Maciej.
26101
26102        Fix mini search field painting.
26103
26104        * rendering/RenderThemeSafari.cpp:
26105        (WebCore::RenderThemeSafari::searchFieldSizes): Use the right height.
26106
261072007-02-07  Adele Peterson  <adele@apple.com>
26108
26109        Reviewed by Adam.
26110
26111        Draw a single down arrow for styled menu lists.
26112
26113        * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintMenuListButton):
26114        * rendering/RenderThemeWin.cpp: Moved #ifndef USE_SAFARI_THEME to enclose the body of the file.
26115
261162007-02-07  Brady Eidson  <beidson@apple.com>
26117
26118        RS = Adam
26119        
26120        Touch these files to force it to recompile...
26121
26122        * platform/win/PlatformScrollBarSafari.cpp:
26123        * rendering/RenderThemeWin.cpp:
26124
261252007-02-07  Adam Roben  <aroben@apple.com>
26126
26127        Rubberstamped by Maciej.
26128
26129        Turn on SafariTheme so we can try it out.
26130
26131        * WebCore.vcproj/WebCore.vcproj:
26132
261332007-02-07  Adam Roben  <aroben@apple.com>
26134
26135        Reviewed by Adele.
26136
26137        * rendering/RenderThemeSafari.cpp:
26138        (WebCore::RenderThemeSafari::determineState): Pass focus information down to SafariTheme.
26139
261402007-02-06  Adam Roben  <aroben@apple.com>
26141
26142        Rubberstamped by Brady.
26143
26144        Updated for log channel rename.
26145
26146        * platform/win/GDIObjectCounter.cpp:
26147        (WebCore::GDIObjectCounter::~GDIObjectCounter):
26148
261492007-02-06  Adele Peterson  <adele@apple.com>
26150
26151        Reviewed by Adam.
26152
26153        Added support for radio buttons and checkboxes.
26154
26155        * platform/win/PlatformScrollBarSafari.cpp:
26156        (WebCore::PlatformScrollbar::paintButton):
26157        (WebCore::PlatformScrollbar::paintTrack):
26158        (WebCore::PlatformScrollbar::paintThumb):
26159        * rendering/RenderThemeSafari.cpp:
26160        (WebCore::RenderThemeSafari::determineState):
26161        (WebCore::RenderThemeSafari::platformActiveSelectionForegroundColor):
26162        (WebCore::RenderThemeSafari::adjustRepaintRect):
26163        (WebCore::RenderThemeSafari::paintCheckbox):
26164        (WebCore::RenderThemeSafari::checkboxMargins):
26165        (WebCore::RenderThemeSafari::paintRadio):
26166        (WebCore::RenderThemeSafari::radioMargins):
26167        (WebCore::RenderThemeSafari::adjustMenuListStyle):
26168        (WebCore::RenderThemeSafari::paintSliderThumb):
26169        * rendering/RenderThemeSafari.h:
26170
261712007-02-05  Adam Roben  <aroben@apple.com>
26172
26173        Reviewed by Ada and Oliver.
26174
26175        Add a GDIObjectCounter class that informs us of GDI leaks.
26176
26177        * WebCore.vcproj/WebCore.vcproj: Added new files.
26178        * platform/win/GDIObjectCounter.cpp: Added.
26179        (WebCore::GDIObjectCounter::GDIObjectCounter):
26180        (WebCore::GDIObjectCounter::init):
26181        (WebCore::GDIObjectCounter::~GDIObjectCounter):
26182        (WebCore::GDIObjectCounter::currentGDIObjectsInUse):
26183        * platform/win/GDIObjectCounter.h: Added.
26184
261852007-02-05  Adam Roben  <aroben@apple.com>
26186
26187        Build fix.
26188
26189        * WebCore.vcproj/WebCore.vcproj: Add new files.
26190
261912007-02-04  Oliver Hunt  <oliver@apple.com>
26192
26193        Reviewed by Adam.           
26194
26195        Removed unimplemented EventHandler::handleMouseUp, 
26196        as a platform independent version is available now.
26197
26198        * page/win/EventHandlerWin.cpp:
26199        (WebCore::EventHandler::eventActivatedView): 
26200          Now we use this method, it needs to be implemented
26201
262022007-02-02  Steve Falkenburg  <sfalken@apple.com>
26203
26204        Fix build.
26205
26206        * WebCore.vcproj/WebCore.vcproj:
26207
262082007-02-02  Steve Falkenburg  <sfalken@apple.com>
26209
26210        * platform/network/cf/FormDataStreamCFNet.cpp:
26211
262122007-02-02  Adam Roben  <aroben@apple.com>
26213
26214        Turn on Lucida Grande.
26215
26216        * rendering/RenderThemeSafari.cpp:
26217        (WebCore::RenderThemeSafari::systemFont):
26218            Use Lucida Grande.
26219        (WebCore::RenderThemeSafari::setFontFromControlSize):
26220            Ditto.
26221        (WebCore::RenderThemeSafari::controlSizeForSystemFont):
26222            Implemented using font sizes from NSFont.m.
26223        (WebCore::RenderThemeSafari::adjustRepaintRect):
26224            Uncommented.
26225        (WebCore::RenderThemeSafari::minimumMenuListSize):
26226            Ditto.
26227
262282007-02-02  Adam Roben  <aroben@apple.com>
26229
26230        Reviewed by Maciej.
26231
26232        Implemented menulist drawing.
26233
26234        * rendering/RenderThemeSafari.cpp:
26235        (WebCore::controlSizeFromRect):
26236            Moved to top of file.
26237        (WebCore::RenderThemeSafari::adjustRepaintRect):
26238            Uncommented menulist case.
26239        (WebCore::RenderThemeSafari::popupButtonMargins):
26240            Added controlSize parameter, made margins match AppKit artwork.
26241        (WebCore::RenderThemeSafari::paintMenuList):
26242            Implemented.
26243        * rendering/RenderThemeSafari.h:
26244            Updated decalartion.
26245
262462007-02-01  Anders Carlsson  <acarlsson@apple.com>
26247
26248        Reviewed by Brady.
26249
26250        * platform/network/cf/ResourceHandleCFNet.cpp:
26251        (WebCore::willSendRequest):
26252        Make sure to always retain the request we return. (In practice, we were already doing this since
26253        client can never be null).
26254        
26255        (WebCore::didReceiveResponse):
26256        Remove client null check.
26257
262582007-02-01  Steve Falkenburg  <sfalken@apple.com>
26259
26260        Production build fix
26261
26262        * WebCore.vcproj/WebCore.vcproj:
26263
262642007-01-31  Oliver Hunt  <oliver@apple.com>
26265
26266        Reviewed by Adam.
26267
26268        Updating event handler logic to make use of methods migrated from 
26269        WebKit to WebCore
26270
26271        * page/win/EventHandlerWin.cpp:
26272        (WebCore::EventHandler::handleDrag):   
26273          Updating handleDrag to use methods that we've migrated to WebCore
26274        * platform/win/PlatformMouseEventWin.cpp:
26275        (WebCore::messageToEventType):                        
26276        (WebCore::PlatformMouseEvent::PlatformMouseEvent):   
26277          provide the type of mouse event
26278          
26279
262802007-01-31  Steve Falkenburg  <sfalken@apple.com>
26281
26282        Reviewed by Ada.
26283
26284        Fix BString bugs.
26285
26286        * platform/win/BString.cpp:
26287        (WebCore::BString::BString): Call SysAllocString instead of SysAllocStringLen
26288        (WebCore::BString::operator=): Add proper null checks
26289        (WebCore::operator ==): Add proper null checks
26290
262912007-01-30  Anders Carlsson  <acarlsson@apple.com>
26292
26293        Build fix.
26294        
26295        * platform/win/TemporaryLinkStubs.cpp:
26296        (ResourceHandle::setDefersLoading):
26297
262982007-01-30  Steve Falkenburg  <sfalken@apple.com>
26299
26300        Production build fix
26301
26302        * WebCore.vcproj/WebCore.vcproj:
26303
263042007-01-29  Adam Roben  <aroben@apple.com>
26305
26306        Build fix.
26307
26308        * platform/win/TemporaryLinkStubs.cpp: Removed old stub.
26309
263102007-01-29  Brady Eidson  <beidson@apple.com>
26311
26312        Reviewed by Oliver
26313
26314        All the downloads plumbing for if you have ToT CFNetwork + my changes
26315        (or after they submit with my changes)
26316
26317        * platform/network/cf/FormDataStreamCFNet.cpp: Reword the #ifdef for CFNetwork ToT for clarity
26318        * platform/network/cf/ResourceHandleCFNet.cpp:
26319        (WebCore::didFail): Use a RetainPtr .get()
26320        (WebCore::ResourceHandleInternal::~ResourceHandleInternal): Only cancel the connection if we hold the last ref
26321        (WebCore::ResourceHandle::start): Use a RetainPtr - adopt and .get()
26322        (WebCore::ResourceHandle::cancel): Use a RetainPtr .get()
26323        (WebCore::ResourceHandle::receivedCredential):Use a RetainPtr .get()
26324        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Use a RetainPtr .get()
26325        (WebCore::ResourceHandle::connection): Use a RetainPtr .get()
26326        * platform/network/cf/ResourceRequestCFNet.cpp:
26327        (WebCore::ResourceRequest::doUpdatePlatformRequest): Prevent a crash if a null
26328
263292007-01-29  Brady Eidson  <beidson@apple.com>
26330
26331        Reviewed by Geoff
26332
26333        Change LOG_NOTIMPL() to use a LOG() and its logging channel instead of LOG_ERROR()
26334        so you can actually turn it off.
26335        
26336        * platform/win/NotImplemented.h:
26337
263382007-01-29  Maciej Stachowiak  <mjs@apple.com>
26339        
26340        - fix build
26341
26342        * platform/win/TemporaryLinkStubs.cpp:
26343
263442007-01-29  Steve Falkenburg  <sfalken@apple.com>
26345
26346        Fix build break from RootObject ownership change.
26347
26348        * bridge/win/FrameWin.cpp:
26349        (WebCore::FrameWin::createRootObject): Added
26350        (WebCore::FrameWin::cleanupPluginObjects): change destroy to invalidate
26351        (WebCore::FrameWin::bindingRootObject): change new RootObject to RootObject::create
26352        * bridge/win/FrameWin.h: 
26353        * plugins/win/PluginViewWin.cpp:
26354        (WebCore::PluginViewWin::bindingInstance): change new RootObject to FrameWin::createRootObject.
26355
263562007-01-26  Adam Roben  <aroben@apple.com>
26357
26358        Reviewed by Oliver.
26359
26360        Fix frequent failed assertions when painting scroll bars.
26361
26362        * platform/win/PlatformScrollBarSafari.cpp:
26363        (WebCore::PlatformScrollbar::paint): Check that painting is enabled
26364        before painting.
26365
263662007-01-26  Oliver Hunt <oliver@apple.com>
26367
26368        Build fix.
26369
26370        * WebCore.vcproj/WebCore.vcproj:
26371
263722007-01-26  Beth Dakin  <bdakin@apple.com>
26373
26374        Reviewed by Darin.
26375
26376        Due to <rdar://problem/4956565> REGRESSION: After scrolling frame, 
26377        hovering over link in this frame doesn't change cursor to pointing 
26378        hand
26379
26380        lastEventIsMouseUp() is a Mac-only issue. This patch makes it Mac-
26381        only code, so we can remove the temporary link stub for it.
26382
26383        * platform/win/TemporaryLinkStubs.cpp:
26384
263852007-01-26  Oliver Hunt <oliver@apple.com>
26386
26387        Build fix -- adding SVGInlineTextBox.{cpp,h} to project
26388
26389        * WebCore.vcproj/WebCore.vcproj:
26390
263912007-01-25  Oliver Hunt  <oliver@apple.com>
26392
26393        Reviewed by Maciej.
26394
26395        Fixed DragDataWin behaviour so that it will provide plain text
26396        for a file dropped on the window.
26397
26398        * platform/win/DragDataWin.cpp:
26399        (WebCore::DragData::asPlainText):
26400
264012007-01-25  Brady Eidson  <beidson@apple.com>
26402
26403        Reviewed by Adam
26404
26405        -Setup for new CFNetwork API for those using their ToT and their next submission
26406        -Setup for new CoreFoundation API for those using their ToT and their next submission
26407
26408        * platform/network/cf/FormDataStreamCFNet.cpp:
26409        (WebCore::setHTTPBody): New callback format - will need to define USE_NEW_CFSTREAM_CALLBACKS 
26410          to switch to the new API
26411        * platform/network/cf/ResourceHandleCFNet.cpp:
26412        (WebCore::didFail):  This automagically works :)
26413
264142007-01-25  Adele Peterson  <adele@apple.com>
26415
26416        Reviewed by Adam. 
26417
26418        Added support for slider.
26419
26420        * rendering/RenderThemeSafari.cpp:
26421        (WebCore::RenderThemeSafari::RenderThemeSafari):
26422        (WebCore::RenderThemeSafari::inflateRect):
26423        (WebCore::RenderThemeSafari::paintSliderTrack):
26424        (WebCore::RenderThemeSafari::paintSliderThumb):
26425        * rendering/RenderThemeSafari.h:
26426
264272007-01-25  Steve Falkenburg  <sfalken@apple.com>
26428
26429        Production build fix
26430
26431        * WebCore.vcproj/WebCore.vcproj:
26432
264332007-01-24  Adele Peterson  <adele@apple.com>
26434
26435        Reviewed by Brady and Oliver.
26436
26437        Moved keyEvent method from FrameWin to EventHandler and updated
26438        call sites.  Now this method is shared with the mac.
26439
26440        * bridge/win/FrameWin.cpp:
26441        * bridge/win/FrameWin.h:
26442
264432007-01-24  Steve Falkenburg  <sfalken@apple.com>
26444
26445        Reviewed by Lou.
26446
26447        * bridge/win/FrameWin.cpp:
26448        (WebCore::regExpForLabels): Ported from FrameMac.mm
26449        (WebCore::FrameWin::searchForLabelsAboveCell): Ported from FrameMac.mm
26450        (WebCore::FrameWin::searchForLabelsBeforeElement): Ported from FrameMac.mm
26451        (WebCore::FrameWin::matchLabelsAgainstElement): Ported from FrameMac.mm
26452        * bridge/win/FrameWin.h:
26453
264542007-01-24  Adam Roben  <aroben@apple.com>
26455
26456        Reviewed by Adele.
26457
26458        Added PlatformScrollBarSafari for Aqua scroll bars.
26459
26460        * WebCore.vcproj/WebCore.vcproj: Added new file to project.
26461        * platform/win/PlatformScrollBarSafari.cpp: Added. Copied from PlatformScrollBarWin.cpp.
26462        (WebCore::PlatformScrollbar::PlatformScrollbar):
26463        (WebCore::PlatformScrollbar::paint):
26464        (WebCore::PlatformScrollbar::backButtonRect):
26465        (WebCore::PlatformScrollbar::forwardButtonRect):
26466        (WebCore::PlatformScrollbar::trackRect):
26467        (WebCore::PlatformScrollbar::thumbLength):
26468        (WebCore::PlatformScrollbar::paintButton):
26469        (WebCore::PlatformScrollbar::paintTrack):
26470        (WebCore::PlatformScrollbar::paintThumb):
26471        (WebCore::PlatformScrollbar::paintGripper):
26472        (WebCore::PlatformScrollbar::gripperRect):
26473        (WebCore::PlatformScrollbar::themeChanged):
26474        * platform/win/PlatformScrollBarWin.cpp: Added #ifndef USE_SAFARI_THEME.
26475        * rendering/RenderThemeSafari.cpp: Updated for SafariTheme.h changes.
26476        (WebCore::RenderThemeSafari::RenderThemeSafari):
26477
264782007-01-23  Brady Eidson  <beidson@apple.com>
26479
26480        Reviewed by Steve
26481
26482        Initial hookup of Download support
26483
26484        * platform/network/cf/ResourceErrorCF.cpp:
26485        (WebCore::ResourceError::ResourceError):
26486        (WebCore::ResourceError::operator CFStreamError):
26487        
26488        * platform/network/cf/ResourceHandleCFNet.cpp:
26489        (WebCore::ResourceHandle::loaderRunLoop): Accessor so downloads can run on the same 
26490          runloop as connections
26491        (WebCore::ResourceHandle::start):
26492        (WebCore::ResourceHandle::connection):
26493
26494        * platform/win/BString.cpp:
26495        (WebCore::BString::BString): Ability to create BString from a CFStringRef
26496        * platform/win/BString.h:
26497
264982007-01-23  Anders Carlsson  <acarlsson@apple.com>
26499
26500        Reviewed by Darin.
26501
26502        <rdar://problem/4919754>
26503        Boomer freezes after attempt to play video.
26504        
26505        * plugins/win/PluginStreamWin.cpp:
26506        Change WebReasonNone to -2, some plugins return -1 to indicate error.
26507        
26508        (WebCore::PluginStreamWin::stop):
26509        Just don't clear the loader, stop loading as well.
26510        
26511        (WebCore::PluginStreamWin::startStream):
26512        Destroy the stream if newstream returns an error.
26513        
26514        * plugins/win/PluginViewWin.cpp:
26515        (WebCore::PluginViewWin::performRequest):
26516        If the call to toString throws an exception, clear it.
26517
265182007-01-23  Steve Falkenburg  <sfalken@apple.com>
26519
26520        Fix release build.
26521
26522        * WebCore.vcproj/WebCore.vcproj:
26523
265242007-01-23  Adele Peterson  <adele@apple.com>
26525
26526        Reviewed by Adam. 
26527
26528        Added call to paintThemeTextArea.
26529
26530        * rendering/RenderThemeSafari.cpp:
26531        (WebCore::RenderThemeSafari::paintTextArea):
26532
265332007-01-23  Anders Carlsson  <acarlsson@apple.com>
26534
26535        Build fixes.
26536        
26537        * WebCore.vcproj/WebCore.vcproj:
26538        Copy plugin and JS headers.
26539        
26540        * loader/win/FrameLoaderWin.cpp:
26541        Move functions to WebKitWin.
26542
265432007-01-23  Oliver Hunt  <oliver@apple.com>
26544
26545        Reviewed by Adam.
26546
26547        * WebCore.vcproj/WebCore.vcproj:
26548        * page/win/DragControllerWin.cpp: Added.
26549        (WebCore::DragController::dragOperation):
26550        (WebCore::DragController::isCopyKeyDown):
26551          Platform specific implementation
26552
26553        * platform/win/ClipboardWin.cpp:
26554        (WebCore::ClipboardWin::ClipboardWin):
26555        (WebCore::ClipboardWin::isForDragging):
26556        * platform/win/ClipboardWin.h:
26557          Migrated common Clipboard functionality from ClipboardMac/Win -> Clipboard
26558
26559        * platform/win/DragDataWin.cpp: Added.
26560        (WebCore::DragData::createClipboard):
26561        (WebCore::urlWFormat):
26562        (WebCore::urlFormat):
26563        (WebCore::filenameWFormat):
26564        (WebCore::filenameFormat):
26565        (WebCore::plainTextFormat):
26566        (WebCore::plainTextWFormat):
26567        (WebCore::DragData::containsURL):
26568        (WebCore::extractURL):
26569        (WebCore::DragData::asURL):
26570        (WebCore::DragData::containsPlainText):
26571        (WebCore::DragData::asPlainText):
26572        (WebCore::texthtmlFormat):
26573        (WebCore::htmlFormat):
26574        (WebCore::containsHTML):
26575        (WebCore::fragmentFromHTML):
26576        (WebCore::containsFilenames):
26577        (WebCore::fragmentFromFilenames):
26578        (WebCore::DragData::containsColor):
26579        (WebCore::DragData::canSmartReplace):
26580        (WebCore::DragData::containsCompatibleContent):
26581        (WebCore::DragData::asFragment):
26582        (WebCore::DragData::asColor):
26583          Implementation of DragData accesor methods, and helper functions
26584
26585        * platform/win/EditorWin.cpp:
26586        (WebCore::Editor::newGeneralClipboard):
26587          Updated for new ClipboardWin constructor
26588
26589        * platform/win/PasteboardWin.cpp:
26590        (WebCore::fragmentFromCF_HTML):
26591        (WebCore::Pasteboard::documentFragment):
26592          Pulled out CF_HTML parsing to a seperate function so logic 
26593          can be shared with DragDataWin
26594
265952007-01-22  Adam Roben  <aroben@apple.com>
26596
26597        Reviewed by Adele.
26598
26599        Implemented search field painting, and did some cleanup.
26600
26601        * rendering/RenderThemeSafari.cpp:
26602        (WebCore::RenderThemeSafari::RenderThemeSafari): Updated for changes to SafariTheme.
26603        (WebCore::RenderThemeSafari::paintButton): Ditto.
26604        (WebCore::RenderThemeSafari::paintTextField): Ditto.
26605        (WebCore::controlSizeFromRect): New helper function.
26606        (WebCore::RenderThemeSafari::paintSearchField): Implemented.
26607        (WebCore::RenderThemeSafari::paintSearchFieldCancelButton): Ditto.
26608        (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): Ditto.
26609        (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): Ditto.
26610        (WebCore::RenderThemeSafari::setSearchFieldSize): Uncommented setSizeFromFont call.
26611        (WebCore::RenderThemeSafari::adjustSearchFieldCancelButtonStyle): Ditto.
26612        (WebCore::RenderThemeSafari::adjustSearchFieldDecorationStyle): Ditto.
26613        (WebCore::RenderThemeSafari::adjustSearchFieldResultsDecorationStyle): Ditto.
26614        (WebCore::RenderThemeSafari::adjustSearchFieldResultsButtonStyle): Ditto.
26615
266162007-01-22  Anders Carlsson  <acarlsson@apple.com>
26617
26618        Reviewed by Adam.
26619        
26620        <rdar://problem/4771115>
26621        Windows Media Player plugin crashes.
26622
26623        * WebCore.vcproj/WebCore.vcproj:
26624        Formatting changes.
26625        
26626        * plugins/win/PluginDatabaseWin.cpp:
26627        (WebCore::PluginDatabaseWin::defaultPluginPaths):
26628        Add Windows Media Player path.
26629        
26630        * plugins/win/PluginStreamWin.cpp:
26631        (WebCore::PluginStreamWin::sendJavaScriptStream):
26632        * plugins/win/PluginStreamWin.h:
26633        New function which sends a JavaScript result stream and handles any errors that the
26634        plug-in returns.
26635        
26636        * plugins/win/PluginViewWin.cpp:
26637        (WebCore::PluginViewWin::setFrameGeometry):
26638        Always call NPP_SetWindow, some plugins (like WMP) relies on it.
26639        
26640        (WebCore::PluginViewWin::performRequest):
26641        If a plug-in requests a javascript: URL that doesn't evaluate to a string, call toString on it.
26642        The Windows Media Player plugin calls javascript:document.location and expects to get the location back.
26643
266442007-01-23  Darin Adler  <darin@apple.com>
26645
26646        - internal part of fix for http://bugs.webkit.org/show_bug.cgi?id=12273
26647          REGRESSION: File input value invisible after removing and re-appending
26648
26649        * WebCore.vcproj/WebCore.vcproj: Added FileChooser.cpp.
26650
26651        * platform/win/FileChooserWin.cpp: Removed many now-unneeded functions.
26652        (WebCore::FileChooser::FileChooser): Updated for changed parameters and members.
26653        (WebCore::FileChooser::openFileChooser): Changed to take document parmaeter and
26654        find the FrameView from that instead of the upload control.
26655        (WebCore::FileChooser::basenameForWidth): Added ignored Font parameter.
26656
266572007-01-22  Anders Carlsson  <acarlsson@apple.com>
26658
26659        Reviewed by Adam.
26660
26661        <rdar://problem/4903230>
26662        Boomer crashes at Flickr website when "View as slideshow" is clicked.
26663        
26664        * plugins/win/PluginViewWin.cpp:
26665        (WebCore::PluginViewWin::bindingInstance):
26666        Return null if m_plugin is null (which it can be if the plugin failed to load).
26667
266682007-01-22  Anders Carlsson  <acarlsson@apple.com>
26669
26670        Build fix.
26671        
26672        * WebCore.vcproj/WebCore.vcproj:
26673
266742007-01-22  Adam Roben  <aroben@apple.com>
26675
26676        Moved ifdefs to match Darin's suggestion.
26677
26678        * rendering/RenderThemeSafari.cpp:
26679        * rendering/RenderThemeSafari.h:
26680
266812007-01-22  Adam Roben  <aroben@apple.com>
26682
26683        Build fix.
26684
26685        * rendering/RenderThemeSafari.cpp:
26686        (WebCore::theme):
26687        * rendering/RenderThemeSafari.h:
26688
266892007-01-21  Adam Roben  <aroben@apple.com>
26690
26691        Reviewed by Maciej.
26692
26693        Implemented drawing button states and control sizes.
26694
26695        * WebCore.vcproj/WebCore.vcproj:
26696        * rendering/RenderThemeSafari.cpp:
26697        (WebCore::RenderThemeSafari::determineState): Added.
26698        (WebCore::RenderThemeSafari::systemFont): Implemented rest of font sizes.
26699        (WebCore::RenderThemeSafari::paintButton): Updated for SafariTheme changes.
26700        (WebCore::RenderThemeSafari::paintTextField): Ditto.
26701        * rendering/RenderThemeSafari.h: Added declaration.
26702
267032007-01-21  Adam Roben  <aroben@apple.com>
26704
26705        Reviewed by Maciej.
26706
26707        * rendering/RenderThemeSafari.cpp: Updated declarations of SafariTheme calls.
26708        (WebCore::systemFontSizeForControlSize): Added.
26709        (WebCore::RenderThemeSafari::systemFont): Made it work in the small-control case.
26710        (WebCore::RenderThemeSafari::adjustRepaintRect): Made it work for buttons and checkboxes.
26711        (WebCore::RenderThemeSafari::setFontFromControlSize): Fixed to work on Windows.
26712        (WebCore::RenderThemeSafari::checkboxMargins): Added controlSize parameter.
26713        (WebCore::RenderThemeSafari::buttonMargins): Ditto.
26714        (WebCore::RenderThemeSafari::paintButton): Fixed FIXME, added save/restore calls.
26715        (WebCore::RenderThemeSafari::paintTextField): Added save/restore calls.
26716        * rendering/RenderThemeSafari.h: Updated declarations.
26717
267182007-01-21  Adele Peterson  <adele@apple.com>
26719
26720        Reviewed by Adam. 
26721
26722        Adding RenderThemeSafari.
26723 
26724        * WebCore.vcproj/WebCore.vcproj:
26725        * rendering/RenderThemeSafari.cpp: Added.
26726        (WebCore::):
26727        (WebCore::theme):
26728        (WebCore::RenderThemeSafari::RenderThemeSafari):
26729        (WebCore::RenderThemeSafari::~RenderThemeSafari):
26730        (WebCore::RenderThemeSafari::platformActiveSelectionBackgroundColor):
26731        (WebCore::RenderThemeSafari::platformInactiveSelectionBackgroundColor):
26732        (WebCore::RenderThemeSafari::activeListBoxSelectionBackgroundColor):
26733        (WebCore::RenderThemeSafari::systemFont):
26734        (WebCore::RenderThemeSafari::isControlStyled):
26735        (WebCore::RenderThemeSafari::adjustRepaintRect):
26736        (WebCore::RenderThemeSafari::inflateRect):
26737        (WebCore::RenderThemeSafari::baselinePosition):
26738        (WebCore::RenderThemeSafari::controlSupportsTints):
26739        (WebCore::RenderThemeSafari::controlSizeForFont):
26740        (WebCore::RenderThemeSafari::sizeForFont):
26741        (WebCore::RenderThemeSafari::sizeForSystemFont):
26742        (WebCore::RenderThemeSafari::setSizeFromFont):
26743        (WebCore::RenderThemeSafari::setFontFromControlSize):
26744        (WebCore::RenderThemeSafari::controlSizeForSystemFont):
26745        (WebCore::RenderThemeSafari::paintCheckbox):
26746        (WebCore::RenderThemeSafari::checkboxSizes):
26747        (WebCore::RenderThemeSafari::checkboxMargins):
26748        (WebCore::RenderThemeSafari::setCheckboxSize):
26749        (WebCore::RenderThemeSafari::paintRadio):
26750        (WebCore::RenderThemeSafari::radioSizes):
26751        (WebCore::RenderThemeSafari::radioMargins):
26752        (WebCore::RenderThemeSafari::setRadioSize):
26753        (WebCore::RenderThemeSafari::setButtonPaddingFromControlSize):
26754        (WebCore::RenderThemeSafari::adjustButtonStyle):
26755        (WebCore::RenderThemeSafari::buttonSizes):
26756        (WebCore::RenderThemeSafari::buttonMargins):
26757        (WebCore::RenderThemeSafari::setButtonSize):
26758        (WebCore::RenderThemeSafari::paintButton):
26759        (WebCore::RenderThemeSafari::paintTextField):
26760        (WebCore::RenderThemeSafari::adjustTextFieldStyle):
26761        (WebCore::RenderThemeSafari::paintTextArea):
26762        (WebCore::RenderThemeSafari::adjustTextAreaStyle):
26763        (WebCore::RenderThemeSafari::popupButtonMargins):
26764        (WebCore::RenderThemeSafari::popupButtonSizes):
26765        (WebCore::RenderThemeSafari::popupButtonPadding):
26766        (WebCore::RenderThemeSafari::setPopupPaddingFromControlSize):
26767        (WebCore::RenderThemeSafari::paintMenuList):
26768        (WebCore::TopGradientInterpolate):
26769        (WebCore::BottomGradientInterpolate):
26770        (WebCore::MainGradientInterpolate):
26771        (WebCore::TrackGradientInterpolate):
26772        (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
26773        (WebCore::RenderThemeSafari::paintMenuListButton):
26774        (WebCore::RenderThemeSafari::adjustMenuListStyle):
26775        (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
26776        (WebCore::RenderThemeSafari::menuListSizes):
26777        (WebCore::RenderThemeSafari::minimumMenuListSize):
26778        (WebCore::RenderThemeSafari::paintSliderTrack):
26779        (WebCore::RenderThemeSafari::paintSliderThumb):
26780        (WebCore::RenderThemeSafari::adjustSliderThumbSize):
26781        (WebCore::RenderThemeSafari::paintSearchField):
26782        (WebCore::RenderThemeSafari::searchFieldSizes):
26783        (WebCore::RenderThemeSafari::setSearchFieldSize):
26784        (WebCore::RenderThemeSafari::adjustSearchFieldStyle):
26785        (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
26786        (WebCore::RenderThemeSafari::cancelButtonSizes):
26787        (WebCore::RenderThemeSafari::adjustSearchFieldCancelButtonStyle):
26788        (WebCore::RenderThemeSafari::resultsButtonSizes):
26789        (WebCore::RenderThemeSafari::adjustSearchFieldDecorationStyle):
26790        (WebCore::RenderThemeSafari::paintSearchFieldDecoration):
26791        (WebCore::RenderThemeSafari::adjustSearchFieldResultsDecorationStyle):
26792        (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
26793        (WebCore::RenderThemeSafari::adjustSearchFieldResultsButtonStyle):
26794        (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
26795        * rendering/RenderThemeSafari.h: Added.
26796        (WebCore::RenderThemeSafari::supportsControlTints):
26797        * rendering/RenderThemeWin.cpp:
26798
267992007-01-21  Adam Roben  <aroben@apple.com>
26800
26801        Build fix.
26802
26803        * WebCore.vcproj/WebCore.vcproj: Added JSDocumentCustom.cpp.
26804
268052007-01-19  Ada Chan  <adachan@apple.com>
26806
26807        Build fix.
26808
26809        * WebCore.vcproj/WebCore.vcproj:
26810
268112007-01-19  Anders Carlsson  <acarlsson@apple.com>
26812
26813        Build fix.
26814
26815        * WebCore.vcproj/WebCore.vcproj:
26816        Add SVG files.
26817
268182007-01-19  Anders Carlsson  <acarlsson@apple.com>
26819
26820        Build fix.
26821        
26822        * platform/win/ContextMenuItemWin.cpp:
26823        (WebCore::ContextMenuItem::enabled):
26824        Use correct class name.
26825
268262007-01-18  Anders Carlsson  <acarlsson@apple.com>
26827
26828        Reviewed by Adam.
26829
26830        Remove some unused FrameWin functions.
26831        
26832        * bridge/win/FrameWin.cpp:
26833        (WebCore::FrameWin::~FrameWin):
26834        * bridge/win/FrameWin.h:
26835        * plugins/win/PluginViewWin.cpp:
26836        (WebCore::PluginViewWin::status):
26837
268382007-01-18  Adam Roben  <aroben@apple.com>
26839
26840        Build fix.
26841
26842        * platform/win/ContextMenuItemWin.cpp:
26843        (WebCore::ContextMenu::enabled): Implemented.
26844
268452007-01-18  Anders Carlsson  <acarlsson@apple.com>
26846
26847        Build fix.
26848        
26849        * WebCore.vcproj/WebCore.vcproj:
26850        * platform/win/GlyphMapWin.cpp: Removed.
26851        * platform/win/GlyphPageTreeNodeWin.cpp: Added.
26852        (WebCore::GlyphPage::fill):
26853
268542007-01-18  Anders Carlsson  <acarlsson@apple.com>
26855
26856        Reviewed by Brady.
26857
26858        Fix ownership handling of CFRequestRef. A ResourceRequest holds on to its CFRequestRef 
26859        and doesn't ref it when returning it. Also, implement willCacheResponse.
26860        
26861        * platform/network/cf/ResourceHandleCFNet.cpp:
26862        (WebCore::willSendRequest):
26863        (WebCore::willCacheResponse):
26864        (WebCore::ResourceHandle::start):
26865        * platform/network/cf/ResourceRequestCFNet.cpp:
26866        (WebCore::ResourceRequest::doUpdatePlatformRequest):
26867
268682007-01-17  Brady Eidson  <beidson@apple.com>
26869
26870        Reviewed by Maciej
26871
26872        Final hookup of HTTP Auth plumbing - have the ResourceHandle actually call into
26873        CFNetwork for HTTP Auth.
26874        
26875        Also, deal with svn:eol-style issues on another batch of files that didn't have it set
26876
26877        * platform/network/cf/ResourceHandleCFNet.cpp:
26878        (WebCore::ResourceHandle::receivedCredential):  Call into CFNetwork
26879        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):  Ditto
26880        (WebCore::ResourceHandle::receivedCancellation):  Copy Mac behavior by calling cancel on the handle
26881
268822007-01-16  Brady Eidson  <beidson@apple.com>
26883
26884        Reviewed by Anders
26885
26886        Futher improvements/bug fixes to BString
26887
26888        * platform/win/BString.cpp:
26889        (WebCore::BString::BString):
26890        (WebCore::BString::operator=):
26891        * platform/win/BString.h:
26892
268932007-01-16  Brady Eidson  <beidson@apple.com>
26894
26895        Reviewed by Ada, Adam, and Anders oh my!
26896
26897        Add handle ==/!= operators to BString
26898
26899        * platform/win/BString.cpp:
26900        (WebCore::operator ==):
26901        (WebCore::operator !=):
26902        * platform/win/BString.h:
26903
269042007-01-16  Beth Dakin  <bdakin@apple.com>
26905
26906        Reviewed by Adam.
26907
26908        Fix for <rdar://problem/4874565> Draw context menus using CG
26909
26910        * platform/win/ContextMenuItemWin.cpp:
26911        (WebCore::ContextMenuItem::type): Re-worked to be more forgiving.
26912        * platform/win/ContextMenuWin.cpp: No need for show() and hide()
26913        since WebKit takes care of this now.
26914
269152007-01-15  Brady Eidson  <beidson@apple.com>
26916
26917        Reviewed by Adam
26918
26919        Hook up AuthenticationChallenge to CF network.  
26920        Call up through appropriate client methods through to WebFrame (FrameLoaderClient) at
26921        which point my upcoming implementation for the IWebURL<auth> classes will be used
26922
26923        * WebCore.vcproj/WebCore.vcproj:
26924        * platform/network/cf/AuthenticationCF.cpp: Added.
26925        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
26926        (WebCore::createCF):
26927        (WebCore::core):
26928        * platform/network/cf/AuthenticationCF.h: Added.
26929        * platform/network/cf/ResourceErrorCF.cpp: Added.
26930        (WebCore::ResourceError::ResourceError):
26931        (WebCore::ResourceError::operator CFStreamError):
26932        * platform/network/cf/ResourceHandleCFNet.cpp:
26933        (WebCore::didReceiveChallenge):
26934        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
26935        (WebCore::ResourceHandle::receivedCredential):
26936        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
26937        (WebCore::ResourceHandle::receivedCancellation):
26938
269392007-01-15  Anders Carlsson  <acarlsson@apple.com>
26940
26941        Build fix.
26942        
26943        * WebCore.vcproj/WebCore.vcproj:
26944        Add ProgressTracker.[cpp|h]
26945
269462007-01-12  Anders Carlsson  <acarlsson@apple.com>
26947
26948        Reviewed by Darin.
26949
26950        * loader/win/FrameLoaderWin.cpp:
26951        (WebCore::FrameLoader::didChangeTitle):
26952        Copied here from FrameLoaderMac.mm
26953        
26954        * platform/network/cf/ResourceHandleCFNet.cpp:
26955        (WebCore::ResourceHandle::start):
26956        Removed setting referrer and user-agend and added a check for null page.
26957        
26958        (WebCore::ResourceHandle::cancel):
26959        Don't call didFail.
26960        
26961        * platform/win/TemporaryLinkStubs.cpp:
26962        (FrameWin::getAppletInstanceForWidget):
26963        Use LOG_NOIMPL here.
26964
269652007-01-11  Anders Carlsson  <acarlsson@apple.com>
26966
26967        * platform/network/cf/ResourceResponseCFNet.cpp:
26968        (WebCore::ResourceResponse::cfURLResponse):
26969        Add getter that I forgot to commit.
26970        
269712007-01-11  Brady Eidson  <beidson@apple.com>
26972
26973        Reviewed by NOBODY.
26974
26975        Make it build after my HTTP Auth OpenSource checkin
26976
26977        * WebCore.vcproj/WebCore.vcproj:
26978
269792007-01-11  Anders Carlsson  <acarlsson@apple.com>
26980
26981        Build fix.
26982
26983        * WebCore.vcproj/WebCore.vcproj:
26984        * platform/win/TemporaryLinkStubs.cpp:
26985        (WebCore::Editor::advanceToNextMisspelling):
26986
269872007-01-10  Steve Falkenburg  <sfalken@apple.com>
26988
26989        Reviewed by Lou.
26990
26991        <rdar://problem/4818840> Crash occurs after selecting Print Preview from under the File menu if no printer is selected
26992        
26993        * bridge/win/FrameWin.cpp:
26994        (WebCore::FrameWin::computePageRects): removed calls to setupRootForPrinting
26995        * bridge/win/FrameWin.h: removed setupRootForPrinting
26996
269972007-01-10  Anders Carlsson  <acarlsson@apple.com>
26998
26999        Yet another build fix.
27000        
27001        * platform/win/TemporaryLinkStubs.cpp:
27002        (DocumentLoader::getResponseModifiedHeader):
27003
270042007-01-10  Anders Carlsson  <acarlsson@apple.com>
27005
27006        Another build fix.
27007        
27008        * bridge/win/FrameWin.h:
27009        * loader/win/FrameLoaderWin.cpp:
27010
270112007-01-10  Anders Carlsson  <acarlsson@apple.com>
27012
27013        Build fix.
27014        
27015        * platform/win/TemporaryLinkStubs.cpp:
27016        (ResourceHandle::setDefersLoading):
27017
270182007-01-09  Steve Falkenburg  <sfalken@apple.com>
27019
27020        Production build fix
27021
27022        * WebCore.vcproj/WebCore.vcproj:
27023
270242007-01-09  Anders Carlsson  <acarlsson@apple.com>
27025
27026        Build fix.
27027        
27028        * platform/win/TextBoundariesWin.cpp:
27029
270302007-01-08  Anders Carlsson  <acarlsson@apple.com>
27031
27032        Remove FrameLoader functions that have been implemented.
27033        
27034        * platform/win/TemporaryLinkStubs.cpp:
27035
270362007-01-08  Anders Carlsson  <acarlsson@apple.com>
27037
27038        Build fix.
27039        
27040        * WebCore.vcproj/WebCore.vcproj:
27041
270422007-01-05  Anders Carlsson  <acarlsson@apple.com>
27043
27044        Reviewed by Adam.
27045
27046        Update temporary link stubs.
27047        
27048        * platform/win/TemporaryLinkStubs.cpp:
27049        (FrameLoader::referrer):
27050        (FrameLoader::overrideMediaType):
27051        (FrameLoader::checkLoadCompleteForThisFrame):
27052        (DocumentLoader::getResponseRefreshAndModifiedHeaders):
27053        (MainResourceLoader::create):
27054        (ResourceLoader::cancel):
27055        (ResourceLoader::load):
27056        (ResourceLoader::releaseResources):
27057        (ResourceLoader::addData):
27058
270592007-01-05  Anders Carlsson  <acarlsson@apple.com>
27060
27061        Fix build.
27062        
27063        * platform/win/TemporaryLinkStubs.cpp:
27064        (ResourceLoader::cancel):
27065        (FrameLoader::didChangeTitle):
27066        (DocumentLoader::unreachableURL):
27067
270682007-01-05  Anders Carlsson  <acarlsson@apple.com>
27069
27070        Fix the build.
27071        
27072        * WebCore.vcproj/WebCore.vcproj:
27073        * platform/network/cf/ResourceHandleCFNet.cpp:
27074        (WebCore::ResourceHandle::bufferedData):
27075        (WebCore::ResourceHandle::supportsBufferedData):
27076        * platform/win/TemporaryLinkStubs.cpp:
27077        (WebCore::CheckCacheObjectStatus):
27078
270792007-01-04  David Hyatt  <hyatt@apple.com>
27080
27081        Always use 1.0 as the synthetic bold offset for now.  Fixes bug 9534.
27082
27083        Reviewed by olliej
27084
27085        * platform/win/FontDataWin.cpp:
27086        (WebCore::FontData::platformInit):
27087
270882007-01-03  Darin Adler  <darin@apple.com>
27089
27090        Reviewed by Adele.
27091
27092        - removed some obsolete source files
27093
27094        * WebCore.vcproj/WebCore.vcproj: Removed obsolete files.
27095
270962007-01-03  Beth Dakin  <bdakin@apple.com>
27097
27098        Reviewed by John.
27099
27100        Add stubs for all of the localized context menu item titles. The 
27101        stubs just return English Strings until we have a localization 
27102        solution in WebKit.
27103
27104        * platform/win/TemporaryLinkStubs.cpp:
27105        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
27106        (WebCore::contextMenuItemTagDownloadLinkToDisk):
27107        (WebCore::contextMenuItemTagCopyLinkToClipboard):
27108        (WebCore::contextMenuItemTagOpenImageInNewWindow):
27109        (WebCore::contextMenuItemTagDownloadImageToDisk):
27110        (WebCore::contextMenuItemTagCopyImageToClipboard):
27111        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
27112        (WebCore::contextMenuItemTagCopy):
27113        (WebCore::contextMenuItemTagGoBack):
27114        (WebCore::contextMenuItemTagGoForward):
27115        (WebCore::contextMenuItemTagStop):
27116        (WebCore::contextMenuItemTagReload):
27117        (WebCore::contextMenuItemTagCut):
27118        (WebCore::contextMenuItemTagPaste):
27119        (WebCore::contextMenuItemTagNoGuessesFound):
27120        (WebCore::contextMenuItemTagIgnoreSpelling):
27121        (WebCore::contextMenuItemTagLearnSpelling):
27122        (WebCore::contextMenuItemTagSearchWeb):
27123        (WebCore::contextMenuItemTagLookUpInDictionary):
27124        (WebCore::contextMenuItemTagOpenLink):
27125        (WebCore::contextMenuItemTagIgnoreGrammar):
27126        (WebCore::contextMenuItemTagSpellingMenu):
27127        (WebCore::contextMenuItemTagShowSpellingPanel):
27128        (WebCore::contextMenuItemTagCheckSpelling):
27129        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
27130        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
27131        (WebCore::contextMenuItemTagFontMenu):
27132        (WebCore::contextMenuItemTagBold):
27133        (WebCore::contextMenuItemTagItalic):
27134        (WebCore::contextMenuItemTagUnderline):
27135        (WebCore::contextMenuItemTagOutline):
27136        (WebCore::contextMenuItemTagWritingDirectionMenu):
27137        (WebCore::contextMenuItemTagDefaultDirection):
27138        (WebCore::contextMenuItemTagLeftToRight):
27139        (WebCore::contextMenuItemTagRightToLeft):
27140
271412007-01-03  Anders Carlsson  <acarlsson@apple.com>
27142
27143        Reviewed by Geoff.
27144
27145        <rdar://problem/4857027>
27146        ragnarok online misrenders (due to lack of support for windowless plugins)
27147
27148        * plugins/win/PluginViewWin.cpp:
27149        (WebCore::PluginViewWin::updateWindow):
27150        Rename from updateHwnd since this now handles updating the clip rect for windowless plugins.
27151        
27152        (WebCore::PluginViewWin::paintMissingPluginIcon):
27153        New function which paints the missing plugin icon.
27154        
27155        (WebCore::PluginViewWin::paint):
27156        Do windowless painting here.
27157        
27158        (WebCore::PluginViewWin::handleKeyboardEvent):
27159        (WebCore::PluginViewWin::handleMouseEvent):
27160        (WebCore::PluginViewWin::handleEvent):
27161        New functions for handling mouse and keyboard events, translating them and handing them to the plugin.
27162        
27163        (WebCore::PluginViewWin::setNPWindowRect):
27164        Set correct window rect for windowless plugins.
27165        
27166        (WebCore::PluginViewWin::getValue):
27167        Add variable for containing HWND.
27168        
27169        (WebCore::PluginViewWin::setValue):
27170        Add windowless and transparent variables.
27171        
27172        (WebCore::PluginViewWin::invalidateRect):
27173        (WebCore::PluginViewWin::invalidateRegion):
27174        (WebCore::PluginViewWin::forceRedraw):
27175        Implement these.
27176        
27177        (WebCore::PluginViewWin::determineQuirks):
27178        Set quirks now that we support windowless flash.
27179        
27180        (WebCore::PluginViewWin::PluginViewWin):
27181        Only create the window if the plugin isn't windowless.
27182        
27183        * plugins/win/PluginViewWin.h:
27184        New declarations.
27185        
27186        * plugins/win/npapi.cpp:
27187        (NPN_InvalidateRect):
27188        (NPN_InvalidateRegion):
27189        (NPN_ForceRedraw):
27190        Implement these and forward them to the plugin view.
27191
271922007-01-02  Brady Eidson  <beidson@apple.com>
27193
27194        Reviewed by Lou
27195
27196        Temporary Link Stub fix for Back/Forward cache landing in OpenSource
27197
27198        * WebCore.vcproj/WebCore.vcproj:
27199        * platform/win/TemporaryLinkStubs.cpp:
27200        (DocumentLoader::request):
27201        (DocumentLoader::originalRequest):
27202        (DocumentLoader::title):
27203        (DocumentLoader::unreachableURL):
27204        (DocumentLoader::urlForHistory):
27205        (DocumentLoader::setCommitted):
27206        (DocumentLoader::prepareForLoadStart):
27207        (DocumentLoader::replaceRequestURLForAnchorScroll):
27208        (DocumentLoader::isClientRedirect):
27209        (DocumentLoader::isLoading):
27210        (DocumentLoader::getResponseRefreshAndModifiedHeaders):
27211        (FrameLoader::applyUserAgent):
27212        (FrameLoader::dataURLBaseFromRequest):
27213        (FrameLoader::load):
27214        (FrameLoader::opened):
27215        (ResourceHandle::willLoadFromCache):
27216        (WebCore::userIdleTime):
27217        (PageCache::close):
27218
272192007-01-02  Anders Carlsson  <acarlsson@apple.com>
27220
27221        Build fix.
27222        
27223        * WebCore.vcproj/WebCore.vcproj:
27224
272252006-12-29  Geoffrey Garen  <ggaren@apple.com>
27226        
27227        Build fix.
27228
27229        * bridge/win/FrameWin.cpp:
27230        (WebCore::FrameWin::bindingRootObject):
27231        * plugins/win/PluginViewWin.cpp:
27232        (WebCore::PluginViewWin::bindingInstance):
27233
272342006-12-27  Oliver Hunt <oliver@apple.com>
27235
27236        Build fix
27237
27238        * WebCore.vcproj/WebCore.vcproj:
27239        * platform/graphics/win/ImageWin.cpp:
27240        (WebCore::BitmapImage::initPlatformData):
27241        (WebCore::BitmapImage::invalidatePlatformData):
27242        (WebCore::Image::loadPlatformResource):
27243        (WebCore::BitmapImage::getHBITMAP):
27244
272452006-12-25  Geoffrey Garen  <ggaren@apple.com>
27246
27247        Fixed build. Tsk, tsk, Oliver.
27248
27249        * WebCore.vcproj/WebCore.vcproj:
27250
272512006-12-25  Geoffrey Garen  <ggaren@apple.com>
27252
27253        Reviewed by Oliver Hunt.
27254
27255        Removed WebCoreSettings, cleaned up WebCore::Settings.
27256
27257        * WebCore.vcproj/WebCore.vcproj: Added Settings.cpp to the project.
27258
27259        * bridge/win/FrameWin.cpp: Updated to use new preferences names.
27260        (WebCore::FrameWin::bindingRootObject):
27261        (WebCore::FrameWin::windowScriptNPObject):
27262
27263        * loader/win/FrameLoaderWin.cpp: ditto.
27264        (WebCore::FrameLoader::partClearedInBegin):
27265
27266        * plugins/win/PluginViewWin.cpp: ditto.
27267        (WebCore::PluginViewWin::load):
27268
272692006-12-22  Ada Chan  <adachan@apple.com>
27270
27271        Reviewed by Anders.
27272
27273        Build fix.
27274
27275        * WebCore.vcproj/WebCore.vcproj:
27276
272772006-12-22  Anders Carlsson  <acarlsson@apple.com>
27278
27279        Build fix.
27280        
27281        * WebCore.vcproj/WebCore.vcproj:
27282
272832006-12-22  John Sullivan  <sullivan@apple.com>
27284
27285        Reviewed by Kevin Decker
27286
27287        Renamed stub method name to match change in WebCore
27288
27289        * platform/win/TemporaryLinkStubs.cpp:
27290        (WebCore::Editor::markMisspellingsAfterTypingToPosition):
27291        renamed from markMisspellingsInAdjacentWords
27292
272932006-12-20  Adam Roben  <aroben@apple.com>
27294
27295        Reviewed by Hyatt.
27296
27297        Fix: <rdar://4769797> REGRESSION: No focus rings
27298
27299        * platform/win/GraphicsContextWin.cpp:
27300        (WebCore::GraphicsContext::drawFocusRing):
27301        * platform/win/TemporaryLinkStubs.cpp:
27302        (WebCore::focusRingColor): Changed to match the Aqua focus ring color.
27303
273042006-12-20  David Hyatt  <hyatt@apple.com>
27305
27306        Remove line width setting in font rendering now that GraphicsContext sets
27307        it for us.
27308
27309        * platform/win/FontWin.cpp:
27310        (WebCore::Font::drawGlyphs):
27311
273122006-12-20  David Hyatt  <hyatt@apple.com>
27313
27314        Add support for stroking and filling of text to CSS.  Boomer side.  Same code as in FontMac.
27315
27316        * platform/win/FontWin.cpp:
27317        (WebCore::Font::drawGlyphs):
27318
273192006-12-19  Steve Falkenburg  <sfalken@apple.com>
27320
27321        Remove non-existent header from vcproj
27322
27323        * WebCore.vcproj/WebCore.vcproj:
27324
273252006-12-19  Brady Eidson  <beidson@apple.com>
27326
27327        Reviewed by Ada
27328
27329        -Changed CFNetwork debugging output to use a logging channel
27330        -Added the url to each logging message - the debugging output was quite crippled without this
27331        
27332        * platform/network/cf/ResourceHandleCFNet.cpp:
27333        (WebCore::willSendRequest):
27334        (WebCore::didReceiveResponse):
27335        (WebCore::didReceiveData):
27336        (WebCore::didFinishLoading):
27337        (WebCore::didFail):
27338        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
27339        (WebCore::ResourceHandle::~ResourceHandle):
27340        (WebCore::ResourceHandle::start):
27341
273422006-12-19  Anders Carlsson  <acarlsson@apple.com>
27343
27344        Reviewed by Geoff.
27345
27346        <rdar://problem/4876963>
27347        Crash launching Boomer after all options deselected in pref->security
27348        
27349        * loader/win/FrameLoaderWin.cpp:
27350        (WebCore::FrameLoader::partClearedInBegin):
27351        Add check for JavaScript.
27352
273532006-12-19  Anders Carlsson  <acarlsson@apple.com>
27354
27355        Reviewed by Kevin Decker.
27356
27357        Add (currently disabled) plugin quirks. This is necessary in order to get the Flash plugin
27358        to request windowless plugins (which it only will do if it think it's running on a Mozilla browser).
27359        
27360        * plugins/win/PluginViewWin.cpp:
27361        (WebCore::PluginViewWin::userAgent):
27362        (WebCore::PluginViewWin::determineQuirks):
27363        (WebCore::PluginViewWin::PluginViewWin):
27364        * plugins/win/PluginViewWin.h:
27365        (WebCore::):
27366        * plugins/win/npapi.cpp:
27367        (NPN_UserAgent):
27368
273692006-12-19  Brady Eidson  <beidson@apple.com>
27370
27371        Change by Lou, reviewed by Brady
27372
27373        Scrolling caused Desktop flickering as well as other strange
27374        flickering in the case of a missing plug-in
27375
27376        * plugins/win/PluginViewWin.cpp:
27377        (WebCore::PluginViewWin::updateHwnd):
27378
273792006-12-19  Anders Carlsson  <acarlsson@apple.com>
27380
27381        * WebCore.vcproj/WebCore.vcproj:
27382        Update for SVG changes.
27383
273842006-12-18  Ada Chan  <adachan@apple.com>
27385
27386        Reviewed by Adam.
27387
27388        Removed scheduleClose() from FrameWin.  The implementation has
27389        been moved to Frame.cpp.                
27390
27391        * bridge/win/FrameWin.h:
27392        * platform/win/TemporaryLinkStubs.cpp:
27393        (FrameWin::mimeTypeForFileName):
27394
273952006-12-18  Anders Carlsson  <acarlsson@apple.com>
27396
27397        Reviewed by Adam and Oliver.
27398
27399        <rdar://problem/4856014> Target weekly ad doesn't work.
27400        
27401        Store the real base URL and use it for requests.
27402        
27403        * plugins/win/PluginViewWin.cpp:
27404        (WebCore::PluginViewWin::getURLNotify):
27405        (WebCore::PluginViewWin::getURL):
27406        (WebCore::PluginViewWin::handlePost):
27407        (WebCore::PluginViewWin::PluginViewWin):
27408        * plugins/win/PluginViewWin.h:
27409
274102006-12-19  Darin Adler  <darin@apple.com>
27411
27412        * platform/win/FontWin.cpp: (WebCore::Font::drawGlyphs): Fix build,
27413        wrong variable name.
27414
274152006-12-18  David Hyatt  <hyatt@apple.com>
27416
27417        Boomer side of my changes for filling/stroking of text.
27418
27419        Reviewed by olliej
27420
27421        * platform/win/FontWin.cpp:
27422        (WebCore::Font::drawGlyphs):
27423
274242006-12-18  Alice Liu  <alice.liu@apple.com>
27425
27426        Reviewed by Adam.
27427
27428        <rdar://problem/4853363> hook up various deletion-related functions in WebView
27429
27430        * WebCore.vcproj/WebCore.vcproj:
27431        Added file EditorDeleteAction.h
27432
274332006-12-18  Kevin McCullough  <KMcCullough@apple.com>
27434
27435        Reviewed by Oliver.
27436
27437        - Remove CG header includes in OpenSource files
27438
27439        * config.h:
27440        * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
27441
274422006-12-18  Adam Roben  <aroben@apple.com>
27443
27444        Build fixes.
27445
27446        * WebCore.vcproj/WebCore.vcproj: Removed deleted files.
27447        * platform/win/CursorWin.cpp: Added missing method.
27448        (WebCore::noneCursor):
27449
274502006-12-16  Beth Dakin  <bdakin@apple.com>
27451
27452        Reviewed by Adam (and partially Geoff).
27453
27454        Boomer side of making WebCore Context Menus support state and
27455        enabled/disabled, and re-architecture of ContextMenuItem.
27456
27457        * platform/win/ContextMenuItemWin.cpp: ContextMenuItem class holds
27458        the platformDescription as the sole member variable. Changes to
27459        account for this.
27460        (WebCore::ContextMenuItem::ContextMenuItem): Same.
27461        (WebCore::ContextMenuItem::releasePlatformDescription): Same.
27462        (WebCore::ContextMenuItem::type): Same
27463        (WebCore::ContextMenuItem::platformSubMenu): Same.
27464        (WebCore::ContextMenuItem::setType): Same.
27465        (WebCore::ContextMenuItem::setTitle): Same.
27466        (WebCore::ContextMenuItem::setSubMenu): Same.
27467        (WebCore::ContextMenuItem::setChecked): Same.
27468        (WebCore::ContextMenuItem::setEnabled): Same.
27469        * platform/win/ContextMenuWin.cpp:
27470        (WebCore::ContextMenu::insertItem): Takes ownership of the item by
27471        calling releasePlatformDescription()
27472        (WebCore::ContextMenu::appendItem): Same.
27473        (WebCore::ContextMenu::itemWithAction): This is the new at(). Since
27474        we are no longer using notifybypos, we instead need a way to find a
27475        menu item by its action. (Its ID.)
27476        (WebCore::ContextMenu::setPlatformDescription): No longer use
27477        notifybypos.
27478
274792006-12-16  Adele Peterson  <adele@apple.com>
27480
27481        RS by Adam.
27482
27483        Removed TextField, RenderLineEdit classes.
27484
27485        * WebCore.vcproj/WebCore.vcproj:
27486        * platform/win/TemporaryLinkStubs.cpp:
27487
274882006-12-16  Adele Peterson  <adele@apple.com>
27489
27490        Reviewed by Adam.
27491
27492        Added PopupMenu and theme code for:
27493        <rdar://problem/4463829> Switch to use new search field implementation for <input type="search"> 
27494
27495        * WebCore.vcproj/WebCore.vcproj:
27496        * platform/graphics/win/IconWin.cpp:
27497        (WebCore::Icon::Icon):
27498        * platform/win/PopupMenuWin.cpp:
27499        (WebCore::PopupMenu::setFocusedIndex):
27500        (WebCore::PopupWndProc):
27501        * platform/win/SearchPopupMenuWin.cpp: Added.
27502        (WebCore::SearchPopupMenu::SearchPopupMenu):
27503        (WebCore::autosaveKey):
27504        (WebCore::SearchPopupMenu::saveRecentSearches):
27505        (WebCore::SearchPopupMenu::loadRecentSearches):
27506        * rendering/RenderThemeWin.cpp:
27507        (WebCore::RenderThemeWin::paintSearchField):
27508        (WebCore::RenderThemeWin::adjustSearchFieldStyle):
27509        (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
27510        (WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
27511        (WebCore::RenderThemeWin::adjustSearchFieldDecorationStyle):
27512        (WebCore::RenderThemeWin::paintSearchFieldDecoration):
27513        (WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationStyle):
27514        (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
27515        (WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):
27516        (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
27517        * rendering/RenderThemeWin.h:
27518
275192006-12-15  Anders Carlson  <acarlsson@apple.com>
27520
27521        * platform/win/TemporaryLinkStubs.cpp:
27522        Remove DocumentLoader::isStopped because it's now in DocumentLoader.cpp.
27523        
275242006-12-15  Geoffrey Garen  <ggaren@apple.com>
27525
27526        I'm in ur prjct, fxng ur build.
27527        
27528        * WebCore.vcproj/WebCore.vcproj:
27529        * platform/win/TemporaryLinkStubs.cpp:
27530        (ResourceHandle::loadResourceSynchronously):
27531
275322006-12-14  Geoffrey Garen  <ggaren@apple.com>
27533
27534        Reviewed by Brady Eidson.
27535        
27536        Fixed <rdar://problem/4760682> Crash clicking nav links at left loading 
27537        www.tivofaq.com
27538        
27539        The underlying problem is that we can't resize framesets. I've filed that
27540        as <rdar://problem/4885227>.
27541        
27542        I've fixed the proximate problem: we were interpreting a click as a frameset
27543        resize, because the subframe event handler was returning false. A Subframe 
27544        event handler needs to return true to indicate that the subframe has handled 
27545        the event. This is how the Mac works, despite the plethora of convoluted code 
27546        suggesting otherwise.
27547        
27548        We should really remove these meaningless return values and unify Mac and 
27549        Windows event handling, but that's beyond the scope of this patch.
27550
27551        * page/win/EventHandlerWin.cpp:
27552        (WebCore::EventHandler::passMousePressEventToSubframe):
27553        (WebCore::EventHandler::passMouseMoveEventToSubframe):
27554        (WebCore::EventHandler::passMouseReleaseEventToSubframe):
27555        (WebCore::EventHandler::passWheelEventToSubframe):
27556
275572006-12-14  Adele Peterson  <adele@apple.com>
27558
27559        Reviewed by Adam. 
27560
27561        Update PopupMenu code to use new PopupMenuClient instead of RenderMenuList.
27562
27563        * platform/win/PopupMenuWin.cpp:
27564        (WebCore::PopupMenu::PopupMenu):
27565        (WebCore::PopupMenu::show):
27566        (WebCore::PopupMenu::calculatePositionAndSize):
27567        (WebCore::PopupMenu::setFocusedIndex):
27568        (WebCore::PopupMenu::focusedIndex):
27569        (WebCore::PopupMenu::focusFirst):
27570        (WebCore::PopupMenu::focusLast):
27571        (WebCore::PopupMenu::down):
27572        (WebCore::PopupMenu::up):
27573        (WebCore::PopupMenu::paint):
27574        (WebCore::PopupWndProc):
27575
275762006-12-14  Steve Falkenburg  <sfalken@apple.com>
27577
27578        Build fix.
27579
27580        * platform/win/TemporaryLinkStubs.cpp:
27581        (SubresourceLoader::didCancel):
27582
275832006-12-14  Steve Falkenburg  <sfalken@apple.com>
27584
27585        Production build fix. Added JSSVGPODTypeWrapper.h to the vcproj.
27586
27587        * WebCore.vcproj/WebCore.vcproj:
27588
275892006-12-14  Adam Roben  <aroben@apple.com>
27590
27591        Reviewed by Adele.
27592
27593        Build fix.
27594
27595        * platform/win/TemporaryLinkStubs.cpp:
27596        (DocumentLoader::URL):
27597        (ResourceHandle::loadResourceSynchronously):
27598
275992006-12-14  Anders Carlsson  <acarlsson@apple.com>
27600
27601        Fix the build.
27602        
27603        * platform/win/TemporaryLinkStubs.cpp:
27604        (FrameLoader::loadResourceSynchronously):
27605        (ResourceHandle::loadResourceSynchronously):
27606
276072006-12-13  Anders Carlsson  <acarlsson@apple.com>
27608
27609        Fix the build.
27610        
27611        * platform/win/TemporaryLinkStubs.cpp:
27612        (PolicyCheck::call):
27613        (DocumentLoader::URL):
27614
276152006-12-13  Geoffrey Garen  <ggaren@apple.com>
27616
27617        Reviewed by Darin Adler, Dave Hyatt.
27618        
27619        Fixed <rdar://problem/4840261> Frame::setIsActive not called when frames 
27620        are focused/unfocused
27621        
27622        Minor problems remain with focus in frames, but basic editing / cursor
27623        focus works.
27624        
27625        I moved tracking of the focused frame from the Widget hiearchy to Page's
27626        FocusController. Not all widgets are frames, so this change cleaned up a 
27627        dubious static cast. Also, the DOM needs to track frame focus because (1) 
27628        it needs to respond to focus changes and (2) you can focus an element / 
27629        frame even before it has a renderer / widget.
27630
27631        * page/win/EventHandlerWin.cpp:
27632        (WebCore::EventHandler::focusDocumentView): Implemented. This function is
27633        poorly named, based on the Mac design.
27634        (WebCore::PluginViewWin::hasFocus): Added for completeness. It's not really
27635        used on Windows, though.
27636
276372006-12-13  Steve Falkenburg  <sfalken@apple.com>
27638
27639        Reviewed by Adam.
27640
27641        Add missing ForwardingHeaders to project
27642
27643        * WebCore.vcproj/WebCore.make: Fixed line endings
27644        * WebCore.vcproj/WebCore.vcproj: Added missing headers
27645
276462006-12-12  Steve Falkenburg  <sfalken@apple.com>
27647
27648        Reviewed by Adam.
27649
27650        Production build fix
27651
27652        * WebCore.vcproj/build-generated-files.sh:
27653
276542006-12-12  Alice Liu  <alice.liu@apple.com>
27655
27656        Reviewed by Geoff.
27657
27658        Fixed <rdar://problem/4853199> extra whitespace at beginning and end of pasted fragment into contenteditable region
27659        
27660        * WebCore.vcproj/WebCore.vcproj:
27661        * platform/win/PasteboardWin.cpp:
27662        (WebCore::Pasteboard::documentFragment):
27663
276642006-12-12  Adam Roben  <aroben@apple.com>
27665
27666        Reviewed by Anders.
27667
27668        Fixed use of min/max macros (again).
27669
27670        * WebCore.vcproj/WebCore.vcproj: Make sure we include ForwardingHeaders
27671        before any include directories so that we get the newest versions
27672        of our headers.
27673        * config.h: Move the fake #defines of min/max out of #if
27674        PLATFORM(WIN_OS) since this is useful in general.
27675        * platform/win/BString.cpp: Include windows.h
27676        * platform/win/BString.h: Forward-declare BSTR so we don't have to
27677        include windows.h.
27678
276792006-12-12  Geoffrey Garen  <ggaren@apple.com>
27680
27681        Reviewed by Adam Roben, Dave Hyatt, Darin Adler.
27682
27683        Added FocusController to project.
27684
27685        * WebCore.vcproj/WebCore.vcproj:
27686
276872006-12-12  Anders Carlsson  <acarlsson@apple.com>
27688
27689        * loader/win/ResourceLoaderWin.cpp:
27690        * platform/network/cf/ResourceHandleCFNet.cpp:
27691        (WebCore::ResourceHandle::start):
27692        * platform/win/TemporaryLinkStubs.cpp:
27693        (ResourceHandle::loadsBlocked):
27694        Update for changes to ResourceHandle.
27695
276962006-12-13  Darin Adler  <darin@apple.com>
27697
27698        - fix build
27699
27700        * WebCore.vcproj/WebCore.vcproj: Added missing files, removed obsolete files.
27701
277022006-12-11  Adam Roben  <aroben@apple.com>
27703
27704        Build fix.
27705
27706        * WebCore.vcproj/WebCore.vcproj: Added missing files to project.
27707
277082006-12-11  Steve Falkenburg  <sfalken@apple.com>
27709
27710        Production build fix.
27711        Remove platform/UChar.h from our vcproj, since it doesn't exist anymore.
27712
27713        * WebCore.vcproj/WebCore.vcproj:
27714
277152006-12-11  Alice Liu  <alice.liu@apple.com>
27716
27717        Reviewed by ggaren.
27718
27719        Fixed <rdar://problem/4854901> "Copy Link" and "Copy Image Address" context menu items don't work
27720        And some cleanup of PlatformMouseEvent(Win)
27721
27722        * page/win/EventHandlerWin.cpp:
27723        (WebCore::EventHandler::handleDrag):
27724        Removed unnecessary check for mouse event type
27725        
27726        * platform/win/PasteboardWin.cpp:
27727        
27728        (WebCore::PasteboardOwnerWndProc):
27729        (WebCore::createGlobalData):
27730        Added more overloaded implemtations and renamed from createHandle
27731        
27732        (WebCore::markupToCF_HTML):
27733        Changed to handle less-specific input and renamed from createCF_HTML
27734        
27735        (WebCore::urlToMarkup):
27736        (WebCore::Pasteboard::writeURL):
27737        Added these. 
27738        
27739        (WebCore::replaceNBSP):
27740        Moved out of Pasteboard class
27741        
27742        (WebCore::Pasteboard::clear):
27743        Renamed from clearTypes.
27744        
27745        (WebCore::Pasteboard::writeSelection):
27746        (WebCore::Pasteboard::canSmartReplace):
27747        (WebCore::Pasteboard::plainText):
27748        (WebCore::Pasteboard::documentFragment):
27749        Trivial cleanup of these.
27750        
27751        * platform/win/PlatformMouseEventWin.cpp:
27752        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
27753        Removed anything having to do with unnecessary m_type
27754
277552006-12-11  Darin Adler  <darin@apple.com>
27756
27757        Reviewed by Brady.
27758
27759        - http://bugs.webkit.org/show_bug.cgi?id=11794
27760          fix lifetime problems affecting Frame's ownerElement pointer
27761
27762        * WebCore.vcproj/WebCore.vcproj: Update for added files.
27763
27764        * bridge/win/FrameWin.h:
27765        * bridge/win/FrameWin.cpp: (WebCore::FrameWin::FrameWin):
27766        * loader/win/FrameLoaderWin.cpp: (WebCore::FrameLoader::createFrame):
27767        Changed to use HTMLFrameOwnerElement.
27768
27769        * platform/win/TemporaryLinkStubs.cpp: (FrameLoader::load):
27770        Changed to use HTMLFormElement.
27771
277722006-12-11  Beth Dakin  <bdakin@apple.com>
27773
27774        Reviewed by Adam.
27775
27776        Build fix from Nick Zimmerman's last check-in.
27777
27778        * WebCore.vcproj/WebCore.vcproj:
27779
277802006-12-09  Adam Roben  <aroben@apple.com>
27781
27782        Reviewed by Hyatt.
27783
27784        Use num-cpus to determine the number of jobs make should run
27785        concurrently.
27786
27787        * WebCore.vcproj/build-generated-files.sh:
27788
277892006-12-09  Adam Roben  <aroben@apple.com>
27790
27791        Reviewed by Hyatt.
27792
27793        Fix: <rdar://problem/4860184> Can't select context menu items with the
27794        right mouse button
27795
27796        * platform/win/ContextMenuWin.cpp:
27797        (WebCore::ContextMenu::show):
27798
277992006-12-09  Adam Roben  <aroben@apple.com>
27800
27801        Reviewed by Darin.
27802
27803        Build fixes after OpenSource r18098 and r18106.
27804
27805        * WebCore.vcproj/WebCore.vcproj:
27806            - Changed include paths to reflect the now-flattened JSCore headers.
27807            - Added missing files to project.
27808            - Changed post-build step to also copy ForwardingHeaders.
27809            - Removed unnecessary definition of WTF_PLATFORM_CF from project
27810              file (it's already defined in config.h).
27811        * platform/win/TextBoundariesWin.cpp: Fixed up includes and renamed
27812        function calls.
27813        (WebCore::findNextWordFromIndex):
27814        (WebCore::findWordBoundary):
27815
278162006-12-08  Adam Roben  <aroben@apple.com>
27817
27818        Rubberstamped by Anders.
27819
27820        * platform/win/FontPlatformDataWin.cpp:
27821        (WebCore::FontPlatformData::FontPlatformData): Fix use of min().
27822
278232006-12-08  Adam Roben  <aroben@apple.com>
27824
27825        Build fix.
27826
27827        * WebCore.vcproj/WebCore.vcproj:
27828
278292006-12-07  Beth Dakin  <bdakin@apple.com>
27830
27831        Reviewed by Maciej.
27832
27833        Add a new member variable to ContectMenuItem to hold on to the sub-
27834        menu. The new member variable is an OwnPtr<ContextMenu>. Not doing 
27835        this breaks sub-menus on Boomer since the menu items are no longer 
27836        static.
27837
27838        * platform/win/ContextMenuItemWin.cpp:
27839        (WebCore::ContextMenuItem::ContextMenuItem):
27840        (WebCore::ContextMenuItem::platformSubMenu):
27841        (WebCore::ContextMenuItem::setSubMenu):
27842
278432006-12-07  Kevin McCullough  <kmccullough@apple.com>
27844
27845        Reviewed by.
27846
27847        Fixed previous comment
27848
27849        * ChangeLog:
27850
278512006-12-07  Kevin McCullough  <kmccullough@apple.com>
27852
27853        Reviewed by Geof.
27854
27855        - keyDown events must be followed by keyPressed events and before keyUp events.
27856
27857        * bridge/win/FrameWin.cpp:
27858        (WebCore::FrameWin::keyEvent):
27859
278602006-12-07  Beth Dakin  <bdakin@apple.com>
27861
27862        Reviewed by Brady.
27863
27864        New link stub for load() function used by 
27865        ContextMenuItemTagOpenLink action.
27866
27867        * platform/win/TemporaryLinkStubs.cpp:
27868        (FrameLoader::load):
27869
278702006-12-07  Ada Chan  <adachan@apple.com>
27871
27872        Reviewed by Steve and Anders.
27873
27874        <rdar://4866288> Crash on boomer quit
27875        - don't close the themes on termination, since uxtheme should do that anyway.
27876
27877        * rendering/RenderThemeWin.cpp:
27878        (WebCore::RenderThemeWin::~RenderThemeWin):
27879
278802006-12-06  Ada Chan  <adachan@apple.com>
27881
27882        Reviewed by Maciej.
27883
27884        Fixed a couple of things while investigating <rdar://4866288> (note this doesn't fix the crash yet):
27885        - we forgot to initialize m_sliderTheme
27886        - we did the wrong null check when getting the slider theme.
27887
27888        * rendering/RenderThemeWin.cpp:
27889        (WebCore::RenderThemeWin::RenderThemeWin):
27890        (WebCore::RenderThemeWin::sliderTheme):
27891
278922006-12-06  Anders Carlsson  <acarlsson@apple.com>
27893
27894        Fix the build.
27895        
27896        * platform/network/cf/ResourceHandleCFNet.cpp:
27897        (WebCore::didReceiveData):
27898        (WebCore::didFail):
27899        (WebCore::ResourceHandle::start):
27900        (WebCore::ResourceHandle::cancel):
27901
279022006-12-06  Anders Carlsson  <acarlsson@apple.com>
27903
27904        Reviewed by Adam.
27905
27906        Modify PluginStreamWin to use a SubresourceLoader instead of a ResourceHandle.
27907
27908        * plugins/win/PluginStreamWin.cpp:
27909        (WebCore::PluginStreamWin::PluginStreamWin):
27910        (WebCore::PluginStreamWin::~PluginStreamWin):
27911        (WebCore::PluginStreamWin::start):
27912        (WebCore::PluginStreamWin::stop):
27913        (WebCore::PluginStreamWin::deliverData):
27914        (WebCore::PluginStreamWin::didReceiveResponse):
27915        (WebCore::PluginStreamWin::didReceiveData):
27916        (WebCore::PluginStreamWin::didFail):
27917        (WebCore::PluginStreamWin::didFinishLoading):
27918        * plugins/win/PluginStreamWin.h:
27919        * plugins/win/PluginViewWin.cpp:
27920        (WebCore::PluginViewWin::performRequest):
27921        (WebCore::PluginViewWin::load):
27922
279232006-12-06  Anders Carlsson  <acarlsson@apple.com>
27924
27925        Build fixes.
27926        
27927        * WebCore.vcproj/WebCore.vcproj:
27928        * platform/win/TemporaryLinkStubs.cpp:
27929        (FrameWin::scheduleClose):
27930
279312006-12-05  John Sullivan  <sullivan@apple.com>
27932
27933        Try to keep the windows build happy with Frame -> Editor changes...
27934
27935        * bridge/win/FrameWin.h:
27936        removed declarations of spelling and grammar functions
27937
27938        * platform/win/TemporaryLinkStubs.cpp:
27939        changed spelling and grammar functions from FrameWin:: to Editor::
27940        (WebCore::Editor::isSelectionMisspelled):
27941        (WebCore::Editor::isSelectionUngrammatical):
27942        (WebCore::Editor::guessesForMisspelledSelection):
27943        (WebCore::Editor::guessesForUngrammaticalSelection):
27944        (WebCore::Editor::markMisspellingsInAdjacentWords):
27945        (WebCore::Editor::advanceToNextMisspelling):
27946
279472006-12-05  Anders Carlsson  <acarlsson@apple.com>
27948
27949        Reviewed by Maciej.
27950
27951        Don't delete the internal pointer anymore since it's an OwnPtr now.
27952        
27953        * platform/network/cf/ResourceHandleCFNet.cpp:
27954        (WebCore::ResourceHandle::~ResourceHandle):
27955
279562006-12-05  Steve Falkenburg  <sfalken@apple.com>
27957
27958        Fix the build
27959
27960        * platform/win/TemporaryLinkStubs.cpp:
27961
279622006-12-05  Steve Falkenburg  <sfalken@apple.com>
27963
27964        Production build fix.
27965        ...and add ImageAnimationObserver.h into its new location.
27966
27967        * WebCore.vcproj/WebCore.vcproj:
27968
279692006-12-05  Steve Falkenburg  <sfalken@apple.com>
27970
27971        Production build fix.
27972        Remove ImageAnimationObserver.h from vcproj.
27973
27974        * WebCore.vcproj/WebCore.vcproj:
27975
279762006-12-05  John Sullivan  <sullivan@apple.com>
27977
27978        Reviewed by Geoff Garen
27979
27980        Changes to keep up with Frame -> Editor changes in WebCore
27981
27982        * bridge/win/FrameWin.h:
27983        remove ignoreSpelling() and learnSpelling()
27984
27985        * platform/win/TemporaryLinkStubs.cpp:
27986        (WebCore::Editor::ignoreSpelling):
27987        moved from FrameWin to Editor
27988        (WebCore::Editor::learnSpelling):
27989        ditto
27990
279912006-12-05  Alice Liu  <alice.liu@apple.com>
27992
27993        Build fix.
27994        
27995        * platform/win/CursorWin.cpp:
27996        (WebCore::copyCursor):
27997
279982006-12-05  Alice Liu  <alice.liu@apple.com>
27999
28000        Build fix.
28001        
28002        * bridge/win/FrameWin.h:
28003        added missing declarations for the functions in John's checkin, below. 
28004
280052006-12-05  John Sullivan  <sullivan@apple.com>
28006
28007        * platform/win/TemporaryLinkStubs.cpp:
28008        (WebCore::FrameWin::isSelectionUngrammatical):
28009        (WebCore::FrameWin::guessesForUngrammaticalSelection):
28010        added stubs to correspond to new Frame functions
28011
280122006-12-04  Anders Carlsson  <acarlsson@apple.com>
28013
28014        Reviewed by Darin.
28015
28016        * WebCore.vcproj/WebCore.vcproj:
28017        Add SubresourceClient.h
28018        
28019        * platform/network/cf/ResourceHandleCFNet.cpp:
28020        (WebCore::didReceiveResponse):
28021        Get rid of the receivedResponse call.
28022        
28023        (WebCore::didFinishLoading):
28024        Get rid of the receivedAllData call, that's handled by the subresource loader now.
28025
280262006-12-04  Darin Adler  <darin@apple.com>
28027
28028        Reviewed by Adele.
28029
28030        * WebCore.vcproj/WebCore.vcproj: Update for new UIEventWithKeyState.cpp file.
28031
280322006-12-04  Kevin McCullough  <KMcCullough@apple.com>
28033
28034        Reviewed by Darin.
28035
28036        - removed the guards for the "multiple forms submission" issue, which may not be
28037          an issue anymore and the guards prevent perfectly legitimate websites from
28038          working correctly.
28039
28040        * bridge/win/FrameWin.cpp:
28041        (WebCore::FrameWin::keyEvent):
28042        * config.h:
28043        * loader/win/FrameLoaderWin.cpp:
28044        (WebCore::FrameLoader::submitForm):
28045
280462006-12-04  Darin Adler  <darin@apple.com>
28047
28048        Reviewed by Alice.
28049
28050        * platform/win/PasteboardWin.cpp: (WebCore::Pasteboard::generalPasteboard):
28051        Got rid of s_generalPasteboard. Also removed definition of destructor.
28052
280532006-12-04  Anders Carlsson  <acarlsson@apple.com>
28054
28055        Reviewed by Darin, Geoff.
28056
28057        Get rid of ref() in ResourceHandle::start() and remove all uses of kill().
28058        
28059        * platform/network/cf/ResourceHandleCFNet.cpp:
28060        (WebCore::didFinishLoading):
28061        (WebCore::didFail):
28062        (WebCore::ResourceHandle::start):
28063        * plugins/win/PluginStreamWin.cpp:
28064        (WebCore::PluginStreamWin::stop):
28065
280662006-12-04  Alice Liu  <alice.liu@apple.com>
28067
28068        Reviewed by Oliver.
28069
28070        Fixed <rdar://problem/4822632> clicks don't work if you move mouse immediately
28071        This bug was fixed by implementing EventHandler::handleDrag.  The part of that
28072        function after the drag hysteresis is exceeded remains unimplemented until 
28073        drag&drop is implemented. 
28074
28075        * page/win/EventHandlerWin.cpp:
28076        (WebCore::dragState):
28077        (WebCore::EventHandler::dragHysteresisExceeded):
28078        (WebCore::EventHandler::handleDrag):
28079        (WebCore::EventHandler::handleMouseUp):
28080        (WebCore::EventHandler::shouldDragAutoNode):
28081        (WebCore::EventHandler::focusDocumentView):
28082        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
28083        * platform/win/PlatformMouseEventWin.cpp:
28084        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
28085
280862006-12-01  Beth Dakin  <bdakin@apple.com>
28087
28088        Reviewed by Adam.
28089
28090        Support for sub-menus in WebCore context menus. Also some
28091        adjustments to make ContextMenuItem class a wrapper for the
28092        platformDescription. (In this case, a wrapper for LPMENUITEMINFO.)
28093
28094        * WebCore.vcproj/WebCore.vcproj:
28095        * platform/win/ContextMenuItemWin.cpp:
28096        (WebCore::ContextMenuItem::ContextMenuItem):
28097        (WebCore::ContextMenuItem::platformDescription):
28098        (WebCore::ContextMenuItem::action):
28099        (WebCore::ContextMenuItem::title):
28100        (WebCore::ContextMenuItem::platformSubMenu):
28101        (WebCore::ContextMenuItem::setAction):
28102        (WebCore::ContextMenuItem::setTitle):
28103        (WebCore::ContextMenuItem::setSubMenu):
28104        * platform/win/ContextMenuWin.cpp:
28105        (WebCore::ContextMenu::ContextMenu):
28106        (WebCore::ContextMenu::insertItem):
28107
281082006-11-30  Geoffrey Garen  <ggaren@apple.com>
28109
28110        Rubber Stamped by Anders Carlsson.
28111
28112        Global rename of Document::focusNode to Document::focusedNode. 'focusNode'
28113        suggested a command, and conflicted with a different meaning for 'focusNode'
28114        in the Mozilla selection API.
28115
28116        * bridge/win/FrameWin.cpp:
28117        (WebCore::FrameWin::keyEvent):
28118
281192006-11-30  Adam Roben  <aroben@apple.com>
28120
28121        Lather, rinse, repeat.
28122
28123        * platform/win/GraphicsContextWin.cpp:
28124        (WebCore::contextForImage):
28125
281262006-11-30  Adam Roben  <aroben@apple.com>
28127
28128        Build fix.
28129
28130        * platform/graphics/cg/GraphicsContextCG.cpp: Removed. This file was
28131        un-forked a while ago.
28132        * platform/win/ContextMenuWin.cpp:
28133        (WebCore::ContextMenu::platformDescription):
28134        * platform/win/GraphicsContextWin.cpp:
28135        (WebCore::contextForImage):
28136
281372006-11-30  Adam Roben  <aroben@apple.com>
28138
28139        Build fix. 
28140
28141
28142        * WebCore.vcproj/WebCore.vcproj:
28143        * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
28144        (WebCore::SVGResourceFilter::prepareFilter):
28145        (WebCore::SVGResourceFilter::applyFilter):
28146        (WebCore::SVGResourceFilter::createFilterEffect):
28147        * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp:
28148        (WebCore::SVGResourceMasker::applyMask):
28149
281502006-11-30  Geoffrey Garen  <ggaren@apple.com>
28151
28152        Reviewed by Beth Dakin.
28153        
28154        Fixed <rdar://problem/4844838> Whole document leak seen 
28155        running HTML iBench
28156
28157        * loader/win/FrameLoaderWin.cpp: Removed custom implementation
28158        for detachFromParent, since FrameLoader has a cross-platform
28159        version now.
28160
281612006-11-30  Steve Falkenburg  <sfalken@apple.com>
28162
28163        Production build fix.  Add missing header files to vcproj.
28164
28165        * WebCore.vcproj/WebCore.vcproj:
28166
281672006-11-29  Anders Carlsson  <acarlsson@apple.com>
28168
28169        Build fix.
28170        
28171        * platform/win/TemporaryLinkStubs.cpp:
28172        Remove unused function.
28173
281742006-11-29  Anders Carlsson  <acarlsson@apple.com>
28175
28176        Reviewed by Oliver.
28177
28178        Fix fast/dom/xmlhttprequest-get layout test failure.
28179
28180        * platform/network/cf/ResourceResponseCFNet.cpp:
28181        (WebCore::ResourceResponse::doUpdateResourceResponse):
28182        Initialize the status code to 0 for non-http responses.
28183
281842006-11-29  Anders Carlsson  <acarlsson@apple.com>
28185
28186        Reviewed by Darin.
28187
28188        Have ResourceResponse hold on to the platform object and do lazy
28189        initialization of the data members.
28190        
28191        * WebCore.vcproj/WebCore.vcproj:
28192        * platform/network/cf/ResourceHandleCFNet.cpp:
28193        (WebCore::willSendRequest):
28194        (WebCore::didReceiveResponse):
28195        * platform/network/cf/ResourceRequestCFNet.h: Removed.
28196        * platform/network/cf/ResourceResponseCFNet.cpp:
28197        (WebCore::ResourceResponse::doUpdateResourceResponse):
28198        * platform/network/cf/ResourceResponseCFNet.h: Removed.
28199        * platform/win/MimeTypeRegistryWin.cpp:
28200
282012006-11-28  Geoffrey Garen  <ggaren@apple.com>
28202
28203        Reviewed by Beth Dakin.
28204
28205        Fixed <rdar://problem/4844855> Should clarify when to create clients in 
28206        the WebCore client API
28207        
28208        All clients must now be supplied as constructor arguments. This clarifies 
28209        when you need to create clients, and also guarantees that objects can't 
28210        (for the most part) be in a clientless state.
28211
28212        Layout tests pass. No leaks reported.
28213        
28214        * bridge/win/FrameWin.cpp:
28215        (WebCore::FrameWin::FrameWin):
28216        * bridge/win/FrameWin.h:
28217
282182006-11-28  Adam Roben  <aroben@apple.com>
28219
28220        Reviewed by Ada.
28221
28222        Add platform-specific constructor/destructor to ContextMenu so we can
28223        properly dispose of the HMENU.
28224
28225        * platform/win/ContextMenuWin.cpp:
28226        (WebCore::ContextMenu::ContextMenu):
28227        (WebCore::ContextMenu::~ContextMenu):
28228        (WebCore::ContextMenu::itemCount):
28229        (WebCore::ContextMenu::insertItem):
28230        (WebCore::ContextMenu::at):
28231        (WebCore::ContextMenu::setPlatformDescription):
28232        (WebCore::ContextMenu::show):
28233
282342006-11-28  Steve Falkenburg  <sfalken@apple.com>
28235
28236        B&I build fix
28237
28238        * WebCore.vcproj/WebCore.vcproj:
28239
282402006-11-28  Anders Carlsson  <acarlsson@apple.com>
28241
28242        Fix the build by doing the same changes that were done in the open source WebCore repo.
28243        
28244        * WebCore.vcproj/WebCore.vcproj:
28245        * platform/network/cf/ResourceHandleCFNet.cpp:
28246        (WebCore::willSendRequest):
28247        (WebCore::didReceiveResponse):
28248        (WebCore::ResourceHandle::start):
28249        * platform/network/cf/ResourceRequestCFNet.cpp:
28250        (WebCore::ResourceRequest::cfURLRequest):
28251        (WebCore::addHeadersFromHashMap):
28252        (WebCore::ResourceRequest::doUpdatePlatformRequest):
28253        (WebCore::ResourceRequest::doUpdateResourceRequest):
28254        * platform/network/cf/ResourceRequestCFNet.h:
28255
282562006-11-28  Adam Roben  <aroben@apple.com>
28257
28258        Reviewed by Ada and Beth.
28259
28260        Fix: <rdar://problem/4601523> Contextual Menus (in web content)
28261
28262        * WebCore.vcproj/WebCore.vcproj: Defined WEBCORE_CONTEXT_MENUS to turn
28263        on the context menus. Added new ContextMenuItem files.
28264        * platform/win/ContextMenuItemWin.cpp: Added.
28265        (WebCore::ContextMenuItem::ContextMenuItem):
28266        * platform/win/ContextMenuWin.cpp:
28267        (WebCore::ContextMenu::itemCount): Updated to match ContextMenu.h and
28268        ContextMenuItem changes.
28269        (WebCore::ContextMenu::insertItem): Ditto.
28270        (WebCore::ContextMenu::appendItem): Ditto.
28271        (WebCore::ContextMenu::at): New method, similar to Vector<T>::at.
28272        (WebCore::ContextMenu::setPlatformDescription): Use MIM_APPLYTOSUBMENUS
28273        to make sure all submenus get the MNS_NOTIFYBYPOS style.
28274        (WebCore::ContextMenu::show): Implemented.
28275
28276        Updates to match OpenSource changes.
28277
28278        * loader/win/FrameLoaderWin.cpp: Added missing #include.
28279        * page/win/EventHandlerWin.cpp: Return bools to signify whether the
28280        event was handled.
28281        (WebCore::EventHandler::passMousePressEventToSubframe):
28282        (WebCore::EventHandler::passMouseMoveEventToSubframe):
28283        (WebCore::EventHandler::passMouseReleaseEventToSubframe):
28284        (WebCore::EventHandler::passWheelEventToSubframe):
28285        (WebCore::EventHandler::passMousePressEventToScrollbar):
28286        * platform/win/PlatformScrollBar.h: Ditto.
28287        * platform/win/PlatformScrollBarWin.cpp: Ditto.
28288        (WebCore::PlatformScrollbar::handleMouseMoveEvent):
28289        (WebCore::PlatformScrollbar::handleMouseOutEvent):
28290        (WebCore::PlatformScrollbar::handleMousePressEvent):
28291        (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
28292
28293        Small fix inspired by WebView.cpp changes.
28294
28295        * platform/win/PopupMenuWin.cpp:
28296        (WebCore::PopupMenu::calculatePositionAndSize): Use ::ClientToScreen to
28297        do coordinate conversion instead of doing it ourselves.
28298
282992006-11-28  Anders Carlsson  <acarlsson@apple.com>
28300
28301        Reviewed by Adam.
28302        
28303        <rdar://problem/4850883>
28304        Crash loading pdf page (W4 form)
28305        
28306        * platform/win/TemporaryLinkStubs.cpp:
28307        (FrameLoader::redirectDataToPlugin):
28308        * loader/win/FrameLoaderWin.cpp:
28309        (WebCore::FrameLoader::redirectDataToPlugin):
28310        Move the function to FrameLoaderWin.cpp and get rid of STOP_NOIMPL() for now, 
28311        we do things differently on Windows so this function doesn't need do do anything.
28312        I've filed 4852889 about redoing this once the loader has been ported.
28313
283142006-11-28  Alice Liu  <alice.liu@apple.com>
28315
28316        Reviewed by Ada, Adam, and Lou.
28317
28318        * WebCore.vcproj/WebCore.vcproj:
28319        Added the files listed below
28320        
28321        * platform/win/ClipboardWin.h: Added.
28322        * platform/win/ClipboardWin.cpp: Added.
28323        Added the minimum stubs for the ClipboardWin class
28324        (WebCore::ClipboardWin::isForDragging):
28325        (WebCore::ClipboardWin::dropEffect):
28326        (WebCore::ClipboardWin::setDropEffect):
28327        (WebCore::ClipboardWin::effectAllowed):
28328        (WebCore::ClipboardWin::setEffectAllowed):
28329        (WebCore::ClipboardWin::clearData):
28330        (WebCore::ClipboardWin::clearAllData):
28331        (WebCore::ClipboardWin::getData):
28332        (WebCore::ClipboardWin::setData):
28333        (WebCore::ClipboardWin::types):
28334        (WebCore::ClipboardWin::dragLocation):
28335        (WebCore::ClipboardWin::dragImage):
28336        (WebCore::ClipboardWin::setDragImage):
28337        (WebCore::ClipboardWin::dragImageElement):
28338        (WebCore::ClipboardWin::setDragImageElement):
28339        (WebCore::ClipboardWin::setAccessPolicy):
28340        (WebCore::ClipboardWin::~ClipboardWin):
28341
28342        * platform/win/EditorWin.cpp: Added.
28343        Added this to make dispatchCPPEvent happy. 
28344        (WebCore::Editor::newGeneralClipboard):
28345
28346        * platform/win/PasteboardWin.cpp: Added.
28347        The pasteboard class follows a singleton pattern
28348        Implemented the following to support CF_HTML, CF_UNICODE, and CF_TEXT
28349        (WebCore::Pasteboard::generalPasteboard):
28350        (WebCore::Pasteboard::Pasteboard):
28351        (WebCore::Pasteboard::~Pasteboard):
28352        (WebCore::Pasteboard::registerSelectionPasteboardTypes):
28353        (WebCore::Pasteboard::clearTypes):
28354        (WebCore::Pasteboard::writeSelection):
28355        (WebCore::Pasteboard::createHandleFromString):
28356        (WebCore::Pasteboard::createHandleFromCString):
28357        (WebCore::Pasteboard::createCF_HTMLFromRange):
28358        (WebCore::Pasteboard::replaceNBSP):
28359        (WebCore::Pasteboard::canSmartReplace):
28360        (WebCore::Pasteboard::plainText):
28361        (WebCore::Pasteboard::documentFragment):
28362        (WebCore::PasteboardOwnerWndProc):
28363
283642006-11-28  Geoffrey Garen  <ggaren@apple.com>
28365
28366        Reviewed by Anders Carlsson.
28367
28368        Fixed <rdar://problem/4844863> REGRESSION: screen flashes when scrolling/
28369        resizing page with plug-in (@ cnn.com, for example).
28370
28371        LockWindowUpdate was to blame. It turns out that using LockWindowUpdate
28372        was wrong to begin with. It's really only intended for use in drag-n-drop
28373        operations, which explains why only one window can be locked at a time.
28374        (See http://blogs.msdn.com/oldnewthing/archive/2004/06/10/152612.aspx.)
28375        
28376        The new solution I've implemented for avoiding plug-in fragments while scrolling
28377        is simply to clip the plug-in to the zero rect before moving it, and
28378        then to un-clip it when done.
28379        
28380        * plugins/win/PluginViewWin.cpp:
28381        (WebCore::PluginViewWin::updateHwnd):
28382
283832006-11-28  Geoffrey Garen  <ggaren@apple.com>
28384
28385        Reviewed by Adam.
28386
28387        Fixed <rdar://problem/4844848> REGRESSION: extra cross-library ref/deref 
28388        calls cause .5% PLT regression.
28389        
28390        Changed ref/deref calls to a single 'xxxDestroyed' call. Moved EditorClient
28391        from the Frame to the Page, since it's only responsible for
28392        Webview-level delegate calls.
28393        
28394        I don't really love this design, but it fixes the regression and allows
28395        a single WebKit object to implement multiple client interfaces.
28396        
28397        Layout tests pass.
28398
283992006-11-27  Beth Dakin  <bdakin@apple.com>
28400
28401        Reviewed by Adam.
28402
28403        Stub out functions in order to remove FIXMEs from ContextMenu.cpp
28404
28405        * bridge/win/FrameWin.h: Spell checker functions pushed down from 
28406        WebKit.
28407        * platform/win/TemporaryLinkStubs.cpp: Stubs for spelling 
28408        functions.
28409        (WebCore::FrameWin::isSelectionMisspelled):
28410        (WebCore::FrameWin::guessesForMisspelledSelection):
28411
284122006-11-27  Oliver Hunt  <oliver@apple.com>
28413
28414        Reviewed by Adam.
28415
28416        Fixes a crash in SVG caused by an attempt to 
28417        perform css overflow clipping by preventing
28418        the css overflow clip from being set in SVG.
28419        
28420        <rdar:/problems/4839568>
28421
28422        * WebCore.vcproj/WebCore.vcproj:
28423
284242006-11-27  Anders Carlsson  <acarlsson@apple.com>
28425
28426        Remove addMessageToConsole from FrameWin.
28427        * bridge/win/FrameWin.h:
28428        * platform/win/TemporaryLinkStubs.cpp:
28429        
284302006-11-21  Anders Carlsson  <acarlsson@apple.com>
28431
28432        Reviewed by Adam.
28433
28434        Various fixes that make file upload possible.
28435        
28436        * bridge/win/FrameWin.h:
28437        * loader/win/FrameLoaderWin.cpp:
28438        (WebCore::FrameLoader::submitForm):
28439        Change submitForm to take a FrameLoadRequest.
28440        
28441        * platform/network/cf/FormDataStreamCFNet.cpp:
28442        (WebCore::advanceCurrentStream):
28443        Pass kCFURLWindowsPathStyle to CFURLCreateWithFileSystemPath.
28444        
28445        * platform/network/cf/ResourceHandleCFNet.cpp:
28446        (WebCore::willSendRequest):
28447        Call the client method.
28448
284492006-11-21  Anders Carlsson  <acarlsson@apple.com>
28450
28451        Rubber-stamped by Maciej.
28452
28453        Fork the CF loader.
28454        
28455        * WebCore.vcproj/WebCore.vcproj:
28456        * platform/network/cf/FormDataStreamCFNet.cpp: Added.
28457        (WebCore::getStreamFormDatas):
28458        (WebCore::pairRetain):
28459        (WebCore::pairRelease):
28460        (WebCore::pairEqual):
28461        (WebCore::pairHash):
28462        (WebCore::closeCurrentStream):
28463        (WebCore::scheduleWithPair):
28464        (WebCore::advanceCurrentStream):
28465        (WebCore::openNextStream):
28466        (WebCore::formCreate):
28467        (WebCore::formFinalize):
28468        (WebCore::formOpen):
28469        (WebCore::formRead):
28470        (WebCore::formCanRead):
28471        (WebCore::formClose):
28472        (WebCore::formSchedule):
28473        (WebCore::formUnschedule):
28474        (WebCore::formEventCallback):
28475        (WebCore::setHTTPBody):
28476        (WebCore::httpBodyFromStream):
28477        * platform/network/cf/FormDataStreamCFNet.h: Added.
28478        * platform/network/cf/ResourceHandleCFNet.cpp: Added.
28479        (WebCore::willSendRequest):
28480        (WebCore::didReceiveResponse):
28481        (WebCore::didReceiveData):
28482        (WebCore::didFinishLoading):
28483        (WebCore::didFail):
28484        (WebCore::willCacheResponse):
28485        (WebCore::didReceiveChallenge):
28486        (WebCore::addHeadersFromHashMap):
28487        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
28488        (WebCore::ResourceHandle::~ResourceHandle):
28489        (WebCore::arrayFromFormData):
28490        (WebCore::emptyPerform):
28491        (WebCore::runLoaderThread):
28492        (WebCore::ResourceHandle::start):
28493        (WebCore::ResourceHandle::cancel):
28494        * platform/network/cf/ResourceRequestCFNet.cpp: Added.
28495        (WebCore::getResourceRequest):
28496        (WebCore::addHeadersFromHashMap):
28497        (WebCore::cfURLRequest):
28498        * platform/network/cf/ResourceRequestCFNet.h: Added.
28499        * platform/network/cf/ResourceResponseCFNet.cpp: Added.
28500        (WebCore::getResourceResponse):
28501        * platform/network/cf/ResourceResponseCFNet.h: Added.
28502
285032006-11-21  Anders Carlsson  <acarlsson@apple.com>
28504
28505        Reviewed by Lou, Dave Hyatt.
28506
28507        <rdar://problem/4761639>
28508        Group label in list box doesn't appear as bold
28509        
28510        <rdar://problem/4805795>
28511        <optgroup> labels should be bold in popup menus
28512        
28513        * platform/win/FontPlatformDataWin.cpp:
28514        (WebCore::enumStylesCallback):
28515        (WebCore::FontPlatformData::FontPlatformData):
28516        Enumerate the existing font styles and decide what to synthesize
28517        depending on what styles are available.
28518
285192006-11-21  Anders Carlsson  <acarlsson@apple.com>
28520
28521        Fix build.
28522        
28523        * WebCore.vcproj/WebCore.vcproj:
28524
285252006-11-20  Anders Carlsson  <acarlsson@apple.com>
28526
28527        Add the same include paths to the debug build.
28528        
28529        * WebCore.vcproj/WebCore.vcproj:
28530
285312006-11-20  Anders Carlsson  <acarlsson@apple.com>
28532
28533        Fix build.
28534        
28535        * WebCore.vcproj/WebCore.vcproj:
28536        * kcanvas/device/quartz/KCanvasFilterQuartz.cpp: Removed.
28537        * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Added.
28538        (WebCore::SVGResourceFilter::SVGResourceFilter):
28539        (WebCore::SVGResourceFilter::~SVGResourceFilter):
28540        (WebCore::SVGResourceFilter::prepareFilter):
28541        (WebCore::SVGResourceFilter::applyFilter):
28542
285432006-11-19  Beth Dakin  <bdakin@apple.com>
28544
28545        Reviewed by Adam.
28546
28547        Boomer part of context menu actions.
28548
28549        * bridge/win/FrameWin.h: New spelling functions on Frame.
28550        * platform/win/ContextMenuWin.cpp:
28551        (WebCore::ContextMenu::show):
28552        (WebCore::ContextMenu::hide):
28553        * platform/win/TemporaryLinkStubs.cpp: New stubs.
28554        (FrameWin::ignoreSpelling):
28555        (FrameWin::learnSpelling):
28556        (FrameLoader::reload):
28557
285582006-11-18  Adam Roben  <aroben@apple.com>
28559
28560        Build fix from OpenSource r17841.
28561
28562        * platform/win/CursorWin.cpp: New method stubs.
28563        (WebCore::aliasCursor):
28564        (WebCore::progressCursor):
28565        (WebCore::noDropCursor):
28566
285672006-11-17  Anders Carlsson  <acarlsson@apple.com>
28568
28569        Reviewed by Adam.
28570
28571        Add #defines in config.h to prevent the min and max macros from being used.
28572
28573        * bridge/win/FrameWin.cpp:
28574        * config.h:
28575        * platform/win/FontCacheWin.cpp:
28576        (WebCore::FontCache::createFontPlatformData):
28577        * platform/win/PopupMenuWin.cpp:
28578        * plugins/win/PluginStreamWin.cpp:
28579        * plugins/win/PluginViewWin.cpp:
28580        (WebCore::PluginViewWin::handlePost):
28581
285822006-11-17  Kevin McCullough  <kmccullough@apple.com>
28583
28584        Reviewed by Adam.
28585
28586        - Fixes Targetted Form Submission to now work. Radar: 4762693
28587
28588        * ChangeLog:
28589        * loader/win/FrameLoaderWin.cpp:
28590        (WebCore::FrameLoader::submitForm):
28591
285922006-11-16  Adele Peterson  <adele@apple.com>
28593
28594        Reviewed by Adam.
28595
28596        Added theme for sider.
28597
28598        * rendering/RenderThemeWin.cpp:
28599        (WebCore::RenderThemeWin::sliderTheme):
28600        (WebCore::RenderThemeWin::close):
28601        (WebCore::RenderThemeWin::determineSliderThumbState):
28602        (WebCore::RenderThemeWin::getClassicThemeData):
28603        (WebCore::RenderThemeWin::getThemeData):
28604        (WebCore::drawControl):
28605        (WebCore::RenderThemeWin::paintSliderTrack):
28606        (WebCore::RenderThemeWin::paintSliderThumb):
28607        (WebCore::RenderThemeWin::adjustSliderThumbSize):
28608        * rendering/RenderThemeWin.h:
28609
286102006-11-15  Adam Roben  <aroben@apple.com>
28611
28612        Reviewed by Anders.
28613
28614        Added new ContextMenuClient and ContextMenuController classes.
28615
28616        * WebCore.vcproj/WebCore.vcproj: Added new files.
28617        * platform/win/ContextMenuWin.cpp: Added method implementations Beth
28618        forgot to check in in r11129.
28619        (WebCore::ContextMenu::itemCount):
28620        (WebCore::ContextMenu::appendItem):
28621
286222006-11-15  Geoffrey Garen  <ggaren@apple.com>
28623
28624        Reviewed by Anders Carlsson.
28625        
28626        Fixed flash of plug-in content outside its containing iframe while 
28627        scrolling the iframe.
28628        
28629        The problem was that the plug-in would draw between our call to MoveWindow
28630        and our call to SetWindowRgn. The solution here is to lock all updates in 
28631        the plug-in's HWND until we've called both MoveWindow and SetWindowRgn.
28632        
28633        Tested with Quicktime and Flash.
28634        
28635        * plugins/win/PluginViewWin.cpp:
28636        (WebCore::PluginViewWin::updateHwnd):
28637        (WebCore::PluginViewWin::setFrameGeometry):
28638        (WebCore::PluginViewWin::geometryChanged):
28639        * plugins/win/PluginViewWin.h: Removed bogus invalidate parameter to updateHwnd.
28640
286412006-11-15  Adele Peterson  <adele@apple.com>
28642
28643        Reviewed by Adam.
28644
28645        Adding RenderSlider class, and removing DeprecatedSlider and Slider classes.
28646
28647        * WebCore.vcproj/WebCore.vcproj:
28648        * platform/win/TemporaryLinkStubs.cpp:
28649
286502006-11-15  Beth Dakin  <bdakin@apple.com>
28651        &   Adam Roben  <aroben@apple.com>
28652
28653        Reviewed by Adam and Beth.
28654
28655        Internal side of r17796.
28656
28657        * WebCore.vcproj/WebCore.vcproj:
28658        * platform/win/ContextMenuWin.cpp: Added.
28659        (WebCore::ContextMenu::insertItem):
28660        (WebCore::ContextMenu::setPlatformMenuDescription):
28661
286622006-11-15  Anders Carlsson  <acarlsson@apple.com>
28663
28664        Reviewed by Darin.
28665    
28666        Remove some (now) obsolete methods.
28667        
28668        * bridge/win/FrameWin.h:
28669        * platform/win/TemporaryLinkStubs.cpp:
28670        (FrameWin::unfocusWindow):
28671        (FrameWin::getAppletInstanceForWidget):
28672        (FrameWin::issuePasteCommand):
28673        (FrameWin::respondToChangedSelection):
28674
286752006-11-15  Steve Falkenburg  <sfalken@apple.com>
28676
28677        Remove header from vcproj that no longer exists
28678
28679        * WebCore.vcproj/WebCore.vcproj:
28680
286812006-11-15  Steve Falkenburg  <sfalken@apple.com>
28682
28683        Fix the B&I build
28684
28685        * WebCore.vcproj/WebCore.vcproj:
28686
286872006-11-14  Darin Adler  <darin@apple.com>
28688
28689        Reviewed by Anders.
28690
28691        - update for creation of EventHandler
28692
28693        * WebCore.vcproj/WebCore.vcproj: Added EventHandler.cpp/h/Win.cpp.
28694
28695        * bridge/win/FrameWin.h: Moved virtual functions lastEventIsMouseUp,
28696        tabsToLinks, and tabsToAllControls to EventHandler.
28697        * bridge/win/FrameWin.cpp: Ditto.
28698
28699        * bridge/win/FrameViewWin.cpp: Moved passMousePressEventToSubframe and similar
28700        functions to EventHandler.
28701
28702        * page/win/EventHandlerWin.cpp: Added. Code from FrameViewWin and FrameWin.
28703
28704        * platform/win/PlatformScrollBarWin.cpp:
28705        (WebCore::PlatformScrollbar::handleMouseReleaseEvent): Call the setMousePressed
28706        function in its new home in EventHandler.
28707
28708        * platform/win/TemporaryLinkStubs.cpp: Moved lastEventIsMouseUp stub to EventHandler.
28709
287102006-11-13  Brady Eidson  <beidson@apple.com>
28711
28712        Rubberstamped by Maciej
28713
28714        Windows half of 17755 - Make FormData shared
28715
28716        * bridge/win/FrameWin.h:
28717        * loader/win/FrameLoaderWin.cpp:
28718        (WebCore::FrameLoader::submitForm):
28719        * plugins/win/PluginViewWin.cpp:
28720        (WebCore::PluginViewWin::handlePost):
28721
287222006-11-13  Anders Carlsson  <acarlsson@apple.com>
28723
28724        Reviewed by Adam.
28725
28726        * platform/win/PopupMenuWin.cpp:
28727        (WebCore::PopupWndProc):
28728        Make sure to call valueChanged after hiding the popup so that change events will 
28729        be delivered correctly.
28730
287312006-11-13  Steve Falkenburg  <sfalken@apple.com>
28732
28733        Reviewed by Anders, Lou.
28734
28735        Fix merge script
28736
28737        * WebCore.vcproj/merge-opensource.sh: Don't copy cairo, pixman
28738
287392006-11-12  Geoffrey Garen  <ggaren@apple.com>
28740
28741        Reviewed by Beth Dakin.
28742        
28743        Added project-wide setting to disable Microsoft's made-up deprecation 
28744        warnings related to std:: functions. (Doesn't have any affect yet,
28745        since we currently disable all deprecation warnings.)
28746
28747        * WebCore.vcproj/WebCore.vcproj:
28748
287492006-11-11  Anders Carlsson  <acarlsson@apple.com>
28750
28751        Reviewed by Oliver.
28752
28753        Rename keyPress to keyEvent, it's used for both key presses
28754        and releases.
28755        
28756        * bridge/win/FrameWin.cpp:
28757        (WebCore::FrameWin::keyEvent):
28758        * bridge/win/FrameWin.h:
28759
287602006-11-11  Adam Roben  <aroben@apple.com>
28761
28762        Reviewed by Geoff.
28763
28764        Move graphics-related files to platform/graphics to stay in sync with
28765        changes from OpenSource r17727.
28766
28767        Also, as discussed with Darin and Steve, we now copy all our headers to
28768        a flat include/WebCore directory instead of copying the directory
28769        structure of WebCore. This mirrors how Mac builds.
28770
28771        * WebCore.vcproj/WebCore.vcproj:
28772        * platform/cg/ColorCG.cpp: Removed.
28773        * platform/cg/GraphicsContextCG.cpp: Removed.
28774        * platform/cg/GraphicsContextPlatformPrivate.h: Removed.
28775        * platform/win/IconWin.cpp: Removed.
28776        * platform/win/ImageWin.cpp: Removed.
28777
287782006-11-11  Darin Adler  <darin@apple.com>
28779
28780        - blind attempt to fix the build
28781
28782        * platform/win/CursorWin.cpp:
28783        (WebCore::verticalTextCursor): Added. Just returns the pointer cursor.
28784        (WebCore::cellCursor): Ditto.
28785        (WebCore::contextMenuCursor): Ditto.
28786
287872006-11-10  Steve Falkenburg  <sfalken@apple.com>
28788
28789        Build fix for opensource/internal merge script.
28790
28791        * WebCore.vcproj/WebCore.vcproj:
28792
287932006-11-10  Anders Carlsson  <acarlsson@apple.com>
28794
28795        Reviewed by Oliver.
28796
28797        Implement findNextWordFromIndex using ICU.
28798
28799        * platform/win/TemporaryLinkStubs.cpp:
28800        (WebCore::findSentenceBoundary):
28801        * platform/win/TextBoundariesWin.cpp:
28802        (WebCore::findNextWordFromIndex):
28803
288042006-11-09  Oliver Hunt  <oliver@apple.com>
28805
28806        Reviewed by Brady.
28807
28808        Added Windows side of MIME Type registry, and updated 
28809        objectContentType and ImageWin to make use of it
28810        
28811        This fixes <rdar://problem/4791483> 
28812
28813        * WebCore.vcproj/WebCore.vcproj:
28814        * loader/win/FrameLoaderWin.cpp:
28815        (WebCore::FrameLoader::objectContentType):
28816        * platform/win/ImageWin.cpp:
28817        * platform/win/MimeTypeRegistryWin.cpp: Added.
28818        (WebCore::getMIMETypeForUTI):
28819        (WebCore::mimeTypeForExtension):
28820        (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
28821
288222006-11-09  Lou Amadio  <lamadio@apple.com>
28823
28824        Reviewed by mjs
28825        Corrected positioning of text for find overlay on subframes
28826
28827        * bridge/win/FrameWin.cpp:
28828        (WebCore::FrameWin::imageFromRect):
28829
288302006-11-08  Lou Amadio  <lamadio@apple.com>
28831
28832        Reviewed by ggaren
28833
28834        Moved CookieJar to OpenSourceWin
28835        Ported CookieJar to CFNetwork
28836        Corrected an uninitialized variable which crashed on Vista in the Wininet code
28837
28838        * WebCore.vcproj/WebCore.vcproj:
28839        * platform/network/win/CookieJarWin.cpp:
28840        (WebCore::setCookies):
28841        (WebCore::cookies):
28842
288432006-11-08  Maciej Stachowiak  <mjs@apple.com>
28844
28845        Reviewed by Geoff.
28846
28847        - added ResourceError class and didFailWithError client method
28848        
28849        * plugins/win/PluginStreamWin.cpp:
28850        (WebCore::PluginStreamWin::didFailLoadingWithError):
28851        (WebCore::PluginStreamWin::didFinishLoading):
28852        * plugins/win/PluginStreamWin.h:
28853
288542006-11-08  Geoffrey Garen  <ggaren@apple.com>
28855
28856        Reviewed by Anders Carlsson.
28857
28858        Updated Windows to use the new platform abstraction for Screen.
28859        
28860        * WebCore.vcproj/WebCore.vcproj:
28861        * platform/win/PopupMenuWin.cpp:
28862        (WebCore::PopupMenu::calculatePositionAndSize):
28863        * platform/win/ScreenWin.cpp:
28864        (WebCore::monitorInfoForWidget):
28865        (WebCore::deviceInfoForWidget):
28866        (WebCore::screenDepth):
28867        (WebCore::screenDepthPerComponent):
28868        (WebCore::screenIsMonochrome):
28869        (WebCore::screenRect):
28870        (WebCore::screenAvailableRect):
28871
288722006-11-09  Darin Adler  <darin@apple.com>
28873
28874        - fix the build
28875
28876        * bridge/win/FrameWin.h: Add a forward declaration of FormData.
28877
28878        * bridge/win/FrameWin.cpp: (WebCore::FrameWin::keyPress):
28879        Call resetMultipleFormSubmissionProtection instead of prepareForUserAction.
28880
28881        * platform/win/TemporaryLinkStubs.cpp: Remove the parameter from the
28882        TextField constructor.
28883
288842006-11-08  Steve Falkenburg  <sfalken@apple.com>
28885
28886        Rubber stamped by Adam.
28887
28888        Windows buildbot fix.
28889        Remove /d from xcopy commands that merge opensource/internal components.
28890        Sync debug and release post-build event.
28891
28892        * WebCore.vcproj/WebCore.vcproj:
28893
288942006-11-07  Ada Chan  <adachan@apple.com>
28895
28896        Reviewed by Steve.
28897
28898        Make the Slider implementation call LOG_NOIMPL() instead of STOP_NOIMPL() so the RSS feed page can load.
28899
28900        * platform/win/TemporaryLinkStubs.cpp:
28901        (Slider::Slider):
28902        (Slider::sizeHint):
28903        (Slider::setValue):
28904        (Slider::setMaxValue):
28905        (Slider::setMinValue):
28906        (Slider::~Slider):
28907        (Slider::setFont):
28908        (Slider::value):
28909
289102006-11-07  Lou Amadio  <lamadio@apple.com>
28911
28912        Reviewed by sfalken, adam
28913
28914         Implemented Find banner, overlay, bouncy.
28915         plummed some find, search and marking in WebCore & WebKit
28916         Added SDC - a DC wrapper with knowledge of CG
28917         Added button element
28918         Ported AppKit's oval button drawing code
28919         Abstracted the high performance animations
28920
28921        * bridge/win/FrameWin.cpp:
28922        (WebCore::FrameWin::imageFromRect):
28923        (WebCore::FrameWin::imageFromSelection):
28924        * bridge/win/FrameWin.h:
28925        * platform/win/GraphicsContextWin.cpp:
28926        (WebCore::GraphicsContext::setCompositeOperation):
28927        * platform/win/TemporaryLinkStubs.cpp:
28928        (Frame::setNeedsReapplyStyles):
28929
289302006-11-08  Anders Carlsson  <acarlsson@apple.com>
28931
28932        Build fixes.
28933        
28934        * WebCore.vcproj/WebCore.vcproj:
28935        * platform/win/TemporaryLinkStubs.cpp:
28936
289372006-11-08  Anders Carlsson  <acarlsson@apple.com>
28938
28939        * loader/win/FrameLoaderWin.cpp:
28940        (WebCore::FrameLoader::partClearedInBegin):
28941        Use m_frame instead of this, include the correct files.
28942        
289432006-11-08  Anders Carlsson  <acarlsson@apple.com>
28944
28945        (I'm not doing this to get commit 11000)
28946        
28947        * loader/win/FrameLoaderWin.cpp:
28948        (WebCore::FrameLoader::partClearedInBegin):
28949        It's m_frame, not frame. 
28950        
289512006-11-08  Anders Carlsson  <acarlsson@apple.com>
28952
28953        It's FrameLoader, not FrameWin.
28954        
28955        * loader/win/FrameLoaderWin.cpp:
28956        (WebCore::FrameLoader::partClearedInBegin):
28957
289582006-11-08  Anders Carlsson  <acarlsson@apple.com>
28959
28960        A blind attempt at fixing the build.
28961        
28962        * bridge/win/FrameWin.cpp:
28963        * loader/win/FrameLoaderWin.cpp:
28964        (WebCore::FrameWin::partClearedInBegin):
28965        * platform/win/TemporaryLinkStubs.cpp:
28966        (FrameLoader::restoreDocumentState):
28967
289682006-11-07  Geoffrey Garen  <ggaren@apple.com>
28969
28970        Reviewed by Anders.
28971        
28972        Removed ScreenClient. It was highly unpopular, risking my midterm re-election.
28973        
28974        None of Screen's responsibilities require up-calls to WebKit or delegates, 
28975        so WebCore can handle it all.
28976        
28977        Moved Screen back from page/ to platform/ because it's a platform
28978        abstraction again.
28979        
28980        Fixed bug where Screen would query the default screen instead of the screen
28981        on which the active window was located. (The code is written in Klingon,
28982        but that's cool.)
28983        
28984        Implemented some missing screen functionality on Win.
28985        
28986        I can't fully verify this code because I can't load files without crashing
28987        in CFNetwork, but I exercised most of it with javascript: URLs and the
28988        debugger reported reasonable values.
28989
28990        * WebCore.vcproj/WebCore.vcproj:
28991        * platform/win/ScreenWin.cpp: Added. Merged over from opensource tree.
28992        (WebCore::getWindow):
28993        (WebCore::getMonitorInfo):
28994        (WebCore::getDeviceInfo):
28995        (WebCore::Screen::depth):
28996        (WebCore::Screen::depthPerComponent):
28997        (WebCore::Screen::isMonochrome):
28998        (WebCore::Screen::rect):
28999        (WebCore::Screen::usableRect):
29000
290012006-11-07  Darin Adler  <darin@apple.com>
29002
29003        Reviewed by Geoff.
29004
29005        - moved loader code from Frame/FrameMac to FrameLoader
29006
29007        * WebCore.vcproj/WebCore.vcproj:
29008        * bridge/win/FrameWin.cpp:
29009        (WebCore::FrameWin::FrameWin):
29010        (WebCore::FrameWin::~FrameWin):
29011        * bridge/win/FrameWin.h:
29012        * loader/win/FrameLoaderWin.cpp: Added.
29013        (WebCore::FrameLoader::submitForm):
29014        (WebCore::FrameLoader::urlSelected):
29015        (WebCore::FrameLoader::originalRequestURL):
29016        (WebCore::FrameLoader::didFirstLayout):
29017        (WebCore::FrameLoader::objectContentType):
29018        (WebCore::FrameLoader::createPlugin):
29019        (WebCore::FrameLoader::createFrame):
29020        (WebCore::FrameLoader::detachFromParent):
29021        (WebCore::FrameLoader::createJavaAppletWidget):
29022        (WebCore::FrameLoader::setTitle):
29023        * platform/win/TemporaryLinkStubs.cpp:
29024        (FrameWin::markMisspellings):
29025        (FrameWin::respondToChangedSelection):
29026        (FrameWin::clearUndoRedoOperations):
29027        (IconLoader::notifyIconChanged):
29028        (PolicyCheck::PolicyCheck):
29029        (PolicyCheck::clear):
29030        (PolicyCheck::call):
29031        (PolicyCheck::clearRequest):
29032        (FrameLoader::saveDocumentState):
29033        (FrameLoader::restoreDocumentState):
29034        (FrameLoader::partClearedInBegin):
29035        (FrameLoader::goBackOrForward):
29036        (FrameLoader::historyURL):
29037        (FrameLoader::canGoBackOrForward):
29038        (FrameLoader::getHistoryLength):
29039        (DocumentLoader::setupForReplaceByMIMEType):
29040        (ResourceLoader::cancel):
29041        (DocumentLoader::stopLoading):
29042        (DocumentLoader::setLoading):
29043        (DocumentLoader::updateLoading):
29044        (DocumentLoader::setFrame):
29045        (DocumentLoader::stopRecordingResponses):
29046        (DocumentLoader::isStopping):
29047        (DocumentLoader::setPrimaryLoadComplete):
29048        (DocumentLoader::finishedLoading):
29049        (DocumentLoader::URL):
29050        (DocumentLoader::isLoadingInAPISense):
29051        (DocumentLoader::frameLoader):
29052        (FrameLoader::overrideMediaType):
29053        (FrameLoader::redirectDataToPlugin):
29054        (FrameLoader::checkLoadCompleteForThisFrame):
29055        (FrameLoader::loadEmptyDocumentSynchronously):
29056        (FrameLoader::startLoading):
29057        (FrameLoader::referrer):
29058        * plugins/win/PluginViewWin.cpp:
29059        (WebCore::PluginViewWin::performRequest):
29060        (WebCore::PluginViewWin::userAgent):
29061
290622006-11-07  Anders Carlsson  <acarlsson@apple.com>
29063
29064        Reviewed by Oliver.
29065
29066        Let the Frame client know when the window object is available.
29067
29068        * bridge/win/FrameWin.cpp:
29069        (WebCore::FrameWin::partClearedInBegin):
29070        * bridge/win/FrameWin.h:
29071        * platform/win/TemporaryLinkStubs.cpp:
29072        (FrameWin::unfocusWindow):
29073        (FrameWin::markMisspellings):
29074        (FrameWin::restoreDocumentState):
29075
290762006-11-07  Adam Roben  <aroben@apple.com>
29077
29078        Build fix.
29079
29080        * platform/win/TemporaryLinkStubs.cpp: Remove no-longer-needed stub.
29081
290822006-11-07  Steve Falkenburg  <sfalken@apple.com>
29083
29084        Fixes for B&I submission
29085
29086        * WebCore.vcproj/WebCore.vcproj:
29087        * WebCore.vcproj/merge-opensource.sh:
29088
290892006-11-06  Kevin McCullough  <kmccullough@apple.com>
29090
29091        -Fix test fields accepting text.
29092
29093        * WebCore.vcproj/WebCore.vcproj:
29094
290952006-11-06  Anders Carlsson  <acarlsson@apple.com>
29096
29097        Reviewed by Dave Hyatt.
29098
29099        <rdar://problem/4778180>
29100        wikipedia.org crashes when loading
29101        
29102        * platform/win/GlyphMapWin.cpp:
29103        (WebCore::GlyphMap::fillPage):
29104        Don't call GetGlyphIndices on buffers larger than the page size. GetGlyphIndicies doesn't know anything about
29105        Unicode supplementary characters and will overwrite the local buffer if the passed-in buffer is bigger than  the page size.
29106
291072006-11-06  Anders Carlsson  <acarlsson@apple.com>
29108
29109        Fork GlyphMapWin.cpp
29110        
29111        * platform/win/GlyphMapWin.cpp: Added.
29112        (WebCore::GlyphMap::fillPage):
29113
291142006-11-06  Geoffrey Garen  <ggaren@apple.com>
29115
29116        Reviewed by Darin.
29117
29118        Hooked up the Chrome and Screen clients on Windows.
29119        
29120        * WebCore.vcproj/WebCore.vcproj:
29121        * bridge/win/PageWin.cpp:
29122        * platform/win/PopupMenuWin.cpp:
29123        (WebCore::PopupMenu::calculatePositionAndSize):
29124        * platform/win/TemporaryLinkStubs.cpp:
29125
291262006-11-06  Anders Carlsson  <acarlsson@apple.com>
29127
29128        Reviewed by Maciej.
29129
29130        Copy npfunctions.h to WebKitOutputDir.
29131        
29132        * WebCore.vcproj/WebCore.vcproj:
29133
291342006-11-06  Steve Falkenburg  <sfalken@apple.com>
29135
29136        Fix double-include of FormData.cpp/.h.
29137
29138        * WebCore.vcproj/WebCore.vcproj:
29139
291402006-11-06  Maciej Stachowiak  <mjs@apple.com>
29141        
29142        - build fixes, adjusted for file move
29143
29144        * WebCore.vcproj/WebCore.vcproj:
29145
291462006-11-05  Beth Dakin  <bdakin@apple.com>
29147
29148        Reviewed by Steve and Anders.
29149
29150        Add client() fucntion to FrameWin to return the FrameClient.
29151
29152        * bridge/win/FrameWin.h:
29153        (WebCore::FrameWin::client):
29154
291552006-11-05  Steve Falkenburg  <sfalken@apple.com>
29156
29157        Fix build
29158
29159        * WebCore.vcproj/WebCore.vcproj:
29160
291612006-11-05  Steve Falkenburg  <sfalken@apple.com>
29162
29163        Fix build breaks
29164
29165        * bridge/win/FrameWin.cpp:
29166        * bridge/win/PageWin.cpp:
29167
291682006-11-04  Darin Adler  <darin@apple.com>
29169
29170        Reviewed by Maciej.
29171
29172        * bridge/win/FrameWin.h:
29173        * bridge/win/FrameWin.cpp:
29174        (WebCore::FrameWin::urlSelected): Updated for change of const Event* to Event*.
29175        (WebCore::FrameWin::submitForm): Added Event* parameter.
29176
291772006-11-03  Maciej Stachowiak  <mjs@apple.com>
29178
29179        Reviewed by Adele.
29180
29181        - replaced receivedRedirect with new willSendRequest delegate
29182        - removed most mac-specific loader functions
29183        - use ResourceResponse more in loader code
29184
29185        * WebCore.vcproj/WebCore.vcproj: Added new files
29186        * platform/win/TemporaryLinkStubs.cpp: Removed unneeded link stubs
29187
291882006-11-03  Steve Falkenburg  <sfalken@apple.com>
29189
29190        Fix build
29191
29192        * config.h: Touched to cause re-build w/ SVG_SUPPORT enabled
29193        * platform/win/TemporaryLinkStubs.cpp:
29194        (WebCore::CachedResource::setResponse): Added
29195
291962006-11-03  Adele Peterson  <adele@apple.com>
29197
29198        Reviewed by Oliver.
29199
29200        Removed DeprecatedRenderSelect and ListBox classes.
29201
29202        * WebCore.vcproj/WebCore.vcproj:
29203        * platform/win/TemporaryLinkStubs.cpp:
29204
292052006-11-03  Anders Carlsson  <acarlsson@apple.com>
29206
29207        Remove SVGRenderAsText files from the project.
29208        
29209        * WebCore.vcproj/WebCore.vcproj:
29210
292112006-11-03  Anders Carlsson  <acarlsson@apple.com>
29212
29213        Build fix.
29214        
29215        * platform/win/TemporaryLinkStubs.cpp:
29216        (WebCore::CachedResource::setPlatformResponse):
29217
292182006-11-03  Geoffrey Garen  <ggaren@apple.com>
29219
29220        Reviewed by Darin, Beth.
29221
29222        Updated to use ChromeClient.
29223        
29224        * WebCore.vcproj/WebCore.vcproj:
29225        * bridge/win/PageWin.cpp:
29226        * loader/win/ResourceLoaderWin.cpp: Added.
29227        (WebCore::ResourceLoader::loadsBlocked):
29228        * platform/win/TemporaryLinkStubs.cpp:
29229
292302006-11-02  Anders Carlsson  <acarlsson@apple.com>
29231
29232        Reviewed by Oliver.
29233
29234        * WebCore.vcproj/WebCore.vcproj:
29235        Use the forked CursorWin.cpp
29236        
29237        * platform/win/CursorWin.cpp:
29238        (WebCore::moveCursor):
29239        Implement this.
29240        
29241        * platform/win/TemporaryLinkStubs.cpp:
29242        Get rid of it here.
29243        
292442006-11-02  Anders Carlsson  <acarlsson@apple.com>
29245
29246        Reviewed by Oliver.
29247
29248        Add forked copy of CursorWin.cpp
29249        
29250        * platform/win/CursorWin.cpp: Added.
29251
292522006-11-01  Oliver Hunt  <oliver@apple.com>
29253
29254        Reviewed by Adam.
29255
29256        Adding SVG_SUPPORT to Boomer.
29257
29258        * WebCore.vcproj/WebCore.vcproj:
29259        * WebCore.vcproj/build-generated-files.sh:
29260        * kcanvas/device/quartz/KCanvasFilterQuartz.cpp: Added.
29261        (WebCore::KCanvasFilterQuartz::KCanvasFilterQuartz):
29262        (WebCore::KCanvasFilterQuartz::~KCanvasFilterQuartz):
29263        (WebCore::KCanvasFilterQuartz::prepareFilter):
29264        (WebCore::KCanvasFilterQuartz::applyFilter):
29265        (WebCore::KCanvasFilterQuartz::imageForName):
29266        (WebCore::KCanvasFilterQuartz::setImageForName):
29267        (WebCore::KCanvasFilterQuartz::setOutputImage):
29268        (WebCore::KCanvasFilterQuartz::inputImage):
29269        * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Added.
29270        (WebCore::SVGResourceMasker::applyMask):
29271
292722006-11-01  Beth Dakin  <bdakin@apple.com>
29273
29274        Reviewed by Adam.
29275
29276        Build fix from Sam Weinig's check-in. i.p in the PaintInfo is now 
29277        i.context
29278
29279        * rendering/RenderThemeWin.cpp:
29280        (WebCore::RenderThemeWin::paintButton):
29281        (WebCore::RenderThemeWin::paintTextField):
29282        (WebCore::RenderThemeWin::paintMenuList):
29283        (WebCore::RenderThemeWin::paintMenuListButton):
29284
292852006-11-01  Anders Carlsson  <acarlsson@apple.com>
29286
29287        Reviewed by Geoff.
29288
29289        * bridge/win/FrameWin.cpp:
29290        (WebCore::FrameWin::createJavaAppletWidget):
29291        Ask the plugin database to create a java applet plugin.
29292
29293        * platform/win/TemporaryLinkStubs.cpp:
29294        Remove FrameWin::createJavaAppletWidget.
29295        
29296        * plugins/win/PluginDatabaseWin.cpp:
29297        (WebCore::PluginDatabaseWin::defaultPluginPaths):
29298        Don't look for the Sun Java plugin anymore.
29299
293002006-11-01  Anders Carlsson  <acarlsson@apple.com>
29301
29302        * plugins/win/PluginStreamWin.cpp:
29303        (WebCore::PluginStreamWin::startStream):
29304        Build fix.
29305        
293062006-11-01  Anders Carlsson  <acarlsson@apple.com>
29307
29308        Reviewed by Adam.
29309
29310        Convert plugin code over to using ResourceResponse.
29311        
29312        * plugins/win/PluginStreamWin.cpp:
29313        (WebCore::PluginStreamWin::startStream):
29314        (WebCore::PluginStreamWin::didReceiveResponse):
29315        (WebCore::PluginStreamWin::didFinishLoading):
29316        * plugins/win/PluginStreamWin.h:
29317        * plugins/win/PluginViewWin.cpp:
29318        (WebCore::PluginViewWin::performRequest):
29319
293202006-10-31  Steve Falkenburg  <sfalken@apple.com>
29321
29322        Yet more B&I build fixes
29323        Another missing .h file from the vcproj
29324
29325        * WebCore.vcproj/WebCore.vcproj:
29326
293272006-10-31  Steve Falkenburg  <sfalken@apple.com>
29328
29329        Another fix for B&I submission
29330        (missing .h files from the WebCore vcproj prevents proper merging of OpenSource/Internal WebCore trees)
29331
29332        * WebCore.vcproj/WebCore.vcproj:
29333
293342006-10-31  Steve Falkenburg  <sfalken@apple.com>
29335
29336        Remove extra files I accidently added
29337
29338        * WebCore.vcproj/WebCore.vcproj:
29339
293402006-10-31  Steve Falkenburg  <sfalken@apple.com>
29341
29342        Build fixes for submission merge script
29343
29344        * WebCore.vcproj/WebCore.vcproj:
29345
293462006-10-31  Adam Roben  <aroben@apple.com>
29347
29348        Build fixes.
29349
29350        * WebCore.vcproj/WebCore.vcproj: Add new platform/graphics directory to
29351        our include path, and copy headers from there for WebKit's benefit.
29352        * bridge/win/FrameWin.cpp: Update accessors of FrameLoadRequest.
29353        (WebCore::FrameWin::urlSelected):
29354        (WebCore::FrameWin::submitForm):
29355        * plugins/win/PluginViewWin.cpp: Ditto.
29356        (WebCore::PluginViewWin::start):
29357        (WebCore::PluginViewWin::performRequest):
29358        (WebCore::PluginViewWin::load):
29359        (WebCore::PluginViewWin::getURLNotify):
29360        (WebCore::PluginViewWin::getURL):
29361        (WebCore::PluginViewWin::handlePost):
29362        * plugins/win/PluginViewWin.h: Correct forward declaration of
29363        FrameLoadRequest.
29364
293652006-10-30  Darin Adler  <darin@apple.com>
29366
29367        Reviewed by Anders.
29368
29369        - remove BrowserExtension
29370
29371        * WebCore.vcproj/WebCore.vcproj:
29372        * bridge/win/FrameWin.cpp:
29373        (WebCore::FrameWin::FrameWin):
29374        * platform/win/TemporaryLinkStubs.cpp:
29375        * plugins/win/PluginViewWin.cpp:
29376        (WebCore::PluginViewWin::performRequest):
29377
293782006-10-30  Anders Carlsson  <acarlsson@apple.com>
29379
29380        Reviewed by Adam.
29381
29382        If there's no plug-in for a given mime type, or if the plug-in fails
29383        to initialize, draw the "missing plug-in" icon.
29384
29385        * plugins/win/PluginDatabaseWin.cpp:
29386        (WebCore::PluginDatabaseWin::createPluginView):
29387        If no plug-in can be found, create a null plugin view.
29388        
29389        * plugins/win/PluginViewWin.cpp:
29390        (WebCore::PluginViewWin::paint):
29391        If the plugin hasn't been started, paint the missing plugin image.
29392        
29393        (WebCore::PluginViewWin::setNPWindowSize):
29394        Return early if the plugin hasn't been started.
29395        
29396        (WebCore::PluginViewWin::start):
29397        Return if the plugin couldn't be created.
29398        
29399        (WebCore::PluginViewWin::createNullPluginView):
29400        New function which just creates a plugin view and doesn't try to start its plugin
29401        (because there is none).
29402        
29403        (WebCore::PluginViewWin::PluginViewWin):
29404        New constructor for the null plugin view.
29405        
294062006-10-31  Darin Adler  <darin@apple.com>
29407
29408        Reviewed by Adam.
29409
29410        * WebCore.vcproj/WebCore.vcproj: Added new source files from the
29411        loader directory.
29412
294132006-10-29  Maciej Stachowiak  <mjs@apple.com>
29414
29415        Reviewed by Anders.
29416
29417        - added ResourceResponse class and didReceiveResponse delegate call
29418
29419        * WebCore.vcproj/WebCore.vcproj: Added new files.
29420        * platform/win/TemporaryLinkStubs.cpp:
29421        (WebCore::ServeSynchronousRequest): Changed prototype to match
29422        new version.
29423
294242006-10-29  Darin Adler  <darin@apple.com>
29425
29426        - update for the WebCore renames
29427
29428        * WebCore.vcproj/WebCore.vcproj:
29429        * bridge/win/FrameWin.cpp:
29430        (WebCore::FrameWin::bindingRootObject):
29431        (WebCore::FrameWin::windowScriptNPObject):
29432        * plugins/win/PluginViewWin.cpp:
29433        (WebCore::PluginViewWin::load):
29434        (WebCore::PluginViewWin::bindingInstance):
29435
294362006-10-29  Maciej Stachowiak  <mjs@apple.com>
29437
29438        Rubber stamped by Darin.
29439
29440        - renamed ResourceLoader to ResourceHandle (and same for related classes)
29441
29442        * WebCore.vcproj/WebCore.vcproj:
29443        * bridge/win/FrameWin.cpp:
29444        * platform/network/win/ResourceHandleWin.cpp: Added.
29445        (WebCore::):
29446        (WebCore::addToOutstandingJobs):
29447        (WebCore::lookupResourceHandle):
29448        (WebCore::ResourceHandleWndProc):
29449        (WebCore::ResourceHandle::onHandleCreated):
29450        (WebCore::ResourceHandle::onRequestRedirected):
29451        (WebCore::ResourceHandle::onRequestComplete):
29452        (WebCore::initializeOffScreenResourceHandleWindow):
29453        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
29454        (WebCore::ResourceHandle::~ResourceHandle):
29455        (WebCore::ResourceHandle::startHTTPRequest):
29456        (WebCore::ResourceHandle::start):
29457        (WebCore::ResourceHandle::fileLoadTimer):
29458        (WebCore::ResourceHandle::cancel):
29459        * platform/network/win/ResourceHandleWin.h: Added.
29460        * platform/network/win/ResourceLoaderWin.cpp: Removed.
29461        * platform/network/win/ResourceLoaderWin.h: Removed.
29462        * platform/win/TemporaryLinkStubs.cpp:
29463        (WebCore::ResourceHandle::assembleResponseHeaders):
29464        (WebCore::ResourceHandle::retrieveResponseEncoding):
29465        (IconLoader::receivedResponse):
29466        * plugins/win/PluginStreamWin.cpp:
29467        (WebCore::PluginStreamWin::start):
29468        (WebCore::PluginStreamWin::deliverData):
29469        (WebCore::PluginStreamWin::receivedResponse):
29470        (WebCore::PluginStreamWin::didReceiveData):
29471        (WebCore::PluginStreamWin::receivedAllData):
29472        * plugins/win/PluginStreamWin.h:
29473
294742006-10-28  Adam Roben  <aroben@apple.com>
29475
29476        Build fix.
29477
29478        * WebCore.vcproj/WebCore.vcproj: Adding new HitTestResult.{cpp,h}
29479        files.
29480
294812006-10-27  Anders Carlsson  <acarlsson@apple.com>
29482
29483        Reviewed by Oliver.
29484
29485        <rdar://problem/4730678> Plug-ins should be able to open URLs
29486
29487        * plugins/win/PluginViewWin.cpp:
29488        (WebCore::PluginViewWin::performRequest):
29489
294902006-10-26  Anders Carlsson  <acarlsson@apple.com>
29491
29492        Reviewed by John Sullivan.
29493
29494        <rdar://problem/4764502> PluginStreams should cancel their loader jobs on error
29495
29496        * plugins/win/PluginStreamWin.cpp:
29497        (WebCore::PluginStreamWin::receivedResponse):
29498        (WebCore::PluginStreamWin::didReceiveData):
29499        (WebCore::PluginStreamWin::receivedAllData):
29500        Modify assertions. None of the above functions should be run after aborting the load.
29501
295022006-10-26  Anders Carlsson  <acarlsson@apple.com>
29503
29504        Reviewed by Adam.
29505
29506        * plugins/win/PluginDatabaseWin.cpp:
29507        (WebCore::addPluginPath):
29508        (WebCore::PluginDatabaseWin::defaultPluginPaths):
29509        Look for plugins in a plugins directory which is relative to the executable directory.
29510        
29511        (WebCore::PluginDatabaseWin::createPluginView):
29512        Use reverseFind instead of findRev here.
29513        
295142006-10-26  Adam Roben  <aroben@apple.com>
29515
29516        Reviewed by Beth.
29517
29518        Fix: <rdar://problem/4799084> Text and dropdown button too close
29519        together in <select>s
29520        Fix: <rdar://problem/4800493> Popup menus should be positioned so that
29521        their text is horizontally aligned with the <select> control's text
29522
29523        * platform/win/PopupMenuWin.cpp:
29524        (WebCore::PopupMenu::calculatePositionAndSize): Switch alignment of LTR
29525        vs. RTL popups, and add padding to align the text.
29526        (WebCore::PopupMenu::paint): Add padding from the <select> control to
29527        align the text with the <select> control's text.
29528        * rendering/RenderThemeWin.cpp: Set svn:eol-style native.
29529        (WebCore::RenderThemeWin::systemFont): Clean up line endings.
29530        (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Add some extra
29531        padding between the dropdown button and text.
29532        (WebCore::RenderThemeWin::paintMenuListButton): Clean up code a bit.
29533
295342006-10-26  Adam Roben  <aroben@apple.com>
29535
29536        Forgot to make the change to Release as well in my last checkin.
29537
29538        * WebCore.vcproj/WebCore.vcproj:
29539
295402006-10-26  Adam Roben  <aroben@apple.com>
29541
29542        Rubberstamped by Steve.
29543
29544        Add some missing '/d' flags to xcopy calls to only copy headers if
29545        they've been modified.
29546
29547        * WebCore.vcproj/WebCore.vcproj:
29548
295492006-10-26  Anders Carlsson  <acarlsson@apple.com>
29550
29551        * platform/win/TemporaryLinkStubs.cpp:
29552        (GraphicsContext::drawLineForMisspellingOrBadGrammar):
29553        Build fix from Oliver.
29554        
295552006-10-26  Anders Carlsson  <acarlsson@apple.com>
29556
29557        Reviewed by Adam.
29558
29559        Use FrameLoadRequest and ResourceRequest instead of passing around
29560        the individual components.
29561        
29562        * plugins/win/PluginStreamWin.cpp:
29563        (WebCore::PluginStreamWin::PluginStreamWin):
29564        (WebCore::PluginStreamWin::start):
29565        (WebCore::PluginStreamWin::destroyStream):
29566        * plugins/win/PluginStreamWin.h:
29567        * plugins/win/PluginViewWin.cpp:
29568        (WebCore::PluginRequestWin::PluginRequestWin):
29569        (WebCore::PluginRequestWin::frameLoadRequest):
29570        (WebCore::PluginViewWin::start):
29571        (WebCore::PluginViewWin::performRequest):
29572        (WebCore::PluginViewWin::load):
29573        (WebCore::PluginViewWin::getURLNotify):
29574        (WebCore::PluginViewWin::getURL):
29575        (WebCore::PluginViewWin::handlePost):
29576        * plugins/win/PluginViewWin.h:
29577
295782006-10-26  Adam Roben  <aroben@apple.com>
29579
29580        Reviewed by Adele.
29581
29582        Fix: <rdar://problem/4794162> Implement type-ahead find for popup menus
29583        Fix: <rdar://problem/4800486> Pressing TAB while a popup is focused
29584        should close the popup and move selection in the page
29585
29586        * platform/win/PopupMenuWin.cpp:
29587        (WebCore::PopupMenu::PopupMenu): Don't cache the focused index.
29588        (WebCore::PopupMenu::focusedIndex): Always get the focused index from
29589        the HTMLSelectElement.
29590        (WebCore::PopupMenu::setFocusedIndex): Invalidate before calling
29591        valueChanged(), as this will change the result of focusedIndex().
29592        (WebCore::PopupMenu::scrollToRevealSelection):
29593        (WebCore::PopupMenu::updateFromElement): New method to repaint/rescroll
29594        the popup.
29595        (WebCore::PopupWndProc): Send TAB keypresses and printable characters
29596        back to the WebView for handling. Also omove handling of Return/Escape
29597        into the WM_CHAR event, as this is recommended by MSDN.
29598
295992006-10-25  Steve Falkenburg  <sfalken@apple.com>
29600
29601        Reviewed by Darin.
29602
29603        Checked in Luke's CG printing code
29604
29605        * bridge/win/FrameWin.cpp:
29606        (WebCore::FrameWin::setupRootForPrinting): Added
29607        (WebCore::FrameWin::computePageRects): Added
29608        * bridge/win/FrameWin.h: Added setupRootForPrinting, computePageRects
29609
296102006-10-24  Maciej Stachowiak  <mjs@apple.com>
29611
29612        Reviewed by Oliver.
29613
29614        - updated for ResourceRequest changes.
29615
29616        * plugins/win/PluginStreamWin.cpp:
29617        (WebCore::PluginStreamWin::setRequestHeaders):
29618        * plugins/win/PluginStreamWin.h:
29619        * plugins/win/PluginViewWin.cpp:
29620        (WebCore::PluginViewWin::loadURL):
29621        (WebCore::parseRFC822HeaderFields):
29622        (WebCore::PluginViewWin::handlePost):
29623        * plugins/win/PluginViewWin.h:
29624
296252006-10-24  Steve Falkenburg  <sfalken@apple.com>
29626
29627        Build fix for official builds
29628
29629        * WebCore.vcproj/WebCore.make:
29630
296312006-10-24  Steve Falkenburg  <sfalken@apple.com>
29632
29633        Fix build so it can be submitted.
29634
29635        * WebCore.vcproj/WebCore.vcproj:
29636        * WebCore.vcproj/merge-opensource.sh:
29637        * rendering/RenderThemeWin.cpp:
29638
296392006-10-24  Geoffrey Garen  <ggaren@apple.com>
29640
29641        Rolling back in, now fixed:
29642        
29643        Nixed a few more redundant loading functions in Frame.
29644
29645        * bridge/win/FrameWin.h:
29646        * platform/win/TemporaryLinkStubs.cpp:
29647        (FrameWin::shouldInterruptJavaScript):
29648        (FrameWin::lastEventIsMouseUp):
29649
296502006-10-24  Maciej Stachowiak  <mjs@apple.com>
29651
29652        Reviewed by Geoff.
29653
29654        - update for ResourceLoader API changes
29655
29656        * platform/win/TemporaryLinkStubs.cpp:
29657        (WebCore::ServeSynchronousRequest):
29658        * plugins/win/PluginStreamWin.cpp:
29659        (WebCore::PluginStreamWin::start):
29660        (WebCore::PluginStreamWin::receivedAllData):
29661        * plugins/win/PluginStreamWin.h:
29662        * plugins/win/PluginViewWin.cpp:
29663        (WebCore::PluginViewWin::performRequest):
29664
296652006-10-24  Geoffrey Garen  <ggaren@apple.com>
29666
29667        Rolling out my last change because it broke the world.
29668        
29669        * bridge/win/FrameWin.h:
29670        * platform/win/TemporaryLinkStubs.cpp:
29671        (FrameWin::openURL):
29672
296732006-10-24  Anders Carlsson  <acarlsson@apple.com>
29674
29675        Reviewed by Adam.
29676
29677        <rdar://problem/4760429> Crash in PluginStreamWin::~PluginStreamWin when 
29678        navigating away from mcdonalds.com
29679        
29680        * plugins/win/PluginPackageWin.cpp:
29681        (WebCore::PluginPackageWin::fetchInfo):
29682        Use fastFree instead of free when memory is allocated by fastMalloc. 
29683        If the plugin name or description is null, don't try to fetch info about the plugin.
29684        
29685        * plugins/win/PluginStreamWin.cpp:
29686        (WebCore::PluginStreamWin::setRequestHeaders):
29687        (WebCore::PluginStreamWin::start):
29688        (WebCore::PluginStreamWin::stop):
29689        * plugins/win/PluginStreamWin.h:
29690        Change type of header map to ResourceRequest::HTTPHeaderMap. When a plugin is stopped,
29691        set its state to StreamStopped.
29692        
29693        * plugins/win/PluginViewWin.cpp:
29694        (WebCore::PluginViewWin::loadURL):
29695        (WebCore::parseRFC822HeaderFields):
29696        (WebCore::PluginViewWin::handlePost):
29697        * plugins/win/PluginViewWin.h:
29698        Update for type changes to the header map.
29699
297002006-10-24  Geoffrey Garen  <ggaren@apple.com>
29701
29702        Reviewed by Anders.
29703        
29704        Nixed a few more redundant loading functions in Frame.
29705
29706        * bridge/win/FrameWin.h:
29707        * platform/win/TemporaryLinkStubs.cpp:
29708        (FrameWin::shouldInterruptJavaScript):
29709        (FrameWin::lastEventIsMouseUp):
29710
297112006-10-23  Geoffrey Garen  <ggaren@apple.com>
29712
29713        Reviewed by Bradee.
29714
29715        Removed methods from BrowserExtension.
29716
29717        * bridge/win/FrameWin.h:
29718        * platform/win/TemporaryLinkStubs.cpp:
29719        (FrameWin::canPaste):
29720        (FrameWin::canGoBackOrForward):
29721        (FrameWin::goBackOrForward):
29722        (FrameWin::getHistoryLength):
29723        (FrameWin::historyURL):
29724        (Page::canRunModal):
29725        (Page::canRunModalNow):
29726        (Page::runModal):
29727        (BrowserExtensionWin::BrowserExtensionWin):
29728
297292006-10-23  Adam Roben  <aroben@apple.com>
29730
29731        Reviewed by Adele.
29732
29733        Fix: <rdar://problem/4796994> Styled <select>s should still use Windows
29734        theme
29735
29736        The fix is to do most of our drawing for menulists in
29737        RenderThemeWin::paintMenuListButton (which is called for styled
29738        <select>s), and then do any extra drawing for unstyled <select>s in
29739        RenderThemeWin::paintMenuList.
29740
29741        * rendering/RenderThemeWin.cpp:
29742        (WebCore::RenderThemeWin::getThemeData): Case for
29743        MenulistButtonAppearance should be the same as MenulistAppearance.
29744        (WebCore::RenderThemeWin::paintMenuList): Draw the border, then defer
29745        to paintMenuListButton to handle the rest of painting.
29746        (WebCore::RenderThemeWin::adjustMenuListStyle): Reset the border so we
29747        can draw our own, then defer to adjustMenuListStyle.
29748        (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Code moved from
29749        adjustMenuListStyle, less the call to resetBorder().
29750        (WebCore::RenderThemeWin::paintMenuListButton): Code moved from
29751        paintMenuList, less the border-drawing code.
29752        * rendering/RenderThemeWin.h:
29753
297542006-10-23  Adam Roben  <aroben@apple.com>
29755
29756        Reviewed by Adele.
29757
29758        Fix: <rdar://problem/4786759> PageUp/PageDown/Home/End don't work in
29759        <select> menus
29760
29761        * platform/win/PopupMenuWin.cpp:
29762        (WebCore::PopupMenu::setFocusedIndex): Only call ::UpdateWindow if we
29763        didn't scroll, because scrolling will do the update for us.
29764        (WebCore::PopupMenu::focusFirst): New method.
29765        (WebCore::PopupMenu::focusLast): New method.
29766        (WebCore::PopupMenu::down): Add a parameter to specify how far we
29767        should try to move the selection.
29768        (WebCore::PopupMenu::up): Ditto.
29769        (WebCore::PopupMenu::invalidateItem): Cleanup code by using IntRect
29770        instead of RECT.
29771        (WebCore::PopupMenu::scrollTo): Return a boolean to say whether
29772        scrolling actually happened.
29773        (WebCore::PopupMenu::scrollToRevealSelection): Ditto.
29774        (WebCore::PopupWndProc): Handle PageUp/PageDown/Home/End.
29775
297762006-10-23  Adam Roben  <aroben@apple.com>
29777
29778        Build fix.
29779
29780        * WebCore.vcproj/WebCore.vcproj: Copy headers from new platform/network
29781        directory and subdirectories.
29782
297832006-10-23  Adam Roben  <aroben@apple.com>
29784
29785        Build fix.
29786
29787        * plugins/win/PluginStreamWin.h: Rename methods to match Maciej's
29788        changes.
29789
297902006-10-23  Adam Roben  <aroben@apple.com>
29791
29792        Build fix.
29793
29794        * WebCore.vcproj/WebCore.vcproj: Copied AdditionalIncludeDirectories
29795        from Release to All Configurations.
29796
297972006-10-23  Maciej Stachowiak  <mjs@apple.com>
29798
29799        Rubber-stamped by Anders.
29800
29801        - fixed for ResourceLoader refactoring.
29802
29803        * platform/network/win/ResourceLoaderWin.cpp:
29804        (WebCore::ResourceLoader::onRequestComplete):
29805        (WebCore::ResourceLoader::fileLoadTimer):
29806        (WebCore::ResourceLoader::cancel):
29807        * plugins/win/PluginStreamWin.cpp:
29808        (WebCore::PluginStreamWin::didReceiveData):
29809        (WebCore::PluginStreamWin::didFinishLoading):
29810        * plugins/win/PluginViewWin.cpp:
29811        (WebCore::PluginViewWin::performRequest):
29812
298132006-10-22  Maciej Stachowiak  <mjs@apple.com>
29814
29815        Reviewed by Anders.
29816
29817        - updated for new ResourceLoader file locations.
29818
29819        * WebCore.vcproj/WebCore.vcproj: Updated file paths.
29820        * platform/win/ResourceLoaderWin.cpp: Moved to platform/network/win
29821        * platform/win/ResourceLoaderWin.h: ditto
29822
298232006-10-22  Adam Roben  <aroben@apple.com>
29824
29825        Reviewed by Steve.
29826
29827        Fix some crashes caused by the <select> element being detached while
29828        the popup is open.
29829
29830        * platform/win/PopupMenuWin.cpp:
29831        (WebCore::PopupWndProc):
29832
298332006-10-21  Adam Roben  <aroben@apple.com>
29834
29835        Reviewed by Anders.
29836
29837        Fix: <rdar://problem/4794151> Popup should scroll to reveal selected
29838        item, not just one line at a time
29839        Fix: <rdar://problem/4794229> Popup hot-tracking should not change text
29840        in <select> control
29841
29842        * platform/win/PopupMenuWin.cpp:
29843        (WebCore::PopupMenu::calculatePositionAndSize): Cleaned up code by
29844        translating into screen coordinates right away.
29845        (WebCore::PopupMenu::setFocusedIndex): Added parameter to specify
29846        whether the text in the <select> control should be updated.
29847        (WebCore::PopupMenu::scrollTo): Extracted scrolling code from
29848        PopupWndProc to here.
29849        (WebCore::PopupMenu::scrollToRevealSelection): New method.
29850        (WebCore::PopupWndProc): Use scrollToRevealSelection() instead of
29851        manually scrolling one line at a time. Fixed a bug in detecting a
29852        mouse drag.  Pass in HDC from ::BeginPaint to PopupMenu::paint.
29853
298542006-10-21  Adam Roben  <aroben@apple.com>
29855
29856        Build fix.
29857
29858        * WebCore.vcproj/WebCore.vcproj: Add new DeleteButton* files to
29859        project.
29860
298612006-10-20  Steve Falkenburg  <sfalken@apple.com>
29862
29863        Reviewed by Anders.
29864
29865        Turn on CFNetwork
29866
29867        * config.h:
29868
298692006-10-20  Steve Falkenburg  <sfalken@apple.com>
29870
29871        Reviewed by Ada.
29872
29873        <rdar://4778502> Boomer userAgent string needs to support pulling in proper build #, plus customization
29874
29875        Useragent/versioning changes
29876        
29877        Stamp auto-generated version number into DLL and into user agent.
29878        Generate a real user agent string instead of hardcoding one.
29879        Support client supplying an application name for the user agent.
29880        Support client overriding the useragent (for debug menu).
29881        Support per-URL user agents (not used at least for now).
29882
29883        * bridge/win/FrameWin.cpp:
29884        (WebCore::FrameWin::userAgent): Now calls userAgentForURL
29885        (WebCore::FrameWin::originalRequestURL): Implemented
29886        * bridge/win/FrameWin.h: changed userAgent to userAgentForURL, added originalRequestURL
29887        * platform/win/TemporaryLinkStubs.cpp: Removed originalRequestURL
29888
298892006-10-20  Alice Liu  <alice.liu@apple.com>
29890
29891        Reviewed by Steve.
29892
29893        Adding knowledge of the Editor and EditorClient to Windows WebCore
29894
29895        No layout tests needed
29896        
29897        * WebCore.vcproj/WebCore.vcproj:
29898        added Sound.h, SoundWin.cpp, EditorClient.h, Editor.h&.cpp
29899
29900        * bridge/win/FrameWin.cpp:
29901        (WebCore::FrameWin::FrameWin):
29902        added client to constructor params
29903
29904        * bridge/win/FrameWin.h:
29905        added client to constructor params
29906
29907        * platform/win/SoundWin.cpp: Added.
29908        (WebCore::systemBeep):
29909        Calls windows system beep
29910
299112006-10-19  Steve Falkenburg  <sfalken@apple.com>
29912
29913        Reviewed by Adam.
29914
29915        <rdar://4771958> Holding down Ctrl when a redirect happens opens the redirected page in a new tab
29916        
29917        Send triggering event to url selection.
29918
29919        * bridge/win/FrameWin.cpp:
29920        (WebCore::FrameWin::urlSelected): Add triggeringEvent parameter
29921        * bridge/win/FrameWin.h: Add triggeringEvent parameter
29922        * platform/win/PlatformMouseEventWin.cpp:
29923        (WebCore::PlatformMouseEvent::PlatformMouseEvent): Call GetKeyState instead of GetAsyncKeyState
29924        * platform/win/WheelEventWin.cpp:
29925        (WebCore::PlatformWheelEvent::PlatformWheelEvent): Call GetKeyState instead of GetAsyncKeyState
29926
299272006-10-19  Adam Roben  <aroben@apple.com>
29928
29929        Reviewed by Ada.
29930
29931        This is a partial reimplementation of PopupMenu for Windows. The old
29932        implementation used the Win32 ListBox control, but as we needed to
29933        customize the behavior more and more it began to make sense to roll our
29934        own popup from scratch. That is what this patch accomplishes. And...
29935
29936        Fix: <rdar://problem/4709416>
29937        Implement mouse hot-tracking for <select> menus
29938        Fix: <rdar://problem/4786763>
29939        Can select disabled options in <select> menus using mouse
29940        (It was easier to implement these than to leave them broken.)
29941
29942        * WebCore.vcproj/WebCore.vcproj: Removed PopupMenu.cpp from project.
29943        * platform/win/PopupMenuWin.cpp: Carnage. PopupMenu has gained a slew
29944        of new private instance variables to maintain the window state.
29945        m_container has been removed as it is no longer needed.
29946        (WebCore::PopupMenu::PopupMenu): Initialize new variables.
29947        (WebCore::PopupMenu::~PopupMenu): Clean up new variables.
29948        (WebCore::PopupMenu::show): Now that we don't have m_container, m_popup
29949        gets the WS_BORDER and WS_POPUP styles. Also moved code to animate the
29950        window out of the old PopupMenu::setPositionAndSize() into this method
29951        since it fits the purpose of this method better.
29952        (WebCore::PopupMenu::hide):
29953        (WebCore::PopupMenu::calculatePositionAndSize): Renamed from
29954        setPositionAndSize(), as this method no longer actually sets the window
29955        position and size, just calculates it. It also now makes sure the
29956        window is sized to never show partial items, and takes into account the
29957        window's border when calculating the size.
29958        (WebCore::PopupMenu::setFocusedIndex): New method to handle setting the
29959        selected index of the <select> and highlighting the item in the popup menu.
29960        (WebCore::PopupMenu::down): Use setSelectedIndex() to do the dirty work.
29961        (WebCore::PopupMenu::up): Ditto.
29962        (WebCore::PopupMenu::invalidateItem): New method to invalidate the
29963        rectangle in the popup menu for this item.
29964        (WebCore::PopupMenu::clientRect): New method to calculate an IntRect
29965        for the client area of the window.
29966        (WebCore::PopupMenu::incrementWheelDelta): New method to add the wheel
29967        delta obtained from a WM_MOUSEWHEEL message to any pre-existing delta.
29968        (WebCore::PopupMenu::reduceWheelDelta): New method to reduce the
29969        pre-existing wheel delta by a given amount towards 0.
29970        (WebCore::PopupMenu::paint): Does the work that PopupMenu::drawItem
29971        did, but for every item contained within the damageRect. Can also paint
29972        into a passed-in HDC (needed for window animations and smooth-scrolling).
29973        (WebCore::registerPopup): Changed a void* to a PopupMenu*, since that's
29974        what it really is.
29975        (WebCore::PopupWndProc): Added code to handle all the messages any
29976        self-respecting window would handle, and removed messages only relevant
29977        to the ListBox control.
29978        * platform/win/TemporaryLinkStubs.cpp: Removed unneeded #include.
29979
299802006-10-19  Adam Roben  <aroben@apple.com>
29981
29982        Rubberstamped by Maciej.
29983
29984        Build fix.
29985
29986        * bridge/win/FrameWin.cpp:
29987        (WebCore::FrameWin::submitForm):
29988
299892006-10-19  Maciej Stachowiak  <mjs@apple.com>
29990
29991        Reviewed by Steve.
29992
29993        - speculative build fix for Windows for my recent changes.
29994
29995        * bridge/win/FrameWin.cpp:
29996        (WebCore::FrameWin::submitForm):
29997
299982006-10-19  Anders Carlsson  <acarlsson@apple.com>
29999
30000       * platform/win/TemporaryLinkStubs.cpp:
30001        (WebCore::ResourceLoader::retrieveResponseEncoding):
30002        Build fix.
30003
300042006-10-18  Maciej Stachowiak  <mjs@apple.com>
30005
30006        Reviewed by Geoff.
30007
30008        - remove remnants of KXMLCore name.
30009
30010        * WebCore.vcproj/WebCore.vcproj:
30011        * config.h:
30012
300132006-10-18  Steve Falkenburg  <sfalken@apple.com>
30014
30015        Fix build
30016
30017        * platform/win/TemporaryLinkStubs.cpp:
30018        (BrowserExtensionWin::historyURL):
30019        (BrowserExtensionWin::BrowserExtensionWin):
30020
300212006-10-17  Steve Falkenburg  <sfalken@apple.com>
30022
30023        Build fix
30024
30025        * platform/win/TemporaryLinkStubs.cpp:
30026        (BrowserExtensionWin::createNewWindow):
30027
300282006-10-17  Geoffrey Garen  <ggaren@apple.com>
30029
30030        Reviewed by Anders.
30031        
30032        Added WindowFeatures.h to the project.
30033
30034        * WebCore.vcproj/WebCore.vcproj:
30035
300362006-10-17  Steve Falkenburg  <sfalken@apple.com>
30037
30038        Reviewed by Maciej.
30039
30040        Turn off a very noisy warning (unknown pragma) caused by an Interfacer include
30041
30042        * WebCore.vcproj/WebCore.vcproj:
30043
300442006-10-17  Oliver Hunt  <oliver@apple.com>
30045
30046        Reviewed by Brady.
30047
30048        Fixed alpha in favicons, added composite operation conversion
30049        for cg
30050        
30051        rdar://problem/4758934
30052
30053        * platform/win/GraphicsContextWin.cpp:
30054        (WebCore::GraphicsContext::setCompositeOperation):
30055        * platform/win/ImageWin.cpp:
30056        (WebCore::Image::getHBITMAP):
30057        * platform/win/TemporaryLinkStubs.cpp:
30058        (GraphicsContext::drawLineForMisspelling):
30059
300602006-10-15  Geoffrey Garen  <ggaren@apple.com>
30061
30062        Reviewed by Adam.
30063
30064        Added HTMLFrameElementBase to the project.
30065        
30066        * WebCore.vcproj/WebCore.vcproj:
30067
300682006-10-17  Adam Roben  <aroben@apple.com>
30069
30070        Reviewed by Geoff.
30071
30072        A couple of cleanups that Geoff suggested after my last checkin.
30073
30074        * platform/win/PopupMenuWin.cpp:
30075        (WebCore::PopupMenu::setPositionAndSize):
30076
300772006-10-17  Adam Roben  <aroben@apple.com>
30078
30079        Reviewed by Adele.
30080
30081        Fix: <rdar://problem/4772506> <select> popup menu should not clip items
30082        when width: is set.
30083
30084        Popups are now sized and positioned as follows:
30085        1. Popups are at least as wide as the <select> control on the page.
30086        2. Popups for LTR <select>s are right-aligned with the <select>, popups
30087           for RTL <select>s are left-aligned. This means the scrollbar in the
30088           popup will always line up with the dropdown button in the <select>.
30089        3. Popups try to be wide enough to fit their widest item, but will
30090           shrink to ensure they don't extend off the screen.
30091
30092        * platform/win/PopupMenuWin.cpp:
30093        (WebCore::PopupMenu::setPositionAndSize):
30094
300952006-10-16  Adam Roben  <aroben@apple.com>
30096
30097        Reviewed by Kevin.
30098
30099        Fix: <rdar://problem/4758923> <select> menu text doesn't draw right
30100        aligned on right-to-left sites
30101
30102        * platform/win/PopupMenuWin.cpp:
30103        (WebCore::PopupMenu::show): Pass appropriate styles to CreateWindowEx
30104        so that we get a left-aligned scrollbar in RTL popups.
30105        (WebCore::PopupMenu::drawItem): Set text to be right-aligned and draw
30106        RTL when direction:rtl is set.
30107        (WebCore::PopupWndProc): Add 1px of vertical height to each menu item
30108        to match RenderListBox.
30109        * rendering/RenderThemeWin.cpp:
30110        (WebCore::RenderThemeWin::paintMenuList): Draw the dropdown button on
30111        the left when in RTL.
30112        (WebCore::RenderThemeWin::adjustMenuListStyle): Set padding to allow
30113        for the dropdown button being on the left in RTL.
30114
301152006-10-16  Adam Roben  <aroben@apple.com>
30116
30117        Reviewed by John.
30118
30119        Forgot to save these changes John suggested before checking in.
30120
30121        * platform/win/PopupMenuWin.cpp:
30122        (WebCore::PopupMenu::drawItem):
30123
301242006-10-16  Adam Roben  <aroben@apple.com>
30125
30126        Reviewed by John.
30127
30128        Fix: <rdar://problem/4709480> Implement option groups
30129        Fix: <rdar://problem/4785693> Use CG to draw popup menu items
30130        Fix: <rdar://problem/4709487> Implement separators in <select> popups
30131        Fix: <rdar://problem/4709358> Move CreateWindowEx calls out of PopupMenu constructor
30132
30133        * platform/win/PopupMenuWin.cpp: Added some now-required #includes,
30134        moved some constants into the WebCore namespace.
30135        (WebCore::PopupMenu::PopupMenu): Moved CreateWindowEx calls into PopupMenu::show().
30136        (WebCore::PopupMenu::show): Pass LBS_OWNERDRAWFIXED to CreateWindowEx
30137        to assume responsibility for drawing menu itesm. Removed call to set
30138        the font on the popup menu, as CG will take care of this.
30139        (WebCore::addString): Added to help with the PopupMenu::add* methods.
30140        (WebCore::PopupMenu::addOption): Use addString.
30141        (WebCore::PopupMenu::addGroupLabel): Ditto, and moved from TemporaryLinkStubs.cpp.
30142        (WebCore::PopupMenu::addSeparator): Ditto.
30143        (WebCore::PopupMenu::down): Skip items that are not enabled <option>
30144        elements, and tell the popup menu to set the selection to the element
30145        we end up on.
30146        (WebCore::PopupMenu::up): Ditto.
30147        (WebCore::PopupMenu::drawItem): Added. This is the method that is
30148        called to draw each item in the menu.
30149        (WebCore::PopupWndProc): Add cases for WM_MEASUREITEM and WM_DRAWITEM
30150        messages (required now that we're drawing the menu items ourselves). In
30151        the cases for arrow key presses, return -2 to signify that we're
30152        handling all aspects of changing the selection.
30153        * platform/win/TemporaryLinkStubs.cpp: Removed PopupMenu::addSeparator
30154        and PopupMenu::addGroupLabel.
30155
301562006-10-15  Adam Roben  <aroben@apple.com>
30157
30158        Build fix.
30159
30160        Merge OpenSource r17056 to TemporaryLinkStubs.cpp.
30161
30162        * platform/win/TemporaryLinkStubs.cpp:
30163        (WebCore::CacheObjectExpiresTime):
30164        (WebCore::ResponseIsMultipart):
30165        (WebCore::ResponseMIMEType):
30166        (WebCore::IsResponseURLEqualToURL):
30167        (WebCore::ResponseURL):
30168        (WebCore::CachedResource::setResponse):
30169        (WebCore::CachedResource::setAllData):
30170
301712006-10-13  Maciej Stachowiak  <mjs@apple.com>
30172
30173        Reviewed by Darin.
30174
30175        - split FrameLoadRequest off from ResourceRequest - it's a ResourceRequest plus frame name plus lockHistory bool
30176
30177        * WebCore.vcproj/WebCore.vcproj:
30178        * bridge/win/FrameWin.cpp:
30179        (WebCore::FrameWin::urlSelected):
30180        (WebCore::FrameWin::submitForm):
30181        * bridge/win/FrameWin.h:
30182        * platform/win/TemporaryLinkStubs.cpp:
30183        (BrowserExtensionWin::createNewWindow):
30184        (IconLoader::notifyIconChanged):
30185
301862006-10-13  Dave Hyatt  <hyatt@apple.com>
30187
30188        Make form controls work inside transparency layers by having
30189        them draw into bitmap that is then turned into a CGImageRef
30190        and blended into the CG transparency layer.
30191
30192        Reviewed by aroben
30193
30194        * platform/cg/GraphicsContextPlatformPrivate.h:
30195        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
30196        (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
30197        (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
30198        * platform/win/GraphicsContextWin.cpp:
30199        (WebCore::GraphicsContext::getWindowsContext):
30200        (WebCore::GraphicsContext::releaseWindowsContext):
30201        * platform/win/IconWin.cpp:
30202        (WebCore::Icon::paint):
30203        * platform/win/PlatformScrollBar.h:
30204        * platform/win/PlatformScrollBarWin.cpp:
30205        (WebCore::PlatformScrollbar::PlatformScrollbar):
30206        (WebCore::PlatformScrollbar::paint):
30207        (WebCore::PlatformScrollbar::paintButton):
30208        (WebCore::PlatformScrollbar::paintTrack):
30209        (WebCore::PlatformScrollbar::paintThumb):
30210        * rendering/RenderThemeWin.cpp:
30211        (WebCore::RenderThemeWin::RenderThemeWin):
30212        (WebCore::drawControl):
30213
302142006-10-12  Dave Hyatt  <hyatt@apple.com>
30215
30216        Voting Cairo off the island
30217
30218        or
30219
30220        Jeff Probst: "Cairo, the tribe has spoken.  It's time for you
30221        to go."
30222
30223        * WebCore.vcproj/WebCore.vcproj:
30224        * platform/win/FontDataWin.cpp:
30225        (WebCore::FontData::platformInit):
30226        (WebCore::FontData::platformDestroy):
30227        (WebCore::FontData::platformWidthForGlyph):
30228        * platform/win/FontPlatformData.h:
30229        (WebCore::FontPlatformData::FontPlatformData):
30230        (WebCore::FontPlatformData::hfont):
30231        (WebCore::FontPlatformData::cgFont):
30232        (WebCore::FontPlatformData::operator==):
30233        * platform/win/FontPlatformDataWin.cpp:
30234        * platform/win/FontWin.cpp:
30235        (WebCore::Font::drawGlyphs):
30236        * platform/win/GraphicsContextWin.cpp:
30237        * platform/win/IconWin.cpp:
30238        * platform/win/ImageWin.cpp:
30239        (WebCore::Image::loadPlatformResource):
30240        * platform/win/TemporaryLinkStubs.cpp:
30241        (GraphicsContextPlatformPrivate::clip):
30242        (GraphicsContext::drawLineForMisspelling):
30243
302442006-10-12  Adele Peterson  <adele@apple.com>
30245
30246        RS by Geoff.
30247
30248        Renamed uploadControlDetaching to disconnectUploadControl.
30249
30250        * platform/win/FileChooserWin.cpp:
30251        (WebCore::FileChooser::disconnectUploadControl):
30252
302532006-10-12  Adele Peterson  <adele@apple.com>
30254
30255        Reviewed by Alice. 
30256
30257        Fixed a small oversight from the last checkin.  The populate method was calling itself, 
30258        instead of the newly renamed addItems method.
30259
30260        * platform/win/PopupMenuWin.cpp:
30261        (WebCore::PopupMenu::populate):
30262
302632006-10-12  Adam Roben  <aroben@apple.com>
30264
30265        Reviewed by Adele.
30266
30267        Move popup menu code out of rendering/ and into platform/.
30268        RenderPopupMenu becomes PopupMenu, the
30269        RenderPopupMenuMac/RenderPopupMenuWin subclasses and all the associated
30270        virtual methods go away, RenderTheme gets to stop worrying about popup
30271        menus, PopupMenu becomes ref-counted, and everyone becomes happy.
30272
30273        Also fixes <rdar://problem/4710456> Get rid of RenderPopupMenu{Win,Mac}
30274        classes.
30275
30276        * WebCore.vcproj/WebCore.vcproj: Move files within project.
30277        * platform/win/PopupMenuWin.cpp: Moved from
30278        rendering/RenderPopupMenuWin.cpp. Rename RenderPopupMenuWin to
30279        PopupMenu.
30280        (WebCore::PopupMenu::PopupMenu):
30281        (WebCore::PopupMenu::~PopupMenu):
30282        (WebCore::PopupMenu::clear):
30283        (WebCore::PopupMenu::populate):
30284        (WebCore::PopupMenu::show):
30285        (WebCore::PopupMenu::hide):
30286        (WebCore::PopupMenu::setPositionAndSize):
30287        (WebCore::PopupMenu::addOption):
30288        (WebCore::PopupMenu::focusedIndex): New method to get the index of the
30289        element that is currently highlighted. This won't always be the same as
30290        the selectedIndex because of mouse hot-tracking.
30291        (WebCore::PopupMenu::down):
30292        (WebCore::PopupMenu::up):
30293        (WebCore::registerPopup):
30294        (WebCore::PopupWndProc): Use focusedIndex() instead of sending messages
30295        to the popup window.
30296        * platform/win/TemporaryLinkStubs.cpp: Rename RenderPopupMenuWin to PopupMenu.
30297        (PopupMenu::addSeparator):
30298        (PopupMenu::addGroupLabel):
30299        * rendering/RenderPopupMenuWin.cpp: Removed.
30300        * rendering/RenderPopupMenuWin.h: Removed.
30301        * rendering/RenderThemeWin.cpp: Get rid of createPopupMenu() method.
30302        * rendering/RenderThemeWin.h: Ditto.
30303
303042006-10-12  Dave Hyatt  <hyatt@apple.com>
30305
30306        Implement full-blown double buffering (keeping a bitmap in the WebView that holds the backing store for it).
30307        
30308        Reviewed by mjs
30309
30310        * bridge/win/FrameWin.cpp:
30311        (WebCore::FrameWin::addToDirtyRegion):
30312        (WebCore::FrameWin::scrollBackingStore):
30313        (WebCore::FrameWin::updateBackingStore):
30314        * bridge/win/FrameWin.h:
30315        * platform/win/PlatformScrollBar.h:
30316        * platform/win/PlatformScrollBarWin.cpp:
30317        (WebCore::PlatformScrollbar::windowClipRect):
30318        * platform/win/ScrollViewWin.cpp:
30319        (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
30320        (WebCore::ScrollView::ScrollViewPrivate::windowClipRect):
30321        (WebCore::ScrollView::updateContents):
30322        (WebCore::ScrollView::updateScrollbars):
30323        (WebCore::ScrollView::windowResizerRect):
30324        (WebCore::ScrollView::addToDirtyRegion):
30325        (WebCore::ScrollView::scrollBackingStore):
30326        (WebCore::ScrollView::updateBackingStore):
30327        * platform/win/WidgetWin.cpp:
30328        (WebCore::Widget::suppressInvalidation):
30329        (WebCore::Widget::invalidateRect):
30330        * plugins/win/PluginViewWin.cpp:
30331        (WebCore::PluginViewWin::windowClipRect):
30332
303332006-10-11  Adam Roben  <aroben@apple.com>
30334
30335        Rubberstamped by Brady.
30336
30337        Clean up logic in Icon::newIconForFile.
30338
30339        * platform/win/IconWin.cpp:
30340        (WebCore::Icon::newIconForFile): Error case should return early.
30341
303422006-10-11  Adam Roben  <aroben@apple.com>
30343
30344        Reviewed by Steve.
30345
30346        Fixes <rdar://problem/4777719>
30347        Icons don't paint with CG
30348
30349        * platform/win/IconWin.cpp:
30350        (WebCore::Icon::paint): Remove Cairo-specific code now that we have
30351        GraphicsContextWin.
30352
303532006-10-11  Adam Roben  <aroben@apple.com>
30354
30355        Rubberstamped by Anders.
30356
30357        Clean up FileChooser::create, Icon::create.
30358
30359        * platform/win/FileChooserWin.cpp:
30360        (WebCore::FileChooser::create): Just return a FileChooser* and let the
30361        implicit cast happen.
30362        * platform/win/IconWin.cpp:
30363        (WebCore::Icon::newIconForFile): Ditto for Icon*.
30364
303652006-10-10  Adam Roben  <aroben@apple.com>
30366
30367        Reviewed by Oliver.
30368
30369        Fixes <rdar://problem/4731316>
30370        Crash when <input type="file"> element removed while file chooser is open
30371
30372        * platform/win/FileChooserWin.cpp: Make FileChooser ref-counted.
30373        (WebCore::FileChooser::create):
30374        (WebCore::FileChooser::openFileChooser): Add a protector RefPtr around
30375        the call to GetOpenFileName so we don't get deleted while the file
30376        chooser window is open.
30377
303782006-10-10  Adam Roben  <aroben@apple.com>
30379
30380        Reviewed by Anders.
30381
30382        Fixes <rdar://problem/4772428>
30383        <select> popup menus positioned incorrectly within frames
30384
30385        * rendering/RenderPopupMenuWin.cpp:
30386        (WebCore::RenderPopupMenuWin::setPositionAndSize): Use
30387        contentsToWindow() instead of scrollOffset() to correct menu location.
30388
303892006-10-10  Adam Roben  <aroben@apple.com>
30390
30391        Reviewed by Adele.
30392
30393        Fixes <rdar://problem/4763246>
30394        Using arrow keys in <select> popup fires onChange event
30395
30396        Also updates text shown in <select> element on page when using arrow
30397        keys to change selection within the popup menu, and makes onChange fire
30398        in the same cases as Firefox/IE.
30399
30400        * rendering/RenderPopupMenuWin.cpp:
30401        (WebCore::RenderPopupMenuWin::down): Update text of the <select>
30402        control. Change call to valueChanged() so that onChange doesn't fire.
30403        (WebCore::RenderPopupMenuWin::up): Ditto.
30404        (WebCore::PopupWndProc): Don't fire onChange anytime selection changes.
30405        Fire onChange when pressing Enter
30406
304072006-10-09  Anders Carlsson  <acarlsson@apple.com>
30408
30409        Reviewed by Maciej.
30410
30411        Fix <rdar://problem/4756255>
30412        PDF/Acrobat Reader plugin don't work
30413        
30414        * bridge/win/FrameWin.cpp:
30415        (WebCore::FrameWin::getObjectInstanceForWidget):
30416        (WebCore::FrameWin::getEmbedInstanceForWidget):
30417        Implement these, getting the instance from the plugin view.
30418        
30419        * platform/win/TemporaryLinkStubs.cpp:
30420        Remove functions that are now implemented.
30421        
30422        * plugins/win/PlugInInfoStoreWin.cpp:
30423        (WebCore::PlugInInfoStore::pluginCount):
30424        (WebCore::PlugInInfoStore::supportsMIMEType):
30425        Implement this, returning whether we a plugin exists for a given mime type.
30426        
30427        * plugins/win/PluginDatabaseWin.cpp:
30428        (WebCore::parseVersionString):
30429        (WebCore::compareVersions):
30430        New functions for handling versions.
30431        
30432        (WebCore::addMozillaPluginPaths):
30433        (WebCore::addWindowsMediaPlayerPluginPath):
30434        (WebCore::addQuickTimePluginPath):
30435        (WebCore::addJavaPluginPath):
30436        (WebCore::addAdobeAcrobatPluginPath):
30437        (WebCore::PluginDatabaseWin::defaultPluginPaths):
30438        Factor out checks into separate functions, add checks for Java and Adobe Acrobat.
30439
30440        (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
30441        Handle null MIME types.
30442        
30443        * plugins/win/PluginPackageWin.cpp:
30444        (WebCore::PluginPackageWin::load):
30445        Add some missing functions. Unload the library if the load failed.
30446        
30447        * plugins/win/PluginViewWin.cpp:
30448        (WebCore::PluginViewWin::getValue):
30449        Uncomment code for getting the element object.
30450        
30451        (WebCore::PluginViewWin::bindingInstance):
30452        * plugins/win/PluginViewWin.h:
30453        New function which fetches the plugin NPObject and wraps it in an instance.
30454
304552006-10-09  Anders Carlsson  <acarlsson@apple.com>
30456
30457        Reviewed by Steve.
30458
30459        Fix <rdar://problem/4773320>
30460        Safari didn't pick up quicktime that was already installed
30461        
30462        * plugins/win/PluginDatabaseWin.cpp:
30463        (WebCore::PluginDatabaseWin::defaultPluginPaths):
30464        
304652006-10-09  Anders Carlsson  <acarlsson@apple.com>
30466
30467        * WebCore.vcproj/WebCore.vcproj:
30468        * bridge/win/FrameWin.h:
30469        * platform/win/TemporaryLinkStubs.cpp:
30470        (FrameWin::createJavaAppletWidget):
30471        Fix build.
30472
304732006-10-09  Adam Roben  <aroben@apple.com>
30474
30475        Reviewed by Adele.
30476
30477        Fixes <rdar://problem/4773142>
30478        Crash in Settings::mediumFontSize() on ebay.com
30479
30480        Call cancelAndClear() from ~FrameWin (just like Mac does) so we don't
30481        end up calling the Frame::saveDocumentState, which is pure virtual.
30482
30483        * bridge/win/FrameWin.cpp:
30484        (WebCore::FrameWin::~FrameWin):
30485
304862006-10-08  Adam Roben  <aroben@apple.com>
30487
30488        Reviewed by Maciej.
30489
30490        Port of OpenSource r16526, r16528
30491
30492        Break up ResourceLoaderWndProc into callback functions.
30493
30494        * platform/win/ResourceLoaderWin.cpp: Fix up #includes
30495        (WebCore::): Remove loadStatusMessage, struct JobLoadStatus, add
30496        messageHandlers array.
30497        (WebCore::ResourceLoaderWndProc): Split handling of different messages
30498        into callbacks.
30499        (WebCore::ResourceLoader::onHandleCreated): New callback.
30500        (WebCore::ResourceLoader::onRequestRedirected): New callback.
30501        (WebCore::ResourceLoader::onRequestComplete): New callback.
30502        (WebCore::initializeOffScreenResourceLoaderWindow): No need to register
30503        loadStatusMessage anymore.
30504        (WebCore::transferJobStatusCallback): Change how information is passed
30505        into ResourceLoaderWndProc.
30506
305072006-10-08  Dave Hyatt  <hyatt@apple.com>
30508
30509        Add support for the Win2k/Classic theme for all controls.
30510
30511        * rendering/RenderThemeWin.cpp:
30512        (WebCore::RenderThemeWin::buttonTheme):
30513        (WebCore::RenderThemeWin::textFieldTheme):
30514        (WebCore::RenderThemeWin::menuListTheme):
30515        (WebCore::RenderThemeWin::supportsHover):
30516        (WebCore::RenderThemeWin::determineClassicState):
30517        (WebCore::RenderThemeWin::getClassicThemeData):
30518        (WebCore::RenderThemeWin::getThemeData):
30519        (WebCore::drawControl):
30520        (WebCore::RenderThemeWin::paintButton):
30521        (WebCore::RenderThemeWin::paintTextField):
30522        (WebCore::RenderThemeWin::paintMenuList):
30523        * rendering/RenderThemeWin.h:
30524        (WebCore::ThemeData::m_state):
30525
305262006-10-07  Steve Falkenburg  <sfalken@apple.com>
30527
30528        Reviewed by Adam.
30529
30530        Fix <rdar://4772205> Regression (r10623): WinInet loader doesn't ever write to the cache.        
30531
30532        * platform/win/ResourceLoaderWin.cpp:
30533        (WebCore::ResourceLoaderWndProc): Apply POST related flags only for posts.
30534        (WebCore::ResourceLoader::startHTTPRequest): Don't add no-cache-write flag to non-post transactions.
30535
305362006-10-07  Dave Hyatt  <hyatt@apple.com>
30537
30538        Add code to paint the Windows 2000 and "Windows Classic" theme look for scrollbars.
30539
30540        * platform/win/PlatformScrollBarWin.cpp:
30541        (WebCore::PlatformScrollbar::paintButton):
30542        (WebCore::PlatformScrollbar::paintTrack):
30543        (WebCore::PlatformScrollbar::paintThumb):
30544        (WebCore::PlatformScrollbar::paintGripper):
30545
305462006-10-07  Dave Hyatt  <hyatt@apple.com>
30547
30548        Make sure frames and iframes honor scrolling="no" and
30549        margins.
30550
30551        * bridge/win/FrameWin.cpp:
30552        (WebCore::FrameWin::createFrame):
30553
305542006-10-07  Dave Hyatt  <hyatt@apple.com>
30555
30556        Fix the resizer rect so that it is in the ScrollView's coordinate space and not in the document's coordinate space.
30557        (Fixes all the layout errors with the scrollbar overlapping the resizer.)
30558        
30559        Fill scroll corners with white, since it matches Mac (and our chosen resizer look) and looks nicer anyway.
30560        
30561        * platform/win/ScrollViewWin.cpp:
30562        (WebCore::ScrollView::updateScrollbars):
30563        (WebCore::ScrollView::paint):
30564
305652006-10-06  Dave Hyatt  <hyatt@apple.com>
30566
30567        Make sure to update plugin clip regions when scrollbars come and go on a scrollview.
30568       
30569        * platform/win/ScrollViewWin.cpp:
30570        (WebCore::ScrollView::updateScrollbars):
30571
305722006-10-06  Dave Hyatt  <hyatt@apple.com>
30573
30574        Revise the cached clip rect so that it is in the HWND's coordinate space.  This way SetWindowRgn
30575        doesn't get wastefully called when the plugin is scrolled.
30576       
30577        * plugins/win/PluginViewWin.cpp:
30578        (WebCore::PluginViewWin::updateHwnd):
30579
305802006-10-06  Dave Hyatt  <hyatt@apple.com>
30581
30582        Implement flawless clipping of windowed plugins, including
30583        respecting nested frames, CSS overflow and CSS clip.  (This
30584        puts Boomer way ahead of Mac as far as plugin clipping is
30585        concerned).
30586        
30587        Implement support for correct blitting of scrolled subframes,
30588        even when clipped by enclosing scrollviews.
30589
30590        Fix a crash caused by focused children not being cleaned up
30591        when they are removed from a scrollview.
30592
30593        * platform/win/ScrollViewWin.cpp:
30594        (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
30595        (WebCore::ScrollView::setFrameGeometry):
30596        (WebCore::ScrollView::addChild):
30597        (WebCore::ScrollView::removeChild):
30598        (WebCore::ScrollView::geometryChanged):
30599        * plugins/win/PluginViewWin.cpp:
30600        (WebCore::PluginViewWin::updateHwnd):
30601        (WebCore::PluginViewWin::windowClipRect):
30602        (WebCore::PluginViewWin::setFrameGeometry):
30603        (WebCore::PluginViewWin::geometryChanged):
30604        * plugins/win/PluginViewWin.h:
30605
306062006-10-06  Geoffrey Garen  <ggaren@apple.com>
30607
30608        Fixed <rdar://4768789> Crash on ebay.com in Frame::didOpenURL
30609        
30610        The issue was a resource loader making a callback to a
30611        frame after the frame had been destroyed. This doesn't happen on Mac
30612        because Mac WebKit cancels all loads before tearing down frames.
30613        
30614        The solution is to add a callback to Win WebKit to allow a frame
30615        to cancel its main resource load. This is a temporary work-around.
30616        It is temporary because it doesn't address pending subresource loads.
30617        The long-term solution we anticipate is to have a legitimate loader
30618        inside WebCore.
30619
30620        * ChangeLog:
30621        * bridge/win/FrameWin.cpp:
30622        (WebCore::FrameWin::~FrameWin):
30623        * bridge/win/FrameWin.h:
30624
306252006-10-06  Steve Falkenburg  <sfalken@apple.com>
30626
30627        Reviewed by Adam, Lou.
30628
30629        Resizer fixes.
30630        We now properly invalidate and draw overlapping contents or opaque.
30631
30632        * platform/win/ScrollViewWin.cpp:
30633        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
30634        (WebCore::ScrollView::updateScrollbars):
30635        (WebCore::ScrollView::resizerOverlapsContent):
30636
306372006-10-06  Anders Carlsson  <acarlsson@apple.com>
30638
30639        Reviewed by Adam.
30640
30641        * plugins/win/PluginDatabaseWin.cpp:
30642        (WebCore::PluginDatabaseWin::defaultPluginPaths):
30643        Add (commented out) WMP plugin check.
30644
306452006-10-06  Anders Carlsson  <acarlsson@apple.com>
30646
30647        Reviewed by Brady and Geoff.
30648
30649        <rdar://problems/4769023>
30650        Crash on cnettv.com - PluginStreamWin::receivedResponse
30651        
30652        * platform/win/ResourceLoaderWin.cpp:
30653        (WebCore::ResourceLoaderWndProc):
30654        If the Content-Type header is missing, try to figure o ut the content type
30655        from the file extension. Failing that, just use "application/octet-stream".
30656
306572006-10-06  Adam Roben  <aroben@apple.com>
30658
30659        Reviewed by Maciej.
30660
30661        Some loader improvements, courtesy of Steve.
30662
30663        Functionally, the improvements are these:
30664        1. Support HTTP Authentication
30665        2. Respect WinInet errors better
30666
30667        There are also some general code cleanups, like extracting the creation
30668        of an HTTP request into its own method.
30669
30670        * platform/win/ResourceLoaderWin.cpp: Add dwError field to
30671        JobLoadStatus to store WinInet error codes. Also removed the
30672        globalInternetHandle() function as the global HINTERNET is now only
30673        needed within startHTTPRequest.
30674        (WebCore::ResourceLoaderWndProc): Respect error codes and add HTTP
30675        Authentication support. Also, process HTTP status codes as ints instead
30676        of strings.
30677        (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal): Cleanup
30678        m_formData
30679        (WebCore::transferJobStatusCallback): Cleanup the code, and set
30680        dwError.
30681        (WebCore::ResourceLoader::startHTTPRequest): New method to start a new
30682        HTTP request.
30683        (WebCore::ResourceLoader::start): Restructure code.
30684
306852006-10-06  Dave Hyatt  <hyatt@apple.com>
30686
30687        Fix the plugins on cnn.com.  Don't let the scroll view move child plugins around if it hasn't even been parented yet.
30688        
30689        Fix an assert in widget destructors caused by not unparenting a ScrollView's scrollbars in its destructor.
30690        
30691        * platform/win/ScrollViewWin.cpp:
30692        (WebCore::ScrollView::ScrollViewPrivate::~ScrollViewPrivate):
30693        (WebCore::ScrollView::setFrameGeometry):
30694
306952006-10-06  Dave Hyatt  <hyatt@apple.com>
30696
30697        Make sure that plugin windows get properly moved if an ancestor scrollview is shifted without changing its size (meaning
30698        that layout doesn't get called on the scrollview to update the widget positions).
30699        
30700        Fixes the plugins on osnews.com.
30701        
30702        * platform/win/ScrollViewWin.cpp:
30703        (WebCore::ScrollView::setFrameGeometry):
30704
307052006-10-05  Steve Falkenburg  <sfalken@apple.com>
30706
30707        Reviewed by aroben.
30708
30709        Scrollbars now dodge resizing gripper.
30710
30711        * bridge/win/FrameViewWin.cpp:
30712        (WebCore::FrameView::windowResizerRect): added.
30713        * bridge/win/FrameWin.cpp:
30714        (WebCore::FrameWin::windowResizerRect): added.
30715        * bridge/win/FrameWin.h:
30716        * platform/win/ScrollViewWin.cpp:
30717        (WebCore::ScrollView::updateScrollbars): Scrollbars now dodge resizing gripper.
30718
307192006-10-05  Dave Hyatt  <hyatt@apple.com>
30720
30721        Fix a bug where scrollbars would incorrectly show up for iframes when they weren't needed.
30722        Change the flow of control to be more like Mac.
30723
30724        * platform/win/ScrollViewWin.cpp:
30725        (WebCore::ScrollView::resizeContents):
30726        (WebCore::ScrollView::setFrameGeometry):
30727
307282006-10-05  Dave Hyatt  <hyatt@apple.com>
30729
30730        Fix clipping and transforms by making sure to propagate them as they happen on the CGContext over into the HDC.
30731        
30732        * platform/cg/GraphicsContextPlatformPrivate.h:
30733        * platform/win/GraphicsContextWin.cpp:
30734        (WebCore::CGContextWithHDC):
30735        (WebCore::GraphicsContext::getWindowsContext):
30736        (WebCore::GraphicsContext::releaseWindowsContext):
30737        (WebCore::GraphicsContextPlatformPrivate::save):
30738        (WebCore::GraphicsContextPlatformPrivate::restore):
30739        (WebCore::GraphicsContextPlatformPrivate::clip):
30740        (WebCore::GraphicsContextPlatformPrivate::scale):
30741        (WebCore::GraphicsContextPlatformPrivate::rotate):
30742        (WebCore::GraphicsContextPlatformPrivate::translate):
30743        (WebCore::GraphicsContextPlatformPrivate::concatCTM):
30744        * platform/win/TemporaryLinkStubs.cpp:
30745        (GraphicsContextPlatformPrivate::clip):
30746
307472006-10-05  Geoffrey Garen  <ggaren@apple.com>
30748
30749        build fix.
30750        
30751        * platform/win/WidgetWin.cpp:
30752        (WebCore::Widget::~Widget):
30753        (WebCore::Widget::setParent):
30754        (WebCore::Widget::parent):
30755        (WebCore::Widget::removeFromParent):
30756
307572006-10-05  David Hyatt  <hyatt@apple.com>
30758
30759        Stub out GraphicsContextPlatformPrivate methods so that the HDC can
30760        be updated when clips/transforms are applied.
30761
30762        Reviewed by darin
30763
30764        * platform/cg/GraphicsContextPlatformPrivate.h:
30765        (WebCore::GraphicsContextPlatformPrivate::save):
30766        (WebCore::GraphicsContextPlatformPrivate::restore):
30767        (WebCore::GraphicsContextPlatformPrivate::clip):
30768        (WebCore::GraphicsContextPlatformPrivate::scale):
30769        (WebCore::GraphicsContextPlatformPrivate::rotate):
30770        (WebCore::GraphicsContextPlatformPrivate::translate):
30771        (WebCore::GraphicsContextPlatformPrivate::concatCTM):
30772
307732006-10-05  Adam Roben  <aroben@apple.com>
30774
30775        Build fix.
30776
30777        * platform/win/TemporaryLinkStubs.cpp:
30778        (BrowserExtensionWin::BrowserExtensionWin): Change Frame* to FrameWin*
30779
307802006-10-05  Adam Roben  <aroben@apple.com>
30781
30782        Build fix. Remove RenderImageButton.{h,cpp}.
30783
30784        * WebCore.vcproj/WebCore.vcproj:
30785
307862006-10-05  Geoffrey Garen  <ggaren@apple.com>
30787
30788        Reviewed by Darin.
30789        
30790        Fixed <rdar://problem/4766987>
30791        
30792        - renamed ScrollBar to Scrollbar and scroll bar to scrollbar in every case
30793        except for file names.
30794        
30795        - fixed RenderLayer to properly tear down scrollbars, removing them from
30796        their parents.
30797
30798        * bridge/win/FrameViewWin.cpp:
30799        (WebCore::FrameView::passMousePressEventToScrollbar):
30800        * platform/win/PlatformScrollBar.h:
30801        (WebCore::):
30802        * platform/win/PlatformScrollBarWin.cpp:
30803        (WebCore::PlatformScrollbar::PlatformScrollbar):
30804        (WebCore::PlatformScrollbar::~PlatformScrollbar):
30805        (WebCore::PlatformScrollbar::updateThumbPosition):
30806        (WebCore::PlatformScrollbar::updateThumbProportion):
30807        (WebCore::PlatformScrollbar::invalidateTrack):
30808        (WebCore::PlatformScrollbar::invalidatePart):
30809        (WebCore::PlatformScrollbar::width):
30810        (WebCore::PlatformScrollbar::height):
30811        (WebCore::PlatformScrollbar::setRect):
30812        (WebCore::PlatformScrollbar::setEnabled):
30813        (WebCore::PlatformScrollbar::paint):
30814        (WebCore::PlatformScrollbar::backButtonRect):
30815        (WebCore::PlatformScrollbar::forwardButtonRect):
30816        (WebCore::PlatformScrollbar::trackRect):
30817        (WebCore::PlatformScrollbar::thumbRect):
30818        (WebCore::PlatformScrollbar::gripperRect):
30819        (WebCore::PlatformScrollbar::splitTrack):
30820        (WebCore::PlatformScrollbar::thumbPosition):
30821        (WebCore::PlatformScrollbar::thumbLength):
30822        (WebCore::PlatformScrollbar::trackLength):
30823        (WebCore::PlatformScrollbar::paintButton):
30824        (WebCore::PlatformScrollbar::paintTrack):
30825        (WebCore::PlatformScrollbar::paintThumb):
30826        (WebCore::PlatformScrollbar::paintGripper):
30827        (WebCore::PlatformScrollbar::hitTest):
30828        (WebCore::PlatformScrollbar::handleMouseMoveEvent):
30829        (WebCore::PlatformScrollbar::handleMouseOutEvent):
30830        (WebCore::PlatformScrollbar::handleMousePressEvent):
30831        (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
30832        (WebCore::PlatformScrollbar::startTimerIfNeeded):
30833        (WebCore::PlatformScrollbar::stopTimerIfNeeded):
30834        (WebCore::PlatformScrollbar::autoscrollPressedPart):
30835        (WebCore::PlatformScrollbar::autoscrollTimerFired):
30836        (WebCore::PlatformScrollbar::pressedPartScrollDirection):
30837        (WebCore::PlatformScrollbar::pressedPartScrollGranularity):
30838        (WebCore::PlatformScrollbar::thumbUnderMouse):
30839        (WebCore::PlatformScrollbar::themeChanged):
30840        (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
30841        (WebCore::PlatformScrollbar::verticalScrollbarWidth):
30842        * platform/win/ScrollViewWin.cpp:
30843        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
30844        (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
30845        (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
30846        (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
30847        (WebCore::ScrollView::resizeContents):
30848        (WebCore::ScrollView::scrollBy):
30849        (WebCore::ScrollView::hScrollbarMode):
30850        (WebCore::ScrollView::vScrollbarMode):
30851        (WebCore::ScrollView::suppressScrollbars):
30852        (WebCore::ScrollView::setHScrollbarMode):
30853        (WebCore::ScrollView::setVScrollbarMode):
30854        (WebCore::ScrollView::setScrollbarsMode):
30855        (WebCore::ScrollView::updateScrollbars):
30856        (WebCore::ScrollView::scrollbarUnderMouse):
30857        (WebCore::ScrollView::paint):
30858        (WebCore::ScrollView::themeChanged):
30859
308602006-10-05  Adam Roben  <aroben@apple.com>
30861
30862        Reviewed by Maciej.
30863
30864        Fixes <rdar://problem/4757387>
30865        Unable to sign on to my.yahoo.com
30866
30867        This patch fixes a number of bugs that all resulted in not being able
30868        to log on to many websites. The problems were that we weren't allowing
30869        redirects between HTTP and HTTPS sites and weren't correctly handling
30870        redirects from POST requests to GET requests.
30871
30872        * platform/win/ResourceLoaderWin.cpp:
30873        (WebCore::globalInternetHandle): Move internetHandle and callbackHandle
30874        into file scope, and add this function to initialize them.
30875        (WebCore::logLastError): Add this debug logging function to give more
30876        readable WinInet error messages.
30877        (WebCore::ResourceLoaderWndProc): The most substantial change here is
30878        to allow redirects from POST to GET to function correctly. To do this
30879        we have to create a new HINTERNET for the GET. We also have to be sure
30880        not to try to read from our now-invalid handles after the redirect.
30881        (WebCore::transferJobStatusCallback): Rename timerId to jobId, since
30882        that's what it is.
30883        (WebCore::ResourceLoader::start): Call new static initializer, and pass
30884        flags to allow HTTP<->HTTPS redirects. Also change a few delete calls
30885        to kill().
30886
308872006-10-05  Maciej Stachowiak  <mjs@apple.com>
30888
30889        Reviewed by Adam.
30890
30891        - changed ResourceLoader to be refcounted
30892
30893        It keeps a ref on itself while loading as well. This makes
30894        for a much saner memory management model than the previous.
30895
30896        In addition, keep it ref'd across all of ResourceLoaderWndProc
30897        to avoid sending messages to jobs that get deleted partway.
30898
30899        This fixes <rdar://problem/4766859> Crash in ResourceLoaderWndProc - line 232 at televisionwithoutpity.com, washingtonpost.com
30900
30901        * platform/win/ResourceLoaderWin.cpp:
30902        (WebCore::ResourceLoaderWndProc):
30903        (WebCore::ResourceLoader::start):
30904        * plugins/win/PluginStreamWin.cpp:
30905        (WebCore::PluginStreamWin::PluginStreamWin):
30906        (WebCore::PluginStreamWin::start):
30907        (WebCore::PluginStreamWin::stop):
30908        * plugins/win/PluginStreamWin.h:
30909
309102006-10-05  Dave Hyatt  <hyatt@apple.com>
30911
30912        Make key events work with iframes.  Implement scrolling keyboard behavior.  Fix a bug with mouse wheeling that
30913        made it fail on iframes nested within iframes.
30914        
30915        Reviewed by mjs
30916
30917        * bridge/win/FrameViewWin.cpp:
30918        (WebCore::FrameView::passWheelEventToSubframe):
30919        * platform/win/ScrollViewWin.cpp:
30920        (WebCore::ScrollView::scroll):
30921        * platform/win/WidgetWin.cpp:
30922        (WebCore::Widget::Widget):
30923        (WebCore::Widget::capturingMouse):
30924        (WebCore::Widget::setCapturingMouse):
30925        (WebCore::Widget::capturingTarget):
30926        (WebCore::Widget::setCapturingChild):
30927        (WebCore::Widget::hasFocus):
30928        (WebCore::Widget::setFocus):
30929        (WebCore::Widget::clearFocus):
30930        (WebCore::Widget::setFocused):
30931        (WebCore::Widget::focusedTarget):
30932        (WebCore::Widget::focusedChild):
30933        (WebCore::Widget::setFocusedChild):
30934        (WebCore::Widget::clearFocusFromDescendants):
30935
309362006-10-05  Adam Roben  <aroben@apple.com>
30937
30938        Reviewed by Maciej and Tim H.
30939
30940        Fixes <rdar://problem/4760991>
30941        Flash content doesn't go away when navigating to a new page
30942
30943        Actually destroy subframes when detaching.
30944
30945        * bridge/win/FrameWin.cpp:
30946        (WebCore::FrameWin::frameDetached): 
30947        * bridge/win/FrameWin.h:
30948
309492006-10-05  Anders Carlsson  <acarlsson@apple.com>
30950
30951        Reviewed by Maciej.
30952        
30953        <rdar://problem/4762998>
30954        REGRESSION: dragging to select text does not work
30955        
30956        * platform/win/PlatformMouseEventWin.cpp:
30957        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
30958        Set the correct button for WM_MOUSEMOVE events.
30959
309602006-10-05  Anders Carlsson  <acarlsson@apple.com>
30961
30962        Reviewed by Adam.
30963
30964        rdar://problem/4757081
30965        Crashes/hangs when using Flash 8 plugin (Flash 9 works MUCH better)
30966        
30967        * plugins/win/PluginStreamWin.cpp:
30968        (WebCore::PluginStreamWin::startStream):
30969        Encode javascript URLs before passing them to the plugin.
30970
309712006-10-05  Darin Adler  <darin@apple.com>
30972
30973        Reviewed by Adam.
30974
30975        * platform/win/NotImplemented.h: Changed implementation to use Assertions.h.
30976        Also fixed both macros to be single-statement macros.
30977
309782006-10-05  Darin Adler  <darin@apple.com>
30979
30980        Reviewed by Adam.
30981
30982        - fix <rdar://problem/4764253>
30983          frame targeting not implemented.
30984
30985        * bridge/win/FrameWin.h: Added new window boolean to openURL. Also changed
30986        type from DeprecatedString to String.
30987        * bridge/win/FrameWin.cpp: (WebCore::FrameWin::urlSelected): Added logic
30988        to do frame targeting.
30989
30990        * platform/win/BString.h: Added. Convenience for working with
30991        BSTR and handling allocation/free.
30992        * platform/win/BString.cpp: Added.
30993        * WebCore.vcproj/WebCore.vcproj: Added new files.
30994
309952006-10-03  Dave Hyatt  <hyatt@apple.com>
30996
30997        Land the new ScrollView.
30998        
30999        Reviewed by anders
31000
31001        * bridge/win/FrameViewWin.cpp:
31002        (WebCore::FrameView::passMousePressEventToScrollbar):
31003        * platform/win/PlatformScrollBar.h:
31004        * platform/win/PlatformScrollBarWin.cpp:
31005        (WebCore::PlatformScrollBar::thumbLength):
31006        (WebCore::PlatformScrollBar::hitTest):
31007        (WebCore::PlatformScrollBar::horizontalScrollBarHeight):
31008        (WebCore::PlatformScrollBar::verticalScrollBarWidth):
31009        * platform/win/ScrollViewWin.cpp:
31010        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
31011        (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollBar):
31012        (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollBar):
31013        (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
31014        (WebCore::ScrollView::ScrollView):
31015        (WebCore::ScrollView::updateContents):
31016        (WebCore::ScrollView::visibleWidth):
31017        (WebCore::ScrollView::visibleHeight):
31018        (WebCore::ScrollView::visibleContentRect):
31019        (WebCore::ScrollView::resizeContents):
31020        (WebCore::ScrollView::contentsWidth):
31021        (WebCore::ScrollView::contentsHeight):
31022        (WebCore::ScrollView::windowToContents):
31023        (WebCore::ScrollView::contentsToWindow):
31024        (WebCore::ScrollView::convertChildToSelf):
31025        (WebCore::ScrollView::convertSelfToChild):
31026        (WebCore::ScrollView::scrollOffset):
31027        (WebCore::ScrollView::maximumScroll):
31028        (WebCore::ScrollView::scrollBy):
31029        (WebCore::ScrollView::scrollPointRecursively):
31030        (WebCore::ScrollView::hScrollBarMode):
31031        (WebCore::ScrollView::vScrollBarMode):
31032        (WebCore::ScrollView::suppressScrollBars):
31033        (WebCore::ScrollView::setHScrollBarMode):
31034        (WebCore::ScrollView::setVScrollBarMode):
31035        (WebCore::ScrollView::setScrollBarsMode):
31036        (WebCore::ScrollView::setStaticBackground):
31037        (WebCore::ScrollView::updateScrollBars):
31038        (WebCore::ScrollView::scrollbarUnderMouse):
31039        (WebCore::ScrollView::addChild):
31040        (WebCore::ScrollView::removeChild):
31041        (WebCore::ScrollView::paint):
31042        (WebCore::ScrollView::scrolled):
31043        * platform/win/WidgetWin.cpp:
31044        (WebCore::Widget::Widget):
31045        (WebCore::Widget::convertToContainingWindow):
31046        (WebCore::Widget::convertFromContainingWindow):
31047        (WebCore::Widget::convertChildToSelf):
31048        (WebCore::Widget::convertSelfToChild):
31049        (WebCore::Widget::setSuppressInvalidation):
31050        (WebCore::Widget::invalidateRect):
31051        * plugins/win/PluginViewWin.cpp:
31052        (WebCore::PluginViewWndProc):
31053        (WebCore::PluginViewWin::setFrameGeometry):
31054        (WebCore::PluginViewWin::scrolled):
31055        * plugins/win/PluginViewWin.h:
31056
310572006-10-03  Adam Roben  <aroben@apple.com>
31058
31059        Reviewed by Steve.
31060
31061        Improvements to error handling in PluginStreamWin.
31062
31063        * plugins/win/PluginStreamWin.cpp:
31064        (WebCore::PluginStreamWin::deliverData): Fail quietly if called after
31065        termination (due to bad error handling in ResourceLoaderWin), ASSERT if
31066        called before stream has been started.
31067        (WebCore::PluginStreamWin::receivedData): Ditto.
31068        (WebCore::PluginStreamWin::receivedAllData): Ditto.
31069
310702006-10-03  Adam Roben  <aroben@apple.com>
31071
31072        Reviewed by Anders.
31073
31074        Fixes <rdar://problem/4760963>
31075        Failed ASSERT in PluginStreamWin::~PluginStreamWin at espn.com
31076
31077        We now store the state of a stream as a tri-state enum in
31078        m_streamState. This allows us to differentiate between before and after the
31079        stream has been started.
31080
31081        * plugins/win/PluginStreamWin.cpp:
31082        (WebCore::PluginStreamWin::PluginStreamWin): Initialize members of
31083        m_stream struct individually.
31084        (WebCore::PluginStreamWin::~PluginStreamWin):
31085        (WebCore::PluginStreamWin::startStream):
31086        (WebCore::PluginStreamWin::destroyStream):
31087        (WebCore::PluginStreamWin::deliverData): Return early if the stream
31088        isn't started.
31089        (WebCore::PluginStreamWin::receivedData): Ditto.
31090        (WebCore::PluginStreamWin::receivedAllData): Ditto.
31091        * plugins/win/PluginStreamWin.h:
31092        (WebCore::): Add PluginStreamState enum.
31093
310942006-10-03  Adam Roben  <aroben@apple.com>
31095
31096        Reviewed by Darin.
31097
31098        Fixes <rdar://problem/4603342>
31099        Keyboard navigability
31100
31101        Implement tabbing between form elements (in the single-frame case).
31102
31103        * bridge/win/FrameWin.cpp: Add methods to determine tabbing
31104        preferences.
31105        (WebCore::FrameWin::tabsToLinks):
31106        (WebCore::FrameWin::tabsToAllControls):
31107        * bridge/win/FrameWin.h: Add tabsToLinks() to FrameWinClient
31108        * platform/win/ScrollViewWin.cpp:
31109        (WebCore::ScrollView::scrollPointRecursively): Implemented for
31110        single-frame case.
31111        * platform/win/TemporaryLinkStubs.cpp: Remove stub for now-implemented
31112        ScrollView::scrollPointsRecursively
31113
311142006-10-02  Adam Roben  <aroben@apple.com>
31115
31116        Reviewed by Maciej.
31117
31118        Fixes <rdar://problem/4743497>
31119        Can't check checkboxes
31120
31121        Let Windows determine which mouse button is pressed.
31122
31123        * platform/win/PlatformMouseEventWin.cpp:
31124        (WebCore::PlatformMouseEvent::PlatformMouseEvent): Use message
31125        parameter to determine which mouse button is pressed.
31126
311272006-10-02  Steve Falkenburg  <sfalken@apple.com>
31128
31129        Reviewed by Hyatt.
31130
31131        <rdar://4757387> (partial fix) Unable to sign on to my.yahoo.com
31132        <rdar://4757405> (partial fix) Unable to log onto secure site (www.schwab.com)
31133        <rdar://4757411> (partial fix) Unable to log onto any AppleConnect site (but using back and resubmiting works)
31134
31135        WinInet fixes.
31136        Don't post data using HTTP when HTTPS should be used.
31137        Fix redirect from POST to GET case.
31138        
31139        There is a remaining bug with the way that we queue WinInet callbacks
31140        still to be addressed.
31141
31142        * platform/win/ResourceLoaderWin.cpp:
31143        (WebCore::addToOutstandingJobs): Skip dwContext of 0 (rollover case).
31144        (WebCore::ResourceLoaderWndProc): Call default wndproc properly.
31145            Pass INTERNET_FLAG_SECURE when necessary for HTTPS.
31146            Fix redirect code.
31147            Initialize buffers struct.
31148            Pass proper context in InternetReadFileExA
31149        (WebCore::initializeOffScreenResourceLoaderWindow): Init a struct to {0} instead of using memset.
31150        (WebCore::transferJobStatusCallback): Prevent future bugs by making an else a bit more explicit.
31151        (WebCore::ResourceLoader::start): Pass proper port for HTTP vs. HTTPS.
31152        (WebCore::ResourceLoader::cancel): Zero out handle when closing.
31153
311542006-10-01  Dave Hyatt  <hyatt@apple.com>
31155
31156        Finish the scrollbar.  Handle arrow and track scrolling.  Everything is finished now except for implementing a Win2k look.
31157
31158        * platform/win/PlatformScrollBar.h:
31159        * platform/win/PlatformScrollBarWin.cpp:
31160        (WebCore::PlatformScrollBar::PlatformScrollBar):
31161        (WebCore::PlatformScrollBar::~PlatformScrollBar):
31162        (WebCore::PlatformScrollBar::thumbRect):
31163        (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31164        (WebCore::PlatformScrollBar::handleMousePressEvent):
31165        (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31166        (WebCore::PlatformScrollBar::startTimerIfNeeded):
31167        (WebCore::PlatformScrollBar::stopTimerIfNeeded):
31168        (WebCore::PlatformScrollBar::autoscrollPressedPart):
31169        (WebCore::PlatformScrollBar::autoscrollTimerFired):
31170        (WebCore::PlatformScrollBar::pressedPartScrollDirection):
31171        (WebCore::PlatformScrollBar::pressedPartScrollGranularity):
31172        (WebCore::PlatformScrollBar::thumbUnderMouse):
31173
311742006-10-01  Dave Hyatt  <hyatt@apple.com>
31175        
31176        Make thumb dragging work on the scrollbar.
31177        
31178        Fix mouse and wheel events to use GET_X_LPARAM and GET_Y_LPARAM so that negative coordinates work.
31179        (This comes up when a widget is capturing events and the mouse moves outside the HWND.)
31180        
31181        * platform/win/PlatformMouseEventWin.cpp:
31182        (WebCore::positionForEvent):
31183        (WebCore::globalPositionForEvent):
31184        * platform/win/PlatformScrollBar.h:
31185        * platform/win/PlatformScrollBarWin.cpp:
31186        (WebCore::PlatformScrollBar::PlatformScrollBar):
31187        (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31188        (WebCore::PlatformScrollBar::handleMousePressEvent):
31189        (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31190        (WebCore::PlatformScrollBar::startTimerIfNeeded):
31191        (WebCore::PlatformScrollBar::stopTimerIfNeeded):
31192        * platform/win/WheelEventWin.cpp:
31193        (WebCore::positionForEvent):
31194        (WebCore::globalPositionForEvent):
31195
311962006-10-01  Dave Hyatt  <hyatt@apple.com>
31197
31198        Hook up the mouse capture architecture so that child widgets capture events while the mouse is pressed.
31199        
31200        Hook up tracking the pressed object on a scrollbar and proper painting of the scrollbar's
31201        pressed state.
31202        
31203        * bridge/win/FrameViewWin.cpp:
31204        (WebCore::FrameView::passMousePressEventToSubframe):
31205        (WebCore::FrameView::passMousePressEventToScrollbar):
31206        * platform/win/PlatformScrollBar.h:
31207        * platform/win/PlatformScrollBarWin.cpp:
31208        (WebCore::PlatformScrollBar::PlatformScrollBar):
31209        (WebCore::PlatformScrollBar::paintButton):
31210        (WebCore::PlatformScrollBar::paintTrack):
31211        (WebCore::PlatformScrollBar::paintThumb):
31212        (WebCore::PlatformScrollBar::paintGripper):
31213        (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31214        (WebCore::PlatformScrollBar::handleMousePressEvent):
31215        (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31216        * platform/win/WidgetWin.cpp:
31217        (WebCore::Widget::setCapturingChild):
31218
312192006-09-30  Dave Hyatt  <hyatt@apple.com>
31220
31221        This patch makes iframes and frames able to receive mouse events.  Down, up, click, selection
31222        all work.  This patch also fixes bugs in scrolling and makes wheel events work on iframes.
31223        A capturing system for routing events to the proper subwidget when the mouse has down
31224        is also stubbed out (but not yet used).
31225        
31226        Reviewed by andersca
31227
31228        * WebCore.vcproj/WebCore.vcproj:
31229        * bridge/win/FrameViewWin.cpp: Added.
31230        (WebCore::FrameView::passMousePressEventToSubframe):
31231        (WebCore::FrameView::passMouseMoveEventToSubframe):
31232        (WebCore::FrameView::passMouseReleaseEventToSubframe):
31233        (WebCore::FrameView::passWheelEventToSubframe):
31234        * bridge/win/FrameWin.cpp:
31235        * bridge/win/FrameWin.h:
31236        * platform/win/PlatformScrollBar.h:
31237        * platform/win/PlatformScrollBarWin.cpp:
31238        (WebCore::PlatformScrollBar::handleMouseMoveEvent):
31239        (WebCore::PlatformScrollBar::handleMouseOutEvent):
31240        (WebCore::PlatformScrollBar::handleMouseReleaseEvent):
31241        * platform/win/ScrollViewWin.cpp:
31242        (WebCore::ScrollView::visibleContentRect):
31243        (WebCore::ScrollView::scrollBy):
31244        (WebCore::ScrollView::removeChild):
31245        * platform/win/TemporaryLinkStubs.cpp:
31246        (FrameWin::print):
31247        (FrameWin::lastEventIsMouseUp):
31248        * platform/win/WidgetWin.cpp:
31249        (WebCore::Widget::Widget):
31250        (WebCore::Widget::capturingMouse):
31251        (WebCore::Widget::setCapturingMouse):
31252        (WebCore::Widget::capturingTarget):
31253        (WebCore::Widget::capturingChild):
31254        (WebCore::Widget::setCapturingChild):
31255
312562006-09-29  Steve Falkenburg  <sfalken@apple.com>
31257
31258        Fix the build.
31259
31260        * platform/win/PlatformScrollBarWin.cpp:
31261
312622006-09-29  Adele Peterson  <adele@apple.com>
31263
31264        Adding RenderListBox files.
31265
31266        * WebCore.vcproj/WebCore.vcproj:
31267
312682006-09-29  Adele Peterson  <adele@apple.com>
31269
31270        Reviewed by Adam.
31271
31272        Updated constructor for PlatformScrollBar to include controlSize argument.
31273
31274        * platform/win/PlatformScrollBar.h:
31275        * platform/win/PlatformScrollBarWin.cpp:
31276        (WebCore::PlatformScrollBar::PlatformScrollBar):
31277
312782006-09-29  Adam Roben  <aroben@apple.com>
31279
31280        Reviewed by hyatt.
31281
31282        Add error logging to plugin code.
31283
31284        * WebCore.vcproj/WebCore.vcproj: Added PluginDebug.h
31285        * platform/win/NotImplemented.h: Add surrounding #ifndef/#endif
31286        * plugins/win/PluginDebug.h: Added.
31287        * plugins/win/PluginPackageWin.cpp: Add error logging
31288        (WebCore::PluginPackageWin::load):
31289        * plugins/win/PluginStreamWin.cpp: Ditto.
31290        (WebCore::PluginStreamWin::startStream):
31291        (WebCore::PluginStreamWin::destroyStream):
31292        (WebCore::PluginStreamWin::deliverData):
31293        (WebCore::PluginStreamWin::receivedAllData):
31294        * plugins/win/PluginViewWin.cpp: Ditto.
31295        (WebCore::PluginViewWin::start):
31296        (WebCore::PluginViewWin::stop):
31297        (WebCore::PluginViewWin::newStream):
31298        (WebCore::PluginViewWin::write):
31299        (WebCore::PluginViewWin::destroyStream):
31300
313012006-09-29  Dave Hyatt  <hyatt@apple.com>
31302
31303        Fork MouseEventWin.cpp into (the better-named) PlatformMouseEventWin.cpp.
31304        
31305        * WebCore.vcproj/WebCore.vcproj:
31306        * platform/win/PlatformMouseEventWin.cpp: Added.
31307
313082006-09-28  Dave Hyatt  <hyatt@apple.com>
31309
31310        Make scrollbars scroll correctly when setValue is called.  Needed to do float math instead of integer
31311        math (and also fix some buggy math when computing the thumb position).
31312 
31313        * platform/win/PlatformScrollBarWin.cpp:
31314        (WebCore::PlatformScrollBar::thumbPosition):
31315
313162006-09-28  Dave Hyatt  <hyatt@apple.com>
31317
31318        Make scrollbars on Win32 respond to hover events.  The thumb and arrow buttons will now properly hover when
31319        the mouse enters and exits them.
31320        
31321        * platform/win/PlatformScrollBar.h:
31322        * platform/win/PlatformScrollBarWin.cpp:
31323        (WebCore::PlatformScrollBar::invalidatePart):
31324        (WebCore::PlatformScrollBar::paintButton):
31325        (WebCore::PlatformScrollBar::paintTrack):
31326        (WebCore::PlatformScrollBar::paintThumb):
31327        (WebCore::PlatformScrollBar::paintGripper):
31328        (WebCore::PlatformScrollBar::hitTest):
31329        (WebCore::PlatformScrollBar::mouseMoved):
31330        (WebCore::PlatformScrollBar::mouseExited):
31331
313322006-09-28  Steve Falkenburg  <sfalken@apple.com>
31333
31334        Reviewed by Maciej.
31335
31336        Use $(ConfigSuffix) set via vsprops files to add _debug
31337        to end of debug filenames.
31338
31339        Update B&I build script.
31340
31341        * WebCore.vcproj/WebCore.make:
31342        * WebCore.vcproj/WebCore.vcproj:
31343        * WebCore.vcproj/debug.vsprops: Added.
31344        * WebCore.vcproj/release.vsprops: Added.
31345
313462006-09-28  Adam Roben  <aroben@apple.com>
31347
31348        Reviewed by Hyatt.
31349
31350        Avoid creating LOGFONTs for bitmap fonts under CG, since we don't
31351        support them anyway.
31352
31353        * platform/win/FontCacheWin.cpp:
31354        (WebCore::FontCache::createFontPlatformData): Set lfOutPrecision to
31355        OUT_TT_ONLY_PRECIS to avoid bitmap fonts.
31356        * platform/win/FontPlatformDataWin.cpp:
31357        (WebCore::FontPlatformData::FontPlatformData): Change the LOG_ERROR
31358        back to an ASSERT since we should never reach this condition now.
31359
313602006-09-28  Dave Hyatt  <hyatt@apple.com>
31361
31362        This patch eliminates viewportToContents/contentsToViewport in favor of convertTo/FromContainingWindow.
31363        ScrollView now subclasses these methods to factor in its scrollOffset and to deal with the document
31364        view.
31365       
31366        Reviewed by mjs (the convertTo/From changes), (I added the elimination of viewportToContents to
31367        the patch after review, once I realized that these new functions essentially do the same thing.)
31368
31369        * platform/win/ScrollViewWin.cpp:
31370        (WebCore::ScrollView::updateContents):
31371        (WebCore::ScrollView::convertToContainingWindow):
31372        (WebCore::ScrollView::convertFromContainingWindow):
31373        (WebCore::ScrollView::scrollBy):
31374        * platform/win/WidgetWin.cpp:
31375        (WebCore::Widget::convertToContainingWindow):
31376        (WebCore::Widget::convertFromContainingWindow):
31377
313782006-09-28  Adam Roben  <aroben@apple.com>
31379
31380        Reviewed by Anders.
31381
31382        Fail without crashing and log an error when CG encounters a bitmap
31383        font.
31384
31385        * platform/win/FontPlatformDataWin.cpp:
31386        (WebCore::FontPlatformData::FontPlatformData): Trade LOG_ERROR for
31387        ASSERT_WITH_MESSAGE
31388
313892006-09-27  Alice Liu  <alice.liu@apple.com>
31390
31391        Reviewed by Steve & Adam.
31392
31393        * WebCore.vcproj/WebCore.vcproj:
31394        Added files to the project file
31395        * platform/win/TemporaryLinkStubs.cpp:
31396        Removed stub for findWordBoundary
31397        * platform/win/TextBoundariesWin.cpp: Added.
31398        Implemented cross-platform findWordBoundary.  We're still keeping the mac one intact for now. 
31399        (WebCore::findWordBoundary):
31400
314012006-09-28  Adam Roben  <aroben@apple.com>
31402
31403        Reviewed by Adele.
31404
31405        Remove never-to-be-used PopUpButton
31406
31407        * WebCore.vcproj/WebCore.vcproj: Remove PopUpButton.h
31408        * platform/win/TemporaryLinkStubs.cpp: Remove PopUpButton:: methods
31409
314102006-09-28  Adam Roben  <aroben@apple.com>
31411
31412        Reviewed by Alice.
31413
31414        Replace notImplemented() with LOG_NOIMPL() and STOP_NOIMPL() macros
31415        which generate debug output. STOP_NOIMPL() also generates a debug
31416        break. Replace calls to notImplemented() with
31417        LOG_NOIMPL()/STOP_NOIMPL() as appropriate. This should stop some unnecessary
31418        crashes where notImplemented() was called from a method that can fail
31419        safely.
31420
31421        * WebCore.vcproj/WebCore.vcproj: Added NotImplemented.h
31422        * platform/win/FontWin.cpp: Use LOG_NOIMPL() instead of notImplemented().
31423        (WebCore::Font::selectionRectForComplexText):
31424        (WebCore::Font::drawComplexText):
31425        (WebCore::Font::floatWidthForComplexText):
31426        (WebCore::Font::offsetForPositionForComplexText):
31427        * platform/win/NotImplemented.h: Added. Contains new LOG_NOIMPL() and
31428        STOP_NOIMPL() macros.
31429        * platform/win/TemporaryLinkStubs.cpp: Use LOG_NOIMPL() and
31430        STOP_NOIMPL() instead of notImplemented() or nothing.
31431        (PopUpButton::focusPolicy):
31432        (PopUpButton::populate):
31433        (Widget::enableFlushDrawing):
31434        (Widget::focusPolicy):
31435        (Widget::disableFlushDrawing):
31436        (Widget::lockDrawingFocus):
31437        (Widget::unlockDrawingFocus):
31438        (JavaAppletWidget::JavaAppletWidget):
31439        (TextField::selectAll):
31440        (TextField::addSearchResult):
31441        (TextField::selectionStart):
31442        (TextField::hasSelectedText):
31443        (TextField::selectedText):
31444        (TextField::setAutoSaveName):
31445        (TextField::checksDescendantsForFocus):
31446        (TextField::setSelection):
31447        (TextField::setMaxResults):
31448        (TextField::edited):
31449        (Slider::Slider):
31450        (Slider::sizeHint):
31451        (Slider::setValue):
31452        (Slider::setMaxValue):
31453        (Slider::setMinValue):
31454        (Slider::~Slider):
31455        (Slider::setFont):
31456        (Slider::value):
31457        (ListBox::sizeForNumberOfLines):
31458        (ListBox::isSelected):
31459        (ListBox::checksDescendantsForFocus):
31460        (Slider::focusPolicy):
31461        (ListBox::focusPolicy):
31462        (TextField::focusPolicy):
31463        (Cursor::Cursor):
31464        (PlatformMouseEvent::PlatformMouseEvent):
31465        (WebCore::searchableIndexIntroduction):
31466        (WebCore::findNextSentenceFromIndex):
31467        (WebCore::findSentenceBoundary):
31468        (WebCore::findNextWordFromIndex):
31469        (WebCore::ServeSynchronousRequest):
31470        (FrameWin::focusWindow):
31471        (FrameWin::unfocusWindow):
31472        (FrameWin::locationbarVisible):
31473        (FrameWin::registerCommandForRedo):
31474        (FrameWin::getObjectInstanceForWidget):
31475        (FrameWin::getEmbedInstanceForWidget):
31476        (FrameWin::getAppletInstanceForWidget):
31477        (FrameWin::canRedo):
31478        (FrameWin::canUndo):
31479        (FrameWin::canPaste):
31480        (FrameWin::canGoBackOrForward):
31481        (FrameWin::shouldInterruptJavaScript):
31482        (FrameWin::openURL):
31483        (FrameWin::print):
31484        (FrameWin::passMouseDownEventToWidget):
31485        (FrameWin::issueCutCommand):
31486        (FrameWin::issueCopyCommand):
31487        (FrameWin::issuePasteCommand):
31488        (FrameWin::issueUndoCommand):
31489        (FrameWin::issueRedoCommand):
31490        (FrameWin::issuePasteAndMatchStyleCommand):
31491        (FrameWin::issueTransposeCommand):
31492        (FrameWin::passWheelEventToChildWidget):
31493        (FrameWin::mimeTypeForFileName):
31494        (FrameWin::scheduleClose):
31495        (FrameWin::markMisspellings):
31496        (FrameWin::menubarVisible):
31497        (FrameWin::personalbarVisible):
31498        (FrameWin::statusbarVisible):
31499        (FrameWin::toolbarVisible):
31500        (FrameWin::originalRequestURL):
31501        (FrameWin::isLoadTypeReload):
31502        (BrowserExtensionWin::canRunModal):
31503        (BrowserExtensionWin::createNewWindow):
31504        (BrowserExtensionWin::canRunModalNow):
31505        (BrowserExtensionWin::runModal):
31506        (BrowserExtensionWin::goBackOrForward):
31507        (BrowserExtensionWin::historyURL):
31508        (GraphicsContext::addRoundedRectClip):
31509        (GraphicsContext::addInnerRoundedRectClip):
31510        (WebCore::screenDepthPerComponent):
31511        (WebCore::screenIsMonochrome):
31512        (WebCore::moveCursor):
31513        (WebCore::inputElementAltText):
31514        (WebCore::findWordBoundary):
31515        (WebCore::ResourceLoader::assembleResponseHeaders):
31516        (WebCore::ResourceLoader::retrieveCharset):
31517        (FrameView::updateBorder):
31518        (FrameWin::restoreDocumentState):
31519        (FrameWin::partClearedInBegin):
31520        (FrameWin::createEmptyDocument):
31521        (FrameWin::overrideMediaType):
31522        (FrameWin::markedTextRange):
31523        (FrameWin::addMessageToConsole):
31524        (FrameWin::shouldChangeSelection):
31525        (FrameWin::respondToChangedSelection):
31526        (FrameWin::saveDocumentState):
31527        (FrameWin::registerCommandForUndo):
31528        (FrameWin::clearUndoRedoOperations):
31529        (FrameWin::incomingReferrer):
31530        (FrameWin::markMisspellingsInAdjacentWords):
31531        (FrameWin::respondToChangedContents):
31532        (BrowserExtensionWin::BrowserExtensionWin):
31533        (BrowserExtensionWin::setTypedIconURL):
31534        (BrowserExtensionWin::setIconURL):
31535        (BrowserExtensionWin::getHistoryLength):
31536        (WebCore::CheckIfReloading):
31537        (WebCore::CheckCacheObjectStatus):
31538        (Widget::setIsSelected):
31539        (ScrollView::inWindow):
31540        (ScrollView::scrollPointRecursively):
31541        (GraphicsContext::setShadow):
31542        (GraphicsContext::clearShadow):
31543        (GraphicsContext::beginTransparencyLayer):
31544        (GraphicsContext::endTransparencyLayer):
31545        (GraphicsContext::clearRect):
31546        (GraphicsContext::strokeRect):
31547        (GraphicsContext::setLineWidth):
31548        (GraphicsContext::setLineCap):
31549        (GraphicsContext::setLineJoin):
31550        (GraphicsContext::setMiterLimit):
31551        (GraphicsContext::setAlpha):
31552        (GraphicsContext::clip):
31553        (GraphicsContext::rotate):
31554        (GraphicsContext::scale):
31555        (Path::Path):
31556        (Path::~Path):
31557        (Path::contains):
31558        (Path::translate):
31559        (Path::boundingRect):
31560        (Path::operator=):
31561        (Path::clear):
31562        (Path::moveTo):
31563        (Path::addLineTo):
31564        (Path::addQuadCurveTo):
31565        (Path::addBezierCurveTo):
31566        (Path::addArcTo):
31567        (Path::closeSubpath):
31568        (Path::addArc):
31569        (Path::addRect):
31570        (Path::addEllipse):
31571        (GraphicsContext::drawFocusRing):
31572        (GraphicsContext::drawLineForMisspelling):
31573        (GraphicsContext::setCompositeOperation):
31574        (TextField::TextField):
31575        (TextField::~TextField):
31576        (TextField::setFont):
31577        (TextField::setAlignment):
31578        (TextField::setWritingDirection):
31579        (TextField::maxLength):
31580        (TextField::setMaxLength):
31581        (TextField::text):
31582        (TextField::setText):
31583        (TextField::cursorPosition):
31584        (TextField::setCursorPosition):
31585        (TextField::setEdited):
31586        (TextField::setReadOnly):
31587        (TextField::setPlaceholderString):
31588        (TextField::setColors):
31589        (TextField::sizeForCharacterWidth):
31590        (TextField::baselinePosition):
31591        (TextField::setLiveSearch):
31592        (PopUpButton::PopUpButton):
31593        (PopUpButton::~PopUpButton):
31594        (PopUpButton::setFont):
31595        (PopUpButton::baselinePosition):
31596        (PopUpButton::setWritingDirection):
31597        (PopUpButton::clear):
31598        (PopUpButton::appendItem):
31599        (PopUpButton::setCurrentItem):
31600        (PopUpButton::sizeHint):
31601        (PopUpButton::frameGeometry):
31602        (PopUpButton::setFrameGeometry):
31603        (ListBox::ListBox):
31604        (ListBox::~ListBox):
31605        (ListBox::setSelectionMode):
31606        (ListBox::setFont):
31607        (ListBox::setWritingDirection):
31608        (ListBox::clear):
31609        (ListBox::doneAppendingItems):
31610        (ListBox::setEnabled):
31611        (ListBox::appendItem):
31612        (ListBox::setSelected):
31613        (WebCore::focusRingColor):
31614        (WebCore::setFocusRingColorChangeFunction):
31615        (Frame::setNeedsReapplyStyles):
31616        (Image::drawTiled):
31617        (RenderPopupMenuWin::addSeparator):
31618        (RenderPopupMenuWin::addGroupLabel):
31619        (IconLoader::receivedResponse):
31620        (IconLoader::notifyIconChanged):
31621        * plugins/win/PluginViewWin.cpp:
31622        (WebCore::PluginViewWin::setValue):
31623
316242006-09-28  Adam Roben  <aroben@apple.com>
31625
31626        Rubberstamped by sfalken.
31627
31628        Remove calls to DebugBreak() from plugin code.
31629
31630        * plugins/win/PluginViewWin.cpp:
31631        (WebCore::PluginViewWin::getValue):
31632        (WebCore::PluginViewWin::setValue):
31633
316342006-09-28  Dave Hyatt  <hyatt@apple.com>
31635
31636        Eliminate the use of MapWindowPoints on Win32. Just use the outermost HWND as the point of reference for events.  
31637        
31638        Stub out the mouse methods from the open source checkin and add a new member variable to track the current hovered scrollbar part.
31639
31640        * platform/win/PlatformScrollBar.h:
31641        (WebCore::):
31642        * platform/win/PlatformScrollBarWin.cpp:
31643        (WebCore::PlatformScrollBar::PlatformScrollBar):
31644        (WebCore::PlatformScrollBar::mouseMoved):
31645        (WebCore::PlatformScrollBar::mouseExited):
31646        * platform/win/ScrollViewWin.cpp:
31647        (WebCore::ScrollView::viewportToContents):
31648        (WebCore::ScrollView::contentsToViewport):
31649        * platform/win/WheelEventWin.cpp:
31650        (WebCore::positionForEvent):
31651
316522006-09-27  Steve Falkenburg  <sfalken@apple.com>
31653
31654        Reviewed by Maciej.
31655
31656        Prefer pulling project dependencies from WebKitOutputDir over
31657        WebKitSDKDir.  Don't copy build output back over to WebKitSDKDir.
31658
31659        * WebCore.vcproj/WebCore.vcproj:
31660        * WebCore.vcproj/build-generated-files.sh:
31661        * WebCore.vcproj/dstroot-to-sdk.cmd: Removed.
31662
316632006-09-27  Steve Falkenburg  <sfalken@apple.com>
31664
31665        B&I build fixes
31666
31667        * WebCore.vcproj/WebCore.make:
31668        * WebCore.vcproj/WebCore.vcproj:
31669        * WebCore.vcproj/build-generated-files.sh:
31670
316712006-09-27  Adam Roben  <aroben@apple.com>
31672
31673        Reviewed by sfalken.
31674
31675        Don't die when plugins try to open a new window.
31676
31677        * plugins/win/PluginViewWin.cpp:
31678        (WebCore::PluginViewWin::performRequest): Remove call to DebugBreak()
31679
316802006-09-27  Steve Falkenburg  <sfalken@apple.com>
31681
31682        B&I build script tweaks.
31683
31684        * WebCore.vcproj/WebCore.make:
31685
316862006-09-27  Steve Falkenburg  <sfalken@apple.com>
31687
31688        Reviewed by Hyatt.
31689
31690        Turn on CG
31691
31692        * config.h:
31693
316942006-09-27  Adam Roben  <aroben@apple.com>
31695
31696        Reviewed by Lou.
31697
31698        Fix crash in plugins due to Flash on nytimes.com
31699
31700        * plugins/win/PluginStreamWin.cpp:
31701        (WebCore::PluginStreamWin::PluginStreamWin): memset m_stream to 0
31702
317032006-09-27  Adam Roben  <aroben@apple.com>
31704
31705        Reviewed by sfalken.
31706
31707        Scroll plugins (at least in some cases).
31708
31709        * platform/win/ScrollViewWin.cpp:
31710        (WebCore::ScrollView::scrollBy): Pass SW_SCROLLCHILDREN to ScrollWindowEx()
31711
317122006-09-27  Steve Falkenburg  <sfalken@apple.com>
31713
31714        Reviewed by Adam.
31715
31716        Remove unimplemented from a temporary link stub.
31717
31718        * platform/win/TemporaryLinkStubs.cpp:
31719        (GraphicsContext::addInnerRoundedRectClip):
31720
317212006-09-27  Sean Gies  <seangies@apple.com>
31722
31723        Reviewed by Brady Eidson.
31724
31725        * WebCore.vcproj/WebCore.vcproj: Added platform/win/WebCoreSystemInterface.h/cpp
31726        * platform/win/WebCoreSystemInterface.cpp: Added.
31727        * platform/win/WebCoreSystemInterface.h: Added.
31728
317292006-09-26  Adam Roben  <aroben@apple.com>
31730
31731        Reviewed by sfalken.
31732
31733        Fixes <rdar://problem/4751600>
31734        Hang on Amazon.com involving Flash
31735
31736        * plugins/win/PluginStreamWin.cpp: Rename m_streamStarted to
31737        m_isTerminated to match Mac code (m_isTerminated is the negation of
31738        m_streamStarted)
31739        (WebCore::PluginStreamWin::PluginStreamWin): Initialize m_isTerminated
31740        to false to match Mac code.
31741        (WebCore::PluginStreamWin::~PluginStreamWin): Rename and negate.
31742        (WebCore::PluginStreamWin::stop): Remove assignment of m_streamStarted
31743        to match Mac code.
31744        (WebCore::PluginStreamWin::startStream): Rename and negate. Remove
31745        now-unnecessary assignment of m_streamStarted to true because we set
31746        m_isTerminated to false in the constructor.
31747        (WebCore::PluginStreamWin::destroyStream): Rename and negate.
31748        * plugins/win/PluginStreamWin.h: Rename m_streamStarted to
31749        m_isTerminated.
31750        * plugins/win/PluginViewWin.cpp:
31751        (WebCore::PluginViewWin::performRequest): Send the correct response URL
31752        to the plugin.
31753
317542006-09-26  Steve Falkenburg  <sfalken@apple.com>
31755
31756        More temporary link stubs moved.
31757        Build tweaks.
31758
31759        * ChangeLog:
31760        * WebCore.vcproj/WebCore.make: Added.
31761        * WebCore.vcproj/WebCore.vcproj:
31762        * platform/win/TemporaryLinkStubs.cpp:
31763        (ListBox::isSelected):
31764        (ListBox::setWritingDirection):
31765        (ListBox::clear):
31766        (ListBox::doneAppendingItems):
31767        (ListBox::setEnabled):
31768        (ListBox::appendItem):
31769        (ListBox::setSelected):
31770
317712006-09-26  Sean Gies  <seangies@apple.com>
31772
31773        Reviewed by Brady Eidson.
31774
31775        * platform/win/GraphicsContextWin.cpp:
31776        (WebCore::CGContextWithHDC):  Make a static function.
31777        (WebCore::GraphicsContext::getWindowsContext): Assume flipped coordinates.
31778
317792006-09-26  Brady Eidson  <beidson@apple.com>
31780
31781        Nuked another notImplemented() that is getting hit
31782
31783        * platform/win/TemporaryLinkStubs.cpp:
31784        (GraphicsContext::addRoundedRectClip):
31785
317862006-09-26  Sean Gies  <seangies@apple.com>
31787
31788        Reviewed by Adam Roben.
31789
31790        * WebCore.vcproj/WebCore.vcproj: Use Debug DLL C runtime for debug config.
31791
317922006-09-26  Lou Amadio  <lamadio@apple.com>
31793
31794        Reviewed by ggaren
31795        Uninitialized variable caused a memory corruption on cnn.com
31796
31797        WARNING: NO TEST CASES ADDED OR CHANGED
31798
31799        * plugins/win/PlugInInfoStoreWin.cpp:
31800        (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
31801
318022006-09-26  Dave Hyatt  <hyatt@apple.com>
31803
31804        Fix my buggy invalidateRect implementation for Win32 widgets.
31805        
31806        Clean up my rect computation code in scrollbar to use x() and y() instead of
31807        frameGeometry().x()/y().
31808        
31809        Add a new invalidateTrack() method that invalidates the track (and handles
31810        putting the rect into the right coordinate space for proper invalidation
31811        now that I fixed invalidateRect).
31812
31813        * platform/win/PlatformScrollBar.h:
31814        * platform/win/PlatformScrollBarWin.cpp:
31815        (WebCore::PlatformScrollBar::updateThumbPosition):
31816        (WebCore::PlatformScrollBar::updateThumbProportion):
31817        (WebCore::PlatformScrollBar::invalidateTrack):
31818        (WebCore::PlatformScrollBar::backButtonRect):
31819        (WebCore::PlatformScrollBar::forwardButtonRect):
31820        (WebCore::PlatformScrollBar::trackRect):
31821        * platform/win/WidgetWin.cpp:
31822        (WebCore::Widget::invalidate):
31823
318242006-09-26  Dave Hyatt  <hyatt@apple.com>
31825
31826        Teach all our Win32 theme code (RenderTheme and PlatformScrollBar) how to respond correctly to OS theme changes.
31827        
31828        Implement painting of scrollbars using theme APIs.  The arrow buttons, track, thumb and gripper all paint properly
31829        now.  Next up is hit testing and proper hover feedback.
31830        
31831        Reviewed by andersca
31832        
31833        * platform/win/PlatformScrollBar.h:
31834        * platform/win/PlatformScrollBarWin.cpp:
31835        (WebCore::PlatformScrollBar::PlatformScrollBar):
31836        (WebCore::PlatformScrollBar::paint):
31837        (WebCore::PlatformScrollBar::backButtonRect):
31838        (WebCore::PlatformScrollBar::forwardButtonRect):
31839        (WebCore::PlatformScrollBar::trackRect):
31840        (WebCore::PlatformScrollBar::gripperRect):
31841        (WebCore::PlatformScrollBar::splitTrack):
31842        (WebCore::PlatformScrollBar::thumbPosition):
31843        (WebCore::PlatformScrollBar::thumbLength):
31844        (WebCore::PlatformScrollBar::paintButton):
31845        (WebCore::PlatformScrollBar::paintTrack):
31846        (WebCore::PlatformScrollBar::paintThumb):
31847        (WebCore::PlatformScrollBar::paintGripper):
31848        (WebCore::PlatformScrollBar::themeChanged):
31849        * platform/win/ScrollViewWin.cpp:
31850        (WebCore::ScrollView::themeChanged):
31851        * platform/win/TemporaryLinkStubs.cpp:
31852        (Widget::enableFlushDrawing):
31853        * platform/win/WidgetWin.cpp:
31854        (WebCore::Widget::isEnabled):
31855        * rendering/RenderThemeWin.cpp:
31856        (WebCore::RenderThemeWin::RenderThemeWin):
31857        (WebCore::RenderThemeWin::openButtonTheme):
31858        (WebCore::RenderThemeWin::openTextFieldTheme):
31859        (WebCore::RenderThemeWin::openMenuListTheme):
31860        (WebCore::RenderThemeWin::close):
31861        (WebCore::RenderThemeWin::themeChanged):
31862        * rendering/RenderThemeWin.h:
31863
318642006-09-25  Adam Roben  <aroben@apple.com>
31865
31866        Rubberstamped by sfalken.
31867
31868        Set svn:eol-style to native and cleanup line endings on plugins files.
31869
31870        * plugins/win/PluginStreamWin.cpp:
31871        (WebCore::PluginStreamWin::PluginStreamWin):
31872        (WebCore::PluginStreamWin::~PluginStreamWin):
31873        (WebCore::PluginStreamWin::start):
31874        (WebCore::PluginStreamWin::startStream):
31875        (WebCore::PluginStreamWin::destroyStream):
31876        (WebCore::PluginStreamWin::deliverData):
31877        (WebCore::PluginStreamWin::receivedResponse):
31878        (WebCore::PluginStreamWin::receivedData):
31879        (WebCore::PluginStreamWin::receivedAllData):
31880
318812006-09-25  Adam Roben  <aroben@apple.com>
31882
31883        Reviewed by Brady.
31884
31885        Fixes <rdar://problem/4749494>
31886        Crash/ASSERT in plugins at Fark.com
31887
31888        * platform/win/ResourceLoaderWin.cpp: Store whether a particular job
31889        has received a response within the ResourceLoader object itself, since
31890        it's possible that we will enter the InternetReadFileExA while loop
31891        twice for the same job.
31892        (WebCore::ResourceLoaderWndProc): Ask the job whether it has received a
31893        response instead of assuming it hasn't.
31894        (WebCore::ResourceLoader::setHasReceivedResponse): Added.
31895        (WebCore::ResourceLoader::hasReceivedResponse): Added.
31896
318972006-09-25  Adam Roben  <aroben@apple.com>
31898
31899        Rubberstamped by sfalken.
31900
31901        Continuing the removal of unnecessary notImplemented() calls.
31902
31903        * platform/win/TemporaryLinkStubs.cpp:
31904        (PlatformMouseEvent::PlatformMouseEvent):
31905        (FrameWin::passWheelEventToChildWidget):
31906
319072006-09-25  Adam Roben  <aroben@apple.com>
31908
31909        Rubberstamped by sfalken.
31910
31911        More notImplemented()-ectomy.
31912
31913        * platform/win/TemporaryLinkStubs.cpp:
31914        (RenderPopupMenuWin::addSeparator):
31915        (RenderPopupMenuWin::addGroupLabel):
31916
319172006-09-25  Adam Roben  <aroben@apple.com>
31918
31919        Rubberstamped by sfalken.
31920
31921        Remove calls to notImplemented() from functions that can fail safely.
31922
31923        * platform/win/TemporaryLinkStubs.cpp:
31924        (FrameWin::originalRequestURL):
31925        (FrameWin::isLoadTypeReload):
31926        (IconLoader::receivedResponse):
31927        (IconLoader::notifyIconChanged):
31928
319292006-09-25  Adam Roben  <aroben@apple.com>
31930
31931        Rubberstamped by sfalken.
31932
31933        Make notImplemented() crash even when not linked against the debug CRT.
31934
31935        * platform/win/TemporaryLinkStubs.cpp:
31936        (notImplemented): Change _CrtDbgBreak() to ASSERT(0)
31937
319382006-09-24  Dave Hyatt  <hyatt@apple.com>
31939
31940        Update the scrollbar API to match the changes in the public tree.
31941        
31942        Start implementing the Win32 scrollbar.  Add some scaffolding for grabbing uxtheme.dll info and also
31943        add some utility functions for breaking the scrollbar into individual components.
31944        
31945        * platform/win/PlatformScrollBar.h:
31946        * platform/win/PlatformScrollBarWin.cpp:
31947        (WebCore::PlatformScrollBar::PlatformScrollBar):
31948        (WebCore::PlatformScrollBar::updateThumbPosition):
31949        (WebCore::PlatformScrollBar::updateThumbProportion):
31950        (WebCore::PlatformScrollBar::paint):
31951        (WebCore::PlatformScrollBar::backButtonRect):
31952        (WebCore::PlatformScrollBar::forwardButtonRect):
31953        (WebCore::PlatformScrollBar::trackRect):
31954        (WebCore::PlatformScrollBar::splitTrack):
31955
319562006-09-22  Steve Falkenburg  <sfalken@apple.com>
31957
31958        Fix release build some more.
31959
31960        * WebCore.vcproj/WebCore.vcproj:
31961
319622006-09-22  Brady Eidson  <beidson@apple.com>
31963
31964        Extremely urgent update to my last two patches (without it, many urls will fail to load)
31965
31966        * platform/win/ResourceLoaderWin.cpp:
31967        (WebCore::ResourceLoader::onRequestComplete):
31968
319692006-09-22  Brady Eidson  <beidson@apple.com>
31970
31971        Forgot some lines we needed to keep for the internal build in my last checkin
31972
31973        * platform/win/ResourceLoaderWin.cpp:
31974
319752006-09-22  Brady Eidson  <beidson@apple.com>
31976
31977        Reviewed by Steve
31978
31979        Landed from OpenSource - that version now supports Redirect like we need, and is a little cleaner design
31980
31981        * platform/win/ResourceLoaderWin.cpp:
31982        (WebCore::):
31983        (WebCore::ResourceLoaderWndProc):
31984        (WebCore::initializeOffScreenResourceLoaderWindow):
31985        (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal):
31986        (WebCore::ResourceLoader::onHandleCreated):
31987        (WebCore::ResourceLoader::onRequestRedirected):
31988        (WebCore::ResourceLoader::onRequestComplete):
31989        (WebCore::transferJobStatusCallback):
31990        (WebCore::ResourceLoader::start):
31991        (WebCore::ResourceLoader::fileLoadTimer):
31992        (WebCore::ResourceLoader::cancel):
31993
319942006-09-22  Dave Hyatt <hyatt@apple.com>
31995
31996        Implement support for CSS2 system fonts on Win32.  Implement support for our special control font so that controls now
31997        pick up the correct font from the system.  This fixes the crazy form control font sizes on e.g., www.google.com.
31998
31999        * platform/win/TemporaryLinkStubs.cpp:
32000        * rendering/RenderThemeWin.cpp:
32001        (WebCore::fillFontDescription):
32002        (WebCore::RenderThemeWin::systemFont):
32003
320042006-09-22  Dave Hyatt <hyatt@apple.com>
32005
32006        Scrollbar preparation work.
32007        
32008        (1) Add support for enabling/disabling widgets.
32009        (2) Add support for invalidation of part or all of a widget.
32010        (3) Clean up some of the Win32 scrollbar code.  All that's left is painting
32011        and event handling. (Oh, is that all...) :)
32012
32013        Reviewed by anders
32014
32015        * platform/win/PlatformScrollBarWin.cpp:
32016        (WebCore::PlatformScrollBar::setScrollBarValue):
32017        (WebCore::PlatformScrollBar::setKnobProportion):
32018        (WebCore::PlatformScrollBar::setEnabled):
32019        (WebCore::PlatformScrollBar::paint):
32020        * platform/win/TemporaryLinkStubs.cpp:
32021        * platform/win/WidgetWin.cpp:
32022        (WebCore::Widget::Widget):
32023        (WebCore::Widget::setEnabled):
32024        (WebCore::Widget::invalidate):
32025        (WebCore::Widget::invalidateRect):
32026
320272006-09-21  Brady Eidson <beidson@apple.com>
32028
32029        Build was broken for at least some, and I think my checkin that messed with 
32030        #include orders was to blame (and it was messy, broken or not) - this cleans that up
32031
32032        * platform/win/ResourceLoaderWin.cpp:
32033
320342006-09-21  Alice Liu  <alice.liu@apple.com>
32035
32036        Reviewed by Hyatt.
32037
32038        windows build fix
32039
32040        * platform/win/GraphicsContextWin.cpp:
32041        wrapped a CG #include in #if PLATFORM(CG)
32042
320432006-09-21  Geoffrey Garen  <ggaren@apple.com>
32044
32045        Reviewed by Maciej, Hyatt, Steve.
32046    
32047        frames!
32048        
32049        Prep work:
32050            - moved ScrollViewWin into OpenSourceWin
32051            - set eol-style:native on some files and corrected line endings
32052            - updated the WebCore project so that you don't need cygwin in your Windows path
32053              to build correctly.
32054
32055        Real work:
32056
32057            On Windows, Widgets are no longer interfaces to Windows UI tookit objects. They're 
32058            just positioned objects.
32059                
32060            Widgets position themselves relative to their parents. The top-level widget technically
32061            has a position relative to the WebView, but that's academic, since it's always (0, 0).
32062            All widgets draw inside a common containing window (the WebView window). ScrollView 
32063            handles transformation, clipping, and dirty rect management.
32064            
32065            I've filed a bunch of bugs on remaining frames work. Most notably, closing a page with
32066            a frame in it causes a crash because WebCore depends on WebKit to manage frame lifetime.
32067            I'm going to fix that by integrating frame ownership into the DOM.
32068            
320692006-09-21  Steve Falkenburg  <sfalken@apple.com>
32070
32071        Reviewed by Anders.
32072        
32073        <rdar://4516072>
32074        <rdar://4601320>
32075        
32076        Implemented JavaScript alert/confirm/prompt inside app.
32077        This is done via IWebUIDelegate.
32078
32079        * bridge/win/FrameWin.cpp:
32080        (WebCore::FrameWin::userAgent):
32081        (WebCore::FrameWin::runJavaScriptAlert):
32082        (WebCore::FrameWin::runJavaScriptConfirm):
32083        (WebCore::FrameWin::runJavaScriptPrompt):
32084        * bridge/win/FrameWin.h:
32085        * platform/win/TemporaryLinkStubs.cpp:
32086        (FrameWin::registerCommandForRedo):
32087
320882006-09-21  Sean Gies  <seangies@apple.com>
32089
32090        Reviewed by NOBODY.
32091
32092        Unfork GraphicsContextCG.cpp.
32093
32094        * WebCore.vcproj/WebCore.vcproj: Unfork GraphicsContextCG.cpp and add GraphicsContextWin.cpp
32095        * platform/win/GraphicsContextWin.cpp: Added.
32096
320972006-09-21  Luke Wallis  <wallis@apple.com>
32098
32099        Rubber stamped by Steve.
32100
32101        Added (commented out for now) defines for building on PLATFORM(CG).
32102
32103        * config.h:
32104
321052006-09-21  Luke Wallis <wallis@apple.com>
32106
32107        Reviewed by Adam Roben.
32108
32109        Fix build. Added #if PLATFORM(CG) around variable defined only for CG.
32110
32111        * platform/win/FontDataWin.cpp:
32112        (WebCore::FontData::platformInit):
32113
321142006-09-21  Sean Gies  <seangies@apple.com>
32115
32116        Reviewed by Adam Roben.
32117
32118        Draw form controls when rendering with CG.
32119
32120        * platform/cg/GraphicsContextCG.cpp:
32121        (WebCore::CGContextWithHDC): New function to create CGContext given an HDC.
32122        (WebCore::GraphicsContext::GraphicsContext): New constructor that takes an HDC.
32123        (WebCore::GraphicsContext::getWindowsContext): Return underlying HDC to client.
32124        (WebCore::GraphicsContext::releaseWindowsContext): Restore underlying HDC after client mucked with it.
32125        * platform/cg/GraphicsContextPlatformPrivate.h: Add field to hold HDC.
32126        * rendering/RenderThemeWin.cpp: Implement prepareForDrawing and doneDrawing for CG.
32127
321282006-09-21  Anders Carlsson  <acarlsson@apple.com>
32129
32130        Reviewed by Tim O.
32131
32132        Support getting the plugin element as an NPObject.
32133        
32134        * plugins/win/PluginViewWin.cpp:
32135        (WebCore::PluginViewWin::getValue):
32136        (WebCore::PluginViewWin::PluginViewWin):
32137        * plugins/win/PluginViewWin.h:
32138
321392006-09-21  Sean Gies  <seangies@apple.com>
32140
32141        Reviewed by Adam Roben.
32142
32143        Forked GraphicsContextCG.cpp and GraphicsContextPlatformPrivate.h from open source #16504.
32144
32145        * platform/cg/GraphicsContextCG.cpp: Added.
32146        * platform/cg/GraphicsContextPlatformPrivate.h: Added.
32147
321482006-09-21  Sean Gies  <seangies@apple.com>
32149
32150        Reviewed by Adam Roben.
32151
32152        Support synthetic bold and/or oblique with CG.
32153
32154        * platform/win/FontCacheWin.cpp: Pass new arguments to updated FontPlatformData constructor.
32155        * platform/win/FontDataWin.cpp:
32156        (WebCore::FontData::platformInit): Choose synthetic bold offset.
32157        (WebCore::FontData::platformWidthForGlyph): Take synthetic bold offset into account.
32158        * platform/win/FontPlatformData.h: Add fields for synthetic styles.
32159        * platform/win/FontPlatformDataWin.cpp: Ask HFONT if it supports bold or italics.
32160        * platform/win/FontWin.cpp:
32161        (WebCore::Font::drawGlyphs): Restore code for implementing synthetic stlyes.
32162
321632006-09-21  Brady Eidson  <beidson@apple.com>
32164
32165        Reviewed by Anders
32166
32167        Fixed one definite bug and did alot of cleanup to make it resemble the unforked version of the file
32168        in preparation for merging it back out
32169
32170        * platform/win/ResourceLoaderWin.cpp:
32171        (WebCore::ResourceLoaderWndProc):
32172        (WebCore::transferJobStatusCallback): Fixed a bug here!  :)
32173        (WebCore::ResourceLoader::start):
32174        (WebCore::ResourceLoader::fileLoadTimer):
32175        (WebCore::ResourceLoader::cancel):
32176
321772006-09-21  2006-09-21  Dave Hyatt <hyatt@apple.com>
32178
32179        Implement mouse wheel scrolling on Win32.  Also forked ScrollViewWin.cpp and fixed some bugs in it.
32180
32181        * WebCore.vcproj/WebCore.vcproj:
32182        * platform/win/ScrollViewWin.cpp: Added.
32183        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
32184        (WebCore::ScrollView::ScrollView):
32185        (WebCore::ScrollView::~ScrollView):
32186        (WebCore::ScrollView::updateContents):
32187        (WebCore::ScrollView::visibleWidth):
32188        (WebCore::ScrollView::visibleHeight):
32189        (WebCore::ScrollView::visibleContentRect):
32190        (WebCore::ScrollView::setContentsPos):
32191        (WebCore::ScrollView::resizeContents):
32192        (WebCore::ScrollView::contentsX):
32193        (WebCore::ScrollView::contentsY):
32194        (WebCore::ScrollView::contentsWidth):
32195        (WebCore::ScrollView::contentsHeight):
32196        (WebCore::ScrollView::viewportToContents):
32197        (WebCore::ScrollView::contentsToViewport):
32198        (WebCore::ScrollView::scrollOffset):
32199        (WebCore::ScrollView::maximumScroll):
32200        (WebCore::ScrollView::scrollBy):
32201        (WebCore::ScrollView::hScrollBarMode):
32202        (WebCore::ScrollView::vScrollBarMode):
32203        (WebCore::ScrollView::suppressScrollBars):
32204        (WebCore::ScrollView::setHScrollBarMode):
32205        (WebCore::ScrollView::setVScrollBarMode):
32206        (WebCore::ScrollView::setScrollBarsMode):
32207        (WebCore::ScrollView::setStaticBackground):
32208        (WebCore::ScrollView::updateScrollInfo):
32209        (WebCore::ScrollView::updateScrollBars):
32210        (WebCore::ScrollView::wheelEvent):
32211        * platform/win/WheelEventWin.cpp: Added.
32212        (WebCore::positionForEvent):
32213        (WebCore::globalPositionForEvent):
32214        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32215
322162006-09-20  Sean Gies  <seangies@apple.com>
32217
32218        Reviewed by Adam Roben.
32219
32220        Added platform/cg/ColorCG.cpp
32221
32222        * WebCore.vcproj/WebCore.vcproj: Add ColorCG.cpp
32223        * platform/cg/ColorCG.cpp: Added.
32224
322252006-09-20  Sean Gies  <seangies@apple.com>
32226
32227        Reviewed by Adam Roben.
32228
32229        Fixed ugly text spacing issues with CG for Windows.
32230
32231        * platform/win/FontDataWin.cpp: Reimplement platformWidthForGlyph using CG APIs.
32232
322332006-09-19  Anders Carlsson  <acarlsson@apple.com>
32234
32235        Reviewed by Dave Hyatt.
32236        
32237        <rdar://problem/4734743> Crash accessing YouTube.
32238        
32239        * config.h:
32240        Enable some more of the JSC bindings code on Windows.
32241        
322422006-09-18  Brady Eidson  <beidson@apple.com>
32243
32244        YABF, and merged a change from open source ResourceLoaderWin.cpp
32245
32246        * bridge/win/FrameWin.h:
32247        * platform/win/ResourceLoaderWin.cpp:
32248        (WebCore::ResourceLoader::fileLoadTimer):
32249        * platform/win/TemporaryLinkStubs.cpp:
32250        (FrameWin::isLoadTypeReload):
32251
322522006-09-18  Sean Gies  <seangies@apple.com>
32253
32254        Reviewed by Adam Roben.
32255
32256        Support bold & italics.
32257
32258        * platform/win/FontPlatformDataWin.cpp: Use GetOutlineTextMetrics instead of GetTextFace to
32259            query HFONT name.
32260
322612006-09-18  Sean Gies  <seangies@apple.com>
32262
32263        Reviewed by Adam Roben.
32264
32265        Changes to bring up CoreGraphics on Windows.
32266
32267        * WebCore.vcproj/WebCore.vcproj: Search platform/cg for headers.  Compile platform/cg/*.cpp.
32268             Add AffineTransform.cpp to build.
32269        * platform/win/FontDataWin.cpp: Include CG before using it.
32270        * platform/win/FontPlatformDataWin.cpp: Fixed typo.
32271        * platform/win/ImageWin.cpp: Include CG and winsock2.  Implement CG version of Image::getHBITMAP.
32272             In Cairo version of Image::getHBITMAP, use correct bitmapInfo field and return true for success.
32273             Fixed image loading bug.
32274
322752006-09-18  Brady Eidson  <beidson@apple.com>
32276
32277        Rubberstamp by Adam
32278
32279        Build fix
32280
32281        * bridge/win/FrameWin.h:
32282        * platform/win/TemporaryLinkStubs.cpp:
32283        (FrameWin::originalRequestURL):
32284
322852006-09-18  Sean Gies  <seangies@apple.com>
32286
32287        Reviewed by Adam Roben.
32288
32289        Forked FontCacheWin.cpp from OpenSource tree r16421.
32290
32291        * WebCore.vcproj/WebCore.vcproj: Point to Internal file.
32292        * platform/win/FontCacheWin.cpp: Added.
32293
322942006-09-15  Anders Carlsson  <acarlsson@apple.com>
32295
32296        Reviewed by Steve.
32297
32298        * WebCore.vcproj/WebCore.vcproj:
32299        Add JavaScriptCore/ to include path.
32300
323012006-09-15  Adam Roben  <aroben@apple.com>
32302
32303        Reviewed by sfalken.
32304
32305        Implement historyContains() on Windows (rdar://4733770)
32306
32307        * WebCore.vcproj/WebCore.vcproj: Add
32308        platform\win\WebCoreHistory.{cpp,h} and bridge\win\HistoryWin.cpp to
32309        project.
32310        * bridge/win/HistoryWin.cpp: Added.
32311        (WebCore::historyContains):
32312        * platform/win/TemporaryLinkStubs.cpp: Remove stub for
32313        WebCore::historyContains()
32314        * platform/win/WebCoreHistory.cpp: Added.
32315        (WebCore::WebCoreHistory::setHistoryProvider):
32316        (WebCore::WebCoreHistory::historyProvider):
32317        * platform/win/WebCoreHistory.h: Added.
32318
323192006-09-14  Steve Falkenburg  <sfalken@apple.com>
32320
32321        Reviewed by Lou Amadio.
32322
32323        iBench fix - fix WinInet form post code to not reference a stale pointer.
32324        (found by Application Verifier)
32325
32326        * platform/win/ResourceLoaderWin.cpp:
32327        (WebCore::ResourceLoaderWndProc):
32328
323292006-09-14  Adam Roben  <aroben@apple.com>
32330
32331        Reviewed by sfalken.
32332
32333        A little #include cleanup
32334
32335        * WebCore.vcproj/WebCore.vcproj: Add loader/icon to
32336        AdditionalIncludeDirectories
32337        * platform/win/TemporaryLinkStubs.cpp: Remove "loader/icon" from
32338        #include of IconLoader.h
32339
323402006-09-14  Brady Eidson  <beidson@apple.com>
32341
32342        Build Fix
32343
32344        * WebCore.vcproj/WebCore.vcproj:
32345        * platform/win/TemporaryLinkStubs.cpp:
32346        (IconLoader::receivedResponse):
32347        (IconLoader::notifyIconChanged):
32348
323492006-09-13  Steve Falkenburg  <sfalken@apple.com>
32350
32351        Fixes for submission of WebCore.  Doesn't affect build.
32352
32353        * WebCore.vcproj/WebCore.vcproj:
32354        * WebCore.vcproj/merge-opensource.sh:
32355
323562006-09-12  Steve Falkenburg  <sfalken@apple.com>
32357
32358        Rubber-stamped by Ada.
32359
32360        Get Boomer ready for B&I submission.
32361       
32362        Projects can now all build independent of one another
32363        without groping for headers or source across trees.
32364
32365        * WebCore.vcproj/WebCore.sln: Fix standalone sln for use by B&I.
32366        * WebCore.vcproj/WebCore.vcproj: Update to new obj layout.
32367        * WebCore.vcproj/build-generated-files.sh: Build derived sources into obj, update to new obj layout.
32368        * WebCore.vcproj/dstroot-to-sdk.cmd: Copy built bits back to WebKitSDKDir for dependent builds.
32369
323702006-09-13  Adam Roben  <aroben@apple.com>
32371
32372        Build fix
32373
32374        * WebCore.vcproj/WebCore.vcproj: Rename KHTML_XSLT to XSLT_SUPPORT,
32375        remove KHTML_NO_XBL
32376        * config.h: Ditto.
32377
323782006-09-13  Adam Roben  <aroben@apple.com>
32379
32380        Reviewed by beidson.
32381
32382        Initial implementation of Icon, FileChooser on Windows.
32383
32384        * WebCore.vcproj/WebCore.vcproj: Added FileChooserWin.cpp, IconWin.cpp
32385        * platform/win/FileChooserWin.cpp: Added.
32386        (WebCore::FileChooser::FileChooser):
32387        (WebCore::FileChooser::openFileChooser):
32388        (WebCore::FileChooser::basenameForWidth):
32389        (WebCore::FileChooser::uploadControlDetaching):
32390        (WebCore::FileChooser::chooseFile):
32391        * platform/win/IconWin.cpp: Added.
32392        (WebCore::Icon::Icon):
32393        (WebCore::Icon::~Icon):
32394        (WebCore::Icon::newIconForFile):
32395        (WebCore::Icon::paint):
32396        * platform/win/TemporaryLinkStubs.cpp: Removed FileChooser, Icon stub
32397        functions
32398
323992006-09-13  Anders Carlsson  <acarlsson@apple.com>
32400
32401        Reviewed by Tim O.
32402
32403        Implement postURL and postURLNotify.
32404
32405        * plugins/win/PluginStreamWin.cpp:
32406        (WebCore::PluginStreamWin::~PluginStreamWin):
32407        (WebCore::PluginStreamWin::start):
32408        (WebCore::PluginStreamWin::startStream):
32409        (WebCore::PluginStreamWin::cancelAndDestroyStream):
32410        * plugins/win/PluginViewWin.cpp:
32411        (WebCore::PluginViewWin::start):
32412        (WebCore::PluginViewWin::loadURL):
32413        (WebCore::PluginViewWin::getURLNotify):
32414        (WebCore::PluginViewWin::getURL):
32415        (WebCore::startsWithBlankLine):
32416        (WebCore::locationAfterFirstBlankLine):
32417        (WebCore::findEOL):
32418        (WebCore::capitalizeRFC822HeaderFieldName):
32419        (WebCore::parseRFC822HeaderFields):
32420        (WebCore::PluginViewWin::handlePost):
32421        (WebCore::PluginViewWin::postURLNotify):
32422        (WebCore::PluginViewWin::postURL):
32423        * plugins/win/PluginViewWin.h:
32424
324252006-09-13  Lou Amadio  <lamadio@apple.com>
32426
32427        Reviewed by sfalken
32428
32429        * WebCore.vcproj/WebCore.vcproj:
32430
324312006-09-13  Adam Roben  <aroben@apple.com>
32432
32433        Build fix
32434
32435        * WebCore.vcproj/build-generated-files.sh: Export SOURCE_ROOT which is
32436        now used by CodeGenerator.pm
32437
324382006-09-12  Anders Carlsson  <acarlsson@apple.com>
32439
32440        Reviewed by Tim O.
32441
32442        Add scripting support for plugins.
32443        
32444        * bridge/win/FrameWin.cpp:
32445        (WebCore::FrameWin::FrameWin):
32446        (WebCore::FrameWin::addPluginRootObject):
32447        (WebCore::FrameWin::cleanupPluginObjects):
32448        (WebCore::FrameWin::bindingRootObject):
32449        (WebCore::FrameWin::windowScriptNPObject):
32450        * bridge/win/FrameWin.h:
32451        * plugins/win/PluginPackageWin.cpp:
32452        (WebCore::PluginPackageWin::load):
32453        * plugins/win/PluginViewWin.cpp:
32454        (WebCore::PluginViewWin::getValue):
32455        * plugins/win/npapi.cpp:
32456        (NPN_RequestRead):
32457        (NPN_InvalidateRect):
32458        (NPN_InvalidateRegion):
32459        (NPN_ForceRedraw):
32460
324612006-09-12  Adam Roben  <aroben@apple.com>
32462
32463        Reviewed many times by darin, hyatt.
32464
32465        Add stubs for new engine-based file upload control implementation and
32466        Icon class.
32467
32468        * WebCore.vcproj/WebCore.vcproj: Add new engine-based files, remove old
32469        widget-based files.
32470        * platform/win/TemporaryLinkStubs.cpp: Add stubs for FileChooser and
32471        Icon methods, and add two new LocalizedString methods.
32472        (WebCore::fileButtonChooseFileLabel):
32473        (WebCore::fileButtonNoFileSelectedLabel):
32474        (FileChooser::FileChooser):
32475        (FileChooser::~FileChooser):
32476        (FileChooser::openFileChooser):
32477        (FileChooser::basenameForWidth):
32478        (FileChooser::uploadControlDetaching):
32479        (Icon::~Icon):
32480        (Icon::paint):
32481
324822006-09-11  Anders Carlsson  <acarlsson@apple.com>
32483
32484        Reviewed by Tim O.
32485
32486        Add stream and URL handling to PluginViewWin. Include PluginStreamWin.cpp in the build.
32487        Also fix a number of bugs discovered when loading various plugins.
32488        
32489        * WebCore.vcproj/WebCore.vcproj:
32490        * plugins/win/PluginViewWin.cpp:
32491        (WebCore::PluginRequestWin::PluginRequestWin):
32492        (WebCore::PluginRequestWin::url):
32493        (WebCore::PluginRequestWin::target):
32494        (WebCore::PluginRequestWin::notifyData):
32495        (WebCore::PluginRequestWin::sendNotification):
32496        (WebCore::scriptStringIfJavaScriptURL):
32497        (WebCore::registerPluginView):
32498        (WebCore::PluginViewWndProc):
32499        (WebCore::PluginViewWin::updateSize):
32500        (WebCore::PluginViewWin::setFrameGeometry):
32501        (WebCore::PluginViewWin::start):
32502        (WebCore::PluginViewWin::stop):
32503        (WebCore::createUTF8String):
32504        (WebCore::PluginViewWin::performRequest):
32505        (WebCore::PluginViewWin::requestTimerFired):
32506        (WebCore::PluginViewWin::scheduleRequest):
32507        (WebCore::PluginViewWin::loadURL):
32508        (WebCore::makeURL):
32509        (WebCore::PluginViewWin::getURLNotify):
32510        (WebCore::PluginViewWin::getURL):
32511        (WebCore::PluginViewWin::newStream):
32512        (WebCore::PluginViewWin::write):
32513        (WebCore::PluginViewWin::destroyStream):
32514        (WebCore::PluginViewWin::userAgent):
32515        (WebCore::PluginViewWin::~PluginViewWin):
32516        (WebCore::PluginViewWin::PluginViewWin):
32517        * plugins/win/PluginViewWin.h:
32518
325192006-09-11  Anders Carlsson  <acarlsson@apple.com>
32520
32521        * WebCore.vcproj/WebCore.vcproj:
32522        Fix build.
32523        
325242006-09-11  Anders Carlsson  <acarlsson@apple.com>
32525
32526        Reviewed by Tim O and Maciej.
32527
32528        Add plugin stream object.
32529        
32530        * plugins/win/PluginStreamWin.cpp: Added.
32531        (WebCore::PluginStreamWin::PluginStreamWin):
32532        (WebCore::PluginStreamWin::~PluginStreamWin):
32533        (WebCore::PluginStreamWin::setRequestHeaders):
32534        (WebCore::PluginStreamWin::setPostData):
32535        (WebCore::PluginStreamWin::start):
32536        (WebCore::PluginStreamWin::stop):
32537        (WebCore::PluginStreamWin::startStream):
32538        (WebCore::PluginStreamWin::cancelAndDestroyStream):
32539        (WebCore::PluginStreamWin::destroyStream):
32540        (WebCore::PluginStreamWin::delayDeliveryTimerFired):
32541        (WebCore::PluginStreamWin::deliverData):
32542        (WebCore::PluginStreamWin::receivedResponse):
32543        (WebCore::PluginStreamWin::receivedData):
32544        (WebCore::PluginStreamWin::receivedAllData):
32545        * plugins/win/PluginStreamWin.h: Added.
32546
325472006-09-10  Brady Eidson  <beidson@apple.com>
32548
32549        Reviewed by Steven Falkenburg
32550
32551        Added IconDatabase related code and forked ImageWin for its HBITMAP blit
32552
32553        * WebCore.vcproj/WebCore.vcproj: Added in all WebCore::IconDatabase stuffs
32554        * platform/win/ImageWin.cpp: Added. (forked from OpenSource)
32555        (WebCore::Image::initPlatformData):
32556        (WebCore::Image::invalidatePlatformData):
32557        (WebCore::Image::loadPlatformResource):
32558        (WebCore::Image::supportsType):
32559        (WebCore::Image::getHBITMAP): Added - blit the image to an HBITMAP 
32560        
325612006-09-10  David Hyatt  <hyatt@apple.com>
32562
32563        Remove the addIntrinsicMargins code from the theme.  I did this
32564        in the open source version but forgot to do it in the internal
32565        version.
32566
32567        * rendering/RenderThemeWin.cpp:
32568        (WebCore::RenderThemeWin::adjustButtonStyle):
32569        (WebCore::RenderThemeWin::adjustTextFieldStyle):
32570        (WebCore::RenderThemeWin::adjustTextAreaStyle):
32571        (WebCore::RenderThemeWin::adjustMenuListStyle):
32572
325732006-09-10  Brady Eidson  <beidson@apple.com>
32574
32575        Reviewed by YABF, and Adam's suggestive rubberstamp before he hopped offline
32576
32577        Build fix + FIXME/Radar to reflect an OpenSource change to the Font.h header
32578
32579        * platform/win/FontWin.cpp:
32580        (WebCore::Font::drawGlyphs): Added the parameter and a FIXME 
32581
325822006-09-10  Steve Falkenburg  <sfalken@apple.com>
32583
32584        Rubber-stamp by aroben.
32585        
32586        * WebCore.vcproj/WebCore.vcproj:
32587
325882006-09-09  Steve Falkenburg  <sfalken@apple.com>
32589
32590        Reviewed by aroben.
32591
32592        Added missing CF files to fix CFNetwork build variant
32593
32594        * WebCore.vcproj/WebCore.vcproj: Use include paths, libs, DLLs from %SystemDrive%\AppleInternal
32595        * WebCore.vcproj/build-generated-files.sh: Don't copy open source DLLs from WebKitLibraries
32596
325972006-09-09  Adam Roben  <aroben@apple.com>
32598
32599        Reviewed by hyatt.
32600
32601        Remove unnecessary calls to setAffectedBy{Active,Hover}Rules
32602
32603        * rendering/RenderThemeWin.cpp:
32604        (WebCore::RenderThemeWin::adjustMenuListStyle): Remove unnecessary calls
32605
326062006-09-06  Brady Eidson  <beidson@apple.com>
32607
32608        YABF (Yet another build fix)
32609
32610        * platform/win/FontDataWin.cpp: Added missing header
32611
326122006-09-06  Brady Eidson  <beidson@apple.com>
32613
32614        Reviewed by Steve's rubberstamp
32615
32616        Three stubs were added this morning, however the methods were already implemented in
32617        Internal/OpenSourceWin/WebCoreWin/bridge/win/FrameWin.cpp
32618
32619        * platform/win/TemporaryLinkStubs.cpp: Nuked some repeat symbols
32620
326212006-09-06  Adam Roben  <aroben@apple.com>
32622
32623        Reviewed by Darin.
32624
32625        Fixed various Windows build issues caused by previous checkins.
32626
32627        * bridge/win/FrameWin.h: Added missing #include, updated Selection to SelectionController.
32628        * platform/win/FontWin.cpp: Reorganized #includes.
32629        (WebCore::Font::drawGlyphs): Used a const_cast hack to fix ultimately broken code.
32630        * platform/win/ResourceLoaderWin.cpp: Added missing #include of CString.h and removed double #include of config.h.
32631        (WebCore::ResourceLoaderWndProc): Removed use of String::ascii.
32632        (WebCore::ResourceLoader::start): Ditto.
32633        * platform/win/TemporaryLinkStubs.cpp: Added missing stubs.
32634        (FrameWin::markMisspellings):
32635        (FrameWin::shouldChangeSelection):
32636        (FrameWin::respondToChangedSelection):
32637        (FrameWin::respondToChangedContents):
32638        (FrameWin::handledOnloadEvents):
32639        (FrameWin::createPlugin):
32640        (FrameWin::objectContentType):
32641        * rendering/RenderPopupMenuWin.cpp: Added missing #include.
32642
326432006-09-05  Darin Adler  <darin@apple.com>
32644
32645        - build fix part of http://bugzilla.opendarwin.org/show_bug.cgi?id=10728
32646          text encodings should work without a numeric ID
32647
32648        * WebCore.vcproj/WebCore.vcproj: Update for new headers.
32649
326502006-09-01  Steve Falkenburg  <sfalken@apple.com>
32651
32652        Reviewed by adachan.
32653
32654        Process redirects received in networking layer through to application.
32655        With this change, the address bar url edit field shows the proper
32656        redirected URL.
32657
32658        * platform/win/ResourceLoaderWin.cpp:
32659        (WebCore::ResourceLoaderWndProc):
32660        (WebCore::transferJobStatusCallback):
32661        (WebCore::ResourceLoader::start):
32662
326632006-09-01  Ada Chan  <adachan@apple.com>
32664
32665        Reviewed by lamadio.
32666
32667        Fixed build break.
32668
32669        * bridge/win/FrameWin.h:
32670        * platform/win/TemporaryLinkStubs.cpp:
32671        (FrameWin::respondToChangedContents):
32672
326732006-08-31  Anders Carlsson  <acarlsson@apple.com>
32674
32675        Reviewed by Steve.
32676
32677        Add our own internal config.h so we can make changes to it.
32678        
32679        * WebCore.vcproj/WebCore.vcproj:
32680        Add config.h to the file list, move the KXMLCORE_PLATFORM_CF to the new config.h file 
32681                       
32682        * config.h: Added.
32683        
32684        * platform/win/ResourceLoaderWin.cpp:
32685        Include config.h        
32686
326872006-08-31  Dave Hyatt <hyatt@apple.com>
32688
32689        Add a platform scrollbar class for Windows.  It doesn't really work yet.
32690
32691        * WebCore.vcproj/WebCore.vcproj:
32692        * platform/win/TemporaryLinkStubs.cpp:
32693        * platform/win/PlatformScrollBarWin.cpp
32694
326952006-08-31  Anders Carlsson  <acarlsson@apple.com>
32696
32697        Fix the build.
32698
32699        * WebCore.vcproj/WebCore.vcproj:
32700
327012006-08-30  Steve Falkenburg  <sfalken@apple.com>
32702
32703        Reviewed by Ada Chan.
32704
32705        * bridge/win/FrameWin.cpp:
32706        (WebCore::FrameWin::submitForm): Pass form values to submit form delegate
32707        * bridge/win/FrameWin.h: Pass form values to submit form delegate
32708
327092006-08-29  David Hyatt  <hyatt@apple.com>
32710
32711        Make project changes so that the forked Font files (and Cairo/JPG/PNG) are all used.
32712
32713        * WebCore.vcproj/WebCore.vcproj:
32714
327152006-08-29  David Hyatt  <hyatt@apple.com>
32716
32717        This patch lands all the font changes.  It does not patch the project file
32718        yet, since this was done on Mac.  Will switch to Win32 after landing this
32719        and then fix any glitches.
32720
32721        * platform/cairo/cairo-all.c: Added.
32722        * platform/cairo/pixman-all.c: Added.
32723        * platform/image-decoders/jpeg/jpeg-part1.c: Added.
32724        * platform/image-decoders/jpeg/jpeg-part2.c: Added.
32725        * platform/image-decoders/jpeg/jpeg-part3.c: Added.
32726        * platform/image-decoders/png/png-part1.c: Added.
32727        * platform/image-decoders/png/png-part2.c: Added.
32728        * platform/win/FontDataWin.cpp:
32729        (WebCore::FontData::platformInit):
32730        (WebCore::FontData::platformDestroy):
32731        (WebCore::FontData::platformWidthForGlyph):
32732        * platform/win/FontPlatformData.h:
32733        (WebCore::FontPlatformData::FontPlatformData):
32734        (WebCore::FontPlatformData::cgFont):
32735        (WebCore::FontPlatformData::operator==):
32736        * platform/win/FontPlatformDataWin.cpp:
32737        (WebCore::m_size):
32738        * platform/win/FontWin.cpp:
32739        (WebCore::Font::drawGlyphs):
32740
327412006-08-29  David Hyatt  <hyatt@apple.com>
32742
32743        Forking the font files in preparation for dropping in CG code.
32744
32745        Reviewed by adam
32746
32747        * WebCore.vcproj/WebCore.vcproj:
32748        * platform/win/FontDataWin.cpp: Added.
32749        (WebCore::FontData::platformInit):
32750        (WebCore::FontData::platformDestroy):
32751        (WebCore::FontData::smallCapsFontData):
32752        (WebCore::FontData::containsCharacters):
32753        (WebCore::FontData::determinePitch):
32754        (WebCore::FontData::platformWidthForGlyph):
32755        * platform/win/FontPlatformData.h: Added.
32756        (WebCore::FontPlatformData::FontPlatformData):
32757        (WebCore::FontPlatformData::hfont):
32758        (WebCore::FontPlatformData::fontFace):
32759        (WebCore::FontPlatformData::scaledFont):
32760        (WebCore::FontPlatformData::size):
32761        (WebCore::FontPlatformData::hash):
32762        (WebCore::FontPlatformData::operator==):
32763        * platform/win/FontPlatformDataWin.cpp: Added.
32764        (WebCore::m_size):
32765        (WebCore::FontPlatformData::~FontPlatformData):
32766        * platform/win/FontWin.cpp: Added.
32767        (WebCore::notImplemented):
32768        (WebCore::Font::drawGlyphs):
32769        (WebCore::Font::selectionRectForComplexText):
32770        (WebCore::Font::drawComplexText):
32771        (WebCore::Font::floatWidthForComplexText):
32772        (WebCore::Font::offsetForPositionForComplexText):
32773
327742006-08-28  Geoffrey Garen  <ggaren@apple.com>
32775
32776        Reviewed by Maciej.
32777
32778        Landed CFNetwork loader, off by default. To enable, define:
32779            KXMLCORE_PLATFORM_CF
32780            KXMLCORE_USE_CFNETWORK
32781
32782        CFNetwork uses winsock2. If you do this, you need to make sure that winsock2.h
32783        is included before windows.h in any translation unit in which it's used.
32784        A lot of the jiggering in this patch is devoted to that.
32785        
32786        * WebCore.vcproj/WebCore.vcproj:
32787        * platform/win/ResourceLoaderWin.cpp: Removed reliance on PlatformData
32788        since it wasn't being used, and removing it made easy work of integrating
32789        CFNetwork in a Windows-independent way.
32790        (WebCore::ResourceLoaderWndProc):
32791        (WebCore::ResourceLoader::fileLoadTimer):
32792        (WebCore::ResourceLoader::cancel):
32793        * platform/win/TemporaryLinkStubs.cpp:
32794        (Path::contains):
32795        * platform/win/WidgetWin.cpp:
32796        * plugins/win/PluginDatabaseWin.cpp:
32797        * plugins/win/PluginPackageWin.h:
32798        * plugins/win/PluginViewWin.h:
32799        * plugins/win/npapi.cpp:
32800        * rendering/RenderPopupMenuWin.cpp:
32801        * rendering/RenderPopupMenuWin.h:
32802        * rendering/RenderThemeWin.cpp:
32803
328042006-08-28  Ada Chan  <adachan@apple.com>
32805
32806        Reviewed by ggaren.
32807
32808        Fixed build.
32809
32810        * platform/win/TemporaryLinkStubs.cpp:
32811        (Path::contains):
32812
328132006-08-25  David Hyatt  <hyatt@apple.com>
32814
32815        Land CG/Cairo refactoring (and add some winsock2.h).  (I do not really
32816        understand why the winsock2.h stuff would suddenly be needed.)
32817
32818        * platform/win/ResourceLoaderWin.h:
32819        * platform/win/TemporaryLinkStubs.cpp:
32820        (GraphicsContext::setAlpha):
32821        (GraphicsContext::drawFocusRing):
32822        (GraphicsContext::drawLineForMisspelling):
32823        (GraphicsContext::setCompositeOperation):
32824        * plugins/win/PluginPackageWin.h:
32825        * plugins/win/PluginViewWin.h:
32826        * plugins/win/npapi.cpp:
32827        * rendering/RenderThemeWin.cpp:
32828        (WebCore::prepareForDrawing):
32829        (WebCore::doneDrawing):
32830
328312006-08-24  Geoffrey Garen  <ggaren@apple.com>
32832
32833        Reviewed by Darin.
32834
32835        Frame refactoring: changed FrameView clients so they no longer assume that
32836        FrameViews are Widgets that can tell you things about the platform, in 
32837        preparation for divorcing FrameViews from heavy-weight Widgets altogether.
32838
32839        This patch makes Page, rather than Widget, responsible for holding the
32840        page's HWND. Refactoring aside, I think this makes more sense.
32841
328422006-08-24  Geoffrey Garen  <ggaren@apple.com>
32843
32844        Reviewed by Hyatt.
32845
32846        Branching PageWin.cpp from r15969.
32847
32848        * WebCore.vcproj/WebCore.vcproj:
32849        * bridge/win/PageWin.cpp: Added.
32850        (WebCore::Page::Page):
32851        (WebCore::Page::windowRect):
32852        (WebCore::Page::setWindowRect):
32853
328542006-08-23  Adam Roben  <aroben@apple.com>
32855
32856        Reviewed by Ada.
32857
32858        Fixed placement of popups when document is scrolled.
32859
32860        * rendering/RenderPopupMenuWin.cpp:
32861        (WebCore::RenderPopupMenuWin::setPositionAndSize):
32862
328632006-08-23  Steve Falkenburg  <sfalken@apple.com>
32864
32865        Build fix (many of our include paths were wrong!)
32866
32867        * WebCore.vcproj/WebCore.vcproj:
32868
328692006-08-23  Adam Roben  <aroben@apple.com>
32870
32871        Reviewed by Darin, Lou, Adele.
32872
32873        Initial implementation of <select> elements on Windows.
32874
32875        * WebCore.vcproj/WebCore.vcproj:
32876            Added RenderPopupMenuWin.cpp
32877        * platform/win/TemporaryLinkStubs.cpp:
32878        (RenderPopupMenuWin::addGroupLabel):
32879        * rendering/RenderPopupMenuWin.cpp: Added.
32880        (WebCore::RenderPopupMenuWin::RenderPopupMenuWin):
32881        (WebCore::RenderPopupMenuWin::~RenderPopupMenuWin):
32882        (WebCore::RenderPopupMenuWin::clear):
32883        (WebCore::RenderPopupMenuWin::populate):
32884        (WebCore::RenderPopupMenuWin::showPopup):
32885        (WebCore::RenderPopupMenuWin::hidePopup):
32886        (WebCore::RenderPopupMenuWin::setPositionAndSize):
32887        (WebCore::RenderPopupMenuWin::addOption):
32888        (WebCore::RenderPopupMenuWin::down):
32889        (WebCore::RenderPopupMenuWin::up):
32890        (WebCore::registerPopup):
32891        (WebCore::PopupWndProc):
32892        * rendering/RenderPopupMenuWin.h:
32893            Added useful properties.
32894        (WebCore::RenderPopupMenuWin::popupHandle):
32895        (WebCore::RenderPopupMenuWin::containerHandle):
32896        (WebCore::RenderPopupMenuWin::wasClicked):
32897        (WebCore::RenderPopupMenuWin::setWasClicked):
32898        * rendering/RenderThemeWin.cpp:
32899        (WebCore::RenderThemeWin::RenderThemeWin):
32900        (WebCore::RenderThemeWin::openButtonTheme):
32901        (WebCore::RenderThemeWin::openTextFieldTheme):
32902        (WebCore::RenderThemeWin::openMenuListTheme):
32903        (WebCore::RenderThemeWin::close):
32904        (WebCore::RenderThemeWin::supportsFocus):
32905        (WebCore::RenderThemeWin::determineState):
32906        (WebCore::RenderThemeWin::getThemeData):
32907        (WebCore::RenderThemeWin::paintButton):
32908        (WebCore::RenderThemeWin::paintTextField):
32909            Refactored the above methods and added cases for
32910            MenulistAppearance where appropriate.
32911        (WebCore::RenderThemeWin::paintMenuList):
32912        (WebCore::RenderThemeWin::adjustMenuListStyle):
32913            Implemented the above methods.
32914        * rendering/RenderThemeWin.h:
32915
329162006-08-22  Geoffrey Garen  <ggaren@apple.com>
32917
32918        My first Windows build fix.
32919
32920        * WebCore.vcproj/WebCore.vcproj:
32921            - Link against version.lib, since the new plug-in stuff requires it
32922            - Sync the release and debug header search paths, so release
32923              finds the JS bindings.
32924
329252006-08-18  Anders Carlsson  <acarlsson@apple.com>
32926
32927        * plugins/win/PluginViewWin.cpp:
32928        (WebCore::PluginViewWin::write):
32929        (WebCore::PluginViewWin::destroyStream):
32930        Another attempt at fixing the build. Make these two functions into instance methods of PluginViewWin.
32931
329322006-08-18  Anders Carlsson  <acarlsson@apple.com>
32933
32934        * plugins/win/PluginViewWin.cpp:
32935        (WebCore::write):
32936        (WebCore::destroyStream):
32937        * plugins/win/PluginViewWin.h:
32938        Fix build by removing unneeded parameters.
32939
329402006-08-18  Anders Carlsson  <acarlsson@apple.com>
32941
32942        Reviewed by Adele.
32943
32944        Have the NPN functions call into the plugin view. Implement some of the plugin view methods.
32945
32946        * plugins/win/PluginViewWin.cpp:
32947        (WebCore::PluginViewWin::start):
32948        (WebCore::PluginViewWin::setCurrentPluginView):
32949        (WebCore::PluginViewWin::currentPluginView):
32950        (WebCore::PluginViewWin::getURLNotify):
32951        (WebCore::PluginViewWin::getURL):
32952        (WebCore::PluginViewWin::postURLNotify):
32953        (WebCore::PluginViewWin::postURL):
32954        (WebCore::PluginViewWin::newStream):
32955        (WebCore::write):
32956        (WebCore::destroyStream):
32957        (WebCore::PluginViewWin::userAgent):
32958        (WebCore::PluginViewWin::status):
32959        (WebCore::PluginViewWin::getValue):
32960        (WebCore::PluginViewWin::setValue):
32961        (WebCore::PluginViewWin::~PluginViewWin):
32962        (WebCore::PluginViewWin::PluginViewWin):
32963        * plugins/win/PluginViewWin.h:
32964        * plugins/win/npapi.cpp:
32965        (pluginViewForInstance):
32966        (NPN_ReloadPlugins):
32967        (NPN_GetURLNotify):
32968        (NPN_GetURL):
32969        (NPN_PostURLNotify):
32970        (NPN_PostURL):
32971        (NPN_NewStream):
32972        (NPN_Write):
32973        (NPN_DestroyStream):
32974        (NPN_UserAgent):
32975        (NPN_Status):
32976        (NPN_GetValue):
32977        (NPN_SetValue):
32978
329792006-08-17  Anders Carlsson  <acarlsson@apple.com>
32980
32981        Reviewed by Steve and Maciej.
32982
32983        Add initial implementation of plugin view.
32984
32985        * WebCore.vcproj/WebCore.vcproj:
32986        Add files.
32987        
32988        * bridge/win/FrameWin.cpp:
32989        (WebCore::FrameWin::objectContentType):
32990        (WebCore::FrameWin::createPlugin):
32991        Implement these functions.
32992        
32993        * platform/win/TemporaryLinkStubs.cpp:
32994        Remove implemented functions.
32995        
32996        * platform/win/WidgetWin.cpp: Add this file from the open source repo
32997        (WebCore::Widget::~Widget):
32998        Call DestroyWindow on the hWnd.
32999        
33000        * plugins/win/PluginDatabaseWin.cpp:
33001        (WebCore::PluginDatabaseWin::createPluginView):
33002        New function which creates a plugin view.
33003        
33004        * plugins/win/PluginDatabaseWin.h:
33005        
33006        * plugins/win/PluginPackageWin.cpp:
33007        (WebCore::PluginPackageWin::load):
33008        Assign the browser functions. They are just stubs for now.
33009               
33010        * plugins/win/PluginViewWin.cpp: Added.
33011        (WebCore::registerPluginView):
33012        (WebCore::PluginViewWndProc):
33013        (WebCore::PluginViewWin::invokeSetWindow):
33014        (WebCore::PluginViewWin::start):
33015        (WebCore::PluginViewWin::stop):
33016        (WebCore::createUTF8String):
33017        (WebCore::createUTF8StringArray):
33018        (WebCore::freeStringArray):
33019        (WebCore::PluginViewWin::~PluginViewWin):
33020        (WebCore::PluginViewWin::PluginViewWin):
33021        * plugins/win/PluginViewWin.h: Added.
33022        (WebCore::PluginViewWin::plugin):
33023        (WebCore::PluginViewWin::instance):
33024        * plugins/win/npapi.cpp: Added.
33025        (NPN_MemAlloc):
33026        (NPN_MemFree):
33027        (NPN_MemFlush):
33028        (NPN_ReloadPlugins):
33029        (NPN_RequestRead):
33030        (NPN_GetURLNotify):
33031        (NPN_GetURL):
33032        (NPN_PostURLNotify):
33033        (NPN_PostURL):
33034        (NPN_NewStream):
33035        (NPN_Write):
33036        (NPN_DestroyStream):
33037        (NPN_UserAgent):
33038        (NPN_Status):
33039        (NPN_InvalidateRect):
33040        (NPN_InvalidateRegion):
33041        (NPN_ForceRedraw):
33042        (NPN_GetValue):
33043        (NPN_SetValue):
33044        (NPN_GetJavaEnv):
33045        (NPN_GetJavaPeer):
33046
330472006-08-17  Anders Carlsson  <acarlsson@apple.com>
33048
33049        Reviewed by Maciej.
33050
33051        Add initial implementation of plugin database.
33052        
33053        * WebCore.vcproj/WebCore.vcproj:
33054        Add new files.
33055        
33056        * platform/win/TemporaryLinkStubs.cpp:
33057        Get rid of the PlugInInfoStore stubs.
33058
33059        * plugins/win/PlugInInfoStoreWin.cpp: Added.
33060        (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
33061        (WebCore::PlugInInfoStore::pluginCount):
33062        (WebCore::PlugInInfoStore::supportsMIMEType):
33063        (WebCore::refreshPlugins):
33064        * plugins/win/PluginDatabaseWin.cpp: Added.
33065        (WebCore::PluginDatabaseWin::installedPlugins):
33066        (WebCore::PluginDatabaseWin::refresh):
33067        (WebCore::PluginDatabaseWin::plugins):
33068        (WebCore::PluginDatabaseWin::getPluginsInPaths):
33069        (WebCore::PluginDatabaseWin::defaultPluginPaths):
33070        (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
33071        (WebCore::PluginDatabaseWin::pluginForMIMEType):
33072        (WebCore::PluginDatabaseWin::pluginForExtension):
33073        * plugins/win/PluginDatabaseWin.h: Added.
33074        (WebCore::PluginDatabaseWin::setPluginPaths):
33075        * plugins/win/PluginPackageWin.cpp: Added.
33076        (WebCore::PluginPackageWin::~PluginPackageWin):
33077        (WebCore::getVersionInfo):
33078        (WebCore::splitString):
33079        (WebCore::PluginPackageWin::PluginPackageWin):
33080        (WebCore::PluginPackageWin::fetchInfo):
33081        (WebCore::PluginPackageWin::load):
33082        (WebCore::PluginPackageWin::unload):
33083        (WebCore::PluginPackageWin::unloadWithoutShutdown):
33084        (WebCore::PluginPackageWin::createPackage):
33085        (WebCore::PluginPackageWin::hash):
33086        (WebCore::PluginPackageWin::equal):
33087        * plugins/win/PluginPackageWin.h: Added.
33088        (WebCore::PluginPackageWin::name):
33089        (WebCore::PluginPackageWin::description):
33090        (WebCore::PluginPackageWin::fileName):
33091        (WebCore::PluginPackageWin::mimeToDescriptions):
33092        (WebCore::PluginPackageWin::mimeToExtensions):
33093        (WebCore::PluginPackageWin::pluginFuncs):
33094        (WebCore::PluginPackageWinHash::hash):
33095        (WebCore::PluginPackageWinHash::equal):
33096        (WTF::):
33097        * plugins/win/npfunctions.h: Added.
33098
330992006-08-17  Adam Roben  <aroben@apple.com>
33100
33101        Removing this unintentionally added file.
33102
33103        * rendering/RenderPopupMenuWin.cpp: Removed.
33104
331052006-08-17  Adam Roben  <aroben@apple.com>
33106
33107        Reviewed by Steve.
33108
33109        Branching files from OpenSource tree r15924 to prepare for <select>
33110        element implementation.
33111
33112        * WebCore.vcproj/WebCore.vcproj:
33113        * rendering/RenderPopupMenuWin.h: Added.
33114        (WebCore::RenderPopupMenuWin::RenderPopupMenuWin):
33115        * rendering/RenderThemeWin.cpp: Added.
33116        (WebCore::theme):
33117        (WebCore::m_textFieldTheme):
33118        (WebCore::RenderThemeWin::~RenderThemeWin):
33119        (WebCore::RenderThemeWin::close):
33120        (WebCore::RenderThemeWin::platformActiveSelectionBackgroundColor):
33121        (WebCore::RenderThemeWin::platformInactiveSelectionBackgroundColor):
33122        (WebCore::RenderThemeWin::platformActiveSelectionForegroundColor):
33123        (WebCore::RenderThemeWin::platformInactiveSelectionForegroundColor):
33124        (WebCore::RenderThemeWin::addIntrinsicMargins):
33125        (WebCore::RenderThemeWin::supportsFocus):
33126        (WebCore::RenderThemeWin::determineState):
33127        (WebCore::RenderThemeWin::getThemeData):
33128        (WebCore::RenderThemeWin::adjustButtonStyle):
33129        (WebCore::prepareForDrawing):
33130        (WebCore::doneDrawing):
33131        (WebCore::RenderThemeWin::paintButton):
33132        (WebCore::RenderThemeWin::setCheckboxSize):
33133        (WebCore::RenderThemeWin::setRadioSize):
33134        (WebCore::RenderThemeWin::adjustTextFieldStyle):
33135        (WebCore::RenderThemeWin::paintTextField):
33136        (WebCore::RenderThemeWin::adjustTextAreaStyle):
33137        (WebCore::RenderThemeWin::paintTextArea):
33138        (WebCore::RenderThemeWin::createPopupMenu):
33139        * rendering/RenderThemeWin.h: Added.
33140        (WebCore::ThemeData::m_state):
33141        (WebCore::RenderThemeWin::supportsHover):
33142        (WebCore::RenderThemeWin::paintCheckbox):
33143        (WebCore::RenderThemeWin::paintRadio):
33144
331452006-08-15  Steve Falkenburg  <sfalken@apple.com>
33146
33147        Pull TemporaryLinkStubs.cpp into internal tree to fix the build.
33148
33149        * WebCore.vcproj/WebCore.vcproj:
33150        * platform/win/TemporaryLinkStubs.cpp: Added.
33151        (notImplemented):
33152        (FrameView::updateBorder):
33153        (FrameView::isFrameView):
33154        (PopUpButton::focusPolicy):
33155        (PopUpButton::populate):
33156        (Widget::enableFlushDrawing):
33157        (Widget::isEnabled):
33158        (Widget::focusPolicy):
33159        (Widget::disableFlushDrawing):
33160        (Widget::lockDrawingFocus):
33161        (Widget::unlockDrawingFocus):
33162        (JavaAppletWidget::JavaAppletWidget):
33163        (TextField::selectAll):
33164        (TextField::addSearchResult):
33165        (TextField::selectionStart):
33166        (TextField::hasSelectedText):
33167        (TextField::selectedText):
33168        (TextField::setAutoSaveName):
33169        (TextField::checksDescendantsForFocus):
33170        (TextField::setSelection):
33171        (TextField::setMaxResults):
33172        (TextField::edited):
33173        (Slider::Slider):
33174        (Slider::sizeHint):
33175        (Slider::setValue):
33176        (Slider::setMaxValue):
33177        (Slider::setMinValue):
33178        (Slider::~Slider):
33179        (Slider::setFont):
33180        (Slider::value):
33181        (ListBox::setSelected):
33182        (ListBox::sizeForNumberOfLines):
33183        (ListBox::isSelected):
33184        (ListBox::appendItem):
33185        (ListBox::doneAppendingItems):
33186        (ListBox::setWritingDirection):
33187        (ListBox::setEnabled):
33188        (ListBox::clear):
33189        (ListBox::checksDescendantsForFocus):
33190        (FileButton::FileButton):
33191        (FileButton::click):
33192        (FileButton::sizeForCharacterWidth):
33193        (FileButton::focusPolicy):
33194        (FileButton::frameGeometry):
33195        (FileButton::setFilename):
33196        (FileButton::baselinePosition):
33197        (FileButton::setFrameGeometry):
33198        (FileButton::setDisabled):
33199        (Slider::focusPolicy):
33200        (ListBox::focusPolicy):
33201        (TextField::focusPolicy):
33202        (Cursor::Cursor):
33203        (PlatformMouseEvent::PlatformMouseEvent):
33204        (WebCore::searchableIndexIntroduction):
33205        (WebCore::findNextSentenceFromIndex):
33206        (WebCore::findSentenceBoundary):
33207        (WebCore::findNextWordFromIndex):
33208        (WebCore::ServeSynchronousRequest):
33209        (FrameWin::focusWindow):
33210        (FrameWin::unfocusWindow):
33211        (FrameWin::locationbarVisible):
33212        (FrameWin::issueRedoCommand):
33213        (FrameWin::getObjectInstanceForWidget):
33214        (FrameWin::getEmbedInstanceForWidget):
33215        (FrameWin::canRedo):
33216        (FrameWin::canUndo):
33217        (FrameWin::registerCommandForRedo):
33218        (FrameWin::runJavaScriptPrompt):
33219        (FrameWin::shouldInterruptJavaScript):
33220        (FrameWin::openURL):
33221        (FrameWin::print):
33222        (FrameWin::getAppletInstanceForWidget):
33223        (FrameWin::passMouseDownEventToWidget):
33224        (FrameWin::issueCutCommand):
33225        (FrameWin::issueCopyCommand):
33226        (FrameWin::passWheelEventToChildWidget):
33227        (FrameWin::issueUndoCommand):
33228        (FrameWin::mimeTypeForFileName):
33229        (FrameWin::issuePasteCommand):
33230        (FrameWin::scheduleClose):
33231        (FrameWin::markMisspellings):
33232        (FrameWin::menubarVisible):
33233        (FrameWin::personalbarVisible):
33234        (FrameWin::statusbarVisible):
33235        (FrameWin::toolbarVisible):
33236        (FrameWin::issueTransposeCommand):
33237        (FrameWin::canPaste):
33238        (FrameWin::objectContentType):
33239        (FrameWin::canGoBackOrForward):
33240        (FrameWin::issuePasteAndMatchStyleCommand):
33241        (FrameWin::createPlugin):
33242        (BrowserExtensionWin::canRunModal):
33243        (BrowserExtensionWin::createNewWindow):
33244        (BrowserExtensionWin::canRunModalNow):
33245        (BrowserExtensionWin::runModal):
33246        (BrowserExtensionWin::goBackOrForward):
33247        (BrowserExtensionWin::historyURL):
33248        (GraphicsContext::addRoundedRectClip):
33249        (GraphicsContext::addInnerRoundedRectClip):
33250        (WebCore::screenDepthPerComponent):
33251        (WebCore::screenIsMonochrome):
33252        (WebCore::moveCursor):
33253        (WebCore::historyContains):
33254        (WebCore::submitButtonDefaultLabel):
33255        (WebCore::inputElementAltText):
33256        (WebCore::resetButtonDefaultLabel):
33257        (WebCore::defaultLanguage):
33258        (WebCore::findWordBoundary):
33259        (PlugInInfoStore::createPluginInfoForPluginAtIndex):
33260        (PlugInInfoStore::pluginCount):
33261        (WebCore::PlugInInfoStore::supportsMIMEType):
33262        (WebCore::refreshPlugins):
33263        (WebCore::ResourceLoader::assembleResponseHeaders):
33264        (WebCore::ResourceLoader::retrieveCharset):
33265        (FrameWin::restoreDocumentState):
33266        (FrameWin::partClearedInBegin):
33267        (FrameWin::createEmptyDocument):
33268        (FrameWin::overrideMediaType):
33269        (FrameWin::handledOnloadEvents):
33270        (FrameWin::markedTextRange):
33271        (FrameWin::passSubframeEventToSubframe):
33272        (FrameWin::lastEventIsMouseUp):
33273        (FrameWin::addMessageToConsole):
33274        (FrameWin::shouldChangeSelection):
33275        (FrameWin::respondToChangedSelection):
33276        (FrameWin::createFrame):
33277        (FrameWin::saveDocumentState):
33278        (FrameWin::registerCommandForUndo):
33279        (FrameWin::clearUndoRedoOperations):
33280        (FrameWin::incomingReferrer):
33281        (FrameWin::markMisspellingsInAdjacentWords):
33282        (FrameWin::respondToChangedContents):
33283        (BrowserExtensionWin::BrowserExtensionWin):
33284        (BrowserExtensionWin::setTypedIconURL):
33285        (BrowserExtensionWin::setIconURL):
33286        (BrowserExtensionWin::getHistoryLength):
33287        (WebCore::CheckIfReloading):
33288        (WebCore::CheckCacheObjectStatus):
33289        (Widget::setEnabled):
33290        (Widget::paint):
33291        (Widget::setIsSelected):
33292        (ScrollView::addChild):
33293        (ScrollView::removeChild):
33294        (ScrollView::scrollPointRecursively):
33295        (ScrollView::inWindow):
33296        (GraphicsContext::setShadow):
33297        (GraphicsContext::clearShadow):
33298        (GraphicsContext::beginTransparencyLayer):
33299        (GraphicsContext::endTransparencyLayer):
33300        (GraphicsContext::clearRect):
33301        (GraphicsContext::strokeRect):
33302        (GraphicsContext::setLineWidth):
33303        (GraphicsContext::setLineCap):
33304        (GraphicsContext::setLineJoin):
33305        (GraphicsContext::setMiterLimit):
33306        (GraphicsContext::setAlpha):
33307        (GraphicsContext::setCompositeOperation):
33308        (GraphicsContext::clip):
33309        (GraphicsContext::translate):
33310        (GraphicsContext::rotate):
33311        (GraphicsContext::scale):
33312        (Path::Path):
33313        (Path::~Path):
33314        (Path::contains):
33315        (Path::translate):
33316        (Path::boundingRect):
33317        (Path::operator=):
33318        (Path::clear):
33319        (Path::moveTo):
33320        (Path::addLineTo):
33321        (Path::addQuadCurveTo):
33322        (Path::addBezierCurveTo):
33323        (Path::addArcTo):
33324        (Path::closeSubpath):
33325        (Path::addArc):
33326        (Path::addRect):
33327        (Path::addEllipse):
33328        (TextField::TextField):
33329        (TextField::~TextField):
33330        (TextField::setFont):
33331        (TextField::setAlignment):
33332        (TextField::setWritingDirection):
33333        (TextField::maxLength):
33334        (TextField::setMaxLength):
33335        (TextField::text):
33336        (TextField::setText):
33337        (TextField::cursorPosition):
33338        (TextField::setCursorPosition):
33339        (TextField::setEdited):
33340        (TextField::setReadOnly):
33341        (TextField::setPlaceholderString):
33342        (TextField::setColors):
33343        (TextField::sizeForCharacterWidth):
33344        (TextField::baselinePosition):
33345        (TextField::setLiveSearch):
33346        (PopUpButton::PopUpButton):
33347        (PopUpButton::~PopUpButton):
33348        (PopUpButton::setFont):
33349        (PopUpButton::baselinePosition):
33350        (PopUpButton::setWritingDirection):
33351        (PopUpButton::clear):
33352        (PopUpButton::appendItem):
33353        (PopUpButton::setCurrentItem):
33354        (PopUpButton::sizeHint):
33355        (PopUpButton::frameGeometry):
33356        (PopUpButton::setFrameGeometry):
33357        (PlatformScrollBar::PlatformScrollBar):
33358        (PlatformScrollBar::~PlatformScrollBar):
33359        (PlatformScrollBar::width):
33360        (PlatformScrollBar::height):
33361        (PlatformScrollBar::setEnabled):
33362        (PlatformScrollBar::paint):
33363        (PlatformScrollBar::setScrollBarValue):
33364        (PlatformScrollBar::setKnobProportion):
33365        (PlatformScrollBar::setRect):
33366        (ScrollBar::ScrollBar):
33367        (ScrollBar::setSteps):
33368        (ScrollBar::scroll):
33369        (ScrollBar::setValue):
33370        (ScrollBar::setKnobProportion):
33371        (ListBox::ListBox):
33372        (ListBox::~ListBox):
33373        (ListBox::setSelectionMode):
33374        (ListBox::setFont):
33375        (WebCore::focusRingColor):
33376        (WebCore::setFocusRingColorChangeFunction):
33377        (Frame::setNeedsReapplyStyles):
33378        (Image::drawTiled):
33379        (RenderPopupMenuWin::~RenderPopupMenuWin):
33380        (RenderPopupMenuWin::clear):
33381        (RenderPopupMenuWin::populate):
33382        (RenderPopupMenuWin::showPopup):
33383        (RenderPopupMenuWin::addSeparator):
33384        (RenderPopupMenuWin::addGroupLabel):
33385        (RenderPopupMenuWin::addOption):
33386        (RenderThemeWin::paintMenuList):
33387        (RenderThemeWin::adjustMenuListStyle):
33388        (RenderThemeWin::systemFont):
33389
333902006-08-15  Steve Falkenburg  <sfalken@apple.com>
33391
33392        Fix the build with TOT.
33393
33394        * WebCore.vcproj/WebCore.vcproj:
33395
333962006-08-15  Steve Falkenburg  <sfalken@apple.com>
33397
33398        Get this building.
33399
33400        * WebCore.vcproj/WebCore.sln:
33401        * WebCore.vcproj/WebCore.vcproj:
33402        * WebCore.vcproj/build-generated-files.sh:
33403
334042006-08-15  Steve Falkenburg  <sfalken@apple.com>
33405
33406        Initial check-in.
33407
33408        * ChangeLog: Added.
33409        * WebCore.vcproj/WebCore.sln: Added.
33410        * WebCore.vcproj/WebCore.vcproj: Added.
33411        * WebCore.vcproj/build-generated-files.sh: Added.
33412        * bridge/win/FrameWin.cpp: Added.
33413        (WebCore::FrameWin::FrameWin):
33414        (WebCore::FrameWin::~FrameWin):
33415        (WebCore::FrameWin::urlSelected):
33416        (WebCore::FrameWin::submitForm):
33417        (WebCore::FrameWin::userAgent):
33418        (WebCore::FrameWin::runJavaScriptAlert):
33419        (WebCore::FrameWin::runJavaScriptConfirm):
33420        (WebCore::FrameWin::keyPress):
33421        (WebCore::FrameWin::setTitle):
33422        (WebCore::FrameWin::setStatusBarText):
33423        (WebCore::FrameWin::textFieldDidBeginEditing):
33424        (WebCore::FrameWin::textFieldDidEndEditing):
33425        (WebCore::FrameWin::textDidChangeInTextField):
33426        (WebCore::FrameWin::doTextFieldCommandFromEvent):
33427        (WebCore::FrameWin::textWillBeDeletedInTextField):
33428        (WebCore::FrameWin::textDidChangeInTextArea):
33429        * bridge/win/FrameWin.h: Added.
33430        (WebCore::Win):
33431        * platform/win/ResourceLoaderWin.cpp: Added.
33432        (WebCore::addToOutstandingJobs):
33433        (WebCore::removeFromOutstandingJobs):
33434        (WebCore::lookupResourceLoader):
33435        (WebCore::ResourceLoaderWndProc):
33436        (WebCore::initializeOffScreenResourceLoaderWindow):
33437        (WebCore::ResourceLoaderInternal::~ResourceLoaderInternal):
33438        (WebCore::ResourceLoader::~ResourceLoader):
33439        (WebCore::transferJobStatusCallback):
33440        (WebCore::ResourceLoader::start):
33441        (WebCore::ResourceLoader::fileLoadTimer):
33442        (WebCore::ResourceLoader::cancel):
33443        * platform/win/ResourceLoaderWin.h: Added.
33444
33445=== End of merged changes from branches/WindowsMerge ===
33446
334472007-06-10  Holger Hans Peter Freyther  <zecke@selfish.org>
33448
33449         Reviewed by Maciej.
33450 
33451         Disable whole-view editing for the Gdk port in order to improve the browsing experience.
33452 
33453         * platform/gdk/EditorClientGdk.cpp:
33454         (WebCore::EditorClientGdk::isEditable): Return false to disable whole-view editing
33455 
334562007-06-08  Sam Weinig  <sam@webkit.org>
33457
33458        Reviewed by Oliver.
33459
33460        Patch for http://bugs.webkit.org/show_bug.cgi?id=14044
33461        Autogenerate the JS bindings for HTMLCollection
33462
33463        - also moves JSHTMLAllCollection into it's own file.
33464
33465        * DerivedSources.make:
33466        * WebCore.pro:
33467        * WebCore.xcodeproj/project.pbxproj:
33468        * bindings/js/JSHTMLAllCollection.h: Added.
33469        (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
33470        (WebCore::JSHTMLAllCollection::toBoolean):
33471        (WebCore::JSHTMLAllCollection::masqueradeAsUndefined):
33472        * bindings/js/JSHTMLCollectionCustom.cpp: Added.
33473        (WebCore::getNamedItems):
33474        (WebCore::JSHTMLCollection::callAsFunction):
33475        (WebCore::JSHTMLCollection::implementsCall):
33476        (WebCore::JSHTMLCollection::canGetItemsForName):
33477        (WebCore::JSHTMLCollection::nameGetter):
33478        (WebCore::JSHTMLCollection::item):
33479        (WebCore::JSHTMLCollection::namedItem):
33480        (WebCore::toJS):
33481        * bindings/js/JSHTMLDocumentCustom.cpp:
33482        (WebCore::JSHTMLDocument::nameGetter):
33483        (WebCore::JSHTMLDocument::all):
33484        * bindings/js/JSXMLHttpRequest.cpp:
33485        * bindings/js/kjs_html.cpp:
33486        (WebCore::ImageConstructorImp::ImageConstructorImp):
33487        (WebCore::ImageConstructorImp::construct):
33488        * bindings/js/kjs_html.h:
33489        (WebCore::ImageConstructorImp::implementsConstruct):
33490        * bindings/js/kjs_window.cpp:
33491        (KJS::Window::namedItemGetter):
33492        * bindings/objc/DOMUtility.mm:
33493        (KJS::createDOMWrapper):
33494        * bindings/scripts/CodeGeneratorJS.pm:
33495        * html/HTMLCollection.cpp:
33496        (WebCore::HTMLCollection::tags):
33497        * html/HTMLCollection.h:
33498        (WebCore::HTMLCollection::collectionType):
33499        * html/HTMLCollection.idl:
33500        * html/HTMLOptionsCollection.idl:
33501
335022007-06-08  Justin Garcia  <justin.garcia@apple.com>
33503
33504        Reviewed by John.
33505        
33506        <rdar://problem/5232159> REGRESSION: Cannot select text in RSS view
33507
33508        The selection is updated both on mouse movement and
33509        when the autoscroll timer fires.  The autoscroll
33510        code wasn't converting mouse coordinates to layer
33511        coordinates correctly, and was then using those
33512        coordinates to create a bad selection.
33513
33514        * rendering/RenderLayer.cpp:
33515        (WebCore::RenderLayer::autoscroll): Use convertToLayerCoordinates.
33516
335172007-06-08  Anders Carlsson  <andersca@apple.com>
33518
33519        Reviewed by Geoff.
33520
33521        Store the root object in a hash set, keyed by the plugin view. This is in preparation for 
33522        letting plugins invalidate the root object upon destruction
33523
33524        * page/Frame.cpp:
33525        (WebCore::Frame::createRootObject):
33526        (WebCore::Frame::cleanupScriptObjects):
33527        * page/FramePrivate.h:
33528
335292007-06-08  Lars Knoll <lars@trolltech.com>
33530
33531        Reviewed by Zack.
33532
33533        Add qwebobjectpluginconnector to the build.
33534
33535        * WebCore.pro:
33536
335372007-06-07  Justin Garcia  <justin.garcia@apple.com>
33538
33539        Reviewed by Tristan.
33540        
33541        <rdar://problem/5250997> A crash occurs when selecting Undo Typing for a page that has been closed in tab
33542
33543        * WebCore.exp: Added clearUndoRedoOperations.
33544        * page/Page.cpp:
33545        (WebCore::Page::clearUndoRedoOperations): Added.
33546        * page/Page.h:
33547        
335482007-06-07  David Hyatt  <hyatt@apple.com>
33549
33550        Fix crash.  Null check layer.  Bug 13984.
33551
33552        Reviewed by andersca
33553
33554        * WebCore.xcodeproj/project.pbxproj:
33555        * page/FrameView.cpp:
33556        (WebCore::FrameView::windowClipRectForLayer):
33557
335582007-06-07  Oliver Hunt  <oliver@apple.com>
33559
33560        Reviewed by Justin.
33561
33562        Remove incorrect assertions.
33563        
33564        These assertions were made on the assumption that 
33565        TSM would always call with a range that was contained 
33566        by an editable region.
33567        
33568        TSM may call -[WebHTMLView characterIndexForPoint:] on a mouse
33569        event that is otherwise unrelated to editing, which may
33570        be outside the current editing region, triggering these 
33571        assertions.
33572
33573        * page/mac/WebCoreFrameBridge.mm:
33574        (-[WebCoreFrameBridge convertToNSRange:]):
33575
335762007-06-07  Justin Garcia  <justin.garcia@apple.com>
33577
33578        Reviewed by John.
33579        
33580        <rdar://problem/5237074> REGRESSION: editing/unsupported-content/table-delete-003 is failing (13931)
33581        
33582        * editing/DeleteSelectionCommand.cpp:
33583        (WebCore::DeleteSelectionCommand::initializeStartEnd):
33584        We wouldn't expand the selection to include a special element 
33585        at the start of the selection unless the end of the selection 
33586        was at the end of a special element. Avoid a special 
33587        element at the start as long as it's fully selected. Ditto for 
33588        the end.
33589        * editing/htmlediting.cpp:
33590        (WebCore::positionBeforeContainingSpecialElement):
33591        (WebCore::positionAfterContainingSpecialElement):
33592
335932007-06-07  Sam Weinig  <sam@webkit.org>
33594
33595        Reviewed by Anders.
33596
33597        Patch for  http://bugs.webkit.org/show_bug.cgi?id=14028
33598        Finish autogenerating the JS bindings for Node
33599
33600        * DerivedSources.make:
33601        * WebCore.pro:
33602        * WebCore.xcodeproj/project.pbxproj:
33603        * bindings/js/JSHTMLElementWrapperFactory.cpp:
33604        (WebCore::createJSHTMLWrapper):
33605        * bindings/js/JSHTMLElementWrapperFactory.h:
33606        * bindings/js/JSHTMLOptionElementConstructor.cpp:
33607        * bindings/js/JSNamedNodeMapCustom.cpp:
33608        * bindings/js/JSNodeCustom.cpp:
33609        (WebCore::JSNode::insertBefore):
33610        (WebCore::JSNode::replaceChild):
33611        (WebCore::JSNode::removeChild):
33612        (WebCore::JSNode::appendChild):
33613        (WebCore::JSNode::mark):
33614        (WebCore::toJS):
33615        * bindings/js/JSSVGElementWrapperFactory.cpp:
33616        (WebCore::createJSSVGWrapper):
33617        * bindings/js/JSSVGElementWrapperFactory.h:
33618        * bindings/js/JSXSLTProcessor.cpp:
33619        (KJS::XSLTProcessorPrototypeFunction::callAsFunction):
33620        * bindings/js/kjs_binding.cpp:
33621        (KJS::ScriptInterpreter::getDOMNodeForDocument):
33622        (KJS::ScriptInterpreter::putDOMNodeForDocument):
33623        (KJS::ScriptInterpreter::markDOMNodesForDocument):
33624        (KJS::ScriptInterpreter::updateDOMNodeDocument):
33625        * bindings/js/kjs_binding.h:
33626        * bindings/js/kjs_dom.cpp:
33627        (WebCore::toAttr):
33628        * bindings/js/kjs_dom.h:
33629        * bindings/js/kjs_domnode.h: Removed.
33630        * bindings/objc/DOMUtility.mm:
33631        (KJS::createDOMWrapper):
33632        * bindings/scripts/CodeGeneratorJS.pm:
33633        * dom/Node.h:
33634        (WebCore::Node::parentElement):
33635        * dom/Node.idl:
33636
336372007-06-07  Sam Weinig  <sam@webkit.org>
33638
33639        Another Gdk and Qt build fix.
33640
33641        * WebCore.pro:
33642
336432007-06-07  Sam Weinig  <sam@webkit.org>
33644
33645        Gdk and Qt build fix.
33646
33647        * WebCore.pro:
33648
336492007-06-06  Sam Weinig  <sam@webkit.org>
33650
33651        Reviewed by Hyatt.
33652
33653        Patch for http://bugs.webkit.org/show_bug.cgi?id=13973
33654        Autogenerate most of the rest of kjs_dom.h/cpp
33655
33656        - Autogenerate JSNodeList and JSNamedNodeMap.
33657        - Move JSEventTargetNode, JSNamedNodesCollection, and JSDOMExceptionConstructor 
33658          into their own files.
33659        - Rename KJS::DOMEventTargeNode to WebCore::JSEventTargetNode to adhere
33660          to convention and allow easier code generation.
33661        - Add JS constructors for JSNodeList and JSNamedNodeMap.
33662        - Moved more toJS methods into the correct (corresponding) header files.
33663        - Cleaned up code in order for changes to work.
33664
33665        * DerivedSources.make:
33666        * WebCore.xcodeproj/project.pbxproj:
33667        * bindings/js/JSDOMExceptionConstructor.cpp: Added.
33668        (WebCore::):
33669        (WebCore::JSDOMExceptionConstructor::JSDOMExceptionConstructor):
33670        (WebCore::JSDOMExceptionConstructor::getOwnPropertySlot):
33671        (WebCore::JSDOMExceptionConstructor::getValueProperty):
33672        (WebCore::getDOMExceptionConstructor):
33673        * bindings/js/JSDOMExceptionConstructor.h: Added.
33674        (WebCore::JSDOMExceptionConstructor::classInfo):
33675        * bindings/js/JSDOMWindowCustom.cpp: Added.
33676        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
33677        * bindings/js/JSDocumentCustom.cpp:
33678        (WebCore::JSDocument::mark):
33679        (WebCore::toJS):
33680        * bindings/js/JSEventTargetNode.cpp: Added.
33681        (WebCore::JSEventTargetNode::JSEventTargetNode):
33682        (WebCore::JSEventTargetNode::getOwnPropertySlot):
33683        (WebCore::JSEventTargetNode::getValueProperty):
33684        (WebCore::JSEventTargetNode::put):
33685        (WebCore::JSEventTargetNode::putValueProperty):
33686        (WebCore::JSEventTargetNode::setListener):
33687        (WebCore::JSEventTargetNode::getListener):
33688        (WebCore::JSEventTargetNode::pushEventHandlerScope):
33689        (WebCore::JSEventTargetNodePrototypeFunction::callAsFunction):
33690        (WebCore::toEventTargetNode):
33691        * bindings/js/JSEventTargetNode.h: Added.
33692        (WebCore::JSEventTargetNode::):
33693        * bindings/js/JSHTMLElementCustom.cpp:
33694        * bindings/js/JSHTMLFormElementCustom.cpp:
33695        (WebCore::JSHTMLFormElement::nameGetter):
33696        * bindings/js/JSHTMLOptionElementConstructor.cpp:
33697        * bindings/js/JSNamedNodeMapCustom.cpp: Added.
33698        (WebCore::JSNamedNodeMap::canGetItemsForName):
33699        (WebCore::JSNamedNodeMap::nameGetter):
33700        * bindings/js/JSNamedNodesCollection.cpp: Added.
33701        (WebCore::):
33702        (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
33703        (WebCore::JSNamedNodesCollection::lengthGetter):
33704        (WebCore::JSNamedNodesCollection::indexGetter):
33705        (WebCore::JSNamedNodesCollection::getOwnPropertySlot):
33706        * bindings/js/JSNamedNodesCollection.h: Added.
33707        (WebCore::JSNamedNodesCollection::classInfo):
33708        * bindings/js/JSNodeCustom.cpp: Added.
33709        (WebCore::toJS):
33710        * bindings/js/JSNodeListCustom.cpp: Added.
33711        (WebCore::JSNodeList::callAsFunction):
33712        (WebCore::JSNodeList::implementsCall):
33713        (WebCore::JSNodeList::canGetItemsForName):
33714        (WebCore::JSNodeList::nameGetter):
33715        * bindings/js/kjs_dom.cpp:
33716        * bindings/js/kjs_dom.h:
33717        * bindings/js/kjs_domnode.h:
33718        * bindings/js/kjs_events.cpp:
33719        (KJS::JSLazyEventListener::parseCode):
33720        * bindings/js/kjs_html.cpp:
33721        (KJS::JSHTMLCollection::getNamedItems):
33722        * bindings/js/kjs_html.h:
33723        * bindings/js/kjs_window.cpp:
33724        (WebCore::toJS):
33725        * bindings/js/kjs_window.h:
33726        * bindings/objc/DOMInternal.mm:
33727        (-[WebScriptObject _initializeScriptDOMNodeImp]):
33728        * bindings/objc/DOMUtility.mm:
33729        (KJS::createDOMWrapper):
33730        * bindings/scripts/CodeGeneratorJS.pm:
33731        * bridge/mac/WebCoreAXObject.mm:
33732        * dom/Attr.idl:
33733        * dom/CharacterData.idl:
33734        * dom/Document.idl:
33735        * dom/DocumentFragment.idl:
33736        * dom/DocumentType.idl:
33737        * dom/Element.idl:
33738        * dom/NamedNodeMap.idl:
33739        * dom/Node.idl:
33740        * dom/NodeList.idl:
33741        * page/DOMWindow.idl:
33742
337432007-06-06  Justin Garcia  <justin.garcia@apple.com>
33744
33745        Reviewed by Oliver.
33746        
33747        <rdar://problem/5245519> CrashTracer: [USER] 457 crashes in Mail at WebCore::CSSComputedStyleDeclaration::copyInheritableProperties()
33748        
33749        If the user pastes something into a region that ends up being
33750        invisible, or if the pasted content contains style spans 
33751        that are render-less, we'll crash when we try to remove
33752        redundant styles from style spans.
33753
33754        * css/CSSComputedStyleDeclaration.cpp:
33755        (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
33756        Add null checks.
33757
337582007-06-06  Justin Garcia  <justin.garcia@apple.com>
33759
33760        Reviewed by Harrison.
33761
33762        <rdar://problem/4889598> Problems with moveDown: and moveUp: in Notes with ToDos
33763        
33764        The caret would disappear when moving from content above or below
33765        a ToDo if that ToDo doesn't have any content in it with the same
33766        x position as the caret. That's because closestLeafChildForXPos
33767        would return non-editable leaves, and which turn into non-editable
33768        VisiblePositions, which are invisible.
33769
33770        * editing/visible_units.cpp:
33771        (WebCore::previousLinePosition): Ask closestLeafForXPos to only
33772        return editable leaves.
33773        (WebCore::nextLinePosition): Ditto.
33774        * rendering/RootInlineBox.cpp:
33775        (WebCore::isEditableLeaf): Added.
33776        (WebCore::RootInlineBox::closestLeafChildForXPos): If requested,
33777        return the closest editable leaf. Removed an early return if the
33778        position is before the first leaf, it's not really much of an
33779        optimization.
33780        * rendering/RootInlineBox.h:
33781
337822007-06-06  Sam Weinig  <sam@webkit.org>
33783
33784        Reviewed by Anders.
33785
33786        Fix release build.
33787
33788        * bindings/objc/DOM.mm:
33789        (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Add missing null initialization.
33790        (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Add missing null initialization.
33791
337922007-06-06  Sam Weinig  <sam@webkit.org>
33793
33794        Reviewed by Hyatt.
33795
33796        Patch for http://bugs.webkit.org/show_bug.cgi?id=13947
33797        Finish autogenerating the JS DOM traversal code
33798
33799        - Completely generate JSNodeFilter.
33800        - Move JSNodeFilterCondition into its own file
33801
33802        * DerivedSources.make:
33803        * WebCore.pro:
33804        * WebCore.xcodeproj/project.pbxproj:
33805        * bindings/js/JSNodeFilterCondition.cpp: Copied from WebCore/bindings/js/kjs_traversal.cpp.
33806        (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
33807        (WebCore::JSNodeFilterCondition::mark):
33808        (WebCore::JSNodeFilterCondition::acceptNode):
33809        * bindings/js/JSNodeFilterCondition.h: Copied from WebCore/bindings/js/kjs_traversal.h.
33810        * bindings/js/JSNodeFilterCustom.cpp: Added.
33811        (WebCore::JSNodeFilter::mark):
33812        (WebCore::toNodeFilter):
33813        * bindings/js/kjs_dom.cpp:
33814        * bindings/js/kjs_traversal.cpp: Removed.
33815        * bindings/js/kjs_traversal.h: Removed.
33816        * bindings/js/kjs_window.cpp:
33817        * bindings/objc/DOM.mm:
33818        (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
33819        (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
33820        * bindings/scripts/CodeGeneratorJS.pm:
33821        * dom/Document.cpp:
33822        (WebCore::Document::createNodeIterator):
33823        (WebCore::Document::createTreeWalker):
33824        * dom/Document.h:
33825        * dom/NodeFilter.idl:
33826
338272007-06-06  Alp Toker  <alp.toker@collabora.co.uk>
33828
33829        Reviewed by Eric Seidel.
33830
33831        http://bugs.webkit.org/show_bug.cgi?id=14017
33832        Cairo: Unwanted gradient effect for small stretched images
33833
33834        * platform/graphics/cairo/ImageCairo.cpp: Use CAIRO_FILTER_NEAREST to
33835        work around the issue.
33836        (WebCore::BitmapImage::draw):
33837        (WebCore::Image::drawPattern):
33838
338392007-06-06  Lars Knoll <lars@trolltech.com>
33840
33841        Reviewed by Zack
33842
33843        Add an API to create and load plugins.
33844        Don't include moc files by hand anymore, rather let
33845        qmake handle them.
33846
33847        * WebCore.pro:
33848        * platform/qt/MimeTypeRegistryQt.cpp:
33849        (WebCore::):
33850        (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
33851        * platform/qt/QWebPopup.cpp:
33852        * platform/qt/SharedTimerQt.cpp:
33853
338542007-06-06  Mark Rowe  <mrowe@apple.com>
33855
33856        Qt build fix.
33857
33858        * rendering/RenderTextControl.cpp: Fix case of #include filename.
33859
338602007-06-06  Lars Knoll  <lars@trolltech.com>
33861
33862        Reviewed by Maciej.
33863
33864        Define WTF_USE_NPOBJECT for Qt. Fix includes
33865        in HTMLPluginElement and add proper forwarding headers
33866        from JavaScriptCore.
33867
33868        * ForwardingHeaders/bindings/npruntime.h: Added.
33869        * ForwardingHeaders/bindings/runtime.h: Added.
33870        * config.h:
33871        * html/HTMLPlugInElement.cpp:
33872        * html/HTMLPlugInElement.h:
33873
338742007-06-06  David Hyatt  <hyatt@apple.com>
33875
33876        Bulletproof windowClipRect, since it can be called at crazy times.
33877        Part of fix for 13972.
33878
33879        Reviewed by olliej
33880
33881        * bindings/objc/DOM.mm:
33882        (-[DOMElement _windowClipRect]):
33883
338842007-06-05  Darin Fisher  <darin@chromium.org>
33885
33886        Reviewed by Dave Hyatt.
33887
33888        Fixes http://bugs.webkit.org/show_bug.cgi?id=14008
33889
33890        * rendering/RenderTextControl.cpp:
33891        (WebCore::RenderTextControl::calcHeight):
33892        (WebCore::RenderTextControl::calcPrefWidths):
33893
338942007-06-05  Kevin McCullough  <kmccullough@apple.com>
33895
33896        - Respelling Oliver's name right.
33897
338982007-06-05  Kevin McCullough  <kmccullough@apple.com>
33899
33900        Reviewed by Mark and Oliver.
33901
33902        - http://bugs.webkit.org/show_bug.cgi?id=13352  REGRESSION: Gmail hangs on send message.
33903        - Now we don't hang, but we do so by avoiding certain legitimate characters, the evangelism bug for this is: <rdar://problem/5252577> gmail does not accept legal characters in the form boundary
33904
33905        * html/HTMLFormElement.cpp:
33906        (WebCore::getUniqueBoundaryString):
33907
339082007-06-05  Anders Carlsson  <andersca@apple.com>
33909
33910        Build fix.
33911        
33912        * xml/xmlhttprequest.cpp:
33913        (WebCore::isValidToken):
33914
339152007-06-05  Anders Carlsson  <andersca@apple.com>
33916
33917        Reviewed by Geoff.
33918
33919        <rdar://problem/5245555> REGRESSION: HTTP header injection in XMLHttpRequest.setRequestHeader
33920        <rdar://problem/5246208> HTTP injection in XMLHttpRequest.open method parameter
33921        <rdar://problem/5246242> HTTP header injection in HXMLHttpRequest.setRequestHeader header parameter
33922        
33923        Check method names, header names and header values and throw exceptions if any of them are
33924        invalid. This is what the new XMLHttpRequest spec states that we should do.
33925        
33926        * xml/xmlhttprequest.cpp:
33927        (WebCore::isValidToken):
33928        (WebCore::isValidHeaderValue):
33929        (WebCore::XMLHttpRequest::open):
33930        (WebCore::XMLHttpRequest::setRequestHeader):
33931
339322007-06-05  Sam Weinig  <sam@webkit.org>
33933
33934        Reviewed by Geoff.
33935
33936        Optimize JSCSSStyleDeclaration after performance regression in r21854.
33937
33938        - Check static table before name getter in JSCSSStyleDeclaration::getOwnPropertySlot()
33939        - Get rid of a string allocation by keeping string as KJS::Identifier for canGetItemsForName()
33940          functions.
33941
33942        * WebCore.xcodeproj/project.pbxproj:
33943        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
33944        (WebCore::JSCSSStyleDeclaration::canGetItemsForName):
33945        * bindings/js/JSHTMLAppletElementCustom.cpp:
33946        (WebCore::JSHTMLAppletElement::canGetItemsForName):
33947        * bindings/js/JSHTMLDocumentCustom.cpp:
33948        (WebCore::JSHTMLDocument::canGetItemsForName):
33949        * bindings/js/JSHTMLEmbedElementCustom.cpp:
33950        (WebCore::JSHTMLEmbedElement::canGetItemsForName):
33951        * bindings/js/JSHTMLFormElementCustom.cpp:
33952        (WebCore::JSHTMLFormElement::canGetItemsForName):
33953        * bindings/js/JSHTMLFrameSetElementCustom.cpp:
33954        (WebCore::JSHTMLFrameSetElement::canGetItemsForName):
33955        * bindings/js/JSHTMLObjectElementCustom.cpp:
33956        (WebCore::JSHTMLObjectElement::canGetItemsForName):
33957        * bindings/scripts/CodeGeneratorJS.pm:
33958        * css/CSSStyleDeclaration.idl:
33959
339602007-06-04  Sam Weinig  <sam@webkit.org>
33961
33962        Reviewed, tweaked and landed by Anders.
33963
33964        <rdar://problem/5247178> REGRESSION: With CSS Edit 2.5, a crash occurs at WebCore::DeprecatedString::DeprecatedString when page fails to be extracted
33965        
33966        Null check the provisional document loader. If an application stops the load 
33967        inside of the didFailProvisionalLoad delegate method, the provisional document loader will be nulled out.
33968
33969        * loader/FrameLoader.cpp:
33970        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
33971
339722007-06-04  Alp Toker  <alp.toker@collabora.co.uk>
33973
33974        Reviewed by Anders.
33975
33976        http://bugs.webkit.org/show_bug.cgi?id=13986
33977        Cairo graphics fixes and cleanups
33978
33979        * platform/graphics/ImageBuffer.h:
33980        * platform/graphics/cairo/ImageBufferCairo.cpp:
33981        (WebCore::ImageBuffer::surface): Provide surface() accessor.
33982        * platform/graphics/cairo/AffineTransformCairo.cpp:
33983        (WebCore::AffineTransform::rotate): Convert from degrees to radians to
33984        fix rotation.
33985        * platform/graphics/cairo/GraphicsContextCairo.cpp:
33986        (WebCore::GraphicsContext::drawRect): Add save/restore.
33987        (WebCore::GraphicsContext::rotate): Rename parameter to "radians" to
33988        avoid further confusion.
33989        * platform/graphics/cairo/PathCairo.cpp:
33990        (WebCore::Path::boundingRect): The cairo_fill_extents() parameters do
33991        not describe a point/size but rather the two control points of the
33992        rectangular region.
33993        (WebCore::Path::contains): Remove needless casts.
33994
339952007-06-04  Sam Weinig  <sam@webkit.org>
33996
33997        Reviewed by Adam Roben.
33998
33999        Fix the buildbot.
34000
34001        * rendering/RenderSVGContainer.cpp:
34002        (WebCore::RenderSVGContainer::layout):
34003
340042007-06-04  Justin Garcia  <justin.garcia@apple.com>
34005
34006        Reviewed by Kimon Tsinteris.
34007
34008        <rdar://problem/5241148> REGRESSION: ActivEdit can't perform operations on certain selections
34009        
34010        Return valid equivalents from these methods (no [img, 1] for 
34011        example). ActivEdit was using positions returned from these
34012        methods to create new DOM Ranges.
34013        
34014        * editing/SelectionController.cpp:
34015        (WebCore::SelectionController::baseNode):
34016        (WebCore::SelectionController::baseOffset):
34017        (WebCore::SelectionController::extentNode):
34018        (WebCore::SelectionController::extentOffset):
34019        (WebCore::SelectionController::anchorNode):
34020        (WebCore::SelectionController::anchorOffset):
34021        (WebCore::SelectionController::focusNode):
34022        (WebCore::SelectionController::focusOffset):
34023        * editing/SelectionController.h:
34024
340252007-06-04  Rob Buis  <buis@kde.org>
34026
34027        Fix the svg experimental build.
34028
34029        * ksvg2/svg/SVGFEFloodElement.cpp:
34030
340312007-06-04  Rob Buis  <buis@kde.org>
34032
34033        Reviewed by Hyatt.
34034
34035        http://bugs.webkit.org/show_bug.cgi?id=6170
34036        CSS1: Properties for :first-letter aren't recalculated on color change
34037
34038        Mark styles with first-letter as unique.
34039
34040        * css/cssstyleselector.cpp:
34041        (WebCore::CSSStyleSelector::styleForElement):
34042
340432007-06-01  Anders Carlsson  <acarlsson@apple.com>
34044
34045        Reviewed by David Harrison.
34046
34047        <rdar://problem/5236843> 
34048        CrashTracer: [USER] 3 crashes in Mail at WebCore::Loader::didReceiveResponse(WebCore::SubresourceLoader*, WebCore::ResourceResponse const&)
34049
34050        This is by no means the best solution for handling user style sheets. I've filed <rdar://problem/5244734> 
34051        for tracking that.
34052        
34053        * loader/loader.cpp:
34054        (WebCore::Loader::didReceiveResponse):
34055        If a load starts while the frame is still in the provisional state 
34056        (this can be the case when loading the user style sheet), committing the load then causes all
34057        requests to be removed from the m_requestsLoading map. This means that req might be null here.
34058        In that case we just return early. 
34059        
340602007-06-01  Mitz Pettel  <mitz@webkit.org>
34061
34062        Reviewed by Adele.
34063
34064        - fix http://bugs.webkit.org/show_bug.cgi?id=13958
34065          REGRESSION: Form select menu in iframe destroys form select menu on page
34066
34067        * page/mac/EventHandlerMac.mm:
34068        (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking): Instead of calling
34069        the event handler methods directly, post the fake event on the application event
34070        queue. This ensures that the fake event is handled only after handling of the
34071        initiating event has ended, and is seen by ancestor frames' event handlers.
34072
340732007-06-01  George Staikos  <staikos@kde.org>
34074
34075        Reviewed by bdash.
34076
34077        Redo the build fix again after it was backed out
34078
34079        * WebCore.pro: add an include guard around CSSGrammar.h
34080
340812007-05-31  Geoffrey Garen  <ggaren@apple.com>
34082
34083        Reviewed by Beth Dakin.
34084
34085        Fixed <rdar://problem/5238177> Continuing after hitting breakpoint doesn't 
34086        execute the next step.
34087        
34088        No test because the only code affected is the debugger, and none of the
34089        relevant API is exported.
34090        
34091        Reverted an accidental change in 21324 that caused originRootObject for
34092        the window object always to be 0. We could probably just remove the debugger's
34093        dependency on originRootObject, but I wanted to be safe.
34094
34095        * page/mac/FrameMac.mm:
34096        (WebCore::Frame::windowScriptObject):
34097
340982007-05-31  David Hyatt  <hyatt@apple.com>
34099
34100        Fix for 11768, Flash plugin does not respect clips set via CSS.
34101
34102        Reviewed by olliej
34103
34104        * bindings/objc/DOM.mm:
34105        (-[DOMElement _windowClipRect]):
34106        * bindings/objc/DOMPrivate.h:
34107        * page/FrameView.cpp:
34108        (WebCore::FrameView::windowClipRect):
34109        (WebCore::FrameView::windowClipRectForLayer):
34110        * platform/ScrollView.h:
34111        (WebCore::ScrollView::contentsToWindow):
34112        (WebCore::ScrollView::windowToContents):
34113        * platform/mac/ScrollViewMac.mm:
34114        (WebCore::ScrollView::contentsToWindow):
34115        (WebCore::ScrollView::windowToContents):
34116
341172007-05-31  Sam Weinig  <sam@webkit.org>
34118
34119        Reviewed by Adam.
34120
34121        Fix build bot.
34122
34123        * ksvg2/svg/SVGSVGElement.cpp:
34124        (WebCore::SVGSVGElement::setCurrentScale):
34125
341262007-05-31  Sam Weinig  <sam@webkit.org>
34127
34128        Fix Qt and Gdk builds.
34129
34130        * WebCore.pro: remove bindings/js/JSHTMLAnchorElementCustom.cpp
34131
341322007-05-31  Sam Weinig  <sam@webkit.org>
34133
34134        Reviewed by Geoff.
34135
34136        Patch for http://bugs.webkit.org/show_bug.cgi?id=10782
34137        Classes should not override JSObject::toString(ExecState *)
34138
34139        Remove all overrides of JSObject::toString and JSObject::toPrimitive
34140        which is a bad practice.  Instead, if an object, like the 
34141        HTMLAnchorElement, needs to override to toString, it should add
34142        a function to the JS object which will be called when needed.  This
34143        also allows developers to override toString and valueOf from within JS.
34144
34145        Test: fast/js/toString-and-valueOf-override.html
34146
34147        * WebCore.xcodeproj/project.pbxproj:
34148        * bindings/js/JSHTMLAnchorElementCustom.cpp: Removed.
34149        * bindings/js/kjs_binding.cpp:
34150        * bindings/js/kjs_binding.h:
34151        * bindings/js/kjs_dom.cpp:
34152        * bindings/js/kjs_dom.h:
34153        * bindings/js/kjs_domnode.h:
34154        * bindings/js/kjs_window.cpp:
34155        (KJS::History::):
34156        (KJS::LocationFunc::callAsFunction):
34157        (KJS::SelectionFunc::callAsFunction):
34158        * bindings/js/kjs_window.h:
34159        * bindings/scripts/CodeGeneratorJS.pm:
34160        * html/HTMLAnchorElement.cpp:
34161        (WebCore::HTMLAnchorElement::toString):
34162        * html/HTMLAnchorElement.h:
34163        * html/HTMLAnchorElement.idl:
34164
341652007-05-31  Rob Buis  <buis@kde.org>
34166
34167        Reviewed by Darin.
34168
34169        http://bugs.webkit.org/show_bug.cgi?id=11272
34170        Implement currentScale(), setCurrentScale() and currentTranslate() in SVGSVGElement
34171
34172        Allow zooming and panning, thereby implementing the above methods.
34173
34174        * ksvg2/svg/SVGDocument.cpp:
34175        (WebCore::SVGDocument::zoomEnabled):
34176        (WebCore::SVGDocument::startPan):
34177        (WebCore::SVGDocument::updatePan):
34178        * ksvg2/svg/SVGDocument.h:
34179        * ksvg2/svg/SVGSVGElement.cpp:
34180        (WebCore::SVGSVGElement::currentScale):
34181        (WebCore::SVGSVGElement::setCurrentScale):
34182        (WebCore::SVGSVGElement::currentTranslate):
34183        (WebCore::SVGSVGElement::setCurrentTranslate):
34184        * ksvg2/svg/SVGSVGElement.h:
34185        * page/EventHandler.cpp:
34186        (WebCore::EventHandler::EventHandler):
34187        (WebCore::EventHandler::handleMousePressEvent):
34188        (WebCore::EventHandler::handleMouseMoveEvent):
34189        (WebCore::EventHandler::handleMouseReleaseEvent):
34190        * page/EventHandler.h:
34191        * page/Frame.cpp:
34192        (WebCore::Frame::setZoomFactor):
34193        * rendering/RenderSVGContainer.cpp:
34194        (WebCore::RenderSVGContainer::layout):
34195        (WebCore::RenderSVGContainer::paint):
34196        (WebCore::RenderSVGContainer::absoluteTransform):
34197        * rendering/RenderSVGContainer.h:
34198
341992007-05-31  Eric Seidel  <eric@webkit.org>
34200
34201        Reviewed by Niko.
34202
34203        Links are activated based on mouse down events instead of click events
34204        http://bugs.webkit.org/show_bug.cgi?id=12570
34205        
34206        Test: svg/custom/prevent-default.svg
34207
34208        * html/HTMLAnchorElement.cpp: use MiddleButton and RightButton instead of 1 and 2
34209        (WebCore::HTMLAnchorElement::defaultEventHandler):
34210        * ksvg2/svg/SVGAElement.cpp:
34211        (WebCore::SVGAElement::defaultEventHandler): make it function more like the HTML side
34212
342132007-05-30  Maciej Stachowiak  <mjs@apple.com>
34214
34215        Reviewed by Hyatt.
34216
34217        - fix layout test editing/style/table-selection.html
34218        
34219        This was broken by the change to keep whitespace text nodes in tables. They safely didn't render,
34220        but the font delta style change command would wrap them in spans, creating extra anonymous table
34221        cells.
34222
34223        * editing/ApplyStyleCommand.cpp:
34224        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Don't wrap in a span if the text node
34225        is not rendered.
34226
342272007-05-31  Alp Toker  <alp.toker@collabora.co.uk>
34228
34229        Reviewed by Eric Seidel.
34230
34231        http://bugs.webkit.org/show_bug.cgi?id=13941
34232        Rename WebCore/platform/network/gdk to WebCore/platform/network/curl
34233
34234        * WebCore.pro:
34235
342362007-05-31  Alp Toker  <alp.toker@collabora.co.uk>
34237
34238        Reviewed by Niko.
34239
34240        Patch for http://bugs.webkit.org/show_bug.cgi?id=13945
34241        GraphicsContextCairo enhancements necessary for SVG support
34242
34243        * platform/graphics/cairo/GraphicsContextCairo.cpp:
34244        (WebCore::GraphicsContext::concatCTM):
34245        (WebCore::GraphicsContext::beginPath):
34246        (WebCore::GraphicsContext::addPath):
34247
342482007-05-31  Patti Hoa <patti@apple.com>
34249
34250        Reviewed by Darin.
34251        
34252        <rdar://problem/5221920> AXLink is returning a CFString instead of a CFURL for AXURL
34253
34254        * bridge/mac/WebCoreAXObject.mm:
34255        (-[WebCoreAXObject accessibilityAttributeValue:]):
34256        Convert the url string to an NSURL before returning as the AXURLAttribute
34257
342582007-05-30  Sam Weinig  <sam@webkit.org>
34259
34260        Reviewed by Oliver.
34261
34262        Patch for http://bugs.webkit.org/show_bug.cgi?id=13943
34263        Autogenerate the JS bindings for the CSSStyleSheet
34264
34265        * DerivedSources.make:
34266        * WebCore.pro:
34267        * WebCore.xcodeproj/project.pbxproj:
34268        * bindings/js/JSStyleSheetCustom.cpp:
34269        (WebCore::toJS):
34270        * bindings/js/kjs_css.cpp:
34271        * bindings/js/kjs_css.h:
34272        * bindings/scripts/CodeGeneratorJS.pm:
34273        * css/CSSStyleSheet.cpp:
34274        (WebCore::CSSStyleSheet::addRule):
34275        (WebCore::CSSStyleSheet::cssRules):
34276        * css/CSSStyleSheet.h:
34277        (WebCore::CSSStyleSheet::rules):
34278        (WebCore::CSSStyleSheet::removeRule):
34279        * css/CSSStyleSheet.idl:
34280        * page/DOMWindow.idl:
34281
342822007-05-30  Sam Weinig  <sam@webkit.org>
34283
34284        Reviewed by Oliver.
34285
34286        Patch for http://bugs.webkit.org/show_bug.cgi?id=13937
34287        Autogenerate the JS bindings for the CSSValue
34288
34289        * WebCore.pro:
34290        * WebCore.xcodeproj/project.pbxproj:
34291        * bindings/js/JSCSSValueCustom.cpp: Added.
34292        (WebCore::toJS):
34293        * bindings/js/kjs_css.cpp:
34294        * bindings/js/kjs_css.h:
34295        * bindings/objc/DOMUtility.mm:
34296        (KJS::createDOMWrapper):
34297        * bindings/scripts/CodeGeneratorJS.pm:
34298        * css/CSSValue.h:
34299        (WebCore::CSSValue::setCssText):
34300        * css/CSSValue.idl:
34301
343022007-05-30  Sam Weinig  <sam@webkit.org>
34303
34304        Reviewed by Oliver the Hun.
34305
34306        Patch for http://bugs.webkit.org/show_bug.cgi?id=13944
34307        Generate and add missing JS constructors
34308
34309        * css/CSSRuleList.idl:
34310        * css/CSSValueList.idl:
34311        * css/Counter.idl:
34312        * page/DOMWindow.idl:
34313
343142007-05-30  Justin Garcia  <justin.garcia@apple.com>
34315 
34316        Reviewed by Darin.
34317 
34318        http://bugs.webkit.org/show_bug.cgi?id=13915
34319        REGRESSION(r21687): editing/inserting/paragraph-separator-* failing pixel test (misspelling markers)
34320
34321        After r21687, SimplifiedBackwardsTextIterator was no longer 
34322        emitting a '\n' as it left the first block of a range ending 
34323        at [block, 0]. So, foo<div>^<br></div> looked like foo^ to
34324        spell checking (foo wasn't marked as misspelled).
34325
34326        After r21687, SBTI stopped emitting '\n's in the above case 
34327        because 1) we stopped incorrectly emitting '\n's for nodes as 
34328        we entered them and 2) we were and still are incorrectly calling 
34329        code that should only be called when entering nodes as we leave 
34330        them and 3) we don't call exitNode(), which is responsible 
34331        for emitting the '\n' in the above testcase, when we should.
34332
34333        Before and after r21687, we'd call exitNode() for a node as 
34334        we traversed in reverse pre-order from its first descendant 
34335        out to its sibling or one of its ancestors' siblings.  We 
34336        weren't calling it a) after we'd enter a node that could 
34337        have children but had none and b) when leaving a container 
34338        that contained the end of the range used to create the iterator.
34339
34340        * editing/TextIterator.cpp:
34341        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
34342        (WebCore::SimplifiedBackwardsTextIterator::advance): Call exitNode() as we
34343        leave a childless container node and a node where the range ended.
34344        * editing/TextIterator.h: Track the end of the range used to create
34345        the SimplifiedBackwardsTextIterator.
34346
343472007-05-30  Alp Toker  <alp.toker@collabora.co.uk>
34348
34349        Reviewed by Brady.
34350
34351        Enable logging in the Gdk port.
34352        http://bugs.webkit.org/show_bug.cgi?id=13936
34353
34354        * WebCore.pro:
34355        * platform/NotImplemented.h: Changed to use WTFLogVerbose.
34356        * platform/gdk/LoggingGdk.cpp: Added.
34357        (WebCore::InitializeLoggingChannelsIfNecessary):
34358
343592007-05-30  Beth Dakin  <bdakin@apple.com>
34360
34361        Reviewed by Hyatt.
34362
34363        Fix for <rdar://problem/5198882> CrashTracer: [USER] 7 crashes in 
34364        Safari at com.apple.WebCore: WebCore::RenderBlock::layoutBlock + 
34365        2360
34366
34367        The problem is that we are re-entering layout when we should not. 
34368        http://trac.webkit.org/projects/webkit/changeset/21778 actually 
34369        fixed this crash, but we have been inspired to add the same guard 
34370        in two other possibly-dangerous places.
34371
34372        * page/FrameView.cpp:
34373        (WebCore::FrameView::layout): Add the guard in two more places.
34374
343752007-05-30  Justin Garcia  <justin.garcia@apple.com>
34376
34377        Reviewed by Oliver.
34378
34379        <rdar://problem/5096134> VO gets stuck on Howto.apple.com
34380        http://bugs.webkit.org/show_bug.cgi?id=8622
34381        VisiblePositions aren't canonicalized in some cases
34382        
34383        No new test cases added: can't write automated tests 
34384        for VO.
34385
34386        * editing/IndentOutdentCommand.cpp:
34387        (WebCore::IndentOutdentCommand::outdentParagraph):
34388        VisiblePositions must be recomputed after nodes that
34389        may have effected their canonicalization are removed.
34390        * editing/VisiblePosition.cpp:
34391        (WebCore::canonicalizeCandidate): Added.
34392        (WebCore::VisiblePosition::canonicalPosition): Canonicalize
34393        the candidates returned by next/previousCandidate before
34394        returning them.
34395        * editing/VisiblePosition.h:
34396        (WebCore::operator==): Remove the workaround for 8622.
34397        * editing/visible_units.cpp:
34398        (WebCore::startOfParagraph): Ditto.
34399
344002007-05-30  Sam Weinig  <sam@webkit.org>
34401
34402        Reviewed by Dr. Harrison.
34403
34404        Patch for http://bugs.webkit.org/show_bug.cgi?id=13868
34405        REGRESSION: crash on accessing a new iframe's contentWindow property
34406
34407        Adds a null check in for the contentWindow property for HTMLIFrameElement
34408        and HTMLFrameElement.
34409
34410        * bindings/scripts/CodeGeneratorJS.pm:
34411        * html/HTMLFrameElement.idl:
34412        * html/HTMLIFrameElement.idl:
34413
344142007-05-30  Mitz Pettel  <mitz@webkit.org>
34415
34416        Reviewed by Darin.
34417
34418        - fix http://bugs.webkit.org/show_bug.cgi?id=13775
34419          REGRESSION: Popup button text should use "natural" directionality to match the items in the popup menu
34420
34421        Test: fast/forms/select-writing-direction-natural.html
34422
34423        * platform/PopupMenu.h: Added the static method itemWritingDirectionIsNatural
34424        which says whether items in the popup ignore the CSS text-align and direction
34425        properties and instead are left-aligned and use natural writing direction.
34426        * platform/gdk/PopupMenuGdk.cpp:
34427        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34428        * platform/mac/PopupMenuMac.mm:
34429        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34430        * platform/qt/PopupMenuQt.cpp:
34431        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34432        * platform/win/TemporaryLinkStubs.cpp:
34433        (WebCore::PopupMenu::itemWritingDirectionIsNatural):
34434        * platform/wx/TemporaryLinkStubs.cpp:
34435        (PopupMenu::itemWritingDirectionIsNatural):
34436        * rendering/RenderMenuList.cpp:
34437        (WebCore::textDirectionForParagraph): Added this helper function that uses
34438        the Unicode Bidi Algorithm rules P2 and P3 to determine the writing direction
34439        of text.
34440        (WebCore::RenderMenuList::adjustInnerStyle): Made the alignment and direction
34441        adjustment conditional on the popup implementation.
34442        (WebCore::RenderMenuList::setText): Added call to adjustInnerStyle() since
34443        the style depends on the text when natural writing direction is used.
34444
344452007-05-30  Timothy Hatcher  <timothy@apple.com>
34446
34447        Reviewed by Darin.
34448
34449        <rdar://problem/5200795> REGRESSION (r21057): lineBoxRects doesn't match actual text when wrapping occurs
34450
34451        Use box->end() instead of box->len().
34452
34453        * rendering/RenderText.cpp:
34454        (WebCore::RenderText::addLineBoxRects):
34455
344562007-05-30  Sam Weinig  <sam@webkit.org>
34457
34458        Reviewed by Darin.
34459
34460        Patch for http://bugs.webkit.org/show_bug.cgi?id=13919
34461        Autogenerate the JS bindings for the CSSRule and its subclasses
34462
34463        - subclasses generated are CSSCharsetRule, CSSFontFaceRule, CSSImportRule
34464          CSSMediaRule, CSSPageRule and CSSStyleRule.
34465
34466        * DerivedSources.make:
34467        * WebCore.pro:
34468        * WebCore.xcodeproj/project.pbxproj:
34469        * bindings/js/JSCSSRuleCustom.cpp: Added.
34470        (WebCore::toJS):
34471        * bindings/js/kjs_css.cpp:
34472        * bindings/js/kjs_css.h:
34473        * bindings/objc/DOMUtility.mm:
34474        (KJS::createDOMWrapper):
34475        * bindings/scripts/CodeGeneratorJS.pm:
34476        * css/CSSCharsetRule.h:
34477        (WebCore::CSSCharsetRule::setEncoding):
34478        * css/CSSCharsetRule.idl:
34479        * css/CSSFontFaceRule.idl:
34480        * css/CSSImportRule.idl:
34481        * css/CSSMediaRule.idl:
34482        * css/CSSPageRule.cpp:
34483        (WebCore::CSSPageRule::setSelectorText):
34484        * css/CSSPageRule.h:
34485        * css/CSSPageRule.idl:
34486        * css/CSSRule.cpp:
34487        (WebCore::CSSRule::setCssText):
34488        * css/CSSRule.h:
34489        * css/CSSRule.idl:
34490        * css/CSSStyleRule.cpp:
34491        (WebCore::CSSStyleRule::setSelectorText):
34492        * css/CSSStyleRule.h:
34493        * css/CSSStyleRule.idl:
34494        * page/DOMWindow.idl: add new constructors.
34495
344962007-05-30  Mark Rowe  <mrowe@apple.com>
34497
34498        Build fixes after r21889.  Add missing #includes.
34499
34500        * ForwardingHeaders/kjs/function.h: Added.
34501        * bindings/js/kjs_binding.h:
34502        * bindings/js/kjs_dom.h:
34503        * bindings/js/kjs_window.h:
34504
345052007-05-30  Mark Rowe  <mrowe@apple.com>
34506
34507        Gdk build fix.  Update WidgetGdk to use NotImplemented.h.
34508
34509        * platform/gdk/WidgetGdk.cpp:
34510        (WebCore::Widget::setEnabled):
34511        (WebCore::Widget::isEnabled):
34512        (WebCore::Widget::removeFromParent):
34513        (WebCore::Widget::paint):
34514        (WebCore::Widget::setIsSelected):
34515
345162007-05-29  Holger Freyther  <zecke@selfish.org>
34517
34518        Reviewed by Anders.
34519
34520        Make ScrollView use a GtkLayout. This class matches QScrollView the most and promises
34521        to ease the implementation of ScrollView::addChild. GtkLayout should be resource friendly
34522        even with huge width and heights of frames.
34523        Make Widget aware of GtkLayout to use the right GdkWindow as drawable. For GtkLayout one must
34524        draw on the bin_window.
34525        Remove the layer violation from FrameGdk.cpp and ScrollView. FrameGdk is no longer responsible to
34526        implement scrolling on keyboard events. ScrollView is no longer required to know that it could be
34527        a FrameView and handles scrolling of Frames magically.
34528
34529        * platform/ScrollView.h:
34530        * platform/gdk/FrameGdk.cpp:
34531        (WebCore::FrameGdk::keyPress):
34532        (WebCore::FrameGdk::handleGdkEvent):
34533        * platform/gdk/ScrollViewGdk.cpp:
34534        (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
34535        (WebCore::ScrollView::updateContents):
34536        (WebCore::ScrollView::visibleWidth):
34537        (WebCore::ScrollView::visibleHeight):
34538        (WebCore::ScrollView::visibleContentRect):
34539        (WebCore::ScrollView::resizeContents):
34540        (WebCore::ScrollView::contentsX):
34541        (WebCore::ScrollView::contentsY):
34542        (WebCore::ScrollView::scrollOffset):
34543        (WebCore::ScrollView::scrollBy):
34544        (WebCore::ScrollView::setFrameGeometry):
34545        (WebCore::ScrollView::updateGeometry):
34546        (WebCore::ScrollView::setGtkWidget):
34547        (WebCore::ScrollView::updateScrollbars):
34548        (WebCore::ScrollView::windowToContents):
34549        (WebCore::ScrollView::contentsToWindow):
34550        (WebCore::ScrollView::scrollbarUnderMouse):
34551        * platform/gdk/TemporaryLinkStubs.cpp: Move Widget methods to WidgetGdk.cpp
34552        * platform/gdk/WidgetGdk.cpp:
34553        (WebCore::Widget::setGtkWidget):
34554        (WebCore::Widget::setFrameGeometry):
34555        (WebCore::Widget::setEnabled):
34556        (WebCore::Widget::isEnabled):
34557        (WebCore::Widget::removeFromParent):
34558        (WebCore::Widget::paint):
34559        (WebCore::Widget::setIsSelected):
34560        (WebCore::Widget::invalidate):
34561        (WebCore::Widget::invalidateRect):
34562
345632007-05-29  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
34564
34565        Reviewed by Maciej.
34566
34567        Curl (linux/gdk) networking improvements: 
34568        a) POST support
34569        b) don't use CURL in a re-entrant way.
34570        c) turn on curl's internal debugging support in a debug build if the DEBUG_CURL environment variable is set.
34571
34572        * platform/network/ResourceHandleInternal.h:
34573        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
34574        * platform/network/gdk/ResourceHandleCurl.cpp:
34575        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
34576        * platform/network/gdk/ResourceHandleManager.cpp:
34577        (WebCore::ResourceHandleManager::ResourceHandleManager):
34578        (WebCore::writeCallback):
34579        (WebCore::ResourceHandleManager::downloadTimerCallback):
34580        (WebCore::ResourceHandleManager::setupPOST):
34581        (WebCore::ResourceHandleManager::add):
34582        (WebCore::ResourceHandleManager::removeScheduledJob):
34583        (WebCore::ResourceHandleManager::startScheduledJobs):
34584        (WebCore::ResourceHandleManager::startJob):
34585        (WebCore::ResourceHandleManager::cancel):
34586        * platform/network/gdk/ResourceHandleManager.h:
34587        (WebCore::ResourceHandleList::ResourceHandleList):
34588        (WebCore::ResourceHandleList::next):
34589        (WebCore::ResourceHandleList::job):
34590        (WebCore::ResourceHandleList::setRemoved):
34591        (WebCore::ResourceHandleList::removed):
34592
345932007-05-29  Sam Weinig  <sam@webkit.org>
34594
34595        Fix the Qt and Gdk builds.
34596
34597        * WebCore.pro:
34598
345992007-05-29  Adele Peterson  <adele@apple.com>
34600
34601        Reviewed by Adam.
34602
34603        Fix for <rdar://problem/5109711> REGRESSION: Focus ring artifacts appear around a widget's search field at times (Address Book, Dictionary)
34604
34605        * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintSearchField):
34606          We only need this hack for drawing the search field focus ring on Tiger.  On Leopard, drawWithFrame correctly draws the cell's focus ring.
34607
346082007-05-29  Alp Toker  <alp.toker@collabora.co.uk>
34609
34610        Reviewed by Mitz.
34611
34612        Patch for http://bugs.webkit.org/show_bug.cgi?id=13899
34613
34614        * platform/graphics/cairo/GraphicsContextCairo.cpp:
34615        (WebCore::GraphicsContext::strokeArc): Use cairo_arc_negative() to fix
34616        CSS rounded borders.
34617        (WebCore::GraphicsContext::beginTransparencyLayer):
34618        (WebCore::GraphicsContext::endTransparencyLayer): save/restore is
34619        redundant. push/pop group does this implicitly.
34620
346212007-05-29  Sam Weinig  <sam@webkit.org>
34622
34623        Reviewed by Oliver.
34624
34625        Patch for http://bugs.webkit.org/show_bug.cgi?id=13912
34626        Autogenerate the JS bindings for the MediaList
34627
34628        * DerivedSources.make:
34629        * WebCore.xcodeproj/project.pbxproj:
34630        * bindings/js/kjs_css.cpp:
34631        * bindings/js/kjs_css.h:
34632        * bindings/objc/DOMUtility.mm:
34633        (KJS::createDOMWrapper):
34634        * bindings/scripts/CodeGeneratorJS.pm:
34635        * css/MediaList.idl:
34636        * page/DOMWindow.idl: Add constructor.
34637
346382007-05-29  Matt Perry  <mpComplete@gmail.com>
34639
34640        Reviewed by Maciej.
34641
34642        Fixed some rendering issues for <select>s on Windows.
34643
34644        * rendering/RenderThemeWin.cpp:
34645        (WebCore::RenderThemeWin::adjustMenuListStyle):
34646        (WebCore::RenderThemeWin::paintMenuList):
34647        * rendering/RenderThemeWin.h:
34648
346492007-05-29  David Hyatt  <hyatt@apple.com>
34650
34651        Fold the invalidateVerticalPositions crawl into the bidi iteration.
34652        This makes it more correct (since we won't drill into elements that
34653        did not need to be reset) and cuts out an extra walk of all our children.
34654        We're still O(n^2) as new content streams in, but this at least cuts
34655        out one separate O(n^2) crawl.
34656
34657        Reviewed by olliej
34658
34659        * rendering/RenderObject.cpp:
34660        * rendering/RenderObject.h:
34661        (WebCore::RenderObject::invalidateVerticalPosition):
34662        * rendering/bidi.cpp:
34663        (WebCore::RenderBlock::layoutInlineChildren):
34664
346652007-05-29  Sam Weinig  <sam@webkit.org>
34666
34667        Reviewed by Oliver.
34668
34669        Patch for http://bugs.webkit.org/show_bug.cgi?id=13908
34670        Autogenerate the JS bindings for the StyleSheet
34671
34672        * DerivedSources.make:
34673        * WebCore.xcodeproj/project.pbxproj:
34674        * bindings/js/JSStyleSheetCustom.cpp: Added.
34675        (WebCore::toJS):
34676        (WebCore::JSStyleSheet::toBoolean):
34677        * bindings/js/kjs_css.cpp:
34678        (KJS::):
34679        (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
34680        (KJS::DOMCSSStyleSheet::getOwnPropertySlot):
34681        * bindings/js/kjs_css.h:
34682        * bindings/objc/DOMUtility.mm:
34683        (KJS::createDOMWrapper):
34684        * bindings/scripts/CodeGeneratorJS.pm:
34685        * css/StyleSheet.idl:
34686        * page/DOMWindow.idl: Add new constructor.
34687
346882007-05-29  David Hyatt  <hyatt@apple.com>
34689
34690        Make sure <embed> does not allow an end tag.
34691
34692        Reviewed by olliej
34693
34694        * html/HTMLEmbedElement.h:
34695        (WebCore::HTMLEmbedElement::endTagRequirement):
34696
346972007-05-29  Adele Peterson  <adele@apple.com>
34698
34699        Reviewed by Brady.
34700
34701        Fix for <rdar://problem/5213039> REGRESSION: Wells Fargo registration page returns blank
34702
34703        Roll out updated fix for 11866 that tried to make reset work for hidden inputs.  Since
34704        all browsers update the value attribute when setting the value, it doesn't really make sense to reset.
34705        Its true that IE does support resetting these controls, but in this case, it doesn't really make sense to have
34706        another place to store an alternate version of the value.
34707
34708        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::reset):
34709        * html/HTMLInputElement.h:
34710
347112007-05-29  Darin Adler  <darin@apple.com>
34712
34713        Reviewed by Anders.
34714
34715        - removed the general case optimization for innerHTML because some sites
34716          rely on setting innerHTML to trigger loading plug-ins for example; we
34717          could consider bringing it back some day, perhaps with a list of element
34718          types to exclude
34719
34720        * dom/CharacterData.cpp: (WebCore::CharacterData::setData):
34721        Do nothing if the old data is identical to the new data.
34722
34723        * html/HTMLElement.cpp:
34724        (WebCore::replaceChildrenWithFragment): Remove childrenAreEqual optimization.
34725        (WebCore::replaceChildrenWithText): Remove optimization for cases where the
34726        text data is identical to the new data, since CharacterData handles that now.
34727        (WebCore::HTMLElement::setOuterHTML): Remove childrenAreEqual optimization.
34728
347292007-05-29  Mitz Pettel  <mitz@webkit.org>
34730
34731        Reviewed by Maciej.
34732
34733        - fix http://bugs.webkit.org/show_bug.cgi?id=13904
34734          REGRESSION: Search fields with a results popup do not always draw the popup arrow
34735
34736        Covered by fast/forms/box-shadow-override.html
34737
34738        The search button draws a popup arrow depending on whether the
34739        search menu template is set, rather than on the maximum number of recent
34740        search strings.
34741
34742        * rendering/RenderThemeMac.h:
34743        * rendering/RenderThemeMac.mm:
34744        (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration): Removed the
34745        call to -setMaxmiumRecents:.
34746        (WebCore::RenderThemeMac::paintSearchFieldResultsButton): Replaced calling
34747        -setMaximumRecents: with setting the search menu template.
34748        (WebCore::RenderThemeMac::search): Removed initialization of the menu.
34749        (WebCore::RenderThemeMac::searchMenuTemplate): Added. Returns an empty
34750        NSMenu to be used as the search menu template.
34751
347522007-05-29  David Hyatt  <hyatt@apple.com>
34753
34754        Fix for bug 13907, <noscript> should be allowed inside <head> when
34755        scripting is enabled.
34756
34757        Reviewed by aroben
34758
34759        * html/HTMLHeadElement.cpp:
34760        (WebCore::HTMLHeadElement::checkDTD):
34761        * html/HTMLParser.cpp:
34762        (WebCore::HTMLParser::handleError):
34763        * html/HTMLParserErrorCodes.cpp:
34764        (WebCore::htmlParserErrorMessageTemplate):
34765        * html/HTMLParserErrorCodes.h:
34766
347672007-05-29  Mitz Pettel  <mitz@webkit.org>
34768
34769        Reviewed by Maciej.
34770
34771        - fix crash in http://bugs.webkit.org/show_bug.cgi?id=13792
34772          REGRESSION: WebKit doesn't show this javascript screenshot page (and crashes after click on its "hidden link")
34773
34774        Test: fast/frames/removal-before-attach-crash.html
34775
34776        Delayed the queueing of the post-attach callback until attach().
34777
34778        * html/HTMLFrameElementBase.cpp:
34779        (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
34780        (WebCore::HTMLFrameElementBase::parseMappedAttribute): Replaced call to the
34781        HTMLElement implementation with a call to the HTMLFrameOwnerElement
34782        implementation, as the latter is the parent class.
34783        (WebCore::HTMLFrameElementBase::insertedIntoDocument): Instead of queueing
34784        the post-attach callback here, just set a flag telling us to do so
34785        at the beginning of attach().
34786        (WebCore::HTMLFrameElementBase::removedFromDocument): Reset the above flag.
34787        (WebCore::HTMLFrameElementBase::attach): If this is the first attach() after
34788        being inserted into the document, queue a post-attach callback to load the
34789        frame.
34790        (WebCore::HTMLFrameElementBase::willRemove): Changed to call up to the correct
34791        parent class.
34792        (WebCore::HTMLFrameElementBase::setFocus): Ditto.
34793        * html/HTMLFrameElementBase.h:
34794        * html/HTMLPlugInElement.cpp:
34795        (WebCore::HTMLPlugInElement::mapToEntry): Replaced call to the HTMLElement
34796        implementation with a call to the HTMLFrameOwnerElement implementation,
34797        as the latter is the parent class.
34798        (WebCore::HTMLPlugInElement::parseMappedAttribute): Ditto.
34799        (WebCore::HTMLPlugInElement::checkDTD): Ditto.
34800        (WebCore::HTMLPlugInElement::detach): Ditto.
34801
348022007-05-29  Darin Adler  <darin@apple.com>
34803
34804        Reviewed by Maciej.
34805
34806        - fix http://bugs.webkit.org/show_bug.cgi?id=13602
34807          Amazon product pages keep repainting over and over again
34808
34809        - fix first-letter when the text of the affected text node is changed
34810
34811        Optimize setInnerHTML, setOuterHTML, and setInnerText so they don't change the DOM at all
34812        if they don't need to.
34813
34814        Test: fast/dom/HTMLElement/set-inner-outer-optimization.html
34815        Test: fast/css/first-letter-detach.html
34816
34817        * html/HTMLElement.cpp:
34818        (WebCore::equal): Added. Helper function that compares two Text nodes or two NamedAttrMap
34819        attribute maps.
34820        (WebCore::shallowEqual): Added. Helper function that compares two Element nodes or two
34821        arbitrary nodes.
34822        (WebCore::childrenAreEqual): Added. Helper functions that compare children of nodes.
34823        (WebCore::hasOneChild): Added. Helper function.
34824        (WebCore::hasOneTextChild): Added. Helper function.
34825        (WebCore::replaceChildrenWithFragment): Added. Helper function used by setInnerHTML and
34826        setInnerText. Optimizes the cases where all the nodes are the same, where both the current
34827        and the new content are single text nodes, and where the current content is a single node
34828        that can be replaced with replaceChild.
34829        (WebCore::replaceChildrenWithText): Added. Helper function used by setInnerText. Optimizes
34830        the case where the current content is a single text node or a single node that can be
34831        replaced with replaceChild.
34832        (WebCore::HTMLElement::setInnerHTML): Changed to call replaceChildrenWithFragment.
34833        (WebCore::HTMLElement::setOuterHTML): Added special case to optimize when the new content
34834        exactly matches the current node.
34835        (WebCore::HTMLElement::setInnerText): Changed to call replaceChildrenWithText in a few
34836        cases instead of doing removeChildren/appendChild. Changed code that was using
34837        DeprecatedString to instead use String. Changed general case to use a document fragment
34838        and replaceChildrenWithFragment.
34839
34840        * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent):
34841        Fixed bug where we would not dispatch the DOMSubtreeModified event unless someone
34842        was registered for the DOMCharacterDataModified event. Caused trouble in the test.
34843
34844        * rendering/RenderBlock.cpp: (WebCore::RenderBlock::updateFirstLetter): Set first-letter
34845        after the setStyle call so calls to setTextInternal inside setStyle don't clear it.
34846
34847        * rendering/RenderText.h: Made setTextInternal virtual so that RenderTextFragment can do
34848        appropriate work when the text changes.
34849
34850        * rendering/RenderTextFragment.h: Added an override of setTextInternal. Removed the
34851        firstLetter parameter to the constructor and made it a separate setter. Also changed
34852        m_generatedContentStr to m_contentString to match the getter function.
34853        * rendering/RenderTextFragment.cpp:
34854        (WebCore::RenderTextFragment::RenderTextFragment): Removed firstLetter parameter.
34855        (WebCore::RenderTextFragment::setTextInternal): When the text changes, destroy the
34856        first-letter node and reset the fragment values so that RenderBlock::updateFirstLetter,
34857        which will run during layout, will create a new first-letter child. Otherwise we end up
34858        with the first letter of the old text.
34859
348602007-05-29  Sam Weinig  <sam@webkit.org>
34861
34862        Fix Qt build.
34863
34864        * platform/NotImplemented.h:
34865
348662007-05-29  Sam Weinig  <sam@webkit.org>
34867
34868        Reviewed by Adam Roben.
34869
34870        Consolidate platform dependent notImplemented() macros
34871        into one platform independent macro that uses WTFLog.
34872
34873        * platform/NotImplemented.h:
34874
348752007-05-29  Darin Adler  <darin@apple.com>
34876
34877        Reviewed by Sam.
34878
34879        - a clean-up pass on form-related aspects of the recent JSHTMLElement patch
34880
34881        * bindings/js/JSHTMLElementCustom.cpp: (WebCore::JSHTMLElement::pushEventHandlerScope):
34882        Replace the call to formForEventHandlerScope() with a call to the new form() function.
34883        And removed the now-uneeded code to search for a form ancestor.
34884
34885        * html/HTMLElement.h: Added a general-purpose form() function. The intent is to return
34886        the form ancestor if any, but return the associated form for a form control, which isn't
34887        always an ancestor of the control. To keep form() efficient for form controls, it's an
34888        inline that calls a virtual, allowing a derived class to override it with an inline.
34889        This replaces formForEventHandlerScope(). Also added findFormAncestor() to use here and
34890        to replace the multiple loops found elsewhere to search for the nearest form ancestor.
34891        * html/HTMLElement.cpp:
34892        (WebCore::HTMLElement::findFormAncestor): Added.
34893        (WebCore::HTMLElement::virtualForm): Added. Calls findFormAncestor().
34894
34895        * html/HTMLGenericFormElement.h: Suggested name change to HTMLFormControlElement.
34896        Removed the confusing getForm() function, which is superceded by findFormAncestor.
34897        Removed the unused onSelect() function. Removed the override of formForEventHandlerScope(),
34898        replacing it with an override of virtualForm().
34899        * html/HTMLGenericFormElement.cpp:
34900        (WebCore::HTMLGenericFormElement::HTMLGenericFormElement): Use findFormAncestor
34901        instead of getForm.
34902        (WebCore::HTMLGenericFormElement::insertedIntoTree): Ditto.
34903        (WebCore::HTMLGenericFormElement::virtualForm): Added.
34904
34905        * html/HTMLLabelElement.h: Removed now-unneeded form() and formForEventHandlerScope()
34906        functions, since base class behavior is now good enough. Renamed formElement() to
34907        correspondingControl(), since that's the terminology used elsewhere in the code,
34908        and the old name was unnecessarily confusing.
34909        * html/HTMLLabelElement.cpp:
34910        (WebCore::HTMLLabelElement::correspondingControl): Renamed. Removed unnecessary
34911        special case for empty ID, since getElementById already returns 0 for that case.
34912        (WebCore::HTMLLabelElement::setActive): Updated for name change.
34913        (WebCore::HTMLLabelElement::setHovered): Ditto.
34914        (WebCore::HTMLLabelElement::defaultEventHandler): Ditto.
34915        (WebCore::HTMLLabelElement::focus): Ditto.
34916        (WebCore::HTMLLabelElement::accessKeyAction): Ditto.
34917
34918        * html/HTMLObjectElement.h: Removed now-unneeded form() and formForEventHandlerScope()
34919        functions, since base class behavior is now good enough. Also removed forward
34920        declaration of KJS::Bindings::Instance -- since the type is the return value of a
34921        function from the base class, it's guaranteed to be declared in the base class header.
34922        * html/HTMLObjectElement.cpp: Ditto.
34923
34924        * bridge/mac/WebCoreAXObject.mm: (labelForElement): Updated for name change.
34925
349262007-05-29  Zack Rusin  <zrusin@trolltech.com>
34927
34928        Reviewed by George and Niko
34929
34930        Making the convenience method notImplemented convenient
34931        for the Qt port.
34932
34933        * platform/NotImplemented.h:
34934
349352007-05-28  Sam Weinig  <sam@webkit.org>
34936
34937        Reviewed by Geoff.
34938
34939        - Patch for http://bugs.webkit.org/show_bug.cgi?id=13902
34940          Autogenerate the JS bindings for the CSSStyleDeclaration
34941
34942        * WebCore.pro:
34943        * WebCore.xcodeproj/project.pbxproj:
34944        * bindings/js/JSCSSStyleDeclarationCustom.cpp: Added.
34945        (WebCore::cssPropertyName):
34946        (WebCore::isCSSPropertyName):
34947        (WebCore::JSCSSStyleDeclaration::canGetItemsForName):
34948        (WebCore::JSCSSStyleDeclaration::nameGetter):
34949        (WebCore::JSCSSStyleDeclaration::customPut):
34950        * bindings/js/kjs_binding.h:
34951        * bindings/js/kjs_css.cpp:
34952        * bindings/js/kjs_css.h:
34953        * bindings/objc/DOMUtility.mm:
34954        (KJS::createDOMWrapper):
34955        * bindings/scripts/CodeGeneratorJS.pm:
34956        * css/CSSStyleDeclaration.idl:
34957
349582007-05-28  Mitz Pettel  <mitz@webkit.org>
34959
34960        Reviewed by Darin.
34961
34962        - fix http://bugs.webkit.org/show_bug.cgi?id=13896
34963          REGRESSION (NativePopup): Reproductible crasher on Google Coop control panel
34964
34965        Test: fast/forms/select-display-none-style-resolve.html
34966
34967        * html/HTMLOptGroupElement.cpp:
34968        (WebCore::HTMLOptGroupElement::attach): Do not compute style if the parent
34969        does not have style.
34970        * html/HTMLOptionElement.cpp:
34971        (WebCore::HTMLOptionElement::attach): Ditto.
34972
349732007-05-28  Sam Weinig  <sam@webkit.org>
34974
34975        Fix Gdk and Qt builds.
34976
34977        * WebCore.pro:
34978
349792007-05-28  Sam Weinig  <sam@webkit.org>
34980
34981        Reviewed by Darin.
34982
34983        Patch for http://bugs.webkit.org/show_bug.cgi?id=13894
34984        Remove the legacy class KJS::JSHTMLElement
34985
34986        - Now that all of the subclasses of JSHTMLElement are
34987          autogenerated and no longer rely on the legacy parent,
34988          we can remove it and update all the HTML idl files to
34989          reflect so.
34990
34991        - Also adds JSHTMLBlockquoteElement's JS constructor which
34992          was mistakingly missing.
34993
34994        * WebCore.xcodeproj/project.pbxproj:
34995        * bindings/js/JSHTMLAnchorElementCustom.cpp:
34996        (WebCore::JSHTMLAnchorElement::toString):
34997        * bindings/js/JSHTMLElementCustom.cpp: Added.
34998        (WebCore::JSHTMLElement::pushEventHandlerScope):
34999        * bindings/js/JSHTMLElementWrapperFactory.cpp:
35000        (WebCore::createJSHTMLWrapper):
35001        * bindings/js/JSHTMLInputElementBase.cpp:
35002        (WebCore::):
35003        (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
35004        (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
35005        (WebCore::JSHTMLInputElementBase::put):
35006        * bindings/js/JSHTMLInputElementBase.h:
35007        * bindings/js/JSHTMLSelectElementCustom.cpp:
35008        * bindings/js/kjs_html.cpp:
35009        (KJS::runtimeObjectCustomGetOwnPropertySlot):
35010        * bindings/js/kjs_html.h:
35011        * bindings/scripts/CodeGeneratorJS.pm:
35012        * html/HTMLAnchorElement.idl:
35013        * html/HTMLAppletElement.idl:
35014        * html/HTMLAreaElement.idl:
35015        * html/HTMLBRElement.idl:
35016        * html/HTMLBaseElement.idl:
35017        * html/HTMLBaseFontElement.idl:
35018        * html/HTMLBlockquoteElement.idl:
35019        * html/HTMLBodyElement.idl:
35020        * html/HTMLButtonElement.idl:
35021        * html/HTMLCanvasElement.idl:
35022        * html/HTMLDListElement.idl:
35023        * html/HTMLDirectoryElement.idl:
35024        * html/HTMLDivElement.idl:
35025        * html/HTMLElement.cpp:
35026        (WebCore::HTMLElement::formForEventHandlerScope):
35027        * html/HTMLElement.h:
35028        * html/HTMLElement.idl:
35029        * html/HTMLEmbedElement.idl:
35030        * html/HTMLFieldSetElement.idl:
35031        * html/HTMLFontElement.idl:
35032        * html/HTMLFormElement.idl:
35033        * html/HTMLFrameElement.idl:
35034        * html/HTMLFrameSetElement.idl:
35035        * html/HTMLGenericFormElement.cpp:
35036        (WebCore::HTMLGenericFormElement::formForEventHandlerScope):
35037        * html/HTMLGenericFormElement.h:
35038        * html/HTMLHRElement.idl:
35039        * html/HTMLHeadElement.idl:
35040        * html/HTMLHeadingElement.idl:
35041        * html/HTMLHtmlElement.idl:
35042        * html/HTMLIFrameElement.idl:
35043        * html/HTMLImageElement.idl:
35044        * html/HTMLIsIndexElement.idl:
35045        * html/HTMLLIElement.idl:
35046        * html/HTMLLabelElement.cpp:
35047        (WebCore::HTMLLabelElement::form):
35048        (WebCore::HTMLLabelElement::formForEventHandlerScope):
35049        * html/HTMLLabelElement.h:
35050        * html/HTMLLabelElement.idl:
35051        * html/HTMLLegendElement.idl:
35052        * html/HTMLLinkElement.idl:
35053        * html/HTMLMapElement.idl:
35054        * html/HTMLMarqueeElement.idl:
35055        * html/HTMLMenuElement.idl:
35056        * html/HTMLMetaElement.idl:
35057        * html/HTMLModElement.idl:
35058        * html/HTMLOListElement.idl:
35059        * html/HTMLObjectElement.cpp:
35060        (WebCore::HTMLObjectElement::formForEventHandlerScope):
35061        * html/HTMLObjectElement.h:
35062        * html/HTMLObjectElement.idl:
35063        * html/HTMLOptGroupElement.idl:
35064        * html/HTMLOptionElement.idl:
35065        * html/HTMLParagraphElement.idl:
35066        * html/HTMLParamElement.idl:
35067        * html/HTMLPreElement.idl:
35068        * html/HTMLQuoteElement.idl:
35069        * html/HTMLScriptElement.idl:
35070        * html/HTMLSelectElement.idl:
35071        * html/HTMLStyleElement.idl:
35072        * html/HTMLTableCaptionElement.idl:
35073        * html/HTMLTableCellElement.idl:
35074        * html/HTMLTableColElement.idl:
35075        * html/HTMLTableElement.idl:
35076        * html/HTMLTableRowElement.idl:
35077        * html/HTMLTableSectionElement.idl:
35078        * html/HTMLTextAreaElement.idl:
35079        * html/HTMLTitleElement.idl:
35080        * html/HTMLUListElement.idl:
35081        * page/DOMWindow.idl:
35082
350832007-05-28  Zack Rusin  <zrusin@trolltech.com>
35084
35085        Reviewed by andersca
35086
35087        Adding Qt related constructor/casting operators
35088        to the AtomicString and updating the project
35089        file for new Qt settings api using those.
35090
35091        * WebCore.pro:
35092        * platform/AtomicString.h:
35093
350942007-05-27  Sam Weinig  <sam@webkit.org>
35095
35096        Qt and Gdk build fix.
35097
35098        * WebCore.pro:
35099
351002007-05-27  Sam Weinig  <sam@webkit.org>
35101
35102        Reviewed by Hyatt.
35103
35104        Patch for http://bugs.webkit.org/show_bug.cgi?id=13893
35105        Autogenerate the JS bindings for the HTMLObjectElement, 
35106        HTMLEmbedElement and HTMLAppletElement
35107
35108        * DerivedSources.make:
35109        * WebCore.xcodeproj/project.pbxproj:
35110        * bindings/js/JSHTMLAppletElementCustom.cpp: Added.
35111        (WebCore::JSHTMLAppletElement::customGetOwnPropertySlot):
35112        (WebCore::JSHTMLAppletElement::customPut):
35113        (WebCore::JSHTMLAppletElement::implementsCall):
35114        (WebCore::JSHTMLAppletElement::callAsFunction):
35115        (WebCore::JSHTMLAppletElement::canGetItemsForName):
35116        (WebCore::JSHTMLAppletElement::nameGetter):
35117        * bindings/js/JSHTMLElementWrapperFactory.cpp:
35118        * bindings/js/JSHTMLEmbedElementCustom.cpp: Added.
35119        (WebCore::JSHTMLEmbedElement::customGetOwnPropertySlot):
35120        (WebCore::JSHTMLEmbedElement::customPut):
35121        (WebCore::JSHTMLEmbedElement::implementsCall):
35122        (WebCore::JSHTMLEmbedElement::callAsFunction):
35123        (WebCore::JSHTMLEmbedElement::canGetItemsForName):
35124        (WebCore::JSHTMLEmbedElement::nameGetter):
35125        * bindings/js/JSHTMLObjectElementCustom.cpp: Added.
35126        (WebCore::JSHTMLObjectElement::customGetOwnPropertySlot):
35127        (WebCore::JSHTMLObjectElement::customPut):
35128        (WebCore::JSHTMLObjectElement::implementsCall):
35129        (WebCore::JSHTMLObjectElement::callAsFunction):
35130        (WebCore::JSHTMLObjectElement::canGetItemsForName):
35131        (WebCore::JSHTMLObjectElement::nameGetter):
35132        * bindings/js/kjs_html.cpp:
35133        (KJS::):
35134        (KJS::JSHTMLElement::toString):
35135        (KJS::JSHTMLElement::pushEventHandlerScope):
35136        (KJS::runtimeObjectGetter):
35137        (KJS::runtimeObjectPropertyGetter):
35138        (KJS::runtimeObjectCustomGetOwnPropertySlot):
35139        (KJS::runtimeObjectCustomPut):
35140        (KJS::runtimeObjectImplementsCall):
35141        (KJS::runtimeObjectCallAsFunction):
35142        * bindings/js/kjs_html.h:
35143        (KJS::JSHTMLElement::classInfo):
35144        * bindings/scripts/CodeGeneratorJS.pm: Add support for 
35145        CustomGetOwnPropertySlot, CustomPutFunction, CustomCall,
35146        and SVGCheckSecurityDocument properties.
35147        * html/HTMLAppletElement.idl:
35148        * html/HTMLEmbedElement.idl:
35149        * html/HTMLObjectElement.idl:
35150        * page/DOMWindow.idl: Uncomment constructors.
35151
351522007-05-27  Sam Weinig  <sam@webkit.org>
35153
35154        Reviewed by Oliver.
35155
35156        Gdk build fix.
35157
35158        * platform/graphics/Path.h:
35159
351602007-05-27  Sam Weinig  <sam@webkit.org>
35161
35162        Gdk build fix.  Forgot to update a few instances of notImplementedGdk() to notImplemented().
35163
35164        * page/gdk/EventHandlerGdk.cpp:
35165        (WebCore::EventHandler::passMousePressEventToScrollbar):
35166        * platform/gdk/EditorClientGdk.cpp:
35167        (WebCore::EditorClientGdk::ignoreWordInSpellDocument):
35168        (WebCore::EditorClientGdk::learnWord):
35169        (WebCore::EditorClientGdk::checkSpellingOfString):
35170        (WebCore::EditorClientGdk::checkGrammarOfString):
35171        (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
35172        (WebCore::EditorClientGdk::updateSpellingUIWithMisspelledWord):
35173        (WebCore::EditorClientGdk::showSpellingUI):
35174        (WebCore::EditorClientGdk::spellingUIIsShowing):
35175        (WebCore::EditorClientGdk::getGuessesForWord):
35176        * platform/gdk/FrameGdk.cpp:
35177        (WebCore::Frame::dashboardRegionsChanged):
35178        * platform/gdk/PlatformScrollBarGdk.cpp:
35179        (PlatformScrollbar::paint):
35180        (PlatformScrollbar::updateThumbPosition):
35181        (PlatformScrollbar::updateThumbProportion):
35182        * platform/gdk/TemporaryLinkStubs.cpp:
35183        (Widget::setEnabled):
35184        (Widget::isEnabled):
35185        (Widget::removeFromParent):
35186        (Widget::paint):
35187        (Widget::setIsSelected):
35188        (Widget::invalidate):
35189        (Widget::invalidateRect):
35190
351912007-05-27  Alp Toker  <alp.toker@collabora.co.uk>
35192
35193        Reviewed by Sam and Oliver.
35194
35195        Implement PathCairo. This patch is based on changes in Mike Emmel's
35196        WebKit fork with some additional clean-ups and updates.
35197
35198        * platform/graphics/Path.h:
35199        * platform/graphics/cairo/CairoPath.h: Added.
35200        (CairoPath::CairoPath):
35201        (CairoPath::~CairoPath):
35202        * platform/graphics/cairo/GraphicsContextCairo.cpp:
35203        (WebCore::GraphicsContext::clip):
35204        * platform/graphics/cairo/PathCairo.cpp:
35205        (WebCore::Path::Path):
35206        (WebCore::Path::~Path):
35207        (WebCore::Path::operator=):
35208        (WebCore::Path::clear):
35209        (WebCore::Path::isEmpty):
35210        (WebCore::Path::translate):
35211        (WebCore::Path::moveTo):
35212        (WebCore::Path::addLineTo):
35213        (WebCore::Path::addRect):
35214        (WebCore::Path::addQuadCurveTo):
35215        (WebCore::Path::addBezierCurveTo):
35216        (WebCore::Path::addArc):
35217        (WebCore::Path::addArcTo):
35218        (WebCore::Path::addEllipse):
35219        (WebCore::Path::closeSubpath):
35220        (WebCore::Path::boundingRect):
35221        (WebCore::Path::contains):
35222        (WebCore::Path::apply):
35223        (WebCore::Path::transform):
35224        (WebCore::Path::debugString):
35225
352262007-05-27  Kevin Ollivier  <kevino@theolliviers.com>
35227
35228        Reviewed by Sam Weinig.
35229
35230        Consolidate all notImplemented() macro definitions into
35231        one header file for all platforms.
35232
35233        * loader/gdk/DocumentLoaderGdk.cpp:
35234        (WebCore::DocumentLoader::getResponseModifiedHeader):
35235        * loader/gdk/FrameLoaderClientGdk.cpp:
35236        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
35237        (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
35238        (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
35239        (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
35240        (WebCore::FrameLoaderClientGdk::createPlugin):
35241        (WebCore::FrameLoaderClientGdk::createFrame):
35242        (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
35243        (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
35244        (WebCore::FrameLoaderClientGdk::objectContentType):
35245        (WebCore::FrameLoaderClientGdk::overrideMediaType):
35246        (WebCore::FrameLoaderClientGdk::windowObjectCleared):
35247        (WebCore::FrameLoaderClientGdk::hasWebView):
35248        (WebCore::FrameLoaderClientGdk::hasFrameView):
35249        (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
35250        (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
35251        (WebCore::FrameLoaderClientGdk::restoreViewState):
35252        (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
35253        (WebCore::FrameLoaderClientGdk::makeDocumentView):
35254        (WebCore::FrameLoaderClientGdk::makeRepresentation):
35255        (WebCore::FrameLoaderClientGdk::forceLayout):
35256        (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
35257        (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
35258        (WebCore::FrameLoaderClientGdk::detachedFromParent1):
35259        (WebCore::FrameLoaderClientGdk::detachedFromParent2):
35260        (WebCore::FrameLoaderClientGdk::detachedFromParent3):
35261        (WebCore::FrameLoaderClientGdk::detachedFromParent4):
35262        (WebCore::FrameLoaderClientGdk::loadedFromCachedPage):
35263        (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
35264        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
35265        (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
35266        (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
35267        (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
35268        (WebCore::FrameLoaderClientGdk::dispatchWillClose):
35269        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
35270        (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
35271        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
35272        (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
35273        (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
35274        (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
35275        (WebCore::FrameLoaderClientGdk::dispatchShow):
35276        (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
35277        (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
35278        (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
35279        (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
35280        (WebCore::FrameLoaderClientGdk::willChangeTitle):
35281        (WebCore::FrameLoaderClientGdk::finishedLoading):
35282        (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
35283        (WebCore::FrameLoaderClientGdk::setDefersLoading):
35284        (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
35285        (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
35286        (WebCore::FrameLoaderClientGdk::clearArchivedResources):
35287        (WebCore::FrameLoaderClientGdk::canHandleRequest):
35288        (WebCore::FrameLoaderClientGdk::canShowMIMEType):
35289        (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
35290        (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
35291        (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
35292        (WebCore::FrameLoaderClientGdk::didFinishLoad):
35293        (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
35294        (WebCore::FrameLoaderClientGdk::setTitle):
35295        (WebCore::FrameLoaderClientGdk::setDocumentViewFromCachedPage):
35296        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
35297        (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
35298        (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
35299        (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
35300        (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
35301        (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
35302        (WebCore::FrameLoaderClientGdk::download):
35303        (WebCore::FrameLoaderClientGdk::cancelledError):
35304        (WebCore::FrameLoaderClientGdk::blockedError):
35305        (WebCore::FrameLoaderClientGdk::cannotShowURLError):
35306        (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
35307        (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
35308        (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
35309        (WebCore::FrameLoaderClientGdk::shouldFallBack):
35310        (WebCore::FrameLoaderClientGdk::willUseArchive):
35311        (WebCore::FrameLoaderClientGdk::saveDocumentViewToCachedPage):
35312        (WebCore::FrameLoaderClientGdk::canCachePage):
35313        (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
35314        (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
35315        (WebCore::FrameLoaderClientGdk::setMainDocumentError):
35316        (WebCore::FrameLoaderClientGdk::startDownload):
35317        (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
35318        (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
35319        * loader/qt/DocumentLoaderQt.cpp:
35320        * page/gdk/ContextMenuClientGdk.cpp:
35321        (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
35322        (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
35323        (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
35324        (WebCore::ContextMenuClientGdk::downloadURL):
35325        (WebCore::ContextMenuClientGdk::copyImageToClipboard):
35326        (WebCore::ContextMenuClientGdk::searchWithGoogle):
35327        (WebCore::ContextMenuClientGdk::lookUpInDictionary):
35328        (WebCore::ContextMenuClientGdk::speak):
35329        (WebCore::ContextMenuClientGdk::stopSpeaking):
35330        * page/gdk/EventHandlerGdk.cpp:
35331        (WebCore::EventHandler::passMouseDownEventToWidget):
35332        (WebCore::EventHandler::eventActivatedView):
35333        (WebCore::EventHandler::passSubframeEventToSubframe):
35334        (WebCore::EventHandler::passWheelEventToWidget):
35335        (WebCore::EventHandler::createDraggingClipboard):
35336        * page/qt/EventHandlerQt.cpp:
35337        * page/qt/FrameQt.cpp:
35338        * platform/NotImplemented.h: Added.
35339        * platform/gdk/CursorGdk.cpp:
35340        (WebCore::Cursor::Cursor):
35341        * platform/gdk/EditorClientGdk.cpp:
35342        (WebCore::EditorClientGdk::shouldDeleteRange):
35343        (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
35344        (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
35345        (WebCore::EditorClientGdk::spellCheckerDocumentTag):
35346        (WebCore::EditorClientGdk::shouldBeginEditing):
35347        (WebCore::EditorClientGdk::shouldEndEditing):
35348        (WebCore::EditorClientGdk::shouldInsertText):
35349        (WebCore::EditorClientGdk::shouldChangeSelectedRange):
35350        (WebCore::EditorClientGdk::shouldApplyStyle):
35351        (WebCore::EditorClientGdk::didBeginEditing):
35352        (WebCore::EditorClientGdk::respondToChangedContents):
35353        (WebCore::EditorClientGdk::respondToChangedSelection):
35354        (WebCore::EditorClientGdk::didEndEditing):
35355        (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
35356        (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
35357        (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
35358        (WebCore::EditorClientGdk::isEditable):
35359        (WebCore::EditorClientGdk::registerCommandForUndo):
35360        (WebCore::EditorClientGdk::registerCommandForRedo):
35361        (WebCore::EditorClientGdk::clearUndoRedoOperations):
35362        (WebCore::EditorClientGdk::canUndo):
35363        (WebCore::EditorClientGdk::canRedo):
35364        (WebCore::EditorClientGdk::undo):
35365        (WebCore::EditorClientGdk::redo):
35366        (WebCore::EditorClientGdk::shouldInsertNode):
35367        (WebCore::EditorClientGdk::pageDestroyed):
35368        (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
35369        (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
35370        (WebCore::EditorClientGdk::handleInputMethodKeypress):
35371        (WebCore::EditorClientGdk::textFieldDidBeginEditing):
35372        (WebCore::EditorClientGdk::textFieldDidEndEditing):
35373        (WebCore::EditorClientGdk::textDidChangeInTextField):
35374        (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
35375        (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
35376        (WebCore::EditorClientGdk::textDidChangeInTextArea):
35377        * platform/gdk/FrameGdk.cpp:
35378        (WebCore::Frame::print):
35379        (WebCore::Frame::issueTransposeCommand):
35380        (WebCore::Frame::cleanupPlatformScriptObjects):
35381        (WebCore::Frame::dragImageForSelection):
35382        * platform/gdk/NotImplementedGdk.h: Removed.
35383        * platform/gdk/PopupMenuGdk.cpp:
35384        (WebCore::PopupMenu::PopupMenu):
35385        (WebCore::PopupMenu::~PopupMenu):
35386        (WebCore::PopupMenu::show):
35387        (WebCore::PopupMenu::hide):
35388        (WebCore::PopupMenu::updateFromElement):
35389        * platform/gdk/RenderThemeGdk.cpp:
35390        (WebCore::RenderThemeGdk::setCheckboxSize):
35391        (WebCore::RenderThemeGdk::setRadioSize):
35392        (WebCore::RenderThemeGdk::adjustTextFieldStyle):
35393        * platform/gdk/ScreenGdk.cpp:
35394        (WebCore::screenDepthPerComponent):
35395        (WebCore::screenIsMonochrome):
35396        (WebCore::screenRect):
35397        (WebCore::screenAvailableRect):
35398        * platform/gdk/ScrollViewGdk.cpp:
35399        (WebCore::ScrollView::update):
35400        (WebCore::ScrollView::addChild):
35401        (WebCore::ScrollView::removeChild):
35402        (WebCore::ScrollView::scrollRectIntoViewRecursively):
35403        (WebCore::ScrollView::inWindow):
35404        (WebCore::ScrollView::wheelEvent):
35405        (WebCore::ScrollView::updateScrollbars):
35406        (WebCore::ScrollView::updateScrollInfo):
35407        (WebCore::ScrollView::windowToContents):
35408        (WebCore::ScrollView::contentsToWindow):
35409        (WebCore::ScrollView::scrollbarUnderMouse):
35410        * platform/gdk/TemporaryLinkStubs.cpp:
35411        (FrameView::updateBorder):
35412        (WebCore::findNextWordFromIndex):
35413        (WebCore::currentTextBreakLocaleID):
35414        (ChromeClientGdk::chromeDestroyed):
35415        (ChromeClientGdk::windowRect):
35416        (ChromeClientGdk::setWindowRect):
35417        (ChromeClientGdk::pageRect):
35418        (ChromeClientGdk::scaleFactor):
35419        (ChromeClientGdk::focus):
35420        (ChromeClientGdk::unfocus):
35421        (ChromeClientGdk::createWindow):
35422        (ChromeClientGdk::createModalDialog):
35423        (ChromeClientGdk::show):
35424        (ChromeClientGdk::canRunModal):
35425        (ChromeClientGdk::runModal):
35426        (ChromeClientGdk::setToolbarsVisible):
35427        (ChromeClientGdk::toolbarsVisible):
35428        (ChromeClientGdk::setStatusbarVisible):
35429        (ChromeClientGdk::statusbarVisible):
35430        (ChromeClientGdk::setScrollbarsVisible):
35431        (ChromeClientGdk::scrollbarsVisible):
35432        (ChromeClientGdk::setMenubarVisible):
35433        (ChromeClientGdk::menubarVisible):
35434        (ChromeClientGdk::setResizable):
35435        (ChromeClientGdk::closeWindowSoon):
35436        (ChromeClientGdk::canTakeFocus):
35437        (ChromeClientGdk::takeFocus):
35438        (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
35439        (ChromeClientGdk::addMessageToConsole):
35440        (ChromeClientGdk::runBeforeUnloadConfirmPanel):
35441        (ChromeClientGdk::runJavaScriptAlert):
35442        (ChromeClientGdk::runJavaScriptConfirm):
35443        (ChromeClientGdk::runJavaScriptPrompt):
35444        (ChromeClientGdk::setStatusbarText):
35445        (ChromeClientGdk::shouldInterruptJavaScript):
35446        (ChromeClientGdk::tabsToLinks):
35447        (ChromeClientGdk::windowResizerRect):
35448        (ChromeClientGdk::addToDirtyRegion):
35449        (ChromeClientGdk::scrollBackingStore):
35450        (ChromeClientGdk::updateBackingStore):
35451        (PlugInInfoStore::createPluginInfoForPluginAtIndex):
35452        (PlugInInfoStore::pluginCount):
35453        (WebCore::PlugInInfoStore::supportsMIMEType):
35454        (WebCore::refreshPlugins):
35455        (SearchPopupMenu::saveRecentSearches):
35456        (SearchPopupMenu::loadRecentSearches):
35457        (SearchPopupMenu::SearchPopupMenu):
35458        (SearchPopupMenu::enabled):
35459        (FileChooser::FileChooser):
35460        (FileChooser::~FileChooser):
35461        (FileChooser::openFileChooser):
35462        (FileChooser::basenameForWidth):
35463        (ResourceHandle::willLoadFromCache):
35464        (ResourceHandle::loadsBlocked):
35465        (ResourceHandle::loadResourceSynchronously):
35466        (Icon::Icon):
35467        (Icon::~Icon):
35468        (Icon::newIconForFile):
35469        (Icon::paint):
35470        (Font::selectionRectForComplexText):
35471        (Font::drawComplexText):
35472        (Font::floatWidthForComplexText):
35473        (Font::offsetForPositionForComplexText):
35474        (CachedPage::close):
35475        (Editor::newGeneralClipboard):
35476        (Pasteboard::generalPasteboard):
35477        (Pasteboard::writeSelection):
35478        (Pasteboard::writeURL):
35479        (Pasteboard::writeImage):
35480        (Pasteboard::clear):
35481        (Pasteboard::canSmartReplace):
35482        (Pasteboard::documentFragment):
35483        (Pasteboard::plainText):
35484        (Pasteboard::Pasteboard):
35485        (Pasteboard::~Pasteboard):
35486        (ContextMenu::ContextMenu):
35487        (ContextMenu::~ContextMenu):
35488        (ContextMenu::appendItem):
35489        (ContextMenuItem::ContextMenuItem):
35490        (ContextMenuItem::~ContextMenuItem):
35491        (ContextMenuItem::releasePlatformDescription):
35492        (ContextMenuItem::type):
35493        (ContextMenuItem::setType):
35494        (ContextMenuItem::action):
35495        (ContextMenuItem::setAction):
35496        (ContextMenuItem::title):
35497        (ContextMenuItem::setTitle):
35498        (ContextMenuItem::platformSubMenu):
35499        (ContextMenuItem::setSubMenu):
35500        (ContextMenuItem::setChecked):
35501        (ContextMenuItem::setEnabled):
35502        (WebCore::supportedKeySizes):
35503        (WebCore::systemBeep):
35504        (WebCore::userIdleTime):
35505        * platform/graphics/cairo/GraphicsContextCairo.cpp:
35506        * platform/graphics/cairo/ImageBufferCairo.cpp:
35507        * platform/graphics/cairo/PathCairo.cpp:
35508        * platform/graphics/gdk/ImageGdk.cpp:
35509        * platform/graphics/qt/GraphicsContextQt.cpp:
35510        * platform/graphics/qt/IconQt.cpp:
35511        * platform/graphics/qt/ImageQt.cpp:
35512        * platform/network/gdk/ResourceHandleCurl.cpp:
35513        (WebCore::ResourceHandle::setDefersLoading):
35514        * platform/network/gdk/ResourceHandleManager.cpp:
35515        (WebCore::ResourceHandleManager::setupPUT):
35516        (WebCore::ResourceHandleManager::setupPOST):
35517        * platform/network/qt/ResourceHandleQt.cpp:
35518        * platform/qt/ClipboardQt.cpp:
35519        * platform/qt/CursorQt.cpp:
35520        * platform/qt/DragDataQt.cpp:
35521        * platform/qt/FileChooserQt.cpp:
35522        * platform/qt/MimeTypeRegistryQt.cpp:
35523        * platform/qt/PasteboardQt.cpp:
35524        * platform/qt/PlatformScrollBarQt.cpp:
35525        * platform/qt/PopupMenuQt.cpp:
35526        * platform/qt/ScrollViewQt.cpp:
35527        * platform/qt/TemporaryLinkStubs.cpp:
35528        * platform/qt/TextBoundaries.cpp:
35529        * platform/qt/WidgetQt.cpp:
35530        * platform/win/FontWin.cpp:
35531        * platform/win/TemporaryLinkStubs.cpp:
35532        * platform/wx/ClipboardWx.cpp:
35533        * platform/wx/FontWx.cpp:
35534        * platform/wx/ScrollViewWx.cpp:
35535        * platform/wx/SharedTimerWx.cpp:
35536        * platform/wx/TemporaryLinkStubs.cpp:
35537
355382007-05-27  Rob Buis  <buis@kde.org>
35539
35540        Reviewed by Oliver.
35541
35542        http://bugs.webkit.org/show_bug.cgi?id=13828
35543        x/y values on rootmost <svg> elements should be ignored
35544
35545        Make sure that root-most <svg> elements do not take into account x/y.
35546
35547        * ksvg2/svg/SVGSVGElement.cpp:
35548        (WebCore::SVGSVGElement::viewport):
35549        (WebCore::SVGSVGElement::getCTM):
35550        (WebCore::SVGSVGElement::getScreenCTM):
35551        * rendering/RenderSVGContainer.cpp:
35552        (WebCore::RenderSVGContainer::calcViewport):
35553
355542007-05-26  David Hyatt  <hyatt@apple.com>
35555
35556        Fix for radar bug 5219562, PNG isn't displayed on SVG test suite.
35557        Improve <object> error handling so that it recovers properly when
35558        <td> is used inside it.
35559
35560        Reviewed by olliej
35561
35562        Added fast/invalid/td-inside-object.html
35563
35564        * html/HTMLObjectElement.h:
35565        (WebCore::HTMLObjectElement::tagPriority):
35566        * html/HTMLParser.cpp:
35567        (WebCore::HTMLParser::handleError):
35568        * html/HTMLParserErrorCodes.cpp:
35569        (WebCore::htmlParserErrorMessageTemplate):
35570        * html/HTMLParserErrorCodes.h:
35571
355722007-05-26  David Hyatt  <hyatt@apple.com>
35573
35574        Don't compare the "isset" variables in background layers, since they
35575        lead us to turn off the Aqua look incorrectly, even when the background
35576        matches the default.
35577
35578        Reviewed by olliej
35579
35580        * rendering/RenderStyle.cpp:
35581        (WebCore::BackgroundLayer::operator==):
35582
355832007-05-26  David Hyatt  <hyatt@apple.com>
35584
35585        Improve the </p> -> <p></p> error message to not spew two errors.
35586        Fix a bug where errors reported inside document.write didn't get
35587        reported as such because of a mistake in the notation of SegmentedString.
35588
35589        Reviewed by aroben
35590
35591        * html/HTMLParser.cpp:
35592        (WebCore::HTMLParser::processCloseTag):
35593        * platform/SegmentedString.h:
35594        (WebCore::SegmentedSubstring::clear):
35595
355962007-05-26  David Hyatt  <hyatt@apple.com>
35597
35598        Fix for bug 13887, percentage height block not sized correctly inside
35599        positioned percentage height containing block.
35600
35601        Reviewed by mitz
35602
35603        fast/block/positioning/complex-percentage-height.html
35604
35605        * rendering/RenderBox.cpp:
35606        (WebCore::RenderBox::calcPercentageHeight):
35607
356082007-05-26  Mitz Pettel  <mitz@webkit.org>
35609
35610        Reviewed by Oliver Hunt.
35611
35612        - finish fixing http://bugs.webkit.org/show_bug.cgi?id=13871
35613          Box shadow should not apply to Aqua-themed controls
35614
35615        Covered by fast/forms/box-shadow-override.html
35616
35617        I forgot to include adjustSliderThumbStyle in the previous patch and the
35618        test didn't detect it because of a bug introduced in r21739.
35619
35620        * rendering/RenderThemeMac.h:
35621        * rendering/RenderThemeMac.mm:
35622        (WebCore::RenderThemeMac::adjustSliderThumbStyle):
35623
356242007-05-26  Mitz Pettel  <mitz@webkit.org>
35625
35626        Reviewed by Hyatt.
35627
35628        - fix http://bugs.webkit.org/show_bug.cgi?id=13876
35629          Box-Shadow disappears if shadow doesn't fit in the window size
35630
35631        Tests: fast/repaint/box-shadow-h.html
35632               fast/repaint/box-shadow-v.html
35633
35634        * rendering/RenderTable.cpp:
35635        (WebCore::RenderTable::layout):
35636
356372007-05-26  Alexey Proskuryakov  <ap@webkit.org>
35638
35639        Reviewed by Darin.
35640
35641        http://bugs.webkit.org/show_bug.cgi?id=13605
35642        REGRESSION: Browser crashes when switching Kotoeri input modes
35643
35644        The problem could no longer be reproduced with Kotoeri thanks to
35645        a fix in <http://trac.webkit.org/projects/webkit/changeset/21728>,
35646        but we still need to protect from invalid ranges passed from
35647        input methods.
35648
35649        Test: editing/input/replace-invalid-range.html
35650
35651        * page/mac/WebCoreFrameBridge.mm:
35652        (-[WebCoreFrameBridge selectNSRange:]): Added a null check.
35653
356542007-05-26  Darin Adler  <darin@apple.com>
35655
35656        * platform/network/mac/ResourceResponseMac.mm:
35657        (WebCore::ResourceResponse::doUpdateResourceResponse):
35658        Alexey pointed out that I was wrong about object lifetime, so
35659        rolling this change out.
35660
356612007-05-26  Darin Adler  <darin@apple.com>
35662
35663        Reviewed by Anders.
35664
35665        * platform/network/mac/ResourceResponseMac.mm:
35666        (WebCore::ResourceResponse::doUpdateResourceResponse):
35667        Fixed code where a temporary String is used after destroyed.
35668
356692007-05-26  Mitz Pettel  <mitz@webkit.org>
35670
35671        Reviewed by Darin.
35672
35673        - http://bugs.webkit.org/show_bug.cgi?id=13842
35674          Simplify Color::light() and Color::dark()
35675
35676        Not testable.
35677
35678        * platform/graphics/Color.cpp:
35679        (WebCore::Color::light):
35680        (WebCore::Color::dark):
35681
356822007-05-26  Mitz Pettel  <mitz@webkit.org>
35683
35684        Reviewed by Darin.
35685
35686        - fix http://bugs.webkit.org/show_bug.cgi?id=13870
35687          RenderFrameSet should only allow frame and frameset children
35688
35689        Covered by fast/frames/inline-object-inside-frameset.html
35690
35691        * rendering/RenderFrame.h:
35692        (WebCore::RenderFrame::isFrame): Added.
35693        * rendering/RenderFrameSet.cpp:
35694        (WebCore::RenderFrameSet::paint): Removed check for inline objects that is
35695        no longer needed.
35696        (WebCore::RenderFrameSet::isChildAllowed): Added. Allows the child only
35697        if it is a frame or another frameset.
35698        * rendering/RenderFrameSet.h:
35699        * rendering/RenderObject.h:
35700        (WebCore::RenderObject::isFrame): Added.
35701
357022007-05-26  Mitz Pettel  <mitz@webkit.org>
35703
35704        Reviewed by Darin.
35705
35706        - http://bugs.webkit.org/show_bug.cgi?id=13871
35707          Box shadow should not apply to Aqua-themed controls
35708
35709        Test: fast/forms/box-shadow-override.html
35710
35711        * rendering/RenderTheme.cpp:
35712        (WebCore::RenderTheme::adjustCheckboxStyle):
35713        (WebCore::RenderTheme::adjustRadioStyle):
35714        * rendering/RenderThemeMac.h:
35715        * rendering/RenderThemeMac.mm:
35716        (WebCore::RenderThemeMac::adjustButtonStyle):
35717        (WebCore::RenderThemeMac::adjustMenuListStyle):
35718        (WebCore::RenderThemeMac::adjustSliderTrackStyle):
35719        (WebCore::RenderThemeMac::adjustSearchFieldStyle):
35720        (WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle):
35721        (WebCore::RenderThemeMac::adjustSearchFieldDecorationStyle):
35722        (WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationStyle):
35723        (WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle):
35724
357252007-05-26  Holger Freyther  <zecke@selfish.org>
35726
35727        Reviewed by Anders.
35728
35729        * platform/gdk/FrameGdk.cpp: Catch up to make it compile
35730        (WebCore::FrameGdk::FrameGdk): The Settings is now owned by the Page
35731
357322007-05-25  Sam Weinig  <sam@webkit.org>
35733
35734        Reviewed by Oliver of the Hunt.
35735
35736        Fixed <rdar://problem/5230247> at least 43 xhtml tests fail in 
35737        Leopard because they are being interpreted as html
35738
35739        Adds a work around for <rdar://problem/5230154> which explicitly
35740        sets local .xhtml files to have the MIME type application/xhtml+xml.
35741
35742        * platform/network/mac/ResourceResponseMac.mm:
35743        (WebCore::ResourceResponse::doUpdateResourceResponse):
35744
357452007-05-25  Geoffrey Garen  <ggaren@apple.com>
35746
35747        Reviewed by Darin Adler.
35748
35749        Fixed <rdar://problem/5055182> The page cache has no global cap.
35750        
35751        Beefed up the PageCache class to track which HistoryItems are 
35752        cached, and decide how to evict old HistoryItems as new ones are
35753        added.
35754
35755        * history/BackForwardList.cpp: Removed support for managing the page cache
35756        through the BackForwardList since this is deprecated in Mac's 
35757        WebBackForwardList, and doesn't exist on other platforms.
35758        
35759        Added a Page* back pointer so that Mac WebBackForwardList can still support 
35760        its deprecated API, using the new hotness. This isn't a big burden, since 
35761        Page is responsible for calling BackForwardList::close upon destruction, 
35762        anyway.
35763
35764        * history/HistoryItem.cpp: Replaced CachedPage* with boolean that tells
35765        you whether you're in the page cache. This prevents us from having more
35766        than one persistent repository for cached pages.
35767
35768        * history/PageCache.cpp: If you're playing along at home, this code is 
35769        the reason for the patch.
35770
35771        * loader/FrameLoader.cpp: If you're playing along at home, the minuses in
35772        this file are the reason for the patch.
35773        
35774        Replaced call to FrameLoaderClient::loadedFromCachedPage with its one-line
35775        implementation because WebCore calling itself through WebKit is uncivilized.
35776
35777        * page/Settings.cpp: Added support for removing a Page's HistoryItems from
35778        the page cache.
35779
357802007-05-25  Mitz Pettel  <mitz@webkit.org>
35781
35782        Reviewed by Darin.
35783
35784        - fix http://bugs.webkit.org/show_bug.cgi?id=13869
35785          Many leaks seen on buildbot after r21735
35786
35787        - fix another regression from r21739: ::-webkit-slider-thumb style not
35788          applied.
35789
35790        Test: fast/forms/slider-thumb-stylability.html
35791
35792        * rendering/RenderSlider.cpp:
35793        (WebCore::RenderSlider::setStyle):
35794        (WebCore::RenderSlider::createThumbStyle):
35795
357962007-05-25  Justin Garcia  <justin.garcia@apple.com>
35797
35798        Reviewed by Harrison.
35799
35800        <rdar://problem/5228141> 
35801        REGRESSION: Can't apply style to selection that ends after an image
35802
35803        * editing/ApplyStyleCommand.cpp:
35804        (WebCore::ApplyStyleCommand::applyInlineStyle):
35805        Use range compliant equivalents when creating the Range
35806        used to compute pastEndNode(), otherwise Range's constructor
35807        ASSERTs and pastEndNode() returns null. Added a testcase.
35808        If the incoming Range is collapsed at [br, 0], callers want
35809        the style to be applied to the br, so expand the Range to include
35810        it.  We got away without expanding before because pastEndNode
35811        of a Range from [br, 0] to [br, 0] is the node after the br.
35812        Using range compliant equivalents changed that. There's already
35813        test coverage for this change.
35814        Changed while loop termination for finding the end of a run 
35815        so that we don't process pastEnd.  end.node() may now be 
35816        non-atomic and we'd blow past it. There's already test
35817        coverage for this change.
35818
358192007-05-25  Beth Dakin  <bdakin@apple.com>
35820
35821        Rubber stamped by Hyatt
35822
35823        Adding an ASSERT for good measure.
35824
35825        * page/FrameView.cpp:
35826        (WebCore::FrameView::layout):
35827
358282007-05-25  Kevin McCullough  <kmccullough@apple.com>
35829 
35830        Reviewed by Geoff.
35831
35832        - <rdar://problem/5183523> REGRESSION: Excel: Worksheet tabs in spreadsheet saved as web page don't work 
35833        - Change load to check the URL as well as the referrer since it is possilbe to have a referrer which limits a load even thought the URL would allow it.  There is a bug about how we need to re-evaluate the whole load architecture: <rdar://problem/5227992> Rethink canLoad() to have a consistent and comprehensive architecture.
35834
35835        * loader/FrameLoader.cpp:
35836        (WebCore::FrameLoader::loadSubframe):
35837        (WebCore::FrameLoader::load):
35838        (WebCore::FrameLoader::canLoad):
35839        * loader/FrameLoader.h:
35840
358412007-05-25  Anders Carlsson  <andersca@apple.com>
35842
35843        Reviewed by Brady.
35844
35845        <rdar://problem/5209536>
35846        http://bugs.webkit.org/show_bug.cgi?id=13757
35847        REGRESSION: Leaks seen on buildbot after r21497.
35848        
35849        Fix multipart data loading so it works like Tiger Safari. When one part of a multipart connection has been loaded,
35850        move the subresource loader from the subresource loaders set and into a special multipart subresource loader set. This set 
35851        is not considered when asking a document loader if it's currently loading. 
35852                
35853        * loader/DocumentLoader.cpp:
35854        (WebCore::DocumentLoader::stopLoading):
35855        Always stop the multipart subresource loaders here.
35856        
35857        (WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):
35858        New function that moves the loader from m_subresourceLoaders to m_multipartSubresourceLoaders and updates the document loader's state.
35859        
35860        * loader/ProgressTracker.cpp:
35861        (WebCore::ProgressTracker::incrementProgress):
35862        If a progress item already exists, reuse it. This can happen in some rare circumstances when dealing with multipart data.
35863        
35864        * loader/SubresourceLoader.cpp:
35865        (WebCore::SubresourceLoader::didReceiveResponse):
35866        Call subresourceLoaderFinishedLoadingOnePart if the response is multipart.
35867
358682007-05-25  Patti Hoa  <patti@apple.com>
35869
35870        Reviewed by Tim Hatcher.
35871
35872        <rdar://problem/4918397> Exception raise inspecting note contents in the background
35873        
35874        * bridge/mac/WebCoreAXObject.mm:
35875        (-[WebCoreAXObject accessibilityDescription]):
35876        Only allow asking the attachmentView for description if attachmentView supports this description attribute
35877
358782007-05-25  Beth Dakin  <bdakin@apple.com>
35879
35880        Reviewed by Oliver and Hyatt.
35881
35882        Fix for <rdar://problem/5228363> REGRESSION: In Mail, attempting to 
35883        create a To Do results in a crash
35884
35885        This regressed with r21635. Now that -boundingBox updates layout if 
35886        it is needed, we infinitely recurse when Mail draws a custom 
35887        highlight. The fix is to put a guard around laying out the render 
35888        tree.
35889
35890        * page/FrameView.cpp:
35891        (WebCore::FrameViewPrivate::reset):
35892        (WebCore::FrameView::layout):
35893
358942007-05-25  Patti Hoa <patti@apple.com>
35895
35896        Reviewed by John Sullivan.
35897        
35898        <rdar://problem/5221986> selection in web areas doesn't seem to be working for text navigation
35899        
35900        * bridge/mac/WebCoreAXObject.mm:
35901        (-[WebCoreAXObject accessibilityIsAttributeSettable:]):
35902        Fixed up incorrect string comparison for AXSelectedTextMarkerRange ax attribute so 
35903        this attribute can actually announce its settability. 
35904
359052007-05-25  Darin Adler  <darin@apple.com>
35906
35907        Reviewed by Alice.
35908
35909        - fix <rdar://problem/5228048> REGRESSION: In a new Mail message, the caret isn't
35910          immediately inserted when tabbing into or clicking in the message body
35911
35912        This latent problem was uncovered by <http://trac.webkit.org/projects/webkit/changeset/21476>,
35913        which removed some code that did extra work whenever setCaretVisible made the caret visible.
35914
35915        * page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Call invalidateCaretRect
35916        when turning the caret on. All other call sites that touched m_caretPaint were doing
35917        this, but this was not.
35918
359192007-05-25  Darin Adler  <darin@apple.com>
35920
35921        Reviewed by Harrison.
35922
35923        * DerivedSources.make: Tweaked spelling.
35924
359252007-05-25  Mitz Pettel  <mitz@webkit.org>
35926
35927        Reviewed by Darin.
35928
35929        - fix http://bugs.webkit.org/show_bug.cgi?id=13872
35930          REGRESSION: An empty search field can have a cancel button
35931
35932        Test: fast/forms/search-cancel-button-style-sharing.html
35933
35934        * rendering/RenderTextControl.cpp:
35935        (WebCore::RenderTextControl::createCancelButtonStyle): Prevented sharing of
35936        the cancel button style between search fields that share style, because
35937        each search field mutates the style to show and hide the cancel button.
35938
359392007-05-25  David Harrison  <harrison@apple.com>
35940
35941        Reviewed by Kevin and Geoff.
35942
35943        * DerivedSources.make:
35944        Add an inclusion guard for CSSGrammar.h and XPathGrammar.h, because older versions of bison do not
35945        
35946        * css/maketokenizer:
35947        Unconditionally define the flex basic types that are not part of newer versions of flex. Was
35948        only needed on Linux. Now needed on Mac OS 10.5, and is OK to do on 10.4.9.
35949
359502007-05-25  Geoffrey Garen  <ggaren@apple.com>
35951
35952        Reviewed by Darin Adler.
35953        
35954        Moved JavaScriptCore-related pending public API to public API.
35955
35956        Moved -JSObject
35957
35958        * bindings/objc/WebScriptObjectPendingPublic.h: from here
35959        * bindings/objc/WebScriptObject.h: to here
35960        * bindings/objc/WebScriptObject.mm: and out of its temporary category
35961
359622007-05-25  Mitz Pettel  <mitz@webkit.org>
35963
35964        Reviewed by Darin.
35965
35966        - fix http://bugs.webkit.org/show_bug.cgi?id=13767
35967          REGRESSION: Multipart image documents are garbled
35968
35969        Test: http/tests/multipart/invalid-image-data-standalone.html
35970
35971        * loader/DocumentLoader.cpp:
35972        (WebCore::DocumentLoader::isLoadingMultipartContent): Added.
35973        * loader/DocumentLoader.h:
35974        * loader/ImageDocument.cpp:
35975        (WebCore::ImageTokenizer::finish): If the image is multipart, make a copy
35976        of the current part instead of using the resource data, which is going to be
35977        overwritten by the next part.
35978        * loader/MainResourceLoader.h:
35979        (WebCore::MainResourceLoader::isLoadingMultipartContent): Added.
35980
359812007-05-25  Anders Carlsson  <andersca@apple.com>
35982
35983        Fix no-svg build.
35984        
35985        * bindings/js/kjs_html.cpp:
35986        (KJS::HTMLElementFunction::callAsFunction):
35987
359882007-05-25  Anders Carlsson  <andersca@apple.com>
35989
35990        Reviewed by Mitz.
35991
35992        <rdar://problem/5226788> After resizing the window larger than the image, hovering over the image still shows magnify glass
35993        
35994        One part of the bug was already fixed by my previous commit. This fixes the case where the window is sized so the image fit
35995        after it has been zoomed in.
35996        
35997        * loader/ImageDocument.cpp:
35998        (WebCore::ImageDocument::windowSizeChanged):
35999
360002007-05-25  John Sullivan  <sullivan@apple.com>
36001
36002        Reviewed by Anders and Tim
36003
36004        - WebCore change for: 
36005          <rdar://problem/5226000> REGRESSION: In Gmail and Mail, a hang occurs when attempting to grammar/spellcheck a word in a reply 
36006
36007        * editing/Editor.cpp:
36008        (WebCore::findFirstBadGrammarInRange):
36009        Use the more obvious way to check whether a range is empty. In this case the more obvious way
36010        would also have caused no problem to occur. Also added an assertion. Though this change is
36011        enough to fix the symptom of the bug, the real fix is in WebKit.
36012
360132007-05-25  Anders Carlsson  <andersca@apple.com>
36014
36015        Reviewed by Darin (Sorta).
36016
36017        * loader/ImageDocument.cpp:
36018        (WebCore::ImageDocument::restoreImageSize):
36019        Use removeProperty here.
36020
360212007-05-25  Geoffrey Garen  <ggaren@apple.com>
36022
36023        Reviewed by Darin Adler.
36024
36025        Some cleanup to Cache while Fixing <rdar://problem/5055182> The page cache 
36026        has no global cap.
36027        
36028        * loader/Cache.cpp: Removed destructor to help identify this class as a
36029        singleton.
36030
36031        * loader/Cache.h: Made constructor and destructor private to match the
36032        singleton model of PageCache.
36033        
36034        Put structs related to Cache inside its declaration to fix some namespace
36035        conflicts I had while writing my patch. (They don't exist anymore, but
36036        I figured this might help future development.)
36037
360382007-05-24  Geoffrey Garen  <ggaren@apple.com>
36039
36040        Reviewed by Darin Adler.
36041
36042        Fixed a bug with Settings where a number of different objects held bare 
36043        Settings* data members, even though the Page owns the Settings object and 
36044        deletes it upon destruction.
36045
36046        Added NULL checks since the Page can be deleted before the frame/document.
36047
36048        * page/Settings.cpp: Removed reliance on setNeedsReapplyStylesForSettingsChange.
36049
36050        * css/cssstyleselector.cpp: CSSStyleSelector was the worst offender. It 
36051        held a number of back pointers that were not guaranteed. I removed the 
36052        Settings*, Frame*, and FrameView* back pointers, but others could probably 
36053        go, too. I replaced them with a single Document* pointer, which is guaranteed
36054        because the Document owns the CSSStyleSelector.
36055
36056        * page/Page.cpp: Removed setNeedsReapplyStylesForSettingsChange -- the 
36057        Settings object is now a proper subcontroller of Page, so it doesn't need
36058        to use a global table to find its page anymore. Also, this function
36059        confusingly implied that the Frames in a page can have heterogeneous settings,
36060        which is not true.
36061
360622007-05-25  David Hyatt  <hyatt@apple.com>
36063
36064        Make sure -webkit-border-fit accounts for padding as well as border.
36065
36066        Reviewed by aroben
36067
36068        * rendering/RenderBlock.cpp:
36069        (WebCore::RenderBlock::borderFitAdjust):
36070
360712007-05-25  David Hyatt  <hyatt@apple.com>
36072
36073        Rework line numbering (again).  This time I finally think I have
36074        it right for all the document.write insanity that can occur.
36075
36076        Reviewed by aroben
36077
36078        * html/HTMLParser.cpp:
36079        (WebCore::HTMLParser::reportErrorToConsole):
36080        * html/HTMLParserErrorCodes.cpp:
36081        (WebCore::htmlParserDocumentWriteMessage):
36082        * html/HTMLParserErrorCodes.h:
36083        * html/HTMLTokenizer.cpp:
36084        (WebCore::HTMLTokenizer::write):
36085        * html/HTMLTokenizer.h:
36086        (WebCore::HTMLTokenizer::lineNumberPtr):
36087        (WebCore::HTMLTokenizer::processingContentWrittenByScript):
36088        * platform/SegementedSring.cpp
36089        (WebCore::SegmentedString::setExcludeLineNumbers):
36090        * platform/SegmentedString.h:
36091        (WebCore::SegmentedSubstring::SegmentedSubstring):
36092        (WebCore::SegmentedSubstring::clear):
36093        (WebCore::SegmentedSubstring::excludeLineNumbers):
36094        (WebCore::SegmentedSubstring::setExcludeLineNumbers):
36095        (WebCore::SegmentedString::excludeLineNumbers):
36096        (WebCore::SegmentedString::advance):
36097
360982007-05-24  Geoffrey Garen  <ggaren@apple.com>
36099
36100        Reviewed by Adam Roben.
36101
36102        Added a debug-only CachedPage counter. This helped me track down an SVG 
36103        timer bug in my recent page cache work.
36104                
36105        * history/CachedPage.cpp:
36106
361072007-05-24  David Hyatt  <hyatt@apple.com>
36108
36109        Improve <form> error reporting to catch <form>s inside table parts.
36110        Tweak the wording of some of the error messages to be a bit better.
36111
36112        Reviewed by olliej
36113
36114        * html/HTMLParser.cpp:
36115        (WebCore::HTMLParser::insertNode):
36116        (WebCore::HTMLParser::processCloseTag):
36117        (WebCore::HTMLParser::popBlock):
36118        * html/HTMLParserErrorCodes.cpp:
36119        (WebCore::htmlParserErrorMessageTemplate):
36120        * html/HTMLParserErrorCodes.h:
36121
361222007-05-24  Rob Buis  <buis@kde.org>
36123
36124        Reviewed by Hyatt.
36125
36126        http://bugs.webkit.org/show_bug.cgi?id=4104
36127        first-letter not updating style with hover
36128        http://bugs.webkit.org/show_bug.cgi?id=13169
36129        css-formatted first letter won't hide dynamically
36130
36131        Update first letter when RenderBlock::setStyle is called. 
36132
36133        * css/cssstyleselector.cpp:
36134        (WebCore::CSSStyleSelector::checkOneSelector):
36135        * dom/Document.cpp:
36136        (WebCore::Document::Document):
36137        (WebCore::Document::createElement):
36138        * dom/Document.h:
36139        (WebCore::Document::usesFirstLetterRules):
36140        (WebCore::Document::setUsesFirstLetterRules):
36141        * rendering/RenderBlock.cpp:
36142        (WebCore::RenderBlock::setStyle):
36143        (WebCore::RenderBlock::updateFirstLetter):
36144
361452007-05-24  Mitz Pettel  <mitz@webkit.org>
36146
36147        Reviewed by Darin.
36148
36149        - fix http://bugs.webkit.org/show_bug.cgi?id=13800
36150          REGRESSION: Moving a slider moves another unrelated slider
36151
36152        Test: fast/forms/slider-thumb-shared-style.html
36153
36154        RenderSlider mutates the thumb's style, therefore it must not be shared
36155        with another slider's thumb, a situation that could occur if the sliders
36156        themselves shared style.
36157
36158        * rendering/RenderSlider.cpp:
36159        (WebCore::RenderSlider::createThumbStyle): Always use a private copy for
36160        the thumb style.
36161
361622007-05-24  Adele Peterson  <adele@apple.com>
36163
36164        Reviewed by Darin.
36165
36166        Fix for <rdar://problem/5211921> Form values sometimes get transposed (iGoogle)
36167
36168        Test: fast/history/redirect-load-no-form-restoration.html
36169
36170        * history/HistoryItem.cpp:
36171        (WebCore::HistoryItem::setURL): Clear the document state when the url changes for a HistoryItem.
36172        (WebCore::HistoryItem::isCurrentDocument): Added. Compares the HistoryItem url to the document's url.  This might not be the best way to do this, but it works for now.
36173        * history/HistoryItem.h:
36174        * loader/FrameLoader.cpp: (WebCore::FrameLoader::saveDocumentState): Only set the document (and form) state if the document is current for the history item.
36175
361762007-05-24  Mitz Pettel  <mitz@webkit.org>
36177
36178        Reviewed by Adele.
36179
36180        - fix http://bugs.webkit.org/show_bug.cgi?id=13857
36181          REGRESSION: onChange function applied to select element executes twice when focus is set
36182
36183        Test: fast/forms/select-double-onchange.html
36184
36185        * html/HTMLSelectElement.cpp:
36186        (WebCore::HTMLSelectElement::menuListOnChange): Changed to update m_lastOnChangeIndex
36187        before dispatching the change event to avoid reentrancy.
36188
361892007-05-24  Darin Adler  <darin@apple.com>
36190
36191        Reviewed by Hyatt.
36192
36193        - fix <rdar://problem/5226451> REGRESSION (21618): Mail block quotes
36194          are missing the lines on the side
36195
36196        This patch fixes three problems:
36197
36198        1) makes the "skip canLoad check" boolean also skip the check
36199           that prevents any loads while the document is in provisional
36200           state; this is the proximate cause of the bug
36201
36202        * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create):
36203        Don't check the frame's state if skipCanLoadCheck is true.
36204
36205        2) moves the "skip canLoad check" boolean to the Request object;
36206           the old implementation would cause that flag to affect the
36207           new request we served, which might not be the resource with
36208           that flag set
36209
36210        3) fixes error-handling code path that would leak requests
36211
36212        * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement):
36213        Pass false to the CachedImage constructor to indicate we are not making
36214        this object for the cache.
36215
36216        * loader/Cache.cpp:
36217        (WebCore::createResource): Pass true to the CachedImage constructor to
36218        indicate we are making this object for the cache.
36219        (WebCore::Cache::requestResource): Add new code that assumes the object
36220        will already have the inCache bit set, and that will delete the object
36221        and return 0 if the cache is disabled and the load failed.
36222
36223        * loader/CachedImage.h:
36224        * loader/CachedImage.cpp: (WebCore::CachedImage::CachedImage):
36225        Added a forCache boolean parameter. Always false for the constructor
36226        that's only used outside the cache code, and passed in as a boolean
36227        for the constructor that's used both in cache and outside cache.
36228
36229        * loader/CachedResource.h:
36230        * loader/CachedResource.cpp:
36231        (WebCore::CachedResource::CachedResource): Added a forCache boolean
36232        parameter that determines the initial state of the m_inCache flag.
36233        This is needed to prevent a resource from being destroyed if an
36234        error occurs during the initial load.
36235
36236        * loader/DocLoader.cpp:
36237        (WebCore::DocLoader::requestCSSStyleSheet): Added FIXME.
36238        (WebCore::DocLoader::setLoadInProgress): Added null check.
36239
36240        * loader/Request.h:
36241        * loader/Request.cpp: (WebCore::Request::Request):
36242        Added a shouldSkipCanLoadCheck boolean here, since we need to track
36243        this for each request.
36244
36245        * loader/loader.h:
36246        * loader/loader.cpp:
36247        (WebCore::Loader::load): Pass the skipCanLoadCheck boolean to the
36248        Request constructor rather than to the servePendingRequests function.
36249        (WebCore::Loader::servePendingRequests): Add a loop so we can handle
36250        cases where the request fails immediately without leaking the request
36251        and thinking that we're loading forever.
36252
362532007-05-24  David Hyatt  <hyatt@apple.com>
36254
36255        Add error reporting for residual style.
36256
36257        Reviewed by aroben
36258
36259        * html/HTMLParser.cpp:
36260        (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
36261        (WebCore::HTMLParser::reopenResidualStyleTags):
36262        * html/HTMLParserErrorCodes.cpp:
36263        (WebCore::htmlParserErrorMessageTemplate):
36264        * html/HTMLParserErrorCodes.h:
36265
362662007-05-24  David Hyatt  <hyatt@apple.com>
36267
36268        Report <script/> as a warning instead of an error for now, since we
36269        actually do close it.  (Sigh.)
36270
36271        Reviewed by beth
36272
36273        * html/HTMLParser.cpp:
36274        (WebCore::HTMLParser::parseToken):
36275        (WebCore::HTMLParser::reportErrorToConsole):
36276        * html/HTMLParserErrorCodes.cpp:
36277        (WebCore::htmlParserErrorMessageTemplate):
36278        (WebCore::isWarning):
36279        * html/HTMLParserErrorCodes.h:
36280
362812007-05-24  David Hyatt  <hyatt@apple.com>
36282
36283        Add error reporting for the </p> -> <p></p> quirk.
36284
36285        Add error reporting when a stray close tag is encountered with no
36286        corresponding open tag.
36287
36288        Reviewed by adele
36289
36290        * html/HTMLParser.cpp:
36291        (WebCore::HTMLParser::HTMLParser):
36292        (WebCore::HTMLParser::processCloseTag):
36293        (WebCore::HTMLParser::popBlock):
36294        * html/HTMLParser.h:
36295        (WebCore::HTMLParser::popBlock):
36296        * html/HTMLParserErrorCodes.cpp:
36297        (WebCore::htmlParserErrorMessageTemplate):
36298        * html/HTMLParserErrorCodes.h:
36299
363002007-05-24  Kevin McCullough  <kmccullough@apple.com>
36301
36302        Reviewed by.
36303
36304        - Rolling back change to fix the build until I have a good fix for data: urls.
36305
36306        * ChangeLog:
36307        * loader/FrameLoader.cpp:
36308        (WebCore::FrameLoader::load):
36309        (WebCore::FrameLoader::open):
36310        * platform/String.cpp:
36311
363122007-05-24  David Hyatt  <hyatt@apple.com>
36313
36314        Add two more error messages to the HTMLParser.
36315
36316        Report when the </br> -> <br> quirk is triggered.
36317
36318        Also report whenever the broken XML self-closing tag syntax is used on
36319        tags that can actually have an end tag (either optional or required).
36320
36321        Reviewed by aroben
36322
36323        * html/HTMLParser.cpp:
36324        (WebCore::HTMLParser::parseToken):
36325        * html/HTMLParserErrorCodes.cpp:
36326        (WebCore::htmlParserErrorMessageTemplate):
36327        * html/HTMLParserErrorCodes.h:
36328        (WebCore::):
36329        * html/HTMLTokenizer.cpp:
36330        (WebCore::HTMLTokenizer::parseTag):
36331        * html/HTMLTokenizer.h:
36332        (WebCore::Token::reset):
36333
363342007-05-24  Sam Weinig  <sam@webkit.org>
36335
36336        Reviewed by Anders.
36337
36338        Rename JSHTMLFrameSetCustom.cpp to JSHTMLFrameSetElementCustom.cpp
36339        for consistency.
36340
36341        * WebCore.xcodeproj/project.pbxproj:
36342        * bindings/js/JSHTMLFrameSetCustom.cpp: Removed.
36343        * bindings/js/JSHTMLFrameSetElementCustom.cpp: Added.
36344
363452007-05-24  David Hyatt  <hyatt@apple.com>
36346
36347        Fix for <rdar://problem/5208440> (13753)
36348
36349        REGRESSION: Raw text needs to be pulled outside of tables
36350
36351        Reviewed by aroben
36352
36353        * html/HTMLParser.cpp:
36354        (WebCore::HTMLParser::handleError):
36355        * html/HTMLTableColElement.cpp:
36356        (WebCore::HTMLTableColElement::checkDTD):
36357        * html/HTMLTableElement.cpp:
36358        (WebCore::HTMLTableElement::checkDTD):
36359        * html/HTMLTableRowElement.cpp:
36360        (WebCore::HTMLTableRowElement::checkDTD):
36361        * html/HTMLTableSectionElement.cpp:
36362        (WebCore::HTMLTableSectionElement::checkDTD):
36363
363642007-05-24  Mitz Pettel  <mitz@webkit.org>
36365
36366        Reviewed by Darin.
36367
36368        - fix http://bugs.webkit.org/show_bug.cgi?id=13837
36369          Separator in new <select> widget disappears when block element with border is in document.
36370
36371        Test: fast/forms/menulist-separator-painting.html
36372
36373        * platform/graphics/cg/GraphicsContextCG.cpp:
36374        (WebCore::GraphicsContext::drawConvexPolygon): Changed this function to
36375        actually do both filling and stroking when needed, even though all existing
36376        callers set the stroke to none.
36377        * rendering/RenderThemeMac.mm:
36378        (WebCore::RenderThemeMac::paintMenuListButton): Added calls to set the stroke
36379        style and thickness when painting the arrows and the separator.
36380
363812007-05-24  Timothy Hatcher  <timothy@apple.com>
36382
36383        Reviewed by Sam Weinig.
36384
36385        Remove the OBJC_NEW_PROPERTIES #ifdef and only export the new @property syntax.
36386
36387        * bindings/objc/DOMObject.h:
36388        * bindings/scripts/CodeGeneratorObjC.pm:
36389
363902007-05-24  Sam Weinig  <sam@webkit.org>
36391
36392        Reviewed by Anders.
36393
36394        Uncomment HTMLFramesSetElement constructor now that it exists.
36395
36396        * page/DOMWindow.idl:
36397
363982007-05-24  Anders Carlsson  <andersca@apple.com>
36399
36400        Try fixing the buildbot build.
36401        
36402        * loader/ImageDocument.cpp:
36403        (WebCore::ImageDocument::resizeImageToFit):
36404        (WebCore::ImageDocument::imageClicked):
36405
364062007-05-24  Sam Weinig  <sam@webkit.org>
36407
36408        Reviewed by Darin.
36409
36410        Patch for http://bugs.webkit.org/show_bug.cgi?id=13853
36411        Autogenerate the JS bindings for the HTMLFrameSetElement
36412
36413        * DerivedSources.make:
36414        * WebCore.pro:
36415        * WebCore.xcodeproj/project.pbxproj:
36416        * bindings/js/JSHTMLElementWrapperFactory.cpp:
36417        * bindings/js/JSHTMLFrameSetCustom.cpp: Added.
36418        (WebCore::JSHTMLFrameSetElement::canGetItemsForName):
36419        (WebCore::JSHTMLFrameSetElement::nameGetter):
36420        * bindings/js/kjs_html.cpp:
36421        (KJS::):
36422        (KJS::JSHTMLElement::classInfo):
36423        (KJS::JSHTMLElement::accessors):
36424        (KJS::JSHTMLElement::getOwnPropertySlot):
36425        * bindings/js/kjs_html.h:
36426        (KJS::JSHTMLElement::):
36427        * html/HTMLFrameSetElement.idl:
36428
364292007-05-24  Zack Rusin  <zrusin@trolltech.com>
36430
36431        Reviewed by andersca
36432
36433        Fixing check for incorrent font size - it should
36434        check fixed not normal.
36435
36436        * page/Settings.cpp:
36437        (WebCore::Settings::setDefaultFixedFontSize):
36438
364392007-05-24  Mitz Pettel  <mitz@webkit.org>
36440
36441        Speculative buildbot build fix.
36442
36443        * css/cssstyleselector.cpp:
36444        (WebCore::CSSStyleSelector::applyProperty):
36445
364462007-05-24  Adam Roben  <aroben@apple.com>
36447
36448        Made Chrome::addMessageToConsole more flexible
36449
36450        addMessageToConsole now takes two additional parameters to specify the
36451        message source (HTML, JS, CSS, XML) and level (error, warning, log). To
36452        maintain our old behavior, all current messages were given
36453        JSMessageSource and ErrorMessageLevel parameters. Messages matching
36454        these characteristics are passed up to the ChromeClient.
36455
36456        Reviewed by Hyatt.
36457
36458        * bindings/js/JSCustomXPathNSResolver.cpp:
36459        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
36460        * bindings/js/kjs_events.cpp:
36461        (KJS::JSAbstractEventListener::handleEvent):
36462        * bindings/js/kjs_proxy.cpp:
36463        (WebCore::KJSProxy::evaluate):
36464        * bindings/js/kjs_window.cpp:
36465        (KJS::Window::isSafeScript):
36466        (KJS::ScheduledAction::execute):
36467        * html/HTMLParser.cpp:
36468        (WebCore::HTMLParser::reportErrorToConsole):
36469        * ksvg2/misc/SVGDocumentExtensions.cpp:
36470        (WebCore::SVGDocumentExtensions::reportWarning):
36471        (WebCore::SVGDocumentExtensions::reportError):
36472        * loader/FrameLoader.cpp:
36473        (WebCore::FrameLoader::reportLocalLoadFailed):
36474        * page/Chrome.cpp:
36475        (WebCore::Chrome::addMessageToConsole):
36476        * page/Chrome.h:
36477        (WebCore::):
36478        * xml/xmlhttprequest.cpp:
36479        (WebCore::XMLHttpRequest::setRequestHeader):
36480
364812007-05-24  David Hyatt  <hyatt@apple.com>
36482
36483        Rework how HTML handles line numbering so that it is not fooled by
36484        \r without a following \n and so that document.write doesn't lead
36485        to line numbering confusion.
36486
36487        Reviewed by aroben
36488
36489        * html/HTMLParser.cpp:
36490        (WebCore::HTMLParser::reportErrorToConsole):
36491        * html/HTMLTokenizer.cpp:
36492        (WebCore::HTMLTokenizer::processListing):
36493        (WebCore::HTMLTokenizer::parseSpecial):
36494        (WebCore::HTMLTokenizer::parseComment):
36495        (WebCore::HTMLTokenizer::parseServer):
36496        (WebCore::HTMLTokenizer::parseProcessingInstruction):
36497        (WebCore::HTMLTokenizer::parseText):
36498        (WebCore::HTMLTokenizer::parseEntity):
36499        (WebCore::HTMLTokenizer::parseTag):
36500        (WebCore::HTMLTokenizer::write):
36501        (WebCore::HTMLTokenizer::processToken):
36502        (WebCore::HTMLTokenizer::setSrc):
36503        * html/HTMLTokenizer.h:
36504        (WebCore::HTMLTokenizer::lineNumberPtr):
36505        * html/HTMLViewSourceDocument.cpp:
36506        (WebCore::HTMLViewSourceDocument::addLine):
36507        * loader/TextDocument.cpp:
36508        (WebCore::TextTokenizer::write):
36509        * platform/SegmentedString.cpp:
36510        (WebCore::SegmentedString::SegmentedString):
36511        (WebCore::SegmentedString::operator=):
36512        (WebCore::SegmentedString::clear):
36513        * platform/SegmentedString.h:
36514        (WebCore::SegmentedString::SegmentedString):
36515        (WebCore::SegmentedString::advance):
36516        (WebCore::SegmentedString::escaped):
36517
365182007-05-23  David Hyatt  <hyatt@apple.com>
36519
36520        Make the delete/InsertRows/Cells methods as well as the rowIndex method
36521        able to work properly even when whitespace or comment nodes are present.
36522
36523        Reviewed by aroben
36524
36525        fast/table/rowindex-comment-nodes.html
36526
36527        * html/HTMLTableRowElement.cpp:
36528        (WebCore::HTMLTableRowElement::rowIndex):
36529        (WebCore::HTMLTableRowElement::insertCell):
36530        (WebCore::HTMLTableRowElement::deleteCell):
36531        * html/HTMLTableSectionElement.cpp:
36532        (WebCore::HTMLTableSectionElement::insertRow):
36533        (WebCore::HTMLTableSectionElement::deleteRow):
36534
365352007-05-23  David Hyatt  <hyatt@apple.com>
36536
36537        <optgroup> should allow <script> and text nodes inside it, just like
36538        <select> does.
36539
36540        Reviewed by aroben
36541
36542        fast/forms/stuff-on-my-optgroup.html
36543
36544        * html/HTMLOptGroupElement.cpp:
36545        (WebCore::HTMLOptGroupElement::checkDTD):
36546        * html/HTMLSelectElement.cpp:
36547        (WebCore::HTMLSelectElement::checkDTD):
36548
365492007-05-23  David Hyatt  <hyatt@apple.com>
36550
36551        Framesets should allow whitespace text nodes as children.
36552
36553        Reviewed by aroben
36554
36555        * html/HTMLFrameSetElement.cpp:
36556        (WebCore::HTMLFrameSetElement::checkDTD):
36557
365582007-05-24  Mark Rowe  <mrowe@apple.com>
36559
36560        Fix the Qt build after r21685.
36561
36562        * platform/qt/CursorQt.cpp:
36563        (WebCore::notAllowedCursor):
36564        (WebCore::zoomInCursor):
36565        (WebCore::zoomOutCursor):
36566
365672007-05-23  Alp Toker  <alp.toker@collabora.co.uk>
36568
36569        Reviewed by Adam.
36570
36571        Fix the gdk build following changes in r21685.
36572
36573        * platform/gdk/CursorGdk.cpp:
36574        (WebCore::zoomInCursor):
36575        (WebCore::zoomOutCursor):
36576
365772007-05-23  David Hyatt  <hyatt@apple.com>
36578
36579        Fix for <rdar://problem/5222611> REGRESSION: Paint ordering problems at
36580        http://buymeasoda.com/dev/issues/image_onload/image_onload.html
36581
36582        Clamp z-index so that values that exceed maxint (or that are below minint)
36583        are clamped to those values.
36584
36585        Reviewed by darin
36586
36587        * css/cssstyleselector.cpp:
36588        (WebCore::CSSStyleSelector::applyProperty):
36589
365902007-05-23  Mitz Pettel  <mitz@webkit.org>
36591
36592        Reviewed by David Hyatt.
36593
36594        - fix http://bugs.webkit.org/show_bug.cgi?id=13563
36595          REGRESSION: Crash loading message in Yahoo! Mail
36596
36597        Tests: fast/css/stale-style-selector-crash-1.html
36598               fast/css/stale-style-selector-crash-2.html
36599
36600        * dom/Document.cpp:
36601        (WebCore::Document::Document): Initialize the m_didCalculateStyleSelector
36602        flag to 'false'.
36603        (WebCore::Document::updateStyleSelector): Do not bail out if we have ever
36604        calculated a non-trivial style selector, even if at the moment we are
36605        pending style sheets. We could have calculated a non-trivial selector
36606        already either because at some point there were no pending style sheets
36607        (so the currently pending ones were added dynamically) or because we were
36608        forced to do a layout ignoring pending style sheets. Either way, once
36609        there is a style selector, we need to keep it up to date, otherwise we can
36610        crash under recalcStyle() during updateRendering() or simply not recalculate
36611        style correctly for dynamic changes.
36612        (WebCore::Document::recalcStyleSelector): Set m_didCalculateStyleSelector
36613        to 'true' when creating a new style selector.
36614        * dom/Document.h:
36615
366162007-05-23  Anders Carlsson  <andersca@apple.com>
36617
36618        Reviewed by Adam.
36619
36620        <rdar://problem/5224749> Show a zoom/unzoom cursor for resizable image documents
36621        
36622        * WebCore.xcodeproj/project.pbxproj:
36623        Install the zoom cursors.
36624        
36625        * loader/ImageDocument.cpp:
36626        (WebCore::ImageDocument::resizeImageToFit):
36627        Set the cursor to the zoom in cursor.
36628        
36629        (WebCore::ImageDocument::restoreImageSize):
36630        If the image fits, reset the cursor. Otherwise, set it to the zoom in cursor.
36631
366322007-05-23  Darin Adler  <darin@apple.com>
36633
36634        Reviewed by Hyatt.
36635
36636        - fix problems where unrendered nodes were affecting on plain text serialization
36637
36638        * editing/TextIterator.cpp:
36639        (WebCore::TextIterator::advance): Don't call handleXXX functions or exitNode for
36640        nodes without renderers.
36641        (WebCore::shouldEmitNewlineAfterNode): Only consider rendered nodes when deciding
36642        if this is the last node in the document.
36643
366442007-05-23  Anders Carlsson  <andersca@apple.com>
36645
36646        Reviewed by Geoff.
36647
36648        <rdar://problem/3663808> Resize large images to fit in the browser window
36649        
36650        * WebCore.exp:
36651        Add new settings method.
36652        
36653        * loader/ImageDocument.cpp:
36654        (WebCore::ImageEventListener::ImageEventListener):
36655        New class that handles resize events and click events and forwards them to the image document.
36656        
36657        (WebCore::ImageTokenizer::ImageTokenizer):
36658        (WebCore::ImageTokenizer::writeRawData):
36659        (WebCore::ImageTokenizer::finish):
36660        (WebCore::ImageDocument::ImageDocument):
36661        (WebCore::ImageDocument::createDocumentStructure):
36662        (WebCore::ImageDocument::cachedImage):
36663        Let the ImageDocument class keep track of its document structure.
36664        
36665        (WebCore::ImageDocument::scale):
36666        Returns the scale that should be used when resizing the image.
36667        
36668        (WebCore::ImageDocument::resizeImage):
36669        Update the image size.
36670        
36671        (WebCore::ImageDocument::imageClicked):
36672        Toggle between resized and not resized. When restoring the size, scroll the image so that the area under
36673        the mouse stays the same.
36674        
36675        (WebCore::ImageDocument::imageChanged):
36676        When the image size is known, resize the image if needed.
36677        
36678        (WebCore::ImageDocument::restoreImageSize):
36679        Restore the image size.
36680        
36681        (WebCore::ImageDocument::imageNeedsResizing):
36682        Return whether the image is too big for its window or not.
36683        
36684        (WebCore::ImageDocument::windowSizeChanged):
36685        Called when the window's size changes. Determine if the window fits or not and resize it if it doesn't fit.
36686        
36687        (WebCore::ImageEventListener::handleEvent):
36688        Forward events to the image document.
36689        
36690        * page/Settings.cpp:
36691        (WebCore::Settings::Settings):
36692        (WebCore::Settings::setEnableAutomaticImageResizing):
36693        * page/Settings.h:
36694        (WebCore::Settings::enableAutomaticImageResizing):
36695        Add new setting.
36696        
366972007-05-23  Anders Carlsson  <andersca@apple.com>
36698
36699        Reviewed by Darin.
36700
36701        Add -webkit-zoom-in and -webkit-zoom-out cursors.
36702        
36703        * Resources/zoomInCursor.png: Added.
36704        * Resources/zoomOutCursor.png: Added.
36705        * css/CSSComputedStyleDeclaration.cpp:
36706        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
36707        * css/CSSValueKeywords.in:
36708        * page/EventHandler.cpp:
36709        (WebCore::selectCursor):
36710        * platform/Cursor.h:
36711        * platform/mac/CursorMac.mm:
36712        (WebCore::zoomInCursor):
36713        (WebCore::zoomOutCursor):
36714        * rendering/RenderStyle.h:
36715        (WebCore::):
36716
367172007-05-23  Sam Weinig  <sam@webkit.org>
36718
36719        Reviewed by Darin.
36720
36721        Part one of patch for http://bugs.webkit.org/show_bug.cgi?id=13830
36722        Auto-generate JS DOM bindings for HTMLDocument and most of the rest
36723        of HTMLElement
36724
36725        - Just the HTMLElement part.
36726
36727        * bindings/js/kjs_html.cpp:
36728        (KJS::JSHTMLElement::getValueProperty):
36729        (KJS::JSHTMLElement::putValueProperty):
36730        * bindings/js/kjs_html.h:
36731        (KJS::JSHTMLElement::):
36732        * html/HTMLElement.idl:
36733
367342007-05-22  Kevin McCullough  <kmccullough@apple.com>
36735
36736        Reviewed by Darin.
36737
36738        - rdar://problem/5183523
36739        - We now check the document's URL to see if it can load a resource in the case of a URL click, instead of checking the referrer, which is blank for local files.
36740
36741        * loader/FrameLoader.cpp:
36742        (WebCore::FrameLoader::load):
36743        (WebCore::FrameLoader::open):
36744        * platform/PlatformString.h:
36745        (WebCore::debugPrintString):
36746
367472007-05-23  Sam Weinig  <sam@webkit.org>
36748
36749        Reviewed by Darin.
36750
36751        Part two of patch for http://bugs.webkit.org/show_bug.cgi?id=13830
36752        Auto-generate JS DOM bindings for HTMLDocument and most of the rest
36753        of HTMLElement
36754
36755        - Just the HTMLDocument part.
36756
36757        * WebCore.pro:
36758        * WebCore.xcodeproj/project.pbxproj:
36759        * bindings/js/JSHTMLDocumentCustom.cpp: Added.
36760        (WebCore::JSHTMLDocument::canGetItemsForName):
36761        (WebCore::JSHTMLDocument::nameGetter):
36762        (WebCore::JSHTMLDocument::all):
36763        (WebCore::JSHTMLDocument::setAll):
36764        (WebCore::JSHTMLDocument::location):
36765        (WebCore::JSHTMLDocument::setLocation):
36766        (WebCore::JSHTMLDocument::open):
36767        (WebCore::writeHelper):
36768        (WebCore::JSHTMLDocument::write):
36769        (WebCore::JSHTMLDocument::writeln):
36770        (WebCore::JSHTMLDocument::clear):
36771        * bindings/js/kjs_dom.cpp:
36772        (KJS::toJS):
36773        * bindings/js/kjs_dom.h:
36774        * bindings/js/kjs_html.cpp:
36775        * bindings/js/kjs_html.h:
36776        * bindings/objc/DOMPrivate.h:
36777        * bindings/scripts/CodeGeneratorJS.pm: Add [Deletable] property
36778        for Document.all and fix HasOverridingNameGetter to allow correct
36779        prototype chain
36780        * dom/Document.cpp:
36781        (WebCore::Document::plugins): adds alias to embeds() for bindings
36782        * dom/Document.h:
36783        * html/HTMLDocument.cpp:
36784        (WebCore::HTMLDocument::width):
36785        (WebCore::HTMLDocument::height):
36786        (WebCore::HTMLDocument::dir):
36787        (WebCore::HTMLDocument::setDir):
36788        (WebCore::HTMLDocument::designMode):
36789        (WebCore::HTMLDocument::setDesignMode):
36790        (WebCore::HTMLDocument::bgColor):
36791        (WebCore::HTMLDocument::setBgColor):
36792        (WebCore::HTMLDocument::fgColor):
36793        (WebCore::HTMLDocument::setFgColor):
36794        (WebCore::HTMLDocument::alinkColor):
36795        (WebCore::HTMLDocument::setAlinkColor):
36796        (WebCore::HTMLDocument::linkColor):
36797        (WebCore::HTMLDocument::setLinkColor):
36798        (WebCore::HTMLDocument::vlinkColor):
36799        (WebCore::HTMLDocument::setVlinkColor):
36800        (WebCore::HTMLDocument::captureEvents):
36801        (WebCore::HTMLDocument::releaseEvents):
36802        * html/HTMLDocument.h:
36803        * html/HTMLDocument.idl:
36804
368052007-05-23  David Hyatt  <hyatt@apple.com>
36806
36807        Fix for <rdar://problem/5221838> REGRESSION (r21581): no content in idisk
36808        window at mac.com.
36809
36810        Back out the change to make self-closed <script/> into a Dashboard quirk
36811        only.
36812
36813        Reviewed by aroben
36814
36815        * html/HTMLTokenizer.cpp:
36816        (WebCore::HTMLTokenizer::parseTag):
36817
368182007-05-23  Patti  <patti@apple.com>
36819
36820        Reviewed by David Harrison.
36821
36822        <rdar://problem/5078453> AXNext/PrevLineEndTextMarkerForTextMarker returns kAXErrorNoValue for attachment range
36823        
36824        Floating objects, such as aligned images, are not included as part of any line.  So when the given 
36825        text marker is on the floating object, the returned line edge cannot be found and asserts are fired.
36826        In addition, this paints an inconsistent text layout (in the accessibility sense) of where the floating 
36827        object resides.  Character/word methods report floating object at the beginning of the text line(s).  Yet
36828        line methods never present floating objects anywhere.  
36829        To fix this, the ax line methods will now do more checking to ensure floating object nodes are included
36830        when determining the line range/position. That way, assistive apps won't get stuck using the line methods 
36831        to read line-by-line
36832
36833        * bridge/mac/WebCoreAXObject.mm:
36834        (updateAXLineStartForVisiblePosition):
36835        Added a helper method to adjust line start position to account for floating objects
36836        (-[WebCoreAXObject doAXLeftLineTextMarkerRangeForTextMarker:]):
36837        (-[WebCoreAXObject doAXRightLineTextMarkerRangeForTextMarker:]):
36838        (-[WebCoreAXObject doAXNextLineEndTextMarkerForTextMarker:]):
36839        (-[WebCoreAXObject doAXPreviousLineStartTextMarkerForTextMarker:]):
36840        Fixed up line routines to include floating object nodes in line position calculation.
36841        startOfLine/endOLine may return null for position next to a floating position.  So now there's extra checks to prevent
36842        returning null line position/ranges back to AX.
36843
36844
368452007-05-23  Simon Hausmann  <hausmann@kde.org>
36846
36847        Reviewed by Zack, discussed also with Lars.
36848
36849        Make it possible to have per-QWebPage network interface
36850        implementations.
36851
36852        * platform/network/qt/ResourceHandleQt.cpp:
36853        (WebCore::ResourceHandle::start): Pass the page's network interface to
36854        the network manager.
36855
368562007-05-23  Rob Buis  <buis@kde.org>
36857
36858        Reviewed by Dave Hyatt.
36859
36860        http://bugs.webkit.org/show_bug.cgi?id=13174
36861        line-height in font shorthand does not override a previously stated line-height property
36862
36863        Make sure line-height is calculated against definite font-size and
36864        uses the last set line-height, ie. directly or through font shorthand.
36865
36866        * css/cssstyleselector.cpp:
36867        (WebCore::CSSStyleSelector::styleForElement):
36868        (WebCore::CSSStyleSelector::pseudoStyleForElement):
36869        (WebCore::CSSStyleSelector::applyDeclarations):
36870        (WebCore::CSSStyleSelector::applyProperty):
36871        * css/cssstyleselector.h:
36872
368732007-05-23  Lars Knoll <lars@trolltech.com>
36874
36875        Reviewed by Zack and Valgrind
36876
36877        Initialize variable.
36878
36879        * platform/qt/PlatformMouseEventQt.cpp:
36880        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
36881
368822007-05-23  Rob Buis  <buis@kde.org>
36883
36884        Reviewed by Darin.
36885
36886        http://bugs.webkit.org/show_bug.cgi?id=13784
36887        REGRESSION (r13744-13750): Crash with empty gradient when drawing to canvas
36888
36889        Fix crash by testing for zero stops, and returning transparent black
36890        in this case.
36891
36892        * html/CanvasGradient.cpp:
36893        (WebCore::CanvasGradient::getColor):
36894
368952007-05-23  Rob Buis  <buis@kde.org>
36896
36897        Reviewed by Darin.
36898
36899        http://bugs.webkit.org/show_bug.cgi?id=13801
36900        Crash when loading nonexisting symbol
36901
36902        Check for referenced element and when not found just return.
36903
36904        * ksvg2/svg/SVGUseElement.cpp:
36905        (WebCore::SVGUseElement::buildPendingResource):
36906
369072007-05-22  Sam Weinig  <sam@webkit.org>
36908
36909        Rubber stamped by Adam.
36910
36911        Fix license.
36912
36913        * bindings/js/JSHTMLAnchorElementCustom.cpp:
36914
369152007-05-22  Sam Weinig  <sam@webkit.org>
36916
36917        Reviewed by Adam.
36918
36919        Patch for http://bugs.webkit.org/show_bug.cgi?id=13833
36920        Add ObjC DOM binding for HTMLMarqeeElement
36921
36922        - Also adds missing DOMHTMLFramePrivate.
36923
36924        * DerivedSources.make:
36925        * WebCore.xcodeproj/project.pbxproj:
36926        * bindings/objc/DOM.mm:
36927        (WebCore::createElementClassMap):
36928        * bindings/objc/DOMHTML.h:
36929        * bindings/objc/DOMInternal.h:
36930        * bindings/objc/DOMPrivate.h:
36931        * bindings/objc/PublicDOMInterfaces.h:
36932
369332007-05-22  Justin Garcia  <justin.garcia@apple.com>
36934
36935        Reviewed by darin, who found the fix independently.
36936
36937        http://bugs.webkit.org/show_bug.cgi?id=13804
36938        REGRESSION(r21611): Several new layout test pixel failures (misspelling markers)
36939        
36940        r21611 exposed a bug in the way removeMarkers computes
36941        the end of the range to remove markers from.  It also
36942        introduced a bug: removeMarkers expects a startOffset
36943        and a length, not a startOffset and an endOffset (added 
36944        a layout test).
36945
36946        * dom/Document.cpp:
36947        (WebCore::Document::removeMarkers): The other removeMarkers
36948        expects a startOffset and a length, not a startOffset and
36949        an endOffset.
36950        (WebCore::Document::removeMarkers): Fixed the endOffset
36951        from length and startOffset calculation.
36952
369532007-05-22  David Hyatt  <hyatt@apple.com>
36954
36955        Fix for bug 13802, background colors can't be reset to default
36956        color.  Fix the value cssText method to do the right thing for background
36957        and background-position values.
36958
36959        Reviewed by beth
36960
36961        fast/dom/background-shorthand-csstext.html
36962
36963        * css/CSSInitialValue.h:
36964        (WebCore::CSSInitialValue:::m_implicit):
36965        (WebCore::CSSInitialValue::isImplicitInitialValue):
36966        * css/CSSMutableStyleDeclaration.cpp:
36967        (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
36968        (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue):
36969        * css/CSSMutableStyleDeclaration.h:
36970        * css/CSSValue.h:
36971        (WebCore::CSSValue::isImplicitInitialValue):
36972        * css/cssparser.cpp:
36973        (WebCore::CSSParser::parseValue):
36974        (WebCore::CSSParser::parseBackgroundShorthand):
36975        (WebCore::CSSParser::parseShorthand):
36976
369772007-05-22  Darin Adler  <darin@apple.com>
36978
36979        Reviewed by Geoff.
36980
36981        - fix <rdar://problem/5215830> REGRESSION: ebay.com layout is wrong
36982
36983        The code on ebay was looking for the "document" property on a iframe.
36984        We changed that to be the ownerDocument rather than the contentDocument,
36985        which was not what ebay was expecting. The best fix seems to be removing
36986        the document property altogether.
36987
36988        Test: fast/dom/iframe-document.html
36989
36990        * bindings/js/kjs_html.h: Remove ElementDocument.
36991        * bindings/js/kjs_html.cpp: (KJS::JSHTMLElement::getValueProperty): Ditto.
36992
369932007-05-22  Adele Peterson  <adele@apple.com>
36994
36995        Reviewed by Darin.
36996
36997        A little cleanup from my last checkin.
36998
36999        * page/Chrome.h: Formatting change.
37000        * page/mac/ChromeMac.mm: Fixed copyright.
37001
370022007-05-22  Adele Peterson  <adele@apple.com>
37003
37004        Reviewed by Darin.
37005
37006        Fix for http://bugs.webkit.org/show_bug.cgi?id=13796
37007        Crash in [NSInputContext currentInputContext] when you click on this map
37008
37009        This is another case of <rdar://problem/5171145> Safari crashed closing tab in NSInputContext updateInputContexts
37010
37011        Test: fast/frames/frame-display-none-focus.html
37012
37013        * WebCore.xcodeproj/project.pbxproj: Added ChromeMac.mm
37014        * page/Chrome.h:
37015        * page/mac/ChromeMac.mm: Added.
37016        (WebCore::Chrome::focusNSView): Moved code from Widget::setFocus so it can be used whenever we need to make a view the first responder.
37017        * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::focusDocumentView): Calls focusNSView.
37018        * platform/mac/WidgetMac.mm: (WebCore::Widget::setFocus): Calls focusNSView.
37019
370202007-05-22  Justin Garcia  <justin.garcia@apple.com>
37021
37022        Reviewed by darin
37023        
37024        <rdar://problem/4875189> 
37025        List is deleted when replacing contents with Chinese/Japanese characters
37026
37027        * editing/htmlediting.cpp:
37028        (WebCore::isSpecialElement): Lists are no longer special.
37029        They can be removed by removing their content and then 
37030        then hitting delete inside of the empty list item that's 
37031        left over. Even when that list item is the first thing 
37032        in the editable region.
37033
370342007-05-22  Darin Adler  <darin@apple.com>
37035
37036        Reviewed by Tim Hatcher.
37037
37038        - fix <rdar://problem/5206089> REGRESSION: hovering over amazon.com "product categories"
37039          tab makes page content disappear
37040
37041        The contentWindow property was doing a cross-frame security check, but it shouldn't.
37042        Window objects are responsible for protecting themselves from cross-frame activity.
37043        Because contentWindow returned undefined, we then ended up setting visibility on the
37044        body of the main frame to "hidden".
37045
37046        No layout test yet. When we make cross-domain tests, we should include this one.
37047
37048        * html/HTMLFrameElement.idl: Removed CheckFrameSecurity attribute from contentWindow.
37049        * html/HTMLIFrameElement.idl: Ditto.
37050
370512007-05-22  Justin Garcia  <justin.garcia@apple.com>
37052
37053        Reviewed by oliver
37054
37055        <rdar://problem/5213963>
37056        REGRESSION(r21467): Active selection remains in text field after clicking on a button
37057
37058        * page/EventHandler.cpp:
37059        (WebCore::EventHandler::dispatchMouseEvent): Call
37060        FocusController::setFocusedNode, because Document::setFocusedNode
37061        no longer clears the selection.
37062        Begin passing the new focused frame to 
37063        FocusController::setFocusedNode, because when the 
37064        new focus node is null, the selection should only be 
37065        cleared if the focused frame isn't changing.
37066        (WebCore::Element::focus): Begin passing the new focused
37067        frame.
37068        (WebCore::Element::blur): Ditto.
37069        * html/HTMLInputElement.cpp:
37070        (WebCore::HTMLInputElement::focus): Ditto.
37071        * html/HTMLTextAreaElement.cpp:
37072        (WebCore::HTMLTextAreaElement::focus): Ditto.
37073        * page/Frame.cpp:
37074        (WebCore::Frame::setFocusedNodeIfNeeded): Ditto.
37075        * page/FocusController.cpp:
37076        (WebCore::clearSelectionIfNeeded): Take in the new
37077        focused frame.  If it's not changing, don't clear the
37078        selection.
37079        (WebCore::FocusController::setFocusedNode): Take
37080        in the new focused frame.
37081        * page/FocusController.h:
37082
370832007-05-22  Marius Bugge Monsen  <mbm@trolltech.com>
37084
37085        Reviewed by Zack.
37086
37087        Implement some more functions in ClipboardQt.
37088
37089        * platform/qt/ClipboardQt.cpp:
37090        (WebCore::ClipboardQt::ClipboardQt):
37091        (WebCore::ClipboardQt::getData):
37092        (WebCore::ClipboardQt::setData):
37093        (WebCore::ClipboardQt::types):
37094
370952007-05-21  Oliver Hunt  <oliver@apple.com>
37096
37097        Reviewed by Sam.
37098        
37099        Fix for http://bugs.webkit.org/show_bug.cgi?id=13789 
37100        -- SVGLocatable::getScreenCTM() faulty
37101        
37102        Needed to update SVGLength to handle the case where the SVGElement is
37103        not the root document element -- we do this by falling back on the 
37104        renderer for the context.
37105        
37106        For <svg> elements embedded as mixed content in xhtml we consider the
37107        absolutePosition of the parent to be the origin for the <svg> element.
37108
37109        * ksvg2/svg/SVGLength.cpp:
37110        (WebCore::SVGLength::PercentageOfViewport):
37111        * ksvg2/svg/SVGSVGElement.cpp:
37112        (WebCore::SVGSVGElement::getScreenCTM):
37113
371142007-05-21  Timothy Hatcher  <timothy@apple.com>
37115
37116        Reviewed by Adam.
37117
37118        <rdar://problem/5084400> -[DOMRange lineBoxRects] returns an empty array when the DOM nodes have just been created
37119
37120        Do a updateLayoutIgnorePendingStylesheets before asking the Node or Range for it's box rects.
37121
37122        * bindings/objc/DOM.mm:
37123        (-[DOMNode boundingBox]):
37124        (-[DOMNode lineBoxRects]):
37125        (-[DOMRange boundingBox]):
37126        (-[DOMRange lineBoxRects]):
37127
371282007-05-21  Sam Weinig  <sam@webkit.org>
37129
37130        Reviewed by George Staikos.
37131
37132        Fix Qt build.
37133
37134        * WebCore.pro: add missing IDL files.
37135
371362007-05-21  Sam Weinig  <sam@webkit.org>
37137
37138        Reviewed by Darin.
37139
37140        Patch for http://bugs.webkit.org/show_bug.cgi?id=13803
37141        Autogenerate the JS bindings for the HTMLMarqueeElement.
37142
37143        * DerivedSources.make:
37144        * WebCore.xcodeproj/project.pbxproj:
37145        * bindings/js/JSHTMLElementWrapperFactory.cpp:
37146        * bindings/js/kjs_css.cpp:
37147        (KJS::DOMCSSRule::getOwnPropertySlot): Fix possible null pointer issue.
37148        (KJS::DOMCSSRule::put): Fix possible null pointer issue.
37149        * bindings/js/kjs_html.cpp:
37150        (KJS::):
37151        (KJS::JSHTMLElement::classInfo):
37152        (KJS::JSHTMLElement::accessors):
37153        (KJS::JSHTMLElement::getOwnPropertySlot): Fix null pointer issue.
37154        (KJS::HTMLElementFunction::callAsFunction):
37155        (KJS::JSHTMLElement::put):
37156        * bindings/js/kjs_html.h:
37157        (KJS::JSHTMLElement::):
37158        * html/HTMLMarqueeElement.cpp:
37159        (WebCore::HTMLMarqueeElement::start):
37160        (WebCore::HTMLMarqueeElement::stop):
37161        * html/HTMLMarqueeElement.h: Add start() and stop() functions.
37162        * html/HTMLMarqueeElement.idl: Added.
37163        * page/DOMWindow.idl: Add marquee constructor.
37164
371652007-05-21  Adele Peterson  <adele@apple.com>
37166
37167        Fix by Darin, reviewed by me.
37168
37169        Fix for <rdar://problem/5171145> Safari crashed closing tab in NSInputContext updateInputContexts
37170
37171        * platform/mac/WidgetMac.mm:
37172        (WebCore::safeRemoveFromSuperview): Added. If the view is the window's first responder, then 
37173         set the window's first responder to nil so we don't leave the window pointing to a view that's no longer in it.
37174        (WebCore::Widget::setFocus): Don't attempt to focus the view if it has no window.
37175        (WebCore::Widget::removeFromSuperview): Call safeRemoveFromSuperview.
37176        (WebCore::Widget::afterMouseDown): ditto.
37177
371782007-05-21  David Hyatt  <hyatt@apple.com>
37179
37180        Make a line gutter backdrop so that tiny view source docs don't look
37181        bad.
37182
37183        Reviewed by aroben
37184
37185        * css/view-source.css:
37186        * html/HTMLViewSourceDocument.cpp:
37187        (WebCore::HTMLViewSourceDocument::createContainingTable):
37188
371892007-05-21  David Hyatt  <hyatt@apple.com>
37190
37191        Make sure to distinguish between links to internal resources and
37192        real links (anchors) in view source mode.
37193
37194        Reviewed by aroben
37195
37196        * css/view-source.css:
37197        * html/HTMLViewSourceDocument.cpp:
37198        (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37199        (WebCore::HTMLViewSourceDocument::addLink):
37200        * html/HTMLViewSourceDocument.h:
37201
372022007-05-21  Sam Weinig  <sam@webkit.org>
37203
37204        Reviewed by Adam and Darin.
37205
37206        Patch for http://bugs.webkit.org/show_bug.cgi?id=13791
37207        Autogenerate the JS bindings for the HTMLIFrameElement and HTMLFrameElement.
37208
37209        * DerivedSources.make:
37210        * WebCore.xcodeproj/project.pbxproj:
37211        * bindings/js/JSHTMLAnchorElementCustom.cpp:
37212        * bindings/js/JSHTMLElementWrapperFactory.cpp:
37213        * bindings/js/kjs_html.cpp:
37214        (KJS::):
37215        (KJS::JSHTMLElement::classInfo):
37216        (KJS::JSHTMLElement::accessors):
37217        (KJS::HTMLElementFunction::callAsFunction):
37218        * bindings/js/kjs_html.h:
37219        (KJS::JSHTMLElement::):
37220        * bindings/scripts/CodeGeneratorJS.pm:
37221        * html/HTMLFrameElement.idl:
37222        * html/HTMLFrameElementBase.cpp:
37223        (WebCore::HTMLFrameElementBase::location):
37224        * html/HTMLFrameElementBase.h:
37225        * html/HTMLFrameOwnerElement.h:
37226        (WebCore::HTMLFrameOwnerElement::contentWindow):
37227        * html/HTMLIFrameElement.idl:
37228        * page/DOMWindow.idl:
37229
372302007-05-21  Lars Knoll <lars@trolltech.com>
37231
37232        Reviewed by Zack.
37233
37234        Remove the ResourceHandleManager class, it is now part of 
37235        QWebNetworkInterface. Adapt ResourceHandle to the new way 
37236        of things.
37237
37238        * WebCore.pro:
37239        * platform/network/ResourceHandleInternal.h:
37240        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
37241        * platform/network/qt/ResourceHandleManagerKDE.cpp: Removed.
37242        * platform/network/qt/ResourceHandleManagerKDE.h: Removed.
37243        * platform/network/qt/ResourceHandleManagerQt.cpp: Removed.
37244        * platform/network/qt/ResourceHandleManagerQt.h: Removed.
37245        * platform/network/qt/ResourceHandleQt.cpp:
37246        (WebCore::ResourceHandle::~ResourceHandle):
37247        (WebCore::ResourceHandle::start):
37248        (WebCore::ResourceHandle::cancel):
37249
372502007-05-21  David Hyatt  <hyatt@apple.com>
37251
37252        Second half of fix for 13793, make sure rules=groups works properly with
37253        spanning colgroups.
37254
37255        Also make sure colgroups get an actual span of 1 (instead of incorrectly
37256        giving them a span of 0).
37257
37258        Reviewed by mitz
37259
37260        fast/table/colgroup-spanning-groups-rules.html
37261
37262        * html/HTMLTableColElement.cpp:
37263        (WebCore::HTMLTableColElement::HTMLTableColElement):
37264        * rendering/RenderTable.cpp:
37265        (WebCore::RenderTable::colElement):
37266        * rendering/RenderTable.h:
37267        * rendering/RenderTableCell.cpp:
37268        (WebCore::RenderTableCell::collapsedLeftBorder):
37269        (WebCore::RenderTableCell::collapsedRightBorder):
37270
372712007-05-20  David Hyatt  <hyatt@apple.com>
37272
37273        Half of a fix for 13793, make sure rules=groups and border behave properly
37274        together.
37275
37276        Reviewed by mitz
37277
37278        No tests added, two Mozilla table tests now pass that failed before.
37279
37280        * html/HTMLTableElement.cpp:
37281        (WebCore::HTMLTableElement::getSharedCellDecl):
37282
372832007-05-20  Brady Eidson <beidson@apple.com>
37284
37285        Reviewed by Geoose Garen
37286
37287        <rdar://problem/4758919> - Incorrect favicon shown for URL after going back
37288
37289        When restoring a cached page, we'd try to kick off the icon load for it, which ended up causing 
37290        shenanigans with the icon url -> page url mapping.  
37291
37292        * loader/FrameLoader.cpp:
37293        (WebCore::FrameLoader::endIfNotLoading): Only try an icon load if we're not restoring from the page cache
37294        (WebCore::FrameLoader::startIconLoader): Added helpful logging that helped me track this down
37295        (WebCore::FrameLoader::commitIconURLToIconDatabase): Ditto (and fixed a comment typo)
37296
37297        * loader/icon/IconLoader.cpp:
37298        (WebCore::IconLoader::stopLoading): Don't null out the ResourceLoader here, as clearLoadingState() does that
37299        (WebCore::IconLoader::finishLoading): Added helpful logging that helped me track this down
37300
37301
373022007-05-20  Darin Adler  <darin@apple.com>
37303
37304        Reviewed by Oliver Hunt.
37305
37306        - fix <rdar://problem/5193416> REGRESSION: Selection on large pages extremely slow
37307
37308        * dom/Document.cpp: (WebCore::Document::removeMarkers): Added an early exit for the common
37309        case where there are no markers. Changed code to iterate over all the nodes in the range
37310        instead of using TextIterator, which is more efficient.
37311        
37312        * page/Frame.cpp: (WebCore::Frame::respondToChangedSelection): Added checks for editable,
37313        so we don't bother doing work related to spell checking and grammar checking when changing
37314        the selection in non-editable text. Also rearranged the code so we only compute the old
37315        word boundaries and sentence boundaries when actually needed, and don't do the sentence
37316        range checks unless grammar checking is enabled.
37317
37318        * platform/TextBreakIteratorICU.cpp:
37319        (WebCore::setUpIterator): Don't take a locale parameter. Always pass in currentTextBreakLocaleID.
37320        (WebCore::characterBreakIterator): Removed local parameter.
37321        (WebCore::wordBreakIterator): Ditto.
37322        (WebCore::lineBreakIterator): Ditto.
37323        (WebCore::sentenceBreakIterator): Ditto.
37324
37325        * platform/mac/TextBreakIteratorInternalICUMac.mm:
37326        (WebCore::getTextBreakLocale): Broke out the code to actually get the locale.
37327        (WebCore::currentTextBreakLocaleID): This function now handles only the caching and calls
37328        getTextBreakLocale to actually figure it out.
37329
37330        * editing/visible_units.cpp: Added lots of FIXME comments, but no code change.
37331
373322007-05-20  Adam Treat  <adam@staikos.net>
37333
37334        Add -f to cp to deal with some obscure build environments.
37335
37336        Reviewed by George Staikos.
37337
37338        * move-js-headers.sh:
37339
373402007-05-20  Adam Treat  <adam@staikos.net>
37341
37342        Add missing include for auto_ptr
37343
37344        Reviewed by George Staikos.
37345
37346        * platform/graphics/ImageBuffer.h:
37347
373482007-05-19  David Hyatt  <hyatt@apple.com>
37349
37350        Fix for bug 13785, O(n^2) counter creation.
37351
37352        Reviewed by darin
37353
37354        * rendering/RenderCounter.cpp:
37355        (WebCore::findPlaceForCounter):
37356        (WebCore::RenderCounter::originalText):
37357
373582007-05-19  Mitz Pettel  <mitz@webkit.org>
37359
37360        Reviewed by Dave Hyatt.
37361
37362        - fix http://bugs.webkit.org/show_bug.cgi?id=12729
37363          box-shadow disappears when scrolling a div that it falls on/under
37364
37365        Tests: fast/repaint/box-shadow-dynamic.html
37366               fast/repaint/box-shadow-h.html
37367               fast/repaint/box-shadow-v.html
37368
37369        * rendering/InlineFlowBox.cpp:
37370        (WebCore::InlineFlowBox::placeBoxesHorizontally): Factor in box shadow.
37371        (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
37372        (WebCore::InlineFlowBox::paint): Account for box shadow when checking if
37373        the damage rect intersects.
37374        * rendering/RenderBlock.cpp:
37375        (WebCore::RenderBlock::overflowHeight): For overflow areas, when asked
37376        for the "exterior" overflow, add box shadow overflow.
37377        (WebCore::RenderBlock::overflowWidth): Ditto.
37378        (WebCore::RenderBlock::overflowLeft): Ditto.
37379        (WebCore::RenderBlock::overflowTop): Ditto.
37380        (WebCore::RenderBlock::overflowRect): Ditto.
37381        (WebCore::RenderBlock::layoutBlock): Factor box shadow into visual overflow.
37382        * rendering/RenderFlexibleBox.cpp:
37383        (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
37384        * rendering/RenderFlow.cpp:
37385        (WebCore::RenderFlow::lowestPosition): For overflow areas, when asked for
37386        the "exterior" extreme position, add box shadow.
37387        (WebCore::RenderFlow::rightmostPosition): Ditto.
37388        (WebCore::RenderFlow::leftmostPosition): Ditto.
37389        * rendering/RenderLayer.cpp:
37390        (WebCore::RenderLayer::calculateRects): Avoid clipping out box shadow.
37391        * rendering/RenderObject.cpp:
37392        (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Make sure to paint
37393        the box shadow when an edge with a shadow moves.
37394        (WebCore::RenderObject::adjustRectForOutlineAndShadow): Helper function
37395        that expands a given rectangle to encompass outline and box shadow.
37396        (WebCore::RenderObject::absoluteOutlineBox): Changed to include box shadow.
37397        * rendering/RenderObject.h:
37398
373992007-05-19  Mitz Pettel  <mitz@webkit.org>
37400
37401        Reviewed by Dave Hyatt.
37402
37403        - fix http://bugs.webkit.org/show_bug.cgi?id=13783
37404          REGRESSION (r21120): Frame resizers not repainted properly when dragged
37405
37406        * rendering/RenderFrameSet.cpp:
37407        (WebCore::RenderFrameSet::layout):
37408
374092007-05-19  Mitz Pettel  <mitz@webkit.org>
37410
37411        Reviewed by Darin.
37412
37413        - fix http://bugs.webkit.org/show_bug.cgi?id=13774
37414          REGRESSION: Crash emailing blog entry using Google Reader
37415
37416        Test: fast/table/stale-grid-crash.html
37417
37418        * rendering/RenderTable.cpp:
37419        (WebCore::RenderTable::recalcSections): Made const and replaced
37420        setNeedsLayout(true) with an assertion that the table is already
37421        marked for layout.
37422        (WebCore::RenderTable::sectionAbove): Added call to recalcSectionsIfNeeded().
37423        (WebCore::RenderTable::sectionBelow): Ditto.
37424        (WebCore::RenderTable::cellAbove): Ditto.
37425        (WebCore::RenderTable::cellBelow): Ditto.
37426        (WebCore::RenderTable::cellBefore): Ditto.
37427        (WebCore::RenderTable::cellAfter): Ditto.
37428        * rendering/RenderTable.h:
37429        Made some private member variables which are used in section recalc mutable.
37430        (WebCore::RenderTable::setNeedsSectionRecalc): Moved the call to
37431        setNeedsLayout() from recalcSections() into here, because I made
37432        recalcSections() const.
37433        (WebCore::RenderTable::recalcSectionsIfNeeded): Made const.
37434
374352007-05-19  Mitz Pettel  <mitz@webkit.org>
37436
37437        Reviewed by Darin.
37438
37439        - http://bugs.webkit.org/show_bug.cgi?id=13320
37440          rounded corners with drop shadows are really slow
37441
37442        Test for a rendering bug fixed by this patch:
37443            fast/box-shadow/border-radius-big.html
37444
37445        No test for the performance ingredient.
37446
37447        * platform/graphics/GraphicsContext.cpp:
37448        (WebCore::GraphicsContext::addRoundedRectClip): Made cross-platform.
37449        Changed to use a single clipping path. If all the radii cannot be
37450        accommodated, clips to a rect.
37451        (WebCore::GraphicsContext::clipOutRoundedRect): Changed to use a single
37452        clipping path. If all the radii cannot be accommodated, clips out a rect.
37453        * platform/graphics/GraphicsContext.h: Added clipOut(const Path&).
37454        * platform/graphics/Path.cpp:
37455        (WebCore::Path::createRoundedRectangle): Added. Returns a rounded rectangle
37456        with the specified radii. If all the radii cannot be accommodated, returns
37457        a rectangular path.
37458        * platform/graphics/Path.h:
37459        * platform/graphics/cairo/GraphicsContextCairo.cpp:
37460        (WebCore::GraphicsContext::clipOut): Added.
37461        * platform/graphics/cg/GraphicsContextCG.cpp:
37462        (WebCore::GraphicsContext::fillRoundedRect): Changed to use a single path.
37463        (WebCore::GraphicsContext::clipOut): Added.
37464        * platform/graphics/qt/GraphicsContextQt.cpp:
37465        (WebCore::GraphicsContext::clipOut): Added.
37466
374672007-05-19  Anders Carlsson  <andersca@apple.com>
37468
37469        Reviewed by Mitz.
37470
37471        Test: fast/frames/inline-object-inside-frameset.html
37472        
37473        http://bugs.webkit.org/show_bug.cgi?id=13771
37474        Assertion failure ASSERT(m_layer) when running Hamachi fuzz tester
37475
37476        Don't paint inline objects.
37477        
37478        * rendering/RenderFrameSet.cpp:
37479        (WebCore::RenderFrameSet::paint):
37480
374812007-05-19  David Hyatt  <hyatt@apple.com>
37482
37483        Add support for plain text MIME types (CSS/JS/TXT) to view source mode.
37484        CSS/JS will eventually tokenize via their own special tokenizers so that
37485        they can also be syntax-highlighted, but for now just treat them as
37486        plain text.
37487
37488        Reviewed by aroben
37489
37490        * dom/DOMImplementation.cpp:
37491        (WebCore::DOMImplementation::createDocument):
37492        * html/HTMLViewSourceDocument.cpp:
37493        (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
37494        (WebCore::HTMLViewSourceDocument::createTokenizer):
37495        (WebCore::HTMLViewSourceDocument::createContainingTable):
37496        (WebCore::HTMLViewSourceDocument::addViewSourceText):
37497        (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37498        * html/HTMLViewSourceDocument.h:
37499        * loader/TextDocument.cpp:
37500        (WebCore::TextTokenizer::TextTokenizer):
37501        (WebCore::TextTokenizer::write):
37502        * loader/TextDocument.h:
37503        (WebCore::TextTokenizer::checkBuffer):
37504
375052007-05-18  David Hyatt  <hyatt@apple.com>
37506
37507        Fix a glitch in view source mode attribute names.
37508
37509        * html/HTMLViewSourceDocument.cpp:
37510        (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37511
375122007-05-18  David Hyatt  <hyatt@apple.com>
37513
37514        "Linkify" view source mode links.
37515
37516        Reviewed by andersca
37517
37518        * css/view-source.css:
37519        * html/HTMLViewSourceDocument.cpp:
37520        (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37521        (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
37522        (WebCore::HTMLViewSourceDocument::addLink):
37523        * html/HTMLViewSourceDocument.h:
37524
375252007-05-18  Oliver Hunt  <oliver@apple.com>
37526
37527        Reviewed by Sam
37528
37529        No longer need to pass HTMLImageElement and HTMLImageLoader on to WebKit
37530        Need to expose CachedResourceClient constructor
37531
37532        * WebCore.exp:
37533        * WebCore.xcodeproj/project.pbxproj:
37534
375352007-05-18  David Hyatt  <hyatt@apple.com>
37536
37537        Fix for <rdar://problem/5214338> REGRESSION: / mishandled in 
37538        HTML tokenization (13780).
37539
37540        Reviewed by ggaren
37541
37542        * html/HTMLTokenizer.cpp:
37543        (WebCore::Token::addAttribute):
37544        (WebCore::HTMLTokenizer::parseTag):
37545
375462007-05-18  Brady Eidson  <beidson@apple.com>
37547
37548        Reviewed by Maciej
37549
37550        http://bugs.webkit.org/show_bug.cgi?id=12681 and
37551        <rdar://problem/5166149> - window.open() causes server to be hit twice
37552
37553        This regressed in http://trac.webkit.org/projects/webkit/changeset/14637
37554        That patch was to fix broken behavior when opening an already existant window.
37555        The unfortunate side effect was to cause the server to be hit twice.  
37556        Once during the call to frame->loader()->createWindow(), and again via a 
37557        scheduled redirection.
37558
37559        I decided to restore the original de-facto behavior by making the new window
37560        open via a scheduled redirection - there is a FIXME that was already here that
37561        explains the reason why we have to do it this way for now.
37562
37563        Additionally, there were two distinct places that had their own logic to open
37564        a new window - the logic for window.open() and the logic for 
37565        window.showModalDialog().  The logic was almost identical so I condensed them
37566        into one utility function that takes a flag to handle the slight difference.
37567
37568        A layout test is not possible at this time since it would involve capturing 
37569        server logs (the 1st connection does not exist long enough to result in any
37570        delegate callbacks).  That task is documented in 
37571        http://bugs.webkit.org/show_bug.cgi?id=13769
37572
37573        * bindings/js/kjs_window.cpp:
37574        (KJS::createWindow): Merged the two slightly different versions of "creating a window" 
37575          logic here.  For the modal dialog case the load is an immediate call to changeLocation(),
37576          which is triggered by the "immediate" flag, and the other cases load via scheduleLocationChange()
37577        (KJS::showModalDialog): Call createWindow()
37578        (KJS::WindowFunc::callAsFunction): Handle frame targets of _top or _parent immediately and call 
37579          createWindow() for all others
37580
375812007-05-18  Sam Weinig  <sam@webkit.org>
37582
37583        Reviewed by Geoff.
37584
37585        Autogenerate the JS bindings for the HTMLTableElement, HTMLTableCaptionElement,
37586        HTMLTableCellElement, HTMLTableColElement, HTMLTableRowElement, HTMLTableSectionElement.
37587
37588        * DerivedSources.make:
37589        * WebCore.pro:
37590        * WebCore.xcodeproj/project.pbxproj:
37591        * bindings/js/JSHTMLElementWrapperFactory.cpp:
37592        (WebCore::createJSHTMLWrapper):
37593        * bindings/js/kjs_html.cpp:
37594        (KJS::):
37595        (KJS::JSHTMLElement::classInfo):
37596        (KJS::JSHTMLElement::accessors):
37597        (KJS::HTMLElementFunction::callAsFunction):
37598        * bindings/js/kjs_html.h:
37599        (KJS::JSHTMLElement::):
37600        * html/HTMLTableCaptionElement.idl:
37601        * html/HTMLTableCellElement.idl:
37602        * html/HTMLTableColElement.idl:
37603        * html/HTMLTableElement.idl:
37604        * html/HTMLTableRowElement.idl:
37605        * html/HTMLTableSectionElement.idl:
37606        * page/DOMWindow.idl:
37607
376082007-05-18  Oliver Hunt  <oliver@apple.com>
37609
37610        Reviewed by Sam.
37611
37612        Fix for <rdar://problem/5211122> DRT crash below
37613        SVGTimer::applyAnimations when page cache is enabled 
37614        (SVG animation timers do not properly cancel themselves)
37615
37616        There were still a few paths in the SVG Animation code
37617        that could cause timers to be created and used.  This 
37618        patch inserts addition SVG_EXPERIMENTAL blocks to prevent
37619        these timers from being used.
37620
37621        * ksvg2/misc/SVGDocumentExtensions.cpp:
37622        (WebCore::SVGDocumentExtensions::startAnimations):
37623        * ksvg2/misc/SVGTimer.cpp:
37624        (WebCore::SVGTimer::animationsByElement):
37625        (WebCore::SVGTimer::applyAnimations):
37626        (WebCore::SVGTimer::notifyAll):
37627        (WebCore::SVGTimer::addNotify):
37628        (WebCore::SVGTimer::removeNotify):
37629        * ksvg2/misc/TimeScheduler.cpp:
37630        (WebCore::TimeScheduler::addTimer):
37631        (WebCore::TimeScheduler::connectIntervalTimer):
37632        (WebCore::TimeScheduler::disconnectIntervalTimer):
37633        (WebCore::TimeScheduler::startAnimations):
37634        (WebCore::TimeScheduler::toggleAnimations):
37635        (WebCore::TimeScheduler::timerFired):
37636        * ksvg2/svg/SVGAnimationElement.h:
37637
376382007-05-18  Marius Bugge Monsen <mbm@trolltech.com>
37639
37640        Reviewed by Zack Rusin. 
37641
37642        Return a valid pointer to a Clipboard object
37643        from newGeneralClipboard. 
37644
37645        * editing/qt/EditorQt.cpp:
37646        (WebCore::Editor::newGeneralClipboard):
37647
376482007-05-18  Mark Rowe  <mrowe@apple.com>
37649
37650        Attempt to fix the Gdk build after r21562.
37651
37652        * platform/gdk/TemporaryLinkStubs.cpp:
37653        (Widget::isEnabled):
37654        * platform/gdk/WidgetGdk.cpp:
37655
376562007-05-18  Adam Treat <treat@kde.org>
37657
37658        Reviewed by Lars
37659
37660        Remove dead code.
37661
37662        * platform/Widget.h:
37663        * platform/mac/WidgetMac.mm:
37664        * platform/qt/WidgetQt.cpp:
37665
376662007-05-18  Holger Freyther  <zecke@selfish.org>
37667
37668        Reviewed by Maciej.
37669
37670        Return true to make loading of pages working again
37671
37672        * loader/gdk/FrameLoaderClientGdk.cpp:
37673        (WebCore::FrameLoaderClientGdk::canHandleRequest):
37674
376752007-05-18  Holger Freyther  <zecke@selfish.org>
37676
37677        Reviewed by Maciej.
37678
37679        Make WebCore::Widget use GtkWidget to fix focus handling.
37680
37681        * WebCore.pro: Add PlatformScrollBar
37682        * platform/ScrollView.h: Gtk stuff
37683        * platform/Widget.h: Take a GtkWidget
37684        * platform/gdk/PlatformScrollBarGdk.cpp: Added.
37685        (PlatformScrollbar::PlatformScrollbar):
37686        (PlatformScrollbar::~PlatformScrollbar):
37687        (PlatformScrollbar::width):
37688        (PlatformScrollbar::height):
37689        (PlatformScrollbar::setEnabled):
37690        (PlatformScrollbar::paint):
37691        (PlatformScrollbar::updateThumbPosition):
37692        (PlatformScrollbar::updateThumbProportion):
37693        (PlatformScrollbar::setRect):
37694        * platform/gdk/ScreenGdk.cpp: Implement depth handling
37695        (WebCore::screenDepth):
37696        * platform/gdk/ScrollViewGdk.cpp: use setGtkWidget, not setDrawable
37697        (WebCore::ScrollView::setGtkWidget):
37698        * platform/gdk/TemporaryLinkStubs.cpp:
37699        * platform/gdk/WidgetGdk.cpp:
37700        (WebCore::Widget::Widget):
37701        (WebCore::Widget::gtkWidget):
37702        (WebCore::Widget::setGtkWidget):
37703        (WebCore::Widget::hasFocus):
37704        (WebCore::Widget::setFocus):
37705
377062007-05-18  Lars Knoll  <lars@trolltech.com>
37707
37708        Reviewed by Zack
37709
37710        Correctly implement initialiseSupportedImageMIMETypes.
37711
37712        * platform/MimeTypeRegistry.cpp:
37713        (WebCore::initialiseSupportedImageMIMETypes):
37714        * platform/qt/MimeTypeRegistryQt.cpp:
37715        (WebCore::):
37716
377172007-05-18  Holger Hans Peter Freyther  <zecke@selfish.org>
37718
37719        Reviewed by Maciej.
37720
37721        Build fix for non-Qt and non-Mac ports.
37722
37723        * html/HTMLCanvasElement.h:
37724
377252007-05-18  Holger Hans Peter Freyther  <zecke@selfish.org>
37726
37727        Reviewed by Mark Rowe.
37728
37729        No test added as this is hard to time.
37730
37731        * platform/gdk/FrameGdk.cpp: Use needsLayout() to decide if layout()
37732        is needed.
37733
37734        (WebCore::FrameGdk::dumpRenderTree):
37735        (WebCore::FrameGdk::handleGdkEvent):
37736
377372007-05-18  Simon Hausmann  <hausmann@kde.org>
37738
37739        Reviewed by Lars.
37740
37741        * WebCore.pro: Create a pkg-config file to make it easier to locate
37742        and use WebKitQt.
37743
377442007-05-18  Lars Knoll <lars@trolltech.com>
37745
37746        Reviewed by Hyatt.
37747
37748        Remove unused handleMouseEvent methods in the Widget
37749        and derived classes.
37750
37751        * page/EventHandler.cpp:
37752        (WebCore::EventHandler::handleMouseMoveEvent):
37753        * page/FrameView.cpp:
37754        * page/FrameView.h:
37755        * page/mac/EventHandlerMac.mm:
37756        (WebCore::EventHandler::mouseDragged):
37757        (WebCore::EventHandler::mouseMoved):
37758        * platform/ScrollBar.h:
37759        * platform/Widget.h:
37760        * platform/win/PlatformScrollBar.h:
37761        * platform/win/TemporaryLinkStubs.cpp:
37762        (WebCore::PlatformScrollbar::setRect):
37763        * platform/wx/PlatformScrollBar.h:
37764
377652007-05-18  George Staikos  <staikos@kde.org>
37766
37767        Reviewed by Lars.
37768
37769        Use the proper clipping algorithm.  Might be a bit slow but we
37770        can optimize it later.
37771
37772        * platform/graphics/qt/GraphicsContextQt.cpp:
37773        (WebCore::GraphicsContext::clip):
37774
377752007-05-17  Sam Weinig  <sam@webkit.org>
37776
37777        Reviewed by George Staikos.
37778
37779        Fix Qt build after adding JSHTMLAnchorElementCustom.cpp. 
37780
37781        * WebCore.pro:
37782
377832007-05-17  George Staikos  <staikos@kde.org>
37784
37785        Reviewed by hyatt.
37786
37787        Fix preprocessor logic for CG/QT
37788
37789        * html/HTMLCanvasElement.cpp:
37790        (WebCore::HTMLCanvasElement::reset):
37791
377922007-05-17  David Hyatt  <hyatt@apple.com>
37793
37794        Add a line gutter to view source mode.  The gutter uses counters, and this exposed the fact
37795        that pseudoStyleForElement was not walking all UA rules properly.
37796
37797        Reviewed by aroben
37798
37799        * css/cssstyleselector.cpp:
37800        (WebCore::CSSStyleSelector::pseudoStyleForElement):
37801        * css/view-source.css:
37802        * html/HTMLViewSourceDocument.cpp:
37803        (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
37804        (WebCore::HTMLViewSourceDocument::addViewSourceToken):
37805        (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
37806        (WebCore::HTMLViewSourceDocument::addLine):
37807        (WebCore::HTMLViewSourceDocument::addText):
37808        * html/HTMLViewSourceDocument.h:
37809
378102007-05-17  Justin Garcia  <justin.garcia@apple.com>
37811
37812        Reviewed by ggaren
37813
37814        <rdar://problem/5209984> REGRESSION: Crash on click after clearing Facebook status
37815        
37816        comparePositions() expects non-null positions.  It's 
37817        given a null position by contains() if the current 
37818        selection is a range selection but contains only invisible 
37819        content *and* visible positions cannot be created from its 
37820        end points.  This can happen when there is a range selection 
37821        inside shadow content (like that inside text fields) that 
37822        is made invisible.
37823
37824        * editing/SelectionController.cpp:
37825        (WebCore::SelectionController::contains): Check for
37826        invisible end points.
37827
378282007-05-17  Sam Weinig  <sam@webkit.org>
37829
37830        Reviewed by Adam.
37831
37832        Fix for <rdar://problem/5201423> REGRESSION: Links in 
37833        sidebar don't work on Honda website
37834
37835        Anchor elements need to have the same behavior for implicit and 
37836        explicit toString() calls.
37837
37838        Test: fast/dom/anchor-toString.html
37839
37840        * WebCore.xcodeproj/project.pbxproj:
37841        * bindings/js/JSHTMLAnchorElementCustom.cpp: Added.
37842        (WebCore::JSHTMLAnchorElement::toString):
37843        * html/HTMLAnchorElement.idl:
37844
378452007-05-17  Geoffrey Garen  <ggaren@apple.com>
37846        
37847        Build fix.
37848
378492007-05-17  Adele Peterson  <adele@apple.com>
37850
37851        Reviewed by Hyatt.
37852
37853        Update RenderMenuList PopupClient methods to consider style of inner block.
37854
37855        * rendering/RenderMenuList.cpp:
37856        (WebCore::RenderMenuList::itemStyle):
37857        (WebCore::RenderMenuList::clientStyle):
37858
378592007-05-17  Maciej Stachowiak  <mjs@apple.com>
37860
37861        Not reviewed, emergency test fix.
37862
37863        - avoid crash on layout tests.
37864        
37865        Patched up my last change so that  widgets don't crash.
37866
37867        * loader/FrameLoader.cpp:
37868        (WebCore::FrameLoader::mainReceivedCompleteError):
37869
378702007-05-17  Antti Koivisto  <antti@apple.com>
37871
37872        Reviewed by Darin.
37873
37874        Fix for http://bugs.webkit.org/show_bug.cgi?id=13727
37875        REGRESSION: Reproducible hang setting the selection's extent offset to -1
37876        <rdar://problem/5206890>
37877        
37878        Rise INDEX_SIZE_ERR if used selection index is negative. This matches HTML5 for
37879        getRangeAt() and collapse() which are part of the spec (FF throws NS_ERROR_FAILURE). 
37880        
37881        Not throwing exceptions yet for too high offsets (except getRangeAt()) as it is
37882        unclear if WebCore's definition of offsets is the same as other browsers.
37883
37884        * bindings/js/kjs_window.cpp:
37885        * WebCore/editing/SelectionController.cpp:
37886        * WebCore/editing/SelectionController.h:
37887        * WebCore/editing/VisiblePosition.cpp:
37888        
378892007-05-17  Adele Peterson  <adele@apple.com>
37890
37891        Reviewed by Mitz.
37892
37893        Fix for <rdar://problem/5096035> REGRESSION: rtl text should be left-aligned in <select>s
37894
37895        Test: fast/text/international/bidi-menulist.html
37896
37897        * rendering/RenderMenuList.cpp:
37898        (WebCore::RenderMenuList::adjustInnerStyle): Set the inner block style to direction: ltr, and text-align: left.  This means that
37899         we will ignore those settings in the button to match the way the text is displayed in the popup menu.
37900        (WebCore::RenderMenuList::createInnerBlock): Call adjustInnerStyle.
37901        (WebCore::RenderMenuList::setStyle): ditto.
37902        * rendering/RenderMenuList.h: Added adjustInnerStyle.
37903
379042007-05-17  Justin Garcia  <justin.garcia@apple.com>
37905
37906        Reviewed by harrison
37907
37908        <rdar://problem/4924441> List becomes nested when changing its type
37909        <rdar://problem/5210032> Content before a list is placed at the end of the list when its made into a list item
37910        <rdar://problem/5207369> Crash when removing ordering from a nested list
37911
37912        * editing/InsertListCommand.cpp:
37913        (WebCore::InsertListCommand::doApply):
37914        The outermostEnclosingList of the position before the start isn't
37915        the previousList if it contains the start.
37916        Ditto for the position after the end and the nextList.
37917        If we're putting the newly created list item into the next list,
37918        insert it at the start of that list, not the end (don't append).
37919        Avoid nesting newly created lists inside list items.
37920        
379212007-05-17  Patti Hoa  <patti@apple.com>
37922
37923        Reviewed by Darin.
37924        
37925        <rdar://problem/4775672> AXTextMarkerRangeForUnorderedTextMarkers returns incorrect order
37926        
37927        * bridge/mac/WebCoreAXObject.mm:
37928        (-[WebCoreAXObject doAXTextMarkerRangeForUnorderedTextMarkers:]):
37929        A selection's m_start is not guranteed to equal m_base since m_start can actually be m_base's downstream().
37930        A more accurate way to determine the order from selection is to ask directly for isBaseFirst().
37931        In addition, if the two visible positions given are the same position but different affinity, we need to 
37932        handle it here rather than depend on the selection. This is because selection does not retain the
37933        affinity of both selection start/end visible positions as part of the selection validation. 
37934
379352007-05-17  Mitz Pettel  <mitz@webkit.org>
37936
37937        Reviewed by Brady
37938
37939        - fix http://bugs.webkit.org/show_bug.cgi?id=13759
37940          REGRESSION (r20182-r20184): Incorrect rendering of multipart images
37941
37942        Test: http/tests/multipart/invalid-image-data.html
37943
37944        * loader/loader.cpp:
37945        (WebCore::Loader::didReceiveData): Make a copy of the current part's data
37946        instead of using the resource data, because the latter is going to be
37947        overwritten by the new part being received.
37948
379492007-05-17  Oliver Hunt  <oliver@apple.com>
37950
37951        Reviewed by Justin.
37952
37953        Fix for <rdar://problem/4244861> Safari fails to create image file
37954        after releasing dragged image that has changed on source page
37955
37956        Tell xcode to copy HTMLImageElement.h and HTMLImageLoader.h headers
37957        across to WebKit as private headers.
37958
37959        * WebCore.xcodeproj/project.pbxproj:
37960
379612007-05-17  Justin Garcia  <justin.garcia@apple.com>
37962
37963        Reviewed by harrison
37964
37965        <rdar://problem/5190926> 
37966        Gmail Editor: Crash when removing list style from underlined, multi-item list
37967        
37968        The user underlined some text, then created a list.
37969        The list was placed inside the inline element carrying 
37970        the underline style, so, that element surrounded the 
37971        list instead of being at the lowest level (just above 
37972        text nodes). This kind of markup is more difficult to 
37973        edit. Filed 5192089 and added a workaround so that we 
37974        don't produce this kind of markup.
37975
37976        * editing/InsertListCommand.cpp:
37977        (WebCore::InsertListCommand::doApply): Avoid inline
37978        elements when inserting the new list.
37979
379802007-05-17  David Hyatt  <hyatt@apple.com>
37981
37982        Allow redundant attributes with the same name in view source mode.
37983
37984        Reviewed by aroben
37985
37986        * dom/NamedAttrMap.h:
37987        (WebCore::NamedAttrMap::insertAttribute):
37988        * html/HTMLTokenizer.cpp:
37989        (WebCore::Token::addAttribute):
37990
379912007-05-17  George Staikos  <staikos@kde.org>
37992
37993        - Back out last patch based on discussion with Zack.
37994
37995        * platform/qt/WidgetQt.cpp:
37996        (WebCore::Widget::paint):
37997
379982007-05-16  Anders Carlsson  <andersca@apple.com>
37999
38000        Reviewed by Darin.
38001
38002        <rdar://problem/5207156> Hamachi test tool causes assertion in FormCompletionController in Safari
38003
38004        This happens because the form delegate gets passed the wrong source frame during the second submit().
38005        If a frame with the given name is found, FrameLoader::load is called with the same parameters on the found frame.
38006        This causes the found frame to be used as the source frame, which is wrong.
38007        
38008        The fix is to create the form state object before checking what frame to load the new request in. 
38009        
38010        * WebCore.exp:
38011        * loader/FrameLoader.cpp:
38012        (WebCore::FrameLoader::load):
38013        (WebCore::FrameLoader::checkNavigationPolicy):
38014        (WebCore::FrameLoader::continueAfterNavigationPolicy):
38015        * loader/FrameLoader.h:
38016        * manual-tests/submit-form-with-target-twice.html: Added.
38017
380182007-05-16  Maciej Stachowiak  <mjs@apple.com>
38019
38020        Reviewed by Oliver.
38021
38022        <rdar://problem/5205914> REGRESSION: PLT stops after loading first page due to r21479
38023        
38024        * loader/FrameLoader.cpp:
38025        (WebCore::FrameLoader::frameHasLoaded):
38026
380272007-05-16  David Hyatt  <hyatt@apple.com>
38028
38029        Improve the syntax-highlighted view source mode.  It now preserves all whitespace properly
38030        and highlights doctypes and comments (in addition to all the stuff it could highlight before).
38031
38032        Reviewed by aroben
38033
38034        * html/HTMLTokenizer.cpp:
38035        (WebCore::Token::addAttribute):
38036        (WebCore::HTMLTokenizer::parseTag):
38037        * html/HTMLTokenizer.h:
38038        (WebCore::Token::Token):
38039        (WebCore::Token::~Token):
38040        (WebCore::Token::reset):
38041        (WebCore::Token::addViewSourceChar):
38042        * html/HTMLViewSourceDocument.cpp:
38043        (WebCore::HTMLViewSourceDocument::addViewSourceToken):
38044        * html/HTMLViewSourceDocument.h:
38045
380462007-05-16  Maciej Stachowiak  <mjs@apple.com>
38047
38048        Reviewed by Adam.
38049
38050        <rdar://problem/5191024> Page never loads completely (emonome.vodpod.com)
38051        <rdar://problem/5205162> REGRESSION (r21367): In the Address URL field, typing a site name doesn't redirect to site after pressing return
38052        http://bugs.webkit.org/show_bug.cgi?id=13683
38053        <rdar://problem/5208951> REGRESSION: Progress bar never completes on link click that downloads (13694)
38054        http://bugs.webkit.org/show_bug.cgi?id=13694
38055        <rdar://problem/5201598> REGRESSION: After uploading file to iDisk at mac.com, "loading" status remains and file does not appear in the list
38056        
38057        * loader/FrameLoader.cpp:
38058        (WebCore::FrameLoader::mainReceivedCompleteError): Make sure to always check whether the overall
38059        load completed, even if we think the current frame load is already complete.
38060
380612007-05-16  Beth Dakin  <bdakin@apple.com>
38062
38063        Reviewed by Hyatt.
38064
38065        Fix for <rdar://problem/5204107> REGRESSION: CSS web forum site 
38066        layout not displaying properly in latest WebKit
38067
38068        Hyatt's http://trac.webkit.org/projects/webkit/changeset/21428 
38069        exposed this bug. We were not handling error cases with <caption> 
38070        correctly. This patch makes them do the same thing as colgroup.
38071
38072        * html/HTMLParser.cpp:
38073        (WebCore::HTMLParser::handleError):
38074        * html/HTMLParserErrorCodes.cpp: No need any more for caption-
38075        specific errors.
38076        (WebCore::htmlParserErrorMessageTemplate):
38077        * html/HTMLParserErrorCodes.h:
38078        (WebCore::):
38079
380802007-05-16  Kevin McCullough  <kmccullough@apple.com>
38081
38082        Reviewed by Darin and Geoff.
38083
38084        - rdar://problem/4981886
38085        - Now windows opened by the DOM can be closed by JS.
38086
38087        * bindings/js/kjs_window.cpp:
38088        (KJS::createNewWindow):
38089        (KJS::WindowFunc::callAsFunction):
38090        * loader/FrameLoader.cpp:
38091        (WebCore::FrameLoader::FrameLoader):
38092        (WebCore::FrameLoader::openedByDOM):
38093        (WebCore::FrameLoader::setOpenedByDOM):
38094        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
38095        * loader/FrameLoader.h:
38096
380972007-05-16  Darin Adler  <darin@apple.com>
38098
38099        Reviewed by Hyatt.
38100
38101        - fix <rdar://problem/4928671> Crash due to runaway recursion when fieldset has display: table-row (12066)
38102
38103        Test: fast/css/fieldset-display-row.html
38104
38105        * rendering/RenderContainer.cpp: (WebCore::RenderContainer::addChild):
38106        Change all decision making about special handling for new children to use
38107        the class of the render object instead of the style, except for the cases
38108        where the style is the only way to tell (TABLE_COLUMN_GROUP and TABLE_CAPTION).
38109        Thus a RenderFieldset with table-row style won't get handled as if it was
38110        a table row.
38111
38112        * rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): Same thing.
38113        Except that here the styles that we ahave to look at are TABLE_CAPTION,
38114        TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, and TABLE_ROW_GROUP.
38115
381162007-05-16  Zack Rusin  <zrusin@trolltech.com>
38117
38118        Reviewed by Lars.
38119
38120        Implement bigger parts of the Canvas element in the
38121        Qt port. Gradients and patterns are missing.
38122
38123        * WebCore/html/CanvasRenderingContext2D.cpp:
38124        * WebCore/html/CanvasStyle.cpp:
38125        * WebCore/html/HTMLCanvasElement.cpp:
38126        * WebCore/html/HTMLCanvasElement:
38127
381282007-05-16  Zack Rusin  <zrusin@trolltech.com>
38129
38130        Reviewed by Lars
38131
38132        Fix shared timers, make them use miliseconds. Based
38133        on a patch from George.
38134
38135        * WebCore/platform/qt/SharedTimerQt.cpp:
38136       (WebCore::setSharedTimerFireTime):
38137
381382007-05-16  David Hyatt  <hyatt@apple.com>
38139
38140        Add rudimentary error reporting to the HTML parser.  This is disabled
38141        for now until it gets beefed up a bit more (and until we work out how
38142        best to pass the messages up without hurting perf).
38143
38144        Clean up and remove dead error handling code and incorrect error handling
38145        code as well.
38146
38147        Reviewed by mjs
38148
38149        * WebCore.xcodeproj/project.pbxproj:
38150        * html/HTMLParser.cpp:
38151        (WebCore::HTMLParser::HTMLParser):
38152        (WebCore::HTMLParser::handleError):
38153        (WebCore::HTMLParser::headCreateErrorCheck):
38154        (WebCore::HTMLParser::reportErrorToConsole):
38155        * html/HTMLParser.h:
38156        (WebCore::HTMLParser::reportError):
38157        * html/HTMLParserErrorCodes.cpp: Added.
38158        (WebCore::htmlParserErrorMessageTemplate):
38159        * html/HTMLParserErrorCodes.h: Added.
38160        (WebCore::):
38161        * html/HTMLTokenizer.h:
38162        (WebCore::HTMLTokenizer::tagStartLineNumber):
38163
381642007-05-15  David Hyatt  <hyatt@apple.com>
38165
38166        Make FrameLoader write "<html><body>" instead of just "<body>".
38167
38168        Reviewed by aroben
38169
38170        * loader/FrameLoader.cpp:
38171        (WebCore::FrameLoader::init):
38172
381732007-05-15  George Staikos  <staikos@kde.org>
38174
38175        Reviewed by Adam Roben.
38176
38177        - Pass cookies through from the loader.
38178
38179        * platform/network/qt/ResourceHandleManagerQt.cpp:
38180        (WebCore::ResourceHandleManager::receivedResponse):
38181
381822007-05-15  Adam Treat  <adam@staikos.net>
38183
38184        Reviewed by George Staikos.
38185
38186        - Implement drawArc with proper units.
38187
38188        * platform/graphics/qt/GraphicsContextQt.cpp:
38189        (WebCore::GraphicsContext::strokeArc):
38190
381912007-05-15  Adam Treat  <adam@staikos.net>
38192
38193        Reviewed by George Staikos.
38194
38195        - Add missing paint for nested subframes.
38196
38197        * platform/qt/WidgetQt.cpp:
38198        (WebCore::Widget::paint):
38199
382002007-05-15  Sam Weinig  <sam@webkit.org>
38201
38202        Reviewed by Oliver.
38203
38204        - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38205          Finish testing and fixing the setting of DOM attributes to JS null
38206
38207          Convert JS null to null string for SVG attributes.
38208
38209        Test: fast/dom/svg-element-attribute-js-null.xhtml
38210
38211        * ksvg2/svg/SVGAngle.idl:
38212        * ksvg2/svg/SVGElement.idl:
38213        * ksvg2/svg/SVGLength.idl:
38214        * ksvg2/svg/SVGScriptElement.idl:
38215
382162007-05-15  Sam Weinig  <sam@webkit.org>
38217
38218        Reviewed by Oliver.
38219
38220        - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38221          Finish testing and fixing the setting of DOM attributes to JS null
38222
38223          Convert JS null to null string for CanvasRenderingContext2D attributes.
38224
38225        Test: fast/dom/canvasContext2d-element-attribute-js-null.html
38226
38227        * html/CanvasRenderingContext2D.idl:
38228
382292007-05-15  Oliver Hunt  <oliver@apple.com>
38230
38231        Reviewed by Sam and Geoff.
38232
38233        Removing dead code left behind from drag and drop refactoring.
38234
38235        * page/mac/WebCoreFrameBridge.h:
38236
382372007-05-15  Sam Weinig  <sam@webkit.org>
38238
38239        Reviewed by Oliver.
38240
38241        - Second Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38242          Finish testing and fixing the setting of DOM attributes to JS null
38243
38244          Convert JS null to null string for remaining CSSOM attributes.
38245
38246        Test: fast/dom/css-element-attribute-js-null.html
38247
38248        * bindings/js/kjs_css.cpp:
38249        (KJS::DOMCSSStyleDeclaration::put):
38250        (KJS::DOMMediaList::put):
38251        (KJS::DOMCSSRule::putValueProperty):
38252        (KJS::DOMCSSValue::put):
38253        * css/CSSPageRule.idl:
38254        * css/CSSRule.idl:
38255        * css/CSSStyleDeclaration.idl:
38256        * css/CSSStyleRule.idl:
38257        * css/CSSValue.idl:
38258        * css/MediaList.idl:
38259
382602007-05-15  Darin Adler  <darin@apple.com>
38261
38262        Reviewed by Hyatt.
38263
38264        * css/html4.css: Remove wbr style rule -- not needed any more.
38265
382662007-05-15  Mitz Pettel  <mitz@webkit.org>
38267
38268        Reviewed by Brady
38269
38270        - fix http://bugs.webkit.org/show_bug.cgi?id=13360
38271          REGRESSION: Crash closing live web cam viewer page
38272
38273        Test: http/tests/misc/multipart.html
38274
38275        * loader/ResourceLoader.cpp:
38276        (WebCore::ResourceLoader::didFail): Avoid calling didFailToLoad() if
38277        didFinishLoad() has already been called (when the first part of a
38278        multipart resource arrived).
38279        (WebCore::ResourceLoader::didCancel): Ditto.
38280
382812007-05-15  Sam Weinig  <sam@webkit.org>
38282
38283        Reviewed by Darin.
38284
38285        - Patch for http://bugs.webkit.org/show_bug.cgi?id=13722
38286          Finish testing and fixing the setting of DOM attributes to JS null
38287
38288          Convert JS null to null string for remaining Core DOM attributes.
38289
38290        Test: fast/dom/coreDOM-element-attribute-js-null.xhtml
38291
38292        * dom/Attr.cpp:
38293        (WebCore::Attr::setValue): Don't throw an expection for null values as this
38294        is not in the spec and Firefox does not do it either.
38295        * dom/Attr.idl:
38296        * dom/CharacterData.idl:
38297        * dom/ProcessingInstruction.idl:
38298
382992007-05-15  Mitz Pettel  <mitz@webkit.org>
38300
38301        Reviewed by Hyatt.
38302
38303        - fix http://bugs.webkit.org/show_bug.cgi?id=13718
38304          REGRESSION (r21093): editing/execCommand/5136770.html failing pixel test
38305
38306        * rendering/RenderContainer.cpp:
38307        (WebCore::RenderContainer::removeChildNode): Moved the code that clears the
38308        selection when moving a selection border into the fast path.
38309
383102007-05-15  Rob Buis  <buis@kde.org>
38311
38312        Reviewed by Hyatt.
38313
38314        http://bugs.webkit.org/show_bug.cgi?id=6487
38315        "Make Text Bigger/Smaller" affects SVGs when it probably shouldn't
38316
38317        Ignore Make Text Bigger/Smaller for SVG text.
38318
38319        * css/svg.css:
38320
383212007-05-15  Anders Carlsson  <andersca@apple.com>
38322
38323        Reviewed by Maciej.
38324
38325        <rdar://problem/5183685>
38326        http://bugs.webkit.org/show_bug.cgi?id=13301
38327        ASSERT or null value when trying to use a getter defined on a window object
38328
38329        Handle the case where the value returned is a getter/setter object.
38330        
38331        * bindings/js/kjs_window.cpp:
38332        (KJS::Window::getOverridePropertySlot):
38333
383342007-05-14  Anders Carlsson  <andersca@apple.com>
38335
38336        Reviewed by Geoff.
38337
38338        <rdar://problem/5200816>
38339        REGRESSION: With Shiira 1.2.2 , I can't open embedded link in flash object by clicking (http:/www.adobe.com )
38340        
38341        Shiira under some circumstances passes nil as the request to -[WebFrame loadRequest:]. ToT WebKit doesn't call any policy
38342        delegate methods in this case, which means that the page is actually being loaded. 
38343        
38344        This patch makes ToT WebKit behave in the same way as Tiger WebKit when the request is nil.
38345        
38346        * loader/FrameLoader.cpp:
38347        (WebCore::FrameLoader::checkNavigationPolicy):
38348        Don't continue without calling the navigation policy method if the request is null.
38349        
38350        (WebCore::FrameLoader::continueAfterNavigationPolicy):
38351        If the request can't be handled, don't continue the load.
38352        
38353        * platform/network/mac/ResourceRequestMac.mm:
38354        (WebCore::ResourceRequest::doUpdatePlatformRequest):
38355        Don't create an NSURLRequest object if the request is null.
38356
383572007-05-15  Maciej Stachowiak  <mjs@apple.com>
38358
38359        Reviewed by Hyatt and Lars.
38360
38361        - fixed <rdar://problem/5201758> REGRESSION: Stop button enabled and other problems caused by [WebView currentURL] returning non-nil for empty window
38362
38363        * WebCore.exp: export new symbol
38364        * loader/FrameLoader.cpp:
38365        (WebCore::FrameLoader::begin): move marker that we committed a real doc load from here...
38366        (WebCore::FrameLoader::transitionToCommitted): ...to here
38367        (WebCore::FrameLoader::frameHasLoaded): check that we have at least started loading something
38368        besides the initial empty doc.
38369        * loader/FrameLoader.h:
38370
383712007-05-14  Justin Garcia  <justin.garcia@apple.com>
38372
38373        Reviewed by ggaren
38374        
38375        <http://bugs.webkit.org/show_bug.cgi?id=13716>
38376        REGRESSION: Three new layout test failures
38377        
38378        Two failures are correct.  Updated their expected results.
38379        
38380        In fast/events/frame-tab-focus.html, as we advance
38381        through focusable nodes, we descend into a subframe
38382        to focus a node and then ascend out of it into the
38383        main frame to focus the next.  When we focus the main 
38384        frame, the node in that frame that was previously 
38385        focused and contains an inactive selection is focused 
38386        momentarily because setCaretVisible tries to focus the 
38387        node containing the caret.
38388
38389        * page/Frame.cpp:
38390        (WebCore::Frame::setCaretVisible): Don't focus the
38391        node containing the caret. FocusController will focus
38392        the previously focused node (which will contain the
38393        caret) if necessary when the frame gains focus.
38394        
383952007-05-14  Maciej Stachowiak  <mjs@apple.com>
38396
38397        Reviewed by Brady.
38398
38399        - fixed <rdar://problem/5203036> REGRESSION: Assertion failure in WebCore::FrameLoader::restoreScrollPositionAndViewState() going back from fark.com Photoshop contest (13684)
38400
38401        Test: http/tests/navigation/back-to-slow-frame.html
38402        
38403        * loader/FrameLoader.cpp:
38404        (WebCore::FrameLoader::restoreScrollPositionAndViewState): Add needed early return.
38405
384062007-05-14  Mitz Pettel  <mitz@webkit.org>
38407
38408        Reviewed by Dave Hyatt.
38409
38410        - fix http://bugs.webkit.org/show_bug.cgi?id=13603
38411          style leaks in washingtonpost.com
38412          also known as http://bugs.webkit.org/show_bug.cgi?id=8750
38413          w3c.org: incorrect recovery from unclosed <a> elements
38414          also known as http://bugs.webkit.org/show_bug.cgi?id=12808
38415          Handling of misnested tags results in entire page appearing as link
38416          also known as http://bugs.webkit.org/show_bug.cgi?id=12861
38417          Post text renders as link
38418
38419        Test: fast/parser/residual-style-close-across-n-blocks.html
38420
38421        * html/HTMLParser.cpp:
38422        (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Changed to
38423        deal with multiple block crossings instead of bailing out, by doing multiple
38424        reparenting passes, starting from the outermost block.
38425
384262007-05-14  Mitz Pettel  <mitz@webkit.org>
38427
38428        Reviewed by Darin.
38429
38430        - fix http://bugs.webkit.org/show_bug.cgi?id=13711
38431          REGRESSION - Bookmark Bar text rendering changed
38432
38433        No test possible since this patch affects only Safari chrome.
38434
38435        * platform/Font.cpp:
38436        (WebCore::Font::Font): Initialize m_isPlatformFont according to whether
38437        the Font object is derived from a FontPlatformData or not.
38438        * platform/Font.h:
38439        (WebCore::Font::isPlatformFont): Added. Returns whether this Font was
38440        derived from a platform font.
38441        * platform/mac/FontCacheMac.mm:
38442        (WebCore::FontCache::getFontDataForCharacters): Changed to not enable
38443        synthetic bold and italic in the fallback fonts if the original font
38444        was derived from a platform font.
38445
384462007-05-14  Sam Weinig  <sam@webkit.org>
38447
38448        Reviewed by Alice!
38449
38450        - Patch for http://bugs.webkit.org/show_bug.cgi?id=13541
38451          REGRESSION: Setting a DOMString attribute to JS null in the 
38452          JS bindings should default to converting to the empty string
38453
38454          Convert JS null to the empty string when passing it to an attribute that takes
38455          a DOMString.
38456
38457        Test: fast/dom/document-attribute-js-null.html
38458        Test: fast/dom/element-attribute-js-null.html
38459
38460        * bindings/js/kjs_dom.cpp:
38461        (KJS::DOMNode::putValueProperty):
38462        * bindings/js/kjs_html.cpp:
38463        (KJS::JSHTMLDocument::putValueProperty):
38464        (KJS::JSHTMLElement::objectSetter):
38465        (KJS::JSHTMLElement::embedSetter):
38466        (KJS::JSHTMLElement::tableSetter):
38467        (KJS::JSHTMLElement::tableCaptionSetter):
38468        (KJS::JSHTMLElement::tableColSetter):
38469        (KJS::JSHTMLElement::tableSectionSetter):
38470        (KJS::JSHTMLElement::tableRowSetter):
38471        (KJS::JSHTMLElement::tableCellSetter):
38472        (KJS::JSHTMLElement::frameSetSetter):
38473        (KJS::JSHTMLElement::frameSetter):
38474        (KJS::JSHTMLElement::iFrameSetter):
38475        (KJS::JSHTMLElement::marqueeSetter):
38476        (KJS::JSHTMLElement::putValueProperty):
38477        * bindings/js/kjs_html.h:
38478        * dom/Document.idl:
38479        * dom/Node.idl:
38480        * html/HTMLAnchorElement.idl:
38481        * html/HTMLAppletElement.idl:
38482        * html/HTMLAreaElement.idl:
38483        * html/HTMLBRElement.idl:
38484        * html/HTMLBaseElement.idl:
38485        * html/HTMLBaseFontElement.idl:
38486        * html/HTMLBlockquoteElement.idl:
38487        * html/HTMLBodyElement.idl:
38488        * html/HTMLButtonElement.idl:
38489        * html/HTMLDivElement.idl:
38490        * html/HTMLDocument.idl:
38491        * html/HTMLElement.idl:
38492        * html/HTMLEmbedElement.idl:
38493        * html/HTMLFontElement.idl:
38494        * html/HTMLFormElement.idl:
38495        * html/HTMLFrameElement.idl:
38496        * html/HTMLFrameSetElement.idl:
38497        * html/HTMLHRElement.idl:
38498        * html/HTMLHeadElement.idl:
38499        * html/HTMLHeadingElement.idl:
38500        * html/HTMLHtmlElement.idl:
38501        * html/HTMLIFrameElement.idl:
38502        * html/HTMLImageElement.idl:
38503        * html/HTMLInputElement.idl:
38504        * html/HTMLIsIndexElement.idl:
38505        * html/HTMLLIElement.idl:
38506        * html/HTMLLabelElement.idl:
38507        * html/HTMLLegendElement.idl:
38508        * html/HTMLLinkElement.idl:
38509        * html/HTMLMapElement.idl:
38510        * html/HTMLMetaElement.idl:
38511        * html/HTMLModElement.idl:
38512        * html/HTMLOListElement.idl:
38513        * html/HTMLObjectElement.idl:
38514        * html/HTMLOptGroupElement.idl:
38515        * html/HTMLOptionElement.idl:
38516        * html/HTMLParagraphElement.idl:
38517        * html/HTMLParamElement.idl:
38518        * html/HTMLQuoteElement.idl:
38519        * html/HTMLScriptElement.idl:
38520        * html/HTMLSelectElement.idl:
38521        * html/HTMLStyleElement.idl:
38522        * html/HTMLTableCaptionElement.idl:
38523        * html/HTMLTableCellElement.idl:
38524        * html/HTMLTableColElement.idl:
38525        * html/HTMLTableElement.idl:
38526        * html/HTMLTableRowElement.idl:
38527        * html/HTMLTableSectionElement.idl:
38528        * html/HTMLTextAreaElement.idl:
38529        * html/HTMLTitleElement.idl:
38530        * html/HTMLUListElement.idl:
38531
385322007-05-14  Geoffrey Garen  <ggaren@apple.com>
38533
38534        Trying to fix the Qt build.
38535
38536        * WebCore.pro:
38537
385382007-05-14  Geoffrey Garen  <ggaren@apple.com>
38539
38540        Reviewed by Oliver Hunt.
38541        
38542        Some improvements on my last patch, suggested by Darin.
38543
38544        * history/PageCache.cpp:
38545        (WebCore::PageCache::autoreleaseNow): Swap with an empty set instead of 
38546        building up an array and then calling clear(). This is slightly more 
38547        efficient and the code is cleaner.
38548
385492007-05-14  Justin Garcia  <justin.garcia@apple.com>
38550
38551        Reviewed by darin
38552        
38553        <rdar://problem/5136696> Selection is removed when focusing a node in another frame
38554        <rdar://problem/5192388> WordPress: Can't insert links/images
38555        
38556        Don't clear a selection when changing focus if the new
38557        focus node is in a different frame than the old selection.
38558
38559        * dom/Document.cpp:
38560        (WebCore::Document::setFocusedNode): Moved code to clear 
38561        selections to the FocusController, since it is Page level 
38562        and will know about the frame/document that contained the 
38563        old selection. Moved code to call shouldEndEditing to the 
38564        FocusController because selections are now cleared before
38565        calling Document::setFocusedNode and shouldEndEditing must
38566        be called before selections are cleared.
38567        * dom/Element.cpp:
38568        (WebCore::Element::blur): Call FocusController::setFocusNode
38569        instead of Document::setFocusNode, if possible.
38570        * page/EventHandler.cpp:
38571        (WebCore::EventHandler::dispatchMouseEvent): Ditto.
38572        * page/FocusController.cpp:
38573        (WebCore::relinquishesEditingFocus): Moved from Document.cpp.
38574        (WebCore::clearSelectionIfNeeded): Ditto.  Don't clear if
38575        the old selection is in a frame that's different than the 
38576        one that contains the new focus node.
38577        (WebCore::FocusController::setFocusedNode): Moved code
38578        here from Document::setFocusedNode.
38579        * page/Frame.cpp:
38580        (WebCore::Frame::setFocusedNodeIfNeeded): Call
38581        FocusController::setFocusNode.
38582
385832007-05-14  Geoffrey Garen  <ggaren@apple.com>
38584
38585        Reviewed by Darin Adler.
38586        
38587        Next step toward fixing <rdar://problem/5055182> The back cache has no 
38588        global cap.
38589        
38590        Created a PageCache singleton. Right now, it only handles the timer-based
38591        deallocation of cached pages. I plan to add HistoryItem->CachedPage tracking
38592        and eviction logic in later patches.
38593
38594        Updated for renames and file changes:
38595
38596        * WebCore.exp:
38597        * WebCore.xcodeproj/project.pbxproj:
38598        * history/BackForwardList.cpp:
38599        (WebCore::BackForwardList::setPageCacheSize):
38600        (WebCore::BackForwardList::clearPageCache):
38601
38602        Removed global timed release code, moved into new PageCache class, since
38603        it's eventually going to be in charge of deciding when things are released:
38604        
38605        * history/HistoryItem.cpp:
38606        (WebCore::HistoryItem::setCachedPage):
38607        * history/HistoryItem.h:
38608
38609        Folded into PageCache:
38610        
38611        * history/HistoryItemTimer.cpp: Removed.
38612        * history/HistoryItemTimer.h: Removed.
38613
38614        New singleton. Right now, it just handles timed release of cached pages:
38615        
38616        * history/PageCache.cpp: Added.
38617        (WebCore::pageCache):
38618        (WebCore::PageCache::PageCache):
38619        (WebCore::PageCache::autoreleaseNowOrReschedule):
38620        (WebCore::PageCache::autoreleaseNow):
38621        (WebCore::PageCache::autorelease):
38622        * history/PageCache.h: Added.
38623
386242007-05-14  Adele Peterson  <adele@apple.com>
38625
38626        Reviewed by Darin.
38627
38628        Fix for <rdar://problem/5200081> Repro crash in PopupMenu::show clicking popup menu button after reload
38629
38630        * platform/mac/PopupMenuMac.mm: (WebCore::PopupMenu::show): Added call to dismissPopup so the cell gets unattached properly.
38631
386322007-05-14  Adele Peterson  <adele@apple.com>
38633
38634        Reviewed by Darin.
38635
38636        Remove incorrect assertion.
38637
38638        * page/FrameView.cpp: (WebCore::FrameView::setContentsPos):
38639
386402007-05-14  Anders Carlsson  <andersca@apple.com>
38641
38642        Reviewed by Geoff.
38643
38644        <rdar://problem/5172056> Regression: cannot open txt file, get broken image
38645
38646        Never let plug-ins override text/plain.
38647        
38648        * dom/DOMImplementation.cpp:
38649        (WebCore::DOMImplementation::createDocument):
38650
386512007-05-14  Zack Rusin  <zrusin@trolltech.com>
38652
38653        Reviewed by Simon.
38654
38655        Do some magic to get better dependency tracking for header
38656        files in the qmake project files.
38657
38658        * ChangeLog:
38659
386602007-05-14  Lars Knoll <lars@trolltech.com>
38661
38662        Reviewed by Zack
38663
38664        Required updates after Maciej's frame change.
38665
38666        * loader/FrameLoader.cpp:
38667        (WebCore::FrameLoader::mainReceivedCompleteError):
38668              Call checkLoadCompleted() at the end of the method. Without it
38669              we never get the loadDone() signal on the Qt port.
38670        * platform/network/qt/ResourceHandleManagerQt.cpp:
38671        (WebCore::ResourceHandleManager::receivedFinished):
38672              Don't pass a null error to didFail().
38673
386742007-05-14  Darin Adler  <darin@apple.com>
38675
38676        Reviewed by Antti.
38677
38678        - fix <rdar://problem/3109180> VIP: after go back, page jumps after loading even if I scrolled while loading
38679
38680        * history/CachedPage.cpp: (WebCore::CachedPage::clear): Call clearFrame rather than
38681        clearPart -- the "part" term was leftover prehistoric terminology.
38682
38683        * loader/FrameLoader.cpp:
38684        (WebCore::FrameLoader::open): Call setWasScrolledByUser(false) on the page, so that we
38685        can detect any user scrolling that happens during the "go back" process.
38686        (WebCore::FrameLoader::restoreScrollPositionAndViewState): Don't scroll if the view's
38687        wasScrolledByUser flag is set.
38688        (WebCore::FrameLoader::loadItem): Call setWasScrolledByUser(false) false when we do
38689        a new "load" (actually just a scroll) using the same frame. Also moved the line of code that
38690        sets m_currentHistoryItem to make this code path mroe similar to recursiveGoToItem.
38691        (WebCore::FrameLoader::recursiveGoToItem): Ditto.
38692
38693        * page/Frame.cpp:
38694        (WebCore::Frame::~Frame): Call clearFrame rather than stting m_frame directly.
38695        (WebCore::Frame::sendScrollEvent): Call setWasScrolledByUser(true) on FrameView. The FrameView
38696        itself knows to ignore this if the scrolling is being done programmatically instead of by the user.
38697
38698        * page/FrameView.h: Added wasScrolledByUser and setWasScrolledByUser. Also removed unneeded
38699        include and class forward declarations, renamed clearPart to clearFrame, removed uneeded function
38700        haveDelayedLayoutScheduled, and removed unneeded friend declarations.
38701        * page/FrameView.cpp:
38702        (WebCore::FrameViewPrivate::FrameViewPrivate): Added m_inProgrammaticScroll and m_wasScrolledByUser.
38703        (WebCore::FrameViewPrivate::reset): Set m_wasScrolledByUser to false.
38704        (WebCore::FrameView::clearFrame): Renamed from clearPart.
38705        (WebCore::FrameView::scrollRectIntoViewRecursively): Added code to set the m_inProgrammaticScroll flag.
38706        (WebCore::FrameView::setContentsPos): Ditto.
38707        (WebCore::FrameView::wasScrolledByUser): Added.
38708        (WebCore::FrameView::setWasScrolledByUser): Added. Does nothing if called when m_inProgrammaticScroll
38709        is true.
38710
387112007-05-14  Darin Adler  <darin@apple.com>
38712
38713        Reviewed by Antti.
38714
38715        - <rdar://problem/4865655> REGRESSION: find function does not work for the character ß
38716
38717        The trick was to fold case consistently in the CircularSearchBuffer class.
38718
38719        The problem was that we were folding the search target string with full case folding and
38720        the characters of the text we were searching with simple case folding. We now use full
38721        case folding in both cases.
38722
38723        * editing/TextIterator.cpp:
38724        (WebCore::CircularSearchBuffer::CircularSearchBuffer): Changed the buffer to be a
38725        Vector<UChar>. Added a Vector<bool> to record which characters were starts of characters
38726        in the text we are searching. Changed the cursor to be an int rather than a pointer.
38727        (WebCore::CircularSearchBuffer::append): New function that knows how to append multiple
38728        characters when folding case turns one character into many -- uses the full foldCase
38729        rather than the simplified single-character foldCase. Also removed the append function
38730        that did multiple characters at once; that was part of an optimization we don't need.
38731        (WebCore::CircularSearchBuffer::isMatch): Instead of asserting that the buffer is full,
38732        changed this to return false if it's not full, which lets us fill up the buffer with
38733        the normal loop. Also return false if the start of the buffer is half-way through a
38734        case-folded character and updated this since m_cursor is now an integer.
38735        (WebCore::CircularSearchBuffer::length): This returns the length in non-case-folded
38736        characters of the characters that were appended, which may not be the same as the length
38737        of the original target string. To do that we have to total up the character start
38738        booleans for the current state of the circular buffer.
38739        (WebCore::findPlainText): Streamlined the logic in a few ways: 1) Moved more of the
38740        return value setup to the top of the function so it could be shared with the early
38741        error exit. 2) Removed the separate "fill the buffer" logic, which allowed me to
38742        remove some of the functions from CircularSearchBuffer and eliminated the need for
38743        two nested loops. 3) Replaced the CharacterIterator and bool that were used to record
38744        the location we found with integers matchStart and matchLength. 4) Got rid of the use
38745        of goto since we don't have two nested loops any more.
38746
387472007-05-14  Andrew Wellington  <proton@wiretapped.net>
38748
38749        Reviewed by Darin.
38750
38751        Fix http://bugs.webkit.org/show_bug.cgi?id=13275
38752        Safari crashed when trying to login using the windows live contact control
38753
38754        Check for cleared windowObj in JSAbstractEventListener::handleEvent
38755
38756        * bindings/js/kjs_events.cpp:
38757        (KJS::JSAbstractEventListener::handleEvent):
38758
387592007-05-13  Alexey Proskuryakov  <ap@webkit.org>
38760
38761        Reviewed by Darin.
38762
38763        http://bugs.webkit.org/show_bug.cgi?id=13690
38764        JavaScript Form Validation issue on Banco do Brasil site
38765
38766        Test: fast/forms/input-setvalue-selection.html
38767
38768        * html/HTMLInputElement.cpp:
38769        (WebCore::HTMLInputElement::setValue): In other browsers, changing textInput.value
38770        always moves the insertion point past the text. In 10.4.9 WebKit, this only worked
38771        for inactive controls, and it never worked in ToT.
38772
387732007-05-13  Brady Eidson  <beidson@apple.com>
38774
38775        Reviewed by Mitz
38776
38777        http://bugs.webkit.org/show_bug.cgi?id=13701
38778
38779        Since HTMLInputElements register themselves with their Document for special handling, if their document
38780        ever changes then bad things can happen.
38781
38782        Unfortunately, with adoptNode, the document can change.  This has been a long standing crasher with all 
38783        input fields but was given recent high visibility by r21430
38784
38785        The solution is to add functionality for a Node to react to its owner document changing via a pair of 
38786        virtual callbacks.  Then we can tap into those callbacks in HTMLInputElement.
38787
38788        No layout test possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
38789
38790        * dom/Node.cpp:
38791        (WebCore::Node::setDocument): Call willMoveToNewOwnerDocument and didMoveToNewOwnerDocument
38792
38793        * dom/Node.h:
38794        (WebCore::Node::willMoveToNewOwnerDocument): Virtual callback to a node for before an owner document change
38795        (WebCore::Node::didMoveToNewOwnerDocument): Virtual callback to a node for after an owner document change
38796
38797        * html/HTMLInputElement.cpp:
38798        (WebCore::HTMLInputElement::~HTMLInputElement): Unconditionally unregister both for both form state
38799          and the cache restoration callback
38800        (WebCore::HTMLInputElement::setInputType): Change registration with the document only if we're in one
38801        (WebCore::HTMLInputElement::attach): Don't bother registering for the callback here - that will be
38802          handled by setInputType() or by a change in owner document
38803        (WebCore::HTMLInputElement::willMoveToNewOwnerDocument): Unregister with the old owner document
38804        (WebCore::HTMLInputElement::didMoveToNewOwnerDocument): Register with the new owner document
38805        * html/HTMLInputElement.h:
38806
388072007-05-13  Darin Adler  <darin@apple.com>
38808
38809        * platform/mac/TextBreakIteratorInternalICUMac.mm: Fix comment typo.
38810
388112007-05-13  Rob Buis  <buis@kde.org>
38812
38813        Reviewed by Darin.
38814
38815        http://bugs.webkit.org/show_bug.cgi?id=13529
38816        DOM3 keyIdentifier text is incorrect
38817
38818        Use 4 digits for the Unicode based key identifiers.
38819
38820        * html/HTMLButtonElement.cpp:
38821        (WebCore::HTMLButtonElement::defaultEventHandler):
38822        * html/HTMLInputElement.cpp:
38823        (WebCore::HTMLInputElement::defaultEventHandler):
38824        * html/HTMLSelectElement.cpp:
38825        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
38826        * page/EventHandler.cpp:
38827        (WebCore::EventHandler::defaultKeyboardEventHandler):
38828        * page/gdk/EventHandlerGdk.cpp:
38829        (WebCore::isKeyboardOptionTab):
38830        * page/mac/EventHandlerMac.mm:
38831        (WebCore::isKeyboardOptionTab):
38832        * page/qt/EventHandlerQt.cpp:
38833        (WebCore::isKeyboardOptionTab):
38834        * platform/gdk/KeyEventGdk.cpp:
38835        (WebCore::keyIdentifierForGdkKeyCode):
38836        * platform/mac/KeyEventMac.mm:
38837        (WebCore::keyIdentifierForKeyEvent):
38838        * platform/qt/PlatformKeyboardEventQt.cpp:
38839        (WebCore::keyIdentifierForQtKeyCode):
38840        * platform/win/KeyEventWin.cpp:
38841        (WebCore::keyIdentifierForWindowsKeyCode):
38842        * platform/wx/KeyEventWin.cpp:
38843        (WebCore::keyIdentifierForWindowsKeyCode):
38844        * platform/wx/KeyboardEventWx.cpp:
38845        (WebCore::keyIdentifierForWxKeyCode):
38846
388472007-05-12  Darin Adler  <darin@apple.com>
38848
38849        Reviewed by Antti.
38850
38851        - fix <rdar://problem/5174903> Safari crashes opening the attached webarchive (made by OmniWeb)
38852
38853        * loader/icon/IconLoader.cpp:
38854        (WebCore::IconLoader::didReceiveResponse): Check ResourceHandle for nil before calling url() on it.
38855        (WebCore::IconLoader::didFail): Ditto.
38856        (WebCore::IconLoader::didFinishLoading): Ditto.
38857
388582007-05-12  Rob Buis  <buis@kde.org>
38859
38860        Reviewed by Oliver.
38861
38862        Cleanup, get rid of the SVGStyledElement::view() call.
38863
38864        * ksvg2/svg/SVGClipPathElement.cpp:
38865        (WebCore::SVGClipPathElement::canvasResource):
38866        * ksvg2/svg/SVGFEFloodElement.cpp:
38867        (WebCore::SVGFEFloodElement::filterEffect):
38868        * ksvg2/svg/SVGGradientElement.cpp:
38869        (WebCore::SVGGradientElement::buildStops):
38870        * ksvg2/svg/SVGStyledElement.cpp:
38871        * ksvg2/svg/SVGStyledElement.h:
38872
388732007-05-12  Mitz Pettel  <mitz@webkit.org>
38874
38875        Reviewed by Hyatt.
38876
38877        - fix http://bugs.webkit.org/show_bug.cgi?id=13680
38878          Incomplete repaint of focus ring around continuation
38879
38880        Test: fast/repaint/continuation-after-outline.html
38881
38882        * rendering/RenderFlow.cpp:
38883        (WebCore::RenderFlow::absoluteClippedOverflowRect):
38884
388852007-05-12  Oliver Hunt  <oliver@apple.com>
38886
38887        Reviewed by Hyatt.
38888
38889        <rdar://problem/4728842> Can't drag-and-drop files onto <input type="file">
38890        
38891        This patch allows a file to be dropped on to a file input field.  There
38892        are a few changes for data handling and a  few to allow the data to be
38893        threaded to the appropriate places.
38894
38895        * page/DragController.cpp:
38896        (WebCore::asFileInput):
38897           When dropping a file onto a file input we may mouse over either 
38898           the element itself, or the contained button element.  This method
38899           returns the base element for the file input in either of these
38900           cases.
38901        (WebCore::DragController::tryDocumentDrag):
38902           Don't try to set the drag caret to a file input.
38903        (WebCore::DragController::concludeDrag):
38904           Handle dropping onto a file input element.
38905        (WebCore::DragController::canProcessDrag):
38906           We can now process a file being dragged onto a file input element.
38907           
38908        * platform/DragData.h:
38909           New accessors
38910           
38911        * platform/gdk/DragDataGdk.cpp:
38912        (WebCore::DragData::containsFiles):
38913        (WebCore::DragData::asFilenames):
38914           Link stubs.
38915           
38916        * platform/mac/DragDataMac.mm:
38917        (WebCore::DragData::containsFiles):
38918        (WebCore::DragData::asFilenames):
38919           Implement new accessors
38920        (WebCore::DragData::containsCompatibleContent):
38921           Update containsCompatibleContent to allow standalone files.
38922          
38923        * platform/qt/DragDataQt.cpp:
38924        (WebCore::DragData::containsFiles):
38925        (WebCore::DragData::asFilenames):
38926           Link stubs
38927                      
38928        * rendering/RenderFileUploadControl.cpp:
38929        (WebCore::RenderFileUploadControl::receiveDroppedFile):
38930        * rendering/RenderFileUploadControl.h:
38931           For security reasons we don't have an api to allow us to set 
38932           a value directly on a file input -- attempts to do so are
38933           blocked.  By adding a method to set the target through the 
38934           render we bypass such restrictions, and ensure the renderer
38935           is updated correctly.
38936
389372007-05-12  Mitz Pettel  <mitz@webkit.org>
38938
38939        Reviewed by Hyatt.
38940
38941        - fix http://bugs.webkit.org/show_bug.cgi?id=13695
38942          REGRESSION (r21387): Replaced elements' highlight rects are wrongly positioned
38943
38944        Test: fast/replaced/selection-rect.html
38945
38946        Also fixes the same problem with list markers, covered by existing test
38947        fast/lists/markers-in-selection.html.
38948
38949        * rendering/RenderListMarker.cpp:
38950        (WebCore::RenderListMarker::selectionRect):
38951        * rendering/RenderReplaced.cpp:
38952        (WebCore::RenderReplaced::selectionRect):
38953
389542007-05-12  Mitz Pettel  <mitz@webkit.org>
38955
38956        Reviewed by Darin.
38957
38958        - fix http://bugs.webkit.org/show_bug.cgi?id=13685
38959          REGRESSION (r21368-r21388): Highlighting text in scrolled textareas behaves oddly
38960
38961        Test: fast/repaint/text-selection-rect-in-overflow.html
38962
38963        * rendering/RenderText.cpp:
38964        (WebCore::RenderText::selectionRect):
38965
389662007-05-12  Brady Eidson  <beidson@apple.com>
38967
38968        Rubber stamped by Mitz
38969
38970        * html/HTMLInputElement.cpp:
38971        (WebCore::HTMLInputElement::attach): unregister->register - I screwed this one up in last minute renaming
38972          before committing  :(
38973
389742007-05-11  Brady Eidson  <beidson@apple.com>
38975
38976        Reviewed by Darin and Geoff
38977
38978        Fix for http://bugs.webkit.org/show_bug.cgi?id=13630
38979        and
38980        <rdar://problem/4873628>
38981
38982        Back/Forward cache should work with pages with login fields.
38983
38984        First change is to relocate the "useSecureKeyboardEntry" flag to the document.  This lets
38985        it persist through page cache transitions and it is truly a per-document concept more than
38986        per-frame anyways since its the document that has a password field, not the frame.
38987
38988        Second change is to introduce the concept of an Element getting a "didRestoreFromCache()" callback.
38989        The idea is for elements to register with the document if they need work to be done when the
38990        page comes out of the back/forward cache.  Currently the only client of this service is 
38991        HTMLInputElements that are input type == PASSWORD.  Such an element's implementation for this
38992        method is to call reset()
38993
38994        Finally, after a page is restored from the cache we have the document send the didRestoreFromCache()
38995        callback to its registered Elements.  The whole design is to clear the password fields after 
38996        restoring the page instead of when caching the page because we want to defer work for the common
38997        case - there shouldn't be extra work here just to navigate away from a page when the common case
38998        is that you'll never go back!
38999
39000        No layout tests possible until http://bugs.webkit.org/show_bug.cgi?id=13672 is resolved
39001
39002        * dom/Document.cpp:
39003        (WebCore::Document::Document):
39004        (WebCore::Document::registerForDidRestoreFromCacheCallback): Add an Element to the special page-restoration callback list
39005        (WebCore::Document::unregisterForDidRestoreFromCacheCallback): Remove such an element
39006        (WebCore::Document::didRestoreFromCache): Called by FrameLoader - dispatch to all the registered elements
39007        (WebCore::Document::setUseSecureKeyboardEntryWhenActive): Set the local flag and call updateSecureKeyboardEntryIfActive
39008          on the Frame
39009        (WebCore::Document::useSecureKeyboardEntryWhenActive): Return the flag
39010
39011        * dom/Document.h:
39012        (WebCore::Document::unregisterFormElementWithState): Renamed
39013
39014        * dom/Element.h:
39015        (WebCore::Element::didRestoreFromCache): Added virtual base method
39016
39017        * html/HTMLInputElement.cpp:
39018        (WebCore::HTMLInputElement::~HTMLInputElement): Deregister from the document if inputType == PASSWORD
39019        (WebCore::HTMLInputElement::dispatchFocusEvent): Set the flag on the document, not the frame
39020        (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto
39021        (WebCore::HTMLInputElement::setInputType): If changing to/from PASSWORD, register/deregister in the document accordingly
39022        (WebCore::HTMLInputElement::attach): Call registerForDidRestoreFromCacheCallback(this) instead of passwordFieldAdded()
39023        (WebCore::HTMLInputElement::didRestoreFromCache): Call reset();
39024        * html/HTMLInputElement.h:
39025
39026        * html/HTMLSelectElement.cpp:
39027        (WebCore::HTMLSelectElement::~HTMLSelectElement): Renamed deregisterFormElementWithState to unregisterFormElementWithState
39028        * html/HTMLTextAreaElement.cpp:
39029        (WebCore::HTMLTextAreaElement::~HTMLTextAreaElement): Ditto
39030
39031        * loader/FrameLoader.cpp:
39032        (WebCore::FrameLoader::canCachePage): Remove the check for password fields - they're allowed now!
39033        (WebCore::FrameLoader::opened): Tell the document to dispatch to the registered elements
39034        (WebCore::FrameLoader::saveDocumentState): Remove the check for password fields.  Turns out that when we grab a copy a the
39035          form state we're only copying the state of form elements that are registered with the Document - and that set 
39036          explicitly excludes Password elements
39037
39038        * page/Frame.cpp:
39039        (WebCore::Frame::setDocument): If the frame is active, set the setUseSecureKeyboardEntry based on the setting contained
39040          in the new document
39041        (WebCore::Frame::updateSecureKeyboardEntryIfActive): Notification for the secure entry flag changing - if the Frame is
39042          active, then update to the new setting from the document
39043        (WebCore::Frame::setIsActive): Grab the useSecureKeyboardEntry flag from the document instead of FramePrivate
39044        (WebCore::FramePrivate::FramePrivate):
39045        * page/Frame.h:
39046        * page/FramePrivate.h:
39047
390482007-05-12  David Hyatt  <hyatt@apple.com>
39049
39050        FIx for 13696.  Rework residual style to be much more aggressive about reopening.  Added
39051        a comprehensive test case of HTML tags to guarantee we match Firefox.  We now have an exclusion
39052        set rather than an inclusion set, so unknown future tags will also participate in residual style.
39053
39054        Reviewed by olliej
39055
39056        fast/invalid/residual-style.html
39057
390582007-05-12  David Hyatt  <hyatt@apple.com>
39059
39060        Fix for bug 12740, bmw.com doesn't work.  We were missing a rule that is covered by the HTML5
39061        parsing spec.  A <table> encountered while inside stray table content should close up the
39062        table responsible for the stray content and start the new table as a sibling of the first.
39063
39064        Reviewed by mjs
39065
39066        fast/invalid/table-inside-stray-table-content.html
39067
390682007-05-12  Eric Seidel  <eric@webkit.org>
39069
39070        Reviewed by mjs.
39071
39072        Crash starting Safari with JavaScript disabled.
39073        http://bugs.webkit.org/show_bug.cgi?id=13691
39074        
39075        Test: none possible.
39076
39077        * page/mac/FrameMac.mm:
39078        (WebCore::Frame::cleanupPlatformScriptObjects): NULL check d->m_script
39079
390802007-05-11  David Hyatt  <hyatt@apple.com>
39081
39082        Fix for http://bugs.webkit.org/show_bug.cgi?id=13688, Colloquy is broken!
39083
39084        Make sure to adjust the baseline of a percentage height table cell's row if the
39085        cell flexes (and lowers the baseline).
39086
39087        Reviewed by olliej
39088
39089        fast/tables/vertical-align-baseline-readjust.html
39090
39091        (WebCore::RenderTableSection::calcRowHeight):
39092        (WebCore::RenderTableSection::layoutRows):
39093        * rendering/RenderTableSection.h:
39094        (WebCore::RenderTableSection::getBaseline):
39095        
390962007-05-11  David Hyatt  <hyatt@apple.com>
39097
39098        Make sure focus rings are always using the exterior style, regardless
39099        of what the OS default is.
39100
39101        Reviewed by beth
39102
39103        * rendering/RenderThemeMac.mm:
39104        (WebCore::RenderThemeMac::checkbox):
39105        (WebCore::RenderThemeMac::radio):
39106        (WebCore::RenderThemeMac::popupButton):
39107        (WebCore::RenderThemeMac::search):
39108        (WebCore::RenderThemeMac::sliderThumbHorizontal):
39109        (WebCore::RenderThemeMac::sliderThumbVertical):
39110
391112007-05-11  Oliver Hunt  <oliver@apple.com>
39112
39113        Reviewed by Hyatt.
39114        
39115        <rdar://problem/5195473> REGRESSION: "Curly quote" fails to 
39116        be displayed correctly even when META tag specifies charset=x-mac-roman
39117
39118
39119        * platform/TextCodecICU.cpp:
39120        (WebCore::TextCodecICU::registerExtendedEncodingNames):
39121        Register the xmacroman encoding
39122
391232007-05-11  Maciej Stachowiak  <mjs@apple.com>
39124
39125        Reviewed by Hyatt.
39126
39127        REGRESSION (r21367): Crash due to null document deref when closing bookmarks
39128        http://bugs.webkit.org/show_bug.cgi?id=13662
39129
39130        * loader/FrameLoader.cpp:
39131        (WebCore::FrameLoader::provisionalLoadStarted): Remove some useless and now harmful
39132        code - there's no need to clear in this case.
39133
391342007-05-11  Oliver Hunt  <oliver@apple.com>
39135
39136        GDK Build fix
39137
39138        * ChangeLog:
39139        * dom/Document.cpp:
39140        (WebCore::Document::importNode):
39141
391422007-05-11  Maciej Stachowiak  <mjs@apple.com>
39143
39144        Reviewed by Geoff.
39145        
39146        - fixed <rdar://problem/5197621> closing second window crashed webkit (13660)
39147        http://bugs.webkit.org/show_bug.cgi?id=13660
39148
39149        No test case; not testable.
39150
39151        * page/mac/FrameMac.mm:
39152        (WebCore::Frame::cleanupPlatformScriptObjects): Check if the interpreter is null;
39153        if so, we don't want to do work that may lazily create it while the Frame is being
39154        destroyed.
39155
391562007-05-11  Oliver Hunt  <oliver@apple.com>
39157
39158        Reviewed by Brady.
39159        
39160        <rdar://problem/5017375> WebKit should disable SVG in Dashboard
39161        
39162        Prevents an SVG document or element from being created when in
39163        dashboard compatibility mode.
39164        
39165        Manually parsing, or using XHR to created a document removes our 
39166        ability to detect Dashboard compatibility mode, so we also perform
39167        the check when importing nodes from one document into another.
39168
39169        * dom/DOMImplementation.cpp:
39170        (WebCore::DOMImplementation::createDocument):
39171          Don't create an SVGDocument if we're in dashboard compatibility mode
39172          
39173        * dom/Document.cpp:
39174        (WebCore::Document::importNode):
39175          Don't import SVG nodes if we're in dashboard compatibility mode
39176          
39177        * ksvg2/scripts/make_names.pl:
39178          Don't create SVG elements for documents that are in dashboard
39179          compatibility mode
39180
391812007-05-11  Holger Hans Peter Freyther  <zecke@selfish.org>
39182
39183        Reviewed by Maciej.
39184
39185        Bug 13676: [cairo/gdk] Provide implementation for ImageBufferCairo
39186        http://bugs.webkit.org/show_bug.cgi?id=13676
39187
39188        There are no test cases that explicitly cover platform/graphics at present.
39189
39190        * platform/graphics/ImageBuffer.h: Add cairo bits
39191        * platform/graphics/cairo/ImageBufferCairo.cpp: Untested implementation of the ImagerBuffer using the image_surface
39192        (WebCore::ImageBuffer::create): Create a reasonable sized surface
39193        (WebCore::ImageBuffer::ImageBuffer): Use a cairo_surface and create a GraphicsContext. GraphicsContext takes the cairo_t ownership
39194        (WebCore::ImageBuffer::~ImageBuffer): Unref the surface
39195        (WebCore::ImageBuffer::context): simply return the GraphicsContext, it should be possible to directly draw on it.
39196
391972007-05-11  Mitz Pettel  <mitz@webkit.org>
39198
39199        Release build fix.
39200
39201        * platform/mac/ShapeArabic.c:
39202        (shapeArabic):
39203
392042007-05-11  Geoffrey Garen  <ggaren@apple.com>
39205
39206        Reviewed by Darin Adler.
39207
39208        Removed +[WebScriptObject scriptObjectForJSObject:frame:] because the
39209        WebScriptObject API has some serious limitations that make it not ready
39210        to be used everywhere the C API is used. Hopefully we can add a good
39211        ObjC API in the future that doesn't suffer from this problem.
39212        
39213        Preliminary notes about these limitations are in <rdar://problem/4876466>.
39214
39215        * bindings/objc/WebScriptObject.mm:
39216        * bindings/objc/WebScriptObjectPendingPublic.h:
39217
392182007-05-11  Mitz Pettel  <mitz@webkit.org>
39219
39220        Reviewed by Darin.
39221
39222        - fix http://bugs.webkit.org/show_bug.cgi?id=13635
39223          REGRESSION: Cannot log in to webmail.co.za account
39224
39225        Test: fast/dom/HTMLOptionElement/option-text.html
39226
39227        Despite the specification that the 'text' attribute of HTMLOptionElement
39228        is "the text contained within the option element", other browsers return
39229        the text as displayed in the list box or popup, which is without leading,
39230        trailing and collapsible whitespace.
39231
39232        * html/HTMLOptionElement.cpp:
39233        (WebCore::HTMLOptionElement::text): Moved the code to trim and collapse
39234        whitespace and replace backslashes with the currency symbol into this
39235        function.
39236        (WebCore::HTMLOptionElement::optionText): Left only the code that adds
39237        the leading spaces for grouped options. Removed code that, in quirks mode,
39238        displayed the label if the option element contained no text. That behavior
39239        did not match WinIE and the description of the expected behavior in
39240        fast/forms/HTMLOptionElement_label06.html.
39241
392422007-05-11  Mitz Pettel  <mitz@webkit.org>
39243
39244        Reviewed by Darin.
39245
39246        - fix http://bugs.webkit.org/show_bug.cgi?id=13572
39247          Arabic characters are not correctly joined when using Arial
39248
39249        No tests added because standard fonts do not use the character-based shaping
39250        code path.
39251
39252        Added shapeArabic(), a private version of u_shapeArabic() from ICU,
39253        patched to shape Arabic characters used in Persian, Urdu, Sindhi, etc.
39254        (whose contextual forms belong to the Arabic Presentation Forms-A block).
39255
39256        * WebCore.xcodeproj/project.pbxproj: Added ShapeArabic.{c,h}.
39257        * platform/mac/FontMac.mm:
39258        (WebCore::shapeArabic): Changed to call shapeArabic() instead of u_shapeArabic().
39259        * platform/mac/ShapeArabic.c: Added. Based on ushape.c from ICU, with
39260        additional shaping data and logic for Arabic Presentation Forms-A. Removed
39261        many options that are not used in WebKit and code that malloc()ed a temporary
39262        buffer and reversed the string.
39263        (changeLamAlef):
39264        (specialChar):
39265        (getLink):
39266        (isTashkeelChar):
39267        (shapeUnicode):
39268        (shapeArabic):
39269        * platform/mac/ShapeArabic.h: Added.
39270
392712007-05-11  Darin Adler  <darin@apple.com>
39272
39273        Reviewed by Mitz.
39274
39275        - fix http://bugs.webkit.org/show_bug.cgi?id=7452
39276          <rdar://problem/3211749> line breaks ignored after <wbr> in <pre> block (affects livejournal.com)
39277
39278        - fix http://bugs.webkit.org/show_bug.cgi?id=10657
39279          <rdar://problem/4274588> <wbr> tags are ignored
39280
39281        - fix http://bugs.webkit.org/show_bug.cgi?id=12689
39282          <wbr> :before/:after content causes line break
39283
39284        - fix <rdar://problem/5127366> DOM tree isn't correct when parsing with <wbr>
39285
39286        Test: fast/text/wbr-pre.html
39287        Test: fast/text/wbr.html
39288        Test: fast/css-generated-content/wbr-with-before-content.html
39289        Test: fast/parser/parse-wbr.html
39290
39291        * html/HTMLElement.h:
39292        * html/HTMLElement.cpp:
39293        (WebCore::HTMLElement::endTagRequirement): Use the same end tag requirement for a <wbr>
39294        element as for a <br> element, TagStatusForbidden.
39295        (WebCore::HTMLElement::tagPriority): Use the same priority for a <wbr> element as for a
39296        <br> element, 0.
39297        (WebCore::HTMLElement::createRenderer): Added. Create a RenderWordBreak to trigger the
39298        new rendering code paths.
39299
39300        * rendering/RenderFlow.h: Add a virtual isWordBreak so we can detect RenderWordBreak.
39301
39302        * rendering/RenderWordBreak.h: Added.
39303        * rendering/RenderWordBreak.cpp: Added.
39304
39305        * WebCore.pro: Added new files.
39306        * WebCore.xcodeproj/project.pbxproj: Added new files.
39307        * WebCoreSources.bkl: Added new files.
39308
39309        * rendering/RenderBlock.cpp: (WebCore::RenderBlock::calcInlinePrefWidths): Reset the
39310        line when we hit a <wbr>.
39311        * rendering/bidi.cpp: (WebCore::RenderBlock::findNextLineBreak): Add a line break when
39312        we hit a <wbr>.
39313
39314        * dom/Node.cpp: (Node::createRendererIfNeeded): Fix a null check for the case where
39315        createRenderer returns 0 even though rendererIsNeeded returned true. I can't reproduce
39316        it on demand, but while running layout tests I hit this once. Since there was already
39317        a null check here, I rearranged it so it guards all the code that uses the renderer.
39318        Later we might want to figure out under exactly what circumstances rendererIsNeeded
39319        will return true but createRenderer return 0 and consider eliminating them.
39320
393212007-05-11  David Hyatt  <hyatt@apple.com>
39322
39323        Fix for bug 13675, focus rings don't repaint properly on editable
39324        continuations.
39325
39326        Reviewed by olliej
39327
39328        (WebCore::InlineFlowBox::paint):
39329        * rendering/RenderBlock.cpp:
39330        (WebCore::RenderBlock::paintObject):
39331        (WebCore::continuationOutlineTable):
39332        (WebCore::RenderBlock::addContinuationWithOutline):
39333        (WebCore::RenderBlock::paintContinuationOutlines):
39334        * rendering/RenderBlock.h:
39335        * rendering/RenderBox.cpp:
39336        (WebCore::RenderBox::absoluteClippedOverflowRect):
39337        * rendering/RenderObject.cpp:
39338        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
39339        (WebCore::RenderObject::absoluteOutlineBox):
39340
393412007-05-11  Rob Buis  <buis@kde.org>
39342
39343        Reviewed by Oliver.
39344
39345        Cleanups mostly inspired by Coverage results.
39346
39347        * ksvg2/css/SVGCSSParser.cpp:
39348        (WebCore::CSSParser::parseSVGValue):
39349        (WebCore::CSSParser::parseSVGStrokeDasharray):
39350        * ksvg2/css/SVGRenderStyleDefs.cpp:
39351        (StyleFillData::operator==):
39352        * ksvg2/svg/SVGColor.cpp:
39353        (WebCore::SVGColor::colorFromRGBColorString):
39354
393552007-05-11  Holger Freyther <freyther@kde.org>
39356
39357        Reviewed by Mark Rowe.
39358
39359        Move libcurl configuration into WebKit.pri so it will be used by GdkLauncher.
39360
39361        * WebCore.pro:
39362
393632007-05-10  David Hyatt  <hyatt@apple.com>
39364
39365        <rdar://problem/5015522> Bounds rectangle of unloaded images is 
39366        drawn briefly while loading
39367        
39368        When the image is null and has no size, don't draw the grey
39369        rectangles or alt text any more.  Wait for an actual error to
39370        occur with the image before we start showing alt text and borders.
39371
39372        (Images with no source set at all will continue to show alt text and
39373        borders immediately.)
39374
39375        Reviewed by bradee-oh
39376
39377        * rendering/RenderImage.cpp:
39378        (WebCore::RenderImage::paint):
39379
393802007-05-10  Mitz Pettel  <mitz@webkit.org>
39381
39382        Reviewed by Darin.
39383
39384        - fix http://bugs.webkit.org/show_bug.cgi?id=13655
39385          Incomplete repaint when text-shadow is used in a render layer with explicit height
39386
39387        Test: fast/repaint/layer-full-repaint.html
39388
39389        Removed custom repaint logic from RenderLayer. repaintAfterLayoutIfNeeded()
39390        knows how to do everything we need now. The only catch is that we cannot
39391        rely on its "do a full repaint if the object needs layout" behavior, since
39392        by the time we call it, the needs layout flag has been reset. The solution
39393        is to cache the need for a full repaint in the layer.
39394
39395        * page/FrameView.cpp:
39396        (WebCore::FrameView::layout): Removed call to checkForRepaintOnResize().
39397        * rendering/RenderLayer.cpp:
39398        (WebCore::RenderLayer::checkForRepaintOnResize): Removed.
39399        (WebCore::RenderLayer::RenderLayer): Replaced the m_repaintOverflowOnResize
39400        flag with a m_needsFullRepaint flag, which indicates that the layer needs
39401        to do a full repaint in the next call to updateLayerPositions().
39402        (WebCore::RenderLayer::updateLayerPositions): Simplified the repaint logic.
39403        Either call repaintAfterLayoutIfNeeded() or do a full repaint, depending on
39404        m_needsFullRepaint.
39405        * rendering/RenderLayer.h:
39406        (WebCore::RenderLayer::setNeedsFullRepaint):
39407        * rendering/RenderObject.cpp:
39408        (WebCore::RenderObject::setNeedsLayout): Mark the layer for full repaint.
39409
394102007-05-10  Justin Garcia  <justin.garcia@apple.com>
39411
39412        Reviewed by ggaren
39413
39414        <rdar://problem/5195166> Incorrect proposedRange DOMRange passed to WebViewEditing delegate
39415        
39416        In setModifyBias, we must cache the start and the end 
39417        because the calls to setBase and setExtent can modify 
39418        them (added a testcase).
39419        The temporary SelectionController that we use in modify() to
39420        produce the proposed range that will be passed to 
39421        shouldChangeSelectedDOMRange must have the same m_modifyBias
39422        as the original SelectionController, or else when the 
39423        modification is performed, setModifyBias can swap the base 
39424        and the extent incorrectly (added a testcase).
39425        Renamed m_modifyBias to m_lastChangeWasHorizontalExtension.
39426        Renamed setModifyBias to willBeModified.
39427
39428        * editing/SelectionController.cpp:
39429        (WebCore::SelectionController::SelectionController):
39430        (WebCore::SelectionController::setSelection):
39431        (WebCore::SelectionController::willBeModified):
39432        (WebCore::SelectionController::modify):
39433        * editing/SelectionController.h:
39434        (WebCore::SelectionController::setLastChangeWasHorizontalExtension):
39435        * page/EventHandler.cpp:
39436        (WebCore::EventHandler::handleMousePressEventSingleClick):
39437        (WebCore::EventHandler::updateSelectionForMouseDragOverPosition):
39438
394392007-05-10  Geoffrey Garen  <ggaren@apple.com>
39440
39441        Reviewed by Darin Adler.
39442
39443        "IconDatabase::sharedIconDatabase()" => "iconDatabase()" for terseness,
39444        in the style of WebCore::cache().
39445
39446        * WebCore.exp:
39447        * history/HistoryItem.cpp: Removed retainIconInDatabase because calling
39448        "retain" in order to release something is really confusing and, now that
39449        iconDatabase() is more terse, we don't need this helper to shorten the
39450        syntax. (The isEmpty() check is also done by the database, so we don't 
39451        need it either.)
39452
39453        (WebCore::IconDatabase::~IconDatabase): ASSERT that our destructor isn't
39454        called. We're a singleton, so it's confusing to have tear-down code.
39455
394562007-05-10  Adele Peterson  <adele@apple.com>
39457
39458        Reviewed by Hyatt.
39459
39460        WebCore part of fix for <rdar://problem/4100616> Doing a "find" in RSS doesn't scroll to result
39461
39462        Test: fast/overflow/scroll-nested-positioned-layer-in-overflow.html
39463
39464        Merged visibleSelectionRect into selectionRect.  selectionRect() now takes an argument to determine
39465        whether or not to return a rect that clips to the visible content.  This change makes all of the implementations of selectionRect
39466        consistent by having them all consider the repaint rect when clipping to visible content.
39467
39468        * page/Frame.cpp:
39469        (WebCore::Frame::revealSelection): Call selectionRect with clipToVisibleContent = false, so we can get a rect that's not visible to reveal.
39470        (WebCore::Frame::selectionRect): Added clipToVisibleContent argument, and merged visibleSelectionRect into this method.
39471        (WebCore::Frame::setIsActive): Use selectionRect instead of visibleSelectionRect.
39472        * page/Frame.h:
39473        * page/mac/FrameMac.mm: (WebCore::Frame::selectionImage): Update layout before creating the image.  Use selectionRect instead of visibleSelectionRect.
39474        * page/DragController.cpp: (WebCore::dragLocForSelectionDrag): Use selectionRect instead of visibleSelectionRect.
39475
39476        * rendering/RenderBR.h: (WebCore::RenderBR::selectionRect): Updated argument.
39477        * rendering/RenderBlock.h: (WebCore::RenderBlock::selectionRect): ditto.
39478        * rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::selectionRect): ditto.
39479        * rendering/RenderSVGInlineText.h: ditto.
39480        * rendering/RenderObject.h: 
39481        (WebCore::RenderObject::selectionRect): ditto.
39482        (WebCore::RenderObject::SelectionInfo::SelectionInfo): ditto.
39483        * rendering/RenderView.cpp:
39484        (WebCore::RenderView::selectionRect): ditto.
39485        (WebCore::RenderView::setSelection): ditto.
39486        * rendering/RenderView.h:
39487
39488        * rendering/RenderText.h:
39489        * rendering/RenderText.cpp: (WebCore::RenderText::selectionRect): Only call computeAbsoluteRepaintRect when clipping to visible content.
39490        Otherwise, just adjust the rect to the correct position.
39491        * rendering/RenderListMarker.h:
39492        * rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::selectionRect):
39493          To match what we do in RenderText, if we're trying to clip to visible content, just call computeAbsoluteRepaintRect.
39494        * rendering/RenderReplaced.h:
39495        * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::selectionRect): ditto.
39496
39497        * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollRectToVisible): Check for a parent layer at the beginning, so we can try to scroll all of our parent layers 
39498          first, before trying to scroll the top level view.  Also, don't try to scroll overflow layers that have -webkit-line-clamp restricting the height.
39499          This will prevent us from revealing text hidden by the slider in Safari RSS.
39500
39501        * WebCore.exp: Update symbols for WebKit.
39502
395032007-05-10  David Hyatt  <hyatt@apple.com>
39504
39505        Fix for:
39506
39507        <rdar://problem/5195272> REGRESSION: broke outline rings for continuations 
39508        with empty inline containers
39509        
39510        http://bugs.webkit.org/show_bug.cgi?id=13667
39511
39512        Make sure to only include collapsed top/bottom margins of the block portion
39513        of the continuation if we know for sure that we have inline line boxes before
39514        and after that would prevent the collapse from going further.
39515
39516        In plain English: the focus rings were too tall. :)
39517
39518        Reviewed by beth
39519
39520        * rendering/RenderFlow.cpp:
39521        (WebCore::RenderFlow::addFocusRingRects):
39522
395232007-05-10  David Hyatt  <hyatt@apple.com>
39524
39525        Fix for:
39526
39527        <rdar://problem/5067235> REGRESSION: Excessively wide table, impossible to resize
39528
39529        The table used white-space: pre-wrap, which is supported only by WebKit.  There
39530        was a bug with the computation of min pref width for pre-wrap text.
39531
39532        Reviewed by mitzpettel
39533
39534        fast/text/white-space/pre-wrap-line-test.html
39535
39536        * rendering/RenderText.cpp:
39537        (WebCore::RenderText::calcPrefWidths):
39538
395392007-05-10  Brady Eidson  <beidson@apple.com>
39540
39541        Reviewed by Oliver
39542
39543        Cleanup from my earlier Java Applet patch.  We should keep a central location to query if 
39544        a mime type counts as a Java Applet
39545
39546        * html/HTMLObjectElement.cpp:
39547        (WebCore::HTMLObjectElement::containsJavaApplet): Query MimeTypeRegistry on the type
39548
39549        * platform/MimeTypeRegistry.cpp:
39550        (WebCore::MimeTypeRegistry::isSupportedImageMIMEType): Update style
39551        (WebCore::MimeTypeRegistry::isSupportedImageResourceMIMEType): Ditto
39552        (WebCore::MimeTypeRegistry::isSupportedNonImageMIMEType): Ditto
39553        (WebCore::MimeTypeRegistry::isJavaAppletMIMEType): Perform the Java Applet check
39554        * platform/MimeTypeRegistry.h:
39555
39556        * rendering/RenderPartObject.cpp:
39557        (WebCore::RenderPartObject::updateWidget): Query MimeTypeRegistry on the type
39558
395592007-05-10  Patti Hoa  <patti@apple.com>
39560
39561        Reviewed by Darin.
39562        
39563        <rdar://problem/4720109> Sentence textMarker methods do not work well with empty lines
39564        
39565        * bridge/mac/WebCoreAXObject.mm:
39566        (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
39567        (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
39568        When a marker position is given, the sentence ax methods automatically shift position by one to make sure
39569        not to ask for the current sentence again.  This is generally fine except when the position
39570        shift over an empty line break, which is should be considered a separate sentence. In this case, 
39571        if we used the shifted position to ask for sentence boundary, ICU parser is not given the text data
39572        containing the newline to correctly determine the sentence boundary.  Since the ax sentence method is 
39573        explicitly shifting the position to ask for sentence boundary, it should make sure not to skip over important
39574        character that can be a standalone sentence.
39575        * editing/visible_units.cpp:
39576        (WebCore::nextBoundary):
39577        When determining boundary, don't stop on a collapsed range, such as newline.  
39578        Just pick the next valid position to use as boundary.
39579
395802007-05-10  Maciej Stachowiak  <mjs@apple.com>
39581
39582        Reviewed by Oliver.
39583
39584        - WebCore part of fix for:
39585        <rdar://problem/5063277> blank screen after login to Citibank Online (accessing document before frame starts loading cancels load)
39586        <rdar://problem/5159541> REGRESSION (r20972): Wall Street Journal pages replaced by advertisements (13465)
39587
39588        The basic approach is to have Frames start out containing an empty document instead of absolutely nothing,
39589        so there is no need to initialize them on demand. Various side effects of that cause both of these bugs.
39590        
39591        However, this caused many regressions so I had to fix the fallout.
39592        
39593        * WebCore.exp: fix symbol exports
39594        * bindings/js/kjs_window.cpp:
39595        (KJS::createNewWindow): useless "created" bool (we don't need it here)
39596        (KJS::WindowFunc::callAsFunction): detect if we created a new frame, because if so,
39597        we need to initialize the domain (can't count on it not having a document), also
39598        don't try to make a new document for it.
39599        Also, stop properly.
39600        * css/cssstyleselector.cpp:
39601        (WebCore::CSSStyleSelector::CSSStyleSelector): don't count on document having a view here
39602        * html/HTMLObjectElement.cpp:
39603        (WebCore::HTMLObjectElement::isImageType): Ask client, to match how other <object> renderer
39604        decisions are made.
39605        * loader/FrameLoader.cpp:
39606        (WebCore::FrameLoader::FrameLoader): Initialize new data members
39607        (WebCore::FrameLoader::init): Do the slightly tricky sequence of steps to properly make
39608        an empty document with everything hooked up.
39609        (WebCore::FrameLoader::createWindow): Added "created" bool.
39610        (WebCore::FrameLoader::stopLoading): (whitespace change)
39611        (WebCore::FrameLoader::begin): Don't try to create an empty document.
39612        (WebCore::FrameLoader::finishedParsing): If creating an initial empty document, don't
39613        do any of this work.
39614        (WebCore::FrameLoader::checkCompleted): Do checkLoadComplete() as well.
39615        (WebCore::FrameLoader::baseURL): don't check for null document
39616        (WebCore::FrameLoader::baseTarget): ditto
39617        (WebCore::FrameLoader::completeURL): ditto
39618        (WebCore::FrameLoader::didTellBridgeAboutLoad): ditto
39619        (WebCore::FrameLoader::scheduleLocationChange): determine duringLoad differently; doc won't
39620        be null.
39621        (WebCore::FrameLoader::gotoAnchor): don't check for null document
39622        (WebCore::FrameLoader::canTarget): don't check for null document
39623        (WebCore::FrameLoader::stopForUserCancel): new method for explicit stops like window.stop().
39624        (WebCore::FrameLoader::transitionToCommitted): check for pre-loaded state properly
39625        (WebCore::FrameLoader::createEmptyDocument): removed
39626        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): don't send delegate callbacks when making initial
39627        doc.
39628        (WebCore::FrameLoader::tokenizerProcessedData): Assume document; just checkCompleted now that it
39629        does checkLoadComplete.
39630        (WebCore::FrameLoader::receivedMainResourceError): assume document
39631        (WebCore::FrameLoader::saveDocumentState): Assume there's a document except during initial load
39632        (WebCore::FrameLoader::mainReceivedCompleteError): do checkCompleted, not checkLoadComplete
39633        (WebCore::FrameLoader::continueLoadWithData): assume document
39634        * loader/FrameLoader.h:
39635        * loader/MainResourceLoader.cpp:
39636        (WebCore::MainResourceLoader::receivedError): Add more ref protection and do things in a slightly
39637        different order.
39638        * page/DOMWindow.cpp:
39639        (WebCore::DOMWindow::document): don't force document creation, just assert there is one.
39640        * page/Frame.cpp:
39641        (WebCore::Frame::init): Added init method.
39642        (WebCore::Frame::pageDestroyed): when a frame is removed, make sure to check if the parent is
39643        done loading.
39644        * page/Frame.h:
39645        * page/mac/WebCoreFrameBridge.mm:
39646        (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]): No need to force
39647        document.
39648        (-[WebCoreFrameBridge aeDescByEvaluatingJavaScriptFromString:]): ditto
39649        * platform/graphics/svg/SVGImage.cpp:
39650        (WebCore::SVGImage::dataChanged): init the frame
39651        * rendering/RenderPart.cpp:
39652        (WebCore::RenderPart::updateWidgetPosition): If a subframe needs layout, then lay it out even
39653        if the bounds did not change; the content size might be wrong.
39654        * rendering/RenderTreeAsText.cpp:
39655        (WebCore::externalRepresentation): Don't crash if the frame lacks a view.
39656
396572007-05-10  David Hyatt  <hyatt@apple.com>
39658
39659        Fix for:
39660
39661        <rdar://problem/5146757> REGRESSION: div that wrapped to screen width in 
39662        tiger no longer wraps
39663        
39664        http://bugs.webkit.org/show_bug.cgi?id=13654
39665
39666        Reviewed by mitz
39667
39668        fast/text/whitespace/normal-after-nowrap-breaking.html
39669
39670        * rendering/RenderBlock.cpp:
39671        (WebCore::RenderBlock::calcInlinePrefWidths):
39672
396732007-05-10  David Hyatt  <hyatt@apple.com>
39674
39675        Fix for:
39676
39677        <rdar://problem/4778099> Links with nested continuations fail to 
39678        paint their outlines (11255)
39679        
39680        http://bugs.webkit.org/show_bug.cgi?id=11255
39681
39682        Fix multiple bugs with outline painting of continuations to ensure that
39683        all combos work (empty/full inline - block with/without margins - 
39684        empty/full inline).
39685
39686        Reviewed by mitz
39687
39688        fast/inline/continuation-outlines.html
39689
39690        * rendering/RenderBlock.cpp:
39691        (WebCore::RenderBlock::paintObject):
39692        * rendering/RenderFlow.cpp:
39693        (WebCore::RenderFlow::addFocusRingRects):
39694
396952007-05-10  David Hyatt  <hyatt@apple.com>
39696
39697        Fix for:
39698
39699        <rdar://problem/5193529> REGRESSION: RTL Overflows scrollbar not showing 
39700        when they should be
39701        
39702        Fallout from fix for bug 11926.  Make sure to restrict the fix to the
39703        RenderView for now, since the full-blown overflow case is pretty involved.
39704
39705        Reviewed by mitzpettel
39706
39707        fast/overflow/unreachable-content-bug-rtl.html
39708
39709        * rendering/RenderBlock.cpp:
39710        (WebCore::RenderBlock::lowestPosition):
39711        (WebCore::RenderBlock::rightmostPosition):
39712        (WebCore::RenderBlock::leftmostPosition):
39713
397142007-05-10  Brady Eidson <beidson@apple.com>
39715
39716        Reviewed by Oliver
39717
39718        Fix for http://bugs.webkit.org/show_bug.cgi?id=13636 and <rdar://problem/5190816>
39719
39720        When creating the applets collection, be sure to only count Objects if they contain
39721        a java applet
39722
39723        * html/HTMLCollection.cpp:
39724        (WebCore::HTMLCollection::traverseNextItem): Add the qualifier for Objects that 
39725          containsJavaApplet() must be true
39726
39727        * html/HTMLObjectElement.cpp:
39728        (WebCore::HTMLObjectElement::containsJavaApplet): Check this Object element and inner
39729          nodes for any Java applets
39730        * html/HTMLObjectElement.h: 
39731
397322007-05-10  David Hyatt  <hyatt@apple.com>
39733
39734        Fix for:
39735
39736        <rdar://problem/4694859> SAP: HTML tags with overflow:hidden consume
39737        space on page, do not consume space in Firefox (11926)
39738
39739        http://bugs.webkit.org/show_bug.cgi?id=11926
39740
39741        Make sure that unreachable objects along one axis (e.g., top/left) do not
39742        contribute to the scrollable area in the opposite axis (e.g., right/bottom).
39743
39744        Reviewed by olliej
39745
39746        fast/overflow/unreachable-content-test.html
39747
39748        * rendering/RenderBlock.cpp:
39749        (WebCore::RenderBlock::lowestPosition):
39750        (WebCore::RenderBlock::rightmostPosition):
39751        (WebCore::RenderBlock::leftmostPosition):
39752
397532007-05-10  David Hyatt  <hyatt@apple.com>
39754
39755        Fix for:
39756
39757        <rdar://problem/4656825> REGRESSION: Japanese TV time table widget:
39758        part of the number in background has been cut off.
39759
39760        Now that opacity uses a tight bounding box to clip, we need to make sure
39761        to factor spillout caused by negative letter spacing into our right
39762        overflow.  Latch on to the code that does this already for text-stroke
39763        and text-shadow.
39764
39765        Reviewed by olliej
39766
39767        fast/text/letter-spacing-negative-opacity.html
39768
39769       * rendering/InlineFlowBox.cpp:
39770        (WebCore::InlineFlowBox::placeBoxesHorizontally):
39771
397722007-05-10  Geoffrey Garen  <ggaren@apple.com>
39773
39774        Reviewed by Maciej Stachowiak.
39775        
39776        More fix-ups to the WebScriptObject/WebScripting APIs, related to
39777        <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
39778        or WebFrame
39779
39780        * bindings/objc/WebScriptObject.h: Fully specified the surprising rules for
39781        type conversion between JavaScript and ObjC.
39782        * bindings/objc/WebScriptObject.mm: Added up-call accessor to WebFrame.
39783        This is kind of stinky, but I'm OK with it because eventually all of this
39784        code should move up into WebKit.
39785        (+[WebScriptObject scriptObjectForJSObject:frame:]):
39786        (-[WebScriptObject valueForKey:]):
39787        (-[WebScriptObject JSObject]): 
39788            - Added _rootObject check because if _rootObject returns NULL it means 
39789            that _imp is no longer GC protected, so it's not safe to use. 
39790            - Added _isSafeScript check because that's what WebScriptObject methods
39791            typically do, even though the value of doing so isn't clear to me.
39792        * bindings/objc/WebScriptObjectPendingPublic.h: Added WebFrame* parameter
39793        to -scriptObjectForJSObject:. This is required to wrap JS objects that
39794        are not already in the wrapper cache. It would be nice to remove this
39795        limitation of WebScriptObject some day.
39796        * page/mac/FrameMac.mm:
39797        (WebCore::Frame::cleanupPlatformScriptObjects): Force removal of m_windowScriptObject
39798        from the cache, to avoid retrieving the m_windowScriptObject from the previous
39799        page on a new page load. (It would be non-functional in that case.)
39800
398012007-05-10  David Hyatt  <hyatt@apple.com>
39802
39803        Fix for <rdar://problem/5183697>.
39804
39805        http://bugs.webkit.org/show_bug.cgi?id=13576
39806
39807        Make sure verticalPositionHint is not called on an inline-block from
39808        content inside the inline-block (like text).
39809
39810        Reviewed by olliej
39811
39812        fast/inline-block/inline-block-vertical-align.html
39813
39814        * rendering/RenderObject.cpp:
39815        (WebCore::RenderObject::verticalPositionHint):
39816        * rendering/RenderText.cpp:
39817        (WebCore::RenderText::verticalPositionHint):
39818        * rendering/RenderThemeMac.mm:
39819        (WebCore::RenderThemeMac::setFontFromControlSize):
39820
398212007-05-09  Holger Freyther <zecke@selfish.org>
39822
39823        Reviewed by Mark Rowe.
39824
39825        Gdk build fix with SVG enabled.  Stub out ImageBufferCairo.
39826
39827        * WebCore.pro: Build ImageBufferCairo.cpp
39828        * platform/graphics/cairo/ImageBufferCairo.cpp: Added.
39829        (WebCore::ImageBuffer::create):
39830        (WebCore::ImageBuffer::~ImageBuffer):
39831        (WebCore::ImageBuffer::context):
39832
398332007-05-08  Justin Garcia  <justin.garcia@apple.com>
39834
39835        Reviewed by darin
39836        
39837        <rdar://problem/5017613> Style changes don't effect fully selected ToDo content
39838
39839        * editing/ApplyStyleCommand.cpp:
39840        (WebCore::ApplyStyleCommand::applyInlineStyle):
39841        Use a for loop instead of while(1).
39842        Simplify loop termination using Range::pastEndNode.
39843        Don't handle the start.node() == end.node() case 
39844        specially, it's unnecessary.
39845        Apply the style change to fully selected plaintext-only
39846        regions, not with wrapper spans inside the region, but 
39847        by changing the element's inline style declaration.
39848        Don't descend into nodes whose children we should ignore.
39849
398502007-05-09  Adele Peterson  <adele@apple.com>
39851
39852        Reviewed by Hyatt.
39853
39854        Fix for <rdar://problem/5113578> REGRESSION: textfields that set the height but not the font 
39855        look different from IE & FF because the font is small
39856
39857        For plain text fields, don't stretch the inner text box.  Center it vertically in the field.
39858
39859        * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::layout):
39860
398612007-05-09  Atul Mehrotra  <atul.mehrotra@celunite.com>
39862
39863        Gdk build fix.
39864
39865        * platform/gdk/TemporaryLinkStubs.cpp:
39866        (Editor::newGeneralClipboard):
39867
398682007-05-09  Mitz Pettel  <mitz@webkit.org>
39869
39870        Reviewed by Dave Hyatt.
39871
39872        - fix http://bugs.webkit.org/show_bug.cgi?id=13037
39873          REGRESSION: Copy-on-scroll not reset properly after back/forward navigation
39874
39875        * page/FrameView.cpp:
39876        (WebCore::FrameViewPrivate::FrameViewPrivate): Moved initialization of
39877        m_slowRepaintObjectCount here.
39878        (WebCore::FrameViewPrivate::reset): Do not reset the slow repaint object
39879        count here.
39880        (WebCore::FrameView::useSlowRepaints):
39881        (WebCore::FrameView::addSlowRepaintObject):
39882        (WebCore::FrameView::removeSlowRepaintObject): Added an assertion that the
39883        object count is positive.
39884        * rendering/RenderObject.cpp:
39885        (WebCore::RenderObject::setStyle): Corrected a mix up between old and new
39886        style, which caused the object count to be decremented when it was supposed
39887        to be incremented and vice versa.
39888
398892007-05-09  Peter Müller <pm@one.com>
39890
39891        Reviewed by Dave Hyatt.
39892
39893        Changed the hardcoded colors that are used for CSS 2.1 system colors.
39894        Previous colors had numerous conflicts in semantic pairs, which
39895        made text invisible in highlight, info and menu colored areas.
39896        The new hardcoded colors are inspired by Aqua.
39897
39898        Ideally these colors should be fetched through AppKit instead,
39899        though I am not sure if it is possible to make a 1:1 mapping
39900        between CSS2.1 system colors and Mac OS X.
39901
39902        * css/cssstyleselector.cpp:
39903        (WebCore::):
39904
399052007-05-09  Lars Knoll <lars@trolltech.com>
39906
39907        Fix the Qt build.
39908
39909        * editing/qt/EditorQt.cpp:
39910
399112007-05-08  Geoffrey Garen  <ggaren@apple.com>
39912
39913        Reviewed by Darin Adler.
39914        
39915        More fix-ups to the WebScriptObject/WebScripting APIs, related to
39916        <rdar://problem/5140447> API for fetching JSGlobalContextRef from WebView 
39917        or WebFrame
39918        
39919        1. Added -scriptObjectForJSObject: SPI so you can bridge back from JavaScriptCore
39920        to WebScriptObject.
39921        
39922        2. Fixed WebScriptObject bridging so that you always get the same WebScriptObject
39923        for a JSObject (like in the DOM). This makes -scriptObjectForJSObject: a
39924        lot more coherent as an API.
39925
39926        * bindings/objc/DOMInternal.mm: Renamed wrapperCache to DOMWrapperCache
39927        to distinguish from the JSWrapperCache. Added typedef for readability.
39928        (WebCore::getDOMWrapper):
39929        (WebCore::addDOMWrapper):
39930        (WebCore::removeDOMWrapper):
39931        * bindings/objc/WebScriptObject.mm: Added JSWrapperCache, which works just
39932        like the DOMWrapperCache.
39933        (WebCore::getJSWrapper):
39934        (WebCore::addJSWrapper):
39935        (WebCore::removeJSWrapper):
39936        (WebCore::createJSWrapper):
39937        (+[WebScriptObject scriptObjectForJSObject:]): This is the new API. It attempts
39938        to return a specific DOM wrapper object, or, barring that, it returns a 
39939        generic WebScriptObject.
39940        (+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]):
39941        Added this method to support our old WebScriptObject security and leak 
39942        checking model, even though it doesn't work very well. 
39943        (-[WebScriptObject _setImp:originRootObject:rootObject:]):
39944        (-[WebScriptObject dealloc]):
39945        (-[WebScriptObject finalize]):
39946        (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
39947        * bindings/objc/WebScriptObjectPendingPublic.h:
39948        * bindings/objc/WebScriptObjectPrivate.h:
39949        * page/mac/FrameMac.mm:
39950        (WebCore::Frame::windowScriptObject): Changed to use the new API. This
39951        fixes a bug where the object sent to -windowScriptObjectAvailable: and returned
39952        from -windowScriptObject could not be round-tripped.
39953
399542007-05-09  Mark Rowe  <mrowe@apple.com>
39955
39956        Build fix.
39957
39958        * editing/Editor.cpp:
39959        (WebCore::findFirstGrammarDetailInRange): Use unsigned rather than int.
39960        (WebCore::findFirstBadGrammarInRange): Cast to unsigned in assertion.
39961        (WebCore::isRangeUngrammatical): Remove unused variables.
39962
399632007-05-08  Oliver Hunt  <oliver@apple.com>
39964
39965        Reviewed by Darin.
39966        
39967        Fix <rdar://problem/5188938> arc method on Canvas causes hang or crash
39968        
39969        Workaround bad behaviour of CGPathAddArc when passed inf as start or
39970        end angles.
39971
39972        * platform/graphics/cg/PathCG.cpp:
39973        (WebCore::Path::addArc):
39974
399752007-05-08  Darin Adler  <darin@apple.com>
39976
39977        Reviewed by Hyatt and Hatcher.
39978
39979        - fix auto-activation code path so Tiger and Leopard aren't different
39980
39981        * platform/mac/WebFontCache.mm: (+[WebFontCache fontWithFamily:traits:size:]):
39982        Do the auto-activation dance first before doing anything else, and ignore the
39983        font that it returns.
39984
399852007-05-08  Steve Falkenburg  <sfalken@apple.com>
39986
39987        Reviewed by Darin.
39988
39989        Moved most spelling/grammar logic to C++.  Now calls through to
39990        WebKit to actually invoke NSSpellChecker.
39991
39992        * editing/Editor.cpp:
39993        (WebCore::Editor::ignoreSpelling): Added (ported from EditorMac).
39994        (WebCore::Editor::learnSpelling): Added (ported from EditorMac).
39995        (WebCore::findFirstMisspellingInRange): Added (ported from EditorMac).
39996        (WebCore::paragraphAlignedRangeForRange): Added (ported from EditorMac).
39997        (WebCore::findFirstGrammarDetailInRange): Added (ported from EditorMac).
39998        (WebCore::findFirstBadGrammarInRange): Added (ported from EditorMac).
39999        (WebCore::Editor::advanceToNextMisspelling): Added (ported from EditorMac).
40000        (WebCore::Editor::isSelectionMisspelled): Added (ported from EditorMac).
40001        (WebCore::isRangeUngrammatical): Added (ported from EditorMac).
40002        (WebCore::Editor::isSelectionUngrammatical): Added (ported from EditorMac).
40003        (WebCore::Editor::guessesForUngrammaticalSelection): Added (ported from EditorMac).
40004        (WebCore::Editor::guessesForMisspelledSelection): Added (ported from EditorMac).
40005        (WebCore::Editor::showSpellingGuessPanel): Added (ported from EditorMac).
40006        (WebCore::Editor::spellingPanelIsShowing): Added (ported from EditorMac).
40007        (WebCore::Editor::markMisspellingsAfterTypingToPosition): Added (ported from EditorMac).
40008        (WebCore::markAllMisspellingsInRange): Added (ported from EditorMac).
40009        (WebCore::markAllBadGrammarInRange): Added (ported from EditorMac).
40010        (WebCore::markMisspellingsOrBadGrammar): Added (ported from EditorMac).
40011        (WebCore::Editor::markMisspellings): Added (ported from EditorMac).
40012        (WebCore::Editor::markBadGrammar): Added (ported from EditorMac).
40013        * editing/mac/EditorMac.mm: Removed Objective C version of spelling/grammar calls.
40014
400152007-05-08  Steve Falkenburg  <sfalken@apple.com>
40016
40017        Reviewed by Ada.
40018
40019        Slight modification to last editor method fix.
40020
40021        * bridge/EditorClient.h:
40022        * platform/gdk/EditorClientGdk.cpp:
40023        (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
40024        * platform/gdk/EditorClientGdk.h:
40025        * platform/graphics/svg/SVGImageEmptyClients.h:
40026        (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
40027
400282007-05-08  Alexey Proskuryakov  <ap@webkit.org>
40029
40030        Reviewed by Hyatt.
40031
40032        http://bugs.webkit.org/show_bug.cgi?id=13480
40033        window.Attr is undefined
40034
40035        Test: fast/dom/Window/attr-constructor.html
40036
40037        * dom/Attr.idl:
40038        * dom/CDATASection.idl:
40039        * dom/CharacterData.idl:
40040        * dom/Comment.idl:
40041        * dom/DOMImplementation.idl:
40042        * dom/DocumentType.idl:
40043        * dom/Entity.idl:
40044        * dom/EntityReference.idl:
40045        * dom/Notation.idl:
40046        * dom/ProcessingInstruction.idl:
40047        * dom/Text.idl:
40048        Added GenerateConstructor.
40049
40050        * page/DOMWindow.idl: Added constructor properties for DOM interfaces.
40051
400522007-05-07  Geoffrey Garen  <ggaren@apple.com>
40053
40054        Reviewed by Maciej Stachowiak.
40055
40056        Fixed <rdar://problem/5140447> API for fetching JSGlobalContextRef from 
40057        WebView or WebFrame
40058        
40059        Added support for new -[WebScriptObject JSObject] and -[WebFrame globalContext]
40060        APIs.
40061        
40062        Also fixed some more cases of <rdar://problem/4395622> API: 
40063        WebScriptObject.h incorrectly reports that -isSelectorExcludedFromWebScript 
40064        returns NO by default, and generally cleaned up that documentation.
40065
40066        * WebCore.exp: A lot of the diff here is from sorting.
40067        * WebCore.xcodeproj/project.pbxproj:
40068        * bindings/objc/WebScriptObject.h:
40069        * bindings/objc/WebScriptObject.mm:
40070        (-[WebScriptObject JSObject]):
40071        * bindings/objc/WebScriptObjectPendingPublic.h: Added.
40072
400732007-05-08  Lars Knoll <lars@trolltech.com>
40074
40075        Reviewed by Hyatt.
40076
40077        Fix valgrind reported uninitialized memory read.
40078
40079        * rendering/RenderText.cpp:
40080        (WebCore::RenderText::RenderText):
40081
400822007-05-07  Justin Garcia  <justin.garcia@apple.com>
40083
40084        Reviewed by oliver
40085
40086        <rdar://problem/4895428> Can't drag selected ToDo
40087        
40088        The user tries to drag a selection by mousing down
40089        on the editable part of a ToDo, which is focusable,
40090        since it is an editable node within non-editable 
40091        content.  But we focus focusable elements on mouse 
40092        down, and focusing the editable piece blows away 
40093        the selection and prevents the drag. This is how 
40094        IE behaves, but content seems generally difficult 
40095        to drag in IE, so this doesn't make it any worse.
40096        
40097        Since focus doesn't appear to be cancelable, either
40098        with a DOM event or an editing delegate, I fixed this
40099        by delaying the focus of focusable nodes that are 
40100        selected and inside an already focused node.  The 
40101        node will be focused if the user mouses up without 
40102        doing any dragging because the mouse up sets a
40103        selection, which calls setFocusNodeIfNeeded.
40104
40105        * page/EventHandler.cpp:
40106        (WebCore::EventHandler::dispatchMouseEvent):
40107
401082007-05-07  Atul Mehrotra <atul.mehrotra@celunite.com>
40109
40110        Reviewed by Maciej.
40111
40112        GDK Build fix
40113
40114        * platform/gdk/TemporaryLinkStubs.cpp:
40115
401162007-05-07  Oliver Hunt  <oliver@apple.com>
40117
40118        Reviewed by Maciej.
40119
40120        Correcting comparisons to handle NaN in the same manner
40121        as other Canvas methods.
40122
40123        * html/CanvasRenderingContext2D.cpp:
40124        (WebCore::CanvasRenderingContext2D::arcTo):
40125        (WebCore::CanvasRenderingContext2D::arc):
40126          Correcting arc/arcTo to match the WHAT WG draft.
40127        (WebCore::CanvasRenderingContext2D::rect):
40128        (WebCore::CanvasRenderingContext2D::clearRect):
40129        (WebCore::CanvasRenderingContext2D::fillRect):
40130        (WebCore::CanvasRenderingContext2D::strokeRect):
40131
401322007-05-07  David Hyatt  <hyatt@apple.com>
40133
40134        Add some comments to the glyph/font code (patch from Brett Wilson, tweaked by
40135        me to correct a few bits and to make it forward-compatible with the work
40136        going on in 3315.
40137
40138        Reviewed by me
40139
40140        * ChangeLog:
40141        * platform/Font.cpp:
40142        (WebCore::Font::glyphDataForCharacter):
40143        * platform/GlyphPageTreeNode.cpp:
40144        (WebCore::GlyphPageTreeNode::initializePage):
40145        * platform/GlyphPageTreeNode.h:
40146
401472007-05-07  Justin Garcia  <justin.garcia@apple.com>
40148
40149        Fix layout test failures.
40150
40151        * editing/SelectionController.cpp:
40152        (WebCore::SelectionController::contains): Use comparePositions
40153        instead of Range::comparePoint, because comparePositions can
40154        handle positions inside shadow trees.
40155
401562007-05-07  Justin Garcia  <justin.garcia@apple.com>
40157
40158        Reviewed by darin
40159        
40160        <rdar://problem/4895428> Can't drag selected To Do if it is not showing a due date
40161        
40162        The code in SelectionController::contains returned false 
40163        incorrectly if the selection end just after a table 
40164        and the position was inside that table.
40165
40166        * editing/SelectionController.cpp:
40167        (WebCore::SelectionController::contains): Compare the position with the
40168        ends of the selection and then use Range::comparePoint.
40169
401702007-05-07  Darin Adler  <darin@apple.com>
40171
40172        - rolling out setInnerHTML optimization until I can figure out why tests are failing
40173
401742007-05-07  Darin Adler  <darin@apple.com>
40175
40176        Reviewed by Hyatt.
40177
40178        - fix http://bugs.webkit.org/show_bug.cgi?id=13602
40179          Amazon product pages keep repainting over and over again
40180
40181        Optimize setInnerHTML, setOuterHTML, and setInnerText so they don't change the DOM at all
40182        if they don't need to.
40183
40184        Test: fast/dom/HTMLElement/set-inner-outer-optimization.html
40185
40186        * html/HTMLElement.cpp:
40187        (WebCore::equal): Added. Helper function that compares two Text nodes or two NamedAttrMap
40188        attribute maps.
40189        (WebCore::shallowEqual): Added. Helper function that compares two Element nodes or two
40190        arbitrary nodes.
40191        (WebCore::replaceChildrenWithFragment): Added. Helper function used by setInnerHTML and
40192        setInnerText. Optimizes the cases where all the nodes are the same, where both the current
40193        and the new content are single text nodes, and where the current content is a single node
40194        that can be replaced with replaceChild.
40195        (WebCore::replaceChildrenWithText): Added. Helper function used by setInnerText. Optimizes
40196        the case where the current content is a single text node or a single node that can be
40197        replaced with replaceChild.
40198        (WebCore::HTMLElement::setInnerHTML): Changed to call replaceChildrenWithFragment.
40199        (WebCore::HTMLElement::setOuterHTML): Added special case to optimize when the new content
40200        exactly matches the current node.
40201        (WebCore::HTMLElement::setInnerText): Changed to call replaceChildrenWithText in a few
40202        cases instead of doing removeChildren/appendChild. Changed code that was using
40203        DeprecatedString to instead use String. Changed general case to use a document fragment
40204        and replaceChildrenWithFragment.
40205
40206        * dom/CharacterData.cpp: (WebCore::CharacterData::dispatchModifiedEvent):
40207        Fixed bug where we would not dispatch the DOMSubtreeModified event unless someone
40208        was registered for the DOMCharacterDataModified event. Caused trouble in the test.
40209
402102007-05-06  Darin Adler  <darin@apple.com>
40211
40212        - blind try at fixing the Qt build
40213
40214        * platform/qt/TextBreakIteratorQt.cpp: (WebCore::sentenceBreakIterator):
40215        Added a placeholder.
40216
402172007-05-06  Darin Adler  <darin@apple.com>
40218
40219        Reviewed by Hyatt.
40220
40221        - fix http://bugs.webkit.org/show_bug.cgi?id=13537
40222          Canvex example starts rendering strangely after a while
40223
40224        * html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::drawImage):
40225        Don't raise an exception if the source or destination rectangle is empty.
40226
402272007-05-06  Darin Adler  <darin@apple.com>
40228
40229        Reviewed by Hyatt.
40230
40231        - fix <rdar://problem/4585593> REGRESSION: Some 2-byte characters in printed page
40232          header are drawn with too-large font and clipped
40233
40234        Doesn't affect text within web pages, so no layout test.
40235
40236        * platform/mac/FontCacheMac.mm: (WebCore::FontCache::getFontDataForCharacters):
40237        Base the substitute font on the FontPlatformData rather than the FontDescription.
40238        Before, it was a mix of both. This works properly for fonts where we have no
40239        FontDescription and is also more internally consistent.
40240
402412007-05-06  Darin Adler  <darin@apple.com>
40242
40243        Reviewed by Hyatt.
40244
40245        - http://bugs.webkit.org/show_bug.cgi?id=13606
40246          some functions are virtual that don't need to be
40247
40248        * dom/Node.h: Made first/lastChild be inline functions that call virtual functions.
40249        This lets us hide the functions with another inline function in a derived class,
40250        yet still override the behavior here in the base class by overriding the virtual
40251        functions too.
40252        * dom/Node.cpp:
40253        (WebCore::Node::virtualFirstChild): Renamed virtual functions. There are now
40254        non-virtual inline functions that call these virtual functions.
40255        (WebCore::Node::virtualLastChild): Ditto.
40256
40257        * dom/ContainerNode.h: Added non-virtual first/lastChild functions that hide the ones
40258        inherited from the Node class; these also replace the fastFirst/LastChild functions,
40259        and transparently give callers the faster form if they have a pointer of the right
40260        type. But still override the virtual functions named virtualFirst/LastChild, because
40261        those can still be called through a Node*. Removed the "fast" from the names of
40262        fastSetFirst/LastChild.
40263        * dom/ContainerNode.cpp:
40264        (WebCore::ContainerNode::virtualFirstChild): Renamed virtual functions. There are now
40265        also non-virtual inline versions.
40266        (WebCore::ContainerNode::virtualLastChild): Ditto.
40267
40268        * dom/CharacterData.cpp: Removed implementations of data and length functons.
40269        * dom/CharacterData.h: Made data, setData, length, substringData, appendData,
40270        insertData, deleteData, and replaceData all non-virtual, and made data and length
40271        both be inline.
40272
40273        * dom/NamedAttrMap.h: (WebCore::NamedAttrMap::attributeItem): Removed a null check
40274        from this function. If the length of the map is known to be greater than 0, then
40275        the null check isn't needed. But if the length of the map hasn't been checked at all,
40276        then it's unsafe to call this function since it doesn't range check the array
40277        index. Thus the null check is never needed. I also looked at all callers.
40278
40279        * dom/Attr.cpp: (WebCore::Attr::createTextChild):
40280        * dom/Document.cpp: (WebCore::Document::recalcStyle):
40281        * dom/Element.cpp: (WebCore::Element::recalcStyle):
40282        * ksvg2/svg/SVGElement.cpp:
40283        (WebCore::SVGElement::haveLoadedRequiredResources):
40284        Removed "fast" prefix from calls to fastFirst/LastChild and fastSetFirst/LastChlld.
40285        It's not needed any more -- you still get fast behavior if the pointer has a type
40286        that's ContainerNode or derived from it.
40287
402882007-05-06  Mitz Pettel  <mitz@webkit.org>
40289
40290        Reviewed by Hyatt.
40291
40292        - fix http://bugs.webkit.org/show_bug.cgi?id=13557
40293          Crash when dragging selection over absolutely positioned generated content on block element
40294
40295        Test: fast/css-generated-content/positioned-background-hit-test-crash.html
40296
40297        * rendering/RenderLayer.cpp:
40298        (WebCore::RenderLayer::enclosingElement): Added. Factored out of hitTestLayer().
40299        (WebCore::RenderLayer::hitTestLayer): Implemented the fix for <rdar://problem/3552346>
40300        from r6106 to the self hit test as well, namely: return the enclosing element
40301        for generated positioned content.
40302        * rendering/RenderLayer.h:
40303
403042007-05-06  Alexey Proskuryakov  <ap@webkit.org>
40305
40306        Reviewed by Darin.
40307
40308        http://bugs.webkit.org/show_bug.cgi?id=13584
40309        <script> code wrongly assumes requests can't fail
40310
40311        Test: fast/loader/unloadable-script.html
40312
40313        * html/HTMLScriptElement.cpp:
40314        (WebCore::HTMLScriptElement::parseMappedAttribute):
40315        (WebCore::HTMLScriptElement::insertedIntoDocument):
40316        Check the return value of requestScript().
40317
403182007-05-06  Alexey Proskuryakov  <ap@webkit.org>
40319
40320        Reviewed by Darin.
40321
40322        http://bugs.webkit.org/show_bug.cgi?id=13304
40323        REGRESSION(14784): WebKit doesn't dynamically reflect changes to the highlight color in System Preferences
40324
40325        Implemented a notification observer that invalidates cached system colors.
40326
40327        No automated test possible.
40328
40329        * rendering/RenderTheme.cpp:
40330        (WebCore::RenderTheme::activeSelectionBackgroundColor):
40331        (WebCore::RenderTheme::inactiveSelectionBackgroundColor):
40332        (WebCore::RenderTheme::platformColorsDidChange):
40333        * rendering/RenderTheme.h:
40334        * rendering/RenderThemeMac.h:
40335        * rendering/RenderThemeMac.mm:
40336        (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
40337        (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
40338        (WebCore::theme):
40339        (WebCore::RenderThemeMac::RenderThemeMac):
40340        (WebCore::RenderThemeMac::~RenderThemeMac):
40341        (WebCore::RenderThemeMac::checkbox):
40342        (WebCore::RenderThemeMac::radio):
40343        (WebCore::RenderThemeMac::button):
40344        (WebCore::RenderThemeMac::popupButton):
40345        (WebCore::RenderThemeMac::search):
40346        (WebCore::RenderThemeMac::sliderThumbHorizontal):
40347        (WebCore::RenderThemeMac::sliderThumbVertical):
40348
403492007-05-05  Rob Buis  <buis@kde.org>
40350
40351        Reviewed by Oliver.
40352
40353        http://bugs.webkit.org/show_bug.cgi?id=13592
40354        parseMappedAttribute inconsistency
40355
40356        Do not use local vars in parseMappedAttribute for attr name and value.
40357
40358        * ksvg2/svg/SVGAnimateMotionElement.cpp:
40359        (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
40360        * ksvg2/svg/SVGAnimateTransformElement.cpp:
40361        (WebCore::SVGAnimateTransformElement::parseMappedAttribute):
40362        * ksvg2/svg/SVGAnimationElement.cpp:
40363        (WebCore::SVGAnimationElement::parseMappedAttribute):
40364        * ksvg2/svg/SVGCircleElement.cpp:
40365        (WebCore::SVGCircleElement::parseMappedAttribute):
40366        * ksvg2/svg/SVGClipPathElement.cpp:
40367        (WebCore::SVGClipPathElement::parseMappedAttribute):
40368        * ksvg2/svg/SVGCursorElement.cpp:
40369        (WebCore::SVGCursorElement::parseMappedAttribute):
40370        * ksvg2/svg/SVGEllipseElement.cpp:
40371        (WebCore::SVGEllipseElement::parseMappedAttribute):
40372        * ksvg2/svg/SVGExternalResourcesRequired.cpp:
40373        (WebCore::SVGExternalResourcesRequired::parseMappedAttribute):
40374        * ksvg2/svg/SVGGradientElement.cpp:
40375        (WebCore::SVGGradientElement::parseMappedAttribute):
40376        * ksvg2/svg/SVGImageElement.cpp:
40377        (WebCore::SVGImageElement::parseMappedAttribute):
40378        * ksvg2/svg/SVGLineElement.cpp:
40379        (WebCore::SVGLineElement::parseMappedAttribute):
40380        * ksvg2/svg/SVGLinearGradientElement.cpp:
40381        (WebCore::SVGLinearGradientElement::parseMappedAttribute):
40382        * ksvg2/svg/SVGMarkerElement.cpp:
40383        (WebCore::SVGMarkerElement::parseMappedAttribute):
40384        * ksvg2/svg/SVGMaskElement.cpp:
40385        (WebCore::SVGMaskElement::parseMappedAttribute):
40386        * ksvg2/svg/SVGPathElement.cpp:
40387        (WebCore::SVGPathElement::parseMappedAttribute):
40388        * ksvg2/svg/SVGPatternElement.cpp:
40389        (WebCore::SVGPatternElement::parseMappedAttribute):
40390        * ksvg2/svg/SVGRadialGradientElement.cpp:
40391        (WebCore::SVGRadialGradientElement::parseMappedAttribute):
40392        * ksvg2/svg/SVGRectElement.cpp:
40393        (WebCore::SVGRectElement::parseMappedAttribute):
40394        * ksvg2/svg/SVGSVGElement.cpp:
40395        (WebCore::SVGSVGElement::parseMappedAttribute):
40396        * ksvg2/svg/SVGScriptElement.cpp:
40397        (WebCore::SVGScriptElement::parseMappedAttribute):
40398        * ksvg2/svg/SVGStopElement.cpp:
40399        (WebCore::SVGStopElement::parseMappedAttribute):
40400        * ksvg2/svg/SVGTests.cpp:
40401        (WebCore::SVGTests::parseMappedAttribute):
40402        * ksvg2/svg/SVGTextContentElement.cpp:
40403        (WebCore::SVGTextContentElement::parseMappedAttribute):
40404        * ksvg2/svg/SVGTextPositioningElement.cpp:
40405        (WebCore::SVGTextPositioningElement::parseMappedAttribute):
40406        * ksvg2/svg/SVGUseElement.cpp:
40407        (WebCore::SVGUseElement::parseMappedAttribute):
40408        * ksvg2/svg/SVGViewElement.cpp:
40409        (WebCore::SVGViewElement::parseMappedAttribute):
40410        * ksvg2/svg/SVGZoomAndPan.cpp:
40411        (WebCore::SVGZoomAndPan::parseMappedAttribute):
40412
404132007-05-05  Oliver Hunt  <oliver@apple.com>
40414
40415        Reviewed by Hyatt.
40416
40417        Initialise default fill with Color::black rather than parsing
40418        the string "black"
40419
40420        * ksvg2/svg/SVGPaint.cpp:
40421        (WebCore::SVGPaint::defaultFill):
40422
404232007-05-04  Steve Falkenburg  <sfalken@apple.com>
40424
40425        Reviewed by Oliver.
40426
40427        Use TextBreakIterator for sentence breaking instead of TextBoundaries.
40428
40429        * WebCore.xcodeproj/project.pbxproj: Added TextBreakIeratorInternalICUMac.mm
40430        * editing/visible_units.cpp:
40431        (WebCore::startSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
40432        (WebCore::endSentenceBoundary): Call TextBreakIterator instead of TextBoundaries.
40433        (WebCore::previousSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
40434        (WebCore::nextSentencePositionBoundary): Call TextBreakIterator instead of TextBoundaries.
40435        * platform/TextBoundaries.h: Removed findSentenceBoundary, findNextSentenceFromIndex.
40436        * platform/TextBreakIterator.h: Added sentenceBreakIterator.
40437        * platform/TextBreakIteratorICU.cpp:
40438        (WebCore::setUpIterator): Add locale parameter (needed to maintain functionality that TextBoundaries code had).
40439        (WebCore::characterBreakIterator): Pass en_us for locale (same as old code).
40440        (WebCore::wordBreakIterator): Pass en_us for locale (same as old code).
40441        (WebCore::lineBreakIterator): Pass en_us for locale (same as old code).
40442        (WebCore::sentenceBreakIterator): Added.
40443        * platform/TextBreakIteratorInternalICU.h: Added.
40444        * platform/gdk/TemporaryLinkStubs.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
40445        (WebCore::currentTextBreakLocaleID): Added stub.
40446        * platform/mac/TextBoundaries.mm: Removed currentTextBreakLocaleID, findSentenceBoundary, findNextSentenceFromIndex.
40447        * platform/mac/TextBreakIteratorInternalICUMac.mm: Added.
40448        (WebCore::currentTextBreakLocaleID): Moved from TextBoundaries.mm
40449        * platform/qt/TextBoundaries.cpp: Removed findNextSentenceFromIndex, findSentenceBoundary.
40450
404512007-05-04  Adele Peterson  <adele@apple.com>
40452
40453        Reviewed by Hyatt.
40454
40455        Fix for <rdar://problem/5116871> REGRESSION: Can't select options in widget's listbox
40456
40457        Don't use user-select to determine whether or not options can be selected in listboxes.
40458        This will match Firefox behavior for -moz-user-select.
40459
40460        * html/HTMLSelectElement.cpp:
40461        (WebCore::HTMLSelectElement::canSelectAll):
40462        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
40463
404642007-05-04  Geoffrey Garen  <ggaren@apple.com>
40465
40466        Reviewed by Tim Hatcher.
40467
40468        First step in fixing <rdar://problem/5055182> The back cache has no global cap
40469
40470        Stop giving SnapBack infinite cache-ability. Instead, make SnapBack rely
40471        on the underlying back cache.
40472
40473        * WebCore.exp:
40474        * history/HistoryItem.cpp:
40475        (WebCore::HistoryItem::HistoryItem):
40476        * history/HistoryItem.h:
40477        * loader/FrameLoader.cpp:
40478        (WebCore::FrameLoader::purgePageCache):
40479
404802007-05-04  Geoffrey Garen  <ggaren@apple.com>
40481
40482        Reviewed by Brady Eidson.
40483        
40484        Removed export of clearPageCache(), since it was unused externally. I plan
40485        to remove its use from WebCore eventually, too.
40486
40487        Removed usesPageCache(), since it was unused and it duplicated pageCacheSize().
40488
40489        * WebCore.exp:
40490        * history/BackForwardList.cpp:
40491        * history/BackForwardList.h: Moved statics to the top of the class definition.
40492        * loader/FrameLoader.cpp:
40493        (WebCore::FrameLoader::canCachePage):
40494
404952007-05-04  Anders Carlsson  <andersca@apple.com>
40496
40497        Reviewed by Antti.
40498
40499        <rdar://problem/5179977> Use the correct URLs when dispatching delegate methods for data loads.
40500
40501        Restore behavior to matching release WebKit by adding a response URL to SubstituteData. If a nil base URL is
40502        passed, set the _request_ URL to "about:blank", but the response URL to a generated "applewebdata" URL.
40503
40504        * loader/FrameLoader.cpp:
40505        (WebCore::FrameLoader::commitProvisionalLoad):
40506        First, check for the SubstituteData's response URL.
40507
40508        (WebCore::FrameLoader::continueAfterNavigationPolicy):
40509        No need to special case applewebdata URLs here, they're only used in the response.
40510
40511        * loader/MainResourceLoader.cpp:
40512        (WebCore::MainResourceLoader::handleDataLoadNow):
40513        If the substitute data has a response URL, use it.
40514
40515        (WebCore::MainResourceLoader::loadNow):
40516        Only load "about:blank" as an empty document if there's no substitute data.
40517
40518        * loader/SubstituteData.h:
40519        (WebCore::SubstituteData::SubstituteData):
40520        (WebCore::SubstituteData::responseURL):
40521        Add responseURL member to SubstituteData.
40522
405232007-05-03  Steve Falkenburg  <sfalken@apple.com>
40524
40525        Reviewed by Oliver.
40526
40527        Add missing user description parameter to spelling-related editor client method.
40528
40529        * bridge/EditorClient.h:
40530        * platform/gdk/EditorClientGdk.cpp:
40531        (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
40532        * platform/gdk/EditorClientGdk.h:
40533        * platform/graphics/svg/SVGImageEmptyClients.h:
40534        (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
40535
405362007-05-03  Brady Eidson  <beidson@apple.com>
40537
40538        Reviewed by Oliver
40539
40540        Resolve an outstanding FIXME in Loader::numRequests()
40541
40542        Before, numRequests() would iterate through the list of requests pending load and the list of currently
40543        loading requests and tally up a count matching the current DocLoader.
40544
40545        I noticed while studying and cleaning up the loader code that numRequests() is potentially very hot!
40546        Indeed load a complex site with many resources and multiple frames, and this method gets called very often,
40547        tallying up this number every time.
40548
40549        The FIXME was to keep a collection of Requests mapped to each DocLoader.  In reality, since this map would
40550        simply be used for retrieving a count, that was overkill.  Keeping a request count in the DocLoader itself
40551        along with maintaining that count in Loader as requests come and go is a much better way to do this.
40552
40553        * loader/DocLoader.cpp:
40554        (WebCore::DocLoader::DocLoader):
40555        (WebCore::DocLoader::incrementRequestCount):
40556        (WebCore::DocLoader::decrementRequestCount):
40557        (WebCore::DocLoader::requestCount): Emulate the defunct Loader::numRequests()
40558        * loader/DocLoader.h:
40559
40560        * loader/FrameLoader.cpp:
40561        (WebCore::numRequests): Call DocLoader::requestCount() directly
40562        (WebCore::FrameLoader::checkCompleted): Use numRequests()
40563
40564        * loader/loader.cpp:
40565        (WebCore::Loader::load): Increment the DocLoader's request count
40566        (WebCore::Loader::servePendingRequests): If the SubresourceLoader failed to create, decrement the count
40567        (WebCore::Loader::didFinishLoading): If the Request is not Multipart, decrement the count
40568        (WebCore::Loader::didFail): If the Request is not Multipart, decrement the count
40569        (WebCore::Loader::didReceiveResponse): If the Request becomes Multipart, decrement the count
40570        (WebCore::Loader::cancelRequests): Decrement the count for the pending requests being tossed, and ASSERT the
40571          count is zero after all requests have been cancelled
40572        * loader/loader.h:
40573
405742007-05-03  Geoffrey Garen  <ggaren@apple.com>
40575
40576        Reviewed by Brady Eidson.
40577        
40578        Some cleanup in preparation for fixing <rdar://problem/5055182> The 
40579        back/forward cache has no global cap
40580
40581        * loader/FrameLoader.cpp:
40582        (WebCore::FrameLoader::provisionalLoadStarted): Moved "Can I cache this
40583        page?" logic to canCachePage(). Moved "I am caching this page" logic to
40584        cachePageToHistoryItem().
40585        (WebCore::FrameLoader::canCachePage): Moved above logic here.
40586        (WebCore::FrameLoader::cachePageToHistoryItem): Removed bogus NULL check
40587        and failure return value. Moved above logic here. Don't call setCachedPage()
40588        until the CachedPage is fully constructed.
40589        (WebCore::FrameLoader::purgePageCache): Removed comment that duplicated
40590        the function name.
40591        * loader/FrameLoader.h:
40592
405932007-05-03  Justin Garcia  <justin.garcia@apple.com>
40594
40595        Reviewed by harrison.
40596
40597        <rdar://problem/5120281> CrashTracer: [USER] 1 crash in Mail at WebCore::CSSComputedStyleDeclaration::copyInheritableProperties() const
40598
40599        Problem is that checkAncestor and lastClosed can be nil when createMarkup is called unrendered nodes, and that was not checked for.
40600        
40601        * editing/markup.cpp:
40602        (WebCore::createMarkup):
40603        Nil-check checkAncestor and lastClosed.
40604
406052007-05-03  Timothy Hatcher  <timothy@apple.com>
40606
40607        Reviewed by Kevin.
40608
40609        <rdar://problem/5016318> Contextual menu item for opening links is missing in compose windows but present in viewer
40610
40611        Add the Open Link, Open Link in New Window, Download Linked File and Copy Link menu
40612        items to the content editable context menu.
40613
40614        * platform/ContextMenu.cpp:
40615        (WebCore::ContextMenu::populate):
40616
406172007-05-03  Holger Freyther <freyther@kde.org>
40618
40619        Reviewed by Zack, landed by Simon.
40620        This is bugzilla bug 13499.
40621
40622        * WebCore.pro: Place the Qt port into the qt-port scope, add the Gdk port
40623
406242007-05-03  Adele Peterson  <adele@apple.com>
40625
40626        Use BUILDING_ON_TIGER.
40627
40628        * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
40629
406302007-05-03  Brady Eidson  <beidson@apple.com>
40631
40632        Reviewed by Darin
40633
40634        Some more minor cleanup that resolves a FIXME and ditches another pointless method
40635
40636        No change in functionality == no layout test
40637
40638        * loader/FrameLoader.cpp:
40639        (WebCore::FrameLoader::commitProvisionalLoad):  Updated a comment
40640        (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Folded startLoading() into this method
40641        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): continueAfterWillSubmitForm becomes continueLoadAfterWillSubmitForm
40642        * loader/FrameLoader.h: Removed startLoading()
40643
406442007-05-03  Adele Peterson  <adele@apple.com>
40645
40646        Reviewed by Tim Hatcher.
40647
40648        Fix for <rdar://problem/4727607> REGRESSION: KeyScript is deprecated, need a new solution for forcing Roman input for password fields on Leopard
40649
40650        * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
40651        Use TSMSetDocumentProperty and TSMRemoveDocumentProperty on Leopard disable and enable non-ascii input sources.
40652
406532007-05-03  Brady Eidson  <beidson@apple.com>
40654
40655        Reviewed by Anders
40656
40657        commitProvisionalLoad() was the name of two methods.
40658        One of them was private and only called from one other private place.
40659        This was driving me crazy.  I had to change that.
40660
40661        No change in functionality == no layout test
40662
40663        * loader/FrameLoader.cpp:
40664        (WebCore::FrameLoader::transitionToCommitted): roll commitProvisionalLoad() into this method
40665        * loader/FrameLoader.h: Removed commitProvisionalLoad()
40666
406672007-05-03  Darin Adler  <darin@apple.com>
40668
40669        Reviewed by Anders.
40670
40671        - make ICU initialization lazy to speed up application start-up time
40672          (when it includes an initial webpage load)
40673
40674        * platform/TextCodecICU.h: Replaced registerEncodingNames and
40675        registerCodecs with registerBaseEncodingNames, registerBaseCodecs,
40676        registerExtendedEncodingNames, and registerExtendedCodecs.
40677        * platform/TextCodecICU.cpp:
40678        (WebCore::newTextCodecICU): Moved up to the top of the file.
40679        (WebCore::TextCodecICU::registerBaseEncodingNames): Added. Registers
40680        just UTF-8.
40681        (WebCore::TextCodecICU::registerBaseCodecs): Ditto.
40682        (WebCore::TextCodecICU::registerExtendedEncodingNames): Renamed.
40683        (WebCore::TextCodecICU::registerExtendedCodecs): Ditto.
40684        (WebCore::TextCodecICU::createICUConverter): Compare with the name
40685        "GBK" in a way that does not require extending the maps.
40686
40687        * platform/TextEncoding.cpp:
40688        (WebCore::TextEncoding::usesVisualOrdering): Added code so this will
40689        just return false if we haven't used any extended encoding names yet.
40690        The result will be correct, and we won't ask for an encoding name that
40691        will require registering the extended encoding names.
40692        (WebCore::TextEncoding::isJapanese): Ditto.
40693        (WebCore::TextEncoding::backslashAsCurrencySymbol): Ditto, but return
40694        a backslash instead of false.
40695
40696        * platform/TextEncodingRegistry.h: Added a new function named
40697         noExtendedTextEncodingNameUsed.
40698        * platform/TextEncodingRegistry.cpp:
40699        (WebCore::buildBaseTextCodecMaps): Added. Registers the base encodings,
40700        including Latin-1 because it's the default, and the UTF encodings.
40701        (WebCore::extendTextCodecMaps): Added. Registers all the other encodings.
40702        (WebCore::newTextCodec): Removed the all to buildTextCodecMap because
40703        we always build the map when making the canonical encoding name.
40704        (WebCore::atomicCanonicalTextEncodingName): Changed code to build only
40705        the base maps at first, then extend the maps the first time we run into
40706        a name we don't know.
40707        (WebCore::noExtendedTextEncodingNameUsed): Added.
40708
407092007-05-03  Mark Rowe  <mrowe@apple.com>
40710
40711        Qt build fix.  In r21185 the Qt version of WebCore::scaleDragImage was
40712        updated to have the incorrect signature.
40713
40714        * platform/qt/DragImageQt.cpp:
40715        (WebCore::scaleDragImage):
40716
407172007-05-02  Beth Dakin  <bdakin@apple.com>
40718
40719        * dom/Node.h: Just fixing a variable name because it's driving me 
40720        mad.
40721
407222007-05-02  Beth Dakin  <bdakin@apple.com>
40723
40724        Reviewed by Hyatt.
40725
40726        Fix for <rdar://problem/4513966> Never-ending identical repaint @ 
40727        orbitz.com (Safari eating 85% CPU)
40728
40729        We need to be a little bit more savvy about when we do a FULL style 
40730        recalc since it can be unnecessary and expensive.
40731
40732        * css/CSSMutableStyleDeclaration.cpp:
40733        (WebCore::CSSMutableStyleDeclaration::setChanged): Now takes a 
40734        StyleChangeType as a parameter.
40735        (WebCore::CSSMutableStyleDeclaration::setProperty): Send 
40736        InlineStyleChange as the paramter. This is the optimization!
40737        * css/CSSMutableStyleDeclaration.h: setChanged takes a 
40738        StyleChangeType as a parameter.
40739        * dom/Document.cpp: setChanged now takes a StyleChangeType instead 
40740        of a bool.
40741        (WebCore::Document::recalcStyle): Same.
40742        * dom/Element.cpp: 
40743        (WebCore::Element::recalcStyle): This is the fix!! Only set change 
40744        to Force is we use descendant rules AND it's a FullStyleChange.
40745        * dom/Node.cpp: m_hasStyle was an unused bit on Node, so this patch 
40746        gets rid of it and uses that extra bit for m_changed to be a 
40747        StyleChangeType instead of a bool.
40748        (WebCore::Node::Node):
40749        (WebCore::Node::setChanged):
40750        (WebCore::Node::dump):
40751        * dom/Node.h: Same.
40752        (WebCore::): Define the StyleChangeType enum.
40753        (WebCore::Node::hasClass):
40754        (WebCore::Node::changed):
40755        (WebCore::Node::styleChangeType):
40756        (WebCore::Node::setHasClass):
40757        * dom/StyledElement.cpp:
40758        (WebCore::StyledElement::parseMappedAttribute): Don't bother 
40759        calling setHasStyle() since m_hasStyle is gone now. It was never 
40760        used, and this was the only place it was set.
40761        * dom/Text.cpp:
40762        (WebCore::Text::recalcStyle): setChanged now takes a 
40763        StyleChangeType instead of a bool.
40764        * html/HTMLFrameSetElement.cpp:
40765        (WebCore::HTMLFrameSetElement::recalcStyle): Same.
40766        * html/HTMLSelectElement.cpp:
40767        (WebCore::HTMLSelectElement::restoreState): Same.
40768        (WebCore::HTMLSelectElement::reset): Same.
40769        * html/HTMLTextAreaElement.cpp:
40770        (WebCore::HTMLTextAreaElement::setValue): Same.
40771        * ksvg2/misc/SVGTimer.cpp:
40772        (WebCore::SVGTimer::applyAnimations): Same.
40773        * ksvg2/svg/SVGUseElement.cpp:
40774        (WebCore::SVGUseElement::recalcStyle): Same.
40775        * platform/graphics/svg/SVGResource.cpp:
40776        (WebCore::SVGResource::repaintClients): Same.
40777
407782007-05-02  David Harrison  <harrison@apple.com>
40779
40780        Reviewed by Antti.
40781
40782        <rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks, and shouldn't show markers for current sentence
40783
40784        Restore the remainder of the original fix now that blocking bug rdar://5174862 is addressed.
40785
40786        John made the original patch on 2007-04-10, but this fell prey to rdar://5157329.
40787        Justin backed out the whole patch on 2007-04-30 to avoid the crash.
40788        Justin then restored most of the original patch, but used word granularity instead, to keep the build working.
40789        I just addressed the root cause of rdar://5157329 in rdar://5174862.
40790        This patch switches the temp uses of word granularity back to sentence granularity.
40791        
40792        * editing/mac/EditorMac.mm:
40793        (WebCore::Editor::markMisspellingsAfterTypingToPosition):
40794        * page/Frame.cpp:
40795        (WebCore::Frame::respondToChangedSelection):
40796
407972007-05-02  David Harrison  <harrison@apple.com>
40798
40799        Reviewed by Antti.
40800
40801        <rdar://problem/5174862> Crash resulting from DeprecatedString::insert()
40802        
40803        Test added: editing/selection/move-by-sentence-001.html
40804
40805        * editing/visible_units.cpp:
40806        (WebCore::previousBoundary):
40807        (WebCore::nextBoundary):
40808        Use a UChar Vector instead of DeprecatedString.
40809        Avoid creating an extra string for secure bullet replacement unless it is actually needed.
40810        
40811        * platform/DeprecatedString.cpp:
40812        (WebCore::DeprecatedString::insert):
40813        Call forceUnicode() before setLength(), so that only the unicode buffer is resized.
40814
40815       (WebCore::DeprecatedString::setLength):
40816        Adjust the unicode buffer even if the ascii buffer is valid.
40817        
408182007-05-02  Mitz Pettel  <mitz@webkit.org>
40819
40820        Reviewed by Brady.
40821
40822        - http://bugs.webkit.org/show_bug.cgi?id=13564
40823          Remove friend class FrameLoader from Frame
40824
40825        No test added since there is no change in functionality.
40826
40827        * loader/FrameLoader.cpp:
40828        (WebCore::FrameLoader::didOpenURL):
40829        (WebCore::FrameLoader::begin):
40830        (WebCore::FrameLoader::open):
40831        * loader/FrameLoader.h: Made clear() private.
40832        * page/Frame.cpp:
40833        (WebCore::Frame::setDocument): Changed the argument into a PassRefPtr.
40834        * page/Frame.h:
40835        * xml/XSLTProcessor.cpp:
40836        (WebCore::XSLTProcessor::createDocumentFromSource):
40837
408382007-05-02  Mitz Pettel  <mitz@webkit.org>
40839
40840        Reviewed by Dave Hyatt.
40841
40842        - fix http://bugs.webkit.org/show_bug.cgi?id=9276
40843          Quirksmode: Image swap resize bug
40844
40845        Test: fast/replaced/image-resize-width.html
40846
40847        * rendering/RenderImage.cpp:
40848        (WebCore::RenderImage::imageChanged): Moved the call to dirtyPrefWidths()
40849        before the call to calcWidth().
40850
408512007-05-02  David Hyatt  <hyatt@apple.com>
40852
40853        Fix for bug 13566, broken Dashboard widgets.  setPrefWidthsDirty did
40854        the wrong thing for text children of a positioned element.
40855
40856        Reviewed by mitz
40857
40858        fast/block/positioning/pref-width-change.html
40859
40860        * rendering/RenderObject.cpp:
40861        (WebCore::RenderObject::setPrefWidthsDirty):
40862
408632007-05-01  Darin Adler  <darin@apple.com>
40864
40865        * rendering/RenderReplaced.cpp: Fix typo in a comment.
40866
408672007-05-01  David Hyatt  <hyatt@apple.com>
40868
40869        Fix for 13558, crash when using absolutely positioned generated content
40870        inside an inline.
40871
40872        Reviewed by darin
40873
40874        fast/css-generated-content/absolute-position-inside-inline.html
40875
40876        * rendering/RenderContainer.cpp:
40877        (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
40878
408792007-05-01  Justin Garcia  <justin.garcia@apple.com>
40880
40881        Reviewed by darin
40882
40883        <rdar://problem/5002441> 
40884        Pressing space key does nothing above quoted content or a signature
40885        
40886        Inserting a space under these circumstances inserts a single 
40887        text node containing a regular space and then does a layout. 
40888        That space isn't rendered (which is correct).  Whitespace 
40889        rebalancing is supposed to correct it but failed.  It replaces 
40890        the space with a non-breaking space, but that change doesn't 
40891        dirty line boxes (9441) and so the space isn't rendered.
40892        
40893        This workaround turns all incoming spaces into non-breaking 
40894        spaces before they're inserted (they're rebalanced after 
40895        insertion and turned back into regular spaces if possible).
40896
40897        * editing/InsertTextCommand.cpp:
40898        (WebCore::InsertTextCommand::prepareForTextInsertion): Removed
40899        an old irrelevant FIXME.
40900        (WebCore::InsertTextCommand::input): Turn incoming spaces into
40901        non breaking spaces before inserting them.
40902        
409032007-05-01  Darin Adler  <darin@apple.com>
40904
40905        Reviewed by Hyatt.
40906
40907        - fix http://bugs.webkit.org/show_bug.cgi?id=13559
40908          REGRESSION: Canvas aspect ratio is incorrect
40909
40910        - remove intrinsicWidth/Height functions from RenderObject
40911
40912        Test: fast/canvas/canvas-size-change-after-layout.html
40913
40914        * html/HTMLCanvasElement.cpp:
40915        (WebCore::HTMLCanvasElement::createRenderer): Removed code to set
40916        the intrinsic size, because the renderer now takes care of this
40917        in its constructor.
40918        (WebCore::HTMLCanvasElement::reset): Instead of calling the
40919        setIntrinsicWidth/Height functions, call canvasSizeChanged, which
40920        takes care of layout, but only if the size actually changed. Also
40921        call repaint if the contents of the canvas changed.
40922
40923        * rendering/RenderApplet.h:
40924        * rendering/RenderApplet.cpp: (WebCore::RenderApplet::intrinsicSize):
40925        Override the new intrinsicSize function. This override still doesn't
40926        make sense, so left a FIXME in here.
40927
40928        * rendering/RenderBox.h: Added an intrinsicSize function here to replace
40929        the intrinsicWidth/Height functions removed from RenderObject.
40930        * rendering/RenderBox.cpp:
40931        (WebCore::RenderBox::calcReplacedWidthUsing): Use intrinsicSize instead
40932        of intrinsicWidth.
40933        (WebCore::RenderBox::calcReplacedHeightUsing): Ditto, but for height.
40934
40935        * rendering/RenderHTMLCanvas.h: Changed the constructor parameter to be
40936        an HTMLCanvasElement* instead of Node*. Also added a canvasSizeChanged
40937        function.
40938        * rendering/RenderHTMLCanvas.cpp:
40939        (WebCore::RenderHTMLCanvas::RenderHTMLCanvas): Pass an initial intrinsic
40940        size based on the current size of the canvas element. This is now the
40941        responsibility of the renderer and the DOM element calls the canvasSizeChanged
40942        function when the size changes.
40943        (WebCore::RenderHTMLCanvas::paint): Removed checks of the type of the element,
40944        and used the node() function because we don't have to worry about the anonymous
40945        case in this class.
40946        (WebCore::RenderHTMLCanvas::canvasSizeChanged): Added. Changes the size and
40947        then calls setNeedsLayout and setPrefWidthsDirty as needed. I based the logic
40948        here on careful reading of RenderImage::imageChanged.
40949
40950        * rendering/RenderImage.cpp:
40951        (WebCore::RenderImage::RenderImage): Pass a default intrinsic size of 0,0
40952        instead of calling setIntrinsicWidth/Height.
40953        (WebCore::RenderImage::setImageSizeForAltText): Call the new intrinsic size
40954        functions instead of the width/height ones. Simplifies the logic since we
40955        handle both dimensions at once.
40956        (WebCore::RenderImage::imageChanged): Ditto.
40957        (WebCore::RenderImage::layout): Ditto.
40958        (WebCore::RenderImage::calcAspectRatioWidth): Ditto.
40959        (WebCore::RenderImage::calcAspectRatioHeight): Ditto.
40960
40961        * rendering/RenderObject.h: Removed intrinsicWidth/Height virtual functions.
40962
40963        * rendering/RenderReplaced.h: Replaced intrinsicWidth, intrinsicHeight,
40964        setIntrinsicWidth, setIntrinsicHeight, m_intrinsicWidth, and m_intrinsicHeight
40965        with intrinsicSize, setIntrinsicSize, and m_intrinsicSize.
40966        * rendering/RenderReplaced.cpp:
40967        (WebCore::RenderReplaced::RenderReplaced): Added a second contructor that takes
40968        an intrinsic size parameter. Also updated constructor since the intrinsic size
40969        is now an IntSize instead of two integers.
40970        (WebCore::RenderReplaced::intrinsicSize): Added. No point in making this inline
40971        because it's a virtual function.
40972        (WebCore::RenderReplaced::setIntrinsicSize): Added. Didn't make this inline,
40973        partly because in the future we might want this to be more than just a simple
40974        setter function, factoring in common code used in both RenderImage and
40975        RenderHTMLCanvas.
40976
40977        * rendering/RenderWidget.h: Removed a stray using declaration that wasn't needed.
40978
409792007-05-01  David Hyatt  <hyatt@apple.com>
40980
40981        Fix for hang when incorrectly trying to add before/after content to
40982        a <select>.  Disallow generated content in all selects and also turn it
40983        off for <input> buttons.
40984
40985        Reviewed by aroben
40986
40987        * rendering/RenderBlock.cpp:
40988        (WebCore::RenderBlock::setStyle):
40989        * rendering/RenderButton.cpp:
40990        (WebCore::RenderButton::canHaveChildren):
40991        * rendering/RenderButton.h:
40992
409932007-05-01  Darin Adler  <darin@apple.com>
40994
40995        Reviewed by Hyatt.
40996
40997        - removed the m_implicit bit from Node, freeing up a bit
40998
40999        - fixed <rdar://problem/5172607> XML parser is creating implicit tbody elements
41000        - fixed <rdar://problem/5172596> HTML-parser-created tbody elements are being
41001          ignored when processing CSS child rules
41002
41003        Test: fast/css/child-selector-implicit-tbody.html
41004
41005        * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::checkSelector):
41006        Removed code that used to look at implicitNode(), which no longer exists.
41007
41008        * css/html4.css: Added a style rule to handle cases where we have a tr
41009        inside a table with no intervening table section.
41010
41011        * dom/Node.h: Removed the bit.
41012        * dom/Node.cpp:
41013        (WebCore::Node::Node): Don't initialize the bit.
41014        (WebCore::Node::dump): Don't dump the bit.
41015
41016        * dom/XMLTokenizer.cpp:
41017        (WebCore::XMLTokenizer::startElementNs): Remove the code that made a
41018        table body element. This is handled in the render tree, the DOM tree
41019        should not be mangled.
41020        (WebCore::XMLTokenizer::endElementNs): Removed code that used to look at
41021        implicitNode(), which no longer exists.
41022
41023        * html/HTMLElementFactory.cpp: (WebCore::tableSectionConstructor):
41024        Removed boolean parameter that was passed to the HTMLTableSectionElement
41025        constructor.
41026        * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): Ditto.
41027        * html/HTMLTableElement.cpp:
41028        (WebCore::HTMLTableElement::createTHead): Ditto.
41029        (WebCore::HTMLTableElement::createTFoot): Ditto.
41030        (WebCore::HTMLTableElement::insertRow): Changed to return a PassRefPtr,
41031        because it's possible the row could be removed from the table by JavaScript
41032        code responding to DOM mutation events before the function returns. Just
41033        something I noticed by code inspection.
41034
41035        * html/HTMLTableSectionElement.cpp:
41036        (WebCore::HTMLTableSectionElement::HTMLTableSectionElement): Removed
41037        boolean "implicit" parameter to the constructor.
41038        (WebCore::HTMLTableSectionElement::insertRow): Changed to return a
41039        PassRefPtr for the same reason cited above.
41040
41041        * html/HTMLTableElement.h: Changed the return value of insertRow to be
41042        a PassRefPtr.
41043        * html/HTMLTableSectionElement.h: Ditto.
41044
410452007-04-30  David Hyatt  <hyatt@apple.com>
41046
41047        Fix for bug 12691, generated content and display: table-cell duplicates
41048        content on a size change.  Make sure that the code to update before/after
41049        content is smart enough to drill into anonymous containers to find the
41050        old child.
41051
41052        Reviewed by olliej
41053
41054        Added fast/css-generated-content/table-cell-before-content.html
41055
41056        * rendering/RenderBlock.cpp:
41057        (WebCore::RenderBlock::setStyle):
41058        * rendering/RenderButton.cpp:
41059        (WebCore::RenderButton::updateBeforeAfterContent):
41060        * rendering/RenderButton.h:
41061        * rendering/RenderContainer.cpp:
41062        (WebCore::RenderContainer::beforeAfterContainer):
41063        (WebCore::RenderContainer::updateBeforeAfterContent):
41064        (WebCore::RenderContainer::updateBeforeAfterContentForObject):
41065        * rendering/RenderContainer.h:
41066        * rendering/RenderInline.cpp:
41067        (WebCore::RenderInline::setStyle):
41068        (WebCore::RenderInline::addChildToFlow):
41069        (WebCore::RenderInline::splitInlines):
41070
410712007-04-30  Jungshik Shin <jungshik.shin@gmail.com>
41072
41073        Reviewed by justin
41074        
41075        <http://bugs.webkit.org/show_bug.cgi?id=13552>
41076        comment to Range::comparePoint in dom/Range.cpp has 
41077        '0xD0' in place of '-': leading to a compiler warning
41078
41079        * dom/Range.cpp:
41080        (WebCore::Range::comparePoint):
41081
410822007-04-30  Justin Garcia  <justin.garcia@apple.com>
41083
41084        Reviewed by darin
41085
41086        <rdar://problem/4875189> List gets deleted when replacing contents
41087
41088        * editing/ReplaceSelectionCommand.cpp:
41089        (WebCore::ReplaceSelectionCommand::doApply): Don't expand
41090        to include elements, like lists, when deleting a selection 
41091        to replace it.
41092
410932007-04-30  Justin Garcia  <justin.garcia@apple.com>
41094
41095        Reviewed by ggaren
41096        
41097        Buildfix.  Leave in grammar checking machinery to 
41098        keep WebKit building on other platforms but don't
41099        operate on sentence sized chunks so that we don't
41100        re-introduce 5157329.
41101
41102        * editing/Editor.h:
41103        * editing/mac/EditorMac.mm:
41104        (WebCore::Editor::markMisspellingsAfterTypingToPosition):
41105        (WebCore::markMisspellingsOrBadGrammar):
41106        (WebCore::Editor::markMisspellings):
41107        (WebCore::Editor::markBadGrammar):
41108        * page/Frame.cpp:
41109        (WebCore::Frame::respondToChangedSelection):
41110
411112007-04-30  Justin Garcia  <justin.garcia@apple.com>
41112
41113        Reviewed by darin
41114
41115        <rdar://problem/5168598> 
41116        Crash when deleting a link inside an input field
41117        
41118        Deletion code tries to update one of its positions to keep 
41119        it valid and nullifies it.  Later in mergeParagraphs we try 
41120        to find out if it's valid by checking to see if it's still in 
41121        the document and crash.
41122        
41123        The fix is just to not bother keeping the position, 
41124        m_upstreamStart, valid, since after the point in the code 
41125        under examination, it doesn't need to be valid anymore.  
41126        Besides, code to update DeleteSelectionCommand's positions 
41127        should go in the functions that handle the content removal 
41128        that might invalid them (there are already FIXMEs about this).
41129        
41130        Also, users shouldn't be able to insert links (or any rich content)
41131        into plaintext-only regions like text fields, even if those
41132        text fields are inside richly editable regions.  This is a 
41133        separate bug and is filed as 5171552.
41134
41135        * editing/DeleteSelectionCommand.cpp:
41136        (WebCore::DeleteSelectionCommand::handleGeneralDelete): Don't
41137        bother updating m_upstreamStart.
41138
411392007-04-30  Patti Hoa  <patti@apple.com>
41140
41141        Reviewed by Dave Hyatt.
41142        
41143        <rdar://problem/5108546> REGRESSION: Zoom follows keyboard focus does not work
41144
41145        * WebCore.xcodeproj/project.pbxproj:
41146        Add new file SelectionControllerMac.mm
41147        * dom/Document.cpp:
41148        (WebCore::Document::updateSelection):
41149        Move the code to fire off AXSelectedTextChanged notification to a new method notifyAccessibilityForSelectionChange in SelectionControllerMac.mm
41150        * editing/SelectionController.cpp:
41151        (WebCore::SelectionController::setSelection):
41152        call notifyAccessibilityForSelectionChange to handle firing of accessibility notification and zoomFocusChange
41153        * editing/SelectionController.h:
41154        Add notifyAccessibilityForSelectionChange method for Mac platform
41155        * platform/Widget.h:
41156        * platform/mac/WidgetMac.mm:
41157        (WebCore::Widget::convertToScreenCoordinate):
41158        Add a helper routine that takes IntPoint in local coordinate and convert that to screen coordinate
41159
411602007-04-30  Justin Garcia  <justin.garcia@apple.com>
41161
41162        Reviewed by harrison
41163
41164        <rdar://problem/5157329> 
41165        REGRESSION: Crash at WTF::fastFree() when arrowing or deleting backward through editable text (13493)
41166        
41167        Backing out the changes for 4859132.
41168
41169        * editing/Editor.h:
41170        * editing/mac/EditorMac.mm:
41171        (WebCore::Editor::markMisspellingsAfterTypingToPosition):
41172        (WebCore::Editor::markMisspellings):
41173        * page/Frame.cpp:
41174        (WebCore::Frame::respondToChangedSelection):
41175
411762007-04-29  Antti Koivisto  <antti@apple.com>
41177
41178        Reviewed by Oliver.
41179
41180        Fix <rdar://problem/5169261>
41181        REGRESSION: Google Maps zooming too sensitive when using two fingers on trackpad
41182        
41183        Use line based delta values when generating DOM wheel events, use pixel deltas
41184        for scrolling only.
41185        
41186        No test case, requires user interaction and specific hardware.
41187
41188        * page/EventHandler.cpp:
41189        (WebCore::EventHandler::handleWheelEvent):
41190        * platform/PlatformWheelEvent.h:
41191        (WebCore::PlatformWheelEvent::continuousDeltaX):
41192        (WebCore::PlatformWheelEvent::continuousDeltaY):
41193        * platform/mac/WheelEventMac.mm:
41194        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
41195
411962007-04-29  Oliver Hunt  <oliver@apple.com>
41197
41198        Reviewed by Brady.
41199
41200        Build fix for experimental features build
41201
41202        * rendering/RenderForeignObject.cpp:
41203
412042007-04-29  Mitz Pettel  <mitz@webkit.org>
41205
41206        Reviewed by Dave Hyatt.
41207
41208        - fix http://bugs.webkit.org/show_bug.cgi?id=13544
41209          REGRESSION (r21120): Member profile frame not erased at Yahoo! Answers
41210
41211        Test: fast/repaint/layer-hide-when-needs-layout.html
41212
41213        * rendering/RenderObject.cpp:
41214        (WebCore::RenderObject::setStyle): If we get a layout hint, we count on
41215        layout() or updateLayerPositions() to repaint. In the case of a layer
41216        going invisible, however, we need to repaint here since neither of the
41217        above will do it.
41218
412192007-04-29  Oliver Hunt  <oliver@apple.com>
41220
41221        Reviewed by Steve.
41222
41223        Fix for <rdar://problem/5126393> REGRESSION (r19672-19697): Safari drag image drags at original size (13261)
41224
41225        Added logic to ensure that when we create the drag image
41226        we're looking at the rendered image size.
41227
41228        * page/DragController.cpp:
41229        (WebCore::DragController::doImageDrag):
41230          Pass the rendered image size to fitDragImageToMaxSize
41231
41232        * platform/DragImage.cpp:
41233        (WebCore::fitDragImageToMaxSize):
41234           Need to do scaling relative to rendered image size
41235
41236        * platform/DragImage.h:
41237           scaleDragImage needs x and y scales to allow for them to be
41238           scaled seperately on a page
41239
41240        * platform/gdk/DragImageGdk.cpp:
41241        (WebCore::scaleDragImage):
41242           Prevent build bustage
41243
41244        * platform/mac/DragImageMac.mm:
41245        (WebCore::scaleDragImage):
41246           scale width and height independently
41247
41248        * platform/qt/DragImageQt.cpp:
41249        (WebCore::scaleDragImage):
41250           Prevent build bustage
41251
412522007-04-29  Darin Adler  <darin@apple.com>
41253
41254        Reviewed by Adele.
41255
41256        - fix the Gmail part of http://bugs.webkit.org/show_bug.cgi?id=12798
41257          and <rdar://problem/4118559>
41258
41259        This patch changes things so that resizing can make things larger than their
41260        initial size, but not smaller. I believe this resolves the problem for Gmail,
41261        but you can still get strange behavior if you have a small right-aligned <textarea>.
41262
41263        * rendering/RenderLayer.cpp:
41264        (WebCore::RenderLayer::resize): Rewrote to use more IntPoint and IntSize and add
41265        in a new minimum-size algorithm. This function now has the side effect of storing
41266        a new minimumSizeForResizing in the element being resized, and respects any existing
41267        minimum as well.
41268        (WebCore::RenderLayer::offsetFromResizeCorner): Reversed this so it converts the
41269        point into coordinates relative to the resize corner, hence negative numbers mean
41270        the point is above and to the left. This is used only in the algorithm above.
41271
41272        * dom/Element.h: Removed unneeded include of Attr.h, and added forward declarations
41273        as needed. Removed all friend declarations; there was no need for any of them.
41274        Tweaked formatting of various declarations and removed unneeded parameter names.
41275        Made as much as possible private, and a couple things public to avoid the need for
41276        friend classes. Added minimumSizeForResizing, setMinimumSizeForResizing, rareData,
41277        and createRareData functions.
41278
41279        * dom/Element.cpp:
41280        (WebCore::rareDataMap): Added. Function to return the single global map.
41281        (WebCore::rareDataFromMap): Added. For use by inlined functions to get the
41282        data from the map in the case where it's present.
41283        (WebCore::ElementRareData::ElementRareData): Added.
41284        (WebCore::Element::~Element): Added code to delete the element from the rare
41285        data map when appropriate.
41286        (WebCore::Element::rareData): Added.
41287        (WebCore::Element::createRareData): Added.
41288        (WebCore::Element::setAttributeNodeNS): Got rid of the old inline version of this,
41289        since it was the sole reason we had to include Attr.h in Element.h.
41290        (WebCore::Element::minimumSizeForResizing): Added. Accesses rare data.
41291        (WebCore::Element::setMinimumSizeForResizing): Ditto.
41292
41293        * dom/Node.h: Renamed the m_specified bit since it's now used for two purposes.
41294        Its new long name is m_attrWasSpecifiedOrElementHasRareData.
41295
41296        * dom/Attr.cpp: (WebCore::Attr::Attr): Updated for bit name change.
41297        * dom/Attr.h:
41298        (WebCore::Attr::specified): Ditto.
41299        (WebCore::Attr::setSpecified): Added, since setting the bit directly is pretty ugly now.
41300        * dom/Document.cpp: (WebCore::Document::adoptNode): Updated for bit name change.
41301        * dom/Node.cpp:
41302        (WebCore::Node::Node): Ditto.
41303        (WebCore::Node::dump): Ditto.
41304
41305        * dom/NamedAttrMap.cpp: (WebCore::NamedAttrMap::isReadOnlyNode): Moved out of line,
41306        since this was the sole reason we had to include Element.h in NamedAttrMap.h.
41307
41308        * html/HTMLElement.cpp:
41309        (WebCore::HTMLElement::nodeName): Changed to use tagQName() since that's a public
41310        way to do something that's now private.
41311        (WebCore::HTMLElement::cloneNode): Ditto.
41312
41313        * dom/Attribute.cpp:
41314        * dom/NamedAttrMap.h:
41315        * dom/NamedMappedAttrMap.cpp:
41316        * dom/StyledElement.h:
41317        * html/HTMLTokenizer.h:
41318        * xml/XPathFunctions.cpp:
41319        * xml/XPathStep.cpp:
41320        Updated includes, and other administrivia.
41321
413222007-04-29  Mitz Pettel  <mitz@webkit.org>
41323
41324        Reviewed by Darin and Hyatt.
41325
41326        - http://bugs.webkit.org/show_bug.cgi?id=13487
41327          Implement O(1) absoluteClippedOverflowRect and absoluteOutlineBox during layout for a possible speed gain
41328
41329        Test for a bug fixed by this patch: fast/repaint/intermediate-layout-position-clip.html
41330
41331        By keeping track of the total translation and clip during layout, absolutePosition and
41332        computeAbsoluteRepaintRect become O(1).
41333
41334        * WebCore.pro: Added LayoutState.cpp
41335        * WebCore.vcproj/WebCore/WebCore.vcproj: Added LayoutState.{cpp,h}
41336        * WebCore.xcodeproj/project.pbxproj: Added LayoutState.{cpp,h}
41337        * WebCoreSources.bkl: Added LayoutState.cpp
41338        * page/FrameView.cpp:
41339        (WebCore::FrameView::layout): When doing subtree layout, push an initial layout state for the
41340        layout root.
41341        * rendering/LayoutState.cpp: Added. A LayoutState corresponding to a box consists of the origin of
41342        its coordinate system in view coordinates and possibly the clip rect, in view coordinates, which
41343        applies to its children.
41344        (WebCore::LayoutState::LayoutState):
41345        (WebCore::LayoutState::destroy):
41346        (WebCore::throw):
41347        (WebCore::LayoutState::operator delete):
41348        * rendering/LayoutState.h: Added.
41349        (WebCore::LayoutState::LayoutState):
41350        * rendering/RenderBlock.cpp:
41351        (WebCore::RenderBlock::layoutBlock): Factored out the "only positioned objects" case into
41352        layoutOnlyPositionedObjects(). Added code to push/pop LayoutState, unless we have columns, in
41353        which case we disable/enable LayoutState. Removed the translation by the layout delta
41354        of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
41355        absoluteOutlineBox().
41356        (WebCore::RenderBlock::layoutOnlyPositionedObjects): Added this helper function that checks for
41357        and handles the case where only positioned objects need layout. Returns true in that case.
41358        (WebCore::RenderBlock::repaintOverhangingFloats): Disabled LayoutState when repainting floats, since
41359        they may belong to other containers.
41360        (WebCore::RenderBlock::updateFirstLetter): Disabled LayoutState when adding and removing from the
41361        first letter container, since it may be different than ourselves.
41362        * rendering/RenderBlock.h:
41363        * rendering/RenderBox.cpp:
41364        (WebCore::RenderBox::setStyle): Minor cleanup: changed element()->document() to the equivalent document().
41365        (WebCore::RenderBox::offsetForPositionedInContainer): Added. Factored out common code from
41366        absolutePosition, computeAbsoluteRepaintRect and RenderLayer::updateLayerPosition into this function.
41367        (WebCore::RenderBox::absolutePosition): Added an O(1) code path when this function is called during
41368        layout (and LayoutState has not been disabled). Factored out some code into
41369        offsetForPositionedInContainer.
41370        (WebCore::RenderBox::absoluteClippedOverflowRect): Added the layout delta here, so callers don't need
41371        to.
41372        (WebCore::RenderBox::computeAbsoluteRepaintRect): Added an O(1) code path when this function is called
41373        during layout (and LayoutState has not been disabled). Factored out some code into
41374        offsetForPositionedInContainer.
41375        * rendering/RenderContainer.cpp:
41376        (WebCore::RenderContainer::layout): Added LayoutState push/pop.
41377        * rendering/RenderFlexibleBox.cpp:
41378        (WebCore::RenderFlexibleBox::layoutBlock): Factored out the "only positioned objects" case into
41379        layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
41380        of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
41381        absoluteOutlineBox().
41382        * rendering/RenderFlow.cpp:
41383        (WebCore::RenderFlow::absoluteClippedOverflowRect): Added an ASSERT.
41384        * rendering/RenderForeignObject.cpp:
41385        (WebCore::RenderForeignObject::layout): Disabled LayoutState because it is incompatible with arbitrary
41386        affine transforms.
41387        * rendering/RenderHTMLCanvas.cpp:
41388        (WebCore::RenderHTMLCanvas::layout): Removed the translation by the layout delta of the old absolute
41389        rects, since that is now integral to absoluteClippedOverflowRect() and absoluteOutlineBox().
41390        * rendering/RenderImage.cpp:
41391        (WebCore::RenderImage::layout): Ditto.
41392        * rendering/RenderLayer.cpp:
41393        (WebCore::RenderLayer::updateLayerPositions): Added ASSERTs. Factored out some code into
41394        RenderBox::offsetForPositionedInContainer.
41395        (WebCore::RenderLayer::updateScrollInfoAfterLayout): Disabled LayoutState around the call to
41396        scrollToOffset.
41397        * rendering/RenderListItem.cpp:
41398        (WebCore::RenderListItem::updateMarkerLocation): Disabled LayoutState when moving the list marker, since
41399        it can trigger repainting in other containers.
41400        * rendering/RenderObject.cpp:
41401        (WebCore::RenderObject::isRoot): Minor cleanup: changed element()->document() to the equivalent
41402        document().
41403        (WebCore::RenderObject::computeAbsoluteRepaintRect): Removed 'return' at the end of the function.
41404        (WebCore::RenderObject::container): Reordered to avoid calling isText() twice.
41405        (WebCore::RenderObject::absoluteOutlineBox): Added the layout delta here, so callers don't need to.
41406        * rendering/RenderSVGContainer.cpp:
41407        (WebCore::RenderSVGContainer::layout): Disabled LayoutState because it is incompatible with arbitrary
41408        affine transforms.
41409        * rendering/RenderTable.cpp:
41410        (WebCore::RenderTable::layout):  Factored out the "only positioned objects" case into
41411        layoutOnlyPositionedObjects(). Added LayoutState push/pop. Removed the translation by the layout delta
41412        of the old absolute rects, since that is now integral to absoluteClippedOverflowRect() and
41413        absoluteOutlineBox().
41414        * rendering/RenderTableCell.cpp:
41415        (WebCore::RenderTableCell::absoluteClippedOverflowRect): Added the layout delta here, so callers
41416        don't need to.
41417        (WebCore::RenderTableCell::computeAbsoluteRepaintRect): For the O(1) code path, skipped the correction
41418        for the parent row, because RenderTableRow doesn't push a translation into LayoutState.
41419        (WebCore::RenderTableCell::absolutePosition): Ditto.
41420        * rendering/RenderTableRow.cpp:
41421        (WebCore::RenderTableRow::layout): Added LayoutState push/pop.
41422        * rendering/RenderTableSection.cpp:
41423        (WebCore::RenderTableSection::setCellWidths): Added LayoutState push/pop if cells are repainted or
41424        receive layout.
41425        (WebCore::RenderTableSection::calcRowHeight): Ditto.
41426        (WebCore::RenderTableSection::layoutRows): Added LayoutState push/pop.
41427        * rendering/RenderView.cpp:
41428        (WebCore::RenderView::RenderView):
41429        (WebCore::RenderView::layout): Added initial LayoutState setup for the layout.
41430        (WebCore::RenderView::paintBoxDecorations): Minor cleanup: changed element()->document() to the
41431        equivalent document().
41432        (WebCore::RenderView::repaintViewRectangle): Ditto.
41433        (WebCore::RenderView::pushLayoutState): Added. Pushes initial layout state for subtree layout.
41434        * rendering/RenderView.h:
41435        (WebCore::RenderView::pushLayoutState):
41436        (WebCore::RenderView::popLayoutState):
41437        (WebCore::RenderView::layoutState):
41438        (WebCore::RenderView::disableLayoutState):
41439        (WebCore::RenderView::enableLayoutState):
41440
414412007-04-29  David Hyatt  <hyatt@apple.com>
41442
41443        Fix for bugzilla 13535, regression from positioning cleanup a while
41444        back.  Some code got added to compute available width for a relpositioned
41445        inline, only the code meant to be used for inline flows and not inline blocks.
41446
41447        Reviewed by mjs
41448
41449        fast/block/positioning/inline-block-relposition.html
41450
41451        * rendering/RenderBox.cpp:
41452        (WebCore::RenderBox::containingBlockWidthForPositioned):
41453
414542007-04-29  Oliver Hunt  <oliver@apple.com>
41455
41456        Reviewed by Zack.
41457
41458        Implement basic drag and drop support for qt
41459        this allows content and link dragging but does not
41460        provide the DOM data access methods.
41461
41462        * platform/DragData.h:
41463        * platform/qt/ClipboardQt.cpp:
41464        (WebCore::ClipboardQt::ClipboardQt):
41465        (WebCore::ClipboardQt::~ClipboardQt):
41466        (WebCore::ClipboardQt::clearData):
41467        (WebCore::ClipboardQt::clearAllData):
41468        (WebCore::ClipboardQt::setData):
41469        (WebCore::ClipboardQt::declareAndWriteDragImage):
41470        (WebCore::ClipboardQt::writeURL):
41471        (WebCore::ClipboardQt::writeRange):
41472        (WebCore::ClipboardQt::hasData):
41473        * platform/qt/ClipboardQt.h:
41474        (WebCore::ClipboardQt::clipboardData):
41475        (WebCore::ClipboardQt::invalidateWritableData):
41476        * platform/qt/DragDataQt.cpp:
41477        (WebCore::DragData::canSmartReplace):
41478        (WebCore::DragData::containsPlainText):
41479        (WebCore::DragData::asPlainText):
41480        (WebCore::DragData::createClipboard):
41481        (WebCore::DragData::containsCompatibleContent):
41482        (WebCore::DragData::containsURL):
41483        (WebCore::DragData::asURL):
41484        (WebCore::DragData::asFragment):
41485
414862007-04-28  Maciej Stachowiak  <mjs@apple.com>
41487
41488        Reviewed by Darin and Oliver.
41489
41490        - change Document to hold onto Frame* instead of FrameView*
41491        
41492        This is an architectural cleanup and a prerequisite to fixing citibank login
41493        in an architecturally sound way.
41494
41495        Some fixups for the page cache:
41496        
41497        * history/CachedPage.cpp:
41498        (WebCore::CachedPage::restore): Add an assert that the document's view
41499        matches the cached page's view - this needs to be true by the time this
41500        function is called.
41501        (WebCore::CachedPage::clear): Change assert to require frame matching, not
41502        view matching.
41503        * history/CachedPage.h:
41504        (WebCore::CachedPage::view): Add a way to get the view out.
41505        * loader/FrameLoader.cpp:
41506        (WebCore::FrameLoader::begin): pass Frame, not FrameView, when creating document
41507        (WebCore::FrameLoader::open): restore view based on CachedPage, not Document. 
41508
41509        Remaining changes are just straightforward updates based on which
41510        pointer is held or passed:
41511        
41512        * dom/DOMImplementation.cpp:
41513        (WebCore::DOMImplementation::createDocument):
41514        (WebCore::DOMImplementation::createHTMLDocument):
41515        * dom/DOMImplementation.h:
41516        * dom/Document.cpp:
41517        (WebCore::Document::Document):
41518        (WebCore::Document::view):
41519        (WebCore::Document::frame):
41520        (WebCore::Document::recalcStyle):
41521        (WebCore::Document::updateLayout):
41522        (WebCore::Document::attach):
41523        (WebCore::Document::detach):
41524        (WebCore::Document::createTokenizer):
41525        (WebCore::Document::recalcStyleSelector):
41526        (WebCore::Document::setInPageCache):
41527        (WebCore::Document::applyXSLTransform):
41528        * dom/Document.h:
41529        * html/HTMLDocument.cpp:
41530        (WebCore::HTMLDocument::HTMLDocument):
41531        * html/HTMLDocument.h:
41532        * html/HTMLViewSourceDocument.cpp:
41533        (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
41534        * html/HTMLViewSourceDocument.h:
41535        * ksvg2/svg/SVGDocument.cpp:
41536        (WebCore::SVGDocument::SVGDocument):
41537        * ksvg2/svg/SVGDocument.h:
41538        * loader/ImageDocument.cpp:
41539        (WebCore::ImageDocument::ImageDocument):
41540        * loader/ImageDocument.h:
41541        * loader/PluginDocument.cpp:
41542        (WebCore::PluginDocument::PluginDocument):
41543        * loader/PluginDocument.h:
41544        * loader/TextDocument.cpp:
41545        (WebCore::TextDocument::TextDocument):
41546        * loader/TextDocument.h:
41547        * xml/XSLTProcessor.cpp:
41548        (WebCore::XSLTProcessor::createDocumentFromSource):
41549        (WebCore::XSLTProcessor::transformToDocument):
41550        * xml/XSLTProcessor.h:
41551
415522007-04-28  Adele Peterson  <adele@apple.com>
41553
41554        RS by Darin.
41555
41556        Update to fix for <rdar://problem/5152299>
41557
41558        Test: fast/events/no-blur-on-enter-button.html
41559
41560        * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::defaultEventHandler):
41561        Don't blur the button when handling the enter key.  This matches our new behavior for input elements.
41562
415632007-04-28  Adele Peterson  <adele@apple.com>
41564
41565        Fix by Darin, reviewed by me.
41566
41567        Fix for <rdar://problem/5152299> REGRESSION: <button> elements do not respond to space and return key as similar <input> elements do
41568
41569        Tests:
41570        fast/forms/button-spacebar-click.html
41571        fast/forms/button-enter-click.html
41572
41573        * html/HTMLButtonElement.h: (WebCore::HTMLButtonElement::): Made type enum private.
41574        Removed unnecessary m_value and m_currValue, and unused m_dirty.
41575        * html/HTMLButtonElement.cpp:
41576        (WebCore::HTMLButtonElement::HTMLButtonElement): Removed initialization of m_dirty.
41577        (WebCore::HTMLButtonElement::parseMappedAttribute): Removed case to parse value and accesskey attributes, which don't do anything.
41578        (WebCore::HTMLButtonElement::defaultEventHandler): Removed unnecessary check for button type.
41579         Added cases to handle spacebar and enter keys in the same way that they're handled for <input type=button/reset/submit> buttons.
41580        (WebCore::HTMLButtonElement::isSuccessfulSubmitButton): Shortened comment.
41581        (WebCore::HTMLButtonElement::appendFormData): Use value() instead of m_currValue.  Renamed encoding argument to formData.
41582
415832007-04-28  Mitz Pettel  <mitz@webkit.org>
41584
41585        Reviewed by Darin.
41586
41587        - fix http://bugs.webkit.org/show_bug.cgi?id=13501
41588          REGRESSION (r21093): Pasting into text field fails and makes the caret disappear
41589
41590        Test: fast/dynamic/anonymous-block-layer-lost.html
41591
41592        * rendering/RenderBlock.cpp:
41593        (WebCore::RenderBlock::removeChild): Avoid cutting off layers when removing
41594        the anonymous block.
41595
415962007-04-28  Mitz Pettel  <mitz@webkit.org>
41597
41598        Reviewed by Darin.
41599
41600        - fix http://bugs.webkit.org/show_bug.cgi?id=13471
41601          REGRESSION (r21045): Secure keyboard entry mode remains in effect after leaving a password field by submitting
41602
41603        * loader/FrameLoader.cpp:
41604        (WebCore::FrameLoader::clear): Replaced direct access to Frame's d->m_doc
41605        with a call to Frame::setDocument.
41606        (WebCore::FrameLoader::begin): Ditto.
41607        (WebCore::FrameLoader::open): Ditto.
41608        (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady): Ditto.
41609        (WebCore::FrameLoader::canCachePage): Added a comment.
41610        * manual-tests/secure-keyboard-enabled-after-submit.html: Added.
41611        * page/Frame.cpp:
41612        (WebCore::Frame::setDocument): Reset secure keyboard entry, in case the
41613        old document's focused node has set it.
41614
416152007-04-28  Mitz Pettel  <mitz@webkit.org>
41616
41617        Reviewed by Adele.
41618
41619        - fix http://bugs.webkit.org/show_bug.cgi?id=13379
41620          REGRESSION: Cannot add an option to a selected popup
41621
41622        * manual-tests/update-empty-popup.html: Added.
41623        * platform/mac/PopupMenuMac.mm:
41624        (WebCore::PopupMenu::show): Added a call to the client's hidePopup()
41625        callback before returning in the case that the menu is empty. Otherwise
41626        the client thinks that the menu stayed open.
41627
416282007-04-28  Adele Peterson  <adele@apple.com>
41629
41630        Reviewed by Darin.
41631
41632        Fix for <rdar://problem/4806988> REGRESSION: history.go(0) doesn't reload page (affects buttons at facebook.com)
41633
41634        Test: fast/history/history_reload.html
41635
41636        * loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
41637        We avoid doing a redirection when going to the same url in a history navigation, but we have to still
41638        schedule a redirection when the number of steps is zero so we can force a reload.
41639
416402007-04-28  Alexey Proskuryakov  <ap@webkit.org>
41641
41642        Reviewed by Darin.
41643
41644        http://bugs.webkit.org/show_bug.cgi?id=13514
41645        REGRESSION (r20997-21003): Crash in WebCore::Node::document
41646
41647        Test: fast/dom/NodeList/childNodes-reset-cache.html
41648
41649        * dom/Node.cpp:
41650        (WebCore::Node::notifyLocalNodeListsChildrenChanged): Reset the common caches for child node
41651        lists. We cannot rely on notifications, since there may be no list objects left around.
41652
41653        * dom/ChildNodeList.cpp:
41654        (WebCore::ChildNodeList::rootNodeChildrenChanged):
41655        * dom/ChildNodeList.h:
41656        Override rootNodeChildrenChanged() with an empty implementation, now that caches are reset
41657        in Node::notifyLocalNodeListsChildrenChanged().
41658
416592007-04-28  Mark Rowe  <mrowe@apple.com>
41660
41661        Build fix.  Change use of nil to 0 in C++ source file.
41662
41663        * editing/Editor.cpp:
41664        (WebCore::Editor::increaseSelectionListLevel):
41665        (WebCore::Editor::increaseSelectionListLevelOrdered):
41666        (WebCore::Editor::increaseSelectionListLevelUnordered):
41667
416682007-04-28  Darin Adler  <darin@apple.com>
41669
41670        Reviewed by Adele.
41671
41672        - fix http://bugs.webkit.org/show_bug.cgi?id=6216
41673          REGRESSION: getElementsByTagNameNS with empty namespace doesn't work
41674
41675        * dom/Node.cpp:
41676        (WebCore::TagNodeList::TagNodeList): Changed parameter to PassRefPtr, tweaked formatting.
41677        (WebCore::TagNodeList::item): Tweaked formatting.
41678        (WebCore::TagNodeList::nodeMatches): Tweaked formatting.
41679        (WebCore::Node::setPrefix): Tweaked formatting.
41680        (WebCore::Node::getElementsByTagNameNS): Added special case to turn empty namespaces into
41681        null namespaces.
41682
416832007-04-28  Darin Adler  <darin@apple.com>
41684
41685        Reviewed by Kevin Decker.
41686
41687        - fix <rdar://problem/5148271> Chinese numbers are incorrect in numbered lists
41688          (including pasting from TextEdit to Mail)
41689
41690        Covered by an existing regression test, which had wrong results checked in.
41691
41692        Hyatt told me not to use the algorithm in the CSS 3 specification, but I didn't listen!
41693        This corrects mistakes there and makes our results match current Firefox.
41694
41695        * rendering/RenderListMarker.cpp:
41696        (WebCore::toCJKIdeographic): Added code to strip off trailing zero digits.
41697        Added special case for zero, since that's the one case where we don't want
41698        to strip off trailing zero digits. Fixed mixed-up logic that would put the
41699        digits in each group backwards.
41700        (WebCore::listMarkerText): Corrected character values for the CJK_IDEOGRAPHIC case.
41701
417022007-04-28  Darin Adler  <darin@apple.com>
41703
41704        Reviewed by Oliver.
41705
41706        - fix <rdar://problem/5138250> REGRESSION (r18245): Changing any one aspect
41707          of a font applies all the aspects to selected text
41708
41709        Since this bug is only visible with the font panel, I don't
41710        think there's any way to make a DumpRenderTree-driven test.
41711
41712        * editing/Editor.cpp: (WebCore::Editor::fontForSelection):
41713        Set hasMultipleFonts properly. The old code had an early exit
41714        that was left over from when hasMultipleFonts was a pointer.
41715
417162007-04-27  Mitz Pettel  <mitz@webkit.org>
41717
41718        Reviewed by Dave Hyatt.
41719
41720        - fix http://bugs.webkit.org/show_bug.cgi?id=13525
41721          Repainting a listbox schedules a relayout
41722
41723        No test possible as there is no change to functionality.
41724
41725        - fix the root cause of http://bugs.webkit.org/show_bug.cgi?id=10862
41726          REGRESSION: Collapsing form input on www.myspace.com
41727
41728        No test possible since text fields are no longer implemented as flexboxes.
41729
41730        * rendering/RenderObject.cpp:
41731        (WebCore::RenderObject::scheduleRelayout): Added a check that the subtree
41732        root is in the tree and not free-floating.
41733        * rendering/bidi.cpp:
41734        (WebCore::RenderBlock::bidiReorderCharacters): Changed addChild and removeChild
41735        to appendChildNode and removeChildNode to save some unnecessary overhead.
41736        These calls still mark the tree for relayout, but the change in scheduleRelayout 
41737        ensures that a layout won't be scheduled.
41738
417392007-04-27  Patti Hoa  <patti@apple.com>
41740
41741        Reviewed by Darin.
41742        
41743        <rdar://problem/5153017> REPRODUCIBLE ASSERT: range != nil in WebViewFactory.mm:415 -[WebViewFactory startOfTextMarkerRange:] (13354)
41744        
41745        * bridge/mac/WebCoreAXObject.mm:
41746        (-[WebCoreAXObject textMarkerRangeForRange:]):
41747        Fix the range length check.  It was incorrectly assuming that the max range requested cannot be equal
41748        to the length of the string.  Since NSRange location is index based, it's perfectly valid to have the max
41749        range equal to the the text length.
41750
417512007-04-27  David Harrison  <harrison@apple.com>
41752
41753        Reviewed by Darin.
41754
41755        <rdar://problem/5160627> Export JS list creation support as ObjC SPI for Mail
41756
41757        * WebCore.exp:
41758        * editing/Editor.h:
41759        * editing/Editor.cpp:
41760        (WebCore::Editor::insertOrderedList):
41761        (WebCore::Editor::insertUnorderedList):
41762        (WebCore::Editor::canIncreaseSelectionListLevel):
41763        (WebCore::Editor::canDecreaseSelectionListLevel):
41764        (WebCore::Editor::increaseSelectionListLevel):
41765        (WebCore::Editor::increaseSelectionListLevelOrdered):
41766        (WebCore::Editor::increaseSelectionListLevelUnordered):
41767        (WebCore::Editor::decreaseSelectionListLevel):
41768        Add insertOrderedList() and insertUnorderedList().
41769        Move existing list management functions from WebCoreFrameBridge.
41770        The level increasing functions now return a PassRefPtr<Node> instead of Node.
41771        Add check for canEditRichly.
41772        
41773        - in many other functions, condense the check for nil client().
41774        
41775        * editing/InsertListCommand.h:
41776        * editing/InsertListCommand.cpp:
41777        (WebCore::InsertListCommand::insertList):
41778        (WebCore::InsertListCommand::fixOrphanedListChild):
41779        (WebCore::InsertListCommand::doApply):
41780        Add insertList(), which returns the new list element.
41781        Don't set the list element's ID if the specified ID was an empty string.
41782                
41783        * editing/ModifySelectionListLevel.h:
41784        * editing/ModifySelectionListLevel.cpp:
41785        (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelWithType):
41786        (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
41787        (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelOrdered):
41788        (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelUnordered):
41789        Return PassRefPtr<Node> instead of Node.
41790
41791        * page/mac/WebCoreFrameBridge.h:
41792        * page/mac/WebCoreFrameBridge.mm:
41793        Move list management functions to Editor.h and Editor.cpp.
41794
41795
417962007-04-27  David Hyatt  <hyatt@apple.com>
41797
41798        Fix for <rdar://problem/5134254>, toolbar buttons don't work in gmail after double-click.  Make sure
41799        to clear out the capturing frame, since you don't get a second up when a double-click happens.
41800
41801        Reviewed by mjs
41802
41803        * page/EventHandler.cpp:
41804        (WebCore::EventHandler::handleMouseDoubleClickEvent):
41805
418062007-04-27  Justin Garcia  <justin.garcia@apple.com>
41807
41808        Reviewed by oliver
41809
41810        <rdar://problem/5164796> 
41811        Enable execCommand("CreateLink", ...) for caret selections
41812
41813        * editing/CreateLinkCommand.cpp:
41814        (WebCore::CreateLinkCommand::doApply): For a caret
41815        selection, insert a link at the caret position
41816        with the url as the link text.
41817        * editing/JSEditor.cpp: Enable CreateLink for caret 
41818        selections.
41819
418202007-04-27  Antti Koivisto  <antti@apple.com>
41821
41822        Reviewed by Darin, Hyatt.
41823        
41824        Fix http://bugs.webkit.org/show_bug.cgi?id=13081
41825        Empty table cells not handled correctly
41826        <rdar://problem/5067926>
41827        
41828        To match Firefox and IE, empty table cells with variable width need to be
41829        treated as special case. They generally get zero width.
41830
41831        * rendering/AutoTableLayout.cpp:
41832        (WebCore::AutoTableLayout::recalcColumn):
41833        (WebCore::AutoTableLayout::calcEffectiveWidth):
41834        (WebCore::AutoTableLayout::layout):
41835        * rendering/AutoTableLayout.h:
41836        (WebCore::AutoTableLayout::Layout::Layout):
41837        * rendering/RenderStyle.h:
41838        (WebCore::RenderStyle::hasPadding):
41839
418402007-04-27  Rob Buis  <buis@kde.org>
41841
41842        Reviewed by Oliver.
41843
41844        http://bugs.webkit.org/show_bug.cgi?id=13052
41845        Text not rendered in a second inline SVG element
41846
41847        Correct the rendering of svg text when embedded in non-svg container.
41848
41849        * rendering/RenderSVGText.cpp:
41850        (WebCore::RenderSVGText::paint):
41851
418522007-04-27  Mark Rowe  <mrowe@apple.com>
41853
41854        Reviewed by Maciej.
41855
41856        * WebCore.pro: Remove non-existent paths from qmake files.
41857
418582007-04-25  Lars Naesbye Christensen <lars@naesbye.dk>
41859
41860        Reviewed by Timothy Hatcher.
41861
41862        http://bugs.webkit.org/show_bug.cgi?id=13477
41863        Bug 13477: Help and context menu cursors need dropshadows.
41864
41865        * Resources/cellCursor.png:
41866        * Resources/contextMenuCursor.png:
41867        * Resources/helpCursor.png:
41868        * platform/mac/CursorMac.mm:
41869        (WebCore::contextMenuCursor):
41870        (WebCore::copyCursor):
41871        (WebCore::progressCursor):
41872        (WebCore::noDropCursor):
41873
418742007-04-27  Holger Freyther <freyther@kde.org>
41875
41876        Reviewed by Maciej.
41877
41878        Remove unmaintained CMake build system.
41879
41880        * CMakeLists.txt: Removed.
41881
418822007-04-26  Matt Perry  <mpComplete@gmail.com>
41883
41884        Reviewed by Maciej.
41885
41886        Added a version check to hackAroundLibXMLEntityBug, since that bug has
41887        been fixed in recent versions of libxml2.
41888
41889        * dom/XMLTokenizer.cpp:
41890        (WebCore::hackAroundLibXMLEntityBug):
41891
418922007-04-26  Christopher Brichford  <chrisb@adobe.com>
41893
41894        Reviewed by Timothy Hatcher.
41895
41896        - Fix for Bug 13204: Submit initial version of mac project files for apollo
41897          port of WebCore
41898          http://bugs.webkit.org/show_bug.cgi?id=13204
41899
41900        * WebCore.apolloproj/mac/WebCore.Debug.xcconfig: Added.
41901        * WebCore.apolloproj/mac/WebCore.Release.xcconfig: Added.
41902        * WebCore.apolloproj/mac/WebCore.xcconfig: Added.
41903        * WebCore.apolloproj/mac/WebCore.xcodeproj/project.pbxproj: Added.
41904
419052007-04-26  Alp Toker  <alp@atoker.com>
41906
41907        Reviewed by Maciej.
41908
41909        http://bugs.webkit.org/show_bug.cgi?id=13505
41910        Cast loses precision on x86_64
41911
41912        * platform/graphics/cairo/GraphicsContextCairo.cpp:
41913        (WebCore::GraphicsContext::beginTransparencyLayer):
41914        (WebCore::GraphicsContext::endTransparencyLayer):
41915        Use a stack of opacity values instead of Cairo user data.
41916
419172007-04-26  Mitz Pettel  <mitz@webkit.org>
41918
41919        Reviewed by Darin.
41920
41921        - fix http://bugs.webkit.org/show_bug.cgi?id=13500
41922          REGRESSION: Listbox scrollbar does not reflect actual scrolled position when selected option is added after layout
41923
41924        Test: fast/forms/listbox-scrollbar-incremental-load.html
41925
41926        The scroller position was not updated correctly during insertion, since
41927        scrollbar proportions are updated only during layout
41928
41929        * rendering/RenderListBox.cpp:
41930        (WebCore::RenderListBox::selectionChanged): Delay scrolling to reveal the
41931        selection until after layout if m_optionsChanged is set. Layout is
41932        guaranteed to happen soon when the flag is set.
41933
419342007-04-26  David Hyatt  <hyatt@apple.com>
41935
41936        Fix for 13511, crash on a counters page.  Make sure that RenderTexts
41937        never get a null StringImpl.  I would have added an assert that the length
41938        had to be nonzero also, but unfortunately editing creates empty RenderTexts
41939        because of its EditingText DOM subclass that always forces renderers to be
41940        made.  I suppose there is a good reason for this...
41941
41942        Reviewed by aroben
41943
41944        * dom/CharacterData.cpp:
41945        (WebCore::CharacterData::setData):
41946        (WebCore::CharacterData::appendData):
41947        (WebCore::CharacterData::insertData):
41948        (WebCore::CharacterData::deleteData):
41949        (WebCore::CharacterData::replaceData):
41950        * rendering/RenderCounter.cpp:
41951        (WebCore::RenderCounter::RenderCounter):
41952        * rendering/RenderText.cpp:
41953        (WebCore::RenderText::RenderText):
41954        (WebCore::RenderText::trimmedPrefWidths):
41955        (WebCore::RenderText::setTextWithOffset):
41956        (WebCore::RenderText::setTextInternal):
41957        (WebCore::RenderText::setText):
41958
419592007-04-26  Alice Liu  <alice.liu@apple.com>
41960
41961        Reviewed by Oliver.
41962
41963        * editing/SelectionController.cpp:
41964        (WebCore::SelectionController::selectAll):
41965        adding null check
41966
419672007-04-26  Justin Garcia  <justin.garcia@apple.com>
41968
41969        Reviewed by oliver
41970
41971        <rdar://problem/5120591> 
41972        Crash when creating a link in Leopard wiki server
41973
41974        * editing/CreateLinkCommand.cpp:
41975        (WebCore::CreateLinkCommand::doApply): Use a RefPtr,
41976        setting the anchor's href can destroy it if there is
41977        an ancestor with a subtree modified event listener.
41978
419792007-04-26  Mitz Pettel  <mitz@webkit.org>
41980
41981        Reviewed by hyatt
41982
41983        - http://bugs.webkit.org/show_bug.cgi?id=13496
41984          Eliminate repaintObjectsBeforeLayout
41985
41986        No tests added since there is no change to functionality. Several
41987        tests in fast/repaint test repainting of objects that move during layout.
41988
41989        * page/FrameView.cpp:
41990        (WebCore::FrameView::layout):
41991        * rendering/RenderBlock.cpp:
41992        (WebCore::RenderBlock::layoutBlockChildren): Removed an early
41993        setNeedsLayout(false). Resetting the bit here prevents the full repaint
41994        that we rely on when we decide not to repaint children that move.
41995        * rendering/RenderBlock.h:
41996        * rendering/RenderObject.cpp:
41997        * rendering/RenderObject.h:
41998        * rendering/RenderTableSection.cpp:
41999        (WebCore::RenderTableSection::setCellWidths): Replaced the call to
42000        repaintObjectsBeforeLayout() if the cell didn't need layout with
42001        an unconditional repaint(). We don't bother with repainting only the
42002        delta between the old and new widths, since by marking the cell for
42003        layout results in a full repaint with the new width anyway.
42004
420052007-04-26  David Hyatt  <hyatt@apple.com>
42006
42007        Fix for 13509.  Don't recur to parent inline flows if they have been
42008        marked as needing layout themselves.
42009
42010        Reviewed by adele
42011
42012        * rendering/RenderFlow.cpp:
42013        (WebCore::RenderFlow::dirtyLinesFromChangedChild):
42014
420152007-04-26  Matt Perry  <mpComplete@gmail.com>
42016
42017        Reviewed and landed by Alexey.
42018
42019        http://bugs.webkit.org/show_bug.cgi?id=13495
42020        Crash when referencing an undefined entity in an XHTML document
42021
42022        Test: fast/parser/badentity.xhtml
42023
42024        * dom/XMLTokenizer.cpp:
42025        (WebCore::getEntityHandler): Check for a NULL returned from getXHTMLEntity
42026
420272007-04-26  Anders Carlsson  <andersca@apple.com>
42028
42029        Reviewed by Hyatt.
42030
42031        <rdar://problem/4851944>
42032        REGRESSION: With TOT, BMP images can no longer be opened in the browser window
42033        
42034        On Tiger, the MIME type for the com.microsoft.bmp UTI isn't in the registry, so add it manually.
42035        
42036        * platform/MimeTypeRegistry.cpp:
42037        (WebCore::initialiseSupportedImageMIMETypes):
42038
420392007-04-26  David Hyatt  <hyatt@apple.com>
42040
42041        Fix for bug 13503, invalidateContainingBlockPrefWidths is 15% of the
42042        nesting PLT.  Avoid O(n^2) behavior by including inlines in the minmax
42043        dirty chain.
42044
42045        Reviewed by kevin
42046
42047        * rendering/RenderBlock.cpp:
42048        (WebCore::RenderBlock::calcInlinePrefWidths):
42049        * rendering/RenderObject.cpp:
42050        (WebCore::RenderObject::setPrefWidthsDirty):
42051        (WebCore::RenderObject::invalidateContainerPrefWidths):
42052        * rendering/RenderObject.h:
42053
420542007-04-26  Anders Carlsson  <andersca@apple.com>
42055
42056        Reviewed by Darin.
42057
42058        <rdar://problem/5067925>
42059        Reproducible crash (infinite recursion) with a layout test that submits on unload (13078)
42060        
42061        Ask the document loader whether it's loading the main resource, since there are cases where the frame 
42062        loader's variable isn't updated correctly.
42063        
42064        In the distant future, the frame loader shouldn't have an instance variable but this is the least intrusive fix for now.
42065        
42066        I couldn't come up with a good test case for this since it requires running three tests in a row and scheduleLoad didn't work. Also,
42067        calling submit in the onunload prevents any new tests from loading!
42068        
42069        * loader/FrameLoader.cpp:
42070        (WebCore::FrameLoader::isLoading):
42071
420722007-04-26  Anders Carlsson  <andersca@apple.com>
42073
42074        ... and fix the build.
42075        
42076        * loader/FrameLoader.cpp:
42077        (WebCore::FrameLoader::continueAfterNavigationPolicy):
42078
420792007-04-26  Anders Carlsson  <andersca@apple.com>
42080
42081        Revert the previous change - activeDocumentLoader never returns the policy document loader.
42082        Instead, add a null check for the policy document loader.
42083        
42084        * loader/FrameLoader.cpp:
42085        (WebCore::FrameLoader::continueAfterNavigationPolicy):
42086
420872007-04-26  Anders Carlsson  <andersca@apple.com>
42088
42089        Use the active document loader instead of the policy document loader.
42090        
42091        * loader/FrameLoader.cpp:
42092        (WebCore::FrameLoader::continueAfterNavigationPolicy):
42093
420942007-04-26  Anders Carlsson  <andersca@apple.com>
42095
42096        Reviewed by Maciej.
42097
42098        <rdar://problem/5049099> documents no longer have a default base URL
42099
42100        Don't call canHandleRequest if we have valid substitute data and the protocol is "applewebdata".
42101        
42102        * loader/FrameLoader.cpp:
42103        (WebCore::FrameLoader::continueAfterNavigationPolicy):
42104
421052007-04-25  Stephanie Lewis <slewis@apple.com>
42106
42107        Reviewed by Darin.
42108
42109        Fix the build for platforms that overload the abs function.        
42110
42111        * dom/ChildNodeList.cpp:
42112        (WebCore::ChildNodeList::item):
42113
421142007-04-25  David Hyatt  <hyatt@apple.com>
42115
42116        Fix for bug 13373, make sure to invalidate the pref widths for objects
42117        with percentage padding.
42118
42119        Reviewed by beth
42120
42121        * rendering/RenderBlock.cpp:
42122        (WebCore::RenderBlock::layoutBlockChildren):
42123        (WebCore::RenderBlock::layoutPositionedObjects):
42124        * rendering/bidi.cpp:
42125        (WebCore::RenderBlock::layoutInlineChildren):
42126
421272007-04-25  David Harrison  <harrison@apple.com>
42128
42129        Comment change. Correct the header name in the endif comment.
42130        
42131        * editing/FormatBlockCommand.h:
42132        Change InsertListCommand_h to FormatBlockCommand_h.
42133
421342007-04-25  Darin Adler  <darin@apple.com>
42135
42136        Reviewed by Hyatt.
42137
42138        * platform/AtomicString.cpp: (WebCore::AtomicString::add):
42139        Removed unnecessary use of strlen to check if a string is empty.
42140
421412007-04-25  Mitz Pettel  <mitz@webkit.org>
42142
42143        Build fix.
42144
42145        * rendering/RenderListMarker.h: Undeleted the m_text member.
42146
421472007-04-25  David Hyatt  <hyatt@apple.com>
42148
42149        Rearchitect calcPrefWidths.  The calculation is now done lazily only when minPrefWidth
42150        or maxPrefWidth are asked for.  The result of the calculation is cached.
42151
42152        The new invalidation scheme for pref width invalidation follows the
42153        containing block hierarchy and knows to halt at positioned objects, since
42154        they cannot influence the size of their containers.
42155
42156        Reviewed by darin
42157
42158        * css/cssstyleselector.cpp:
42159        (WebCore::CSSStyleSelector::init):
42160        (WebCore::CSSStyleSelector::initForStyleResolve):
42161        * page/FrameView.cpp:
42162        (WebCore::FrameView::layout):
42163        * rendering/RenderApplet.cpp:
42164        (WebCore::RenderApplet::layout):
42165        * rendering/RenderBlock.cpp:
42166        (WebCore::RenderBlock::makeChildrenNonInline):
42167        (WebCore::RenderBlock::removeChild):
42168        (WebCore::RenderBlock::layout):
42169        (WebCore::RenderBlock::layoutBlock):
42170        (WebCore::RenderBlock::calcPrefWidths):
42171        (WebCore::InlineMinMaxIterator::endOfInline):
42172        (WebCore::shouldGrowTableCellForImage):
42173        (WebCore::RenderBlock::calcInlinePrefWidths):
42174        (WebCore::RenderBlock::calcBlockPrefWidths):
42175        * rendering/RenderBlock.h:
42176        * rendering/RenderBox.cpp:
42177        (WebCore::RenderBox::setStyle):
42178        (WebCore::RenderBox::minPrefWidth):
42179        (WebCore::RenderBox::maxPrefWidth):
42180        (WebCore::RenderBox::calcWidth):
42181        (WebCore::RenderBox::calcWidthUsing):
42182        (WebCore::RenderBox::calcAbsoluteHorizontal):
42183        (WebCore::RenderBox::calcAbsoluteHorizontalValues):
42184        * rendering/RenderBox.h:
42185        * rendering/RenderContainer.cpp:
42186        (WebCore::RenderContainer::removeChildNode):
42187        (WebCore::RenderContainer::appendChildNode):
42188        (WebCore::RenderContainer::insertChildNode):
42189        (WebCore::RenderContainer::layout):
42190        * rendering/RenderContainer.h:
42191        (WebCore::RenderContainer::moveChildNode):
42192        * rendering/RenderCounter.cpp:
42193        (WebCore::RenderCounter::dirtyLineBoxes):
42194        (WebCore::RenderCounter::calcPrefWidths):
42195        * rendering/RenderCounter.h:
42196        * rendering/RenderFileUploadControl.cpp:
42197        (WebCore::RenderFileUploadControl::calcPrefWidths):
42198        * rendering/RenderFlexibleBox.cpp:
42199        (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
42200        (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
42201        (WebCore::RenderFlexibleBox::calcPrefWidths):
42202        (WebCore::RenderFlexibleBox::layoutBlock):
42203        * rendering/RenderForeignObject.cpp:
42204        (WebCore::RenderForeignObject::layout):
42205        * rendering/RenderFrameSet.cpp:
42206        (WebCore::RenderFrameSet::layout):
42207        * rendering/RenderHTMLCanvas.cpp:
42208        (WebCore::RenderHTMLCanvas::layout):
42209        * rendering/RenderImage.cpp:
42210        (WebCore::RenderImage::layout):
42211        * rendering/RenderInline.cpp:
42212        * rendering/RenderInline.h:
42213        * rendering/RenderListBox.cpp:
42214        (WebCore::RenderListBox::updateFromElement):
42215        (WebCore::RenderListBox::calcPrefWidths):
42216        * rendering/RenderListItem.cpp:
42217        (WebCore::firstNonMarkerChild):
42218        (WebCore::RenderListItem::updateMarkerLocation):
42219        (WebCore::RenderListItem::calcPrefWidths):
42220        (WebCore::RenderListItem::layout):
42221        * rendering/RenderListMarker.cpp:
42222        (WebCore::RenderListMarker::layout):
42223        (WebCore::RenderListMarker::calcPrefWidths):
42224        (WebCore::RenderListMarker::updateMargins):
42225        * rendering/RenderListMarker.h:
42226        * rendering/RenderObject.cpp:
42227        (WebCore::RenderObject::RenderObject):
42228        (WebCore::RenderObject::removeChildNode):
42229        (WebCore::RenderObject::moveChildNode):
42230        (WebCore::RenderObject::appendChildNode):
42231        (WebCore::RenderObject::insertChildNode):
42232        (WebCore::RenderObject::setPrefWidthsDirty):
42233        (WebCore::RenderObject::invalidateContainingBlockPrefWidths):
42234        (WebCore::RenderObject::information):
42235        (WebCore::RenderObject::setStyle):
42236        * rendering/RenderObject.h:
42237        (WebCore::RenderObject::layer):
42238        (WebCore::RenderObject::hasLayer):
42239        (WebCore::RenderObject::prefWidthsDirty):
42240        (WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
42241        (WebCore::RenderObject::setHasLayer):
42242        * rendering/RenderPartObject.cpp:
42243        (WebCore::RenderPartObject::layout):
42244        * rendering/RenderSVGContainer.cpp:
42245        (WebCore::RenderSVGContainer::layout):
42246        * rendering/RenderSVGContainer.h:
42247        * rendering/RenderSVGHiddenContainer.cpp:
42248        * rendering/RenderSVGHiddenContainer.h:
42249        * rendering/RenderSVGText.cpp:
42250        (WebCore::RenderSVGText::layout):
42251        * rendering/RenderTable.cpp:
42252        (WebCore::RenderTable::calcWidth):
42253        (WebCore::RenderTable::layout):
42254        (WebCore::RenderTable::removeChildNode):
42255        * rendering/RenderTable.h:
42256        * rendering/RenderTableRow.cpp:
42257        (WebCore::RenderTableRow::layout):
42258        * rendering/RenderTableSection.cpp:
42259        (WebCore::RenderTableSection::removeChildNode):
42260        * rendering/RenderTableSection.h:
42261        * rendering/RenderText.cpp:
42262        (WebCore::RenderText::trimmedPrefWidths):
42263        (WebCore::isSpaceAccordingToStyle):
42264        (WebCore::RenderText::minPrefWidth):
42265        (WebCore::RenderText::maxPrefWidth):
42266        (WebCore::RenderText::calcPrefWidths):
42267        (WebCore::RenderText::width):
42268        * rendering/RenderText.h:
42269        * rendering/RenderView.cpp:
42270        (WebCore::RenderView::RenderView):
42271        (WebCore::RenderView::calcPrefWidths):
42272        (WebCore::RenderView::layout):
42273        * rendering/RenderWidget.cpp:
42274        (WebCore::RenderWidget::layout):
42275
422762007-04-25  Steve Falkenburg  <sfalken@apple.com>
42277
42278        Reviewed by Adam.
42279
42280        Fix spelling error in spelling method name.
42281        Expose new spelling callback methods to all platforms.
42282
42283        * bridge/EditorClient.h:
42284        * platform/gdk/EditorClientGdk.cpp:
42285        (WebCore::EditorClientGdk::updateSpellingUIWithGrammarString):
42286        * platform/gdk/EditorClientGdk.h:
42287        * platform/graphics/svg/SVGImageEmptyClients.h:
42288        (WebCore::SVGEmptyEditorClient::updateSpellingUIWithGrammarString):
42289        (WebCore::SVGEmptyEditorClient::getGuessesForWord):
42290
422912007-04-24  Geoffrey Garen  <ggaren@apple.com>
42292
42293        Reviewed by Darin Adler, Tim Hatcher.
42294
42295        Fixed a few NSAutoreleasePool issues I noticed while reviewing Brady's patch.
42296
42297        * platform/graphics/mac/GraphicsContextMac.mm:
42298        (WebCore::GraphicsContext::setCompositeOperation): Call -drain instead of 
42299        -release, since -release is a no-op in a GC world.
42300
423012007-04-25  Alexey Proskuryakov  <ap@webkit.org>
42302
42303        Reviewed by Darin.
42304
42305        http://bugs.webkit.org/show_bug.cgi?id=13445
42306        NodeList access by index is slow
42307
42308        * dom/ChildNodeList.cpp:
42309        (WebCore::ChildNodeList::item): Support iterating backwards from the last accessed node
42310        or from the last child.
42311        * dom/NodeList.h: Make cachedLength unsigned.
42312
423132007-04-26  Mark Rowe  <mrowe@apple.com>
42314
42315        Gdk build fix.  Add missing stub.
42316
42317        * platform/gdk/TemporaryLinkStubs.cpp:
42318        (Editor::advanceToNextMisspelling):
42319
423202007-04-25  Rob Buis  <buis@kde.org>
42321
42322        Reviewed by Darin.
42323
42324        http://bugs.webkit.org/show_bug.cgi?id=12163
42325        SVG text does not appear in a scrolling <div>
42326
42327        Make sure SVG text is painted when scrolling by taking into account the relative offset of the non-SVG parent in the paintInfo rect.
42328
42329        * rendering/RenderSVGContainer.cpp:
42330        (WebCore::RenderSVGContainer::paint):
42331
423322007-04-26  Mark Rowe  <mrowe@apple.com>
42333
42334        Fix non-Mac builds after r21081.
42335
42336        Stub out new Editor methods for Qt and Gdk, and new SVGEmptyEditorClient methods
42337        for all non-Mac builds.
42338
42339        * editing/qt/EditorQt.cpp:
42340        (WebCore::Editor::showSpellingGuessPanel):
42341        (WebCore::Editor::spellingPanelIsShowing):
42342        * page/qt/EventHandlerQt.cpp:
42343        (WebCore::EventHandler::passWheelEventToWidget):
42344        (WebCore::EventHandler::passMousePressEventToScrollbar):
42345        * platform/gdk/TemporaryLinkStubs.cpp:
42346        (Editor::showSpellingGuessPanel):
42347        (Editor::spellingPanelIsShowing):
42348        * platform/graphics/svg/SVGImageEmptyClients.h:
42349        (WebCore::SVGEmptyEditorClient::ignoreWordInSpellDocument):
42350        (WebCore::SVGEmptyEditorClient::learnWord):
42351        (WebCore::SVGEmptyEditorClient::checkSpellingOfString):
42352        (WebCore::SVGEmptyEditorClient::checkGrammarOfString):
42353        (WebCore::SVGEmptyEditorClient::udpateSpellingUIWithGrammarString):
42354        (WebCore::SVGEmptyEditorClient::updateSpellingUIWithMisspelledWord):
42355        (WebCore::SVGEmptyEditorClient::showSpellingUI):
42356        (WebCore::SVGEmptyEditorClient::spellingUIIsShowing):
42357        (WebCore::SVGEmptyEditorClient::getGuessesForWord):
42358
423592007-04-25  Anders Carlsson  <andersca@apple.com>
42360
42361        Reviewed by Ada.
42362
42363        <rdar://problem/5122153>
42364        Crash occurs at WebCore::Frame::loader() when switching to Bookmarks view while loading standalone image
42365
42366        Don't call writeRawData if the data length is 0. (This is checked by the decoder for the non-raw case).
42367
42368        * loader/FrameLoader.cpp:
42369        (WebCore::FrameLoader::write):
42370
423712007-04-26  Mark Rowe  <mrowe@apple.com>
42372
42373        Gdk build fix courtesy of Alp Toker.
42374
42375        * make-generated-sources.sh:  Remove conditional logic to ensure the
42376        script exits with the correct exit code.
42377
423782007-04-24  Anders Carlsson  <andersca@apple.com>
42379
42380        Reviewed by Mitz.
42381
42382        <rdar://problem/4869095> 
42383        default content type for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
42384        
42385        Use the right MIME type.
42386        
42387        * xml/xmlhttprequest.cpp:
42388        (WebCore::XMLHttpRequest::send):
42389
423902007-04-24  Darin Adler  <darin@apple.com>
42391
42392        Reviewed by Maciej.
42393
42394        - second round of preparation for Hyatt's "lazy minMaxWidth" change
42395          http://bugs.webkit.org/show_bug.cgi?id=13431
42396
42397        These are small changes that are either safe to do first, or unrelated to the main
42398        change in Hyatt's patch.
42399
42400        - Preallocate 4 entries each in m_layoutStruct and m_spanCells to save allocation
42401          in AutoTableLayout.
42402        - Add an early exit to RenderFlow::dirtyLinesFromChangedChild.
42403        - Change InlineBox::hasTextChildren() to use a bit directly and never a virtual function.
42404        - Save a virtual function call by using a local bool variable for isTableCell().
42405
42406        - Fix containingBlock() so it returns 0 for table cells with no parent.
42407
42408        - Change all callers who are getting at layer() as a boolean to use hasLayer().
42409        - Change if statements to max() function calls (only the ones Hyatt had in his patch).
42410        - Remove some old kdDebug calls.
42411        - Tweak formatting of some code.
42412        - Add const in one place.
42413
42414        * bindings/js/kjs_html.cpp:
42415        (KJS::HTMLElementFunction::callAsFunction):
42416        * page/EventHandler.cpp:
42417        (WebCore::EventHandler::eventMayStartDrag):
42418        * page/Frame.cpp:
42419        (WebCore::Frame::clearTimers):
42420        * rendering/AutoTableLayout.cpp:
42421        (WebCore::AutoTableLayout::recalcColumn):
42422        * rendering/AutoTableLayout.h:
42423        * rendering/InlineBox.h:
42424        (WebCore::InlineBox::InlineBox):
42425        (WebCore::InlineBox::hasTextChildren):
42426        * rendering/InlineFlowBox.cpp:
42427        (WebCore::InlineFlowBox::nodeAtPoint):
42428        * rendering/InlineFlowBox.h:
42429        (WebCore::InlineFlowBox::InlineFlowBox):
42430        * rendering/RenderBlock.cpp:
42431        (WebCore::RenderBlock::layoutBlock):
42432        (WebCore::RenderBlock::repaintOverhangingFloats):
42433        (WebCore::RenderBlock::paintChildren):
42434        (WebCore::RenderBlock::paintFloats):
42435        (WebCore::RenderBlock::fillBlockSelectionGaps):
42436        (WebCore::RenderBlock::insertFloatingObject):
42437        (WebCore::RenderBlock::floatRect):
42438        (WebCore::RenderBlock::lowestPosition):
42439        (WebCore::RenderBlock::rightmostPosition):
42440        (WebCore::RenderBlock::leftmostPosition):
42441        (WebCore::RenderBlock::addOverhangingFloats):
42442        (WebCore::RenderBlock::nodeAtPoint):
42443        (WebCore::RenderBlock::hitTestContents):
42444        (WebCore::RenderBlock::calcPrefWidths):
42445        (WebCore::InlineMinMaxIterator::next):
42446        (WebCore::getBorderPaddingMargin):
42447        (WebCore::RenderBlock::calcInlinePrefWidths):
42448        (WebCore::RenderBlock::calcBlockPrefWidths):
42449        * rendering/RenderContainer.cpp:
42450        (WebCore::RenderContainer::appendChildNode):
42451        (WebCore::RenderContainer::insertChildNode):
42452        * rendering/RenderFlexibleBox.cpp:
42453        (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
42454        (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
42455        * rendering/RenderFlow.cpp:
42456        (WebCore::RenderFlow::dirtyLinesFromChangedChild):
42457        * rendering/RenderLayer.cpp:
42458        (WebCore::RenderLayer::updateVisibilityStatus):
42459        (WebCore::RenderLayer::updateLayerPosition):
42460        * rendering/RenderObject.cpp:
42461        (WebCore::RenderObject::containingBlock):
42462        * rendering/RenderTable.cpp:
42463        (WebCore::RenderTable::paint):
42464        * rendering/RenderTableCell.cpp:
42465        (WebCore::RenderTableCell::paintBackgroundsBehindCell):
42466        * rendering/RenderTableRow.cpp:
42467        (WebCore::RenderTableRow::nodeAtPoint):
42468        (WebCore::RenderTableRow::paint):
42469        * rendering/RenderTableSection.cpp:
42470        (WebCore::RenderTableSection::nodeAtPoint):
42471        * rendering/RenderTreeAsText.cpp:
42472        (WebCore::write):
42473
424742007-04-24  Steve Falkenburg  <sfalken@apple.com>
42475
42476        Reviewed by Darin, Oliver.
42477
42478        Refactor spelling codepaths
42479
42480        * bridge/EditorClient.h:
42481        * page/ContextMenuController.cpp:
42482        (WebCore::ContextMenuController::contextMenuItemSelected):
42483        * platform/ContextMenu.cpp:
42484        (WebCore::ContextMenu::populate):
42485        (WebCore::ContextMenu::checkOrEnableIfNeeded):
42486        * platform/gdk/EditorClientGdk.cpp:
42487        (WebCore::EditorClientGdk::ignoreWordInSpellDocument):
42488        (WebCore::EditorClientGdk::learnWord):
42489        (WebCore::EditorClientGdk::checkSpellingOfString):
42490        (WebCore::EditorClientGdk::checkGrammarOfString):
42491        (WebCore::EditorClientGdk::udpateSpellingUIWithGrammarString):
42492        (WebCore::EditorClientGdk::updateSpellingUIWithMisspelledWord):
42493        (WebCore::EditorClientGdk::showSpellingUI):
42494        (WebCore::EditorClientGdk::spellingUIIsShowing):
42495        (WebCore::EditorClientGdk::getGuessesForWord):
42496        * platform/gdk/EditorClientGdk.h:
42497
424982007-04-24  Darin Adler  <darin@apple.com>
42499
42500        Reviewed by Adele.
42501
42502        - first round of preparation for Hyatt's "lazy minMaxWidth" change
42503          http://bugs.webkit.org/show_bug.cgi?id=13431
42504
42505        This patch limits itself to renaming and making other super-simple
42506        changes so that the above change will be smaller and easier to review
42507        and understand.
42508
42509        Rename:
42510
42511            calcHorizontalMinMaxWidth -> calcHorizontalPrefWidths
42512            calcMinMaxWidth -> calcPrefWidths
42513            calcMinMaxWidthInternal -> calcPrefWidthsInternal
42514            calcVerticalMinMaxWidth -> calcVerticalPrefWidths
42515            setNeedsLayoutAndMinMaxRecalc -> setNeedsLayoutAndPrefWidthsRecalc
42516            trimmedMinMaxWidth -> trimmedPrefWidths
42517
42518            RenderObject::m_maxWidth -> RenderObject::m_maxPrefWidth
42519            RenderObject::m_minWidth -> RenderObject::m_minPrefWidth
42520            RenderObject::maxWidth() -> RenderObject::maxPrefWidth()
42521            RenderObject::minWidth() -> RenderObject::minPrefWidth()
42522
42523        Replace m_minMaxKnown, minMaxKnown(), and setMinMaxKnown() with
42524        m_prefWidthsDirty, prefWidthsDirty(), and setPrefWidthsDirty(),
42525        a boolean with the opposite sense.
42526
42527        Convert some uses of if statements into "max".
42528
42529        Change many uses of layer() to hasLayer(). For now it's just a boolean
42530        version of layer(), but Hyatt's patch makes it faster by using a bit.
42531
42532        Added a guard to use of axObjectCache() to make RenderObject destruction
42533        a little faster for the normal case.
42534
42535        Removed some assertions that will be removed in Hyatt's patch.
42536
42537        Made some functions const that will be const in Hyatt's patch.
42538
42539        Put in some revised comments from Hyatt's patch.
42540
42541        Removed an unneeded nil check from RenderListMarker::setStyle.
42542
42543        Moved RootInlineBox::setHorizontalOverflowPositions and
42544        RootInlineBox::setVerticalSelectionPositions to the RootInlineBox.h
42545        header and marked them inline.
42546
42547        * dom/Document.cpp:
42548        (WebCore::Document::updateStyleSelector):
42549        * html/HTMLTextAreaElement.cpp:
42550        (WebCore::HTMLTextAreaElement::parseMappedAttribute):
42551        * page/Frame.cpp:
42552        (WebCore::Frame::forceLayoutWithPageWidthRange):
42553        * rendering/AutoTableLayout.cpp:
42554        (WebCore::AutoTableLayout::recalcColumn):
42555        (WebCore::AutoTableLayout::calcPrefWidths):
42556        (WebCore::AutoTableLayout::calcEffectiveWidth):
42557        * rendering/AutoTableLayout.h:
42558        * rendering/CounterNode.cpp:
42559        (WebCore::CounterNode::recount):
42560        * rendering/FixedTableLayout.cpp:
42561        (WebCore::FixedTableLayout::calcPrefWidths):
42562        * rendering/FixedTableLayout.h:
42563        * rendering/InlineFlowBox.cpp:
42564        (WebCore::InlineFlowBox::paint):
42565        * rendering/RenderApplet.cpp:
42566        (WebCore::RenderApplet::layout):
42567        * rendering/RenderBlock.cpp:
42568        (WebCore::RenderBlock::removeChild):
42569        (WebCore::RenderBlock::layoutBlock):
42570        (WebCore::RenderBlock::handleCompactChild):
42571        (WebCore::RenderBlock::getClearDelta):
42572        (WebCore::RenderBlock::calcPrefWidths):
42573        (WebCore::RenderBlock::calcInlinePrefWidths):
42574        (WebCore::RenderBlock::calcBlockPrefWidths):
42575        * rendering/RenderBlock.h:
42576        * rendering/RenderBox.cpp:
42577        (WebCore::RenderBox::RenderBox):
42578        (WebCore::RenderBox::nodeAtPoint):
42579        (WebCore::RenderBox::calcWidth):
42580        (WebCore::RenderBox::calcWidthUsing):
42581        (WebCore::RenderBox::calcAbsoluteHorizontal):
42582        (WebCore::RenderBox::calcAbsoluteHorizontalValues):
42583        * rendering/RenderBox.h:
42584        (WebCore::RenderBox::minPrefWidth):
42585        (WebCore::RenderBox::maxPrefWidth):
42586        * rendering/RenderContainer.cpp:
42587        (WebCore::RenderContainer::removeChildNode):
42588        (WebCore::RenderContainer::appendChildNode):
42589        (WebCore::RenderContainer::insertChildNode):
42590        (WebCore::RenderContainer::layout):
42591        * rendering/RenderContainer.h:
42592        (WebCore::RenderContainer::calcPrefWidths):
42593        * rendering/RenderCounter.cpp:
42594        (WebCore::RenderCounter::calcPrefWidths):
42595        * rendering/RenderCounter.h:
42596        * rendering/RenderFieldset.cpp:
42597        (WebCore::RenderFieldset::calcPrefWidths):
42598        * rendering/RenderFieldset.h:
42599        * rendering/RenderFileUploadControl.cpp:
42600        (WebCore::RenderFileUploadControl::calcPrefWidths):
42601        * rendering/RenderFileUploadControl.h:
42602        * rendering/RenderFlexibleBox.cpp:
42603        (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
42604        (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
42605        (WebCore::RenderFlexibleBox::calcPrefWidths):
42606        (WebCore::RenderFlexibleBox::layoutBlock):
42607        (WebCore::RenderFlexibleBox::allowedChildFlex):
42608        * rendering/RenderFlexibleBox.h:
42609        (WebCore::RenderFlexibleBox::hasMultipleLines):
42610        (WebCore::RenderFlexibleBox::isVertical):
42611        (WebCore::RenderFlexibleBox::isHorizontal):
42612        * rendering/RenderFlow.cpp:
42613        (WebCore::RenderFlow::absoluteClippedOverflowRect):
42614        * rendering/RenderForeignObject.cpp:
42615        (WebCore::RenderForeignObject::layout):
42616        * rendering/RenderFrameSet.cpp:
42617        (WebCore::RenderFrameSet::layout):
42618        * rendering/RenderHTMLCanvas.cpp:
42619        (WebCore::RenderHTMLCanvas::layout):
42620        * rendering/RenderImage.cpp:
42621        (WebCore::RenderImage::imageChanged):
42622        (WebCore::RenderImage::layout):
42623        (WebCore::RenderImage::calcPrefWidths):
42624        * rendering/RenderImage.h:
42625        * rendering/RenderInline.cpp:
42626        (WebCore::RenderInline::addChildToFlow):
42627        (WebCore::RenderInline::splitInlines):
42628        (WebCore::RenderInline::splitFlow):
42629        (WebCore::RenderInline::calcPrefWidths):
42630        * rendering/RenderInline.h:
42631        * rendering/RenderListBox.cpp:
42632        (WebCore::RenderListBox::updateFromElement):
42633        (WebCore::RenderListBox::calcPrefWidths):
42634        * rendering/RenderListBox.h:
42635        * rendering/RenderListItem.cpp:
42636        (WebCore::RenderListItem::updateValue):
42637        (WebCore::RenderListItem::updateMarkerLocation):
42638        (WebCore::RenderListItem::calcPrefWidths):
42639        (WebCore::RenderListItem::layout):
42640        (WebCore::RenderListItem::explicitValueChanged):
42641        * rendering/RenderListItem.h:
42642        * rendering/RenderListMarker.cpp:
42643        (WebCore::RenderListMarker::setStyle):
42644        (WebCore::RenderListMarker::layout):
42645        (WebCore::RenderListMarker::imageChanged):
42646        (WebCore::RenderListMarker::calcPrefWidths):
42647        (WebCore::RenderListMarker::calcWidth):
42648        * rendering/RenderListMarker.h:
42649        * rendering/RenderMenuList.cpp:
42650        (WebCore::RenderMenuList::updateOptionsWidth):
42651        (WebCore::RenderMenuList::calcPrefWidths):
42652        * rendering/RenderMenuList.h:
42653        * rendering/RenderObject.cpp:
42654        (WebCore::RenderObject::RenderObject):
42655        (WebCore::addLayers):
42656        (WebCore::RenderObject::removeLayers):
42657        (WebCore::RenderObject::moveLayers):
42658        (WebCore::RenderObject::addAbsoluteRectForLayer):
42659        (WebCore::RenderObject::checkForRepaintDuringLayout):
42660        (WebCore::RenderObject::dump):
42661        (WebCore::RenderObject::setStyle):
42662        (WebCore::RenderObject::destroy):
42663        (WebCore::RenderObject::recalcMinMaxWidths):
42664        * rendering/RenderObject.h:
42665        (WebCore::RenderObject::hasLayer):
42666        (WebCore::RenderObject::prefWidthsDirty):
42667        (WebCore::RenderObject::setPrefWidthsDirty):
42668        (WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc):
42669        (WebCore::RenderObject::calcPrefWidths):
42670        (WebCore::RenderObject::minPrefWidth):
42671        (WebCore::RenderObject::maxPrefWidth):
42672        * rendering/RenderPart.cpp:
42673        (WebCore::RenderPart::setWidget):
42674        * rendering/RenderPartObject.cpp:
42675        (WebCore::RenderPartObject::updateWidget):
42676        (WebCore::RenderPartObject::layout):
42677        * rendering/RenderReplaced.cpp:
42678        (WebCore::RenderReplaced::calcPrefWidths):
42679        * rendering/RenderReplaced.h:
42680        * rendering/RenderSVGContainer.cpp:
42681        (WebCore::RenderSVGContainer::calcPrefWidths):
42682        (WebCore::RenderSVGContainer::layout):
42683        * rendering/RenderSVGContainer.h:
42684        * rendering/RenderSVGHiddenContainer.cpp:
42685        (WebCore::RenderSVGHiddenContainer::calcPrefWidths):
42686        * rendering/RenderSVGHiddenContainer.h:
42687        * rendering/RenderSVGText.cpp:
42688        (WebCore::RenderSVGText::layout):
42689        * rendering/RenderSlider.cpp:
42690        (WebCore::RenderSlider::calcPrefWidths):
42691        * rendering/RenderSlider.h:
42692        * rendering/RenderTable.cpp:
42693        (WebCore::RenderTable::calcWidth):
42694        (WebCore::RenderTable::layout):
42695        (WebCore::RenderTable::calcPrefWidths):
42696        (WebCore::RenderTable::splitColumn):
42697        (WebCore::RenderTable::appendColumn):
42698        * rendering/RenderTable.h:
42699        * rendering/RenderTableCell.cpp:
42700        (WebCore::RenderTableCell::updateFromElement):
42701        (WebCore::RenderTableCell::styleOrColWidth):
42702        (WebCore::RenderTableCell::calcPrefWidths):
42703        * rendering/RenderTableCell.h:
42704        * rendering/RenderTableCol.cpp:
42705        (WebCore::RenderTableCol::updateFromElement):
42706        * rendering/RenderTableRow.cpp:
42707        (WebCore::RenderTableRow::layout):
42708        * rendering/RenderTableSection.cpp:
42709        (WebCore::RenderTableSection::paint):
42710        * rendering/RenderText.cpp:
42711        (WebCore::RenderText::trimmedPrefWidths):
42712        (WebCore::RenderText::calcPrefWidths):
42713        (WebCore::RenderText::calcPrefWidthsInternal):
42714        (WebCore::RenderText::setText):
42715        * rendering/RenderText.h:
42716        (WebCore::RenderText::minPrefWidth):
42717        (WebCore::RenderText::maxPrefWidth):
42718        * rendering/RenderTextControl.cpp:
42719        (WebCore::RenderTextControl::calcPrefWidths):
42720        * rendering/RenderTextControl.h:
42721        * rendering/RenderView.cpp:
42722        (WebCore::RenderView::RenderView):
42723        (WebCore::RenderView::calcPrefWidths):
42724        (WebCore::RenderView::layout):
42725        * rendering/RenderView.h:
42726        * rendering/RenderWidget.cpp:
42727        (WebCore::RenderWidget::layout):
42728        * rendering/RootInlineBox.cpp:
42729        * rendering/RootInlineBox.h:
42730        (WebCore::RootInlineBox::setHorizontalOverflowPositions):
42731        (WebCore::RootInlineBox::setVerticalSelectionPositions):
42732        * rendering/TableLayout.h:
42733
427342007-04-24  Justin Garcia  <justin.garcia@apple.com>
42735
42736        Reviewed by oliver
42737        
42738        <rdar://problem/5156401> 
42739        Crash when dragging text into a link inside a table cell
42740
42741        * editing/CompositeEditCommand.cpp:
42742        (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
42743        Don't avoid the anchor if doing so would skip over a line break, that
42744        would put content in the wrong paragraph, which can throw ReplaceSelectionCommand,
42745        which relies on moveParagraphs into infinite recursion.
42746        Renamed the input position.
42747        Don't need to re-fetch the enclosing anchor when preparing to push it down,
42748        since it hasn't changed since the top of the function.
42749
427502007-04-24  Timothy Hatcher  <timothy@apple.com>
42751
42752        Reviewed by Adam.
42753
42754        <rdar://problem/5133011> 64-bit: Attempting to paste copied text in a input field results in a crash at WebCore::Range::startPosition()
42755
42756        Change a couple incorrect uses of LONG_MAX to INT_MAX to match the variable type they are used in.
42757        The LONG_MAX on 64-bit was overflowing the int variables, causing this crash on paste.
42758
42759        * bridge/mac/WebCoreAXObject.mm:
42760        (-[WebCoreAXObject value]):
42761        * editing/TextIterator.cpp:
42762        (WebCore::TextIterator::handleTextNode):
42763        (WebCore::TextIterator::handleTextBox):
42764
427652007-04-24  Timothy Hatcher  <timothy@apple.com>
42766
42767        Reviewed by Adam.
42768
42769        <rdar://problem/4966982> 64-bit: In a unordered list, TYPE=DISC and TYPE=CIRCLE attribute values are ignored
42770
42771        We need to draw our full-circle arcs counter-clockwise, since a clockwise arc from 0 to 2Ï is no arc at all!
42772        This only worked on 32-bit due to a rounding error in CoreGraphics, causing it to draw a full circle anyway.
42773
42774        * platform/graphics/cg/GraphicsContextCG.cpp:
42775        (WebCore::GraphicsContext::drawEllipse):
42776
427772007-04-24  Brady Eidson  <beidson@apple.com>
42778
42779        Reviewed by Beth, Hyatt, Ada, and Darin
42780
42781        <rdar://problem/5011477> and <rdar://problem/5011514>
42782        Provide support for the icon.db to be moved to a different directory from the old WebKit-style
42783        icons, and remove the old directory if that is the case
42784
42785        Support for this starts in WebCore, where we can use the metadata table in the icon.db to track
42786        whether or not we've ever done the import
42787
42788        * WebCore.exp:
42789        * loader/icon/IconDatabase.cpp:
42790        (WebCore::IconDatabase::defaultDatabaseFilename): Changed to "Icons.db"
42791        (WebCore::IconDatabase::IconDatabase):
42792        (WebCore::IconDatabase::deleteAllPreparedStatements): Delete the new statements added
42793        (WebCore::IconDatabase::imported): Grab this flag from the DB or return the cached flag
42794        (WebCore::IconDatabase::setImported): Store this flag into the DB
42795        (WebCore::IconDatabase::importedQuery): Actually do the DB query for this save
42796        (WebCore::IconDatabase::setImportedQuery): Actually do the DB query for this retrieval
42797        * loader/icon/IconDatabase.h:
42798
427992007-04-24  Darin Adler  <darin@apple.com>
42800
42801        Reviewed by Justin.
42802
42803        - fix <rdar://problem/4356361> Selection after multiple delete
42804          keypresses and undo selects only the last deleted character
42805
42806        Test: editing/undo/undo-combined-delete-boundary.html
42807        Test: editing/undo/undo-combined-delete.html
42808        Test: editing/undo/undo-delete-boundary.html
42809        Test: editing/undo/undo-delete.html
42810        Test: editing/undo/undo-forward-delete-boundary.html
42811        Test: editing/undo/undo-forward-delete.html
42812
42813        * editing/TypingCommand.cpp:
42814        (WebCore::TypingCommand::insertText): Fix obviously-wrong code where there were missing
42815        braces. I couldn't find any real symptom of this, but I think the fix should go in anyway.
42816        All layout tests still pass.
42817        (WebCore::TypingCommand::deleteKeyPressed): Added code to compute a selection that goes
42818        back to the beginning of the composite editing operation.
42819        (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
42820
42821        * editing/Selection.h:
42822        * editing/Selection.cpp: (WebCore::Selection::setWithoutValidation):
42823        Added. Back door to allow setting the ends of a selection without revalidating,
42824        because we need to use it on a selection where the endpoints may no longer be
42825        valid due to mutations done by earlier pieces of the editing operation.
42826
42827        * editing/EditCommand.h:
42828        (WebCore::EditCommand::startingSelection): Return a const& for speed.
42829        (WebCore::EditCommand::endingSelection): Ditto.
42830
428312007-04-24  Sam Weinig  <sam@webkit.org>
42832
42833        Reviewed by Mitz.
42834
42835        - fix for http://bugs.webkit.org/show_bug.cgi?id=13448
42836          REGRESSION: setting an input element's value to JavaScript null gives "null"
42837
42838        Test: fast/forms/input-null.html
42839
42840        * html/HTMLInputElement.idl: Convert JS null to the empty string on setting
42841        DOMString attributes.
42842
428432007-04-24  Mitz Pettel  <mitz@webkit.org>
42844
42845        Reviewed by Dave Hyatt.
42846
42847        - fix http://bugs.webkit.org/show_bug.cgi?id=13453
42848          Control clip isn't applied to children's backgrounds, outlines and floats
42849
42850        Test: fast/forms/control-clip.html
42851
42852        * rendering/RenderBlock.cpp:
42853        (WebCore::RenderBlock::paint): Apply the clip in all phases that paint
42854        children. Split PaintPhaseOutline and PaintPhaseChildBlockBackground into
42855        two phases each, applying the clip only to the children.
42856        * rendering/RenderListBox.cpp:
42857        (WebCore::RenderListBox::paintObject): Treat the scrollbar as part of the
42858        background rather than as a child's background, now that children are
42859        clipped out.
42860
428612007-04-24  Benjamin Otte  <otte@gnome.org>
42862
42863        Reviewed by Mark Rowe.
42864
42865        Gdk build system improvements.
42866
42867        * make-generated-sources.sh: Exit with failure status if make fails.
42868
428692007-04-24  Benjamin Otte  <otte@gnome.org>
42870
42871        Reviewed by Mark Rowe.
42872
42873        Gdk build system improvements.
42874
42875        * Projects/gdk/webcore-gdk.bkl:
42876        fail if running any of the commands failed. In particular
42877        make-generated-sources.sh
42878
428792007-04-23  Beth Dakin  <bdakin@apple.com>
42880
42881        Reviewed by Adam.
42882
42883        Fix for <rdar://problem/5155507> REGRESSION: Crash in 
42884        RenderLayer::setHasVisibleContent()
42885
42886        * rendering/RenderContainer.cpp:
42887        (WebCore::RenderContainer::appendChildNode): Must null-check 
42888        enclosingLayer()
42889        (WebCore::RenderContainer::insertChildNode): Same.
42890
428912007-04-23  David Hyatt  <hyatt@apple.com>
42892
42893        Fix for bug 13337, deep tag nesting is slow.  This patch fixes a number of O(n^2) issues as well as making
42894        a few performance optimizations based off profiling.  Details next to each change below.
42895
42896        Note that calcMinMaxWidth being slow is a critical separate piece of this puzzle.  Until bug 13430 is fixed,
42897        render tree construction will be O(n^2) (because of the minmaxrecalc bit setting being stupid enough to
42898        always crawl to the root of the tree) and calcMinMaxWidth will waste tons of unnecessary time.
42899
42900        When these fixes are combined with the calcMinMaxWidth fix in 13430, the penguin page specified in 13337
42901        loads in < 2 seconds (down from an infinite hang before).
42902
42903        Reviewed by aroben, ollie
42904
42905        * css/cssstyleselector.cpp:
42906        (WebCore::CSSStyleSelector::locateCousinList):
42907        (WebCore::CSSStyleSelector::locateSharedStyle):
42908        * css/csstyleselector.h
42909        Cap the depth of cousin searching on the shared style optimization.  We will be willing to (at most) crawl
42910        up the tree the same distance that we were willing to crawl backwards through sibling lists.  Leaving it
42911        uncapped resulted in pathological style resolution for the case of an infinitely nested chain of singletons.
42912
42913        * html/HTMLParser.cpp:
42914        (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
42915        (WebCore::HTMLParser::popBlock):
42916        Cap the number of residual style tags that we are willing to reopen.  We will reopen at most 200
42917        residual style tags, since the assumption is that once that many tags are on the stack, you're probably already
42918        every kind of bold, italic, and color of the rainbow.
42919
42920        * rendering/RenderFlow.cpp:
42921        (WebCore::RenderFlow::absoluteClippedOverflowRect):
42922        absoluteClippedOverflowRect can just return the empty rect when the inline flow has no line boxes instead of
42923        doing a bunch of work (and calling containingBlock()) for no reason.
42924
42925        * rendering/RenderInline.cpp:
42926        (WebCore::RenderInline::addChildToFlow):
42927        Remove the useless containingBlock() check from addChildToFlow.  Obviously every inline's containing block
42928        is a block flow.
42929
42930        * rendering/bidi.cpp:
42931        (WebCore::inlineWidth):
42932        (WebCore::RenderBlock::createLineBoxes):
42933        Cap the depth of individual line trees to 200.  Again the assumption is that once that many open inlines exist
42934        all on one line that there's no way this would be intentional.
42935
429362007-04-23  David Hyatt  <hyatt@apple.com>
42937
42938        Fix for bug 13430, cap inline splitting for continuations to a maximum depth of 200.
42939
42940        Reviewed by olliej, antti
42941
42942        * rendering/RenderInline.cpp:
42943        (WebCore::RenderInline::splitInlines):
42944
429452007-04-23  Alp Toker  <alp@atoker.com>
42946
42947        Gdk build fix. Track EventHandler change made in r21042.
42948
42949        * page/gdk/EventHandlerGdk.cpp:
42950        (WebCore::EventHandler::passWheelEventToWidget):
42951        (WebCore::EventHandler::passMousePressEventToScrollbar):
42952
429532007-04-23  Timothy Hatcher  <timothy@apple.com>
42954
42955        Reviewed by Darin.
42956
42957        <rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
42958
42959        * rendering/RenderText.cpp:
42960        (WebCore::RenderText::addLineBoxRects): Use min(box->len(), end) instead of special-casing UINT_MAX.
42961
429622007-04-23  Adele Peterson  <adele@apple.com>
42963
42964        Fix by Darin, reviewed by me.
42965
42966        Fix for REGRESSION: Can't upload attachments to bugzilla since the file upload control is reset immediately 
42967        http://bugs.webkit.org/show_bug.cgi?id=13461
42968
42969        * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::updateFromElement):
42970        Only clear the FileChooser if the value is empty *and* (not or) the filename is empty.
42971
429722007-04-23  Adele Peterson  <adele@apple.com>
42973
42974        Reviewed by Adam.
42975
42976        Updated fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
42977
42978        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute): Use a const int maxSavedResults instead of magic number 256.
42979
429802007-04-23  Timothy Hatcher  <timothy@apple.com>
42981
42982        Reviewed by Hyatt.
42983
42984        <rdar://problem/5024945> -[DOMRange lineBoxRects] doesn't include start and end nodes that have offsets
42985
42986        Don't call selectionRect with a -1 end position, instead use the text length.
42987
42988        * rendering/RenderText.cpp:
42989        (WebCore::RenderText::addLineBoxRects):
42990
429912007-04-23  Adele Peterson  <adele@apple.com>
42992
42993        Fixed and reviewed by Darin, Adele, and Oliver.
42994
42995        WebCore part of fix for <rdar://problem/5107538> REGRESSION: Page scroll when selecting characters from inline input candidate window by arrow buttons
42996        http://bugs.webkit.org/show_bug.cgi?id=13263
42997
42998        * dom/KeyboardEvent.h: (WebCore::KeypressCommand::isEmpty): Added helper method.
42999
430002007-04-23  Patti Hoa  <patti@apple.com>
43001        
43002        <rdar://problem/4938364> Attachment button has different string length between attributeStringForRange and stringForRange
43003        <rdar://problem/4939536> AXLengthForTextMarkerRange returns zero length for the range of an attachment
43004        
43005        Reviewed by Darin.
43006
43007        * bridge/mac/WebCoreAXObject.mm:
43008        (nsStringForReplacedNode):
43009        Added helper routine to check if the replaced node should be exposed as an attachment character in string representation.
43010        Added an additional check to make sure that text node is not considered a replaced node.
43011        Removed helper routine AXAttributedStringAppendReplaced since half of the functions are now taken care by nsStringForReplacedNode.
43012        The other half is directly used in the doAXAttributedStringForTextMarkerRange method.
43013        (-[WebCoreAXObject doAXStringForTextMarkerRange:]):
43014        (-[WebCoreAXObject doAXAttributedStringForTextMarkerRange:]):
43015        Both string and AttrbributedString methods will now utilize the helper routine nsStringForReplacedNode to return replacement
43016        characters for range occupied by attachment.
43017        
430182007-04-23  Adele Peterson  <adele@apple.com>
43019
43020        Reviewed by Oliver.
43021
43022        Fix for <rdar://problem/4887426> Set a reasonable maximum number of recent searches for search menu
43023
43024        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseMappedAttribute):
43025        Enforce a maximum of 256 saved results for the search field.
43026
430272007-04-23  Adele Peterson  <adele@apple.com>
43028
43029        Reviewed by Hyatt & Adam.
43030
43031        Fix for <rdar://problem/4807799> REGRESSION: calling select() in onSearch handler doesn't work if you hit enter to trigger the event
43032        Fix for <rdar://problem/5153970> onChange doesn't fire when focusing a popup, using type-ahead to select, and leaving
43033
43034        This previous behavior to blur controls when hitting enter was added to achieve the result of firing the change event.  Firefox does not
43035        fire blur- just the change event, so this fix will match Firefox behavior.
43036
43037        This also fixes a bug where we didn't fire the change event when using type-ahead selection with the popup menu.
43038
43039        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): Fire change event instead of blur event when hitting enter.
43040
43041        * html/HTMLSelectElement.cpp:
43042        (WebCore::HTMLSelectElement::dispatchFocusEvent): Now that we have type-ahead selection for popups that can be opened with the arrow keys,
43043         we should always save the last selection when a popup gets focus, so it can be compared to the current selection when it loses focus.
43044        (WebCore::HTMLSelectElement::dispatchBlurEvent): For the same reasons as above, we should fire onChange for all popups on blur.
43045
43046        (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Fire change event instead of blur event when hitting enter.  Removed an unnecessary
43047         check for form() before calling menuListOnChange().  Removed an unnecessary check for renderer() and usesMenuList().
43048        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Remove call to blur.  Since list boxes fire the change event immediately after an
43049         action is taken, we don't need to fire anything after hitting enter.
43050        (WebCore::HTMLSelectElement::menuListOnChange): Reset m_lastOnChangeIndex after firing the change event.
43051
430522007-04-23  Anders Carlsson  <andersca@apple.com>
43053
43054        Reviewed by Ada.
43055
43056        <rdar://problem/5061022>
43057        REGRESSION: Acrobat 8 plug-in fails to scroll with trackpad two-finger scroll or mouse wheel (12995)
43058        
43059        Pass wheel events to all widgets.
43060        
43061        * page/EventHandler.cpp:
43062        (WebCore::EventHandler::handleWheelEvent):
43063        * page/EventHandler.h:
43064        * page/mac/EventHandlerMac.mm:
43065        (WebCore::EventHandler::passWheelEventToWidget):
43066
430672007-04-23  Alp Toker  <alp@atoker.com>
43068
43069        Reviewed by Mark.
43070
43071        Save and restore the context state when beginning and ending a transparency layer.
43072
43073        * platform/graphics/cairo/GraphicsContextCairo.cpp:
43074        (WebCore::GraphicsContext::beginTransparencyLayer):
43075        (WebCore::GraphicsContext::endTransparencyLayer):
43076
430772007-04-23  Alp Toker  <alp@atoker.com>
43078
43079        Reviewed by Mark.
43080
43081        Further implementation and checks. The opacity layer code is not so beautiful
43082        but gets the job done with fewer complications than maintaining our own stack.
43083
43084        * platform/graphics/cairo/GraphicsContextCairo.cpp:
43085        (WebCore::GraphicsContext::translate):
43086        (WebCore::GraphicsContext::setPlatformStrokeThickness):
43087        (WebCore::GraphicsContext::beginTransparencyLayer):
43088        (WebCore::GraphicsContext::endTransparencyLayer):
43089        (WebCore::GraphicsContext::setCompositeOperation):
43090        (WebCore::GraphicsContext::rotate):
43091        (WebCore::GraphicsContext::scale):
43092
430932007-04-23  Darin Adler  <darin@apple.com>
43094
43095        Reviewed by Hyatt.
43096
43097        - rename box-sizing to -webkit-box-sizing
43098          because of <rdar://problem/4667227> REGRESSION: Shifted table on page at
43099          https://us.etrade.com/e/t/home (due to box-sizing)
43100
43101        * css/CSSComputedStyleDeclaration.cpp:
43102        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Rename.
43103        * css/CSSPropertyNames.in: Ditto.
43104        * css/cssparser.cpp: (WebCore::CSSParser::parseValue): Rename and take out comment
43105        explaining why we aren't prefacing with -webkit.
43106        * css/cssstyleselector.cpp:
43107        (WebCore::CSSStyleSelector::applyProperty): Rename.
43108        * css/html4.css: Rename.
43109        * css/quirks.css: Rename.
43110
431112007-04-23  Alp Toker  <alp@atoker.com>
43112
43113        Reviewed by Hyatt.
43114
43115        * platform/graphics/cairo/GraphicsContextCairo.cpp:
43116        (WebCore::GraphicsContext::drawEllipse):
43117        (WebCore::GraphicsContext::drawConvexPolygon):
43118        Fix stroking and filling of ellipses and polygons.
43119        * platform/graphics/cairo/ImageCairo.cpp:
43120        (WebCore::BitmapImage::draw): Make use of a new GraphicsContext
43121        function to simplify the code.
43122        (WebCore::Image::drawPattern): Now implemented. This makes content
43123        with tiled patterns (eg. CSS repeat) render correctly.
43124        * platform/graphics/gdk/ImageGdk.cpp:
43125        (WebCore::Image::drawPattern): Remove old stub.
43126
431272007-04-22  Lars Naesbye Christensen  <lars@naesbye.dk>
43128
43129        Reviewed by Tim Hatcher.
43130
43131        Prettier, more modern 'cell' cursor
43132        http://bugs.webkit.org/show_bug.cgi?id=13441
43133        Also updates past ChangeLog entries to new email address
43134
43135        * ChangeLog:
43136        * ChangeLog-2006-12-31:
43137        * Resources/cellCursor.png:
43138
431392007-04-23  Mark Rowe  <mrowe@apple.com>
43140
43141        Rubber-stamped by Hyatt.
43142
43143        Rename cMaxPenderingSourceLengthInLowBandwidthDisplay to cMaxPendingSourceLengthInLowBandwidthDisplay.
43144
43145        * loader/FrameLoader.cpp:
43146        (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
43147
431482007-04-22  Maciej Stachowiak  <mjs@apple.com>
43149
43150        Reviewed by Darin and Geoff.
43151
43152        - move most of Window's data members into a separate private object, to avoid needing
43153        to use the oversize allocator for it
43154        http://bugs.webkit.org/show_bug.cgi?id=13381
43155        
43156        It was the only remaining JSObject subclass to use the oversize
43157        allocator on 32-bit platforms, and having oversize objects around
43158        makes garbage collection slower so this would hurt performance
43159        with many tabs/windows open.
43160        
43161        No significant effect on JS iBench.
43162
43163        * bindings/js/kjs_events.cpp:
43164        (KJS::JSUnprotectedEventListener::JSUnprotectedEventListener):
43165        (KJS::JSUnprotectedEventListener::~JSUnprotectedEventListener):
43166        (KJS::JSEventListener::JSEventListener):
43167        (KJS::JSEventListener::~JSEventListener):
43168        (KJS::JSLazyEventListener::parseCode):
43169        * bindings/js/kjs_window.cpp:
43170        (KJS::WindowPrivate::WindowPrivate):
43171        (KJS::Window::Window):
43172        (KJS::Window::~Window):
43173        (KJS::Window::location):
43174        (KJS::Window::selection):
43175        (KJS::Window::locationbar):
43176        (KJS::Window::menubar):
43177        (KJS::Window::personalbar):
43178        (KJS::Window::statusbar):
43179        (KJS::Window::toolbar):
43180        (KJS::Window::scrollbars):
43181        (KJS::Window::mark):
43182        (KJS::Window::getValueProperty):
43183        (KJS::Window::findJSEventListener):
43184        (KJS::Window::findJSUnprotectedEventListener):
43185        (KJS::Window::clearHelperObjectProperties):
43186        (KJS::Window::clear):
43187        (KJS::Window::setCurrentEvent):
43188        (KJS::Window::setReturnValueSlot):
43189        (KJS::Window::clearAllTimeouts):
43190        (KJS::Window::installTimeout):
43191        (KJS::Window::pauseTimeouts):
43192        (KJS::Window::resumeTimeouts):
43193        (KJS::Window::clearTimeout):
43194        (KJS::Window::timerFired):
43195        (KJS::Window::disconnectFrame):
43196        (KJS::Window::jsEventListeners):
43197        (KJS::Window::jsHTMLEventListeners):
43198        (KJS::Window::jsUnprotectedEventListeners):
43199        (KJS::Window::jsUnprotectedHTMLEventListeners):
43200        * bindings/js/kjs_window.h:
43201
432022007-04-22  David Hyatt  <hyatt@apple.com>
43203
43204        Fix 1% regression on the PLT.  Make sure roundToDevicePixels does no
43205        work when no scale is in effect.
43206
43207        Reviewed by mjs
43208
432092007-04-22  Darin Adler  <darin@apple.com>
43210
43211        Reviewed by Oliver.
43212
43213        - fix small things noticed while looking into a font subsitution bug
43214
43215        * platform/Font.h: (WebCore::Font::operator==): Corrected a misleading comment.
43216
43217        * platform/Font.cpp:
43218        (WebCore::Font::Font): Initialize m_pageZero to 0 in the empty constructor instead
43219        of leaving it uninitialized. Initialize m_fontList for tighter code. Remove unneeded
43220        initialization of RefPtr members to 0. Changed the copy constructor to use initialization
43221        for tighter code.
43222        (WebCore::Font::operator=): Sorted to match the order from the header and the copy
43223        constructor, and removed the uneeded self-assignment check.
43224
432252007-04-22  Darin Adler  <darin@apple.com>
43226
43227        Reviewed by Maciej.
43228
43229        - fix http://bugs.webkit.org/show_bug.cgi?id=5196
43230          <rdar://problem/4537384> input type=file fields with style=display:none do not post
43231          their values (5196)
43232
43233        - fix http://bugs.webkit.org/show_bug.cgi?id=8248
43234          Can not clear file input field
43235
43236        * manual-tests/clear-input-file.html: Added.
43237
43238        * html/HTMLInputElement.cpp:
43239        (WebCore::HTMLInputElement::appendFormData): Remove check that prevents submission of
43240        form data when there is no renderer or the renderer is invisible. While well-intentioned,
43241        the rule does not match the behavior of other web browsers.
43242        (WebCore::HTMLInputElement::setValue): Instead of disallowing all value changes for file
43243        type, allow changes to the empty string.
43244        (WebCore::HTMLInputElement::storesValueSeparateFromAttribute): Made file type return true
43245        for this. 1) The file type does store its value separate from the value attribute.
43246        2) The code in setInputType() should do the right thing given this new value, according to
43247        my inspection of the code. 3) The code in both reset() and setValue() will work properly
43248        if this is true, which was the motivation for changing it.
43249
43250        * platform/FileChooser.h: Added a clear function.
43251        * platform/FileChooser.cpp: (WebCore::FileChooser::clear): Clear the filename and the icon.
43252
43253        * rendering/RenderFileUploadControl.cpp:
43254        (WebCore::RenderFileUploadControl::valueChanged): Used a local variable to make the code
43255        a little bit more readable (and match the change below).
43256        (WebCore::RenderFileUploadControl::updateFromElement): Used local variables a bit more in
43257        the old code. Added code that will call clear on the FileChooser and repaint if the DOM
43258        element has an empty value and the FileChooser does not.
43259
432602007-04-22  Grace Kloba  <klobag@gmail.com>
43261
43262        Reviewed by Hyatt.
43263
43264        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12279
43265        Implemented two pass loading. Enabled by WTF_USE_LOW_BANDWIDTH_DISPLAY flag.
43266
43267        * dom/Document.cpp:
43268        (WebCore::Document::Document): initialize member variable m_inLowBandwidthDisplay
43269
43270        * dom/Document.h:
43271        (WebCore::Document::haveStylesheetsLoaded): while in low bandwidth display mode, ignore pending style sheets
43272        (WebCore::Document::setDocLoader):
43273        (WebCore::Document::inLowBandwidthDisplay):
43274        (WebCore::Document::setLowBandwidthDisplay):
43275        * html/HTMLTokenizer.cpp:
43276        (WebCore::HTMLTokenizer::scriptHandler): while in low bandwidth display mode, don't execute JavaScript
43277
43278        * loader/Cache.cpp:
43279        (WebCore::Cache::requestResource): while in low bandwidth display mode, don't let style sheet and JavaScript block
43280
43281        * loader/CachedCSSStyleSheet.cpp:
43282        (WebCore::CachedCSSStyleSheet::checkNotify): add notifyFinished() as client may need "this" pointer
43283
43284        * loader/DocLoader.h:
43285        (WebCore::DocLoader::replaceDocument):
43286        * loader/FrameLoader.cpp:
43287        (WebCore::FrameLoader::FrameLoader):
43288        (WebCore::FrameLoader::requestFrame): while in low bandwidth display mode, don't load sub-frame
43289        (WebCore::FrameLoader::stopLoading):
43290        (WebCore::FrameLoader::begin): set to low bandwidth display mode if the top frame is HTML document
43291        (WebCore::FrameLoader::write):
43292        (WebCore::FrameLoader::endIfNotLoading):
43293        (WebCore::FrameLoader::checkCompleted): while in low bandwidth display mode, don't set complete
43294        (WebCore::FrameLoader::requestObject): while in low bandwidth display mode, don't care Object
43295        (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
43296        (WebCore::FrameLoader::removeAllLowbandwidthDisplayRequests):
43297        (WebCore::FrameLoader::notifyFinished):
43298        (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
43299        * loader/FrameLoader.h:
43300        (WebCore::FrameLoader::FrameLoader::needToSwitchOutLowBandwidthDisplay):
43301        (WebCore::FrameLoader::FrameLoader::setUseLowBandwidthDisplay):
43302        (WebCore::FrameLoader::FrameLoader::useLowBandwidthDisplay):
43303
433042007-04-22  Darin Adler  <darin@apple.com>
43305
43306        Reviewed by Tim Hatcher.
43307
43308        - fix http://bugs.webkit.org/show_bug.cgi?id=13439
43309          4 problems found in dashboard-region parser and serializer
43310
43311        Test: fast/css/dashboard-region-parser.html
43312
43313        * css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::cssText):
43314        Fix code that overwrote each additional region with the previous one to
43315        instead build a space-separated list. Check for the case of an identifier
43316        that's invalid, since that's (accidentally) how we represent a region
43317        value that doesn't have explicit top/right/bottom/left values. The old code
43318        would end up writing out four spaces after the region type.
43319
43320        * css/cssparser.cpp: (WebCore::CSSParser::parseDashboardRegions):
43321        Fail to parse if there is something after the "none" identifier or after
43322        the arguments inside the dashboard-region "function". Also replaced code
43323        that produced a identifier with CSS_VAL_INVALID in a roundabout way with
43324        code that does it explicitly.
43325
433262007-04-22  Darin Adler  <darin@apple.com>
43327
43328        Reviewed by Adele.
43329
43330        - support for fix for <rdar://problem/5100240> REGRESSION: Control-O broken
43331
43332        * dom/KeyboardEvent.h: Include a vector of command names in the KeypressCommand object
43333        instead of a single command name.
43334
433352007-04-22  Alexey Proskuryakov  <ap@webkit.org>
43336
43337        Reviewed by Darin.
43338
43339        http://bugs.webkit.org/show_bug.cgi?id=13115
43340        REGRESSION: 1000% performance regression in DOM access by index, which was already slow
43341
43342        * dom/NodeList.h: Move cached data into a separate class, so it can be shared.
43343
43344        * dom/Node.h: Replace the set of registered NodeLists with a struct that also
43345        contains a shared NodeList::Caches (so the size of Node doesn't change).
43346
43347        * dom/NodeList.cpp:
43348        (WebCore::NodeList::NodeList):
43349        (WebCore::NodeList::~NodeList):
43350        (WebCore::NodeList::recursiveLength):
43351        (WebCore::NodeList::itemForwardsFromCurrent):
43352        (WebCore::NodeList::itemBackwardsFromCurrent):
43353        (WebCore::NodeList::recursiveItem):
43354        (WebCore::NodeList::itemWithName):
43355        (WebCore::NodeList::rootNodeChildrenChanged):
43356        (WebCore::NodeList::NodeListInfo::NodeListInfo):
43357        (WebCore::NodeList::NodeListInfo::reset):
43358        * dom/ChildNodeList.cpp:
43359        (WebCore::ChildNodeList::ChildNodeList):
43360        (WebCore::ChildNodeList::length):
43361        (WebCore::ChildNodeList::item):
43362        (WebCore::ChildNodeList::nodeMatches):
43363        * dom/ChildNodeList.h:
43364        * dom/Node.cpp:
43365        (WebCore::Node::childNodes):
43366        (WebCore::Node::registerNodeList):
43367        (WebCore::Node::unregisterNodeList):
43368        (WebCore::Node::notifyLocalNodeListsAttributeChanged):
43369        (WebCore::Node::notifyLocalNodeListsChildrenChanged):
43370        Adjust for the above changes.
43371
433722007-04-21  Mitz Pettel  <mitz@webkit.org>
43373
43374        Reviewed by Darin.
43375
43376        - fix http://bugs.webkit.org/show_bug.cgi?id=13391
43377          REGRESSION (r18819): Incomplete repaint of button text
43378
43379        Test: fast/repaint/control-clip.html
43380
43381        Ignore controls' lightweight clip in repaint rect computation for now.
43382
43383        * rendering/RenderBox.cpp:
43384        (WebCore::RenderBox::computeAbsoluteRepaintRect):
43385
433862007-04-21  Darin Adler  <darin@apple.com>
43387
43388        Reviewed by Adam.
43389
43390        - fix <rdar://problem/4816343> :-khtml-drag CSS pseudo-class changed to :-webkit-drag, need alias
43391
43392        * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType):
43393        Since Apple documentation claims "-khtml-drag" works, we need to keep it working,
43394        so add it back as an alias.
43395
433962007-04-21  Darin Adler  <darin@apple.com>
43397
43398        Reviewed by Oliver.
43399
43400        - fix <rdar://problem/4782422> REGRESSION: -[stringByEvaluatingJavaScriptFromString]
43401          returns an empty string instead of nil for non-string results
43402
43403        * page/mac/WebCoreFrameBridge.mm:
43404        (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
43405        Added a call to nsStringNilIfEmpty to restore the old behavior. It might be nice to
43406        distinguish the empty string from a non-string result, but there's no obvious way
43407        to do that, and for compatibility it's probably best to just restore the old
43408        behavior instead.
43409
434102007-04-21  David Hyatt  <hyatt@apple.com>
43411
43412        Fix for bug 13432, determineFlowSpacing is O(n^2).
43413
43414        Reviewed by aroben
43415
43416        * rendering/InlineBox.cpp:
43417        (WebCore::InlineBox::nextOnLineExists):
43418        (WebCore::InlineBox::prevOnLineExists):
43419        * rendering/InlineBox.h:
43420        (WebCore::InlineBox::InlineBox):
43421
434222007-04-21  Lamar Goddard <lamargoddard@gmail.com>
43423
43424        Reviewed by Darin.
43425
43426        Fix for http://bugs.webkit.org/show_bug.cgi?id=5262
43427        <rdar://problem/5018778>
43428        XMLSerializer drops Namespace information
43429
43430        Updated WebCore::markup to output namespace information for elements/attributes whose namespace information
43431        doesn't appear in its scope in the output.
43432
43433        Added test case: fast/dom/serialize-nodes.xhtml
43434
43435        * WebCore/editing/markup.cpp:
43436        (WebCore::createMarkup(const Node*, ...)): Changed call to WebCore::markup to match parameters
43437        (WebCore::markup): Changed recursive call to match tree structure, removed ASSERT and no longer needed includeSiblings parameter.
43438        (WebCore::startMarkup): Added optional parameter to track namespaces in the current scope.
43439        (WebCore::addNamespace): Function to add namespace information to markup.
43440        (WebCore::shouldAddNamespaceAttr):
43441        (WebCore::shouldAddNamespaceElem): Functions that test whether namespace information should be added for a given node.
43442        * WebCore/dom/Document.idl:
43443        (createElementNS):
43444        (createAttributeNS):
43445        (getElementsByTagNameNS): Added [ConvertNullToNullString] to namespaceURI parameter.
43446        * WebCore/dom/Node.cpp:
43447        (Node::getElementsByTagNameNS): removed test for namespaceURI being null as null can be a valid namespace.
43448
434492007-04-21  Alexey Proskuryakov  <ap@webkit.org>
43450
43451        Reviewed by Darin.
43452
43453        http://bugs.webkit.org/show_bug.cgi?id=13300
43454        Reproducible crash opening anekdot.ru
43455
43456        * html/HTMLParser.cpp:
43457        (WebCore::HTMLParser::HTMLParser):
43458        (WebCore::HTMLParser::getNode):
43459        (WebCore::HTMLParser::handleIsindex):
43460        * html/HTMLParser.h:
43461        Made HTMLParser::form a RefPtr, and renamed it to m_currentFormElement.
43462        Made m_currentMapElement a RefPtr.
43463
434642007-04-21  Mitz Pettel  <mitz@webkit.org>
43465
43466        Reviewed by Darin.
43467
43468        - fix http://bugs.webkit.org/show_bug.cgi?id=13353
43469          REGRESSION (r20754-20766): Textarea does not resize when scrollbar is present
43470
43471        Test: fast/overflow/hit-test-overflow-controls.html
43472
43473        * page/EventHandler.cpp:
43474        (WebCore::EventHandler::handleMouseMoveEvent): Avoid activating scrollbars
43475        during layer resize.
43476        * rendering/RenderBlock.cpp:
43477        (WebCore::RenderBlock::isPointInOverflowControl): Renamed isPointInScrollbar
43478        to this, to reflect that it returns true for points in the resize corner
43479        as well. Changed it to call the layer to do the actual work.
43480        (WebCore::RenderBlock::nodeAtPoint): Updated for the above rename.
43481        * rendering/RenderBlock.h:
43482        * rendering/RenderLayer.cpp:
43483        (WebCore::RenderLayer::horizontalScrollbarWidget): Fixed typo in this function's
43484        name (it was horizontaScrollbarWidget).
43485        (WebCore::RenderLayer::hitTestOverflowControls): Added. Returns whether the
43486        hit point is in one of the scrollbars or the resize corner, and updates the
43487        platform scrollbar in the hit test result if a scrollbar was hit.
43488        * rendering/RenderLayer.h:
43489        * rendering/RenderListBox.cpp:
43490        (WebCore::RenderListBox::isPointInOverflowControl): Rename.
43491        * rendering/RenderListBox.h:
43492
434932007-04-21  Mitz Pettel  <mitz@webkit.org>
43494
43495        Reviewed by Darin.
43496
43497        - fix http://bugs.webkit.org/show_bug.cgi?id=13417
43498          Repro crash when the first argument to getMatchedCSSRules is not an element
43499
43500        Test: fast/dom/Window/getMatchedCSSRules-null-crash.html
43501
43502        * css/cssstyleselector.cpp:
43503        (WebCore::CSSStyleSelector::styleRulesForElement): Added null check.
43504
435052007-04-21  Mitz Pettel  <mitz@webkit.org>
43506
43507        Reviewed by Darin.
43508
43509        - fix http://bugs.webkit.org/show_bug.cgi?id=13416
43510          Repro crash after referencing the user stylesheet from JavaScript
43511
43512        No test included because DumpRenderTree does not support setting the user stylesheet.
43513
43514        * css/cssstyleselector.cpp:
43515        (WebCore::CSSStyleSelector::CSSStyleSelector):
43516        (WebCore::CSSStyleSelector::~CSSStyleSelector):
43517        * css/cssstyleselector.h: Made m_userSheet a RefPtr.
43518
435192007-04-21  Darin Fisher  <darin@chromium.org>
43520
43521        Reviewed by Adam.
43522
43523        NPObject should be forward declared using 'struct' instead of 'class'
43524
43525        * page/Frame.h:
43526
435272007-04-21  Alp Toker  <alp@atoker.com>
43528
43529        Gdk build fix.
43530
43531        * platform/gdk/FontPlatformDataGdk.cpp:
43532        (WebCore::FontPlatformData::FontPlatformData): Use the correct casts.
43533
435342007-04-20  Brady Eidson  <beidson@apple.com>
43535
43536        Reviewed by Oliver (Black Sheep)
43537
43538        <rdar://problem/3559794>
43539        [WebView setMaintainsBackForwardList:] doesn't actually flush out the current page caches
43540
43541        * WebCore.exp:
43542        * history/BackForwardList.cpp:
43543        (WebCore::BackForwardList::BackForwardList): Set the flag to true by default
43544        (WebCore::BackForwardList::addItem): Check the flag and bail if its false
43545        (WebCore::BackForwardList::setCapacity): More correct if it set the m_current to 
43546          NoCurrentItemIndex if we're setting capacity to 0
43547        (WebCore::BackForwardList::enabled): 
43548        (WebCore::BackForwardList::setEnabled): If we're disabling, cycle capacity to 0 and 
43549          back to flush things out
43550        * history/BackForwardList.h: Add enabled(), setEnabled(bool), and m_enabled
43551
435522007-04-20  David Hyatt  <hyatt@apple.com>
43553
43554        Bug 13424, firstLineStyle and verticalPositionHint together take
43555        33% of the time on the new tag nesting PLT.  Don't waste time even
43556        looking for first-line styles if no stylesheet used them.
43557
43558        Reviewed by beth
43559
43560        * css/CSSGrammar.y:
43561        * dom/Document.cpp:
43562        (WebCore::Document::Document):
43563        * dom/Document.h:
43564        (WebCore::Document::usesFirstLineRules):
43565        (WebCore::Document::setUsesFirstLineRules):
43566        * rendering/RenderObject.cpp:
43567        (WebCore::RenderObject::verticalPositionHint):
43568        (WebCore::RenderObject::firstLineStyle):
43569
435702007-04-20  Peter Kasting  <pkasting@google.com>
43571
43572        Reviewed by Oliver.
43573
43574        - fix http://bugs.webkit.org/show_bug.cgi?id=13420
43575
43576        * platform/TextEncodingRegistry.cpp:
43577        (WebCore::addToTextEncodingNameMap): Change a pointer comparison to a
43578        strcmp(), since the strings here are not necessarily
43579        pointer-equivalent.
43580
435812007-04-20  Darin Adler  <darin@apple.com>
43582
43583        Reviewed by Geoff Garen and John Sullivan.
43584
43585        - fix <rdar://problem/4671964> document property on <iframe> elements causes problems for SAP application
43586
43587        Test: fast/dom/iframe-document.html
43588
43589        * bindings/js/kjs_html.h: Removed IFrameDocument.
43590        * bindings/js/kjs_html.cpp: (KJS::JSHTMLElement::iFrameGetter): Ditto.
43591
435922007-04-19  Alp Toker  <alp@atoker.com>
43593
43594        Reviewed by Mark.
43595
43596        * platform/gdk/FontGdk.cpp:
43597        (WebCore::Font::drawGlyphs):
43598        * platform/gdk/FontPlatformDataGdk.cpp:
43599        (WebCore::FontPlatformData::FontPlatformData): Fix font support in Gdk port.
43600
436012007-04-19  David Hyatt  <hyatt@apple.com>
43602
43603        Fix for bug 13208, implement word-break.  This patch produces a partial
43604        implementation of word-break.  word-break: break-all is implemented.  In
43605        addition, a custom value, word-break: break-word is added that is a hybrid
43606        of word-wrap: break-word and word-break: break-all (and more useful than
43607        either).
43608
43609        Reviewed by beth
43610
43611        Added fast/text/word-break.html
43612
43613        * css/CSSComputedStyleDeclaration.cpp:
43614        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
43615        * css/CSSPropertyNames.in:
43616        * css/CSSValueKeywords.in:
43617        * css/cssparser.cpp:
43618        (WebCore::CSSParser::parseValue):
43619        * css/cssstyleselector.cpp:
43620        (WebCore::CSSStyleSelector::applyProperty):
43621        * rendering/RenderStyle.cpp:
43622        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
43623        (WebCore::StyleRareInheritedData::operator==):
43624        (WebCore::RenderStyle::diff):
43625        * rendering/RenderStyle.h:
43626        (WebCore::):
43627        (WebCore::RenderStyle::breakWords):
43628        (WebCore::RenderStyle::wordBreak):
43629        (WebCore::RenderStyle::setWordBreak):
43630        (WebCore::RenderStyle::initialWordBreak):
43631        (WebCore::RenderStyle::initialWordWrap):
43632        * rendering/RenderText.cpp:
43633        (WebCore::RenderText::calcMinMaxWidthInternal):
43634        * rendering/RenderTextControl.cpp:
43635        (WebCore::RenderTextControl::createInnerTextStyle):
43636        (WebCore::RenderTextControl::calcHeight):
43637        * rendering/bidi.cpp:
43638        (WebCore::RenderBlock::findNextLineBreak):
43639
436402007-04-20  Mark Rowe  <mrowe@apple.com>
43641
43642        Qt build fix for FreeBSD.
43643
43644        * WebCore.pro: FreeBSD needs HAVE_PTHREAD_NP_H defined.
43645
436462007-04-19  Mitz Pettel  <mitz@webkit.org>
43647
43648        Reviewed by Darin.
43649
43650        - fix http://bugs.webkit.org/show_bug.cgi?id=13403
43651          REGRESSION (r18875-r18899): Can no longer type into search form field after searching and then clicking "back"
43652
43653        The problem was that the page was loaded from the page cache with a subtree
43654        marked for layout and the layout timer stopped (having been stopped when the
43655        page entered the page cache). FrameView::needsLayout() was returning false
43656        which prevented the pending layout from completing.
43657
43658        * page/FrameView.cpp:
43659        (WebCore::FrameView::clear): Removed the call to stop the layout timer, since
43660        reset() does that already.
43661        (WebCore::FrameView::needsLayout): Changed to return true if there's a subtree
43662        pending relayout.
43663
436642007-04-19  Justin Garcia  <justin.garcia@apple.com>
43665
43666        Reviewed by harrison
43667        
43668        <rdar://problem/5144139> 
43669        On delete, <BR> inserted into non-editable ToDo <TABLE> element
43670        
43671        The fact that the br was being inserted at a bad position 
43672        (a non-editable position and one inside a table instead of 
43673        before it) was fixed in the previous checkin. This change 
43674        stops us from inserting a br at all, to fix the bug.
43675        
43676        After a delete, we need a placeholder if the selection
43677        started at the start of a paragraph and ended at the end 
43678        of a paragraph. But not if it starts just before a table 
43679        and ends inside that table.  We need placeholders to hold 
43680        open emptied out table cells, but that is handled separately.
43681        
43682        Also, moved lineBreakExistsAtPosition to htmlediting.cpp 
43683        so that it can be used in more places.
43684
43685        * editing/CompositeEditCommand.cpp:
43686        (WebCore::CompositeEditCommand::removePlaceholderAt):
43687        (WebCore::CompositeEditCommand::moveParagraphs):
43688        * editing/DeleteSelectionCommand.cpp:
43689        (WebCore::DeleteSelectionCommand::doApply):
43690        * editing/InsertLineBreakCommand.cpp:
43691        * editing/InsertParagraphSeparatorCommand.cpp:
43692        (WebCore::InsertParagraphSeparatorCommand::doApply):
43693        * editing/htmlediting.cpp:
43694        (WebCore::lineBreakExistsAtPosition):
43695        * editing/htmlediting.h:
43696
436972007-04-19  Justin Garcia  <justin.garcia@apple.com>
43698
43699        Reviewed by harrison
43700        
43701        Fixes some issues found while investigating:
43702        <rdar://problem/5144139> On delete, <BR> inserted into non-editable ToDo <TABLE> element
43703        
43704        Move the code to handle inserting content before/after
43705        tables for [table, 0/max] to insertNodeAt, so that
43706        all insertions get it, not just some.
43707        Changed insertNodeAt to take in a position instead of a
43708        node and an offset.
43709
43710        * editing/CompositeEditCommand.cpp:
43711        (WebCore::CompositeEditCommand::insertNodeAt):
43712        (WebCore::CompositeEditCommand::insertNodeAtTabSpanPosition):
43713        (WebCore::CompositeEditCommand::insertBlockPlaceholder):
43714        (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
43715        If paragrahStart.node() is an atomic node, insertNodeAt can handle
43716        insertion, we don't need to special case it.
43717        (WebCore::CompositeEditCommand::moveParagraphs):
43718        (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
43719        * editing/CompositeEditCommand.h:
43720        * editing/DeleteSelectionCommand.cpp:
43721        (WebCore::DeleteSelectionCommand::mergeParagraphs):
43722        (WebCore::DeleteSelectionCommand::doApply):
43723        * editing/FormatBlockCommand.cpp:
43724        (WebCore::FormatBlockCommand::doApply):
43725        * editing/IndentOutdentCommand.cpp:
43726        (WebCore::IndentOutdentCommand::indentRegion):
43727        (WebCore::IndentOutdentCommand::outdentParagraph):
43728        * editing/InsertLineBreakCommand.cpp:
43729        (WebCore::InsertLineBreakCommand::doApply):
43730        * editing/InsertListCommand.cpp:
43731        (WebCore::InsertListCommand::doApply):
43732        * editing/InsertParagraphSeparatorCommand.cpp:
43733        (WebCore::InsertParagraphSeparatorCommand::doApply):
43734        * editing/InsertTextCommand.cpp:
43735        (WebCore::InsertTextCommand::prepareForTextInsertion): Removed some
43736        dead code that handled insertion at non-editable positions.
43737        (WebCore::InsertTextCommand::insertTab):
43738        * editing/ReplaceSelectionCommand.cpp:
43739        (WebCore::ReplaceSelectionCommand::doApply):
43740        (WebCore::ReplaceSelectionCommand::insertNodeAtAndUpdateNodesInserted):
43741        * editing/ReplaceSelectionCommand.h:
43742
437432007-04-19  Mitz Pettel  <mitz@webkit.org>
43744
43745        Reviewed by Darin.
43746
43747        - fix http://bugs.webkit.org/show_bug.cgi?id=13336
43748          REGRESSION (r20646): editing/execCommand/hilitecolor.html crashes under guardMalloc
43749
43750        Avoid calling selectionRect() and selectionGapRects() on a renderer that needs
43751        layout.
43752
43753        * rendering/RenderBlock.cpp:
43754        (WebCore::RenderBlock::selectionGapRects):
43755        * rendering/RenderBlock.h:
43756        (WebCore::RenderBlock::BlockSelectionInfo::BlockSelectionInfo):
43757        * rendering/RenderListMarker.cpp:
43758        (WebCore::RenderListMarker::selectionRect):
43759        * rendering/RenderObject.h:
43760        (WebCore::RenderObject::SelectionInfo::SelectionInfo):
43761        * rendering/RenderReplaced.cpp:
43762        (WebCore::RenderReplaced::selectionRect):
43763        * rendering/RenderText.cpp:
43764        (WebCore::RenderText::selectionRect):
43765
437662007-04-19  Justin Garcia  <justin.garcia@apple.com>
43767
43768        Reviewed by darin
43769
43770        <rdar://problem/5142012> 
43771        GoogleDocs: Crash at WebCore::Range::startPosition() when creating a list from a link
43772        
43773        List creation uses moveParagraphs to push content into list items.
43774        Its fragment creation (using createMarkup) incorrectly uses regular
43775        spaces instead of nbsps for spaces that were rendered (11475), which 
43776        causes spaces to be collapsed during the move operation.  This results 
43777        in a call to rangeFromLocationAndLength with a location past the end
43778        of the document.  We use the result from rangeFromLocationAndLength
43779        (null) and crash.
43780        
43781        Also when moveParagraphs tries to push content into a list item surrounded
43782        by an anchor, it fails because positionAvoidingSpecialElementBoundary avoids 
43783        the anchor, which also avoids the list item.  This was fixed by pushing
43784        down anchors before avoiding them.
43785        
43786        * editing/CompositeEditCommand.cpp:
43787        (WebCore::CompositeEditCommand::pushAnchorElementDown): Remove the
43788        old anchor after we push down clones of it, this is what callers
43789        expect.
43790        (WebCore::CompositeEditCommand::pushPartiallySelectedAnchorElementsDown):
43791        Call the new enclosingAnchorElement, that takes in a position instead
43792        of a node.
43793        (WebCore::CompositeEditCommand::moveParagraphs): If spaces collapsed
43794        as a result of the move, rangeFromLocationAndLength can return null,
43795        bail and don't try to preserve the selection in that case.
43796        (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
43797        Moved from htmlediting.cpp.
43798        Make sure anchors are pushed down before avoiding them so that we don't
43799        also avoid structural elements like lists and blocks.
43800        * editing/CompositeEditCommand.h:
43801        * editing/TypingCommand.cpp: Moved isFirst/LastPositionBefore/AfterTable
43802        to htmlediting.cpp.
43803        * editing/htmlediting.cpp:
43804        Moved positionAvoidingSpecialElementBoundary so that it could call
43805        pushAnchorElementDown.
43806        (WebCore::isFirstPositionAfterTable): Moved here.
43807        (WebCore::isLastPositionBeforeTable): Moved here.
43808        (WebCore::enclosingAnchorElement): Moved here.
43809        (WebCore::enclosingListChild): Removed an extraneous space.
43810        * editing/htmlediting.h:
43811
438122007-04-19  Beth Dakin  <bdakin@apple.com>
43813
43814        Reviewed by Hyatt.
43815
43816        Fix for <rdar://problem/5120889> Sized table cells w/borders not 
43817        drawn to correct size
43818
43819        When table cells have children with %-height, the cells were 
43820        incorrectly shrinking down to be the size of the child. This 
43821        exposed another problem with replaced children and sizing.
43822
43823        * rendering/RenderBox.cpp:
43824        (WebCore::RenderBox::calcReplacedHeightUsing): The exposed problem. 
43825        Subtract our borders and padding in the auto or percent table cell 
43826        containing block case.
43827        * rendering/RenderTableSection.cpp:
43828        (WebCore::RenderTableSection::layoutRows): When our children can 
43829        flex, do not always set the cellTopExtra and cellBottomExtra to 0! 
43830        That is bad! We should do the same as the non-flex case.
43831
438322007-04-19  Anders Carlsson  <andersca@apple.com>
43833
43834        Reviewed by Geoff.
43835
43836        http://bugs.webkit.org/show_bug.cgi?id=13333
43837        Support naturalWidth/naturalHeight on image elements
43838
43839        * html/HTMLImageElement.cpp:
43840        (WebCore::HTMLImageElement::naturalWidth):
43841        (WebCore::HTMLImageElement::naturalHeight):
43842        * html/HTMLImageElement.h:
43843        * html/HTMLImageElement.idl:
43844
438452007-04-19  Patti Hoa  <patti@apple.com>
43846
43847        Reviewed by Darin.
43848        - review suggestion for rdar://5145011 code change
43849        
43850        * bridge/mac/WebCoreAXObject.mm:
43851        (-[WebCoreAXObject value]):
43852        return early if value attribute is not supported by the attachment view.
43853
438542007-04-19  Patti Hoa  <patti@apple.com>
43855
43856        Reviewed by Darin.
43857
43858        <rdar://problem/5145011> Allow attachment view of web object to handle accessibility actions
43859        
43860        * bridge/mac/WebCoreAXObject.mm:
43861        (-[WebCoreAXObject value]):
43862        Only allow asking the attachmentView for value if attachmentView supports this value attribute 
43863        (-[WebCoreAXObject title]):
43864        (-[WebCoreAXObject accessibilityAttributeNames]):
43865        Should not return that long list of unrelated attributes for attachmentView.
43866        (-[WebCoreAXObject accessibilityActionNames]):
43867        (-[WebCoreAXObject accessibilityPerformAction:]):
43868        Allow attachmentView a chance to handle actions.
43869        (-[WebCoreAXObject accessibilityParameterizedAttributeNames]):
43870        Should not return that long list of unrelated attributes for attachmentView.
43871        
438722007-04-19  Mitz Pettel  <mitz@webkit.org>
43873
43874        Reviewed by Hyatt.
43875
43876        - fix http://bugs.webkit.org/show_bug.cgi?id=13291
43877          REGRESSION (r19595): WebViewDidBeginEditingNotification not posted when focusing with the mouse
43878
43879        Covered by editing tests.
43880
43881        * dom/Document.cpp:
43882        (WebCore::Document::setFocusedNode): Moved the call to Editor::didBeginEditing()
43883        back into here.
43884        * dom/Element.cpp:
43885        (WebCore::Element::updateFocusAppearance): Removed the call to didBeginEditing().
43886        * html/HTMLInputElement.cpp:
43887        (WebCore::HTMLInputElement::updateFocusAppearance): Ditto.
43888
438892007-04-19  Sam Weinig  <sam@webkit.org>
43890
43891        Reviewed by Darin.
43892
43893        - Patch for http://bugs.webkit.org/show_bug.cgi?id=12249
43894          FCKeditor: <hr>, <ul> and <ol> have id="undefined"
43895
43896        Convert undefined and null to a null string for third argument of
43897        execCommand(); 
43898
43899        Test: editing/execCommand/arguments-combinations.html
43900
43901        * WebCore.xcodeproj/project.pbxproj:
43902        * bindings/js/kjs_binding.cpp:
43903        (KJS::valueToStringWithUndefinedOrNullCheck):
43904        * bindings/js/kjs_binding.h:
43905        * bindings/scripts/CodeGeneratorJS.pm:
43906        * dom/Document.idl:
43907
439082007-04-19  Alp Toker  <alp@atoker.com>
43909
43910        Reviewed by hyatt.
43911
43912        * WebCoreSources.bkl: Remove obsolete source file from build.
43913
439142007-04-18  Alp Toker  <alp@atoker.com>
43915
43916        Gdk build fix.  Reviewed by Sam Weinig.
43917
43918        Track changes to make GdkLauncher work again.
43919
43920        * WebCoreSources.bkl:
43921        * platform/gdk/ChromeClientGdk.h:
43922        * platform/gdk/TemporaryLinkStubs.cpp:
43923        (ChromeClientGdk::createWindow):
43924        (ChromeClientGdk::createModalDialog):
43925        (Editor::markBadGrammar):
43926
439272007-04-17  Brady Eidson  <beidson@apple.com>
43928
43929        Reviewed by Tim
43930
43931        <rdar://problem/5008925>
43932        Expose the NSURLConnection delegate willCacheResponse API to WebResourceLoadDelegate
43933
43934        * WebCore.xcodeproj/project.pbxproj: Added ResourceLoaderMac.mm
43935
43936        * loader/FrameLoaderClient.h: Add the willCacheResponse SPI for WebKit to implement
43937
43938        * loader/ResourceLoader.h:
43939        * loader/mac/ResourceLoaderMac.mm: Added.
43940        (WebCore::ResourceLoader::willCacheResponse): Return the new cachedResponse from the client
43941
43942        * platform/graphics/svg/SVGImageEmptyClients.h:
43943        (WebCore::SVGEmptyFrameLoaderClient::willCacheResponse): Stub
43944
43945        * platform/network/ResourceHandleClient.h:
43946        (WebCore::ResourceHandleClient::willCacheResponse):  Return the new cachedResponse from the client
43947
43948        * platform/network/mac/ResourceHandleMac.mm:
43949        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Call to get the new 
43950          cachedURLResponse before calling for the cache policy
43951
439522007-04-18  Darin Adler  <darin@apple.com>
43953
43954        Reviewed by Hyatt.
43955
43956        - fix http://bugs.webkit.org/show_bug.cgi?id=13375
43957          REGRESSION (r20901): failing fast/overflow/scrollRevealButton.html
43958
43959        * dom/Document.cpp: (WebCore::Document::updateLayout):
43960        If we have a parent frame, update its layout too.
43961
439622007-04-18  Alp Toker  <alp@atoker.com>
43963
43964        Gdk build fix.  Reviewed by Mark.
43965
43966        * loader/gdk/FrameLoaderClientGdk.cpp:
43967        (WebCore::FrameLoaderClientGdk::loadedFromCachedPage):
43968        (WebCore::FrameLoaderClientGdk::setDocumentViewFromCachedPage):
43969        (WebCore::FrameLoaderClientGdk::saveDocumentViewToCachedPage):
43970        * loader/gdk/FrameLoaderClientGdk.h:
43971        * platform/gdk/TemporaryLinkStubs.cpp:
43972        (CachedPage::close): Track PageCache to CachedPage refactoring.
43973
439742007-04-17  Mitz Pettel  <mitz@webkit.org>
43975
43976        Reviewed by Darin.
43977
43978        - fix http://bugs.webkit.org/show_bug.cgi?id=13369
43979          REGRESSION (r13366): Invisible table cell background is painted
43980
43981        Test: fast/table/invisible-cell-background.html
43982
43983        * rendering/RenderTableCell.cpp:
43984        (WebCore::RenderTableCell::paintBackgroundsBehindCell): Don't paint any
43985        background if the cell is not visible. This behavior matches WinIE and Opera.
43986
439872007-04-17  Justin Garcia  <justin.garcia@apple.com>
43988
43989        Reviewed by harrison
43990
43991        <rdar://problem/5119244> 
43992        Crash when indenting a selected ToDo
43993        
43994        indentRegion() was using the old (incorrect) editable root 
43995        getter, which returned null for a valid, editable position, 
43996        causing the crash.
43997
43998        * editing/IndentOutdentCommand.cpp:
43999        (WebCore::IndentOutdentCommand::indentRegion):
44000        The editable root for a position is editableRootForPosition(p),
44001        not p.node()->rootEditableElement(), because of VisiblePositions 
44002        before/after tables, replaced elements and others.
44003
440042007-04-17  Justin Garcia  <justin.garcia@apple.com>
44005
44006        Reviewed by hyatt
44007
44008        <rdar://problem/5138441> 
44009        GoogleDocs: Indented text looks like text that's been Quoted
44010        
44011        GoogleDocs uses FormatBlock, blockquotes and a style rule
44012        for blockquotes to implement a "Quote Text" feature.  Styles
44013        intended only for those blockquotes were added to the 
44014        blockquotes that we use for indenting.
44015
44016        * css/html4.css: Removed the webkit-indent-blockquote class rule.
44017        * editing/IndentOutdentCommand.cpp:
44018        (WebCore::createIndentBlockquoteElement): Use custom margins
44019        and turn off border and padding to override author rules for
44020        blockquotes.
44021
440222007-04-17  Justin Garcia  <justin.garcia@apple.com>
44023
44024        Reviewed by darin
44025
44026        <rdar://problem/5136770> 
44027        Gmail Editor: Hang when turning a particular multi-line selection into a list
44028        
44029        When InsertListCommand pushes content into list items, 
44030        it creates an empty list item and then calls moveParagraphs.  
44031        But moveParagraphs' selection preservation code fails when 
44032        it encounters empty list items (list items w/o placeholders).
44033        This causes InsertListCommand to lose track of where it has 
44034        already been performed, which causes the hang.
44035
44036        * editing/InsertListCommand.cpp:
44037        (WebCore::InsertListCommand::doApply): Use brs to hold open 
44038        empty list items.
44039
440402007-04-17  Darin Adler  <darin@apple.com>
44041
44042        Oops, rolled that last change out. I'll redo it again later after making
44043        som additional refinments.
44044
440452007-04-17  Darin Adler  <darin@apple.com>
44046
44047        Reviewed by Brady.
44048
44049        - a few baby steps to try to make lockHistory and userGesture less confusing
44050
44051        * page/FrameLoadRequest.h:
44052        (WebCore::FrameLoadRequest::FrameLoadRequest): Add initialization of m_isUserGesture
44053        to true.
44054        (WebCore::FrameLoadRequest::shouldLockHistory): Renamed from lockHistory to avoid having
44055        a getter that sounds like a verb phrase.
44056        (WebCore::FrameLoadRequest::setShouldLockHistory): Ditto.
44057        (WebCore::FrameLoadRequest::isUserGesture): Added.
44058        (WebCore::FrameLoadRequest::setIsUserGesture): Ditto.
44059
44060        * loader/FrameLoader.h: Remove userGesture parameter from load that takes
44061        FrameLoadRequest. Remove default values for lockHistory and userGesture parameters,
44062        since that just makes it more likely we'll forget to pass them in. Remove one of
44063        the overloads of urlSelected, since it's only called one place.
44064
44065        * loader/FrameLoader.cpp:
44066        (WebCore::FrameLoader::createWindow): Remove userGesture parameter, relying on
44067        the true default in FrameLoadRequest.
44068        (WebCore::FrameLoader::urlSelected): Call setShouldLockHistory and setIsUserGesture
44069        on the FrameLoadRequest, and call load directly; also eliminate the other urlSelected
44070        overload since this was the only place it was called.
44071        (WebCore::FrameLoader::load): Remove userGesture parameter, relying on the true
44072        default in FrameLoadRequest. In the other overload, clean up logic to eliminate the
44073        argsReferrer variable and get rid of the userGesture parameter, using the value from
44074        FrameLoadRequest.
44075        (WebCore::FrameLoader::submitForm): Remove userGesture parameter, relying on the value
44076        in the FrameLoadRequest. This actually changes behavior.
44077
44078        * bindings/js/kjs_html.cpp: (KJS::JSHTMLDocument::putValueProperty): Pass
44079        false for userGesture explicitly instead of relying on default argument.
44080
44081        * page/ContextMenuController.cpp: (WebCore::ContextMenuController::contextMenuItemSelected):
44082        Remove userGesture parameter, relying on the true default in FrameLoadRequest.
44083
440842007-04-16  David Kilzer  <ddkilzer@webkit.org>
44085
44086        Reviewed by NOBODY (fixed misspelling).
44087
44088        * manual-tests/containing-block-position-chage.html: Removed.
44089        * manual-tests/containing-block-position-change.html: Added.
44090
440912007-04-16  Justin Garcia  <justin.garcia@apple.com>
44092
44093        Reviewed by darin
44094
44095        <rdar://problem/5134759> 
44096        GMail Editor: Hang after pasting underlined text multiple times
44097        
44098        The moveParagraphs call that ReplaceSelectionCommand
44099        performs must receive only inline content from createMarkup, 
44100        or else it will result in another call to moveParagraphs 
44101        when it performs the move, resulting in infinite recursion.
44102
44103        * editing/markup.cpp:
44104        (WebCore::startMarkup): We were only converting a block to
44105        an inline if it had an inline style declaration or styles 
44106        coming from matched rules.  Cleaned up this code a bit by 
44107        handling an element's style separately from its other 
44108        attributes.
44109
441102007-04-16  Darin Adler  <darin@apple.com>
44111
44112        - get layout tests going again
44113
44114        * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry):
44115        Replace assertion with a runtime check. We can consider changing it back to
44116        an assertion some day, but it's not important.
44117
441182007-04-16  Darin Adler  <darin@apple.com>
44119
44120        Reviewed by John Sullivan.
44121
44122        - fix http://bugs.webkit.org/show_bug.cgi?id=13303
44123          <rdar://problem/5126341> REGRESSION: controls in a background Safari window
44124          maintain active appearance if the address bar has focus (13303)
44125
44126        - fix a related problem where elements could look focused in non-active windows
44127
44128        - simplify secure keyboard entry logic in Frame::setIsActive
44129
44130        * WebCore.exp: Add two new symbols for use by WebKit.
44131
44132        * html/HTMLInputElement.cpp:
44133        (WebCore::HTMLInputElement::dispatchFocusEvent): Call setUseSecureKeyboardEntryWhenActive
44134        rather than calling setSecureKeyboardEntry directly -- does nothing if the frame is not active.
44135        (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto.
44136
44137        * page/Frame.cpp:
44138        (WebCore::Frame::setUseSecureKeyboardEntryWhenActive): Added. Calls
44139        setUseSecureKeyboardEntry only if the frame is active, but also stores away the state,
44140        so that the setIsActive function doesn't have to recompute it.
44141        (WebCore::Frame::setIsActive): Rewrote all the comments in the function. Removed the code
44142        to manage control tints, which are not based on the whether the frame is active but rather
44143        on AppKit's concept of whether the window should have "key appearance". Simplified the
44144        logic about when to call setUseSecureKeyboardEntry by using the value of
44145        m_useSecureKeyboardEntryWhenActive.
44146        (WebCore::FramePrivate::FramePrivate): Initialize m_useSecureKeyboardEntryWhenActive.
44147        * page/Frame.h: Made setSecureKeyboardEntry private and renamed it to
44148        setUseSecureKeyboardEntry, removed isSecureKeyboardEntry, and
44149        added a public setUseSecureKeyboardEntryWhenActive.
44150        * page/FramePrivate.h: Added m_useSecureKeyboardEntryWhenActive.
44151        * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry): Added an assertion,
44152        and removed isSecureKeyboardEntry().
44153
44154        * page/FrameView.h: Added updateControlTints.
44155        * page/FrameView.cpp: (WebCore::FrameView::updateControlTints): Added. Code was moved
44156        here from setIsActive for two reasons: (1) it makes more sense in the view class, and
44157        (2) it needs to be called at the appropriate time for AppKit, not when active changes.
44158
44159        * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isFocused): Added an isActive
44160        check here to match the logic in the implementation of the CSS pseudo-state.
44161        * rendering/RenderThemeMac.mm:
44162        (WebCore::RenderThemeMac::updateFocusedState): Use the isFocused function instead of
44163        repeating the logic here. Removed the "need to add a key window test here" comment.
44164        (WebCore::RenderThemeMac::controlSupportsTints): Added a comment about the NSCell
44165        SPI that's related to the _windowChangedKeyState method we now use in WebHTMLView.
44166
441672007-04-16  Darin Adler  <darin@apple.com>
44168
44169        Reviewed by John Sullivan.
44170
44171        - fix http://bugs.webkit.org/show_bug.cgi?id=13227
44172          StringImpl::isLower incorrectly assumes islower returns 1 (it can return any non-0)
44173
44174        * platform/StringImpl.cpp:
44175        (WebCore::StringImpl::isLower): Based on test application results, changed to use &&
44176        instead of trying to use & to avoid branches. Use U16_NEXT so we can handle characters
44177        outside the BMP. Improved comments.
44178        (WebCore::StringImpl::lower): Improved comments.
44179        (WebCore::equalIgnoringCase): Changed to use && instead of trying to use & to avoid
44180        branches. Improved comments. Added an assertion about the assumption we're
44181        making that characters in the char* are all ASCII.
44182
441832007-04-13  David Kilzer  <ddkilzer@webkit.org>
44184
44185        Patch and review by hyatt.  Testing and landing by ddkilzer.
44186
44187        <rdar://problem/5078866>
44188        tables don't inherit text-align (in strict mode; they're not supposed to in quirks mode)
44189
44190        Test: fast/css/table-text-align-quirk.html
44191              fast/css/table-text-align-strict.html
44192
44193        Previous commit (r20731) removed the wrong property from WebCore/css/html4.css.  However,
44194        when the correct property was removed, it caused tables to inherit alignment properties
44195        from tags like <center> and <div align="center">.  This is fixed in
44196        WebCore::CSSStyleSelector::adjustRenderStyle() by special-casing tables to reset the
44197        text-align property.
44198
44199        * css/CSSComputedStyleDeclaration.cpp:
44200        (WebCore::valueForTextAlign): Renamed KHTML_CENTER, KHTML_LEFT and KHTML_RIGHT to
44201        WEBKIT_CENTER, WEBKIT_LEFT and WEBKIT_RIGHT.
44202        * css/cssparser.cpp:
44203        (WebCore::CSSParser::parseValue): Ditto.
44204        * css/cssstyleselector.cpp:
44205        (WebCore::CSSStyleSelector::adjustRenderStyle): Tables should not support -webkit-center,
44206        -webkit-left or -webkit-right values for text-align, so reset them back to auto.
44207        * css/html4.css: Removed "text-align: -webkit-auto;" property from tables selector.  It
44208        was previously added to css/quirks.css in r20731.
44209        * rendering/RenderBlock.cpp:
44210        (WebCore::RenderBlock::determineHorizontalPosition): Renamed KHTML_* to WEBKIT_*.
44211        * rendering/RenderBox.cpp:
44212        (WebCore::RenderBox::calcHorizontalMargins): Ditto.
44213        * rendering/RenderFlow.cpp:
44214        (WebCore::RenderFlow::caretRect): Ditto.
44215        * rendering/RenderStyle.h: Ditto.
44216        (WebCore::):
44217        * rendering/bidi.cpp:
44218        (WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
44219
442202007-04-12  Brady Eidson  <beidson@apple.com>
44221
44222        Reviewed by Black Sheep
44223
44224        <rdar://problem/4664154> and http://bugs.webkit.org/show_bug.cgi?id=3546
44225
44226        When you click on a link that opens in a new window from within gmail, they first create a new window 
44227        with an empty URL, then immediately document.write() into the window to schedule a redirect.
44228
44229        Since the initial page doesn't have a URL associated with it, a history item never gets created.  The 
44230        reasonable solution?  To actually create the history item after the redirect (in updateHistoryForInternalLoad)
44231
44232        * loader/FrameLoader.cpp:
44233        (WebCore::FrameLoader::addHistoryForCurrentLocation): Updates global and B/F history with a new history item
44234        (WebCore::FrameLoader::updateHistoryForStandardLoad): Call addHistoryForCurrentLocation
44235        (WebCore::FrameLoader::updateHistoryForInternalLoad): Call addHistoryForCurrentLocation if there is not already
44236          a current history item
44237        * loader/FrameLoader.h:
44238
442392007-04-12  Oliver Hunt  <oliver@apple.com>
44240
44241        Reviewed by Adam.
44242
44243        This fixes <rdar://problem/5060766> -- Frameset with 
44244        an empty frame crashes due to null document.  Debug
44245        builds hit the frame->document() assertion in 
44246        EventHandler::prepareMouseEvent
44247
44248        This null check seems necessary now, having run through 
44249        all the logic on the path to this crash it appears that
44250        we can't avoid this null check.  
44251
44252        * page/EventHandler.cpp:
44253        (WebCore::EventHandler::updateDragAndDrop):
44254
442552007-04-12  Justin Garcia  <justin.garcia@apple.com>
44256
44257        Reviewed by darin
44258        
44259        <rdar://problem/5131716> 
44260        Clicking just before a ToDo doesn't put the caret before the ToDo
44261        
44262        * rendering/RenderBlock.cpp:
44263        (WebCore::RenderBlock::positionForCoordinates):
44264        Consider clicks inside the blocks padding, instead of
44265        incorrectly sending them to the position before the block.
44266
442672007-04-12  John Sullivan  <sullivan@apple.com>
44268
44269        Reviewed by Anders
44270
44271        - WebCore part of fix for:
44272        <rdar://problem/5128697> REGRESSION: At least one PDF context menu item isn't appearing on Leopard
44273
44274        * platform/ContextMenuItem.h:
44275        (WebCore::):
44276        add two PDF-related context menu items to enum to keep it in sync with WebKit
44277
44278        * platform/ContextMenu.cpp:
44279        (WebCore::ContextMenu::checkOrEnableIfNeeded):
44280        add the new context menu items to the do-nothing case of a big switch statement
44281
442822007-04-12  Simon Hausmann  <hausmann@kde.org>
44283
44284        Reviewed by Zack.
44285
44286        Fixed drawing of justified text in the Qt port.
44287
44288        * platform/qt/FontQt.cpp:
44289        (Font::drawGlyphs):
44290
442912007-04-11  Oliver Hunt  <oliver@apple.com>
44292
44293        Reviewed by Maciej.
44294
44295        Adding RetainPtr to the many global obj-c pointers we use in
44296        C/C++ methods.  This is necessary to prevent GC from collecting
44297        globals we want to keep around.
44298
44299        We use RetainPtr in obj-c++ and c++ files, and CFRetain/Release in pure
44300        obj-c.
44301
44302        Also made the Pasteboard::m_pasteboard a RetainPtr although it
44303        shouldn't be necessary as the only NSPasteboard instances that 
44304        should ever be inserted are the system clipboard and dragging 
44305        pasteboard.  Neither of which should ever be collected.
44306
44307        * page/mac/WebCoreFrameBridge.mm:
44308        (_getPreSmartSet):
44309        (_getPostSmartSet):
44310        * platform/Pasteboard.h:
44311        * platform/graphics/mac/ColorMac.mm:
44312        (WebCore::nsColor):
44313        * platform/graphics/mac/GraphicsContextMac.mm:
44314        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
44315        * platform/mac/FontDataMac.mm:
44316        (WebCore::webFallbackFontFamily):
44317        * platform/mac/PasteboardMac.mm:
44318        (WebCore::writableTypesForURL):
44319        (WebCore::writableTypesForImage):
44320        (WebCore::Pasteboard::clear):
44321        (WebCore::Pasteboard::writeSelection):
44322        (WebCore::Pasteboard::writeURL):
44323        (WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
44324        (WebCore::Pasteboard::writeImage):
44325        (WebCore::Pasteboard::canSmartReplace):
44326        (WebCore::Pasteboard::plainText):
44327        (WebCore::Pasteboard::documentFragment):
44328
443292007-04-11  Mitz Pettel  <mitz@webkit.org>
44330
44331        Reviewed by Dave Hyatt.
44332
44333        - fix http://bugs.webkit.org/show_bug.cgi?id=11362
44334          Native popup with size="1" wraps options
44335
44336        Test: fast/forms/menulist-option-wrap.html
44337
44338        * css/html4.css: Added white-space declaration for select[size="0"] and
44339        select[size="1"]. Added border-radius declaration for select.
44340
443412007-04-11  Darin Fisher  <darin@chromium.org>
44342
44343        Reviewed by Maciej.
44344
44345        Add a Frame pointer to ChromeClient methods:
44346        http://bugs.webkit.org/show_bug.cgi?id=13127
44347
44348        * loader/FrameLoader.cpp:
44349        (WebCore::FrameLoader::createWindow):
44350        * page/Chrome.cpp:
44351        (WebCore::Chrome::createWindow):
44352        (WebCore::Chrome::createModalDialog):
44353        * page/Chrome.h:
44354        * page/ChromeClient.h:
44355        * page/ContextMenuController.cpp:
44356        (WebCore::openNewWindow):
44357        * platform/graphics/svg/SVGImageEmptyClients.h:
44358        (WebCore::SVGEmptyChromeClient::createWindow):
44359        (WebCore::SVGEmptyChromeClient::createModalDialog):
44360
443612007-04-11  Brady Eidson  <beidson@apple.com>
44362
44363        Reviewed by Ada
44364
44365        <rdar://problem/5080987> - Crash in DocumentLoader::frameLoader() const
44366
44367        This was free nil checking lost during the ObjC -> C++ conversion
44368
44369        * loader/FrameLoader.cpp:
44370        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Null check the DocumentLoader
44371
443722007-04-11  Justin Garcia  <justin.garcia@apple.com>
44373
44374        Reviewed by harrison
44375
44376        <rdar://problem/5126166> 
44377        Deleting selection starting at before ToDo checkbox to end of line, inserts a BR in the subsequent ToDo
44378        
44379        If a selection ends in a table cell, we shouldn't perform
44380        a merge after deleting that selection.  We have code in
44381        place to prevent those merges, but it failed here.
44382        
44383        It fails because the end of the selection was [tableCell, 0],
44384        (normally not a valid VisiblePosition, but valid here
44385        because the table cell is empty).  We prevent the merge
44386        if the node of the position at the end of the selection 
44387        has an enclosingTableCell.  Even though [tableCell, 0] has 
44388        an enclosing table cell, the node tableCell doesn't, so 
44389        the check fails.
44390        
44391        Fixed this by changing enclosingTableCell to take in
44392        a position, instead of a node.  The other enclosing element
44393        getters should be changed in this way as well.
44394
44395        * editing/DeleteSelectionCommand.cpp:
44396        (WebCore::DeleteSelectionCommand::initializePositionData):
44397        Call the new enclosingTableCell.
44398        * editing/ReplaceSelectionCommand.cpp:
44399        (WebCore::ReplaceSelectionCommand::shouldMerge): Ditto.
44400        * editing/htmlediting.cpp:
44401        (WebCore::enclosingTableCell): Take in a position instead
44402        of a node.
44403        * editing/htmlediting.h:
44404
444052007-04-12  Mark Rowe  <mrowe@apple.com>
44406
44407        Qt build fix.
44408
44409        * WebCore.pro:
44410        * editing/qt/EditorQt.cpp:
44411        (WebCore::Editor::markBadGrammar):
44412        * history/qt/CachedPageQt.cpp: Added.
44413        (WebCore::CachedPage::close):
44414        * history/qt/PageCacheQt.cpp: Removed.
44415
444162007-04-11  Brady Eidson  <beidson@apple.com>
44417
44418        Reviewed by Antti
44419
44420        <rdar://problem/5125648> and http://bugs.webkit.org/show_bug.cgi?id=13326
44421
44422        Crash opening a link in a new window from Gmail
44423
44424        Problem here is that the currentHistoryItem in the new window is null.  This *shouldn't* be the case, 
44425        and is the cause of a very long standing bug - 
44426        http://bugs.webkit.org/show_bug.cgi?id=3546 - Can't go back to first page in new window opened from gmail
44427
44428        For now, adding a null check prevents this crash and restores the original, long standing regression
44429 
44430        * loader/FrameLoader.cpp:
44431        (WebCore::FrameLoader::updateHistoryForInternalLoad): NULL check
44432
444332007-04-11  Adam Roben  <aroben@apple.com>
44434
44435        Reviewed by Anders.
44436
44437        Made image document copying more cross-platform.
44438
44439        All layout tests pass.
44440
44441        * editing/Editor.cpp:
44442        (WebCore::imageNodeFromImageDocument): Added.
44443        (WebCore::Editor::canCopy): Called imageNodeFromImageDocument.
44444        (WebCore::Editor::copy): Ditto.
44445        (WebCore::Editor::copyImage): Updated for changes to Pasteboard.
44446        * platform/Pasteboard.h: Made writeImage more general, which allowed
44447        getting rid of its second incarnation.
44448        * platform/gdk/TemporaryLinkStubs.cpp:
44449        * platform/mac/PasteboardMac.mm:
44450        (WebCore::Pasteboard::writeImage): Collapsed logic from the two
44451        writeImage methods into one.
44452        (Pasteboard::writeImage): Updated for Pasteboard changes.
44453        * platform/qt/PasteboardQt.cpp:
44454        (WebCore::Pasteboard::writeImage): Ditto.
44455
444562007-04-11  Darin Adler  <darin@apple.com>
44457
44458        * css/CSSValueKeywords.in: Fix a comment.
44459
444602007-04-09  Justin Garcia  <justin.garcia@apple.com>
44461
44462        Reviewed by harrison
44463        
44464        <rdar://problem/4932260> 
44465        Invalid attributed string for attachment range obtained via AXPreviousWordStartTextMarkerForTextMarker
44466        
44467        By default, text iterators don't emit anything for replaced 
44468        elements.  Boundary finding code works around this but has 
44469        bugs: replaced elements act as sentence boundaries and the 
44470        above bug, where previousBoundary moves past the start of a 
44471        word if there is a replaced element just before it. This 
44472        patch fixes these issues by treating replaced elements as 
44473        punctuation for boundary finding.
44474
44475        * editing/TextIterator.cpp:
44476        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
44477        Set m_pastStartNode, the node after (in a reverse pre-order traversal) the 
44478        last one that should be processed.
44479        (WebCore::SimplifiedBackwardsTextIterator::advance):
44480        Stop at m_pastStartNode.
44481        Iterate over nodes in reverse pre-order (TextIterator traverses in 
44482        pre-orer). This makes knowing when to emit characters after nodes vs. when
44483        to emit characters before nodes easier.
44484        Remove the special case for entering a new block, emitting characters 
44485        after nodes can now be handled generally, in handleNonTextNode(), because
44486        of the way we traverse.
44487        Set m_handledChildren to false every iteration since we now do traverse in 
44488        reverse pre-order.
44489        (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement):
44490        Emit a comma for replaced elements.  We only use this kind of iterator 
44491        for finding boundaries, so we can do this unconditionally.
44492        (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
44493        Don't use emitNewline, instead specify where the newline should be positioned.
44494        A node is handled before its children, so characters emitted here should 
44495        be positioned after the node, not before it.
44496        (WebCore::SimplifiedBackwardsTextIterator::exitNode): 
44497        Don't use emitNewline, instead specify where the newline should be positioned.
44498        (WebCore::CharacterIterator::CharacterIterator): 
44499        Create a TextIterator that emits content for replaced elements, if requested.
44500        * editing/TextIterator.h:
44501        * editing/visible_units.cpp:
44502        (WebCore::previousBoundary): 
44503        Removed replaced element handling code.
44504        If the start of the chunk that contained the boundary was in a non-text
44505        node, then the boundary is not necessarily in that node.  Particularly
44506        because it is only the end of the chunk that is guaranteed to be a valid
44507        position in those cases.  We must iterate backwards by character from 
44508        the end of the chunk to find the boundary.
44509        (WebCore::nextBoundary): Removed replaced element handling code.
44510
445112007-04-10  Brady Eidson  <beidson@apple.com>
44512
44513        Reviewed by Darin
44514
44515        <rdar://problem/4887095> - PageCache and PageState should be combined
44516
44517        These two objects are a relic of when the PageCache was split between WebCore and WebKit
44518        It just makes good sense to combine them now, and the new object is more appropriately
44519        called "CachedPage"
44520
44521        This patch is vast in scope, but simple in depth - anywhere a PageCache or PageState object 
44522        was used has been adjusted to use a CachedPage object instead.  The most notable change is
44523        that HistoryItem - which always used to have a PageCache object which may or may not have 
44524        had a PageState - now may or may not have a CachedPage.  This actually simplifies the 
44525        HistoryItem code a bit while making the role of CachedPage much more clear.
44526
44527        * WebCore.exp:
44528        * WebCore.xcodeproj/project.pbxproj:
44529
44530        * history/BackForwardList.cpp:
44531        (WebCore::BackForwardList::addItem):
44532        (WebCore::BackForwardList::setCapacity):
44533        (WebCore::BackForwardList::setPageCacheSize):
44534        (WebCore::BackForwardList::clearPageCache):
44535        (WebCore::BackForwardList::close):
44536
44537        * history/PageCache.cpp: Removed.
44538        * history/PageCache.h: Removed.
44539        * page/PageState.cpp: Removed.
44540        * page/PageState.h: Removed.
44541        * history/CachedPage.cpp: Added.
44542        (WebCore::CachedPage::create):
44543        (WebCore::CachedPage::CachedPage):
44544        (WebCore::CachedPage::~CachedPage):
44545        (WebCore::CachedPage::restore):
44546        (WebCore::CachedPage::clear):
44547        (WebCore::CachedPage::setDocumentLoader):
44548        (WebCore::CachedPage::documentLoader):
44549        (WebCore::CachedPage::setTimeStamp):
44550        (WebCore::CachedPage::setTimeStampToNow):
44551        (WebCore::CachedPage::timeStamp):
44552        * history/CachedPage.h: Added.
44553        (WebCore::CachedPage::document):
44554        (WebCore::CachedPage::mousePressNode):
44555        (WebCore::CachedPage::URL):
44556
44557        * history/HistoryItem.cpp:
44558        (WebCore::HistoryItem::HistoryItem):
44559        (WebCore::HistoryItem::setCachedPage):
44560        (WebCore::HistoryItem::setURL):
44561        (WebCore::HistoryItem::alwaysAttemptToUseCachedPage):
44562        (WebCore::HistoryItem::setAlwaysAttemptToUseCachedPage):
44563        (WebCore::HistoryItem::cachedPage):
44564        (WebCore::cachedPagesPendingRelease):
44565        (WebCore::HistoryItem::releaseCachedPagesOrReschedule):
44566        (WebCore::HistoryItem::releaseAllPendingCachedPages):
44567        (WebCore::HistoryItem::scheduleCachedPageForRelease):
44568        * history/HistoryItem.h:
44569        * history/mac/HistoryItemMac.mm:
44570
44571        * history/HistoryItemTimer.cpp:
44572        (WebCore::HistoryItemTimer::HistoryItemTimer):
44573        (WebCore::HistoryItemTimer::callReleaseCachedPagesOrReschedule):
44574        * history/HistoryItemTimer.h:
44575
44576        * history/mac/PageCacheMac.mm: Removed.
44577        * history/mac/CachedPageMac.mm: Added.
44578        (WebCore::CachedPage::close):
44579        (WebCore::CachedPage::setDocumentView):
44580        (WebCore::CachedPage::documentView):
44581
44582        * loader/DocumentLoader.cpp:
44583        (WebCore::DocumentLoader::DocumentLoader):
44584        (WebCore::DocumentLoader::loadFromCachedPage):
44585        (WebCore::DocumentLoader::setLoadingFromCachedPage):
44586        (WebCore::DocumentLoader::isLoadingFromCachedPage):
44587        * loader/DocumentLoader.h:
44588
44589        * loader/FrameLoader.cpp:
44590        (WebCore::FrameLoader::provisionalLoadStarted):
44591        (WebCore::FrameLoader::commitProvisionalLoad):
44592        (WebCore::FrameLoader::transitionToCommitted):
44593        (WebCore::FrameLoader::open):
44594        (WebCore::FrameLoader::startLoading):
44595        (WebCore::FrameLoader::receivedMainResourceError):
44596        (WebCore::FrameLoader::opened):
44597        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
44598        (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
44599        (WebCore::FrameLoader::cachePageToHistoryItem):
44600        (WebCore::FrameLoader::createHistoryItem):
44601        (WebCore::FrameLoader::purgePageCache):
44602        (WebCore::FrameLoader::invalidateCurrentItemCachedPage):
44603        (WebCore::FrameLoader::loadItem):
44604        (WebCore::FrameLoader::updateHistoryForStandardLoad):
44605        (WebCore::FrameLoader::updateHistoryForClientRedirect):
44606        (WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
44607        (WebCore::FrameLoader::updateHistoryForReload):
44608        (WebCore::FrameLoader::updateHistoryForInternalLoad):
44609        (WebCore::FrameLoader::updateHistoryForCommit):
44610        * loader/FrameLoader.h:
44611        * loader/FrameLoaderClient.h:
44612
44613        * page/mac/WebCoreFrameBridge.h: Got rid of unused WebCorePageCacheStateKey
44614        * page/mac/WebCoreFrameBridge.mm: Ditto
44615
44616        * platform/graphics/svg/SVGImage.cpp:
44617        * platform/graphics/svg/SVGImageEmptyClients.h: Update to reflect the new names
44618        (WebCore::SVGEmptyFrameLoaderClient::loadProvisionalItemFromCachedPage):
44619        (WebCore::SVGEmptyFrameLoaderClient::invalidateCurrentItemCachedPage):
44620        (WebCore::SVGEmptyFrameLoaderClient::loadedFromCachedPage):
44621        (WebCore::SVGEmptyFrameLoaderClient::clearLoadingFromCachedPage):
44622        (WebCore::SVGEmptyFrameLoaderClient::isLoadingFromCachedPage):
44623        (WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromCachedPage):
44624        (WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToCachedPage):
44625
446262007-04-10  Antti Koivisto  <antti@apple.com>
44627
44628        Reviewed by Hyatt.
44629
44630        Fix <rdar://5057686> 
44631        Flex box layout example hangs in WebCore::RenderFlexibleBox::allowedChildFlex
44632        
44633        Forcibly distribute remaining pixels if the algorithm is not advancing.
44634
44635        * rendering/RenderFlexibleBox.cpp:
44636        (WebCore::RenderFlexibleBox::layoutHorizontalBox):
44637        (WebCore::RenderFlexibleBox::layoutVerticalBox):
44638
446392007-04-11  Mark Rowe  <mrowe@apple.com>
44640
44641        Build fix.
44642
44643        * bridge/mac/WebCoreAXObject.mm:
44644        (-[WebCoreAXObject accessibilityDescription]):
44645
446462007-04-10  Patti Hoa <patti@apple.com>
44647
44648        Reviewed by Justin Garcia.
44649
44650        <rdar://problem/5122276> Allow focused frame to fire off notification
44651        Improve accessibility support for Mail WebView embedded Notes.
44652
44653        * bridge/mac/AXObjectCacheMac.mm:
44654        (WebCore::AXObjectCache::postNotification):
44655        The focused document with the selection change should fire the selection changed notification, not the top level document
44656        * bridge/mac/WebCoreAXObject.mm:
44657        (-[WebCoreAXObject accessibilityDescription]):
44658        Allow the name attribute of the html body to be used as the accessibility description
44659
446602007-04-09  Geoffrey Garen  <ggaren@apple.com>
44661
44662        Reviewed by Maciej Stachowiak.
44663        
44664        Support for fixing fast/forms/textarea-paste-newline.html.
44665        
44666        Changed clients to use new preference specifying whether a Page should 
44667        allow pasting through the DOM API, instead of a global flag.
44668
44669        Removed old behavior of always allowing DOM paste in debug builds. In 
44670        light of the new preference-based API, that behavior makes no sense anymore. 
44671        Instead, developers who want to test paste inside Safari can set the 
44672        preference for themselves.
44673
44674        * WebCore.exp:
44675        * editing/CommandByName.cpp: Removed crazy hack to keep an identically 
44676        named but invalid copy of the global "pate allowed" flag in this file.
44677        (WebCore::Frame::enabledPaste):
44678        * editing/JSEditor.cpp: Removed "always allow" behavior for debug builds.
44679        (WebCore::JSEditor::queryCommandSupported):
44680        * editing/JSEditor.h:
44681        * page/Settings.cpp:
44682        (WebCore::Settings::setDOMPasteAllowed):
44683        * page/Settings.h:
44684        (WebCore::Settings::isDOMPasteAllowed):
44685        * rendering/RenderTreeAsText.cpp:
44686        (WebCore::externalRepresentation): Removed crazy hack to allow DOM paste
44687        after this function has been called.
44688
446892007-04-10  John Sullivan  <sullivan@apple.com>
44690
44691        Reviewed by Tim Hatcher
44692
44693        - fixed <rdar://problem/4859132> Grammar must always be checked in entire-sentence chunks, 
44694          and shouldn't show markers for current sentence
44695
44696        * editing/Editor.h:
44697        add markBadGrammar, now distinct from markMisspellings
44698
44699        * editing/mac/EditorMac.mm:
44700        (WebCore::Editor::markMisspellingsAfterTypingToPosition):
44701        call markMisspellings on one word, and markBadGrammar on entire sentence
44702        (WebCore::markMisspellingsOrBadGrammar):
44703        new static function, extracted from markMisspellings
44704        (WebCore::Editor::markMisspellings):
44705        now calls extracted function
44706        (WebCore::Editor::markBadGrammar):
44707        new method, calls extracted function
44708
44709        * page/Frame.cpp:
44710        (WebCore::Frame::respondToChangedSelection):
44711        update grammar markers for entire new and old sentences
44712
447132007-04-09  Anders Carlsson  <andersca@apple.com>
44714
44715        Reviewed by John.
44716
44717        * WebCore.exp:
44718        Add __ZNK7WebCore11FrameLoader10isCompleteEv.
44719        
447202007-04-09  Brady Eidson  <beidson@apple.com>
44721
44722        Reviewed by Darin
44723
44724        Fixes <rdar://4921797> and http://bugs.webkit.org/show_bug.cgi?id=12005
44725
44726        The original regression was to claim that more loads were the result of a "user gesture" than really
44727        were.  A lot of the ways a frame load could be kicked off didn't properly set up this flag, and it 
44728        wasn't properly propagated and respected where it should've been.
44729
44730        This patch cleans much of that up.  One loose end is the "treatAsUserGesture" flag which is a stop
44731        gap measure to keep "slow redirects" working to create a new history item.  In the future, we need
44732        to cleanup the meaning and use of "userGesture" and "lockHistory."  This includes integrating them 
44733        in to FrameLoadRequest and being very clear of what their meaning actually is at different stages of
44734        the Frame load process.
44735
44736        * dom/Document.cpp:
44737        (WebCore::Document::processHttpEquiv): Pass only the delay for the redirect
44738
44739        * html/HTMLAnchorElement.cpp:
44740        (WebCore::HTMLAnchorElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
44741
44742        * ksvg2/svg/SVGAElement.cpp:
44743        (WebCore::SVGAElement::defaultEventHandler): Pass "lockHistory" false, "userGesture" true
44744
44745        * loader/FrameLoader.cpp:
44746        (WebCore::ScheduledRedirection::ScheduledRedirection): Figure "lockHistory" and "userGesture" from the 
44747          delay here, instead of at 3 other different sites that call this method
44748        (WebCore::FrameLoader::changeLocation): Set userGesture correctly
44749        (WebCore::FrameLoader::urlSelected): Propagate userGesture down
44750        (WebCore::FrameLoader::requestFrame): 
44751        (WebCore::FrameLoader::receivedFirstData):
44752        (WebCore::FrameLoader::scheduleRedirection): Pass only the delay here
44753        (WebCore::FrameLoader::redirectionTimerFired): Set userGesture correctly
44754        (WebCore::FrameLoader::load):
44755        (WebCore::FrameLoader::updateHistoryForInternalLoad): Insteading of asserting we aren't a redirect,
44756          handle the case where we *are* a redirect by updating the previous history item
44757        * loader/FrameLoader.h:
44758
447592007-04-09  Anders Carlsson  <andersca@apple.com>
44760
44761        Reviewed by Darin.
44762
44763        <rdar://problem/5120801> 
44764        http://bugs.webkit.org/show_bug.cgi?id=13247
44765        Closing a page during slow cloning causes crash in setJSStatusBarText (13247)
44766
44767        * bindings/js/kjs_window.cpp:
44768        (KJS::Window::put):
44769        Return early if m_frame is null. A closed window only has one property, "closed" 
44770        so no properties should be settable in that case.
44771
447722007-04-09  Andrew Wellington  <proton@wiretapped.net>
44773
44774        Reviewed by Justin Garcia.
44775        
44776        Fix for http://bugs.webkit.org/show_bug.cgi?id=12959
44777        "REGRESSION: Edit -> Copy not enabled on standalone images"
44778
44779        * dom/Document.h: Add support for determining if a document is an image
44780        (WebCore::Document::isImageDocument):
44781        * editing/Editor.cpp:
44782        (WebCore::Editor::canCopy): Image documents are copyable
44783        (WebCore::Editor::copy): If copying an image document, call appropriate pasteboard methods
44784        * loader/ImageDocument.h:
44785        (WebCore::ImageDocument::isImageDocument): Override to return true for image documents
44786        * platform/Pasteboard.h: Add new writeImage function to pasteboard
44787        * platform/mac/PasteboardMac.mm:
44788        (WebCore::Pasteboard::writeImage): Add writeImage implementation that takes Node and URL
44789        * platform/qt/PasteboardQt.cpp:
44790        (WebCore::Pasteboard::writeImage): Stub for Qt implementation of pasteboard
44791
447922007-04-08  Oliver Hunt  <oliver@apple.com>
44793
44794        rs=Adam.
44795
44796        Add ASSERT(selectedRange) to previous change
44797
44798        * platform/mac/PasteboardMac.mm:
44799        (WebCore::Pasteboard::writeSelection):
44800
448012007-04-08  Oliver Hunt  <oliver@apple.com>
44802
44803        rs=Adam.
44804
44805        Fix minor error when writing selection to pasteboard.
44806        This shouldn't have an effect as selectedRange should be the
44807        selected range from source frame, however this is safer.
44808
44809        * platform/mac/PasteboardMac.mm:
44810        (WebCore::Pasteboard::writeSelection):
44811
448122007-04-08  David Hyatt  <hyatt@apple.com>
44813
44814        Fix mouseover/out failing layout tests.
44815
44816        Reviewed by aroben
44817
44818        * page/EventHandler.cpp:
44819        (WebCore::EventHandler::handleMouseMoveEvent):
44820        (WebCore::EventHandler::updateMouseEventTargetNode):
44821        (WebCore::EventHandler::dispatchMouseEvent):
44822        * page/EventHandler.h:
44823
448242007-04-08  Oliver Hunt  <oliver@apple.com>
44825
44826        Reviewed by Adam.
44827
44828        Fix for <rdar://problem/5113621> REGRESSION: Dragging PDF as image does not give any feedback
44829
44830        If we fail when attempting to create a drag image for a dragged
44831        image, we fall back to the appropriate icon.
44832
44833        * page/DragController.cpp:
44834        (WebCore::DragController::doImageDrag):
44835
448362007-04-08  Adam Roben  <aroben@apple.com>
44837
44838        Reviewed by Oliver.
44839
44840        Bestowed the gift of -webkit-dashboard-region upon all platforms, since
44841        there's nothing Mac-specific about it other than the name. This also
44842        allowed me to get rid of FrameViewMac.mm.
44843
44844        Removed a lot of #if PLATFORM(MAC):
44845
44846        * css/CSSComputedStyleDeclaration.cpp:
44847        (WebCore::):
44848        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44849        * css/CSSPrimitiveValue.cpp:
44850        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
44851        (WebCore::CSSPrimitiveValue::cleanup):
44852        (WebCore::CSSPrimitiveValue::cssText):
44853        * css/CSSPrimitiveValue.h:
44854        (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
44855        (WebCore::CSSPrimitiveValue::):
44856        * css/cssparser.cpp:
44857        (WebCore::CSSParser::parseValue):
44858        (WebCore::CSSParser::parseDashboardRegions):
44859        * css/cssparser.h:
44860        * css/cssstyleselector.cpp:
44861        (WebCore::CSSStyleSelector::applyProperty):
44862        * dom/Document.cpp:
44863        (WebCore::Document::Document):
44864        * dom/Document.h:
44865        * page/Frame.cpp:
44866        (WebCore::Frame::paint):
44867        * page/Frame.h:
44868        * page/FrameView.cpp:
44869        (WebCore::FrameView::layout):
44870        (WebCore::FrameView::updateDashboardRegions): Moved from FrameViewMac.mm.
44871        * page/FrameView.h:
44872        * page/qt/FrameQt.cpp:
44873        (WebCore::Frame::dashboardRegionsChanged): Stubbed out.
44874        * platform/gdk/FrameGdk.cpp:
44875        (WebCore::Frame::dashboardRegionsChanged): Ditto.
44876        * rendering/RenderLayer.cpp:
44877        (WebCore::RenderLayer::scrollToOffset):
44878        (WebCore::RenderLayer::setHasHorizontalScrollbar):
44879        (WebCore::RenderLayer::setHasVerticalScrollbar):
44880        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
44881        * rendering/RenderObject.cpp:
44882        (WebCore::RenderObject::setStyle):
44883
44884        * WebCore.xcodeproj/project.pbxproj: Removed FrameViewMac.mm.
44885        * bridge/mac/FrameViewMac.mm: Removed.
44886
448872007-04-08  Mark Rowe  <mrowe@apple.com>
44888
44889        Qt build fix.
44890
44891        * platform/qt/TemporaryLinkStubs.cpp:
44892
448932007-04-06  Geoffrey Garen  <ggaren@apple.com>
44894
44895        Reviewed by Beth Dakin.
44896        
44897        Fixed one more case of <rdar://problem/5112273> REGRESSION(TOT): 
44898        Reproducible crash loading an old version of amazon.com as a web archive
44899
44900        * bindings/js/JSXMLHttpRequest.cpp:
44901        (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
44902
449032007-04-06  Oliver Hunt  <oliver@apple.com>
44904
44905        Reviewed by Adam.
44906
44907        Fix MouseEvent so it's possible to distinguish between
44908        a MouseMouseEvent with NoButton down, and a move with
44909        LeftButton down.  It would be nice if the DOM allowed 
44910        for NoButton to exist, but it doesn't so this is necessary.
44911
44912        * dom/EventTargetNode.cpp:
44913        (WebCore::EventTargetNode::dispatchMouseEvent):
44914        * dom/MouseEvent.cpp:
44915        (WebCore::MouseEvent::MouseEvent):
44916        (WebCore::MouseEvent::initMouseEvent):
44917        * dom/MouseEvent.h:
44918        (WebCore::MouseEvent::noButton):
44919
449202007-04-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
44921
44922        Not reviewed - gdk build fix.
44923
44924        * platform/gdk/MouseEventGdk.cpp:
44925
449262007-04-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
44927
44928        Reviewed by darin.
44929
44930        Coverity fix. Coverity says:
44931        "Event var_deref_op: Variable "info_ptr" tracked as NULL was dereferenced."
44932
44933        * platform/image-decoders/png/pngrutil.c:
44934        (png_handle_gAMA):
44935
449362007-04-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
44937
44938        Reviewed by darin.
44939
44940        Coverity fix. Coverity says:
44941        "Event var_deref_model: Variable "(this)->clientptr" tracked as NULL was passed to a function that dereferences it."
44942
44943        * platform/image-decoders/gif/GIFImageReader.cpp:
44944        (GIFImageReader::read):
44945
449462007-04-06  David Hyatt  <hyatt@apple.com>
44947
44948        Fix more of the layout test failures caused by fixing the slider layout test failure (sigh).  clear()
44949        needs to null out the capturingMouseEventsNode in the case where a mousedown or move while captured
44950        causes a navigation to another page.
44951
44952        * page/EventHandler.cpp:
44953        (WebCore::EventHandler::clear):
44954        (WebCore::EventHandler::handleMouseReleaseEvent):
44955
449562007-04-06  David Hyatt  <hyatt@apple.com>
44957
44958        Fix failing slider layout test.  Don't clear the subframe capture unless we really were capturing on a
44959        subframe.
44960
44961        Reviewed by adele, darin
44962
44963        * page/EventHandler.cpp:
44964        (WebCore::EventHandler::handleMouseReleaseEvent):
44965
449662007-04-06  Beth Dakin  <bdakin@apple.com>
44967
44968        Reviewed by Geoff and Darin.
44969
44970        Fix for <rdar://problem/4875433> WebView underlines are too thick 
44971        when scaled small
44972
44973        When we have a small scale factor, we should follow the line-
44974        drawing code as if we were printing. Meaning, specifically, that we 
44975        should not round to device pixels and we should antialias.
44976
44977        * platform/graphics/cg/GraphicsContextCG.cpp:
44978        (WebCore::GraphicsContext::drawLineForText):
44979
449802007-04-06  Geoffrey Garen  <ggaren@apple.com>
44981
44982        Reviewed by Beth Dakin.
44983        
44984        Fixed <rdar://problem/5112273> REGRESSION(TOT): Reproducible crash loading 
44985        an old version of amazon.com as a web archive
44986        
44987        The problem was JavaScript executing inside a frame with a NULL document.
44988        It's probably a bug that the document was NULL, but we don't want a minor
44989        bug to be a crasher, and we don't want the DOM to depend on the implementation
44990        details of the JS bindings, so I added NULL checks.
44991
44992        * bindings/js/kjs_window.cpp: Call FrameLoader::completeURL instead of
44993        Document::completeURL, since FrameLoader::completeURL is safe against a
44994        NULL document.
44995        (KJS::Window::put):
44996        (KJS::WindowFunc::callAsFunction):
44997        (KJS::Location::put):
44998        (KJS::LocationFunc::callAsFunction):
44999
450002007-04-06  David Hyatt  <hyatt@apple.com>
45001
45002        Fix for bug 13274.  Rework mouse events so that subframe capturing works again.  Make sure
45003        everything just comes down through the top FrameView even when capturing is in effect.  Update
45004        scrollbar handling logic so that scrollbars receive events correctly while capturing is in
45005        effect.  Eliminate the notion of widget capture.  Fix mouse moves so that they only fire
45006        on the innermost hit frame.
45007
45008        Reviewed by olliej
45009
45010        * page/EventHandler.cpp:
45011        (WebCore::EventHandler::handleMouseDraggedEvent):
45012        (WebCore::subframeForTargetNode):
45013        (WebCore::EventHandler::handleMousePressEvent):
45014        (WebCore::EventHandler::handleMouseMoveEvent):
45015        (WebCore::EventHandler::handleMouseReleaseEvent):
45016        * page/EventHandler.h:
45017        * platform/PopupMenu.h:
45018        (WebCore::PopupMenu::scrollbarCapturingMouse):
45019        (WebCore::PopupMenu::setScrollbarCapturingMouse):
45020        * platform/ScrollBar.h:
45021        (WebCore::Scrollbar::handleMouseReleaseEvent):
45022        * platform/Widget.h:
45023        (WebCore::Widget::geometryChanged):
45024
450252007-04-06  Justin Garcia  <justin.garcia@apple.com>
45026
45027        Reviewed by john
45028
45029        <rdar://problem/5115601> 
45030        REGRESSION: Crash deleting a selection that starts in an editable table cell
45031        
45032        The selection starts at the start of an editable 
45033        root that's embedded in a non-editable ToDo (table).  
45034        Removing the selection removes all editable 
45035        VisiblePositions from the root.  Then, the creation 
45036        of mergeDestination fails, and using it causes a crash.
45037
45038        * editing/DeleteSelectionCommand.cpp:
45039        (WebCore::DeleteSelectionCommand::mergeParagraphs):
45040        Nil-check mergeDestination to avoid crashing and
45041        also insert a break in that case at m_upstreamStart, 
45042        so that we can create a valid mergeDestination and
45043        perform the merge.
45044        
45045        
450462007-04-06  Mitz Pettel  <mitz@webkit.org>
45047
45048        Reviewed by Oliver.
45049
45050        Eliminate PlatformMouseEvent::currentEvent.
45051
45052        No test possible (no change to functionality).
45053
45054        * page/EventHandler.cpp:
45055        (WebCore::EventHandler::handleDrag):
45056        * platform/PlatformMouseEvent.h:
45057        * platform/gdk/TemporaryLinkStubs.cpp:
45058        * platform/mac/PlatformMouseEventMac.mm:
45059        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
45060        * platform/qt/PlatformMouseEventQt.cpp:
45061        * platform/win/TemporaryLinkStubs.cpp:
45062
450632007-04-05  Oliver Hunt  <oliver@apple.com>
45064
45065        Reviewed by Maciej.
45066
45067        Fix for rdar://problem/4849948 -- JSCanvasRenderingContext2D::drawImage
45068        crashes when given invalid arguments.
45069
45070        JSCanvasRenderingContext2D frequently casts from JSValue* to JSObject*
45071        and then checks isObject *after* the cast.  JSObject::isObject is unsafe 
45072        if applied to a JSImmediate value (null, undefined, etc).  This patch 
45073        corrects the logic in a number of places by performing the isObject check
45074        before casting to JSObject.
45075
45076        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
45077        (WebCore::JSCanvasRenderingContext2D::drawImage):
45078        (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
45079        (WebCore::JSCanvasRenderingContext2D::createPattern):
45080
450812007-04-05  Adele Peterson  <adele@apple.com>
45082
45083        Reviewed by Oliver.
45084
45085        Fix for <rdar://problem/4965597> REGRESSION: mouseup doesn't fire for slider (causes it to always default to max)
45086
45087        Test: fast/forms/slider-mouse-events.html
45088
45089        * page/EventHandler.cpp: (WebCore::EventHandler::dispatchMouseEvent):
45090        Since the actual target node of the event can't be a shadow node, set the target node to the capturing node before adjusting it.
45091
450922007-04-05  Kevin McCullough  <kmccullough@apple.com>
45093
45094        Reviewed by Darin.
45095
45096        - Added reportLocalLoadFailed to FrameLoader to send an error to the console when
45097        calls to canLoad fail. 
45098
45099        * loader/Cache.cpp:
45100        (WebCore::Cache::requestResource):
45101        * loader/FrameLoader.cpp:
45102        (WebCore::FrameLoader::loadSubframe):
45103        (WebCore::FrameLoader::loadPlugin):
45104        (WebCore::FrameLoader::load):
45105        (WebCore::FrameLoader::reportLocalLoadFailed):
45106        * loader/FrameLoader.h:
45107        * loader/SubresourceLoader.cpp:
45108        (WebCore::SubresourceLoader::create):
45109
451102007-04-05  Adele Peterson  <adele@apple.com>
45111
45112        Reviewed by Maciej.
45113
45114        Add text-align: -webkit-auto for form controls.  Buttons already override this property to center their text.
45115
45116        * css/html4.css:
45117
451182007-04-05  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
45119
45120        Reviewed by rwlbuis.
45121
45122        Coverity fix. Coverity says:
45123        "Event var_deref_model: Variable "page" tracked as NULL was passed to a function that dereferences it."
45124
45125        * platform/Font.cpp:
45126        (WebCore::Font::glyphDataForCharacter):
45127
451282007-04-05  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
45129
45130        Reviewed by darin.
45131
45132        Coverity fix. Coverity says:
45133        "Event var_deref_model: Variable "unicode" tracked as NULL was passed to a 
45134        function that dereferences it."
45135
45136        * platform/DeprecatedString.cpp:
45137        (WebCore::DeprecatedString::DeprecatedString):
45138
451392007-04-05  Adele Peterson  <adele@apple.com>
45140
45141        Reviewed by Hyatt.
45142
45143        Fix for <rdar://problem/5113593> REGRESSION: Search fields in RSS pages don't show ibeam cursor
45144
45145        * css/html4.css: Set the cursor values explicitly for input, textarea (to auto), & select (to default).
45146
451472007-04-05  David Hyatt  <hyatt@apple.com>
45148
45149        Fix for <rdar://problem/5078866> tables should only reset text-align
45150        in quirks mode.
45151
45152        Reviewed by beth
45153
45154        * css/html4.css:
45155        * css/quirks.css:
45156
451572007-04-05  Adele Peterson  <adele@apple.com>
45158
45159        Fixing typo that's crashing.
45160
45161        * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
45162          Use evt instead of null variable k.
45163
451642007-04-05  Adele Peterson  <adele@apple.com>
45165
45166        Reviewed by Hyatt.
45167
45168        Fix for <rdar://problem/5021500> Cursor should stay as pointer when slider is being dragged
45169
45170        Don't set the selection ibeam cursor when there's a node that's capturing mouse events.
45171
45172        * page/EventHandler.cpp:
45173        (WebCore::selectCursor):
45174        (WebCore::EventHandler::handleMouseMoveEvent):
45175
451762007-04-05  Geoffrey Garen  <ggaren@apple.com>
45177
45178        Reviewed by Beth Dakin.
45179
45180        More clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT): 
45181        Reproducible crash loading an old version of amazon.com as a web archive
45182        
45183        Layout tests pass.
45184        
45185        Removed more superfluous document NULL checks. (Node::document() never 
45186        returns NULL, and it asserts as much.)
45187        
45188        Merged some duplicate editing code into a static inline function.
45189        
45190        * page/mac/WebCoreFrameBridge.mm:
45191        (updateRenderingForBindings): Removed superfluous static_cast.
45192
451932007-04-05  Adele Peterson  <adele@apple.com>
45194
45195        Reviewed by Darin.
45196
45197        A little cleanup from my last checkin.  Always check if an Event is really a MouseEvent or a KeyboardEvent
45198        before casting it.
45199
45200        * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
45201        * html/HTMLSelectElement.cpp:
45202        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
45203        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
45204        * html/HTMLTextFieldInnerElement.cpp:
45205        (WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
45206        (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
45207        * ksvg2/svg/SVGAElement.cpp: (WebCore::SVGAElement::defaultEventHandler):
45208        * page/ContextMenuController.cpp: (WebCore::ContextMenuController::handleContextMenuEvent):
45209        * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
45210        * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
45211
452122007-04-05  Geoffrey Garen  <ggaren@apple.com>
45213
45214        Reviewed by Beth Dakin.
45215        
45216        Some clean-up while fixing <rdar://problem/5112273> REGRESSION(TOT): 
45217        Reproducible crash loading an old version of amazon.com as a web archive
45218        
45219        Removed superfluous document NULL checks. (Node::document() never returns
45220        NULL, and it asserts as much.)
45221        
45222        Removed duplicate implementation of displayString.
45223        
45224        Layout tests pass.
45225
45226        * bindings/objc/DOMInternal.h:
45227        * bindings/objc/DOMInternal.mm:
45228        * html/HTMLGenericFormElement.cpp:
45229        (WebCore::HTMLGenericFormElement::supportsFocus):
45230        * html/HTMLPlugInElement.cpp:
45231        (WebCore::HTMLPlugInElement::createNPObject):
45232        * platform/ContextMenu.cpp:
45233        (WebCore::ContextMenu::checkOrEnableIfNeeded):
45234        * rendering/HitTestResult.cpp:
45235        (WebCore::displayString):
45236        * rendering/HitTestResult.h:
45237        * rendering/RenderLayer.cpp:
45238        (WebCore::RenderLayer::updateHoverActiveState):
45239
45240=== Safari-5522.6 ===
45241
452422007-04-05  Oliver Hunt  <oliver@apple.com>
45243
45244        Reviewed by Adam.
45245
45246        Fix rdar://problem/5030934 -- landscape PDFs embedded as an image are cut off
45247        also fixes scaling of pdf images
45248
45249        PDFDocumentImage was not accounting for page rotation in a number of places
45250
45251        * platform/graphics/cg/PDFDocumentImage.cpp:
45252        (WebCore::PDFDocumentImage::size):
45253          we need to account for rotation of the pdf image effecting our bounds
45254        (WebCore::PDFDocumentImage::draw):
45255          When compensating for flipped coords we need to use the correct rect for the 
45256          coordinate space.  We can't pass size() to CGContextDrawPDFDocument as it
45257          returns the rotated bounds now -- this is also save the old 
45258          FloatSize -> IntSize -> FloatSize conversions.
45259          
452602007-04-04  Alexey Proskuryakov  <ap@webkit.org>
45261
45262        Reviewed by Darin.
45263
45264        http://bugs.webkit.org/show_bug.cgi?id=13278
45265        REGRESSION: cannot change SELECT option
45266
45267        Test: fast/forms/option-change-single-selected.html
45268
45269        * html/HTMLSelectElement.cpp:
45270        (WebCore::HTMLSelectElement::setSelectedIndex): If multiple selection is not allowed, 
45271        be sure to deselect the previous option.
45272
452732007-04-04  Adele Peterson  <adele@apple.com>
45274
45275        Reviewed by Oliver.
45276
45277        Fix for <rdar://5105009> Prepare for fix to send mousedown and mouseup (but not click) events when right-clicking
45278
45279        * page/EventHandler.cpp: Don't ever send click events for right-clicks.
45280        (WebCore::EventHandler::handleMouseDoubleClickEvent):
45281        (WebCore::EventHandler::handleMouseReleaseEvent):
45282        
45283        Check that the mousedown and mouseup are not with the right button before performing default behavior.
45284        * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::defaultEventHandler):
45285        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
45286        * html/HTMLSelectElement.cpp:
45287        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
45288        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
45289        * html/HTMLTextFieldInnerElement.cpp:
45290        (WebCore::HTMLSearchFieldResultsButtonElement::defaultEventHandler):
45291        (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
45292        * ksvg2/svg/SVGAElement.cpp:(WebCore::SVGAElement::defaultEventHandler):
45293        * rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::userResize):
45294        * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
45295
452962007-04-03  Justin Garcia  <justin.garcia@apple.com>
45297
45298        Reviewed by darin
45299        
45300        <rdar://problem/5026848> Can cut/delete ToDo subunits
45301        
45302        We were removing non-editable content during a delete.
45303
45304        * editing/DeleteSelectionCommand.cpp: 
45305        (WebCore::DeleteSelectionCommand::initializePositionData): 
45306        Set m_startRoot and m_endRoot.
45307        (WebCore::DeleteSelectionCommand::removeNode): If a node
45308        is not inside both the start and end roots, remove it only
45309        if it is in editable content.
45310        * editing/DeleteSelectionCommand.h: Added m_startRoot and 
45311        m_endRoot, the editable roots that contain the start and end
45312        of the selection, respectively.  We consult these every
45313        time we remove a node, and don't want to recompute them 
45314        on every call to removeNode().
45315
453162007-04-03  David Hyatt  <hyatt@apple.com>
45317
45318        Fix for <rdar://problem/5108896>, make sure the assert for setEncodedSize
45319        deals with the error case.
45320
45321        Reviewed by andersca
45322
45323        * loader/CachedResource.cpp:
45324        (WebCore::CachedResource::setEncodedSize):
45325
453262007-04-03  Anders Carlsson  <andersca@apple.com>
45327
45328        Reviewed by Dave Hyatt.
45329
45330        * loader/ImageDocument.cpp:
45331        Don't call error() in stopParsing.
45332
453332007-04-03  Justin Garcia  <justin.garcia@apple.com>
45334
45335        Reviewed by darin
45336        
45337        <rdar://problem/5107422> 
45338        TOT REGRESSION: Delete key fails to delete text, and cursor disappears in Mail.app
45339        <rdar://problem/5107413> 
45340        TOT REGRESSION: Crash deleting text in email (infinite recursion in shouldInsertNode)
45341
45342        * editing/CompositeEditCommand.cpp:
45343        (WebCore::CompositeEditCommand::moveParagraphs):
45344        Back out the call to shouldInsert until we
45345        add WebViewInsertActionMoved, because Mail returns
45346        NO from shouldInsert for WebViewInsertActionPasted
45347        to override our Paste operation.
45348
453492007-04-03  Anders Carlsson  <andersca@apple.com>
45350
45351        Reviewed by Mitz.
45352
45353        Make window.innerWidth/innerHeight include the size of any present scrollbar to match Firefox.
45354        
45355        Make document.body.clientWidth/clientHeight return the width/height of the visible content when in
45356        quirks mode to match WinIE.
45357        
45358        * bindings/js/kjs_window.cpp:
45359        (KJS::Window::getValueProperty):
45360        Return the width and height of the scroll view, not the visible width and height.
45361        
45362        * dom/Element.cpp:
45363        (WebCore::Element::clientWidth):        
45364        (WebCore::Element::clientHeight):
45365        Return the visible size if the element is the body element and we're in quirks mode.
45366
453672007-04-03  Adele Peterson  <adele@apple.com>
45368
45369        Reviewed by Darin.
45370
45371        Updated fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
45372
45373        * platform/graphics/Color.cpp: Moved optimization for lightening black and darkening white into the Color class.
45374        (WebCore::Color::light):
45375        (WebCore::Color::dark):
45376        * rendering/RenderTextControl.cpp: (WebCore::disabledTextColor): Skip the difference calculation for black text, which will always be lightened.
45377
453782007-04-03  Anders Carlsson  <andersca@apple.com>
45379
45380        Reviewed by Tim.
45381
45382        <rdar://problem/4649516> 
45383        Turn off slow script dialog or crank up time that makes it come up
45384        
45385        * bindings/js/kjs_binding.cpp:
45386        (KJS::ScriptInterpreter::ScriptInterpreter):
45387        Increase the timeout to 10 seconds to match Firefox.
45388
453892007-04-03  Mitz Pettel  <mitz@webkit.org>
45390
45391        Reviewed by Darin.
45392
45393        - fix http://bugs.webkit.org/show_bug.cgi?id=13251
45394          editing/style/fontsize-1.html fails intermittently when run multiple times on Intel, generates incorrect DOM
45395
45396        Covered by existing editing tests.
45397
45398        * css/CSSPrimitiveValue.cpp:
45399        (WebCore::CSSPrimitiveValue::getFloatValue): Added ASSERTs that the requested conversion
45400        is from a scalar type to a scalar type. The intermittent failures in the test were
45401        the result of trying to convert an identifier type to a scalar type.
45402        * editing/ApplyStyleCommand.cpp:
45403        (WebCore::StyleChange::checkForLegacyHTMLStyleChange): Added a check that the
45404        font-size property value is an absolute length. If it is not (such as in the case
45405        of relative units or keywords like "x-large"), then no corresponding 'size' attribute
45406        will be generated for legacy HTML.
45407
454082007-04-03  Mitz Pettel  <mitz@webkit.org>
45409
45410        Reviewed by Darin.
45411
45412        - fix http://bugs.webkit.org/show_bug.cgi?id=13218
45413          <rdar://problem/5095977>
45414          Reproducible crash after call to window.close()
45415
45416        * manual-tests/stale-currentEvent.html: Added.
45417        * page/EventHandler.cpp:
45418        (WebCore::EventHandler::hoverTimerFired): Instead of faking a mouse event,
45419        just hit-test the last mouse event coordinates and update for hover state
45420        changes. This eliminates the use of currentEvent, which can be a non-mouse
45421        event or even a stale event.
45422
454232007-04-02  Adele Peterson  <adele@apple.com>
45424
45425        Reviewed by Maciej.
45426
45427        Fix for <rdar://problem/5107095> REGRESSION: disabled text color calculations are slowing down launchtime measurements
45428
45429        Hardcode disabled text colors for the most common cases- black and white.
45430
45431        * rendering/RenderTextControl.cpp: (WebCore::disabledTextColor):
45432
454332007-04-02  David Hyatt  <hyatt@apple.com>
45434
45435        Fix for <rdar://problem/5105784>, assertion failure in cache.  Encoded sizes were being set to
45436        garbage by accident because of a mismatch between derived class and base class constructors.  This
45437        patch cleans all of this up and gets rid of expiration date as a concept separate from the response.
45438
45439        Reviewed by anders
45440
45441        * dom/Document.cpp:
45442        (WebCore::Document::processHttpEquiv):
45443        * html/HTMLImageLoader.cpp:
45444        (WebCore::HTMLImageLoader::updateFromElement):
45445        * loader/Cache.cpp:
45446        (WebCore::createResource):
45447        (WebCore::Cache::requestResource):
45448        * loader/Cache.h:
45449        * loader/CachedCSSStyleSheet.cpp:
45450        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
45451        * loader/CachedCSSStyleSheet.h:
45452        * loader/CachedImage.cpp:
45453        (WebCore::CachedImage::CachedImage):
45454        * loader/CachedImage.h:
45455        * loader/CachedResource.cpp:
45456        (WebCore::CachedResource::CachedResource):
45457        (WebCore::CachedResource::finish):
45458        * loader/CachedResource.h:
45459        * loader/CachedScript.cpp:
45460        (WebCore::CachedScript::CachedScript):
45461        * loader/CachedScript.h:
45462        * loader/CachedXBLDocument.cpp:
45463        (WebCore::CachedXBLDocument::CachedXBLDocument):
45464        * loader/CachedXBLDocument.h:
45465        * loader/CachedXSLStyleSheet.cpp:
45466        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
45467        * loader/CachedXSLStyleSheet.h:
45468        * loader/DocLoader.cpp:
45469        (WebCore::DocLoader::DocLoader):
45470        (WebCore::DocLoader::requestResource):
45471        * loader/DocLoader.h:
45472
454732007-04-03  Antti Koivisto  <antti@apple.com>
45474
45475        Reviewed by Hyatt.
45476
45477        Render tree memory savings, part 3
45478        
45479        These changes shrink all RenderBlocks by additional 28 bytes. Together with parts 1 and 2
45480        RenderBlock goes from 172 bytes to 128 bytes, a saving of 26%.
45481        
45482        - Pack bitfields together in RenderFlow
45483        - Move top/bottom min/max margin values to a struct that is only allocated in case these
45484          variables have non default values. Usually this is <5% of all blocks. 
45485        - Move rarely used column variables to hash
45486
45487        * rendering/RenderBlock.cpp:
45488        (WebCore::ColumnInfo::ColumnInfo):
45489        (WebCore::RenderBlock::RenderBlock):
45490        (WebCore::RenderBlock::~RenderBlock):
45491        (WebCore::RenderBlock::layoutBlock):
45492        (WebCore::RenderBlock::collapseMargins):
45493        (WebCore::RenderBlock::clearFloatsIfNeeded):
45494        (WebCore::RenderBlock::setCollapsedBottomMargin):
45495        (WebCore::RenderBlock::layoutBlockChildren):
45496        (WebCore::RenderBlock::paintColumns):
45497        (WebCore::RenderBlock::paintObject):
45498        (WebCore::RenderBlock::fillSelectionGaps):
45499        (WebCore::RenderBlock::lowestPosition):
45500        (WebCore::RenderBlock::rightmostPosition):
45501        (WebCore::RenderBlock::leftmostPosition):
45502        (WebCore::RenderBlock::nodeAtPoint):
45503        (WebCore::RenderBlock::hitTestColumns):
45504        (WebCore::RenderBlock::positionForCoordinates):
45505        (WebCore::RenderBlock::availableWidth):
45506        (WebCore::RenderBlock::calcColumnWidth):
45507        (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
45508        (WebCore::RenderBlock::desiredColumnWidth):
45509        (WebCore::RenderBlock::desiredColumnCount):
45510        (WebCore::RenderBlock::columnRects):
45511        (WebCore::RenderBlock::layoutColumns):
45512        (WebCore::RenderBlock::adjustPointToColumnContents):
45513        (WebCore::RenderBlock::adjustRectForColumns):
45514        (WebCore::RenderBlock::setMaxTopMargins):
45515        (WebCore::RenderBlock::setMaxBottomMargins):
45516        * rendering/RenderBlock.h:
45517        (WebCore::RenderBlock::maxTopMargin):
45518        (WebCore::RenderBlock::maxBottomMargin):
45519        (WebCore::RenderBlock::maxTopPosMargin):
45520        (WebCore::RenderBlock::maxTopNegMargin):
45521        (WebCore::RenderBlock::maxBottomPosMargin):
45522        (WebCore::RenderBlock::maxBottomNegMargin):
45523        (WebCore::RenderBlock::initMaxMarginValues):
45524        (WebCore::RenderBlock::MaxMargin::MaxMargin):
45525        (WebCore::RenderBlock::MaxMargin::topPosDefault):
45526        (WebCore::RenderBlock::MaxMargin::topNegDefault):
45527        (WebCore::RenderBlock::MaxMargin::bottomPosDefault):
45528        (WebCore::RenderBlock::MaxMargin::bottomNegDefault):
45529        * rendering/RenderFlexibleBox.cpp:
45530        (WebCore::RenderFlexibleBox::layoutBlock):
45531        * rendering/RenderFlow.h:
45532        (WebCore::RenderFlow::RenderFlow):
45533        (WebCore::RenderFlow::hasColumns):
45534        * rendering/RenderInline.cpp:
45535        (WebCore::RenderInline::RenderInline):
45536        * rendering/RenderInline.h:
45537
455382007-04-03  Antti Koivisto  <antti@apple.com>
45539
45540        Reviewed by Hyatt.
45541
45542        Fix asserts, these may also be called for rel positioned elements
45543
45544        * rendering/RenderBox.cpp:
45545        (WebCore::RenderBox::setStaticX):
45546        (WebCore::RenderBox::setStaticY):
45547
455482007-04-02  David Hyatt  <hyatt@apple.com>
45549
45550        Throw in an assert to try to track down a problem where an image is being set to a smaller encoded
45551        size.
45552
45553        * loader/CachedResource.cpp:
45554        (WebCore::CachedResource::setEncodedSize):
45555
455562007-04-02  Ada Chan  <adachan@apple.com>
45557
45558        Reviewed by Adele.
45559
45560        <rdar://5105331> Missing null check in Editor::execCommand
45561        Added null check.
45562
45563        * editing/Editor.cpp:
45564        (WebCore::Editor::execCommand):
45565
455662007-04-02  Justin Garcia  <justin.garcia@apple.com>
45567
45568        Reviewed by darin
45569
45570        <rdar://problem/5058163> 
45571        Hitting return inserts a new line between two To Dos, but caret is position after second ToDo
45572
45573        * editing/InsertParagraphSeparatorCommand.cpp:
45574        (WebCore::InsertParagraphSeparatorCommand::doApply):
45575        Removed refPos, it was unused.
45576        Don't assume that upstream() moves to a different
45577        node.  This assumption caused the line break to
45578        be inserted *after* the caret and a bad position
45579        to be set (added a testcase).
45580        Use isStartOfParagraph instead of checking
45581        for the existence of a br because the line might 
45582        be broken by a newline character in text that 
45583        preserves newlines.  Paragraphs that are created 
45584        in other ways, like with blocks, are handled 
45585        above (added a testcase).
45586
45587 2007-04-02  David Harrison  <harrison@apple.com>
45588
45589        Reviewed by Darin.
45590
45591        <rdar://problem/4906488> text attributes are not working for frame based web page
45592
45593        Attribute handling now treats each WebArea as its own world, rather than sometimes
45594        referring back up to the top WebArea. e.g. getting/setting the selection now
45595        operates on the WebArea containing the WebCoreAXObject that is being messaged (self).
45596        The methods that sit above this and are able to go into arbitrary WebAreas
45597        are accessibilityFocusedUIElement and doAXTextMarkerForPosition, allowing VoiceOver
45598        to navigate between frames.
45599        
45600        * bridge/mac/WebCoreAXObject.mm:
45601        (-[WebCoreAXObject topRenderer]):
45602        (-[WebCoreAXObject frameView]):
45603        (-[WebCoreAXObject topFrameView]):
45604        Removed topDocument, renamed topView to topFrameView, added frameView.
45605        
45606        (-[WebCoreAXObject accessibilityAttributeValue:]):
45607        AXSelectedTextMarkerRange, AXStartTextMarker, and AXEndTextMarker now use
45608        self's WebArea, rather than the top WebArea.
45609        
45610        (-[WebCoreAXObject doAXTextMarkerRangeForLine:]):
45611        Use self's WebArea, rather than the top WebArea.
45612
45613        (-[WebCoreAXObject doAXTextMarkerForPosition:]):
45614        Use renamed methods for accessing top WebArea.
45615         
45616        (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
45617        Use renamed methods for accessing self's WebArea.
45618
45619        (AXAttributeStringSetColor):
45620        (AXAttributeStringSetNumber):
45621        (AXAttributeStringSetFont):
45622        (AXAttributeStringSetStyle):
45623        (AXAttributeStringSetElement):
45624        (-[WebCoreAXObject rendererForView:]):
45625        Clean up uses of nil and NULL.
45626        
45627        (-[WebCoreAXObject accessibilityFocusedUIElement]):
45628        Find the focused node on the whole page. If there is no focused node,
45629        return the WebArea for the focused document.
45630        
45631        (-[WebCoreAXObject doSetAXSelectedTextMarkerRange:]):
45632        Use self's WebArea, rather than the top WebArea.
45633
456342007-04-02  Antti Koivisto  <antti@apple.com>
45635
45636        Fix build. This one was not supposed to be checked in.
45637
45638        * rendering/RenderFlexibleBox.cpp:
45639        (WebCore::RenderFlexibleBox::layoutBlock):
45640
456412007-03-30  Antti Koivisto  <antti@apple.com>
45642
45643        Reviewed by Hyatt.
45644
45645        Render tree memory savings, part 2
45646        
45647        - Move staticX and staticY variables to RenderLayer since they are only
45648          applicable to positioned objects
45649        - Move very rarely used overrideSize variable to hash
45650        
45651        These changes shrink all box types by 12 bytes
45652
45653        * rendering/RenderBox.cpp:
45654        (WebCore::RenderBox::RenderBox):
45655        (WebCore::RenderBox::destroy):
45656        (WebCore::RenderBox::overrideSize):
45657        (WebCore::RenderBox::setOverrideSize):
45658        (WebCore::RenderBox::overrideWidth):
45659        (WebCore::RenderBox::overrideHeight):
45660        (WebCore::RenderBox::position):
45661        (WebCore::RenderBox::calcWidth):
45662        (WebCore::RenderBox::calcHeight):
45663        (WebCore::RenderBox::staticX):
45664        (WebCore::RenderBox::staticY):
45665        (WebCore::RenderBox::setStaticX):
45666        (WebCore::RenderBox::setStaticY):
45667        (WebCore::RenderBox::calcAbsoluteHorizontal):
45668        (WebCore::RenderBox::calcAbsoluteVertical):
45669        (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
45670        (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
45671        * rendering/RenderBox.h:
45672        * rendering/RenderLayer.cpp:
45673        (WebCore::RenderLayer::RenderLayer):
45674        * rendering/RenderLayer.h:
45675        (WebCore::RenderLayer::staticX):
45676        (WebCore::RenderLayer::staticY):
45677        (WebCore::RenderLayer::setStaticX):
45678        (WebCore::RenderLayer::setStaticY):
45679        * rendering/RenderObject.cpp:
45680        (WebCore::RenderObject::RenderObject):
45681        * rendering/RenderObject.h:
45682        (WebCore::):
45683        (WebCore::RenderObject::hasOverrideSize):
45684        (WebCore::RenderObject::setHasOverrideSize):
45685        * rendering/RenderWidget.cpp:
45686        (WebCore::RenderWidget::destroy):
45687
456882007-03-31  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
45689
45690        Not reviewed - gdk build fix.
45691
45692        * platform/gdk/TemporaryLinkStubs.cpp:
45693        (Font::selectionRectForComplexText):
45694        (Font::drawComplexText):
45695
456962007-03-31  Alexey Proskuryakov  <ap@webkit.org>
45697
45698        Reviewed by Darin.
45699
45700        http://bugs.webkit.org/show_bug.cgi?id=12778
45701        REGRESSION: Nightly won't load Curl plugin for full page use
45702
45703        * dom/DOMImplementation.cpp:
45704        (WebCore::DOMImplementation::createDocument): Re-order cases to give more priority to plugins.
45705        This also fixes Adobe SVG Viewer and any plugins that register XML MIME types.
45706        Added a case for XHTML to avoid enumerating plugins.
45707
457082007-03-31  David Hyatt  <hyatt@apple.com>
45709
45710        Fix for bug 13234, layout of selected justified text is broken.  Rework TextRuns to avoid having
45711        from/to members.  Let those be passed in only by the functions that need them (drawing and selection rect).
45712
45713        Reviewed by mitz
45714
45715        fast/text/justified-selection-at-edge.html
45716
45717        * platform/Font.cpp:
45718        (WebCore::WidthIterator::WidthIterator):
45719        (WebCore::WidthIterator::advance):
45720        (WebCore::Font::canUseGlyphCache):
45721        (WebCore::Font::drawSimpleText):
45722        (WebCore::Font::drawText):
45723        (WebCore::Font::floatWidth):
45724        (WebCore::Font::floatWidthForSimpleText):
45725        (WebCore::Font::selectionRectForText):
45726        (WebCore::Font::selectionRectForSimpleText):
45727        (WebCore::Font::offsetForPositionForSimpleText):
45728        * platform/Font.h:
45729        (WebCore::TextRun::m_len):
45730        * platform/graphics/GraphicsContext.cpp:
45731        (WebCore::GraphicsContext::drawText):
45732        (WebCore::GraphicsContext::drawHighlightForText):
45733        * platform/graphics/GraphicsContext.h:
45734        * platform/mac/FontMac.mm:
45735        (WebCore::addDirectionalOverride):
45736        (WebCore::overrideLayoutOperation):
45737        (WebCore::ATSULayoutParameters::initialize):
45738        (WebCore::Font::selectionRectForComplexText):
45739        (WebCore::Font::drawComplexText):
45740        (WebCore::Font::floatWidthForComplexText):
45741        (WebCore::Font::offsetForPositionForComplexText):
45742        * platform/qt/FontQt.cpp:
45743        (WebCore::Font::drawComplexText):
45744        (WebCore::Font::floatWidthForComplexText):
45745        * platform/qt/TemporaryLinkStubs.cpp:
45746        (Font::selectionRectForComplexText):
45747        * rendering/EllipsisBox.cpp:
45748        (WebCore::EllipsisBox::paint):
45749        * rendering/InlineTextBox.cpp:
45750        (WebCore::InlineTextBox::selectionRect):
45751        (WebCore::InlineTextBox::paint):
45752        (WebCore::InlineTextBox::paintSelection):
45753        (WebCore::InlineTextBox::paintMarkedTextBackground):
45754        (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
45755        (WebCore::InlineTextBox::paintTextMatchMarker):
45756        (WebCore::InlineTextBox::offsetForPosition):
45757        (WebCore::InlineTextBox::positionForOffset):
45758        * rendering/RenderListMarker.cpp:
45759        (WebCore::RenderListMarker::paint):
45760        (WebCore::RenderListMarker::calcMinMaxWidth):
45761        (WebCore::RenderListMarker::getRelativeMarkerRect):
45762        * rendering/RenderMenuList.cpp:
45763        (WebCore::RenderMenuList::updateOptionsWidth):
45764        * rendering/RenderText.cpp:
45765        (WebCore::RenderText::widthFromCache):
45766        (WebCore::RenderText::width):
45767
457682007-03-31  Mitz Pettel  <mitz@webkit.org>
45769
45770        Reviewed by Darin.
45771
45772        - fix http://bugs.webkit.org/show_bug.cgi?id=13243
45773              <rdar://problem/5103226>
45774          REGRESSION (r20506): Repro crash/assert when using scroll wheel on a list box taller than its contents
45775
45776        * platform/ScrollBar.cpp:
45777        (WebCore::Scrollbar::setValue): Cleaned up a little.
45778        (WebCore::Scrollbar::scroll): Changed to apply the minimum and maximum constraints
45779        in the right order, and cleaned up a little.
45780
457812007-03-31  Mitz Pettel  <mitz@webkit.org>
45782
45783        Reviewed by Darin.
45784
45785        - fix http://bugs.webkit.org/show_bug.cgi?id=13242
45786          REGRESSION: Repro crash when specifying the content property for an image
45787
45788        Test: fast/images/text-content-crash.html
45789
45790        * html/HTMLImageElement.cpp:
45791        (WebCore::HTMLImageElement::parseMappedAttribute): Added a check that the
45792        renderer is an image.
45793        (WebCore::HTMLImageElement::attach): Ditto.
45794
457952007-03-31  Mark Rowe  <mrowe@apple.com>
45796
45797        Reviewed by Darin.
45798
45799        A more correct fix for http://bugs.webkit.org/show_bug.cgi?id=13129
45800        Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup
45801
45802        The previous attempt at a fix in r20343 attempted to conditionally expose the 'count'
45803        method.  It did not work which resulted in 'count' always being hidden.  This change
45804        disables -[WebScriptObject count] completely until it can be determined whether it is
45805        needed and how to support it without breaking third-party applications.
45806
45807        * bindings/objc/WebScriptObject.mm:
45808        (-[WebScriptObject count]):
45809        * bindings/objc/WebScriptObjectPrivate.h:
45810
458112007-03-31  Nicholas Shanks  <webkit@nickshanks.com>
45812
45813        Reviewed by Adele.
45814
45815        http://bugs.webkit.org/show_bug.cgi?id=13184
45816        HTMLImageElement longdesc should be complete resolved URL
45817
45818        Test: fast/dom/HTMLImageElement/image-longdesc-absolute-url.html
45819
45820        * html/HTMLImageElement.cpp:
45821        (WebCore::HTMLImageElement::longDesc): Return absolute URL.
45822        Behaviour now matches Firefox and Opera.
45823
458242007-03-31  Mitz Pettel  <mitz@webkit.org>
45825
45826        Reviewed by Hyatt.
45827
45828        - fix http://bugs.webkit.org/show_bug.cgi?id=13209
45829          REGRESSION (r18756-18765): Incomplete list marker repaint when resizing list item
45830
45831        Test: fast/repaint/list-marker-2.html
45832
45833        A list marker can increase the horizontal overflow after layoutInlineChildren(),
45834        so made that function return only the vertical bounds of the repaint rect. As the
45835        horizontal bounds, made layoutBlock() just use the overflow bounds after layout.
45836
45837        * rendering/RenderBlock.cpp:
45838        (WebCore::RenderBlock::layoutBlock):
45839        * rendering/RenderBlock.h:
45840        * rendering/bidi.cpp:
45841        (WebCore::RenderBlock::layoutInlineChildren):
45842
458432007-03-31  Mitz Pettel  <mitz@webkit.org>
45844
45845        Reviewed by Hyatt.
45846
45847        - http://bugs.webkit.org/show_bug.cgi?id=13178
45848          Helvetica zero-width space has non-zero width
45849
45850        Test: fast/text/wide-zero-width-space.html
45851
45852        * platform/FontData.cpp:
45853        (WebCore::FontData::FontData): Force the ZERO WIDTH SPACE glyph to have width
45854        0, unless the SPACE character maps to the same glyph.
45855
458562007-03-31  Mitz Pettel  <mitz@webkit.org>
45857
45858        Reviewed by Darin.
45859
45860        - fix http://bugs.webkit.org/show_bug.cgi?id=8016
45861          REPRO: Safari hangs loading 18 MB page (deeply nested DOM tree)
45862
45863        Test: fast/tokenizer/lessthan-terminates-tags-and-attrs.html
45864
45865        * html/HTMLTokenizer.cpp:
45866        (WebCore::HTMLTokenizer::parseTag): Made "<" terminate tag and attribute
45867        names. This matches Firefox.
45868
458692007-03-31  Alexey Proskuryakov  <ap@webkit.org>
45870
45871        Debug build fix.
45872
45873        * xml/XPathValue.cpp:
45874        (WebCore::XPath::): Define Value::adopt.
45875
458762007-03-30  Alexey Proskuryakov  <ap@webkit.org>
45877
45878        Reviewed by Darin.
45879
45880        http://bugs.webkit.org/show_bug.cgi?id=13021
45881        XPath can be very slow
45882
45883        This patch finally makes us faster than Firefox 2.0 on this test case.
45884
45885        * xml/XPathFunctions.cpp:
45886        (WebCore::XPath::FunConcat::evaluate): Use a Vector buffer for faster appending.
45887        (WebCore::XPath::FunId::evaluate): Move the result NodeSet into Value instead of copying it.
45888        (WebCore::XPath::FunLocalName::evaluate): Cosmetic changes.
45889        (WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
45890        (WebCore::XPath::FunName::evaluate): Ditto.
45891        (WebCore::XPath::FunNormalizeSpace::evaluate): Ditto.
45892
45893        * xml/XPathValue.cpp:
45894        (WebCore::XPath::Value::toNodeSet):
45895        (WebCore::XPath::Value::modifiableNodeSet):
45896        (WebCore::XPath::Value::toBoolean):
45897        (WebCore::XPath::Value::toNumber):
45898        (WebCore::XPath::Value::toString):
45899        * xml/XPathValue.h:
45900        (WebCore::XPath::ValueData::ValueData):
45901        (WebCore::XPath::Value::Value):
45902        Made Value copying faster by putting large data members into a separate refcounted ValueData class.
45903        Added provisions for moving a NodeSet in and out of Value without copying.
45904        Made construction safer by moving bool version to a template constructor.
45905        Removed an (almost) unused default constructor.
45906
45907        * xml/XPathPredicate.h: Store a Value for literal string and number expressions to avoid 
45908        constructing one each time.
45909
45910        * xml/XPathPath.cpp:
45911        (WebCore::XPath::Filter::evaluate):
45912        (WebCore::XPath::LocationPath::evaluate):
45913        (WebCore::XPath::Path::evaluate):
45914        * xml/XPathPath.h:
45915        * xml/XPathPredicate.cpp:
45916        (WebCore::XPath::NumericOp::evaluate):
45917        (WebCore::XPath::Union::evaluate):
45918        * xml/XPathResult.cpp:
45919        (WebCore::XPathResult::snapshotItem):
45920        * xml/XPathStep.cpp:
45921        (WebCore::XPath::Step::evaluate):
45922        (WebCore::XPath::Step::nodesInAxis):
45923        * xml/XPathStep.h:
45924        Got rid of unnecessary NodeSet copying in many cases.
45925
459262007-03-30  Justin Garcia  <justin.garcia@apple.com>
45927
45928        Reviewed by john
45929
45930        <rdar://problem/5076323> Only one To Do can be created by a selection in a message
45931
45932        When Mail's ToDoify operation called moveToEndOfDocument: 
45933        with a selection that started just before a ToDo, we'd 
45934        move them to the end of the document, not to the end
45935        of the editable root, because we incorrectly checked
45936        for the editability of positions before ToDos.  Then Mail
45937        would refuse to create a ToDo because the selection was 
45938        outside of the region where they allowed editing.
45939
45940        * editing/SelectionController.cpp:
45941        (WebCore::SelectionController::modifyExtendingRightForward):
45942        Check the position for editability, not the position's node,
45943        since there are editable positions of the form [node, offset]
45944        where node is contenteditable=false.
45945        Re-use pos.  Nothing that happens after it's created can invalidate
45946        it or the position and affinity used to create it.
45947        (WebCore::SelectionController::modifyMovingRightForward): Ditto.
45948        (WebCore::SelectionController::modifyExtendingLeftBackward): Ditto.
45949        (WebCore::SelectionController::modifyMovingLeftBackward): Ditto.
45950        * rendering/RenderBlock.cpp:
45951        (WebCore::RenderBlock::paintCaret): Ditto.
45952
459532007-03-30  Adele Peterson  <adele@apple.com>
45954
45955        Reviewed by Darin.
45956
45957        Added DeleteWordBackward and DeleteWordForward to execCommand.
45958
45959        * editing/Editor.cpp:
45960        (WebCore::execDeleteWordBackward):
45961        (WebCore::execDeleteWordForward):
45962        (WebCore::CommandEntry::):
45963
459642007-03-30  Simon Hausmann  <hausmann@kde.org>
45965
45966        Reviewed by Zack
45967
45968        * WebCore.pro: Fix release Qt builds.
45969
459702007-03-30  Antti Koivisto  <antti@apple.com>
45971
45972        Reviewed by bdash.
45973
45974        Spotted an int that should be float in previous patch.
45975
45976        * platform/Font.cpp:
45977        (WebCore::WidthIterator::advance):
45978
459792007-03-30  Antti Koivisto  <antti@apple.com>
45980
45981        Reviewed by Hyatt.
45982
45983        Render tree memory savings, part 1
45984        
45985        - Eliminate caching of monospace char width from RenderText. This optimization is not needed
45986          anymore since Font already caches space width (RenderText -4 bytes)
45987        - Eliminate caching of tab width from RenderBlock. Similary this optimization has become
45988          obsolete (RenderBlock -4 bytes)
45989
45990        * platform/Font.cpp:
45991        (WebCore::WidthIterator::advance):
45992        (WebCore::Font::spaceWidth):
45993        * platform/Font.h:
45994        (WebCore::Font::tabWidth):
45995        * platform/TextStyle.h:
45996        (WebCore::TextStyle::TextStyle):
45997        (WebCore::TextStyle::allowTabs):
45998        * rendering/InlineTextBox.cpp:
45999        (WebCore::InlineTextBox::selectionRect):
46000        (WebCore::InlineTextBox::paint):
46001        (WebCore::InlineTextBox::paintSelection):
46002        (WebCore::InlineTextBox::paintMarkedTextBackground):
46003        (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
46004        (WebCore::InlineTextBox::paintTextMatchMarker):
46005        (WebCore::InlineTextBox::offsetForPosition):
46006        (WebCore::InlineTextBox::positionForOffset):
46007        * rendering/RenderBlock.cpp:
46008        (WebCore:::RenderFlow):
46009        (WebCore::RenderBlock::setStyle):
46010        * rendering/RenderBlock.h:
46011        * rendering/RenderObject.cpp:
46012        * rendering/RenderObject.h:
46013        * rendering/RenderText.cpp:
46014        (WebCore::RenderText::RenderText):
46015        (WebCore::RenderText::setStyle):
46016        (WebCore::RenderText::widthFromCache):
46017        (WebCore::RenderText::trimmedMinMaxWidth):
46018        (WebCore::RenderText::calcMinMaxWidthInternal):
46019        (WebCore::RenderText::setTextInternal):
46020        (WebCore::RenderText::width):
46021        * rendering/RenderText.h:
46022        (WebCore::RenderText::allowTabs):
46023        * rendering/bidi.cpp:
46024
460252007-03-30  David Hyatt  <hyatt@apple.com>
46026
46027        Fix (take 2) for bug 4334, flickering when floating elements gain/lose transparency.
46028
46029        Reviewed by mitz
46030
46031        * rendering/RenderBlock.cpp:
46032        * rendering/RenderBlock.h:
46033        * rendering/RenderBox.cpp:
46034        (WebCore::RenderBox::setStyle):
46035
460362007-03-29  Mitz Pettel  <mitz@webkit.org>
46037
46038        Reviewed by Darin.
46039
46040        - fix http://bugs.webkit.org/show_bug.cgi?id=13166
46041          REGRESSION (2005-10-16 - 2005-10-19): Ampersands showing up in the last column of the Gmail contacts table
46042
46043        Test: fast/tokenizer/write-partial-entity.html
46044
46045        * html/HTMLTokenizer.cpp:
46046        (WebCore::HTMLTokenizer::parseTag): Reordered to avoid resetting the buffer position
46047        after script execution which can write to the buffer.
46048
460492007-03-29  Justin Garcia  <justin.garcia@apple.com>
46050
46051        Reviewed by john
46052
46053        <rdar://problem/5099303> Deleting after a ToDo puts the caret in the wrong position
46054        
46055        We were failing to create the correct selection 
46056        for DeleteSelectionCommand because the selection extension 
46057        operations don't skip over non-editable content for editable 
46058        selections.
46059
46060        * editing/SelectionController.cpp:
46061        (WebCore::SelectionController::modifyExtendingRightForward):
46062        When extending an editable selection, don't extend into
46063        non-editable content.
46064        (WebCore::SelectionController::modifyExtendingLeftBackward):
46065        Ditto.
46066
460672007-03-29  Patti Hoa  <patti@apple.com>
46068
46069        Reviewed by harrison.
46070
46071        <rdar://problem/4918397> Exception raise inspecting note contents in the background
46072        * WebCore.xcodeproj/project.pbxproj:
46073        * bridge/mac/WebCoreAXObject.mm:
46074        (-[WebCoreAXObject subrole]):
46075        (-[WebCoreAXObject title]):
46076        Check that attachment supports the attribute before requesting it.
46077
460782007-03-29  Justin Garcia  <justin.garcia@apple.com>
46079
46080        Reviewed by john
46081
46082        <rdar://problem/5032066> Delete should work between ToDos
46083        
46084        Stop selecting the table when the user attempts to delete
46085        the line break just after it, instead, extend the selection
46086        into the last table cell.
46087        Let deletion merge content into table cells (as long as 
46088        its not from another table cell).  
46089        Start calling shouldInsertNode:replacingDOMRange:givenAction: 
46090        when moving content with moveParagraphs, so that Mail can 
46091        modify content before it is moved into a ToDo during a delete.
46092
46093        * editing/CompositeEditCommand.cpp:
46094        (WebCore::CompositeEditCommand::moveParagraphs): Ask the
46095        delegate before performing the move.  This will let Mail
46096        prevent styles from entering a ToDo.
46097        Added a FIXME about adding a new WebViewInsertAction
46098        * editing/DeleteSelectionCommand.cpp:
46099        (WebCore::DeleteSelectionCommand::initializePositionData):
46100        Allow merging into table cells from content not in a table.
46101        * editing/SelectionController.cpp:
46102        (WebCore::SelectionController::modifyExtendingRightForward):
46103        Don't select the table when extending by character/word from
46104        just before it.  This code was here to make it easier to select
46105        tables in order to delete them, but the deletion UI makes it 
46106        largely unnecessary.
46107        (WebCore::SelectionController::modifyExtendingLeftBackward):
46108        Ditto.
46109        * editing/TypingCommand.cpp:
46110        (WebCore::isFirstPositionAfterTable): Added.
46111        (WebCore::isLastPositionBeforeTable): Ditto.
46112        (WebCore::TypingCommand::deleteKeyPressed): When pressing
46113        the delete key with a caret at the beginning of a paragraph
46114        just after a table, move the paragraph into the last table
46115        cell.
46116        Do not do this if it would mean moving a block table.
46117        Removed some old irrelevant comments.
46118        * editing/htmlediting.cpp: Removed unused functions.
46119        * editing/htmlediting.h:
46120
461212007-03-29  Adam Treat  <adam@staikos.net>
46122
46123        Reviewed and committed by George Staikos.
46124
46125        Remove redundant line.
46126
46127        * platform/qt/FontDataQt.cpp:
46128        (WebCore::FontData::platformInit):
46129
461302007-03-29  Adam Treat  <adam@staikos.net>
46131
46132        Reviewed by David Hyatt, committed by George Staikos.
46133
46134        Test: fast/text/justified-selection.html
46135
46136        Take into account the entire run length to get a proper selection.
46137
46138        * platform/Font.cpp:
46139        (WebCore::WidthIterator::WidthIterator):
46140
461412007-03-29  David Hyatt  <hyatt@apple.com>
46142
46143        Fix for <rdar://problem/4545060>, technorati and arstechnica fail because of getComputedStyle not
46144        reporting display:none properly when it is set.  This is bugzilla bug 13103.
46145
46146        Reviewed by mitz
46147
46148        * css/CSSComputedStyleDeclaration.cpp:
46149        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
46150
461512007-03-28  Oliver Hunt  <oliver@apple.com>
46152
46153        Reviewed by Hyatt.
46154
46155        Rename DocLoader::setPasteInProgress, etc to more generic 
46156        setAllowStaleResources, etc
46157
46158        * editing/Editor.cpp:
46159        (WebCore::Editor::paste):
46160        * loader/DocLoader.cpp:
46161        (WebCore::DocLoader::DocLoader):
46162        (WebCore::DocLoader::checkForReload):
46163        * loader/DocLoader.h:
46164        (WebCore::DocLoader::setAllowStaleResources):
46165        * page/DragController.cpp:
46166        (WebCore::DragController::concludeDrag):
46167
461682007-03-28  Oliver Hunt  <oliver@apple.com>
46169
46170        Reviewed by Anders and Steve.
46171
46172        Add a flag to DocLoader to prevent it from reloading 
46173        when performing a paste or drop operation.
46174        
46175        Remove m_cachePolicy from CachedResource as it is never used
46176        
46177        Fixes rdar://problem/5044366 : REGRESSION: Repro ASSERT failures 
46178        dragging image into GMail message in _web_writeImage and 
46179        documentFragmentFromDragData
46180
46181        * editing/Editor.cpp:
46182        (WebCore::Editor::paste):
46183          prevent the docloader from reloading resources on paste
46184        * html/HTMLImageLoader.cpp:
46185        (WebCore::HTMLImageLoader::updateFromElement):
46186        * loader/Cache.cpp:
46187        (WebCore::createResource):
46188        * loader/CachedCSSStyleSheet.cpp:
46189        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
46190        * loader/CachedCSSStyleSheet.h:
46191        * loader/CachedImage.cpp:
46192        (WebCore::CachedImage::CachedImage):
46193        * loader/CachedImage.h:
46194        * loader/CachedResource.cpp:
46195        (WebCore::CachedResource::CachedResource):
46196        * loader/CachedResource.h:
46197        * loader/CachedScript.cpp:
46198        (WebCore::CachedScript::CachedScript):
46199        * loader/CachedScript.h:
46200        * loader/CachedXBLDocument.cpp:
46201        (WebCore::CachedXBLDocument::CachedXBLDocument):
46202        * loader/CachedXBLDocument.h:
46203        * loader/CachedXSLStyleSheet.cpp:
46204        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
46205        * loader/CachedXSLStyleSheet.h:
46206        * loader/DocLoader.cpp:
46207        (WebCore::DocLoader::DocLoader):
46208           Tidy up constructor initialise new field
46209        (WebCore::DocLoader::checkForReload):
46210           Prevent reload when pasting
46211        * loader/DocLoader.h:
46212        (WebCore::DocLoader::setPasteInProgress):
46213          new field and setter
46214        * page/DragController.cpp:
46215        (WebCore::DragController::concludeDrag):
46216          prevent the docloader from reloading resources on drop
46217
462182007-03-27  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
46219
46220        Not reviewed - fix typo in gdk build.
46221
46222        * platform/gdk/ScrollViewGdk.cpp:
46223        (WebCore::ScrollView::contentsToWindow):
46224
462252007-03-28  Maciej Stachowiak  <mjs@apple.com>
46226        
46227        Reviewed by Darin.
46228        
46229        - fixed <rdar://problem/4820817> Autoscroll is broken in Mail.app (message jumps around when trying to select text)
46230                
46231        Handle scrolling external scrollviews around the webview during
46232        autoscroll or when scrolling into view.
46233        
46234        This should also restore performance on BenchJS test 6 lost due to Tim's partial fix.
46235
46236        * page/FrameView.cpp:
46237        (WebCore::FrameView::scrollRectIntoViewRecursively):
46238        * page/FrameView.h:
46239        * platform/ScrollView.h:
46240        * platform/gdk/ScrollViewGdk.cpp:
46241        (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46242        (WebCore::ScrollView::scrollRectIntoViewRecursively):
46243        * platform/mac/ScrollViewMac.mm:
46244        (WebCore::ScrollView::visibleContentRect):
46245        (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46246        (WebCore::ScrollView::scrollRectIntoViewRecursively):
46247        (WebCore::ScrollView::updateContents):
46248        * platform/qt/ScrollViewQt.cpp:
46249        (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46250        (WebCore::ScrollView::scrollRectIntoViewRecursively):
46251        * platform/win/ScrollViewWin.cpp:
46252        (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers):
46253        * platform/win/TemporaryLinkStubs.cpp:
46254        (WebCore::ScrollView::scrollRectIntoViewRecursively):
46255        * rendering/RenderLayer.cpp:
46256        (WebCore::RenderLayer::scrollRectToVisible):
46257       
462582007-03-28  Jungshik Shin  <jungshik.shin@gmail.com>
46259
46260        Reviewed  and landed by Darin
46261
46262        Get rid of some misuses of |islower| and |tolower| for non-ASCII characters.
46263        http://bugs.webkit.org/show_bug.cgi?id=13138
46264
46265        * platform/StringImpl.cpp:
46266        (WebCore::StringImpl::isLower):
46267        (WebCore::StringImpl::lower):
46268        (WebCore::StringImpl::equalIgnoringCase):
46269
462702007-03-28  Antti Koivisto  <antti@apple.com>
46271
46272        Reviewed by Hyatt.
46273
46274        Fix <rdar://problem/5092653>
46275        REGRESSION: Image decoding making scrolling slow
46276        
46277        If decoder gave back a null frame (which I think happens regularly if you don't have full frame 
46278        data yet for image that does not decode incrementally) m_decodedSize was incremented anyway. This
46279        led to massive growth in calculated image size and eventually made cache prune constantly. 
46280        
46281        No test, I don't know how to make one for this.
46282
46283        * platform/graphics/BitmapImage.cpp:
46284        (WebCore::BitmapImage::cacheFrame):
46285
462862007-03-28  Adele Peterson  <adele@apple.com>
46287
46288        Reviewed by Kevin M.
46289
46290        WebCore part of fix for <rdar://problem/5095515> VitalSource Bookshelf should not pass return statements into stringByEvaluatingJavaScriptFromString
46291
46292        * page/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
46293        Convert return value to a string.  This matches the behavior in Safari 2.0.
46294
462952007-03-28  Alexey Proskuryakov  <ap@webkit.org>
46296
46297        Reviewed by Darin.
46298
46299        http://bugs.webkit.org/show_bug.cgi?id=13190
46300        XPath incorrectly handles namespaces on attributes
46301
46302        * xml/XPathStep.cpp:
46303        (WebCore::XPath::Step::nodesInAxis): Added a special case for faster attribute lookup; gives a slight but 
46304        measurable performance improvement for bug 13021.
46305        (WebCore::XPath::Step::nodeMatches): Fixed NameTest for attribute nodes.
46306
46307        * xml/XPathStep.h:
46308        (WebCore::XPath::Step::NodeTest::NodeTest):
46309        (WebCore::XPath::Step::NodeTest::namespaceURI):
46310        (WebCore::XPath::Step::nodeTest):
46311        (WebCore::XPath::Step::setNodeTest):
46312        Move m_namespaceURI to NodeTest, where it belongs. Removed unused m_nodeTestData (oops!).
46313
46314        * xml/XPathGrammar.y:
46315        * xml/XPathPath.cpp:
46316        (WebCore::XPath::LocationPath::optimizeStepPair):
46317        Accounted for the above change.
46318
463192007-03-28  Oliver Hunt  <oliver@apple.com>
46320
46321        rs=Hyatt.
46322
46323        Rollout local changes :-/
46324
46325        * loader/Cache.cpp:
46326        (WebCore::Cache::pruneAllResources):
46327        (WebCore::Cache::remove):
46328
463292007-03-28  Oliver Hunt  <oliver@apple.com>
46330
46331        Reviewed by Hyatt.
46332
46333        Roll out r20511 due to incredible badness
46334
46335        * loader/Cache.cpp:
46336        (WebCore::Cache::pruneAllResources):
46337        (WebCore::Cache::remove):
46338
463392007-03-27  Oliver Hunt  <oliver@apple.com>
46340
46341        Reviewed by Adam.
46342
46343        Don't enforce text-selection drag delay when we are
46344        going to drag an image anyway.
46345
46346        Fixes rdar://problem/4668935
46347
46348        * page/EventHandler.cpp:
46349        (WebCore::EventHandler::handleDrag):
46350
463512007-03-27  Justin Garcia  <justin.garcia@apple.com>
46352
46353        Build fix
46354        
46355        * editing/markup.cpp:
46356        (WebCore::startMarkup):
46357
463582007-03-27  Justin Garcia  <justin.garcia@apple.com>
46359
46360        Reviewed by darin
46361        
46362        <rdar://problem/5091898> REGRESSION: GMail Editor: A line of underlined text copied with Select All pastes with wrong font family
46363        
46364        createMarkup skipped elements if they were blocks
46365        when called from moveParagraphs (because that function 
46366        must receive only inline content).  This patch adds 
46367        code to inline these blocks instead of skipping them 
46368        so that we don't lose any of the style that they 
46369        contribute to the copied markup.
46370
46371        * editing/markup.cpp:
46372        (WebCore::startMarkup): Add an inlineBlocks option.
46373        Make sure to overwrite display:block coming from
46374        a style sheet or the inline style declaration.
46375        (WebCore::createMarkup): Don't refuse to include a 
46376        specialCommonAncestor that's a block if we were asked 
46377        to include only inline content, since we can now inline 
46378        block elements in startMarkup.
46379
463802007-03-27  Adele Peterson  <adele@apple.com>
46381
46382        Reviewed by Hyatt.
46383
46384        Fix for <rdar://problem/5026141> REGRESSION: Aperture Viewer Flashes when switching from Index Page to Detail page in Web Gallery
46385
46386        This disables the paint that occurs after WebCore finishes loading the document.  We should reenable this when we
46387        move the dispatchDidFinishLoad delegate callback to happen around the same time as the JS onload call.  See <rdar://problem/5092361>.
46388
46389        * dom/Document.cpp: (WebCore::Document::implicitClose):
46390
463912007-03-26  Justin Garcia  <justin.garcia@apple.com>
46392
46393        Reviewed by darin
46394        
46395        <rdar://problem/5065910> REGRESSION: In Mail and GMail, Can't apply color to pasted line of text
46396        <rdar://problem/5084241> After deleting a paragraph of colored text, can't change text color
46397        <rdar://problem/5065605> REGRESSION: Text copied with Select All + Copy loses color on Paste
46398        <rdar://problem/4916887> GMAIL: Can't apply color to text once it becomes indented
46399
46400        * css/CSSComputedStyleDeclaration.cpp:
46401        (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
46402        If a node's text fill color is invalid, then its children use 
46403        their font-color as their text fill color (they don't inherit 
46404        it).  Likewise for stroke color.
46405
464062007-03-27  Anders Carlsson  <acarlsson@apple.com>
46407
46408        * platform/ScrollBar.h:
46409        Use wtf/MathExtras.h instead of math.h
46410
464112007-03-27  Zack Rusin  <zrusin@trolltech.com>
46412
46413        Fix the compile - when using math.h functions
46414        actually include the header with them.
46415
46416        * platform/ScrollBar.h:
46417
464182007-03-27  Oliver Hunt  <oliver@apple.com>
46419
46420        Reviewed by Maciej.
46421
46422        The WebArchiver needs all the subresources of a document to be accessible
46423        through the DocLoader, so we can't remove a CachedResource simultaneously
46424        from the global Cache and all DocLoaders, just because it needs to be 
46425        reloaded in one.
46426
46427        Fixes rdar://problem/5044366
46428
46429        * loader/Cache.cpp:
46430        (WebCore::Cache::remove):
46431           Don't evict the resource from all DocLoaders
46432        * manual-tests/test-iframes-loading-the-same-resource.html: Added.
46433           Alas it wasn't possible to make a nice layout test, even this manual test
46434           is not entirely deterministic
46435
464362007-03-27  Mark Rowe  <mrowe@apple.com>
46437
46438        Build fix.
46439
46440        * platform/GlyphBuffer.h:
46441        (WebCore::GlyphBuffer::clear):
46442
464432007-03-27  Dave Hyatt  <hyatt@apple.com>
46444
46445        Add support for glyph offsets to the GlyphBuffer.
46446       
46447        Reviewed by olliej
46448
46449        * platform/Font.cpp:
46450        (WebCore::Font::drawGlyphBuffer):
46451        * platform/GlyphBuffer.h:
46452        (WebCore::GlyphBuffer::clear):
46453        (WebCore::GlyphBuffer::swap):
46454        (WebCore::GlyphBuffer::offsetAt):
46455        (WebCore::GlyphBuffer::add):
46456
464572007-03-27  Antti Koivisto  <antti@apple.com>
46458
46459        Keep buildbot happy.
46460
46461        * platform/mac/PlatformScrollBarMac.mm:
46462        (WebCore::PlatformScrollbar::scrollbarHit):
46463
464642007-03-26  Antti Koivisto  <antti@apple.com>
46465
46466        Reviewed by Darin.
46467        
46468        On Mac, support fine grained wheel events generated by trackpad and Mighty Mouse.
46469        http://bugs.webkit.org/show_bug.cgi?id=13134
46470        <rdar://problem/5076249?
46471
46472        * WebCore.exp:
46473            Export _wkGetWheelEventDeltas
46474        * page/EventHandler.cpp:
46475        (WebCore::EventHandler::handleWheelEvent):
46476            Remove (0, 0) scroll event hack, it is not needed anymore.
46477            Do per-pixel scrolling for fine grained events.
46478        * platform/PlatformWheelEvent.h:
46479        (WebCore::PlatformWheelEvent::isContinuous):
46480            Add new m_isContinuous boolean to indicate fine grained wheel events.
46481        * platform/ScrollBar.cpp:
46482        (WebCore::Scrollbar::Scrollbar):
46483        (WebCore::Scrollbar::setValue):
46484        (WebCore::Scrollbar::setSteps):
46485        (WebCore::Scrollbar::scroll):
46486        * platform/ScrollBar.h:
46487        (WebCore::Scrollbar::value):
46488            Use float to represent current position to support finer grained scrolling.
46489            Add ScrollByPixel, remove ScrollByWheel (which was same as ScrollByLine anyway)
46490        * platform/ScrollTypes.h:
46491        (WebCore::):
46492        * platform/gdk/WheelEventGdk.cpp:
46493        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
46494            Initalize m_isContinuous
46495        * platform/mac/WebCoreSystemInterface.h:
46496        * platform/mac/WebCoreSystemInterface.mm:
46497            Add wkGetWheelEventDeltas for getting fine grained wheel events
46498        * platform/mac/WheelEventMac.mm:
46499        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
46500            Get the wheel deltas using new wkGetWheelEventDeltas interface
46501        * platform/qt/WheelEventQt.cpp:
46502        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
46503            Initalize m_isContinuous
46504        * rendering/RenderListBox.cpp:
46505        (WebCore::RenderListBox::calcHeight):
46506            Pass item height to scrollbar
46507
465082007-03-26  Geoffrey Garen  <ggaren@apple.com>
46509
46510        Reviewed by Darin Adler.
46511
46512        Fixed <rdar://problem/5088234> REGRESSION: Crash occurs at WebCore::Node::
46513        createRendererIfNeeded() when changing map views with MS Virtual Earth 
46514        (http://www.ziprealty.com/)
46515        
46516        The cause of the crash was the insertion of a <script> element whose
46517        script removed it from the document. The <script> element would then be 
46518        garbage when the insertion routine went on to attach() it.
46519        
46520        The solution here is to check that an element is still your child before
46521        trying to attach() it. This matches the style of checks we do elsewhere
46522        in the node insertion and removal code.
46523
46524        * dom/ContainerNode.cpp:
46525        (WebCore::ContainerNode::insertBefore):
46526        (WebCore::ContainerNode::replaceChild):
46527        (WebCore::ContainerNode::appendChild):
46528
465292007-03-26  David Carson  <dacarson@gmail.com>
46530
46531        Reviewed by Darin, landed by Anders.
46532
46533        Manual test case for: REGRESSION (r19559): Java applet crash
46534        http://bugs.webkit.org/show_bug.cgi?id=13142
46535        <rdar://problem/5080340>
46536
46537        * manual-tests/liveconnect-applet-get-boolean.html: Added.
46538        * manual-tests/resources/CheckerApplet.class: Added.
46539        * manual-tests/resources/CheckerApplet.java: Added.
46540
465412007-03-26  Mitz Pettel  <mitz@webkit.org>
46542
46543        Reviewed and landed by Darin.
46544
46545        - fix http://bugs.webkit.org/show_bug.cgi?id=13194
46546          <rdar://problem/5087738>
46547          REGRESSION: Selection rects are wrong for images in search results from images.google.com
46548
46549        Test: fast/replaced/selection-rect-in-table-cell.html
46550
46551        * rendering/RenderReplaced.cpp:
46552        (WebCore::RenderReplaced::selectionRect):
46553
465542007-03-26  Geoffrey Garen  <ggaren@apple.com>
46555
46556        Removed now-stale #includes of <assert.h>.
46557        
46558        * WebCorePrefix.h:
46559        * config.h:
46560        * css/CSSGrammar.y:
46561        * platform/Arena.cpp:
46562        * platform/KURL.cpp:
46563        * platform/SegmentedString.h:
46564        * rendering/DataRef.h:
46565        * rendering/RenderArena.cpp:
46566
465672007-03-26  Geoffrey Garen  <ggaren@apple.com>
46568
46569        Reviewed by Kevin McCulough.
46570
46571        Global replace of "assert(" with "ASSERT(" to assist debugging. Removed
46572        one instance of commented-out code containing "assert(" instead of replacing it.
46573
465742007-03-25  Antti Koivisto  <antti@apple.com>
46575
46576        Reviewed by Adam.
46577
46578        Fix <rdar://problem/5049842>
46579        Gmail Editor: Dragging message text in the message body results in a crash at WebCore::Frame::eventHandler()
46580
46581        Null check frame in m_dragTarget, it might be gone already.
46582
46583        * page/EventHandler.cpp:
46584        (WebCore::EventHandler::updateDragAndDrop):
46585        (WebCore::EventHandler::cancelDragAndDrop):
46586        (WebCore::EventHandler::performDragAndDrop):
46587
465882007-03-25  Alexey Proskuryakov  <ap@webkit.org>
46589
46590        Reviewed by Darin.
46591
46592        A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
46593        XPath can be very slow
46594
46595        * xml/XPathExpression.cpp:
46596        (WebCore::XPathExpression::evaluate): Reset a reference to the context node, as this may prevent the whole document
46597        from being destroyed in time.
46598
46599        * dom/Attr.cpp:
46600        (WebCore::Attr::createTextChild): Instead of calling appendChild(), just do the few operations it really needs to perform.
46601        * dom/ContainerNode.h:
46602        (WebCore::ContainerNode::fastSetFirstChild):
46603        (WebCore::ContainerNode::fastSetLastChild):
46604        Added operations that let Attr hack internal ContainerNode data (evil, but fast!).
46605
46606        * xml/XPathStep.cpp:
46607        (WebCore::XPath::Step::evaluate):
46608        (WebCore::XPath::Step::nodesInAxis):
46609        (WebCore::XPath::Step::nodeMatches):
46610        * xml/XPathStep.h:
46611        Merged node testing into axis enumeration. This saves a lot of Vector resizing and passing, and is necessary for future 
46612        optimizations (sometimes, we can just pick the single result node instead of enumerating and filtering the whole axis).
46613
466142007-03-24  Mitz Pettel  <mitz@webkit.org>
46615
46616        Reviewed by Darin.
46617
46618        - fix http://bugs.webkit.org/show_bug.cgi?id=13156
46619          REGRESSION (r19621): Pasting breakable content where wrapped line is too long to fit in a textarea fails to draw a horizontal scrollbar
46620
46621        Test: fast/text/midword-break-after-breakable-char.html
46622
46623        Breaking in the middle of the word
46624        is allowed only if no breaking opportunity between words has occurred yet. The
46625        first position on the line should not be considered "between words" even if
46626        it is a breaking opportunity.
46627        
46628        * rendering/bidi.cpp:
46629        (WebCore::RenderBlock::findNextLineBreak): Changed according to the above. Also
46630        cleaned up a couple of lines.
46631
466322007-03-24  David Hyatt  <hyatt@apple.com>
46633
46634        Fix for bugzilla bug 13187, place a hard limit on the amount of decoded data that WebCore will keep
46635        around even on live pages (pages being displayed in tabs/windows or in the back/forward cache).
46636        Images will decode to paint and once the decoded data exceeds the cache size, the decoded data will be
46637        tossed.
46638
46639        Refine the flushing algorithm to apply the two-pass decode/evict model to each LRU-SP queue individually, rather
46640        than to all the lists at once.  This allows the cache to evict large encoded resources before flushing small
46641        or frequently accessed decoded onces.
46642
46643        Added information on live/decoded data to the cache statistics.
46644
46645        Reviewed by darin
46646
46647        * loader/Cache.cpp:
46648        (WebCore::Cache::Cache):
46649        (WebCore::Cache::pruneLiveResources):
46650        (WebCore::Cache::pruneAllResources):
46651        (WebCore::Cache::setMaximumSize):
46652        (WebCore::Cache::remove):
46653        (WebCore::Cache::lruListFor):
46654        (WebCore::Cache::removeFromLRUList):
46655        (WebCore::Cache::insertInLRUList):
46656        (WebCore::Cache::liveLRUListFor):
46657        (WebCore::Cache::removeFromLiveResourcesList):
46658        (WebCore::Cache::insertInLiveResourcesList):
46659        (WebCore::Cache::addToLiveResourcesSize):
46660        (WebCore::Cache::removeFromLiveResourcesSize):
46661        (WebCore::Cache::adjustSize):
46662        (WebCore::Cache::getStatistics):
46663        * loader/Cache.h:
46664        (WebCore::Cache::TypeStatistic::TypeStatistic):
46665        * loader/CachedImage.cpp:
46666        (WebCore::CachedImage::decodedSizeWillChange):
46667        (WebCore::CachedImage::decodedSizeChanged):
46668        * loader/CachedImage.h:
46669        * loader/CachedResource.cpp:
46670        (WebCore::CachedResource::CachedResource):
46671        (WebCore::CachedResource::ref):
46672        (WebCore::CachedResource::deref):
46673        (WebCore::CachedResource::setEncodedSize):
46674        (WebCore::CachedResource::liveResourceAccessed):
46675        * loader/CachedResource.h:
46676        (WebCore::CachedResource::liveAccessCount):
46677        (WebCore::CachedResource::resetLiveAccessCount):
46678        (WebCore::CachedResource::increaseLiveAccessCount):
46679        * platform/graphics/BitmapImage.cpp:
46680        (WebCore::BitmapImage::destroyDecodedData):
46681        (WebCore::BitmapImage::cacheFrame):
46682        * platform/graphics/ImageObserver.h:
46683        * rendering/RenderBox.cpp:
46684        (WebCore::RenderBox::paintBackgroundExtended):
46685        * rendering/RenderImage.cpp:
46686        (WebCore::RenderImage::paint):
46687        * rendering/RenderListMarker.cpp:
46688        (WebCore::RenderListMarker::paint):
46689        * rendering/RenderObject.cpp:
46690        (WebCore::RenderObject::paintBorderImage):
46691
466922007-03-24  Darin Adler  <darin@apple.com>
46693
46694        Reviewed by Mitz.
46695
46696        - fix http://bugs.webkit.org/show_bug.cgi?id=13123
46697          CSS selectors that use :lang, :not, and namespaces do not serialize correctly
46698
46699        Test: fast/css/css-selector-text.html
46700
46701        * css/CSSSelector.cpp: (WebCore::CSSSelector::selectorText): Add the namespace
46702        prefix for tag or attribute names, the sub-selector for :not, and the argument
46703        for :lang.
46704
467052007-03-24  Brady Eidson  <beidson@apple.com>
46706
46707        Reviewed by Adam
46708
46709        <rdar://problem/5086210> - Move RetainPtr to WTF
46710
46711        * ForwardingHeaders/wtf/RetainPtr.h: Added.
46712        * WebCore.xcodeproj/project.pbxproj: Removed WebCore/RetainPtr.h
46713        
46714        * history/HistoryItem.h: Changed #include to <wtf/RetainPtr.h>
46715        * history/PageCache.h: Ditto
46716        * page/mac/WebCoreFrameBridge.mm: Ditto
46717        * platform/ContextMenu.h: Ditto
46718        * platform/ContextMenuItem.h: Ditto
46719        * platform/DragImage.h: Ditto
46720        * platform/FileChooser.h: Ditto
46721        * platform/PlatformKeyboardEvent.h: Ditto
46722        * platform/PopupMenu.h: Ditto
46723        * platform/SharedBuffer.h: Ditto
46724        * platform/cf/RetainPtr.h: Removed.
46725        * platform/graphics/Icon.h: Changed #include
46726        * platform/mac/ClipboardMac.h: Ditto
46727        * platform/mac/PasteboardMac.mm: Ditto
46728        * platform/mac/WidgetMac.mm: Ditto
46729        * platform/network/AuthenticationChallenge.h: Ditto
46730        * platform/network/ResourceError.h: Ditto
46731        * platform/network/ResourceHandle.h: Ditto
46732        * platform/network/ResourceRequest.h: Ditto
46733        * platform/network/ResourceResponse.h: Ditto
46734        * rendering/RenderThemeMac.mm: Ditto
46735
467362007-03-24  Mitz Pettel  <mitz@webkit.org>
46737
46738        Fix for <rdar://problem/5086797>, layoutPending is now reporting incorrect results, which will lead
46739        to all sorts of layout issues.  This is in bugzilla as 13179.
46740
46741        Reviewed by hyatt
46742
46743        - fix http://bugs.webkit.org/show_bug.cgi?id=13179
46744          REGRESSION (r20410): In debug builds, loading a certain page is suspended until redisplay is forced
46745
46746        Moved the root->needsLayout() check from layoutPending() to needsLayout()
46747        to restore the behavior before r20324.
46748
46749        * page/FrameView.cpp:
46750        (WebCore::FrameView::layoutPending):
46751        (WebCore::FrameView::needsLayout):
46752
467532007-03-24  Mitz Pettel  <mitz@webkit.org>
46754
46755        Reviewed by Adele.
46756
46757        - fix http://bugs.webkit.org/show_bug.cgi?id=13180
46758              <rdar://problem/5084478>
46759          Another debug build crash from ASSERTION FAILED: !needsLayout()
46760
46761        No test possible because updateRendering() is always called after script
46762        execution.
46763
46764        * page/FrameView.cpp:
46765        (WebCore::FrameView::layout): Get the layout root after calling recalcStyle()
46766        since a style recalc may result in needing to do start layout at the root.
46767
467682007-03-24  Nikolas Zimmermann  <zimmermann@kde.org>
46769
46770        Not reviewed. Build fix.
46771
46772        Fix FloatRect vs. IntRect confusion.
46773
46774        * rendering/RenderSVGImage.cpp:
46775        (WebCore::RenderSVGImage::nodeAtPoint):
46776
467772007-03-25  Mark Rowe  <mrowe@apple.com>
46778
46779        Fix incorrect radar number.
46780
46781        * platform/network/mac/ResourceHandleMac.mm:
46782        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
46783
467842007-03-23  Nikolas Zimmermann  <zimmermann@kde.org>
46785
46786        Reviewed by Oliver.
46787
46788        Fix all known RenderSVGImage problems.
46789
46790        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12126 (RenderSVGImage seems to suffer from integer overflow)
46791        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12442 (raster images disappearing during script execution (SVG))
46792        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12572 (WebKit does not properly invalidate image region after image load)
46793
46794        Added test: svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html
46795
46796        In RenderSVGImage::paint, do not call shouldPaint() as this will never work properly for SVG renderers, as shouldPaint
46797        doesn't take into account any special SVG transformation (localTransform/absoluteTransform). Just remove the call.
46798
46799        Fix hit detection on RenderSVGImage - it didn't work properly at all. No idea why I didn't notice before.
46800        Thanks Andreas Neumann once again for writing excellent bug reports and pointing me to them :-)
46801
46802        The carto.net navigation tools work as expected now, and also the "dock like" image effect example.
46803
46804        * rendering/RenderSVGImage.cpp:
46805        (WebCore::RenderSVGImage::paint):
46806        (WebCore::RenderSVGImage::nodeAtPoint):
46807
468082007-03-24  Mitz Pettel  <mitz@webkit.org>
46809
46810        Reviewed by Dave Hyatt.
46811
46812        - http://bugs.webkit.org/show_bug.cgi?id=13177
46813          Suppress control characters in the ATSUI code path
46814
46815        * platform/mac/FontMac.mm:
46816        (WebCore::overrideLayoutOperation):
46817        (WebCore::ATSULayoutParameters::initialize):
46818
468192007-03-24  David Hyatt  <hyatt@apple.com>
46820
46821        Fix for <rdar://problem/5086400>, images scrolled offscreen continue to animate.  Safari 2 would
46822        halt animations when images were no longer visible.
46823
46824        Reviewed by mjs, olliej
46825
46826        * platform/graphics/BitmapImage.cpp:
46827        (WebCore::BitmapImage::advanceAnimation):
46828
468292007-03-24  David Hyatt  <hyatt@apple.com>
46830
46831        Fix for <rdar://problem/508328>, sluggish text entry in search field.  Make sure
46832        our size actually changed before we decide to do a full repaint because of background/border
46833        complexities.
46834
46835        Reviewed by aroben
46836
46837        * rendering/RenderObject.cpp:
46838        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
46839
468402007-03-23  Dave Hyatt  <hyatt@apple.com>
46841
46842        Fix for <rdar://problem/5048219>, spurious glyphs in gmail.   This is bugzilla bug 13136, which
46843        will remain open to cover patching the complex text path.
46844        
46845        Reviewed by aroben
46846
46847        * platform/Font.cpp:
46848        (WebCore::Font::glyphDataForCharacter):
46849        * platform/Font.h:
46850        (WebCore::Font::treatAsZeroWidthSpace):
46851        * platform/GlyphPageTreeNode.cpp:
46852        (WebCore::GlyphPageTreeNode::initializePage):
46853
468542007-03-23  Mitz Pettel  <mitz@webkit.org>
46855
46856        Reviewed by Adele.
46857
46858        - fix http://bugs.webkit.org/show_bug.cgi?id=13153
46859          REGRESSION: Visual highlighting of pre-populated blank line in textarea is broken
46860
46861        - fix a bug where selecting across a soft line break did not highlight to
46862          the end of the first line if it contained skipped whitespace
46863
46864        Test: fast/text/selection-hard-linebreak.html
46865
46866        * rendering/InlineTextBox.cpp:
46867        (WebCore::InlineTextBox::selectionState): Changed to treat a selection that ends on the
46868        end of a hard line break as if it ends after the line break. Fixed the case of a selection
46869        that starts and ends in the same text object as the box but does not intersect it
46870        to return SelectionNone instead of selectionBoth.
46871
468722007-03-23  Mitz Pettel  <mitz@webkit.org>
46873
46874        Reviewed by Adele.
46875
46876        - fix http://bugs.webkit.org/show_bug.cgi?id=13124
46877          REGRESSION: Reproducible crash in Widget::getView
46878
46879        Test: fast/frames/hover-timer-crash.html
46880
46881        * page/Frame.cpp:
46882        (WebCore::Frame::setView): Added a call to EventHandler::clear().
46883
468842007-03-23  Justin Garcia  <justin.garcia@apple.com>
46885
46886        Reviewed by adele
46887
46888        <rdar://problem/5078739> 
46889        Crash in in ReplaceSelectionCommand if the fragment contains only a style span
46890
46891        * editing/ReplaceSelectionCommand.cpp:
46892        (WebCore::ReplaceSelectionCommand::doApply): Check 
46893        for an empty fragment after removing a redundant
46894        style span instead of before.
46895
468962007-03-23  David Hyatt  <hyatt@apple.com>
46897
46898        <rdar://problem/5085063>
46899
46900        Fix non-looping animation on cuteoverload.com. Just always flush
46901        decoded data for large animated images to avoid our cache getting
46902        out of sync with the image source.
46903
46904        Reviewed by ggaren
46905
46906        * platform/graphics/BitmapImage.cpp:
46907        (WebCore::BitmapImage::advanceAnimation):
46908
469092007-03-23  Adele Peterson  <adele@apple.com>
46910
46911        Reviewed by Darin.
46912
46913        Fix for <rdar://problem/5061024> REGRESSION: Returning false from onkeypress event on Input is ignored when key is Tab
46914        http://bugs.webkit.org/show_bug.cgi?id= 13020
46915
46916        No known way to add a layout test for this.  We would need a way to know exactly how the event was consumed.
46917
46918        * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler):
46919          If the keypress event has its default behavior prevented, then we should consider the keydown event handled.
46920
469212007-03-23  Justin Garcia  <justin.garcia@apple.com>
46922
46923        Reviewed by darin
46924
46925        <rdar://problem/5080333> 
46926        REGRESSION: Selection changes when changing the alignment of an image
46927        
46928        Regression occurred when we started using moveParagraphs
46929        to move content in applyBlockStyle.  moveParagraphs 
46930        moves by copying, deleting and reinserting content, and
46931        so must be accompanied by selection preservation code.
46932        That code uses rangeFromLocationAndLength and rangeLength,
46933        which use TextIterators, which don't emit anything for images 
46934        and other replaced elements, causing this bug.
46935
46936        * editing/ApplyStyleCommand.cpp:
46937        (WebCore::ApplyStyleCommand::applyBlockStyle): Ask rangeLength 
46938        and rangeFromLocationAndLength to request that their
46939        TextIterators emit spaces for replaced elements.
46940        Use rangeCompliantEquivalent()s when creating a Range from
46941        VisiblePositions, since some VisiblePositions have illegal
46942        deepEquivalent()s.
46943        * editing/CompositeEditCommand.cpp:
46944        (WebCore::CompositeEditCommand::moveParagraphs): Ditto.
46945        * editing/TextIterator.cpp:
46946        (WebCore::TextIterator::TextIterator):
46947        (WebCore::TextIterator::handleReplacedElement): Emit
46948        a space if requested.
46949        (WebCore::TextIterator::representNodeOffsetZero): Emit
46950        ranges before m_node, not around m_lastTextNode.  These
46951        ranges should represent the part of the document associated
46952        with the emitted character. 
46953        (WebCore::TextIterator::rangeLength): Take in the new bool.
46954        (WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
46955        Also, don't loop an extra time after finding the end of the
46956        range when we're looking for zero length ranges.  This appeared
46957        to be a workaround for the bugs fixed in representNodeOffsetZero
46958        in this patch.
46959        * editing/TextIterator.h:
46960
469612007-03-24  Mark Rowe  <mrowe@apple.com>
46962
46963        Rubber-stamped by Darin.
46964
46965        * Configurations/WebCore.xcconfig: Remove unnecessary INFOPLIST_PREPROCESS.
46966
469672007-03-23  Darin Adler  <darin@apple.com>
46968
46969        * html/HTMLBodyElement.cpp: Fix comment typo.
46970
469712007-03-23  Adam Treat  <adam@staikos.net>
46972
46973        Reviewed and committed by George.
46974
46975        Patch from Adam Treat to make the Qt build work without SVG and XSLT.
46976        XMLNames is required in any case.
46977
46978        * WebCore.pro:
46979
469802007-03-23  Darin Adler  <darin@apple.com>
46981
46982        Reviewed by Hyatt.
46983
46984        - <rdar://problem/5074439> handle margins on frame and iframe elements
46985          without involving FrameView, FrameLoader, etc.
46986
46987        * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::insertedIntoDocument):
46988        Grab the margin from the frame directly here. There was no real benefit
46989        to doing this via FrameView. Later we can delete quite a bit of unneeded code
46990        here and in WebKit that exists only to set up the margin values in FrameView,
46991        which are now unused.
46992
469932007-03-23  Adele Peterson  <adele@apple.com>
46994
46995        Reviewed by Darin.
46996
46997        Fix for <rdar://problem/5080428> REGRESSION: getting value for hidden input element fails after the fix for Bug 11866
46998        http://bugs.webkit.org/show_bug.cgi?id=13121
46999
47000        Rolled out the change for 11866 that made hidden input elements store the value separately from the value attribute.
47001        Added an m_originalValue field that gets set when the element is done being parsed (in closeRenderer).  In reset,
47002        use the m_originalValue for hidden input elements.
47003
47004        * html/HTMLInputElement.cpp:
47005        (WebCore::HTMLInputElement::closeRenderer):
47006        (WebCore::HTMLInputElement::reset):
47007        (WebCore::HTMLInputElement::setValue):
47008        (WebCore::HTMLInputElement::storesValueSeparateFromAttribute):
47009        * html/HTMLInputElement.h:
47010
470112007-03-23  Mitz Pettel  <mitz@webkit.org>
47012
47013        Reviewed by Dave Hyatt.
47014
47015        - fix http://bugs.webkit.org/show_bug.cgi?id=13157
47016              <rdar://problem/5083995>
47017          List markers positioned incorrectly and don't repaint properly on Oxford homepage
47018
47019        Test: fast/lists/marker-image-error.html
47020
47021        * rendering/RenderListMarker.cpp:
47022        (WebCore::RenderListMarker::imageChanged): Mark ourselves for relayout if
47023        the image failed to load, since that means we will use a bullet instead.
47024
470252007-03-23  Zack Rusin  <zrusin@trolltech.com>
47026
47027        Fix the compile.
47028
47029        * platform/graphics/qt/ImageSourceQt.cpp:
47030
470312007-03-22  Dave Hyatt  <hyatt@apple.com>
47032
47033        Fix for <rdar://problem/5083072>.
47034
47035        * page/Frame.cpp:
47036        (WebCore::Frame::setPrinting):
47037        (WebCore::Frame::forceLayoutWithPageWidthRange):
47038        * page/Frame.h:
47039        * page/mac/WebCoreFrameBridge.mm:
47040        (-[WebCoreFrameBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
47041
470422007-03-22  Anders Carlsson  <acarlsson@apple.com>
47043
47044        Reviewed by Ada.
47045
47046        <rdar://problem/5074974>
47047        CrashTracer: [USER] repro crash in Safari at com.apple.WebCore: WebCore::FrameLoader::activeDocumentLoader const + 6
47048        
47049        * loader/mac/NetscapePlugInStreamLoaderMac.mm:
47050        (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
47051        Don't use ResourceResponse:isHTTP here since that only looks at the protocol instead of if the response came from a 
47052        HTTP server (and not a web archive).
47053
470542007-03-22  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
47055
47056        Not reviewed - gdk build fix.
47057
47058        * platform/graphics/cairo/ImageSourceCairo.cpp:
47059
470602007-03-22  Dave Hyatt  <hyatt@apple.com>
47061
47062        Fix for <rdar://problem/5083473>.  Make sure wheeling still forwards to the frame view even
47063        when no node is hit.  Technically not ever hitting a node is a regression from the RenderView
47064        size changes (making it be the size of the initial containing block according to CSS2.1), but
47065        we should still handle this case gracefully in case it comes up again.
47066       
47067        Reviewed by olliej
47068
47069        * page/EventHandler.cpp:
47070        (WebCore::EventHandler::handleWheelEvent):
47071
470722007-03-22  Justin Garcia  <justin.garcia@apple.com>
47073
47074        Reviewed by kevin
47075
47076        <rdar://problem/5081257> 
47077        REGRESSION: New Mail signatures start out empty
47078
47079        * editing/VisiblePosition.cpp:
47080        (WebCore::VisiblePosition::canonicalPosition): Allow
47081        descent from positions inside the document into an 
47082        editable body.
47083
470842007-03-22  Brady Eidson  <beidson@apple.com>
47085
47086        Reviewed by Adele and John
47087
47088        <rdar://5043528> - Prepare for new API
47089        
47090        * platform/network/ResourceHandle.cpp:
47091        (WebCore::ResourceHandle::clearAuthentication): Clear CF type
47092
470932007-03-22  Beth Dakin  <bdakin@apple.com>
47094
47095        Patch by Hyatt, reviewed and committed by me.
47096
47097        Does not reproduce consistently, so a layout test does not seem 
47098        possible.
47099
47100        Fix for <rdar://problem/5082421> Constantly hitting ASSERT(!
47101        needsLayout()) in RenderView::paint()
47102
47103        * page/FrameView.cpp:
47104        (WebCore::FrameView::layoutPending): It is not enough to ask if the 
47105        layout timer is active. There may be times that we don't have a 
47106        body yet so we cannot schedule layout yet, but the root still needs 
47107        layout.  
47108
471092007-03-22  John Sullivan  <sullivan@apple.com>
47110
47111        Reviewed by Darin
47112        
47113        Followup for recent fix to 5079700, found by assertion added to Safari.
47114
47115        * page/mac/FrameMac.mm:
47116        (WebCore::Frame::searchForLabelsBeforeElement):
47117        Fixed another place in this method where an empty NSString was being returned instead of nil.
47118        Cleaned up the style a little too.
47119
471202007-03-22  David Hyatt  <hyatt@apple.com>
47121
47122        Remove unnecessary destroyFrameAtIndex call.  Now that we throw away
47123        the image source, it is no longer needed.
47124
47125        Reviewed by beth
47126
47127        * platform/graphics/BitmapImage.cpp:
47128        (WebCore::BitmapImage::destroyDecodedData):
47129
471302007-03-22  David Harrison  <harrison@apple.com>
47131
47132        Reviewed by Geoff, Darin.
47133
47134        <rdar://problem/5077892> In RapidWeaver 3.5.1, a crash occurs when attempting to load Safari Bookmarks in iMedia Browser
47135        
47136        * platform/mac/ThreadCheck.mm:
47137        (WebCore::_WebCoreThreadViolationCheck):
47138        Change default on Tiger to NSLog rather than raise an exception.
47139
471402007-03-22  Darin Adler  <darin@apple.com>
47141
47142        Reviewed by Brady.
47143
47144        - use binary_search instead of hash table; slightly better performance and
47145          less memory use
47146
47147        * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::portAllowed):
47148        Use binary_search.
47149
471502007-03-22  Darin Adler  <darin@apple.com>
47151
47152        Reviewed by Adele.
47153
47154        - fix <rdar://problem/5074630> detachChildren call should move from WebKit to WebCore
47155
47156        * loader/FrameLoader.cpp: (WebCore::FrameLoader::setDocumentLoader):
47157        Add a call to detachChildren() after the call to prepareForDataSourceReplacement().
47158        There was no reason for this crucial loading step to be left to the client.
47159
471602007-03-22  David Hyatt  <hyatt@apple.com>
47161
47162        Minor refactoring and cleanup of the bridge calls that want to control layout settings on the RenderView.
47163        Have the bridge talk through the FrameView instead of just asking for the RenderView directly.
47164
47165        Add an assert to help catch situations where the RenderView needs layout at paint time, since this is a known
47166        catastrophic scenario that will (much of the time) result in a crash in RenderTableSection::paint.
47167
47168        Reviewed by aroben
47169
47170        * page/FrameView.cpp:
47171        (WebCore::FrameView::adjustViewSize):
47172        (WebCore::FrameView::needsLayout):
47173        (WebCore::FrameView::setNeedsLayout):
47174        * page/FrameView.h:
47175        * page/mac/WebCoreFrameBridge.mm:
47176        (-[WebCoreFrameBridge needsLayout]):
47177        (-[WebCoreFrameBridge setNeedsLayout]):
47178        * rendering/RenderView.cpp:
47179        (WebCore::RenderView::paint):
47180
471812007-03-21  Geoffrey Garen  <ggaren@apple.com>
47182
47183        Reviewed by Beth Dakin.
47184        
47185        Re-worked the fix in r20375. 'M' and 'm' are not the only commands that
47186        accept "extra" coordinates -- virtually all commands accept them.
47187
47188        * ksvg2/svg/SVGParserUtilities.cpp:
47189        (WebCore::SVGPathParser::parseSVG):
47190
471912007-03-21  David Harrison  <harrison@apple.com>
47192
47193        Reviewed by hyatt.
47194
47195        <rdar://problem/5072460> CrashTracer: [USER] 1 crashes in Xcode at com.apple.ImageIO.framework: getBandProcPNG + 168
47196
47197        An NSData object was being alloc/init'd, then returned callers who cast the pointer as a
47198        CFDataRef, including calling CFRelease on it. The problem is that under garbage collection, the NS
47199        retain count is ignored (it's always 0), but the CFRetain and CFRelease are not ignored. This
47200        caused the object to be over-released. The solution that works in both GC and non-GC is to "transfer"
47201        the initial NS retain count to the CF retain count, using HardRetainWithNSRelease.
47202        
47203        The creator of the NSData was SharedBuffer::createNSData. The callers were PDFDocumentImage::dataChanged()
47204        and ImageSource::setData(). This particular crash involved the ImageSource::setData() case.
47205
47206        * platform/SharedBuffer.h:
47207        Declare createCFData().
47208        
47209        * platform/graphics/cg/ImageSourceCG.cpp:
47210        (WebCore::ImageSource::setData):
47211        Call createCFData instead of createNSData.
47212        
47213        * platform/graphics/cg/PDFDocumentImage.cpp:
47214        (WebCore::PDFDocumentImage::dataChanged):
47215        Call createCFData instead of createNSData.
47216        
47217       * platform/mac/SharedBufferMac.mm:
47218        (WebCore::SharedBuffer::createCFData):
47219        Implement createCFData(). Use HardRetainWithNSRelease for gc safety.
47220        
472212007-03-21  Mitz Pettel  <mitz@webkit.org>
47222
47223        Reviewed by Darin.
47224
47225        - fix http://bugs.webkit.org/show_bug.cgi?id=13145
47226          Regression: Scrollbar not resizing after display none
47227
47228        Test: fast/dynamic/view-overflow.html
47229
47230        * rendering/RenderView.cpp:
47231        (WebCore::RenderView::layout): Reset overflowHeight() and overflowWidth()
47232        before calling docHeight() and docWidth(), since the former act as a lower
47233        bound for the latter.
47234
472352007-03-21  Geoffrey Garen  <ggaren@apple.com>
47236
47237        Reviewed by Beth Dakin.
47238        
47239        A little cleanup based work I've been doing on the SVG parsers.
47240
47241        * ksvg2/svg/SVGParserUtilities.h:
47242        (WebCore::skipString):
47243        * ksvg2/svg/SVGPreserveAspectRatio.cpp: Moved checkString into
47244        SVGParserUtilities.h, so it could be with all its friends. Renamed 
47245        "checkString" to "skipString" to match the rest of the code and to be 
47246        clear about which functions move the buffer pointer.
47247        (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio):
47248        * ksvg2/svg/SVGTransformable.cpp:
47249        (WebCore::SVGTransformable::parseTransformAttribute): Changed gotos into 
47250        returns. Removed unnecessary magic number.
47251
472522007-03-21  Geoffrey Garen  <ggaren@apple.com>
47253
47254        Reviewed by Beth Dakin.
47255        
47256        Fixed <rdar://problem/5078471> SVG rgb color parser runs past end of 
47257        buffer when running fuzzing test
47258
47259        * ksvg2/svg/SVGColor.cpp:
47260        (WebCore::parseNumberOrPercent): Check for past the end condition.
47261        (WebCore::SVGColor::colorFromRGBColorString): Reversed "read past end
47262        of buffer, then check if you're past the end" logic.
47263
472642007-03-21  Geoffrey Garen  <ggaren@apple.com>
47265
47266        Reviewed by Beth Dakin.
47267        
47268        Fixed <rdar://problem/5079410> SVG path parser hangs, exhausts memory when 
47269        running fuzzer test
47270
47271        * ksvg2/svg/SVGParserUtilities.cpp:
47272        (WebCore::SVGPathParser::parseSVG): Don't assume that extra digits are
47273        always preceded by an 'M' or an 'm'.
47274
472752007-03-21  John Sullivan  <sullivan@apple.com>
47276
47277        Reviewed by Adam
47278        
47279        - fixed <rdar://problem/5079700> REGRESSION (r19702): Name/password aren't autofilled 
47280          or saved for .Mac homepage login
47281
47282        * page/mac/FrameMac.mm:
47283        (WebCore::Frame::searchForLabelsBeforeElement):
47284        don't count empty strings as valid results
47285
472862007-03-21  Justin Garcia  <justin.garcia@apple.com>
47287
47288        Reviewed by darin
47289
47290        * editing/markup.cpp:
47291        (WebCore::styleFromMatchedRulesAndInlineDecl): 
47292        Release the RefPtr to avoid increasing/decreasing
47293        the refcount unnecessarily.
47294        (WebCore::propertyMissingOrEqualToNone): Added and used
47295        instead of converting values to strings.
47296        (WebCore::elementHasTextDecorationProperty): 
47297        (WebCore::createMarkup):
47298
472992007-03-21  Justin Garcia  <justin.garcia@apple.com>
47300
47301        Reviewed by oliver
47302
47303        <rdar://problem/5075944> 
47304        REGRESSION: Partially selected underlined content pastes as plain text
47305        
47306        We stopped adding markup for all the ancestors
47307        of lastClosed up to the commonAncestorBlock
47308        because it was adding a lot of unnecessary markup.
47309        This caused us to lose underlining when copying a 
47310        partially selected underlined element (even though 
47311        we put all styles that the copied markup inherits 
47312        into a style span, because the text-decoration 
47313        isn't inheritable).
47314
47315        * editing/markup.cpp:
47316        (WebCore::styleFromMatchedRulesAndInlineDecl): Moved
47317        code here.
47318        (WebCore::elementHasTextDecorationProperty): Added.
47319        (WebCore::createMarkup): If the copied markup has a
47320        text-decoration because some common ancestor has
47321        a text-decoration property set, include that ancestor
47322        and all its descendants in the copied markup.
47323
473242007-03-21  Oliver Hunt  <oliver@apple.com>
47325
47326        Reviewed by Antti.
47327
47328        Update a few SVG attribute parsers to be more defensive against
47329        reading beyond the end of input. 
47330
47331        Fixes rdar://problem/5077218 -- SVG transform parser runs past
47332        end of buffer when running fuzzing test
47333
47334        * ksvg2/svg/SVGParserUtilities.cpp:
47335        (WebCore::SVGPathParser::parseSVG):
47336        * ksvg2/svg/SVGParserUtilities.h:
47337        (WebCore::skipOptionalSpacesOrDelimiter):
47338        * ksvg2/svg/SVGTransformable.cpp:
47339        (WebCore::parseTransformParamList):
47340        (WebCore::SVGTransformable::parseTransformAttribute):
47341
473422007-03-21  Alexey Proskuryakov  <ap@webkit.org>
47343
47344        Reviewed by Mitz.
47345
47346        http://bugs.webkit.org/show_bug.cgi?id=13140
47347        Crash after loading SVG fragment with XMLHttpRequest (Yosemite Map Geology Layer)
47348
47349        Test: svg/carto.net/frameless-svg-parse-error.html
47350
47351        * ksvg2/misc/SVGDocumentExtensions.cpp:
47352        (WebCore::SVGDocumentExtensions::reportError): Added a null check.
47353        (WebCore::SVGDocumentExtensions::reportWarning): Ditto.
47354
473552007-03-21  Beth Dakin  <bdakin@apple.com>
47356
47357        Reviewed by Geoff.
47358
47359        Fix for <rdar://problem/5072678> Crash in
47360        RenderLayer::scrollRectToVisible with MallocScribble enabled
47361
47362        I tried to fix this earlier today but my fix caused a regression
47363        scrolling through RSS pages. It turns out that sometimes scroll
47364        events need to propagate immediately, and sometimes they must be
47365        delayed or they risk deleting objects that are expected to be
47366        around after the event has propagated. Mitz's original fix made
47367        sheduleEvent() only delay events that happen during layout. This
47368        fix marks two other places in addition to layout where events also
47369        need to be delayed. These two places are places that were marked
47370        with FIXMEs that Mitz removed in his original patch. (There was a
47371        third FIXME in RenderLayer::updateScrollInfoAfterLayout() but that
47372        case is only called through layout and is covered by Mitz's
47373        original patch.)
47374
47375        * page/FrameView.cpp:
47376        (WebCore::FrameView::~FrameView): Added assertion.
47377        (WebCore::FrameView::layout): Call new functions to increment and 
47378        decrement the queued events count.
47379        (WebCore::FrameView::pauseScheduledEvents):
47380        (WebCore::FrameView::resumeScheduledEvents): Decrement queued 
47381        events count and dispatch events if the count has zeroed.
47382        * page/FrameView.h:
47383        * rendering/RenderLayer.cpp:
47384        (WebCore::RenderLayer::scrollRectToVisible):
47385        (WebCore::Marquee::start):
47386
473872007-03-21  Mitz Pettel  <mitz@webkit.org>
47388
47389        Reviewed by John Sullivan.
47390
47391        - fix http://bugs.webkit.org/show_bug.cgi?id=13130
47392          REGRESSION: Sometimes a frame resizer keeps following the mouse after mouseup
47393
47394        * rendering/RenderFrameSet.cpp:
47395        (WebCore::RenderFrameSet::userResize): Reordered the code to allow resizing
47396        to be terminated by a mouseup event regardless of whether the frameset needs
47397        layout.
47398
473992007-03-20  Anders Carlsson  <acarlsson@apple.com>
47400
47401        Reviewed by Oliver.
47402
47403        <rdar://problem/5077252> 
47404        In NetNewsWire 2.1.1 and 3.0d62, a crash occurs after triple-clicking a link on the page
47405        
47406        * loader/FrameLoader.cpp:
47407        (WebCore::FrameLoader::load):
47408        Move the m_inStopAllLoaders check to the load function that's common for loading a request or substitute data.
47409
474102007-03-20  Brady Eidson  <beidson@apple.com>
47411
47412        Reviewed by Anders.
47413
47414        <rdar://problem/5073391> and http://bugs.webkit.org/show_bug.cgi?id=13137
47415
47416        Crash in IconDatabase when private browsing is enabled.
47417
47418        The problem was caused by http://trac.webkit.org/projects/webkit/changeset/20182 
47419        which changed many uses of char[] and Vector<char> to SharedBuffer.  The patch
47420        tended to literally replace a Vector<char> with RefPtr<SharedBuffers> but forgot
47421        to enforce the concept that Vector<char>'s always exist, whereas RefPtr<SharedBuffers>
47422        can be null.  This led to derefs.
47423
47424        I took the opportunity to rework the iconDB functions to live in a SharedBuffer 
47425        world, as that didn't exist when they were originally written - now they just return
47426        SharedBuffers instead of taking a Vector<char>& as a parameter
47427
47428        * loader/icon/IconDatabase.cpp:
47429        (WebCore::IconDatabase::imageDataForIconURL): Return a SharedBuffer
47430        (WebCore::IconDatabase::iconForPageURL): Null check the SharedBuffer before asking
47431          it if it's empty
47432        (WebCore::IconDatabase::imageDataForIconURLQuery): Return a new SharedBuffer
47433
47434        * loader/icon/IconDatabase.h: Return SharedBuffer's instead of taking Vector<char>&'s
47435
474362007-03-20  Adam Roben  <aroben@apple.com>
47437
47438        Rubberstamped by Adele.
47439
47440        Roll out r20348 because it was causing crashes.
47441
47442        * page/FrameView.cpp:
47443        (WebCore::FrameViewPrivate::FrameViewPrivate):
47444        (WebCore::FrameView::layout):
47445        (WebCore::FrameView::scheduleEvent):
47446
474472007-03-20  Timothy Hatcher  <timothy@apple.com>
47448
47449        Reviewed by Kevin Decker.
47450
47451        Rolling out part of r19828 that caused a scrolling regression in Mail.
47452
47453        <rdar://problem/4820817> Message jumps around when trying to select text
47454
47455        * platform/mac/ScrollViewMac.mm:
47456        (WebCore::ScrollView::visibleContentRect):
47457        (WebCore::ScrollView::updateContents):
47458
474592007-03-20  Brady Eidson  <beidson@apple.com>
47460
47461        Reviewed by John
47462
47463        <rdar://5071341> - Crash in IconLoader::finishLoading()
47464        
47465        Though the reproducibility of the crash is still elusive, there's been a crasher likely uncovered 
47466        Hyatt's recent caching changings to the IconLoader.  This crash tends to hit on sites without favicons,
47467        that serve up complex 404 pages, often when the load is cancelled or redirected.  Occasionally, it *seems*
47468        the IconLoader is getting failed/cancelled twice.
47469        
47470        This patch adds some assertions and a "fail gracefully in a release build" check that will have to
47471        serve us until we know more about the cause.
47472
47473        * loader/icon/IconLoader.cpp:
47474        (WebCore::IconLoader::didFail): Add an assertion to catch this case
47475        (WebCore::IconLoader::finishLoading): Add an assertion to catch the case, and fail
47476          gracefully in debug builds.  Also add an efficiency check to not commit to the DB if there is no
47477          IconURL
47478
474792007-03-20  Antti Koivisto  <antti@apple.com>
47480
47481        Reviewed by Darin.
47482
47483        - fix http://bugs.webkit.org/show_bug.cgi?id=10747
47484        REGRESSION: Using two fingers on a trackpad to scroll inside a text area makes the whole page move
47485        <rdar://problem/5045710>
47486        
47487        Eat smooth scroll events in WebCore if pointer is over scrollable area. Not
47488        really a good fix, smooth scrolling should be supported properly. It should do for now.
47489
47490        * page/EventHandler.cpp:
47491        (WebCore::EventHandler::handleWheelEvent):
47492        * rendering/RenderListBox.cpp:
47493        (WebCore::RenderListBox::isScrollable):
47494        * rendering/RenderListBox.h:
47495        * rendering/RenderObject.cpp:
47496        (WebCore::RenderObject::isScrollable):
47497        * rendering/RenderObject.h:
47498        * rendering/RenderTextControl.cpp:
47499        (WebCore::RenderTextControl::isScrollable):
47500        * rendering/RenderTextControl.h:
47501
475022007-03-20  Beth Dakin  <bdakin@apple.com>
47503
47504        Reviewed by Geoff.
47505
47506        Covered by existing test case.
47507
47508        Fix for <rdar://problem/5072678> Crash in 
47509        RenderLayer::scrollRectToVisible with MallocScribble enabled
47510
47511        This removes some code that was added with http://bugs.webkit.org/
47512        show_bug.cgi?id=8360. This code was not needed to fix that bug, but 
47513        the idea behind it was that there are times when it is safe for 
47514        scheduleEvent() to propagate the event immediately. The 
47515        MallocScribble crash revealed that this assumption was a bit too 
47516        broad; the cause of the crash was that we were propagating events 
47517        immediately when it was not safe. Mitz and I discussed this online 
47518        and we agree that the safest solution is to revert to the old 
47519        behavior here, and always delay the propagation of the event. 
47520
47521        * page/FrameView.cpp:
47522        (WebCore::FrameViewPrivate::FrameViewPrivate):
47523        (WebCore::FrameView::layout):
47524        (WebCore::FrameView::scheduleEvent):
47525
475262007-03-20  Brady Eidson  <beidson@apple.com>
47527
47528        Reviewed by John Sullivan
47529
47530        Add some very helpful logging to the IconLoader's SubresourceLoaderClient impl.
47531
47532        * loader/icon/IconLoader.cpp:
47533        (WebCore::IconLoader::didReceiveResponse):
47534        (WebCore::IconLoader::didReceiveData):
47535        (WebCore::IconLoader::didFail):
47536        (WebCore::IconLoader::didFinishLoading):
47537
475382007-03-20  Justin Garcia  <justin.garcia@apple.com>
47539
47540        Reviewed by darin
47541
47542        <rdar://problem/5071074> 
47543        REGRESSION: Links are pasted as plain text at certain positions
47544        
47545        moveParagraphs calls createMarkup without annotation, which leaves
47546        out anchor elements that aren't fully selected.
47547
47548        * editing/CompositeEditCommand.cpp:
47549        (WebCore::CompositeEditCommand::moveParagraphs): We don't want 
47550        createMarkup to do full annotation here.  Doing so could include 
47551        special ancestor blocks, which would prevent the copied content 
47552        from appearing in the destination paragraph when it's re-inserted.  
47553        Annotation would also inline styles from style sheets,  which is 
47554        unnecessary because the content is being moved to the same 
47555        document it's being moved from.
47556        Added a new bool to createMarkup that when true allows markup for 
47557        special ancestors as long as they are inline when annotation is off.
47558        * editing/markup.cpp:
47559        (WebCore::createMarkup): Don't set specialCommonAncestor if annotation
47560        is off, unless it's inline and we've been told it's ok to include such
47561        elements.
47562        * editing/markup.h:
47563
475642007-03-20  Alexey Proskuryakov  <ap@webkit.org>
47565
47566        Reviewed by Darin.
47567
47568        http://bugs.webkit.org/show_bug.cgi?id=12497
47569        Implement XPath result ordering.
47570
47571        XPath::NodeVector typedef is replaced with a real XPath::NodeSet class that knows how 
47572        to sort itself, and can remember whether it has been already sorted.
47573
47574        * CMakeLists.txt:
47575        * WebCore.pro:
47576        * WebCore.xcodeproj/project.pbxproj:
47577        * WebCoreSources.bkl:
47578        Added XPathNodeSet files.
47579
47580        * xml/XPathExpression.cpp: Fixed includes.
47581
47582        * xml/XPathFunctions.cpp:
47583        (WebCore::XPath::FunId::evaluate): Mark the resulting node-set as unsorted.
47584        (WebCore::XPath::FunLocalName::evaluate): Replacing NodeVector with NodeSet.
47585        (WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
47586        (WebCore::XPath::FunName::evaluate): Ditto.
47587        (WebCore::XPath::FunCount::evaluate): Ditto.
47588        (WebCore::XPath::FunSum::evaluate): Ditto.
47589
47590        * xml/XPathNodeSet.cpp: Added.
47591        (WebCore::XPath::parentWithDepth):
47592        (WebCore::XPath::sortBlock):
47593        (WebCore::XPath::NodeSet::sort): Sort the node-set in document order.
47594        (WebCore::XPath::NodeSet::reverse): Reverse the order (useful for making axes such as 
47595        parent or ancestor sorted).
47596        (WebCore::XPath::NodeSet::firstNode): Returns the first node in document order; currently
47597        implemented via fully sorting the node-set, but this can obviously be optimized.
47598        (WebCore::XPath::NodeSet::anyNode): Added for symmetry with firstNode().
47599        
47600        * xml/XPathNodeSet.h: Added.
47601        (WebCore::XPath::NodeSet::NodeSet):
47602        (WebCore::XPath::NodeSet::operator=):
47603        (WebCore::XPath::NodeSet::size):
47604        (WebCore::XPath::NodeSet::isEmpty):
47605        (WebCore::XPath::NodeSet::operator[]):
47606        (WebCore::XPath::NodeSet::reserveCapacity):
47607        (WebCore::XPath::NodeSet::clear):
47608        (WebCore::XPath::NodeSet::swap):
47609        (WebCore::XPath::NodeSet::append):
47610        (WebCore::XPath::NodeSet::markSorted):
47611        (WebCore::XPath::NodeSet::isSorted):
47612        Most of these methods just call Vector counterparts. 
47613
47614        * xml/XPathParser.cpp: Updated the copyright notice.
47615
47616        * xml/XPathPath.cpp:
47617        (WebCore::XPath::Filter::evaluate): Replacing NodeVector with NodeSet.
47618        (WebCore::XPath::Path::evaluate): Ditto.
47619        (WebCore::XPath::LocationPath::evaluate): Replacing NodeVector with NodeSet. This function
47620        always marks the result as unsorted, because it is hard to tell whether a step breaks node order.
47621        Identifying and implementing special cases when it is not necessary to do so is an important
47622        future optimization.
47623
47624        * xml/XPathPath.h: Replacing NodeVector with NodeSet.
47625        * xml/XPathPredicate.cpp:
47626        (WebCore::XPath::EqTestOp::compare): Replacing NodeVector with NodeSet.
47627        (WebCore::XPath::Union::evaluate): Replacing NodeVector with NodeSet. Currently, Union just
47628        marks the result as unordered; we can consider using merge sort to avoid this.
47629
47630        * xml/XPathResult.cpp:
47631        (WebCore::XPathResult::XPathResult): Replacing NodeVector with NodeSet.
47632        (WebCore::XPathResult::singleNodeValue): Ditto.
47633        (WebCore::XPathResult::snapshotLength): Ditto.
47634        (WebCore::XPathResult::iterateNext): Ditto.
47635        (WebCore::XPathResult::snapshotItem): Ditto.
47636        (WebCore::XPathResult::convertTo): Ditto. Sort the result when requested to.
47637
47638        * xml/XPathResult.h: Replacing NodeVector with NodeSet.
47639
47640        * xml/XPathStep.cpp:
47641        (WebCore::XPath::Step::evaluate): If the input is not sorted, mark the output as such, too.
47642        (WebCore::XPath::Step::nodesInAxis): Fixed a number of bugs when enumerating with an
47643        attribute context node.
47644        (WebCore::XPath::Step::nodeTestMatches): Replacing NodeVector with NodeSet.
47645        * xml/XPathStep.h: Ditto.
47646
47647        * xml/XPathUtil.cpp:
47648        (WebCore::XPath::isValidContextNode): XPath data model doesn't put attribute data into child
47649        nodes, so passing such node as a context could cause problems.
47650
47651        * xml/XPathUtil.h: Removed NodeVector typedef.
47652
47653        * xml/XPathValue.cpp:
47654        (WebCore::XPath::Value::Value):
47655        (WebCore::XPath::Value::toNodeSet):
47656        (WebCore::XPath::Value::toBoolean):
47657        (WebCore::XPath::Value::toNumber):
47658        (WebCore::XPath::Value::toString):
47659        * xml/XPathValue.h:
47660        (WebCore::XPath::Value::):
47661        (WebCore::XPath::Value::isNodeSet):
47662        Replacing NodeVector with NodeSet.
47663
476642007-03-21  Mark Rowe  <mrowe@apple.com>
47665
47666        Build fix.
47667
47668        * bindings/objc/WebScriptObject.mm:
47669        (-[WebScriptObject methodForSelector:]):
47670        (-[WebScriptObject respondsToSelector:]):
47671
476722007-03-21  Mark Rowe  <mrowe@apple.com>
47673
47674        Reviewed by Tim Hatcher.
47675
47676        Fix for http://bugs.webkit.org/show_bug.cgi?id=13129.
47677        Bug 13129: Democracy Player dies in NSException from WebScriptObject on startup.
47678
47679        Some cross-language scripting bridges use the presence of -(int)count to determine
47680        whether to treat objects as sequence-like.  All WebScriptObject's exposed this method
47681        which lead to non-collection WebScriptObject's being mishandled by PyObjC.  We now
47682        expose -count only when the object we wrap looks like a collection from a JavaScript
47683        point of view (eg, it has a length property).
47684
47685        * bindings/objc/WebScriptObject.mm:
47686        (-[WebScriptObject _shouldRespondToCount]):
47687        (-[WebScriptObject methodForSelector:]):
47688        (-[WebScriptObject respondsToSelector:]):
47689        (-[WebScriptObject _count]):
47690        * bindings/objc/WebScriptObjectPrivate.h:
47691
476922007-03-20  Darin Adler  <darin@apple.com>
47693
47694        * page/EventHandler.cpp: (WebCore::EventHandler::handleMouseMoveEvent):
47695        Fix obvious typo in the change from last night -- forgot to assign to the variable.
47696
476972007-03-20  Dave Hyatt  <hyatt@apple.com>
47698
47699        Refactor fonts a bit for portability.
47700       
47701        Reviewed by aroben
47702
47703        * platform/Font.cpp:
47704        (WebCore::Font::drawSimpleText):
47705        (WebCore::Font::drawGlyphBuffer):
47706        (WebCore::Font::floatWidthForSimpleText):
47707        * platform/Font.h:
47708        * platform/FontData.h:
47709        (WebCore::FontData::isSystemFont):
47710        (WebCore::FontData::scriptCache):
47711        * platform/GlyphBuffer.h:
47712        (WebCore::GlyphBuffer::add):
47713
477142007-03-20  Anders Carlsson  <acarlsson@apple.com>
47715
47716        Reviewed by Adam.
47717
47718        Stub out a couple of CFNetwork backend functions.
47719        
47720        * platform/network/ResourceHandle.h:
47721
477222007-03-19  Oliver Hunt  <oliver@apple.com>
47723
47724        Reviewed by Ada.
47725
47726        Protect against possibility of JS detaching a frame (and losing its view)
47727        midway through a mouse move.
47728
47729        * page/EventHandler.cpp:
47730        (WebCore::EventHandler::handleMouseMoveEvent):
47731
477322007-03-19  Alexey Proskuryakov  <ap@webkit.org>
47733
47734        Reviewed by Darin.
47735
47736        http://bugs.webkit.org/show_bug.cgi?id=13107
47737        XPath should raise an exception when trying to parse an unknown function
47738
47739        Test: fast/xpath/invalid-functions.html
47740
47741        * xml/XPathFunctions.cpp:
47742        (WebCore::XPath::createFunction): Return 0 if the function couldn't be created.
47743        * xml/XPathGrammar.y: Handle nulls returned from createFunction().
47744
477452007-03-19  Adele Peterson  <adele@apple.com>
47746
47747        Reviewed by Beth.
47748
47749        Fix for http://bugs.webkit.org/show_bug.cgi?id=13087
47750        <rdar://problem/5064316> REGRESSION: Allow setting the checked attribute in js and in markup for unnamed radio buttons (dominos.com)
47751
47752        Test: fast/forms/radio_checked_name.html
47753
47754        We were matching a WinIE quirk that does not allow a user to check and uncheck an unnamed radio button.  But they still
47755        allow the checked attribute to be set in html, and changed in javascript.  So this change matches that behavior.
47756
47757        * html/HTMLInputElement.cpp:
47758        (WebCore::HTMLInputElement::parseMappedAttribute): We no longer need a special call to setChecked when parsing the name
47759         attribute, since we setChecked will now work with unnamed radio buttons.
47760        (WebCore::HTMLInputElement::preDispatchEventHandler): Added comment.
47761        (WebCore::HTMLInputElement::setChecked): Don't check for the unnamed radio button case here.
47762        (WebCore::HTMLInputElement::postDispatchEventHandler): Don't call setChecked for unnamed radio buttons.
47763        (WebCore::HTMLInputElement::defaultEventHandler): ditto.
47764
477652007-03-19  Adam Roben  <aroben@apple.com>
47766
47767        Rubberstamped by Oliver.
47768
47769        * bridge/JavaScriptStatistics.cpp: Added missing header for
47770        correctness.
47771
477722007-03-19  Andrew Wellington  <proton@wiretapped.net>
47773
47774        Reviewed by Maciej.
47775
47776        Really set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
47777
47778        * WebCore.xcodeproj/project.pbxproj:
47779
477802007-03-19  Justin Garcia  <justin.garcia@apple.com>
47781
47782        Reviewed by darin
47783        
47784        <rdar://problem/5071074> 
47785        REGRESSION: Links that aren't fully selected copy and paste as only text
47786        
47787        We stopped adding markup for all commonAncestorBlocks
47788        and the ancestors of lastClosed up to them because it 
47789        was adding a lot of unnecessary markup.
47790
47791        * editing/markup.cpp:
47792        (WebCore::createMarkup): Also include markup for nodes
47793        up to an enclosing anchor.  Cleaned up the code for
47794        including special common ancestors a bit.
47795
477962007-03-19  Nikolas Zimmermann  <zimmermann@kde.org>
47797
47798        Reviewed by Lars Knoll.
47799
47800        Fix crash when opening a SVG document which contains SVG elements, but no <svg> root element.
47801        Moving the mouse was crashing WebKit. Fixes svg/hixie/dynamic/006.xml.
47802
47803        * rendering/RenderObject.cpp:
47804        (WebCore::RenderObject::updateHitTestResult):
47805
478062007-03-19  Mitz Pettel  <mitz@webkit.org>
47807
47808        Reviewed by Hyatt.
47809
47810        - fix http://bugs.webkit.org/show_bug.cgi?id=13117
47811        REGRESSION (r14658): Flickering text fields when updating via javascript
47812
47813        * page/Frame.cpp:
47814        (WebCore::Frame::forceLayout): Added a flag to allow partial relayout.
47815        * page/Frame.h:
47816        * page/mac/WebCoreFrameBridge.mm:
47817        (-[WebCoreFrameBridge forceLayoutAdjustingViewSize:]): Allow partial relayout
47818        if not adjusting view size.
47819        (-[WebCoreFrameBridge needsLayout]): Changed to check for pending subtree
47820        layout instead of just whether the root needs layout.
47821
478222007-03-18  Nikolas Zimmermann  <zimmermann@kde.org>
47823
47824        Reviewed by Maciej.
47825
47826        Make JS function calls on POD-types (ie. SVGLength) take effect.
47827        Calling ie. newValueInSpecifiedUnits on SVGLength works as expected.
47828
47829        This worked fine before we switched to SVGLength POD type, so this
47830        can be considered as P1 regression fix.
47831
47832        Partly fix svg/hixie/dynamic/005-broken.svg. We match Opera now though
47833        it's not yet completly fixed. Setting baseVal attribute on SVGAnimatedString
47834        doesn't work as expected - needs a seperated fix.
47835
47836        * bindings/scripts/CodeGeneratorJS.pm:
47837
478382007-03-19  Adele Peterson  <adele@apple.com>
47839
47840        Reviewed by Adam.
47841
47842        Adding comments and a little cleanup from my last checkin.
47843
47844        * html/HTMLSelectElement.cpp:
47845        (WebCore::HTMLSelectElement::setSelectedIndex): Removed commented out assert.  Added comment about how we use onChange.
47846        (WebCore::HTMLSelectElement::selectAll): Added comment about how we use saveLastSelection and onChange.
47847        (WebCore::HTMLSelectElement::dispatchFocusEvent): ditto.
47848        (WebCore::HTMLSelectElement::dispatchBlurEvent): ditto.
47849        (WebCore::HTMLSelectElement::menuListDefaultEventHandler): ditto.
47850        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): ditto.
47851        (WebCore::HTMLSelectElement::menuListOnChange): Added assert that usesMenuList() is true.
47852        (WebCore::HTMLSelectElement::listBoxOnChange): Added assert that usesMenuList() is false.
47853        (WebCore::HTMLSelectElement::saveLastSelection): Added early return for menu lists.
47854
478552007-03-19  Mitz Pettel  <mitz@webkit.org>
47856
47857        Reviewed by Tim Hatcher.
47858
47859        - fix http://bugs.webkit.org/show_bug.cgi?id=13091
47860          REGRESSION (r20075): Wrong text style and pixel break in Apple Store Locator HUD
47861
47862        Test: fast/innerHTML/additional-inline-style.html
47863
47864        * editing/markup.cpp:
47865        (WebCore::startMarkup): Changed to add inline style based on CSS rules only
47866        in AnnotateForInterchange mode.
47867
478682007-03-19  Zack Rusin  <zrusin@trolltech.com>
47869
47870        Compile fix.
47871
47872        * platform/qt/ScrollViewQt.cpp:
47873        (WebCore::ScrollView::update):
47874
478752007-03-19  Adam Roben  <aroben@apple.com>
47876
47877        Reviewed by Hyatt and Maciej.
47878
47879        Renamed WebCoreJavaScript to JavaScriptStatistics and made it C++ as
47880        part of <rdar://problem/5071653>.
47881
47882        All layout tests pass.
47883
47884        * WebCore.exp: Updated.
47885        * WebCore.xcodeproj/project.pbxproj: Updated.
47886        * bridge/JavaScriptStatistics.cpp: Moved from
47887        bridge/mac/WebCoreJavaScript.mm, and converted to C++.
47888        (WebCore::collect):
47889        (WebCore::JavaScriptStatistics::objectCount):
47890        (WebCore::JavaScriptStatistics::interpreterCount):
47891        (WebCore::JavaScriptStatistics::protectedObjectCount):
47892        (WebCore::JavaScriptStatistics::rootObjectTypeCounts):
47893        (WebCore::JavaScriptStatistics::garbageCollect):
47894        (WebCore::JavaScriptStatistics::garbageCollectOnAlternateThread):
47895        (WebCore::JavaScriptStatistics::shouldPrintExceptions):
47896        (WebCore::JavaScriptStatistics::setShouldPrintExceptions):
47897        * bridge/JavaScriptStatistics.h: Added.
47898        * bridge/mac/WebCoreJavaScript.h: Removed.
47899        * bridge/mac/WebCoreJavaScript.mm: Removed.
47900
479012007-03-18  Maciej Stachowiak  <mjs@apple.com>
47902
47903        Reviewed by Mark.
47904
47905        - avoid static construction (and global variable access) in a smarter, more portable way,
47906        to later enable MUTLI_THREAD mode to work on other platforms and compilers.
47907        
47908        * bindings/js/JSCustomXPathNSResolver.cpp:
47909        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
47910        * bindings/js/JSHTMLInputElementBase.cpp:
47911        (WebCore::JSHTMLInputElementBaseFunction::JSHTMLInputElementBaseFunction):
47912        * bindings/js/JSHTMLOptionElementConstructor.cpp:
47913        (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
47914        * bindings/js/JSXMLHttpRequest.cpp:
47915        (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
47916        * bindings/js/JSXSLTProcessor.cpp:
47917        (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
47918        * bindings/js/kjs_dom.cpp:
47919        (KJS::DOMNamedNodeMap::getOwnPropertySlot):
47920        (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
47921        * bindings/js/kjs_events.cpp:
47922        (KJS::JSAbstractEventListener::handleEvent):
47923        * bindings/js/kjs_html.cpp:
47924        (KJS::HTMLElementFunction::HTMLElementFunction):
47925        (KJS::JSHTMLCollection::getOwnPropertySlot):
47926        * bindings/js/kjs_window.cpp:
47927        (KJS::ScheduledAction::execute):
47928        * bindings/objc/WebScriptObject.mm:
47929        * bindings/scripts/CodeGeneratorJS.pm:
47930
479312007-03-18  Andrew Wellington  <proton@wiretapped.net>
47932
47933        Reviewed by Mark Rowe
47934
47935        Set Xcode editor to use 4 space indentation (http://webkit.org/coding/coding-style.html)
47936
47937        * WebCore.xcodeproj/project.pbxproj:
47938
479392007-03-18  David Hyatt  <hyatt@apple.com>
47940
47941        Fix for REGRESSION bug 13108, frame borders being painted when they shouldn't be.  Rework both frame borders
47942        and resizing to be more like other browsers.
47943
47944        Reviewed by ggaren
47945
47946        fast/frames/no-frame-borders.html
47947
47948        * html/HTMLFrameElement.cpp:
47949        (WebCore::HTMLFrameElement::HTMLFrameElement):
47950        (WebCore::HTMLFrameElement::attach):
47951        (WebCore::HTMLFrameElement::parseMappedAttribute):
47952        * html/HTMLFrameElement.h:
47953        (WebCore::HTMLFrameElement::hasFrameBorder):
47954        * html/HTMLFrameElementBase.cpp:
47955        (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
47956        (WebCore::HTMLFrameElementBase::parseMappedAttribute):
47957        * html/HTMLFrameElementBase.h:
47958        * html/HTMLFrameSetElement.cpp:
47959        (WebCore::HTMLFrameSetElement::attach):
47960        * html/HTMLFrameSetElement.h:
47961        (WebCore::HTMLFrameSetElement::hasFrameBorder):
47962        * html/HTMLIFrameElement.cpp:
47963        (WebCore::HTMLIFrameElement::HTMLIFrameElement):
47964        * rendering/RenderFrame.cpp:
47965        (WebCore::RenderFrame::edgeInfo):
47966        * rendering/RenderFrame.h:
47967        * rendering/RenderFrameSet.cpp:
47968        (WebCore::RenderFrameSet::paint):
47969        (WebCore::RenderFrameSet::GridAxis::resize):
47970        (WebCore::RenderFrameSet::fillFromEdgeInfo):
47971        (WebCore::RenderFrameSet::computeEdgeInfo):
47972        (WebCore::RenderFrameSet::edgeInfo):
47973        (WebCore::RenderFrameSet::layout):
47974        (WebCore::RenderFrameSet::startResizing):
47975        (WebCore::RenderFrameSet::continueResizing):
47976        (WebCore::RenderFrameSet::canResizeRow):
47977        (WebCore::RenderFrameSet::canResizeColumn):
47978        (WebCore::RenderFrameSet::splitPosition):
47979        (WebCore::RenderFrameSet::hitTestSplit):
47980        (WebCore::RenderFrameSet::dump):
47981        * rendering/RenderFrameSet.h:
47982        (WebCore::):
47983        (WebCore::FrameEdgeInfo::FrameEdgeInfo):
47984        (WebCore::FrameEdgeInfo::preventResize):
47985        (WebCore::FrameEdgeInfo::allowBorder):
47986        (WebCore::FrameEdgeInfo::setPreventResize):
47987        (WebCore::FrameEdgeInfo::setAllowBorder):
47988
479892007-03-19  Mark Rowe  <mrowe@apple.com>
47990
47991        Rubber-stamped by Brady.
47992
47993        Update references to bugzilla.opendarwin.org with bugs.webkit.org.
47994
47995        * ChangeLog:
47996        * WebCore.vcproj/WebCore/build-generated-files.sh:
47997        * manual-tests/ATSU-bad-layout.html:
47998        * manual-tests/accidental-strict-mode.html:
47999        * manual-tests/applet-param-no-name.html:
48000        * manual-tests/bidi-parens.html:
48001        * manual-tests/bugzilla-3855.html:
48002        * manual-tests/bugzilla-4840.html:
48003        * manual-tests/bugzilla-6821.html:
48004        * manual-tests/containing-block-position-chage.html:
48005        * manual-tests/contenteditable-link.html:
48006        * manual-tests/css3-cursor-fallback-quirks.html:
48007        * manual-tests/css3-cursor-fallback-strict.html:
48008        * manual-tests/custom-cursors.html:
48009        * manual-tests/dictionary-scrolled-iframe.html:
48010        * manual-tests/dom-manipulation-on-resize.html:
48011        * manual-tests/drag-image-to-address-bar.html:
48012        * manual-tests/empty-link-target.html:
48013        * manual-tests/empty-title-popup.html:
48014        * manual-tests/first-line-style-crash.html:
48015        * manual-tests/invalid-mouse-event.html:
48016        * manual-tests/left-overflow-repaint.html:
48017        * manual-tests/linkjump-3.html:
48018        * manual-tests/log-keypress-events.html:
48019        * manual-tests/named-window-blank-target.html:
48020        * manual-tests/plain-text-paste.html:
48021        * manual-tests/plugin-controller-datasource.html:
48022        * manual-tests/pre-tab-selection-rect.html:
48023        * manual-tests/redirection-target.html:
48024        * manual-tests/redraw-page-cache-visited-links.html:
48025        * manual-tests/reset-initiatedDrag.html:
48026        * manual-tests/resources/named-window-blank-target-step2.html:
48027        * manual-tests/resources/named-window-blank-target-step3.html:
48028        * manual-tests/resources/named-window-blank-target-step4.html:
48029        * manual-tests/resources/redraw-page-cache-visited-links-2.html:
48030        * manual-tests/scrollbar-hittest.html:
48031        * manual-tests/scrollbar-hittest2.html:
48032        * manual-tests/subview-click-assertion.html:
48033        * manual-tests/tabbing-input-google.html:
48034        * manual-tests/text-field-autoscroll.html:
48035        * manual-tests/textarea-after-stylesheet-link.html:
48036        * manual-tests/textarea-focus.html:
48037        * manual-tests/whitespace-pre-affinity.html:
48038
480392007-03-18  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
48040
48041        Not reviewed - gdk build fix.
48042
48043        * platform/gdk/ScrollViewGdk.cpp:
48044        (WebCore::ScrollView::update): add a stub
48045
480462007-03-18  Brady Eidson  <beidson@apple.com>
48047
48048        Reviewed by Hyatt
48049
48050        http://bugs.webkit.org/show_bug.cgi?id=13111
48051        When stopped a load before it completes, partial images become the 
48052        broken image icon
48053
48054        * loader/loader.cpp:
48055        (WebCore::Loader::didFail): Split off into a method that knows the 
48056          difference between failed and cancelled.  If a load is cancelled,
48057          don't call error() on the object - only remove it from the cache
48058        (WebCore::Loader::cancelRequests): Call didFail(loader, true)
48059        * loader/loader.h: Added didFail(SubresourceLoader*, bool cancelled)
48060
480612007-03-18  Mitz Pettel  <mitz@webkit.org>
48062
48063        Reviewed by Adele.
48064
48065        - fix http://bugs.webkit.org/show_bug.cgi?id=13101
48066          REGRESSION (NativeTextField): Specifying word-wrap:break-word makes text field wrap
48067
48068        Test: fast/forms/input-text-word-wrap.html
48069
48070        * rendering/RenderTextControl.cpp:
48071        (WebCore::RenderTextControl::createInnerTextStyle): Force the inner block to
48072        'word-wrap:normal'.
48073
480742007-03-18  Dan Waylonis  <waylonis@mac.com>
48075
48076        Reviewed by Tim Hatcher.
48077
48078        Fix http://bugs.webkit.org/show_bug.cgi?id=13005
48079        Bug 13005: WebScriptObject +throwException needs NULL check.
48080
48081        Add checking for NULL interpreter before throwing exception.
48082
48083        * bindings/objc/WebScriptObject.mm:
48084        (+[WebScriptObject throwException:]):
48085
480862007-03-18  Geoffrey Garen  <ggaren@apple.com>
48087
48088        Reviewed by Oliver Hunt.
48089        
48090        Fixed http://bugs.webkit.org/show_bug.cgi?id=13106
48091        REGRESSION: Incomplete document.all implementation breaks abtelectronics.com 
48092        (Style Change Through JavaScript Blanks Content)
48093        
48094        When indexing into collections, treat the empty string as an invalid argument,
48095        instead of the number 0.
48096
48097        * bindings/js/kjs_html.cpp:
48098        (KJS::JSHTMLCollection::getOwnPropertySlot):
48099        (KJS::JSHTMLCollection::callAsFunction):
48100        (KJS::JSHTMLCollectionPrototypeFunction::callAsFunction):
48101
481022007-03-18  David Hyatt  <hyatt@apple.com>
48103
48104        Use fillRect instead of drawLine, since drawLine has some odd behavior (it's only used for borders).
48105
48106        Reviewed by aroben
48107
48108        * platform/graphics/IntRect.h:
48109        * rendering/RenderFrameSet.cpp:
48110        (WebCore::RenderFrameSet::paintColumnBorder):
48111        (WebCore::RenderFrameSet::paintRowBorder):
48112
481132007-03-18  David Hyatt  <hyatt@apple.com>
48114
48115        Change the frameborder color to be light gray for framesets.
48116
48117        Reviewed by aroben
48118
48119        * rendering/RenderFrameSet.cpp:
48120        (WebCore::borderFillColor):
48121        (WebCore::RenderFrameSet::paintColumnBorder):
48122        (WebCore::RenderFrameSet::paintRowBorder):
48123
481242007-03-18  David Hyatt  <hyatt@apple.com>
48125
48126        Make iframes work properly with frameborder="0".
48127
48128        Reviewed by aroben
48129
48130        * html/HTMLIFrameElement.cpp:
48131        (WebCore::HTMLIFrameElement::mapToEntry):
48132        (WebCore::HTMLIFrameElement::parseMappedAttribute):
48133
481342007-03-18  David Hyatt  <hyatt@apple.com>
48135
48136        Add a 2px border by default to <iframe>s for compatibility with other browsers.
48137
48138        Reviewed by aroben
48139
48140        * css/html4.css:
48141
481422007-03-18  David Hyatt  <hyatt@apple.com>
48143
48144        Move frame borders out of WebKit and into WebCore.
48145
48146        Reviewed by aroben, olliej
48147
48148        * bridge/mac/FrameViewMac.mm:
48149        * css/html4.css:
48150        * html/HTMLFrameSetElement.cpp:
48151        (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
48152        (WebCore::HTMLFrameSetElement::mapToEntry):
48153        (WebCore::HTMLFrameSetElement::parseMappedAttribute):
48154        (WebCore::HTMLFrameSetElement::attach):
48155        * html/HTMLFrameSetElement.h:
48156        (WebCore::HTMLFrameSetElement::hasBorderColor):
48157        * page/FrameView.cpp:
48158        (WebCore::FrameViewPrivate::FrameViewPrivate):
48159        * page/FrameView.h:
48160        * page/mac/WebCoreFrameBridge.h:
48161        * platform/graphics/IntRect.h:
48162        (WebCore::IntRect::topLeft):
48163        (WebCore::IntRect::topRight):
48164        (WebCore::IntRect::bottomLeft):
48165        (WebCore::IntRect::bottomRight):
48166        * rendering/RenderFrame.cpp:
48167        (WebCore::RenderFrame::viewCleared):
48168        * rendering/RenderFrameSet.cpp:
48169        (WebCore::borderStartEdgeColor):
48170        (WebCore::borderEndEdgeColor):
48171        (WebCore::RenderFrameSet::paintColumnBorder):
48172        (WebCore::RenderFrameSet::paintRowBorder):
48173        (WebCore::RenderFrameSet::paint):
48174        * rendering/RenderFrameSet.h:
48175        * rendering/RenderPartObject.cpp:
48176        (WebCore::RenderPartObject::viewCleared):
48177        * rendering/RenderView.cpp:
48178        (WebCore::RenderView::repaintViewRectangle):
48179
481802007-03-17  David Hyatt  <hyatt@apple.com>
48181
48182        Make onload do an explicit paint when a top-level document is ready (to ensure that a first paint always
48183        happens before any timers set by the onload can fire).
48184
48185        Reviewed by aroben
48186
48187        * dom/Document.cpp:
48188        (WebCore::Document::implicitClose):
48189        * platform/ScrollView.h:
48190        * platform/mac/ScrollViewMac.mm:
48191        (WebCore::ScrollView::update):
48192
481932007-03-17  Dave Hyatt  <hyatt@apple.com>
48194
48195        Prevent starvation of user input and painting when processing timers.
48196        If we are already in the processing of a custom timer message, don't allow that
48197        processing to do another PostMessage.  Force SetTimer to be used instead.
48198      
48199        Reviewed by ggaren
48200
48201       * platform/win/SharedTimerWin.cpp:
48202        (WebCore::TimerWindowWndProc):
48203        (WebCore::setSharedTimerFireTime):
48204
482052007-03-17  Geoffrey Garen  <ggaren@apple.com>
48206
48207        Reviewed by Beth Dakin.
48208
48209        Fixed <rdar://problem/5070967> REGRESSION (r20211): Repro crash when 
48210        closing View Source window
48211        
48212        I award myself 0 points, and may God have mercy on my soul.
48213
48214        * bindings/js/kjs_proxy.cpp:
48215        (WebCore::KJSProxy::~KJSProxy):
48216
482172007-03-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
48218
48219        Not reviewed - gdk build fix.
48220
48221        * platform/gdk/TemporaryLinkStubs.cpp:
48222        (Pasteboard::writeURL):
48223
482242007-03-17  David Hyatt  <hyatt@apple.com>
48225
48226        Fix tiny PLT regression.  Don't examine the border/background data for RenderImage when images change
48227        unless we actually have a border/background.
48228
48229        Reviewed by Brady
48230
48231        * rendering/RenderImage.cpp:
48232        (WebCore::RenderImage::imageChanged):
48233
482342007-03-17  Nikolas Zimmermann  <zimmermann@kde.org>
48235
48236        Reviewed by Sam Weinig.
48237
48238        Fixes: http://bugs.webkit.org/show_bug.cgi?id=13046 (CSS styles on hover and focus are broken for <use>)
48239        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> CSS styles broken)
48240        Added test: svg/custom/use-css-events.svg
48241
48242        In general this fixes the peepo.co.uk website.
48243
48244        Forgot to pass the actual StyleChange to the recalcStyle() function,
48245        when calling it on the shadow tree root element.
48246
48247        * ksvg2/svg/SVGUseElement.cpp:
48248        (WebCore::SVGUseElement::recalcStyle):
48249
482502007-03-17  Timothy Hatcher  <timothy@apple.com>
48251
48252        Reviewed by Mark Rowe.
48253
48254        Made Version.xcconfig smarter when building for different configurations.
48255        Now uses the 522+ OpenSource version for Debug and Release, while using the
48256        full 522.4 version for Production builds. The system prefix is also computed
48257        based on the current system, so 4522.4 on Tiger and 5522.4 on Leopard.
48258
48259        * Configurations/Version.xcconfig:
48260        * Configurations/WebCore.xcconfig:
48261
482622007-03-17  Antti Koivisto  <antti@apple.com>
48263
48264        Reviewed by Adele.
48265
48266        Fix http://bugs.webkit.org/show_bug.cgi?id=12595
48267        REGRESSION: Can't add item to cart at lnt.com (JS type error)
48268        <rdar://problem/4722863>
48269        
48270        Emulate Firefox behavior where form elements accessed by a name
48271        can be accessed with that name later even if the name changes or
48272        even if element is removed from the document.
48273        
48274        This is loosely based on Darin's earlier patch for the same problem but
48275        is much less expansive. It takes somewhat different approach to more closely
48276        mimic Firefox behavior. Includes expanded test case.
48277
48278        * bindings/js/JSHTMLFormElementCustom.cpp:
48279        (WebCore::JSHTMLFormElement::canGetItemsForName):
48280            Use new the HTMLFormElement::getNamedElements() method
48281        (WebCore::JSHTMLFormElement::nameGetter):
48282            Use new the HTMLFormElement::getNamedElements() method
48283        * html/HTMLFormElement.cpp:
48284        (WebCore::HTMLFormElement::HTMLFormElement):
48285        (WebCore::HTMLFormElement::~HTMLFormElement):
48286        (WebCore::HTMLFormElement::elementForAlias):
48287        (WebCore::HTMLFormElement::addElementAlias):
48288            Maintain a map of known element aliases
48289        (WebCore::HTMLFormElement::getNamedElements):
48290            Get a list of elements matching the name, based both their
48291            current names and known aliases (earlier names).
48292            Keep the alias list in sync.
48293        * html/HTMLFormElement.h:
48294
482952007-03-17  Adele Peterson  <adele@apple.com>
48296
48297        Reviewed by Hyatt.
48298
48299        Fix for <rdar://problem/4990050> REGRESSION: onchange gets fired when clicking on a programmatically selected element in a listbox
48300        http://bugs.webkit.org/show_bug.cgi?id=12725
48301
48302        Test: updated fast/forms/listbox-onchange.html
48303
48304        Added HTMLSelectElement::saveLastSelection that is called before changing a selection that could result
48305        in onChange being called.  m_lastOnChangeIndex and m_lastOnChangeSelection no longer have to be up-to date all the time, 
48306        they just have to be up-to-date before we execute an action that may trigger onChange.
48307
48308        * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::setSelectedState): Added.
48309          The HTMLSelectElement will only set an option's selected state with this method.  This ensures
48310          that notifyOptionSelected won't get called when the call originates from the select element.
48311        * html/HTMLOptionElement.h:
48312
48313        * html/HTMLSelectElement.cpp:
48314        (WebCore::HTMLSelectElement::deselectItems): Calls setSelectedState.
48315        (WebCore::HTMLSelectElement::setSelectedIndex): ditto. Don't update the last selection variables here.  Scroll to the new selection.
48316         The scrolling call used to only be in notifyOptionSelected.  There's no reason we shouldn't scroll when the selection is set through
48317         the HTMLSelectElement.
48318        (WebCore::HTMLSelectElement::setValue): Call setSelectedIndex to update all options selected state.
48319        (WebCore::HTMLSelectElement::restoreState): Call setSelectedState.
48320        (WebCore::HTMLSelectElement::selectAll): Call saveLastSelection before making the selection, and calling onChange.
48321        (WebCore::HTMLSelectElement::recalcListItems): Call setSelectedState.  Don't need to save selection here anymore, 
48322         since it will get saved before we call onChange.
48323        (WebCore::HTMLSelectElement::reset): ditto.
48324        (WebCore::HTMLSelectElement::dispatchFocusEvent): Added. Call saveLastSelection for menu lists, since onChange can be fired
48325         on blur.
48326        (WebCore::HTMLSelectElement::dispatchBlurEvent): Call menuListOnChange.
48327        (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Call saveLastSelection before showing the popup window.
48328        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):  Call saveLastSelection during mousedown (to prepare for an 
48329         onchange during mouseup, or after autoscroll).
48330        (WebCore::HTMLSelectElement::updateListBoxSelection): Call setSelectedState.
48331
48332        (WebCore::HTMLSelectElement::menuListOnChange): Added. Compares the m_lastOnChangeIndex to the selectedIndex().
48333        (WebCore::HTMLSelectElement::listBoxOnChange): Move the m_lastOnChangeSelection creation to saveLastSelection.
48334        (WebCore::HTMLSelectElement::saveLastSelection): Added. Sets m_lastOnChangeIndex or m_lastOnChangeSelection.
48335        * html/HTMLSelectElement.h:
48336        * platform/PopupMenu.h:
48337
483382007-03-16  Oliver Hunt  <oliver@apple.com>
48339
48340        Reviewed by Hyatt.
48341
48342        The old canSaveAsWebArchive call was necessary as stand alone
48343        images used to be rendered by ImageDocument.
48344
48345        Fixes rdar://problem/5061252
48346
48347        * dom/Clipboard.cpp:
48348        * dom/Clipboard.h:
48349        (WebCore::Clipboard::setDragHasStarted):
48350        * page/DragClient.h:
48351        (WebCore::DragClient::declareAndWriteDragImage):
48352        * platform/mac/ClipboardMac.mm:
48353        (WebCore::ClipboardMac::declareAndWriteDragImage):
48354
483552007-03-16  Anders Carlsson  <acarlsson@apple.com>
48356
48357        Reviewed by Maciej.
48358
48359        <rdar://problem/4869095>
48360        default content type changed for XMLHttpRequest POSTs changed (breaks Flickrator 0.1 widget)
48361        
48362        * xml/xmlhttprequest.cpp:
48363        (WebCore::XMLHttpRequest::send):
48364
483652007-03-16  Brady Eidson  <beidson@apple.com>
48366
48367        Rubberstamped by Tim Hatcher
48368
48369        Update the hash table header for Window object properties
48370
48371        * bindings/js/kjs_window.cpp:
48372
483732007-03-16  Brady Eidson  <beidson@apple.com>
48374
48375        Reviewed by Anders
48376
48377        <rdar://problem/5061826> and
48378        http://bugs.webkit.org/show_bug.cgi?id=12863
48379        Implement window.stop()
48380
48381        * bindings/js/kjs_window.cpp:
48382        (KJS::WindowFunc::callAsFunction): Add case Window::Stop
48383        * bindings/js/kjs_window.h:
48384        (KJS::Window::): Add "Stop"
48385
483862007-03-16  Geoffrey Garen  <ggaren@apple.com>
48387
48388        Reviewed by Brady Eidson.
48389
48390        Fixed dir creation to account for already existing dirs and missing leading
48391        dirs in path.
48392        
48393        * loader/icon/IconDatabase.cpp:
48394        (WebCore::makeAllDirectories):
48395
483962007-03-16  David Hyatt  <hyatt@apple.com>
48397
48398        Fix for 13084, assertion failure in the Cache.  Convert the client list
48399        to a HashCountedSet so that multiple refs and derefs are allowed.
48400
48401        Fix RenderImage so that if it has the same image used as a background/border
48402        and as the foreground that it will repaint properly (can be tested using
48403        border-image and a foreground image).
48404
48405        Optimize list marker so that it doesn't waste time in the base class method,
48406        since list markers don't support background or border images.
48407
48408        Reviewed by andersca
48409
48410        * ChangeLog:
48411        * loader/CachedResource.cpp:
48412        (WebCore::CachedResource::ref):
48413        * loader/CachedResource.h:
48414        * loader/CachedResourceClientWalker.cpp:
48415        (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
48416        * loader/CachedResourceClientWalker.h:
48417        * rendering/RenderImage.cpp:
48418        (WebCore::RenderImage::imageChanged):
48419        * rendering/RenderListMarker.cpp:
48420        (WebCore::RenderListMarker::imageChanged):
48421
484222007-03-16  Geoffrey Garen  <ggaren@apple.com>
48423
48424        Reviewed by Anders Carlsson.
48425        
48426        Fixed <rdar://problem/5065399> REGRESSION: leaks in Frame::bindingRootObject 
48427        seen on buildbot
48428
48429        The problem was that we were initializing the same WebScriptObject twice.
48430        This caused it to leak its original set of ivars.
48431        
48432        I think some refactoring could prevent this situation from arising in the
48433        first place, but I'm just adding a check at the call site for now, to do 
48434        the simplest thing.
48435
48436        * bindings/objc/WebScriptObject.mm:
48437        (-[WebScriptObject _setImp:originRootObject:rootObject:]): Added ASSERTs
48438        against multiple calls.
48439
48440        * bindings/objc/WebScriptObjectPrivate.h: Renamed _initializeWithObjectImp
48441        to setImp because "init" vs "initialize" was a too subtle indication that
48442        one was a Cocoa initializer and one was not.
48443
484442007-03-16  Lars Knoll <lars@trolltech.com>
48445
48446        don't use #import in .cpp files.
48447
48448        * editing/qt/EditorQt.cpp:
48449
484502007-03-16  Lars Knoll <lars@trolltech.com>
48451
48452        Fix the Qt build once again.
48453
48454        * platform/qt/PasteboardQt.cpp:
48455        (WebCore::Pasteboard::Pasteboard):
48456        (WebCore::Pasteboard::writeSelection):
48457        (WebCore::Pasteboard::plainText):
48458        (WebCore::Pasteboard::documentFragment):
48459        (WebCore::Pasteboard::writeURL):
48460        (WebCore::Pasteboard::writeImage):
48461        (WebCore::Pasteboard::clear):
48462
484632007-03-15  Shrikant Gangoda  <shrikant.gangoda@celunite.com>
48464
48465        Gdk build fix.
48466
48467        * loader/gdk/FrameLoaderClientGdk.cpp:
48468        (WebCore::FrameLoaderClientGdk::blockedError):
48469        * loader/gdk/FrameLoaderClientGdk.h:
48470
484712007-03-15  Beth Dakin  <bdakin@apple.com>
48472
48473        Reviewed by Geoff.
48474
48475        Fix for http://bugs.webkit.org/show_bug.cgi?id=13088 REGRESSION
48476        (r19761-19779): Copy image no longer includes image address 
48477        (rdar://5067927)
48478
48479        writeURL() does not need an isImage parameter. Now that it accepts 
48480        the types as a parameter, we can just declare the appropriate image 
48481        types within writeImage and send them to writeURL(). Also, 
48482        declaring the types twice is what broke this.
48483
48484        * platform/Pasteboard.h:
48485        * platform/mac/PasteboardMac.mm:
48486        (WebCore::Pasteboard::writeURL):
48487        (WebCore::Pasteboard::writeImage):
48488
484892007-03-15  Adele Peterson  <adele@apple.com>
48490
48491        Reviewed by Kevin Decker.
48492
48493        Fix for <rdar://problem/4926179> Text in menulist control should never update if menu is open
48494
48495        * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
48496          Only setTextFromOption if the menu isn't visible.
48497
484982007-03-15  Brady Eidson  <beidson@apple.com>
48499
48500        Reviewed by Oliver
48501
48502        A few platform specific tweaks
48503
48504        * platform/cf/RetainPtr.h:
48505        (WebCore::RetainPtr::releaseRef): Fixed releaseRef to work with CF
48506        
48507        * platform/network/ResourceHandle.h: Added a "releaseRef" style call
48508
485092007-03-15  Maciej Stachowiak  <mjs@apple.com>
48510
48511        Reviewed by Geoff and Steve.
48512
48513        * config.h: Remove unneeded hack.
48514
485152007-03-15  Justin Garcia  <justin.garcia@apple.com>
48516
48517        Reviewed by john
48518        
48519        <rdar://problem/5062376> 
48520        REGRESSION: In Mail and Gmail, can't change alignment to text after it has been applied
48521        
48522        Bring back the remove step in applyBlockStyle.  It's 
48523        necessary because addBlockStyleIfNeeded assumes that 
48524        the properties it adds aren't already on the block that 
48525        it adds them to.
48526
48527        * editing/ApplyStyleCommand.cpp:
48528        (WebCore::ApplyStyleCommand::applyBlockStyle): 
48529        Bring back the remove step (added a testcase).
48530        Don't do the add step if m_removeOnly is true (no testcase
48531        because there aren't any clients using removeOnly functionality
48532        to remove styles yet, only styled elemets).
48533        Moved the code for creating new blocks up one level
48534        to this function so that we can pass blocks to removeCSSStyle.
48535        When converting VisiblePositions to indices and vice versa,
48536        use the highest node in the shadow tree if we're in one as
48537        the scope (working on a testcase).
48538        (WebCore::ApplyStyleCommand::addBlockStyle): Moved code to
48539        applyBlockStyle.
48540        * editing/ApplyStyleCommand.h: 
48541
485422007-03-15  Brady Eidson  <beidson@apple.com>
48543
48544        Reviewed by Maciej
48545
48546        <rdar://problem/4429701>
48547        Implements a port blocking black list that matches Firefox's
48548
48549        * loader/FrameLoader.cpp:
48550        (WebCore::FrameLoader::blockedError): Call through to the client for blockedError 
48551        * loader/FrameLoader.h:
48552
48553        * loader/FrameLoaderClient.h: Get the "port blocked" error for the current platform
48554
48555        * loader/ResourceLoader.cpp:
48556        (WebCore::ResourceLoader::wasBlocked): ResourceHandleClient method to pass on the didFail(error)
48557        (WebCore::ResourceLoader::blockedError): Following the pattern of "CancelledError()", get the 
48558          error to fail with for the didFail() call
48559        * loader/ResourceLoader.h:
48560
48561        * platform/graphics/svg/SVGImageEmptyClients.h:
48562        (WebCore::SVGEmptyFrameLoaderClient::blockedError): Added stub
48563
48564        * platform/network/ResourceHandle.cpp:
48565        (WebCore::ResourceHandle::create): If the port is blocked, create the handle but schedule it for
48566          deferred failure on a timer
48567        (WebCore::ResourceHandle::scheduleBlockedFailure): Do the timer scheduling
48568        (WebCore::ResourceHandle::fireBlockedFailure): Fire the timer here
48569        (WebCore::ResourceHandle::portAllowed): Implements checking of Mozilla's
48570        * platform/network/ResourceHandle.h:
48571        * platform/network/ResourceHandleClient.h:
48572        (WebCore::ResourceHandleClient::wasBlocked): Virtual for clients to get the "blocked" message
48573
485742007-03-15  Beth Dakin  <bdakin@apple.com>
48575
48576        Reviewed by Hyatt.
48577
48578        Fix for <rdar://problem/5065396> REGRESSION: leaks in 
48579        RenderBlock::layoutInlineChildren seen on buildbot
48580
48581        This leak appeared after http://trac.webkit.org/projects/webkit/
48582        changeset/20188. This change shifted line boxes around in 
48583        removeChild(). But since removeChild() calls 
48584        setNeedsLayoutAndMinMaxRecalc(), all of the line boxes will be 
48585        removed once we actually lay out anyway. So this patch fixes the 
48586        leak by deleting the line boxes instead of shifting them around. 
48587
48588        * editing/IndentOutdentCommand.cpp:
48589        (WebCore::IndentOutdentCommand::outdentParagraph): Call into 
48590        updateLayout(). This fixes an assertion I got in editing/
48591        execCommand/4976800.html This is very similar to the line box fix I 
48592        made recently (http://trac.webkit.org/projects/webkit/changeset/
48593        20177). We need to update layout before relying on VisiblePositions 
48594        after removing a node.
48595        * rendering/RenderBlock.cpp:
48596        (WebCore::RenderBlock::deleteLinesForBlock): New helper function 
48597        since this functionality is needed in three places now.
48598        (WebCore::RenderBlock::makeChildrenNonInline): Call into new 
48599        deleteLinesForBlock().
48600        (WebCore::RenderBlock::removeChild): Same.
48601        * rendering/RenderBlock.h:
48602
486032007-03-15  Timothy Hatcher  <timothy@apple.com>
48604
48605        Reviewed by John.
48606
48607        * Factored out most of our common build settings into .xcconfig files. Anything that was common in
48608          each build configuration was factored out into the shared .xcconfig file.
48609        * Adds a Version.xcconfig file to define the current framework version, to be used in other places.
48610        * Use the new $(BUNDLE_VERSION) (defined in Version.xcconfig) in the preprocessed Info.plist.
48611        * Use the versions defined in Version.xcconfig to set $(DYLIB_CURRENT_VERSION).
48612
48613        * Configurations/Base.xcconfig: Added.
48614        * Configurations/DebugRelease.xcconfig: Added.
48615        * Configurations/Version.xcconfig: Added.
48616        * Configurations/WebCore.xcconfig: Added.
48617        * Info.plist:
48618        * WebCore.xcodeproj/project.pbxproj:
48619
486202007-03-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
48621
48622        Not reviewed - gdk build fixes.
48623
48624        * platform/gdk/EditorClientGdk.cpp:
48625        (WebCore::EditorClientGdk::handleKeypress):
48626        * platform/graphics/cairo/ImageSourceCairo.cpp:
48627        (WebCore::ImageSource::setData):
48628        * platform/graphics/gdk/ImageGdk.cpp:
48629        (WebCore::Image::loadPlatformResource):
48630
486312007-03-14  Justin Garcia  <justin.garcia@apple.com>
48632
48633        Reviewed by john
48634        
48635        ~2x speed up of 5k rich text paste:
48636        http://shakespeare.mit.edu/hamlet/full.html        
48637
48638        * editing/ReplaceSelectionCommand.cpp:
48639        (WebCore::ReplaceSelectionCommand::doApply): Remove the top 
48640        level style span if it's unnecessary before inserting
48641        into the document, it's faster than doing it after.
48642        * editing/ReplaceSelectionCommand.h: Exposed 
48643        ReplacementFragment::removeNodePreservingChildren so that
48644        the style span can be removed using non-undoable removes,
48645        like the rest of the removes done on the ReplacementFragment.
48646        * editing/markup.cpp:
48647        (WebCore::createMarkup): Make the style span the top level
48648        element, otherwise it's useless.  This also facilitates the
48649        optimization mentioned above.
48650        When including markup for a fully selected root, include markup
48651        for all the nodes beneath that fully selected root, to preserve 
48652        the structure and appearance of the copied markup.  Did this
48653        by merging with the code for adding markup for descendants of
48654        special commonAncestorBlocks.
48655
486562007-03-15  Beth Dakin  <bdakin@apple.com>
48657
48658        Rubber-stamped by Adele.
48659
48660        Rolling out http://trac.webkit.org/projects/webkit/changeset/20148 
48661        (which is a fix for http://bugs.webkit.org/show_bug.cgi?id=12595 
48662        and rdar://4722863) because it causes a horrible memory-trasher. 
48663
48664        * bindings/js/JSHTMLFormElementCustom.cpp:
48665        (WebCore::JSHTMLFormElement::canGetItemsForName):
48666        (WebCore::JSHTMLFormElement::nameGetter):
48667        * bindings/js/kjs_dom.cpp:
48668        (KJS::):
48669        (KJS::DOMNamedNodesCollection::DOMNamedNodesCollection):
48670        (KJS::DOMNamedNodesCollection::lengthGetter):
48671        (KJS::DOMNamedNodesCollection::indexGetter):
48672        (KJS::DOMNamedNodesCollection::getOwnPropertySlot):
48673        * bindings/js/kjs_dom.h:
48674        (KJS::DOMNamedNodesCollection::classInfo):
48675        * bindings/js/kjs_html.cpp:
48676        (KJS::JSHTMLCollection::getNamedItems):
48677        * dom/ChildNodeList.cpp:
48678        (WebCore::ChildNodeList::ChildNodeList):
48679        (WebCore::ChildNodeList::length):
48680        (WebCore::ChildNodeList::item):
48681        (WebCore::ChildNodeList::nodeMatches):
48682        * dom/ChildNodeList.h:
48683        * dom/NameNodeList.cpp:
48684        (WebCore::NameNodeList::NameNodeList):
48685        (WebCore::NameNodeList::item):
48686        (WebCore::NameNodeList::nodeMatches):
48687        * dom/NameNodeList.h:
48688        (WebCore::NameNodeList::rootNodeAttributeChanged):
48689        * dom/Node.cpp:
48690        (WebCore::TagNodeList::TagNodeList):
48691        (WebCore::TagNodeList::nodeMatches):
48692        (WebCore::Node::registerNodeList):
48693        (WebCore::Node::unregisterNodeList):
48694        * dom/Node.h:
48695        * dom/NodeList.cpp:
48696        (WebCore::NodeList::NodeList):
48697        (WebCore::NodeList::~NodeList):
48698        (WebCore::NodeList::recursiveLength):
48699        (WebCore::NodeList::itemForwardsFromCurrent):
48700        (WebCore::NodeList::itemBackwardsFromCurrent):
48701        (WebCore::NodeList::recursiveItem):
48702        (WebCore::NodeList::itemWithName):
48703        (WebCore::NodeList::rootNodeChildrenChanged):
48704        * dom/NodeList.h:
48705        (WebCore::NodeList::rootNodeAttributeChanged):
48706        * html/HTMLFormElement.cpp:
48707        (WebCore::HTMLFormElement::HTMLFormElement):
48708        (WebCore::HTMLFormElement::~HTMLFormElement):
48709        (WebCore::HTMLFormElement::formData):
48710        (WebCore::HTMLFormElement::parseMappedAttribute):
48711        (WebCore::HTMLFormElement::removeFormElement):
48712        * html/HTMLFormElement.h:
48713        * html/HTMLGenericFormElement.cpp:
48714        (WebCore::HTMLGenericFormElement::parseMappedAttribute):
48715        (WebCore::HTMLGenericFormElement::insertedIntoTree):
48716        * html/HTMLGenericFormElement.h:
48717        * html/HTMLInputElement.cpp:
48718        (WebCore::HTMLInputElement::parseMappedAttribute):
48719
487202007-03-15  Geoffrey Garen  <ggaren@apple.com>
48721
48722        Added an assert to help catch a bug. Hopefully someone will hit it!
48723        
48724        * bindings/js/kjs_proxy.cpp:
48725        (WebCore::KJSProxy::~KJSProxy):
48726
487272007-03-14  Oliver Hunt  <oliver@apple.com>
48728
48729        Reviewed by Adele.
48730
48731        Fix for rdar://problem/5061737.
48732        
48733        This was a regression from the original Objective-C -> C++ conversion
48734        for the drag logic.  We don't need to call Range::startNode as we just
48735        need the document that contains the range.   
48736
48737        * page/DragController.cpp:
48738        (WebCore::documentFragmentFromDragData):
48739
487402007-03-14  Mitz Pettel  <mitz@webkit.org>
48741
48742        Reviewed by Hyatt.
48743
48744        - http://bugs.webkit.org/show_bug.cgi?id=13071
48745          REGRESSION: Plain text files no longer wrap lines longer than the width of the browser window
48746
48747        Test: fast/loader/text-document-wrapping.html
48748
48749        * loader/TextDocument.cpp:
48750        (WebCore::TextTokenizer::write): Specified word-wrap:break-word for the <pre> element.
48751
487522007-03-14  Mitz Pettel  <mitz@webkit.org>
48753
48754        Reviewed by Hyatt.
48755
48756        - fix http://bugs.webkit.org/show_bug.cgi?id=13072
48757          REGRESSION (r15617): white-space: pre-wrap breaks off the last character of a wide word
48758
48759        Test: fast/text/whitespace/pre-wrap-last-char.html
48760
48761        * rendering/bidi.cpp:
48762        (WebCore::RenderBlock::findNextLineBreak): Undid the change from r15617.
48763
487642007-03-14  David Hyatt  <hyatt@apple.com>
48765
48766        Add asserts to help catch double refs and double derefs of CachedResources.
48767
48768        Reviewed by mjs
48769
48770        * loader/CachedResource.cpp:
48771        (WebCore::CachedResource::ref):
48772        (WebCore::CachedResource::deref):
48773
487742007-03-14  Alice Liu  <alice.liu@apple.com>
48775
48776        Rubber-stamped by Hyatt.
48777
48778        Adding null check to prevent the crash that happens on 2nd run of iBench HTML load test
48779
48780        * loader/icon/IconDataCache.cpp:
48781        (WebCore::IconDataCache::writeToDatabase):
48782
48783=== Safari-5522.4 ===
48784
487852007-03-14  Adele Peterson  <adele@apple.com>
48786
48787        Reviewed by Adam.
48788
48789        Fix for <rdar://problem/5062898> REGRESSION: autocomplete window in text fields doesn't come up
48790
48791        When we moved the initialization of a bunch of variables in the HTMLFormElement constructor, m_autocomplete accidently got initialized to false.
48792
48793        * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::HTMLFormElement):
48794
487952007-03-14  Steve Falkenburg  <sfalken@apple.com>
48796
48797        Reviewed by Adam.
48798
48799        Added missing null check in case this is called on a subframe
48800        that hasn't started loading.
48801
48802        * page/Frame.cpp:
48803        (WebCore::Frame::setMarkedTextMatchesAreHighlighted): Check for a null document.
48804
488052007-03-14  Antti Koivisto  <antti@apple.com>
48806
48807        Reviewed by Geoff.
48808
48809        Fix http://bugs.webkit.org/show_bug.cgi?id=13060
48810        REGRESSION: Repro ASSERT failure in Cache::adjustSize running layout tests
48811        <rdar://5060208>
48812        
48813        Script evaluation may have dereffed the CachedScript object already, causing double deref and
48814        eventually m_liveResourcesSize underflow.
48815
48816        * html/HTMLScriptElement.cpp:
48817        (WebCore::HTMLScriptElement::notifyFinished):
48818
488192007-03-14  Adele Peterson  <adele@apple.com>
48820
48821        Reviewed by Darin.
48822
48823        Added InsertTab, InsertBacktab, InsertLineBreak, and InsertNewline to the editing command table.
48824        Added Event parameter to execCommand, and to all of the enabled and exec functions.  Right now,
48825        the event is only used by the newly added commands.  But in the future, many (and possibly all) of
48826        these editing commands will need to consider the event so they are applied to the correct selection.
48827
48828        * WebCore.exp:
48829        * editing/Editor.cpp:
48830        (WebCore::execCopy):
48831        (WebCore::execCut):
48832        (WebCore::execDelete):
48833        (WebCore::execBackwardDelete):
48834        (WebCore::execForwardDelete):
48835        (WebCore::execMoveBackward):
48836        (WebCore::execMoveBackwardAndModifySelection):
48837        (WebCore::execMoveUpByPageAndModifyCaret):
48838        (WebCore::execMoveDown):
48839        (WebCore::execMoveDownAndModifySelection):
48840        (WebCore::execMoveForward):
48841        (WebCore::execMoveForwardAndModifySelection):
48842        (WebCore::execMoveDownByPageAndModifyCaret):
48843        (WebCore::execMoveLeft):
48844        (WebCore::execMoveLeftAndModifySelection):
48845        (WebCore::execMoveRight):
48846        (WebCore::execMoveRightAndModifySelection):
48847        (WebCore::execMoveToBeginningOfDocument):
48848        (WebCore::execMoveToBeginningOfDocumentAndModifySelection):
48849        (WebCore::execMoveToBeginningOfSentence):
48850        (WebCore::execMoveToBeginningOfSentenceAndModifySelection):
48851        (WebCore::execMoveToBeginningOfLine):
48852        (WebCore::execMoveToBeginningOfLineAndModifySelection):
48853        (WebCore::execMoveToBeginningOfParagraph):
48854        (WebCore::execMoveToBeginningOfParagraphAndModifySelection):
48855        (WebCore::execMoveToEndOfDocument):
48856        (WebCore::execMoveToEndOfDocumentAndModifySelection):
48857        (WebCore::execMoveToEndOfSentence):
48858        (WebCore::execMoveToEndOfSentenceAndModifySelection):
48859        (WebCore::execMoveToEndOfLine):
48860        (WebCore::execMoveToEndOfLineAndModifySelection):
48861        (WebCore::execMoveToEndOfParagraph):
48862        (WebCore::execMoveToEndOfParagraphAndModifySelection):
48863        (WebCore::execMoveParagraphBackwardAndModifySelection):
48864        (WebCore::execMoveParagraphForwardAndModifySelection):
48865        (WebCore::execMoveUp):
48866        (WebCore::execMoveUpAndModifySelection):
48867        (WebCore::execMoveWordBackward):
48868        (WebCore::execMoveWordBackwardAndModifySelection):
48869        (WebCore::execMoveWordForward):
48870        (WebCore::execMoveWordForwardAndModifySelection):
48871        (WebCore::execMoveWordLeft):
48872        (WebCore::execMoveWordLeftAndModifySelection):
48873        (WebCore::execMoveWordRight):
48874        (WebCore::execMoveWordRightAndModifySelection):
48875        (WebCore::execPaste):
48876        (WebCore::execSelectAll):
48877        (WebCore::execToggleBold):
48878        (WebCore::execToggleItalic):
48879        (WebCore::execRedo):
48880        (WebCore::execUndo):
48881        (WebCore::execInsertTab):
48882        (WebCore::execInsertBacktab):
48883        (WebCore::execInsertNewline):
48884        (WebCore::execInsertLineBreak):
48885        (WebCore::enabled):
48886        (WebCore::canPaste):
48887        (WebCore::hasEditableSelection):
48888        (WebCore::hasEditableRangeSelection):
48889        (WebCore::hasRangeSelection):
48890        (WebCore::hasRichlyEditableSelection):
48891        (WebCore::canRedo):
48892        (WebCore::canUndo):
48893        (WebCore::CommandEntry::):
48894        (WebCore::Editor::toggleBold):
48895
48896        (WebCore::Editor::execCommand): Added optional event parameter.
48897        (WebCore::Editor::insertText): Added.  Calls handleTextInputEvent.
48898        (WebCore::Editor::insertTextWithoutSendingTextEvent): Renamed from insertText.
48899         Performs the actual insertion without dispatching any event.
48900        * editing/Editor.h:
48901        * page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
48902          Call insertTextWithoutSendingTextEvent.
48903
489042007-03-14  Justin Garcia  <justin.garcia@apple.com>
48905
48906        Reviewed by darin
48907        
48908        ~3x speedup pasting 5k lines of rich text:
48909        http://shakespeare.mit.edu/hamlet/full.html
48910        ~2x speedup pasting 10k lines of plain text
48911        
48912        * css/CSSComputedStyleDeclaration.cpp:
48913        (WebCore::computedStyle): Added for convenience.
48914        * css/CSSComputedStyleDeclaration.h:
48915        * editing/ReplaceSelectionCommand.cpp:
48916        (WebCore::ReplaceSelectionCommand::removeRedundantStyles):
48917        The code that pushed down the top level style span had
48918        a bug in it that made it do unnecessary work.  Instead of
48919        fixing the bug I removed the code because it was used to 
48920        help see more redundancies in second level style spans, but 
48921        createMarkup now *only* creates a top level style span.
48922        Only remove redundant styles from style spans and only remove
48923        unstyled elements if they are style spans.  FF doesn't
48924        remove redundant styles from elements, or remove redundant 
48925        font tags on copy/paste.  We could offer this functionality 
48926        through a separate "cleanup" command.
48927        * editing/markup.cpp:
48928        (WebCore::createMarkup): Only add markup for ancestors of 
48929        lastClosed if we're including markup for acommonAncestorBlock 
48930        (we do this for commonAncestorBlocks like tables and lists),
48931        otherwise it's unnecessary/redundant.
48932
489332007-03-14  Anders Carlsson  <acarlsson@apple.com>
48934
48935        Reviewed by Ada.
48936
48937        Make sure to call ResourceLoader::didReceiveData to ensure that there's a shared buffer with the resource
48938        data, since SubresourceLoaderClients now make use of that buffer.
48939        
48940        * loader/SubresourceLoader.cpp:
48941        (WebCore::SubresourceLoader::didReceiveData):
48942
489432007-03-14  Administrator  <acarlsson@apple.com>
48944
48945        Get the size from the shared buffer.
48946        
48947        * platform/graphics/cg/ImageSourceCG.cpp:
48948        (WebCore::ImageSource::setData):
48949        * platform/graphics/cg/PDFDocumentImage.cpp:
48950        (WebCore::PDFDocumentImage::dataChanged):
48951
489522007-03-14  Mitz Pettel  <mitz@webkit.org>
48953
48954        Reviewed by Hyatt, thumbs up by Darin.
48955
48956        - fix http://bugs.webkit.org/show_bug.cgi?id=12782
48957          Reproducible crash in BidiContext::deref
48958
48959        Test: fast/dynamic/anonymous-block-orphaned-lines.html
48960
48961        * rendering/InlineBox.cpp:
48962        (WebCore::InlineBox::root): Added an assertion that we return a root inline box.
48963        * rendering/RenderBlock.cpp:
48964        (WebCore::RenderBlock::removeChild): Added code to adopt the line boxes of
48965        anonymous blocks being destroyed instead of leaving them orphaned, which
48966        is what caused this crash. The boxes will be deleted on the next layout, but
48967        this ensures consistency in the mean time.
48968
489692007-03-14  Lars Knoll <lars@trolltech.com>
48970
48971        Reviewed by Antti.
48972
48973        Fix the Qt build.
48974        Add a getter to SharedBuffer that returns a reference to the internal
48975        Vector to avoid an extra copy of the data.
48976
48977        * platform/SharedBuffer.h:
48978        (WebCore::SharedBuffer::buffer):
48979        * platform/graphics/qt/ImageQt.cpp:
48980        (WebCore::Image::loadPlatformResource):
48981        * platform/graphics/qt/ImageSourceQt.cpp:
48982        (WebCore::detectImageFormat):
48983        (WebCore::createDecoder):
48984        (WebCore::ImageSource::setData):
48985
489862007-03-14  Antti Koivisto  <antti@apple.com>
48987
48988        Reviewed by Mitz.
48989        
48990        Fix <rdar://problem/5058774>
48991        REGRESSION: In Mail, caret appears oversized when typing in a To Do note
48992        
48993        Horizontal and vertical were switched. Was regression from
48994        http://trac.webkit.org/projects/webkit/changeset/20103
48995
48996        * rendering/RootInlineBox.cpp:
48997        (WebCore::RootInlineBox::addHighlightOverflow):
48998
489992007-03-14  David Hyatt  <hyatt@apple.com>
49000
49001        Tweak the data() functions of stylesheets and scripts to be internally consistent.
49002
49003        * loader/CachedCSSStyleSheet.cpp:
49004        (WebCore::CachedCSSStyleSheet::data):
49005        * loader/CachedScript.cpp:
49006        (WebCore::CachedScript::data):
49007        * loader/CachedXSLStyleSheet.cpp:
49008        (WebCore::CachedXSLStyleSheet::data):
49009
490102007-03-14  David Hyatt  <hyatt@apple.com>
49011
49012        Fix Radar 5050688.  
49013
49014        For large animated GIFs, destroy and recreate the source for every animation frame.  This keeps
49015        the memory consumption down while giant images are animating.
49016
49017        Reviewed by andersca
49018
49019        * platform/graphics/BitmapImage.cpp:
49020        (WebCore::BitmapImage::BitmapImage):
49021        (WebCore::BitmapImage::destroyDecodedData):
49022        (WebCore::BitmapImage::dataChanged):
49023        (WebCore::BitmapImage::advanceAnimation):
49024        * platform/graphics/BitmapImage.h:
49025
490262007-03-14  David Hyatt  <hyatt@apple.com>
49027
49028        Make sure to use CFDataCreateWithBytesNoCopy where we can.
49029
49030        Reviewed by andersca
49031
49032        * platform/graphics/cg/ImageSourceCG.cpp:
49033        (WebCore::ImageSource::setData):
49034        * platform/graphics/cg/PDFDocumentImage.cpp:
49035        (WebCore::PDFDocumentImage::dataChanged):
49036
490372007-03-13  David Hyatt  <hyatt@apple.com>
49038
49039        Fix for bugzilla bug 13050 and also radar p1 5050645.
49040
49041        This patch reworks resource loading to avoid having redundant buffers in the icon database and in cached
49042        images in the WebCore cache.  It also avoids overcopying in top-level image documents and in the icon
49043        database.
49044
49045        There is now only one SharedBuffer for a resource and everybody observes that buffer now instead of ever
49046        making their own.  Even ImageIO uses the SharedBuffer while decoding.
49047
49048        The page in 13050 dropped from 145mb down to 45mb of memory use with this change for a stunning savings
49049        of 100mb.
49050
49051        Reviewed by olliej, mjs
49052
49053        * WebCore.exp:
49054        * loader/CachedCSSStyleSheet.cpp:
49055        (WebCore::CachedCSSStyleSheet::data):
49056        * loader/CachedCSSStyleSheet.h:
49057        * loader/CachedImage.cpp:
49058        (WebCore::CachedImage::data):
49059        * loader/CachedImage.h:
49060        * loader/CachedResource.cpp:
49061        (WebCore::CachedResource::CachedResource):
49062        (WebCore::CachedResource::~CachedResource):
49063        * loader/CachedResource.h:
49064        (WebCore::CachedResource::data):
49065        * loader/CachedScript.cpp:
49066        (WebCore::CachedScript::data):
49067        * loader/CachedScript.h:
49068        * loader/CachedXSLStyleSheet.cpp:
49069        (WebCore::CachedXSLStyleSheet::data):
49070        * loader/CachedXSLStyleSheet.h:
49071        * loader/DocLoader.cpp:
49072        (WebCore::DocLoader::checkCacheObjectStatus):
49073        * loader/ImageDocument.cpp:
49074        (WebCore::ImageTokenizer::writeRawData):
49075        (WebCore::ImageTokenizer::finish):
49076        * loader/icon/IconDataCache.cpp:
49077        (WebCore::IconDataCache::setImageData):
49078        (WebCore::IconDataCache::writeToDatabase):
49079        * loader/icon/IconDataCache.h:
49080        * loader/icon/IconDatabase.cpp:
49081        (WebCore::IconDatabase::imageDataForIconURL):
49082        (WebCore::IconDatabase::iconForPageURL):
49083        (WebCore::IconDatabase::setIconDataForIconURL):
49084        (WebCore::IconDatabase::setHaveNoIconForIconURL):
49085        (WebCore::IconDatabase::imageDataForIconURLQuery):
49086        * loader/icon/IconDatabase.h:
49087        * loader/icon/IconLoader.cpp:
49088        (WebCore::IconLoader::startLoading):
49089        (WebCore::IconLoader::didReceiveResponse):
49090        (WebCore::IconLoader::didReceiveData):
49091        (WebCore::IconLoader::didFail):
49092        (WebCore::IconLoader::finishLoading):
49093        (WebCore::IconLoader::clearLoadingState):
49094        * loader/icon/IconLoader.h:
49095        * loader/icon/SQLStatement.cpp:
49096        (WebCore::SQLStatement::getColumnBlobAsVector):
49097        (WebCore::SQLStatement::isExpired):
49098        * loader/icon/SQLStatement.h:
49099        * loader/loader.cpp:
49100        (WebCore::Loader::didFinishLoading):
49101        (WebCore::Loader::didReceiveData):
49102        * page/mac/WebCoreFrameBridge.mm:
49103        (-[WebCoreFrameBridge getData:andResponse:forURL:]):
49104        (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
49105        * platform/SharedBuffer.h:
49106        (WebCore::SharedBuffer::isEmpty):
49107        * platform/graphics/BitmapImage.cpp:
49108        (WebCore::BitmapImage::destroyDecodedData):
49109        (WebCore::BitmapImage::dataChanged):
49110        * platform/graphics/BitmapImage.h:
49111        * platform/graphics/Image.cpp:
49112        (WebCore::Image::setData):
49113        * platform/graphics/Image.h:
49114        (WebCore::Image::dataChanged):
49115        (WebCore::Image::data):
49116        * platform/graphics/ImageSource.h:
49117        * platform/graphics/cg/ImageSourceCG.cpp:
49118        (WebCore::ImageSource::setData):
49119        * platform/graphics/cg/PDFDocumentImage.cpp:
49120        (WebCore::PDFDocumentImage::dataChanged):
49121        * platform/graphics/cg/PDFDocumentImage.h:
49122        * platform/graphics/mac/ImageMac.mm:
49123        (WebCore::Image::loadPlatformResource):
49124        * platform/graphics/svg/SVGImage.cpp:
49125        (WebCore::SVGImage::setData):
49126        * platform/mac/PasteboardMac.mm:
49127        (WebCore::fileWrapperForImage):
49128
491292007-03-13  Justin Garcia  <justin.garcia@apple.com>
49130
49131        Reviewed by darin
49132        
49133        <rdar://problem/5046875> 
49134        Gmail Editor: Applying alignment to selected text in message also applies alignment to signature
49135
49136        * editing/ApplyStyleCommand.cpp:
49137        (WebCore::ApplyStyleCommand::doApply): Don't call applyBlockStyle unless
49138        there is a block style to apply.
49139        (WebCore::ApplyStyleCommand::applyBlockStyle): Don't do the remove step.
49140        It was unnecessary and removed properties from blocks that could contain 
49141        content outside the range being operated on (added a testcase).
49142        (WebCore::ApplyStyleCommand::addBlockStyleIfNeeded): Used an early return
49143        instead of if-nesting.
49144        * editing/ApplyStyleCommand.h:
49145        * editing/CompositeEditCommand.cpp:
49146        (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
49147        Return the new block, if one was created.  Use moveParagraphs to move
49148        paragraphs into the new block, instead of moving nodes.  The old code moved
49149        too much (added a testcase).
49150        * editing/CompositeEditCommand.h:
49151
491522007-03-13  Oliver Hunt  <oliver@apple.com>
49153
49154        Reviewed by Brady.
49155
49156        To fix <rdar://problem/5044366> we now pass a NSString
49157        representation of the URL extracted with _web_originalDataAsString
49158        instead of relying on [NSURL absoluteString] in the bridge
49159
49160        * page/mac/WebCoreFrameBridge.h:
49161        * page/mac/WebCoreFrameBridge.mm:
49162        (-[WebCoreFrameBridge getData:andResponse:forURL:]):
49163
491642007-03-13  Brady Eidson  <beidson@apple.com>
49165
49166        Reviewed by Anders
49167
49168        <rdar://problem/5048818> - REGRESSION: Incompletely loaded resources being saved to the object cache
49169
49170        Due to a subtle change in loader behavior back in 10904, we would stop all loaders before calling 
49171        didFail() on them in the Cache loader.  As a result, we basically cleared all of the Subresource Loaders 
49172        out of the Cache loader before more properly failing them as errored out.  The result?  Partially loaded
49173        resources being cached.
49174        
49175        Since Loader::didFail() both calls error() on the object *and* removes the loader, the solution is to call 
49176        didFail() for all cancelled loaders instead of *only* removing them from the set of active loaders.
49177        
49178        In addition, pages that didn't completely load were being saved to the back/forward cache.  To fix that,
49179        I added a null check on the DocumentLoader's error to see if the page ended in an error, or did indeed 
49180        completely load.
49181
49182        Note that the layout test for this - if possible - will require other enhancements including possibly adding
49183        support for window.stop().  That task is documented in <rdar://problem/5061826>
49184
49185        * loader/FrameLoader.cpp:
49186        (WebCore::FrameLoader::provisionalLoadStarted): Fixed a few bugs relating to my original BFCache rewrite to
49187          more perfectly restore the original behavior - including only caching HTML documents via the 
49188          m_client->canCachePage() call
49189        (WebCore::FrameLoader::canCachePage): Don't make the call to m_client->canCachePage() as that serves a different
49190          purpose
49191          - Check the mainDocumentError to see if the load ended in error as a further criteria in determining the 
49192          cachability of a page
49193
49194        * loader/loader.cpp:
49195        (WebCore::Loader::cancelRequests): Call didFail(cancelledError()) instead of just removing the loaders from the 
49196          loaders-in-progress set.  This adds the effect of properly cleaning up the cached object.
49197
491982007-03-13  Beth Dakin  <bdakin@apple.com>
49199
49200        Rendering part reviewed by Hyatt. Editing part consulted with and 
49201        rubber stamped by Justin and Harrison.
49202
49203        Fix for <rdar://problem/5025925> A hang occurs in Safari when 
49204        attempting to print page at http://www.pcadvisor.co.uk
49205
49206        * rendering/RenderBlock.cpp:
49207        (WebCore::RenderBlock::makeChildrenNonInline): 
49208        RenderBlock::makeChildrenNonInline() takes a block's inline 
49209        children and turns them into block children. If the children had 
49210        line boxes, those boxes were being leaked. In the layout test I 
49211        added with the change (and at pcadvisor.co.uk during printing) 
49212        children were being made non-inline, and then they were being made 
49213        inline again. This meant that some of the children ended up 
49214        pointing to totally stale line boxes that are normally just leaked. 
49215        This caused an infinite loop in RenderFlow::destroy(). This patch 
49216        simply deletes everyone's line boxes in 
49217        RenderBlock::makeChildrenNonInline()
49218
49219        * editing/InsertParagraphSeparatorCommand.cpp:
49220        (WebCore::InsertParagraphSeparatorCommand::doApply): The other part 
49221        of this fix is that I added a call to updateLayout in 
49222        InsertParagraphSeparatorCommand::doApply(). One layout test 
49223        (editing/spelling/spelling.html) was changed by my patch to 
49224        RenderBlock. doApply() inserts a node into the render tree. In at 
49225        least one case in spelling.html, that caused some line boxes to be 
49226        deleted. Back in doApply() this meant that the RenderTree was out-
49227        of-date, and we mistakenly thought we were at the end of the 
49228        paragraph. This caused us to insert a RenderBR() at the end of the 
49229        tree instead of an empty RenderText(). No one seems to know exactly 
49230        why we insert either, or if the change is necessarily a problem. It 
49231        is clear, though, that the RenderTree in doApply() is out-of-date 
49232        after inserting the node and deleting some line boxes, so it seems 
49233        prudent to call into updateLayout().
49234
492352007-03-13  Adam Roben  <aroben@apple.com>
49236
49237        Reviewed by Anders.
49238
49239        * platform/FontData.h: Added m_isSystemFont parameter to match NSFont.
49240
492412007-03-13  Beth Dakin  <bdakin@apple.com>
49242
49243        Reviewed by Maciej.
49244
49245        Export DocumentLoader::setFrame(). Part of fix for <rdar://
49246        problem/4277074> 8F32: Help Viewer crashed on clicking link - 
49247        KHTMLView::viewportMouseReleaseEvent (12647)
49248
49249        * WebCore.exp:
49250
492512007-03-13  Darin Adler  <darin@apple.com>
49252
49253        Reviewed by Maciej.
49254
49255        - fix http://bugs.webkit.org/show_bug.cgi?id=12794
49256          <rdar://problem/5028154> REGRESSION: TripTik planner at aaa.com never
49257          finishes loading due to unclosed canvas tag (12794)
49258
49259        Change <canvas> elements so that their contents are parsed normally,
49260        but not rendered. This change fixes the bug, because normal parsing
49261        rules close the <canvas> element in that case. The special parser
49262        stuff was just getting in the way.
49263
49264        Also do some basic cleanup to the HTML parser. This was motivated by
49265        an earlier version of this patch that made even more changes to the
49266        parser, but the cleanup is still worth landing.
49267
49268        Test: fast/canvas/canvas-hides-fallback.html
49269        Test: fast/canvas/script-inside-canvas-fallback.html
49270        Test: fast/canvas/unclosed-canvas-1.html
49271        Test: fast/canvas/unclosed-canvas-2.html
49272        Test: fast/canvas/unclosed-canvas-3.html
49273        Test: fast/canvas/unclosed-canvas-4.html
49274
49275        * html/HTMLCanvasElement.h: Added a data member to keep track of whether the
49276        renderer is a RenderHTMLCanvas or not.
49277        * html/HTMLCanvasElement.cpp:
49278        (WebCore::HTMLCanvasElement::createRenderer): If JavaScript is enabled, create
49279        a RenderHTMLCanvas. If it's not, let the default code create the default type
49280        of renderer, which will result in fallback content being visible. The
49281        RenderHTMLCanvas class already hides all of its children. Set the m_rendererIsCanvas
49282        boolean accordingly. Since the actual storage for the canvas is allocated lazily
49283        when you actually get a drawing context, we don't need to do anything special
49284        to prevent it when JavaScript is disabled; the relevant functions won't be called.
49285        (WebCore::HTMLCanvasElement::reset): Protect the code that manipulates the
49286        RenderHTMLCanvas with a check of m_rendererIsCanvas. This is the only code inside
49287        the DOM element that relies on the renderer type.
49288
49289        * html/HTMLParser.h: Removed unneeded includes. Marked HTMLParser as
49290        Noncopyable. Changed the Document parameter to the constructor to instead
49291        be HTMLDocument. Renamed discard_until to m_skipModeTag for clarity.
49292        Removed unused noSpaces function and unneeded public doc() function.
49293        Moved data members all down to the end so you can see them together in order.
49294        Renamed map to m_currentMapElement and isindex to m_isindexElement.
49295        Removed unused end and headLoaded data members.  Renamed m_fragment to
49296        m_isParsingFragment to make it clearer that it's a boolean, not a fragment.
49297
49298        * html/HTMLParser.cpp:
49299        (WebCore::HTMLParser::HTMLParser): Changed to use member construction
49300        syntax instead of calling reset(). This is especially helpful in the
49301        fragment case, where calling reset() later on is illegal, so not using
49302        it in the constructor lets us assert.
49303        (WebCore::HTMLParser::~HTMLParser): Did an explicit deref instead of
49304        calling setCurrent for its side effect.
49305        (WebCore::HTMLParser::reset): Updated for member name changes and removal
49306        and to use document instead of doc().
49307        (WebCore::HTMLParser::setCurrent): Use document instead of doc().
49308        (WebCore::HTMLParser::setSkipMode): Added. No longer inline. Now sets the
49309        m_inCanvasBeforeFirstOpenTag data member to false.
49310        (WebCore::HTMLParser::parseToken): Tightened up the skip mode logic at the
49311        top of the function, and added a FIXME about the strange case there where
49312        we don't skip yet stay in skip mode. Updated for renaming and doc().
49313        (WebCore::HTMLParser::insertNode): Updated for renaming and doc().
49314        (WebCore::HTMLParser::handleError): Ditto.
49315        (WebCore::HTMLParser::framesetCreateErrorCheck): Ditto.
49316        (WebCore::HTMLParser::isindexCreateErrorCheck): Changed to use RefPtr.
49317        (WebCore::HTMLParser::noscriptCreateErrorCheck): Updated for renaming and doc().
49318        (WebCore::HTMLParser::mapCreateErrorCheck): Ditto.
49319        (WebCore::HTMLParser::getNode): Removed the special case for canvas here.
49320        Canvas fallback is now handled in the DOM, not the parser. Updated for
49321        renaming and doc().
49322        (WebCore::HTMLParser::allowNestedRedundantTag): Changed a #define into a C++
49323        constant.
49324        (WebCore::HTMLParser::processCloseTag): Updated for renaming and doc().
49325        (WebCore::HTMLParser::isInline): Ditto.
49326        (WebCore::HTMLParser::tagIsOnStack): Added. Used by new canvas logic.
49327        (WebCore::HTMLParser::popBlock): Updated for renaming and doc(). Also renamed
49328        the local variable Elem to elem.
49329        (WebCore::HTMLParser::createHead): Ditto.
49330        (WebCore::HTMLParser::handleIsindex): Changed to use RefPtr.
49331        (WebCore::HTMLParser::startBody): Updated for renaming and doc().
49332        (WebCore::HTMLParser::finished): Ditto.
49333
493342007-03-13  David Hyatt  <hyatt@apple.com>
49335
49336        Two more cleanup fixes to the cache.  Don't call destroyDecodedData in the BitmapImage destructor, since
49337        clearing the image source and calling setData on it again causes it to do an extra copy of the encoded
49338        data.  Since we're about to be destroyed this is just wasteful.
49339
49340        When the cache prunes, don't allow it to destroy the decoded data of an image that is still actively loading,
49341        since we've established that ImageIO can actually crash if you yank the rug out from under it like that.
49342
49343        Reviewed by ggaren
49344
49345        * loader/Cache.cpp:
49346        (WebCore::Cache::prune):
49347        * platform/graphics/BitmapImage.cpp:
49348        (WebCore::BitmapImage::~BitmapImage):
49349
493502007-03-13  Anders Carlsson  <acarlsson@apple.com>
49351
49352        Try fixing the Qt build.
49353        
49354        * editing/Editor.h:
49355        (WebCore::Editor::setStartNewKillRingSequence):
49356
493572007-03-13  David Harrison  <harrison@apple.com>
49358
49359        Reviewed by Justin.
49360
49361        <rdar://problem/5031181> cntl-k at end of paragraph adds nothing to the kill ring
49362        <rdar://problem/5031189> REGRESSION: cntl-y yanks only the most recently killed content
49363
49364        For rdar://5031181, properly extend the selection before the killring handling, and
49365        make sure plainText of that selection returns a linefeed.
49366        
49367        For rdar://5031189, restore Editor::deleteRange() code that continued current killring,
49368        even though the range deletion implicitly stopped it via changing the selection.
49369        
49370        A byproduct of this change is the elimination of RUNDFINDER vs CONTENT TextIterator. The
49371        only difference between the two was whether to emit a newline when the range started
49372        with a blockflow element. No callers actually need that any more.
49373
49374        Tests added:
49375        * editing/pasteboard/emacs-ctrl-k-y-001-expected.checksum: Added.
49376        * editing/pasteboard/emacs-ctrl-k-y-001-expected.png: Added.
49377        * editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Added.
49378        * editing/pasteboard/emacs-ctrl-k-y-001.html: Added.
49379
49380        * editing/Editor.cpp:
49381        (WebCore::Editor::deleteRange):
49382        Clear the "start new kill ring sequence" setting, because it was set to true
49383        when the selection was updated by deleting the range.
49384        
49385        (WebCore::Editor::deleteWithDirection):
49386        If extending the selection to the end of paragraph resulted in a caret selection,
49387        extend by character, to handle the case when the selection started as a caret at
49388        the end of paragraph.
49389        
49390        * editing/TextIterator.cpp:
49391        (WebCore::TextIterator::TextIterator):
49392        Initialize new member variables for tracking handling of the beginning of the range.
49393        
49394        (WebCore::TextIterator::advance):
49395        Call representNodeOffsetZero on the m_endContainer.
49396        Move visibility checks into handleTextNode and handleReplacedElement.
49397        
49398        (WebCore::TextIterator::handleTextNode):
49399        (WebCore::TextIterator::handleTextBox):
49400        Call emitText.
49401        
49402        (WebCore::TextIterator::handleReplacedElement):
49403        Moved visibility check into here.
49404        
49405        (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
49406        
49407        (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
49408        (WebCore::TextIterator::representNodeOffsetZero):
49409        New. Emits proper sequence when encountering offset 0 of a node, including the
49410        m_endContainer. Started with code from handleNonTextNode.
49411        
49412        (WebCore::TextIterator::handleNonTextNode):
49413        Call representNodeOffsetZero.
49414        
49415        (WebCore::TextIterator::exitNode):
49416        Similar to shouldRepresentNodeOffsetZero, do not emit the newline if the node
49417        was collapsed, and before any other emitted content.
49418        
49419        (WebCore::TextIterator::emitCharacter):
49420        
49421        (WebCore::TextIterator::emitText):
49422        New. Consolidates code used by handleText and handleTextBox.
49423        
49424        (WebCore::CharacterIterator::CharacterIterator):
49425        Removed RUNFINDER.
49426
49427        (WebCore::WordAwareIterator::WordAwareIterator):
49428        Removed RUNFINDER.
49429        
49430        (WebCore::WordAwareIterator::advance):
49431        Formatting.
49432
49433        (WebCore::TextIterator::rangeLength):
49434        Formatting.
49435        
49436        * editing/TextIterator.h:
49437        Added member variables for tracking handling of the beginning of the range.
49438        Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
49439        
49440        * editing/visible_units.cpp:
49441        (WebCore::nextBoundary):
49442        Eliminated concept of RUNDFINDER vs CONTENT TextIterator.
49443
494442007-03-13  David Hyatt  <hyatt@apple.com>
49445
49446        Clean up the null image case in CachedImage::data to make sure the size totals will stay accurate.
49447        I'm not convinced this case can even be hit, but I'm cleaning it up just in case.
49448
49449        * loader/CachedImage.cpp:
49450        (WebCore::CachedImage::data):
49451
494522007-03-13  David Hyatt  <hyatt@apple.com>
49453
49454        Reorder the call to allReferencesRemoved, since otherwise the live object size will become
49455        incorrect.
49456
49457        * loader/CachedResource.cpp:
49458        (WebCore::CachedResource::deref):
49459
494602007-03-13  Antti Koivisto  <antti@apple.com>
49461
49462        Reviewed by Darin.
49463        
49464        Fix http://bugs.webkit.org/show_bug.cgi?id=11083
49465        REGRESSION: Typing tab key fails to insert a tab character in Google Docs editable area
49466        <rdar://problem/4757650>
49467        
49468        Allow inserting tabs in designMode. Backtab behaves like before (matches FF).
49469
49470        * page/EventHandler.cpp:
49471        (WebCore::EventHandler::defaultTabEventHandler):
49472
494732007-03-13  David Hyatt  <hyatt@apple.com>
49474
49475        Fix two counting errors in the decoded size of objects in the WebCore cache.  We need to explicitly
49476        destroy decoded data when clearing out a partially loaded image that had an error, since the destructor
49477        (although it does destroy the data) disconnects the observer so that the notification doesn't happen.
49478
49479        Some CachedImages aren't in the cache (like image documents).  When the decoded size of such an image
49480        changes we should not notify the cache, since - newsflash - we aren't actually in it.
49481
49482        Reviewed by ggaren
49483
49484        * loader/CachedImage.cpp:
49485        (WebCore::CachedImage::clear):
49486        (WebCore::CachedImage::decodedSizeChanged):
49487
494882007-03-13  Darin Adler  <darin@apple.com>
49489
49490        Reviewed by Tim Hatcher and John Sullivan.
49491
49492        - fix <rdar://problem/4915303> CrashTracer: 36 crashes in Safari at
49493          com.apple.AppKit: -[NSView getRectsBeingDrawn:count:] + 502
49494
49495        * page/mac/FrameMac.mm: (WebCore::Frame::imageFromRect):
49496        This was calling drawRect: directly, but NSView's getRectsBeingDrawn:count:
49497        method was never really safe to call unless it was AppKit that called your
49498        drawRect: method. Changed it to call drawSingleRect: instead. A little ugly,
49499        but seems to work and will almost certainly fix the bug.
49500
495012007-03-13  Nikolas Zimmermann  <zimmermann@kde.org>
49502
49503        Reviewed by Maciej.
49504
49505        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12974
49506
49507        Call forgetGenericContext in JSSVGPathSeg destructor, otherwhise
49508        we'll hit an ASSERT in a debug build, when running svg/custom/js-update-path-changes.svg
49509        a few dozen times in a single WebKit instance. The ASSERT is good and just warns that
49510        there was already a generic context pointer registered, and the new "to be registered"
49511        object already exists, but pointing to a different object. That's because garbage collection
49512        calls the JSSVGPathSeg destructor, but that didn't cleanup the generic context map.
49513
49514        Only JSSVGPathSeg is hit by this problem, as it's the only non SVGAnimated* type
49515        using the generic context system while using a custom JSSVGPathSegList implementation.
49516
49517        Also cleanup JSSVGPathSegListCustom code to call the static forgetGenericContext
49518        method instead of doing the same using custom code.
49519
49520        * bindings/js/JSSVGPathSegListCustom.cpp:
49521        (WebCore::removeFromPathSegContextMap):
49522        (WebCore::JSSVGPathSegList::clear):
49523        (WebCore::JSSVGPathSegList::removeItem):
49524        * bindings/scripts/CodeGeneratorJS.pm:
49525
495262007-03-13  Darin Adler  <darin@apple.com>
49527
49528        Reviewed by Adele.
49529
49530        - fix http://bugs.webkit.org/show_bug.cgi?id=12595
49531          <rdar://problem/4722863> REGRESSION: Can't add item to cart at lnt.com
49532          (JS type error) (12595)
49533
49534        Test: fast/forms/old-names.html
49535
49536        * bindings/js/JSHTMLFormElementCustom.cpp:
49537        (WebCore::JSHTMLFormElement::canGetItemsForName): If the form collection has
49538        nothing for a given name, try the form's oldNamedElement function.
49539        (WebCore::JSHTMLFormElement::nameGetter): Ditto.
49540
49541        * bindings/js/kjs_dom.h: Removed the DOMNamedNodesCollection. Instead we will use
49542        a class derived from NodeList.
49543        * bindings/js/kjs_dom.cpp: Ditto.
49544
49545        * bindings/js/kjs_html.cpp:
49546        (KJS::VectorNodeList::VectorNodeList): Added. Constructor for a new class derived
49547        from NodeList to be used for the named items result from a collection -- uses a
49548        vector of node pointers.
49549        (KJS::VectorNodeList::length): Added.
49550        (KJS::VectorNodeList::item): Added.
49551        (KJS::JSHTMLCollection::getNamedItems): Use VectorNodeList and the existing wrapper
49552        for NodeList rather than a custom JavaScript class, DOMNamedNodesCollection.
49553
49554        * dom/ChildNodeList.h:
49555        * dom/ChildNodeList.cpp:
49556        (WebCore::ChildNodeList::ChildNodeList): Updated to derive from TreeNodeList,
49557        since NodeList is now a simpler class.
49558        (WebCore::ChildNodeList::elementMatches): Updated for name and parameter change.
49559
49560        * dom/NameNodeList.h:
49561        * dom/NameNodeList.cpp:
49562        (WebCore::NameNodeList::NameNodeList): Updated to derive from TreeNodeList,
49563        since NodeList is now a simpler class.
49564        (WebCore::NameNodeList::rootNodeAttributeChanged): Updated for name and
49565        parameter change.
49566
49567        * dom/Node.h: Change register/unregister functions to take TreeNodeList.
49568        * dom/Node.cpp:
49569        (WebCore::TagNodeList::TagNodeList): Updated to derive from TreeNodeList,
49570        since NodeList is now a simpler abstract class.
49571        (WebCore::TagNodeList::elementMatches): Updated for name and parameter change.
49572        (WebCore::Node::registerNodeList): Changed type from NodeList to TreeNodeList.
49573        (WebCore::Node::unregisterNodeList): Ditto.
49574
49575        * dom/NodeList.h: Broke NodeList into a simpler base class and a derived class
49576        with the machinery for iterating a tree, called TreeNodeList.
49577        * dom/NodeList.cpp:
49578        (WebCore::NodeList::~NodeList): Added.
49579        (WebCore::NodeList::itemWithName): Factored out of the old itemWithName.
49580        (WebCore::TreeNodeList::TreeNodeList): Renamed from NodeList.
49581        (WebCore::TreeNodeList::~TreeNodeList): Ditto.
49582        (WebCore::TreeNodeList::recursiveLength): Ditto.
49583        (WebCore::TreeNodeList::itemForwardsFromCurrent): Ditto.
49584        (WebCore::TreeNodeList::itemBackwardsFromCurrent): Ditto.
49585        (WebCore::TreeNodeList::recursiveItem): Ditto.
49586        (WebCore::TreeNodeList::itemWithName): Factored half of this into this function,
49587        the other half in NodeList::itemWithName.
49588        (WebCore::TreeNodeList::rootNodeAttributeChanged): Added. No longer inline.
49589        (WebCore::TreeNodeList::rootNodeChildrenChanged): Renamed from NodeList.
49590
49591        * html/HTMLFormElement.h: Added formElementNameChanged and oldNamedElement
49592        fucntions, and a map called m_oldNames. Also removed m_boundary, which I
49593        thought I had already done.
49594        * html/HTMLFormElement.cpp:
49595        (WebCore::HTMLFormElement::HTMLFormElement): Initialize m_oldNames to 0.
49596        Switched the rest of the members to initialization syntax.
49597        (WebCore::HTMLFormElement::~HTMLFormElement): Delete m_oldNames.
49598        (WebCore::HTMLFormElement::formElementNameChanged): Added. Stores a reference
49599        to one element under each of its old names.
49600        (WebCore::HTMLFormElement::oldNamedElement): Added. Returns the old element
49601        that once had a given name.
49602
49603        * html/HTMLGenericFormElement.h:
49604        * html/HTMLGenericFormElement.cpp:
49605        (WebCore::HTMLGenericFormElement::parseMappedAttribute): When the name
49606        attribute changes, tell the form about the old name.
49607        (WebCore::HTMLGenericFormElement::insertedIntoTree): When telling a form
49608        about an element, also store away the old name so that we can use it
49609        when the name changes later.
49610
49611        * html/HTMLInputElement.cpp:
49612        (WebCore::HTMLInputElement::parseMappedAttribute): Added a call to the
49613        base class in the nameAttr case, so the code in HTMLGenericFormElement
49614        above will get called in the input element case.
49615
496162007-03-13  Antti Koivisto  <antti@apple.com>
49617
49618        Reviewed by Alexey.
49619
49620        Alexey spotted a DOS by using string of 64k unbreakable character in
49621        fix for http://bugs.webkit.org/show_bug.cgi?id=12833
49622
49623        * dom/Text.cpp:
49624        (WebCore::Text::createWithLengthLimit):
49625
496262007-03-13  Lars Knoll <lars@trolltech.com>
49627
49628        Fix the Qt build
49629
49630        * WebCore.pro:
49631
496322007-03-13  Rob Buis  <buis@kde.org>
49633
49634        Reviewed by Darin.
49635
49636        http://bugs.webkit.org/show_bug.cgi?id=12576
49637        WebKit does not support xlink:show attributes
49638
49639        Make an exception for non-empty targets, these should be opened
49640        in a new window, unless the value is _self.
49641
49642        * ksvg2/svg/SVGAElement.cpp:
49643        (WebCore::SVGAElement::defaultEventHandler):
49644
496452007-03-13  David Hyatt  <hyatt@apple.com>
49646
49647        - fix cache issues seen in http://bugs.webkit.org/show_bug.cgi?id=13050
49648          6 objects and ~200MB leaked after opening then closing tab
49649          <rdar://problem/5058714>
49650
49651        Double the encoded size of images for now.  We do this to account for a bug in ImageIO where they hold
49652        a separate copy of image data.  See <rdar://problem/5050645>.
49653
49654        Reviewed by aroben.
49655
49656        * loader/CachedImage.cpp:
49657        (WebCore::CachedImage::data):
49658
496592007-03-12  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
49660
49661        Not reviewed - gdk build fix.
49662
49663        * platform/gdk/TemporaryLinkStubs.cpp:
49664        (SearchPopupMenu::enabled): add missing stub.
49665
496662007-03-12  David Kilzer  <ddkilzer@kilzer.net>
49667
49668        Reviewed by Darin.
49669
49670        - fix http://bugs.webkit.org/show_bug.cgi?id=13045
49671          REGRESSION: Blackboard CourseWare Error with Nightlies after Mar 8
49672
49673        * html/HTMLFormElement.cpp:
49674        (WebCore::getUniqueBoundaryString): Speculative fix: remove dashes from
49675        the boundary prefix that appear after non-dash characters.
49676
496772007-03-12  Mitz Pettel  <mitz@webkit.org>
49678
49679        Reviewed by Anders.
49680
49681        - fix http://bugs.webkit.org/show_bug.cgi?id=13015
49682          REGRESSION (r17233-r17241): Repro crash when leaving a page whose unload handler submits a form
49683
49684        Test: fast/loader/onunload-form-submit-crash-2.html
49685
49686        * loader/DocumentLoader.cpp:
49687        (WebCore::DocumentLoader::finishedLoading): Added null check.
49688
496892007-03-12  Anders Carlsson  <acarlsson@apple.com>
49690
49691        Reviewed by Darin.
49692
49693        <rdar://problem/4900071>
49694        http://bugs.webkit.org/show_bug.cgi?id=6454
49695        ASSERTION: Navigating 'back' in frameset: !_private->previousItem (6454)
49696
49697        Change back the behavior of checkLoadComplete to traverse the entire frame tree instead of
49698        just the parent frames of the current frame. This is needed in order to reset the previous history item
49699        for all frames when doing a frame navigation. (This was changed in revision 11819)
49700        
49701        * loader/FrameLoader.cpp:
49702        (WebCore::FrameLoader::recursiveCheckLoadComplete):
49703        (WebCore::FrameLoader::checkLoadComplete):
49704        * loader/FrameLoader.h:
49705
497062007-03-12  Justin Garcia  <justin.garcia@apple.com>
49707
49708        Reviewed by darin
49709        
49710        <rdar://problem/5056619> 
49711        REGRESSION: Gmail Editor: Dragging text into Reply (textarea) field results in a crash at WebCore::InsertNodeBeforeCommand::doApply()
49712        
49713        * editing/SelectionController.cpp:
49714        (WebCore::removingNodeRemovesPosition): Added.
49715        (WebCore::SelectionController::nodeWillBeRemoved): Clear the
49716        selection if it's inside a shadow tree.
49717        * page/DragController.cpp:
49718        (WebCore::setSelectionToDragCaret): Return false to signal to
49719        clients that a drop shouldn't be performed if the second attempt
49720        to set a selection ends up in non-editable content.
49721
497222007-03-12  Darin Adler  <darin@apple.com>
49723
49724        Reviewed by Tim Hatcher.
49725
49726        - fixed JavaScript wrapper classes to be correct for a variety of cases
49727          that a new test uncovered: was broken for at least 5 classes
49728
49729        - fixed Objective-C wrapper classes to be correct for a variety of cases
49730          that a test case uncovered: was broken for ast least 50 classes
49731
49732        - added missing DOM API for creating OverflowEvent and WheelEvent instances
49733
49734        Test: fast/dom/wrapper-classes.html
49735
49736        * DerivedSources.make: Added missing bindings: HTMLCanvasElement for ObjC,
49737        CDATASection, Comment, and EntityReference for JavaScript.
49738        * WebCore.xcodeproj/project.pbxproj: Added those new generated files.
49739
49740        * bindings/js/JSHTMLElementWrapperFactory.cpp:
49741        (WebCore::createJSHTMLWrapper): Corrected the wrapper classes for <keygen>,
49742        which needs an HTMLSelectElement wrapper, and <xmp>, which needs an
49743        HTMLPreElement wrapper.
49744
49745        * bindings/objc/DOMInternal.h: Updated for new naming scheme.
49746        Also moved createDOMWrapper from the KJS namespace to the WebCore namespace.
49747        * bindings/objc/DOMUtility.mm:
49748        (KJS::createDOMWrapper): Broke the core function into a separate one, and
49749        left it in the KJS namespace because Objective-C++ rules make it impossible
49750        for it to work in the WebCore namespace. Used a macro-based implementation
49751        to cut down on repeated code, and added missing cases for Counter,
49752        HTMLOptionsCollection, Range, XPathExpression, XPathResult, Event, RGBColor,
49753        Rect, Window, DOMImplementation, NodeIterator, TreeWalker, and HTMLCollection.
49754        (WebCore::createDOMWrapper): The other half of the function.
49755
49756        * bindings/objc/DOM.mm:
49757        (WebCore::createElementClassMap): Corrected the wrapper classes for
49758        <canvas>, which needs a DOMHTMLCanvasElement wrapper, <del>, which needs
49759        a DOMHTMLModElement wrapper, <embed>, which needs a DOMHTMLEmbedElement
49760        wrapper, <ins>, which needs a DOMHTMLModElement wrapper, <th>, which needs
49761        a DOMHTMLTableCellElement wrapper, and <xmp>, which needs an
49762        DOMHTMLPreElement wrapper.
49763        (+[DOMNode _wrapNode:]): Updated for new naming scheme.
49764        (+[DOMNode _wrapEventTarget:]): Ditto.
49765        (+[DOMNodeFilter _wrapNodeFilter:]): Ditto.
49766        (ObjCNodeFilterCondition::acceptNode): Ditto.
49767        (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]): Ditto.
49768        (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]): Ditto.
49769        (WebCore::ObjCEventListener::handleEvent): Ditto.
49770
49771        * dom/Document.cpp: (WebCore::Document::createEvent):
49772        Added cases for OverflowEvent and WheelEvent.
49773
49774        * dom/OverflowEvent.h: Added empty constructor and initOverflowEvent.
49775        * dom/OverflowEvent.cpp:
49776        (WebCore::OverflowEvent::OverflowEvent): Added.
49777        (WebCore::OverflowEvent::initOverflowEvent): Added.
49778        * dom/OverflowEvent.idl: Added initOverflowEvent.
49779
49780        * bindings/objc/PublicDOMInterfaces.h: Added initOverflowEvent.
49781
49782        * bindings/objc/DOMCSS.mm:
49783        (+[DOMStyleSheet _wrapStyleSheet:]): Updated for new naming scheme.
49784        (+[DOMCSSRule _wrapCSSRule:]): Corrected wrapper for CSSUnknownRule.
49785        (+[DOMCSSValue _wrapCSSValue:]): Updated for new naming scheme.
49786
49787        * bindings/js/kjs_css.h:
49788        (KJS::DOMRGBColor::impl): Added. Used when making an ObjC wrapper.
49789        (KJS::DOMRect::impl): Ditto.
49790
49791        * bindings/js/kjs_dom.cpp: (KJS::toJS): Corrected the wrapper classes for
49792        CDATASection, Comment, and EntityReference.
49793
49794        * bindings/js/kjs_html.cpp: Corrected the class name for HTMLElement
49795        (was "DOMHTMLElement") and HTMLCollection (was "Collection").
49796
49797        * bindings/objc/DOMImplementationFront.h:
49798        * bindings/objc/DOMImplementationFront.cpp:
49799        (WebCore::implementationFront): Added new overload that returns a front given
49800        a JavaScript wrapper. Needed by the code that makes the Objective-C wrapper.
49801
49802        * bindings/objc/WebScriptObject.mm:
49803        (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
49804        Updated since createDOMWrapper is now in the WebCore namespace.
49805
49806        * bindings/scripts/CodeGeneratorObjC.pm: Update the naming scheme for the
49807        wrapper creation functions to use _wrapElement: rather then _elementWith:
49808        style. Removed now-unneeded special cases for things that needed to stay
49809        upper-case, since we don't have to do the whole lcfirst thing.
49810
49811        * html/HTMLCanvasElement.idl: Added #if so we can successfully generate the
49812        Objective-C wrapper for this class, even though we can't yet handle the
49813        DOMObject return type.
49814
49815        * html/HTMLOptionsCollection.idl: Added GenerateNativeConverter so we get
49816        an appropriate toJS function.
49817
49818        * bindings/objc/DOMEvents.mm:
49819        (+[DOMEvent _wrapEvent:]):
49820        * bindings/objc/DOMHTML.mm:
49821        (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]):
49822        (-[DOMHTMLDocument createDocumentFragmentWithText:]):
49823        * bindings/objc/DOMObject.mm:
49824        (-[DOMObject sheet]):
49825        * bindings/objc/DOMRGBColor.mm:
49826        (-[DOMRGBColor red]):
49827        (-[DOMRGBColor green]):
49828        (-[DOMRGBColor blue]):
49829        (-[DOMRGBColor alpha]):
49830        (+[DOMRGBColor _wrapRGBColor:]):
49831        * bindings/objc/DOMSVGPathSegInternal.mm:
49832        (+[DOMSVGPathSeg _wrapSVGPathSeg:]):
49833        * bindings/objc/DOMXPath.mm:
49834        (+[DOMNativeXPathNSResolver _wrapXPathNSResolver:]):
49835        * page/mac/WebCoreFrameBridge.mm:
49836        (-[WebCoreFrameBridge nodesFromList:]):
49837        (-[WebCoreFrameBridge elementWithName:inForm:]):
49838        (-[WebCoreFrameBridge formForElement:]):
49839        (-[WebCoreFrameBridge currentForm]):
49840        (-[WebCoreFrameBridge controlsInForm:]):
49841        (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
49842        (-[WebCoreFrameBridge convertNSRangeToDOMRange:]):
49843        (-[WebCoreFrameBridge markDOMRange]):
49844        (-[WebCoreFrameBridge markedTextDOMRange]):
49845        (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]):
49846        (-[WebCoreFrameBridge documentFragmentWithMarkupString:baseURLString:]):
49847        (-[WebCoreFrameBridge documentFragmentWithText:inContext:]):
49848        (-[WebCoreFrameBridge documentFragmentWithNodesAsParagraphs:]):
49849        (-[WebCoreFrameBridge replaceSelectionWithNode:selectReplacement:smartReplace:matchStyle:]):
49850        (-[WebCoreFrameBridge replaceSelectionWithText:selectReplacement:smartReplace:]):
49851        (-[WebCoreFrameBridge increaseSelectionListLevel]):
49852        (-[WebCoreFrameBridge increaseSelectionListLevelOrdered]):
49853        (-[WebCoreFrameBridge increaseSelectionListLevelUnordered]):
49854        (-[WebCoreFrameBridge dragCaretDOMRange]):
49855        (-[WebCoreFrameBridge editableDOMRangeForPoint:]):
49856        (-[WebCoreFrameBridge characterRangeAtPoint:]):
49857        (-[WebCoreFrameBridge typingStyle]):
49858        (-[WebCoreFrameBridge rangeOfCharactersAroundCaret]):
49859        * platform/mac/ClipboardMac.mm:
49860        (WebCore::ClipboardMac::declareAndWriteDragImage):
49861        * platform/mac/PasteboardMac.mm:
49862        (WebCore::Pasteboard::writeSelection):
49863        Updated for new naming scheme.
49864
498652007-03-12  Timothy Hatcher  <timothy@apple.com>
49866
49867        Reviewed by Darin.
49868
49869        <rdar://problem/4990691> REGRESSION: Selecting text in Adium's Messages field causes horizontal shift
49870
49871        Corrected the recursive point conversion and scrolling done in scrollPointRecursively to use the
49872        document view of each NSClipView.
49873
49874        * platform/mac/ScrollViewMac.mm:
49875        (WebCore::ScrollView::scrollPointRecursively): Call convertPoint:fromView: on the document views,
49876        not the clip views as we encounter them. Then call constrainScrollPoint: on the converted point to
49877        constrain to the document view bounds. And finally call scrollPoint: on the document view, not the clip view.
49878
498792007-03-12  Antti Koivisto  <antti@apple.com>
49880
49881        Reviewed by Alexey.
49882
49883        Fix http://bugs.webkit.org/show_bug.cgi?id=12833
49884        REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
49885        <rdar://problem/5028159>
49886        
49887        Divide large text blocks (>64kB) over multiple text nodes. This limits linebox searches to
49888        a manageable subset.
49889        
49890        * dom/Text.cpp:
49891        (WebCore::Text::createWithLengthLimit):
49892        * dom/Text.h:
49893        * html/HTMLParser.cpp:
49894        (WebCore::HTMLParser::parseToken):
49895        * loader/TextDocument.cpp:
49896        (WebCore::TextTokenizer::write):
49897
498982007-03-12  David Hyatt  <hyatt@apple.com>
49899
49900        Fix a regression in printing.  Printer fonts need to be part of the
49901        font cache key, since printer fonts have different glyph widths.
49902        (Integer antialiasing is used for screen fonts but not for printer fonts.)
49903
49904        Reviewed by aroben
49905
49906        * platform/FontCache.cpp:
49907        (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
49908        (WebCore::FontPlatformDataCacheKey::operator==):
49909        (WebCore::computeHash):
49910        (WebCore::FontCache::getCachedFontPlatformData):
49911
499122007-03-12  Lars Knoll <lars@trolltech.com>
49913
49914        add missing symbol to fix the Qt build again.
49915
49916        * platform/qt/SearchPopupMenuQt.cpp:
49917        (WebCore::SearchPopupMenu::enabled):
49918
499192007-03-12  Adele Peterson  <adele@apple.com>
49920
49921        Reviewed by Oliver.
49922
49923        Adding the ability to enable or disable a SearchPopupMenu.
49924
49925        * platform/SearchPopupMenu.h:
49926        * platform/mac/SearchPopupMenuMac.mm: (WebCore::SearchPopupMenu::enabled):
49927        * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::showPopup):
49928
499292007-03-12  Rob Buis  <buis@kde.org>
49930
49931        Reviewed by Nikolas Zimmermann.
49932
49933        http://bugs.webkit.org/show_bug.cgi?id=12500
49934        SVG fails to correctly handle all link style selectors
49935        http://bugs.webkit.org/show_bug.cgi?id=12567
49936        <text> elements ignore <a> children
49937
49938        Allow <a> inside svg text and handle xlink:show.
49939
49940        * ksvg2/svg/SVGAElement.cpp:
49941        (WebCore::SVGAElement::createRenderer):
49942        (WebCore::SVGAElement::defaultEventHandler):
49943        (WebCore::SVGAElement::childShouldCreateRenderer):
49944        * ksvg2/svg/SVGAElement.h:
49945        * ksvg2/svg/SVGElement.h:
49946        (WebCore::SVGElement::isTextContent):
49947        * ksvg2/svg/SVGTextContentElement.h:
49948        (WebCore::SVGTextContentElement::isTextContent):
49949        * ksvg2/svg/SVGTextElement.cpp:
49950        (WebCore::SVGTextElement::childShouldCreateRenderer):
49951        * rendering/SVGInlineFlowBox.cpp:
49952        (WebCore::translateBox):
49953        (WebCore::placePositionedBoxesHorizontally):
49954        (WebCore::placeBoxesVerticallyWithAbsBaseline):
49955
499562007-03-12  Adele Peterson  <adele@apple.com>
49957
49958        Reviewed by Oliver.
49959
49960        Add a missing parameter to the constructor.
49961
49962        * platform/PlatformKeyboardEvent.h:
49963        * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
49964
499652007-03-12  Lars Knoll <lars@trolltech.com>
49966
49967        Fix the Qt build. I still get crashes though :/
49968
49969        * platform/graphics/qt/ImageDecoderQt.cpp:
49970        (WebCore::ImageDecoderQt::clearFrame):
49971        * platform/graphics/qt/ImageDecoderQt.h:
49972        * platform/graphics/qt/ImageSourceQt.cpp:
49973        (WebCore::ImageSource::setData):
49974        (WebCore::ImageSource::frameIsCompleteAtIndex):
49975        (WebCore::ImageSource::clear):
49976        (WebCore::ImageSource::destroyFrameAtIndex):
49977        * platform/qt/ClipboardQt.cpp:
49978        (WebCore::ClipboardQt::ClipboardQt):
49979        * platform/qt/ClipboardQt.h:
49980        * platform/qt/DragDataQt.cpp:
49981        (WebCore::DragData::createClipboard):
49982
499832007-03-11  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
49984
49985        Not reviewed - gdk build fixes.
49986
49987        * platform/gdk/EditorClientGdk.cpp:
49988        (WebCore::EditorClientGdk::respondToChangedSelection): add stub
49989        * platform/gdk/EditorClientGdk.h:
49990        * platform/gdk/FrameGdk.cpp:
49991        * platform/gdk/TemporaryLinkStubs.cpp:
49992        (Editor::markMisspellings): add stub
49993
499942007-03-11  Alexey Proskuryakov  <ap@webkit.org>
49995
49996        Reviewed by Adele.
49997
49998        http://bugs.webkit.org/show_bug.cgi?id=12560
49999        W3C XPath test Text_Nodes.svg fails
50000
50001        * xml/XPathStep.cpp:
50002        (WebCore::XPath::Step::nodeTestMatches): Revert the fix, as the behavior doesn't appear 
50003        all that desirable as it did at first glance.
50004
500052007-03-11  Oliver Hunt  <oliver@apple.com>
50006
50007        Reviewed by hyatt.
50008
50009        Fix for <rdar://problem/5055690> ASSERTION failure on drop into 
50010        editable element with content changed on drop 
50011
50012        After setting the selection for a drop into an editable region 
50013        we make sure the we succeeded.  If we didn't we assume a focus handler
50014        or similar altered the element contents and try again, if the second
50015        attempt fails we bail out.
50016
50017        * page/DragController.cpp:
50018        (WebCore::setSelectionToDragCaret):
50019        (WebCore::DragController::concludeDrag):
50020
500212007-03-11  Oliver Hunt  <oliver@apple.com>
50022
50023        Reviewed by Adele.
50024
50025        Moving Frame{Mac}::respondToChangedSelection to Frame.cpp
50026        Added new EditorClient method to handle old bridge function
50027        
50028        * bridge/EditorClient.h:
50029           Added respondToChangedSelection to replace old bridge function
50030        * editing/Editor.cpp:
50031        (WebCore::Editor::respondToChangedSelection):
50032           Add client call to replace old bridge call from Frame::respondToChangedSelection
50033        * editing/SelectionController.cpp:
50034        (WebCore::SelectionController::setSelection):
50035           No longer directly call Editor as Frame::respondToChangedSelection
50036           makes the call
50037        * page/Frame.cpp:
50038        (WebCore::Frame::respondToChangedSelection):
50039           Moved from FrameMac, replaced bridge call with call to Editor
50040        * page/mac/FrameMac.mm:
50041           Moved respondToChangedSelection to Frame.cpp
50042        * page/mac/WebCoreFrameBridge.h:
50043           Removed respondToChangedSelection from bridge
50044        * page/qt/FrameQt.cpp:
50045           Remove stub method for respondToChangedSelection
50046
500472007-03-11  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
50048
50049        Reviewed by Brady Eidson.
50050
50051        Linux/gdk fix.
50052
50053        * loader/gdk/FrameLoaderClientGdk.cpp:
50054        (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem): return true so
50055        that FrameLoader:goBackOrForwards() works.
50056
500572007-03-10  Geoffrey Garen  <ggaren@apple.com>
50058
50059        Reviewed by Darin Adler.
50060
50061        Fixed <rdar://problem/4587763> PAC file: lock inversion between QT and 
50062        JSCore causes a hang @ www.panoramas.dk
50063        
50064        See JavaScriptCore ChangeLog for details.
50065        
50066        * bindings/objc/WebScriptObject.mm:
50067        (_didExecute): Added helpful ASSERT.
50068        (+[WebScriptObject throwException:]): Added missing JSLock.
50069
500702007-03-11  Antti Koivisto  <antti@apple.com>
50071
50072        Reviewed by Hyatt.
50073
50074        Optimize linebox memory consumption:
50075        - move all bitfields to baseclass compacting them
50076        - make InlineTextBox::m_truncation unsigned short and make it relative to m_start
50077        - remove extremely rarely used EllipsisBox pointer from RootInlineBox and instead
50078          use a global hashmap to store it if needed
50079        - use minimum required number of bits to store BidiStatus enum variables in RootInlineBox
50080        - move overflow variables in RootInlineBox to a separate struct that is instantiated
50081          only if any of the variables is set to a value that can't trivially be derived from 
50082          box x, y, width and height
50083          
50084        As a result line box objects shrink:
50085            InlineBox: 44 -> 44 bytes
50086            InlineTextBox: 68 -> 60 bytes
50087            InlineFlowBox: 68 -> 64 bytes
50088            RootInlineBox: 128 -> 88 bytes
50089            
50090        The optimizations possiblity was noticed when debugging http://bugs.webkit.org/show_bug.cgi?id=12833
50091        Bug 12833: REGRESSION: Selecting text in 6.6MB txt file is sluggish as of the Feb 19th nightly
50092        <rdar://problem/5028159>
50093        
50094        On that page the patch saves 11.5MB or some 21% of linebox memory consumption. It also
50095        actually improves selection performance somewhat by improving memory locality.
50096
50097        * rendering/InlineBox.h:
50098        (WebCore::InlineBox::InlineBox):
50099        * rendering/InlineFlowBox.h:
50100        (WebCore::InlineFlowBox::InlineFlowBox):
50101        * rendering/InlineTextBox.cpp:
50102        (WebCore::InlineTextBox::placeEllipsisBox):
50103        (WebCore::InlineTextBox::nodeAtPoint):
50104        (WebCore::InlineTextBox::paint):
50105        (WebCore::InlineTextBox::paintDecoration):
50106        (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
50107        (WebCore::InlineTextBox::paintMarkedTextUnderline):
50108        * rendering/InlineTextBox.h:
50109        (WebCore::InlineTextBox::InlineTextBox):
50110        * rendering/RootInlineBox.cpp:
50111        (WebCore::throw):
50112        (WebCore::RootInlineBox::Overflow::operator delete):
50113        (WebCore::RootInlineBox::Overflow::destroy):
50114        (WebCore::RootInlineBox::destroy):
50115        (WebCore::RootInlineBox::detachEllipsisBox):
50116        (WebCore::RootInlineBox::clearTruncation):
50117        (WebCore::RootInlineBox::placeEllipsis):
50118        (WebCore::RootInlineBox::paintEllipsisBox):
50119        (WebCore::RootInlineBox::addHighlightOverflow):
50120        (WebCore::RootInlineBox::nodeAtPoint):
50121        (WebCore::RootInlineBox::adjustPosition):
50122        (WebCore::RootInlineBox::selectionTop):
50123        (WebCore::RootInlineBox::setLineBreakInfo):
50124        (WebCore::RootInlineBox::ellipsisBox):
50125        (WebCore::RootInlineBox::setVerticalOverflowPositions):
50126        (WebCore::RootInlineBox::setHorizontalOverflowPositions):
50127        (WebCore::RootInlineBox::setVerticalSelectionPositions):
50128        * rendering/RootInlineBox.h:
50129        (WebCore::RootInlineBox::RootInlineBox):
50130        (WebCore::RootInlineBox::topOverflow):
50131        (WebCore::RootInlineBox::bottomOverflow):
50132        (WebCore::RootInlineBox::leftOverflow):
50133        (WebCore::RootInlineBox::rightOverflow):
50134        (WebCore::RootInlineBox::lineBreakBidiStatus):
50135        (WebCore::RootInlineBox::selectionBottom):
50136        (WebCore::RootInlineBox::Overflow::Overflow):
50137
501382007-03-11  Alexey Proskuryakov  <ap@webkit.org>
50139
50140        Reviewed by Darin.
50141
50142        A partial fix for http://bugs.webkit.org/show_bug.cgi?id=13021
50143        XPath can be very slow
50144
50145        * xml/XPathExpression.cpp:
50146        (WebCore::XPathExpression::evaluate): Cache evaluationContext in a local variable.
50147
50148        * xml/XPathExpressionNode.cpp:
50149        (WebCore::XPath::Expression::evaluationContext):
50150        * xml/XPathExpressionNode.h:
50151        (WebCore::XPath::Expression::addSubExpression):
50152        (WebCore::XPath::Expression::subExprCount):
50153        (WebCore::XPath::Expression::subExpr):
50154        * xml/XPathFunctions.cpp:
50155        * xml/XPathFunctions.h:
50156        (WebCore::XPath::Function::setName):
50157        (WebCore::XPath::Function::arg):
50158        (WebCore::XPath::Function::argCount):
50159        (WebCore::XPath::Function::name):
50160        Made one-liners critical for performance inline.
50161
50162        * xml/XPathGrammar.y: Fully parse NodeTests, so that strings are no longer passed for what is
50163        essentially an enum. Use LocationPath accessors to add steps, instead of directly manipulating
50164        internal data members.
50165
50166        * xml/XPathParser.cpp:
50167        (WebCore::XPath::Parser::parseStatement):
50168        (WebCore::XPath::Parser::registerNodeTest):
50169        (WebCore::XPath::Parser::deleteNodeTest):
50170        * xml/XPathParser.h:
50171        Added support methods for changes in XPathGrammar.y.
50172
50173        * xml/XPathPath.cpp:
50174        (WebCore::XPath::Filter::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
50175        performing vector assignments.
50176        (WebCore::XPath::LocationPath::evaluate): Use swap() to avoid performing vector assignments.
50177        (WebCore::XPath::LocationPath::optimizeStepPair): This new method is called during LocationPath construction, 
50178        to simplify the path as it's being built. Currently, the only optimized case is "//*" - it is a basis for
50179        important operations that cannot be efficiently written in XPath 1.0, but can be optimized with a little bit
50180        of XPath 2.0.
50181        (WebCore::XPath::LocationPath::appendStep): A new accessor that modifies m_steps and calls optimizeStepPair().
50182        (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
50183        * xml/XPathPath.h:
50184        (WebCore::XPath::LocationPath::setAbsolute): A new accessor.
50185
50186        * xml/XPathStep.h:
50187        (WebCore::XPath::Step::NodeTest::):
50188        (WebCore::XPath::Step::NodeTest::NodeTest):
50189        (WebCore::XPath::Step::NodeTest::kind):
50190        (WebCore::XPath::Step::NodeTest::data):
50191        Step::NodeTest is a new sub-class that represents a fully parsed NodeTest.
50192        (WebCore::XPath::Step::axis):
50193        (WebCore::XPath::Step::nodeTest):
50194        (WebCore::XPath::Step::nodeTestData):
50195        (WebCore::XPath::Step::namespaceURI):
50196        (WebCore::XPath::Step::predicates):
50197        (WebCore::XPath::Step::setAxis):
50198        (WebCore::XPath::Step::setNodeTest):
50199        (WebCore::XPath::Step::setNodeTestData):
50200        (WebCore::XPath::Step::setNamespaceURI):
50201        (WebCore::XPath::Step::setPredicates):
50202        New accessors that let optimizeStepPair() manipulate Step data.
50203
50204        * xml/XPathStep.cpp:
50205        (WebCore::XPath::Step::Step): Use the new NodeTest class.
50206        (WebCore::XPath::Step::evaluate): Cache evaluationContext in a local variable. Use swap() to avoid
50207        performing unneeded vector assignments.
50208        (WebCore::XPath::Step::nodesInAxis): Cosmetic changes.
50209        (WebCore::XPath::Step::nodeTestMatches): Use NodeTest instead of parsing the test from string each time.
50210        Added a partial implementation of XPath 2.0 element() node test.
50211
502122007-03-10  Alexey Proskuryakov  <ap@webkit.org>
50213
50214        Reviewed by Darin.
50215
50216        http://bugs.webkit.org/show_bug.cgi?id=12249
50217        FCKeditor: <hr>, <ul> and <ol> have id="undefined"
50218
50219        This fixes the attached reduction, but not the original issue.
50220
50221        Test: editing/execCommand/default-parameters.html
50222
50223        * dom/Document.h:
50224        * dom/Document.idl:
50225        Make second and third execCommand() parameters optional.
50226
502272007-03-10  Adele Peterson  <adele@apple.com>
50228
50229        Reviewed by Maciej.
50230
50231        Fix for http://bugs.webkit.org/show_bug.cgi?id=13028
50232        REGRESSION: textField:doCommandBySelector:inFrame: not being called properly
50233
50234        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
50235          Before calling the base class defaultEventHandler, which will call handleKeypress, call doTextFieldCommandFromEvent.        
50236
502372007-03-10  Mitz Pettel  <mitz@webkit.org>
50238
50239        Reviewed by Darin.
50240
50241        - fix http://bugs.webkit.org/show_bug.cgi?id=13013
50242          REGRESSION: Selection box does not scroll to where the focus jumps when pressing an alphanumeric key
50243
50244        Test: fast/forms/listbox-typeahead-scroll.html
50245
50246        * html/HTMLSelectElement.cpp:
50247        (WebCore::HTMLSelectElement::setSelectedIndex): Reordered to set the active selection's
50248        anchor and end before selecting the option, since the active selection is used to
50249        decide where to scroll when the selection is made.
50250        (WebCore::HTMLSelectElement::defaultEventHandler): Removed redundant check.
50251
502522007-03-10  Mitz Pettel  <mitz@webkit.org>
50253
50254        Reviewed by Darin.
50255
50256        - fix http://bugs.webkit.org/show_bug.cgi?id=12973
50257          REGRESSION: Reproducible assert while loading this test file if css is already in the cache
50258
50259        Test: fast/dom/css-cached-import-rule.html
50260
50261        Replaced some direct calls to document->stylesheetLoaded() with calls to
50262        the sheet's checkLoaded(). The latter calls back to the element's sheetLoaded() --
50263        which notifies the document of the load -- and then updates the sheet's
50264        loadCompleted() flag, ensuring that it stays in sync with whether the stylesheet
50265        is still considered pending by the document.
50266
50267        * dom/ProcessingInstruction.cpp:
50268        (WebCore::ProcessingInstruction::parseStyleSheet):
50269        * dom/StyleElement.cpp:
50270        (WebCore::StyleElement::childrenChanged):
50271        * html/HTMLLinkElement.cpp:
50272        (WebCore::HTMLLinkElement::process):
50273        (WebCore::HTMLLinkElement::setCSSStyleSheet):
50274        * ksvg2/svg/SVGStyleElement.cpp:
50275        (WebCore::SVGStyleElement::sheetLoaded):
50276        * ksvg2/svg/SVGStyleElement.h:
50277
502782007-03-10  David Kilzer  <ddkilzer@webkit.org>
50279
50280        Reviewed by Darin.
50281
50282        - fix http://bugs.webkit.org/show_bug.cgi?id=9609
50283          REGRESSION: Missing image icon needs to be moved back to WebKit
50284
50285        * WebCore.exp: Export WebCore::Image::loadPlatformResource(const char*) for use in
50286        [WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:].
50287
502882007-03-09  Darin Adler  <darin@apple.com>
50289
50290        Reviewed by Justin.
50291
50292        - fix http://bugs.webkit.org/show_bug.cgi?id=8928
50293          <rdar://problem/5045708> REPRODUCIBLE ASSERT: Cannot paste HTML into a
50294          contenteditable region in an XHTML document (8928)
50295
50296        Test: editing/pasteboard/paste-xml.xhtml
50297
50298        * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Added a check for 0
50299        here, since createContextualFragment can return 0 for XML documents that fail
50300        to parse. In my testing, callers all seem equipped to handle 0.
50301
503022007-03-09  Mitz Pettel  <mitz@webkit.org>
50303
50304        Reviewed by Darin.
50305
50306        - fix http://bugs.webkit.org/show_bug.cgi?id=9929
50307          REGRESSION: crash on logging in on mijnpostbank.nl
50308
50309        Test: http/tests/misc/onload-remove-iframe-crash-2.html
50310
50311        The resulted from an iframe's load event handler removing the iframe
50312        from the document.
50313
50314        * dom/Document.cpp:
50315        (WebCore::Document::implicitClose): Bail out early if an event handler
50316        removed the frame.
50317        * loader/FrameLoader.cpp:
50318        (WebCore::FrameLoader::FrameLoader):
50319        (WebCore::FrameLoader::clear):
50320        (WebCore::FrameLoader::checkCompleted): Protect the frame from deletion
50321        by event handlers.
50322        (WebCore::FrameLoader::checkCompletedTimerFired):
50323        (WebCore::FrameLoader::scheduleCheckCompleted):
50324        (WebCore::FrameLoader::detachFromParent): Schedule a completion check
50325        on the parent (in case the child is what has been keeping it from completing).
50326        * loader/FrameLoader.h:
50327
503282007-03-08  David Kilzer  <ddkilzer@webkit.org>
50329
50330        Reviewed by Beth.
50331
50332        - fix http://bugs.webkit.org/show_bug.cgi?id=13019
50333          REGRESSION (r20074): Forms don't submit on a variety of websites
50334
50335        No tests added since LayoutTests/fast/forms/document-write.html was timing out
50336        and causing a layout test failure.
50337
50338        * html/HTMLFormElement.cpp:
50339        (WebCore::HTMLFormElement::submit): Removed stray code.
50340
503412007-03-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
50342
50343        Not reviewed - gdk build fix.
50344
50345        * platform/graphics/cairo/ImageSourceCairo.cpp:
50346        (WebCore::ImageSource::frameIsCompleteAtIndex): add empty stub
50347
503482007-03-08  Justin Garcia  <justin.garcia@apple.com>
50349
50350        Reviewed by harrison
50351        
50352        <rdar://problem/4903193> 
50353        On particular page, Copy is so slow it seems like a hang
50354        
50355        ~2x speedup copying:
50356        http://shakespeare.mit.edu/henryviii/full.html 
50357        Also produces less bloated markup.
50358
50359        * editing/markup.cpp:
50360        (WebCore::startMarkup): Don't wrap text nodes in style spans.
50361        For Elements, don't inline styles inherited from ancestors.
50362        (WebCore::createMarkup): No longer necessary to find 
50363        the root's default style and pass it to startMarkup.
50364        Add a wrapper span around the markup with the styles
50365        that all nodes in the markup inherit (the inheritable 
50366        styles from the common ancestor container's computed style).
50367        Added a FIXME about unecessary markup for inline ancestors 
50368        up to the commonAncestorBlock.
50369
503702007-03-08  Darin Adler  <darin@apple.com>
50371
50372        Reviewed by Adele.
50373
50374        - <rdar://problem/4470381> multipart/form-data boundary security vulnerability
50375
50376        By making the form data boundary a string with some random data in it, we reduce
50377        the possibility that anyone could take advantage of it by creating a file that
50378        intentionally has the boundary string in it.
50379
50380        * html/HTMLFormElement.h: Removed boundary(), setBoundary(), and m_boundary.
50381        Marked a lot more stuff private.
50382        * html/HTMLFormElement.cpp:
50383        (WebCore::HTMLFormElement::HTMLFormElement): Removed code to initialize
50384        m_boundary.
50385        (WebCore::randomNumber): Added. Function that returns a random number, including
50386        seeding the random number generator the first time it's called. For now, usees the more
50387        random function random() on Mac OS X and the more-standard rand() on other platforms.
50388        (WebCore::HTMLFormElement::formData): Take a parameter with the form boundary string,
50389        and use that instead of m_boundary.
50390        (WebCore::getUniqueBoundaryString): Added. Makes a boundary string using random numbers
50391        and base 64 encoding.
50392        (WebCore::HTMLFormElement::submit): Call getUniqueBoundaryString and pass the boundary
50393        string into formData for multipart form posts.
50394
503952007-03-08  Maciej Stachowiak  <mjs@apple.com>
50396
50397        Reviewed by Adele.
50398        
50399        <rdar://problem/4646563> REGRESSION: Unable to send text message from Verizon text message website: vtext.com (12588)
50400        http://bugs.webkit.org/show_bug.cgi?id=12588
50401
50402        Carefully revised which focus operations restore previous selection, which clear it, and which
50403        select the whole control contents.
50404        
50405        Tests:
50406        fast/forms/focus-selection-input.html
50407        fast/forms/focus-selection-textarea.html
50408        
50409        * dom/Element.cpp:
50410        (WebCore::Element::focus):
50411        * dom/Element.h:
50412        * html/HTMLInputElement.cpp:
50413        (WebCore::HTMLInputElement::focus):
50414        (WebCore::HTMLInputElement::accessKeyAction):
50415        * html/HTMLInputElement.h:
50416        * html/HTMLLabelElement.cpp:
50417        (WebCore::HTMLLabelElement::focus):
50418        (WebCore::HTMLLabelElement::accessKeyAction):
50419        * html/HTMLLabelElement.h:
50420        * html/HTMLLegendElement.cpp:
50421        (WebCore::HTMLLegendElement::focus):
50422        * html/HTMLLegendElement.h:
50423        * html/HTMLTextAreaElement.cpp:
50424        (WebCore::HTMLTextAreaElement::focus):
50425        * html/HTMLTextAreaElement.h:
50426        * page/FocusController.cpp:
50427        (WebCore::FocusController::advanceFocus):
50428
504292007-03-08  Justin Garcia  <justin.garcia@apple.com>
50430
50431        Reviewed by harrison
50432
50433        <http://bugs.webkit.org/show_bug.cgi?id=12244>
50434        FCKeditor: Find dialog doesn't work
50435
50436        * bindings/js/kjs_window.cpp:
50437        (KJS::Window::find): Added.  This function doesn't yet 
50438        support whole word searches, searching in subframes, or
50439        opening the find dialog.
50440        (KJS::WindowFunc::callAsFunction):
50441        * bindings/js/kjs_window.h:
50442        (KJS::Window::):
50443
504442007-03-08  David Hyatt  <hyatt@apple.com>
50445
50446        Fix regression from throwing away frames of large animated images.  Alter
50447        animated images so that they refuse to advance the animation until the
50448        current displayed frame has been fully decoded.
50449
50450        Reviewed by ggaren
50451
50452        * platform/graphics/BitmapImage.cpp:
50453        (WebCore::BitmapImage::startAnimation):
50454        (WebCore::BitmapImage::advanceAnimation):
50455        * platform/graphics/ImageSource.h:
50456        * platform/graphics/cg/ImageSourceCG.cpp:
50457        (WebCore::ImageSource::frameIsCompleteAtIndex):
50458
504592007-03-08  David Hyatt  <hyatt@apple.com>
50460
50461        Fix 2% performance regression on the PLT.  Increase the large animated
50462        image cutoff from 1MB to 5MB.
50463
50464        In addition when pruning we will aggressively discard image sources.
50465
50466        Reviewed by ggaren
50467
50468        * platform/graphics/BitmapImage.cpp:
50469        (WebCore::BitmapImage::destroyDecodedData):
50470
504712007-03-08  Timothy Hatcher  <timothy@apple.com>
50472
50473        Reviewed by John.
50474
50475        <rdar://problem/4664697> highlighter SPI needs a node parameter to give more context
50476
50477        Pass the RenderObject's node to customHighlightLineRect and paintCustomHighlight.
50478
50479        * page/Frame.h:
50480        * page/mac/FrameMac.mm:
50481        (WebCore::Frame::customHighlightLineRect):
50482        (WebCore::Frame::paintCustomHighlight):
50483        * page/mac/WebCoreFrameBridge.h:
50484        * rendering/InlineTextBox.cpp:
50485        (WebCore::InlineTextBox::paintCustomHighlight):
50486        * rendering/RenderBox.cpp:
50487        (WebCore::RenderBox::paintCustomHighlight):
50488        * rendering/RootInlineBox.cpp:
50489        (WebCore::RootInlineBox::addHighlightOverflow):
50490        (WebCore::RootInlineBox::paintCustomHighlight):
50491
504922007-03-08  Justin Garcia  <justin.garcia@apple.com>
50493
50494        Reviewed by harrison
50495        
50496        <http://bugs.webkit.org/show_bug.cgi?id=13000>
50497        Range.createContextualFragment is not supported
50498
50499        * dom/Range.cpp:
50500        (WebCore::Range::createContextualFragment): The
50501        "startContainer" may not be a container, if the
50502        range starts inside text.  In that case, look
50503        to the parent of the start node for an HTMLElement.
50504
505052007-03-08  Justin Garcia  <justin.garcia@apple.com>
50506
50507        Reviewed by harrison
50508        
50509        <rdar://problem/5049671>
50510        Gmail Editor: With linked text, Remove Formatting doesn't always remove underline
50511
50512        * editing/Editor.cpp:
50513        (WebCore::Editor::removeFormattingAndStyle): Clear removed
50514        anchors after the deletion.
50515
505162007-03-08  David Kilzer  <ddkilzer@webkit.org>
50517
50518        Reviewed by NOBODY (build fix).
50519
50520        Added missing file for r20059:
50521        <rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
50522
50523        File was taken from this svn repository which contained versions of ucnv.h and ucnv_err.h
50524        that were identical to ours:
50525        http://source.icu-project.org/repos/icu/icu/tags/release-3-2/source/common/unicode/ucnv_cb.h
50526
50527        * icu/unicode/ucnv_cb.h: Added.
50528
505292007-03-08  Shrikant Gangoda  <shrikant.gangoda@celunite.com>
50530
50531        Gdk build fix.
50532
50533        * platform/graphics/cairo/ImageSourceCairo.cpp:
50534        (WebCore::ImageSource::~ImageSource):
50535        (WebCore::ImageSource::clear):
50536
505372007-03-08  Oliver Hunt  <oliver@apple.com>
50538
50539        Reviewed by Adam.
50540
50541        To match old TEC behaviour when using ICU we need to use 
50542        a few manual fallback encodings for the GBK/EUC-CN charsets
50543
50544        <rdar://problem/4708689> -- REGRESSION: Some symbols with 2-byte display as garbage in Hotmail.
50545
50546        * platform/TextCodecICU.cpp:
50547        (WebCore::TextCodecICU::TextCodecICU):
50548        (WebCore::TextCodecICU::createICUConverter):
50549        (WebCore::gbkEscapes):
50550        (WebCore::gbkCallbackEscape):
50551        (WebCore::gbkCallbackSubstitute):
50552        (WebCore::TextCodecICU::encode):
50553        * platform/TextCodecICU.h:
50554        (WebCore::TextCodecICU::needsGBKFallbacks):
50555        (WebCore::TextCodecICU::setNeedsGBKFallbacks):
50556
505572007-03-08  Alexey Proskuryakov  <ap@webkit.org>
50558
50559        Build fix.
50560
50561        * xml/XPathUtil.cpp:
50562        (WebCore::XPath::stringValue):
50563
505642007-03-08  David Hyatt  <hyatt@apple.com>
50565
50566        This patch dramatically reduces the memory consumed by animated images.  For large animated GIFs (defined for
50567        now as >1mb in terms of decoded frame buffer size), we will now aggressively flush previous frames of the
50568        animated GIF and just re-decode them on the fly if the animation loops.
50569
50570        Whenever a large animated GIF has its animation reset, we will also just throw out everything and start
50571        the animation over (in order to get rid of any cached detritus held in the ImageSource).
50572
50573        With this patch and the sample GIF used to test, WebKit's memory consumption went from 160MB down to 16MB.
50574
50575        Reviewed by mjs
50576
50577        * platform/graphics/BitmapImage.cpp:
50578        (WebCore::BitmapImage::destroyDecodedData):
50579        (WebCore::BitmapImage::resetAnimation):
50580        (WebCore::BitmapImage::advanceAnimation):
50581        * platform/graphics/ImageSource.h:
50582        * platform/graphics/cg/ImageSourceCG.cpp:
50583        (WebCore::ImageSource::~ImageSource):
50584        (WebCore::ImageSource::clear):
50585
505862007-03-08  Alexey Proskuryakov  <ap@webkit.org>
50587
50588        Reviewed by Darin.
50589
50590        http://bugs.webkit.org/show_bug.cgi?id=13006
50591        XPath string-value is broken for some node types
50592
50593        Test: fast/xpath/string-value.html
50594
50595        * xml/XPathUtil.cpp:
50596        (WebCore::XPath::stringValue): Fix it :-)
50597
505982007-03-07  Anders Carlsson  <acarlsson@apple.com>
50599
50600        Reviewed by Adam.
50601
50602        <rdar://problem/4981000> 
50603        http://bugs.webkit.org/show_bug.cgi?id=12634
50604        REGRESSION: crash loading web archive (12634)
50605        
50606        The reason this bug wasn't always reproducible is that it involved sending an event to a plugin while 
50607        the page was loading. Before we send the event to the plugin we defer loads. The problem was that
50608        MainResourceLoader::setDefersLoad would not work with data loads.
50609        
50610        * loader/DocumentLoader.cpp:
50611        (WebCore::DocumentLoader::setRequest):
50612        Only set m_committed to false if we also have a valid unreachable URL.
50613        
50614        * loader/MainResourceLoader.cpp:
50615        (WebCore::MainResourceLoader::setDefersLoading):
50616        Make sure to stop and start data loads.
50617
506182007-03-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
50619
50620        Not reviewed.
50621
50622        Gdk build fixes.
50623
50624        * platform/gdk/EditorClientGdk.cpp:
50625        (WebCore::EditorClientGdk::handleKeypress): renamed
50626        (WebCore::EditorClientGdk::handleInputMethodKeypress): add a stub
50627        * platform/gdk/EditorClientGdk.h:
50628        * platform/graphics/cairo/ImageSourceCairo.cpp:
50629        (WebCore::ImageSource::destroyFrameAtIndex): add a stub
50630
506312007-03-07  Alexey Proskuryakov  <ap@webkit.org>
50632
50633        Reviewed by Darin.
50634
50635        http://bugs.webkit.org/show_bug.cgi?id=13004
50636        Repeatedly calling XPathExpression.evaluate() causes crashes or memory leaks
50637
50638        Removed XPath::Expression::optimize() and related methods, since they were buggy and almost useless.
50639        Merged doEvaluate() into evaluate(), since this was all evaluate() was doing after the above changes.
50640
50641        Test: fast/xpath/evaluate-twice.html
50642
50643        * xml/XPathExpression.cpp:
50644        (WebCore::XPathExpression::evaluate):
50645        * xml/XPathExpressionNode.cpp:
50646        (WebCore::XPath::Expression::Expression):
50647        (WebCore::XPath::Expression::~Expression):
50648        * xml/XPathExpressionNode.h:
50649        * xml/XPathFunctions.cpp:
50650        (WebCore::XPath::FunLast::evaluate):
50651        (WebCore::XPath::FunPosition::evaluate):
50652        (WebCore::XPath::FunId::evaluate):
50653        (WebCore::XPath::FunLocalName::evaluate):
50654        (WebCore::XPath::FunNamespaceURI::evaluate):
50655        (WebCore::XPath::FunName::evaluate):
50656        (WebCore::XPath::FunCount::evaluate):
50657        (WebCore::XPath::FunString::evaluate):
50658        (WebCore::XPath::FunConcat::evaluate):
50659        (WebCore::XPath::FunStartsWith::evaluate):
50660        (WebCore::XPath::FunContains::evaluate):
50661        (WebCore::XPath::FunSubstringBefore::evaluate):
50662        (WebCore::XPath::FunSubstringAfter::evaluate):
50663        (WebCore::XPath::FunSubstring::evaluate):
50664        (WebCore::XPath::FunStringLength::evaluate):
50665        (WebCore::XPath::FunNormalizeSpace::evaluate):
50666        (WebCore::XPath::FunTranslate::evaluate):
50667        (WebCore::XPath::FunBoolean::evaluate):
50668        (WebCore::XPath::FunNot::evaluate):
50669        (WebCore::XPath::FunTrue::evaluate):
50670        (WebCore::XPath::FunLang::evaluate):
50671        (WebCore::XPath::FunFalse::evaluate):
50672        (WebCore::XPath::FunNumber::evaluate):
50673        (WebCore::XPath::FunSum::evaluate):
50674        (WebCore::XPath::FunFloor::evaluate):
50675        (WebCore::XPath::FunCeiling::evaluate):
50676        (WebCore::XPath::FunRound::evaluate):
50677        * xml/XPathPath.cpp:
50678        (WebCore::XPath::Filter::evaluate):
50679        (WebCore::XPath::LocationPath::evaluate):
50680        (WebCore::XPath::Path::evaluate):
50681        * xml/XPathPath.h:
50682        * xml/XPathPredicate.cpp:
50683        (WebCore::XPath::Number::evaluate):
50684        (WebCore::XPath::StringExpression::evaluate):
50685        (WebCore::XPath::Negative::evaluate):
50686        (WebCore::XPath::NumericOp::evaluate):
50687        (WebCore::XPath::EqTestOp::evaluate):
50688        (WebCore::XPath::LogicalOp::evaluate):
50689        (WebCore::XPath::Union::evaluate):
50690        * xml/XPathPredicate.h:
50691        * xml/XPathStep.cpp:
50692        * xml/XPathStep.h:
50693        * xml/XPathVariableReference.cpp:
50694        (WebCore::XPath::VariableReference::evaluate):
50695        * xml/XPathVariableReference.h:
50696
506972007-03-07  Sam Weinig  <sam@webkit.org>
50698
50699        Reviewed by Tim H.
50700
50701        Remove unused #import from Objective-C bindings and cleanup the order of #imports.
50702
50703        * bindings/scripts/CodeGeneratorObjC.pm:
50704
507052007-03-07  Sam Weinig  <sam@webkit.org>
50706
50707        Reviewed by Tim H.
50708
50709        Make sure the baseURI attribute generates for private Objective-C bindings.
50710
50711        * dom/Node.idl:
50712
507132007-03-07  Anders Carlsson  <acarlsson@apple.com>
50714
50715        Reviewed by Maciej.
50716
50717        <rdar://problem/4874059>
50718        REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
50719
50720        If a load is done from inside of an error delegate method that is called because we cancel another load, 
50721        the first load should be ignored since this is what shipping WebKit does. 
50722        
50723        (Actually, it does load the page in the data source but doesn't do anything with it since the data source
50724        won't have a web frame).
50725        
50726        * loader/FrameLoader.cpp:
50727        (WebCore::FrameLoader::load):
50728        Just bail out if m_isStoppingLoad is true.
50729
507302007-03-07  David Hyatt  <hyatt@apple.com>
50731
50732        Use CGImageRelease instead of CFRelease.
50733
50734        Reviewed by aroben
50735
50736        * platform/graphics/cg/ImageCG.cpp:
50737        (WebCore::FrameData::clear):
50738        * platform/graphics/cg/ImageSourceCG.cpp:
50739        (WebCore::ImageSource::destroyFrameAtIndex):
50740
507412007-03-07  David Hyatt  <hyatt@apple.com>
50742
50743        Fix a regression where the cache size overflows because of a double
50744        subtraction per resource when they got removed from the cache.  Add an
50745        assert to adjustSize to detect this case in the future.
50746
50747        Fix ImageSourceCG so that when we flush decoded data from our cache that
50748        we also flush it from the ImageSource.
50749
50750        Reviewed by mjs
50751
50752        * loader/Cache.cpp:
50753        (WebCore::Cache::adjustSize):
50754        * platform/graphics/BitmapImage.cpp:
50755        (WebCore::BitmapImage::~BitmapImage):
50756        (WebCore::BitmapImage::destroyDecodedData):
50757        * platform/graphics/Image.h:
50758        * platform/graphics/ImageSource.h:
50759        * platform/graphics/cg/ImageSourceCG.cpp:
50760        (WebCore::ImageSource::setData):
50761        (WebCore::ImageSource::destroyFrameAtIndex):
50762
507632007-03-07  Mitz Pettel  <mitz@webkit.org>
50764
50765        Reviewed by Darin.
50766
50767        - fix http://bugs.webkit.org/show_bug.cgi?id=13002
50768          Incomplete repaint of inset outlines
50769
50770        Test: fast/repaint/outline-inset.html
50771
50772        * rendering/RenderObject.cpp:
50773        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
50774
507752007-03-07  Oliver Hunt  <oliver@apple.com>
50776
50777        Reviewed by Antti.
50778
50779        Reset mouse down/drag state variables on mouse button release
50780        
50781        Fixes <rdar://problem/5044654>: Drag out of some QuickTime plug-ins converting into image drag
50782
50783        * page/EventHandler.cpp:
50784        (WebCore::EventHandler::handleMouseReleaseEvent):
50785
507862007-03-07  Adele Peterson  <adele@apple.com>
50787
50788        Reviewed by Darin.
50789
50790        WebCore part of fix for:
50791        http://bugs.webkit.org/show_bug.cgi?id=10871
50792        http://bugs.webkit.org/show_bug.cgi?id=12677
50793        <rdar://problem/4823129> REGRESSION: IME key events different in nightly
50794        <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm a clause in kotoeri
50795
50796        * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Call handleInputMethodKeypress before actually dispatching the keypress event
50797          so that input methods have a chance to handle the event.  
50798          If the input method handles the event (by marking or unmarking text), then we don't need to send the keypress event.
50799          If an input method doesn't handle the event, then we'll save the data we need to perform the correct action (like what text to insert or what selector to use) 
50800          when we dispatch the keypress event.
50801
50802        * dom/KeyboardEvent.h: Added Mac-specific KeypressCommand struct, so we can store command info during handleInputMethodKeypress, and use it during handleKeypress.
50803        (WebCore::KeyboardEvent::keypressCommand):
50804        (WebCore::KeyboardEvent::setKeypressCommand):
50805
50806        * bridge/EditorClient.h:
50807        * editing/Editor.cpp:
50808        (WebCore::Editor::handleKeypress): Changed handleKeyPress to handleKeypress.
50809        (WebCore::Editor::handleInputMethodKeypress): Added.
50810        * editing/Editor.h:
50811
50812        * platform/graphics/svg/SVGImageEmptyClients.h:
50813        (WebCore::SVGEmptyEditorClient::handleKeypress): Changed handleKeyPress to handleKeypress.
50814        (WebCore::SVGEmptyEditorClient::handleInputMethodKeypress): Added.
50815
508162007-03-07  Rob Buis  <buis@kde.org>
50817
50818        Reviewed by Darin.
50819
50820        http://bugs.webkit.org/show_bug.cgi?id=12579
50821        WebKit fails SVG xml:base test
50822
50823        Implement DOM3 properties baseURI and documentURI to fix
50824        the testcase in bug 12579.
50825
50826        * bindings/js/kjs_dom.cpp:
50827        (KJS::DOMNode::getValueProperty):
50828        * bindings/js/kjs_domnode.h:
50829        (KJS::DOMNode::):
50830        * dom/Document.cpp:
50831        (WebCore::Document::documentURI):
50832        (WebCore::Document::setDocumentURI):
50833        (WebCore::Document::baseURI):
50834        * dom/Document.h:
50835        * dom/Document.idl:
50836        * dom/DocumentType.cpp:
50837        (WebCore::DocumentType::baseURI):
50838        * dom/DocumentType.h:
50839        * dom/Element.cpp:
50840        (WebCore::Element::baseURI):
50841        * dom/Element.h:
50842        * dom/Node.cpp:
50843        (WebCore::Node::baseURI):
50844        * dom/Node.h:
50845        * ksvg2/misc/SVGImageLoader.cpp:
50846        (WebCore::SVGImageLoader::updateFromElement):
50847        * ksvg2/svg/SVGImageElement.cpp:
50848        (WebCore::SVGImageElement::parseMappedAttribute):
50849        (WebCore::SVGImageElement::attach):
50850
508512007-03-07  Anders Carlsson  <acarlsson@apple.com>
50852
50853        Reviewed by Brady.
50854
50855        Remove some methods in FrameLoader that just calls down to the active document loader. Since each
50856        resource loader now has a pointer to its document loader, we can just call directly to the
50857        document loader.
50858
50859        * WebCore.exp:
50860        * loader/FrameLoader.cpp:
50861        * loader/FrameLoader.h:
50862        * loader/MainResourceLoader.cpp:
50863        (WebCore::MainResourceLoader::willSendRequest):
50864        (WebCore::MainResourceLoader::didReceiveResponse):
50865        * loader/SubresourceLoader.cpp:
50866        (WebCore::SubresourceLoader::SubresourceLoader):
50867        (WebCore::SubresourceLoader::didFinishLoading):
50868        (WebCore::SubresourceLoader::didFail):
50869        (WebCore::SubresourceLoader::didCancel):
50870        * loader/mac/NetscapePlugInStreamLoaderMac.mm:
50871        (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
50872        (WebCore::NetscapePlugInStreamLoader::didFail):
50873        (WebCore::NetscapePlugInStreamLoader::didCancel):
50874
508752007-03-06  Geoffrey Garen  <ggaren@apple.com>
50876
50877        Reviewed by Maciej Stachowiak.
50878        
50879        Fixed <rdar://problem/4576242> | http://bugs.webkit.org/show_bug.cgi?id=12586
50880        PAC file: malloc deadlock sometimes causes a hang @ www.apple.com/pro/profiles/ (12586)
50881        
50882        No test because this is very difficult to repro, and the new ASSERTs in 
50883        JavaScriptCore catch the underlying cause while running normal layout tests.
50884        
50885        This is a modified version of r14752 on the branch.
50886        
50887        The fix is to use a bit inside each node, instead of a hash table, to track 
50888        which node subtrees are in the process of being marked. This avoids a call 
50889        to malloc inside mark().
50890        
50891        * bindings/js/kjs_binding.cpp:
50892        (KJS::domObjects):
50893        (KJS::domNodesPerDocument):
50894        * bindings/js/kjs_dom.cpp:
50895        (KJS::DOMNode::mark):
50896        * dom/Node.cpp:
50897        (WebCore::Node::Node):
50898        * dom/Node.h:
50899
509002007-03-06  David Hyatt  <hyatt@apple.com>
50901
50902        This patch reworks the WebCore memory cache to significantly reduce the amount of memory consumed by
50903        images in the cache and to enhance the accuracy of the cache size as an absolute bound for the objects
50904        contained within it.  WebCore's memory use over time should significantly improve as a result of these
50905        changes.
50906
50907        Cached resources now have both an encoded size (the original data stream) and a decoded size (an estimate of
50908        the amount of memory consumed by an expanded version of that resource, e.g., the decoded frames of an image).
50909        Both sizes now count towards the total size of the object and towards the allowed memory cache total.
50910
50911        By including both totals the reported size of resources will now be larger, and the cache will therefore become
50912        much more aggressive about flushing.
50913
50914        Objects are stored in size-adjusted and popularity-aware LRU lists as before, but encoded size is now always
50915        used when determining the correct LRU list.
50916
50917        The flush algorithm for the memory cache has been rewritten to first destroy decoded data before evicting
50918        resources.  By being able to compact its resources without evicting them, the memory cache can now hold many more
50919        unique resources (encoded) in the same amount of space.  Depending on how much of a hit we want to take from
50920        re-decoding images, the memory cache could in theory have its size significantly reduced now while still holding
50921        more resources than it did at the larger size!
50922
50923        Reviewed by mjs
50924
50925        * WebCore.xcodeproj/project.pbxproj:
50926        * loader/Cache.cpp:
50927        (WebCore::Cache::requestResource):
50928        (WebCore::Cache::prune):
50929        (WebCore::Cache::remove):
50930        (WebCore::Cache::lruListFor):
50931        (WebCore::Cache::adjustSize):
50932        * loader/Cache.h:
50933        * loader/CachedCSSStyleSheet.cpp:
50934        (WebCore::CachedCSSStyleSheet::data):
50935        * loader/CachedImage.cpp:
50936        (WebCore::CachedImage::CachedImage):
50937        (WebCore::CachedImage::allReferencesRemoved):
50938        (WebCore::CachedImage::clear):
50939        (WebCore::CachedImage::data):
50940        (WebCore::CachedImage::destroyDecodedData):
50941        (WebCore::CachedImage::decodedSize):
50942        (WebCore::CachedImage::decodedSizeChanged):
50943        (WebCore::CachedImage::shouldPauseAnimation):
50944        * loader/CachedImage.h:
50945        * loader/CachedResource.cpp:
50946        (WebCore::CachedResource::CachedResource):
50947        (WebCore::CachedResource::deref):
50948        (WebCore::CachedResource::setEncodedSize):
50949        * loader/CachedResource.h:
50950        (WebCore::CachedResource::allReferencesRemoved):
50951        (WebCore::CachedResource::size):
50952        (WebCore::CachedResource::encodedSize):
50953        (WebCore::CachedResource::decodedSize):
50954        (WebCore::CachedResource::destroyDecodedData):
50955        * loader/CachedScript.cpp:
50956        (WebCore::CachedScript::data):
50957        * loader/CachedXSLStyleSheet.cpp:
50958        (WebCore::CachedXSLStyleSheet::data):
50959        * platform/graphics/BitmapImage.cpp:
50960        (WebCore::BitmapImage::BitmapImage):
50961        (WebCore::BitmapImage::~BitmapImage):
50962        (WebCore::BitmapImage::destroyDecodedData):
50963        (WebCore::BitmapImage::pruneDecodedDataIfNeeded):
50964        (WebCore::BitmapImage::cacheFrame):
50965        (WebCore::BitmapImage::setNativeData):
50966        (WebCore::BitmapImage::shouldAnimate):
50967        (WebCore::BitmapImage::advanceAnimation):
50968        * platform/graphics/BitmapImage.h:
50969        (WebCore::BitmapImage::decodedSize):
50970        * platform/graphics/Image.cpp:
50971        (WebCore::Image::Image):
50972        * platform/graphics/Image.h:
50973        (WebCore::Image::destroyDecodedData):
50974        (WebCore::Image::decodedSize):
50975        (WebCore::Image::imageObserver):
50976        * platform/graphics/ImageAnimationObserver.h: Removed.
50977        * platform/graphics/ImageObserver.h: Added.
50978        (WebCore::ImageObserver::~ImageObserver):
50979        * platform/graphics/svg/SVGImage.cpp:
50980        (WebCore::SVGImage::SVGImage):
50981        * platform/graphics/svg/SVGImage.h:
50982
509832007-03-06  Alexey Proskuryakov  <ap@webkit.org>
50984
50985        Reviewed by Sam Weinig.
50986
50987        http://bugs.webkit.org/show_bug.cgi?id=12987
50988        Fix and import 4XPath test_numeric_expr.html
50989
50990        * xml/XPathPredicate.cpp:
50991        (WebCore::XPath::Negative::doEvaluate): Convert the argument to number.
50992        (WebCore::XPath::NumericOp::doEvaluate): Convert the arguments to numbers. Use a correct operation for mod.
50993        * xml/XPathStep.cpp:
50994        (WebCore::XPath::Step::nodesInAxis): Do not append parent node if there is none.
50995        * xml/XPathValue.cpp:
50996        (WebCore::XPath::Value::toNumber): Do not convert to DeprecatedString just to trim whitespace and to convert to double.
50997        * platform/DeprecatedString.cpp:
50998        (WebCore::DeprecatedStringData::makeAscii): Added a FIXME about unreliable makeAscii() behavior.
50999
510002007-03-06  Maciej Stachowiak  <mjs@apple.com>
51001
51002        Reviewed by Adele.
51003
51004        <rdar://problem/4619663> REGRESSION (NativePopup): Popup menu doesn't draw at the correct vertical position (9816)
51005        
51006        * platform/mac/PopupMenuMac.mm:
51007        (WebCore::PopupMenu::show): Make a temporary dummy view with the
51008        passed in rect, since AppKit will use the view bounds to determine
51009        what area to exclude when popping up a menu moved to the top of
51010        the screen.
51011
510122007-03-06  Geoffrey Garen  <ggaren@apple.com>
51013
51014        Reviewed by Maciej Stachowiak.
51015
51016        Fixed all known crashers exposed by run-webkit-tests --threaded [*]. See 
51017        JavaScriptCore ChangeLog for more details.
51018
51019        * bindings/js/kjs_binding.cpp:
51020        (KJS::domNodesPerDocument): Added thread safety ASSERT.
51021        (KJS::ScriptInterpreter::mark): Removed obsolete logic for marking unsafe
51022        objects when collecting on a secondary thread. The Collector takes care
51023        of this now.
51024
51025        * bindings/js/kjs_binding.h:
51026        (KJS::DOMObject::DOMObject): Used new API for specifying that WebCore
51027        objects should be garbage collected on the main thread only.
51028
51029        * bindings/js/kjs_window.cpp:
51030        (KJS::ScheduledAction::execute): Moved JSLock to cover implementedsCall() call,
51031        which, for some subclasses, ends up allocating garbage collected objects.
51032        (This fix was speculative. I didn't actually see a crash from this.)
51033        (KJS::Window::timerFired): Added JSLock around ScheduleAction destruction,
51034        since it destroys a KJS::List.
51035
51036        * bindings/objc/WebScriptObject.mm:
51037        (-[WebScriptObject setException:]): Added JSLock. (This fix was speculative. 
51038        I didn't actually see a crash from this.)
51039
51040        * bridge/mac/WebCoreScriptDebugger.mm:
51041        (-[WebCoreScriptCallFrame evaluateWebScript:]): Added JSLock. (This fix 
51042        was speculative. I didn't actually see a crash from this.)
51043
51044        * dom/Document.cpp:
51045        (WebCore::Document::~Document): Added JSLock around modification to 
51046        domNodesPerDocument(), which can be accessed concurrently during garbage 
51047        collection.
51048        * dom/Node.cpp:
51049        (WebCore::Node::setDocument): ditto.
51050        
51051        [*] fast/js/toString-stack-overflow.html is an exception. --threaded mode
51052        crashes this test because it causes the garbage collector to run frequently,
51053        and this test crashes if you happen to garbage collect while it's running.
51054        This is a known issue with stack overflow during the mark phase. It's
51055        not related to threading.
51056
510572007-03-06  Mark Rowe  <mrowe@apple.com>
51058
51059        Reviewed by Sam Weinig.
51060
51061        Fix http://bugs.webkit.org/show_bug.cgi?id=12942
51062        Bug 12942: ASSERTION FAILURE: qantas.com.au changing selected item in <select> via JS
51063
51064        Test: fast/dom/select-selectedIndex-bug-12942.html.
51065
51066        * html/HTMLSelectElement.cpp:
51067        (WebCore::HTMLSelectElement::recalcListItems): Reset m_lastOnChangeIndex when recalculating list items.
51068        * html/HTMLSelectElement.h:
51069
510702007-03-06  Brady Eidson  <beidson@apple.com>
51071
51072        Rubberstamped by Kevin Decker
51073
51074        20,000!
51075
51076        * ChangeLog: Point out revision 20,000
51077
510782007-03-06  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51079
51080        Not reviewed.
51081
51082        Gdk build fix.
51083
51084        * loader/gdk/FrameLoaderClientGdk.cpp: update userAgent() signature.
51085        (WebCore::FrameLoaderClientGdk::userAgent):
51086        * loader/gdk/FrameLoaderClientGdk.h: ditto.
51087
510882007-03-06  Mitz Pettel  <mitz@webkit.org>
51089
51090        Reviewed by Adele.
51091
51092        - fix http://bugs.webkit.org/show_bug.cgi?id=12986
51093          REGRESSION(NativeListBox): Listboxes not updated when resized dynamically
51094
51095        Test: fast/forms/select-change-listbox-size.html
51096
51097        * html/HTMLSelectElement.cpp:
51098        (WebCore::HTMLSelectElement::parseMappedAttribute): Reattach on list box size change.
51099
511002007-03-06  Mitz Pettel  <mitz@webkit.org>
51101
51102        Reviewed by Dave Hyatt.
51103
51104        - fix http://bugs.webkit.org/show_bug.cgi?id=12885
51105          REGRESSION (r19696): Incomplete background repaint
51106
51107        Tests: fast/repaint/content-into-overflow.html
51108               fast/repaint/overflow-into-content.html
51109
51110        Changed repaintAfterLayoutIfNeeded() to take, in addition to the clipped overflow
51111        rect, the unclipped border box plus outline, and to repaint any areas that
51112        were added or removed from that box, in addition to any areas added or removed
51113        from the clipped overflow rect.
51114
51115        * platform/graphics/svg/SVGResourceMarker.cpp:
51116        (WebCore::SVGResourceMarker::draw):
51117        * rendering/RenderBlock.cpp:
51118        (WebCore::RenderBlock::layoutBlock):
51119        * rendering/RenderBox.cpp:
51120        (WebCore::RenderBox::absoluteClippedOverflowRect): Renamed getAbsoluteRepaintRect() to
51121        this.
51122        * rendering/RenderBox.h:
51123        * rendering/RenderFlexibleBox.cpp:
51124        (WebCore::RenderFlexibleBox::layoutBlock):
51125        * rendering/RenderFlow.cpp:
51126        (WebCore::RenderFlow::absoluteClippedOverflowRect):
51127        * rendering/RenderFlow.h:
51128        * rendering/RenderForeignObject.cpp:
51129        (WebCore::RenderForeignObject::layout):
51130        * rendering/RenderHTMLCanvas.cpp:
51131        (WebCore::RenderHTMLCanvas::layout):
51132        * rendering/RenderImage.cpp:
51133        (WebCore::RenderImage::layout):
51134        * rendering/RenderLayer.cpp:
51135        (WebCore::RenderLayer::RenderLayer):
51136        (WebCore::RenderLayer::checkForRepaintOnResize):
51137        (WebCore::RenderLayer::updateLayerPositions):
51138        * rendering/RenderLayer.h:
51139        * rendering/RenderObject.cpp:
51140        (WebCore::RenderObject::repaint):
51141        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
51142        (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
51143        (WebCore::RenderObject::absoluteClippedOverflowRect):
51144        (WebCore::RenderObject::absoluteOutlineBox):
51145        * rendering/RenderObject.h:
51146        * rendering/RenderPath.cpp:
51147        (WebCore::RenderPath::layout):
51148        (WebCore::RenderPath::absoluteClippedOverflowRect):
51149        (WebCore::RenderPath::absoluteRects):
51150        (WebCore::RenderPath::drawMarkersIfNeeded):
51151        * rendering/RenderPath.h:
51152        * rendering/RenderSVGContainer.cpp:
51153        (WebCore::RenderSVGContainer::layout):
51154        (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
51155        (WebCore::RenderSVGContainer::absoluteRects):
51156        * rendering/RenderSVGContainer.h:
51157        * rendering/RenderSVGHiddenContainer.cpp:
51158        (WebCore::RenderSVGHiddenContainer::absoluteClippedOverflowRect):
51159        * rendering/RenderSVGHiddenContainer.h:
51160        * rendering/RenderSVGImage.cpp:
51161        (WebCore::RenderSVGImage::imageChanged):
51162        (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
51163        (WebCore::RenderSVGImage::absoluteRects):
51164        * rendering/RenderSVGImage.h:
51165        * rendering/RenderSVGText.cpp:
51166        (WebCore::RenderSVGText::absoluteClippedOverflowRect):
51167        (WebCore::RenderSVGText::layout):
51168        (WebCore::RenderSVGText::absoluteRects):
51169        * rendering/RenderSVGText.h:
51170        * rendering/RenderTable.cpp:
51171        (WebCore::RenderTable::layout):
51172        * rendering/RenderTableCell.cpp:
51173        (WebCore::RenderTableCell::absoluteClippedOverflowRect):
51174        * rendering/RenderTableCell.h:
51175        * rendering/RenderTableCol.cpp:
51176        (WebCore::RenderTableCol::absoluteClippedOverflowRect):
51177        * rendering/RenderTableCol.h:
51178        * rendering/RenderTableRow.cpp:
51179        (WebCore::RenderTableRow::absoluteClippedOverflowRect):
51180        * rendering/RenderTableRow.h:
51181        * rendering/RenderText.cpp:
51182        (WebCore::RenderText::absoluteClippedOverflowRect):
51183        * rendering/RenderText.h:
51184
511852007-03-06  Feng Qian  <feng@chromium.org>
51186
51187        Reviewed by Maciej.
51188
51189        - fixed http://bugs.webkit.org/show_bug.cgi?id=12720
51190        Bug 12720: Re-defining window.location.toString function keeps re-loading forever
51191
51192        * bindings/js/kjs_window.cpp:
51193        Disallow replacing functions in LocationTable, and return early without updating URL.
51194
511952007-03-06  Kevin McCullough  <kmccullough@apple.com>
51196
51197        Reviewed by Darin.
51198
51199        <http://bugs.webkit.org/show_bug.cgi?id=12686>
51200        REGRESSION: Bloglines.com Feeds tab cannot expand folders in TOT
51201        - Now all class constructors implement implementsHasInstance.
51202
51203        * bindings/scripts/CodeGeneratorJS.pm:
51204
512052007-03-07  Nikolas Zimmermann  <zimmermann@kde.org>
51206
51207        Reviewed by Rob & Oliver.
51208
51209        Preparations for the new SVG text engine.
51210
51211        Handle baseline-shift / kerning css values correctly.
51212        Recognize missing svg presentation attribute "font-size-adjust".
51213        Add all missing svg<->css property mappings in mapToEntry().
51214
51215        Doesn't affect any layout test (as these properties are not used w/o my text patch).
51216        While I'm at it, unify the macro names (RS_ -> SVG_RS_) & cleanup style a bit.
51217
51218        * ksvg2/css/CSSPropertyNames.in:
51219        * ksvg2/css/SVGCSSParser.cpp:
51220        (WebCore::CSSParser::parseSVGValue):
51221        * ksvg2/css/SVGCSSStyleSelector.cpp:
51222        (WebCore::CSSStyleSelector::applySVGProperty):
51223        * ksvg2/css/SVGRenderStyle.cpp:
51224        (WebCore::SVGRenderStyle::SVGRenderStyle):
51225        (WebCore::SVGRenderStyle::operator==):
51226        (WebCore::SVGRenderStyle::inheritedNotEqual):
51227        (WebCore::SVGRenderStyle::inheritFrom):
51228        * ksvg2/css/SVGRenderStyle.h:
51229        (WebCore::SVGRenderStyle::NonInheritedFlags::):
51230        (WebCore::SVGRenderStyle::setBitDefaults):
51231        * ksvg2/css/SVGRenderStyleDefs.cpp:
51232        (StyleTextData::StyleTextData):
51233        (StyleTextData::operator==):
51234        (StyleMiscData::StyleMiscData):
51235        (StyleMiscData::operator==):
51236        * ksvg2/css/SVGRenderStyleDefs.h:
51237        (WebCore::):
51238        (WebCore::StyleTextData::operator!=):
51239        * ksvg2/svg/SVGStyledElement.cpp:
51240        (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
51241
512422007-03-06  Justin Garcia  <justin.garcia@apple.com>
51243
51244        Reviewed by kevin
51245        
51246        <http://bugs.webkit.org/show_bug.cgi?id=12245>
51247        FCKeditor: Remove Format sometimes doesn't work
51248        <rdar://problem/4786404>
51249        Underline style is not removed from selection after performing Remove Format
51250
51251        * editing/Editor.cpp:
51252        (WebCore::Editor::removeFormattingAndStyle): Re-wrote this.
51253
512542007-03-07  Nikolas Zimmermann  <zimmermann@kde.org>
51255
51256        Reviewed by Oliver.
51257
51258        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12979
51259        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12981
51260
51261        Guard against registering pending resources with empty id.
51262        Be careful with calling recalcStyle() in SVGUseElement, when change is "Detach" we
51263        have to use special code, as calling attach() on the shadow tree root element will crash,
51264        because it has no (direct) parent node, only a shadow parent node element.
51265
51266        * ksvg2/misc/SVGDocumentExtensions.cpp:
51267        (WebCore::SVGDocumentExtensions::addPendingResource):
51268        * ksvg2/svg/SVGUseElement.cpp:
51269        (WebCore::SVGUseElement::recalcStyle):
51270
512712007-03-06  Kevin Decker  <kdecker@apple.com>
51272
51273        Reviewed by Adele.
51274
51275        Fixed: <rdar://problem/5041660> REGRESSION: <keygen> element broken, prevents users from signing up for Thawte email certs
51276        
51277        * bindings/objc/DOM.mm:
51278        (WebCore::createElementClassMap): Added <keygen> to the DOM bindings so it can be accessed from Objective-C.
51279        * css/html4.css: Apply the look of the <select> element to <keygen>.
51280        * html/HTMLElementFactory.cpp:
51281        (WebCore::keygenConstructor): Added. 
51282        (WebCore::createFunctionMap): Added keygen.
51283        * html/HTMLSelectElement.cpp: Made const typeAheadTimeout variable static const. 
51284        (WebCore::HTMLSelectElement::HTMLSelectElement):  Fix both HTMLSelectElement constructors to initialize the
51285         same number of member variables. The fact that some fields were not initialized could (and would) crash the
51286         keygen element when selecting different items. Also removed m_typedString(String()) from the constructor
51287         initialization because this is not needed.
51288
512892007-03-06  Kevin McCullough  <kmccullough@apple.com>
51290
51291        Reviewed by Darin.
51292
51293        - Rename a function to clarify its purpose.
51294
51295        * WebCore.exp:
51296        * loader/FrameLoader.cpp:
51297        (WebCore::FrameLoader::registerURLSchemeAsLocal):
51298        * loader/FrameLoader.h:
51299
513002007-03-06  Adam Roben  <aroben@apple.com>
51301
51302        Build fix.
51303
51304        * WebCore.exp: Updated symbols.
51305
513062007-03-06  Adam Roben  <aroben@apple.com>
51307
51308        Reviewed by Anders.
51309
51310        Added a parameter to all StringTruncator methods to specify whether
51311        rounding hacks should be on or off.
51312
51313        No layout test possible.
51314
51315        * platform/StringTruncator.cpp:
51316        (WebCore::stringWidth): Added disableRoundingHacks parameter.
51317        (WebCore::truncateString): Ditto.
51318        (WebCore::StringTruncator::centerTruncate): Ditto.
51319        (WebCore::StringTruncator::rightTruncate): Ditto.
51320        (WebCore::StringTruncator::width): Ditto.
51321        * platform/StringTruncator.h: Ditto.
51322        * platform/mac/FileChooserMac.mm:
51323        (WebCore::FileChooser::basenameForWidth): Pass in false to
51324        centerTruncate so that the truncation matches the way the text will be
51325        rendered.
51326
513272007-03-06  Anders Carlsson  <acarlsson@apple.com>
51328
51329        Reviewed by Maciej.
51330
51331        <rdar://problem/5035045>
51332        REGRESSION: WebKit browser doesn't display image at http://www.metoffice.gov.uk/weather/satellite/index.html
51333        
51334        It turns out WinIE does allow you to access images by their id as special document properties. However, this is only
51335        allowed when the element also has a name attribute. The value of the name attribute is ignored and can even be empty!
51336        
51337        * bindings/js/kjs_html.cpp:
51338        (KJS::JSHTMLDocument::namedItemGetter):
51339        Return jsUndefined() if the collection is empty.
51340        
51341        * html/HTMLImageElement.cpp:
51342        (WebCore::HTMLImageElement::parseMappedAttribute):
51343        (WebCore::HTMLImageElement::insertedIntoDocument):
51344        (WebCore::HTMLImageElement::removedFromDocument):
51345        * html/HTMLImageElement.h:
51346        Add the id attribute value to the extra named item map.
51347        
51348        * html/HTMLNameCollection.cpp:
51349        (WebCore::HTMLNameCollection::traverseNextItem):
51350        Check for images with name attributes that match, as well as elements with id attributes that match where
51351        the element also has a name attribute.
51352
513532007-03-06  Anders Carlsson  <acarlsson@apple.com>
51354
51355        Reviewed by Adam.
51356
51357        WebCore part of patch to make it possible to have different user agents for different URLs.
51358
51359        * bindings/js/kjs_navigator.cpp:
51360        (KJS::Navigator::getValueProperty):
51361        * bindings/js/kjs_proxy.cpp:
51362        (WebCore::KJSProxy::initScriptIfNeeded):
51363        * loader/DocumentLoader.cpp:
51364        (WebCore::DocumentLoader::setLoading):
51365        * loader/FrameLoader.cpp:
51366        (WebCore::FrameLoader::userAgent):
51367        (WebCore::FrameLoader::loadResourceSynchronously):
51368        (WebCore::FrameLoader::applyUserAgent):
51369        * loader/FrameLoader.h:
51370        * loader/FrameLoaderClient.h:
51371        * platform/graphics/svg/SVGImageEmptyClients.h:
51372        (WebCore::SVGEmptyFrameLoaderClient::userAgent):
51373
513742007-03-05  Kevin McCullough  <kmccullough@apple.com>
51375
51376        Reviewed by Mark and Dave H.
51377
51378        - rdar://problem/5038491
51379        An oversight of the security fix that prevented remote from loading local is that it
51380        prevents user style sheets when the site is remote.  This fixes that.
51381
51382        * loader/Cache.cpp: Propogate and check user style sheet flag.
51383        (WebCore::createResource):
51384        (WebCore::Cache::requestResource):
51385        * loader/Cache.h: Propogate user style sheet flag.
51386        * loader/CachedCSSStyleSheet.cpp: Propogate user style sheet flag.
51387        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
51388        * loader/CachedCSSStyleSheet.h: Propogate user style sheet flag.
51389        * loader/DocLoader.cpp: Propogate user style sheet flag.
51390        (WebCore::DocLoader::requestResource):
51391        * loader/SubresourceLoader.cpp: Propogate and check user style sheet flag.
51392        (WebCore::SubresourceLoader::create):
51393        * loader/SubresourceLoader.h: Add check for user style sheet flag.
51394        * loader/loader.cpp: Propogate user style sheet flag.
51395        (WebCore::Loader::load):
51396        (WebCore::Loader::servePendingRequests):
51397        * loader/loader.h: Propogate user style sheet flag.
51398
513992007-03-06  Nikolas Zimmermann  <zimmermann@kde.org>
51400
51401        Reviewed by Darin.
51402
51403        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12936 (Master bug used to track all current use problems.)
51404
51405        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12926 (transform attribute not respected in nested <use> elements)
51406        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12267 (getElementById broken for <use>)
51407        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12916 (use instance in symbol definition does not work)
51408        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12917 (mouseout event does not occur after scaling use instance)
51409        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12838 (SVG <use> DOM broken for script)
51410
51411        Added test: svg/custom/use-nested-transform.svg
51412        Added test: svg/custom/struct-use-09-b.svg (not yet official W3C-SVG-1.1 testcase)
51413        Fixes test: svg/custom/use-elementInstance-event-target.svg (rectangle now turns green on first click)
51414
51415        Fix all (except one) known <use> bug. The remaining bug (12630) is not crucical at all.
51416        Enable <use> again as default SVG feature, as discussed on webkit-dev.
51417
51418        dom/Element.cpp needed following tweak: set hasParentStyle to true, if there is no parentNode
51419        available - which happens for <use> nodes, as it's a shadow node. This fixes recalcStyle behaviour.
51420        Override recalcStyle() in SVGUseElement, and properly forward the call to the shadow tree root element.
51421        The shadow tree now receives proper style updates (without having to recreate the whole tree!).
51422
51423        Override attributeChanged() in SVGUseElement and only call notifyAttributeChange if one of x/y/width/height/xlink:href
51424        attribute changed - otherwhise we'll end up recreating the tree for every transform/style/(non-existing-attribute) change.
51425
51426        Do not override transform in nested use situations, but correctly append (right-sided) the translation of the <use> element.
51427        Some cosmetic fixes: don't add transform="translate(0 0)" attributes if both x/y values are null in the shadow tree.
51428
51429        Factor out logic for replacing symbol/svg tags in the shadow tree, and also invoke it during expandUseElementsInShadowTree -
51430        otherwhise <symbol><use xlink:href="#someOtherSymbol"></symbol> the <use> gets expanded to a <symbol>. Though no one expands
51431        the <symbol> element - and we're end up in hitting an assertion. Avoid that.
51432
51433        * bindings/js/JSSVGElementWrapperFactory.cpp:
51434        * bindings/js/kjs_dom.cpp:
51435        (KJS::toJS):
51436        * bindings/objc/DOM.mm:
51437        (WebCore::createElementClassMap):
51438        * dom/Element.cpp:
51439        (WebCore::Element::recalcStyle):
51440        * ksvg2/svg/SVGElement.cpp:
51441        (WebCore::shadowTreeParentElementForShadowTreeElement):
51442        (WebCore::SVGElement::dispatchEvent):
51443        * ksvg2/svg/SVGElementInstance.cpp:
51444        * ksvg2/svg/SVGElementInstance.h:
51445        * ksvg2/svg/SVGElementInstance.idl:
51446        * ksvg2/svg/SVGElementInstanceList.cpp:
51447        * ksvg2/svg/SVGElementInstanceList.h:
51448        * ksvg2/svg/SVGElementInstanceList.idl:
51449        * ksvg2/svg/SVGStyledElement.cpp:
51450        (WebCore::SVGStyledElement::notifyAttributeChange):
51451        (WebCore::SVGStyledElement::updateElementInstance):
51452        * ksvg2/svg/SVGStyledElement.h:
51453        * ksvg2/svg/SVGUseElement.cpp:
51454        (WebCore::SVGUseElement::attributeChanged):
51455        (WebCore::SVGUseElement::notifyAttributeChange):
51456        (WebCore::SVGUseElement::recalcStyle):
51457        (WebCore::SVGUseElement::buildPendingResource):
51458        (WebCore::SVGUseElement::buildShadowTreeForSymbolTag):
51459        (WebCore::SVGUseElement::alterShadowTreeForSVGTag):
51460        (WebCore::SVGUseElement::buildShadowTree):
51461        (WebCore::SVGUseElement::expandUseElementsInShadowTree):
51462        (WebCore::SVGUseElement::attachShadowTree):
51463        * ksvg2/svg/SVGUseElement.h:
51464        * ksvg2/svg/SVGUseElement.idl:
51465        * ksvg2/svg/svgtags.in:
51466
514672007-03-05  Brady Eidson  <beidson@apple.com>
51468
51469        Reviewed by John
51470
51471        Fixes <rdar://problem/4974258>
51472        Adds some key null checking
51473
51474        * bindings/js/kjs_html.cpp:
51475        (KJS::JSHTMLElement::implementsCall): Null check doc/frame
51476        * bindings/objc/DOMInternal.mm:
51477        (-[WebScriptObject _initializeScriptDOMNodeImp]): Null check doc/frame
51478
514792007-03-06  Nikolas Zimmermann  <zimmermann@kde.org>
51480
51481        Reviewed by Darin.
51482
51483        Path::normalAngleAtLength() / Path::pointAtLength() don't work correctly.
51484        pointAtLength() was not implemented, basically and normalAngleAtLength()
51485        had a bug in the tangent slope calculation.
51486
51487        The normalAngleAtLength() stuff can only be tested with my local textPath support.
51488        New LayoutTest: svg/custom/path-textPath-simulation.svg
51489
51490        * platform/graphics/Path.cpp:
51491        (WebCore::pathLengthApplierFunction):
51492        * platform/graphics/PathTraversalState.cpp:
51493        (WebCore::PathTraversalState::quadraticBezierTo):
51494        (WebCore::PathTraversalState::cubicBezierTo):
51495        * platform/graphics/PathTraversalState.h:
51496        (WebCore::PathTraversalState::):
51497
514982007-03-05  Alexey Proskuryakov  <ap@webkit.org>
51499
51500        Reviewed by Darin.
51501
51502        http://bugs.webkit.org/show_bug.cgi?id=12970
51503        Fix and import 4XPath test_core_functions.html test
51504
51505        * xml/XPathExpression.cpp:
51506        (WebCore::XPathExpression::evaluate): Fully initialize the evaluation context.
51507
51508        * xml/XPathFunctions.cpp:
51509        (WebCore::XPath::FunSubstring::doEvaluate): Fixed handling of edge cases.
51510        (WebCore::XPath::FunRound::round): Reimplemented to match the spec; exposed FunRound::round() to be used in
51511        other functions.
51512
515132007-03-05  Alexey Proskuryakov  <ap@webkit.org>
51514
51515        Reviewed by Darin.
51516
51517        http://bugs.webkit.org/show_bug.cgi?id=12954
51518        XPath relative operations are implemented incorrectly
51519
51520        * xml/XPathPredicate.cpp:
51521        (WebCore::XPath::NumericOp::doEvaluate):
51522        (WebCore::XPath::EqTestOp::compare):
51523        (WebCore::XPath::EqTestOp::doEvaluate):
51524        Reimplemented relative equality operations to match the spec.
51525
51526        * xml/XPathPredicate.h:
51527        (WebCore::XPath::NumericOp::):
51528        (WebCore::XPath::EqTestOp::):
51529        Moved relative operations to EqTestOp.
51530
51531        * xml/XPathGrammar.y:
51532        * xml/XPathParser.cpp:
51533        (WebCore::XPath::Parser::nextTokenInternal):
51534        (WebCore::XPath::Parser::lex):
51535        Adapted for the above changes.
51536
515372007-03-05  Mark Rowe  <mrowe@apple.com>
51538
51539        Reviewed by Lars.
51540
51541        Fix http://bugs.webkit.org/show_bug.cgi?id=12947
51542        Bug 12947: REGRESSION: ASSERTION FAILED: maxWidth >= 0 in StringTruncator.cpp:109 in WebCore::truncateString()
51543
51544        Handle nil window correctly in toUserSpace and toDeviceSpace.  On Intel Macs a message to nil that returns a
51545        float will return 0.0.  We use this as the divisor in calculating a scale factor, which results in NaN being
51546        introduced into our rect.
51547
51548        * platform/mac/ScreenMac.mm:
51549        (WebCore::toUserSpace):
51550        (WebCore::toDeviceSpace):
51551
515522007-03-05  Rob Buis  <buis@kde.org>
51553
51554        Reviewed by Darin.
51555
51556        http://bugs.webkit.org/show_bug.cgi?id=12868
51557        parts of the CSS classes in this simple SVG example are not applied
51558
51559        Make sure the xml stylesheets are parsed in strict mode.
51560
51561        * dom/ProcessingInstruction.cpp:
51562        (WebCore::ProcessingInstruction::parseStyleSheet):
51563
515642007-03-04  Adele Peterson  <adele@apple.com>
51565
51566        Reviewed by Darin.
51567
51568        Change to dispatch the keypress event during the defaultEventHandler for keydown events.  This matches IE behavior.
51569        This is preparation for fixing event dispatch with input methods (http://bugs.webkit.org/show_bug.cgi?id=10871)
51570
51571        Test: fast/events/keydown-keypress-preventDefault.html
51572
51573        * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Call the defaultKeyboardEventHandler for keydown events.
51574        * page/EventHandler.cpp:
51575        (WebCore::eventTargetNodeForDocument): Return 0 instead of false since the return type in EventTargetNode.
51576        (WebCore::EventHandler::keyEvent): Removed dispatch of keypress event, since this is now done in the default event handler.
51577        (WebCore::EventHandler::defaultKeyboardEventHandler): For keydown events, create and dispatch a keypress event.
51578
515792007-03-04  Alexey Proskuryakov  <ap@webkit.org>
51580
51581        Reviewed by Nikolas Zimmermann (yay!).
51582
51583        http://bugs.webkit.org/show_bug.cgi?id=12962
51584        4XPath tests crash on lang() function
51585
51586        Covered by 4XPath tests, to be landed later.
51587
51588        * platform/StringImpl.cpp:
51589        (WebCore::StringImpl::reverseFind): Do not crash with empty strings.
51590        * xml/XPathFunctions.cpp:
51591        (WebCore::XPath::FunLang::doEvaluate): Do not crash when an element has no
51592        attributes. Use a proper namespace for xml:lang (not sure where "xms" came from).
51593        Rewrote the algorithm for suffix removing to match the spec.
51594
515952007-03-02  Anders Carlsson  <acarlsson@apple.com>
51596
51597        Reviewed by Darin.
51598
51599        <rdar://problem/5028165> 
51600        http://bugs.webkit.org/show_bug.cgi?id=12915
51601        REGRESSION: XMLHttpRequest.abort() does not stop loading (12915)
51602        
51603        * loader/DocumentLoader.cpp:
51604        (WebCore::DocumentLoader::stopLoading):
51605        Save the value of m_loading since calling FrameLoader::stopLoading could set it to false.
51606        
51607        * loader/SubresourceLoader.cpp:
51608        (WebCore::SubresourceLoader::didCancel):
51609        * loader/SubresourceLoader.h:
51610        Get rid of didCancel now, it's not needed anymore.
51611        
51612        * xml/xmlhttprequest.cpp:
51613        (WebCore::XMLHttpRequest::abort):
51614        Call cancel() instead of stopLoading(). Also, set m_aborted to true so the XMLHttpRequest object
51615        won't be dereferenced in didFail when aborting.
51616
516172007-03-04  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51618
51619        Reviewed by Nikolas Zimmermann.
51620
51621        Move ScrollView stubs to ScrollViewGdk.cpp
51622
51623        * platform/gdk/FrameGdk.h: remove comment that no longer makes sense
51624        * platform/gdk/ScrollViewGdk.cpp:
51625        (WebCore::ScrollView::addChild):
51626        (WebCore::ScrollView::removeChild):
51627        (WebCore::ScrollView::scrollPointRecursively):
51628        (WebCore::ScrollView::inWindow):
51629        (WebCore::ScrollView::wheelEvent):
51630        (WebCore::ScrollView::updateScrollbars):
51631        (WebCore::ScrollView::updateScrollInfo):
51632        (WebCore::ScrollView::windowToContents):
51633        (WebCore::ScrollView::contentsToWindow):
51634        (WebCore::ScrollView::scrollbarUnderMouse):
51635        * platform/gdk/TemporaryLinkStubs.cpp:
51636
516372007-03-02  Kevin McCullough  <kmccullough@apple.com>
51638
51639        Reviewed by Geoff.
51640
51641        - rdar://problem/4922454
51642        - This fixes a security issue by making remote referrers not able to access local
51643        resources, unless they register their schemes to be treated as local. The result is
51644        that those schemes can access local resources and cannot be accessed by remote
51645        referrers.
51646        Because this behavior is new a link-on-or-after check is made to determine if the
51647        app should use the older, less safe, behavior.
51648
51649        * WebCore.exp: added exported functions
51650        * bindings/objc/DOM.mm: consolodated function to base class
51651        (-[DOMElement image]):
51652        (-[DOMElement _imageTIFFRepresentation]):
51653        * dom/Document.cpp: Cache the document's ability to load local resources.
51654        (WebCore::Document::Document):
51655        (WebCore::Document::setURL):
51656        (WebCore::Document::shouldBeAllowedToLoadLocalResources):
51657        (WebCore::Document::stylesheetLoaded):
51658        * dom/Document.h: Cache the docuent's ability to load local resources.
51659        (WebCore::Document::getPendingSheet):
51660        (WebCore::Document::isAllowedToLoadLocalResources):
51661        * html/HTMLImageLoader.cpp: Moved functionality into base class.
51662        (WebCore::HTMLImageLoader::updateFromElement):
51663        (WebCore::HTMLImageLoader::dispatchLoadEvent):
51664        * html/HTMLLinkElement.cpp: Handles null returns correctly now.
51665        * html/HTMLTokenizer.cpp: Moved functionality into base class.
51666        (WebCore::HTMLTokenizer::notifyFinished):
51667        * ksvg2/misc/SVGImageLoader.cpp: Moved functionality into base class.
51668        (WebCore::SVGImageLoader::dispatchLoadEvent):
51669        * loader/Cache.cpp: Checks if the cached resource can be loaded.
51670        (WebCore::Cache::requestResource):
51671        * loader/CachedCSSStyleSheet.cpp: Moved functionality into base class.
51672        (WebCore::CachedCSSStyleSheet::ref):
51673        (WebCore::CachedCSSStyleSheet::error):
51674        * loader/CachedImage.cpp: Moved functionality into base class.
51675        (WebCore::CachedImage::CachedImage):
51676        * loader/CachedImage.h: Moved functionality into base class.
51677        (WebCore::CachedImage::canRender):
51678        * loader/CachedResource.cpp: Cache if the CachedResource should be treated as local
51679        (WebCore::CachedResource::CachedResource):
51680        * loader/CachedResource.h: Moved functionality into base class.
51681        (WebCore::CachedResource::errorOccurred):
51682        (WebCore::CachedResource::shouldTreatAsLocal):
51683        * loader/CachedScript.cpp: Moved functionality into base class.
51684        (WebCore::CachedScript::CachedScript):
51685        * loader/CachedScript.h: Moved functionality into base class.
51686        (WebCore::CachedScript::schedule):
51687        * loader/CachedXBLDocument.cpp: Moved functionality into base class.
51688        (WebCore::CachedXBLDocument::error):
51689        * loader/CachedXSLStyleSheet.cpp: Moved functionality into base class.
51690        (WebCore::CachedXSLStyleSheet::error):
51691        * loader/FrameLoader.cpp: See comments for each function below.
51692        (WebCore::FrameLoader::loadSubframe): Use new canLoad.
51693        (WebCore::FrameLoader::restrictAccessToLocal): return value of linked-on-or-after check.
51694        (WebCore::FrameLoader::setRestrictAccessToLocal): set value for linked-on-or-after check.
51695        (WebCore::localSchemes): Return set of schemes that are to be treated as local.
51696        (WebCore::FrameLoader::loadPlugin): Use new canLoad.
51697        (WebCore::FrameLoader::canLoad): Now multiple functions that each do the same work but some can take advantage of the cached values, if they were computed previously.
51698        (WebCore::FrameLoader::shouldHideReferrer): Extracted out the logic to determine if the referrer should be hidden so it is only calculated when needed.
51699        (WebCore::FrameLoader::loadResourceSynchronously): No longer calls canLoad to get hideReferrer info.
51700        (WebCore::FrameLoader::registerSchemeAsLocal): Functionality to register a scheme to be treated as local.
51701        (WebCore::FrameLoader::treatURLAsLocal): Given a URL this function determines if it should be treated as local.
51702        * loader/FrameLoader.h: Declared functions for this security fix.  See above.
51703        * loader/MainResourceLoader.cpp: Optized order of bools to regain performance.
51704        (WebCore::MainResourceLoader::continueAfterContentPolicy):
51705        * loader/SubresourceLoader.cpp: Now restricts remote from loading local resources.
51706        (WebCore::SubresourceLoader::create):
51707        * page/EventHandler.cpp: Moved functionality into base class.
51708        (WebCore::selectCursor):
51709        * platform/KURL.cpp: KURLs need to check all the registered schemes now.
51710        (WebCore::KURL::isLocalFile):
51711        * rendering/HitTestResult.cpp: Moved functionality into base class.
51712        (WebCore::HitTestResult::image):
51713        * rendering/RenderImage.cpp: Moved functionality into base class.
51714        (WebCore::RenderImage::setCachedImage):
51715        (WebCore::RenderImage::imageChanged):
51716        (WebCore::RenderImage::paint):
51717        (WebCore::RenderImage::layout):
51718        (WebCore::RenderImage::calcAspectRatioWidth):
51719        (WebCore::RenderImage::calcAspectRatioHeight):
51720        * rendering/RenderImage.h: Moved functionality into base class.
51721        (WebCore::RenderImage::errorOccurred):
51722        * rendering/RenderListItem.cpp: Moved functionality into base class.
51723        (WebCore::RenderListItem::setStyle):
51724        * rendering/RenderListMarker.cpp: Moved functionality into base class.
51725        (WebCore::RenderListMarker::isImage):
51726        * xml/xmlhttprequest.cpp: Check doc's cached value instead of determining independently.
51727        (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
51728
517292007-03-02  Justin Garcia  <justin.garcia@apple.com>
51730
51731        Reviewed by kevin
51732        
51733        <rdar://problem/5028447>
51734        REGRESSION: Gmail Editor: Copied message text pastes at the wrong font size
51735
51736        * editing/markup.cpp:
51737        (WebCore::createMarkup): The style of the div that holds
51738        a fully selected body's styles didn't include styles inherited
51739        from the body's ancestors.
51740        
517412007-03-02  Justin Garcia  <justin.garcia@apple.com>
51742
51743        Reviewed by harrison
51744
51745        <rdar://problem/4545040>
51746        innerHTML does not HTML-escape text nodes inside PRE elements
51747        <rdar://problem/5027857>
51748        Pasting into Mail from Safari's view-source window renders the HTML
51749
51750        * editing/HTMLInterchange.cpp:
51751        (WebCore::convertHTMLTextToInterchangeFormat): Send this function
51752        the node that the text comes from as a parameter.  It shouldn't convert
51753        '\n's to spaces/nbsps if the text is coming from text where newlines are
51754        preserved.
51755        * editing/HTMLInterchange.h:
51756        * editing/markup.cpp:
51757        (WebCore::startMarkup): Escape text inside the children of PREs.
51758
517592007-03-02  Sam Weinig  <sam@webkit.org>
51760
51761        Reviewed by Anders.
51762
51763        Try to fix the Qt build.
51764
51765        * platform/qt/TemporaryLinkStubs.cpp: Add stubs.
51766        (WebCore::searchMenuNoRecentSearchesText):
51767        (WebCore::searchMenuRecentSearchesText):
51768        (WebCore::searchMenuClearRecentSearchesText):
51769        (WebCore::AXWebAreaText):
51770        (WebCore::AXLinkText):
51771        (WebCore::AXListMarkerText):
51772        (WebCore::AXImageMapText):
51773        (WebCore::AXHeadingText):
51774
517752007-03-02  David Harrison  <harrison@apple.com>
51776
51777        Suggested by Darin.
51778
51779        A more efficient solution to rdar://4961431.
51780
51781        * bridge/mac/WebCoreAXObject.mm:
51782        (-[WebCoreAXObject accessibilityIsIgnored]):
51783
517842007-03-01  Justin Garcia  <justin.garcia@apple.com>
51785
51786        Reviewed by john
51787        
51788        <rdar://problem/5032095>
51789        Gmail Editor: Copied text pastes on a new line instead of current line
51790        
51791        Start merge failed to occur because positionAtStartOfInsertedContent
51792        had a bug.
51793
51794        * editing/ReplaceSelectionCommand.cpp:
51795        (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
51796        Was failing when inserting <span><div>foo/div></span>. Return the 
51797        inserted content's first VisiblePosition.
51798
517992007-03-02  Dave Hyatt  <hyatt@apple.com>
51800
51801        Fix crasher in glyph map code (buffer overrun).
51802
51803        Reviewed by darin
51804
51805        * platform/win/GlyphPageTreeNodeWin.cpp:
51806        (WebCore::GlyphPage::fill):
51807
518082007-03-01  Antti Koivisto  <antti@apple.com>
51809
51810        Reviewed by Maciej.
51811
51812        Fix for http://bugs.webkit.org/show_bug.cgi?id=12895
51813        REGRESSION: imagemap: pointer cursor is shown everywhere
51814        <rdar://problem/5028163>
51815 
51816        Image with imagemap should never itself be URLElement in hit test results. 
51817               
51818        No layout test, cursor state can't be captured.
51819
51820        * rendering/RenderLayer.cpp:
51821        (WebCore::RenderLayer::hitTest):
51822
518232007-03-01  Antti Koivisto  <antti@apple.com>
51824
51825        Reviewed by Maciej.
51826        
51827        Fix http://bugs.webkit.org/show_bug.cgi?id=12690
51828        REGRESSION: can not log in to bank of america with TOT webkit
51829        <rdar://problem/4990044>
51830        
51831        and http://bugs.webkit.org/show_bug.cgi?id=12604
51832        REGRESSION: After closing the "Would you like to save password" sheet, the form fails 
51833        to submit automatically at http://www.mac.com/WebObjects/HomePage.woa
51834        <rdar://problem/4871752>
51835        
51836        and http://bugs.webkit.org/show_bug.cgi?id=12020
51837        REGRESSION: Flickr uploading broken
51838        <rdar://problem/4928662>
51839        
51840        Turn protection against multiple forms submission back on. This approach is buggy 
51841        but it is way better than not having it at all. Not protecting against this
51842        breaks number of major sites.
51843        
51844        * bridge/mac/WebCoreAXObject.mm:
51845        (-[WebCoreAXObject accessibilityPerformAction:]):
51846        * loader/FrameLoader.cpp:
51847        (WebCore::FrameLoader::resetMultipleFormSubmissionProtection):
51848        (WebCore::FrameLoader::submitForm):
51849        (WebCore::FrameLoader::receivedMainResourceError):
51850        * loader/FrameLoader.h:
51851        * page/EventHandler.cpp:
51852        (WebCore::EventHandler::keyEvent):
51853        * page/Frame.cpp:
51854        (WebCore::Frame::setView):
51855        * page/mac/EventHandlerMac.mm:
51856        (WebCore::EventHandler::mouseDown):
51857
518582007-03-01  Kevin McCullough  <kmccullough@apple.com>
51859
51860        Reviewed by Adam.
51861
51862        - Added the test case: external-script-URL-location.html
51863        - Fix an issue where the url of a document is null after an open if the document
51864        has no parent.
51865
51866        * dom/Document.cpp:
51867        (WebCore::Document::open):
51868
518692007-03-01  Anders Carlsson  <acarlsson@apple.com>
51870
51871        Reviewed by Darin.
51872
51873        <rdar://problem/4960250> 
51874        http://bugs.webkit.org/show_bug.cgi?id=11627
51875        REGRESSION: Reproducible crash at IMDb in WebCore::FrameLoader::stopLoadingSubframes
51876        
51877        In rare cases, we could end up calling checkLoadComplete twice for the same frame. This would cause the 
51878        didFailProvisionalLoad delegate method to be called twice for the same frame, and also cause the provisional document loader
51879        to be reset to null when other code wasn't expecting it.
51880        
51881        This regressed in revision 10904 with the fix for <rdar://problem/4184719>. The fix is to only call stopLoading on the frame
51882        if either the document loader is loading, or the document is still being parsed. I've verified that the bug is still fixed and
51883        that no leaks occur.
51884        
51885        * loader/DocumentLoader.cpp:
51886        (WebCore::DocumentLoader::stopLoading):
51887
518882007-03-01  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51889
51890        Reviewed by Darin.
51891
51892        Fix ARM crash due to accessing non-4-byte-aligned memory
51893        as 32-bit values.
51894
51895        * platform/AtomicString.cpp:
51896        (WebCore::UCharBufferTranslator::equal):
51897
518982007-03-01  David Harrison  <harrison@apple.com>
51899
51900        Reviewed by Darin.
51901
51902        <rdar://problem/5033905> Have the DOM secondary thread check raise an exception by default
51903
51904        * platform/mac/ThreadCheck.mm:
51905        (WebCore::_WebCoreThreadViolationCheck):
51906        Initialize threadViolationIsException to true.
51907
519082007-03-01  Brady Eidson  <beidson@apple.com>
51909
51910        Reviewed by Darin
51911
51912        <rdar://problem/5030628> - Crash opening a new window with the
51913        "New windows open to the same page" pref set
51914
51915        * history/HistoryItem.cpp:
51916        (WebCore::HistoryItem::HistoryItem): Set the m_subItems vector capacity correctly
51917
519182007-03-01  Alexey Proskuryakov  <ap@webkit.org>
51919
51920        Reviewed by Maciej.
51921
51922        http://bugs.webkit.org/show_bug.cgi?id=12801
51923        Assertion failure in createMarkup() (root) when doing Select All, Copy in an SVG document
51924
51925        Test: editing/pasteboard/createMarkup-assert.xml
51926
51927        * editing/markup.cpp:
51928        (WebCore::createMarkup): Removed the assertion, because it's wrong in a non-HTML world.
51929
519302007-02-28  Adam Roben  <aroben@apple.com>
51931
51932        Reviewed by Oliver and Hyatt.
51933
51934        Fix <rdar://problem/5024233> Crash while using Find on empty document
51935
51936        No layout test possible, as this involves a null document.
51937
51938        * dom/Range.cpp:
51939        (WebCore::rangeOfContents): Added an ASSERT.
51940        * page/Frame.cpp:
51941        (WebCore::Frame::findString): Added a null-check for document().
51942        (WebCore::Frame::markAllMatchesForText): Ditto.
51943
519442007-02-28  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
51945
51946        Not reviewed - simple gdk build fix.
51947
51948        Add stubs for newly introduced localized strings.
51949
51950        * platform/gdk/TemporaryLinkStubs.cpp:
51951        (WebCore::searchMenuNoRecentSearchesText):
51952        (WebCore::searchMenuRecentSearchesText):
51953        (WebCore::searchMenuClearRecentSearchesText):
51954
519552007-02-28  Brady Eidson  <beidson@apple.com>
51956
51957        Reviewed by Beth
51958
51959        Move the Thread Safety Check functions into their own header for export to WebKit
51960
51961        * WebCore.exp: Export the function
51962        * WebCore.xcodeproj/project.pbxproj: 
51963        * bindings/scripts/CodeGeneratorObjC.pm: Include the new header
51964        * platform/Logging.h: Move stuff to ThreadCheck.h
51965        * platform/ThreadCheck.h: Added.
51966        * platform/mac/LoggingMac.mm: Move stuff to ThreadCheck.mm
51967        * platform/mac/ThreadCheck.mm: Added.
51968        (WebCore::_WebCoreThreadViolationCheck):
51969        (WebCoreReportThreadViolation):
51970
519712007-02-28  Beth Dakin  <bdakin@apple.com>
51972
51973        Reviewed by Brady.
51974
51975        Fix for http://bugs.webkit.org/show_bug.cgi?id=12923 REGRESSION: 
51976        Assertion failure copying standalone image
51977
51978        * platform/mac/PasteboardMac.mm:
51979        (WebCore::Pasteboard::writeImage): Use the CachedImage as the 
51980        resource. This makes more sense anyway. There is no need to null-
51981        check the renderer or the CachedImage since we return early if 
51982        there is no Image* and the HitTestResult::image() function checks 
51983        for these things.
51984
519852007-02-28  Adele Peterson  <adele@apple.com>
51986
51987        Reviewed by Beth.
51988
51989        Fix for <rdar://problem/4887423> REGRESSION: search results popup menu strings are not localized
51990        and <rdar://problem/3517227> accessibility-related strings in WebCore are not localized
51991
51992        Use localized strings from WebKit instead of hard coded strings.
51993
51994        * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject roleDescription]):
51995        * page/mac/WebCoreViewFactory.h:
51996        * platform/LocalizedStrings.h:
51997        * platform/mac/LocalizedStringsMac.mm:
51998        (WebCore::searchMenuNoRecentSearchesText):
51999        (WebCore::searchMenuRecentSearchesText):
52000        (WebCore::searchMenuClearRecentSearchesText):
52001        (WebCore::AXWebAreaText):
52002        (WebCore::AXLinkText):
52003        (WebCore::AXListMarkerText):
52004        (WebCore::AXImageMapText):
52005        (WebCore::AXHeadingText):
52006        * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::itemText):
52007
520082007-02-27  Antti Koivisto  <antti@apple.com>
52009
52010        Reviewed by Maciej.
52011
52012        - fix http://bugs.webkit.org/show_bug.cgi?id=12911
52013        GoogleDocs: Ordered lists don't update immediately when start attribute changed
52014        
52015        Update list marker value when start attribute changes.
52016
52017        * html/HTMLOListElement.cpp:
52018        (WebCore::HTMLOListElement::parseMappedAttribute):
52019
520202007-02-28  Nikolas Zimmermann  <zimmermann@kde.org>
52021
52022        Reviewed by Maciej.
52023
52024        Corrected the use of the new ENABLE() macros in some ksvg2/svg files.
52025        Add new build-webkit flags "--(no-)xpath" / "--(no-)xslt", to be able
52026        to switch off build features easily. Also add "--(no-)svg-experimental-features"
52027        flag, to be able to test filters/animations/use/foreignObject easily.
52028
52029        * DerivedSources.make:
52030        * ksvg2/scripts/make_names.pl:
52031        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
52032        * ksvg2/svg/SVGStyledElement.cpp:
52033        * ksvg2/svg/SVGUseElement.cpp:
52034
520352007-02-28  Rob Buis  <buis@kde.org>
52036
52037        Reviewed by Maciej.
52038
52039        http://bugs.webkit.org/show_bug.cgi?id=12609
52040        Any SVG element will create renderers even when children of HTML elements
52041
52042        Allow creation of svg renderers only when parent is SVG, except for
52043        the <svg> element.
52044
52045        * ksvg2/svg/SVGAElement.h:
52046        * ksvg2/svg/SVGAnimationElement.h:
52047        * ksvg2/svg/SVGCircleElement.h:
52048        * ksvg2/svg/SVGClipPathElement.h:
52049        (WebCore::SVGClipPathElement::rendererIsNeeded):
52050        * ksvg2/svg/SVGDefsElement.cpp:
52051        * ksvg2/svg/SVGDefsElement.h:
52052        * ksvg2/svg/SVGDescElement.h:
52053        (WebCore::SVGDescElement::rendererIsNeeded):
52054        * ksvg2/svg/SVGElement.cpp:
52055        * ksvg2/svg/SVGEllipseElement.h:
52056        * ksvg2/svg/SVGFilterElement.h:
52057        (WebCore::SVGFilterElement::rendererIsNeeded):
52058        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
52059        (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
52060        * ksvg2/svg/SVGForeignObjectElement.h:
52061        * ksvg2/svg/SVGGElement.h:
52062        * ksvg2/svg/SVGGradientElement.h:
52063        * ksvg2/svg/SVGImageElement.h:
52064        * ksvg2/svg/SVGLineElement.h:
52065        * ksvg2/svg/SVGMarkerElement.h:
52066        * ksvg2/svg/SVGMaskElement.h:
52067        * ksvg2/svg/SVGPathElement.h:
52068        * ksvg2/svg/SVGPatternElement.h:
52069        * ksvg2/svg/SVGPolyElement.h:
52070        * ksvg2/svg/SVGRectElement.h:
52071        * ksvg2/svg/SVGStopElement.h:
52072        * ksvg2/svg/SVGStyledElement.cpp:
52073        (WebCore::SVGStyledElement::rendererIsNeeded):
52074        * ksvg2/svg/SVGStyledElement.h:
52075        * ksvg2/svg/SVGSwitchElement.h:
52076        * ksvg2/svg/SVGSymbolElement.h:
52077        (WebCore::SVGSymbolElement::rendererIsNeeded):
52078        * ksvg2/svg/SVGTRefElement.h:
52079        * ksvg2/svg/SVGTSpanElement.h:
52080        * ksvg2/svg/SVGTextElement.h:
52081        * ksvg2/svg/SVGTitleElement.h:
52082        (WebCore::SVGTitleElement::rendererIsNeeded):
52083        * ksvg2/svg/SVGUseElement.h:
52084        * ksvg2/svg/SVGViewElement.h:
52085        (WebCore::SVGViewElement::rendererIsNeeded):
52086
520872007-02-28  Rob Buis  <buis@kde.org>
52088
52089        Reviewed by Maciej.
52090
52091        http://bugs.webkit.org/show_bug.cgi?id=12913
52092        Markers do not render in webkit when it misses markerWidth or markerHeight attribute
52093
52094        Set defaults for markerWidth/markerHeight so markers that do not specify them render.
52095
52096        * ksvg2/svg/SVGMarkerElement.cpp:
52097        (WebCore::SVGMarkerElement::SVGMarkerElement):
52098
520992007-02-27  Anders Carlsson  <acarlsson@apple.com>
52100
52101        * loader/ResourceLoader.cpp:
52102        (WebCore::ResourceLoader::~ResourceLoader):
52103        Remove comment.
52104
521052007-02-27  Justin Garcia  <justin.garcia@apple.com>
52106
52107        Reviewed by oliver
52108
52109        <rdar://problem/5027300>
52110        REGRESSION: Images inserted with align left/right are lost
52111
52112        * editing/ReplaceSelectionCommand.cpp:
52113        (WebCore::ReplaceSelectionCommand::shouldMerge):
52114        Don't attempt to merge to or from a position before 
52115        or after a block because it will be a no-op and
52116        lead to infinite recursion.
52117        In this case it instead resulted in content loss because 
52118        of bugs in start/endOfParagraph (5027702).
52119        * editing/visible_units.cpp: Added two FIXMEs for
52120        the problems with start/endOfParagraph.
52121
521222007-02-27  Anders Carlsson  <acarlsson@apple.com>
52123
52124        Reviewed by Geoff.
52125
52126        Make resource load delegate methods pass the right document loader.
52127        
52128        * loader/FrameLoader.cpp:
52129        (WebCore::FrameLoader::willSendRequest):
52130        (WebCore::FrameLoader::didReceiveResponse):
52131        (WebCore::FrameLoader::didReceiveData):
52132        (WebCore::FrameLoader::didFailToLoad):
52133        (WebCore::FrameLoader::didFinishLoad):
52134        (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
52135        (WebCore::FrameLoader::didCancelAuthenticationChallenge):
52136        Use the resource loader's document loader instead of the active one.
52137        
52138        * loader/MainResourceLoader.cpp:
52139        (WebCore::MainResourceLoader::receivedError):
52140        Make it so we send the frame load delegate method before the resource load delegate method.
52141        This was a regression from 2.0 and was caused by the fix to rdar://problem/4609195. Because the way the loader
52142        now works, both delegate methods will be called.
52143        
52144        * loader/ResourceLoader.cpp:
52145        (WebCore::ResourceLoader::ResourceLoader):
52146        * loader/ResourceLoader.h:
52147        (WebCore::ResourceLoader::documentLoader):
52148        Add document loader pointer to ResourceLoader.
52149
521502007-02-27  Mitz Pettel  <mitz@webkit.org>
52151
52152        Reviewed by Hyatt.
52153
52154        - fix http://bugs.webkit.org/show_bug.cgi?id=12910
52155          REGRESSION (r18756-r18765): list-bullet doesn't redraw properly when changing the list's content using JavaScript
52156
52157        Test: fast/repaint/list-marker.html
52158
52159        * rendering/RenderListItem.cpp:
52160        (WebCore::RenderListItem::positionListMarker): Add the marker to the visual
52161        overflow of all its ancestor blocks up to the list item. This needs to be
52162        done here since the marker is positioned only after those blocks have been
52163        laid out.
52164
521652007-02-27  Antti Koivisto  <antti@apple.com>
52166
52167        Reviewed by Hyatt.
52168        
52169        - fix http://bugs.webkit.org/show_bug.cgi?id=12918
52170        REGRESSION: Google Finance dropdown Flickers
52171        <rdar://4988039>
52172        
52173        If a node dies while mouse is over it, it is still supposed to receive
52174        mouseout event (wasn't case in Tiger webkit). However this event should 
52175        not propagate to any other nodes. This patch matches Firefox behavior in
52176        this respect.
52177
52178        * dom/EventTargetNode.cpp:
52179        (WebCore::EventTargetNode::dispatchGenericEvent):
52180
521812007-02-27  Geoffrey Garen  <ggaren@apple.com>
52182
52183        Reviewed by Maciej Stachowiak.
52184        
52185        Fixed http://bugs.webkit.org/show_bug.cgi?id=12659 | <rdar://problem/4954306>
52186        JS objects not collected after closing window @ ebay.com/maps.google.com
52187
52188        Garbage collect in the KJSProxy destructor, after clearing our reference
52189        to the interpreter, because that's when the interpreter has torn down fully.
52190
52191        (Technically speaking, we can't *prove* that we have the only reference to 
52192        our interpreter, but that's how it works in practice, and manual garbage 
52193        collection is just an opportunistic optimization, so it's OK for it to 
52194        work in practice even if it can't be proven in theory.)
52195        
52196        Layout tests pass. No leaks reported.
52197
52198        * bindings/js/kjs_proxy.cpp:
52199        (WebCore::KJSProxy::~KJSProxy):
52200        * bindings/js/kjs_proxy.h:
52201        * page/Page.cpp:
52202        (WebCore::Page::~Page): Merged pageDestroyed() calls. Moved debug-only
52203        code to the bottom.
52204        * page/Frame.cpp:
52205        (WebCore::Frame::~Frame): Don't call getObject() because globalObject()
52206        returns a JSObject* already, and the call can leave a pointer to the Window
52207        object on the stack. Don't check for NULL because it is an invariant of
52208        JavaScriptCore that no JSObject* can be NULL. Do use a volatile pointer
52209        for w because the 'w = 0' assignment just screams to the compiler, "Don't
52210        generate any code for me!"
52211
522122007-02-27  Rob Buis  <buis@kde.org>
52213
52214        Reviewed by David Hyatt.
52215
52216        http://bugs.webkit.org/show_bug.cgi?id=4128
52217        !important is ignored in inline styling.
52218
52219        Handle properties with !important flag better in inline
52220        style declarations.
52221
52222        * css/CSSMutableStyleDeclaration.cpp:
52223        (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
52224
522252007-02-27  David Hyatt  <hyatt@apple.com>
52226
52227        Bug 11435.  Make sure RenderViews always paintBoxDecorations.  They used to before I removed RenderView's
52228        paint method.  This fix restores the original behavior.
52229
52230        Reviewed by mitz
52231
52232        * rendering/RenderBox.cpp:
52233        (WebCore::RenderBox::setStyle):
52234
522352007-02-27  David Hyatt  <hyatt@apple.com>
52236
52237        Fix for bug 12094, make sure setMinMaxKnown starts off false for the weird/rare case of empty
52238        plaintext documents (which really are buggy and should be fixed to generate root elements).
52239
52240        Reviewed by mitz
52241
52242        * rendering/RenderView.cpp:
52243        (WebCore::RenderView::RenderView):
52244
522452007-02-27  Matt Perry  <mpcomplete@chromium.org>
52246
52247        Reviewed by Darin.
52248
52249        Fixed the case where a BackForwardList of capacity==1 would grow without bound.
52250
52251        * history/BackForwardList.cpp:
52252        (WebCore::BackForwardList::addItem):
52253
522542007-02-22  Lars Naesbye Christensen  <lars@naesbye.dk>
52255
52256        Reviewed by Maciej.
52257
52258        http://bugs.webkit.org/show_bug.cgi?id=12848
52259        Help cursor should have a white outline
52260
52261        * Resources/helpCursor.png:
52262
522632007-02-27  Alexey Proskuryakov  <ap@webkit.org>
52264
52265        Reviewed by Maciej.
52266
52267        http://bugs.webkit.org/show_bug.cgi?id=12594
52268        REGRESSION: Strange highlight in active input area
52269
52270        No automated test possible.
52271
52272        * rendering/InlineTextBox.cpp:
52273        (WebCore::InlineTextBox::paint): Restore a check lost in r12792.
52274
522752007-02-27  Darin Adler  <darin@apple.com>
52276
52277        Reviewed by Mitz.
52278
52279        - fix http://bugs.webkit.org/show_bug.cgi?id=12908
52280          crash in http/tests/incremental/frame-focus-before-load.html
52281
52282        * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::focusDocumentView):
52283        Add null checks.
52284
522852007-02-27  Darin Adler  <darin@apple.com>
52286
52287        Reviewed by Alexey.
52288
52289        - fix http://bugs.webkit.org/show_bug.cgi?id=12909
52290          should use ICU, not TEC, for MacRoman decoding
52291
52292        * platform/TextCodecICU.cpp: (WebCore::TextCodecICU::registerEncodingNames):
52293        Add "macroman" as an alias for "macintosh". We have seen that in use in mail,
52294        although I'm not sure it's used on the web.
52295
52296        * platform/mac/mac-encodings.txt: Remove MacRoman line, which was added back
52297        as part of the patch for bug 4971226. But by adding it to this file rather
52298        than the ICU codec, we get it only on Mac OS X. And long term we are trying to
52299        get rid of the use of TEC entirely, so we want this file to be as empty as
52300        possible.
52301
523022007-02-27  Rob Buis  <buis@kde.org>
52303
52304        Reviewed by Maciej.
52305
52306        http://bugs.webkit.org/show_bug.cgi?id=12905
52307        Not all svg shapes should support markers
52308
52309        Restrict marker usage to svg shapes polyline, polygon, line and path.
52310
52311        * ksvg2/svg/SVGLineElement.h:
52312        (WebCore::SVGLineElement::supportsMarkers):
52313        * ksvg2/svg/SVGPathElement.h:
52314        (WebCore::SVGPathElement::supportsMarkers):
52315        * ksvg2/svg/SVGPolyElement.h:
52316        (WebCore::SVGPolyElement::supportsMarkers):
52317        * ksvg2/svg/SVGStyledElement.h:
52318        (WebCore::SVGStyledElement::supportsMarkers):
52319        * rendering/RenderPath.cpp:
52320        (WebCore::RenderPath::paint):
52321
523222007-02-26  Adele Peterson  <adele@apple.com>
52323
52324        Reviewed by Lars.
52325
52326        Fix for http://bugs.webkit.org/show_bug.cgi?id=12902
52327        <rdar://problem/5012679> REGRESSION: Pressing return key doesn't 
52328        move caret to next line after applying a font color in GMail
52329
52330        Test: fast/frames/iframe-window-focus-2.html
52331
52332        * page/EventHandler.h: Make focusDocumentView public.
52333        * page/Frame.cpp: (WebCore::Frame::focusWindow): Instead of just setting the focused frame,
52334          we should set also focus the document view.  The bug here was that since the subframe view
52335          wasn't the first responder, the key down event was going to the wrong frame.
52336
523372007-02-26  Maciej Stachowiak  <mjs@apple.com>
52338
52339        Reviewed by Oliver.
52340
52341        - fixed <rdar://problem/4946881> Recursive loop with <marker> not caught, crashes in WebCore::SVGPaintServer::draw (11244)
52342        http://bugs.webkit.org/show_bug.cgi?id=11244
52343
52344        * platform/graphics/svg/SVGResourceMarker.cpp:
52345        (WebCore::SVGResourceMarker::draw): Use a HashSet to guard against
52346        reference cycles.
52347
523482007-02-26  Maciej Stachowiak  <mjs@apple.com>
52349
52350        Reviewed by Kevin McCullough.
52351
52352        - fix Qt build for earlier SVG changes.
52353
52354        * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
52355
523562007-02-26  Oliver Hunt  <oliver@apple.com>
52357
52358        Reviewed by Maciej.
52359
52360        Fix for <rdar://problem/4827378>: Canvas with large height 
52361        uses lots of memory, computer almost stops responding
52362         
52363        Put cap on maximum area of canvas, size is similar too the 
52364        maximum size allowed by firefox (firefox seems to to cut off 
52365        at area == 32767 * 9358). 
52366
52367        Also protect renderer against the possibility of a null context
52368        (this was triggering a CG warning)
52369
52370        * html/HTMLCanvasElement.cpp:
52371        (WebCore::HTMLCanvasElement::createDrawingContext):
52372           Apply maximum canvas area
52373        (WebCore::HTMLCanvasElement::createPlatformImage):
52374           Protect against null CG Context
52375
523762007-02-26  Mitz Pettel  <mitz@webkit.org>
52377
52378        Reviewed by Antti Koivisto.
52379
52380        - fix http://bugs.webkit.org/show_bug.cgi?id=12899
52381          Ordered lists not updating dynamically with new styles
52382
52383        Test: fast/lists/list-style-type-dynamic-change.html
52384
52385        * rendering/RenderListMarker.cpp:
52386        (WebCore::RenderListMarker::setStyle): Made changing the marker type trigger
52387        updating of the marker.
52388
523892007-02-26  Adele Peterson  <adele@apple.com>
52390
52391        Reviewed by Maciej.
52392
52393        Fix for <rdar://problem/5012761> REGRESSION: form submit invokes wrong event handler
52394
52395        Test: fast/events/submit-reset-nested-bubble.html
52396
52397        * dom/EventTargetNode.h: Made handleLocalEvents virtual.
52398        * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::handleLocalEvents): If we're
52399          not in the capture phase, and the target is a different form, and we're handling
52400          the submitEvent or the resetEvent, then stop propagation of the event.  This matches
52401          Firefox behavior.  You can only get in this situation if misnested tags cause
52402          forms to be nested.
52403        * html/HTMLFormElement.h: Added handleLocalEvents.
52404
524052007-02-26  Darin Adler  <darin@apple.com>
52406
52407        Reviewed by Oliver Hunt.
52408
52409        - <rdar://problem/5021555> TextCodecICU does not use fallback mappings; it should
52410
52411        * platform/TextCodecICU.cpp: (WebCore::TextCodecICU::createICUConverter):
52412        Added a call to ucnv_setFallback(TRUE).
52413
524142007-02-26  Oliver Hunt  <oliver@apple.com>
52415
52416        Reviewed by Adam.
52417
52418        Fix for rdar://problem/5021127 
52419
52420        Need to add null check to node -- original Obj-C didn't need 
52421        the null check due to the Obj-C null messaging semantics
52422
52423        * editing/Editor.cpp:
52424        (WebCore::Editor::shouldInsertFragment):
52425
524262007-02-26  David Hyatt  <hyatt@apple.com>
52427
52428        Make text files render using white-space: pre-wrap instead of white-space: pre.
52429        
52430        Reviewed by aroben
52431
52432        * loader/TextDocument.cpp:
52433        (WebCore::TextTokenizer::write):
52434
524352007-02-26  David Hyatt  <hyatt@apple.com>
52436
52437        Back out the change to add fullyClippedContentRect.  The layout test
52438        was actually showing more correct results.
52439
52440        * page/Frame.cpp:
52441        (WebCore::Frame::visibleSelectionRect):
52442        (WebCore::Frame::setIsActive):
52443        (WebCore::Frame::markAllMatchesForText):
52444        * platform/ScrollView.h:
52445        * platform/mac/ScrollViewMac.mm:
52446        * rendering/RenderLayer.cpp:
52447        (WebCore::RenderLayer::scrollRectToVisible):
52448
524492007-02-26  David Hyatt  <hyatt@apple.com>
52450
52451        Add support for a new property called -webkit-border-fit.  This property
52452        has two values: border and lines.  The "border" value means the border and
52453        background paint normally at the border box level.  The "lines" value indicates
52454        that the border and background should shrink dynamically to snugly hug the
52455        line boxes of normal flow descendants.
52456
52457        Reviewed by darin
52458
52459        fast/borders/border-fit.html
52460
52461        * WebCore.xcodeproj/project.pbxproj:
52462        * css/CSSComputedStyleDeclaration.cpp:
52463        (WebCore::):
52464        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52465        * css/CSSPropertyNames.in:
52466        * css/CSSValueKeywords.in:
52467        * css/cssparser.cpp:
52468        (WebCore::CSSParser::parseValue):
52469        * css/cssstyleselector.cpp:
52470        (WebCore::CSSStyleSelector::applyProperty):
52471        * rendering/RenderBlock.cpp:
52472        (WebCore::RenderBlock::adjustForBorderFit):
52473        (WebCore::RenderBlock::borderFitAdjust):
52474        * rendering/RenderBlock.h:
52475        * rendering/RenderBox.cpp:
52476        (WebCore::RenderBox::paintBoxDecorations):
52477        * rendering/RenderBox.h:
52478        (WebCore::RenderBox::borderFitAdjust):
52479        * rendering/RenderStyle.cpp:
52480        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52481        (WebCore::StyleRareNonInheritedData::operator==):
52482        (WebCore::RenderStyle::diff):
52483        * rendering/RenderStyle.h:
52484        (WebCore::):
52485        (WebCore::RenderStyle::borderFit):
52486        (WebCore::RenderStyle::setBorderFit):
52487        (WebCore::RenderStyle::initialBorderFit):
52488
524892007-02-26  Adam Roben  <aroben@apple.com>
52490
52491        Reviewed by Darin.
52492
52493        Build fix.
52494
52495        * rendering/RenderTreeAsText.cpp: Can't use #ifndef with ENABLE() macro.
52496
524972007-02-26  Adele Peterson  <adele@apple.com>
52498
52499        Reviewed by Adam.
52500
52501        Fix for <rdar://problem/4990700> Safari always crashes when attempting to edit/view 
52502        Yahoo pipes in WebCore::HTMLSelectElement::optionToListIndex
52503
52504        Test: fast/forms/select-out-of-bounds-index.html
52505
52506        * html/HTMLSelectElement.cpp:
52507        (WebCore::HTMLSelectElement::setSelectedIndex): If we're about to deselect all options, then set m_lastOnChangeIndex to -1.
52508        (WebCore::HTMLSelectElement::optionToListIndex): Moved listSize to a local variable.  Rewrote using a simpler for-loop to prevent out-of-bounds errors.
52509
525102007-02-26  Anders Carlsson  <acarlsson@apple.com>
52511
52512        Reviewed by Geoff.
52513
52514        <rdar://problem/4816376>
52515        REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
52516        
52517        * loader/FrameLoader.cpp:
52518        (WebCore::FrameLoader::reload):
52519        Remove call to setPolicyDocumentLoader here, it's set by the ::load function that we end up calling.
52520
525212007-02-26  Maciej Stachowiak  <mjs@apple.com>
52522
52523        Reviewed by Lars.
52524
52525        - fixed <rdar://problem/5021698> Disable experimental SVG features (12883)
52526        
52527        I added an ENABLE_SVG_EXPERIMENTAL_FEATURES define to guard all use of the experimental
52528        features, and used it to guard relevant tag names, elements, JS bindings and renderers.
52529        
52530        I also converted all the existing optional feature defines to
52531        ENABLE_FOO instead of FOO_SUPPORT since that is the more standard
52532        way to do it in open source projects and works with the handy new
52533        ENABLE() macro.
52534
52535        * CMakeLists.txt:
52536        * DerivedSources.make:
52537        * Projects/gdk/webcore-gdk.bkl:
52538        * WebCore.pro:
52539        * WebCore.vcproj/WebCore/WebCore.vcproj:
52540        * WebCore.vcproj/WebCore/build-generated-files.sh:
52541        * WebCore.xcodeproj/project.pbxproj:
52542        * bindings/js/JSCustomXPathNSResolver.cpp:
52543        * bindings/js/JSCustomXPathNSResolver.h:
52544        * bindings/js/JSSVGElementWrapperFactory.cpp:
52545        * bindings/js/JSSVGElementWrapperFactory.h:
52546        * bindings/js/JSSVGMatrixCustom.cpp:
52547        * bindings/js/JSSVGPODTypeWrapper.h:
52548        * bindings/js/JSSVGPathSegCustom.cpp:
52549        * bindings/js/JSSVGPathSegListCustom.cpp:
52550        * bindings/js/JSSVGPointListCustom.cpp:
52551        * bindings/js/JSXSLTProcessor.cpp:
52552        * bindings/js/JSXSLTProcessor.h:
52553        * bindings/js/kjs_binding.cpp:
52554        (KJS::setDOMException):
52555        * bindings/js/kjs_css.cpp:
52556        (KJS::toJS):
52557        * bindings/js/kjs_dom.cpp:
52558        (KJS::toJS):
52559        * bindings/js/kjs_html.cpp:
52560        (KJS::HTMLElementFunction::callAsFunction):
52561        * bindings/js/kjs_proxy.cpp:
52562        * bindings/js/kjs_proxy.h:
52563        * bindings/js/kjs_window.cpp:
52564        (KJS::Window::getValueProperty):
52565        * bindings/objc/DOM.mm:
52566        (WebCore::createElementClassMap):
52567        (+[DOMNode _nodeWith:]):
52568        * bindings/objc/DOMCSS.mm:
52569        (+[DOMCSSValue _CSSValueWith:]):
52570        * bindings/objc/DOMCustomXPathNSResolver.h:
52571        * bindings/objc/DOMCustomXPathNSResolver.mm:
52572        * bindings/objc/DOMEvents.mm:
52573        (+[DOMEvent _eventWith:]):
52574        * bindings/objc/DOMInternal.h:
52575        * bindings/objc/DOMSVGPathSegInternal.mm:
52576        * bindings/objc/DOMXPath.mm:
52577        * bindings/objc/ExceptionHandlers.mm:
52578        (WebCore::raiseDOMException):
52579        * bindings/objc/PublicDOMInterfaces.h:
52580        * bindings/scripts/CodeGeneratorJS.pm:
52581        * bindings/scripts/CodeGeneratorObjC.pm:
52582        * config.h:
52583        * css/CSSGrammar.y:
52584        * css/CSSStyleDeclaration.cpp:
52585        (WebCore::propertyID):
52586        * css/StyleBase.h:
52587        * css/cssparser.cpp:
52588        (WebCore::CSSParser::parseValue):
52589        * css/cssparser.h:
52590        * css/cssstyleselector.cpp:
52591        (WebCore::CSSStyleSelector::loadDefaultStyle):
52592        (WebCore::CSSStyleSelector::initForStyleResolve):
52593        (WebCore::checkPseudoState):
52594        (WebCore::CSSStyleSelector::adjustRenderStyle):
52595        (WebCore::CSSStyleSelector::applyProperty):
52596        * css/cssstyleselector.h:
52597        * dom/DOMImplementation.cpp:
52598        (WebCore::DOMImplementation::hasFeature):
52599        (WebCore::DOMImplementation::createDocument):
52600        * dom/Document.cpp:
52601        (WebCore::Document::Document):
52602        (WebCore::Document::~Document):
52603        (WebCore::Document::createElement):
52604        (WebCore::Document::implicitClose):
52605        (WebCore::Document::recalcStyleSelector):
52606        (WebCore::Document::createEvent):
52607        * dom/Document.h:
52608        * dom/Document.idl:
52609        * dom/Event.cpp:
52610        * dom/Event.h:
52611        * dom/EventTarget.cpp:
52612        * dom/EventTarget.h:
52613        * dom/MappedAttributeEntry.h:
52614        (WebCore::):
52615        * dom/Node.cpp:
52616        (WebCore::Node::createRendererIfNeeded):
52617        (WebCore::Node::shadowAncestorNode):
52618        * dom/Node.h:
52619        * dom/ProcessingInstruction.cpp:
52620        (WebCore::ProcessingInstruction::ProcessingInstruction):
52621        (WebCore::ProcessingInstruction::checkStyleSheet):
52622        (WebCore::ProcessingInstruction::setCSSStyleSheet):
52623        * dom/ProcessingInstruction.h:
52624        * dom/Text.cpp:
52625        (WebCore::Text::createRenderer):
52626        * dom/XMLTokenizer.cpp:
52627        (WebCore::XMLTokenizer::startElementNs):
52628        (WebCore::XMLTokenizer::endElementNs):
52629        (WebCore::XMLTokenizer::processingInstruction):
52630        (WebCore::XMLTokenizer::end):
52631        (WebCore::XMLTokenizer::insertErrorMessageBlock):
52632        * dom/XMLTokenizer.h:
52633        * html/HTMLEmbedElement.cpp:
52634        * html/HTMLEmbedElement.h:
52635        * html/HTMLObjectElement.cpp:
52636        * html/HTMLObjectElement.h:
52637        * ksvg2/css/SVGCSSParser.cpp:
52638        * ksvg2/css/SVGCSSStyleSelector.cpp:
52639        * ksvg2/css/SVGRenderStyle.cpp:
52640        * ksvg2/css/SVGRenderStyle.h:
52641        * ksvg2/css/SVGRenderStyleDefs.cpp:
52642        * ksvg2/css/SVGRenderStyleDefs.h:
52643        * ksvg2/events/JSSVGLazyEventListener.cpp:
52644        * ksvg2/events/JSSVGLazyEventListener.h:
52645        * ksvg2/events/SVGZoomEvent.cpp:
52646        * ksvg2/events/SVGZoomEvent.h:
52647        * ksvg2/misc/KCanvasRenderingStyle.cpp:
52648        * ksvg2/misc/KCanvasRenderingStyle.h:
52649        * ksvg2/misc/PointerEventsHitRules.cpp:
52650        * ksvg2/misc/PointerEventsHitRules.h:
52651        * ksvg2/misc/SVGDocumentExtensions.cpp:
52652        * ksvg2/misc/SVGDocumentExtensions.h:
52653        * ksvg2/misc/SVGImageLoader.cpp:
52654        * ksvg2/misc/SVGImageLoader.h:
52655        * ksvg2/misc/SVGTimer.cpp:
52656        * ksvg2/misc/SVGTimer.h:
52657        * ksvg2/misc/TimeScheduler.cpp:
52658        * ksvg2/misc/TimeScheduler.h:
52659        * ksvg2/scripts/make_names.pl:
52660        * ksvg2/svg/ColorDistance.cpp:
52661        * ksvg2/svg/ColorDistance.h:
52662        * ksvg2/svg/GradientAttributes.h:
52663        * ksvg2/svg/LinearGradientAttributes.h:
52664        * ksvg2/svg/PatternAttributes.h:
52665        * ksvg2/svg/RadialGradientAttributes.h:
52666        * ksvg2/svg/SVGAElement.cpp:
52667        * ksvg2/svg/SVGAElement.h:
52668        * ksvg2/svg/SVGAngle.cpp:
52669        * ksvg2/svg/SVGAngle.h:
52670        * ksvg2/svg/SVGAnimateColorElement.cpp:
52671        * ksvg2/svg/SVGAnimateColorElement.h:
52672        * ksvg2/svg/SVGAnimateElement.cpp:
52673        * ksvg2/svg/SVGAnimateElement.h:
52674        * ksvg2/svg/SVGAnimateElement.idl:
52675        * ksvg2/svg/SVGAnimateMotionElement.cpp:
52676        * ksvg2/svg/SVGAnimateMotionElement.h:
52677        * ksvg2/svg/SVGAnimateTransformElement.cpp:
52678        * ksvg2/svg/SVGAnimateTransformElement.h:
52679        * ksvg2/svg/SVGAnimateTransformElement.idl:
52680        * ksvg2/svg/SVGAnimatedPathData.cpp:
52681        * ksvg2/svg/SVGAnimatedPathData.h:
52682        * ksvg2/svg/SVGAnimatedPoints.cpp:
52683        * ksvg2/svg/SVGAnimatedPoints.h:
52684        * ksvg2/svg/SVGAnimatedTemplate.h:
52685        * ksvg2/svg/SVGAnimationElement.cpp:
52686        * ksvg2/svg/SVGAnimationElement.h:
52687        * ksvg2/svg/SVGCircleElement.cpp:
52688        * ksvg2/svg/SVGCircleElement.h:
52689        * ksvg2/svg/SVGClipPathElement.cpp:
52690        * ksvg2/svg/SVGClipPathElement.h:
52691        * ksvg2/svg/SVGColor.cpp:
52692        * ksvg2/svg/SVGColor.h:
52693        * ksvg2/svg/SVGComponentTransferFunctionElement.cpp:
52694        * ksvg2/svg/SVGComponentTransferFunctionElement.h:
52695        * ksvg2/svg/SVGCursorElement.cpp:
52696        * ksvg2/svg/SVGCursorElement.h:
52697        * ksvg2/svg/SVGDefsElement.cpp:
52698        * ksvg2/svg/SVGDefsElement.h:
52699        * ksvg2/svg/SVGDescElement.cpp:
52700        * ksvg2/svg/SVGDescElement.h:
52701        * ksvg2/svg/SVGDocument.cpp:
52702        * ksvg2/svg/SVGDocument.h:
52703        * ksvg2/svg/SVGElement.cpp:
52704        (WebCore::SVGElement::dispatchEvent):
52705        * ksvg2/svg/SVGElement.h:
52706        * ksvg2/svg/SVGElementInstance.cpp:
52707        * ksvg2/svg/SVGElementInstance.h:
52708        * ksvg2/svg/SVGElementInstance.idl:
52709        * ksvg2/svg/SVGElementInstanceList.cpp:
52710        * ksvg2/svg/SVGElementInstanceList.h:
52711        * ksvg2/svg/SVGElementInstanceList.idl:
52712        * ksvg2/svg/SVGEllipseElement.cpp:
52713        * ksvg2/svg/SVGEllipseElement.h:
52714        * ksvg2/svg/SVGException.h:
52715        * ksvg2/svg/SVGExternalResourcesRequired.cpp:
52716        * ksvg2/svg/SVGExternalResourcesRequired.h:
52717        * ksvg2/svg/SVGFEBlendElement.cpp:
52718        * ksvg2/svg/SVGFEBlendElement.h:
52719        * ksvg2/svg/SVGFEBlendElement.idl:
52720        * ksvg2/svg/SVGFEColorMatrixElement.cpp:
52721        * ksvg2/svg/SVGFEColorMatrixElement.h:
52722        * ksvg2/svg/SVGFEColorMatrixElement.idl:
52723        * ksvg2/svg/SVGFEComponentTransferElement.cpp:
52724        * ksvg2/svg/SVGFEComponentTransferElement.h:
52725        * ksvg2/svg/SVGFEComponentTransferElement.idl:
52726        * ksvg2/svg/SVGFECompositeElement.cpp:
52727        * ksvg2/svg/SVGFECompositeElement.h:
52728        * ksvg2/svg/SVGFECompositeElement.idl:
52729        * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
52730        * ksvg2/svg/SVGFEDiffuseLightingElement.h:
52731        * ksvg2/svg/SVGFEDiffuseLightingElement.idl:
52732        * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
52733        * ksvg2/svg/SVGFEDisplacementMapElement.h:
52734        * ksvg2/svg/SVGFEDisplacementMapElement.idl:
52735        * ksvg2/svg/SVGFEDistantLightElement.cpp:
52736        * ksvg2/svg/SVGFEDistantLightElement.h:
52737        * ksvg2/svg/SVGFEDistantLightElement.idl:
52738        * ksvg2/svg/SVGFEFloodElement.cpp:
52739        * ksvg2/svg/SVGFEFloodElement.h:
52740        * ksvg2/svg/SVGFEFloodElement.idl:
52741        * ksvg2/svg/SVGFEFuncAElement.cpp:
52742        * ksvg2/svg/SVGFEFuncAElement.h:
52743        * ksvg2/svg/SVGFEFuncAElement.idl:
52744        * ksvg2/svg/SVGFEFuncBElement.cpp:
52745        * ksvg2/svg/SVGFEFuncBElement.h:
52746        * ksvg2/svg/SVGFEFuncBElement.idl:
52747        * ksvg2/svg/SVGFEFuncGElement.cpp:
52748        * ksvg2/svg/SVGFEFuncGElement.h:
52749        * ksvg2/svg/SVGFEFuncGElement.idl:
52750        * ksvg2/svg/SVGFEFuncRElement.cpp:
52751        * ksvg2/svg/SVGFEFuncRElement.h:
52752        * ksvg2/svg/SVGFEFuncRElement.idl:
52753        * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
52754        * ksvg2/svg/SVGFEGaussianBlurElement.h:
52755        * ksvg2/svg/SVGFEGaussianBlurElement.idl:
52756        * ksvg2/svg/SVGFEImageElement.cpp:
52757        * ksvg2/svg/SVGFEImageElement.h:
52758        * ksvg2/svg/SVGFEImageElement.idl:
52759        * ksvg2/svg/SVGFELightElement.cpp:
52760        * ksvg2/svg/SVGFELightElement.h:
52761        * ksvg2/svg/SVGFEMergeElement.cpp:
52762        * ksvg2/svg/SVGFEMergeElement.h:
52763        * ksvg2/svg/SVGFEMergeElement.idl:
52764        * ksvg2/svg/SVGFEMergeNodeElement.cpp:
52765        * ksvg2/svg/SVGFEMergeNodeElement.h:
52766        * ksvg2/svg/SVGFEMergeNodeElement.idl:
52767        * ksvg2/svg/SVGFEOffsetElement.cpp:
52768        * ksvg2/svg/SVGFEOffsetElement.h:
52769        * ksvg2/svg/SVGFEOffsetElement.idl:
52770        * ksvg2/svg/SVGFEPointLightElement.cpp:
52771        * ksvg2/svg/SVGFEPointLightElement.h:
52772        * ksvg2/svg/SVGFEPointLightElement.idl:
52773        * ksvg2/svg/SVGFESpecularLightingElement.cpp:
52774        * ksvg2/svg/SVGFESpecularLightingElement.h:
52775        * ksvg2/svg/SVGFESpecularLightingElement.idl:
52776        * ksvg2/svg/SVGFESpotLightElement.cpp:
52777        * ksvg2/svg/SVGFESpotLightElement.h:
52778        * ksvg2/svg/SVGFESpotLightElement.idl:
52779        * ksvg2/svg/SVGFETileElement.cpp:
52780        * ksvg2/svg/SVGFETileElement.h:
52781        * ksvg2/svg/SVGFETileElement.idl:
52782        * ksvg2/svg/SVGFETurbulenceElement.cpp:
52783        * ksvg2/svg/SVGFETurbulenceElement.h:
52784        * ksvg2/svg/SVGFETurbulenceElement.idl:
52785        * ksvg2/svg/SVGFilterElement.cpp:
52786        * ksvg2/svg/SVGFilterElement.h:
52787        * ksvg2/svg/SVGFilterElement.idl:
52788        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp:
52789        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
52790        * ksvg2/svg/SVGFitToViewBox.cpp:
52791        * ksvg2/svg/SVGFitToViewBox.h:
52792        * ksvg2/svg/SVGForeignObjectElement.cpp:
52793        * ksvg2/svg/SVGForeignObjectElement.h:
52794        * ksvg2/svg/SVGForeignObjectElement.idl:
52795        * ksvg2/svg/SVGGElement.cpp:
52796        * ksvg2/svg/SVGGElement.h:
52797        * ksvg2/svg/SVGGradientElement.cpp:
52798        * ksvg2/svg/SVGGradientElement.h:
52799        * ksvg2/svg/SVGImageElement.cpp:
52800        * ksvg2/svg/SVGImageElement.h:
52801        * ksvg2/svg/SVGLangSpace.cpp:
52802        * ksvg2/svg/SVGLangSpace.h:
52803        * ksvg2/svg/SVGLength.cpp:
52804        * ksvg2/svg/SVGLength.h:
52805        * ksvg2/svg/SVGLengthList.cpp:
52806        * ksvg2/svg/SVGLengthList.h:
52807        * ksvg2/svg/SVGLineElement.cpp:
52808        * ksvg2/svg/SVGLineElement.h:
52809        * ksvg2/svg/SVGLinearGradientElement.cpp:
52810        * ksvg2/svg/SVGLinearGradientElement.h:
52811        * ksvg2/svg/SVGList.h:
52812        * ksvg2/svg/SVGListTraits.h:
52813        * ksvg2/svg/SVGLocatable.cpp:
52814        (WebCore::SVGLocatable::nearestViewportElement):
52815        (WebCore::SVGLocatable::farthestViewportElement):
52816        * ksvg2/svg/SVGLocatable.h:
52817        * ksvg2/svg/SVGMPathElement.cpp:
52818        * ksvg2/svg/SVGMPathElement.h:
52819        * ksvg2/svg/SVGMarkerElement.cpp:
52820        * ksvg2/svg/SVGMarkerElement.h:
52821        * ksvg2/svg/SVGMaskElement.cpp:
52822        * ksvg2/svg/SVGMaskElement.h:
52823        * ksvg2/svg/SVGMetadataElement.cpp:
52824        * ksvg2/svg/SVGMetadataElement.h:
52825        * ksvg2/svg/SVGNumberList.cpp:
52826        * ksvg2/svg/SVGNumberList.h:
52827        * ksvg2/svg/SVGPaint.cpp:
52828        * ksvg2/svg/SVGPaint.h:
52829        * ksvg2/svg/SVGParserUtilities.cpp:
52830        * ksvg2/svg/SVGParserUtilities.h:
52831        * ksvg2/svg/SVGPathElement.cpp:
52832        * ksvg2/svg/SVGPathElement.h:
52833        * ksvg2/svg/SVGPathSeg.h:
52834        * ksvg2/svg/SVGPathSegArc.cpp:
52835        * ksvg2/svg/SVGPathSegArc.h:
52836        * ksvg2/svg/SVGPathSegClosePath.cpp:
52837        * ksvg2/svg/SVGPathSegClosePath.h:
52838        * ksvg2/svg/SVGPathSegCurvetoCubic.cpp:
52839        * ksvg2/svg/SVGPathSegCurvetoCubic.h:
52840        * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp:
52841        * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
52842        * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp:
52843        * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
52844        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
52845        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
52846        * ksvg2/svg/SVGPathSegLineto.cpp:
52847        * ksvg2/svg/SVGPathSegLineto.h:
52848        * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp:
52849        * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
52850        * ksvg2/svg/SVGPathSegLinetoVertical.cpp:
52851        * ksvg2/svg/SVGPathSegLinetoVertical.h:
52852        * ksvg2/svg/SVGPathSegList.cpp:
52853        * ksvg2/svg/SVGPathSegList.h:
52854        * ksvg2/svg/SVGPathSegMoveto.cpp:
52855        * ksvg2/svg/SVGPathSegMoveto.h:
52856        * ksvg2/svg/SVGPatternElement.cpp:
52857        * ksvg2/svg/SVGPatternElement.h:
52858        * ksvg2/svg/SVGPointList.cpp:
52859        * ksvg2/svg/SVGPointList.h:
52860        * ksvg2/svg/SVGPolyElement.cpp:
52861        * ksvg2/svg/SVGPolyElement.h:
52862        * ksvg2/svg/SVGPolygonElement.cpp:
52863        * ksvg2/svg/SVGPolygonElement.h:
52864        * ksvg2/svg/SVGPolylineElement.cpp:
52865        * ksvg2/svg/SVGPolylineElement.h:
52866        * ksvg2/svg/SVGPreserveAspectRatio.cpp:
52867        * ksvg2/svg/SVGPreserveAspectRatio.h:
52868        * ksvg2/svg/SVGRadialGradientElement.cpp:
52869        * ksvg2/svg/SVGRadialGradientElement.h:
52870        * ksvg2/svg/SVGRectElement.cpp:
52871        * ksvg2/svg/SVGRectElement.h:
52872        * ksvg2/svg/SVGRenderingIntent.h:
52873        * ksvg2/svg/SVGSVGElement.cpp:
52874        * ksvg2/svg/SVGSVGElement.h:
52875        * ksvg2/svg/SVGScriptElement.cpp:
52876        * ksvg2/svg/SVGScriptElement.h:
52877        * ksvg2/svg/SVGSetElement.cpp:
52878        * ksvg2/svg/SVGSetElement.h:
52879        * ksvg2/svg/SVGStopElement.cpp:
52880        * ksvg2/svg/SVGStopElement.h:
52881        * ksvg2/svg/SVGStringList.cpp:
52882        * ksvg2/svg/SVGStringList.h:
52883        * ksvg2/svg/SVGStylable.cpp:
52884        * ksvg2/svg/SVGStylable.h:
52885        * ksvg2/svg/SVGStyleElement.cpp:
52886        * ksvg2/svg/SVGStyleElement.h:
52887        * ksvg2/svg/SVGStyledElement.cpp:
52888        (WebCore::SVGStyledElement::notifyAttributeChange):
52889        * ksvg2/svg/SVGStyledElement.h:
52890        * ksvg2/svg/SVGStyledLocatableElement.cpp:
52891        * ksvg2/svg/SVGStyledLocatableElement.h:
52892        * ksvg2/svg/SVGStyledTransformableElement.cpp:
52893        * ksvg2/svg/SVGStyledTransformableElement.h:
52894        * ksvg2/svg/SVGSwitchElement.cpp:
52895        * ksvg2/svg/SVGSwitchElement.h:
52896        * ksvg2/svg/SVGSymbolElement.cpp:
52897        * ksvg2/svg/SVGSymbolElement.h:
52898        * ksvg2/svg/SVGTRefElement.cpp:
52899        * ksvg2/svg/SVGTRefElement.h:
52900        * ksvg2/svg/SVGTSpanElement.cpp:
52901        * ksvg2/svg/SVGTSpanElement.h:
52902        * ksvg2/svg/SVGTests.cpp:
52903        * ksvg2/svg/SVGTests.h:
52904        * ksvg2/svg/SVGTextContentElement.cpp:
52905        * ksvg2/svg/SVGTextContentElement.h:
52906        * ksvg2/svg/SVGTextElement.cpp:
52907        * ksvg2/svg/SVGTextElement.h:
52908        * ksvg2/svg/SVGTextPositioningElement.cpp:
52909        * ksvg2/svg/SVGTextPositioningElement.h:
52910        * ksvg2/svg/SVGTitleElement.cpp:
52911        * ksvg2/svg/SVGTitleElement.h:
52912        * ksvg2/svg/SVGTransform.cpp:
52913        * ksvg2/svg/SVGTransform.h:
52914        * ksvg2/svg/SVGTransformDistance.cpp:
52915        * ksvg2/svg/SVGTransformDistance.h:
52916        * ksvg2/svg/SVGTransformList.cpp:
52917        * ksvg2/svg/SVGTransformList.h:
52918        * ksvg2/svg/SVGTransformable.cpp:
52919        * ksvg2/svg/SVGTransformable.h:
52920        * ksvg2/svg/SVGURIReference.cpp:
52921        * ksvg2/svg/SVGURIReference.h:
52922        * ksvg2/svg/SVGUnitTypes.h:
52923        * ksvg2/svg/SVGUseElement.cpp:
52924        * ksvg2/svg/SVGUseElement.h:
52925        * ksvg2/svg/SVGUseElement.idl:
52926        * ksvg2/svg/SVGViewElement.cpp:
52927        * ksvg2/svg/SVGViewElement.h:
52928        * ksvg2/svg/SVGZoomAndPan.cpp:
52929        * ksvg2/svg/SVGZoomAndPan.h:
52930        * ksvg2/svg/svgtags.in:
52931        * loader/Cache.cpp:
52932        (WebCore::createResource):
52933        (WebCore::Cache::getStatistics):
52934        * loader/Cache.h:
52935        * loader/CachedImage.cpp:
52936        (WebCore::CachedImage::createImage):
52937        * loader/CachedResource.h:
52938        (WebCore::CachedResource::):
52939        * loader/CachedResourceClient.h:
52940        * loader/CachedXBLDocument.cpp:
52941        * loader/CachedXBLDocument.h:
52942        * loader/CachedXSLStyleSheet.cpp:
52943        * loader/CachedXSLStyleSheet.h:
52944        * loader/DocLoader.cpp:
52945        * loader/DocLoader.h:
52946        * page/DOMWindow.idl:
52947        * page/EventHandler.cpp:
52948        (WebCore::EventHandler::handleMouseMoveEvent):
52949        (WebCore::selectCursor):
52950        * page/Frame.cpp:
52951        (WebCore::Frame::Frame):
52952        * page/PageState.cpp:
52953        (WebCore::PageState::PageState):
52954        (WebCore::PageState::restore):
52955        * platform/MimeTypeRegistry.cpp:
52956        (WebCore::initialiseSupportedNonImageMimeTypes):
52957        * platform/graphics/FloatPoint3D.cpp:
52958        * platform/graphics/FloatPoint3D.h:
52959        * platform/graphics/ImageBuffer.cpp:
52960        (WebCore::ImageBuffer::renderSubtreeToImage):
52961        * platform/graphics/svg/SVGImage.cpp:
52962        * platform/graphics/svg/SVGImage.h:
52963        * platform/graphics/svg/SVGImageEmptyClients.h:
52964        * platform/graphics/svg/SVGPaintServer.cpp:
52965        * platform/graphics/svg/SVGPaintServer.h:
52966        * platform/graphics/svg/SVGPaintServerGradient.cpp:
52967        * platform/graphics/svg/SVGPaintServerGradient.h:
52968        * platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
52969        * platform/graphics/svg/SVGPaintServerLinearGradient.h:
52970        * platform/graphics/svg/SVGPaintServerPattern.cpp:
52971        * platform/graphics/svg/SVGPaintServerPattern.h:
52972        * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
52973        * platform/graphics/svg/SVGPaintServerRadialGradient.h:
52974        * platform/graphics/svg/SVGPaintServerSolid.cpp:
52975        * platform/graphics/svg/SVGPaintServerSolid.h:
52976        * platform/graphics/svg/SVGResource.cpp:
52977        * platform/graphics/svg/SVGResource.h:
52978        * platform/graphics/svg/SVGResourceClipper.cpp:
52979        * platform/graphics/svg/SVGResourceClipper.h:
52980        * platform/graphics/svg/SVGResourceFilter.cpp:
52981        * platform/graphics/svg/SVGResourceFilter.h:
52982        * platform/graphics/svg/SVGResourceMarker.cpp:
52983        * platform/graphics/svg/SVGResourceMarker.h:
52984        * platform/graphics/svg/SVGResourceMasker.cpp:
52985        * platform/graphics/svg/SVGResourceMasker.h:
52986        * platform/graphics/svg/cg/CgSupport.cpp:
52987        * platform/graphics/svg/cg/CgSupport.h:
52988        * platform/graphics/svg/cg/RenderPathCg.cpp:
52989        * platform/graphics/svg/cg/SVGPaintServerCg.cpp:
52990        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
52991        * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
52992        * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp:
52993        * platform/graphics/svg/cg/SVGResourceClipperCg.cpp:
52994        * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
52995        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
52996        * platform/graphics/svg/filters/SVGDistantLightSource.h:
52997        * platform/graphics/svg/filters/SVGFEBlend.cpp:
52998        * platform/graphics/svg/filters/SVGFEBlend.h:
52999        * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
53000        * platform/graphics/svg/filters/SVGFEColorMatrix.h:
53001        * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
53002        * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
53003        * platform/graphics/svg/filters/SVGFEComposite.cpp:
53004        * platform/graphics/svg/filters/SVGFEComposite.h:
53005        * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
53006        * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
53007        * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
53008        * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
53009        * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
53010        * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
53011        * platform/graphics/svg/filters/SVGFEFlood.cpp:
53012        * platform/graphics/svg/filters/SVGFEFlood.h:
53013        * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
53014        * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
53015        * platform/graphics/svg/filters/SVGFEImage.cpp:
53016        * platform/graphics/svg/filters/SVGFEImage.h:
53017        * platform/graphics/svg/filters/SVGFEMerge.cpp:
53018        * platform/graphics/svg/filters/SVGFEMerge.h:
53019        * platform/graphics/svg/filters/SVGFEMorphology.cpp:
53020        * platform/graphics/svg/filters/SVGFEMorphology.h:
53021        * platform/graphics/svg/filters/SVGFEOffset.cpp:
53022        * platform/graphics/svg/filters/SVGFEOffset.h:
53023        * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
53024        * platform/graphics/svg/filters/SVGFESpecularLighting.h:
53025        * platform/graphics/svg/filters/SVGFETile.h:
53026        * platform/graphics/svg/filters/SVGFETurbulence.cpp:
53027        * platform/graphics/svg/filters/SVGFETurbulence.h:
53028        * platform/graphics/svg/filters/SVGFilterEffect.cpp:
53029        * platform/graphics/svg/filters/SVGFilterEffect.h:
53030        * platform/graphics/svg/filters/SVGLightSource.cpp:
53031        * platform/graphics/svg/filters/SVGLightSource.h:
53032        * platform/graphics/svg/filters/SVGPointLightSource.h:
53033        * platform/graphics/svg/filters/SVGSpotLightSource.h:
53034        * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
53035        * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
53036        * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
53037        * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
53038        * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
53039        * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
53040        * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
53041        * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm:
53042        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
53043        * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm:
53044        * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
53045        * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
53046        * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm:
53047        * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
53048        * platform/graphics/svg/filters/cg/SVGFETileCg.mm:
53049        * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm:
53050        * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
53051        * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
53052        * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
53053        * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
53054        * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
53055        * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp:
53056        * platform/graphics/svg/qt/SVGResourceClipperQt.cpp:
53057        * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
53058        * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
53059        * rendering/HitTestResult.cpp:
53060        (WebCore::HitTestResult::absoluteImageURL):
53061        (WebCore::HitTestResult::absoluteLinkURL):
53062        (WebCore::HitTestResult::isLiveLink):
53063        * rendering/RenderForeignObject.cpp:
53064        * rendering/RenderForeignObject.h:
53065        * rendering/RenderLayer.cpp:
53066        (WebCore::RenderLayer::isTransparent):
53067        * rendering/RenderObject.cpp:
53068        (WebCore::RenderObject::containingBlock):
53069        * rendering/RenderObject.h:
53070        * rendering/RenderPath.cpp:
53071        * rendering/RenderPath.h:
53072        * rendering/RenderSVGBlock.cpp:
53073        * rendering/RenderSVGBlock.h:
53074        * rendering/RenderSVGContainer.cpp:
53075        * rendering/RenderSVGContainer.h:
53076        * rendering/RenderSVGGradientStop.cpp:
53077        * rendering/RenderSVGGradientStop.h:
53078        * rendering/RenderSVGHiddenContainer.cpp:
53079        * rendering/RenderSVGHiddenContainer.h:
53080        * rendering/RenderSVGImage.cpp:
53081        * rendering/RenderSVGImage.h:
53082        * rendering/RenderSVGInline.cpp:
53083        * rendering/RenderSVGInline.h:
53084        * rendering/RenderSVGInlineText.cpp:
53085        * rendering/RenderSVGInlineText.h:
53086        * rendering/RenderSVGTSpan.cpp:
53087        * rendering/RenderSVGTSpan.h:
53088        * rendering/RenderSVGText.cpp:
53089        * rendering/RenderSVGText.h:
53090        * rendering/RenderStyle.cpp:
53091        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
53092        (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
53093        (WebCore::StyleRareNonInheritedData::operator==):
53094        (WebCore::RenderStyle::RenderStyle):
53095        (WebCore::RenderStyle::inheritFrom):
53096        (WebCore::RenderStyle::operator==):
53097        (WebCore::RenderStyle::inheritedNotEqual):
53098        (WebCore::RenderStyle::diff):
53099        * rendering/RenderStyle.h:
53100        * rendering/RenderText.cpp:
53101        (WebCore::RenderText::setStyle):
53102        (WebCore::RenderText::setTextInternal):
53103        * rendering/RenderTreeAsText.cpp:
53104        (WebCore::write):
53105        (WebCore::externalRepresentation):
53106        * rendering/SVGInlineFlowBox.cpp:
53107        * rendering/SVGInlineFlowBox.h:
53108        * rendering/SVGRenderTreeAsText.cpp:
53109        * rendering/SVGRenderTreeAsText.h:
53110        * rendering/SVGRootInlineBox.cpp:
53111        * rendering/SVGRootInlineBox.h:
53112        * rendering/bidi.cpp:
53113        (WebCore::shouldPreserveNewline):
53114        (WebCore::RenderBlock::findNextLineBreak):
53115        * webcore-base.bkl:
53116        * xml/NativeXPathNSResolver.cpp:
53117        * xml/NativeXPathNSResolver.h:
53118        * xml/XPathEvaluator.cpp:
53119        * xml/XPathEvaluator.h:
53120        * xml/XPathExpression.cpp:
53121        * xml/XPathExpression.h:
53122        * xml/XPathExpressionNode.cpp:
53123        * xml/XPathExpressionNode.h:
53124        * xml/XPathFunctions.cpp:
53125        * xml/XPathFunctions.h:
53126        * xml/XPathGrammar.y:
53127        * xml/XPathNSResolver.cpp:
53128        * xml/XPathNSResolver.h:
53129        * xml/XPathNamespace.cpp:
53130        * xml/XPathNamespace.h:
53131        * xml/XPathParser.cpp:
53132        * xml/XPathParser.h:
53133        * xml/XPathPath.cpp:
53134        * xml/XPathPath.h:
53135        * xml/XPathPredicate.cpp:
53136        * xml/XPathPredicate.h:
53137        * xml/XPathResult.cpp:
53138        * xml/XPathResult.h:
53139        * xml/XPathStep.cpp:
53140        * xml/XPathStep.h:
53141        * xml/XPathUtil.cpp:
53142        * xml/XPathUtil.h:
53143        * xml/XPathValue.cpp:
53144        * xml/XPathValue.h:
53145        * xml/XPathVariableReference.cpp:
53146        * xml/XPathVariableReference.h:
53147        * xml/XSLImportRule.cpp:
53148        * xml/XSLImportRule.h:
53149        * xml/XSLStyleSheet.cpp:
53150        * xml/XSLStyleSheet.h:
53151        * xml/XSLTProcessor.cpp:
53152        * xml/XSLTProcessor.h:
53153
531542007-02-25  Mitz Pettel  <mitz@webkit.org>
53155
53156        Reviewed by David Hyatt.
53157
53158        - fix http://bugs.webkit.org/show_bug.cgi?id=12886
53159          Crash with Scriptalicious javascript library
53160
53161        Test: fast/dynamic/float-withdrawal.html
53162
53163        * rendering/RenderBlock.cpp:
53164        (WebCore::RenderBlock::layoutBlockChildren): Detect when a child block had
53165        intruding floats in a previous layout, and in that case force it to relayout.
53166
531672007-02-25  David Hyatt  <hyatt@apple.com>
53168
53169        Revert my change to the default fill color.  Just set the color to transparent explicitly when
53170        drawing textarea resizer frames.
53171
53172        * platform/graphics/GraphicsContext.cpp:
53173        (WebCore::GraphicsContextState::GraphicsContextState):
53174        * rendering/RenderLayer.cpp:
53175        (WebCore::RenderLayer::paintOverflowControls):
53176
531772007-02-25  Sam Weinig  <sam@webkit.org>
53178
53179        Update forgotten files.
53180
53181        * rendering/RenderLayer.cpp:
53182        (WebCore::RenderLayer::updateLayerPosition):
53183
531842007-02-25  David Hyatt  <hyatt@apple.com>
53185
53186        Fix for regression caused by changing the containing block of positioned elements with no positioned ancestor
53187        to be the initial containing block (represented in our tree by the RenderView).  Rework RenderView's layout
53188        to have very few special cases.   Now it will just relayout its children when the width/height of the
53189        view actually changes.  Positioned elements no longer get a special additional layout, since width/height
53190        adjustments are caught by the base class already anyway.
53191
53192        Reviewed by mjs, darin
53193
53194        * rendering/RenderBlock.cpp:
53195        (WebCore::RenderBlock::layoutBlock):
53196        * rendering/RenderFlexibleBox.cpp:
53197        (WebCore::RenderFlexibleBox::layoutBlock):
53198        (WebCore::RenderFlexibleBox::layoutVerticalBox):
53199        * rendering/RenderView.cpp:
53200        (WebCore::RenderView::RenderView):
53201        (WebCore::RenderView::layout):
53202        * rendering/RenderView.h:
53203
532042007-02-25  Maciej Stachowiak  <mjs@apple.com>
53205
53206        Not reviewed, build fix.
53207
53208        - fix build breakage
53209
53210        * platform/gdk/ScrollViewGdk.cpp:
53211        (WebCore::ScrollView::fullyClippedContentRect):
53212        * platform/qt/ScrollViewQt.cpp:
53213        (WebCore::ScrollView::fullyClippedContentRect):
53214
532152007-02-24  Maciej Stachowiak  <mjs@apple.com>
53216
53217        Reviewed by Adam.
53218
53219        - fixed layout test failure in fast/overflow/scrollRevealButton
53220        
53221        I added a new ScrollView method, fullyClippedContentRect, that vies the content rect
53222        as clipped by all ancestor scroll views, not just this one. Currently it only works
53223        correctly on mac however. visibleContentRect, only accounting for the clipping from
53224        this particular scroll view, is sufficient for most purposes.
53225
53226        * page/Frame.cpp:
53227        (WebCore::Frame::visibleSelectionRect):
53228        (WebCore::Frame::setIsActive):
53229        (WebCore::Frame::markAllMatchesForText):
53230        * platform/ScrollView.h:
53231        * platform/gdk/ScrollViewGdk.cpp:
53232        (WebCore::ScrolView::fullyClippedContentRect):
53233        * platform/mac/ScrollViewMac.mm:
53234        (WebCore::ScrollView::fullyClippedContentRect):
53235        * platform/qt/ScrollViewQt.cpp:
53236        (WebCore::ScrolView::fullyClippedContentRect):
53237        * rendering/RenderLayer.cpp:
53238        (WebCore::RenderLayer::scrollRectToVisible):
53239
532402007-02-24  Adam Roben  <aroben@apple.com>
53241
53242        Reviewed by Steve.
53243
53244        "Look Up in Dictionary" context menu item should be Mac-only for now,
53245        since it's only implemented on that platform (<rdar://problem/5021468>)
53246
53247        * platform/ContextMenu.cpp:
53248        (WebCore::ContextMenu::populate): Wrap all instances of the dictionary
53249        menu item in #if PLATFORM(MAC).
53250
532512007-02-24  Geoffrey Garen  <ggaren@apple.com>
53252
53253        Reviewed by Darin Adler.
53254        
53255        Fixed <rdar://problem/4987649> leaks in BidiRun::operator new seen while 
53256        running WebKit unit tests
53257        
53258        In bidi.cpp, some functions allocate BidiRuns and put them in a global data
53259        structure, while others uses the BidiRuns in the global data structure. 
53260        The caller is responsible for knowing which functions may allocate runs
53261        and which may use them, and calling deleteBidiRuns() at the appropriate time.
53262
53263        The fix is to add some calls to deleteBidiRuns() where they were missing.
53264        
53265        I also added a BidiRun counter because these two leaks were introduced by
53266        our two bidi.cpp experts, so the odds that leaks will creep in again
53267        in the future seem pretty high.
53268
53269        * rendering/bidi.cpp:
53270        (WebCore::RenderBlock::bidiReorderCharacters): Added  missing call to
53271        deleteBidiRuns().
53272        (WebCore::BidiRunCounter::~BidiRunCounter):
53273        (WebCore::BidiRun::operator delete):
53274        (WebCore::RenderBlock::layoutInlineChildren): Added missing call to
53275        deleteBidiRuns(). Moved call to deleteBidiRuns() to same scope as call to
53276        bidiReorderLine(), to emphasize that they go together like new/delete.
53277        In theory, the old code was just as good, but I didn't want to rely on
53278        theory.
53279
532802007-02-24  David Harrison  <harrison@apple.com>
53281
53282        Reviewed by Kevin.
53283
53284        <rdar://problem/4961431> Image with empty string alt tag should be ignored
53285
53286        * bridge/mac/WebCoreAXObject.mm:
53287        (-[WebCoreAXObject accessibilityIsIgnored]):
53288        Ignore img element that has an alt attribute, but that string is empty.
53289
532902007-02-24  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
53291
53292        Reviewed by Adam Roben.
53293
53294        Gdk improvements.
53295
53296        * platform/gdk/FrameGdk.cpp: only scroll on keydown, not both keydown and keyup.
53297        (WebCore::FrameGdk::keyPress):
53298        (WebCore::FrameGdk::handleGdkEvent):
53299        (WebCore::Frame::print):
53300        (WebCore::Frame::issueTransposeCommand):
53301        (WebCore::Frame::respondToChangedSelection):
53302        (WebCore::Frame::cleanupPlatformScriptObjects):
53303        (WebCore::Frame::dragImageForSelection):
53304        * platform/network/gdk/ResourceHandleManager.cpp: don't free memory that
53305        doesn't belong to us.
53306        (WebCore::ResourceHandleManager::downloadTimerCallback):
53307
533082007-02-23  Kevin Decker <kdecker@apple.com>
53309
53310        Reviewed by Anders.
53311
53312        Fixed: <rdar://problem/4971226> REGRESSION: Replying to closed HTML mail message does not quote original body (12503)
53313        
53314        There were two problems here:
53315        
53316        * page/mac/WebCoreFrameBridge.mm:
53317        (+[WebCoreFrameBridge stringWithData:textEncodingName:]): The old code said  "if there is no text encoding name than
53318         assume WindowsLatin1 (iso-8859-1) and try to decode that". That's not sufficient because it doesn't handle the fallback
53319         case for unknown encodings. This method will now attempt to decode using WindowsLatin1 for unknown encoding types.
53320        * platform/mac/mac-encodings.txt: Added the missing "macroman" encoding type. 
53321
533222007-02-23  Mitz Pettel  <mitz@webkit.org>
53323
53324        Reviewed by Maciej.
53325
53326        - fix http://bugs.webkit.org/show_bug.cgi?id=12856
53327          REGRESSION (r13685): Canceling the suggestion popup does not revert the change
53328
53329        * editing/ReplaceSelectionCommand.cpp:
53330        (WebCore::ReplaceSelectionCommand::doApply): If the fragment to be inserted
53331        is empty, first delete the selection, and only then bail out. 
53332
533332007-02-23  Anders Carlsson  <acarlsson@apple.com>
53334
53335        Reviewed by Adam.
53336
53337        <rdar://problem/5001923> 
53338        REGRESSION: Crash when navigating forward from an error page in WebFrameLoaderClient::dispatchDidReceiveContentLength
53339
53340        Fix an error that was introduced in revision r18541. We should check if the provisional document loader 
53341        has an unreachable URL, not the actual document loader.
53342        
53343        * loader/FrameLoader.cpp:
53344        (WebCore::FrameLoader::updateHistoryForCommit):
53345
533462007-02-23  Mitz Pettel  <mitz@webkit.org>
53347
53348        Reviewed by Darin.
53349
53350        - fix http://bugs.webkit.org/show_bug.cgi?id=12823
53351          REGRESSION(r16968-16977): unable to prevent selection by cancelling "selectstart" event
53352
53353        Test: fast/events/selectstart-during-autoscroll.html
53354
53355        * rendering/RenderLayer.cpp:
53356        (WebCore::RenderLayer::autoscroll): Invoke the renderer's shouldSelect() --
53357        which dispatches the selection DOM event and gives it a chance to cancel
53358        the selection -- before updating the selection during autoscroll.
53359
533602007-02-23  Oliver Hunt  <oliver@apple.com>
53361
53362        Reviewed by Adam.
53363
53364        Fix for http://bugs.webkit.org/show_bug.cgi?id=12870
53365
53366        It turns out short circuiting DragData::containsURL() was bad
53367 
53368        * manual-tests/directory-drop-on-view.html: Added.
53369        * platform/mac/DragDataMac.mm:
53370        (WebCore::DragData::containsURL):
53371
533722007-02-23  Maciej Stachowiak  <mjs@apple.com>
53373
53374        Reviewed by Mitz.
53375
53376        - 12.5% speedup on BenchJS test 6
53377        Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
53378        
53379        It turns out that calling documentVisibleRect on an NSScrollView is pretty expensive,
53380        and calling visibleRect even more so. Take measures to call them less often.
53381
53382        * platform/mac/ScrollViewMac.mm:
53383        (WebCore::ScrollView::visibleContentRect): Use documentVisibleRect when possible.
53384        (WebCore::ScrollView::updateContents): Use visibleContentRect to be able to use
53385        documentVisibleRect when possible.
53386        * rendering/RenderView.cpp:
53387        (WebCore::RenderView::repaintViewRectangle): Don't get or intersect with viewRect
53388        if we don't have a parent frame, since the ScrollView will do that anyway. Also,
53389        don't get contentX and contentY separately since they are in the viewRect already.
53390        (WebCore::RenderView::viewRect): Use visibleContentRect instead of getting each
53391        coordinate individually, to avoid calling documentVisibleRect repeatedly.
53392
533932007-02-23  Maciej Stachowiak  <mjs@apple.com>
53394
53395        Reviewed by Mitz.
53396
53397        - 2% speedup on BenchJS test 6
53398        Partial fix for http://bugs.webkit.org/show_bug.cgi?id=12866
53399
53400        * css/CSSPrimitiveValue.cpp:
53401        (WebCore::CSSPrimitiveValue::cssText): Use format() instead of
53402        number() followed by append of a constant string.
53403
534042007-02-22  George Staikos  <staikos@kde.org>
53405
53406        Fix the Qt build.
53407
53408        * platform/qt/ClipboardQt.cpp:
53409        (WebCore::ClipboardQt::ClipboardQt):
53410
534112007-02-22  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
53412
53413        Reviewed by Adam Roben, who never sleeps.
53414
53415        To avoid code duplication, move notImplementedGdk() macro to a separate
53416        header file. Remove existing notImplementedGdk() macros and replace
53417        remaining notImplemented() to notImplementedGdk() in gdk code.
53418
53419        * loader/gdk/DocumentLoaderGdk.cpp:
53420        (WebCore::DocumentLoader::getResponseModifiedHeader):
53421        * loader/gdk/FrameLoaderClientGdk.cpp:
53422        (WebCore::FrameLoaderClientGdk::hasWebView):
53423        (WebCore::FrameLoaderClientGdk::hasFrameView):
53424        * page/gdk/ContextMenuClientGdk.cpp:
53425        (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
53426        (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
53427        (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
53428        (WebCore::ContextMenuClientGdk::downloadURL):
53429        (WebCore::ContextMenuClientGdk::copyImageToClipboard):
53430        (WebCore::ContextMenuClientGdk::searchWithGoogle):
53431        (WebCore::ContextMenuClientGdk::lookUpInDictionary):
53432        (WebCore::ContextMenuClientGdk::speak):
53433        (WebCore::ContextMenuClientGdk::stopSpeaking):
53434        * page/gdk/EventHandlerGdk.cpp:
53435        * platform/gdk/CursorGdk.cpp:
53436        (WebCore::Cursor::Cursor):
53437        * platform/gdk/EditorClientGdk.cpp:
53438        * platform/gdk/NotImplementedGdk.h: Added.
53439        * platform/gdk/PopupMenuGdk.cpp:
53440        (WebCore::PopupMenu::PopupMenu):
53441        (WebCore::PopupMenu::~PopupMenu):
53442        (WebCore::PopupMenu::show):
53443        (WebCore::PopupMenu::hide):
53444        (WebCore::PopupMenu::updateFromElement):
53445        * platform/gdk/RenderThemeGdk.cpp:
53446        * platform/gdk/ScreenGdk.cpp:
53447        (WebCore::screenDepth):
53448        (WebCore::screenDepthPerComponent):
53449        (WebCore::screenIsMonochrome):
53450        (WebCore::screenRect):
53451        (WebCore::screenAvailableRect):
53452        * platform/gdk/TemporaryLinkStubs.cpp:
53453        * platform/graphics/gdk/ImageGdk.cpp:
53454        (WebCore::Image::drawPattern):
53455        * platform/network/gdk/ResourceHandleCurl.cpp:
53456        (WebCore::ResourceHandle::setDefersLoading):
53457        * platform/network/gdk/ResourceHandleManager.cpp:
53458        (WebCore::ResourceHandleManager::setupPUT):
53459        (WebCore::ResourceHandleManager::setupPOST):
53460
534612007-02-22  Feng Qian  <feng@chromium.org>
53462
53463        Reviewed by Maciej.
53464
53465        - Patch for http://bugs.webkit.org/show_bug.cgi?id=12850
53466          Leaks >10k objects
53467
53468        and
53469
53470        - http://bugs.webkit.org/show_bug.cgi?id=12853
53471          add a EventListener leak counter
53472
53473        Problem: RemoveEventListener leaks memory if the listener is not
53474        registered.
53475        Fix: Added Window::findJSEventListener function w/o creating a 
53476        JSEventListener; Renamed getJSEventListener to findOrCreateJSEventListener;
53477
53478        As an enhancement, added a leak counter for EventListeners.
53479
53480        Added a test case, LayoutTests/fast/events/remove-event-listener.html.
53481
53482        * WebCore/bindings/js/kjs_dom.cpp:
53483        * WebCore/bindings/js/kjs_window.h:
53484        * WebCore/bindings/js/kjs_window.cpp:
53485        * WebCore/bindings/js/kjs_event.cpp: Add a leak counter.
53486        * WebCore/bindings/js/JSXMLHttpRequest.cpp:
53487        * LayoutTests/fast/events/remove-event-listener.html:
53488
534892007-02-22  Anders Carlsson  <acarlsson@apple.com>
53490
53491        Reviewed by Geoff.
53492
53493        <rdar://problem/4998203> 
53494        REGRESSION: Back-forward list gets messed up when navigating to error pages with back-forward cache turned off
53495        
53496        * loader/FrameLoader.cpp:
53497        (WebCore::FrameLoader::load):
53498        Remove call to setPolicyDocumentLoader(), the policy document loader is set immediately after, and setting it before 
53499        calling shouldReloadToHandleUnreachableURL causes us to get the wrong URL.
53500        
53501        (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
53502        Check if the unreachable URL is equal to the document loader's request.
53503        
53504        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
53505        Check the provisional document loader's unreachable URL.
53506
535072007-02-22  Justin Garcia  <justin.garcia@apple.com>
53508
53509        Reviewed by darin
53510        
53511        <rdar://problem/5007143>
53512        REGRESSION: WebKit doesn't remember horizontal position of caret when moving forward by line
53513
53514        * editing/SelectionController.cpp:
53515        (WebCore::SelectionController::SelectionController): Initialize 
53516        m_xPosForVerticalArrowNavigation.
53517        (WebCore::SelectionController::setSelection): Call the new setter.
53518        (WebCore::SelectionController::modifyMovingRightForward): For line
53519        and paragraph granularities, use the saved xPosForVerticalArrowNavigation 
53520        even if the old selection was a range. Use the x position of the 
53521        *start*, not the end of the selection if there is no saved 
53522        xPosForVerticalArrowNavigation.  This matches TextEdit's behavior.
53523        (WebCore::SelectionController::modifyMovingLeftBackward): For line
53524        and paragraph granularities, use the saved xPosForVerticalArrowNavigation 
53525        even if the old selection was a range.
53526        (WebCore::SelectionController::modify): Preserve the xPosForVerticalArrowNavigation
53527        for line and paragraph granularities.
53528        (WebCore::SelectionController::xPosForVerticalArrowNavigation): Removed
53529        the recalc bool because it is now always false.
53530        (WebCore::SelectionController::setXPosForVerticalArrowNavigation): Added.
53531        * editing/SelectionController.h: Moved m_xPosForVerticalArrowNavigation
53532        from Frame.
53533        * page/Frame.cpp: Moved m_xPosForVerticalArrowNavigation to SelectionController.
53534        * page/Frame.h: Ditto.
53535        * page/FramePrivate.h: Ditto.
53536
535372007-02-22  Beth Dakin  <bdakin@apple.com>
53538
53539        Reviewed by Adam. Manual test added.
53540
53541        Fix for http://bugs.webkit.org/show_bug.cgi?id=12399 REGRESSION: 
53542        Unable to prevent default context menu from appearing. <rdar://
53543        problem/5017416>
53544
53545        This problem appeared because of two facets of the current context 
53546        menu design. First, all context menu events are now considered to 
53547        be "swallowed" since we take care of building up the regular 
53548        context menu through the defaultEventHandler(). Second, the context 
53549        menu controller holds onto it's context menu until a new one is 
53550        created. There would be logistical problems changing this since 
53551        AppKit relies on the menu being around for as long as it is
53552        visible on the screen and we don't get any notification once the 
53553        menu is popped-down.
53554
53555        This patch fixes the problem by giving WebKit a way to clear the 
53556        controller's context menu. WebKit now clears the menu before it 
53557        propagates a new context menu event through the DOM.
53558
53559        * WebCore.exp:
53560        * manual-tests/DOMContextMenuEvent.html: Added.
53561        * page/ContextMenuController.cpp:
53562        (WebCore::ContextMenuController::clearContextMenu):
53563        * page/ContextMenuController.h:
53564
535652007-02-22  John Sullivan  <sullivan@apple.com>
53566
53567        Reviewed by Kevin and Adele
53568        
53569        - fixed <rdar://problem/4129417> Need final art for textarea's resize corner
53570        
53571        This probably broke some layout pixel tests since the image changed. I'm going to
53572        track those down in a moment (non-trivial since there are a bunch failing for other
53573        reasons).
53574
53575        * Resources/textAreaResizeCorner.tiff:
53576        new art
53577
53578        * Resources/deleteButton.tiff:
53579        * Resources/deleteButtonPressed.tiff:
53580        these got smaller when I ran compress-tiffs on this directory
53581        
535822007-02-22  Oliver Hunt  <oliver@apple.com>
53583
53584        Reviewed by Ada, Lou and Steve.
53585
53586        Moving basic components of ClipboardMac to Clipboard, 
53587        last of the basic common code merge will come later (namely setting the 
53588        drag element/image).
53589        
53590        Tidying up in DragController including a few bad PassRefPtr uses and
53591        removing unnecessary accessors.  Also initialise fields properly to
53592        fix <rdar:/problems/5014889>
53593
53594        * dom/Clipboard.cpp:
53595        (WebCore::Clipboard::Clipboard):
53596          New constructor
53597          
53598        * dom/Clipboard.h:
53599        (WebCore::Clipboard::isForDragging):
53600        (WebCore::Clipboard::dragLocation):
53601        (WebCore::Clipboard::dragImage):
53602        (WebCore::Clipboard::dragImageElement):
53603          Exposing common data
53604          
53605        * page/DragController.cpp:
53606        (WebCore::DragController::DragController):
53607          Initialise m_isHandlingDrag (oops)
53608        (WebCore::documentFragmentFromDragData):
53609        (WebCore::DragController::tryDocumentDrag):
53610          Fixing PassRefPtr misuse
53611        (WebCore::DragController::canProcessDrag):
53612        (WebCore::DragController::startDrag):
53613        (WebCore::DragController::doSystemDrag):
53614          Make sure we're using the correct coordinate space
53615          
53616        * page/EventHandler.cpp:
53617        (WebCore::EventHandler::handleDrag):
53618          Reset drag source correctly
53619          
53620        * platform/mac/ClipboardMac.h:
53621        * platform/mac/ClipboardMac.mm:
53622        (WebCore::ClipboardMac::ClipboardMac):
53623          update constructor to use new Clipboard constructor
53624
536252007-02-22  Adele Peterson  <adele@apple.com>
53626
53627        Reviewed by Darin.
53628
53629        Fix for <rdar://problem/5014970> 9A374: Tabs don't work in the message body
53630
53631        Test: fast/events/keypress-insert-tab.html
53632
53633        * page/EventHandler.cpp: (WebCore::EventHandler::defaultTextInputEventHandler):
53634          If the defaultTabEventHandler doesn't handle the event, then go on to the insertText case.
53635
536362007-02-22  Timothy Hatcher  <timothy@apple.com>
53637
53638        Reviewed by Darin.
53639
53640        <rdar://problem/4948887> REGRESSION: Correct differences in public DOM API that inadvertently changed in Leopard
53641
53642        * bindings/objc/PublicDOMInterfaces.h: Changes return types for two size properties, adds deprecated DOMEventTarget methods.
53643        * bindings/scripts/CodeGeneratorObjC.pm: Fixed public API checking for protocols, adds support for ConvertToString.
53644        * dom/EventTarget.idl: Marks addEventListener and removeEventListener with the OldStyleObjC attribute.
53645        * html/HTMLBaseFontElement.idl: Changes the size property to a DOMString for ObjC only.
53646        * html/HTMLInputElement.idl: Changes the size property to a DOMString for ObjC only.
53647        * html/HTMLOptionsCollection.idl: Changes the length property to be unsigned.
53648
536492007-02-22  Adele Peterson  <adele@apple.com>
53650
53651        Reviewed by John.
53652
53653        Fix <rdar://problem/5016969> REGRESSION: "Check Spelling As You Type" context menu item is never checked
53654
53655        * platform/ContextMenu.cpp: (WebCore::ContextMenu::checkOrEnableIfNeeded): Set shouldCheck for ContextMenuItemTagCheckSpellingWhileTyping.
53656
536572007-02-22  Antti Koivisto  <antti@apple.com>
53658
53659        Reviewed by Darin.
53660
53661        - fix http://bugs.webkit.org/show_bug.cgi?id=11447
53662        REGRESSION(NativeListBox): List not scrolled to preselected option
53663        <rdar://problem/4957463>
53664        
53665        Initiate scroll when selected <option> is added to <select>.
53666
53667        * html/HTMLOptionElement.cpp:
53668        (WebCore::HTMLOptionElement::insertedIntoDocument):
53669        * html/HTMLOptionElement.h:
53670        * html/HTMLSelectElement.cpp:
53671        (WebCore::HTMLSelectElement::notifyOptionSelected):
53672        (WebCore::HTMLSelectElement::updateListBoxSelection):
53673        (WebCore::HTMLSelectElement::scrollToSelection):
53674        * html/HTMLSelectElement.h:
53675
536762007-02-22  Zack Rusin  <zrusin@trolltech.com>
53677
53678        Reviewed by Lars
53679
53680        Fix sites with fixed positioned backgrounds.
53681
53682        * platform/qt/ScrollViewQt.cpp:
53683        (WebCore::ScrollView::setStaticBackground):
53684
536852007-02-22  Zack Rusin  <zrusin@trolltech.com>
53686
53687        Reviewed by Lars
53688
53689        Properly implement canvas/scrollview's. Get
53690        rid of ScrollViewCanvas and replace it with
53691        a tailor abstractscrollview (now in qwebframe).
53692        Scrolling of pages is finally completely smooth.
53693
53694        * WebCore.pro:
53695        * platform/ScrollView.h:
53696        * platform/qt/ScrollViewCanvasQt.cpp: Removed.
53697        * platform/qt/ScrollViewCanvasQt.h: Removed.
53698        * platform/qt/ScrollViewQt.cpp:
53699        (WebCore::ScrollView::ScrollView):
53700        (WebCore::ScrollView::setScrollArea):
53701        (WebCore::ScrollView::updateContents):
53702        (WebCore::ScrollView::resizeContents):
53703        (WebCore::ScrollView::contentsWidth):
53704        (WebCore::ScrollView::contentsHeight):
53705        (WebCore::ScrollView::contentsToWindow):
53706        (WebCore::ScrollView::windowToContents):
53707        (WebCore::ScrollView::addChild):
53708        * platform/qt/WidgetQt.cpp:
53709        (WebCore::WidgetPrivate::canvas):
53710        (WebCore::WidgetPrivate::parentScroll):
53711        (WebCore::WidgetPrivate::setGeometry):
53712        (WebCore::WidgetPrivate::geometry):
53713        (WebCore::Widget::frameGeometry):
53714        (WebCore::Widget::setQWidget):
53715        (WebCore::Widget::setFrameGeometry):
53716
537172007-02-21  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
53718
53719        Reviewed by Adam Roben.
53720
53721        Improve notImplemented() macro for gdk. Rename to notImplementedGdk() to
53722        give it a unique name (so that it doesn't clash with notImplemented()
53723        for other platforms).
53724        Make it print a given warning only once, so that frequently called
53725        functions don't clutter the output.
53726        Don't print the warning if DISABLE_NI_WARNING env variable is set.
53727
53728        * loader/gdk/FrameLoaderClientGdk.cpp:
53729        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
53730        (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
53731        (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
53732        (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
53733        (WebCore::FrameLoaderClientGdk::createPlugin):
53734        (WebCore::FrameLoaderClientGdk::createFrame):
53735        (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
53736        (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
53737        (WebCore::FrameLoaderClientGdk::objectContentType):
53738        (WebCore::FrameLoaderClientGdk::overrideMediaType):
53739        (WebCore::FrameLoaderClientGdk::windowObjectCleared):
53740        (WebCore::FrameLoaderClientGdk::hasWebView):
53741        (WebCore::FrameLoaderClientGdk::hasFrameView):
53742        (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
53743        (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
53744        (WebCore::FrameLoaderClientGdk::restoreViewState):
53745        (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
53746        (WebCore::FrameLoaderClientGdk::makeDocumentView):
53747        (WebCore::FrameLoaderClientGdk::makeRepresentation):
53748        (WebCore::FrameLoaderClientGdk::forceLayout):
53749        (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
53750        (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
53751        (WebCore::FrameLoaderClientGdk::detachedFromParent1):
53752        (WebCore::FrameLoaderClientGdk::detachedFromParent2):
53753        (WebCore::FrameLoaderClientGdk::detachedFromParent3):
53754        (WebCore::FrameLoaderClientGdk::detachedFromParent4):
53755        (WebCore::FrameLoaderClientGdk::loadedFromPageCache):
53756        (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
53757        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
53758        (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
53759        (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
53760        (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
53761        (WebCore::FrameLoaderClientGdk::dispatchWillClose):
53762        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
53763        (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
53764        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
53765        (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
53766        (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
53767        (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
53768        (WebCore::FrameLoaderClientGdk::dispatchShow):
53769        (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
53770        (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
53771        (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
53772        (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
53773        (WebCore::FrameLoaderClientGdk::willChangeTitle):
53774        (WebCore::FrameLoaderClientGdk::finishedLoading):
53775        (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
53776        (WebCore::FrameLoaderClientGdk::setDefersLoading):
53777        (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
53778        (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
53779        (WebCore::FrameLoaderClientGdk::clearArchivedResources):
53780        (WebCore::FrameLoaderClientGdk::canHandleRequest):
53781        (WebCore::FrameLoaderClientGdk::canShowMIMEType):
53782        (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
53783        (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
53784        (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
53785        (WebCore::FrameLoaderClientGdk::didFinishLoad):
53786        (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
53787        (WebCore::FrameLoaderClientGdk::setTitle):
53788        (WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
53789        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
53790        (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
53791        (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
53792        (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
53793        (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
53794        (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
53795        (WebCore::FrameLoaderClientGdk::download):
53796        (WebCore::FrameLoaderClientGdk::cancelledError):
53797        (WebCore::FrameLoaderClientGdk::cannotShowURLError):
53798        (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
53799        (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
53800        (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
53801        (WebCore::FrameLoaderClientGdk::shouldFallBack):
53802        (WebCore::FrameLoaderClientGdk::willUseArchive):
53803        (WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
53804        (WebCore::FrameLoaderClientGdk::canCachePage):
53805        (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
53806        (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
53807        (WebCore::FrameLoaderClientGdk::setMainDocumentError):
53808        (WebCore::FrameLoaderClientGdk::startDownload):
53809        (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
53810        (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
53811        (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
53812        * page/gdk/EventHandlerGdk.cpp:
53813        (WebCore::EventHandler::passMouseDownEventToWidget):
53814        (WebCore::EventHandler::eventActivatedView):
53815        (WebCore::EventHandler::passSubframeEventToSubframe):
53816        (WebCore::EventHandler::passWheelEventToWidget):
53817        (WebCore::EventHandler::createDraggingClipboard):
53818        * platform/gdk/EditorClientGdk.cpp:
53819        (WebCore::EditorClientGdk::shouldDeleteRange):
53820        (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
53821        (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
53822        (WebCore::EditorClientGdk::spellCheckerDocumentTag):
53823        (WebCore::EditorClientGdk::shouldBeginEditing):
53824        (WebCore::EditorClientGdk::shouldEndEditing):
53825        (WebCore::EditorClientGdk::shouldInsertText):
53826        (WebCore::EditorClientGdk::shouldChangeSelectedRange):
53827        (WebCore::EditorClientGdk::shouldApplyStyle):
53828        (WebCore::EditorClientGdk::didBeginEditing):
53829        (WebCore::EditorClientGdk::respondToChangedContents):
53830        (WebCore::EditorClientGdk::didEndEditing):
53831        (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
53832        (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
53833        (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
53834        (WebCore::EditorClientGdk::isEditable):
53835        (WebCore::EditorClientGdk::registerCommandForUndo):
53836        (WebCore::EditorClientGdk::registerCommandForRedo):
53837        (WebCore::EditorClientGdk::clearUndoRedoOperations):
53838        (WebCore::EditorClientGdk::canUndo):
53839        (WebCore::EditorClientGdk::canRedo):
53840        (WebCore::EditorClientGdk::undo):
53841        (WebCore::EditorClientGdk::redo):
53842        (WebCore::EditorClientGdk::shouldInsertNode):
53843        (WebCore::EditorClientGdk::pageDestroyed):
53844        (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
53845        (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
53846        (WebCore::EditorClientGdk::textFieldDidBeginEditing):
53847        (WebCore::EditorClientGdk::textFieldDidEndEditing):
53848        (WebCore::EditorClientGdk::textDidChangeInTextField):
53849        (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
53850        (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
53851        (WebCore::EditorClientGdk::textDidChangeInTextArea):
53852        * platform/gdk/RenderThemeGdk.cpp:
53853        (WebCore::RenderThemeGdk::setCheckboxSize):
53854        (WebCore::RenderThemeGdk::setRadioSize):
53855        (WebCore::RenderThemeGdk::adjustTextFieldStyle):
53856        * platform/gdk/TemporaryLinkStubs.cpp:
53857        (FrameView::updateBorder):
53858        (Widget::setEnabled):
53859        (Widget::isEnabled):
53860        (Widget::focusPolicy):
53861        (Widget::enableFlushDrawing):
53862        (Widget::disableFlushDrawing):
53863        (Widget::lockDrawingFocus):
53864        (Widget::unlockDrawingFocus):
53865        (Widget::removeFromParent):
53866        (Widget::paint):
53867        (Widget::setIsSelected):
53868        (Widget::invalidate):
53869        (Widget::invalidateRect):
53870        (PlatformMouseEvent::PlatformMouseEvent):
53871        (WebCore::findNextSentenceFromIndex):
53872        (WebCore::findSentenceBoundary):
53873        (WebCore::findNextWordFromIndex):
53874        (ChromeClientGdk::chromeDestroyed):
53875        (ChromeClientGdk::windowRect):
53876        (ChromeClientGdk::setWindowRect):
53877        (ChromeClientGdk::pageRect):
53878        (ChromeClientGdk::scaleFactor):
53879        (ChromeClientGdk::focus):
53880        (ChromeClientGdk::unfocus):
53881        (ChromeClientGdk::createWindow):
53882        (ChromeClientGdk::createModalDialog):
53883        (ChromeClientGdk::show):
53884        (ChromeClientGdk::canRunModal):
53885        (ChromeClientGdk::runModal):
53886        (ChromeClientGdk::setToolbarsVisible):
53887        (ChromeClientGdk::toolbarsVisible):
53888        (ChromeClientGdk::setStatusbarVisible):
53889        (ChromeClientGdk::statusbarVisible):
53890        (ChromeClientGdk::setScrollbarsVisible):
53891        (ChromeClientGdk::scrollbarsVisible):
53892        (ChromeClientGdk::setMenubarVisible):
53893        (ChromeClientGdk::menubarVisible):
53894        (ChromeClientGdk::setResizable):
53895        (ChromeClientGdk::closeWindowSoon):
53896        (ChromeClientGdk::canTakeFocus):
53897        (ChromeClientGdk::takeFocus):
53898        (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
53899        (ChromeClientGdk::addMessageToConsole):
53900        (ChromeClientGdk::runBeforeUnloadConfirmPanel):
53901        (ChromeClientGdk::runJavaScriptAlert):
53902        (ChromeClientGdk::runJavaScriptConfirm):
53903        (ChromeClientGdk::runJavaScriptPrompt):
53904        (ChromeClientGdk::setStatusbarText):
53905        (ChromeClientGdk::shouldInterruptJavaScript):
53906        (ChromeClientGdk::tabsToLinks):
53907        (ChromeClientGdk::windowResizerRect):
53908        (ChromeClientGdk::addToDirtyRegion):
53909        (ChromeClientGdk::scrollBackingStore):
53910        (ChromeClientGdk::updateBackingStore):
53911        (PlugInInfoStore::createPluginInfoForPluginAtIndex):
53912        (PlugInInfoStore::pluginCount):
53913        (WebCore::PlugInInfoStore::supportsMIMEType):
53914        (WebCore::refreshPlugins):
53915        (SearchPopupMenu::saveRecentSearches):
53916        (SearchPopupMenu::loadRecentSearches):
53917        (SearchPopupMenu::SearchPopupMenu):
53918        (PlatformScrollbar::PlatformScrollbar):
53919        (PlatformScrollbar::~PlatformScrollbar):
53920        (PlatformScrollbar::setEnabled):
53921        (PlatformScrollbar::paint):
53922        (PlatformScrollbar::updateThumbPosition):
53923        (PlatformScrollbar::updateThumbProportion):
53924        (PlatformScrollbar::setRect):
53925        (FileChooser::FileChooser):
53926        (FileChooser::~FileChooser):
53927        (FileChooser::openFileChooser):
53928        (FileChooser::basenameForWidth):
53929        (ResourceHandle::willLoadFromCache):
53930        (ResourceHandle::loadsBlocked):
53931        (ResourceHandle::loadResourceSynchronously):
53932        (Icon::Icon):
53933        (Icon::~Icon):
53934        (Icon::newIconForFile):
53935        (Icon::paint):
53936        (Font::drawComplexText):
53937        (Font::floatWidthForComplexText):
53938        (Font::offsetForPositionForComplexText):
53939        (PageCache::close):
53940        (Editor::ignoreSpelling):
53941        (Editor::learnSpelling):
53942        (Editor::isSelectionUngrammatical):
53943        (Editor::isSelectionMisspelled):
53944        (Editor::guessesForMisspelledSelection):
53945        (Editor::guessesForUngrammaticalSelection):
53946        (Editor::markMisspellingsAfterTypingToPosition):
53947        (Editor::newGeneralClipboard):
53948        (Pasteboard::generalPasteboard):
53949        (Pasteboard::writeSelection):
53950        (Pasteboard::writeURL):
53951        (Pasteboard::writeImage):
53952        (Pasteboard::clear):
53953        (Pasteboard::canSmartReplace):
53954        (Pasteboard::documentFragment):
53955        (Pasteboard::plainText):
53956        (Pasteboard::Pasteboard):
53957        (Pasteboard::~Pasteboard):
53958        (ContextMenu::ContextMenu):
53959        (ContextMenu::~ContextMenu):
53960        (ContextMenu::appendItem):
53961        (ContextMenuItem::ContextMenuItem):
53962        (ContextMenuItem::~ContextMenuItem):
53963        (ContextMenuItem::releasePlatformDescription):
53964        (ContextMenuItem::type):
53965        (ContextMenuItem::setType):
53966        (ContextMenuItem::action):
53967        (ContextMenuItem::setAction):
53968        (ContextMenuItem::title):
53969        (ContextMenuItem::setTitle):
53970        (ContextMenuItem::platformSubMenu):
53971        (ContextMenuItem::setSubMenu):
53972        (ContextMenuItem::setChecked):
53973        (ContextMenuItem::setEnabled):
53974        (WebCore::supportedKeySizes):
53975        (WebCore::systemBeep):
53976        (WebCore::userIdleTime):
53977
539782007-02-21  Antti Koivisto  <antti@apple.com>
53979
53980        Reviewed by Hyatt.
53981
53982        - fix http://bugs.webkit.org/show_bug.cgi?id=12820
53983        REGRESSION (r19706): Caret not painted after popup, failing editing/pasteboard/4641033
53984
53985        Yet another attempt to figure out exactly who should paint the caret.
53986
53987        * editing/SelectionController.cpp:
53988        (WebCore::SelectionController::isInsideNode):
53989        * editing/SelectionController.h:
53990        * rendering/RenderBlock.cpp:
53991        (WebCore::RenderBlock::paintCaret):
53992
539932007-02-21  Mitz Pettel  <mitz@webkit.org>
53994
53995        Reviewed by Hyatt.
53996
53997        - fix http://bugs.webkit.org/show_bug.cgi?id=12818
53998          REGRESSION (r19148): shacknews.com does not render completely
53999
54000        Test: fast/dynamic/staticY-marking-parents-regression.html
54001
54002        Changed calls to setChildNeedsLayout(true) during layout to
54003        setChildNeedsLayout(true, false). Prior to r19148, the default behavior
54004        of marking containers did not matter because the caller was the container
54005        and was already marked, but r19148 added marking of the parent of
54006        objects with static Y, which can be different from the caller and not
54007        necessarily marked already.
54008
54009        * rendering/RenderBlock.cpp:
54010        (WebCore::RenderBlock::collapseMargins):
54011        (WebCore::RenderBlock::clearFloatsIfNeeded):
54012        (WebCore::RenderBlock::layoutBlockChildren):
54013        * rendering/RenderBox.cpp:
54014        (WebCore::RenderBox::setStaticY):
54015        * rendering/RenderFlexibleBox.cpp:
54016        (WebCore::RenderFlexibleBox::layoutVerticalBox):
54017
540182007-02-21  Brady Eidson  <beidson@apple.com>
54019
54020        Reviewed by Dave Harrison
54021
54022        <rdar://problem/5014313> - Crash in FrameLoader::restoreScrollPositionAndViewState() 
54023        after regaining network connection
54024
54025        * loader/FrameLoader.cpp:
54026        (WebCore::FrameLoader::restoreScrollPositionAndViewState):  Leave an assertion for debug
54027        build exploration, but gracefully handle the release build case
54028
540292007-02-21  Timothy Hatcher  <timothy@apple.com>
54030
54031        Rubber-stamped by Darin.
54032
54033        * bindings/objc/PublicDOMInterfaces.h: Add missing classes that are really public.
54034        Also adds the deprecated selector for getComputedStyle: on DOMDocument.
54035
540362007-02-21  Justin Garcia  <justin.garcia@apple.com>
54037
54038        Reviewed by john
54039        
54040        <rdar://problem/5012665>
54041        Removing indent from list moves the caret to the line below
54042
54043        Selection preservation during indent, outdent and list 
54044        operations uses rangeFromLocationAndLength.  Ranges returned 
54045        by rangeFromLocationAndLength were incorrect for locations 
54046        just before the line breaks that are emitted after blocks.  
54047        This is because TextIterator emitted bad ranges for these line 
54048        breaks (ranges that started and ended *after* the block).  
54049        The fix corrects the start but not the end.  This is acceptible 
54050        because there is code in rangeFromLocationAndLength that corrects 
54051        the ends of runs using the start of the run and VisiblePosition 
54052        creation.
54053        
54054        * editing/TextIterator.cpp:
54055        (WebCore::TextIterator::exitNode): Emit a position *inside* 
54056        the block, after its contents.
54057
540582007-02-21  Adele Peterson  <adele@apple.com>
54059
54060        Reviewed by Darin.
54061
54062        Fix for <rdar://problem/4999030> Indexing into select element to get to items in the options collection is broken
54063
54064        Test: fast/forms/select-index-setter.html
54065
54066        Added indexSetter for HTMLSelectElement.
54067
54068        * WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElementCustom.h
54069
54070        * bindings/js/JSHTMLOptionsCollectionCustom.cpp: (WebCore::JSHTMLOptionsCollection::indexSetter):
54071          Moved code to selectIndexSetter so it can be shared between these classes.
54072        * bindings/js/JSHTMLSelectElementCustom.cpp:
54073        (WebCore::selectIndexSetter): Added.  Moved from JSHTMLOptionsCollection::indexSetter.
54074        (WebCore::JSHTMLSelectElement::indexSetter): Calls selectIndexSetter.
54075        * bindings/js/JSHTMLSelectElementCustom.h: Added.
54076        * html/HTMLSelectElement.idl: Added HasCustomIndexSetter keyword.
54077
54078        * bindings/scripts/CodeGeneratorJS.pm: When generating "put" methods, if the propertyName is a number, call the indexSetter first,
54079          and then call the version of lookupPut that will also try to use the parent's lookup table.  This matches the order of our
54080          old code, before we autogenerated the JSHTMLSelectElement class.
54081
540822007-02-21  George Staikos  <staikos@kde.org>
54083
54084        Reviewed by Zack.
54085
54086        Add files to the build.
54087
54088        * WebCore.pro:
54089
540902007-02-21  Zack Rusin  <zrusin@trolltech.com>
54091
54092        Reviewed by Lars
54093
54094        Implementing popups for the Qt platform.
54095
54096        * WebCore.pro:
54097        * platform/PopupMenu.h:
54098        * platform/Widget.h:
54099        * platform/qt/PopupMenuQt.cpp:
54100        (WebCore::PopupMenu::PopupMenu):
54101        (WebCore::PopupMenu::clear):
54102        (WebCore::PopupMenu::populate):
54103        (WebCore::PopupMenu::show):
54104        (WebCore::PopupMenu::hide):
54105        * platform/qt/QWebPopup.cpp: Added.
54106        (WebCore::QWebPopup::QWebPopup):
54107        (WebCore::QWebPopup::exec):
54108        (WebCore::QWebPopup::hideEvent):
54109        (WebCore::QWebPopup::activeChanged):
54110        * platform/qt/QWebPopup.h: Added.
54111        * platform/qt/WidgetQt.cpp:
54112        (WebCore::Widget::canvas):
54113
541142007-02-21  George Staikos  <staikos@kde.org>
54115
54116        Reviewed by Zack.
54117
54118        Remove unneeded hack now.
54119
54120        * platform/qt/RenderThemeQt.cpp:
54121        (WebCore::RenderThemeQt::setCheckboxSize):
54122
541232007-02-21  Zack Rusin  <zrusin@trolltech.com>
54124
54125        Reviewed by Lars
54126
54127        Fix rendering of lineedits and remove the spurious
54128        padding on push-buttons.
54129
54130        * platform/qt/RenderThemeQt.cpp:
54131        (WebCore::RenderThemeQt::baselinePosition):
54132        (WebCore::RenderThemeQt::adjustTextFieldStyle):
54133        (WebCore::RenderThemeQt::sizeForFont):
54134        (WebCore::RenderThemeQt::setButtonPadding):
54135
541362007-02-21  Zack Rusin  <zrusin@trolltech.com>
54137
54138        Fix compilation.
54139
54140        * platform/qt/PasteboardQt.cpp:
54141        (WebCore::Pasteboard::writeURL):
54142        (WebCore::Pasteboard::writeImage):
54143
541442007-02-20  Adam Roben  <aroben@apple.com>
54145
54146        Preemptive build fix.
54147
54148        * platform/mac/FontCacheMac.mm: Remove unused (and non-existent) header.
54149
541502007-02-20  Adam Roben  <aroben@apple.com>
54151
54152        Fix the build the right way.
54153
54154        * platform/StringTruncator.cpp:
54155        (WebCore::truncateString): Keep all widths as floats.
54156
541572007-02-20  Beth Dakin  <bdakin@apple.com>
54158
54159        Reviewed by Maciej.
54160
54161        Implement writeImage() on Pasteboard so that the context menus can 
54162        call into the editor for the "Copy image" command instead of 
54163        calling across the clients.
54164
54165        * WebCore.exp:
54166        * WebCore.xcodeproj/project.pbxproj:
54167        * editing/Editor.cpp:
54168        (WebCore::Editor::copyImage): Call into the Pasteboard.
54169        * editing/Editor.h:
54170        * loader/mac/LoaderNSURLExtras.h: A new NSURL extra needed inside 
54171        WebCore.
54172        * loader/mac/LoaderNSURLExtras.m: Made this file Objective-C++ 
54173        (from Objective-C) since the call into the MIMETypeRegistry will 
54174        return a Vector.
54175        (urlByRemovingComponent): Cast to build as Obj-C++
54176        (urlWithDataRelativeToURL): Same.
54177        (vectorContainsString): Helper.
54178        (suggestedFilenameWithMIMEType): New function.
54179        * page/ContextMenuClient.h: Remove copyImageToClipboard()
54180        * page/ContextMenuController.cpp:
54181        (WebCore::ContextMenuController::contextMenuItemSelected): Call 
54182        into the editor instead of the client.
54183        * page/mac/WebCoreViewFactory.h: New localized String.
54184        * platform/LocalizedStrings.h: Same.
54185        * platform/MimeTypeRegistry.h: Expose two additional functions for 
54186        MIMEType information from WebCore System Interface.
54187        * platform/Pasteboard.h:
54188        * platform/SharedBuffer.h: Make platformData() and platformDataSize
54189        () public since they are needed to write the image to the 
54190        pasteboard.
54191        * platform/mac/LocalizedStringsMac.mm: New localized string.
54192        (WebCore::copyImageUnknownFileLabel):
54193        * platform/mac/MimeTypeRegistryMac.mm:
54194        (WebCore::MimeTypeRegistry::getExtensionsForMIMEType):
54195        (WebCore::MimeTypeRegistry::getPreferredExtensionForMIMEType):
54196        * platform/mac/PasteboardMac.mm:
54197        (WebCore::writableTypesForImage):
54198        (WebCore::Pasteboard::writeURL): Write the correct types if the url 
54199        is for an image.
54200        (WebCore::fileWrapperForImage):
54201        (WebCore::Pasteboard::writeFileWrapperAsRTFDAttachment):
54202        (WebCore::Pasteboard::writeImage):
54203        * platform/mac/WebCoreNSStringExtras.h: Added. Some the the 
54204        NSStringExtras that were in WebKit are now needed by WebCore. To 
54205        avoid having two copies of these functions, I just moved the 
54206        implementations to WebCore. The WebKit functions just call into 
54207        WebCore.
54208        * platform/mac/WebCoreNSStringExtras.mm: Added.
54209        (hasCaseInsensitiveSuffix):
54210        (hasCaseInsensitiveSubstring):
54211        (filenameByFixingIllegalCharacters):
54212        * platform/mac/WebCoreSystemInterface.h: 
54213        wkGetPreferredExtensionForMIMEType and wkGetExtensionsForMIMEType 
54214        are now needed in WebCore as well as WebKit.
54215        * platform/mac/WebCoreSystemInterface.mm:
54216
542172007-02-20  Adam Roben  <aroben@apple.com>
54218
54219        Build fix.
54220
54221        * platform/StringTruncator.cpp:
54222        (WebCore::truncateString): Added explicit casts.
54223
542242007-02-20  Adam Roben  <aroben@apple.com>
54225
54226        Reviewed by Darin and Anders.
54227
54228        Fix <rdar://problem/4736215> Make WebCoreStringTruncator use WebCore types
54229
54230        * WebCore.exp: Updated symbols.
54231        * WebCore.xcodeproj/project.pbxproj: Updated file names.
54232        * bridge/mac/WebCoreStringTruncator.h: Removed.
54233        * bridge/mac/WebCoreStringTruncator.mm: Removed.
54234        * platform/StringTruncator.cpp: Added. Moved from bridge/mac/WebCoreStringTruncator.mm.
54235        (WebCore::textBreakAtOrPreceding): Added.
54236        (WebCore::boundedTextBreakFollowing): Added.
54237        (WebCore::centerTruncateToBuffer):
54238        (WebCore::rightTruncateToBuffer):
54239        (WebCore::stringWidth): Now takes a const Font& instead of a Font*.
54240        (WebCore::truncateString):
54241        (WebCore::StringTruncator::centerTruncate):
54242        (WebCore::StringTruncator::rightTruncate):
54243        (WebCore::StringTruncator::width):
54244        * platform/StringTruncator.h: Added.
54245        * platform/TextBreakIterator.h: Added isTextBreak declaration.
54246        * platform/TextBreakIteratorICU.cpp:
54247        (WebCore::isTextBreak): Implemented.
54248        * platform/mac/FileChooserMac.mm:
54249        (WebCore::FileChooser::basenameForWidth): Updated for changes to WebCoreStringTruncator.
54250        * platform/qt/TextBreakIteratorQt.cpp:
54251        (WebCore::isTextBreak): Stubbed out.
54252
542532007-02-20  Justin Garcia  <justin.garcia@apple.com>
54254
54255        Reviewed by harrison
54256
54257        <rdar://problem/5006779>
54258        REGRESSION: Paste and Match Style of quoted text onto empty line yields quoted text
54259        
54260        We decided to change the copy/paste behavior in both
54261        the Paste and the Paste and Match Style cases.
54262
54263        * editing/markup.cpp:
54264        (WebCore::createMarkup): Don't add mail blockquote wrappers
54265        unless the user selected one or more paragraphs.
54266
542672007-02-20  Timothy Hatcher  <timothy@apple.com>
54268
54269        Reviewed by Mark Rowe.
54270
54271        <rdar://problem/4912899> WebCore project ObjC @property cleanup
54272
54273        * bindings/objc/DOMObject.h: Add the new style @property
54274        * bindings/objc/PublicDOMInterfaces.h: Update to the new style @property
54275        * bindings/scripts/CodeGeneratorObjC.pm: Export both new and old style @properties
54276
542772007-02-20  Timothy Hatcher  <timothy@apple.com>
54278
54279        Reviewed by Sam Weinig.
54280
54281        <rdar://problem/5007248> need to export symbols for DOM exception constants
54282
54283        * WebCore.exp: Adds DOMEventException, DOMException, DOMRangeException, DOMXPathException
54284
542852007-02-20  Timothy Hatcher  <timothy@apple.com>
54286
54287        Reviewed by Darin.
54288
54289        <rdar://problem/4900579> WebKit -finalize methods are not thread-safe; design change needed
54290
54291        Call WebCoreObjCFinalizeOnMainThread from the initialize method of all the classes
54292        that have a finalizer that needs called on the main thread.
54293
54294        * WebCore.exp:
54295        * WebCore.xcodeproj/project.pbxproj:
54296        * bindings/objc/WebScriptObject.mm:
54297        (+[WebScriptObject initialize]):
54298        * bridge/mac/WebCoreScriptDebugger.mm:
54299        (+[WebCoreScriptDebugger initialize]):
54300        * platform/mac/SharedBufferMac.mm:
54301        (+[SharedBufferData initialize]):
54302        * platform/mac/WebCoreObjCExtras.c: Added.
54303        (WebCoreObjCFinalizeOnMainThread):
54304        * platform/mac/WebCoreObjCExtras.h: Added.
54305
543062007-02-20  Geoffrey Garen  <ggaren@apple.com>
54307
54308        Not not reviewed by Mitz Pettel.
54309
54310        Fixed http://bugs.webkit.org/show_bug.cgi?id=12827 | <rdar://problem/5006671> 
54311        REGRESSION: -[DOMCSSStyleDeclaration setValue:forKey:] doesn't have an 
54312        immediate effect
54313        
54314        Let's just pretend this never happened.
54315        
54316        I attempted a layout test but I couldn't get the old code to fail because 
54317        there's no obvious way to isolate the ObjC bindings in a test that's 
54318        controlled by JS.
54319        
54320        * bindings/objc/WebScriptObject.mm:
54321        (_didExecute):
54322
543232007-02-20  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
54324
54325        Reviewed by Maciej S.
54326
54327        Gdk build fixes for recent refactorings.
54328
54329        * Projects/gdk/webcore-gdk.bkl:
54330        * WebCoreSources.bkl:
54331        * page/gdk/DragControllerGdk.cpp:
54332        (WebCore::DragController::dragOperation):
54333        (WebCore::DragController::maxDragImageSize):
54334        * page/gdk/EventHandlerGdk.cpp:
54335        (WebCore::EventHandler::createDraggingClipboard):
54336        * platform/DragImage.h:
54337        * platform/gdk/ChromeClientGdk.h:
54338        * platform/gdk/CursorGdk.cpp:
54339        (WebCore::verticalTextCursor):
54340        (WebCore::cellCursor):
54341        (WebCore::contextMenuCursor):
54342        (WebCore::noDropCursor):
54343        (WebCore::copyCursor):
54344        (WebCore::progressCursor):
54345        (WebCore::aliasCursor):
54346        (WebCore::noneCursor):
54347        (WebCore::notAllowedCursor):
54348        * platform/gdk/EditorClientGdk.cpp:
54349        (WebCore::EditorClientGdk::shouldChangeSelectedRange):
54350        (WebCore::EditorClientGdk::isEditable):
54351        (WebCore::EditorClientGdk::textFieldDidBeginEditing):
54352        (WebCore::EditorClientGdk::textFieldDidEndEditing):
54353        (WebCore::EditorClientGdk::textDidChangeInTextField):
54354        (WebCore::EditorClientGdk::doTextFieldCommandFromEvent):
54355        (WebCore::EditorClientGdk::textWillBeDeletedInTextField):
54356        (WebCore::EditorClientGdk::textDidChangeInTextArea):
54357        * platform/gdk/EditorClientGdk.h:
54358        * platform/gdk/FrameGdk.cpp:
54359        (WebCore::Frame::print):
54360        (WebCore::Frame::issueTransposeCommand):
54361        (WebCore::Frame::respondToChangedSelection):
54362        (WebCore::Frame::cleanupPlatformScriptObjects):
54363        (WebCore::Frame::isCharacterSmartReplaceExempt):
54364        (WebCore::Frame::dragImageForSelection):
54365        * platform/gdk/FrameGdk.h:
54366        * platform/gdk/MimeTypeRegistryGdk.cpp: Added.
54367        * platform/gdk/TemporaryLinkStubs.cpp:
54368        (ChromeClientGdk::tabsToLinks):
54369        (ChromeClientGdk::windowResizerRect):
54370        (ChromeClientGdk::addToDirtyRegion):
54371        (ChromeClientGdk::scrollBackingStore):
54372        (ChromeClientGdk::updateBackingStore):
54373        * webcore-base.bkl:
54374
543752007-02-20  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
54376
54377        Reviewed by Darin.
54378
54379        Allow over-writting Product, ProductSub, Vendor and VendorSub
54380        js properties via #define WEBCORE_NAVIGATOR_*
54381
54382        * bindings/js/kjs_navigator.cpp:
54383        (KJS::Navigator::getValueProperty):
54384
543852007-02-20  Darin Adler  <darin@apple.com>
54386
54387        Reviewed by Anders.
54388
54389        - prepare to fix some "stop loading" bugs by moving state from the
54390          FrameLoader class to the DocumentLoader class
54391
54392        * WebCore.exp: Update since cancelMainResourceLoad is now on the document loader.
54393
54394        * html/HTMLDocument.h:
54395        * html/HTMLDocument.cpp:
54396        (WebCore::HTMLDocument::HTMLDocument): Removed unused bodyElement and htmlElement
54397        data members.
54398        (WebCore::HTMLDocument::lastModified): Call getResponseModifiedHeader directly on
54399        the document loader.
54400
54401        * loader/DocumentLoader.h: Moved m_mainResourceLoader, m_subresourceLoaders, and
54402        m_plugInStreamLoaders here.
54403        * loader/DocumentLoader.cpp:
54404        (WebCore::cancelAll): Moved here from FrameLoader.
54405        (WebCore::setAllDefersLoading): Ditto.
54406        (WebCore::DocumentLoader::mainResourceData): Moved the body of FrameLoader's
54407        mainResourceData function here.
54408        (WebCore::DocumentLoader::stopLoading): Replaced calls to hasMainResourceLoader
54409        and cancelMainResourceLoad with code that works directly on m_mainResourceLoader.
54410        Call the stop functions moved from FrameLoader here on ourselves.
54411        (WebCore::DocumentLoader::setupForReplaceByMIMEType): Ditto.
54412        (WebCore::DocumentLoader::setPrimaryLoadComplete): Moved the code to store the
54413        main resource data here; it doesn't require separate functions.
54414        (WebCore::DocumentLoader::isLoadingInAPISense): Removed call to isLoadingSubresources
54415        and instead just check if the m_subresourceLoaders set is empty.
54416        (WebCore::DocumentLoader::setDefersLoading): Moved code here from FrameLoader.
54417        (WebCore::DocumentLoader::stopLoadingPlugIns): Ditto.
54418        (WebCore::DocumentLoader::stopLoadingSubresources): Ditto.
54419        (WebCore::DocumentLoader::addSubresourceLoader): Ditto.
54420        (WebCore::DocumentLoader::removeSubresourceLoader): Ditto.
54421        (WebCore::DocumentLoader::addPlugInStreamLoader): Ditto.
54422        (WebCore::DocumentLoader::removePlugInStreamLoader): Ditto.
54423        (WebCore::DocumentLoader::isLoadingSubresources): Ditto.
54424        (WebCore::DocumentLoader::isLoadingPlugIns): Ditto.
54425        (WebCore::DocumentLoader::startLoadingMainResource): Ditto.
54426        (WebCore::DocumentLoader::cancelMainResourceLoad): Ditto.
54427
54428        * loader/FrameLoader.h: Removed stopLoadingPlugIns, stopLoadingSubresources,
54429        cancelMainResourceLoad, hasMainResourceLoader, isLoadingSubresources,
54430        mainResourceData, releaseMainResourceLoader, lastModified, startLoadingMainResource,
54431        isLoadingPlugIns, m_mainResourceLoader, m_subresourceLoaders, m_plugInStreamLoaders,
54432        m_responseRefreshHeader, and m_responseModifiedHeader.
54433        * loader/FrameLoader.cpp:
54434        (WebCore::FrameLoader::setDefersLoading): Call setDefersLoading on all the document
54435        loaders.
54436        (WebCore::FrameLoader::stopLoading): Get rid of code to set m_responseRefreshHeader
54437        and m_responseModifiedHeader.
54438        (WebCore::FrameLoader::receivedFirstData): Call httpHeaderField on the response
54439        here to get the Refresh, instead of storing it in a data member.
54440        (WebCore::FrameLoader::addPlugInStreamLoader): Change to just call this on the
54441        document loader.
54442        (WebCore::FrameLoader::removePlugInStreamLoader): Ditto.
54443        (WebCore::FrameLoader::isLoading): Change to call isLoadingSubresources and
54444        isLoadingPlugIns on the document loader.
54445        (WebCore::FrameLoader::addSubresourceLoader): Change to just call this on the
54446        document loader.
54447        (WebCore::FrameLoader::removeSubresourceLoader): Ditto.
54448        (WebCore::FrameLoader::commitProvisionalLoad): Call stopLoadingSubresources and
54449        stopLoadingPlugIns on the document loader. Removed code to set
54450        m_responseModifiedHeader.
54451        (WebCore::FrameLoader::startLoading): Call isLoadingMainResource and
54452        startLoadingMainResource on the document loader.
54453
54454        * loader/ImageDocument.cpp: (WebCore::ImageTokenizer::finish): Call
54455        mainResourceData() on the document loader instead of the frame loader.
54456
54457        - other changes
54458
54459        * loader/DocLoader.cpp:
54460        (WebCore::DocLoader::checkCacheObjectStatus): Fixed indentation.
54461
544622007-02-20  Zack Rusin  <zrusin@trolltech.com>
54463
54464        Reviewed by Lars
54465
54466        Fix focus handling and make the forms
54467        work as expected.
54468
54469        * platform/qt/ScrollViewQt.cpp:
54470        (WebCore::ScrollView::setScrollArea):
54471        * platform/qt/WidgetQt.cpp:
54472        (WebCore::WidgetPrivate::WidgetPrivate):
54473        (WebCore::WidgetPrivate::canvas):
54474        (WebCore::Widget::hasFocus):
54475        (WebCore::Widget::setFocus):
54476        (WebCore::Widget::clearFocus):
54477        (WebCore::Widget::setFont):
54478        (WebCore::Widget::setQWidget):
54479        (WebCore::Widget::focusPolicy):
54480
544812007-02-20  Mitz Pettel  <mitz@webkit.org>
54482
54483        Reviewed by Darin and then Sam.
54484
54485        - fix http://bugs.webkit.org/show_bug.cgi?id=10735
54486          Clicking in SVG results causes WebKit to consume 100% CPU for several minutes
54487
54488        No test since there is no change in functionality.
54489
54490        * CMakeLists.txt:
54491        * WebCore.pro:
54492        * WebCore.xcodeproj/project.pbxproj: Added PositionIterator.{cpp,h}.
54493        * WebCoreSources.bkl:
54494        * dom/Position.cpp:
54495        (WebCore::Position::Position): Added converting constructor from
54496        PositionIterator.
54497        (WebCore::Position::previous): Changed assert() to ASSERT().
54498        (WebCore::Position::next): Ditto.
54499        (WebCore::isStreamer): Changed the argument to a PositionIterator.
54500        (WebCore::Position::upstream): Changed to use PositionIterator.
54501        (WebCore::Position::downstream): Ditto.
54502        (WebCore::Position::inRenderedText): Made public.
54503        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight): Changed
54504        into a static member function.
54505        (WebCore::Position::nodeIsUserSelectNone): Ditto.
54506        * dom/Position.h:
54507        * dom/PositionIterator.cpp: Added. A Position iterator with constant-time
54508        increment, decrement, and several predicates on the Position it is at.
54509        Conversion to/from Position is O(n) in the offset.
54510        (WebCore::PositionIterator::increment):
54511        (WebCore::PositionIterator::decrement):
54512        (WebCore::PositionIterator::atStart):
54513        (WebCore::PositionIterator::atEnd):
54514        (WebCore::PositionIterator::atStartOfNode):
54515        (WebCore::PositionIterator::atEndOfNode):
54516        (WebCore::PositionIterator::isCandidate):
54517        * dom/PositionIterator.h: Added.
54518        (WebCore::PositionIterator::PositionIterator):
54519        (WebCore::PositionIterator::node):
54520        (WebCore::PositionIterator::offsetInLeafNode):
54521        * editing/htmlediting.cpp:
54522        (WebCore::nextCandidate): Changed to use PositionIterator.
54523        (WebCore::previousCandidate): Changed to use PositionIterator.
54524
545252007-02-20  Rob Buis  <buis@kde.org>
54526
54527        Reviewed by Darin.
54528
54529        http://bugs.webkit.org/show_bug.cgi?id=12439
54530        SVG parser complains about points attribute in polygon and polyline element
54531
54532        Return true when the parsed points specification is valid.
54533
54534        * ksvg2/svg/SVGParserUtilities.cpp:
54535        (WebCore::parseNumber):
54536        (WebCore::SVGPolyParser::parsePoints):
54537        * ksvg2/svg/SVGPolyElement.cpp:
54538        (WebCore::SVGPolyElement::parseMappedAttribute):
54539
545402007-02-20  Zack Rusin  <zrusin@trolltech.com>
54541
54542        Reviewed by Lars
54543
54544        Make editing of forms work plus make sure that non-void methods
54545        always return something.
54546
54547        * WebCore.pro:
54548        * loader/qt/DocumentLoaderQt.cpp:
54549        (WebCore::DocumentLoader::getResponseModifiedHeader):
54550        * platform/qt/ClipboardQt.cpp:
54551        (WebCore::ClipboardQt::setData):
54552
545532007-02-20  Zack Rusin  <zrusin@trolltech.com>
54554
54555        Reviewed by Lars
54556
54557        Refactor and fix the implementation of theming of
54558        form elements on the Qt platform.
54559
54560        * platform/qt/RenderThemeQt.cpp:
54561        (WebCore::theme):
54562        (WebCore::RenderThemeQt::RenderThemeQt):
54563        (WebCore::RenderThemeQt::supportsHover):
54564        (WebCore::RenderThemeQt::supportsFocusRing):
54565        (WebCore::RenderThemeQt::baselinePosition):
54566        (WebCore::RenderThemeQt::controlSupportsTints):
54567        (WebCore::RenderThemeQt::supportsControlTints):
54568        (WebCore::RenderThemeQt::adjustRepaintRect):
54569        (WebCore::RenderThemeQt::paintResizeControl):
54570        (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
54571        (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
54572        (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
54573        (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
54574        (WebCore::RenderThemeQt::systemFont):
54575        (WebCore::RenderThemeQt::minimumMenuListSize):
54576        (WebCore::RenderThemeQt::adjustSliderThumbSize):
54577        (WebCore::RenderThemeQt::paintCheckbox):
54578        (WebCore::RenderThemeQt::paintRadio):
54579        (WebCore::RenderThemeQt::setRadioSize):
54580        (WebCore::RenderThemeQt::adjustButtonStyle):
54581        (WebCore::RenderThemeQt::setButtonSize):
54582        (WebCore::RenderThemeQt::adjustTextFieldStyle):
54583        (WebCore::RenderThemeQt::adjustMenuListStyle):
54584        (WebCore::RenderThemeQt::paintMenuList):
54585        (WebCore::RenderThemeQt::paintMenuListButton):
54586        (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
54587        (WebCore::RenderThemeQt::paintSliderTrack):
54588        (WebCore::RenderThemeQt::paintSliderThumb):
54589        (WebCore::RenderThemeQt::paintSearchField):
54590        (WebCore::RenderThemeQt::adjustSearchFieldStyle):
54591        (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
54592        (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
54593        (WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
54594        (WebCore::RenderThemeQt::paintSearchFieldDecoration):
54595        (WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
54596        (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
54597        (WebCore::RenderThemeQt::supportsFocus):
54598        (WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):
54599        (WebCore::RenderThemeQt::applyTheme):
54600        (WebCore::RenderThemeQt::setSizeFromFont):
54601        (WebCore::RenderThemeQt::sizeForFont):
54602        (WebCore::RenderThemeQt::setButtonPadding):
54603        (WebCore::RenderThemeQt::setPopupPadding):
54604        (WebCore::RenderThemeQt::setPrimitiveSize):
54605        * platform/qt/RenderThemeQt.h: Added.
54606
546072007-02-19  Lars Naesbye Christensen <lars@naesbye.dk>
54608
54609        Reviewed by Maciej.
54610
54611        http://bugs.webkit.org/show_bug.cgi?id=12815
54612        Two image files not included in project file
54613
54614        * WebCore.xcodeproj/project.pbxproj: Added crossHairCursor.png and
54615        notAllowedCursor.png.
54616
546172007-02-19  Geoffrey Garen  <ggaren@apple.com>
54618
54619        Reviewed by Adam Roben.
54620
54621        Fixed some leaks in RenderThemeMac.
54622        
54623        No test case because 'leaks' can't detect these leaks inside DRT, even if
54624        DRT forces the WebView to paint. ('leaks' can detect these leaks inside
54625        Safari. Weird.)
54626        
54627        * rendering/RenderThemeMac.h:
54628            - Renamed data members to m_*, to match our style guidelines.
54629            - Renamed *Is* to is**, to match our style guidelines.
54630            - Removed a few unnecessary data members.
54631            - Made cached values like m_checkbox mutable, since they can change
54632            inside functions that don't change the logical state of a RenderTheme
54633            object. (The alternative was to make some const functions non-const.)
54634
54635        (WebCore::RenderThemeMac::paintMenuList): Took CFType pointers that just 
54636        used to leak and placed them in RetainPtrs.
54637        (WebCore::RenderThemeMac::paintMenuListButtonGradients): ditto
54638
54639        Factored inline implementations of lazy initialization into these accessor
54640        functions, for better encapsulation:
54641        
54642        (WebCore::RenderThemeMac::checkbox):
54643        (WebCore::RenderThemeMac::radio):
54644        (WebCore::RenderThemeMac::button):
54645        (WebCore::RenderThemeMac::popupButton):
54646        (WebCore::RenderThemeMac::search):
54647        (WebCore::RenderThemeMac::sliderThumbHorizontal): The inline version of
54648        this initialization used to confuse the retained data member with a local
54649        stack value, causing both a leak and a failure to initialize. Fixed now.
54650        (WebCore::RenderThemeMac::sliderThumbVertical): ditto
54651        (WebCore::RenderThemeMac::resizeCornerImage):
54652
546532007-02-19  Mitz Pettel  <mitz@webkit.org>
54654
54655        Reviewed by Hyatt.
54656
54657        - fix http://bugs.webkit.org/show_bug.cgi?id=12817
54658          REGRESSION (r18634): Table border-collapse problems with right margin
54659
54660        Test: fast/repaint/table-outer-border.html
54661
54662        * rendering/RenderTable.cpp:
54663        (WebCore::RenderTable::layout): Reordered to initialize horizontal overflow
54664        after table sections have computed their outer horizontal borders.
54665
546662007-02-19  John Sullivan  <sullivan@apple.com>
54667
54668        Reviewed by Darin
54669        
54670        - fixed <rdar://problem/4613701> REGRESSION: A line break in the source HTML of a link becomes visible after drag & drop
54671
54672        * page/DragController.cpp:
54673        (WebCore::DragController::startDrag):
54674        Call simplifyWhiteSpace() on the proposed link title to match what's displayed on the web page, instead of using the
54675        raw source HTML text.
54676
546772007-02-19  David Hyatt  <hyatt@apple.com>
54678
54679        Fix for Radar 4981605, regression where button grows randomly when a select is
54680        opened.  With the new form controls, the WinIE quirk for using line width
54681        ended up being used for them more.
54682
54683        This patch removes the quirk after verifying that Firefox doesn't implement
54684        the quirk at all.  usesLineWidth is being renamed to shrinksToAvoidFloats to
54685        make it clear that the new method only applies to block objects that avoid floats
54686        and that have auto width.
54687
54688        Also fixed a regression where whitespace after a floating <select> at the start
54689        of a block got incorrectly rendered.  Make sure skipWhitespace always skips
54690        through floating/positioned elements regardless of the whitespace setting (this
54691        way the white-space:pre value on floating <select>s doesn't cause trouble).
54692
54693        Reviewed by darin
54694
54695        fast/block/float/float-avoidance.html
54696
54697        * rendering/RenderBlock.cpp:
54698        (WebCore::RenderBlock::collapseMargins):
54699        (WebCore::RenderBlock::clearFloatsIfNeeded):
54700        (WebCore::RenderBlock::layoutBlockChildren):
54701        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
54702        * rendering/RenderBox.cpp:
54703        (WebCore::RenderBox::containingBlockWidth):
54704        * rendering/RenderObject.cpp:
54705        (WebCore::RenderObject::shrinkToAvoidFloats):
54706        * rendering/RenderObject.h:
54707        * rendering/bidi.cpp:
54708        (WebCore::RenderBlock::skipWhitespace):
54709
547102007-02-19  Zalan Bujtas  <zbujtas@gmail.com>
54711
54712        Reviewed by Darin.
54713
54714        Update stylesheet href, when document's baseUrl changes. It needs
54715        update when the stylesheet is constructed before the parser hits the base tag.
54716        http://bugs.webkit.org/show_bug.cgi?id=12214
54717
54718        * css/StyleSheet.h:
54719        (WebCore::StyleSheet::setHref):
54720        * dom/Document.cpp:
54721        (WebCore::Document::setBaseURL):
54722        * dom/Document.h:
54723
547242007-02-19  Mitz Pettel  <mitz@webkit.org>
54725
54726        Reviewed by Adam.
54727
54728        - fix http://bugs.webkit.org/show_bug.cgi?id=11518
54729          REGRESSION (r14376): View Source not available after Back navigation from a non-HTML page
54730
54731        The FrameLoader's responseMIMEType was not being updated when a page was
54732        brought back from the page cache.
54733        
54734        Moved the line that updates the MIME type from commitProvisionalLoad() to
54735        transitionToCommitted().
54736
54737        * loader/FrameLoader.cpp:
54738        (WebCore::FrameLoader::commitProvisionalLoad):
54739        (WebCore::FrameLoader::transitionToCommitted):
54740
547412007-02-19  Anders Carlsson  <acarlsson@apple.com>
54742
54743        Reviewed by Oliver.
54744
54745        Make DragController::maxDragImageSize a function to get rid of the global initializer.
54746        
54747        * page/DragController.cpp:
54748        (WebCore::DragController::doImageDrag):
54749        * page/DragController.h:
54750        * page/mac/DragControllerMac.mm:
54751        (WebCore::DragController::maxDragImageSize):
54752        * page/qt/DragControllerQt.cpp:
54753        (WebCore::DragController::maxDragImageSize):
54754
547552007-02-19  Darin Adler  <darin@apple.com>
54756
54757        Reviewed by Hyatt.
54758
54759        - <rdar://problem/5006414> REGRESSION: Crash occurs at WebCore::Frame::loader()
54760          when loading AFL Ladder widget
54761
54762        * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::openURL):
54763        Add missing null check so this fails without crashing when called on an element
54764        that's no longer in a frame.
54765
547662007-02-19  Antti Koivisto  <antti@apple.com>
54767
54768        Reviewed by Mitz.
54769
54770        - fix for http://bugs.webkit.org/show_bug.cgi?id=10990
54771          REGRESSION: Pressing a pop-up's access key doesn't focus it
54772          <rdar://problem/4823138>
54773          
54774        Focus the select element too in accessKeyAction.
54775
54776        * html/HTMLSelectElement.cpp:
54777        (WebCore::HTMLSelectElement::accessKeyAction):
54778
547792007-02-18  Antti Koivisto  <antti@apple.com>
54780
54781        Reviewed by Hyatt.
54782
54783        - really fix http://bugs.webkit.org/show_bug.cgi?id=11974
54784        REGRESSION: Caret drawn over input when smaller than font size on initial focus
54785        <rdar://problem/4960258>
54786        
54787        Avoid double painting caret when it is on a block element.
54788        
54789        Layout test for this already went in previous try (it only fails in pixel mode) in r19626.
54790
54791        * rendering/RenderBlock.cpp:
54792        (WebCore::RenderBlock::paintCaret):
54793
547942007-02-19  Lars Knoll <lars@trolltech.com>
54795
54796        Added a one line patch from Olliej to create the
54797        clipboard on demand (to stop things from crashing), 
54798        and added lots of notImplemented() warnings all 
54799        over the place.
54800
54801        * platform/qt/ClipboardQt.cpp:
54802        (WebCore::ClipboardQt::ClipboardQt):
54803        (WebCore::ClipboardQt::clearData):
54804        (WebCore::ClipboardQt::clearAllData):
54805        (WebCore::ClipboardQt::getData):
54806        (WebCore::ClipboardQt::setData):
54807        (WebCore::ClipboardQt::types):
54808        (WebCore::ClipboardQt::dragLocation):
54809        (WebCore::ClipboardQt::dragImage):
54810        (WebCore::ClipboardQt::setDragImage):
54811        (WebCore::ClipboardQt::dragImageElement):
54812        (WebCore::ClipboardQt::setDragImageElement):
54813        (WebCore::ClipboardQt::createDragImage):
54814        (WebCore::ClipboardQt::declareAndWriteDragImage):
54815        (WebCore::ClipboardQt::writeURL):
54816        (WebCore::ClipboardQt::writeRange):
54817        (WebCore::ClipboardQt::hasData):
54818        * platform/qt/DragDataQt.cpp:
54819        (WebCore::DragData::canSmartReplace):
54820        (WebCore::DragData::containsColor):
54821        (WebCore::DragData::containsPlainText):
54822        (WebCore::DragData::asPlainText):
54823        (WebCore::DragData::asColor):
54824        (WebCore::DragData::createClipboard):
54825        (WebCore::DragData::containsCompatibleContent):
54826        (WebCore::DragData::containsURL):
54827        (WebCore::DragData::asURL):
54828        (WebCore::DragData::asFragment):
54829
548302007-02-19  Lars Knoll <lars@trolltech.com>
54831
54832        Compile again.
54833
54834        * platform/qt/ClipboardQt.cpp:
54835        (WebCore::ClipboardQt::types):
54836
548372007-02-17  Lars Knoll <lars@trolltech.com>
54838
54839        Reviewed by Maciej.
54840        
54841        Additional coding by Maciej, additional review by Oliver.
54842
54843        Get rid of the FrameMac and FrameQt classes. Instead
54844        move all methods into Frame directly, and implement
54845        some platform specific methods in foo/FrameFoo.cpp.
54846
54847        Some general cleanup in Frame:
54848        * Move some methods out of Frame, to the place where they 
54849        belong.
54850        * Unify the different ways of creating the JavaScript wrappers
54851        for <object>, <embed> and <applet>
54852        * Some cleanup of the WebCoreFrameBridge
54853
54854        * ForwardingHeaders/bindings/NP_jsobject.h: Added.
54855        * ForwardingHeaders/bindings/npruntime_impl.h: Added.
54856        * ForwardingHeaders/bindings/runtime_root.h: Added.
54857        * WebCore.exp:
54858        * WebCore.xcodeproj/project.pbxproj:
54859        * bindings/js/kjs_binding.cpp:
54860        (KJS::ScriptInterpreter::shouldInterruptScript):
54861        * bindings/objc/DOM.mm:
54862        (-[DOMNode KJS::Bindings::]):
54863        * bindings/objc/DOMInternal.mm:
54864        (-[WebScriptObject _initializeScriptDOMNodeImp]):
54865        * bridge/EditorClient.h:
54866        * bridge/mac/FrameViewMac.mm:
54867        (WebCore::FrameView::updateBorder):
54868        (WebCore::FrameView::updateDashboardRegions):
54869        * bridge/mac/WebCoreAXObject.mm:
54870        (-[WebCoreAXObject rendererForView:]):
54871        * dom/Position.cpp:
54872        (WebCore::Position::next):
54873        * editing/CommandByName.cpp:
54874        (WebCore::Frame::execCopy):
54875        (WebCore::Frame::execCut):
54876        (WebCore::Frame::execPaste):
54877        * editing/Editor.cpp:
54878        (WebCore::Editor::canEdit):
54879        (WebCore::Editor::pasteWithPasteboard):
54880        (WebCore::Editor::paste):
54881        (WebCore::Editor::pasteAsPlainText):
54882        * editing/Editor.h:
54883        * editing/JSEditor.cpp:
54884        * html/HTMLAppletElement.cpp:
54885        (WebCore::HTMLAppletElement::getInstance):
54886        * html/HTMLEmbedElement.cpp:
54887        (WebCore::HTMLEmbedElement::getInstance):
54888        * html/HTMLFormElement.cpp:
54889        (WebCore::HTMLFormElement::formData):
54890        * html/HTMLObjectElement.cpp:
54891        (WebCore::HTMLObjectElement::getInstance):
54892        * loader/FrameLoader.cpp:
54893        (WebCore::FrameLoader::clear):
54894        (WebCore::FrameLoader::detachFromParent):
54895        * loader/mac/ImageDocumentMac.mm:
54896        (WebCore::finishImageLoad):
54897        * loader/qt/DocumentLoaderQt.cpp:
54898        * page/Chrome.cpp:
54899        (WebCore::Chrome::shouldInterruptJavaScript):
54900        * page/Chrome.h:
54901        * page/ChromeClient.h:
54902        * page/Frame.cpp:
54903        (WebCore::Frame::~Frame):
54904        (WebCore::Frame::markedTextRange):
54905        (WebCore::Frame::shouldChangeSelection):
54906        (WebCore::Frame::shouldDeleteSelection):
54907        (WebCore::Frame::isContentEditable):
54908        (WebCore::Frame::setSecureKeyboardEntry):
54909        (WebCore::Frame::isSecureKeyboardEntry):
54910        (WebCore::Frame::bindingRootObject):
54911        (WebCore::Frame::createRootObject):
54912        (WebCore::Frame::windowScriptNPObject):
54913        (WebCore::Frame::cleanupScriptObjects):
54914        (WebCore::FramePrivate::FramePrivate):
54915        * page/Frame.h:
54916        * page/FramePrivate.h:
54917        * page/FrameView.h:
54918        * page/mac/EventHandlerMac.mm:
54919        (WebCore::EventHandler::tabsToLinks):
54920        (WebCore::EventHandler::tabsToAllControls):
54921        (WebCore::EventHandler::focusDocumentView):
54922        (WebCore::EventHandler::passMouseDownEventToWidget):
54923        (WebCore::EventHandler::handleDrag):
54924        (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
54925        (WebCore::EventHandler::keyboardUIMode):
54926        * page/mac/FrameMac.h: Removed.
54927        * page/mac/FrameMac.mm:
54928        (WebCore::Frame::setBridge):
54929        (WebCore::Frame::bridge):
54930        (WebCore::Frame::searchForLabelsAboveCell):
54931        (WebCore::Frame::searchForLabelsBeforeElement):
54932        (WebCore::Frame::matchLabelsAgainstElement):
54933        (WebCore::Frame::focusWindow):
54934        (WebCore::Frame::unfocusWindow):
54935        (WebCore::Frame::imageFromRect):
54936        (WebCore::Frame::selectionImage):
54937        (WebCore::Frame::snapshotDragImage):
54938        (WebCore::Frame::fontAttributesForSelectionStart):
54939        (WebCore::Frame::baseWritingDirectionForSelectionStart):
54940        (WebCore::Frame::print):
54941        (WebCore::Frame::issuePasteCommand):
54942        (WebCore::Frame::issueTransposeCommand):
54943        (WebCore::Frame::respondToChangedSelection):
54944        (WebCore::Frame::textFieldDidBeginEditing):
54945        (WebCore::Frame::textFieldDidEndEditing):
54946        (WebCore::Frame::textDidChangeInTextField):
54947        (WebCore::Frame::textDidChangeInTextArea):
54948        (WebCore::Frame::doTextFieldCommandFromEvent):
54949        (WebCore::Frame::textWillBeDeletedInTextField):
54950        (WebCore::Frame::setSecureKeyboardEntry):
54951        (WebCore::Frame::isSecureKeyboardEntry):
54952        (WebCore::Frame::setMarkedTextRange):
54953        (WebCore::Frame::dashboardRegionsDictionary):
54954        (WebCore::Frame::dashboardRegionsChanged):
54955        (WebCore::Frame::willPopupMenu):
54956        (WebCore::Frame::isCharacterSmartReplaceExempt):
54957        (WebCore::Frame::setNeedsReapplyStyles):
54958        (WebCore::Frame::customHighlightLineRect):
54959        (WebCore::Frame::paintCustomHighlight):
54960        (WebCore::Frame::createScriptInstanceForWidget):
54961        (WebCore::Frame::windowScriptObject):
54962        (WebCore::Frame::cleanupPlatformScriptObjects):
54963        * page/mac/WebCoreFrameBridge.h:
54964        * page/mac/WebCoreFrameBridge.mm:
54965        (createRootObject):
54966        (bridge):
54967        (-[WebCoreFrameBridge _frame]):
54968        * page/qt/EventHandlerQt.cpp:
54969        * page/qt/FrameQt.cpp:
54970        (WebCore::Frame::unfocusWindow):
54971        (WebCore::Frame::focusWindow):
54972        (WebCore::Frame::issueTransposeCommand):
54973        (WebCore::Frame::respondToChangedSelection):
54974        (WebCore::Frame::print):
54975        (WebCore::Frame::createScriptInstanceForWidget):
54976        (WebCore::Frame::cleanupPlatformScriptObjects):
54977        (WebCore::Frame::isCharacterSmartReplaceExempt):
54978        * page/qt/FrameQt.h: Removed.
54979        * platform/MimeTypeRegistry.h:
54980        * platform/graphics/svg/SVGImage.cpp:
54981        (WebCore::SVGImage::setData):
54982        * platform/graphics/svg/SVGImageEmptyClients.h:
54983        (WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
54984        (WebCore::SVGEmptyEditorClient::shouldChangeSelectedRange):
54985        * platform/mac/ClipboardMac.h:
54986        * platform/mac/ClipboardMac.mm:
54987        (WebCore::ClipboardMac::ClipboardMac):
54988        * platform/mac/FileChooserMac.mm:
54989        (-[OpenPanelController beginSheetWithFrame:]):
54990        * platform/mac/MimeTypeRegistryMac.mm:
54991        (WebCore::MimeTypeRegistry::getMIMETypeForPath):
54992        * platform/mac/PopupMenuMac.mm:
54993        (WebCore::PopupMenu::show):
54994        * platform/mac/WidgetMac.mm:
54995        (WebCore::Widget::setFocus):
54996        (WebCore::Widget::setIsSelected):
54997        * platform/network/mac/ResourceHandleMac.mm:
54998        * platform/network/qt/ResourceHandleManagerQt.cpp:
54999        * platform/network/qt/ResourceHandleQt.cpp:
55000        (WebCore::ResourceHandle::start):
55001        * platform/qt/MimeTypeRegistryQt.cpp:
55002        (WebCore::MimeTypeRegistry::getMIMETypeForPath):
55003        * platform/qt/PopupMenuQt.cpp:
55004        * platform/qt/ScrollViewCanvasQt.cpp:
55005        * platform/qt/ScrollViewQt.cpp:
55006        * platform/win/TemporaryLinkStubs.cpp:
55007        * rendering/InlineTextBox.cpp:
55008        (WebCore::InlineTextBox::paintCustomHighlight):
55009        * rendering/RenderBox.cpp:
55010        (WebCore::RenderBox::paintCustomHighlight):
55011        * rendering/RootInlineBox.cpp:
55012        (WebCore::RootInlineBox::addHighlightOverflow):
55013        (WebCore::RootInlineBox::paintCustomHighlight):
55014
550152007-02-18  Oliver Hunt  <oliver@apple.com>
55016
55017        Reviewed by NOBODY (Buildfix).
55018
55019        Oops, missed a 'const'
55020
55021        * platform/qt/ClipboardQt.h:
55022
550232007-02-18  Oliver Hunt  <oliver@apple.com>
55024
55025        Reviewed by Adam.
55026
55027        Adding stubbed out implementation of Clipboard for Qt to stop
55028        it crashing whenever someone drags the mouse.
55029
55030        * WebCore.pro:
55031        * page/qt/EventHandlerQt.cpp:
55032        (WebCore::EventHandler::createDraggingClipboard):
55033        * platform/qt/ClipboardQt.cpp: Added.
55034        (WebCore::ClipboardQt::ClipboardQt):
55035        (WebCore::ClipboardQt::clearData):
55036        (WebCore::ClipboardQt::clearAllData):
55037        (WebCore::ClipboardQt::getData):
55038        (WebCore::ClipboardQt::setData):
55039        (WebCore::ClipboardQt::types):
55040        (WebCore::ClipboardQt::dragLocation):
55041        (WebCore::ClipboardQt::dragImage):
55042        (WebCore::ClipboardQt::setDragImage):
55043        (WebCore::ClipboardQt::dragImageElement):
55044        (WebCore::ClipboardQt::setDragImageElement):
55045        (WebCore::ClipboardQt::createDragImage):
55046        (WebCore::ClipboardQt::declareAndWriteDragImage):
55047        (WebCore::ClipboardQt::writeURL):
55048        (WebCore::ClipboardQt::writeRange):
55049        (WebCore::ClipboardQt::hasData):
55050        * platform/qt/ClipboardQt.h: Added.
55051        (WebCore::ClipboardQt::~ClipboardQt):
55052        (WebCore::ClipboardQt::isForDragging):
55053
550542007-02-18  Oliver Hunt  <oliver@apple.com>
55055
55056        Reviewed by Adam.
55057
55058        Don't even attempt to do a document based drag if there isn't a document
55059        Fixes rdar://problem/4960109
55060
55061        * page/DragController.cpp:
55062        (WebCore::DragController::tryDocumentDrag):  
55063           Null check m_document
55064        (WebCore::DragController::tryDHTMLDrag):
55065           ASSERT(m_document) -- tryDocumentDrag is the only 
55066           thing that will ever call us, but lets play it safe
55067
550682007-02-18  Adam Roben  <aroben@apple.com>
55069
55070        Reviewed by Hyatt.
55071
55072        A little preparation for <rdar://problem/5006872>.
55073
55074        * platform/PopupMenu.h:
55075
550762007-02-18  Alexey Proskuryakov  <ap@webkit.org>
55077
55078        Reviewed by Adele.
55079
55080        http://bugs.webkit.org/show_bug.cgi?id=12807
55081        XPath incorrectly converts NaN to boolean
55082
55083        Test: fast/xpath/nan-to-boolean.html
55084
55085        * xml/XPathValue.cpp:
55086        (WebCore::XPath::Value::toBoolean): Convert NaN to false.
55087        * xml/XPathFunctions.cpp:
55088        (WebCore::XPath::FunSubstringAfter::doEvaluate): Fix substring-after to actually work.
55089
550902007-02-18  Mitz Pettel  <mitz@webkit.org>
55091
55092        Reviewed by Hyatt.
55093
55094        - fix http://bugs.webkit.org/show_bug.cgi?id=12123
55095          REGRESSION: Incomplete repaint of floats' overflows
55096
55097        Tests: fast/repaint/float-overflow.html
55098               fast/repaint/float-overflow-right.html
55099               fast/repaint/table-cell-vertical-overflow.html
55100
55101        - fix http://bugs.webkit.org/show_bug.cgi?id=10116
55102          REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
55103
55104        Reflected in existing test results.
55105
55106        Unified floats and overflow for the purposes of painting and hit-testing.
55107        Overhanging and overflowing floats are now factored into a block's overflow
55108        unless their painting has been propagated to an ancestor.
55109
55110        Changed table cells to no longer expand to enclose overflow, thus making
55111        it purely "visual overflow", having no effect on layout in WebCore. It
55112        still determines scrolling dimensions.
55113
55114        * rendering/InlineFlowBox.cpp:
55115        (WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
55116        horizontal overflow in the inline box's dimensions.
55117        * rendering/RenderBlock.cpp:
55118        (WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
55119        behavior. Added code to add this block's floats (and their overflow) to its
55120        overflow rect if it is not in a block formatting context. Otherwise, the
55121        inclusion of floats in the overflow is deferred until this block's parent
55122        examines its floats and possibly adopts overhanging floats.
55123        (WebCore::RenderBlock::layoutBlockChildren):
55124        (WebCore::RenderBlock::paint): 
55125        (WebCore::RenderBlock::floatRect): Made non-virtual and changed to return an empty
55126        rect if there are no floats or the floats are clipped, instead of returning the border
55127        box.
55128        (WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
55129        are not to be painted by the parent are added to the child's overflow rect.
55130        (WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
55131        bounds to include the given rect.
55132        (WebCore::RenderBlock::nodeAtPoint):
55133        * rendering/RenderBlock.h:
55134        * rendering/RenderFlexibleBox.cpp:
55135        (WebCore::RenderFlexibleBox::layoutBlock): 
55136        (WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
55137        child, add its floats to its overflow, since painting of floats does not
55138        propagate to flexible boxes. 
55139        (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
55140        * rendering/RenderForeignObject.cpp:
55141        (WebCore::RenderForeignObject::layout):
55142        * rendering/RenderHTMLCanvas.cpp:
55143        (WebCore::RenderHTMLCanvas::layout):
55144        * rendering/RenderImage.cpp:
55145        (WebCore::RenderImage::layout):
55146        * rendering/RenderLayer.cpp:
55147        (WebCore::RenderLayer::updateLayerPositions):
55148        (WebCore::RenderLayer::absoluteBoundingBox):
55149        * rendering/RenderLayer.h:
55150        * rendering/RenderObject.cpp:
55151        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
55152        * rendering/RenderObject.h:
55153        (WebCore::RenderObject::expandsToEncloseOverhangingFloats):
55154        * rendering/RenderPath.cpp:
55155        (WebCore::RenderPath::layout):
55156        * rendering/RenderSVGContainer.cpp:
55157        (WebCore::RenderSVGContainer::layout):
55158        * rendering/RenderSVGText.cpp:
55159        (WebCore::RenderSVGText::layout):
55160        * rendering/RenderTable.h: Removed the override of overflowHeight() since now tables can have
55161        vertical overflow.
55162        * rendering/RenderTableCell.cpp:
55163        (WebCore::RenderTableCell::paint): Made sure that overflow is repainted.
55164        * rendering/RenderTableCell.h:
55165        (WebCore::RenderTableCell::expandsToEncloseOverhangingFloats): Removed.
55166        * rendering/RenderTableSection.cpp:
55167        (WebCore::RenderTableSection::RenderTableSection):
55168        (WebCore::RenderTableSection::layoutRows): Factor in vertical overflow from cells.
55169        (WebCore::RenderTableSection::paint):
55170        * rendering/RenderTableSection.h:
55171        (WebCore::RenderTableSection::overflowHeight):
55172        (WebCore::RenderTableSection::overflowTop):
55173
551742007-02-18  Oliver Hunt  <oliver@apple.com>
55175
55176        Reviewed by NOBODY (Buildfix).
55177
55178        Build fix for the build fix -- can't call something that isn't a function
55179
55180        * platform/qt/CursorQt.cpp:
55181        (WebCore::notAllowedCursor):
55182
551832007-02-18  Oliver Hunt  <oliver@apple.com>
55184
55185        Reviewed by NOBODY (Build fix).
55186
55187        Adding platform/DragImage.cpp and platform/qt/DragImageQt.cpp to the Qt
55188        project files
55189
55190        Stubbed method for WebCore::notAllowedCursor -- not sure what it should return, 
55191        have returned blank cursor, possibly needs to return something else
55192
55193        * WebCore.pro:
55194        * platform/qt/CursorQt.cpp:
55195        (WebCore::notAllowedCursor):
55196
551972007-02-18  Oliver Hunt  <oliver@apple.com>
55198
55199        Reviewed by NOBODY (Buildfix).
55200
55201        Sigh, obnoxious occasional auto conversion from float to int
55202
55203        * platform/mac/ClipboardMac.mm:
55204        (WebCore::ClipboardMac::createDragImage):
55205
552062007-02-18  Alexey Proskuryakov  <ap@webkit.org>
55207
55208        Reviewed by Hyatt.
55209
55210        http://bugs.webkit.org/show_bug.cgi?id=12799
55211        REGRESSION: Webpage doesn't load correctly (www.cincinnati.com
55212        redirects to the wrong URL)
55213
55214        Test: http/tests/misc/refresh-meta-with-newline.html
55215
55216        * platform/network/HTTPParsers.cpp:
55217        (WebCore::skipWhiteSpace):
55218        (WebCore::parseHTTPRefresh):
55219        * platform/network/HTTPParsers.h:
55220        In HTML, all characters with codes <= 0x20 are whitespace, while in
55221        HTTP, only space and tab are such.
55222
55223        * dom/Document.cpp:
55224        (WebCore::Document::processHttpEquiv):
55225        * loader/FrameLoader.cpp:
55226        (WebCore::FrameLoader::receivedFirstData):
55227        Pass parseHTTPRefresh() a flag telling about the source of data.
55228
552292007-02-18  Oliver Hunt  <oliver@apple.com>
55230
55231        Reviewed by NOBODY (Build fix).
55232
55233        Buld fix -- surprisingly RetainPtr doesn't exist on Qt
55234
55235        * platform/DragImage.h:
55236
552372007-02-18  Oliver Hunt  <oliver@apple.com>
55238
55239        Reviewed by Adam.
55240
55241        More drag and drop migration, now the entirety of the
55242        drag initiation logic has been rendered platform independent
55243        This has required a number of new interfaces, and a reasonable
55244        amount of logic migration.
55245
55246        As a side effect, this patch also fixes rdar://problem/4945341
55247
55248        There are some basic Qt stubs that should stop the build from failing,
55249        however the absence of ClipboardQt means any attempt to initiate a drag 
55250        may cause a crash.
55251
55252        * WebCore.exp:
55253           Exporting new symbols
55254
55255        * WebCore.xcodeproj/project.pbxproj:
55256           New files
55257
55258        * dom/Clipboard.cpp:
55259        (WebCore::Clipboard::canSaveAsWebArchive):
55260          Migrated from WebKit
55261
55262        * dom/Clipboard.h:
55263          Added more methods to allow Clipboard to be used as a 
55264          platform independent container for drag and drop
55265
55266        * page/DragClient.h:
55267        (WebCore::DragClient::declareAndWriteDragImage):
55268          This is a mac only helper function, so i've made it have an empty implementation,
55269          that way we won't need a PLATFORM(MAC) block in SVGImageEmptyClients
55270
55271        * page/DragController.cpp:
55272        (WebCore::DragController::dragExited):
55273        (WebCore::DragController::performDrag):
55274        (WebCore::DragController::tryDocumentDrag): 
55275        (WebCore::DragController::tryDHTMLDrag):
55276          Using RefPtrs now
55277        (WebCore::getCachedImage):
55278        (WebCore::getImage):
55279          Helper functions                   
55280        (WebCore::dragLocForDHTMLDrag):
55281        (WebCore::dragLocForSelectionDrag):
55282        (WebCore::DragController::startDrag):
55283        (WebCore::DragController::doImageDrag):
55284        (WebCore::DragController::doSystemDrag):
55285          Logic that generates drag images and clipboard content, and
55286          initiates the actual system drag operation
55287
55288        * page/DragController.h:
55289          Method and variable declarations
55290
55291        * page/EventHandler.cpp:
55292        (WebCore::EventHandler::handleDrag):
55293          handleDrag is now platform independent
55294        (WebCore::EventHandler::handleTextInputEvent):
55295           formatting
55296
55297        * page/EventHandler.h:
55298        (WebCore::EventHandler::eventLoopHandleMouseDragged):
55299          Forgot to define this stub function 
55300
55301        * page/Frame.h:
55302          Declaring dragImageForSelection to provide drag image for selected content
55303
55304        * page/mac/DragControllerMac.mm:
55305          Defining drag images control vars
55306
55307        * page/mac/EventHandlerMac.mm:
55308        (WebCore::EventHandler::createDraggingClipboard):
55309          Migrated old clipboard creation to here
55310
55311        * page/mac/FrameMac.mm:
55312        (WebCore::Frame::dragImageForSelection):
55313          Wrap FrameMac::selectionImage
55314
55315        * page/qt/DragControllerQt.cpp:
55316          Defining drag images control vars
55317
55318        * page/qt/EventHandlerQt.cpp:
55319        (WebCore::EventHandler::createDraggingClipboard):
55320          stub
55321
55322        * page/qt/FrameQt.cpp:
55323        (WebCore::Frame::dragImageForSelection):
55324          stub
55325
55326        * platform/DragImage.cpp: Added.
55327        (WebCore::fitDragImageToMaxSize):
55328        (WebCore::createDragImageForSelection):
55329           Platform independent processing for drag images
55330
55331        * platform/DragImage.h: Added.
55332           Declaring typedefs and wrapper functions to abstract the handling
55333           of drag images 
55334
55335        * platform/Pasteboard.h:
55336          Declaring extracted writeURL and writeSelection methods
55337
55338        * platform/graphics/svg/SVGImageEmptyClients.h:
55339        (WebCore::SVGEmptyDragClient::willPerformDragSourceAction):
55340        (WebCore::SVGEmptyDragClient::startDrag):
55341        (WebCore::SVGEmptyDragClient::createDragImageForLink):
55342          Stubs FTW!
55343
55344        * platform/mac/ClipboardMac.h:
55345        (WebCore::ClipboardMac::pasteboard):
55346          Provide accessor for underlying NSPasteboard
55347
55348        * platform/mac/ClipboardMac.mm:
55349        (WebCore::ClipboardMac::hasData):
55350        (WebCore::ClipboardMac::writeRange):
55351        (WebCore::ClipboardMac::writeURL):
55352        (WebCore::ClipboardMac::declareAndWriteDragImage):
55353        (WebCore::ClipboardMac::createDragImage):
55354           Implemented new Clipboarid functionality.
55355        (WebCore::ClipboardMac::dragNSImage):
55356           Made this a const method
55357
55358        * platform/mac/DragImageMac.mm: Added.
55359        (WebCore::dragImageSize):
55360        (WebCore::deleteDragImage):
55361        (WebCore::scaleDragImage):
55362        (WebCore::dissolveDragImageToFraction):
55363        (WebCore::createDragImageFromImage):
55364        (WebCore::createDragImageIconForCachedImage):
55365           Implemented platform specific DragImage functions
55366
55367        * platform/mac/PasteboardMac.mm:
55368        (WebCore::writeSelection):
55369        (WebCore::Pasteboard::writeSelection):
55370        (WebCore::writeURL):
55371        (WebCore::Pasteboard::writeURL):
55372           Extracted member implementations of these functions, so that
55373           Clipboard could also make use of this functionality.
55374           Pasteboard methods now call the new non-member implementations.
55375           Also fixed implementations to respect the list of requested types.
55376
55377        * platform/qt/DragImageQt.cpp: Added.
55378        (WebCore::dragImageSize):
55379        (WebCore::deleteDragImage):
55380        (WebCore::scaleDragImage):
55381        (WebCore::dissolveDragImageToFraction):
55382        (WebCore::createDragImageFromImage):
55383        (WebCore::createDragImageIconForCachedImage):  
55384          Stubs
55385
553862007-02-17  David Hyatt  <hyatt@apple.com>
55387
55388        Fix textarea resizers to not fill with black by making sure the fill color starts off as
55389        transparent instead of black.
55390
55391        Reviewed by aroben
55392
55393        * platform/graphics/GraphicsContext.cpp:
55394        (WebCore::GraphicsContextState::GraphicsContextState):
55395
553962007-02-17  Lars Knoll <lars@trolltech.com>
55397
55398        Reviewed by Adam.
55399
55400        fix http://bugs.webkit.org/show_bug.cgi?id=11476
55401        <rdar://problem/4960247> REGRESSION: Nesting the IMG tag inside of a
55402        MAP fails to render correctly in ToT
55403
55404        Test: fast/images/image-in-map.html
55405
55406        * html/HTMLMapElement.cpp:
55407        (WebCore::HTMLMapElement::checkDTD):
55408
554092007-02-17  Alexey Proskuryakov  <ap@webkit.org>
55410
55411        Reviewed by Maciej.
55412
55413        http://bugs.webkit.org/show_bug.cgi?id=12733
55414        XPath namespace is attached to a wrong step
55415
55416        * xml/XPathGrammar.y: NAMETEST is different from other NodeTests in that its
55417        resulting type is an expanded name, rather than a string. It is not really possible 
55418        to store the namespace inside Parser, because it gets used in wrong steps then.
55419
55420        * xml/XPathParser.cpp:
55421        (WebCore::XPath::Parser::expandQName):
55422        * xml/XPathParser.h:
55423        Moved code that expands a QName from XPathGrammar.y. Removed m_currentNamespaceURI.
55424
55425        * xml/XPathStep.cpp:
55426        (WebCore::XPath::Step::Step):
55427        * xml/XPathStep.h:
55428        Added a constructor that takes a namespace.
55429
554302007-02-17  Mitz Pettel  <mitz@webkit.org>
55431
55432        Reviewed by Maciej.
55433
55434        - fix http://bugs.webkit.org/show_bug.cgi?id=12479
55435          ASSERTION FAILURE: resource->inCache() in WebCore::Cache::remove
55436
55437        Test: fast/loader/simultaneous-reloads-assert.html
55438
55439        * loader/Cache.cpp:
55440        (WebCore::Cache::remove): Replaced the assertion with a check whether the
55441        resource is in the cache. The resource could have been removed from the cache
55442        as a result of a reload occurring simultaneously in a different document.
55443
554442007-02-12  Lars Naesbye Christensen  <lars@naesbye.dk>
55445
55446        Reviewed by Adam.
55447
55448        Fix for http://bugs.webkit.org/show_bug.cgi?id=12711
55449        Prettier and more distinct cursors
55450
55451        * Resources/crossHairCursor.png: Added.
55452        * Resources/northEastSouthWestResizeCursor.png:
55453        * Resources/northWestSouthEastResizeCursor.png:
55454        * Resources/notAllowedCursor.png: Added.
55455        * page/EventHandler.cpp: (WebCore::selectCursor):
55456        * platform/Cursor.h:
55457        * platform/mac/CursorMac.mm:
55458        (WebCore::crossCursor):
55459        (WebCore::notAllowedCursor):
55460
554612007-02-16  Mitz Pettel  <mitz@webkit.org>
55462
55463        Reviewed by Darin.
55464
55465        - fix http://bugs.webkit.org/show_bug.cgi?id=12780
55466          REGRESSION (r19341-r19385): Reproducible crash in "onselectstart" event
55467
55468        Test: fast/events/shadow-boundary-crossing.html
55469
55470        * dom/EventTargetNode.cpp:
55471        (WebCore::EventTargetNode::dispatchGenericEvent): Changed to use the new
55472        eventParentNode() function for constructing the chain of ancestors for
55473        capture and bubbling.
55474        * dom/Node.h:
55475        (WebCore::Node::eventParentNode): Added. Returns the node's parent for the
55476        purpose of of event capture and bubbling. The base class implementation is
55477        to return the parent node.
55478        * ksvg2/svg/SVGElement.h:
55479        (WebCore::SVGElement::eventParentNode): Added. Since in SVG events bubble
55480        to and can be captured across the shadow DOM boundary, returns the shadow parent
55481        for shadow nodes.
55482
554832007-02-17  Dave Hyatt <hyatt@apple.com>
55484
55485        Change how textarea resizers paint to more closely match the way the main window resizer paints.
55486        
55487        Reviewed by olliej
55488
55489        * rendering/RenderLayer.cpp:
55490        (WebCore::RenderLayer::paintOverflowControls):
55491
554922007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55493
55494        Reviewed by Adam Roben.
55495
55496        Fix crashes on ARM due to different struct packing. Based on a patch
55497        from Mike Emmel.
55498
55499        * platform/DeprecatedString.cpp: compile-time assert to make sure sizeof(DeprecatedChar) == 2
55500        * platform/DeprecatedString.h: pack DeprecatedChar struct to ensure that
55501        sizeof(DeprecatedChar) == 2. Move _internalBuffer in DeprecatedStringData
55502        to the end, to avoid crashes on ARM due to different struct packing.
55503
555042007-02-16  Adele Peterson  <adele@apple.com>
55505
55506        Reviewed by Mitz.
55507
55508        Fix for http://bugs.webkit.org/show_bug.cgi?id=11534
55509        <rdar://problem/4946947> REGRESSION: Readonly text fields don't scroll when selecting content
55510
55511        Test: fast/forms/input-readonly-autoscroll.html
55512
55513        Implemented autoscroll methods for RenderTextControl, so this works on non-editable text controls.
55514
55515        * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::autoscroll):
55516        * rendering/RenderTextControl.h: (WebCore::RenderTextControl::shouldAutoscroll):
55517
555182007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55519
55520        Reviewed by Adam Roben.
55521
55522        Curl networking improvements inspired by Mike Emmel's patches in
55523        http://bugs.webkit.org/show_bug.cgi?id=11332.
55524        Fix FrameLoaderClientGdk due to changed FrameLoaderClient API.
55525
55526        * loader/gdk/FrameLoaderClientGdk.cpp: Massage for changed API.
55527        (WebCore::FrameLoaderClientGdk::saveViewStateToItem):
55528        (WebCore::FrameLoaderClientGdk::restoreViewState):
55529        (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
55530        (WebCore::FrameLoaderClientGdk::willUseArchive):
55531        * loader/gdk/FrameLoaderClientGdk.h: Ditto.
55532        * platform/network/ResourceHandleInternal.h: Remember url and custom headers
55533        for the request lifetime and free them at the end.
55534        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
55535        * platform/network/gdk/ResourceHandleCurl.cpp: Ditto.
55536        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
55537        * platform/network/gdk/ResourceHandleManager.cpp: url improvements:
55538        - remove m_useSimple code-path since it wasn't used anywhere
55539        - don't use hashmap for keeping track of outstanding jobs - curl does it anyway
55540        - set custom headers from request
55541        - enable gzip and deflate through Accept-Encoding
55542        - setup curl to share cookies and DNS cache between requests
55543        - enable persisting of cookies in a file (if client provides file name
55544          for cookies via ResourceHandleManager::setCookieJarFileName())
55545        (WebCore::ResourceHandleManager::ResourceHandleManager):
55546        (WebCore::ResourceHandleManager::setCookieJarFileName):
55547        (WebCore::ResourceHandleManager::downloadTimerCallback):
55548        (WebCore::ResourceHandleManager::removeFromCurl):
55549        (WebCore::ResourceHandleManager::setupPUT):
55550        (WebCore::ResourceHandleManager::setupPOST):
55551        (WebCore::ResourceHandleManager::add):
55552        (WebCore::ResourceHandleManager::cancel):
55553        * platform/network/gdk/ResourceHandleManager.h:
55554
555552007-02-17  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55556
55557        Reviewed by Adam Roben.
55558
55559        Gdk fixes.
55560
55561        * page/gdk/EventHandlerGdk.cpp: Comment out chatty message.
55562        (WebCore::EventHandler::handleDrag):
55563        * platform/gdk/EditorClientGdk.cpp: Enable entering text into text field.
55564        (WebCore::EditorClientGdk::shouldInsertText):
55565
555662007-02-16  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55567
55568        Reviewed by Adam Roben.
55569
55570        Move Path implementation from TemporaryLinkStubs.cpp to
55571        its own file.
55572        Implement setLineCap, setLineJoin and setMiterLimit for
55573        cairo's GraphicsContext.
55574
55575        * WebCoreSources.bkl:
55576        * platform/gdk/TemporaryLinkStubs.cpp:
55577        * platform/graphics/cairo/GraphicsContextCairo.cpp:
55578        (WebCore::GraphicsContext::setPlatformFillColor):
55579        (WebCore::GraphicsContext::setPlatformStrokeColor):
55580        (WebCore::GraphicsContext::setLineCap):
55581        (WebCore::GraphicsContext::setLineJoin):
55582        (WebCore::GraphicsContext::setMiterLimit):
55583        * platform/graphics/cairo/PathCairo.cpp: Added.
55584        (WebCore::Path::Path):
55585        (WebCore::Path::~Path):
55586        (WebCore::Path::contains):
55587        (WebCore::Path::translate):
55588        (WebCore::Path::boundingRect):
55589        (WebCore::Path::operator=):
55590        (WebCore::Path::clear):
55591        (WebCore::Path::moveTo):
55592        (WebCore::Path::addLineTo):
55593        (WebCore::Path::addQuadCurveTo):
55594        (WebCore::Path::addBezierCurveTo):
55595        (WebCore::Path::addArcTo):
55596        (WebCore::Path::closeSubpath):
55597        (WebCore::Path::addArc):
55598        (WebCore::Path::addRect):
55599        (WebCore::Path::addEllipse):
55600        (WebCore::Path::transform):
55601        (WebCore::Path::apply):
55602
556032007-02-16  Ada Chan  <adachan@apple.com>
55604
55605        Reviewed by Adam and Maciej.
55606
55607        Use a RefPtr to store the old hover node.
55608
55609        * rendering/RenderLayer.cpp:
55610        (WebCore::RenderLayer::updateHoverActiveState):
55611
556122007-02-16  Darin Adler  <darin@apple.com>
55613
55614        Reviewed by Adele.
55615
55616        - fix <rdar://problem/4990864> ASSERT in FormDelegate.m while dragging text between frames
55617
55618        This symptom is specific to Safari, so no layout test.
55619
55620        * editing/DeleteSelectionCommand.cpp:
55621        (WebCore::DeleteSelectionCommand::doApply): Only call textWillBeDeletedInTextField if the
55622        text field is focused.
55623        * html/HTMLInputElement.cpp:
55624        (WebCore::HTMLInputElement::aboutToUnload): Only call textFieldDidEndEditing if the text
55625        field is focused.
55626        (WebCore::HTMLInputElement::dispatchBlurEvent): Remove unneeded type cast.
55627        (WebCore::HTMLInputElement::defaultEventHandler): Only call doTextFieldCommandFromEvent if
55628        the text field is focused.
55629        * rendering/RenderTextControl.cpp:
55630        (WebCore::RenderTextControl::subtreeHasChanged): Only call textDidChangeInTextArea,
55631        textFieldDidBeginEditing, and textDidChangeInTextField if the element is focused.
55632
556332007-02-16  Anders Carlsson  <acarlsson@apple.com>
55634
55635        Reviewed by Adam.
55636
55637        <rdar://problem/4943985> 
55638        REGRESSION: Dragging standalone images to Finder fails to download the image file
55639        
55640        Set the data and response on the image resource. Also, since this is platform-independent we don't need to do it in 
55641        ImageDocumentMac.mm
55642        
55643        * loader/ImageDocument.cpp:
55644        (WebCore::ImageTokenizer::finish):
55645        * loader/mac/ImageDocumentMac.h:
55646        * loader/mac/ImageDocumentMac.mm:
55647        (WebCore::finishImageLoad):
55648
556492007-02-16  David Harrison  <harrison@apple.com>
55650
55651        Reviewed by Adam.
55652
55653        <rdar://problem/5004746> Need mechanism to protect against WebKit calls from secondary threads (DOM APIs)
55654
55655        * platform/mac/LoggingMac.mm:
55656        (WebCore::_WebCoreThreadViolationCheck):
55657        Change the default to log the violations.
55658
556592007-02-16  Adele Peterson  <adele@apple.com>
55660
55661        Reviewed by Mitz.
55662
55663        Fixed: http://bugs.webkit.org/show_bug.cgi?id=12768
55664        <rdar://problem/4995250> REGRESSION: Crash occurs at WebCore::RenderLayer::scrollToOffset() when leaving page that has focus in field
55665
55666        No test case added.  This crash doesn't occur in DumpRenderTree because the B/F cache is turned off.
55667
55668        * dom/Node.cpp: (WebCore::Node::willRemove): Check that the document is not in the page cache before 
55669
55670        * dom/Element.cpp: (WebCore::Element::updateFocusAppearance): Added restorePreviousSelection argument, with appropriate default values.
55671        * dom/Element.h: ditto.
55672        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateFocusAppearance): ditto.
55673        * html/HTMLInputElement.h: ditto.
55674        * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::updateFocusAppearance): ditto.
55675        * html/HTMLTextAreaElement.h: ditto.
55676
55677        * page/PageState.cpp: (WebCore::PageState::restore): Call updateFocusAppearance on the focused node for this page.  Pass true for the
55678          restorePreviousSelection argument.
55679
55680        * rendering/RenderLayer.cpp: Added ASSERTS and nil checks on the RenderView.  It shouldn't be null, but if it is, 
55681          we'll fail silently on release builds.
55682        (WebCore::RenderLayer::updateLayerPositions):
55683        (WebCore::RenderLayer::scrollToOffset):
55684        (WebCore::RenderLayer::windowClipRect):
55685        (WebCore::RenderLayer::calculateClipRects):
55686        (WebCore::RenderLayer::calculateRects):
55687        (WebCore::RenderLayer::intersectsDamageRect):
55688        (WebCore::RenderLayer::absoluteBoundingBox):
55689
556902007-02-16  Anders Carlsson  <acarlsson@apple.com>
55691
55692        Reviewed by Darin.
55693
55694        <rdar://problem/4993055> auto_refcount_underflow_error: WebCore::FrameLoader::continueAfterNavigationPolicy () over-releases under GC
55695
55696        Add ::adoptNS and ::adoptCF methods to RetainPtr to indicate what type of reference to adopt.
55697        
55698        * platform/cf/RetainPtr.h:
55699        (WebCore::):
55700        (WebCore::adoptNSReference):
55701        (WebCore::RetainPtr::RetainPtr):
55702        (WebCore::::adoptCF):
55703        (WebCore::::adoptNS):
55704        * platform/mac/FileChooserMac.mm:
55705        (WebCore::FileChooser::FileChooser):
55706        * platform/network/mac/ResourceErrorMac.mm:
55707        (WebCore::ResourceError::operator NSError*):
55708        * platform/network/mac/ResourceRequestMac.mm:
55709        (WebCore::ResourceRequest::doUpdatePlatformRequest):
55710        * platform/network/mac/ResourceResponseMac.mm:
55711        (WebCore::ResourceResponse::nsURLResponse):
55712
557132007-02-15  Brady Eidson  <beidson@apple.com>
55714
55715        Reviewed by Lost Objective-C Hippyness (or hippiness)
55716
55717        Oh boy, did I ever botch this one up...
55718
55719        * loader/FrameLoader.cpp:
55720        (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Null check the FrameView
55721
557222007-02-15  Brady Eidson  <beidson@apple.com>
55723
55724        Reviewed by Adam's complaint
55725
55726        Adam wanted me to do an early return, instead.
55727
55728        * loader/FrameLoader.cpp:
55729        (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
55730
557312007-02-15  Brady Eidson  <beidson@apple.com>
55732
55733        Reviewed by Adele
55734
55735        Forgot to bring the null check with me when I backed this code out of 
55736        the FrameLoaderClient
55737
55738        * loader/FrameLoader.cpp:
55739        (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): null check the HistoryItem
55740
557412007-02-15  Brady Eidson  <beidson@apple.com>
55742
55743        Reviewed by Adam
55744
55745        Save scroll state for back/forward navigation in FrameLoader, not the client
55746
55747       * loader/FrameLoader.cpp:
55748        (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem): Actually save the scroll position
55749         here instead of asking the FrameLoaderClient
55750        (WebCore::FrameLoader::restoreScrollPositionAndViewState): Ditto
55751
55752        * loader/FrameLoaderClient.h: Renamed/repurposed 2 methods
55753
55754        * platform/graphics/svg/SVGImageEmptyClients.h:
55755        (WebCore::SVGEmptyFrameLoaderClient::restoreViewState): Ditto
55756        (WebCore::SVGEmptyFrameLoaderClient::saveViewStateToItem): Ditto
55757
557582007-02-15  Justin Garcia  <justin.garcia@apple.com>
55759
55760        Reviewed by harrison
55761        
55762        <rdar://problem/4989774>
55763        REGRESSION: Pasting a image into a plain text message can place image on a new line
55764
55765        <span><img><span><img></span></span> will appear as two
55766        images on different lines because of a layout/rendering
55767        bug.  This patch avoids the bug by producing cleaner
55768        markup so that the paste code can safely remove the style 
55769        spans.
55770
55771        * editing/markup.cpp:
55772        (WebCore::createMarkup): Get the default style from the
55773        editable root or body instead of the document element.
55774        This produces cleaner markup since we don't inline the 
55775        root's styles.
55776
557772007-02-15  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
55778
55779        Reviewed by Adam Roben.
55780
55781        Add gdk version of ContextMenuClient based on qt version.
55782
55783        * WebCoreSources.bkl:
55784        * page/gdk/ContextMenuClientGdk.cpp: Added.
55785        (WebCore::ContextMenuClientGdk::contextMenuDestroyed):
55786        (WebCore::ContextMenuClientGdk::getCustomMenuFromDefaultItems):
55787        (WebCore::ContextMenuClientGdk::contextMenuItemSelected):
55788        (WebCore::ContextMenuClientGdk::downloadURL):
55789        (WebCore::ContextMenuClientGdk::copyImageToClipboard):
55790        (WebCore::ContextMenuClientGdk::searchWithGoogle):
55791        (WebCore::ContextMenuClientGdk::lookUpInDictionary):
55792        (WebCore::ContextMenuClientGdk::speak):
55793        (WebCore::ContextMenuClientGdk::stopSpeaking):
55794        * page/gdk/ContextMenuClientGdk.h: Added.
55795        * webcore-base.bkl: curl is needed when building webcore_base files.
55796
557972007-02-15  Kevin Decker  <kdecker@apple.com>
55798
55799       Reviewed by Darin.
55800
55801       Fixed: <rdar://problem/4983883> Background of a .mov window should not be white
55802
55803       * loader/PluginDocument.cpp: 
55804       (WebCore::PluginTokenizer::createDocumentStructure): Set a background color of gray
55805       for full frame plug-ins, which makes it easier on the eyes. It's also the same 
55806       gray that PDFKit uses, too.
55807
558082007-02-15  Mitz Pettel  <mitz@webkit.org>
55809
55810        Reviewed by Darin.
55811
55812        - fix http://bugs.webkit.org/show_bug.cgi?id=12625
55813          REGRESSION: Crash when closing the web inspector with text selected
55814
55815        The problem was that selectionRect() was being called on a render tree that
55816        had pending style changes. The changes were committed as a side effect in
55817        the middle of traversing the render tree, and the current object got
55818        deleted as a result. The solution is to update the render tree before
55819        starting to traverse it.
55820
55821        The inspector was affected because it makes style changes in response to
55822        an AppKit notification that's sent right before the windowDidResignKey:
55823        notification, under which WebKit calls selectionRect(). I couldn't recreate
55824        the same conditions (having uncommitted style changes in the tree when the
55825        window becomes inactive) using HTML/JS in Safari, hence the lack of
55826        a regression test to go with this patch.
55827
55828        * rendering/RenderView.cpp:
55829        (WebCore::RenderView::selectionRect): Added call to updateRendering().
55830
558312007-02-15  Mitz Pettel  <mitz@webkit.org>
55832
55833        Reviewed by Darin.
55834
55835        - fix http://bugs.webkit.org/show_bug.cgi?id=10127
55836          REGRESSION: Crash undoing delete in textarea
55837
55838        Document::removeMarkers() was using a Vector iterator (which is just a
55839        pointer) and inserting into the Vector at the same time, which made the
55840        iterator invalid as the Vector's data buffer was relocated.
55841        
55842        Replaced all instances of Vector<DocumentMarker>::iterator with indices.
55843
55844        * dom/Document.cpp:
55845        (WebCore::Document::addMarker):
55846        (WebCore::Document::copyMarkers):
55847        (WebCore::Document::removeMarkers):
55848        (WebCore::Document::repaintMarkers):
55849        (WebCore::Document::shiftMarkers):
55850
558512007-02-15  Mitz Pettel  <mitz@webkit.org>
55852
55853        Reviewed by Darin.
55854
55855        - http://bugs.webkit.org/show_bug.cgi?id=12777
55856          REGRESSION (r18574): User profile pages display incorrectly at ebay.ca
55857
55858        Fixes existing layout tests: tables/mozilla/bugs/bug45486.html
55859                                     tables/mozilla_expected_failures/core/col_span2.html
55860
55861        * rendering/AutoTableLayout.cpp:
55862        (WebCore::AutoTableLayout::calcEffectiveWidth): Fixed a mismatch between which
55863        columns count as percentage columns when adding up the total percent and
55864        which columns count as percentage columns when converting non-percentage
55865        columns to effectively-percentage.
55866
558672007-02-14  Mitz Pettel  <mitz@webkit.org>
55868
55869        Reviewed by Sam Weinig!
55870
55871        - fix http://bugs.webkit.org/show_bug.cgi?id=12773
55872          REGRESSION (r19490): Crash on ipx-server.de
55873
55874        * manual-tests/background-image-change-in-page-cache.html: Added.
55875        * rendering/RenderBox.cpp:
55876        (WebCore::RenderBox::imageChanged): Bail out if the object is not in a view,
55877        which can happen if the document is in the page cache and the same cached
55878        image used for its background is also being used in another document that
55879        is currently in view.
55880
558812007-02-14  Adam Roben  <aroben@apple.com>
55882
55883        Reviewed by Darin.
55884
55885        Fix http://bugs.webkit.org/show_bug.cgi?id=12517
55886        <rdar://problem/4971227> REGRESSION: Tab order incorrect when input
55887        inside frame/iframe gets initial focus (12517)
55888
55889        Test: fast/events/frame-programmatic-focus.html
55890
55891        * dom/Element.cpp:
55892        (WebCore::Element::focus): Call FocusController::setFocusedNode to set
55893        the focus for the whole page.
55894        * html/HTMLInputElement.cpp:
55895        (WebCore::HTMLInputElement::focus): Ditto.
55896        * html/HTMLTextAreaElement.cpp:
55897        (WebCore::HTMLTextAreaElement::focus): Ditto.
55898        * page/EventHandler.cpp:
55899        (WebCore::EventHandler::handleTextInputEvent): Send the textInput
55900        event to the same target that was sent the keypress event before it.
55901        * page/FocusController.cpp:
55902        (WebCore::FocusController::advanceFocus): Added a FIXME.
55903        (WebCore::FocusController::setFocusedNode): Added. Sets the focused
55904        node for a whole page.
55905        * page/FocusController.h: Added declaration.
55906        * platform/cf/RetainPtr.h: Removed unused pointer_cast functions.
55907
559082007-02-14  Justin Garcia  <justin.garcia@apple.com>
55909
55910        Reviewed by adele
55911        
55912        <rdar://problem/4976800>
55913        Outdent combines 2 separate strings on 2 different lines
55914
55915        * editing/IndentOutdentCommand.cpp:
55916        (WebCore::IndentOutdentCommand::outdentParagraph): Add line breaks
55917        if removing the indented node causes content before or after it to
55918        collapse into the same paragraph as its content.
55919
559202007-02-14  Justin Garcia  <justin.garcia@apple.com>
55921
55922        Reviewed by adele
55923        
55924        <rdar://problem/4960120>
55925        REGRESSION: First Enter key ignored on initial focus of textarea after page load (11967)
55926        
55927        We'd insert a newline, but into an empty div.  We need two newlines
55928        in that case.
55929
55930        * editing/InsertLineBreakCommand.cpp:
55931        (WebCore::lineBreakExistsAtPosition): Returns true if there is a
55932        br or a '\n' in text that preserves newlines at the incoming position.
55933        (WebCore::InsertLineBreakCommand::doApply): Fixed to handle the empty
55934        block case, the anonymous block case.
55935
559362007-02-14  Darin Adler  <darin@apple.com>
55937
55938        Reviewed by Hyatt.
55939
55940        - test or http://bugs.webkit.org/show_bug.cgi?id=12417
55941          <rdar://problem/4990046> REGRESSION: pressing "Return" in a <select>
55942          box does not submit the form (12697)
55943
55944        Test: fast/forms/select-enter-key.html
55945
55946        * html/HTMLSelectElement.cpp:
55947        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
55948        Add code to submit when someone hits the Enter key.
55949
559502007-02-14  Anders Carlsson  <acarlsson@apple.com>
55951
55952        Reviewed by Darin.
55953
55954        <rdar://problem/4960112>
55955        http://bugs.webkit.org/show_bug.cgi?id=12417
55956        REGRESSION: "Are you sure you want to send a form again?" sheet is displayed twice (validator.w3.org)
55957        
55958        The problem was that doing a reload would cause the "Cache-Control" HTTP header to be set on the request _after_ the first
55959        navigation policy delegate callback was called. This would break the request equality check that's used to prevent multiple policy
55960        delegate callbacks from getting called for the same request. The solution is to set the header as early as possible.
55961        
55962        This patch also fixes some bugs in the ResourceRequest equality operator.
55963        
55964        * loader/FrameLoader.cpp:
55965        (WebCore::FrameLoader::reload):
55966        Set the "Cache-Control" header field on the request here.
55967        
55968        * platform/network/FormData.h:
55969        (WebCore::operator==):
55970        Short-circuit if the pointers are the same.
55971        
55972        * platform/network/ResourceRequest.cpp:
55973        (WebCore::operator==):
55974        Check the equality of the objects, not the pointers.
55975
559762007-02-14  David Hyatt  <hyatt@apple.com>
55977
55978        Move setPlatformData out of FontFallbackListMac.mm and delete the file.  The function was completely
55979        cross-platform already.
55980
55981        Reviewed by Ada
55982
55983        * WebCore.xcodeproj/project.pbxproj:
55984        * platform/FontFallbackList.cpp:
55985        (WebCore::FontFallbackList::setPlatformFont):
55986
559872007-02-14  David Hyatt  <hyatt@apple.com>
55988
55989        Make the Font constructor that takes a FontPlatformData cross-platform, since the implementation was already
55990        completely cross-platform.
55991
55992        Reviewed by Ada
55993
55994        * platform/Font.cpp:
55995        (WebCore::Font::Font):
55996        * platform/Font.h:
55997        * platform/mac/FontMac.mm:
55998
559992007-02-14  Antti Koivisto  <antti@apple.com>
56000
56001        Reverting http://bugs.webkit.org/show_bug.cgi?id=11974, it causes repainting problems in some cases.
56002
56003        * rendering/RenderTextControl.h:
56004        (WebCore::RenderTextControl::avoidsFloats):
56005
560062007-02-14  Antti Koivisto  <antti@apple.com>
56007
56008        Reviewed by Maciej.
56009        
56010        - fix http://bugs.webkit.org/show_bug.cgi?id=11974
56011        REGRESSION: Caret drawn over input when smaller than font size on initial focus
56012        <rdar://problem/4960258>
56013        
56014        Set controlClip for non-search text controls.
56015
56016        * rendering/RenderTextControl.h:
56017        (WebCore::RenderTextControl::hasControlClip):
56018
560192007-02-14  Mitz Pettel  <mitz@webkit.org>
56020
56021        Reviewed by Hyatt.
56022
56023        - fix http://bugs.webkit.org/show_bug.cgi?id=12726
56024          REGRESSION (r12073): Text wraps in the middle of a word instead of wrapping at the space before the word
56025
56026        Test: fast/text/break-word.html
56027
56028        The wrapW variable used to keep track of the width of the characters scanned
56029        so far by adding up the widths of individual characters. Because of the
56030        rounding hack, the total ended up being bigger than the width of the same characters
56031        when measured together as a single run.
56032
56033        The fix is to use wrapW only as an upper bound, and once it overflows the line's width,
56034        fall back on measuring everything from the beginning of the line as one run.
56035
56036        * rendering/bidi.cpp:
56037        (WebCore::RenderBlock::findNextLineBreak): Implemented the above fix, including not measuring
56038        additional single characters once wrapW overflows the line. Also moved the assignment
56039        to breakNBSP out of the loop since it is constant for the entire text object, made breakWords and
56040        midWordBreak update only when they might change, and cleaned up a few things.
56041
560422007-02-14  Antti Koivisto  <antti@apple.com>
56043
56044        Reviewed by Hyatt.
56045
56046        - fix http://bugs.webkit.org/show_bug.cgi?id=11923
56047        REGRESSION: Placeholder text in password field shows as bullets
56048        <rdar://problem/4960257> 
56049        
56050        Disable textSecurity when placeholder is visible.
56051        
56052        * rendering/RenderTextControl.cpp:
56053        (WebCore::RenderTextControl::updatePlaceholder):
56054
560552007-02-13  Alexey Proskuryakov  <ap@webkit.org>
56056
56057        Reviewed by Mark Rowe.
56058
56059        http://bugs.webkit.org/show_bug.cgi?id=12763
56060        REGRESSION: button title is displayed incorrectly at quotes.burntelectrons.org
56061
56062        Test: fast/parser/entities-in-attributes.xhtml
56063
56064        * dom/XMLTokenizer.cpp:
56065        (WebCore::getEntityHandler): Set a correct type for the found entity (I'm not really
56066        sure if XML_INTERNAL_GENERAL_ENTITY is _the_ correct one, but it fixes the problem).
56067
560682007-02-13  Darin Adler  <darin@apple.com>
56069
56070        Reviewed by Hyatt.
56071
56072        - removed some bogus names (Hyatt smacked me since this doesn't fix a P1)
56073
56074        * dom/EventNames.h: Removed half-implemented khtmlDragdrop and khtmlMove
56075        (you could add listeners, but nobody ever sent the events). Renamed the
56076        other two khtml-prefixed internal event names to use the webkit prefix.
56077
56078        * bindings/js/kjs_dom.cpp:
56079        (KJS::DOMEventTargetNode::getValueProperty): Removed ondragdrop and onmove.
56080        (KJS::DOMEventTargetNode::putValueProperty): Ditto.
56081        * bindings/js/kjs_dom.h:
56082        * bindings/js/kjs_window.cpp:
56083        (KJS::Window::getValueProperty): Ditto.
56084        (KJS::Window::put): Ditto.
56085        * bindings/js/kjs_window.h:
56086
56087        * dom/BeforeTextInsertedEvent.cpp:
56088        (WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent): Renamed to webkit.
56089        * editing/Editor.cpp:
56090        (WebCore::dispatchEditableContentChangedEvents): Ditto.
56091        * editing/ReplaceSelectionCommand.cpp:
56092        (WebCore::ReplacementFragment::ReplacementFragment): Ditto.
56093        * html/HTMLTextFieldInnerElement.cpp:
56094        (WebCore::HTMLTextFieldInnerTextElement::defaultEventHandler): Ditto.
56095
560962007-02-13  Darin Adler  <darin@apple.com>
56097
56098        Rubber stamped by Maciej.
56099
56100        * dom/EventNames.h: Resort names. Removed unused names.
56101
561022007-02-13  Anders Carlsson  <acarlsson@apple.com>
56103
56104        Reviewed by Kevin Decker.
56105
56106        <rdar://problem/4990049> 
56107        http://bugs.webkit.org/show_bug.cgi?id=12718
56108        REGRESSION: Segmentation fault when loading abc.go.com (12718)
56109
56110        The problem is that redirecting to about:blank causes the delegate to be released even though the load wasn't finished.
56111        This is usally not a problem since NSURLConnection retains its delegate. However, the proxy delegate does not retain _it's_ 
56112        delegate. The solution is to make releaseDelegate clear out the proxy delegate's delegate.
56113        
56114        * platform/network/mac/ResourceHandleMac.mm:
56115        (WebCore::ResourceHandle::releaseDelegate):
56116        If there's a proxy, nil out its delegate too.
56117
561182007-02-13  Matt Perry  <mpcomplete@chromium.org>
56119
56120        Reviewed by Darin.
56121
56122        - fix for http://bugs.webkit.org/show_bug.cgi?id=12750
56123          Vector operator== was not defined correctly. It returned void,
56124          did not accept const Vectors, and used an int instead of size_t. 
56125
56126        * rendering/RenderStyle.h: Added a != operator for StyleDashboardRegion.
56127        The only reason this compiled before was that the comparing two vectors
56128        with a != was simply comparing the pointers.
56129
561302007-02-13  Darin Adler  <darin@apple.com>
56131
56132        - roll out fix for <rdar://problem/4874059> REGRESSION: Painter IX:register -
56133          Crash in WebCore:: ResourceLoader::willSendRequest()
56134
56135        This fix was causing a crash in at least one layout test.
56136
56137        * loader/FrameLoader.cpp:
56138        (WebCore::FrameLoader::stopAllLoaders):
56139        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
56140
561412007-02-13  Mitz Pettel  <mitz@webkit.org>
56142
56143        Reviewed by Hyatt.
56144
56145        - fix http://bugs.webkit.org/show_bug.cgi?id=12746
56146        REGRESSION (r13853): List item's first line overflows containing div
56147
56148        Test: fast/lists/item-not-in-list-line-wrapping.html
56149
56150        * rendering/bidi.cpp:
56151        (WebCore::RenderBlock::findNextLineBreak): Use the list marker's isInside()
56152        instead of looking at its style()->listStylePosition(), since if the
56153        list item is not in a list, the marker is inside regardless of the style.
56154
561552007-02-13  Rob Buis  <buis@kde.org>
56156
56157        Reviewed by Maciej.
56158
56159        http://bugs.webkit.org/show_bug.cgi?id=12578
56160        WebKit incorrectly strokes zero-width/height rectangles
56161
56162        Create an empty path when encountering zero-width/height rectangles, similar to circles with zero radius.
56163
56164        * platform/graphics/Path.cpp:
56165        (WebCore::Path::createRectangle):
56166
561672007-02-13  Rob Buis  <buis@kde.org>
56168
56169        Reviewed by Maciej.
56170
56171        Remove SVGDOMImplementation from the project.
56172
56173        * CMakeLists.txt:
56174        * WebCore.pro:
56175        * ksvg2/svg/SVGDOMImplementation.cpp: Removed.
56176        * ksvg2/svg/SVGDOMImplementation.h: Removed.
56177
561782007-02-13  Brady Eidson <beidson@apple.com>
56179
56180        Reviewed by Maciej and Adam
56181
56182        Fixes <rdar://problem/4985497> - Crash when opening a new window to "Same Page"
56183
56184        * loader/FrameLoader.cpp:
56185        (WebCore::FrameLoader::loadItem): Null check documentLoader() since if we're a brand new 
56186          WebView, cloning the history of another view, we have no documentLoader()
56187
561882007-02-12  Antti Koivisto  <antti@apple.com>
56189
56190        Reviewed by Maciej.
56191
56192        -fix REGRESSION: <select disabled size="5"> listbox cannot be scrolled
56193        http://bugs.webkit.org/show_bug.cgi?id=11852
56194        <rdar://problem/4960129>
56195        
56196        Pass mouse press events to scrollbars even if event is swallowed.
56197        
56198        No layout test, DumpRenderTree eventSender can't hit scrollbars.
56199
56200        * page/EventHandler.cpp:
56201        (WebCore::EventHandler::handleMousePressEvent):
56202
562032007-02-12  David Hyatt  <hyatt@apple.com>
56204
56205        Fix for bug 12149 (Radar Bug#4928692), external CSS causes incomplete
56206        text field focus.
56207
56208        Make sure to clear out the focus node in willRemove() rather than in
56209        detach(), since detach/attach caused by style recalc should not affect
56210        the focused node.
56211
56212        Reviewed by aroben
56213
56214        * dom/ContainerNode.cpp:
56215        (WebCore::ContainerNode::willRemove):
56216        * dom/Document.cpp:
56217        (WebCore::Document::focusedNodeRemoved):
56218        (WebCore::Document::setFocusedNode):
56219        * dom/Document.h:
56220        * dom/Element.cpp:
56221        (WebCore::Element::updateFocusAppearance):
56222        * dom/Node.cpp:
56223        (WebCore::Node::willRemove):
56224        (WebCore::Node::detach):
56225        * html/HTMLInputElement.cpp:
56226        (WebCore::HTMLInputElement::updateFocusAppearance):
56227
562282007-02-12  Kevin McCullough  <kmccullough@apple.com>
56229
56230        - reverting fix for rdar://problem/4922454 because it caused regressions
56231          and performance problems
56232
56233        * bindings/objc/DOM.mm:
56234        (-[DOMElement image]):
56235        (-[DOMElement _imageTIFFRepresentation]):
56236        * dom/XMLTokenizer.cpp:
56237        (WebCore::XMLTokenizer::notifyFinished):
56238        * html/HTMLImageLoader.cpp:
56239        (WebCore::HTMLImageLoader::dispatchLoadEvent):
56240        * html/HTMLTokenizer.cpp:
56241        (WebCore::HTMLTokenizer::reset):
56242        (WebCore::HTMLTokenizer::notifyFinished):
56243        * ksvg2/misc/SVGImageLoader.cpp:
56244        (WebCore::SVGImageLoader::dispatchLoadEvent):
56245        * loader/Cache.cpp:
56246        (WebCore::Cache::requestResource):
56247        (WebCore::Cache::remove):
56248        * loader/CachedImage.h:
56249        (WebCore::CachedImage::canRender):
56250        (WebCore::CachedImage::isErrorImage):
56251        * loader/CachedResource.h:
56252        * loader/CachedScript.h:
56253        (WebCore::CachedScript::errorOccurred):
56254        * loader/DocLoader.cpp:
56255        (WebCore::DocLoader::requestResource):
56256        (WebCore::DocLoader::setLoadInProgress):
56257        * loader/FrameLoader.cpp:
56258        (WebCore::FrameLoader::canLoad):
56259        * page/EventHandler.cpp:
56260        (WebCore::selectCursor):
56261        * rendering/HitTestResult.cpp:
56262        (WebCore::HitTestResult::image):
56263        * rendering/RenderImage.cpp:
56264        (WebCore::RenderImage::setCachedImage):
56265        (WebCore::RenderImage::imageChanged):
56266        (WebCore::RenderImage::paint):
56267        (WebCore::RenderImage::layout):
56268        (WebCore::RenderImage::calcAspectRatioWidth):
56269        (WebCore::RenderImage::calcAspectRatioHeight):
56270        * rendering/RenderImage.h:
56271        (WebCore::RenderImage::isErrorImage):
56272        * rendering/RenderListItem.cpp:
56273        (WebCore::RenderListItem::setStyle):
56274        * rendering/RenderListMarker.cpp:
56275        (WebCore::RenderListMarker::isImage):
56276
562772007-02-12  Mitz Pettel  <mitz@webkit.org>
56278
56279        Reviewed by Dave Hyatt.
56280
56281        - fix http://bugs.webkit.org/show_bug.cgi?id=12123
56282          REGRESSION: Incomplete repaint of floats' overflows
56283
56284        Tests: fast/repaint/float-overflow.html
56285               fast/repaint/float-overflow-right.html
56286
56287        - fix http://bugs.webkit.org/show_bug.cgi?id=10116
56288          REGRESSION: Menu item drawn 2 pixels short on WWDC 2006 Attendee Site
56289
56290        Reflected in existing test results.
56291
56292        Unified floats and overflow for the purposes of painting and hit-testing.
56293        Overhanging and overflowing floats are now factored into a block's overflow
56294        unless their painting has been propagated to an ancestor.
56295
56296        Changed table cells to no longer expand to enclose overflow, thus making
56297        it purely "visual overflow", having no effect on layout in WebCore. It
56298        still determines scrolling dimensions.
56299
56300        * rendering/InlineFlowBox.cpp:
56301        (WebCore::InlineFlowBox::placeBoxesHorizontally): Include inline blocks'
56302        horizontal overflow in the inline box's dimensions.
56303        * rendering/RenderBlock.cpp:
56304        (WebCore::RenderBlock::layoutBlock): Removed the expand to enclose overflows
56305        behavior. Added code to add this block's floats (and their overflow) to its
56306        overflow rect if it is not in a block formatting context. Otherwise, the
56307        inclusion of floats in the overflow is deferred until this block's parent
56308        examines its floats and possibly adopts overhanging floats.
56309        (WebCore::RenderBlock::layoutBlockChildren):
56310        (WebCore::RenderBlock::paint): 
56311        (WebCore::RenderBlock::floatRect): Changed to return an empty rect if there
56312        are no floats or the floats are clipped, instead of returning the border box.
56313        (WebCore::RenderBlock::addOverhangingFloats): Any floats of the child that
56314        are not to be painted by the parent are added to the child's overflow rect.
56315        (WebCore::RenderBlock::addVisualOverflow): Added. Adjusts the overflow
56316        bounds to include the given rect.
56317        (WebCore::RenderBlock::nodeAtPoint):
56318        * rendering/RenderBlock.h:
56319        * rendering/RenderFlexibleBox.cpp:
56320        (WebCore::RenderFlexibleBox::layoutBlock): 
56321        (WebCore::RenderFlexibleBox::layoutHorizontalBox): After placing a normal
56322        child, add its floats to its overflow, since painting of floats does not
56323        propagate to flexible boxes. 
56324        (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
56325        * rendering/RenderForeignObject.cpp:
56326        (WebCore::RenderForeignObject::layout):
56327        * rendering/RenderHTMLCanvas.cpp:
56328        (WebCore::RenderHTMLCanvas::layout):
56329        * rendering/RenderImage.cpp:
56330        (WebCore::RenderImage::layout):
56331        * rendering/RenderLayer.cpp:
56332        (WebCore::RenderLayer::updateLayerPositions):
56333        (WebCore::RenderLayer::absoluteBoundingBox):
56334        * rendering/RenderLayer.h:
56335        * rendering/RenderObject.cpp:
56336        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
56337        * rendering/RenderObject.h:
56338        (WebCore::RenderObject::expandsToEncloseOverhangingFloats):
56339        * rendering/RenderPath.cpp:
56340        (WebCore::RenderPath::layout):
56341        * rendering/RenderSVGContainer.cpp:
56342        (WebCore::RenderSVGContainer::layout):
56343        * rendering/RenderSVGText.cpp:
56344        (WebCore::RenderSVGText::layout):
56345        * rendering/RenderTable.cpp:
56346        (WebCore::RenderTable::layout):
56347        * rendering/RenderTableCell.h:
56348        (WebCore::RenderTableCell::expandsToEncloseOverhangingFloats):
56349
563502007-02-12  Darin Adler  <darin@apple.com>
56351
56352        Reviewed by Hyatt.
56353
56354        - fix http://bugs.webkit.org/show_bug.cgi?id=12668
56355          <rdar://problem/4893344> REGRESSION: underline not visible for the international
56356          input inline hole in most text fields (12668)
56357
56358        - fix bug where overline and line-through were 1px lower than we intended
56359
56360        * platform/graphics/GraphicsContext.h: Removed unneeded y offset parameter.
56361        * platform/graphics/cairo/GraphicsContextCairo.cpp:
56362        (WebCore::GraphicsContext::drawLineForText): Removed bogus y offset and +1.
56363        * platform/graphics/cg/GraphicsContextCG.cpp:
56364        (WebCore::GraphicsContext::drawLineForText): Ditto.
56365        * platform/graphics/qt/GraphicsContextQt.cpp:
56366        (WebCore::GraphicsContext::drawLineForText): Ditto.
56367
56368        * rendering/InlineFlowBox.cpp:
56369        (WebCore::InlineFlowBox::paintTextDecorations): Added the "+1" that used to be
56370        inside drawLineForText to the underline-drawing code. Changed the other callers
56371        of drawLineForText to include the y offset in the y coordinate.
56372        * rendering/InlineTextBox.cpp:
56373        (WebCore::InlineTextBox::paintDecoration): Ditto. Also renamed _tx and _ty to
56374        remove the gratuitious underscores.
56375        (WebCore::InlineTextBox::paintMarkedTextUnderline): Made the default thickness
56376        be 1px instead of 0 (which ends up being roughly 1px in the CG code path anyway).
56377        Fixed the code computing the position to put the underline at the bottom of the
56378        line (different from regular underlines which are put 1px under the baseline).
56379        The old code used to put the underline 1px further down in the thick case, and
56380        2px further down in the non-thick case. Both of those are bad, because they
56381        could be completely clipped out in many cases.
56382
563832007-02-12  Anders Carlsson  <acarlsson@apple.com>
56384
56385        Reviewed by Darin.
56386
56387        <rdar://problem/4846962>
56388        Aperture: Aperture 1.5 - DOM exception occurs when exporting a web gallery
56389
56390        * dom/ContainerNode.cpp:
56391        (WebCore::ContainerNode::replaceChild):
56392        Call checkReplaceChild here.
56393        
56394        * dom/Document.cpp:
56395        (WebCore::Document::canReplaceChild):
56396        * dom/Document.h:
56397        Add implementation of canReplaceChild that makes sure that doing the replacement won't cause
56398        more than one element and document type node to end up in the document.
56399        
56400        * dom/Node.cpp:
56401        (WebCore::Node::canReplaceChild):
56402        Base implementation of canReplaceChild.
56403        
56404        (WebCore::Node::checkReplaceChild):
56405        New function that does what checAddChild does but calls canReplaceChild.
56406        
564072007-02-12  Kevin Decker <kdecker@apple.com>
56408
56409        Reviewed by Anders.
56410
56411        Fixed: <rdar://problem/4874059> REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
56412        
56413        What happened here was that a WebDataSource was being dealloced *while* a load for that resource is still in progress. 
56414
56415        * loader/FrameLoader.cpp:
56416        (WebCore::FrameLoader::stopAllLoaders): Calling stopAllLoaders cancels loads and informs the frame load delegate accordingly.
56417        The delegate however may decide to kick off a new provisional load as the result of the cancel. Therefore a local variable 
56418        for the provisional and main doucment loader is introduced, and we now only nil out the provisional loader if the local and
56419        member provisional variables represent the exact same load.
56420        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Added the same check here, too.
56421
564222007-02-12  Lars Knoll  <lars@trolltech.com>
56423
56424        Reviewed by Mitz.
56425
56426        Do not create child renderers for table column groups
56427        if the child has not a table column display type.
56428
56429        * dom/Node.cpp:
56430        (WebCore::Node::createRendererIfNeeded):
56431        * rendering/RenderObject.h:
56432        (WebCore::RenderObject::isChildAllowed):
56433        * rendering/RenderTableCol.cpp:
56434        (WebCore::RenderTableCol::isChildAllowed):
56435        * rendering/RenderTableCol.h:
56436
564372007-02-12  Antti Koivisto  <antti@apple.com>
56438
56439        Reviewed by Mitz
56440
56441        Fix assertion failure in layout test.
56442
56443        * html/HTMLMapElement.cpp:
56444        (WebCore::HTMLMapElement::parseMappedAttribute):
56445
564462007-02-12  Kevin McCulough  <kmccullough@apple.com>
56447
56448        Reviewed by Brady.
56449
56450        - Fixing a performance regression caused by r19500.  The heart of the matter
56451        is that we now call canLoad on every resource request even ones in the cache,
56452        to avoid a security issue. So I could not take out the canLoad call, but I
56453        but I could try to make it more efficient.
56454
56455        * loader/DocLoader.cpp:
56456        (WebCore::DocLoader::requestResource):
56457        (WebCore::DocLoader::setLoadInProgress):
56458        * loader/FrameLoader.cpp:
56459        (WebCore::FrameLoader::canLoad):
56460
564612007-02-12  Darin Adler  <darin@apple.com>
56462
56463        Reviewed by Oliver.
56464
56465        - fix http://bugs.webkit.org/show_bug.cgi?id=12677
56466          <rdar://problem/4759563> REGRESSION: Return key is always sent when you confirm
56467          a clause in kotoeri (12677)
56468
56469        - fix http://bugs.webkit.org/show_bug.cgi?id=12596
56470          <rdar://problem/4794346> REGRESSION: Tab key shifts form field focus instead of
56471          navigating prediction window (12596)
56472
56473        - fix http://bugs.webkit.org/show_bug.cgi?id=10010
56474          <rdar://problem/4822935> REGRESSION: Pressing Return with unconfirmed text in
56475          Hangul inserts carriage return (10010)
56476
56477        - fix http://bugs.webkit.org/show_bug.cgi?id=12531
56478          <rdar://problem/4975126> REGRESSION: Inline text input types repeated keys in
56479          latest nightly (r19336) (12531)
56480
56481        - fix http://bugs.webkit.org/show_bug.cgi?id=12539
56482          <rdar://problem/4975130> REGRESSION: Pressing Backspace while in inline input
56483          area moves to the previous page in history (12539)
56484
56485        This area still needs work because keypress events are being sent for all the
56486        events before they go to the input methods, and it seems that this is not
56487        compatible with what other browsers do and with what sites assume. That's covered
56488        by this bug:
56489
56490            http://bugs.webkit.org/show_bug.cgi?id=10871
56491            <rdar://problem/4823129> REGRESSION: IME key events different in nightly (10871)
56492
56493        which is still open.
56494
56495        * bindings/objc/ExceptionHandlers.h: Remove selectRange helper that doesn't really
56496        belong here, and also isn't needed since the callers don't want to raise ObjC
56497        exceptions.
56498        * bindings/objc/ExceptionHandlers.mm: Ditto. Also removed unneeded external globals
56499        that aren't exported anyway and unneeded includes.
56500
56501        * bridge/EditorClient.h: Added Mac-specific function, markedTextAbandoned. Long term
56502        this might move into platform instead, but it's fine to have it on the client for now
56503        as long as it doesn't cause trouble for platforms other than Mac.
56504
56505        * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): Since
56506        all the event handling code in this function is intended to run on the node itself,
56507        not parent nodes, check and do nothing if this event is bubbling up from another
56508        node. Added code to call a function on EventHandler for default handling of text
56509        input events.
56510
56511        * dom/KeyboardEvent.h:
56512        * dom/KeyboardEvent.cpp: (WebCore::findKeyboardEvent): Added. Just like the
56513        findUIEventWithKeyState function, but specific to keyboard events.
56514
56515        * dom/TextEvent.h: Added isLineBreak and isBackTab flags so that we can carry
56516        additional information about what a text input event is trying to do, but still
56517        go through the DOM event machinery.
56518        * dom/TextEvent.cpp: Ditto.
56519
56520        * editing/Editor.h:
56521        * editing/Editor.cpp:
56522        (WebCore::Editor::handleKeyPress): Removed unneeded check of isCaretOrRange, since
56523        isContentEditable already checks that.
56524        (WebCore::Editor::canEdit): Ditto.
56525        (WebCore::Editor::canEditRichly): Ditto.
56526        (WebCore::Editor::canPaste): Changed to call canEdit for brevity.
56527        (WebCore::Editor::replaceSelectionWithText): Changed to take a const String&.
56528        (WebCore::Editor::shouldInsertText): Ditto.
56529        (WebCore::hasEditableSelection): Removed unneeded check of isCaretOrRange, since
56530        isContentEditable already checks that.
56531        (WebCore::Editor::Editor): Initialize the new m_ignoreMarkedTextSelectionChange
56532        flag. Moved here from WebHTMLView.
56533        (WebCore::Editor::insertText): Moved most of the code from -[WebHTMLView insertText:]
56534        here, since this needs to be done in response to a text input event and we don't want
56535        to go back over the WebKit side for that.
56536        (WebCore::Editor::insertLineBreak): Added. Moved here from -[WebHTMLView insertLineBreak:]
56537        for the same reason -- needs to be done in response to text input events.
56538        (WebCore::Editor::insertParagraphSeparator): Ditto.
56539        (WebCore::Editor::selectMarkedText): Added. Used by insertText.
56540        (WebCore::Editor::discardMarkedText): Added. Used by insertText.
56541        (WebCore::Editor::unmarkText): Added. Used by insertText.
56542        * editing/mac/EditorMac.mm:
56543        (WebCore::Editor::unmarkText): Added. Used by insertText.
56544
56545        * html/HTMLInputElement.cpp:
56546        (WebCore::HTMLInputElement::canHaveSelection): Changed to use isTextField to avoid repeating
56547        the switch statement.
56548        (WebCore::HTMLInputElement::selectionStart): Ditto.
56549        (WebCore::HTMLInputElement::selectionEnd): Ditto.
56550        (WebCore::HTMLInputElement::setSelectionStart): Ditto.
56551        (WebCore::HTMLInputElement::setSelectionEnd): Ditto.
56552        (WebCore::HTMLInputElement::select): Ditto.
56553        (WebCore::HTMLInputElement::setSelectionRange): Ditto.
56554        (WebCore::HTMLInputElement::createRenderer): Resorted cases alphaebtically.
56555        (WebCore::HTMLInputElement::defaultEventHandler): Added code to make hitting return cause the
56556        form to be submitted when it comes through as a text input event. This is now the normal case
56557        on Macintosh, because enter key presses normally turn into this. In addition, change the other
56558        event handling to run only after trying the base defaultEventHandler. That makes the key
56559        handling done in EventTargetNode take precedence over the event handling here for editable text
56560        fields, which is what we want. This gets rid of the need for the hack where we check
56561        inputManagerHasMarkedText and suppress the handling of the enter key.
56562
56563        * page/EventHandler.h: Removed unneeded includes. Moved EventHandlerDragState down into the
56564        private part of the class. Changed sendContextMenuEvent to take a const&. Added new
56565        handleTextInputEvent and defaultTextInputEventHandler functions. Made eventLoopHandleMouseUp
56566        and eventLoopHandleMouseDragged private. Added private defaultTabEventHandler function.
56567        * page/EventHandler.cpp:
56568        (WebCore::EventHandler::sendContextMenuEvent): Changed parameter to be a const&.
56569        (WebCore::EventHandler::defaultKeyboardEventHandler): Rearranged things so that the key bindings
56570        handling in handleKeyPress comes before special tab event handling. In cases where the tab turns
56571        into text to insert, we now handle it in the text input event handler.
56572        (WebCore::EventHandler::handleTextInputEvent): Added. Creates and dispatches a text input event.
56573        (WebCore::EventHandler::defaultTextInputEventHandler): Added. Inserts text, but has special cases
56574        for the tab and newline character cases.
56575        (WebCore::EventHandler::defaultTabEventHandler): Added. Shared by the tab-handling code in
56576        the keyboard event and text input event handlers.
56577        * page/mac/EventHandlerMac.mm: Tweak formatting, remove some unused functions.
56578
56579        * page/FocusController.h: Removed unnneded includes and forwards, and added an overload of
56580        advanceFocus that takes a FocusDirection parameter.
56581        * page/FocusController.cpp: (WebCore::FocusController::advanceFocus): Changed to allow a 0 for
56582        the event pointer. Also added a version where the direction is passed explicitly, to be used
56583        for cases where we want to tab backward even if the event doesn't have a shift modifier key set.
56584
56585        * platform/graphics/svg/SVGImageEmptyClients.h: Updated for change to EditorClient.
56586        This should really probably just use 0 for the EditorClient.
56587
56588        * WebCore.exp: Update both for newly used and no-longer-used entry points.
56589
56590        * page/mac/WebCoreFrameBridge.h:
56591        * page/mac/WebCoreFrameBridge.mm: Removed two unused methods.
56592
565932007-02-12  Antti Koivisto  <antti@apple.com>
56594
56595        Reviewed by Darin.
56596
56597        - fixed Imagemap not clickable in www.toptenbooks.net/
56598        http://bugs.webkit.org/show_bug.cgi?id=12738
56599        
56600        Make imagemap names case insensitive in HTML mode
56601
56602        * dom/Document.cpp:
56603        (WebCore::Document::getImageMap):
56604        * html/HTMLMapElement.cpp:
56605        (WebCore::HTMLMapElement::parseMappedAttribute):
56606
566072007-02-12  Maciej Stachowiak  <mjs@apple.com>
56608
56609        Reviewed by Antti.
56610
56611        - fixed <rdar://problem/4928675> REGRESSION: Crash in CGBlt_copyBytes under WebCore::Font::drawGlyphs (12083)
56612        http://bugs.webkit.org/show_bug.cgi?id=12083
56613        
56614        Test: fast/text/text-shadow-extreme-value.html
56615
56616        * platform/graphics/cg/GraphicsContextCG.cpp:
56617        (WebCore::GraphicsContext::setShadow): Clamp shadow value to 1000px, anything more seems to 
56618        make CG unhappy.
56619
566202007-02-11  Brady Eidson <beidson@apple.com>
56621
56622        Reviewed by Maciej.
56623
56624        First in what will be a series of HistoryItem enhancements to help debugging
56625
56626        * history/HistoryItem.cpp:
56627        (WebCore::HistoryItem::showTree):
56628        (WebCore::HistoryItem::showTreeWithIndent):
56629        (showTree): Outside of WebCore namespace, and extern "C" - to make even the 
56630          DWARF debugger able to find it...  *sigh* 
56631        * history/HistoryItem.h:
56632
566332007-02-11  Eric Seidel  <eric@webkit.org>
56634
56635        Reviewed by Anders.
56636
56637        - fixed <rdar://problem/4975133> ASSERT failure and crash right-clicking on image in SVG use test
56638        http://bugs.webkit.org/show_bug.cgi?id=12580
56639        
56640        Test: svg/cust/use-events-crash.svg
56641
56642        * bindings/js/kjs_dom.cpp:
56643        (KJS::toJS):
56644        * ksvg2/svg/SVGElementInstance.cpp:
56645        (WebCore::SVGElementInstance::toNode):
56646        * ksvg2/svg/SVGElementInstance.h:
56647
566482007-02-11  Mitz Pettel  <mitz@webkit.org>
56649
56650        Reviewed by Maciej.
56651
56652        - fix http://bugs.webkit.org/show_bug.cgi?id=10144
56653          REGRESSION: Reproducible assertion failure in DeleteSelectionCommand::fixupWhitespace()
56654
56655        Test: fast/text/delete-hard-break-character.html
56656
56657        The bug was caused by not updating a line whose line break object and offset
56658        has been deleted. When deleting text, all lines containing the deleted text
56659        are marked dirty. However, if the first character being deleted is a newline
56660        which serves as a hard line break for the previous line, then that line will
56661        not be marked, and since it will be a clean line ending with a line break,
56662        relayout will begin at the next line. The fix is to check for this when
56663        determining where to relayout from. 
56664
56665        * rendering/bidi.cpp:
56666        (WebCore::RenderBlock::determineStartPosition): Changed the condition for
56667        including the last clean line in relayout to include the case where the
56668        last clean line ends with a line break, but that line break is a newline that
56669        has been deleted.
56670
566712007-02-12  Antti Koivisto  <antti@apple.com>
56672
56673        Reviewed by Maciej.
56674        
56675        REGRESSION: Google Calendar cell highlight misplaced
56676        http://bugs.webkit.org/show_bug.cgi?id=12687
56677        
56678        Make offsetLeft/offsetTop/offsetParent behavior match Firefox.
56679
56680        * rendering/RenderObject.cpp:
56681        (WebCore::RenderObject::offsetLeft):
56682        (WebCore::RenderObject::offsetTop):
56683        (WebCore::RenderObject::offsetParent):
56684
566852007-02-10  Antti Koivisto  <antti@apple.com>
56686
56687        Reviewed by Maciej.
56688
56689        - fixed REGRESSION: No day/week scrollbar in Google Calendar
56690        http://bugs.webkit.org/show_bug.cgi?id=11985
56691
56692        Make sure overflow:auto scrollbars are always enabled. If they were overflow:scroll
56693        and dynamically changed to auto they might still be disabled.
56694
56695        * rendering/RenderLayer.cpp:
56696        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
56697
566982007-02-11  Alexey Proskuryakov  <ap@webkit.org>
56699
56700        Reviewed by Hyatt.
56701
56702        http://bugs.webkit.org/show_bug.cgi?id=12581
56703        XPath //title shouldn't match <title> in XHTML
56704
56705        Test: fast/xpath/ensure-null-namespace.xhtml
56706
56707        * xml/XPathStep.cpp:
56708        (WebCore::XPath::Step::nodeTestMatches): Only let a null namespace match any for HTML.
56709
567102007-02-10  Alexey Proskuryakov  <ap@webkit.org>
56711
56712        Reviewed by Adam.
56713
56714        http://bugs.webkit.org/show_bug.cgi?id=12701
56715        REGRESSION: After javascript, onChange not triggered when selecting same option
56716
56717        * html/HTMLSelectElement.cpp:
56718        (WebCore::HTMLSelectElement::setSelectedIndex): Remember m_lastOnChangeIndex value,
56719        as it can change from setSelected() now.
56720        (WebCore::HTMLSelectElement::notifyOptionSelected): Update m_lastOnChangeIndex.
56721
56722        * manual-tests/select-onchange-after-js.html: Added. Also tests for bug 11402.
56723
567242007-02-10  David Carson  <dacarson@gmail.com>`
56725
56726        Reviewed by Maciej.
56727
56728        Manual tests for http://bugs.webkit.org/show_bug.cgi?id=12636
56729        Call different Java methods that take a variety of Array parameters
56730        from Javascript, passing a Javascript array.
56731
56732        * manual-tests/liveconnect-applet-array-parameters.html: Added.
56733        * manual-tests/resources/ArrayParameterTestApplet.class: Added.
56734        * manual-tests/resources/ArrayParameterTestApplet.java: Added.
56735
567362007-02-10  Alexey Proskuryakov  <ap@webkit.org>
56737
56738        Reviewed by Maciej.
56739
56740        http://bugs.webkit.org/show_bug.cgi?id=12724
56741        Crash when enumerating XPath namespace axis
56742
56743        * xml/XPathStep.cpp:
56744        (WebCore::XPath::Step::nodesInAxis): Namespace axis enumeration was broken in that it crashed, and also in that
56745        it returned attribute nodes instead of XPath namespace ones. Removed it altogether.
56746
567472007-02-10  Mitz Pettel  <mitz@webkit.org>
56748
56749        Reviewed by Adam.
56750
56751        - fix http://bugs.webkit.org/show_bug.cgi?id=12565
56752          ASSERTION failure on some declarative animations <rdar://problem/4975132>
56753
56754        * ksvg2/svg/SVGAnimationElement.cpp:
56755        (WebCore::parseValues): Changed the string length math to avoid truncating
56756        the last character of each value.
56757        * manual-tests/svg-animation-parseValues.svg: Added.
56758
567592007-02-10  Mitz Pettel  <mitz@webkit.org>
56760
56761        Reviewed by Adam.
56762
56763        - fix http://bugs.webkit.org/show_bug.cgi?id=11621
56764          REGRESSION (Native slider): slider thumb not updated when the mouse is dragged/released out of range
56765
56766        No automated test case because dumping the render tree updates layer positions anyway.
56767
56768        * manual-tests/slider-thumb-tracking.html: Added.
56769        * rendering/RenderSlider.cpp:
56770        (WebCore::RenderSlider::setCurrentPosition): Added call to updateLayerPosition()
56771        for the thumb's layer.
56772
567732007-02-09  Brady Eidson <beidson@apple.com>
56774
56775        Reviewed by Maciej
56776
56777        <rdar://problem/4965133> WebKit sends file:// url referrers
56778
56779        * loader/SubresourceLoader.cpp:
56780        (WebCore::SubresourceLoader::create): In SubresourceLoader::create(), we make a copy of the original request
56781        to use for the load.  We then call FrameLoader::canLoad() which tells us if we should hide the referer.  Before 
56782        this fix if it said to hide the referrer, we would simply not apply a new referrer to our copy of the request.
56783        But if the original request already had a referrer, so did our copy.  We simply have to clear the referrer from
56784        the copied request.
56785
567862007-02-10  Maciej Stachowiak  <mjs@apple.com>
56787
56788        Reviewed by me, patch from Feng Qian (cleaned up by me some).
56789
56790        - fixed <rdar://problem/4988091> objects attached to Window not cleared (memory leak)
56791        
56792        Test case: fast/dom/Window/window-appendages-cleared.html
56793
56794        * bindings/js/kjs_window.cpp:
56795        (KJS::Window::clearHelperObjectProperties):
56796        (KJS::Window::clear):
56797        * bindings/js/kjs_window.h:
56798
567992007-02-09  Brady Eidson  <beidson@apple.com>
56800
56801        Reviewed by Tim Hatcher
56802
56803        <rdar://problem/4985497> - Plugs a potential null DocumentLoader deref when 
56804        transitioning out of the Bookmarks View
56805
56806        * loader/FrameLoader.cpp:
56807        (WebCore::FrameLoader::recursiveGoToItem): add a null check
56808
568092007-02-09  Beth Dakin  <bdakin@apple.com>
56810
56811        Rubber-stamped by John . . . and Adam.
56812
56813        * page/ContextMenuController.cpp:
56814        (WebCore::ContextMenuController::contextMenuItemSelected): Missing 
56815        break.
56816
568172007-02-09  Justin Garcia  <justin.garcia@apple.com>
56818
56819        Reviewed by darin
56820
56821        <rdar://problem/4975120>
56822        REGRESSION: double-cursor after switching window away/back (11770)
56823        <http://bugs.webkit.org/show_bug.cgi?id=11328>
56824        Gmail Editor: Caret can simultaneously appear in both the TO: and message body fields
56825
56826        * page/mac/WebCoreFrameBridge.h: Removed two unused methods
56827        left over from the old form control implementation.
56828
568292007-02-09  John Sullivan  <sullivan@apple.com>
56830
56831        * rendering/bidi.cpp:
56832        (WebCore::bidiNext):
56833        At Darin's suggestion, moved the "next = 0" line from my previous patch to the start of the loop body
56834
568352007-02-09  Justin Garcia  <justin.garcia@apple.com>
56836
56837        Reviewed by john
56838        
56839        <rdar://problem/4960116>
56840        REGRESSION: Nightly Safari crashes in WebCore::SelectionController::xPosForVerticalArrowNavigation (12416)
56841
56842        * editing/SelectionController.cpp:
56843        (WebCore::SelectionController::xPosForVerticalArrowNavigation):
56844        Null check.  VisiblePosition creation can fail if a node that 
56845        contains the selection was made invisible after the selection 
56846        was made and before this function is called during a selection 
56847        modification operation.
56848
568492007-02-09  Justin Garcia  <justin.garcia@apple.com>
56850
56851        Reviewed by john
56852        
56853        <rdar://problem/4983858>
56854        REGRESSION: In a new mail message, attempting to select a single word causes the selection to extend to the previous line
56855
56856        * editing/TextIterator.cpp:
56857        (WebCore::SimplifiedBackwardsTextIterator::exitNode):
56858        We recently split shouldEmitNewlineForNode into
56859        shouldEmitNewline{Before, After}Node, so this function now
56860        needs an implementation that is different from
56861        SimplifiedBackwardsTextIterator::handleNonTextNode.  The
56862        difference is that we must call shouldEmit*BeforeNode
56863        instead of shouldEmit*AfterNode since we are a) exiting
56864        nodes and b) moving backward.
56865
568662007-02-09  Justin Garcia  <justin.garcia@apple.com>
56867
56868        Reviewed by john
56869
56870        <rdar://problem/4916541>
56871        Some of the selection isn't preserved during an Indent opreration
56872
56873        * editing/IndentOutdentCommand.cpp:
56874        (WebCore::indexForVisiblePosition): Added.
56875        (WebCore::IndentOutdentCommand::indentRegion): Use rangeLength
56876        and rangeFromLocationAndLength to restore the selection after
56877        the repeated moveParagraph calls necessary to perform indent are
56878        finished.
56879
568802007-02-09  John Sullivan  <sullivan@apple.com>
56881
56882        Reviewed by Kevin Decker
56883        
56884        - fixed <rdar://problem/4960095> REPRODUCIBLE HANG: WebKit freezes when printing as PDF
56885          a certain kind of code (12449)
56886 
56887        No test case because I don't know how to make the bug occur without printing.
56888
56889        * rendering/bidi.cpp:
56890        (WebCore::bidiNext):
56891        reset loop's "next" variable after using it; we were setting "current" to the same value
56892        of "next" each subsequent time through the loop, which is not helpful.
56893
568942007-02-09  Darin Adler  <darin@apple.com>
56895
56896        Reviewed by Adele.
56897
56898        - Add TextEvent to the DOM (based on the proposed DOM level 3)
56899          to be used to fix some international input bugs soon.
56900          At this point, we don't send any text events.
56901
56902        - Remove some obsolete files.
56903
56904        * CMakeLists.txt:
56905        * WebCore.pro:
56906        * WebCore.xcodeproj/project.pbxproj:
56907        * WebCoreSources.bkl:
56908        Add new files, remove obsolete files.
56909
56910        * DerivedSources.make: Add TextEvent to the Objective-C and JavaScript bindings lists.
56911        * WebCore.exp: Export DOMTextEvent Objective-C wrapper.
56912
56913        * bindings/js/kjs_events.cpp: (KJS::toJS): Added TextEvent to the list of Event subclasses
56914        so we make the right kind of JS wrapper.
56915        * bindings/objc/DOMEvents.mm: (+[DOMEvent _eventWith:]): Same thing, for Objective-C.
56916
56917        * bindings/objc/DOMInternal.h: Added DOMTextEventInternal.h.
56918
56919        * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::hasFeature):
56920        Added "TextEvents", "3.0" to the list of things we'll answer true for
56921        (as specified in the DOM Level 3 documentation).
56922        This isn't so great until we actually send textInput events, but that's coming soon.
56923
56924        * dom/Document.cpp: (WebCore::Document::createEvent): Add "TextEvent" as a way to make
56925        a TextEvent (as specified in the DOM Level 3 documentation).
56926
56927        * dom/Event.h:
56928        * dom/Event.cpp: (WebCore::Event::isTextEvent): Added virtual function to be used
56929        for runtime type checking of Event objects (as for other event types).
56930
56931        * dom/TextEvent.cpp: Added.
56932        * dom/TextEvent.h: Added.
56933        * dom/TextEvent.idl: Added.
56934
56935        * platform/mac/WebCoreWidgetHolder.h: Removed.
56936        * rendering/CounterListItem.h: Removed.
56937        * rendering/CounterResetNode.cpp: Removed.
56938        * rendering/CounterResetNode.h: Removed.
56939
569402007-02-09  Anders Carlsson  <acarlsson@apple.com>
56941
56942        Reviewed by Geoff.
56943
56944        <rdar://problem/4816376> 
56945        REGRESSION: NetNewsWire 3.0 - Crashes in WebDocumentLoaderMac::attachToFrame() (12674)
56946        
56947        The bug was that the NNW policy delegate never calls back on the policy listener so we'll try to do a load
56948        while there's a policy decision underway. The extra call to setPolicyDocumentLoader would cause a detached (and deallocated)
56949        WebDataSource to be reattached and thus causing a crash.
56950        
56951        * loader/FrameLoader.cpp:
56952        (WebCore::FrameLoader::load):
56953        Remove extra call to setPolicyDocumentLoader.
56954
569552007-02-09  Beth Dakin  <bdakin@apple.com>
56956
56957        Reviewed by Darin.
56958
56959        Fix for <rdar://problem/4674537> REGRESSION: Adobe Acrobat 8 - Text 
56960        blinks when mouse is moved, and is invisible otherwise
56961
56962        Acrobat 8 was relying on a WebKit bug that was fixed about a year 
56963        ago with r12753. The bug was that we would not reload a page if the 
56964        source of an iframe was set to the same value it already was. Now 
56965        that we have fixed the bug, Acrobat constantly reloads their EULA, 
56966        making it blinky and impossible to read. 
56967
56968        No layout test since the fix is to add an Acrobat-specific quirk.
56969
56970        * WebCore.exp:
56971        * html/HTMLFrameElementBase.cpp:
56972        (WebCore::HTMLFrameElementBase::setLocation): If the new url is the 
56973        same as the old one and we are honoring the Acrobat quirk, don't do 
56974        anything.
56975        * page/Settings.cpp:
56976        (WebCore::Settings::Settings):
56977        (WebCore::Settings::setNeedsAcrobatFrameReloadingQuirk):
56978        * page/Settings.h:
56979        (WebCore::Settings::needsAcrobatFrameReloadingQuirk):
56980
569812007-02-09  Brady Eidson  <beidson@apple.com>
56982
56983        Rubberstamped by Dave Harrison
56984
56985        Disable the thread-check assertion in WebCore, as well as Webkit
56986
56987        * WebCore.xcodeproj/project.pbxproj:
56988
569892007-02-08  Anders Carlsson  <acarlsson@apple.com>
56990
56991        Reviewed by Geoff.
56992
56993        No need to pause timeout checks anymore.
56994        
56995        * bindings/js/kjs_window.cpp:
56996        (KJS::WindowFunc::callAsFunction):
56997
569982007-02-09  John Sullivan  <sullivan@apple.com>
56999
57000        Reviewed by Beth
57001        
57002        - WebCore part of fix for radar 4939636, problems with context menu items and binaries linked
57003          against WebKit 2.0.
57004
57005        * platform/ContextMenuItem.h:
57006        (WebCore::):
57007        Tweaked comment; bumped enum value for new SPI tags to avoid conflict with pre-3.0 SPI tag values.
57008
570092007-02-09  Nicholas Shanks  <webkit@nickshanks.com>
57010
57011        Reviewed by Dave Hyatt.
57012
57013        Removed broken recognition of :last-* and :only-* selectors
57014
57015        * css/CSSGrammar.y:
57016        * css/CSSSelector.cpp:
57017        (WebCore::CSSSelector::extractPseudoType):
57018        * css/CSSSelector.h:
57019        (WebCore::CSSSelector::):
57020        * css/cssstyleselector.cpp:
57021        (WebCore::CSSStyleSelector::checkOneSelector):
57022
570232007-02-09  Maciej Stachowiak  <mjs@apple.com>
57024
57025        Reviewed by Mark.
57026
57027        <rdar://problem/4980176>
57028
57029        * page/Frame.cpp:
57030        (WebCore::Frame::pageDestroyed): Since this frame is getting
57031        disconnected from its page, ensure it is not the focus node.
57032
570332007-02-09  Krzysztof  <kkowalczyk@gmail.com>
57034
57035        Reviewed by Maciej.
57036
57037        gdklauncher crashes when compiled with NDEBUG defined.
57038
57039        * Projects/gdk/webcore-gdk.bkl:
57040
570412007-02-09  Maciej Stachowiak  <mjs@apple.com>
57042
57043        Reviewed by Mitz.
57044
57045        <rdar://problem/4971224> REGRESSION: ASSERT in WebCore with Mail (12491)
57046        http://bugs.webkit.org/show_bug.cgi?id=12491
57047
57048        No test case. Not testable since there is no way to do substitute
57049        data loads from layout tests.
57050        
57051        * loader/MainResourceLoader.cpp:
57052        (WebCore::MainResourceLoader::continueAfterContentPolicy): Don't dispatch data load
57053        callback when loading empty data.
57054
570552007-02-09  Mark Rowe  <mrowe@apple.com>
57056
57057        Reviewed by Maciej.
57058
57059        http://bugs.webkit.org/show_bug.cgi?id=12705
57060        REGRESSION: Crash with user stylesheet set
57061
57062        Allow the Frame::canLoad check to skipped so that user stylesheets can be loaded in remote documents.
57063
57064        * ChangeLog:
57065        * loader/DocLoader.cpp:
57066        (WebCore::DocLoader::requestCSSStyleSheet): Skip canLoad check if this is a user stylesheet.
57067        (WebCore::DocLoader::requestUserCSSStyleSheet):
57068        (WebCore::DocLoader::requestResource): Allow canLoad check to be skipped.
57069        * loader/DocLoader.h:
57070        * page/Frame.cpp:
57071        (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
57072
570732007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57074
57075        Reviewed by Darin.
57076
57077        Linux/gdk build fixes.
57078
57079        * Projects/gdk/webcore-gdk.bkl: Account for file renaming.
57080        * platform/gdk/KeyEventGdk.cpp: Make gdk's tab key recognized as tab so that
57081        keyboard link walking works on gdk.
57082        (WebCore::keyIdentifierForGdkKeyCode):
57083
570842007-02-08  Adele Peterson  <adele@apple.com>
57085
57086        Reviewed by Brady.
57087
57088        Fix for http://bugs.webkit.org/show_bug.cgi?id=12599
57089        <rdar://problem/4973507> REGRESSION: When replying in Gmail, the caret disappears when you start to type (12599)
57090
57091        When a frame's window was focused, the page didn't get updated about the new frame getting focus.
57092        This was causing handleKeyPress to fail because it kept getting a selection for the wrong frame (which wasn't editable).
57093
57094        Test: fast/frames/iframe-window-focus.html
57095
57096        * page/Frame.cpp:
57097        (WebCore::Frame::focusWindow):
57098        (WebCore::Frame::unfocusWindow):
57099        * page/Frame.h:
57100        * page/mac/FrameMac.mm:
57101        (WebCore::FrameMac::focusWindow):
57102        (WebCore::FrameMac::unfocusWindow):
57103
571042007-02-08  Adele Peterson  <adele@apple.com>
57105
57106        Reviewed by Brady.
57107
57108        Fix for http://bugs.webkit.org/show_bug.cgi?id=12480
57109        <rdar://problem/4971222> REGRESSION (NativeListBox): Deselecting option causes list to jump to top
57110
57111        Test: fast/forms/listbox-deselect-scroll.html
57112
57113        * html/HTMLSelectElement.cpp:
57114        (WebCore::HTMLSelectElement::activeSelectionStartListIndex): Added.  Returns the index for the active selection.  If there is no active selection,
57115         it returns the first selected index.
57116        (WebCore::HTMLSelectElement::activeSelectionEndListIndex): Added.  If there is no active selection, it returns the last selected index.
57117        * html/HTMLSelectElement.h:
57118        * rendering/RenderListBox.cpp: (WebCore::RenderListBox::scrollToRevealSelection): Instead of using the first and last selected indices,
57119          use the active selection indices to determine which item to reveal.  This way, when you're selecting with the keyboard, or the mouse,
57120          no unnecessary scrolling will occur if the end of your active selection is already visible.
57121
571222007-02-08  Adele Peterson  <adele@apple.com>
57123
57124        Reviewed by Hyatt.
57125
57126        Fix for <rdar://problem/4963411> Items of SELECT element are incorrectly highlighted when display:block is set
57127
57128        Test: fast/forms/select-block-background.html
57129
57130        * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintObject):
57131          Paint the item backgrounds during the PaintPhaseChildBlockBackground or PaintPhaseChildBlockBackgrounds phase.
57132
571332007-02-08  Mitz Pettel  <mitz@webkit.org>
57134
57135        Reviewed by Adele.
57136
57137        - fix http://bugs.webkit.org/show_bug.cgi?id=11047
57138          REGRESSION: Empty options cause the entire select to collapse
57139        
57140        Test: fast/forms/select-empty-option-height.html
57141
57142        - fix http://bugs.webkit.org/show_bug.cgi?id=10783
57143          REGRESSION (r16044): Clicking a popup changes layout around it
57144
57145        * rendering/RenderMenuList.cpp:
57146        (WebCore::RenderMenuList::setText): If the option text is empty, use a RenderBR
57147        as inner text, to ensure that the inner div has line height.
57148
571492007-02-08  Geoffrey Garen  <ggaren@apple.com>
57150
57151        Reviewed by Beth Dakin.
57152
57153        Added a hard counter for SubresourceLoaders because the leaks tool now
57154        ignores them.
57155        
57156        * loader/SubresourceLoader.cpp:
57157        (WebCore::):
57158        (WebCore::SubresourceLoaderCounter::~SubresourceLoaderCounter):
57159        (WebCore::SubresourceLoader::SubresourceLoader):
57160        (WebCore::SubresourceLoader::~SubresourceLoader):
57161        * page/Frame.cpp: Removed unnecessary #define
57162
571632007-02-08  Geoffrey Garen  <ggaren@apple.com>
57164
57165        Reviewed by Beth Dakin.
57166
57167        Fixed <rdar://problem/4982374> CSSComputedStyleDeclaration::getPropertyCSSValue 
57168        leak reported by buildbot
57169        
57170        The leak was a typo: "new" instead of "return new". I also generously
57171        deployed RefPtr in places that were holding ref-counted objects in
57172        bare pointers.
57173
57174        * css/CSSComputedStyleDeclaration.cpp:
57175        (WebCore::valueForShadow):
57176        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
57177
571782007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57179
57180        Reviewed by Adam Roben.
57181
57182        Linux/gdk build fixes.
57183
57184        * platform/gdk/EditorClientGdk.cpp: Added. Based on qt version.
57185        (WebCore::EditorClientGdk::shouldDeleteRange):
57186        (WebCore::EditorClientGdk::shouldShowDeleteInterface):
57187        (WebCore::EditorClientGdk::isContinuousSpellCheckingEnabled):
57188        (WebCore::EditorClientGdk::isGrammarCheckingEnabled):
57189        (WebCore::EditorClientGdk::spellCheckerDocumentTag):
57190        (WebCore::EditorClientGdk::shouldBeginEditing):
57191        (WebCore::EditorClientGdk::shouldEndEditing):
57192        (WebCore::EditorClientGdk::shouldInsertText):
57193        (WebCore::EditorClientGdk::shouldApplyStyle):
57194        (WebCore::EditorClientGdk::didBeginEditing):
57195        (WebCore::EditorClientGdk::respondToChangedContents):
57196        (WebCore::EditorClientGdk::didEndEditing):
57197        (WebCore::EditorClientGdk::didWriteSelectionToPasteboard):
57198        (WebCore::EditorClientGdk::didSetSelectionTypesForPasteboard):
57199        (WebCore::EditorClientGdk::selectWordBeforeMenuEvent):
57200        (WebCore::EditorClientGdk::isEditable):
57201        (WebCore::EditorClientGdk::registerCommandForUndo):
57202        (WebCore::EditorClientGdk::registerCommandForRedo):
57203        (WebCore::EditorClientGdk::clearUndoRedoOperations):
57204        (WebCore::EditorClientGdk::canUndo):
57205        (WebCore::EditorClientGdk::canRedo):
57206        (WebCore::EditorClientGdk::undo):
57207        (WebCore::EditorClientGdk::redo):
57208        (WebCore::EditorClientGdk::shouldInsertNode):
57209        (WebCore::EditorClientGdk::pageDestroyed):
57210        (WebCore::EditorClientGdk::smartInsertDeleteEnabled):
57211        (WebCore::EditorClientGdk::toggleContinuousSpellChecking):
57212        (WebCore::EditorClientGdk::toggleGrammarChecking):
57213        (WebCore::EditorClientGdk::handleKeyPress):
57214        (WebCore::EditorClientGdk::EditorClientGdk):
57215        (WebCore::EditorClientGdk::setPage):
57216        * platform/gdk/EditorClientGdk.h: Added. Ditto.
57217        * platform/gdk/FrameGdk.cpp: Add exitAfterLoading and dumpRenderTreeAfterLoading
57218        as small debugging features. Remove FrameGdkClient as no other platform has Frame*Client
57219        anymore. Adjust for new APIs.
57220        (WebCore::FrameGdk::FrameGdk):
57221        (WebCore::FrameGdk::onDidFinishLoad):
57222        (WebCore::FrameGdk::dumpRenderTree):
57223        (WebCore::FrameGdk::keyPress):
57224        (WebCore::FrameGdk::handleGdkEvent):
57225        (WebCore::FrameGdk::focusWindow):
57226        (WebCore::FrameGdk::unfocusWindow):
57227        (WebCore::FrameGdk::getObjectInstanceForWidget):
57228        (WebCore::FrameGdk::getEmbedInstanceForWidget):
57229        (WebCore::FrameGdk::bindingRootObject):
57230        (WebCore::FrameGdk::print):
57231        (WebCore::FrameGdk::getAppletInstanceForWidget):
57232        (WebCore::FrameGdk::issueCutCommand):
57233        (WebCore::FrameGdk::issueCopyCommand):
57234        (WebCore::FrameGdk::issuePasteCommand):
57235        (WebCore::FrameGdk::issueTransposeCommand):
57236        (WebCore::FrameGdk::issuePasteAndMatchStyleCommand):
57237        (WebCore::FrameGdk::markedTextRange):
57238        (WebCore::FrameGdk::shouldChangeSelection):
57239        (WebCore::FrameGdk::respondToChangedSelection):
57240        (WebCore::FrameGdk::mimeTypeForFileName):
57241        * platform/gdk/FrameGdk.h: Ditto.
57242        (WebCore::FrameGdk::setExitAfterLoading):
57243        (WebCore::FrameGdk::exitAfterLoading):
57244        (WebCore::FrameGdk::setDumpRenderTreeAfterLoading):
57245        (WebCore::FrameGdk::dumpRenderTreeAfterLoading):
57246        (WebCore::GdkFrame):
57247        * platform/gdk/TemporaryLinkStubs.cpp: Adjust to new APIs. Small cleanups.
57248        (FrameView::updateBorder):
57249        (Widget::setEnabled):
57250        (Widget::isEnabled):
57251        (Widget::enableFlushDrawing):
57252        (Widget::removeFromParent):
57253        (Widget::paint):
57254        (Widget::setIsSelected):
57255        (Widget::invalidate):
57256        (Widget::invalidateRect):
57257        (PlatformMouseEvent::PlatformMouseEvent):
57258        (WebCore::findWordBoundary):
57259        (ChromeClientGdk::chromeDestroyed):
57260        (ChromeClientGdk::closeWindowSoon):
57261        (ChromeClientGdk::canTakeFocus):
57262        (ChromeClientGdk::takeFocus):
57263        (ChromeClientGdk::canRunBeforeUnloadConfirmPanel):
57264        (ChromeClientGdk::addMessageToConsole):
57265        (ChromeClientGdk::runBeforeUnloadConfirmPanel):
57266        (ChromeClientGdk::runJavaScriptAlert):
57267        (ChromeClientGdk::runJavaScriptConfirm):
57268        (ChromeClientGdk::runJavaScriptPrompt):
57269        (ChromeClientGdk::setStatusbarText):
57270        (ChromeClientGdk::shouldInterruptJavaScript):
57271        (WebCore::inputElementAltText):
57272        (WebCore::resetButtonDefaultLabel):
57273        (WebCore::searchableIndexIntroduction):
57274        (WebCore::fileButtonChooseFileLabel):
57275        (WebCore::fileButtonNoFileSelectedLabel):
57276        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
57277        (WebCore::contextMenuItemTagDownloadLinkToDisk):
57278        (WebCore::contextMenuItemTagCopyLinkToClipboard):
57279        (WebCore::contextMenuItemTagOpenImageInNewWindow):
57280        (WebCore::contextMenuItemTagDownloadImageToDisk):
57281        (WebCore::contextMenuItemTagCopyImageToClipboard):
57282        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
57283        (WebCore::contextMenuItemTagCopy):
57284        (WebCore::contextMenuItemTagGoBack):
57285        (WebCore::contextMenuItemTagGoForward):
57286        (WebCore::contextMenuItemTagStop):
57287        (WebCore::contextMenuItemTagReload):
57288        (WebCore::contextMenuItemTagCut):
57289        (WebCore::contextMenuItemTagPaste):
57290        (WebCore::contextMenuItemTagNoGuessesFound):
57291        (WebCore::contextMenuItemTagIgnoreSpelling):
57292        (WebCore::contextMenuItemTagLearnSpelling):
57293        (WebCore::contextMenuItemTagSearchWeb):
57294        (WebCore::contextMenuItemTagLookUpInDictionary):
57295        (WebCore::contextMenuItemTagOpenLink):
57296        (WebCore::contextMenuItemTagIgnoreGrammar):
57297        (WebCore::contextMenuItemTagSpellingMenu):
57298        (WebCore::contextMenuItemTagShowSpellingPanel):
57299        (WebCore::contextMenuItemTagCheckSpelling):
57300        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
57301        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
57302        (WebCore::contextMenuItemTagFontMenu):
57303        (WebCore::contextMenuItemTagBold):
57304        (WebCore::contextMenuItemTagItalic):
57305        (WebCore::contextMenuItemTagUnderline):
57306        (WebCore::contextMenuItemTagOutline):
57307        (WebCore::contextMenuItemTagWritingDirectionMenu):
57308        (WebCore::contextMenuItemTagDefaultDirection):
57309        (WebCore::contextMenuItemTagLeftToRight):
57310        (WebCore::contextMenuItemTagRightToLeft):
57311        (PlugInInfoStore::createPluginInfoForPluginAtIndex):
57312        (PlugInInfoStore::pluginCount):
57313        (WebCore::PlugInInfoStore::supportsMIMEType):
57314        (WebCore::refreshPlugins):
57315        (SearchPopupMenu::saveRecentSearches):
57316        (SearchPopupMenu::loadRecentSearches):
57317        (SearchPopupMenu::SearchPopupMenu):
57318        (Path::apply):
57319        (PlatformScrollbar::PlatformScrollbar):
57320        (PlatformScrollbar::~PlatformScrollbar):
57321        (PlatformScrollbar::width):
57322        (PlatformScrollbar::height):
57323        (PlatformScrollbar::setEnabled):
57324        (PlatformScrollbar::paint):
57325        (PlatformScrollbar::updateThumbPosition):
57326        (PlatformScrollbar::updateThumbProportion):
57327        (PlatformScrollbar::setRect):
57328        (ResourceHandle::willLoadFromCache):
57329        (ResourceHandle::loadsBlocked):
57330        (ResourceHandle::loadResourceSynchronously):
57331        (PageCache::close):
57332        (Editor::ignoreSpelling):
57333        (Editor::learnSpelling):
57334        (Editor::isSelectionUngrammatical):
57335        (Editor::isSelectionMisspelled):
57336        (Editor::guessesForMisspelledSelection):
57337        (Editor::guessesForUngrammaticalSelection):
57338        (Editor::markMisspellingsAfterTypingToPosition):
57339        (Editor::newGeneralClipboard):
57340        (Pasteboard::generalPasteboard):
57341        (Pasteboard::writeSelection):
57342        (Pasteboard::writeURL):
57343        (Pasteboard::clear):
57344        (Pasteboard::canSmartReplace):
57345        (Pasteboard::documentFragment):
57346        (Pasteboard::plainText):
57347        (Pasteboard::Pasteboard):
57348        (Pasteboard::~Pasteboard):
57349        (ContextMenu::ContextMenu):
57350        (ContextMenu::~ContextMenu):
57351        (ContextMenu::appendItem):
57352        (ContextMenu::setPlatformDescription):
57353        (ContextMenu::platformDescription):
57354        (ContextMenuItem::ContextMenuItem):
57355        (ContextMenuItem::~ContextMenuItem):
57356        (ContextMenuItem::releasePlatformDescription):
57357        (ContextMenuItem::type):
57358        (ContextMenuItem::setType):
57359        (ContextMenuItem::action):
57360        (ContextMenuItem::setAction):
57361        (ContextMenuItem::title):
57362        (ContextMenuItem::setTitle):
57363        (ContextMenuItem::platformSubMenu):
57364        (ContextMenuItem::setSubMenu):
57365        (ContextMenuItem::setChecked):
57366        (ContextMenuItem::setEnabled):
57367        (WebCore::systemBeep):
57368        (WebCore::userIdleTime):
57369
573702007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57371
57372        Reviewed by Adam Roben.
57373
57374        Linux/gdk build fixes.
57375
57376        * platform/GlyphPageTreeNode.h: Fix header guard name.
57377        * platform/gdk/ChromeClientGdk.h:
57378        * platform/gdk/CursorGdk.cpp:
57379        (WebCore::verticalTextCursor):
57380        (WebCore::cellCursor):
57381        (WebCore::contextMenuCursor):
57382        (WebCore::noDropCursor):
57383        (WebCore::copyCursor):
57384        (WebCore::progressCursor):
57385        (WebCore::aliasCursor):
57386        * platform/gdk/MouseEventGdk.cpp:
57387        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
57388        * platform/gdk/PageGdk.cpp: Removed. No longer used.
57389        * platform/gdk/RenderThemeGdk.cpp:
57390        (WebCore::RenderThemeGdk::getThemeData):
57391        (WebCore::RenderThemeGdk::setCheckboxSize):
57392        (WebCore::RenderThemeGdk::paintCheckbox):
57393        (WebCore::RenderThemeGdk::setRadioSize):
57394        (WebCore::RenderThemeGdk::paintRadio):
57395        (WebCore::RenderThemeGdk::paintButton):
57396        (WebCore::RenderThemeGdk::adjustTextFieldStyle):
57397        (WebCore::RenderThemeGdk::paintTextField):
57398        (WebCore::RenderThemeGdk::paintTextArea):
57399        (WebCore::RenderThemeGdk::systemFont):
57400        * platform/gdk/RenderThemeGdk.h:
57401        * platform/gdk/ScreenGdk.cpp:
57402        (WebCore::screenDepth):
57403        (WebCore::screenDepthPerComponent):
57404        (WebCore::screenIsMonochrome):
57405        (WebCore::screenRect):
57406        (WebCore::screenAvailableRect):
57407
574082007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57409
57410        Reviewed by Adam Roben.
57411
57412        Linux/gdk build fixes for cairo.
57413
57414        * platform/graphics/GraphicsContext.cpp:
57415        * platform/graphics/cairo/GraphicsContextCairo.cpp:
57416        (WebCore::GraphicsContext::GraphicsContext):
57417        (WebCore::GraphicsContext::strokeArc):
57418        (WebCore::GraphicsContext::drawFocusRing):
57419        (WebCore::GraphicsContext::setFocusRingClip):
57420        (WebCore::GraphicsContext::clearFocusRingClip):
57421        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
57422        (WebCore::GraphicsContext::origin):
57423        (WebCore::GraphicsContext::setPlatformFillColor):
57424        (WebCore::GraphicsContext::setPlatformStrokeColor):
57425        (WebCore::GraphicsContext::setPlatformStrokeThickness):
57426        (WebCore::GraphicsContext::setPlatformStrokeStyle):
57427        (WebCore::GraphicsContext::setPlatformFont):
57428        (WebCore::GraphicsContext::setURLForRect):
57429        (WebCore::GraphicsContext::addRoundedRectClip):
57430        (WebCore::GraphicsContext::addInnerRoundedRectClip):
57431        (WebCore::GraphicsContext::setShadow):
57432        (WebCore::GraphicsContext::clearShadow):
57433        (WebCore::GraphicsContext::beginTransparencyLayer):
57434        (WebCore::GraphicsContext::endTransparencyLayer):
57435        (WebCore::GraphicsContext::clearRect):
57436        (WebCore::GraphicsContext::strokeRect):
57437        (WebCore::GraphicsContext::setLineCap):
57438        (WebCore::GraphicsContext::setLineJoin):
57439        (WebCore::GraphicsContext::setMiterLimit):
57440        (WebCore::GraphicsContext::setAlpha):
57441        (WebCore::toCairoOperator):
57442        (WebCore::GraphicsContext::setCompositeOperation):
57443        (WebCore::GraphicsContext::clip):
57444        (WebCore::GraphicsContext::rotate):
57445        (WebCore::GraphicsContext::scale):
57446        (WebCore::GraphicsContext::clipOut):
57447        (WebCore::GraphicsContext::clipOutEllipseInRect):
57448        (WebCore::GraphicsContext::fillRoundedRect):
57449
574502007-02-08  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57451
57452        Reviewed by Adam Roben.
57453
57454        Linux/gdk build fixes.
57455
57456        * Projects/gdk/webcore-gdk.bkl:
57457        * WebCoreSources.bkl:
57458        * webcore-base.bkl:
57459
574602007-02-08  Brady Eidson  <beidson@apple.com>
57461
57462        Reviewed by Tim Hatcher
57463
57464        Tweaked the thread violation behavior to be disabled by default, and to provide
57465        an easy breakpoint to set.  
57466        The possibilities for the "WebCoreThreadCheck" user defaults key are -
57467          - The value "None" disables thread checking
57468          - The value "Log" causes an NSLog on a violation
57469          - The value "Exception" causes exceptions to be raised on a violation
57470
57471        * platform/Logging.h:
57472        * platform/mac/LoggingMac.mm:
57473        (WebCore::_WebCoreThreadViolationCheck):
57474        (WebCoreReportThreadViolation):  In the global namespace, making breakpoints cake!
57475
574762007-02-08  Brady Eidson  <beidson@apple.com>
57477
57478        Reviewed by Tim Hatcher
57479
57480        <rdar://problem/4983515> Need mechanism to protect against WebKit calls from secondary threads
57481        This initial landing is a conservative move until we can be certain of performance impact.
57482        By writing to the user defaults key @"WebCoreThreadCheck" for the WebKit app you're running -
57483          - The value "None" disables thread checking
57484          - The value "Exception" causes exceptions to be raised on a violation
57485          - The default is to do the check, and NSLog each violation
57486
57487        * bindings/objc/ExceptionHandlers.h:  Add a "Is Main Thread" assert macro
57488        * bindings/scripts/CodeGeneratorObjC.pm: Use new mechanism in allocs and deallocs for now
57489
57490        * platform/Logging.h: Added WebCoreThreadViolationCheck macro
57491        * platform/mac/LoggingMac.mm:
57492        (WebCore::_WebCoreThreadViolationCheck): Check for main-threadedness, and do some stuff
57493
574942007-02-08  Kevin McCullough  <KMcCullough@apple.com>
57495
57496        Reviewed by Maciej, Darin, and Mark.
57497
57498        rdar://problem/4922454
57499        - Prevents remote sites from executing local scripts.
57500
57501        * bindings/objc/DOM.mm: - renamed a function that is now in the base class
57502        (-[DOMElement image]):
57503        (-[DOMElement _imageTIFFRepresentation]):
57504        * dom/XMLTokenizer.cpp: - removed needless asserts
57505        (WebCore::XMLTokenizer::notifyFinished):
57506        * html/HTMLImageLoader.cpp: - renamed a function that is now in the base class
57507        (WebCore::HTMLImageLoader::dispatchLoadEvent):
57508        * html/HTMLTokenizer.cpp: - removed needless asserts
57509        (WebCore::HTMLTokenizer::reset):
57510        (WebCore::HTMLTokenizer::notifyFinished):
57511        * ksvg2/misc/SVGImageLoader.cpp: - renamed a function that is now in the base class
57512        (WebCore::SVGImageLoader::dispatchLoadEvent):
57513        * loader/Cache.cpp: - return early if an error occured
57514        (WebCore::Cache::requestResource):
57515        (WebCore::Cache::remove):
57516        * loader/CachedImage.h: - renamed a function that is now in the base class
57517        (WebCore::CachedImage::canRender):
57518        * loader/CachedResource.h: - renamed a function that is now in the base class
57519        (WebCore::CachedResource::errorOccurred):
57520        * loader/CachedScript.h: - renamed a function that is now in the base class 
57521        (WebCore::CachedScript::schedule):
57522        * loader/DocLoader.cpp: - The heart of the fix, prevents resources from being created or retrieved from the cache if a remote site is requesting the local resource.
57523        (WebCore::DocLoader::requestResource):
57524        (WebCore::DocLoader::setLoadInProgress):
57525        * page/EventHandler.cpp: - renamed a function that is now in the base class
57526        (WebCore::selectCursor):
57527        * rendering/HitTestResult.cpp: - renamed a function that is now in the base class
57528        (WebCore::HitTestResult::image):
57529        * rendering/RenderImage.cpp: - renamed a function that is now in the base class
57530        (WebCore::RenderImage::setCachedImage):
57531        (WebCore::RenderImage::imageChanged):
57532        (WebCore::RenderImage::paint):
57533        (WebCore::RenderImage::layout):
57534        (WebCore::RenderImage::calcAspectRatioWidth):
57535        (WebCore::RenderImage::calcAspectRatioHeight):
57536        * rendering/RenderImage.h: - renamed a function that is now in the base class
57537        (WebCore::RenderImage::errorOccurred):
57538        * rendering/RenderListItem.cpp: - renamed a function that is now in the base class
57539        (WebCore::RenderListItem::setStyle):
57540        * rendering/RenderListMarker.cpp: - renamed a function that is now in the base class
57541        (WebCore::RenderListMarker::isImage):
57542
575432007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57544
57545        Reviewed by Maciej.
57546
57547        Add updateGeometry() to gdk's ScrollView. Needed to fix resizing of the window
57548        in gdk.
57549
57550        * platform/ScrollView.h:
57551        * platform/gdk/ScrollViewGdk.cpp:
57552        (WebCore::ScrollView::updateGeometry):
57553        (WebCore::ScrollView::setDrawable):
57554
575552007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57556
57557        Reviewed by Maciej.
57558
57559        Linux/gdk build fixes.
57560
57561        * platform/ContextMenuItem.h:
57562        * platform/PlatformMenuDescription.h:
57563        * platform/gdk/PopupMenuGdk.cpp: Added. Renamed from RenderPopupMenuGdk.cpp for
57564        consistency with other platforms.
57565        (WebCore::PopupMenu::PopupMenu):
57566        (WebCore::PopupMenu::~PopupMenu):
57567        * platform/gdk/RenderPopupMenuGdk.cpp: Removed.
57568        * platform/gdk/RenderPopupMenuGdk.h: Removed.
57569
575702007-02-07  Mitz Pettel  <mitz@webkit.org>
57571
57572        Reviewed by Maciej.
57573
57574        - fix http://bugs.webkit.org/show_bug.cgi?id=12608
57575          Incorrect min. width calculation of a series of floats with clear:both and white-space:nowrap
57576
57577        Test: fast/block/float/nowrap-clear-min-width.html
57578
57579        * rendering/RenderBlock.cpp:
57580        (WebCore::RenderBlock::calcInlineMinMaxWidth):
57581
575822007-02-07  Mitz Pettel  <mitz@webkit.org>
57583
57584        Reviewed by Dave Hyatt.
57585
57586        - fix http://bugs.webkit.org/show_bug.cgi?id=10522
57587          REGRESSION: Incomplete repaint after table relayout that decreases height
57588
57589        Test: fast/repaint/intermediate-layout-position.html
57590
57591        * rendering/RenderBlock.cpp:
57592        (WebCore::RenderBlock::layoutBlock): Adjust the old bounds by the layout delta,
57593        to get the block's absolute bounds as they were before its ancestors moved it
57594        during layout.
57595        (WebCore::RenderBlock::collapseMargins): Update the layout delta for the child
57596        when moving it.
57597        (WebCore::RenderBlock::clearFloatsIfNeeded): Ditto.
57598        (WebCore::RenderBlock::determineHorizontalPosition): Ditto.
57599        (WebCore::RenderBlock::layoutBlockChildren): Ditto.
57600        * rendering/RenderFlexibleBox.cpp:
57601        (WebCore::RenderFlexibleBox::layoutBlock): Adjust the old bounds by the current
57602        layout delta.
57603        * rendering/RenderHTMLCanvas.cpp:
57604        (WebCore::RenderHTMLCanvas::layout): Ditto.
57605        * rendering/RenderImage.cpp:
57606        (WebCore::RenderImage::layout): Ditto.
57607        * rendering/RenderTable.cpp:
57608        (WebCore::RenderTable::layout): Ditto.
57609        * rendering/RenderView.h:
57610        (WebCore::RenderView::layoutDelta): Added. Keeps track of the offset between
57611        the position of the object currently being laid out and its position at the
57612        end of the last layout.
57613        (WebCore::RenderView::addLayoutDelta): Added.
57614
576152007-02-07  Christopher Brichford  <chrisb@adobe.com>
57616
57617        Reviewed by Brady.
57618
57619        http://bugs.webkit.org/show_bug.cgi?id=6286
57620        Very large (~500MB) images cause reproducible Safari crash
57621
57622        * loader/CachedImage.cpp: 
57623        (WebCore::CachedImage::bufferData): Detect failure to create a
57624        large Vector<> and call error() when that happens.
57625
576262007-02-07  Mitz Pettel  <mitz@webkit.org>
57627
57628        Reviewed by Dave Hyatt.
57629
57630        - fix http://bugs.webkit.org/show_bug.cgi?id=5399
57631          no-repeat on negatively positioned background images are ignored
57632
57633        Test: fast/backgrounds/repeat/negative-offset-repeat.html
57634
57635        - fix http://bugs.webkit.org/show_bug.cgi?id=5821
57636          Changing background of <col> doesn't repaint the column
57637
57638        Test: fast/repaint/table-col-background.html
57639
57640        - fix http://bugs.webkit.org/show_bug.cgi?id=11720
57641          REGRESSION: large amounts of CPU consumed viewing this site
57642
57643        * rendering/RenderBox.cpp:
57644        (WebCore::RenderBox::imageChanged): Added. Finds the border and/or background
57645        layer(s) that use the image and invalidates only the rect in which the image
57646        actually paints. There are two special cases in this function: 1) for the body
57647        element, the background is propagated to the root; 2) inline flows do a full
57648        repaint.
57649        (WebCore::RenderBox::calculateBackgroundImageGeometry): Added. Factored out,
57650        simplified and corrected the calculation of the rectangle into which the background
57651        image paints, the tile size and the pattern phase.
57652        (WebCore::RenderBox::paintBackgroundExtended):
57653        * rendering/RenderBox.h:
57654        * rendering/RenderObject.cpp:
57655        * rendering/RenderObject.h:
57656        (WebCore::RenderObject::imageChanged): Moved the implementation to RenderBox.
57657        * rendering/RenderTableCol.cpp:
57658        (WebCore::RenderTableCol::getAbsoluteRepaintRect): Overridden to return the
57659        table's repaint rect.
57660        (WebCore::RenderTableCol::imageChanged): Overridden to do a full repaint, which
57661        currently repaints the entire table.
57662        * rendering/RenderTableCol.h:
57663        * rendering/RenderTableRow.cpp:
57664        (WebCore::RenderTableRow::imageChanged): Overridden to do a full repaint
57665        of the row, since the backgrounds are painted by the cells.
57666        * rendering/RenderTableRow.h:
57667        * rendering/RenderTableSection.cpp:
57668        (WebCore::RenderTableSection::imageChanged): Overridden to do a full
57669        repaint of the section, since the backgrounds are painted by the cells.
57670        * rendering/RenderTableSection.h:
57671
576722007-02-07  Anders Carlsson  <acarlsson@apple.com>
57673
57674        Reviewed by Maciej.
57675
57676        Move shouldInterruptJavaScript to the Chrome.
57677
57678        * bindings/js/kjs_binding.cpp:
57679        (KJS::ScriptInterpreter::shouldInterruptScript):
57680        * page/Chrome.cpp:
57681        (WebCore::Chrome::shouldInterruptJavaScript):
57682        * page/Chrome.h:
57683        * page/ChromeClient.h:
57684        * page/Frame.h:
57685        * page/mac/FrameMac.h:
57686        * page/mac/FrameMac.mm:
57687        * page/mac/WebCoreFrameBridge.h:
57688        * platform/graphics/svg/SVGImageEmptyClients.h:
57689        (WebCore::SVGEmptyChromeClient::shouldInterruptJavaScript):
57690
576912007-02-07  Darin Adler  <darin@apple.com>
57692
57693        Reviewed by Maciej.
57694
57695        - <rdar://problem/4826861> WebKit tests show memory leaks in NSHTMLReader, caused by method named "hash"
57696
57697        * bindings/scripts/CodeGeneratorObjC.pm: Added a list of method names we should never use, since they
57698        are in base classes WebScriptObject and NSObject. Luckily, only "hash" is causing trouble. Added
57699        "hash" to the existing special case for "id". Now "hash" is "hashName" just as "id" is "idName".
57700
577012007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57702
57703        Reviewed by Adam Roben.
57704
57705        Linux/gdk build fixes for graphics-related stuff.
57706
57707        * platform/graphics/cairo/ImageCairo.cpp:
57708        (WebCore::BitmapImage::checkForSolidColor):
57709        * platform/graphics/cairo/ImageSourceCairo.cpp:
57710        (WebCore::ImageSource::setData):
57711        * platform/graphics/gdk/ImageGdk.cpp:
57712        (WebCore::BitmapImage::initPlatformData):
57713        (WebCore::BitmapImage::invalidatePlatformData):
57714        (WebCore::Image::loadPlatformResource):
57715        (WebCore::Image::drawPattern):
57716
577172007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57718
57719        Reviewed by Maciej.
57720
57721        Linux/gdk build fixes related to networking.
57722
57723        * platform/network/ResourceHandleInternal.h: Add accessor for m_client.
57724        (WebCore::ResourceHandleInternal::client):
57725        * platform/network/gdk/ResourceHandleCurl.cpp: Add missing functions and
57726        massage for changed APIs.
57727        (WebCore::ResourceHandle::start):
57728        (WebCore::ResourceHandle::cancel):
57729        (WebCore::ResourceHandle::bufferedData):
57730        (WebCore::ResourceHandle::supportsBufferedData):
57731        (WebCore::ResourceHandle::setDefersLoading):
57732        * platform/network/gdk/ResourceHandleManager.cpp: Rename get() to
57733        sharedInstance(). Massaged for changed APIs.
57734        (WebCore::ResourceHandleManager::sharedInstance):
57735        (WebCore::writeCallback):
57736        (WebCore::ResourceHandleManager::downloadTimerCallback):
57737        (WebCore::ResourceHandleManager::remove):
57738        * platform/network/gdk/ResourceHandleManager.h: Ditto.
57739
577402007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57741
57742        Reviewed by Maciej.
57743
57744        Mismatched type of alloc/free function crashes gdk build.
57745
57746        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
57747        (WebCore::JPEGImageReader::close):
57748
577492007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57750
57751        Reviewed by Adam Roben.
57752
57753        Linux/gdk build fixes - add file based on qt implementation.
57754
57755        * platform/DragData.h:
57756        * platform/gdk/DragDataGdk.cpp: Added.
57757
577582007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57759
57760        Reviewed by Adam Roben.
57761
57762        Linux/gdk build fixes - add new files based on qt implementation.
57763
57764        * page/gdk/DragControllerGdk.cpp: Added.
57765        (WebCore::DragController::dragOperation):
57766        * page/gdk/EventHandlerGdk.cpp: Added.
57767        (WebCore::EventHandler::focusDocumentView):
57768        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
57769        (WebCore::EventHandler::handleDrag):
57770        (WebCore::EventHandler::eventActivatedView):
57771
577722007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57773
57774        Reviewed by Adam Roben.
57775
57776        Linux/gdk build fixes - add new files based on Qt implementation.
57777
57778        * loader/gdk/DocumentLoaderGdk.cpp: Added.
57779        (WebCore::DocumentLoader::getResponseModifiedHeader):
57780        * loader/gdk/FrameLoaderClientGdk.cpp: Added.
57781        (WebCore::FrameLoaderClientGdk::FrameLoaderClientGdk):
57782        (WebCore::FrameLoaderClientGdk::frame):
57783        (WebCore::FrameLoaderClientGdk::userAgent):
57784        (WebCore::FrameLoaderClientGdk::createDocumentLoader):
57785        (WebCore::FrameLoaderClientGdk::dispatchWillSubmitForm):
57786        (WebCore::FrameLoaderClientGdk::committedLoad):
57787        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveAuthenticationChallenge):
57788        (WebCore::FrameLoaderClientGdk::dispatchDidCancelAuthenticationChallenge):
57789        (WebCore::FrameLoaderClientGdk::dispatchWillSendRequest):
57790        (WebCore::FrameLoaderClientGdk::assignIdentifierToInitialRequest):
57791        (WebCore::FrameLoaderClientGdk::postProgressStartedNotification):
57792        (WebCore::FrameLoaderClientGdk::postProgressEstimateChangedNotification):
57793        (WebCore::FrameLoaderClientGdk::postProgressFinishedNotification):
57794        (WebCore::FrameLoaderClientGdk::frameLoaderDestroyed):
57795        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveResponse):
57796        (WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForMIMEType):
57797        (WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNewWindowAction):
57798        (WebCore::FrameLoaderClientGdk::dispatchDecidePolicyForNavigationAction):
57799        (WebCore::FrameLoaderClientGdk::createPlugin):
57800        (WebCore::FrameLoaderClientGdk::createFrame):
57801        (WebCore::FrameLoaderClientGdk::redirectDataToPlugin):
57802        (WebCore::FrameLoaderClientGdk::createJavaAppletWidget):
57803        (WebCore::FrameLoaderClientGdk::objectContentType):
57804        (WebCore::FrameLoaderClientGdk::overrideMediaType):
57805        (WebCore::FrameLoaderClientGdk::windowObjectCleared):
57806        (WebCore::FrameLoaderClientGdk::setMainFrameDocumentReady):
57807        (WebCore::FrameLoaderClientGdk::hasWebView):
57808        (WebCore::FrameLoaderClientGdk::hasFrameView):
57809        (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoad):
57810        (WebCore::FrameLoaderClientGdk::frameLoadCompleted):
57811        (WebCore::FrameLoaderClientGdk::privateBrowsingEnabled):
57812        (WebCore::FrameLoaderClientGdk::makeDocumentView):
57813        (WebCore::FrameLoaderClientGdk::makeRepresentation):
57814        (WebCore::FrameLoaderClientGdk::forceLayout):
57815        (WebCore::FrameLoaderClientGdk::forceLayoutForNonHTML):
57816        (WebCore::FrameLoaderClientGdk::setCopiesOnScroll):
57817        (WebCore::FrameLoaderClientGdk::detachedFromParent1):
57818        (WebCore::FrameLoaderClientGdk::detachedFromParent2):
57819        (WebCore::FrameLoaderClientGdk::detachedFromParent3):
57820        (WebCore::FrameLoaderClientGdk::detachedFromParent4):
57821        (WebCore::FrameLoaderClientGdk::loadedFromPageCache):
57822        (WebCore::FrameLoaderClientGdk::dispatchDidHandleOnloadEvents):
57823        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveServerRedirectForProvisionalLoad):
57824        (WebCore::FrameLoaderClientGdk::dispatchDidCancelClientRedirect):
57825        (WebCore::FrameLoaderClientGdk::dispatchWillPerformClientRedirect):
57826        (WebCore::FrameLoaderClientGdk::dispatchDidChangeLocationWithinPage):
57827        (WebCore::FrameLoaderClientGdk::dispatchWillClose):
57828        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveIcon):
57829        (WebCore::FrameLoaderClientGdk::dispatchDidStartProvisionalLoad):
57830        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveTitle):
57831        (WebCore::FrameLoaderClientGdk::dispatchDidCommitLoad):
57832        (WebCore::FrameLoaderClientGdk::dispatchDidFinishDocumentLoad):
57833        (WebCore::FrameLoaderClientGdk::dispatchDidFirstLayout):
57834        (WebCore::FrameLoaderClientGdk::dispatchShow):
57835        (WebCore::FrameLoaderClientGdk::cancelPolicyCheck):
57836        (WebCore::FrameLoaderClientGdk::dispatchDidLoadMainResource):
57837        (WebCore::FrameLoaderClientGdk::revertToProvisionalState):
57838        (WebCore::FrameLoaderClientGdk::clearUnarchivingState):
57839        (WebCore::FrameLoaderClientGdk::willChangeTitle):
57840        (WebCore::FrameLoaderClientGdk::didChangeTitle):
57841        (WebCore::FrameLoaderClientGdk::finishedLoading):
57842        (WebCore::FrameLoaderClientGdk::finalSetupForReplace):
57843        (WebCore::FrameLoaderClientGdk::setDefersLoading):
57844        (WebCore::FrameLoaderClientGdk::isArchiveLoadPending):
57845        (WebCore::FrameLoaderClientGdk::cancelPendingArchiveLoad):
57846        (WebCore::FrameLoaderClientGdk::clearArchivedResources):
57847        (WebCore::FrameLoaderClientGdk::canHandleRequest):
57848        (WebCore::FrameLoaderClientGdk::canShowMIMEType):
57849        (WebCore::FrameLoaderClientGdk::representationExistsForURLScheme):
57850        (WebCore::FrameLoaderClientGdk::generatedMIMETypeForURLScheme):
57851        (WebCore::FrameLoaderClientGdk::restoreScrollPositionAndViewState):
57852        (WebCore::FrameLoaderClientGdk::provisionalLoadStarted):
57853        (WebCore::FrameLoaderClientGdk::didFinishLoad):
57854        (WebCore::FrameLoaderClientGdk::prepareForDataSourceReplacement):
57855        (WebCore::FrameLoaderClientGdk::setTitle):
57856        (WebCore::FrameLoaderClientGdk::setDocumentViewFromPageCache):
57857        (WebCore::FrameLoaderClientGdk::dispatchDidReceiveContentLength):
57858        (WebCore::FrameLoaderClientGdk::dispatchDidFinishLoading):
57859        (WebCore::FrameLoaderClientGdk::dispatchDidFailLoading):
57860        (WebCore::FrameLoaderClientGdk::dispatchDidLoadResourceFromMemoryCache):
57861        (WebCore::FrameLoaderClientGdk::dispatchDidFailProvisionalLoad):
57862        (WebCore::FrameLoaderClientGdk::dispatchDidFailLoad):
57863        (WebCore::FrameLoaderClientGdk::download):
57864        (WebCore::FrameLoaderClientGdk::cancelledError):
57865        (WebCore::FrameLoaderClientGdk::cannotShowURLError):
57866        (WebCore::FrameLoaderClientGdk::interruptForPolicyChangeError):
57867        (WebCore::FrameLoaderClientGdk::cannotShowMIMETypeError):
57868        (WebCore::FrameLoaderClientGdk::fileDoesNotExistError):
57869        (WebCore::FrameLoaderClientGdk::shouldFallBack):
57870        (WebCore::FrameLoaderClientGdk::willUseArchive):
57871        (WebCore::FrameLoaderClientGdk::saveScrollPositionAndViewStateToItem):
57872        (WebCore::FrameLoaderClientGdk::saveDocumentViewToPageCache):
57873        (WebCore::FrameLoaderClientGdk::canCachePage):
57874        (WebCore::FrameLoaderClientGdk::dispatchCreatePage):
57875        (WebCore::FrameLoaderClientGdk::dispatchUnableToImplementPolicy):
57876        (WebCore::FrameLoaderClientGdk::setMainDocumentError):
57877        (WebCore::FrameLoaderClientGdk::startDownload):
57878        (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForStandardLoad):
57879        (WebCore::FrameLoaderClientGdk::updateGlobalHistoryForReload):
57880        (WebCore::FrameLoaderClientGdk::shouldGoToHistoryItem):
57881        * loader/gdk/FrameLoaderClientGdk.h: Added.
57882        (WebCore::FrameLoaderClientGdk::~FrameLoaderClientGdk):
57883        (WebCore::FrameLoaderClientGdk::setFrame):
57884
578852007-02-07  Krzysztof Kowalczyk  <kkowalczyk@gmail.com>
57886
57887        Reviewed by Maciej.
57888
57889        Linux/gdk fixes related to fonts.
57890
57891        * platform/gdk/FontDataGdk.cpp:
57892        (WebCore::FontData::platformInit): remove a work-around for older cairo versions
57893        since Ubuntu 6.10 ships with cairo that is new enough
57894        * platform/gdk/FontGdk.cpp:
57895        (WebCore::Font::drawGlyphs):
57896        * platform/gdk/FontPlatformDataGdk.cpp: Remove unused variables.
57897        (WebCore::FontPlatformData::FontPlatformData):
57898
578992007-02-07  Alexey Proskuryakov  <ap@webkit.org>
57900
57901        Reviewed by Darin.
57902
57903        http://bugs.webkit.org/show_bug.cgi?id=12582
57904        REGRESSION: Unclosed <title> makes the window display garbage or empty title
57905
57906        Automatic testing is not possible, and manual testing probably doesn't make sense.
57907
57908        * loader/DocumentLoader.cpp:
57909        (WebCore::canonicalizedTitle): Bail out early if the passed in string is all whitespace.
57910
579112007-02-06  Anders Carlsson  <acarlsson@apple.com>
57912
57913        Reviewed by John Sullivan.
57914
57915        <rdar://problem/4977952>
57916        REGRESSION: Yahoo Messenger IM is totally blank
57917        
57918        * loader/FrameLoader.cpp:
57919        (WebCore::FrameLoader::checkContentPolicy):
57920        Don't ask the policy delegate for content that has valid substitute data.
57921        
57922        (WebCore::FrameLoader::checkNavigationPolicy):
57923        If the loader has substitute data but doesn't have an unreachable URL, let the policy
57924        delegate decide what to do.
57925
579262007-02-07  Geoffrey Garen  <ggaren@apple.com>
57927
57928        Reviewed by Darin Adler.
57929
57930        Restoring some of the functionality I removed in r19445. It's insufficient for
57931        each page to cancel keepAlive only for its child frames, because a frame
57932        can be removed from the page before we get a chance to cancel its keepAlive.
57933        So, the page destructor has to cancel keepAlive for all frames. This is safe
57934        because we prohibit closing a WebView while JavaScript is executing.
57935
57936        * page/Frame.cpp:
57937        (WebCore::keepAliveSet):
57938        (WebCore::Frame::keepAlive):
57939        (WebCore::Frame::cancelAllKeepAlive):
57940        (WebCore::Frame::lifeSupportTimerFired):
57941        * page/Frame.h:
57942        * page/Page.cpp:
57943        (WebCore::Page::~Page):
57944
579452007-02-07  Alexey Proskuryakov  <ap@webkit.org>
57946
57947        Reviewed by Darin.
57948
57949        http://bugs.webkit.org/show_bug.cgi?id=12603
57950        A crash when trying to use XPath functions normalize-space(), string-length() and number()
57951
57952        Test: fast/xpath/implicit-node-args.html
57953
57954        * xml/XPathFunctions.cpp:
57955        (WebCore::XPath::FunNumber::doEvaluate): Implemented zero parameter case.
57956        (WebCore::XPath::FunctionMapping::): Corrected descriptions of these functions, as they
57957        do allow zero parameters.
57958        (WebCore::XPath::createFunction): Combined the two failure cases to ensure that this
57959        function never returns 0.
57960
579612007-02-07  Zack Rusin  <zrusin@trolltech.com>
57962
57963        Fix compilation
57964
57965        * page/qt/EventHandlerQt.cpp:
57966        (WebCore::EventHandler::eventActivatedView):
57967
579682007-02-06  Alice Liu  <alice.liu@apple.com>
57969
57970        Reviewed by Maciej.
57971
57972        Added editing command functions for scrolling by page and moving the caret
57973
57974        * editing/Editor.cpp:
57975        (WebCore::execMoveUpByPageAndModifyCaret):
57976        (WebCore::execMoveDownByPageAndModifyCaret):
57977        (WebCore::CommandEntry::):
57978
579792007-02-06  Justin Garcia  <justin.garcia@apple.com>
57980
57981        Reviewed by john
57982
57983        <rdar://problem/4922367>
57984        WebView selectLine: followed by deleteBackward: deletes TABLE element of following line
57985
57986        * editing/AppendNodeCommand.cpp:
57987        (WebCore::AppendNodeCommand::doApply): Don't ASSERT when manipulating
57988        non-editable content that is embedded in editable content.  We'll do 
57989        this kind of manipulation when removing redundant style spans after
57990        pasting content that has non-editable pieces.
57991        * editing/InsertNodeBeforeCommand.cpp:
57992        (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
57993        * editing/htmlediting.cpp:
57994        (WebCore::isContentEditable): Added, wrapper for Node::isContentEditable
57995        (WebCore::rangeCompliantEquivalent): Although legal, 
57996        [{table, select, etc.}, {0, numChildren}] don't refer to children of the element, 
57997        but positions before and after the element.  So, rangeCompliantEquivalent is 
57998        really responsible for converting illegal positions *and* legal positions 
57999        that have a special meaning internally.
58000        * editing/htmlediting.h:
58001
580022007-02-06  Anders Carlsson  <acarlsson@apple.com>
58003
58004        Reviewed by Brady.
58005
58006        * platform/String.cpp:
58007        (WebCore::String::ascii):
58008        Fix dumping null Strings.
58009
580102007-02-06  Anders Carlsson  <acarlsson@apple.com>
58011
58012        Reviewed by Geoff.
58013
58014        Fix <rdar://problem/4979484>
58015        
58016        * css/CSSPrimitiveValue.cpp:
58017        (WebCore::isCSSTokenizerIdentifier):
58018        Do the range check before calling isalpha or isalnum.
58019
580202007-02-06  Geoffrey Garen  <ggaren@apple.com>
58021
58022        Reviewed by Darin Adler.
58023
58024        Fixed Frame/RenderObject/Node leak report seen while running SVG image tests.
58025        (We'll need this fix if we ever re-enable SVG image.)
58026        
58027        The extra reference belonged to the Frame keepAlive timer (so this was
58028        not a "real" leak, in the end). The Page destructor has code to cancel all 
58029        Frame keepAlive timers upon the destruction of the last Page, but an SVG 
58030        image puts a Page within a Page, making this condition impossible to meet.
58031        
58032        The fix here is to have each individual page cancel the keepAlive timers 
58033        belonging to its child frames.
58034        
58035        * page/Frame.cpp: Changed the FrameCounter to use WTF logging.
58036        (WebCore::): Nixed the lifeSupportSet, since it's no longer used.
58037        (WebCore::Frame::cancelKeepAlive): Renamed from "endLifeSupport" to match
58038        the name "keepAlive".
58039        * page/Page.cpp:
58040        (WebCore::Page::~Page): Made each page cancel its child keepAlive timers 
58041        and clear its mainFrame, since we may never reach the condition of having 0 Pages.
58042
580432007-02-06  Adam Roben  <aroben@apple.com>
58044
58045        Rubberstamped by Brady.
58046
58047        Revert the log channel constants to their old values for all you pretty
58048        people out there who were using the old ones. I also renamed
58049        LogResources to LogPlatformLeaks to be a bit more specific.
58050
58051        * platform/Logging.cpp:
58052        (WebCore::):
58053        * platform/Logging.h:
58054
580552007-02-05  Justin Garcia  <justin.garcia@apple.com>
58056
58057        Reviewed by john
58058
58059        <rdar://problem/4959067>
58060        Bullets get erased or moved down to another line
58061        <rdar://problem/4912529>
58062        Seed: Bulleted list in Note in Mail.app does not work with Japanese input mode
58063        
58064        Do not expand the selection to include fully selected 
58065        special elements when insering text over a selection.
58066
58067        * editing/CompositeEditCommand.cpp:
58068        (WebCore::CompositeEditCommand::deleteSelection): Pass
58069        expandForSpecialElements through to DeleteSelectionCommand's constructor.
58070        (WebCore::CompositeEditCommand::moveParagraphs): Use the 
58071        convenience function.
58072        * editing/CompositeEditCommand.h:
58073        * editing/DeleteSelectionCommand.h:
58074        * editing/InsertTextCommand.cpp:
58075        (WebCore::InsertTextCommand::input): Do not expand the selection
58076        to be deleted for special elements.
58077        * editing/ReplaceSelectionCommand.cpp:
58078        (WebCore::ReplaceSelectionCommand::doApply): Added a FIXME about 
58079        when we should expand the selection.
58080
580812007-02-06  Geoffrey Garen  <ggaren@apple.com>
58082
58083        Reviewed by Anders Carlsson.
58084        
58085        Disabled support for SVG image because it crashes all the time.
58086
58087        * loader/CachedImage.cpp:
58088        (WebCore::CachedImage::createImage):
58089
580902007-02-06  Mitz Pettel  <mitz@webkit.org>
58091
58092        Reviewed by Darin.
58093
58094        - fix http://bugs.webkit.org/show_bug.cgi?id=12518
58095          Betsson.com crashes browser
58096
58097        Test: fast/layers/generated-layer-scrollbar-crash.html
58098
58099        * rendering/RenderLayer.cpp:
58100        (WebCore::RenderLayer::createScrollbar): Changed element()->document() to
58101        document() to work with anonymous objects.
58102        (WebCore::RenderLayer::updateOverflowStatus): Ditto.
58103
581042007-02-06  Eric Seidel  <eric@webkit.org>
58105
58106        Reviewed by mitz.
58107
58108        WebKit ignores floating point values for stroke-miterlimit
58109        http://bugs.webkit.org/show_bug.cgi?id=12577
58110        
58111        Test: svg/W3C-SVG-1.1/painting-stroke-07-t.svg
58112
58113        * ksvg2/css/SVGCSSParser.cpp:
58114        (WebCore::CSSParser::parseSVGValue):
58115        * ksvg2/css/SVGCSSStyleSelector.cpp:
58116        (WebCore::CSSStyleSelector::applySVGProperty):
58117        * ksvg2/css/SVGRenderStyle.h:
58118        * ksvg2/css/SVGRenderStyleDefs.h:
58119        (WebCore::StyleStrokeData::operator!=):
58120
581212007-02-06  Adam Roben  <aroben@apple.com>
58122
58123        Reviewed by Ada and Oliver.
58124
58125        Adding a new LogResources channel for tracking platform resource usage.
58126
58127        * platform/Logging.cpp: Added new channel, cleaned up constants to be more readable.
58128        * platform/Logging.h: Declare new channel.
58129
581302007-02-06  Alexey Proskuryakov  <ap@webkit.org>
58131
58132        Reviewed by Geoff.
58133
58134        http://bugs.webkit.org/show_bug.cgi?id=12619
58135        Non-abbreviated XPaths don't work
58136
58137        Test: fast/xpath/ancestor-axis.html
58138
58139        * xml/XPathParser.cpp:
58140        (WebCore::XPath::Parser::lex): Fix axis name parsing to actually work.
58141        * xml/XPathStep.cpp:
58142        (WebCore::XPath::Step::nodeTestMatches): Fix "*" node test to actually work.
58143
581442007-02-06  Mark Rowe  <mrowe@apple.com>
58145
58146        Roll out incomplete support for font-stretch (r19350) at Dave Hyatt's request.
58147        See http://bugs.webkit.org/show_bug.cgi?id=12530#c9 for more info.
58148
58149        * css/CSSComputedStyleDeclaration.cpp:
58150        (WebCore::):
58151        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
58152        * css/cssparser.cpp:
58153        (WebCore::CSSParser::parseValue):
58154        * css/cssstyleselector.cpp:
58155        (WebCore::CSSStyleSelector::applyDeclarations):
58156        (WebCore::CSSStyleSelector::applyProperty):
58157        * platform/FontCache.cpp:
58158        (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
58159        (WebCore::FontPlatformDataCacheKey::operator==):
58160        (WebCore::computeHash):
58161        (WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
58162        (WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
58163        (WebCore::FontCache::getCachedFontPlatformData):
58164        * platform/FontDescription.h:
58165        (WebCore::FontDescription::FontDescription):
58166        (WebCore::FontDescription::weight):
58167        (WebCore::FontDescription::setWeight):
58168        (WebCore::FontDescription::operator==):
58169        * platform/mac/FontCacheMac.mm:
58170        (WebCore::FontCache::createFontPlatformData):
58171        * platform/mac/WebFontCache.mm:
58172        (acceptableChoice):
58173        (betterChoice):
58174        (+[WebFontCache fontWithFamily:traits:size:]):
58175
581762007-02-05  Adele Peterson  <adele@apple.com>
58177
58178        Reviewed by Darin.
58179
58180        A few small updates to my bidi patch.
58181
58182        * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Moved the declaration of the CharacterBuffer outside the if statement since we use its data outside that scope.
58183        * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
58184        * rendering/bidi.cpp: (WebCore::RenderBlock::bidiReorderCharacters): Used a PassRefPtr for the BidiContext.
58185
581862007-02-05  Adele Peterson  <adele@apple.com>
58187
58188        Reviewed by Adam.
58189
58190        Fix for assertion failure in fast/events/objc-keyboard-event-creation.html
58191
58192        * html/HTMLInputElement.cpp:
58193        (WebCore::HTMLInputElement::selectionStart): Check that the selection offsets are not equal to -1 (which is means the selection has never been set) instead of checking for >= 0.
58194        (WebCore::HTMLInputElement::selectionEnd): ditto.
58195        (WebCore::HTMLInputElement::setValue): ditto.
58196        (WebCore::HTMLInputElement::selection): Return an empty selection if the input is not a text field or if no selection has ever been set in the text field.
58197        * html/HTMLTextAreaElement.cpp:
58198        (WebCore::HTMLTextAreaElement::selectionStart): Check that the selection offsets are not equal to -1.
58199        (WebCore::HTMLTextAreaElement::selectionEnd): ditto.
58200        (WebCore::HTMLTextAreaElement::setValue): ditto.
58201        (WebCore::HTMLTextAreaElement::selection): Return an empty selection if no selection has ever been set in the textarea.
58202
58203        * dom/Position.cpp: Added FIXMEs that we should catch the negative offset earlier.
58204        (WebCore::Position::previous):
58205        (WebCore::Position::next):
58206
582072007-02-05  Justin Garcia  <justin.garcia@apple.com>
58208
58209        Reviewed by harrison
58210
58211        <rdar://problem/4947387>
58212        REGRESSION Shift Command Left should only select to the beginning of the line
58213
58214        * editing/Editor.cpp:
58215        (WebCore::CommandEntry::): Never copy/paste code.
58216
582172007-02-05  Darin Adler  <darin@apple.com>
58218
58219        Reviewed by John Sullivan.
58220
58221        - fix http://bugs.webkit.org/show_bug.cgi?id=11535
58222          <rdar://problem/4946959> REGRESSION: onclick="this.select();" not working on new forms (11535)
58223
58224        Test: fast/forms/input-select-on-click.html
58225
58226        * page/EventHandler.h: Added m_mouseDownWasSingleClickInSelection boolean.
58227        Organized other booleans a bit more logically.
58228        * page/EventHandler.cpp:
58229        (WebCore::EventHandler::EventHandler): Rearrange order to match EventHandler.h, add
58230        m_mouseDownWasSingleClickInSelection initialization.
58231        (WebCore::EventHandler::handleMousePressEventSingleClick): Set m_mouseDownWasSingleClickInSelection
58232        to true in the appropriate special case.
58233        (WebCore::EventHandler::handleMousePressEvent): Set m_mouseDownWasSingleClickInSelection to false.
58234        (WebCore::EventHandler::handleMouseReleaseEvent): Change code to clear selection or set to caret to
58235        only fire if m_mouseDownWasSingleClickInSelection was true rather than firing for any
58236        m_mouseDownMayStartSelect case.
58237
582382007-02-05  George Staikos  <staikos@kde.org>
58239
58240        Reviewed by Maciej.
58241
58242        Send HTTP cookies.
58243
58244        * platform/network/qt/ResourceHandleManagerQt.cpp:
58245        (WebCore::RequestQt::RequestQt):
58246
582472007-02-05  Adele Peterson  <adele@apple.com>
58248
58249        Reviewed by Mitz and Anders.
58250
58251        Fix for http://bugs.webkit.org/show_bug.cgi?id=11811
58252        <rdar://problem/4947184> REGRESSION (r11783): Hebrew text in list boxes is reversed
58253
58254        http://bugs.webkit.org/show_bug.cgi?id=11812
58255        <rdar://problem/4960269> REGRESSION (Native file upload): Hebrew filenames are reversed
58256
58257        Tests: 
58258        fast/text/international/bidi-listbox.html
58259        fast/text/international/bidi-listbox-atsui.html
58260
58261        * rendering/RenderBlock.h: Added static bidiReorderCharacters that will run the bidi algorithm on a character buffer.
58262        * rendering/bidi.cpp:
58263        (WebCore::RenderBlock::bidiReorderCharacters): Added. Creates an anonymous RenderBlock and RenderText to feed into bidiReorderLines.
58264        (WebCore::RenderBlock::constructLine): Uses the new convenience methods on BidiRun.
58265        * rendering/bidi.h:
58266        (WebCore::BidiRun::reversed): Added convenience method.
58267        (WebCore::BidiRun::dirOverride): ditto.
58268
58269        * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::paintObject): Creates a buffer and calls bidiReorderCharacters
58270          to get a correctly ordered character buffer for drawText.
58271        * rendering/RenderListBox.cpp: (WebCore::RenderListBox::paintItemForeground): ditto.
58272
582732007-02-05  Mitz Pettel  <mitz@webkit.org>
58274
58275        Reviewed by Darin.
58276
58277        - fix http://bugs.webkit.org/show_bug.cgi?id=12590
58278          REGRESSION: Text selection is weird in textareas in Trac wiki editing pages
58279
58280        Test: fast/repaint/selection-gap-overflow-scroll.html
58281
58282        * rendering/RenderBlock.cpp:
58283        (WebCore::RenderBlock::selectionGapRects): Adjust for overflow scroll.
58284
582852007-02-05  Mitz Pettel  <mitz@webkit.org>
58286
58287        Reviewed by Adele.
58288
58289        - fix http://bugs.webkit.org/show_bug.cgi?id=11916
58290          REGRESSION (SearchField): RTL search fields are mixed up
58291
58292        Test: fast/forms/search-rtl.html
58293
58294        * rendering/RenderTextControl.cpp:
58295        (WebCore::RenderTextControl::createInnerBlockStyle): Always make the inner
58296        block LTR so that the results button will be on the left and the cancel
58297        button will be on the right.
58298        (WebCore::RenderTextControl::createInnerTextStyle): Inherit the direction
58299        property directly from the control so that it won't be masked by the inner
58300        block's LTR override.
58301        (WebCore::RenderTextControl::nodeAtPoint): Removed code that swapped the
58302        results and cancel buttons for RTL.
58303        (WebCore::RenderTextControl::forwardEvent): Ditto.
58304        (WebCore::RenderTextControl::clientPaddingLeft): Ditto.
58305        (WebCore::RenderTextControl::clientPaddingRight): Ditto.
58306
583072007-02-05  Mitz Pettel  <mitz@webkit.org>
58308
58309        Reviewed by Adele.
58310
58311        - fix http://bugs.webkit.org/show_bug.cgi?id=12618
58312          REGRESSION (SearchField): Dragging across the text and releasing over the clear button clears the field
58313
58314        Test: fast/forms/search-cancel-button-mouseup.html
58315
58316        Made the cancel button capturing.
58317
58318        * html/HTMLTextFieldInnerElement.cpp:
58319        (WebCore::HTMLSearchFieldCancelButtonElement::HTMLSearchFieldCancelButtonElement):
58320        (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
58321        * html/HTMLTextFieldInnerElement.h:
58322
583232007-02-05  Mitz Pettel  <mitz@webkit.org>
58324
58325        Reviewed by Darin.
58326
58327        - fix http://bugs.webkit.org/show_bug.cgi?id=6626
58328          Arabic & Farsi rendered with no shaping (all glyphs separate, unreadable!)
58329
58330        No test possible since Mac OS X only ships with fonts that contain shaping
58331        information.
58332
58333        * icu/unicode/ushape.h: Added from
58334        http://www.opensource.apple.com/darwinsource/10.4.8.ppc/ICU-6.2.9/icuSources/common/unicode/
58335        * platform/FontData.h:
58336        (WebCore::FontData::shapesArabic): Added. Returns whether the font contains
58337        shaping information for Arabic or not.
58338        * platform/mac/FontDataMac.mm:
58339        (WebCore::FontData::platformInit):
58340        (WebCore::FontData::checkShapesArabic): Added. Checks whether the font contains
58341        a glyph metamorphosis table. The heuristic is that if a font contains Arabic glyphs
58342        and a metamorphosis table, then it includes shaping information for Arabic.
58343        * platform/mac/FontMac.mm:
58344        (WebCore::overrideLayoutOperation): Changed to use the same character buffer passed
58345        to ATSUI instead of the original character buffer and to give zero-width spaces zero
58346        width.
58347        (WebCore::isArabicLamWithAlefLigature): Added. Checks if the character is one
58348        of the Arabic presentation forms of Lam with Alef.
58349        (WebCore::shapeArabic): Added. This is a wrapper around the ICU Arabic shaping routine
58350        that replaces each space following a Lam with Alef ligature resulting from shaping
58351        with a zero-width space.
58352        (WebCore::ATSULayoutParameters::initialize): Changed to allocate the auxiliary buffer
58353        lazily for mirroring and Arabic shaping. Added a call to shapeArabic() when required.
58354
583552007-02-05  Eric Seidel  <eric@webkit.org>
58356
58357        No review, build fix only.
58358
58359        * ksvg2/svg/SVGStyleElement.cpp: add forgotten header.
58360
583612007-02-05  Eric Seidel  <eric@webkit.org>
58362
58363        Reviewed by bdash.
58364
58365        Fix style name testcase which I broke in my last commit.
58366
58367        * ksvg2/svg/SVGStyleElement.cpp:
58368        (WebCore::SVGStyleElement::xmlspace):
58369        (WebCore::SVGStyleElement::title): override Element::title()
58370        (WebCore::SVGStyleElement::parseMappedAttribute):
58371        * ksvg2/svg/SVGStyleElement.h:
58372
583732007-02-04  Eric Seidel  <eric@webkit.org>
58374
58375        Reviewed by darin.
58376
58377        Fix hand cursor on link hover for SVG
58378        Fix status text on link hover for SVG
58379        Fix tooltips on link hover for SVG
58380        Fix link dragging for SVG
58381        http://bugs.webkit.org/show_bug.cgi?id=12575
58382        
58383        Test: added manual-tests/svg-links.svg
58384
58385        * dom/Document.cpp:
58386        (WebCore::Document::prepareMouseEvent):
58387        * dom/Element.cpp:
58388        (WebCore::Element::title):
58389        * dom/Element.h:
58390        * html/HTMLElement.cpp:
58391        (WebCore::HTMLElement::setId):
58392        (WebCore::HTMLElement::title):
58393        (WebCore::HTMLElement::setTitle):
58394        (WebCore::HTMLElement::setLang):
58395        * html/HTMLElement.h:
58396        * ksvg2/svg/SVGAElement.cpp:
58397        (WebCore::SVGAElement::title):
58398        (WebCore::SVGAElement::parseMappedAttribute):
58399        (WebCore::SVGAElement::defaultEventHandler):
58400        * ksvg2/svg/SVGAElement.h:
58401        * ksvg2/svg/SVGTitleElement.cpp:
58402        * ksvg2/svg/SVGTitleElement.h:
58403        * manual-tests/svg-links.svg: Added.
58404        * rendering/HitTestResult.cpp:
58405        (WebCore::HitTestResult::title):
58406        (WebCore::HitTestResult::absoluteImageURL):
58407        (WebCore::HitTestResult::absoluteLinkURL):
58408        (WebCore::HitTestResult::isLiveLink):
58409        (WebCore::HitTestResult::titleDisplayString):
58410
584112007-02-04  Alexey Proskuryakov  <ap@webkit.org>
58412
58413        Reviewed by Darin.
58414
58415        http://bugs.webkit.org/show_bug.cgi?id=12602
58416        XPath functions string(), normalize-space() and string-length() don't work
58417        without arguments
58418
58419        Test: fast/xpath/implicit-node-args.html
58420
58421        * xml/XPathFunctions.cpp:
58422        (WebCore::XPath::FunString::doEvaluate):
58423        (WebCore::XPath::FunStringLength::doEvaluate):
58424        (WebCore::XPath::FunNormalizeSpace::doEvaluate):
58425        Don't try to pass RefPtr<Node> to the Value ctor.
58426
584272007-02-04  Alexey Proskuryakov  <ap@webkit.org>
58428
58429        Reviewed by Darin.
58430
58431        http://bugs.webkit.org/show_bug.cgi?id=8791
58432        XPath should support custom node resolvers
58433
58434        * bindings/js/JSCustomXPathNSResolver.cpp: Added.
58435        (WebCore::JSCustomXPathNSResolver::create):
58436        (WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
58437        (WebCore::JSCustomXPathNSResolver::~JSCustomXPathNSResolver):
58438        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
58439        * bindings/js/JSCustomXPathNSResolver.h: Added.
58440        * bindings/objc/DOMCustomXPathNSResolver.h: Added.
58441        * bindings/objc/DOMCustomXPathNSResolver.mm: Added.
58442        (WebCore::DOMCustomXPathNSResolver::DOMCustomXPathNSResolver):
58443        (WebCore::DOMCustomXPathNSResolver::~DOMCustomXPathNSResolver):
58444        (WebCore::DOMCustomXPathNSResolver::lookupNamespaceURI):
58445        Wrappers for JS/ObjC objects that can be used as resolvers.
58446
58447        * bindings/scripts/CodeGeneratorJS.pm:
58448        * bindings/scripts/CodeGeneratorObjC.pm:
58449        Use the above wrappers to support custom resolvers.
58450
58451        * xml/XPathNSResolver.cpp:
58452        * xml/XPathNSResolver.h:
58453        Turned this class into an abstract one.
58454
58455        * xml/NativeXPathNSResolver.cpp: Added.
58456        (WebCore::NativeXPathNSResolver::NativeXPathNSResolver):
58457        (WebCore::NativeXPathNSResolver::~NativeXPathNSResolver):
58458        (WebCore::NativeXPathNSResolver::lookupNamespaceURI):
58459        * xml/NativeXPathNSResolver.h: Added.
58460        A XPathNSResolver subclass, doing what XPathNSResolver used to do.
58461
58462        * xml/XPathEvaluator.cpp:
58463        (WebCore::XPathEvaluator::createNSResolver): Create a NativeXPathNSResolver.
58464
58465        * WebCore.xcodeproj/project.pbxproj: Added new files.
58466
584672007-02-04  Oliver Hunt  <oliver@apple.com>
58468
58469        Reviewed by Adam.
58470
58471        Tidying up EventHandler, and moving more of
58472        EventHandlerMac.mm to EventHandler.cpp
58473
58474        Also added EventHandler::eventLoopHandleMouse[Dragged,Up]
58475        these are basically helper functions to allow correct event
58476        handling on MacOS.        
58477
58478        * page/EventHandler.cpp:
58479        (WebCore::EventHandler::handleMouseUp):
58480        (WebCore::EventHandler::dragSourceMovedTo):
58481        (WebCore::EventHandler::dragSourceEndedAt):
58482        (WebCore::EventHandler::dispatchDragSrcEvent):
58483           Moved from EventHandlerMac to EventHandler
58484
58485        * page/EventHandler.h:
58486        (WebCore::EventHandler::eventLoopHandleMouseUp):
58487        (WebCore::EventHandler::eventLoopHandleMouseDragged):
58488          Null implementations of two Mac helper functions
58489        * page/mac/EventHandlerMac.mm:
58490        (WebCore::EventHandler::eventLoopHandleMouseDragged):           
58491        (WebCore::EventHandler::handleDrag):
58492          Much tidying, reduced nesting, made less dependent on NS types   
58493        (WebCore::EventHandler::eventLoopHandleMouseDragged):
58494        (WebCore::EventHandler::eventLoopHandleMouseUp):  
58495          Helper functions to let us process events properly on MacOS
58496
58497        * page/mac/WebCoreFrameBridge.mm:
58498        (-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
58499
585002007-02-04  George Staikos  <staikos@kde.org>
58501
58502        Reviewed by Zack.
58503
58504        Some Qt hacks and cleanups - makes rendering of forms much better on
58505        OS X
58506
58507        * platform/qt/PlatformKeyboardEventQt.cpp: Add Key_Return/Enter
58508        (WebCore::keyIdentifierForQtKeyCode):
58509        (WebCore::windowsKeyCodeForKeyEvent):
58510        * platform/qt/RenderThemeQt.cpp: Hacks and fix buttons
58511        (WebCore::RenderThemeQt::addIntrinsicMargins):
58512        (WebCore::RenderThemeQt::setCheckboxSize):
58513        (WebCore::RenderThemeQt::supportsFocus):
58514        (WebCore::RenderThemeQt::applyTheme):
58515
585162007-02-03  Maciej Stachowiak  <mjs@apple.com>
58517
58518        Rubber stamped by Adam.
58519
58520        - remove obsolete code that has an annoying space in the directory name
58521
58522        * WebCore.vcproj/Image Viewer/Image Viewer.cpp: Removed.
58523        * WebCore.vcproj/Image Viewer/Image Viewer.h: Removed.
58524        * WebCore.vcproj/Image Viewer/Image Viewer.rc: Removed.
58525        * WebCore.vcproj/Image Viewer/Image Viewer.reg: Removed.
58526        * WebCore.vcproj/Image Viewer/Image Viewer.vcproj: Removed.
58527        * WebCore.vcproj/Image Viewer/ImageDocument.cpp: Removed.
58528        * WebCore.vcproj/Image Viewer/ImageDocument.h: Removed.
58529        * WebCore.vcproj/Image Viewer/ImageMainFrame.cpp: Removed.
58530        * WebCore.vcproj/Image Viewer/ImageMainFrame.h: Removed.
58531        * WebCore.vcproj/Image Viewer/ImageView.cpp: Removed.
58532        * WebCore.vcproj/Image Viewer/ImageView.h: Removed.
58533        * WebCore.vcproj/Image Viewer/Resource.h: Removed.
58534        * WebCore.vcproj/Image Viewer/res/Image Viewer.ico: Removed.
58535        * WebCore.vcproj/Image Viewer/res/Image ViewerDoc.ico: Removed.
58536        * WebCore.vcproj/Image Viewer/res/ImageViewer.rc2: Removed.
58537        * WebCore.vcproj/Image Viewer/res/Toolbar.bmp: Removed.
58538        * WebCore.vcproj/Image Viewer/stdafx.cpp: Removed.
58539        * WebCore.vcproj/Image Viewer/stdafx.h: Removed.
58540
585412007-02-04  Mitz Pettel  <mitz@webkit.org>
58542
58543        Reviewed by Oliver.
58544
58545        - fix http://bugs.webkit.org/show_bug.cgi?id=12564
58546          REGRESSION: Uncaught AppKit exception when using the scrollwheel while Gmail is loading
58547
58548        * platform/mac/PlatformMouseEventMac.mm:
58549        (WebCore::eventNumberForEvent): Scroll wheel events don't have an event number.
58550
585512007-02-04  Nikolas Zimmermann  <zimmermann@kde.org>
58552
58553        Reviewed by Sam.
58554
58555        Add support for xml:space="preserve" for SVG text.
58556        It can be modeled by using white-space="pre" and replace \n by spaces.
58557
58558        Handle xml:space="default" correctly.
58559        Always remove tabs from SVG text - as demanded by spec.
58560
58561        Added test: svg/custom/text-whitespace-handling.svg
58562
58563        * css/svg.css:
58564        * ksvg2/svg/SVGTextContentElement.cpp:
58565        (WebCore::SVGTextContentElement::parseMappedAttribute):
58566        * rendering/RenderText.cpp:
58567        (WebCore::RenderText::setStyle):
58568        (WebCore::RenderText::setTextInternal):
58569        * rendering/bidi.cpp:
58570        (WebCore::shouldPreserveNewline):
58571        (WebCore::RenderBlock::skipWhitespace):
58572        (WebCore::RenderBlock::findNextLineBreak):
58573
585742007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58575
58576        Reviewed by Darin.
58577
58578        http://bugs.webkit.org/show_bug.cgi?id=12560
58579        W3C XPath test Text_Nodes.svg fails
58580
58581        Covered by dom/svg/level3/xpath/Text_Nodes.svg
58582
58583        * xml/XPathStep.cpp:
58584        (WebCore::XPath::Step::nodeTestMatches): Only include the first text sibling in text() matches.
58585
585862007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58587
58588        Reviewed by Darin.
58589
58590        http://bugs.webkit.org/show_bug.cgi?id=12485
58591        XPath id() function doesn't work as root in paths
58592
58593        Test: fast/xpath/id-path.html
58594
58595        * xml/XPathPath.cpp:
58596        (WebCore::XPath::Path::doEvaluate): Implemented.
58597        (WebCore::XPath::LocationPath::evaluate): A new overload that takes an initial NodeVector.
58598        (WebCore::XPath::LocationPath::doEvaluate): Moved most of the logic to the new evaluate().
58599
58600        * xml/XPathPath.h: Added a new evaluate() overload and a using declaration to keep the
58601        generic one visible.
58602
586032007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58604
58605        Reviewed by Darin.
58606
58607        http://bugs.webkit.org/show_bug.cgi?id=12559
58608        REGRESSION: Crash in checkForHeadCharset() under GuardMalloc
58609
58610        No tests possible.
58611
58612        * loader/TextResourceDecoder.cpp:
58613        (WebCore::TextResourceDecoder::checkForHeadCharset): Fix end of buffer checks; sprinkle a number 
58614        of new ones over the function.
58615
586162007-02-03  David Kilzer  <ddkilzer@webkit.org>
58617
58618        Reviewed by NOBODY (no-svg build fix).
58619
58620        * page/EventHandler.cpp: Include FloatPoint.h.
58621
586222007-02-03  Alexey Proskuryakov  <ap@webkit.org>
58623
58624        Reviewed by Mitz.
58625
58626        http://bugs.webkit.org/show_bug.cgi?id=12549
58627        Wrong character encoding at www.ravmilim.co.il
58628
58629        Test: fast/encoding/meta-charset.html
58630
58631        * loader/TextResourceDecoder.cpp:
58632        (WebCore::TextResourceDecoder::checkForHeadCharset): Fix an off by one error.
58633
586342007-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        
586462007-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
58647
58648        Build fix, not reviewed.
58649
58650        Blind attempt to fix Qt build.
58651
58652        * WebCore.pro: Add RenderSVGGradientStop.cpp / RenderSVGHiddenContainer.cpp
58653
586542007-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
58655
58656        Reviewed by Eric & Maciej.
58657
58658        Fix serveral <use> issues:
58659        - When events are dispatch to a referenced element, the actual event.target
58660          has to be set to the corresponding SVGElementInstance object
58661
58662        - Node::shadowAncestorNode() should _not_ return the shadowParentNode for SVG elements
58663          This is only needed for the HTML forms concept and breaks event dispatching for SVG shadow tree elements.
58664
58665        - Add SVGElementInstance as possible EventTarget in bindings/js/kjs_dom.cpp
58666          (Now event.target returns the actual SVGElementInstance object for a shadow tree element)
58667
58668        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12502 (Reproducible crash when browsing SVG map.)
58669        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12511 (<use> has event dispatching issues)
58670
58671        Added test: svg/custom/use-event-handler-on-use-element.svg
58672        Added test: svg/custom/use-event-handler-on-referenced-element.svg
58673        Added test: svg/custom/use-elementInstance-event-target.svg
58674        Added test: svg/custom/use-elementInstance-methods.svg
58675
58676        * bindings/js/kjs_dom.cpp:
58677        (KJS::toJS):
58678        * dom/EventTarget.cpp:
58679        (WebCore::EventTarget::toSVGElementInstance):
58680        * dom/EventTarget.h:
58681        * dom/EventTargetNode.cpp:
58682        (WebCore::EventTargetNode::handleLocalEvents):
58683        (WebCore::EventTargetNode::dispatchGenericEvent):
58684        (WebCore::EventTargetNode::dispatchEvent):
58685        * dom/EventTargetNode.h:
58686        * dom/Node.cpp:
58687        (WebCore::Node::shadowAncestorNode):
58688        * ksvg2/svg/SVGElement.cpp:
58689        (WebCore::shadowTreeParentElementForShadowTreeElement):
58690        (WebCore::SVGElement::dispatchEvent):
58691        * ksvg2/svg/SVGElement.h:
58692        * ksvg2/svg/SVGElementInstance.cpp:
58693        (WebCore::SVGElementInstance::toSVGElementInstance):
58694        * ksvg2/svg/SVGElementInstance.h:
58695        * ksvg2/svg/SVGUseElement.cpp:
58696        (WebCore::SVGUseElement::notifyAttributeChange):
58697        (WebCore::SVGUseElement::instanceForShadowTreeElement):
58698        * ksvg2/svg/SVGUseElement.h:
58699
587002007-02-02  Oliver Hunt  <oliver@apple.com>
58701
58702        Reviewed by Geoff.
58703
58704        Add guard around accessing [NSEvent eventNumber] to ensure
58705        we don't attempt to access it on on non-mouse related NSEvent.
58706
58707        * platform/mac/PlatformMouseEventMac.mm:
58708        (WebCore::eventNumberForEvent):
58709        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
58710
587112007-02-02  Adam Roben  <aroben@apple.com>
58712
58713        Reviewed by Anders.
58714
58715        Try to be a little less selfish about DocumentLoader.
58716
58717        Spotted while working on <rdar://problem/4957747>.
58718
58719        * page/ContextMenuController.cpp:
58720        (WebCore::ContextMenuController::contextMenuItemSelected):
58721            Everyone can open frames in new windows.
58722
587232007-02-02  Nikolas Zimmermann  <zimmermann@kde.org>
58724
58725        Reviewed by Eric.
58726
58727        Move xml:space/xml:lang from svgattrs.in to xmlattrs.in where they actually belong.
58728        Now they are actually recognized by SVGLangSpace::parseMappedAttribute.
58729        Patch implementing xml:space="preserve" coming soon, which acts as test for this stuff.
58730
58731        Always build XMLNames.cpp (not only for SVG) and replace all occourences of
58732        "http://www.w3.org/XML/1998/namespace" by "XMLNames::xmlNamespaceURI".
58733
58734        * DerivedSources.make:
58735        * dom/DOMImplementation.cpp:
58736        (WebCore::DOMImplementation::createDocument):
58737        * ksvg2/svg/SVGLangSpace.cpp:
58738        (WebCore::SVGLangSpace::SVGLangSpace):
58739        (WebCore::SVGLangSpace::parseMappedAttribute):
58740        * ksvg2/svg/SVGLangSpace.h:
58741        * ksvg2/svg/svgattrs.in:
58742        * page/Frame.cpp:
58743        (WebCore::Frame::Frame):
58744        * xml/XPathNSResolver.cpp:
58745        (WebCore::XPathNSResolver::lookupNamespaceURI):
58746        * xml/xmlattrs.in:
58747
587482007-02-02  Beth Dakin  <bdakin@apple.com>
58749
58750        Reviewed by Maciej.
58751
58752        Working on a layout test.
58753
58754        Fix for <rdar://problem/4966100> REGRESSION: Reproducible ASSERT 
58755        hit at Walgreens.com
58756
58757        * page/Frame.cpp:
58758        (WebCore::Frame::setView): If we are setting the view to 0 and 
58759        detaching the document, call unscheduleRealyout() on the old view 
58760        before setting it to 0.
58761
587622007-02-01  Geoffrey Garen  <ggaren@apple.com>
58763
58764        Reviewed by Maciej Stachowiak.
58765        
58766        Added support for selectively ignoring WebCore::Node leaks during layout
58767        tests, so that we can ignore known leaks in other components.
58768
58769        * WebCore.exp:
58770        * dom/Node.cpp:
58771        (WebCore::Node::isSupported): Moved isSupported up with the rest of the static functions.
58772
58773        (WebCore::): Added an ignoreSet, which collects WebCore::Nodes whose lifetime
58774        we want to ignore. We need to track which nodes to ignore rather than, say,
58775        just suspending the count, because node destruction depends on lots of
58776        different variables, so it would be nearly impossible to know when exactly 
58777        to suspend the count and when exactly to resume it.
58778
58779        (WebCore::NodeCounter::~NodeCounter): Changed to use WTFLog instead of fprintf.
58780
58781        (WebCore::Node::startIgnoringLeaks): Do the ignoring.
58782        (WebCore::Node::stopIgnoringLeaks): ditto
58783        (WebCore::Node::Node): ditto
58784        (WebCore::Node::~Node): ditto
58785
58786        * dom/Node.h: Moved isSupported up with the rest of the static functions.
58787
58788        * platform/mac/LoggingMac.mm:
58789        (WebCore::initializeWithUserDefault): Renamed from "initializeLoggingChannel"
58790        because the real goal here is to honor a user default -- WTFLoggingChannels
58791        need no run-time initialization. Also replaced "off by default, on if a 
58792        user default says so" behavior with "only override existing setting if a
58793        user default says so" behavior. It seemed like a bug that you would specify 
58794        a channel's on/off state in its definition, but this function would unconditionally
58795        blow that state away.
58796        (WebCore::InitializeLoggingChannelsIfNecessary):
58797
587982007-02-02  Eric Seidel  <eric@webkit.org>
58799
58800        Reviewed by mitz.
58801
58802        Fix gradient stop style resolution to be less of a hack, fixing style invalidation:
58803        http://bugs.webkit.org/show_bug.cgi?id=12193
58804        and fix stop-color and stop-opacity not to inherit:
58805        http://bugs.webkit.org/show_bug.cgi?id=12193
58806        
58807        Tests:
58808        * svg/custom/gradient-stops-style-change.svg: added
58809        * svg/W3C-SVG-1.1/pservers-grad-18-b.svg: updated
58810
58811        * WebCore.xcodeproj/project.pbxproj:
58812        * ksvg2/css/SVGCSSStyleSelector.cpp:
58813        (WebCore::CSSStyleSelector::applySVGProperty):
58814        * ksvg2/css/SVGRenderStyle.cpp:
58815        (WebCore::SVGRenderStyle::inheritedNotEqual):
58816        (WebCore::SVGRenderStyle::inheritFrom):
58817        * ksvg2/css/SVGRenderStyle.h:
58818        * ksvg2/svg/SVGDefsElement.cpp:
58819        (WebCore::SVGDefsElement::createRenderer):
58820        * ksvg2/svg/SVGGradientElement.cpp:
58821        (WebCore::SVGGradientElement::createRenderer):
58822        (WebCore::SVGGradientElement::buildStops):
58823        * ksvg2/svg/SVGGradientElement.h:
58824        (WebCore::SVGGradientElement::rendererIsNeeded):
58825        * ksvg2/svg/SVGStopElement.cpp:
58826        (WebCore::SVGStopElement::createRenderer):
58827        * ksvg2/svg/SVGStopElement.h:
58828        (WebCore::SVGStopElement::rendererIsNeeded):
58829        * rendering/RenderSVGGradientStop.cpp: Added.
58830        * rendering/RenderSVGGradientStop.h: Added.
58831        * rendering/RenderSVGHiddenContainer.cpp: Added.
58832        * rendering/RenderSVGHiddenContainer.h: Added.
58833        * rendering/RenderSVGContainer.cpp:
58834        * rendering/RenderSVGContainer.h:
58835
588362007-02-02  Zack Rusin  <zrusin@trolltech.com>
58837
58838        Reviewed by Lars
58839
58840        Fix scrolling-on-selection bug by correctly
58841        scrolling to the offset instead of trying to 
58842        ensure visibility with margins.
58843
58844        * platform/qt/ScrollViewQt.cpp:
58845        (WebCore::ScrollView::scrollPointRecursively):
58846
588472007-02-02  Zack Rusin  <zrusin@trolltech.com>
58848
58849        Reviewed by Lars
58850
58851        Fix drawing of dashed and colored lines. Pen
58852        has to be inherited for stroke to stay consistent.
58853
58854        * platform/graphics/qt/GraphicsContextQt.cpp:
58855        (WebCore::GraphicsContext::setAlpha):
58856        (WebCore::GraphicsContext::setPlatformStrokeColor):
58857        (WebCore::GraphicsContext::setPlatformStrokeStyle):
58858
588592007-02-01  Nicholas Shanks  <webkit@nickshanks.com>
58860
58861        Reviewed by Mark.
58862
58863        Add support for CSS2 font-stretch property.
58864
58865        * css/CSSComputedStyleDeclaration.cpp:
58866        (WebCore::):
58867        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
58868        * css/cssparser.cpp:
58869        (WebCore::CSSParser::parseValue):
58870        * css/cssstyleselector.cpp:
58871        (WebCore::CSSStyleSelector::applyDeclarations):
58872        (WebCore::CSSStyleSelector::applyProperty):
58873        * platform/FontCache.cpp:
58874        (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
58875        (WebCore::FontPlatformDataCacheKey::operator==):
58876        (WebCore::computeHash):
58877        (WebCore::FontPlatformDataCacheKeyTraits::deletedValue):
58878        (WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
58879        (WebCore::FontCache::getCachedFontPlatformData):
58880        * platform/FontDescription.h:
58881        (WebCore::):
58882        (WebCore::FontDescription::FontDescription):
58883        (WebCore::FontDescription::stretch):
58884        (WebCore::FontDescription::narrowerStretch):
58885        (WebCore::FontDescription::widerStretch):
58886        (WebCore::FontDescription::setStretch):
58887        (WebCore::FontDescription::operator==):
58888        * platform/mac/FontCacheMac.mm:
58889        (WebCore::FontCache::createFontPlatformData):
58890        * platform/mac/WebFontCache.mm:
58891        (acceptableChoice):
58892        (betterChoice):
58893        (+[WebFontCache fontWithFamily:traits:size:]):
58894
588952007-02-01  Timothy Hatcher  <timothy@apple.com>
58896
58897        Reviewed by Mark Rowe.
58898
58899        <rdar://problem/4969201> REGRESSION: Safari applies the wrong font to BODY element at http://www.apple.com/downloads/dashboard/
58900
58901        * platform/mac/WebFontCache.mm:
58902        (+[WebFontCache fontWithFamily:traits:size:]): Don't call [NSFont fontWithName:] with the desiredFamily on Tiger.
58903
589042007-02-01  Alexey Proskuryakov  <ap@webkit.org>
58905
58906        Reviewed by Darin.
58907
58908        http://bugs.webkit.org/show_bug.cgi?id=12506
58909        REGRESSION: Safari doesn't display hebrew text on a web page,
58910        displayed correctly on Tiger
58911
58912        * loader/TextResourceDecoder.cpp:
58913        (WebCore::TextResourceDecoder::checkForHeadCharset): Advance the pointer when necessary.
58914
589152007-02-01  George Staikos  <staikos@kde.org>
58916
58917        Reviewed by Zack and Lars.
58918
58919        Add a cookie interface for the Qt build.
58920
58921        * WebCore.pro:
58922        * platform/qt/CookieJarQt.cpp:
58923        (WebCore::setCookies):
58924        (WebCore::cookies):
58925        (WebCore::cookiesEnabled):
58926
589272007-02-01  Maciej Stachowiak  <mjs@apple.com>
58928
58929        Reviewed by Adele.
58930        
58931        - fixed <rdar://problem/4922764> ASSERTION: (!m_contentFunction) in PolicyCheck::call trying to visit feed URL (CNN, Apple, etc.)
58932
58933        * loader/FrameLoader.cpp:
58934        (WebCore::FrameLoader::stopPolicyCheck): Call new cancel method instead of call(false) on old check.
58935        (WebCore::PolicyCheck::cancel): call any callback function that is set with false or PolicyIgnore as
58936        appropriate.
58937        * loader/FrameLoader.h:
58938
589392007-02-01  Beth Dakin  <bdakin@apple.com>
58940
58941        Reviewed by Hyatt.
58942
58943        Fix for http://bugs.webkit.org/show_bug.cgi?id=10517 REGRESSION 
58944        (r12065-r12082): Navigation graphic wraps to the next line on 
58945        duart.com and <rdar://problem/4960505> REGRESSION: The Awesome 
58946        Windows Vista page has a layout error in the header table (10517)
58947
58948        The problem is that we never supported a quirk that other browsers 
58949        support where, under very specific circumstances, a table cell will 
58950        grow to fit an image inside of it. This is only a regression 
58951        because a bug was fixed were we were 1 pixel off in the calculation 
58952        of overflow in some cases.
58953
58954        * rendering/RenderBlock.cpp:
58955        (WebCore::shouldGrowTableCellForImage):
58956        (WebCore::RenderBlock::calcInlineMinMaxWidth):
58957
589582007-02-01  Zack Rusin  <zrusin@trolltech.com>
58959
58960        Reviewed by Lars
58961
58962        Implement native look for comboboxes
58963        and fix/implement popup menus.
58964
58965        * platform/PopupMenu.h:
58966        * platform/qt/PopupMenuQt.cpp:
58967        (WebCore::PopupMenu::PopupMenu):
58968        (WebCore::PopupMenu::~PopupMenu):
58969        (WebCore::PopupMenu::clear):
58970        (WebCore::PopupMenu::populate):
58971        (WebCore::PopupMenu::show):
58972        (WebCore::PopupMenu::hide):
58973        (WebCore::PopupMenu::updateFromElement):
58974        * platform/qt/RenderThemeQt.cpp:
58975        (WebCore::RenderThemeQt::adjustMenuListStyle):
58976        (WebCore::RenderThemeQt::paintButton):
58977        (WebCore::RenderThemeQt::paintTextField):
58978        (WebCore::RenderThemeQt::paintMenuList):
58979
589802007-02-01  Darin Adler  <darin@apple.com>
58981
58982        Reviewed by Maciej.
58983
58984        - fix <rdar://problem/4887428> REGRESSION: Implement slight delay for firing incremental onSearch event
58985
58986        * rendering/RenderTextControl.h:
58987        * rendering/RenderTextControl.cpp:
58988        (WebCore::RenderTextControl::RenderTextControl): Set up timer.
58989        (WebCore::RenderTextControl::subtreeHasChanged): Start timer here instead of immediately sending event.
58990        (WebCore::RenderTextControl::searchEventTimerFired): Added. Sends search event.
58991        (WebCore::RenderTextControl::stopSearchEventTimer): Added.
58992        (WebCore::RenderTextControl::startSearchEventTimer): Added. Sends search event right away if there is
58993        no text. If there is some text, sets the timer using the same delay rule as NSSearchField. If you keep
58994        typing, then the timer keeps getting reset 0.2 seconds into the future until you pause.
58995
58996        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::onSearch): Tell the renderer to
58997        stop the timer, since we're sending a search event. This helps when a caller other than
58998        the timer decides to send an explicit search event.
58999
590002007-02-01  Maciej Stachowiak  <mjs@apple.com>
59001
59002        Fix by Darin, reviewed by Maciej.
59003
59004        - fix ~10% performance regression from encoding fix
59005
59006        * loader/TextResourceDecoder.cpp:
59007        (WebCore::TextResourceDecoder::checkForHeadCharset): Fix a logic
59008        error which made huge strings accidentally.
59009
590102007-02-01  Lars Knoll <lars@trolltech.com>
59011
59012        Fix the Qt build
59013
59014        * page/qt/EventHandlerQt.cpp:
59015
590162007-01-31  Darin Adler  <darin@apple.com>
59017
59018        Reviewed by Adam and Geoff.
59019
59020        - fix <rdar://problem/4786767> REGRESSION: <select> controls are not resized when zooming text
59021
59022        Test: fast/forms/select-width-font-change.html
59023
59024        * rendering/RenderMenuList.h: Cleaned up formatting a bit. Removed unneeded include of PopupMenu.h.
59025        Made a lot more things private, including the PopupMenuClient base class, all of the virtual
59026        functions from PopupMenuClient, and the setTextFromOption function. Added updateOptionsWidth.
59027
59028        * rendering/RenderMenuList.cpp:
59029        (WebCore::RenderMenuList::setStyle): Added code to call updateOptionsWidth when the font changes.
59030        (WebCore::RenderMenuList::updateOptionsWidth): Added. Factored code out of updateFromElement.
59031        Changed to do nothing when m_optionsWidth is already correct.
59032        (WebCore::RenderMenuList::updateFromElement): Moved code to recomputed options width to the new
59033        updateOptionsWidth function.
59034        (WebCore::RenderMenuList::text): Made const.
59035
590362007-01-31  Oliver Hunt  <oliver@apple.com>
59037
59038        Reviewed by Adam.
59039
59040        Migrate more drag and drop logic to WebCore, start preparing
59041        to move EventHandler::handleDrag from EventHandlerMac to EventHandler 
59042
59043        * WebCore.exp:   
59044          updating methods
59045                    
59046        * dom/Clipboard.cpp:
59047        * dom/Clipboard.h:
59048        (WebCore::Clipboard::Clipboard):
59049        (WebCore::Clipboard::setDragHasStarted):
59050        (WebCore::Clipboard::dragStarted): 
59051          Moving from ClipboardMac to Clipboard 
59052
59053        * dom/EventTargetNode.cpp:
59054        (WebCore::EventTargetNode::dispatchMouseEvent):
59055          PlatformMouseEvent no longer lies about button state, however 
59056          DOM Events don't allow NoButton, so we need to convert NoButton 
59057          to LeftButton when we create a DOM Event from PlatformMouseEvent
59058
59059        * page/DragClient.h:
59060          Tidying comment 
59061
59062        * page/DragController.cpp:
59063        (WebCore::createMouseEvent):
59064          Updated for new PlatformMouseEvent constructors
59065        (WebCore::DragController::mayStartDragAtEventLocation):
59066          Migrated from WebKit
59067
59068        * page/DragController.h:
59069          Added above function declarations
59070
59071        * page/EventHandler.cpp:
59072        (WebCore::EventHandler::dragState): 
59073        (WebCore::EventHandler::dragHysteresisExceeded):
59074        (WebCore::EventHandler::freeClipboard):
59075        (WebCore::EventHandler::shouldDragAutoNode):
59076          Moved from EventHandlerMac
59077        (WebCore::EventHandler::handleMouseMoveEvent):
59078        (WebCore::EventHandler::eventMayStartDrag):
59079        (WebCore::EventHandler::handleMousePressEvent):
59080          Use DragController     
59081
59082        * page/EventHandler.h:
59083          Added DragState struct definition to EventHandler
59084
59085        * page/mac/EventHandlerMac.mm:
59086        (WebCore::EventHandler::eventActivatedView):
59087        (WebCore::EventHandler::handleDrag):
59088        (WebCore::EventHandler::handleMouseUp):
59089        (WebCore::EventHandler::mouseDown):
59090          Update to use DragController and PlatformMouseEvent
59091
59092        * page/mac/WebCoreFrameBridge.h:
59093        * page/mac/WebCoreFrameBridge.mm:
59094        (-[WebCoreFrameBridge dragSourceMovedTo:]):
59095        (-[WebCoreFrameBridge dragSourceEndedAt:operation:]):
59096          Use DragController for state
59097
59098        * platform/PlatformMouseEvent.h:
59099        (WebCore::):
59100        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
59101        (WebCore::PlatformMouseEvent::eventType):
59102        (WebCore::PlatformMouseEvent::timestamp):
59103        (WebCore::PlatformMouseEvent::eventNumber):
59104        (WebCore::PlatformMouseEvent::setClickCount):
59105          Exposing necessary data for Drag logic
59106
59107        * platform/mac/ClipboardMac.h:
59108        * platform/mac/ClipboardMac.mm:
59109        (WebCore::ClipboardMac::ClipboardMac):
59110        (WebCore::ClipboardMac::setDragImage):
59111          Have moved a number of fields from ClipboardMac to Clipboard
59112          so need to use accessors in a few places now
59113
59114        * platform/mac/PlatformMouseEventMac.mm:
59115        (WebCore::mouseButtonForEvent):
59116        (WebCore::mouseEventForNSEvent):
59117        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
59118          Determine MouseEventType, and provide event time info
59119
591202007-01-31  Alexey Proskuryakov  <ap@webkit.org>
59121
59122        Reviewed by Darin.
59123
59124        http://bugs.webkit.org/show_bug.cgi?id=12506
59125        REGRESSION: Safari doesn't display hebrew text on a web page,
59126        displayed correctly on Tiger
59127
59128        * loader/TextResourceDecoder.cpp:
59129        (WebCore::TextResourceDecoder::checkForHeadCharset): Skip over 
59130        quoted attributes.
59131
591322007-01-31  David Carson  <dacarson@gmail.com>
59133
59134        Reviewed by Darin.
59135
59136        - fix http://bugs.webkit.org/show_bug.cgi?id=12510
59137        Initialize the variable m_totalLoops
59138        Is tested by LayoutTests/fast/css/MarqueeLayoutTest.html
59139
59140        * rendering/RenderLayer.cpp:
59141        (WebCore::Marquee::Marquee):
59142
591432007-01-31  Anders Carlsson  <acarlsson@apple.com>
59144
59145        Reviewed by Maciej.
59146
59147        <rdar://problem/4886776>
59148        REGRESSION: After opening a web archive, location shows the actual URL, not the webarchive file
59149
59150        * WebCore.exp:
59151        * loader/FrameLoader.cpp:
59152        (WebCore::FrameLoader::continueLoadWithData):
59153        * loader/FrameLoader.h:
59154        New function which continues a load but using a given buffer instead.
59155        
591562007-01-31  Adele Peterson  <adele@apple.com>
59157
59158        Reviewed by Adam.
59159
59160        Fix for http://bugs.webkit.org/show_bug.cgi?id=12516
59161        REGRESSION (r19313): All keyboard navigation has stopped working
59162
59163        For non-editable selections, handleKeyPress doesn't need to call _interceptEditingKeyEvent. 
59164
59165        * editing/Editor.cpp:
59166        (WebCore::selectionForEvent): Moved this to the top of the file.
59167        (WebCore::Editor::handleKeyPress): Do the equivalent of the _canEdit check that used to be in WebKit WebEditorClient::handleKeyPress.
59168
591692007-01-31  Geoffrey Garen  <ggaren@apple.com>
59170
59171        Reviewed by Darin Adler.
59172
59173        Added a Range counter to detect leaks. Tweaked the Node counter.
59174        
59175        Also fixed a TextIterator destructive modification bug that I noticed along the
59176        way. No test case for this bug because no clients have been bitten by it
59177        yet.
59178
59179        * dom/Node.cpp: Renamed NodeImplCounter to NodeCounter, changed counter
59180        to unsigned, fixed formatting to match style guidelines.
59181        (WebCore::NodeCounter::~NodeCounter):
59182        (WebCore::Node::Node):
59183        (WebCore::Node::~Node):
59184
59185        * dom/Range.cpp:
59186        (WebCore::RangeCounter::~RangeCounter): Added.
59187        (WebCore::Range::Range):
59188        (WebCore::Range::~Range):
59189        (WebCore::Range::ownerDocument): New accessor, used by TextIterator to avoid
59190        annoying NULL checks.
59191        * dom/Range.h:
59192
59193        * editing/TextIterator.cpp:
59194        (WebCore::TextIterator::subrange): 
59195        (1) Don't initialize result with entireRange --  doing so would create a 
59196        PassRefPtr that pointed to entireRange, so this function would destructively 
59197        modify the Range you passed it. Initialize it with a new Range instead.
59198        (2) Don't use a PassRefPtr as a local variable, because they have sneaky
59199        semantics. Use a RefPtr instead.
59200        (3) Don't call CharacterIterator::range() willy-nilly, since it does 
59201        non-trivial work. Use a local variable instead.
59202
592032007-01-31  Adele Peterson  <adele@apple.com>
59204
59205        Reviewed by Darin.
59206
59207        WebCore part of fix for <rdar://problem/4521461> REGRESSION: when keyPress event changes form focus, inserted key goes to wrong control
59208
59209        Test: fast/events/keypress-focus-change.html
59210
59211        * editing/Editor.cpp:
59212        (WebCore::selectionForEvent): Added.  This computes a selection that considers the case where an event handler 
59213         has moved the selection outside of a text control.  In that case, we use the target control's selection.
59214        (WebCore::Editor::insertText): This gets the selectionForEvent, checks that the selection is editable,
59215         and calls TypingCommand::insertText with the correct selection.
59216
59217        * editing/TypingCommand.h: Added a version of insertText that takes a selection.  The old version of insertText will call this, and pass
59218          in the frame's selection.
59219        * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): Added. Uses the passed in selection to 
59220          set the starting and ending selections correctly so that the editing machinery will insert the text in the correct place.
59221
59222        * page/Page.h: Added convenience method to get selection from focused or main frame.
59223        * page/Page.cpp: (WebCore::Page::selection):
59224
59225        * html/HTMLInputElement.h: Added selection methods to get selection for text controls.
59226        * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::selection):
59227        * html/HTMLTextAreaElement.h:
59228        * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::selection):
59229        * rendering/RenderTextControl.h:
59230        * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::selection):
59231
592322007-01-31  Darin Adler  <darin@apple.com>
59233
59234        - fix build
59235
59236        * ForwardingHeaders/wtf/ListHashSet.h: Added.
59237
592382007-01-31  Zack Rusin  <zrusin@trolltech.com>
59239
59240        Reviewed by Lars
59241
59242        Return the correct selection color.
59243
59244        * platform/qt/RenderThemeQt.cpp:
59245        (WebCore::RenderThemeQt::supportsFocusRing):
59246        (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
59247        (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
59248        (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
59249        (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
59250
592512007-01-31  Maciej Stachowiak  <mjs@apple.com>
59252
59253        Reviewed by Mark.
59254
59255        - fixed <rdar://problem/4751164> REGRESSION: Safari places text on incorrect button when returning to a page via back [10541]
59256        http://bugs.webkit.org/show_bug.cgi?id=10541
59257
59258        * dom/Document.cpp:
59259        (WebCore::Document::formElementsState):
59260        * dom/Document.h:
59261        
59262        I couldn't figure out the back/forward support in the tests enough
59263        to make an automated test, but this maual test reproduces the
59264        problem 100% without this patch:
59265        
59266        * manual-tests/back.html: Added.
59267        * manual-tests/form-control-madness.html: Added.
59268
592692007-01-31  David Kilzer  <ddkilzer@kilzer.net>
59270
59271        Reviewed by Mitz.
59272
59273        - fix http://bugs.webkit.org/show_bug.cgi?id=12490
59274          Clean up canPlaceOnLine logic in bidi.cpp
59275
59276        No test cases since there is no change in functionality.
59277
59278        * rendering/bidi.cpp:
59279        (WebCore::RenderBlock::findNextLineBreak): Simplify canFitOnLine expression.
59280
592812007-01-31  Zack Rusin  <zack@kde.org>
59282
59283        Adding comments explaining how the focus ring implementation
59284        works on the Qt platform and just move focus ring rendering
59285        related code to the same spot.
59286
59287        * platform/graphics/qt/GraphicsContextQt.cpp:
59288        (WebCore::setFocusRingColorChangeFunction):
59289        (WebCore::focusRingColor):
59290        (WebCore::GraphicsContext::drawFocusRing):
59291        * platform/qt/TemporaryLinkStubs.cpp:
59292
592932007-01-31  Zack Rusin  <zrusin@trolltech.com>
59294
59295        Reviewed by Lars
59296
59297        Properly propagate key events. 
59298
59299        * page/qt/FrameQt.cpp:
59300        * page/qt/FrameQt.h: Remove redundant method.
59301        * platform/qt/ScrollViewCanvasQt.cpp:
59302        (WebCore::ScrollViewCanvasQt::handleKeyEvent):
59303
593042007-01-31  George Staikos  <staikos@kde.org>
59305
59306        Reviewed by Zack and Lars.
59307
59308        Fix double delete on cancel as well as assertion with proxy.
59309
59310        * platform/network/qt/ResourceHandleManagerQt.cpp:
59311        (WebCore::WebCoreHttp::getConnection):
59312        (WebCore::WebCoreHttp::onRequestFinished):
59313        (WebCore::WebCoreHttp::cancel):
59314
593152007-01-31  Mark Rowe  <mrowe@apple.com>
59316
59317        Reviewed by Oliver.
59318
59319        * dom/Document.h: Change #if XSLT_SUPPORT to #ifdef XSLT_SUPPORT.
59320
593212007-01-31  Lars Knoll <lars@trolltech.com>
59322
59323        Fix the Qt build.
59324
59325        * platform/network/qt/ResourceHandleQt.cpp:
59326        (WebCore::ResourceHandle::setDefersLoading):
59327
593282007-01-31  Zack Rusin  <zack@kde.org>
59329
59330        Reviewed by Eric.
59331
59332        Implement SVGImage on the Qt platform.
59333
59334        * WebCore.pro:
59335        * loader/CachedImage.cpp:
59336        (WebCore::CachedImage::createImage):
59337        * platform/graphics/ImageBuffer.h:
59338        * platform/graphics/qt/ImageBufferQt.cpp:
59339        (WebCore::ImageBuffer::create):
59340        (WebCore::ImageBuffer::ImageBuffer):
59341        (WebCore::ImageBuffer::~ImageBuffer):
59342        (WebCore::ImageBuffer::context):
59343        (WebCore::ImageBuffer::pixmap):
59344        * platform/graphics/svg/SVGImage.cpp:
59345        (WebCore::SVGImage::nativeImageForCurrentFrame):
59346        (WebCore::SVGImage::setData):
59347
593482007-01-30  Maciej Stachowiak  <mjs@apple.com>
59349
59350        Reviewed by Brady.
59351
59352        - fixed <rdar://problem/4939366> REGRESSION: Assertion failure and crash when going back in history (12314)
59353
59354        * loader/FrameLoader.cpp:
59355        (WebCore::FrameLoader::createWindow): special case a frame name of "_blank"
59356        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): ditto
59357
593582007-01-30  Maciej Stachowiak  <mjs@apple.com>
59359
59360        Reviewed by Anders.
59361
59362        - fixed <rdar://problem/4963871> REGRESSION: Crash occurs at WebCore::Frame::loader() when attempting to open a saved archive file
59363
59364        * loader/DocumentLoader.cpp:
59365        (WebCore::DocumentLoader::request): Removed obsolete FIXME.
59366        (WebCore::DocumentLoader::initialRequest): Ditto.
59367        * loader/MainResourceLoader.cpp:
59368        (WebCore::MainResourceLoader::MainResourceLoader): Handle data loads from a timer, otherwise bad things happen.
59369        (WebCore::MainResourceLoader::handleDataLoadNow):
59370        (WebCore::MainResourceLoader::handleDataLoadSoon):
59371        (WebCore::MainResourceLoader::loadNow):
59372        (WebCore::MainResourceLoader::didCancel): cancel data load timer
59373        * loader/MainResourceLoader.h:
59374
593752007-01-30  Timothy Hatcher  <timothy@apple.com>
59376
59377        Reviewed by Darin.
59378
59379        <rdar://problem/4961953> Stop using NSString deprecated methods like initWithCString:
59380
59381        * WebCore.xcodeproj/project.pbxproj:
59382        * platform/graphics/svg/filters/cg/WKArithmeticFilter.m:
59383        (-[WKArithmeticFilter init]):
59384        * platform/graphics/svg/filters/cg/WKComponentMergeFilter.m:
59385        (-[WKComponentMergeFilter init]):
59386        * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m:
59387        (-[WKDiffuseLightingFilter init]):
59388        * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m:
59389        (-[WKDiscreteTransferFilter init]):
59390        * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m:
59391        (-[WKDisplacementMapFilter init]):
59392        * platform/graphics/svg/filters/cg/WKDistantLightFilter.m:
59393        (-[WKDistantLightFilter init]):
59394        * platform/graphics/svg/filters/cg/WKGammaTransferFilter.m:
59395        (-[WKGammaTransferFilter init]):
59396        * platform/graphics/svg/filters/cg/WKLinearTransferFilter.m:
59397        (-[WKLinearTransferFilter init]):
59398        * platform/graphics/svg/filters/cg/WKNormalMapFilter.m:
59399        (-[WKNormalMapFilter init]):
59400        * platform/graphics/svg/filters/cg/WKPointLightFilter.m:
59401        (-[WKPointLightFilter init]):
59402        * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m:
59403        (-[WKSpecularLightingFilter init]):
59404        * platform/graphics/svg/filters/cg/WKSpotLightFilter.m:
59405        (-[WKSpotLightFilter init]):
59406        * platform/graphics/svg/filters/cg/WKTableTransferFilter.m:
59407        (-[WKTableTransferFilter init]):
59408
594092007-01-30  David Hyatt  <hyatt@apple.com>
59410
59411        Fix for Radar bug #4679426, golden gate bridge Web site layout broken.
59412        
59413        This is a regression caused by the addition of :lang support.  This
59414        feature caused us to accept any pseudo-class/element with function
59415        arguments, even ones we couldn't handle.  The site used such a construct
59416        in conjunction with :not, which turned :not(something-crazy) into not(false).
59417        This ended up being "true", and so we started matching a rule we used to
59418        reject.
59419
59420        The fix is to now aggressively parse pseudo-elements and classes and to
59421        cause the rejection of an entire rule if any pseudoclass or element within
59422        any simple selector of that rule is unrecognized.
59423
59424        Reviewed by darin
59425
59426        fast/css/invalid-pseudo-classes.html
59427
59428        * css/CSSGrammar.y:
59429        * css/CSSSelector.cpp:
59430        (WebCore::CSSSelector::extractPseudoType):
59431        * css/CSSSelector.h:
59432        (WebCore::CSSSelector::):
59433        * css/cssstyleselector.cpp:
59434        (WebCore::CSSStyleSelector::checkOneSelector):
59435
594362007-01-30  Mitz Pettel  <mitz@webkit.org>
59437
59438        Reviewed by Darin.
59439
59440        - fix http://bugs.webkit.org/show_bug.cgi?id=12487
59441          REGRESSION: Repro crash when a second background image is animated
59442
59443        Test: fast/images/animated-background-image-crash.html
59444
59445        * rendering/RenderObject.cpp:
59446        (WebCore::RenderObject::arenaDelete): Deref() all background images and the
59447        border image.
59448
594492007-01-30  Darin Adler  <darin@apple.com>
59450
59451        Reviewed by Maciej.
59452
59453        * dom/EventTarget.h:
59454        * dom/EventTarget.cpp: (WebCore::EventTarget::toNode):
59455        Use EventTargetNode instead of Node. Removed unneeded includes.
59456        Make EventTarget's destructor protected to make it clear that you
59457        should never delete one.
59458
59459        * dom/EventTargetNode.h:
59460        (WebCore::EventTargetNode::toNode):
59461        Tweaked formatting. Updated for change to return value.
59462
59463        * platform/graphics/BitmapImage.h: Updated comment for clarity.
59464        Marked FrameData Noncopyable.
59465
59466        * platform/graphics/Image.h: Tweaked formatting.
59467
59468        * platform/graphics/ImageAnimationObserver.h:
59469        Make ImageAnimationObserver's destructor protected to make it clear that you
59470        should never delete one.
59471
594722007-01-30  Mitz Pettel  <mitz@webkit.org>
59473
59474        Reviewed by Darin (by way of Hyatt).
59475
59476        - fix http://bugs.webkit.org/show_bug.cgi?id=12373
59477          ASSERTION FAILURE: !child->needsLayout() on paypal.com
59478
59479        Test: fast/table/inline-form-assert.html
59480
59481        * rendering/RenderContainer.cpp:
59482        (WebCore::RenderContainer::layout): Changed the assertion to ignore inlines.
59483
594842007-01-30  Alexey Proskuryakov  <ap@webkit.org>
59485
59486        Reviewed by Darin.
59487
59488        http://bugs.webkit.org/show_bug.cgi?id=12486
59489        XPathNSResolver.lookupNamespaceURI should return null if no URI is found
59490
59491        * xml/XPathNSResolver.idl: added [ConvertNullStringTo=Null].
59492
594932007-01-30  Anders Carlsson  <acarlsson@apple.com>
59494
59495        Reviewed by Maciej.
59496
59497        Revert the parts of 19244 that removed deferring NSURLConnections, that was not a correct change.
59498        Remove ASSERTS from loader.cpp that aren't true anymore since the callbacks are invoked without a handle
59499        when loading a subresource from an archive.
59500
59501        * loader/MainResourceLoader.cpp:
59502        (WebCore::MainResourceLoader::loadNow):
59503        * loader/ResourceLoader.cpp:
59504        (WebCore::ResourceLoader::releaseResources):
59505        (WebCore::ResourceLoader::load):
59506        (WebCore::ResourceLoader::setDefersLoading):
59507        * loader/loader.cpp:
59508        (WebCore::Loader::didFail):
59509        (WebCore::Loader::didReceiveResponse):
59510        (WebCore::Loader::didReceiveData):
59511        * platform/network/ResourceHandle.cpp:
59512        (WebCore::ResourceHandle::ResourceHandle):
59513        (WebCore::ResourceHandle::create):
59514        * platform/network/ResourceHandle.h:
59515        * platform/network/ResourceHandleInternal.h:
59516        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
59517        * platform/network/mac/ResourceHandleMac.mm:
59518        (WebCore::ResourceHandle::start):
59519        (WebCore::ResourceHandle::setDefersLoading):
59520
595212007-01-30  Darin Adler  <darin@apple.com>
59522
59523        Reviewed by John.
59524
59525        - fix for <rdar://problem/4911504> REGRESSION: With a image selected, ctrl-clicking
59526          on page displays the wrong contextual menu items "Search in Google", "Search in Spotlight"
59527          and "Look up in Dictionary"
59528
59529        * platform/ContextMenu.cpp:
59530        (WebCore::selectionContainsPossibleWord): Added. Returns true if there are some
59531        non-whitespace characters in the selection.
59532        (WebCore::ContextMenu::populate): Don't add SearchSpotlightItem, SearchWebItem,
59533        or LookInDictionaryItem if selectionContainsPossibleWord returns false.
59534
595352007-01-30  Nikolas Zimmermann  <zimmermann@kde.org>
59536
59537        Reviewed by Oliver.
59538
59539        Respect stroke-width in absolute repaint rect calculations for SVG text.
59540        Added test: svg/custom/text-repaint-including-stroke.svg
59541
59542        * rendering/RenderSVGText.cpp:
59543        (WebCore::RenderSVGText::relativeBBox):
59544
595452007-01-30  Steve Falkenburg  <sfalken@apple.com>
59546
59547        Reviewed by Oliver.
59548
59549        Add missing includes.
59550
59551        * ksvg2/svg/SVGElementInstance.cpp:
59552
595532007-01-30  Alexey Proskuryakov  <ap@webkit.org>
59554
59555        Reviewed by Darin.
59556
59557        http://bugs.webkit.org/show_bug.cgi?id=12452
59558        XPath id() function is not supported
59559
59560        * xml/XPathFunctions.cpp:
59561        (WebCore::XPath::isWhitespace): A helper to detect XML whitespace.
59562
59563        (WebCore::XPath::FunId::isConstant):
59564        (WebCore::XPath::FunId::doEvaluate):
59565        (WebCore::XPath::FunctionMapping::):
59566        Implemented id().
59567
595682007-01-30  Zack Rusin  <zrusin@trolltech.com>
59569
59570        Reviewed by Sam.
59571
59572        Make the gradients work on the Qt platform.
59573
59574        * platform/graphics/svg/SVGPaintServerGradient.h:
59575        * platform/graphics/svg/SVGPaintServerLinearGradient.h:
59576        * platform/graphics/svg/SVGPaintServerRadialGradient.h:
59577        * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp:
59578        (WebCore::SVGPaintServerGradient::fillColorArray):
59579        (WebCore::SVGPaintServerGradient::setup):
59580        * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
59581        (WebCore::SVGPaintServerLinearGradient::setupGradient):
59582        * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
59583        (WebCore::SVGPaintServerRadialGradient::setupGradient):
59584
595852007-01-30  Nikolas Zimmermann  <zimmermann@kde.org>
59586
59587        Reviewed by Eric & Oliver. Leak related fixes reviewed by Mark.
59588
59589        Finally make the SVG <use> implementation use the proper "shadow tree" concept,
59590        which is also used by the HTML forms implementation. It's the first time in ksvg
59591        history that <use> is not implement as a crude hack, but proper & sane.
59592
59593        Implement deep expansion of use trees both for the instance & shadow tree.
59594        (<use> on a <symbol> containing a <g> containg a <use> element referencing a <rect>)
59595 
59596        The shadow tree is free of any symbol/use tags, but is properly expanded to the
59597        actual referenced content. The instance tree (SVGElementInstance objects) now exactly
59598        exposes the "expanded" shadow tree, as required by the specification. Previously
59599        we cloned referenced <use> elements, so our faked use shadow tree itself contained
59600        <use> elements. That lead to very nasty bugs - finally these dirty pieces are gone.
59601
59602        Checked twice that the updating logic works for all weird "deep expansions" cases. Example:
59603        <rect id="someRect"/> <g id="g"> <symbol> <use xlink:href="#someRect"/> </g> <use xlink:href="#g" id="use"/>
59604 
59605        If you walk through the instanceRoot using JavasScript, and explicitely modify some propertties of "someRect"
59606        -> all instances get updated correctly. For such simple cases it doesn't even involve recloning the shadow tree!
59607
59608        SVGElementInstance is now an EventTarget, as demanded by the specification - sending events to <use> instances
59609        will be implemented in a follow-up patch - as well as the "share event listeners with referenced target" logic.
59610
59611        Fixes all updating/stability issues with svg/carto.net/window.svg.
59612        Fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (<use> does not handle recursion safely)
59613
59614        Added test: svg/custom/use-on-use.svg (deep use referencing)
59615        Added test: svg/custom/use-on-g-containing-use.svg (nested deep use referencing)
59616        Added test: svg/custom/use-modify-target-container.svg (instanceRoot scripting, modifying <g> target)
59617        Added test: svg/custom/use-modify-target-symbol.svg (instanceRoot scripting, modfiying <symbol> target)
59618        Added test: svg/custom/use-modify-container-in-target.svg (modify <g> within referenced use target -> needs to update instances)
59619        Added test: svg/custom/use-recursion-1.svg (referencing container, whose children reference itself)
59620        Added test: svg/custom/use-recursion-2.svg (<use> self referencing)
59621        Added test: svg/custom/use-recursion-3.svg (<use> self rerencing, within <use> target)
59622        Added test: svg/custom/use-recursion-4.svg (cyclic referencing, within <use> target)
59623
59624        * bindings/scripts/CodeGeneratorJS.pm:
59625        * css/cssstyleselector.cpp:
59626        (WebCore::CSSStyleSelector::initForStyleResolve):
59627        (WebCore::CSSStyleSelector::adjustRenderStyle):
59628        * ksvg2/misc/SVGDocumentExtensions.cpp:
59629        (WebCore::SVGDocumentExtensions::removeTimeContainer):
59630        * ksvg2/svg/SVGElement.cpp:
59631        (WebCore::SVGElement::SVGElement):
59632        (WebCore::SVGElement::viewportElement):
59633        * ksvg2/svg/SVGElement.h:
59634        (WebCore::SVGElement::isShadowNode):
59635        (WebCore::SVGElement::shadowParentNode):
59636        (WebCore::SVGElement::setShadowParentNode):
59637        * ksvg2/svg/SVGElementInstance.cpp:
59638        (WebCore::SVGElementInstance::SVGElementInstance):
59639        (WebCore::SVGElementInstance::correspondingUseElement):
59640        (WebCore::SVGElementInstance::shadowTreeElement):
59641        (WebCore::SVGElementInstance::setShadowTreeElement):
59642        (WebCore::containsUseChildNode):
59643        (WebCore::SVGElementInstance::updateInstance):
59644        (WebCore::SVGElementInstance::addEventListener):
59645        (WebCore::SVGElementInstance::removeEventListener):
59646        (WebCore::SVGElementInstance::dispatchEvent):
59647        * ksvg2/svg/SVGElementInstance.h:
59648        (WebCore::SVGElementInstance::refEventTarget):
59649        (WebCore::SVGElementInstance::derefEventTarget):
59650        (WebCore::SVGElementInstance::hasOneRef):
59651        (WebCore::SVGElementInstance::refCount):
59652        (WebCore::SVGElementInstance::setParent):
59653        (WebCore::SVGElementInstance::parent):
59654        * ksvg2/svg/SVGElementInstance.idl:
59655        * ksvg2/svg/SVGGElement.cpp:
59656        (WebCore::SVGGElement::localMatrix):
59657        * ksvg2/svg/SVGGElement.h:
59658        * ksvg2/svg/SVGHiddenElement.h: Removed.
59659        * ksvg2/svg/SVGSVGElement.cpp:
59660        (WebCore::SVGSVGElement::~SVGSVGElement):
59661        * ksvg2/svg/SVGStyledElement.cpp:
59662        (WebCore::SVGStyledElement::updateElementInstance):
59663        * ksvg2/svg/SVGUseElement.cpp:
59664        (WebCore::SVGUseElement::removedFromDocument):
59665        (WebCore::SVGUseElement::notifyAttributeChange):
59666        (WebCore::dumpInstanceTree):
59667        (WebCore::SVGUseElement::buildPendingResource):
59668        (WebCore::SVGUseElement::attach):
59669        (WebCore::SVGUseElement::buildInstanceTree):
59670        (WebCore::SVGUseElement::handleDeepUseReferencing):
59671        (WebCore::SVGUseElement::buildShadowTree):
59672        (WebCore::SVGUseElement::expandUseElementsInShadowTree):
59673        (WebCore::SVGUseElement::attachShadowTree):
59674        (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
59675        (WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
59676        * ksvg2/svg/SVGUseElement.h:
59677
596782007-01-30  Maciej Stachowiak  <mjs@apple.com>
59679
59680        Reviewed by Eric.
59681
59682        <rdar://problem/4928646> REGRESSION: manual-tests/remove-input-file-onchange.html crashes
59683        
59684        * platform/FileChooser.h:
59685        (WebCore::FileChooser::disconnected): New method, so the RenderFileControl can tell when it's
59686        gotten disconected.
59687        * rendering/RenderFileUploadControl.cpp:
59688        (WebCore::RenderFileUploadControl::valueChanged): Avoid calling repainted() when onChange()
59689        handler destroyed us.
59690
596912007-01-30  Simon Hausmann  <hausmann@kde.org>
59692
59693        Reviewed by Zack.
59694
59695        Combine libJavaScriptCore into libWebKitQt.
59696        Build with ELF visibility if possible.
59697
59698        * WebCore.pro:
59699
597002007-01-30  Zack Rusin  <zack@kde.org>
59701
59702        The method has been removed from the header
59703        (make it compile)
59704
59705        * platform/network/qt/ResourceHandleQt.cpp:
59706
597072007-01-30  Zack Rusin  <zrusin@trolltech.com>
59708
59709        Reviewed by aroben
59710
59711        Compile fix. 
59712
59713        * loader/ResourceLoader.cpp:
59714        (WebCore::ResourceLoader::releaseResources):
59715        (WebCore::ResourceLoader::setDefersLoading):
59716
597172007-01-29  Zack Rusin  <zack@kde.org>
59718
59719        Reviewed by Lars
59720
59721        Propagate the allows-scrolling property on the frames
59722        correctly. If the frame has been constructed as non-
59723        scrolling, respect that and don't show scrollbars.
59724
59725        * platform/ScrollView.h:
59726        * platform/qt/ScrollViewQt.cpp:
59727        (WebCore::ScrollView::ScrollView):
59728        (WebCore::ScrollView::setHScrollbarMode):
59729        (WebCore::ScrollView::setVScrollbarMode):
59730        (WebCore::ScrollView::setAllowsScrolling):
59731
597322007-01-29  Geoffrey Garen  <ggaren@apple.com>
59733
59734        I am the chosen one! I have seen the faces of the final five! I will
59735        save the WebKit build!
59736        
59737        * loader/ResourceLoader.cpp:
59738        (WebCore::ResourceLoader::load):
59739
597402007-01-30  Graham Dennis  <graham.dennis@gmail.com>
59741
59742        Reviewed by Maciej.
59743
59744        Part of fix for http://bugs.webkit.org/show_bug.cgi?id=10725
59745        Image data in from RTFD clipboard data thrown away
59746        
59747        ResourceHandles no longer need to be able to defer loading as that is
59748        now handled by the ResourceLoader.
59749
59750        * loader/MainResourceLoader.cpp:
59751        (WebCore::MainResourceLoader::loadNow): updated to remove defersLoading argument.
59752        * loader/ResourceLoader.cpp:
59753        (WebCore::ResourceLoader::releaseResources): release the deferred request.
59754        (WebCore::ResourceLoader::load): defer creating the ResourceHandle instead of
59755        asking the ResourceHandle to defer loading.
59756        (WebCore::ResourceLoader::setDefersLoading): create the ResourceHandle if we have deferred creating it.
59757        * loader/ResourceLoader.h:
59758        * platform/network/ResourceHandle.cpp: ResourceHandle's don't need to know about deferLoading.
59759        (WebCore::ResourceHandle::ResourceHandle):
59760        (WebCore::ResourceHandle::create):
59761        * platform/network/ResourceHandle.h: ditto.
59762        * platform/network/ResourceHandleInternal.h: ditto.
59763        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
59764        * platform/network/mac/ResourceHandleMac.mm: ditto.
59765        (WebCore::ResourceHandle::start):
59766
597672007-01-29  Brady Eidson  <beidson@apple.com>
59768
59769        Reviewed by Alice
59770
59771        Lets use smart pointers, shall we?
59772
59773        * platform/network/ResourceHandleInternal.h:
59774
597752007-01-29  Justin Garcia  <justin.garcia@apple.com>
59776
59777        Reviewed by harrison
59778        
59779        <rdar://problem/4960137>
59780        ASSERTION FAILURE calling SelectionController::setBaseAndExtent (11833)
59781
59782        * editing/SelectionController.cpp:
59783        (WebCore::SelectionController::setSelection): Hand off the selection
59784        to the selectionController responsible for it, instead of asserting.
59785        A selection object can't be constructed with endpoints in different 
59786        documents, so this code is only necessary for one endpoint.
59787
597882007-01-29  Ada Chan  <adachan@apple.com>
59789
59790        Reviewed by Brady.
59791        
59792        Moved the update of the title of the current entry in the backforward list to WebCore.
59793
59794        * loader/FrameLoader.cpp:
59795        (WebCore::FrameLoader::didChangeTitle):
59796
597972007-01-29  Adele Peterson  <adele@apple.com>
59798
59799        Reviewed by Darin.
59800
59801        More preparation for event handling fixes.
59802
59803        * bridge/EditorClient.h: Removed EventTargetNode parameter from handleKeyPress since we can just get that from the event.
59804        * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler): ditto.
59805        * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): ditto.
59806        * page/EventHandler.h: ditto.
59807        * platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): ditto.
59808
59809        * editing/Editor.h:
59810        * editing/Editor.cpp:
59811        (WebCore::Editor::handleKeyPress): Removed EventTargetNode parameter.
59812        (WebCore::Editor::execCommand): Made commandMap use AtomicStringImpls instead of Strings.
59813        (WebCore::Editor::insertText): Moved from the bridge.
59814
59815        * page/mac/WebCoreFrameBridge.h: Moved insertText method to Editor.
59816        * page/mac/WebCoreFrameBridge.mm:
59817
59818        * WebCore.exp: Updated exports.
59819
598202007-01-29  Anders Carlsson  <acarlsson@apple.com>
59821
59822        Reviewed by Geoff.
59823
59824        <rdar://problem/4960097>
59825        http://bugs.webkit.org/show_bug.cgi?id=12444
59826        Assertion failure in -[WebCoreFrameBridge installInFrame:]
59827        
59828        The problem was that the XML tokenizer didn't create elements with 
59829        createdByParser set to true.
59830        
59831        * dom/Document.cpp:
59832        (WebCore::Document::createElement):
59833        New method which takes a QName. This is used by both the XML tokenizer and createElementNS.
59834        
59835        (WebCore::Document::createElementNS):
59836        Call new createElement method.
59837        
59838        * dom/XMLTokenizer.h:        
59839        * dom/XMLTokenizer.cpp:
59840        (WebCore::XMLTokenizer::XMLTokenizer):
59841        (WebCore::XMLTokenizer::~XMLTokenizer):
59842        Use an OwnPtr for the pending callbacks object. Also, use String instead of StringImpl in the hash map.
59843        
59844        (WebCore::toString):
59845        (WebCore::XMLTokenizer::startElementNs):
59846        Call createElement.
59847        
598482007-01-29  Brady Eidson  <beidson@apple.com>
59849
59850        Reviewed by Oliver
59851
59852        http://bugs.webkit.org/show_bug.cgi?id=12465
59853        Only set the iconURL port for non-zero ports
59854
59855        * loader/FrameLoader.cpp:
59856        (WebCore::FrameLoader::iconURL):
59857
598582007-01-29  John Sullivan  <sullivan@apple.com>
59859
59860        * platform/network/mac/ResourceRequestMac.mm:
59861        Build fix -- removed #import of no-longer-extant WebDataProtocol.h (and also one of the
59862        two #imports for WebCoreSystemInterface.h, while I was at it)
59863
598642007-01-29  Anders Carlsson  <acarlsson@apple.com>
59865
59866        Reviewed by Oliver.
59867
59868        * page/DragController.cpp:
59869        (WebCore::DragController::dragEnteredOrUpdated):
59870        Only try a drag operation if the drag client explicitly specified that it is OK
59871
598722007-01-29  Oliver Hunt  <oliver@apple.com>
59873
59874        Reviewed by Adam.
59875
59876        Migrated more drag logic and state to WebCore
59877                                              
59878        * page/DragClient.h:       
59879
59880        * page/DragController.cpp:
59881        (WebCore::DragController::delegateDragSourceAction):
59882          New forwarding method for the UI delegate
59883        * page/DragController.h:
59884        (WebCore::DragController::dragOffset):
59885          Now store the drag offset -- the offset of the cursor relative to the drag image)
59886          in DragController
59887        * page/EventHandler.cpp:
59888        (WebCore::EventHandler::allowDHTMLDrag):
59889          Moved from WebFrameBridge
59890        * page/EventHandler.h:
59891        * page/mac/EventHandlerMac.mm:
59892        (WebCore::EventHandler::eventMayStartDrag):
59893        (WebCore::EventHandler::handleDrag):                  
59894          EventHandlerMac now uses EventHandler::allowDHTMLDrag rather than the 
59895          implementation in WebFrameBridge
59896        * page/mac/WebCoreFrameBridge.h:
59897          removed definition of allowDHTMLDrag from WebFrameBridge
59898        * platform/graphics/svg/SVGImageEmptyClients.h:
59899        (WebCore::SVGEmptyDragClient::dragSourceActionMaskForPoint):
59900          Updated empty DragClient
59901
599022007-01-29  Alexey Proskuryakov  <ap@webkit.org>
59903
59904        Reviewed by Darin.
59905
59906        http://bugs.webkit.org/show_bug.cgi?id=12359
59907        XPathEvaluator may return some nodes more than once in a result set
59908
59909        Test: fast/xpath/nodeset-duplicates.html
59910
59911        * xml/XPathPath.cpp:
59912        (WebCore::XPath::LocationPath::doEvaluate): Ensure uniqueness of elements
59913        in the node-set.
59914
59915        * xml/XPathPredicate.cpp:
59916        (WebCore::XPath::Union::doEvaluate): Fixed a uniqueness algorithm that was
59917        already present here. Added a FIXME about incorrect result ordering.
59918
599192007-01-29  Alexey Proskuryakov  <ap@webkit.org>
59920
59921        Reviewed by Darin.
59922
59923        http://bugs.webkit.org/show_bug.cgi?id=12340
59924        XPathEvaluator behavior does not match Firefox - name() and attribute nodes
59925
59926        * xml/XPathFunctions.cpp:
59927        (WebCore::XPath::FunName::doEvaluate): Do not try to append a prefix if it doesn't exist.
59928
599292007-01-29  Alexey Proskuryakov  <ap@webkit.org>
59930
59931        Reviewed by Darin.
59932
59933        http://bugs.webkit.org/show_bug.cgi?id=11815
59934        XPathEvaluator behavior does not match Firefox - substring() and empty element
59935
59936        Test: fast/xpath/empty-string-substring.html
59937
59938        * xml/XPathValue.cpp:
59939        (WebCore::XPath::Value::Value):
59940        * xml/XPathValue.h:
59941        Added a constructor taking const char*, so that string literals and arrays don't 
59942        get converted to boolean values.
59943
599442007-01-29  Zack Rusin  <zrusin@trolltech.com>
59945
59946        Cosmetic fixes - don't resize the widget in the constructor
59947        (it was a hack from the initial port) and fix the paint
59948        signature.
59949
59950        * platform/qt/ScrollViewCanvasQt.cpp:
59951        (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
59952        * platform/qt/WidgetQt.cpp:
59953        (WebCore::Widget::paint):
59954
599552007-01-29  Maciej Stachowiak  <mjs@apple.com>
59956
59957        - change from struct to class to make picky compilers happy
59958
59959        * loader/SubstituteData.h:
59960
599612007-01-30  Mark Rowe  <mrowe@apple.com>
59962
59963        Reviewed by Maciej.
59964
59965        http://bugs.webkit.org/show_bug.cgi?id=12458
59966        Bug 12458: Crash in W3C-SVG-1.1/animate-elem-09-t.svg running layout tests under guard malloc
59967
59968        * ksvg2/svg/SVGAnimationElement.cpp: 
59969        (WebCore::parseValues): ptr either points to a ';' or off the end of the buffer.  We're
59970        interested in what comes before the ';', so start there instead.
59971
599722007-01-29  Zack Rusin  <zrusin@trolltech.com>
59973
59974        Reviewed by Lars.
59975
59976        Take the scrollbars into considation when computing
59977        the contents size of the main frame.
59978
59979        * platform/qt/PlatformScrollBarQt.cpp:
59980        (WebCore::PlatformScrollbar::paint):
59981        * platform/qt/ScrollViewQt.cpp:
59982        (WebCore::ScrollView::visibleWidth):
59983        (WebCore::ScrollView::visibleHeight):
59984        (WebCore::ScrollView::visibleContentRect):
59985        * platform/qt/WidgetQt.cpp:
59986        (WebCore::Widget::invalidate):
59987        (WebCore::Widget::invalidateRect):
59988
599892007-01-29  Maciej Stachowiak  <mjs@apple.com>
59990
59991        - fix includes
59992
59993        * loader/SubstituteData.h:
59994
599952007-01-29  Maciej Stachowiak  <mjs@apple.com>
59996
59997        - added new file that I forgot in the last commit
59998
59999        * loader/SubstituteData.h: Added.
60000        (WebCore::SubstituteData::SubstituteData):
60001        (WebCore::SubstituteData::isValid):
60002        (WebCore::SubstituteData::content):
60003        (WebCore::SubstituteData::mimeType):
60004        (WebCore::SubstituteData::textEncoding):
60005        (WebCore::SubstituteData::failingURL):
60006
600072007-01-29  Maciej Stachowiak  <mjs@apple.com>
60008
60009        Reviewed by Mark.
60010
60011        - made data loading cross-platform
60012        - fixed <rdar://problem/4910106>
60013
60014        * WebCore.exp:
60015        * WebCore.xcodeproj/project.pbxproj:
60016        * loader/CachedResource.cpp:
60017        * loader/CachedResource.h:
60018        * loader/DocLoader.cpp:
60019        (WebCore::DocLoader::requestResource):
60020        * loader/DocumentLoader.cpp:
60021        (WebCore::DocumentLoader::DocumentLoader):
60022        (WebCore::DocumentLoader::setRequest):
60023        (WebCore::DocumentLoader::urlForHistory):
60024        (WebCore::DocumentLoader::unreachableURL):
60025        * loader/DocumentLoader.h:
60026        (WebCore::DocumentLoader::substituteData):
60027        * loader/FrameLoader.cpp:
60028        (WebCore::FrameLoader::load):
60029        (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
60030        (WebCore::FrameLoader::reloadAllowingStaleData):
60031        (WebCore::FrameLoader::reload):
60032        (WebCore::FrameLoader::commitProvisionalLoad):
60033        (WebCore::FrameLoader::startLoadingMainResource):
60034        (WebCore::FrameLoader::startLoading):
60035        (WebCore::FrameLoader::checkNavigationPolicy):
60036        * loader/FrameLoader.h:
60037        * loader/FrameLoaderClient.h:
60038        * loader/MainResourceLoader.cpp:
60039        (WebCore::MainResourceLoader::willSendRequest):
60040        (WebCore::MainResourceLoader::continueAfterContentPolicy):
60041        (WebCore::MainResourceLoader::handleEmptyLoad):
60042        (WebCore::MainResourceLoader::handleDataLoad):
60043        (WebCore::MainResourceLoader::loadNow):
60044        (WebCore::MainResourceLoader::load):
60045        * loader/MainResourceLoader.h:
60046        * loader/mac/DocumentLoaderMac.mm:
60047        * loader/mac/WebDataProtocol.h: Removed.
60048        * loader/mac/WebDataProtocol.mm: Removed.
60049        * loader/qt/DocumentLoaderQt.cpp:
60050        * platform/graphics/svg/SVGImageEmptyClients.h:
60051        (WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
60052
600532007-01-29  Zack Rusin  <zrusin@trolltech.com>
60054
60055        Order the build files alphabetically instead of
60056        the random mess we had before.
60057
60058        * WebCore.pro:
60059
600602007-01-29  Zack Rusin  <zack@kde.org>
60061
60062        Reviewed by Lars
60063
60064        Use the platform independent scrollbar code.
60065        Remove the redundant empty stubs and forward
60066        few missing platform scrollbar calls.
60067
60068        * WebCore.pro:
60069        * platform/qt/PlatformScrollBarQt.cpp:
60070        (WebCore::PlatformScrollbar::paint):
60071        (WebCore::PlatformScrollbar::setRect):
60072
600732007-01-29  Lars Knoll <lars@trolltech.com>
60074
60075        Reviewed by Zack
60076
60077        Fix the way we handle native widgets (QWidget) inside
60078        WebCore. Now WebCore::Widget owns the QWidget in all
60079        cases. This is the only way to get well defined semantics
60080        for all teh native widgets we have (currently ScrollView
60081        and ScrollBar, but plugins will follow).
60082
60083        This has the side effect that one cannot rely on a defined 
60084        lifetime of a QWebFrame when using the API. 
60085
60086        * platform/Widget.h:
60087        * platform/qt/PlatformScrollBarQt.cpp:
60088        (WebCore::PlatformScrollbar::PlatformScrollbar):
60089        * platform/qt/ScrollViewQt.cpp:
60090        (WebCore::ScrollView::addChild):
60091        (WebCore::ScrollView::removeChild):
60092        * platform/qt/WidgetQt.cpp:
60093        (WebCore::WidgetPrivate::WidgetPrivate):
60094        (WebCore::WidgetPrivate::~WidgetPrivate):
60095        (WebCore::Widget::qwidget):
60096
600972007-01-28  George Staikos  <staikos@kde.org>
60098
60099        Reviewed by Maciej.
60100
60101        Don't send data during a redirect -> causes assert failure.
60102
60103        * platform/network/qt/ResourceHandleManagerQt.cpp:
60104        (WebCore::ResourceHandleManager::receivedData):
60105
601062007-01-29  Mark Rowe  <mrowe@apple.com>
60107
60108        Reviewed by Brady.
60109
60110        http://bugs.webkit.org/show_bug.cgi?id=11085
60111        Bug 11085: REGRESSION: favicon.ico always looked for on port 80
60112
60113        * loader/FrameLoader.cpp:
60114        (WebCore::FrameLoader::iconURL): Copy the port over to the favicon URL.
60115
601162007-01-28  Adam Roben  <aroben@apple.com>
60117
60118        Reviewed by Adele.
60119
60120        Fix http://bugs.webkit.org/show_bug.cgi?id=12453
60121        REGRESSION(r19197): Tabbing into web page requires two key presses
60122
60123        All layout tests pass.
60124
60125        * page/FocusController.cpp:
60126        (WebCore::FocusController::advanceFocus): If there's no focused frame,
60127        actually go ahead and find a focusable node instead of just focusing
60128        the main frame and quitting. This behavior was a holdover from a
60129        previous desired tabbing behavior with respect to frames.
60130
601312007-01-28  David Kilzer  <ddkilzer@webkit.org>
60132
60133        Reviewed by Darin and David Hyatt.
60134
60135        - fix http://bugs.webkit.org/show_bug.cgi?id=12423
60136          Mixing white-space:pre text with non white-space:pre text does not wrap properly
60137
60138        Test: fast/block/basic/white-space-pre-wraps.html
60139
60140        * rendering/bidi.cpp:
60141        (WebCore::RenderBlock::findNextLineBreak): Wrap a non-wrapping text run if it
60142        appears on a line with previous text runs that do wrap.
60143
601442007-01-28  Mitz Pettel  <mitz@webkit.org>
60145
60146        Reviewed by Darin.
60147
60148        - fix http://bugs.webkit.org/show_bug.cgi?id=8360
60149          Repro crash when onscroll handler deletes the scrolled object
60150
60151        Test: fast/layers/removed-by-scroll-handler.html
60152
60153        * page/FrameView.cpp:
60154        (WebCore::FrameViewPrivate::FrameViewPrivate): Added a m_enqueueEvents count.
60155        (WebCore::FrameView::layout): Raise the enqueue count before starting layout and
60156        until after enqueued events are dispatched.
60157        (WebCore::FrameView::scheduleEvent): Made this function dispatch the event
60158        immediately unless the enqueue count is positive.
60159        * rendering/RenderLayer.cpp:
60160        (WebCore::RenderLayer::scrollToOffset): Schedule the scroll event through the
60161        FrameView.
60162        (WebCore::RenderLayer::scrollRectToVisible):
60163        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
60164        (WebCore::Marquee::start):
60165
601662007-01-28  Charles Ying  <charles_ying@yahoo.com>
60167
60168        Reviewed by eseidel.  Landed by eseidel.
60169
60170        Fix http://bugs.webkit.org/show_bug.cgi?id=12429
60171            animateTransform rotate, with cx/cy is broken
60172            
60173        SVGTransform now contains a float point to store the rotation center, needed
60174            to track rotation center for interpolation by animateTransform.
60175            
60176        SVGTransform now has an additional constructor:
60177            SVGTransform(type) to make empty base value transforms that match their
60178            distanced values.
60179            
60180        Removed m_colorDistance and m_transformDistance from their respective classes
60181            as they are now computed at update time.
60182
60183        Fix a case where animateTransform did not parse transform values correctly
60184            according to BNF in W3C spec:
60185
60186        Test case in:
60187        * manual-tests/animation/animateTransform-toanimation.svg: Added.
60188
60189        Fix a case where animateTransform only specified a to animation only.
60190
60191        Test case in:
60192        * manual-tests/animation/animateTransform-parser.svg: Added.
60193
60194        * ksvg2/svg/SVGAnimateColorElement.cpp:
60195        (WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
60196        (WebCore::SVGAnimateColorElement::updateAnimatedValue):
60197        (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
60198        * ksvg2/svg/SVGAnimateColorElement.h:
60199        * ksvg2/svg/SVGAnimateTransformElement.cpp:
60200        (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
60201        (WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
60202        (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
60203        (WebCore::SVGAnimateTransformElement::parseTransformValue):
60204        * ksvg2/svg/SVGAnimateTransformElement.h:
60205        * ksvg2/svg/SVGTransform.cpp:
60206        (SVGTransform::SVGTransform):
60207        (SVGTransform::angle):
60208        (SVGTransform::rotationCenter):
60209        (SVGTransform::setTranslate):
60210        (SVGTransform::setScale):
60211        (SVGTransform::setRotate):
60212        (SVGTransform::setSkewX):
60213        (SVGTransform::setSkewY):
60214        * ksvg2/svg/SVGTransform.h:
60215        * ksvg2/svg/SVGTransformDistance.cpp:
60216        (WebCore::SVGTransformDistance::SVGTransformDistance):
60217        (WebCore::SVGTransformDistance::scaledDistance):
60218        (WebCore::SVGTransformDistance::addSVGTransforms):
60219        (WebCore::SVGTransformDistance::addSVGTransform):
60220        (WebCore::SVGTransformDistance::addToSVGTransform):
60221        (WebCore::SVGTransformDistance::distance):
60222        * ksvg2/svg/SVGTransformDistance.h:
60223        * manual-tests/animation/animateTransform-parser.svg: Added.
60224        * manual-tests/animation/animateTransform-toanimation.svg: Added.
60225
602262007-01-27  Adam Roben  <aroben@apple.com>
60227
60228        Reviewed by Ada.
60229
60230        Fix <rdar://problem/4957184> REGRESSION: After creating a new mail
60231        message, the caret is automatically in message body
60232
60233        -[WebHTMLView _updateActiveState] was calling
60234        FocusController::focusedOrMainFrame, which had the surprising
60235        side-effect of setting the focused frame if there was none. The fix
60236        was to remove this side-effect.
60237
60238        No tests possible, as this bug involves focus outside the WebView,
60239        which we have no support for in DRT.
60240
60241        Change inspired by Dave Harrison.
60242
60243        * page/FocusController.cpp:
60244        (WebCore::FocusController::focusedOrMainFrame): Removed this method's
60245        non-obvious side-effect of setting the focused frame.
60246        * WebCore.xcodeproj/project.pbxproj: Version wars.
60247
602482007-01-27  Peter Kasting  <pkasting@google.com>
60249
60250        Reviewed by Maciej.
60251
60252        http://bugs.webkit.org/show_bug.cgi?id=11880: Improve some egregious
60253        Windows form control drawing issues:
60254        Provide Classic mode fallbacks for the button/textfield drawing
60255        routines.
60256        Provide some basic drawing of menulists (still relatively broken).
60257        Some cleanup.
60258
60259        * platform/win/TemporaryLinkStubs.cpp:
60260        (WebCore::RenderThemeWin::systemFont):
60261        * rendering/RenderThemeWin.cpp:
60262        (WebCore::m_menuListTheme):
60263        (WebCore::RenderThemeWin::close):
60264        (WebCore::RenderThemeWin::determineClassicState):
60265        (WebCore::RenderThemeWin::getThemeData):
60266        (WebCore::RenderThemeWin::paintButton):
60267        (WebCore::RenderThemeWin::paintTextField):
60268        (WebCore::RenderThemeWin::paintMenuList):
60269        (WebCore::RenderThemeWin::paintMenuListButton):
60270        * rendering/RenderThemeWin.h:
60271        (WebCore::ThemeData::m_classicState):
60272        (WebCore::RenderThemeWin::setRadioSize):
60273        (WebCore::RenderThemeWin::paintTextArea):
60274
602752007-01-27  David Kilzer  <ddkilzer@webkit.org>
60276
60277        Reviewed by Adam.
60278
60279        - fix http://bugs.webkit.org/show_bug.cgi?id=12260
60280          Windows platform build is not maintained
60281
60282        * loader/win/FrameLoaderWin.cpp:
60283        * platform/network/win/ResourceHandleWin.cpp:
60284        * platform/win/TemporaryLinkStubs.cpp:
60285        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
60286        (WebCore::contextMenuItemTagDownloadLinkToDisk):
60287        (WebCore::contextMenuItemTagCopyLinkToClipboard):
60288        (WebCore::contextMenuItemTagOpenImageInNewWindow):
60289        (WebCore::contextMenuItemTagDownloadImageToDisk):
60290        (WebCore::contextMenuItemTagCopyImageToClipboard):
60291        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
60292        (WebCore::contextMenuItemTagCopy):
60293        (WebCore::contextMenuItemTagGoBack):
60294        (WebCore::contextMenuItemTagGoForward):
60295        (WebCore::contextMenuItemTagStop):
60296        (WebCore::contextMenuItemTagReload):
60297        (WebCore::contextMenuItemTagCut):
60298        (WebCore::contextMenuItemTagPaste):
60299        (WebCore::contextMenuItemTagNoGuessesFound):
60300        (WebCore::contextMenuItemTagIgnoreSpelling):
60301        (WebCore::contextMenuItemTagLearnSpelling):
60302        (WebCore::contextMenuItemTagSearchWeb):
60303        (WebCore::contextMenuItemTagLookUpInDictionary):
60304        (WebCore::contextMenuItemTagOpenLink):
60305        (WebCore::contextMenuItemTagIgnoreGrammar):
60306        (WebCore::contextMenuItemTagSpellingMenu):
60307        (WebCore::contextMenuItemTagShowSpellingPanel):
60308        (WebCore::contextMenuItemTagCheckSpelling):
60309        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
60310        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
60311        (WebCore::contextMenuItemTagFontMenu):
60312        (WebCore::contextMenuItemTagBold):
60313        (WebCore::contextMenuItemTagItalic):
60314        (WebCore::contextMenuItemTagUnderline):
60315        (WebCore::contextMenuItemTagOutline):
60316        (WebCore::contextMenuItemTagWritingDirectionMenu):
60317        (WebCore::contextMenuItemTagDefaultDirection):
60318        (WebCore::contextMenuItemTagLeftToRight):
60319        (WebCore::contextMenuItemTagRightToLeft):
60320        (WebCore::DocumentLoader::unreachableURL):
60321        (WebCore::FrameLoader::redirectDataToPlugin):
60322        (WebCore::FrameLoader::partClearedInBegin):
60323        (WebCore::FrameLoader::createPlugin):
60324
603252007-01-27  Sam Weinig  <sam@webkit.org>
60326
60327        Reviewed by Mitz.
60328
60329        - Patch for http://bugs.webkit.org/show_bug.cgi?id=11957
60330          REGRESSION: Unordered List Bullets too big and changing from size
60331
60332        * rendering/RenderListMarker.cpp:
60333        (WebCore::RenderListMarker::paint): Explicitly set the stroke size to 1.0f.
60334
603352007-01-27  Lars Knoll <lars@trolltech.com>
60336
60337        Fix the Qt build and disable the usage
60338        of QScrollbars for PlatformScrollBar for 
60339        now as it causes crashes in the layout tests.
60340
60341        * WebCore.pro:
60342        * ksvg2/svg/SVGTransformDistance.cpp:
60343        * page/qt/FrameQt.cpp:
60344        (WebCore::FrameQt::FrameQt):
60345        (WebCore::FrameQt::bindingRootObject):
60346        (WebCore::FrameQt::createRootObject):
60347        * page/qt/FrameQt.h:
60348        * platform/qt/PlatformScrollBarQt.cpp:
60349        (WebCore::PlatformScrollbar::PlatformScrollbar):
60350        * platform/qt/ScrollViewQt.cpp:
60351        (WebCore::ScrollView::addChild):
60352
603532007-01-27  David Kilzer  <ddkilzer@kilzer.net>
60354
60355        Reviewed by NOBODY (buildbot build fix).
60356
60357        * ksvg2/svg/ColorDistance.cpp:
60358        (WebCore::ColorDistance::scaledDistance): Added static cast of arguments to int.
60359
603602007-01-27  Rob Buis  <buis@kde.org>
60361
60362        Reviewed by NOBODY (typo in method name fix).
60363
60364        * ksvg2/svg/SVGSVGElement.cpp:
60365        (WebCore::SVGSVGElement::addSVGWindowEventListener):
60366        (WebCore::SVGSVGElement::parseMappedAttribute):
60367        * ksvg2/svg/SVGSVGElement.h:
60368
603692007-01-27  Eric Seidel  <eric@webkit.org>
60370
60371        Reviewed by olliej.
60372
60373        Fix support for SVG's <set> element.
60374
60375        Manual test added.
60376
60377        * ksvg2/svg/SVGSetElement.cpp:
60378        (WebCore::SVGSetElement::updateAnimatedValue):
60379        (WebCore::SVGSetElement::calculateFromAndToValues):
60380        * ksvg2/svg/SVGSetElement.h:
60381        * manual-tests/animation/set-to.svg: Added.
60382
603832007-01-27  Alexey Proskuryakov  <ap@webkit.org>
60384
60385        Release build fix.
60386
60387        * loader/TextResourceDecoder.cpp:
60388        (WebCore::TextResourceDecoder::checkForHeadCharset):
60389
603902007-01-27  Alexey Proskuryakov  <ap@webkit.org>
60391
60392        Reviewed by Darin.
60393
60394        http://bugs.webkit.org/show_bug.cgi?id=12389
60395        Chinese decoding error at hk.antispam.yahoo.com
60396
60397        Test: fast/encoding/noscript-in-head.html
60398
60399        * loader/TextResourceDecoder.cpp:
60400        (WebCore::TextResourceDecoder::checkForHeadCharset): We were already allowing 
60401        NOSCRIPT tags in head, let's actually skip over their content.
60402
604032007-01-26  Geoffrey Garen  <ggaren@apple.com>
60404
60405        Reviewed by Maciej Stachowiak.
60406        
60407        Fixed <rdar://problem/4608404> WebScriptObject's _executionContext lack 
60408        of ownership policy causes crashes (e.g., in Dashcode)
60409
60410        Added RootObject ref-counting goodness.
60411
60412        * page/mac/FrameMac.h:
60413        * page/mac/FrameMac.mm:
60414        (WebCore::FrameMac::cleanupPluginObjects): Invalidate our RootObjects 
60415        instead of detroying them. Track _bindingRootObject separately from the
60416        rest of our RootObjects, since it has its own variable.
60417
60418        * page/mac/WebCoreFrameBridge.mm:
60419        (createRootObject): Use the Frame's new, more encapsulated function to
60420        create a RootObject.
60421
60422        * bindings/objc/WebScriptObject.mm: Nixed rootObject setters, since they
60423        were unused and they complicated reference-counting.
60424
604252007-01-26  David Kilzer  <ddkilzer@webkit.org>
60426
60427        Reviewed by Eric.
60428
60429        Release build fix.
60430
60431        * ksvg2/svg/SVGAnimationElement.cpp:
60432        (WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast): Added static cast
60433        to unsigned when calculating flooredValueIndex.
60434
604352007-01-26  Darin Adler  <darin@apple.com>
60436
60437        - checked in slightly newer revision of the patch below
60438
60439        * css/CSSComputedStyleDeclaration.cpp:
60440        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
60441        Grouped all the unimplemented values at the bottom. Fixed the ifdef for
60442        CSS_PROP__WEBKIT_DASHBOARD_REGION so that it compiles on all platforms.
60443
60444        * css/cssparser.cpp: (WebCore::CSSParser::parseValue): Removed default
60445        case and added type so that the compiler warns about missing properties.
60446        * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::applyProperty): Ditto.
60447
604482007-01-26  Darin Adler  <darin@apple.com>
60449
60450        Reviewed by Beth.
60451
60452        - fix http://bugs.webkit.org/show_bug.cgi?id=12412
60453          "unimplemented propertyID: 46" seen at dojotoolkit.org
60454
60455        Covered by fast/css/computed-style.html
60456
60457        * css/CSSPropertyNames.in: Sorted the file into two separate sections, one
60458        for properties without the -webkit- prefix and another for properties with.
60459
60460        * css/makeprop: Generate a CSSPropertyID enum instead of a set of #defines.
60461        Removed unused CSS_PROP_MIN and CSS_PROP_MAX. Renamed CSS_PROP_TOTAL to
60462        numCSSProperties and changed it to a const int instead of #define.
60463        Added a declaration of getPropertyName in the header. Changed the return
60464        type of getPropertyName to const char* and the parameter type to CSSPropertyID.
60465
60466        * css/CSSComputedStyleDeclaration.cpp: Sort the lists of properties in
60467        an easier to maintain order -- properties without a WebKit prefix first.
60468        (WebCore::valueForLength): Changed return value to PassRefPtr.
60469        (WebCore::valueForMaxLength): Ditto.
60470        (WebCore::valueForBorderStyle): Ditto.
60471        (WebCore::valueForTextAlign): Ditto.
60472        (WebCore::valueForAppearance): Added.
60473        (WebCore::valueForMarginCollapse): Added.
60474        (WebCore::valueForShadow): Changed return value to PassRefPtr.
60475        (WebCore::getPositionOffsetValue): Ditto.
60476        (WebCore::currentColorOrValidColor): Ditto.
60477        (WebCore::CSSComputedStyleDeclaration::cssText): Added cast since
60478        getPropertyName now takes an enum value.
60479        (WebCore::primitiveValueFromLength): Changed return value to PassRefPtr.
60480        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
60481        Added cast to CSSPropertyID so that gcc will detect missing enums in the
60482        switch statement. Simplified the background-size and border-spacing
60483        implementations so they don't have local variables. Added lots of cases
60484        to the switch statement for unimplemented properties. Implemented the
60485        outline-width, box-sizing, -webkit-appearance, -webkit-rtl-ordering,
60486        -webkit-user-drag, and -webkit-user-select properties.
60487        (WebCore::CSSComputedStyleDeclaration::item): Added cast since
60488        getPropertyName now takes an enum value.
60489
60490        * css/CSSMutableStyleDeclaration.cpp: Removed declaration of getPropertyName.
60491        (WebCore::CSSMutableStyleDeclaration::item): Added cast since
60492        getPropertyName now takes an enum value.
60493
60494        * css/CSSProperty.cpp: Removed declaration of getPropertyName.
60495        (WebCore::CSSProperty::cssText): Added cast since
60496        getPropertyName now takes an enum value and returns a const char*.
60497
60498        * css/CSSStyleDeclaration.cpp: Removed declaration of getPropertyName.
60499        (WebCore::CSSStyleDeclaration::getPropertyShorthand): Added cast since
60500        getPropertyName now takes an enum value and returns a const char*.
60501
605022007-01-26  Alice Liu  <alice.liu@apple.com>
60503
60504        Reviewed by Brady.
60505
60506        Fixed <rdar://problem/4838076> CrashTracer: 10 crashes in Mail at com.apple.WebCore: WTF::HashMap<WebCore::String
60507
60508        * loader/DocLoader.cpp:
60509        (WebCore::DocLoader::requestResource):
60510        Added nil check around resource from cache.
60511
605122007-01-26  Adam Roben  <aroben@apple.com>
60513
60514        Reviewed by Oliver.
60515
60516        Build fix.
60517
60518        * ksvg2/svg/SVGAnimationElement.cpp:
60519        (WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
60520        Keep index variables as unsigned until we need to convert to float.
60521
605222007-01-26  Alice Liu  <alice.liu@apple.com>
60523
60524        Reviewed by Ada.
60525
60526        Fixed <rdar://problem/4919097> REGRESSION: Ctrl-Y fails to yank (11076)
60527
60528        * editing/Editor.cpp:
60529        (WebCore::Editor::deleteWithDirection):
60530        If there's no selection, locally create a range that is to the end of the granularity unit and pass that to deleteRange(). 
60531
605322007-01-26  Sam Weinig  <sam@webkit.org>
60533
60534        Reviewed by Maciej.
60535
60536        Qt build fix.
60537
60538        * page/qt/EventHandlerQt.cpp:
60539
605402007-01-26  Matt Perry  <mpcomplete@chromium.org>
60541
60542        Reviewed by Hyatt.
60543
60544        Fix so that we only relayout frameset children on calls to layout.
60545
60546        * page/FrameView.cpp:
60547        (WebCore::FrameView::layout):
60548
605492007-01-26  Oliver Hunt  <oliver@apple.com>
60550
60551        Build Fix
60552
60553        * ksvg2/svg/ColorDistance.cpp:
60554        * ksvg2/svg/SVGAnimationElement.cpp:
60555        (WebCore::SVGAnimationElement::handleTimerEvent):
60556
605572007-01-26  Eric Seidel  <eric@webkit.org>
60558
60559        Reviewed by olliej.
60560
60561        Add support for calcMode, keyTimes and (nearly) keySplines.
60562        http://bugs.webkit.org/show_bug.cgi?id=12350
60563        Re-architect much of the animation system to remove huge sections of code.
60564        Added new ColorDistance, SVGTransformDistance to simplify animateColor, animateTransform calculations.
60565        I also added basic <animateMotion> support since it was so easy w/ the new architecture.
60566        
60567        Adding manual animation tests until bug 12074 is fixed.
60568
60569        * WebCore.xcodeproj/project.pbxproj:
60570        * ksvg2/misc/SVGTimer.cpp:
60571        (WebCore::SVGTimer::applyAnimations):
60572        * ksvg2/svg/ColorDistance.cpp: Added.
60573        (WebCore::ColorDistance::ColorDistance):
60574        (WebCore::clampColorValue):
60575        (WebCore::ColorDistance::scaledDistance):
60576        (WebCore::ColorDistance::addColorsAndClamp):
60577        (WebCore::ColorDistance::addToColorAndClamp):
60578        (WebCore::ColorDistance::isZero):
60579        (WebCore::ColorDistance::distance):
60580        * ksvg2/svg/ColorDistance.h: Added.
60581        * ksvg2/svg/SVGAnimateColorElement.cpp:
60582        (WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
60583        (WebCore::SVGAnimateColorElement::updateAnimationBaseValueFromElement):
60584        (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
60585        (WebCore::SVGAnimateColorElement::updateAnimatedValue):
60586        (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
60587        * ksvg2/svg/SVGAnimateColorElement.h:
60588        (WebCore::SVGAnimateColorElement::contextElement):
60589        * ksvg2/svg/SVGAnimateElement.h:
60590        (WebCore::SVGAnimateElement::updateAnimatedValue):
60591        (WebCore::SVGAnimateElement::calculateFromAndToValues):
60592        * ksvg2/svg/SVGAnimateMotionElement.cpp:
60593        (WebCore::SVGAnimateMotionElement::hasValidTarget):
60594        (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
60595        (WebCore::parsePoint):
60596        (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
60597        (WebCore::SVGAnimateMotionElement::updateAnimationBaseValueFromElement):
60598        (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
60599        * ksvg2/svg/SVGAnimateMotionElement.h:
60600        * ksvg2/svg/SVGAnimateTransformElement.cpp:
60601        (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
60602        (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
60603        (WebCore::SVGAnimateTransformElement::updateAnimationBaseValueFromElement):
60604        (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
60605        (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
60606        (WebCore::SVGAnimateTransformElement::parseTransformValue):
60607        * ksvg2/svg/SVGAnimateTransformElement.h:
60608        (WebCore::SVGAnimateTransformElement::contextElement):
60609        * ksvg2/svg/SVGAnimationElement.cpp:
60610        (WebCore::SVGAnimationElement::parseKeyNumbers):
60611        (WebCore::parseValues):
60612        (WebCore::parseKeySplines):
60613        (WebCore::SVGAnimationElement::parseMappedAttribute):
60614        (WebCore::SVGAnimationElement::targetAttributeAnimatedValue):
60615        (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
60616        (WebCore::SVGAnimationElement::detectAnimationMode):
60617        (WebCore::adjustPercentagePastForKeySplines):
60618        (WebCore::SVGAnimationElement::valueIndexAndPercentagePastForDistance):
60619        (WebCore::SVGAnimationElement::calculateTotalDistance):
60620        (WebCore::caculateValueIndexForKeyTimes):
60621        (WebCore::SVGAnimationElement::isValidAnimation):
60622        (WebCore::SVGAnimationElement::calculateValueIndexAndPercentagePast):
60623        (WebCore::SVGAnimationElement::updateAnimationBaseValueFromElement):
60624        (WebCore::SVGAnimationElement::applyAnimatedValueToElement):
60625        (WebCore::SVGAnimationElement::handleTimerEvent):
60626        (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
60627        * ksvg2/svg/SVGAnimationElement.h:
60628        * ksvg2/svg/SVGParserUtilities.cpp:
60629        (WebCore::SVGPolyParser::parsePoints):
60630        * ksvg2/svg/SVGParserUtilities.h:
60631        * ksvg2/svg/SVGSetElement.cpp:
60632        * ksvg2/svg/SVGSetElement.h:
60633        (WebCore::SVGSetElement::updateAnimatedValue):
60634        (WebCore::SVGSetElement::calculateFromAndToValues):
60635        * ksvg2/svg/SVGTransform.cpp:
60636        (SVGTransform::type):
60637        (SVGTransform::translate):
60638        (SVGTransform::scale):
60639        (SVGTransform::setSkewX):
60640        (SVGTransform::setSkewY):
60641        * ksvg2/svg/SVGTransform.h:
60642        (WebCore::operator==):
60643        (WebCore::operator!=):
60644        * ksvg2/svg/SVGTransformDistance.cpp: Added.
60645        (WebCore::SVGTransformDistance::SVGTransformDistance):
60646        (WebCore::SVGTransformDistance::scaledDistance):
60647        (WebCore::SVGTransformDistance::addSVGTransforms):
60648        (WebCore::SVGTransformDistance::addSVGTransform):
60649        (WebCore::SVGTransformDistance::addToSVGTransform):
60650        (WebCore::SVGTransformDistance::isZero):
60651        (WebCore::SVGTransformDistance::distance):
60652        * ksvg2/svg/SVGTransformDistance.h: Added.
60653        * ksvg2/svg/SVGTransformList.cpp:
60654        (SVGTransformList::concatenateForType):
60655        * ksvg2/svg/SVGTransformList.h:
60656        * manual-tests/animation/animateColor-by.svg: Added.
60657        * manual-tests/animation/animateColor-from-by.svg: Added.
60658        * manual-tests/animation/animateColor-repeat-indefinite.svg: Added.
60659        * manual-tests/animation/animateColor-to-from.svg: Added.
60660        * manual-tests/animation/animateColor-to.svg: Added.
60661        * manual-tests/animation/animateColor-values-simple.svg: Added.
60662        * manual-tests/animation/animateMotion-to.svg: Added.
60663        * manual-tests/animation/animateTransform-keyTimes.svg: Added.
60664        * manual-tests/animation/animateTransform-repeat-once.svg: Added.
60665
606662007-01-26  Beth Dakin  <bdakin@apple.com>
60667
60668        Reviewed by Darin.
60669
60670        Fix for <rdar://problem/4956565> REGRESSION: After scrolling frame, 
60671        hovering over link in this frame doesn't change cursor to pointing 
60672        hand
60673
60674        The mouseMove event was not being propagated correctly after using 
60675        the mouse to scroll the frame because m_mousePressed was never 
60676        getting set to false.
60677
60678        * page/EventHandler.cpp:
60679        (WebCore::EventHandler::handleMousePressEvent): This code does not 
60680        belong here.
60681        * page/EventHandler.h: lastEventIsMouseUp() is only ever relevant 
60682        in EventHandlerMac, so it can just be a static function there.
60683        * page/mac/EventHandlerMac.mm:
60684        (WebCore::lastEventIsMouseUp): Make this static.
60685        (WebCore::EventHandler::passMouseDownEventToWidget): Here is where 
60686        we need to set m_mousePressed to false if lastEventIsMouseUp() is 
60687        true.
60688
606892007-01-26  David Hyatt  <hyatt@apple.com>
60690
60691        Fix for style regression caused by strictness checking of the number of properties.  This caused code like:
60692        "width: 20 px" to fail, because we interpreted it as two values and rejected it.  Our old code allowed 20 to be
60693        used like a pixel value and then ignored the orphaned unit.
60694
60695        This patch actually scans the list of values looking for orphaned units and reattaches them to the numeric
60696        values that they should correspond to.  This means rules like "width: 5 em" will now work in quirks mdoe and
60697        the "em" unit type will be honored.
60698
60699        Reviewed by beth
60700
60701        * WebCore.xcodeproj/project.pbxproj:
60702        * css/cssparser.cpp:
60703        (WebCore::unitFromString):
60704        (WebCore::CSSParser::checkForOrphanedUnits):
60705        (WebCore::CSSParser::parseValue):
60706        * css/cssparser.h:
60707        (WebCore::ValueList::valueAt):
60708        (WebCore::ValueList::deleteValueAt):
60709
607102007-01-26  George Staikos  <staikos@kde.org>
60711
60712        Reviewed by Zack.
60713
60714        Qt implementation.
60715
60716        * WebCore.pro:
60717        * platform/qt/FontPlatformDataQt.cpp:
60718        (WebCore::FontPlatformData::FontPlatformData):
60719        * platform/qt/ScrollViewQt.cpp:
60720        (WebCore::ScrollView::scrollbarUnderMouse):
60721
607222007-01-26  Brady Eidson  <beidson@apple.com>
60723
60724        Reviewed by Anders' rubberstamp
60725        
60726        Warning about unreferenced formal parameter caused compile to fail
60727
60728        * platform/cf/RetainPtr.h:
60729        (WebCore::adoptCFReference):
60730
607312007-01-26  Darin Adler  <darin@apple.com>
60732
60733        Reviewed by Brady.
60734
60735        - fix <rdar://problem/4956688> move Mac-specific part of icon code into IconMac
60736        - fix a GC-compatibility problem in the icon code I noticed by code inspection
60737
60738        * platform/FileChooser.cpp: (WebCore::FileChooser::chooseIcon): Removed Mac-specific
60739        path check -- that's in newIconForFile now.
60740
60741        * platform/graphics/Icon.h: Changed the image to be a RetainPtr. The old code was
60742        using -[NSObject retain] which is not good enough for a pointer in a C++ object.
60743        * platform/graphics/mac/IconMac.mm:
60744        (WebCore::Icon::Icon): Got rid of unneeded code to do what RetainPtr does for us.
60745        (WebCore::Icon::~Icon): Ditto.
60746        (WebCore::Icon::newIconForFile): Added check for non-absolute file names. Updated
60747        for use of RetainPtr. Use constructor that takes NSImage.
60748        (WebCore::Icon::paint): Add get() calls needed now that we are using a RetainPtr.
60749
60750        * WebCore.xcodeproj/project.pbxproj: Let Xcode do its thing.
60751
607522007-01-26  Alexey Proskuryakov  <ap@webkit.org>
60753
60754        Reviewed by Maciej.
60755
60756        http://bugs.webkit.org/show_bug.cgi?id=12385
60757        Assertion failure when loading subresources from "data:" frames
60758
60759        Test: fast/loader/opaque-base-url.html
60760
60761        * platform/KURL.cpp:
60762        (WebCore::KURL::init): Make the URL invalid if it's relative, but has an opaque or empty base.
60763
607642007-01-26  Matt Perry  <mpcomplete@chromium.org>
60765
60766        Reviewed by Darin.
60767
60768        * page/EventHandler.cpp:
60769        (WebCore::EventHandler::handleMouseMoveEvent):
60770        Removed a call to invalidateClick(), since we don't want to cancel a
60771        click if the mouse moves.
60772
607732007-01-26  Darin Adler  <darin@apple.com>
60774
60775        * css/MediaQueryEvaluator.cpp:
60776        (WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific):
60777        Oops, forgot a !.
60778
607792007-01-26  Darin Adler  <darin@apple.com>
60780
60781        Patch by Nate Begeman.
60782        Reviewed by Darin and Maciej.
60783
60784        - <rdar://problem/4946877> Avoid unnecessary allocations in CSS, patch attached (12401)
60785          http://bugs.webkit.org/show_bug.cgi?id=12401
60786
60787        * css/MediaQueryEvaluator.h: Add mediaTypeMatchSpecific, a function that
60788        takes a char* to avoid creating and destroying a String for simple media
60789        type queries.
60790        * css/MediaQueryEvaluator.cpp:
60791        (WebCore::MediaQueryEvaluator::mediaTypeMatchSpecific): Added. Besides
60792        avoiding the conversion to String, this also doesn't have the special
60793        case code to handle "" and "all".
60794
60795        * css/cssstyleselector.cpp: (WebCore::CSSStyleSelector::matchUARules):
60796        Call mediaTypeMatchSpecific here when deciding whether to use the
60797        print version of the user agent style sheet.
60798
60799        * loader/Cache.cpp: (WebCore::Cache::requestResource): Don't convert to
60800        a string and back to a KURL when calling createResource. Avoids reparsing
60801        the URL string.
60802
608032007-01-26  Zack Rusin  <zrusin@trolltech.com>
60804
60805        Reviewed by Lars
60806
60807        Add history related classes to the project file.
60808
60809        * WebCore.pro:
60810
608112007-01-26  Zack Rusin  <zack@kde.org>
60812
60813        Reviewed by Lars
60814
60815        Introduce PlatformScrollBar and try to make 
60816        the scrollbar behavior a little more sane.
60817
60818        * WebCore.pro:
60819        * platform/qt/PlatformScrollBarQt.cpp: Added.
60820        (WebCore::Scrollbar::Scrollbar):
60821        (WebCore::Scrollbar::setSteps):
60822        (WebCore::Scrollbar::scroll):
60823        (WebCore::Scrollbar::setValue):
60824        (WebCore::Scrollbar::setProportion):
60825        (WebCore::PlatformScrollbar::PlatformScrollbar):
60826        (WebCore::PlatformScrollbar::~PlatformScrollbar):
60827        (WebCore::PlatformScrollbar::width):
60828        (WebCore::PlatformScrollbar::height):
60829        (WebCore::PlatformScrollbar::setEnabled):
60830        (WebCore::PlatformScrollbar::paint):
60831        (WebCore::PlatformScrollbar::updateThumbPosition):
60832        (WebCore::PlatformScrollbar::updateThumbProportion):
60833        (WebCore::PlatformScrollbar::setRect):
60834        * platform/qt/ScrollViewQt.cpp:
60835        (WebCore::ScrollView::addChild):
60836        * platform/qt/TemporaryLinkStubs.cpp:
60837        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
60838
608392007-01-26  Mitz Pettel  <mitz@webkit.org>
60840
60841        Reviewed by Darin.
60842
60843        - fix http://bugs.webkit.org/show_bug.cgi?id=11109
60844          REGRESSION (r15471): menus are offset on eink.com
60845          <rdar://problem/4824760>
60846
60847        Changed offset{Left,Top} to match Firefox. If the body element is statically
60848        positioned, it is still returned as the offsetParent of elements whose containing
60849        block is the initial containing block (the root), but their offset{Left,Top} are
60850        relative to the root. If the body element is positioned, then offsets are relative
60851        to it. The body's own offset{Left,Top} are always 0. 
60852
60853        Test: fast/dom/Element/offsetLeft-offsetTop-body-quirk.html
60854
60855        * rendering/RenderObject.cpp:
60856        (WebCore::RenderObject::offsetLeft):
60857        (WebCore::RenderObject::offsetTop):
60858
608592007-01-26  Mitz Pettel  <mitz@webkit.org>
60860
60861        Reviewed by Darin and Maciej.
60862
60863        - fix http://bugs.webkit.org/show_bug.cgi?id=10983
60864          REGRESSION (r12290): Drop shadow of flickr photo note is positioned incorrectly the second time it's shown
60865
60866        Test: fast/dynamic/staticY.html
60867
60868        * rendering/RenderBlock.cpp:
60869        (WebCore::RenderBlock::layoutPositionedObjects): Avoid marking the object's
60870        parents, since they have already been laid out.
60871        * rendering/RenderBox.cpp:
60872        (WebCore::RenderBox::setStaticY): Added a call to setChildNeedsLayout() to
60873        ensure relayout by this box's container (third and fourth cases in the
60874        layout test).
60875        * rendering/RenderBox.h:
60876        * rendering/RenderObject.cpp:
60877        (WebCore::RenderObject::markContainingBlocksForLayout): For positioned objects
60878        with static y, also mark the object's parent to ensure that it recomputes
60879        the static y value (first case in the layout test).
60880
608812007-01-26  Lars Knoll <lars@trolltech.com>
60882
60883        Reviewed by Zack
60884
60885        Get rid of FrameQtClient. It's unused since we moved over
60886        to the loader.
60887
60888        * WebCore.pro:
60889        * page/qt/FrameQt.cpp:
60890        (WebCore::FrameQt::FrameQt):
60891        * page/qt/FrameQt.h:
60892        * page/qt/FrameQtClient.cpp: Removed.
60893        * page/qt/FrameQtClient.h: Removed.
60894        * platform/network/ResourceHandleInternal.h:
60895        * platform/network/qt/ResourceHandleManagerQt.cpp:
60896        (WebCore::RequestQt::RequestQt):
60897        (WebCore::ResourceHandleManager::add):
60898        * platform/network/qt/ResourceHandleManagerQt.h:
60899        * platform/network/qt/ResourceHandleQt.cpp:
60900        (WebCore::ResourceHandle::start):
60901
609022007-01-26  Zack Rusin  <zack@kde.org>
60903
60904        Fix the compile
60905
60906        * WebCore.pro:
60907
609082007-01-26  Adam Roben  <aroben@apple.com>
60909
60910        Reviewed by Maciej.
60911
60912        Fixed <rdar://problem/4946499>, which made it impossible to tab
60913        forward into the left frame of tivofaq.com after tabbing out of the
60914        document.
60915
60916        * page/FocusController.cpp:
60917        (WebCore::FocusController::advanceFocus): Clear the focused frame
60918        before passing off focus to Chrome so that when we re-enter the
60919        document we start at the main frame instead of the last focused frame.
60920
609212007-01-25  Rob Buis  <buis@kde.org>
60922
60923        Reviewed by olliej.
60924
60925        http://bugs.webkit.org/show_bug.cgi?id=11911
60926        SVG exhibits double-text-selection behavior
60927
60928        Fix selection height of the inline text boxes for svg.
60929
60930        * WebCore.xcodeproj/project.pbxproj:
60931        * rendering/InlineTextBox.cpp:
60932        (WebCore::InlineTextBox::selectionTop):
60933        (WebCore::InlineTextBox::selectionHeight):
60934        (WebCore::InlineTextBox::selectionRect):
60935        (WebCore::InlineTextBox::paintSelection):
60936        (WebCore::InlineTextBox::paintMarkedTextBackground):
60937        (WebCore::InlineTextBox::paintCustomHighlight):
60938        (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
60939        (WebCore::InlineTextBox::paintTextMatchMarker):
60940        * rendering/InlineTextBox.h:
60941        * rendering/RenderSVGInlineText.cpp:
60942        (WebCore::RenderSVGInlineText::createInlineTextBox):
60943        * rendering/RenderSVGInlineText.h:
60944        * rendering/RenderText.cpp:
60945        (WebCore::RenderText::createInlineTextBox):
60946        (WebCore::RenderText::createInlineBox):
60947        * rendering/RenderText.h:
60948        * rendering/SVGInlineTextBox.cpp: Added.
60949        (WebCore::SVGInlineTextBox::selectionTop):
60950        (WebCore::SVGInlineTextBox::selectionHeight):
60951        * rendering/SVGInlineTextBox.h: Added.
60952        (WebCore::SVGInlineTextBox::SVGInlineTextBox):
60953
609542007-01-26  Zack Rusin  <zack@kde.org>
60955
60956        Reviewed by Lars
60957
60958        Fix drawing of tiled images.
60959
60960        * WebCore.pro:
60961        * platform/graphics/qt/ImageQt.cpp:
60962        (WebCore::BitmapImage::drawPattern):
60963
609642007-01-26  Zack Rusin  <zack@kde.org>
60965
60966        Reviewed by Lars
60967
60968        Fixing image loading - we decode QImages
60969        but render QPixmaps now. Implement Icon
60970        class
60971
60972        * platform/graphics/BitmapImage.h:
60973        * platform/graphics/Icon.h:
60974        * platform/graphics/Image.h:
60975        (WebCore::Image::getPixmap):
60976        * platform/graphics/qt/IconQt.cpp:
60977        (WebCore::Icon::Icon):
60978        (WebCore::Icon::~Icon):
60979        (WebCore::Icon::newIconForFile):
60980        (WebCore::Icon::paint):
60981        * platform/graphics/qt/ImageDecoderQt.cpp:
60982        (WebCore::ImageDecoderQt::ImageData::ImageData):
60983        (WebCore::ImageDecoderQt::ReadContext::read):
60984        (WebCore::ImageDecoderQt::ReadContext::readImageLines):
60985        (WebCore::ImageDecoderQt::reset):
60986        (WebCore::ImageDecoderQt::imageAtIndex):
60987        * platform/graphics/qt/ImageDecoderQt.h:
60988        * platform/graphics/qt/ImageQt.cpp:
60989        (WebCore::BitmapImage::drawPattern):
60990        (WebCore::BitmapImage::getPixmap):
60991        * platform/graphics/qt/ImageSourceQt.cpp:
60992        (WebCore::ImageSource::createFrameAtIndex):
60993
609942007-01-25  Justin Garcia  <justin.garcia@apple.com>
60995
60996        Reviewed by oliver
60997        
60998        <http://bugs.webkit.org/show_bug.cgi?id=12409>
60999        REGRESSION (r19039): Drag caret isn't cleared after a drop
61000
61001        No new layout tests because the regression was
61002        caught by current layout tests.
61003
61004        * page/DragController.cpp:
61005        (WebCore::DragController::concludeDrag): Clear the drag caret.
61006
610072007-01-25  Darin Adler  <darin@apple.com>
61008
61009        Reviewed and landed by Geoffrey Garen.
61010
61011        - fix http://bugs.webkit.org/show_bug.cgi?id=12342
61012          REGRESSION: destroying a frame from its own script causes various crashes
61013
61014        * bindings/js/kjs_window.cpp: (KJS::ScheduledAction::execute):
61015        Use RefPtr for the frame and the interpreter object so they don't get deleted
61016        out from underneath us.
61017
61018        * bindings/js/kjs_proxy.cpp: (WebCore::KJSProxy::evaluate):
61019        Add a check for a page of 0. This was the only call site for the
61020        addMessageToConsole function that did not have a check for a page of 0.
61021
610222007-01-25 Dirk Mueller  <mueller@kde.org>
61023
61024        Reviewed and merged by Beth.
61025
61026        Fix for <rdar://problem/4921692> not processing comments inside a 
61027        title element leads to XSS (for at least BlogSpot)
61028
61029        This is equivalent to commit 626791 in the KDE tree. Basically, the 
61030        patch allows comment parsing in titles to avoid capturing a 
61031        <script> tag by accident.
61032
61033        * html/HTMLTokenizer.cpp:
61034        (WebCore::HTMLTokenizer::parseSpecial):
61035        (WebCore::HTMLTokenizer::parseComment):
61036
610372007-01-25  Darin Adler  <darin@apple.com>
61038
61039        * ksvg2/svg/SVGPreserveAspectRatio.cpp: Add a couple of comments.
61040
610412007-01-25  Darin Adler  <darin@apple.com>
61042
61043        Reviewed by Maciej.
61044
61045        - fix http://bugs.webkit.org/show_bug.cgi?id=12365
61046          Reproducible crash in WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio
61047          in svg/W3C-SVG-1.1/animate-elem-40-t.svg under guard malloc
61048        - fix bug where the parser accepts "meet" or "slice" as an entire string
61049        - fix bug where "slice" is ignored if the old alignment was "none"
61050          even if the newly-parsed alignment is something other than "none", and
61051          "slice" is not ignored if the old alignment was not "none", but the
61052          newly-parsed alignment is "none"
61053        - optimize to only call notifyAttributeChange if the attribute actually changed
61054
61055        Test: svg/dom/preserve-aspect-ratio-parser-test.html
61056
61057        * ksvg2/svg/SVGPreserveAspectRatio.cpp:
61058        (WebCore::checkString): Added an overload for using char* constants which is
61059        much simpler than the old one, and almost as fast.
61060        (WebCore::SVGPreserveAspectRatio::parsePreserveAspectRatio): Fail if there's no
61061        more text after "defer". Fail if there's neither "none" nor an x/y specified.
61062        Check that there's more text before looking at the "m" and "s" for "meet" and
61063        "slice". Merged the failure and success cases. Only call notifyAttributeChange
61064        if something changed.
61065
61066        I think all the "optimized" code where we check the first character before
61067        calling checkString isn't really helpful, but I decided to leave it as-is
61068        for now.
61069
610702007-01-25  Lars Knoll <lars@trolltech.com>
61071
61072        Reviewed by Zack
61073
61074        Trivial implementation of getMIMETypeForExtension.
61075        Use the above method in the ResourceHandleManager to set
61076        a mimetype on Resources that don't have one set (which
61077        includes everything loaded from local disk).
61078
61079        Should fix quite a few test cases :)
61080
61081        * platform/network/qt/ResourceHandleManagerQt.cpp:
61082        (WebCore::ResourceHandleManager::receivedResponse):
61083        * platform/qt/MimeTypeRegistryQt.cpp:
61084        (WebCore::):
61085        (WebCore::MimeTypeRegistry::getMIMETypeForExtension):
61086
610872007-01-25 Harald Fernengel <harald@trolltech.com>
61088
61089        Reviewed by zack
61090
61091        Compile on platforms where qreal is not a double.
61092
61093        * platform/graphics/qt/AffineTransformQt.cpp:
61094        (WebCore::AffineTransform::map):
61095
610962007-01-25  Zack Rusin  <zack@kde.org>
61097
61098        Reviewed by Lars.
61099
61100        Add wheel event handling and make explicit usage
61101        of the EventHandler.
61102
61103        * WebCore.pro:
61104        * page/qt/EventHandlerQt.cpp:
61105        (WebCore::EventHandler::focusDocumentView):
61106        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
61107        (WebCore::EventHandler::passMouseDownEventToWidget):
61108        (WebCore::EventHandler::lastEventIsMouseUp):
61109        (WebCore::EventHandler::handleMouseUp):
61110        * platform/PlatformWheelEvent.h:
61111        * platform/qt/ScrollViewCanvasQt.cpp:
61112        (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
61113        (WebCore::ScrollViewCanvasQt::mousePressEvent):
61114        (WebCore::ScrollViewCanvasQt::wheelEvent):
61115        (WebCore::ScrollViewCanvasQt::dragEnterEvent):
61116        (WebCore::ScrollViewCanvasQt::dragLeaveEvent):
61117        (WebCore::ScrollViewCanvasQt::dragMoveEvent):
61118        * platform/qt/ScrollViewCanvasQt.h:
61119        * platform/qt/ScrollViewQt.cpp:
61120        (WebCore::ScrollView::wheelEvent):
61121        * platform/qt/WheelEventQt.cpp: Added.
61122        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
61123
611242007-01-25  Rob Buis  <buis@kde.org>
61125
61126        Reviewed by Maciej.
61127
61128        http://bugs.webkit.org/show_bug.cgi?id=12391
61129        SVG containers with viewports should respect overflow when hit testing
61130
61131        Take into account the overflow property when hit testing <svg>.
61132
61133        * rendering/RenderSVGContainer.cpp:
61134        (WebCore::RenderSVGContainer::nodeAtPoint):
61135
611362007-01-23  Alice Liu  <alice.liu@apple.com>
61137
61138        Reviewed by Maciej.
61139
61140        fixed <rdar://problem/4808039> REGRESSION: eBay ID check never completes
61141        Also known as http://bugs.webkit.org/show_bug.cgi?id=11230
61142
61143        * bindings/js/kjs_window.cpp:
61144        It's not necessary to check safeScript when doing a location.replace, .reload, or .assign
61145        (KJS::Location::getOwnPropertySlot):
61146        (KJS::LocationFunc::callAsFunction):
61147
611482007-01-25  Alice Liu  <alice.liu@apple.com>
61149
61150        Reviewed by Geoff and Adele.
61151
61152        fixed <rdar://problem/4866655> REGRESSION: Copying out of Calculator & CIFIlterWidget is broken on 9A320
61153
61154        * editing/Editor.cpp:
61155        (WebCore::Editor::canDHTMLCut):
61156        (WebCore::Editor::canDHTMLCopy):
61157        (WebCore::Editor::tryDHTMLCopy):
61158        (WebCore::Editor::tryDHTMLCut):
61159        Reverting some mistakes made in r17504:
61160        Anything in r17503 that used to call mayDHTML* still calls canDHTML* as it was changed in r17504, where canDHTML* now calls !selectionController::isInPasswordField instead of editor::canCopy
61161        Anything else in r17503 that used to call mayCopy now calls (!)selectionController::isInPasswordField.
61162
61163        * editing/JSEditor.cpp:
61164        copy via JS should be enabled as long as selection is not in a password field.  a range selection shouldn't be required. 
61165
611662007-01-24  Adele Peterson  <adele@apple.com>
61167
61168        Reviewed by Brady and Oliver.
61169
61170        Fix for <rdar://problem/4953504> When the keydown event changes focus, the keypress event should go to the new focused node
61171
61172        Test: fast/events/keydown-keypress-focus-change.html
61173
61174        * page/EventHandler.cpp:
61175        (WebCore::eventTargetNodeForDocument): Added for convenience.
61176        (WebCore::EventHandler::keyEvent): Moved from EventHandlerMac.mm.  After dispatching the keyDown event,
61177         recheck the target node for the keyPress event in case its changed.
61178        * page/EventHandler.h:
61179        * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::keyEvent):
61180          Moved the bulk of this code to EventHandler.cpp.
61181
611822007-01-24  Geoffrey Garen  <ggaren@apple.com>
61183
61184        New forwarding header. No review necessary.
61185
61186        * ForwardingHeaders/kjs/ustring.h: Added.
61187
611882007-01-24  Oliver Hunt  <oliver@apple.com>
61189
61190        Reviewed by Maciej.
61191
61192        Migrating more drag state information to WebCore
61193
61194        * page/DragController.cpp:
61195        * page/DragController.h:
61196        (WebCore::DragController::dragOperation):
61197        (WebCore::DragController::setDraggingImageURL):
61198        (WebCore::DragController::draggingImageURL):
61199        (WebCore::DragController::setDragOffset):
61200        (WebCore::DragController::dragOffset):
61201
612022007-01-24  Darin Adler  <darin@apple.com>
61203
61204        Reviewed by Adele.
61205
61206        - fix http://bugs.webkit.org/show_bug.cgi?id=12331
61207          REGRESSION(r18951): Selecting text in a textarea makes the page scroll
61208
61209        Test: fast/events/autoscroll.html
61210
61211        * rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll):
61212        Adjust position to be relative to the object's corner for the hit test, but not for the
61213        scrollRectToVisible call. The previous version accidentally re-used the version that was
61214        adjusted for the hit test.
61215
612162007-01-24  Beth Dakin  <bdakin@apple.com>
61217
61218        Reviewed by Geoff.
61219
61220        Fix for <rdar://problem/4948128> REGRESSION: A crash occurs at 
61221        WebCore::Frame::view() after completing a query at mapquest.com 
61222        then switching to Bookmarks view
61223
61224        This is just a null-check. If you are in strict mode and ask for 
61225        the clientWidth or clientHeight after the document was removed from 
61226        it's parent, we no longer have a frameView, so we have to null-
61227        check it. I added null checks for the FrameView in some other 
61228        places where it seems like we could potentially run into this 
61229        issue.
61230
61231        * bindings/objc/DOMHTML.mm:
61232        (-[DOMHTMLInputElement _rectOnScreen]):
61233        * bridge/mac/WebCoreAXObject.mm:
61234        (-[WebCoreAXObject accessibilityAttributeValue:]):
61235        * dom/ContainerNode.cpp:
61236        (WebCore::ContainerNode::getUpperLeftCorner):
61237        * dom/Element.cpp:
61238        (WebCore::Element::clientWidth): Actual bug fix here!
61239        (WebCore::Element::clientHeight): And here!
61240        * ksvg2/svg/SVGLength.cpp:
61241        (WebCore::SVGLength::PercentageOfViewport):
61242        * loader/FrameLoader.cpp:
61243        (WebCore::FrameLoader::createJavaAppletWidget):
61244        * page/mac/WebCoreFrameBridge.mm:
61245        (-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
61246        * rendering/RenderLayer.cpp:
61247        (WebCore::RenderLayer::windowClipRect):
61248        (WebCore::RenderLayer::updateOverflowStatus):
61249        (WebCore::frameVisibleRect):
61250        * rendering/RenderListBox.cpp:
61251        (WebCore::RenderListBox::windowClipRect):
61252        * rendering/RenderTable.cpp:
61253        (WebCore::RenderTable::layout):
61254
612552007-01-24  Maciej Stachowiak  <mjs@apple.com>
61256
61257        Not reviewed, just removing accidentally committed file.
61258
61259        - removed file that shouldn't be there
61260
61261        * Image Viewer/Image Viewer.aps: Removed.
61262
612632007-01-24  Anders Carlsson  <acarlsson@apple.com>
61264
61265        Reviewed by Geoff and Adam.
61266
61267        <rdar://problem/4922655>
61268        http://galeri.milliyet.com.tr/ reproducibly crashes Safari
61269        
61270        * loader/FrameLoader.cpp:
61271        (WebCore::FrameLoader::requestFrame):
61272        If the frame already exists, defer the navigation so that we won't end up replacing the document
61273        while we're parsing it. This is similar to what setting window.location ends up doing.
61274
612752007-01-25  Mark Rowe  <mrowe@apple.com>
61276
61277        Reviewed by Darin.
61278
61279        * Info.plist: Update copyright string.
61280
612812007-01-24  Justin Garcia  <justin.garcia@apple.com>
61282
61283        Reviewed by harrison
61284
61285        <rdar://problem/4916235>
61286        eBay Editor: Crash occurs at WebCore::Range::startPosition() after applying ordered list styling to selected text
61287        <rdar://problem/4857269>
61288        REGRESSION: editing/execCommand/create-list-from-range-selection.html no longer works as intended
61289        <rdar://problem/4916583>
61290        eBay Editor: Removing a indent from a list item actually deletes the list item instead
61291        <rdar://problem/4928635>
61292        designMode outdent causes crash (11750)
61293
61294        * editing/CompositeEditCommand.cpp:
61295        (WebCore::CompositeEditCommand::moveParagraphs): Fixed br insertion
61296        after the pruning of empty containers left over after the paragraph
61297        to move is removed.
61298        * editing/DeleteSelectionCommand.cpp:
61299        (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): There are
61300        bugs that leave the wrong number of line breaks after a deletion 
61301        that expands to include special elements (lists/tables).  Added 
61302        a workaround so that moveParagraphs can avoid these until they 
61303        are fixed.
61304        (WebCore::DeleteSelectionCommand::initializeStartEnd): Ditto.
61305        (WebCore::DeleteSelectionCommand::initializePositionData): Ditto.
61306        * editing/DeleteSelectionCommand.h:
61307        * editing/TextIterator.cpp:
61308        (WebCore::TextIterator::advance): We used to not call exitNode for
61309        ancestors of a node where the next node in a pre-order traversal is 
61310        the ranges's pastEndNode().  This is only correct for ancestors that
61311        contain the end of the range.
61312        (WebCore::shouldEmitNewlineAfterNode): Added, we should only emit newlines
61313        after blocks that have VisiblePositions after them.  VisiblePosition creation
61314        though is too expensive to do here, what I added here is an OK substitute.
61315        (WebCore::shouldEmitNewlineBeforeNode): Added.  No special logic yet.
61316        (WebCore::TextIterator::handleNonTextNode): Call shouldEmitNewlineBeforeNode.
61317        (WebCore::TextIterator::exitNode): Call shouldEmitNewlineAfterNode.
61318        (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Call
61319        shouldEmitNewlineAfterNode.
61320
613212007-01-24  Darin Adler  <darin@apple.com>
61322
61323        Reviewed by Mark Rowe.
61324
61325        * WebCore.xcodeproj/project.pbxproj: Changed to /usr/sbin/sysctl
61326        so we don't rely on people's paths.
61327
613282007-01-24  Darin Adler  <darin@apple.com>
61329
61330        Reviewed by Adele.
61331
61332        - a couple minor tweaks to recently-changed things
61333
61334        * dom/Document.h: Use HTMLHeadElement as type for the head function.
61335        * dom/Document.cpp: (WebCore::Document::head):
61336
61337        * ksvg2/svg/SVGElementInstance.cpp:
61338        (WebCore::SVGElementInstance::~SVGElementInstance): Change loop to
61339        a for loop and use a local variable for document.
61340
613412007-01-24  Oliver Hunt  <oliver@apple.com>
61342
61343        Reviewed by Adele.
61344
61345        Fixes DragController to allow a null target Document.
61346        This is encountered in new tabs/windows that have not 
61347        loaded any page
61348
61349        * page/DragController.cpp:
61350        (WebCore::documentAtPoint):
61351        (WebCore::DragController::tryDocumentDrag):
61352        (WebCore::DragController::operationForLoad):
61353        (WebCore::DragController::concludeDrag):
61354        * page/mac/DragControllerMac.mm:
61355        (WebCore::DragController::dragOperation):
61356
613572007-01-24  Sam Weinig  <sam@webkit.org>
61358
61359        Reviewed by Mitz.
61360
61361        Patch for http://bugs.webkit.org/show_bug.cgi?id=12394
61362        Cleanup RenderBox
61363
61364        No functionality changes, just a good old fashion cleanup,
61365        thus no tests.
61366
61367        * rendering/RenderBox.cpp:
61368        (WebCore::RenderBox::RenderBox):
61369        (WebCore::RenderBox::setStyle):
61370        (WebCore::RenderBox::destroy):
61371        (WebCore::RenderBox::setPos):
61372        (WebCore::RenderBox::calcBorderBoxWidth):
61373        (WebCore::RenderBox::calcBorderBoxHeight):
61374        (WebCore::RenderBox::calcContentBoxWidth):
61375        (WebCore::RenderBox::calcContentBoxHeight):
61376        (WebCore::RenderBox::nodeAtPoint):
61377        (WebCore::RenderBox::paintRootBoxDecorations):
61378        (WebCore::RenderBox::paintBoxDecorations):
61379        (WebCore::RenderBox::paintBackgrounds):
61380        (WebCore::RenderBox::paintBackground):
61381        (WebCore::cacluateBackgroundSize):
61382        (WebCore::RenderBox::paintBackgroundExtended):
61383        (WebCore::RenderBox::getOverflowClipRect):
61384        (WebCore::RenderBox::getClipRect):
61385        (WebCore::RenderBox::containingBlockWidth):
61386        (WebCore::RenderBox::absolutePosition):
61387        (WebCore::RenderBox::dirtyLineBoxes):
61388        (WebCore::RenderBox::position):
61389        (WebCore::RenderBox::getAbsoluteRepaintRect):
61390        (WebCore::RenderBox::computeAbsoluteRepaintRect):
61391        (WebCore::RenderBox::repaintDuringLayoutIfMoved):
61392        (WebCore::RenderBox::relativePositionOffsetX):
61393        (WebCore::RenderBox::relativePositionOffsetY):
61394        (WebCore::RenderBox::calcWidth):
61395        (WebCore::RenderBox::calcWidthUsing):
61396        (WebCore::RenderBox::sizesToIntrinsicWidth):
61397        (WebCore::RenderBox::calcHorizontalMargins):
61398        (WebCore::RenderBox::calcHeight):
61399        (WebCore::RenderBox::calcPercentageHeight):
61400        (WebCore::RenderBox::calcReplacedWidthUsing):
61401        (WebCore::RenderBox::calcReplacedHeightUsing):
61402        (WebCore::RenderBox::availableHeightUsing):
61403        (WebCore::RenderBox::calcVerticalMargins):
61404        (WebCore::RenderBox::containingBlockWidthForPositioned):
61405        (WebCore::RenderBox::calcAbsoluteHorizontal):
61406        (WebCore::RenderBox::calcAbsoluteHorizontalValues):
61407        (WebCore::RenderBox::calcAbsoluteVertical):
61408        (WebCore::RenderBox::calcAbsoluteVerticalValues):
61409        (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
61410        (WebCore::RenderBox::caretRect):
61411        * rendering/RenderBox.h:
61412        (WebCore::RenderBox::setOverrideSize):
61413        (WebCore::RenderBox::width):
61414        (WebCore::RenderBox::height):
61415        (WebCore::RenderBox::setWidth):
61416        (WebCore::RenderBox::setHeight):
61417        (WebCore::RenderBox::inlineBoxWrapper):
61418        (WebCore::RenderBox::setInlineBoxWrapper):
61419        (WebCore::RenderBox::stretchesToViewHeight):
61420        (WebCore::RenderBox::setStaticX):
61421        (WebCore::RenderBox::setStaticY):
61422
614232007-01-24  Eric Seidel  <eric@webkit.org>
61424
61425        Reviewed by ap.
61426
61427        Converted SVGTransform from being Shared<T> to a POD type.
61428
61429        No functional changes, thus no tests.
61430
61431        * bindings/scripts/CodeGenerator.pm:
61432        * bindings/scripts/CodeGeneratorJS.pm:
61433        * ksvg2/misc/SVGTimer.cpp:
61434        (WebCore::baseValueTransformList):
61435        * ksvg2/svg/SVGAnimateTransformElement.cpp:
61436        (WebCore::SVGAnimateTransformElement::storeInitialValue):
61437        (WebCore::SVGAnimateTransformElement::resetValues):
61438        (WebCore::SVGAnimateTransformElement::updateCurrentValue):
61439        (WebCore::SVGAnimateTransformElement::handleStartCondition):
61440        (WebCore::SVGAnimateTransformElement::applyAnimationToValue):
61441        (WebCore::SVGAnimateTransformElement::parseTransformValue):
61442        * ksvg2/svg/SVGAnimateTransformElement.h:
61443        * ksvg2/svg/SVGLinearGradientElement.cpp:
61444        (WebCore::SVGLinearGradientElement::collectGradientProperties):
61445        * ksvg2/svg/SVGPatternElement.cpp:
61446        (WebCore::SVGPatternElement::collectPatternProperties):
61447        * ksvg2/svg/SVGRadialGradientElement.cpp:
61448        (WebCore::SVGRadialGradientElement::collectGradientProperties):
61449        * ksvg2/svg/SVGSVGElement.cpp:
61450        (WebCore::SVGSVGElement::createSVGTransform):
61451        (WebCore::SVGSVGElement::createSVGTransformFromMatrix):
61452        * ksvg2/svg/SVGSVGElement.h:
61453        * ksvg2/svg/SVGStyledTransformableElement.cpp:
61454        (WebCore::SVGStyledTransformableElement::updateLocalTransform):
61455        * ksvg2/svg/SVGTextElement.cpp:
61456        (WebCore::SVGTextElement::updateLocalTransform):
61457        * ksvg2/svg/SVGTransform.cpp:
61458        (SVGTransform::SVGTransform):
61459        (SVGTransform::isValid):
61460        * ksvg2/svg/SVGTransform.h:
61461        * ksvg2/svg/SVGTransform.idl:
61462        * ksvg2/svg/SVGTransformList.cpp:
61463        (SVGTransformList::SVGTransformList):
61464        (SVGTransformList::createSVGTransformFromMatrix):
61465        (SVGTransformList::consolidate):
61466        (SVGTransformList::concatenate):
61467        * ksvg2/svg/SVGTransformList.h:
61468        * ksvg2/svg/SVGTransformable.cpp:
61469        (WebCore::SVGTransformable::parseTransformAttribute):
61470
614712007-01-24  Mark Rowe  <mrowe@apple.com>
61472
61473        Reviewed by Eric.
61474
61475        Plug another bunch of SVG memory leaks.
61476
61477        * ksvg2/misc/SVGDocumentExtensions.cpp:
61478        (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Delete memory we have allocated.
61479        (WebCore::SVGDocumentExtensions::removePendingResource): Return an auto_ptr to show that we are transferring ownership.
61480        * ksvg2/misc/SVGDocumentExtensions.h:
61481        * ksvg2/svg/SVGElement.cpp:
61482        (WebCore::SVGElement::insertedIntoDocument): Update for use of auto_ptr.
61483
614842007-01-23  Mark Rowe  <mrowe@apple.com>
61485
61486        Reviewed by Brady.
61487
61488        Plug thousands of node leaks seen running layout tests.
61489
61490        * ksvg2/svg/SVGElementInstance.cpp:
61491        (WebCore::SVGElementInstance::~SVGElementInstance): Disassociate ourselves from our children so they will
61492        be destroyed if we were the only thing referencing them.
61493        * ksvg2/svg/SVGUseElement.cpp:
61494        (WebCore::SVGUseElement::removedFromDocument):
61495        * ksvg2/svg/SVGUseElement.h:
61496
614972007-01-23  Alice Liu  <alice.liu@apple.com>
61498
61499        Reviewed by Brady.
61500
61501        * editing/Editor.cpp:
61502        (WebCore::Editor::appliedEditing):
61503        minor change.  removing unnecessary call to frame to fetch editor
61504
615052007-01-23  Mark Rowe  <mrowe@apple.com>
61506
61507        Reviewed by Adele.
61508
61509        http://bugs.webkit.org/show_bug.cgi?id=12375
61510        Bug 12375: REGRESSION(r19038): fast/dom/title-text-property-2.html failing
61511
61512        Fix regression by making setTitle/updateTitle/removeTitle logic match document.title
61513        specification at http://whatwg.org/specs/web-apps/current-work/#the-title1.
61514
61515        * dom/Document.cpp:
61516        (WebCore::Document::setTitle): Materialize a title element into the head if one doesn't exist when setting
61517        document.title.  Also update the contents of the title element when the title is set via document.title.
61518        (WebCore::Document::removeTitle): Update the title based on first title element in the head, if one exists.
61519        (WebCore::Document::head): Convenience method to retrieve the head element in an HTML document.
61520        * dom/Document.h:
61521
615222007-01-23  Beth Dakin  <bdakin@apple.com>
61523
61524        Reviewed by Hyatt.
61525
61526        Follow-up to the fix below for 4843226.
61527
61528        * rendering/RenderLayer.cpp:
61529        (WebCore::transparencyClipBox): Has to be recursive or we will miss 
61530        out on grandchildren!
61531
615322007-01-23  Oliver Hunt  <oliver@apple.com>
61533
61534        Reviewed by Adam.
61535
61536        Fixes dropping of files into safari
61537
61538        * page/DragController.cpp:
61539        (WebCore::DragController::performDrag):
61540
615412007-01-23  Brady Eidson  <beidson@apple.com>
61542
61543        Reviewed by Darin
61544
61545        Added a couple of CF things previously missed
61546
61547        * platform/network/ResourceError.h:
61548        * platform/network/ResourceHandle.h:
61549
615502007-01-23  Nikolas Zimmermann  <zimmermann@kde.org>
61551
61552        Reviewed by Maciej.
61553
61554        Fix evil genericContext() assertion, which occours sometimes when running DRT.
61555        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12379
61556
61557        * bindings/scripts/CodeGeneratorJS.pm:
61558        * ksvg2/misc/SVGDocumentExtensions.h:
61559        (WebCore::SVGDocumentExtensions::genericContextMap):
61560        (WebCore::SVGDocumentExtensions::forgetGenericContext):
61561
615622007-01-23  Beth Dakin  <bdakin@apple.com>
61563
61564        Reviewed by Hyatt.
61565
61566        Fix for <rdar://problem/4843226> REGRESSION: Pull down menu appears 
61567        clipped at http://istweb.apple.com/
61568
61569        * rendering/RenderLayer.cpp:
61570        (WebCore::transparencyClipBox): Always unite with sibling rects.
61571
615722007-01-22  Justin Garcia  <justin.garcia@apple.com>
61573
61574        Reviewed by john
61575
61576        <rdar://problem/4920742>
61577        REGRESSION: GMail Editor: Attempting to remove formatting from selection results in a crash at WebCore::Range::checkDeleteExtract()
61578
61579        * dom/Range.cpp:
61580        (WebCore::Range::checkDeleteExtract): Return if there is no
61581        commonAncestor container or if commonAncestorContainer() throws
61582        an exception.
61583        * editing/Editor.cpp:
61584        (WebCore::Editor::removeFormattingAndStyle): Fixed a bug that reversed
61585        the order of the selected paragraphs.
61586
615872007-01-23  Nikolas Zimmermann  <zimmermann@kde.org>
61588
61589        Reviewed by Sam.
61590
61591        Fix dynamic creation/updates of markers, masks, clipPaths, and several tiny pattern issues.
61592        Added 16 (!) new layout tests covering quite some weird scenerios - Batik & Opera do have problems, we don't.
61593
61594        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12380
61595        Fixes: svg/custom/image-with-transform-clip-filter.svg (filter shows up again)
61596
61597        Added: svg/custom/clip-path-child-changes.svg
61598        Added: svg/custom/clip-path-href-changes.svg
61599        Added: svg/custom/clip-path-units-changes.svg
61600        Added: svg/custom/deep-dynamic-updates.svg
61601        Added: svg/custom/js-late-clipPath-and-object-creation.svg
61602        Added: svg/custom/js-late-clipPath-creation.svg
61603        Added: svg/custom/js-late-marker-and-object-creation.svg
61604        Added: svg/custom/js-late-marker-creation.svg
61605        Added: svg/custom/js-late-mask-and-object-creation.svg
61606        Added: svg/custom/js-late-mask-creation.svg
61607        Added: svg/custom/js-update-pattern-child.svg
61608        Added: svg/custom/marker-changes.svg
61609        Added: svg/custom/marker-child-changes.svg
61610        Added: svg/custom/marker-viewBox-changes.svg
61611        Added: svg/custom/mask-changes.svg
61612        Added: svg/custom/mask-child-changes.svg
61613
61614        * ksvg2/misc/KCanvasRenderingStyle.cpp:
61615        (WebCore::KSVGPainterFactory::fillPaintServer):
61616        (WebCore::KSVGPainterFactory::strokePaintServer):
61617        * ksvg2/svg/SVGClipPathElement.cpp:
61618        (WebCore::SVGClipPathElement::notifyAttributeChange):
61619        * ksvg2/svg/SVGClipPathElement.h:
61620        * ksvg2/svg/SVGGradientElement.cpp:
61621        * ksvg2/svg/SVGGradientElement.h:
61622        * ksvg2/svg/SVGMarkerElement.cpp:
61623        (WebCore::SVGMarkerElement::canvasResource):
61624        (WebCore::SVGMarkerElement::notifyAttributeChange):
61625        * ksvg2/svg/SVGMarkerElement.h:
61626        * ksvg2/svg/SVGMaskElement.cpp:
61627        (WebCore::SVGMaskElement::notifyAttributeChange):
61628        * ksvg2/svg/SVGMaskElement.h:
61629        * ksvg2/svg/SVGStopElement.cpp:
61630        (WebCore::SVGStopElement::notifyAttributeChange):
61631        * ksvg2/svg/SVGStyledElement.cpp:
61632        (WebCore::SVGStyledElement::notifyAttributeChange):
61633        (WebCore::SVGStyledElement::notifyResourceParentIfExistant):
61634        (WebCore::SVGStyledElement::rebuildRenderer):
61635        * ksvg2/svg/SVGStyledElement.h:
61636        * ksvg2/svg/SVGUseElement.cpp:
61637        (WebCore::SVGUseElement::notifyAttributeChange):
61638        * platform/graphics/svg/SVGResource.cpp:
61639        (WebCore::SVGResource::invalidate):
61640        (WebCore::SVGResource::addClient):
61641        (WebCore::SVGResource::repaintClients):
61642        * platform/graphics/svg/SVGResource.h:
61643        * platform/graphics/svg/SVGResourceMarker.cpp:
61644        (WebCore::SVGResourceMarker::draw):
61645        (WebCore::SVGResourceMarker::cachedBounds):
61646        * platform/graphics/svg/SVGResourceMarker.h:
61647        * rendering/RenderPath.cpp:
61648        (WebCore::RenderPath::layout):
61649        (WebCore::RenderPath::getAbsoluteRepaintRect):
61650        (WebCore::RenderPath::paint):
61651        (WebCore::drawMarkerWithData):
61652        (WebCore::RenderPath::drawMarkersIfNeeded):
61653        * rendering/RenderPath.h:
61654        * rendering/RenderSVGContainer.cpp:
61655        (WebCore::RenderSVGContainer::paint):
61656        (WebCore::RenderSVGContainer::getAbsoluteRepaintRect):
61657        * rendering/RenderSVGImage.cpp:
61658        (WebCore::RenderSVGImage::paint):
61659        (WebCore::RenderSVGImage::getAbsoluteRepaintRect):
61660        * rendering/SVGInlineFlowBox.cpp:
61661        (WebCore::paintSVGInlineFlow):
61662
616632007-01-23  Adele Peterson  <adele@apple.com>
61664
61665        Reviewed by Darin.
61666        
61667        WebCore part of fix for <rdar://problem/4946753>REGRESSION: Inserting tabs is broken in Mail
61668
61669        In addition to this fix, I also reorganized some event handling code for keyPress events to
61670        prepare for another fix.  There's also just a little bit of unrelated cleanup.
61671        
61672        * dom/EventTargetNode.cpp: (WebCore::EventTargetNode::defaultEventHandler):
61673          Move tab focus behavior into new defaultKeyboardEventHandler method.
61674        
61675        * bridge/EditorClient.h: Added handleKeyPress.
61676        * editing/Editor.cpp:
61677        (WebCore::Editor::handleKeyPress): Added. Calls over to the client method.
61678        (WebCore::Editor::deleteRange): Removed unnecessary propogateDOMException.
61679        * editing/Editor.h: Added handleKeyPress.
61680        (WebCore::Editor::addToKillRing): Formatting cleanup.
61681        * editing/mac/EditorMac.mm: Removed unnecessary propogateDOMException.
61682        
61683        * page/EventHandler.cpp: (WebCore::EventHandler::defaultKeyboardEventHandler): Added. Checks
61684          the tabKeyCyclesThroughElements setting before advancing focus for tab key events.  Calls handleKeyPress.
61685        * page/EventHandler.h: Added defaultKeyboardEventHandler.
61686        
61687        * page/Page.cpp: (WebCore::Page::Page): Initialize m_tabKeyCyclesThroughElements to true.
61688        * page/Page.h: Added m_tabKeyCyclesThroughElements.
61689        (WebCore::Page::setTabKeyCyclesThroughElements): Added.
61690        (WebCore::Page::tabKeyCyclesThroughElements): Added.
61691        
61692        * platform/PlatformKeyboardEvent.h: Added ability to get NSEvent from PlatformKeyboardEvent.
61693        * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
61694          Initialize m_macEvent to the NSEvent.
61695        
61696        * platform/graphics/svg/SVGImageEmptyClients.h: (WebCore::SVGEmptyEditorClient::handleKeyPress): Added.
61697
616982007-01-23  George Staikos  <staikos@kde.org>
61699
61700        Compile with a released Qt.
61701
61702        * platform/graphics/qt/ImageQt.cpp:
61703
617042007-01-23  Lars Knoll <lars@trolltech.com>
61705
61706        Reviewed by Zack
61707
61708        Widget and ScrollView do not own the Qt widgets
61709        anymore. Make sure they can handle the case of
61710        a null QWidget and never delete them.
61711
61712        * platform/qt/ScrollViewQt.cpp:
61713        (WebCore::ScrollView::setScrollArea):
61714        (WebCore::ScrollView::updateContents):
61715        (WebCore::ScrollView::visibleWidth):
61716        (WebCore::ScrollView::visibleHeight):
61717        (WebCore::ScrollView::visibleContentRect):
61718        (WebCore::ScrollView::setContentsPos):
61719        (WebCore::ScrollView::resizeContents):
61720        (WebCore::ScrollView::contentsX):
61721        (WebCore::ScrollView::contentsY):
61722        (WebCore::ScrollView::contentsWidth):
61723        (WebCore::ScrollView::contentsHeight):
61724        (WebCore::ScrollView::scrollOffset):
61725        (WebCore::ScrollView::scrollBy):
61726        (WebCore::ScrollView::hScrollbarMode):
61727        (WebCore::ScrollView::vScrollbarMode):
61728        (WebCore::ScrollView::setHScrollbarMode):
61729        (WebCore::ScrollView::setVScrollbarMode):
61730        * platform/qt/WidgetQt.cpp:
61731        (WebCore::WidgetPrivate::~WidgetPrivate):
61732        (WebCore::Widget::setQWidget):
61733
617342007-01-23  Zack Rusin  <zack@kde.org>
61735
61736        Forgot to add one new file to the build.
61737
61738        * WebCore.pro: Add dom/clipboard.cpp
61739
617402007-01-23  Zack Rusin  <zack@kde.org>
61741
61742        Fix the Qt build
61743
61744        * page/DragActions.h:
61745        * page/DragController.cpp:
61746        * platform/qt/DragDataQt.cpp:
61747        (WebCore::DragData::canSmartReplace):
61748        (WebCore::DragData::containsColor):
61749        (WebCore::DragData::containsPlainText):
61750        (WebCore::DragData::asPlainText):
61751        (WebCore::DragData::asColor):
61752        (WebCore::DragData::createClipboard):
61753        (WebCore::DragData::containsCompatibleContent):
61754        (WebCore::DragData::containsURL):
61755        (WebCore::DragData::asURL):
61756        (WebCore::DragData::asFragment):
61757        * platform/qt/FileChooserQt.cpp:
61758
617592007-01-23  Lars Knoll <lars@trolltech.com>
61760
61761        Reviewed by Maciej
61762
61763        Make the last remaining pieces of the FrameLoader platform 
61764        independent. Move most of the code over to WebFrameLoaderClient.
61765        Some smaller cleanups in the WebFrameBridge, and moved some
61766        platform independent functionality over to the shared code
61767        in WebCore.
61768        
61769        * WebCore.exp:
61770        * WebCore.pro:
61771        * WebCore.xcodeproj/project.pbxproj:
61772        * loader/FrameLoader.cpp:
61773        (WebCore::FrameLoader::loadSubframe):
61774        (WebCore::FrameLoader::shouldUsePlugin):
61775        (WebCore::FrameLoader::loadPlugin):
61776        (WebCore::FrameLoader::detachFromParent):
61777        (WebCore::FrameLoader::partClearedInBegin):
61778        (WebCore::FrameLoader::createJavaAppletWidget):
61779        (WebCore::FrameLoader::didChangeTitle):
61780        * loader/FrameLoader.h:
61781        * loader/FrameLoaderClient.h:
61782        * loader/FrameLoaderTypes.h:
61783        (WebCore::):
61784        * loader/PluginDocument.cpp:
61785        (WebCore::PluginTokenizer::writeRawData):
61786        * loader/mac/FrameLoaderMac.mm: Removed.
61787        * loader/qt/FrameLoaderQt.cpp: Removed.
61788        * page/Frame.cpp:
61789        (WebCore::Frame::Frame):
61790        * page/FrameView.cpp:
61791        (WebCore::FrameView::mediaType):
61792        * page/qt/FrameQt.cpp:
61793        (WebCore::FrameQt::FrameQt):
61794        * platform/graphics/svg/SVGImageEmptyClients.h:
61795        (WebCore::SVGEmptyFrameLoaderClient::makeRepresentation):
61796        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
61797        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCommitLoad):
61798        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFailLoad):
61799        (WebCore::SVGEmptyFrameLoaderClient::dispatchCreatePage):
61800        (WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
61801        (WebCore::SVGEmptyFrameLoaderClient::dispatchUnableToImplementPolicy):
61802        (WebCore::SVGEmptyFrameLoaderClient::revertToProvisionalState):
61803        (WebCore::SVGEmptyFrameLoaderClient::setMainDocumentError):
61804        (WebCore::SVGEmptyFrameLoaderClient::startDownload):
61805        (WebCore::SVGEmptyFrameLoaderClient::committedLoad):
61806        (WebCore::SVGEmptyFrameLoaderClient::shouldFallBack):
61807        (WebCore::SVGEmptyFrameLoaderClient::willUseArchive):
61808        (WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
61809        (WebCore::SVGEmptyFrameLoaderClient::createFrame):
61810        (WebCore::SVGEmptyFrameLoaderClient::createPlugin):
61811        (WebCore::SVGEmptyFrameLoaderClient::createJavaAppletWidget):
61812        (WebCore::SVGEmptyFrameLoaderClient::objectContentType):
61813        (WebCore::SVGEmptyFrameLoaderClient::overrideMediaType):
61814        (WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin):
61815        (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
61816
618172007-01-23  Oliver Hunt  <oliver@apple.com>
61818
61819        Reviewed by Adam.
61820
61821        Added DragController to handled drag and drop state and control logic.
61822        Currently this only handles logic for Dragging and Dropping, and is 
61823        unable to initialise a drag itself.
61824
61825        platform/DragData encapsulate the paltform Drag data (NSDraggingInfo on Mac, 
61826        QMimeType in Qt).  This provides methods to pull data out the drag data as a String, 
61827        a URL, a DocumentFragment (for rich content), or a Colour.
61828
61829        * WebCore.exp:
61830        * WebCore.pro:
61831        * WebCore.xcodeproj/project.pbxproj:
61832        * dom/Clipboard.cpp: Added.
61833        (WebCore::Clipboard::setAccessPolicy):
61834        (WebCore::dragOpFromIEOp):
61835        (WebCore::IEOpFromDragOp):
61836        (WebCore::Clipboard::sourceOperation):
61837        (WebCore::Clipboard::destinationOperation):
61838        (WebCore::Clipboard::setSourceOperation):
61839        (WebCore::Clipboard::setDestinationOperation):
61840        (WebCore::Clipboard::setDropEffect):
61841        (WebCore::Clipboard::setEffectAllowed):
61842          move platform independent functions from ClipboardMac to Clipboard
61843
61844        * dom/Clipboard.h:
61845        (WebCore::Clipboard::Clipboard):
61846        (WebCore::Clipboard::dropEffect):
61847        (WebCore::Clipboard::effectAllowed):
61848        (WebCore::Clipboard::policy):
61849          as above -- also removed virtual modifier from now 
61850          platform independent methods
61851
61852        * editing/Editor.cpp:
61853        (WebCore::Editor::smartInsertDeleteEnabled): 
61854        (WebCore::Editor::shouldApplyStyle):
61855        * editing/Editor.h:
61856          adding calls through to EditorClient
61857         
61858        * page/DragActions.h: Added.
61859        (WebCore::):
61860          Replicates a number of NS* enums in the WebCore namespace
61861
61862        * page/DragClient.h: Added.
61863        (WebCore::DragClient::~DragClient):
61864          Standard client interface for dragging UIDelegate
61865
61866        * page/DragController.cpp: Added.
61867        (WebCore::createMouseEvent):
61868        (WebCore::DragController::DragController):
61869        (WebCore::DragController::~DragController):
61870        (WebCore::documentFragmentFromDragData):
61871        (WebCore::DragController::isMoveDrag):
61872        (WebCore::visiblePositionForPoint):
61873        (WebCore::DragController::cancelDrag):
61874        (WebCore::documentAtPoint):
61875        (WebCore::DragController::dragEntered):
61876        (WebCore::DragController::dragExited):
61877        (WebCore::DragController::dragUpdated):
61878        (WebCore::DragController::performDrag):
61879        (WebCore::DragController::dragEnteredOrUpdated):
61880        (WebCore::DragController::tryDocumentDrag):
61881        (WebCore::DragController::operationForLoad):
61882        (WebCore::DragController::concludeDrag):
61883        (WebCore::DragController::canProcessDrag):
61884        (WebCore::DragController::tryDHTMLDrag):
61885          Class to handle state and logic for dragging and dropping
61886
61887        * page/DragController.h: Added.
61888        (WebCore::DragController::client):
61889        (WebCore::DragController::didInitiateDrag):
61890        (WebCore::DragController::isHandlingDrag):
61891        (WebCore::DragController::dragOperation):
61892        (WebCore::DragController::document):
61893        (WebCore::DragController::dragInitiator):
61894        (WebCore::DragController::dragDestinationAction):
61895        (WebCore::DragController::dragSourceAction):
61896        (WebCore::DragController::dragEnded):
61897        (WebCore::DragController::setIsHandlingDrag):
61898        (WebCore::DragController::setDidInitiateDrag):
61899        (WebCore::DragController::setDragOperation):
61900        (WebCore::DragController::setDragSourceAction):
61901        (WebCore::DragController::setDragInitiator):
61902          See above
61903
61904        * page/Page.cpp:
61905        (WebCore::Page::Page):
61906          Update Page to have DragController
61907
61908        * page/Page.h:
61909        (WebCore::Page::dragController):
61910          ditto
61911
61912        * page/mac/DragControllerMac.mm: Added.
61913        (WebCore::DragController::isCopyKeyDown):
61914        (WebCore::DragController::dragOperation):
61915          Platform specific portions of the DragController
61916
61917        * page/mac/EventHandlerMac.mm:
61918        (WebCore::EventHandler::handleDrag):
61919        (WebCore::EventHandler::dragSourceEndedAt):
61920          Convert from NSDragOperation to WebCore::DragOperation
61921
61922        * page/mac/WebCoreFrameBridge.h:
61923        * page/mac/WebCoreFrameBridge.mm:
61924          Remove obsolete Drag functions
61925
61926        * page/qt/DragControllerQt.cpp: Added.
61927        (WebCore::DragController::isCopyKeyDown):
61928        (WebCore::DragController::dragOperation):
61929          Basic stubs to maintain Qt  build
61930
61931        * platform/DragData.cpp: Added.
61932        (WebCore::DragData::DragData):
61933        * platform/DragData.h: Added.
61934        (WebCore::DragData::clientPosition):
61935        (WebCore::DragData::globalPosition):
61936        (WebCore::DragData::platformData):
61937        (WebCore::DragData::draggingSourceOperationMask):
61938          DragData class to encapsulate platform drag data/event
61939
61940        * platform/graphics/svg/SVGImage.cpp:
61941        (WebCore::SVGImage::setData):
61942          Addition of dummy DragClient
61943
61944        * platform/graphics/svg/SVGImageEmptyClients.h:
61945        (WebCore::SVGEmptyDragClient::~SVGEmptyDragClient):
61946        (WebCore::SVGEmptyDragClient::willPerformDragDestinationAction):
61947        (WebCore::SVGEmptyDragClient::actionMaskForDrag):
61948        (WebCore::SVGEmptyDragClient::dragControllerDestroyed):
61949          ditto
61950
61951        * platform/mac/ClipboardMac.h:
61952        * platform/mac/ClipboardMac.mm:
61953        (WebCore::ClipboardMac::ClipboardMac):
61954        (WebCore::ClipboardMac::clearData):
61955        (WebCore::ClipboardMac::clearAllData):
61956        (WebCore::ClipboardMac::getData):
61957        (WebCore::ClipboardMac::setData):
61958        (WebCore::ClipboardMac::types):
61959        (WebCore::ClipboardMac::setDragImage):
61960         Moving platform independent logic to Clipboard, and updating
61961         platform specific methods to use appropriate accessors rather than 
61962         directly manipulating data they no longer own
61963
61964        * platform/mac/DragDataMac.mm: Added.
61965        (WebCore::DragData::DragData):
61966        (WebCore::DragData::canSmartReplace):
61967        (WebCore::DragData::containsColor):
61968        (WebCore::DragData::containsPlainText):
61969        (WebCore::DragData::asPlainText):
61970        (WebCore::DragData::asColor):
61971        (WebCore::DragData::createClipboard):
61972        (WebCore::imageExistsAtPaths):
61973        (WebCore::DragData::containsCompatibleContent):
61974        (WebCore::DragData::containsURL):
61975        (WebCore::DragData::asURL):
61976        (WebCore::DragData::asFragment):
61977          Mac implementations of DragData methods.  A number of these use
61978          a Helper class that accesses WebKit functionality.  That functionality 
61979          should be migrated to WebCore in the future.
61980
61981        * platform/mac/PasteboardHelper.h: Added.
61982        (WebCore::PasteboardHelper::~PasteboardHelper):
61983          Temporary, and Mac only, helper class to access WebKit functionality 
61984          from WebCore
61985
61986        * platform/qt/DragDataQt.cpp: Added.
61987        (WebCore::DragData::canSmartReplace):
61988        (WebCore::DragData::containsColor):
61989        (WebCore::DragData::containsPlainText):
61990        (WebCore::DragData::asPlainText):
61991        (WebCore::DragData::asColor):
61992        (WebCore::DragData::createClipboard):
61993        (WebCore::DragData::containsCompatibleContent):
61994        (WebCore::DragData::containsURL):
61995        (WebCore::DragData::asURL):
61996        (WebCore::DragData::asFragment):
61997         Basic stubs to maintain Qt build
61998
61999        * rendering/HitTestResult.cpp:
62000        (WebCore::HitTestResult::HitTestResult):
62001         Correct HitTestResult copy contructor to copy localPoint
62002
620032007-01-22  Mark Rowe  <mrowe@apple.com>
62004
62005        Reviewed by Maciej.
62006
62007        http://bugs.webkit.org/show_bug.cgi?id=11692
62008        Bug 11692: REGRESSION(r17352): Disappearing page title
62009
62010        * dom/Document.cpp:
62011        (WebCore::Document::setTitle): If the title has already been set explicitly via JavaScript,
62012        ignore any changes to it due to encountering <title> tags.
62013
620142007-01-22  Mitz Pettel  <mitz@webkit.org>
62015
62016        Reviewed by Darin.
62017
62018        - fix http://bugs.webkit.org/show_bug.cgi?id=12344
62019          NativeListBox: item hit testing does not account for top padding and border
62020
62021        Test: fast/forms/listbox-selection-2.html
62022
62023        * rendering/RenderListBox.cpp:
62024        (WebCore::RenderListBox::numVisibleItems): Changed height() to contentHeight()
62025        since items are visible only in the content box.
62026        (WebCore::RenderListBox::listIndexAtOffset): Adjusted for vertical padding and
62027        borders. Changed to return -1 instead of the last item's index if the given offset
62028        is below the last item.
62029        (WebCore::RenderListBox::autoscroll): Adjusted for vertical padding and borders.
62030        (WebCore::RenderListBox::controlClipRect): Changed to return the content box since
62031        items should not spill into the padding box. This change is the reason the test
62032        generates pixel results.
62033
620342007-01-22  Justin Garcia  <justin.garcia@apple.com>
62035
62036        Reviewed by darin
62037        
62038        <rdar://problem/4944770>
62039        editing/pasteboard/4641033 layout test is broken (12328)
62040        
62041        This layout test failure demonstrates three bugs:
62042        Smart replace shouldn't be turned on, but is because a word
62043        selection granularity from the previous test isn't cleared.
62044        Smart replace shouldn't add any spaces because the paste is performed
62045        in an empty paragraph.
62046        Smart replace spaces are added to the text of options inside
62047        the select element instead of before/after the select element.
62048        
62049        This patch fixes the second two problems.  During a 
62050        ReplaceSelectionCommand, the VisiblePosition for the end of 
62051        the inserted content is the last position in the last leaf 
62052        inserted.  This is a problem when the last leaf is inside a 
62053        select element, since VP creation is inconsistent there.  
62054        Second, smart spaces were inserted inside the last leaf, not
62055        at the endOfInsertedContent.
62056
62057        * editing/ReplaceSelectionCommand.cpp:
62058        (WebCore::ReplaceSelectionCommand::shouldMergeStart): Renamed 
62059        m_lastNodeInserted to m_lastLeafInserted.  Use the 
62060        start/endOfInsertedContent getters.
62061        (WebCore::ReplaceSelectionCommand::shouldMergeEnd): Ditto.
62062        (WebCore::ReplaceSelectionCommand::removeNodePreservingChildren): Ditto.
62063        (WebCore::ReplaceSelectionCommand::removeRedundantStyles): Ditto.
62064        (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Added.
62065        Special case for when the last leaf inserted is inside a select 
62066        element: return the VisiblePosition after the select element.
62067        (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Added.
62068        (WebCore::ReplaceSelectionCommand::doApply): Did renaming.  Used
62069        the start/endOfInsertedContent getters.  Insert smart replace spaces
62070        into the right nodes.
62071        (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR): Renaming.
62072        (WebCore::ReplaceSelectionCommand::completeHTMLReplacement): Ditto.
62073        (WebCore::ReplaceSelectionCommand::updateNodesInserted): Ditto.
62074        * editing/ReplaceSelectionCommand.h:
62075
620762007-01-22  Darin Adler  <darin@apple.com>
62077
62078        Reviewed by Adam.
62079
62080        - fix http://bugs.webkit.org/show_bug.cgi?id=12273
62081          REGRESSION: File input value invisible after removing and re-appending
62082
62083        - made more of the file chooser code cross-platform
62084
62085        - fixed an Objective-C garbage collection problem in FileChooser
62086
62087        - tried to remove layering violations where FileChooser in the platform
62088          directory knows about the rendering and DOM trees (but wasn't able to
62089          do it entirely)
62090
62091        * platform/FileChooser.cpp: Added.
62092        (WebCore::FileChooser::create): Changed parameters.
62093        (WebCore::FileChooser::chooseFile): Changed to call chooseIcon function.
62094        (WebCore::FileChooser::chooseIcon): Added.
62095
62096        * platform/FileChooser.h: Added FileChooserClient so this file doesn't have
62097        to know about RenderFileUploadControl. Used RetainPtr instead of retain/release
62098        so this works properly with Objective-C GC. Replaced disconnectUploadControl
62099        with disconnectClient, which has a simple inline implementation. Moved the
62100        Document parameter from the constructor to openFileChooser, along with a comment
62101        about why it should not be there. Added a filename parameter to the constructor
62102        for the initial filename. Added a font parameter to basenameForWidth so we don't
62103        depend on having a pointer to the renderer. Removed the uploadControl() and
62104        document() functions since no one calls either of them.
62105
62106        * platform/mac/FileChooserMac.mm: Removed code that is now cross-platform.
62107        (-[OpenPanelController beginSheetWithFrame:]): Added frame parameter, instead
62108        of storing a document pointer in the FileChooser.
62109        (WebCore::FileChooser::FileChooser): Updated for changed parameters. Also added
62110        code to choose the icon based on the initial filename. Pass the adopt parameter
62111        to the constructor of the RetainPtr.
62112        (WebCore::FileChooser::~FileChooser): Removed the release call, since the
62113        RetainPtr will take care of it. Added a call to disconnectFileChooser here.
62114        There's no need to disconnect at disconnectClient time, and that lets us have
62115        one more cross-platform function.
62116        (WebCore::FileChooser::openFileChooser): Added document parameter. Added code
62117        to get the frame from the document. And added a nil check since there's no
62118        ironclad guarantee the document won't have outlived its frame.
62119        (WebCore::FileChooser::basenameForWidth): Added font parameter. Use that instead
62120        of going at the upload control's style. The caller can handle that now.
62121
62122        * rendering/RenderFileUploadControl.h: Removed unnecessary includes.
62123        Made class inherit privately from FileChooserClient. Changed constructor
62124        parameter to HTMLInputElement rather than Node. Made protected members be
62125        private instead, and made a couple function members const.
62126        * rendering/RenderFileUploadControl.cpp: Moved constants to the top of the file,
62127        but after the "using namespace"
62128        (WebCore::RenderFileUploadControl::RenderFileUploadControl): Updated for changes
62129        to the FileChooser::create function and the parameter types.
62130        (WebCore::RenderFileUploadControl::~RenderFileUploadControl): Removed unneeded
62131        null check -- there's no case where the FileChooser fails to be created.
62132        (WebCore::RenderFileUploadControl::click): Pass document to openFileChooser.
62133        (WebCore::RenderFileUploadControl::updateFromElement): Tweaked code a bit by
62134        using updateFromElement and setValue instead of casting the renderer to a
62135        RenderButton and calling setText directly. Put setInputType call here.
62136        (WebCore::RenderFileUploadControl::maxFilenameWidth): Made const. Broke long line.
62137        (WebCore::RenderFileUploadControl::createButtonStyle): Made const.
62138        (WebCore::RenderFileUploadControl::paintObject): Moved buttonShadowHeight constant
62139        to the top of the file. Call isEmpty instead of checking width and height of
62140        IntRect for 0. Computed font to pass to FileChooser::basenameForWidth. Broke
62141        long lines.
62142        (WebCore::HTMLFileUploadInnerButtonElement::HTMLFileUploadInnerButtonElement):
62143        Moved the setInputType call to the caller; concept here is that this class is
62144        as simple as possible, rather than doing as much of the button job as possible.
62145
62146        * WebCore.xcodeproj/project.pbxproj: Added FileChooser.cpp.
62147        * WebCore.pro: Ditto.
62148        * CMakeLists.txt: Ditto.
62149        * WebCoreSources.bkl: Ditto.
62150
62151        * platform/gdk/TemporaryLinkStubs.cpp: Updated stubs.
62152        * platform/qt/FileChooserQt.cpp: Updated stubs.
62153
621542007-01-22  Mitz Pettel  <mitz@webkit.org>
62155
62156        Reviewed by Darin.
62157
62158        - fix http://bugs.webkit.org/show_bug.cgi?id=12364
62159          REGRESSSION (NativeListBox): Selected option's background is not clipped to the list box
62160
62161        Test: fast/forms/select-item-background-clip.html
62162
62163        * rendering/RenderListBox.cpp:
62164        (WebCore::RenderListBox::paintItemBackground): Intersect the item's rect with
62165        the list box's clip rect.
62166
621672007-01-22  Darin Adler  <darin@apple.com>
62168
62169        Reviewed by Beth.
62170
62171        - fix http://bugs.webkit.org/show_bug.cgi?id=12369
62172          REGRESSION (r19027): amazon.com home page crashes WebKit r19028 debug build
62173
62174        I caused this a few hours ago. Oops!
62175
62176        * rendering/RenderText.cpp: (WebCore::RenderText::setStyle):
62177        Compute whether the font changed before calling RenderObject::setStyle.
62178
621792007-01-22  Beth Dakin  <bdakin@apple.com>
62180
62181        Reviewed by Maciej.
62182
62183        Fix for <rdar://problem/4912129> REGRESSION: Crash occurs at 
62184        WebCore::Frame::eventHandler() after clicking to dismiss a 
62185        contextual menu on the page
62186
62187        * page/EventHandler.cpp:
62188        (WebCore::EventHandler::stopAutoscrollTimer): Added nil-check.
62189
621902007-01-22  Darin Adler  <darin@apple.com>
62191
62192        Reviewed by Mitz.
62193
62194        Inspired by a much simpler patch by Andrew Wellington <proton@wiretapped.net>.
62195
62196        - fix http://bugs.webkit.org/show_bug.cgi?id=11197
62197          REGRESSION: Specifying a counter for a CODE tag's content style property
62198          on before or after causes a crash.
62199
62200        Test: fast/css/beforeSelectorOnCodeElement.html
62201
62202        - fix regression I recently introduced where the monospace cache could be
62203          used for text that was not ASCII, if text was changed after the style was set
62204
62205        Test: fast/text/monospace-width-cache.html
62206
62207        - streamline RenderText.h -- remove unneeded functions, make some needlessly
62208          virtual functions non-virtual, remove unneeded header includes, replace use
62209          of Font* with Font& for consistency with RenderStyle, use "text" consistently
62210          instead of "string"
62211
62212        * rendering/RenderText.h: Removed unneeded include of "Text.h", declarations of
62213        SOFT_HYPHEN, DocumentMarker, InlineBox, Position, String. Got rid of friend
62214        declaration for InlineTextBox. Changed constructor to take a PassRefPtr since
62215        we do take owership of the passed-in text. Made deleteTextBoxes() private.
62216        Removed unneeded data(). Made override of length() private so people will use
62217        the faster textLength() instead. Renamed string() to text() so it matches up
62218        better with setText(). Same for stringLength(), originalString(), and
62219        setInternalString(), which are now textLength(), originalText(), and
62220        setTextInternal(). Renamed the old text() function to characters(), since it
62221        returns a pointer as StringImpl::characters does. Changed Font* to Font& everywhere.
62222        Renamed the internal calcMinMaxWidth() function to calcMinMaxWidthInternal() and
62223        made it non-virtual since it's not overriden anywhere. Also made the
62224        trimmedMinMaxWidth() function non-virtual. Made containsOnlyWhitespace() private.
62225        Removed both font() functions (one was needlessly virtual) and element().
62226        Renamed cacheWidths() to updateMonospaceCharacterWidth() and removed the
62227        shouldUseMonospaceCache() function. Renamed allAscii() to isAllASCII() and made
62228        it an inline function. Removed the m_allAsciiChecked flag and renamed the
62229        m_allAscii flag to m_isAllASCII.
62230        * rendering/RenderText.cpp:
62231        (WebCore::RenderText::RenderText): Removed initialization of m_allAsciiChecked.
62232        Initialize m_isAllASCII. Changed all occurrences of m_str->length() and
62233        m_str->characters () to use the stringLength() and characters() inline functions
62234        instead.
62235        (WebCore::RenderText::setStyle): Replaced the unconditional call to cacheWidths
62236        with a conditional call to updateMonospaceCharacterWidth. This speeds up the common
62237        case where style is changed without changing the font.
62238        (WebCore::RenderText::originalText): Changed code to not depend on overridden
62239        element() function with casts to a Text node -- this was one of only two call sites.
62240        Also renamed.
62241        (WebCore::RenderText::positionForCoordinates): Name change.
62242        (WebCore::RenderText::caretRect): Ditto.
62243        (WebCore::RenderText::updateMonospaceCharacterWidth): Renamed from cacheWidths and
62244        incorporate the check that was formerly in a separate shouldUseMonospaceCache
62245        function.
62246        (WebCore::RenderText::widthFromCache): Changed to take a Font& instead of Font*.
62247        Changed to take advantage of the fact that the string is known to be all ASCII in
62248        the m_monospaceCharacterWidth code path.
62249        (WebCore::RenderText::trimmedMinMaxWidth): Ditto. Also use style()->font() instead
62250        of font(false).
62251        (WebCore::RenderText::calcMinMaxWidth): Ditto. Also changed to use softHyphen instead
62252        of SOFT_HYPHEN.
62253        (WebCore::RenderText::containsOnlyWhitespace): More of the same.
62254        (WebCore::RenderText::setSelectionState): Ditto.
62255        (WebCore::RenderText::setTextWithOffset): Ditto.
62256        (WebCore::isInlineFlowOrEmptyText): Ditto.
62257        (WebCore::RenderText::setTextInternal): Updated for name changes. Also changed to
62258        set the m_isAllASCII flag every time, in the more-efficient way we use elsewhere
62259        (or'ing all the characters together), and to call updateMonospaceCharacterWidth
62260        if the "all ASCII"-ness of the text changes.
62261        (WebCore::RenderText::setText): Updated for name changes.
62262        (WebCore::RenderText::width): More like above.
62263        (WebCore::RenderText::selectionRect): Ditto.
62264        (WebCore::RenderText::caretMaxOffset): Ditto.
62265        (WebCore::RenderText::previousOffset): Ditto.
62266        (WebCore::RenderText::nextOffset): Ditto.
62267
62268        * dom/Position.cpp:
62269        * dom/Range.cpp:
62270        * editing/CompositeEditCommand.cpp:
62271        * editing/DeleteSelectionCommand.cpp:
62272        * editing/VisiblePosition.cpp:
62273        * html/HTMLElement.cpp:
62274        Added now-needed include of "Text.h" which is no longer included by "RenderText.h".
62275
62276        * editing/SelectionController.cpp:
62277        (WebCore::SelectionController::debugRenderer):
62278        * editing/TextIterator.cpp:
62279        (WebCore::TextIterator::handleTextNode):
62280        (WebCore::TextIterator::handleTextBox):
62281        (WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
62282        Update for name changes of stringLength(), string(), and originalString() to
62283        textLength(), text(), and originalText(), and to always use textLength() instead
62284        of length() when we have a RenderText* rather than a RenderObject*.
62285        * editing/visible_units.cpp:
62286        (WebCore::startOfParagraph): Ditto.
62287        (WebCore::endOfParagraph): Ditto.
62288        * rendering/InlineFlowBox.cpp:
62289        (WebCore::InlineFlowBox::placeBoxesHorizontally): Ditto. Also removed use of the
62290        RenderObject::font() function and replaced it with explicit access to the style.
62291        (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
62292        * rendering/InlineTextBox.cpp:
62293        (WebCore::InlineTextBox::selectionRect): Ditto.
62294        (WebCore::InlineTextBox::isLineBreak): Ditto.
62295        (WebCore::InlineTextBox::paint): Ditto.
62296        (WebCore::InlineTextBox::selectionStartEnd): Ditto.
62297        (WebCore::InlineTextBox::paintSelection): Ditto.
62298        (WebCore::InlineTextBox::paintMarkedTextBackground): Ditto.
62299        (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto.
62300        (WebCore::InlineTextBox::paintTextMatchMarker): Ditto.
62301        (WebCore::InlineTextBox::offsetForPosition): Ditto.
62302        (WebCore::InlineTextBox::positionForOffset): Ditto.
62303        * rendering/RenderContainer.cpp:
62304        (WebCore::RenderContainer::addChild): Ditto.
62305        * rendering/RenderCounter.cpp:
62306        (WebCore::RenderCounter::originalText): Ditto.
62307        (WebCore::RenderCounter::calcMinMaxWidth): Ditto.
62308        * rendering/RenderCounter.h: Ditto.
62309        * rendering/RenderTextFragment.cpp:
62310        (WebCore::RenderTextFragment::originalText): Ditto.
62311        * rendering/RenderTextFragment.h: Ditto.
62312        * rendering/SVGInlineFlowBox.cpp:
62313        (WebCore::placePositionedBoxesHorizontally): Ditto.
62314        (WebCore::placeBoxesVerticallyWithAbsBaseline): Ditto.
62315        * rendering/bidi.cpp:
62316        (WebCore::BidiIterator::increment): Ditto.
62317        (WebCore::BidiIterator::current): Ditto.
62318        (WebCore::BidiIterator::direction): Ditto.
62319        (WebCore::addRun): Ditto.
62320        (WebCore::checkMidpoints): Ditto.
62321        (WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
62322        (WebCore::RenderBlock::skipWhitespace): Ditto.
62323        (WebCore::RenderBlock::findNextLineBreak): Ditto.
62324
62325        * rendering/RenderBR.h: Updated signature of width function which now takes a
62326        Font& instead of a Font*.
62327
62328        * rendering/RenderBlock.cpp: (WebCore::stripTrailingSpace): Updated to no longer
62329        use the RenderObject::font() function, and added a comment about first-line, which
62330        is not handled properly here.
62331
62332        * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::text):
62333        * rendering/RenderTreeAsText.cpp: (WebCore::writeTextRun):
62334        Eliminated use of RenderText::data().
62335
62336        * rendering/RenderObject.h: Removed RenderObject::font(). This had the bad effect of
62337        having everyone pass in a boolean rather than using the cleaner style() and
62338        firstLineStyle() functions in cases where there's no a firstLineStyle boolean.
62339        * rendering/RenderObject.cpp:
62340        (WebCore::RenderObject::getVerticalPosition): Replaced use of RenderObject::font()
62341        with direct use of the style instead, which is arguably easier to understand anyway.
62342        (WebCore::RenderObject::baselinePosition): Ditto.
62343
623442007-01-22  Sam Weinig  <sam@webkit.org>
62345
62346        Reviewed by The Mitz.
62347
62348        Move JSHTMLSelectElementCustom.cpp from bindings to bindings/js
62349        where it belongs.
62350
62351        * WebCore.pro:
62352        * WebCore.xcodeproj/project.pbxproj:
62353        * bindings/JSHTMLSelectElementCustom.cpp: Removed.
62354        * bindings/js/JSHTMLSelectElementCustom.cpp: Added.
62355
623562007-01-22  Zack Rusin  <zack@kde.org>
62357
62358        Fix the Qt build.
62359
62360        * WebCore.pro: adjust after last changes
62361
623622007-01-21  Alexey Proskuryakov  <ap@webkit.org>
62363
62364        Reviewed by Darin.
62365
62366        http://bugs.webkit.org/show_bug.cgi?id=10934
62367        REGRESSION: prototype.js logs error (HTMLFormElement) on webkit builds
62368
62369        Added constructors for most HTML elements; started auto-generating HTMLSelectElement JS binding.
62370
62371        Test: fast/dom/Window/element-constructors-on-window.html
62372
62373        * DerivedSources.make: Generate JSHTMLSelectElement.
62374        * WebCore.xcodeproj/project.pbxproj: Added JSHTMLSelectElement{Custom}.
62375        * bindings/js/JSHTMLElementWrapperFactory.cpp: Create a proper binding for SELECT.
62376
62377        * bindings/js/kjs_html.cpp:
62378        (KJS::):
62379        (KJS::JSHTMLElement::classInfo):
62380        (KJS::JSHTMLElement::accessors):
62381        (KJS::JSHTMLElement::getOwnPropertySlot):
62382        (KJS::HTMLElementFunction::callAsFunction):
62383        (KJS::JSHTMLElement::put):
62384        * bindings/js/kjs_html.h:
62385        (KJS::JSHTMLElement::):
62386        Removed everything related to SELECT. Renamed getHTMLOptionsCollection to toJS for autogenerated code 
62387        to be happy, and rewrote it using cacheDOMObject.
62388
62389        * bindings/scripts/CodeGeneratorJS.pm: Added HTMLElement to the list of types that cannot fail conversion.
62390
62391        * html/HTMLAnchorElement.idl:
62392        * html/HTMLAppletElement.idl:
62393        * html/HTMLAreaElement.idl:
62394        * html/HTMLBRElement.idl:
62395        * html/HTMLBaseElement.idl:
62396        * html/HTMLBaseFontElement.idl:
62397        * html/HTMLBodyElement.idl:
62398        * html/HTMLButtonElement.idl:
62399        * html/HTMLCanvasElement.idl:
62400        * html/HTMLDListElement.idl:
62401        * html/HTMLDirectoryElement.idl:
62402        * html/HTMLDivElement.idl:
62403        * html/HTMLFieldSetElement.idl:
62404        * html/HTMLFontElement.idl:
62405        * html/HTMLFormElement.idl:
62406        * html/HTMLHRElement.idl:
62407        * html/HTMLHeadElement.idl:
62408        * html/HTMLHeadingElement.idl:
62409        * html/HTMLHtmlElement.idl:
62410        * html/HTMLImageElement.idl:
62411        * html/HTMLInputElement.idl:
62412        * html/HTMLIsIndexElement.idl:
62413        * html/HTMLLIElement.idl:
62414        * html/HTMLLabelElement.idl:
62415        * html/HTMLLegendElement.idl:
62416        * html/HTMLLinkElement.idl:
62417        * html/HTMLMapElement.idl:
62418        * html/HTMLMenuElement.idl:
62419        * html/HTMLMetaElement.idl:
62420        * html/HTMLModElement.idl:
62421        * html/HTMLOListElement.idl:
62422        * html/HTMLOptGroupElement.idl:
62423        * html/HTMLParagraphElement.idl:
62424        * html/HTMLParamElement.idl:
62425        * html/HTMLPreElement.idl:
62426        * html/HTMLQuoteElement.idl:
62427        * html/HTMLScriptElement.idl:
62428        * html/HTMLStyleElement.idl:
62429        * html/HTMLTextAreaElement.idl:
62430        * html/HTMLTitleElement.idl:
62431        * html/HTMLUListElement.idl:
62432        Generate constructors.
62433
62434        * html/HTMLSelectElement.cpp:
62435        (WebCore::HTMLSelectElement::length):
62436        * html/HTMLSelectElement.h:
62437        Make length() return unsigned for auto-generated code to be happy.
62438
62439        * html/HTMLSelectElement.idl: Adjusted to be usable for JS.
62440
62441        * bindings/JSHTMLSelectElementCustom.cpp: Added. Implements remove().
62442
62443        * page/DOMWindow.idl:
62444        Added properties for most elements' constructors.
62445
624462007-01-21  Mark Rowe  <mrowe@apple.com>
62447
62448        Reviewed by Maciej.
62449
62450        http://bugs.webkit.org/show_bug.cgi?id=12357
62451        Bug 12357: Reproducible crash in WebCore::Settings::isJavaScriptEnabled in svg/custom/js-update-bounce.svg under guard-malloc
62452
62453        * page/Frame.cpp:
62454        (WebCore::Frame::~Frame): Access the global object directly rather than via Window::retrieveWindow to prevent our reference to
62455        a deleted settings object being used.
62456
624572007-01-21  Darin Adler  <darin@apple.com>
62458
62459        Reviewed by Maciej.
62460
62461        - fix <rdar://problem/4930503> REGRESSION: Page changes title when
62462          command-clicking on named anchor link (12299)
62463
62464        * loader/FrameLoader.cpp:
62465        (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
62466        Return if shouldContinue is false. This matches the other similar
62467        functions and prevents us from doing extra work in the "ignore" case.
62468
624692007-01-21  Mark Rowe  <mrowe@apple.com>
62470
62471        Reviewed by Darin.
62472
62473        http://bugs.webkit.org/show_bug.cgi?id=12355
62474        Bug 12355: Reproducible crash in WebCore::parseNumber in svg/custom/js-update-bounce.svg under guard-malloc
62475
62476        * ksvg2/svg/SVGParserUtilities.cpp:
62477        (WebCore::parseNumber): Parenthesize to prevent reading past end of buffer.
62478
624792007-01-21  Mitz Pettel  <mitz@webkit.org>
62480
62481        Reviewed by Darin.
62482
62483        - fix http://bugs.webkit.org/show_bug.cgi?id=12345
62484          REGRESSION: Disabled pop-up text is not grayed out
62485
62486        Test: fast/forms/select-disabled-appearance.html
62487
62488        * rendering/RenderThemeMac.mm:
62489        (WebCore::RenderThemeMac::adjustMenuListStyle):
62490
624912007-01-21  Darin Adler  <darin@apple.com>
62492
62493        - fix non-Mac builds
62494
62495        * CMakeLists.txt: Added JSDocumentCustom.cpp.
62496        * WebCore.pro: Ditto.
62497        * WebCoreSources.bkl: Ditto.
62498
624992007-01-21  Mitz Pettel  <mitz@webkit.org>
62500
62501        Reviewed by Darin.
62502
62503        - fix http://bugs.webkit.org/show_bug.cgi?id=12353 <rdar://problem/4944599>
62504          REGRESSION: Crash on load (mutation event dispatch under the image element constructor deletes the element)
62505    
62506        Test: fast/dom/HTMLImageElement/constructor-mutation-event-dispatch.html
62507
62508        * bindings/js/kjs_html.cpp:
62509        (KJS::ImageConstructorImp::construct): Protect the image element before setting
62510        its attributes.
62511
625122007-01-21  Sam Weinig  <sam@webkit.org>
62513
62514        Rolling out patch for http://bugs.webkit.org/show_bug.cgi?id=8360.
62515
62516        * rendering/RenderLayer.cpp:
62517        (WebCore::RenderLayer::RenderLayer):
62518        (WebCore::RenderLayer::scrollToOffset):
62519        (WebCore::RenderLayer::scrollRectToVisible):
62520        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
62521        (WebCore::Marquee::start):
62522        * rendering/RenderLayer.h:
62523
625242007-01-21  David Kilzer  <ddkilzer@webkit.org>
62525
62526        Reviewed by Darin.
62527
62528        - fix http://bugs.webkit.org/show_bug.cgi?id=12280
62529          select element not available by name through document.all
62530          (dropdown list not available on smarthome.com checkout)
62531
62532        Test: fast/dom/document-all-select.html
62533
62534        * html/HTMLCollection.cpp:
62535        (WebCore::HTMLCollection::checkForNameMatch):
62536        (WebCore::HTMLCollection::updateNameCache):
62537
625382007-01-21  Mitz Pettel  <mitz@webkit.org>
62539
62540        Reviewed by Darin.
62541
62542        - http://bugs.webkit.org/show_bug.cgi?id=10805
62543          REGRESSION (r15720): manual-tests/onblur-remove.html failing
62544
62545        * manual-tests/onblur-remove.html: Changed the test to not require pressing
62546        Enter, since the correct behavior for Enter is to send a blur event.
62547
625482007-01-21  Sanjay Madhav  <sanjay12@gmail.com>
62549
62550        Reviewed by Darin.
62551
62552        Fix for: <rdar://problem/4928583> Memory usage grows when reloading google.com/ig
62553
62554        JSDocuments are now responsible for marking the DOM wrappers associated with them, when they get marked.
62555        This fixes a JS object leak when a DOM wrapper has a reference to a JSDocument that is otherwise not reachable.
62556
62557        Test: fast/dom/gc-10.html
62558
62559        * WebCore.vcproj/WebCore/WebCore.vcproj:
62560        * WebCore.xcodeproj/project.pbxproj:
62561        * bindings/js/JSDocumentCustom.cpp: Added.
62562        (WebCore::JSDocument::mark):
62563        * bindings/js/kjs_binding.cpp:
62564        (KJS::ScriptInterpreter::markDOMNodesForDocument):
62565        (KJS::ScriptInterpreter::mark):
62566        * bindings/js/kjs_binding.h:
62567        * dom/Document.idl:
62568
625692007-01-21  Mitz Pettel  <mitz@webkit.org>
62570
62571        Reviewed by Darin.
62572
62573        - fix http://bugs.webkit.org/show_bug.cgi?id=10692
62574          REGRESSION (r14847): Unnecessary scrollbars with position:relative; and overflow:auto;
62575
62576        Test: fast/overflow/position-relative.html
62577
62578        * rendering/RenderBox.cpp:
62579        (WebCore::RenderBox::lowestPosition): Add the relative position offset only
62580        if 'includeSelf' is true.
62581        (WebCore::RenderBox::rightmostPosition): Ditto.
62582        (WebCore::RenderBox::leftmostPosition): Ditto.
62583        * rendering/RenderFlow.cpp:
62584        (WebCore::RenderFlow::lowestPosition): Ditto.
62585        (WebCore::RenderFlow::rightmostPosition): Ditto.
62586        (WebCore::RenderFlow::leftmostPosition): Ditto.
62587
625882007-01-21  Mitz Pettel  <mitz@webkit.org>
62589
62590        Reviewed by Darin.
62591
62592        - fix http://bugs.webkit.org/show_bug.cgi?id=10472
62593          REGRESSION: "add" method of <select> object does not put the <option> object in the correct position
62594
62595        Test: fast/dom/HTMLSelectElement/options-collection-detached.html
62596
62597        * html/HTMLSelectElement.cpp:
62598        (WebCore::HTMLSelectElement::setRecalcListItems): Reset the options collection
62599        info if the <select> is not in the document. For in-document <select>s this
62600        happens anyway as a result of the DOM tree version increasing.
62601
626022007-01-21  Mitz Pettel  <mitz@webkit.org>
62603
62604        Reviewed by Darin.
62605
62606        - fix http://bugs.webkit.org/show_bug.cgi?id=12349
62607          NativeFileUpload: Button text is not grayed out when the control is disabled
62608
62609        Covered by fast/forms/file-input-disabled.html 
62610
62611        * css/html4.css: Changed selectors that had pseudo-classes after the -webkit-file-upload-button
62612        pseudo-element to have the pseudo-element at the end. Pseudo-elements must be at the end.
62613        * rendering/RenderFileUploadControl.cpp:
62614        (WebCore::RenderFileUploadControl::createButtonStyle): Changed to not overwrite the button's
62615        style with its parent's style. getPseudoStyle() handles inheritance properly.
62616
626172007-01-21  Mitz Pettel  <mitz@webkit.org>
62618
62619        Reviewed by Darin.
62620
62621        - fix http://bugs.webkit.org/show_bug.cgi?id=12343
62622          crash in css2.1/t1202-counter-09-b.html
62623
62624        * platform/Font.cpp:
62625        (WebCore::Font::glyphDataForCharacter):
62626
626272007-01-21  Darin Adler  <darin@apple.com>
62628
62629        Reviewed by Adam and Mitz.
62630
62631        - fix http://bugs.webkit.org/show_bug.cgi?id=12347
62632          REGRESSION: list box scrolling broken (fast/forms/listbox-selection.html)
62633
62634        Covered by existing test: fast/forms/listbox-selection.html
62635
62636        * rendering/RenderListBox.h: Added override of layout(), made selectionChanged()
62637        no longer an inline. Added private scrollToRevealSelection(),
62638        m_scrollToRevealSelectionAfterLayout, and m_inAutoscroll.
62639        * rendering/RenderListBox.cpp:
62640        (WebCore::RenderListBox::RenderListBox): Initialize new data members.
62641        (WebCore::RenderListBox::updateFromElement): Remove scrolling code.
62642        (WebCore::RenderListBox::selectionChanged): Moved from header. Calls repaint
62643        and then scrollToRevealSelection, but if we need layout, instead schedules
62644        scrollToRevealSelection to be done after layout.
62645        (WebCore::RenderListBox::layout): Added. After calling base class, calls
62646        scrollToRevealSelection if the m_scrollToRevealSelectionAfterLayout is set.
62647        (WebCore::RenderListBox::scrollToRevealSelection): Added. Code was originally
62648        in updateFromElement.
62649        (WebCore::RenderListBox::autoscroll): Set m_inAutoscroll so that the
62650        selectionChanged function knows not to scroll. Also removed the repaint()
62651        here because updateListBoxSelection() takes care of repainting by calling
62652        selectionChanged().
62653
626542007-01-21  David Kilzer  <ddkilzer@webkit.org>
62655
62656        * page/EventHandler.cpp:
62657        (WebCore::EventHandler::handleMouseMoveEvent): Changed #if SVG_SUPPORT to #ifdef SVG_SUPPORT.
62658
626592007-01-20  Mitz Pettel  <mitz@webkit.org>
62660
62661        Reviewed by Maciej.
62662
62663        - fix http://bugs.webkit.org/show_bug.cgi?id=11115
62664          REGRESSION: Crash on Flickr after hitting cancel from adding a note
62665
62666        Test: fast/forms/text-set-value-crash.html
62667
62668        * html/HTMLInputElement.cpp:
62669        (WebCore::HTMLInputElement::setValue): Added a call to Document::updateRendering().
62670        * html/HTMLTextAreaElement.cpp:
62671        (WebCore::HTMLTextAreaElement::setValue): Ditto.
62672
626732007-01-20  Mitz Pettel  <mitz@webkit.org>
62674
62675        Reviewed by Darin.
62676
62677        - fix http://bugs.webkit.org/show_bug.cgi?id=8360
62678          Repro crash when onscroll handler deletes the scrolled object
62679
62680        Test: fast/layers/removed-by-scroll-handler.html
62681
62682        * rendering/RenderLayer.cpp:
62683        (WebCore::RenderLayer::RenderLayer):
62684        (WebCore::RenderLayer::dispatchScrollEvent): Added. Called when the timer
62685        fires and dispatches the scroll event to the layer's element.
62686        (WebCore::RenderLayer::scrollToOffset): Instead of dispatching the scroll
62687        event from this function, which is called during layout, schedule a 0-duration
62688        timer to dispatch the event after layout.
62689        (WebCore::RenderLayer::scrollRectToVisible):
62690        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
62691        (WebCore::Marquee::start):
62692        * rendering/RenderLayer.h:
62693
626942007-01-20  Nikolas Zimmermann  <zimmermann@kde.org>
62695
62696        Reviewed by Sam.
62697
62698        Fix JS bindings for SVGAnimated{Boolean, Enumeration, Integer, Number, String}.
62699
62700        Dynamic SVG DOM updates (ie. "someUse.href.baseVal = '#rect'") with these types
62701        didn't work. Existing gradient updating examples relied on calling setAttribute
62702        after a SVG DOM update - that was the only reason it worked, added a new test
62703        only using SVG DOM updates (js-update-stop.svg).
62704
62705        Added test: js-update-stop.svg
62706        Added test: use-property-changes-through-dom.svg (change xlink:href, x/y attributes using setAttribute)
62707        Added test: use-property-changes-through-svg-dom.svg (change xlink:href, x/y attributes using SVG DOM)
62708
62709        * bindings/js/JSSVGPODTypeWrapper.h:
62710        (WebCore::JSSVGPODTypeWrapper::commitChange):
62711        (WebCore::JSSVGPODTypeWrapperCreator::commitChange):
62712        (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
62713        * bindings/js/JSSVGPathSegListCustom.cpp:
62714        (WebCore::updatePathSegContextMap):
62715        (WebCore::removeFromPathSegContextMap):
62716        * bindings/scripts/CodeGeneratorJS.pm:
62717        * ksvg2/misc/SVGDocumentExtensions.h:
62718        (WebCore::SVGDocumentExtensions::baseValueMap):
62719        (WebCore::SVGDocumentExtensions::genericContextMap):
62720        (WebCore::SVGDocumentExtensions::baseValue):
62721        (WebCore::SVGDocumentExtensions::setBaseValue):
62722        (WebCore::SVGDocumentExtensions::removeBaseValue):
62723        (WebCore::SVGDocumentExtensions::hasBaseValue):
62724        (WebCore::SVGDocumentExtensions::genericContext):
62725        (WebCore::SVGDocumentExtensions::setGenericContext):
62726        (WebCore::SVGDocumentExtensions::removeGenericContext):
62727        (WebCore::SVGDocumentExtensions::hasGenericContext):
62728        (WebCore::String):
62729        (WebCore::FloatRect):
62730        (WebCore::bool):
62731        (WebCore::double):
62732        * ksvg2/svg/SVGClipPathElement.h:
62733        * ksvg2/svg/SVGElement.h:
62734        (WebCore::SVGElement::notifyAttributeChange):
62735        * ksvg2/svg/SVGPathSegList.cpp:
62736        (WebCore::SVGPathSegList::SVGPathSegList):
62737        (WebCore::SVGPathSegList::context):
62738        * ksvg2/svg/SVGPathSegList.h:
62739        * ksvg2/svg/SVGPatternElement.h:
62740        * ksvg2/svg/SVGPointList.cpp:
62741        (SVGPointList::SVGPointList):
62742        (SVGPointList::context):
62743        * ksvg2/svg/SVGPointList.h:
62744        * ksvg2/svg/SVGStopElement.cpp:
62745        (WebCore::SVGStopElement::parseMappedAttribute):
62746        (WebCore::SVGStopElement::notifyAttributeChange):
62747        * ksvg2/svg/SVGStopElement.h:
62748        * ksvg2/svg/SVGUseElement.cpp:
62749        (WebCore::SVGUseElement::notifyAttributeChange):
62750
627512007-01-20  Rob Buis  <buis@kde.org>
62752
62753        Reviewed by Sam.
62754
62755        http://bugs.webkit.org/show_bug.cgi?id=12334
62756        Respect <text> boundaries for svg text selecting
62757
62758        Make sure the text selection for svg stays inside
62759        containing blocks.
62760        Added one manual test since html selection does not
62761        seem to work for SVG and selectSubString for SVG
62762        is not implemented yet.
62763
62764        * manual-tests/svg-text-selection.svg: Added.
62765        * page/EventHandler.cpp:
62766        (WebCore::EventHandler::handleMouseMoveEvent):
62767        * rendering/RenderObject.h:
62768        (WebCore::RenderObject::isSVGText):
62769        * rendering/RenderSVGInlineText.h:
62770        (WebCore::RenderSVGInlineText::isSVGText):
62771        * rendering/RenderSVGText.h:
62772        (WebCore::RenderSVGText::isSVGText):
62773
627742007-01-19  Adele Peterson  <adele@apple.com>
62775
62776        Reviewed by Hyatt.
62777
62778        Fix for: <rdar://problem/4697438> REGRESSION: select menu lists match the wrong css rule on www.chainreaction.com
62779
62780        Update the size attribute value for select elements to match the numeric value.  This is a special case since this
62781        attribute is used to determine which control to use.  We want to make sure that the size attribute is valid when we match
62782        CSS rules.
62783
62784        Test: fast/forms/select-size.html
62785
62786        * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute): If the attribute string value is not the
62787          same as its integer value, then update the attribute value to match the integer.
62788        * dom/Attribute.h: Made setValue and setPrefix public.
62789
627902007-01-19  John Sullivan  <sullivan@apple.com>
62791
62792        Reviewed by Darin
62793
62794        - WebCore part of fix for: <rdar://problem/4451715> REGRESSION: On some sites, have to 
62795          type a character before username/password autofill kicks in
62796
62797        * loader/FrameLoaderClient.h:
62798        new dispatchDidFinishDocumentLoad call
62799
62800        * loader/FrameLoader.cpp:
62801        (WebCore::FrameLoader::finishedParsing):
62802        call dispatchDidFinishDocumentLoad
62803        
62804        * platform/graphics/svg/SVGImageEmptyClients.h:
62805        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFinishDocumentLoad):
62806        empty implementation for dispatchDidFinishDocumentLoad
62807
628082007-01-19  Adele Peterson  <adele@apple.com>
62809
62810        Reviewed by Hyatt.
62811
62812        Fix for <rdar://problem/4760280> REGRESSION: Bottom portion of text hangs off edge of SELECT element at http://macreviewzone.com/index.php
62813        
62814        Test: fast/forms/control-restrict-line-height.html
62815
62816        * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::setFontFromControlSize): Don't honor line-height for controls that
62817          have restricted font size.
62818
628192007-01-19  Darin Adler  <darin@apple.com>
62820
62821        Reviewed by Adele.
62822
62823        - fix http://bugs.webkit.org/show_bug.cgi?id=11999
62824          <rdar://problem/4940442> REGRESSION: Incomplete listing in TVListings window (11999)
62825          Fix was to use the actual size of the renderer in the RenderListBox
62826          case, instead of always using the size specified by the select element.
62827
62828        Test: fast/forms/select-list-box-with-height.html
62829
62830        - fix http://bugs.webkit.org/show_bug.cgi?id=11995
62831          <rdar://problem/4901834> REGRESSION(NativeListBox): Focus is not placed on
62832          SELECT after mousing down on OPTION
62833
62834        Test: fast/forms/select-list-box-mouse-focus.html
62835
62836        - fix bug where auto-scrolling was not working in list box select elements
62837
62838        No test yet.
62839
62840        - fix a missing semicolon in the radio/checkbox section of html4.css
62841
62842        Test: fast/forms/radio-no-theme-padding.html
62843
62844        - fix bug where the scroll bars for select elements were pixel-type scroll
62845          bars even though the scrolling is line at a time scrolling
62846
62847        No test.
62848
62849        * html/HTMLSelectElement.cpp:
62850        (WebCore::HTMLSelectElement::selectAll): Removed an explicit call
62851        to repaint, since the RenderListBox now does that in selectionChanged.
62852        (WebCore::HTMLSelectElement::notifyOptionSelected): Call the new
62853        selectionChanged instead of the old setSelectionChanged.
62854        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Added a call
62855        to focus. Removed an explicit call to repaint and added a call to the
62856        new setMouseDownMayStartAutoscroll function in EventHandler. Removed an
62857        explicit call to repaint as above.
62858        (WebCore::HTMLSelectElement::updateListBoxSelection): Call the new
62859        selectionChanged instead of the old setSelectionChanged.
62860
62861        * page/EventHandler.h: Added setMouseDownMayStartAutoscroll, needed
62862        because the existing code to set that flag won't get triggered when
62863        the select element's default event handler handles the event.
62864
62865        * rendering/RenderListBox.h: Made ScrollbarClient a private base class.
62866        Removed setSelectionChanged and m_selectionChanged. Added selectionChanged,
62867        which is really just a synonym for repaint for now. Moved valueChanged,
62868        the ScrollbarClient function implementations, and itemHeight into the
62869        private part of the class. Added numVisibleItems() and listHeight() to
62870        the private section. Changed m_vBar to be a RefPtr.
62871
62872        * rendering/RenderListBox.cpp: Removed unneeded includes. Moved all
62873        the constants to the top of the file.
62874        (WebCore::RenderListBox::RenderListBox): Removed initialization of
62875        m_selectionChanged because it was removed and of m_vBar because it's
62876        now a RefPtr which is automaticall initialized.
62877        (WebCore::RenderListBox::~RenderListBox): Removed the explicit deref of
62878        m_vBar because it's a RefPtr. Added null checking for FrameView.
62879        (WebCore::RenderListBox::updateFromElement): Use numItems().
62880        (WebCore::RenderListBox::calcMinMaxWidth): Added null checking for
62881        FrameView and used RefPtr for the newly-created scroll bar.
62882        (WebCore::RenderListBox::size): Tweaked formatting. Also renamed the
62883        misleading minDefaultSize to maxDefaultSize, since it's a maximum.
62884        (WebCore::RenderListBox::numVisibleItems): Added. Used in many places
62885        where size() was used before. This computes the number of rows we have
62886        room for. We don't need a row space after the last row, and this takes
62887        that into account.
62888        (WebCore::RenderListBox::numItems): Tweaked to remove the local variable.
62889        (WebCore::RenderListBox::listHeight): Added. Total height of all the rows
62890        and spaces between them.
62891        (WebCore::RenderListBox::calcHeight): Changed to call itemHeight for the
62892        row height, and to subtract the last row spacing off since we don't need
62893        a space after the last row. Changed the scroll bar setup to make it
62894        correspond to row numbers, not pixel numbers.
62895        (WebCore::RenderListBox::baselinePosition): Moved the comment to the
62896        constant declaration at the top of the file.
62897        (WebCore::RenderListBox::itemBoundingBoxRect): Simplified by using
62898        the itemHeight() function.
62899        (WebCore::RenderListBox::paintObject): Changed to use numItems and
62900        to use numVisibleItems instead of size.
62901        (WebCore::RenderListBox::isPointInScrollbar): Added get() call since
62902        m_vBar is now a RefPtr.
62903        (WebCore::RenderListBox::listIndexAtOffset): Changed to use numItems(),
62904        itemHeight(), and rearranged a min/max combo so it starts with the low,
62905        then the value, then the high value for pinning.
62906        (WebCore::RenderListBox::autoscroll): Use numVisibleItems() instead of
62907        size().
62908        (WebCore::RenderListBox::stopAutoscroll): Removed an unneeded nil check
62909        of the element.
62910        (WebCore::RenderListBox::scrollToRevealElementAtListIndex): Changed
62911        to use numItems() and to use numVisibleItems() instead of size().
62912        Also changed scroll bar code to work more simply now that the scroll
62913        bar is row-based.
62914        (WebCore::RenderListBox::listIndexIsVisible): Changed to use
62915        numVisibleItems() instead of size().
62916        (WebCore::RenderListBox::valueChanged): Simplified since the scrollbar
62917        is now row-based. Also removed an unnecessary null check.
62918        (WebCore::RenderListBox::itemHeight): Updated for name change from
62919        optionsSpacingMiddle to rowSpacing.
62920        (WebCore::RenderListBox::scrollHeight): Changed to use listHeight().
62921        (WebCore::RenderListBox::setScrollTop): Simplified, and removed the code
62922        that does nothing if the computed list index is visible (which did not
62923        make sense for this function and seemed a cut and paste error from the
62924        scrollToReveal function). The scrollbar part is simpler now that it's
62925        row-based.
62926        (WebCore::RenderListBox::windowClipRect): Changed to use document()->view()
62927        so we don't have to include RenderView.h.
62928
62929        * css/html4.css: Added a semicolon I noticed was missing.
62930
629312007-01-19  Beth Dakin  <bdakin@apple.com>
62932
62933        Reviewed by Maciej and Darin.
62934
62935        Fix for <rdar://problem/4702420> REGRESSION: Null characters need 
62936        to be stripped from text nodes (townhall.com)
62937
62938        This was a regression from the fix for <rdar://problem/3727939>
62939        Safari strips \0 characters from HTML tags making them valid, which
62940        was fixed with r12652. We still need to strip null characters in
62941        text nodes.
62942
62943        * html/HTMLTokenizer.cpp:
62944        (WebCore::HTMLTokenizer::write): No behavior change here, this is
62945        just to make Darin happy.
62946        (WebCore::HTMLTokenizer::processToken): Call into StringImpl's new 
62947        createStrippingNull function instead of the normal StringImpl 
62948        constructor.
62949        * platform/StringImpl.cpp:
62950        (WebCore::StringImpl::createStrippingNull): Strip null.
62951        * platform/StringImpl.h:
62952
629532007-01-19  David Kilzer  <ddkilzer@webkit.org>
62954
62955        Reviewed by NOBODY (no-svg build fix).
62956
62957        * ksvg2/svg/SVGMPathElement.cpp: Added #ifdef SVG_SUPPORT/#endif guards.
62958
629592007-01-19  Anders Carlsson  <acarlsson@apple.com>
62960        
62961        Build fix.
62962        
62963        * platform/graphics/svg/SVGImageEmptyClients.h:
62964        (WebCore::SVGEmptyChromeClient::setStatusbarText):
62965
629662007-01-18  Anders Carlsson  <acarlsson@apple.com>
62967
62968        Reviewed by Adam.
62969
62970        Move JavaScript alert and status bar functions to the chrome.
62971        
62972        * bindings/js/kjs_window.cpp:
62973        (KJS::WindowFunc::callAsFunction):
62974        * page/Chrome.cpp:
62975        (WebCore::Chrome::runJavaScriptAlert):
62976        (WebCore::Chrome::runJavaScriptConfirm):
62977        (WebCore::Chrome::runJavaScriptPrompt):
62978        (WebCore::Chrome::setStatusBarText):
62979        * page/Chrome.h:
62980        * page/ChromeClient.h:
62981        * page/Frame.cpp:
62982        (WebCore::Frame::setJSStatusBarText):
62983        (WebCore::Frame::setJSDefaultStatusBarText):
62984        * page/Frame.h:
62985        * page/mac/FrameMac.h:
62986        * page/mac/FrameMac.mm:
62987        * page/mac/WebCoreFrameBridge.h:
62988        * platform/graphics/svg/SVGImageEmptyClients.h:
62989        (WebCore::SVGEmptyChromeClient::runJavaScriptAlert):
62990        (WebCore::SVGEmptyChromeClient::runJavaScriptConfirm):
62991        (WebCore::SVGEmptyChromeClient::runJavaScriptPrompt):
62992        (WebCore::SVGEmptyChromeClient::setStatusBarText):
62993
629942007-01-19  Zack Rusin  <zack@kde.org>
62995
62996        Fix the build.
62997
62998        * WebCore.pro: Add missing files
62999
630002007-01-19  Eric Seidel  <eric@webkit.org>
63001
63002        Reviewed by rwlbuis.
63003
63004        More cleanup to SVGAnimated* classes.
63005
63006        No tests possible (only code cleanup)
63007
63008        * ksvg2/svg/SVGAnimateMotionElement.cpp:
63009        (WebCore::SVGAnimateMotionElement::applyAnimationToValue):
63010        * ksvg2/svg/SVGAnimateMotionElement.h:
63011        * ksvg2/svg/SVGAnimationElement.cpp:
63012        (WebCore::SVGAnimationElement::parseBeginOrEndValue):
63013        (WebCore::SVGAnimationElement::parseMappedAttribute):
63014        (WebCore::SVGAnimationElement::parseClockValue):
63015        (WebCore::SVGAnimationElement::isIndefinite):
63016        * ksvg2/svg/SVGAnimationElement.h:
63017
630182007-01-19  Nikolas Zimmermann  <zimmermann@kde.org>
63019
63020        Not reviewed.
63021
63022        Remove accidently commited debug output. Shame on me :-)
63023
63024        * ksvg2/svg/SVGUseElement.cpp:
63025        (WebCore::SVGUseElement::notifyAttributeChange):
63026
630272007-01-19  Nikolas Zimmermann  <zimmermann@kde.org>
63028
63029        Reviewed by Eric.
63030
63031        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10410 (SVG Slider example renders completely wrong (inserting <use> dynamically doesn't work))
63032        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11660 (SVG: creation of <use/> elements through scripting/DOM doesn't work)
63033
63034        Added test: svg/custom/use-instanceRoot-modifications.svg
63035        Added test: svg/custom/use-on-g.svg
63036        Added test: svg/custom/use-on-rect.svg
63037        Added test: svg/custom/use-on-symbol-inside-pattern.svg
63038        Added test: svg/custom/use-on-symbol.svg
63039        Added test: svg/custom/use-on-text.svg
63040        Added test: svg/custom/use-transform.svg
63041
63042        Fixes: svg/W3C-SVG-1.1/text-text-04-t.svg (missing use elements)
63043        Fixes: svg/carto.net/button.svg (image buttons didn't appear)
63044        Fixes: svg/carto.net/colourpicker.svg (slider handles finally show up)
63045        Fixes: svg/carto.net/slider.svg (slider handles finally show up)
63046        Fixes: svg/carto.net/window.svg (window decorations show up) 
63047        Fixes: svg/custom/use-forward-refs.svg (missing use elements)
63048
63049        Rewrite <use> support with a real-shadow tree (as the spec demands), and implement SVGElementInstance.
63050        AFAIK we're the first implementing this SVG feature - after ASV3 (!).
63051
63052        * DerivedSources.make:
63053        * WebCore.xcodeproj/project.pbxproj:
63054        * bindings/objc/DOMInternal.h:
63055        * bindings/objc/DOMSVG.h:
63056        * ksvg2/misc/SVGDocumentExtensions.cpp:
63057        (WebCore::SVGDocumentExtensions::reportWarning):
63058        (WebCore::SVGDocumentExtensions::reportError):
63059        (WebCore::SVGDocumentExtensions::addPendingResource):
63060        (WebCore::SVGDocumentExtensions::isPendingResource):
63061        (WebCore::SVGDocumentExtensions::removePendingResource):
63062        (WebCore::SVGDocumentExtensions::mapInstanceToElement):
63063        (WebCore::SVGDocumentExtensions::removeInstanceMapping):
63064        (WebCore::SVGDocumentExtensions::instancesForElement):
63065        * ksvg2/misc/SVGDocumentExtensions.h:
63066        * ksvg2/svg/SVGCircleElement.cpp:
63067        (WebCore::SVGCircleElement::notifyAttributeChange):
63068        * ksvg2/svg/SVGElement.cpp:
63069        (WebCore::SVGElement::insertedIntoDocument):
63070        * ksvg2/svg/SVGElement.h:
63071        (WebCore::SVGElement::buildPendingResource):
63072        * ksvg2/svg/SVGElementInstance.cpp:
63073        (WebCore::SVGElementInstance::SVGElementInstance):
63074        (WebCore::SVGElementInstance::~SVGElementInstance):
63075        (WebCore::SVGElementInstance::clonedElement):
63076        (WebCore::SVGElementInstance::correspondingElement):
63077        (WebCore::SVGElementInstance::correspondingUseElement):
63078        (WebCore::SVGElementInstance::parentNode):
63079        (WebCore::SVGElementInstance::childNodes):
63080        (WebCore::SVGElementInstance::previousSibling):
63081        (WebCore::SVGElementInstance::nextSibling):
63082        (WebCore::SVGElementInstance::firstChild):
63083        (WebCore::SVGElementInstance::lastChild):
63084        (WebCore::SVGElementInstance::appendChild):
63085        (WebCore::SVGElementInstance::updateInstance):
63086        * ksvg2/svg/SVGElementInstance.h:
63087        * ksvg2/svg/SVGElementInstance.idl: Added.
63088        * ksvg2/svg/SVGElementInstanceList.cpp:
63089        (WebCore::SVGElementInstanceList::SVGElementInstanceList):
63090        (WebCore::SVGElementInstanceList::length):
63091        (WebCore::SVGElementInstanceList::item):
63092        * ksvg2/svg/SVGElementInstanceList.h:
63093        * ksvg2/svg/SVGElementInstanceList.idl: Added.
63094        * ksvg2/svg/SVGEllipseElement.cpp:
63095        (WebCore::SVGEllipseElement::notifyAttributeChange):
63096        * ksvg2/svg/SVGGElement.cpp:
63097        * ksvg2/svg/SVGGElement.h:
63098        (WebCore::SVGGElement::contextElement):
63099        * ksvg2/svg/SVGGradientElement.cpp:
63100        * ksvg2/svg/SVGGradientElement.h:
63101        * ksvg2/svg/SVGHiddenElement.h: Added.
63102        (WebCore::SVGHiddenElement::Type):
63103        (WebCore::SVGHiddenElement::~SVGHiddenElement):
63104        (WebCore::SVGHiddenElement::localName):
63105        * ksvg2/svg/SVGImageElement.cpp:
63106        (WebCore::SVGImageElement::notifyAttributeChange):
63107        * ksvg2/svg/SVGLineElement.cpp:
63108        (WebCore::SVGLineElement::notifyAttributeChange):
63109        * ksvg2/svg/SVGPathElement.cpp:
63110        (WebCore::SVGPathElement::notifyAttributeChange):
63111        * ksvg2/svg/SVGPatternElement.cpp:
63112        * ksvg2/svg/SVGPatternElement.h:
63113        * ksvg2/svg/SVGPolyElement.cpp:
63114        (WebCore::SVGPolyElement::notifyAttributeChange):
63115        * ksvg2/svg/SVGRectElement.cpp:
63116        (WebCore::SVGRectElement::notifyAttributeChange):
63117        * ksvg2/svg/SVGStyledElement.cpp:
63118        (WebCore::SVGStyledElement::notifyAttributeChange):
63119        (WebCore::SVGStyledElement::updateElementInstance):
63120        * ksvg2/svg/SVGStyledElement.h:
63121        * ksvg2/svg/SVGUseElement.cpp:
63122        (WebCore::SVGUseElement::instanceRoot):
63123        (WebCore::SVGUseElement::animatedInstanceRoot):
63124        (WebCore::SVGUseElement::hasChildNodes):
63125        (WebCore::SVGUseElement::insertedIntoDocument):
63126        (WebCore::SVGUseElement::buildPendingResource):
63127        (WebCore::SVGUseElement::createRenderer):
63128        (WebCore::SVGUseElement::buildShadowTree):
63129        (WebCore::SVGUseElement::recursiveShadowTreeBuilder):
63130        (WebCore::dumpShadowTree):
63131        (WebCore::SVGUseElement::addShadowTree):
63132        * ksvg2/svg/SVGUseElement.h:
63133        * ksvg2/svg/SVGUseElement.idl:
63134
631352007-01-19  Eric Seidel  <eric@webkit.org>
63136
63137        Reviewed by rwlbuis.
63138
63139        Add support for SVGMPathElement parsing.
63140
63141        No test cases possible (SVGAnimateMotion doesn't work yet)
63142
63143        * WebCore.xcodeproj/project.pbxproj:
63144        * ksvg2/svg/SVGAnimateMotionElement.cpp:
63145        (WebCore::SVGAnimateMotionElement::animationPath):
63146        * ksvg2/svg/SVGMPathElement.cpp: Added.
63147        (WebCore::SVGMPathElement::SVGMPathElement):
63148        (WebCore::SVGMPathElement::~SVGMPathElement):
63149        (WebCore::SVGMPathElement::parseMappedAttribute):
63150        (WebCore::SVGMPathElement::pathElement):
63151        * ksvg2/svg/SVGMPathElement.h: Added.
63152        * ksvg2/svg/SVGNumberList.cpp:
63153        (WebCore::SVGNumberList::parse): fix typo in comment
63154        * ksvg2/svg/svgtags.in: add back mpath
63155
631562007-01-19  Eric Seidel  <eric@webkit.org>
63157
63158        Reviewed by rwlbuis.
63159
63160        Implement better parsing for keyTimes, keySplines and keyPoints.
63161
63162        Unfortunately none of this code is used much yet, thus isn't very testable.
63163
63164        * ksvg2/svg/SVGAnimateMotionElement.cpp:
63165        (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
63166        * ksvg2/svg/SVGAnimationElement.cpp:
63167        (WebCore::SVGAnimationElement::parseKeyNumbers):
63168        (WebCore::parseKeySplines):
63169        (WebCore::SVGAnimationElement::parseMappedAttribute):
63170        * ksvg2/svg/SVGAnimationElement.h:
63171        * ksvg2/svg/SVGNumberList.cpp:
63172        (WebCore::SVGNumberList::parse):
63173
631742007-01-18  Adam Roben  <aroben@apple.com>
63175
63176        Reviewed by Beth.
63177
63178        Fix: <rdar://problem/4939672> REGRESSION: With text selected that is
63179        not a link, the "Remove Link" contextual menu item remains active
63180
63181        * platform/ContextMenuItem.h: Added enabled method.
63182        * platform/qt/ContextMenuItemQt.cpp:
63183        (WebCore::ContextMenuItem::enabled): Implemented.
63184        * platform/mac/ContextMenuItemMac.mm:
63185        (WebCore::ContextMenuItem::enabled): Ditto.
63186        * platform/mac/ContextMenuMac.mm:
63187        (-[WebCoreMenuTarget validateMenuItem:]): Implemented to fulfill the
63188        NSMenuValidation protocol.
63189        
631902007-01-18  Beth Dakin  <bdakin@apple.com>
63191
63192        Reviewed by Adele.
63193
63194        Fix for <rdar://problem/4939558> REGRESSION: "Search in Google", 
63195        "Search in Spotlight" and "Look up in Dictionary" are missing 
63196        initially from the contextual menu
63197
63198        The bug here is that we select the we were selecting the word after 
63199        the context menu event was dispatched and after the context menu 
63200        was built up.
63201
63202        * page/EventHandler.cpp:
63203        (WebCore::EventHandler::sendContextMenuEvent): Select the word 
63204        before dispatching the event. It is safe to remove the check for 
63205        swallowEvent since WebCore context menus ensure that we always 
63206        swallow the event anyway.
63207
632082007-01-18  Mark Rowe  <mrowe@apple.com>
63209
63210        Reviewed by Tim H.
63211
63212        Fix for http://bugs.webkit.org/show_bug.cgi?id=7926
63213        Bug 7926: Crash using -callWebScriptMethod to access offsetTop property
63214
63215        * bindings/objc/WebScriptObject.mm:
63216        (-[WebScriptObject callWebScriptMethod:withArguments:]): Bail out early if function value is an immediate,
63217        or if the function object is not callable.
63218
632192007-01-18  Sam Weinig  <sam@webkit.org>
63220
63221        Reviewed by Maciej.
63222
63223        Patch for http://bugs.webkit.org/show_bug.cgi?id=11853
63224        REGRESSION (r17352): Whitespace in <title> is rendered
63225
63226        * loader/DocumentLoader.cpp:
63227        (WebCore::canonicalizedTitle): Changed to also collapse internal
63228        whitespace.  This required removing an optimization that is no
63229        longer possible.
63230        * manual-tests/title-internal-whitespace.html: Added.
63231
632322007-01-18  Mitz Pettel  <mitz@webkit.org>
63233
63234        Reviewed by Maciej.
63235
63236        - fix http://bugs.webkit.org/show_bug.cgi?id=12039
63237          Assertion failure in WebCore::Font::primaryFont
63238
63239        Test: fast/text/font-initial.html
63240
63241        * css/cssstyleselector.cpp:
63242        (WebCore::CSSStyleSelector::applyProperty): Give 'font: initial' the
63243        Standard generic family. This makes the FontDescription different from
63244        that of the initial font of a GraphicsContext, ensuring that the latter
63245        will not be used.
63246
632472007-01-18  Mitz Pettel  <mitz@webkit.org>
63248
63249        Reviewed by Darin.
63250
63251        - fix http://bugs.webkit.org/show_bug.cgi?id=11451
63252          REGRESSION: Dell.com does not render correctly in ToT (stylesheet not loaded)
63253
63254        Test: http/tests/misc/css-accept-any-type.html
63255
63256        * loader/CachedCSSStyleSheet.cpp:
63257        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Changed the accept header
63258        for stylesheets to "text/css,*/*;q=0.1" to match Firefox, accepting CSS served
63259        as any type.
63260
632612007-01-18  Mitz Pettel  <mitz@webkit.org>
63262
63263        Reviewed by Darin.
63264
63265        - fix http://bugs.webkit.org/show_bug.cgi?id=11271
63266        REGRESSION (r12358): Text in display: table unselectable
63267
63268        Test: editing/selection/display-table-text.html
63269
63270        * editing/htmlediting.cpp:
63271        (WebCore::isTableElement): Changed to return false for text nodes.
63272
632732007-01-18  Mitz Pettel  <mitz@webkit.org>
63274
63275        Reviewed by Darin.
63276
63277        - fix http://bugs.webkit.org/show_bug.cgi?id=6218
63278          CSS1: WebTextRenderer caches and re-uses fallback renderers that are based on family lists
63279
63280        This patch takes character-to-glyph mapping out of FontData and instead makes
63281        each Font keep its own mapping, using a shared set of glyph page fallback trees.
63282
63283        For each page number there is (at most) one tree. A path from the root to a
63284        node in the tree corresponds to a fallback list of FontDatas. The node points to
63285        a page (which may be shared with other nodes) that maps each character in its range
63286        to a glyph in the first FontData in the fallback list that has it, or to 0 if none of
63287        the FontDatas has a glyph for that character. A special kind of node, that can
63288        only occur as a leaf, corresponds to using system fallback fonts after the list
63289        has been exhausted. This prevents system fallback from polluting non-leaf
63290        nodes.
63291
63292        Nodes and pages are initialized lazily and employ "copy on write".
63293
63294        * CMakeLists.txt:
63295        * WebCore.pro:
63296        * WebCore.vcproj/WebCore/WebCore.vcproj:
63297        * WebCore.xcodeproj/project.pbxproj:
63298        * WebCoreSources.bkl:
63299        * platform/Font.cpp:
63300        (WebCore::WidthIterator::WidthIterator): Removed substituteFontData.
63301        (WebCore::WidthIterator::advance): Moved all character-to-glyph mapping logic out
63302        of here and replaced it with a call to Font::glyphDataForCharacter().
63303        (WebCore::Font::Font):
63304        (WebCore::Font::operator=):
63305        (WebCore::Font::glyphDataForCharacter): Added. This method performs the lookup in the
63306        page fallback trees, triggering lazy initialization as needed, and caching pointers to
63307        the retrieved page tree nodes in the font.
63308        (WebCore::Font::update):
63309        (WebCore::Font::drawSimpleText):
63310        (WebCore::Font::floatWidth):
63311        (WebCore::Font::floatWidthForSimpleText): Removed substituteFont argument.
63312        (WebCore::Font::offsetForPositionForSimpleText):
63313        * platform/Font.h:
63314        * platform/FontData.cpp:
63315        (WebCore::FontData::FontData):
63316        * platform/FontData.h:
63317        (WebCore::FontData::missingGlyphData): Added. Returns the "missing glyph" GlyphData for
63318        this FontData.
63319        * platform/GlyphMap.cpp: Removed.
63320        * platform/GlyphMap.h: Removed.
63321        * platform/GlyphPageTreeNode.cpp: Renamed GlyphMap.cpp to this.
63322        (WebCore::GlyphPageTreeNode::getRoot): Added. Returns the root of the page fallback tree for
63323        the given page number.
63324        (WebCore::GlyphPageTreeNode::initializePage): Added. Helper method that initializes the page
63325        pointer of a node, possibly to a pointer to another node's page or to 0.
63326        (WebCore::GlyphPageTreeNode::getChild): Added.
63327        * platform/GlyphPageTreeNode.h: Renamed GlyphMap.h to this.
63328        (WebCore::GlyphPage::glyphDataForCharacter):
63329        (WebCore::GlyphPage::setGlyphDataForCharacter):
63330        (WebCore::GlyphPage::setGlyphDataForIndex):
63331        (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
63332        (WebCore::GlyphPageTreeNode::getRootChild):
63333        (WebCore::GlyphPageTreeNode::parent):
63334        (WebCore::GlyphPageTreeNode::page):
63335        (WebCore::GlyphPageTreeNode::level):
63336        (WebCore::GlyphPageTreeNode::isSystemFallback): Added. Returns whether the node corresponds
63337        to the system providing fallback fonts, which is done on a character-by-character basis.
63338        * platform/gdk/GlyphMapGdk.cpp: Removed.
63339        * platform/gdk/GlyphPageTreeNodeGdk.cpp: Renamed GlyphMapGdk.cpp to this.
63340        (WebCore::GlyphPage::fill):
63341        * platform/mac/FontDataMac.mm:
63342        (WebCore::FontData::platformInit):
63343        * platform/mac/FontMac.mm:
63344        (WebCore::Font::Font):
63345        * platform/mac/GlyphMapMac.cpp: Removed.
63346        * platform/mac/GlyphPageTreeNodeMac.cpp: Renamed GlypMapMac.cpp to this.
63347        (WebCore::GlyphPage::fill): Changed to return false if the font has no glyphs in the page.
63348        * platform/qt/GlyphMapQt.cpp: Removed.
63349        * platform/qt/GlyphPageTreeNodeQt.cpp: Renamed GlyphMapQt.cpp to this.
63350        (WebCore::GlyphPage::fill):
63351        * platform/win/GlyphMapWin.cpp: Removed.
63352        * platform/win/GlyphPageTreeNodeWin.cpp: Renamed GlyphMapWin to this.
63353        (WebCore::GlyphPage::fill):
63354
633552007-01-18  Mitz Pettel  <mitz@webkit.org>
63356
63357        Reviewed by Darin.
63358
63359        - fix http://bugs.webkit.org/show_bug.cgi?id=9952
63360          REGRESSION: Repro crash when dragging an image from the window to the address bar
63361
63362        * page/FrameView.cpp:
63363        (WebCore::FrameView::~FrameView): Removed the call to Document::detach(). If this
63364        view is the current view, then the Frame should have already detached the document.
63365        Added an assertion that this is the case. If this view is not the current view,
63366        then it cannot access its document, but the page cache should have detached it already.
63367        Similarly, changed to call RenderPart::setWidget() only if this is the current view
63368        in the frame.
63369        (WebCore::FrameView::adjustViewSize): Added an assertion that this view is the current
63370        view in the frame.
63371        (WebCore::FrameView::layout): Ditto.
63372        (WebCore::FrameView::scheduleRelayout): Ditto.
63373        (WebCore::FrameView::scheduleRelayoutOfSubtree): Ditto.
63374        (WebCore::FrameView::windowClipRect): Ditto.
63375
633762007-01-18  Eric Seidel  <eric@webkit.org>
63377
63378        Reviewed by bdash.
63379
63380        No test needed, removed bogus debug-only ASSERT.
63381
63382        * rendering/RenderSVGContainer.cpp:
63383        (WebCore::RenderSVGContainer::paint):
63384
633852007-01-18  Alice Liu  <alice.liu@apple.com>
63386
63387        Build Fix
63388
63389        * platform/mac/PasteboardMac.mm:
63390        (WebCore::Pasteboard::writeSelection):
63391
633922007-01-18  Alice Liu  <alice.liu@apple.com>
63393
63394        Reviewed by Mark Rowe.
63395
63396        Fixes the leaks from my last patch, except for the first change below which is a missing delegate call for Mail purposes
63397
63398        * editing/Editor.cpp:
63399        (WebCore::Editor::cut):
63400        * platform/Pasteboard.h:
63401        * platform/mac/PasteboardMac.mm:
63402        (WebCore::Pasteboard::Pasteboard):
63403        (WebCore::Pasteboard::clear):
63404        (WebCore::Pasteboard::writeSelection):
63405        (WebCore::Pasteboard::writeURL):
63406        (WebCore::Pasteboard::plainText):
63407        (WebCore::Pasteboard::documentFragment):
63408
634092007-01-18  David Hyatt  <hyatt@apple.com>
63410
63411        Make sure layer autoscrolling puts the event coordinates into the layer's coordinate space before
63412        calling hitTest on it.  Fixes "flashy" selection in textareas.
63413
63414        Reviewed by darin
63415
63416        * rendering/RenderLayer.cpp:
63417        (WebCore::RenderLayer::autoscroll):
63418        * rendering/RenderTextControl.cpp:
63419        (WebCore::RenderTextControl::nodeAtPoint):
63420
634212007-01-18  Anders Carlsson  <acarlsson@apple.com>
63422
63423        Reviewed by Adam.
63424
63425        Get rid of ResourceLoaderMac.mm and make willCacheResponse platform-independent.
63426        
63427        * loader/ResourceLoader.cpp:
63428        (WebCore::ResourceLoader::willCacheResponse):
63429        * loader/ResourceLoader.h:
63430        * loader/mac/ResourceLoaderMac.mm: Removed.
63431        * platform/network/ResourceHandleClient.h:
63432        (WebCore::):
63433        (WebCore::ResourceHandleClient::willCacheResponse):
63434        (WebCore::ResourceHandleClient::willStopBufferingData):
63435        * platform/network/mac/ResourceHandleMac.mm:
63436        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
63437
634382007-01-18  Maciej Stachowiak  <mjs@apple.com>
63439
63440        Reviewed by John.
63441
63442        - fixed <rdar://problem/4887416> REGRESSION (SearchField): Assertion failure in HTMLInputElement::setValueFromRenderer when editing via drag and drop (11846)
63443        http://bugs.webkit.org/show_bug.cgi?id=11846
63444        
63445        * editing/ReplaceSelectionCommand.cpp:
63446        (WebCore::ReplaceSelectionCommand::doApply): Don't insert extra paragraph separators to avoid
63447        nesting blocks in plaintext mode, since that's not an issue under normal circumstances.
63448        * html/HTMLInputElement.h:
63449        * manual-tests/drag-move-in-search-field.html: Added.
63450        * rendering/RenderTextControl.cpp:
63451        (WebCore::RenderTextControl::subtreeHasChanged): constrain the value; we'd
63452        rather truncate it than end up with an illegal value here.
63453
634542007-01-18  Simon Hausmann  <hausmann@kde.org>
63455
63456        Reviewed by Zack.
63457
63458        * WebCore.pro: Ha^H^HFix to support massive parallel builds.
63459
634602007-01-18  David Kilzer  <ddkilzer@kilzer.net>
63461
63462        Reviewed by Darin and Mitz.
63463
63464        - fix http://bugs.webkit.org/show_bug.cgi?id=12305
63465          REGRESSION: Images do not load in video sections on CNN.com homepage
63466
63467        <rdar://problem/4931480> REGRESSION: Images do not load in video sections on CNN.com homepage (12305)
63468
63469        Test: fast/dom/HTMLImageElement/image-lowsrc-getset.html
63470
63471        * html/HTMLAttributeNames.in: Added lowsrc.
63472        * html/HTMLImageElement.cpp:
63473        (WebCore::HTMLImageElement::isURLAttribute): Added lowsrc.
63474        (WebCore::HTMLImageElement::lowsrc): Added.
63475        (WebCore::HTMLImageElement::setLowsrc): Added.
63476        * html/HTMLImageElement.h: Added lowsrc and setLowsrc.
63477        * html/HTMLImageElement.idl: Added lowsrc.
63478
634792007-01-18  Simon Hausmann  <hausmann@kde.org>
63480
63481        Reviewed by Zack.
63482
63483        * WebCore.pro: Remove generated files on make clean.
63484
634852007-01-17  Alice Liu  <alice.liu@apple.com>
63486
63487        Reviewed by Harrison.
63488
63489        Fix for <rdar://problem/4894155> REGRESSION: Extra line break is pasted with content into message body after choosing File - Paste
63490
63491        Migration of some editing code from WebHTMView to WebCore::Editor
63492        resulted in not calling pasteboardTypesForSelection, which Mail was
63493        overriding for the special purpose of adding a type to the
63494        pasteboard after WebKit did.  This patch adds 2 separate code paths
63495        for Tiger and Leopard.  On Tiger we give in and call the WebView's
63496        pasteboardTypesForSelection.  On Leopard we call a delegate after
63497        the pasteboard types are set. 
63498
63499        * bridge/EditorClient.h:
63500        * editing/Editor.h:
63501        * platform/Pasteboard.h:
63502        * platform/graphics/svg/SVGImageEmptyClients.h:
63503        (WebCore::SVGEmptyEditorClient::didSetSelectionTypesForPasteboard):
63504        (WebCore::SVGEmptyEditorClient::pasteboardTypesForSelection):
63505        * platform/mac/PasteboardMac.mm:
63506        (WebCore::Pasteboard::Pasteboard):
63507        (WebCore::Pasteboard::clear):
63508        (WebCore::Pasteboard::writeSelection):
63509        (WebCore::Pasteboard::writeURL):
63510        (WebCore::Pasteboard::plainText):
63511        (WebCore::Pasteboard::documentFragment):
63512
635132007-01-17  John Sullivan  <sullivan@apple.com>
63514
63515        Reviewed by Darin
63516
63517        - WebCore part of fix for <rdar://problem/4462420> REGRESSION: Mail hangs during 
63518          Replace All if the replacement string contains the search string
63519        
63520        * page/Frame.h:
63521        * page/Frame.cpp:
63522        (WebCore::Frame::findString):
63523        new startInSelection parameter -- if true, search starts looking in selection; if false,
63524        search starts looking after the selection
63525        
63526        * page/mac/WebCoreFrameBridge.h:
63527        * page/mac/WebCoreFrameBridge.mm:
63528        (-[WebCoreFrameBridge searchFor:direction:caseSensitive:wrap:startInSelection:]):
63529        new startInSelection parameter, passed through to Frame::findString()
63530
63531        * editing/JSEditor.cpp:
63532        pass false for new findString parameter, to match old behavior
63533
635342007-01-17  Beth Dakin  <bdakin@apple.com>
63535
63536        Rubber stamped by Darin.
63537
63538        * rendering/HitTestResult.cpp: Just added a comment.
63539
635402007-01-17  Justin Garcia  <justin.garcia@apple.com>
63541
63542        Reviewed by darin
63543        
63544        <rdar://problem/4920488>
63545        REGRESSION: A crash occurs at WebCore::Range::processContents () when removing formatting from selected text (that contains a link)
63546
63547        * dom/Range.cpp:
63548        (WebCore::Range::commonAncestorContainer): Return null if the nodes
63549        don't have a common ancestor.  As a side effect, the public 
63550        commonAncestorContainer now sets an exception if the Range starts
63551        in one document and ends in another, or starts or ends in a tree
63552        that's been removed from the document.  The spec doesn't cover
63553        this and there is no precedent in other browsers for this case because
63554        they don't allow invalid Ranges (you can create one with WebCore
63555        by removing a node that contains the start/end of a Range).
63556        (WebCore::Range::compareBoundaryPoints): If the the two positions
63557        are in nodes that have no common ancestor, return null.  This doesn't
63558        change the behavior of the public compareBoundaryPoints: it already
63559        throws an exception if the two positions are in nodes that don't have
63560        a common ancestor.  This follows the spec.
63561
635622007-01-17  John Sullivan  <sullivan@apple.com>
63563
63564        The one word was typed by me, but only after debugging for a long time with Darin.
63565
63566        - fixed <rdar://problem/4912002> REGRESSION: Series of words marked as a single misspelled word
63567
63568        * editing/TextIterator.cpp:
63569        (WebCore::WordAwareIterator::WordAwareIterator):
63570        We were creating a TextIterator with the default kind, but WordAwareIterator is designed to work
63571        in concert with CharacterIterator, so they need to use the same kind. CharacterIterator uses
63572        kind RUNFINDER, so WordAwareIterator needs to do so also.
63573
635742007-01-17  Adele Peterson  <adele@apple.com>
63575
63576        Reviewed by Brady.
63577
63578        Fix for <rdar://problem/4900895> REGRESSION: onChange doesn't always fire for popups that have had value changed by JS
63579
63580        No test case since you need to open up the menu to fire onChange.
63581
63582        * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::setSelectedIndex):
63583          Keep track of m_lastOnChangeIndex even when we're not firing onChange.  Since
63584          the selected index has changed, we still want the m_lastOnChangeIndex to be up to date when we compare
63585          it later.  This matches our behavior in Safari 2.0.
63586
635872007-01-17  Adele Peterson  <adele@apple.com>
63588
63589        Reviewed by Darin and John.
63590
63591        - Fix for <rdar://problem/4816550> REGRESSION: autoscrolling doesn't work after double-click
63592
63593        * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEvent): Set swallowEvent bool instead
63594          of returning early for double and triple clicks.
63595
635962007-01-17  Darin Adler  <darin@apple.com>
63597
63598        Reviewed by Hyatt.
63599
63600        * rendering/RenderObject.h: Removed unused nextEditable and previousEditable.
63601        * rendering/RenderObject.cpp: Ditto.
63602
636032007-01-17  Darin Adler  <darin@apple.com>
63604
63605        Reviewed by Maciej.
63606
63607        - fix http://bugs.webkit.org/show_bug.cgi?id=12278
63608          <rdar://problem/4928705> REGRESSION(r13070): Dragged image size includes padding (12278)
63609
63610        * WebCore.exp: Added HitTestResult::imageRect,
63611        removed HitTestResult::boundingBox.
63612
63613        * rendering/HitTestResult.h:
63614        * rendering/HitTestResult.cpp: (WebCore::HitTestResult::imageRect):
63615        Added. Returns the content rectangle of the image.
63616
63617        * rendering/RenderObject.h:
63618        * rendering/RenderObject.cpp:
63619        (WebCore::RenderObject::absolutePosition): Made const.
63620        (WebCore::RenderObject::contentBox): Added.
63621        (WebCore::RenderObject::absoluteContentBox): Added.
63622
63623        * rendering/RenderBox.h:
63624        * rendering/RenderBox.cpp:
63625        (WebCore::RenderBox::absolutePosition): Made const.
63626
63627        * rendering/RenderTableCell.h:
63628        * rendering/RenderTableCell.cpp:
63629        (WebCore::RenderTableCell::absolutePosition): Made const.
63630
63631        * rendering/RenderView.h:
63632        * rendering/RenderView.cpp:
63633        (WebCore::RenderView::absolutePosition): Made const.
63634
636352007-01-17  Adele Peterson  <adele@apple.com>
63636
63637        Reviewed by Beth.
63638
63639        Fix for  http://bugs.webkit.org/show_bug.cgi?id=10139
63640        <rdar://problem/4823028> REGRESSION: Reproducible crash when selecting a popup/button with ::selection pseudostyle
63641
63642        Test: fast/css/pseudostyle-anonymous-text.html
63643
63644        * rendering/RenderObject.cpp: (WebCore::RenderObject::getPseudoStyle): Nil check the node.
63645
636462007-01-17  Adele Peterson  <adele@apple.com>
63647
63648        Reviewed by Anders and John.
63649
63650        Fix for http://bugs.webkit.org/show_bug.cgi?id=11278
63651        <rdar://problem/4826875> REGRESSION: Popup width doesn't change to accommodate dynamic changes to options
63652
63653        Test: fast/forms/menulist-width-change.html
63654
63655        * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateFromElement):
63656          When the options change, call setNeedsLayoutAndMinMaxRecalc.
63657
636582007-01-16  Alexey Proskuryakov  <ap@webkit.org>
63659
63660        Reviewed by Maciej.
63661
63662        http://bugs.webkit.org/show_bug.cgi?id=12268
63663        Give object prototypes their own names
63664
63665        * bindings/js/kjs_html.cpp: Changed the names of KJS:HTMLElement and KJS::HTMLElement to 
63666        not match the names of their WebCore counterparts. The "DOM" prefix I gave them doesn't 
63667        seem to carry much sense, but matches some other kjs_html object names.
63668
63669        * bindings/scripts/CodeGeneratorJS.pm: Append "Proto" to interface name for the prototype's ClassInfo.
63670
63671        * bindings/js/JSHTMLInputElementBase.cpp:
63672        (WebCore::JSHTMLInputElementBasePrototypeFunction::callAsFunction):
63673        (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
63674        * bindings/js/JSHTMLInputElementBase.h:
63675        * bindings/js/JSXMLHttpRequest.cpp:
63676        (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
63677        (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
63678        (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
63679        * bindings/js/JSXMLHttpRequest.h:
63680        * bindings/js/JSXSLTProcessor.cpp:
63681        (KJS::JSXSLTProcessor::JSXSLTProcessor):
63682        (KJS::XSLTProcessorPrototypeFunction::callAsFunction):
63683        (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
63684        * bindings/js/kjs_css.cpp:
63685        (KJS::DOMCSSStyleDeclaration::DOMCSSStyleDeclaration):
63686        (KJS::DOMCSSStyleDeclarationPrototypeFunction::callAsFunction):
63687        (KJS::DOMMediaList::DOMMediaList):
63688        (KJS::KJS::DOMMediaListPrototypeFunction::callAsFunction):
63689        (KJS::DOMCSSStyleSheet::DOMCSSStyleSheet):
63690        (KJS::DOMCSSStyleSheetPrototypeFunction::callAsFunction):
63691        (KJS::DOMCSSValue::DOMCSSValue):
63692        (KJS::DOMCSSValuePrototypeFunction::callAsFunction):
63693        * bindings/js/kjs_css.h:
63694        * bindings/js/kjs_dom.cpp:
63695        (KJS::DOMNode::DOMNode):
63696        (KJS::DOMNodePrototypeFunction::callAsFunction):
63697        (KJS::DOMEventTargetNode::DOMEventTargetNode):
63698        (KJS::DOMEventTargetNodePrototypeFunction::callAsFunction):
63699        (KJS::DOMNamedNodeMap::DOMNamedNodeMap):
63700        (KJS::DOMNamedNodeMapPrototypeFunction::callAsFunction):
63701        * bindings/js/kjs_dom.h:
63702        * bindings/js/kjs_domnode.h:
63703        * bindings/js/kjs_events.cpp:
63704        (KJS::DOMEvent::DOMEvent):
63705        (KJS::DOMEventPrototypeFunction::callAsFunction):
63706        (KJS::Clipboard::Clipboard):
63707        (KJS::ClipboardPrototypeFunction::callAsFunction):
63708        * bindings/js/kjs_events.h:
63709        * bindings/js/kjs_html.cpp:
63710        (KJS::JSHTMLDocumentPrototypeFunction::callAsFunction):
63711        (KJS::):
63712        (KJS::JSHTMLDocument::JSHTMLDocument):
63713        (KJS::JSHTMLElementPrototypeFunction::callAsFunction):
63714        (KJS::JSHTMLElement::JSHTMLElement):
63715        (KJS::JSHTMLCollection::JSHTMLCollection):
63716        (KJS::JSHTMLCollectionPrototypeFunction::callAsFunction):
63717        * bindings/js/kjs_html.h:
63718        * bindings/js/kjs_navigator.cpp:
63719        * bindings/js/kjs_traversal.cpp:
63720        (KJS::DOMNodeFilter::DOMNodeFilter):
63721        (KJS::DOMNodeFilterPrototypeFunction::callAsFunction):
63722        * bindings/js/kjs_window.cpp:
63723        (KJS::Window::clear):
63724        Changed Proto to Prototype, and ProtoFunc to PrototypeFunction.
63725
637262007-01-17  Lars Knoll <lars@trolltech.com>
63727
63728        Reviewed by Zack and Darin
63729
63730        Fix the Qt build again after the latest Image changes.
63731        Also make some of the methods implemented in ImageCG 
63732        crossplatform.
63733
63734        * platform/graphics/BitmapImage.h:
63735        * platform/graphics/Image.cpp:
63736        (WebCore::Image::fillWithSolidColor):
63737        (WebCore::calculatePatternScale):
63738        (WebCore::Image::drawTiled):
63739        * platform/graphics/Image.h:
63740        * platform/graphics/cg/ImageCG.cpp:
63741        (WebCore::BitmapImage::draw):
63742        * platform/graphics/qt/ImageQt.cpp:
63743        (WebCore::Image::loadPlatformResource):
63744        (WebCore::Image::drawPattern):
63745        (WebCore::BitmapImage::initPlatformData):
63746        (WebCore::BitmapImage::invalidatePlatformData):
63747        (WebCore::BitmapImage::draw):
63748        (WebCore::BitmapImage::drawPattern):
63749        * platform/qt/TemporaryLinkStubs.cpp:
63750
637512007-01-17  Darin Adler  <darin@apple.com>
63752
63753        - quick attempt to fix the Qt build
63754
63755        * platform/graphics/qt/ImageQt.cpp: (WebCore::BitmapImage::drawTiled):
63756        Remove obsolete parameters from this stub.
63757
637582007-01-17  Eric Seidel  <eric@webkit.org>
63759
63760        Reviewed by rwlbuis.
63761
63762        Test: svg/custom/inner-svg-hit-test.svg
63763
63764        * rendering/RenderSVGContainer.cpp:
63765        (WebCore::RenderSVGContainer::nodeAtPoint): never allow containers to be hit.
63766
637672007-01-17  Lars Knoll <lars@trolltech.com>
63768
63769        Reviewed by Zack
63770
63771        Don't call receivedResponse twice for file: URLs.
63772        Never call back into the ResourceHandleClient once
63773        cancel() has been called on the ResourceHandle.
63774
63775        * WebCore.pro:
63776        * platform/network/qt/ResourceHandleManagerQt.cpp:
63777        (WebCore::ResourceHandleManager::cancel):
63778        (WebCore::ResourceHandleManager::receivedResponse):
63779        (WebCore::ResourceHandleManager::receivedData):
63780        (WebCore::ResourceHandleManager::receivedFinished):
63781        (WebCore::FileLoader::request):
63782        (WebCore::FileLoader::parseDataUrl):
63783        (WebCore::WebCoreHttp::scheduleNextRequest):
63784        * platform/network/qt/ResourceHandleManagerQt.h:
63785
637862007-01-17  Eric Seidel  <eric@webkit.org>
63787
63788        No review, build fix only.
63789
63790        * platform/graphics/cg/ImageCG.cpp: correct drawPatternCombined to drawPattern
63791        (WebCore::Image::drawPattern):
63792        (WebCore::Image::drawTiled):
63793
637942007-01-17  Eric Seidel  <eric@webkit.org>
63795
63796        Reviewed by mitz and rwlbuis.
63797        
63798        SVGs do not work as background images:
63799        http://bugs.webkit.org/show_bug.cgi?id=12096
63800
63801        Tests updated:
63802        - fast/images/svg-as-background.svg: now passes
63803        - fast/images/svg-as-tiled-background.svg: now passes
63804
63805        * platform/graphics/BitmapImage.h:
63806        (WebCore::BitmapImage::nativeImageForCurrentFrame):
63807        (WebCore::BitmapImage::mayFillWithSolidColor):
63808        (WebCore::BitmapImage::solidColor):
63809        * platform/graphics/Image.h:
63810        (WebCore::Image::mayFillWithSolidColor):
63811        (WebCore::Image::solidColor):
63812        (WebCore::Image::nativeImageForCurrentFrame):
63813        (WebCore::Image::startAnimation):
63814        * platform/graphics/cg/ImageCG.cpp:
63815        (WebCore::Image::drawPatternCallback):
63816        (WebCore::Image::drawPatternCombined):
63817        (WebCore::caculatePatternScale):
63818        (WebCore::Image::drawTiled):
63819        * platform/graphics/cg/PDFDocumentImage.cpp:
63820        * platform/graphics/cg/PDFDocumentImage.h:
63821        * platform/graphics/svg/SVGImage.cpp:
63822        (WebCore::SVGImage::nativeImageForCurrentFrame):
63823        * platform/graphics/svg/SVGImage.h:
63824
638252007-01-17  Rob Buis  <buis@kde.org>
63826
63827        Reviewed by Eric
63828
63829        Add proper condition for rx attribute negative check.
63830
63831        * ksvg2/svg/SVGRectElement.cpp:
63832        (WebCore::SVGRectElement::parseMappedAttribute):
63833
638342007-01-17  Lars Knoll <lars@trolltech.com>
63835
63836        Reviewed by Zack
63837
63838        change all notImplemented() macros to use qDebug
63839        instead of fprintf(stder, ...)
63840
63841        * loader/qt/DocumentLoaderQt.cpp:
63842        * loader/qt/FrameLoaderQt.cpp:
63843        * page/qt/EventHandlerQt.cpp:
63844        * page/qt/FrameQt.cpp:
63845        * platform/graphics/qt/GraphicsContextQt.cpp:
63846        * platform/graphics/qt/IconQt.cpp:
63847        * platform/network/qt/ResourceHandleManagerQt.cpp:
63848        * platform/network/qt/ResourceHandleQt.cpp:
63849        * platform/qt/CursorQt.cpp:
63850        * platform/qt/FileChooserQt.cpp:
63851        * platform/qt/MimeTypeRegistryQt.cpp:
63852        * platform/qt/PageQt.cpp: Removed.
63853        * platform/qt/PopupMenuQt.cpp:
63854        * platform/qt/ScrollViewQt.cpp:
63855        * platform/qt/TemporaryLinkStubs.cpp:
63856        * platform/qt/TextBoundaries.cpp:
63857        * platform/qt/WidgetQt.cpp:
63858
638592007-01-16  Brady Eidson  <beidson@apple.com>
63860
63861        Reviewed by Oliver
63862
63863        A few enhancements to the HTTP Auth architecture
63864
63865        * platform/network/ProtectionSpace.cpp:
63866        (WebCore::ProtectionSpace::isProxy):
63867        (WebCore::ProtectionSpace::receivesCredentialSecurely):
63868        * platform/network/ProtectionSpace.h:
63869
638702007-01-16  Alice Liu  <alice.liu@apple.com>
63871
63872        Reviewed by harrison.
63873
63874        Fixed <rdar://problem/4921134> WebKit needs extensible cut/copy to allow additional types to be written to pasteboard
63875
63876        * WebCore.xcodeproj/project.pbxproj:
63877        * bridge/EditorClient.h:
63878        * editing/Editor.cpp:
63879        (WebCore::Editor::copy):
63880        (WebCore::Editor::didWriteSelectionToPasteboard):
63881        * editing/Editor.h:
63882        * platform/graphics/svg/SVGImageEmptyClients.h:
63883        (WebCore::SVGEmptyEditorClient::didWriteSelectionToPasteboard):
63884
638852007-01-16  Justin Garcia  <justin.garcia@apple.com>
63886
63887        Reviewed by harrison
63888        
63889        <rdar://problem/4747450>
63890        Gmail Editor: Caret doesn't always position itself after list marker
63891        <rdar://problem/4917055>
63892        GMail Editor: A hang can occur when attempting to apply list styling to selected indented text
63893
63894        * editing/TextIterator.cpp:
63895        (WebCore::TextIterator::rangeFromLocationAndLength): Use VisiblePositions
63896        to compute the end of a run for emitted '\n's, because it's often wrong
63897        in that case.
63898
638992007-01-16  Darin Adler  <darin@apple.com>
63900
63901        - quick lame attempt to get Qt compiling again
63902
63903        * platform/qt/ContextMenuQt.cpp: Removed show() function.
63904
639052007-01-17  Nicholas Shanks  <contact@nickshanks.com>
63906
63907        Reviewed by Darin.
63908
63909        * platform/network/ResourceRequest.h:
63910        (WebCore::ResourceRequest::setHTTPAccept): Correct argument name.
63911
639122007-01-16  Beth Dakin  <bdakin@apple.com>
63913
63914        Reviewed by Adam.
63915
63916        Get rid of show() and hide() since they don't do anything.
63917
63918        * page/ContextMenuController.cpp:
63919        (WebCore::ContextMenuController::handleContextMenuEvent):
63920        * platform/ContextMenu.h:
63921        * platform/mac/ContextMenuMac.mm:
63922
639232007-01-16  Lars Knoll <lars@trolltech.com>
63924
63925        Reviewed by Zack
63926
63927        Cleaned up the way we create native widgets. They are
63928        now not created in WebCore anymore, but in the new
63929        Qt API to WebKit.
63930
63931        Fix a compile issue in the ResourceHandleManager.
63932
63933        * WebCore.pro:
63934        * platform/ScrollView.h:
63935        * platform/Widget.h:
63936        (WebCore::ResourceHandleManager::cancel):
63937        * platform/qt/ScrollViewCanvasQt.cpp:
63938        (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
63939        (WebCore::ScrollViewCanvasQt::paintEvent):
63940        (WebCore::ScrollViewCanvasQt::mouseMoveEvent):
63941        (WebCore::ScrollViewCanvasQt::mousePressEvent):
63942        (WebCore::ScrollViewCanvasQt::mouseReleaseEvent):
63943        (WebCore::ScrollViewCanvasQt::handleKeyEvent):
63944        * platform/qt/ScrollViewCanvasQt.h:
63945        * platform/qt/ScrollViewQt.cpp:
63946        (WebCore::ScrollView::ScrollView):
63947        (WebCore::ScrollView::setScrollArea):
63948        (WebCore::ScrollView::addChild):
63949        * platform/qt/WidgetQt.cpp:
63950        * platform/network/qt/ResourceHandleManagerQt.cpp:
63951
639522007-01-16  Lars Knoll <lars@trolltech.com>
63953
63954        Reviewed by Zack
63955
63956        Looks like ResourceHandle _has_ to do everything
63957        asynchronously if we don't want to run into
63958        lots of trouble in the loader.
63959
63960        Implement support data: URLs.
63961
63962        Remove some unused Qt only code in ResourceHandleClient.h
63963
63964        * platform/network/ResourceHandleClient.h:
63965        * platform/network/qt/ResourceHandleManagerQt.cpp:
63966        (WebCore::RequestQt::setURL):
63967        (WebCore::ResourceHandleManager::add):
63968        (WebCore::ResourceHandleManager::cancel):
63969        (WebCore::ResourceHandleManager::receivedFinished):
63970        (WebCore::LoaderThread::run):
63971        (WebCore::FileLoader::request):
63972        (WebCore::FileLoader::sendData):
63973        (WebCore::FileLoader::parseDataUrl):
63974        * platform/network/qt/ResourceHandleManagerQt.h:
63975
639762007-01-16  Eric Seidel  <eric@webkit.org>
63977
63978        Reviewed by mitz.
63979
63980        Refactor drawTiled implementations in preparation for combining them.
63981        Removed unused RoundTile code path.
63982
63983        * platform/graphics/cg/ImageCG.cpp:
63984        (WebCore::drawPattern):
63985        (WebCore::BitmapImage::drawTiled):
63986        (WebCore::caculatePatternScale):
63987
639882007-01-16  Darin Adler  <darin@apple.com>
63989
63990        Reviewed by Mark Rowe.
63991
63992        - removed unused field from loader
63993
63994        * loader/loader.cpp:
63995        (WebCore::Loader::numRequests):
63996        (WebCore::Loader::cancelRequests):
63997        * loader/loader.h:
63998
639992007-01-15  Rob Buis  <buis@kde.org>
64000
64001        Reviewed by Eric.
64002
64003        http://bugs.webkit.org/show_bug.cgi?id=12272
64004        SVG picture is clipped (edges not visible)
64005
64006        Expose css dpi constant and use it for svg, making
64007        1in amount to 96 pixels like for html.
64008
64009        * css/CSSPrimitiveValue.cpp:
64010        (WebCore::CSSPrimitiveValue::computeLengthFloat):
64011        (WebCore::scaleFactorForConversion):
64012        * css/csshelper.h:
64013        * ksvg2/svg/SVGLength.cpp:
64014        (WebCore::SVGLength::value):
64015        (WebCore::SVGLength::setValue):
64016        * ksvg2/svg/SVGLength.h:
64017
640182007-01-15  Brady Eidson  <beidson@apple.com>
64019
64020        Reviewed by Adam
64021        
64022        CFNet additions
64023
64024        * platform/network/AuthenticationChallenge.cpp:
64025        (WebCore::operator==):
64026        * platform/network/AuthenticationChallenge.h:
64027        (WebCore::AuthenticationChallenge::sourceHandle):
64028        (WebCore::AuthenticationChallenge::cfURLAuthChallengeRef):
64029        * platform/network/ResourceError.h:
64030        * platform/network/ResourceHandle.h:
64031        * platform/network/ResourceHandleInternal.h:
64032        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
64033
640342007-01-15  Eric Seidel  <eric@webkit.org>
64035
64036        Reviewed by hyatt.
64037
64038        Don't map attributes in namespaces other than null to CSS properties.
64039        
64040        Test: svg/custom/attribute-namespace-check.svg
64041
64042        * ksvg2/svg/SVGStyledElement.cpp:
64043        (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
64044
640452007-01-15  Lars Naesbye Christensen  <lars@naesbye.dk>
64046
64047        Reviewed by Darin.
64048
64049        - http://bugs.webkit.org/show_bug.cgi?id=11112
64050          add a drop shadow to the hand cursor used for links
64051
64052        * Resources/linkCursor.png: Added a drop shadow.
64053
640542007-01-15  Darin Adler  <darin@apple.com>
64055
64056        Reviewed by Adam.
64057
64058        - fix http://bugs.webkit.org/show_bug.cgi?id=12190
64059          REGRESSION: Placeholder text does not reflect dynamic updates
64060
64061        Test: fast/forms/placeholder-set-attribute.html
64062
64063        * html/HTMLTextFieldInnerElement.cpp:
64064        (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
64065        Call onSearch on the element since I removed it from the renderer.
64066
64067        * rendering/RenderTextControl.h: Added explicit virtual keywords for overrides
64068        of virtual functions. Removed the unneeded onSearch function. Made the inheritance
64069        from PopupMenuClient be private, and made the overrides all private. Replaced the
64070        showPlaceholderIfNeeded and hidePlaceholderIfNeeded functions with updatePlaceholder.
64071        * rendering/RenderTextControl.cpp:
64072        (WebCore::RenderTextControl::createResultsButtonStyle): Added an assertion.
64073        (WebCore::RenderTextControl::updatePlaceholder): Added. Replaces the two
64074        functions, showPlaceholderIfNeeded and hidePlaceholderIfNeeded.
64075        (WebCore::RenderTextControl::updateFromElement): Added call to
64076        updatePlaceholder before updating the value. Also improved the structure
64077        of the function and corrected incorrect use of copy and replace.
64078        (WebCore::RenderTextControl::updateCancelButtonVisibility): Added an
64079        assertion and removed an unneeded local variable.
64080        (WebCore::RenderTextControl::subtreeHasChanged): Removed an unneeded
64081        null check and virtual function calls.
64082        (WebCore::RenderTextControl::forwardEvent): Replaced calls to the old
64083        functions with calls to updatePlaceholder.
64084        (WebCore::RenderTextControl::selectionChanged): Changed code to dispatch
64085        the select event directly -- I plan to remove the onSelect function, which
64086        was only called here.
64087        (WebCore::RenderTextControl::autosaveName): Removed too-specific cast and
64088        local variable.
64089        (WebCore::RenderTextControl::addSearchResult): Added assertion and changed
64090        variable name for clarity.
64091        (WebCore::RenderTextControl::valueChanged): Changed code to check for empty
64092        autosave name instead of null for consistency with other call sites that
64093        manage the autosave name. Also changed the code that dispatches an event
64094        to call onSearch on the input element so we don't need our own function.
64095
640962007-01-15  Eric Seidel  <eric@webkit.org>
64097
64098        Reviewed by hyatt.
64099
64100        Fix SVGStyledElement::parseMappedAttribute to only map SVG-allowed CSS properties
64101        (i.e. width is no longer mapped to CSS for SVG)
64102        Add SVGStyledElement::mapToEntry to allow RenderStyle-sharing
64103        http://bugs.webkit.org/show_bug.cgi?id=12060
64104
64105        * dom/MappedAttributeEntry.h:
64106        (WebCore::):
64107        * ksvg2/svg/SVGStyledElement.cpp:
64108        (WebCore::cssPropertyIdForName): new helper
64109        (WebCore::mapAttributeToCSSProperty): new helper
64110        (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName): new helper
64111        (WebCore::SVGStyledElement::mapToEntry): added.
64112        (WebCore::SVGStyledElement::parseMappedAttribute): use cssPropertyIdForSVGAttributeName
64113        * ksvg2/svg/SVGStyledElement.h:
64114
641152007-01-15  Eric Seidel  <eric@webkit.org>
64116
64117        Reviewed by bdash.
64118
64119        Update header guards to follow new style guidelines using new clean-header-guards script.
64120
64121        * bindings/js/JSHTMLElementWrapperFactory.h:
64122        * bindings/js/JSHTMLInputElementBase.h:
64123        * bindings/js/JSHTMLOptionElementConstructor.h:
64124        * bindings/js/JSSVGElementWrapperFactory.h:
64125        * bindings/js/JSSVGPODTypeWrapper.h:
64126        * bindings/js/JSXMLHttpRequest.h:
64127        * bindings/js/JSXSLTProcessor.h:
64128        * bindings/js/kjs_binding.h:
64129        * bindings/js/kjs_css.h:
64130        * bindings/js/kjs_dom.h:
64131        * bindings/js/kjs_domnode.h:
64132        * bindings/js/kjs_events.h:
64133        * bindings/js/kjs_html.h:
64134        * bindings/js/kjs_navigator.h:
64135        * bindings/js/kjs_proxy.h:
64136        * bindings/js/kjs_traversal.h:
64137        * bindings/js/kjs_window.h:
64138        * bridge/EditorClient.h:
64139        * bridge/History.h:
64140        * css/CSSStyleSheet.h:
64141        * css/CSSValue.h:
64142        * css/CSSValueList.h:
64143        * css/DashboardRegion.h:
64144        * css/FontFamilyValue.h:
64145        * css/FontValue.h:
64146        * css/MediaFeatureNames.h:
64147        * css/MediaList.h:
64148        * css/Pair.h:
64149        * css/RectImpl.h:
64150        * css/ShadowValue.h:
64151        * css/StyleBase.h:
64152        * css/StyleList.h:
64153        * css/StyleSheet.h:
64154        * css/StyleSheetList.h:
64155        * css/cssstyleselector.h:
64156        * dom/BeforeTextInsertedEvent.h:
64157        * dom/CDATASection.h:
64158        * dom/CharacterData.h:
64159        * dom/ChildNodeList.h:
64160        * dom/Comment.h:
64161        * dom/DOMImplementation.h:
64162        * dom/DocPtr.h:
64163        * dom/Document.h:
64164        * dom/DocumentFragment.h:
64165        * dom/DocumentMarker.h:
64166        * dom/DocumentType.h:
64167        * dom/EditingText.h:
64168        * dom/Entity.h:
64169        * dom/EntityReference.h:
64170        * dom/EventNames.h:
64171        * dom/EventTargetNode.h:
64172        * dom/NameNodeList.h:
64173        * dom/NamedNodeMap.h:
64174        * dom/Node.h:
64175        * dom/NodeList.h:
64176        * dom/Notation.h:
64177        * dom/Position.h:
64178        * dom/ProcessingInstruction.h:
64179        * dom/Range.h:
64180        * dom/StyleElement.h:
64181        * dom/Text.h:
64182        * editing/AppendNodeCommand.h:
64183        * editing/ApplyStyleCommand.h:
64184        * editing/BreakBlockquoteCommand.h:
64185        * editing/CommandByName.h:
64186        * editing/CompositeEditCommand.h:
64187        * editing/DeleteButton.h:
64188        * editing/DeleteButtonController.h:
64189        * editing/DeleteFromTextNodeCommand.h:
64190        * editing/DeleteSelectionCommand.h:
64191        * editing/InsertIntoTextNodeCommand.h:
64192        * editing/InsertLineBreakCommand.h:
64193        * editing/InsertNodeBeforeCommand.h:
64194        * editing/InsertParagraphSeparatorCommand.h:
64195        * editing/InsertTextCommand.h:
64196        * editing/JoinTextNodesCommand.h:
64197        * editing/MergeIdenticalElementsCommand.h:
64198        * editing/ModifySelectionListLevel.h:
64199        * editing/MoveSelectionCommand.h:
64200        * editing/RemoveCSSPropertyCommand.h:
64201        * editing/RemoveNodeAttributeCommand.h:
64202        * editing/RemoveNodeCommand.h:
64203        * editing/RemoveNodePreservingChildrenCommand.h:
64204        * editing/ReplaceSelectionCommand.h:
64205        * editing/SetNodeAttributeCommand.h:
64206        * editing/SplitElementCommand.h:
64207        * editing/SplitTextNodeCommand.h:
64208        * editing/SplitTextNodeContainingElementCommand.h:
64209        * editing/TextGranularity.h:
64210        * editing/TypingCommand.h:
64211        * editing/WrapContentsInDummySpanCommand.h:
64212        * history/BackForwardList.h:
64213        * history/HistoryItem.h:
64214        * history/HistoryItemTimer.h:
64215        * history/PageCache.h:
64216        * html/CanvasGradient.h:
64217        * html/CanvasPattern.h:
64218        * html/CanvasRenderingContext2D.h:
64219        * html/CanvasStyle.h:
64220        * html/FormDataList.h:
64221        * html/HTMLAnchorElement.h:
64222        * html/HTMLAppletElement.h:
64223        * html/HTMLAreaElement.h:
64224        * html/HTMLBRElement.h:
64225        * html/HTMLBaseElement.h:
64226        * html/HTMLBaseFontElement.h:
64227        * html/HTMLBlockquoteElement.h:
64228        * html/HTMLBodyElement.h:
64229        * html/HTMLButtonElement.h:
64230        * html/HTMLCanvasElement.h:
64231        * html/HTMLCollection.h:
64232        * html/HTMLDListElement.h:
64233        * html/HTMLDirectoryElement.h:
64234        * html/HTMLDivElement.h:
64235        * html/HTMLElement.h:
64236        * html/HTMLElementFactory.h:
64237        * html/HTMLEmbedElement.h:
64238        * html/HTMLFieldSetElement.h:
64239        * html/HTMLFontElement.h:
64240        * html/HTMLFormCollection.h:
64241        * html/HTMLFormElement.h:
64242        * html/HTMLFrameSetElement.h:
64243        * html/HTMLGenericFormElement.h:
64244        * html/HTMLHRElement.h:
64245        * html/HTMLHeadElement.h:
64246        * html/HTMLHeadingElement.h:
64247        * html/HTMLHtmlElement.h:
64248        * html/HTMLImageElement.h:
64249        * html/HTMLImageLoader.h:
64250        * html/HTMLInputElement.h:
64251        * html/HTMLIsIndexElement.h:
64252        * html/HTMLKeygenElement.h:
64253        * html/HTMLLIElement.h:
64254        * html/HTMLLabelElement.h:
64255        * html/HTMLLegendElement.h:
64256        * html/HTMLLinkElement.h:
64257        * html/HTMLMapElement.h:
64258        * html/HTMLMarqueeElement.h:
64259        * html/HTMLMenuElement.h:
64260        * html/HTMLMetaElement.h:
64261        * html/HTMLModElement.h:
64262        * html/HTMLNameCollection.h:
64263        * html/HTMLOListElement.h:
64264        * html/HTMLObjectElement.h:
64265        * html/HTMLOptGroupElement.h:
64266        * html/HTMLOptionElement.h:
64267        * html/HTMLOptionsCollection.h:
64268        * html/HTMLParagraphElement.h:
64269        * html/HTMLParamElement.h:
64270        * html/HTMLParser.h:
64271        * html/HTMLPlugInElement.h:
64272        * html/HTMLPreElement.h:
64273        * html/HTMLQuoteElement.h:
64274        * html/HTMLScriptElement.h:
64275        * html/HTMLSelectElement.h:
64276        * html/HTMLStyleElement.h:
64277        * html/HTMLTableCaptionElement.h:
64278        * html/HTMLTableCellElement.h:
64279        * html/HTMLTableColElement.h:
64280        * html/HTMLTableElement.h:
64281        * html/HTMLTablePartElement.h:
64282        * html/HTMLTableRowElement.h:
64283        * html/HTMLTableSectionElement.h:
64284        * html/HTMLTextAreaElement.h:
64285        * html/HTMLTextFieldInnerElement.h:
64286        * html/HTMLTitleElement.h:
64287        * html/HTMLUListElement.h:
64288        * ksvg2/css/SVGRenderStyle.h:
64289        * ksvg2/css/SVGRenderStyleDefs.h:
64290        * ksvg2/events/JSSVGLazyEventListener.h:
64291        * ksvg2/events/SVGZoomEvent.h:
64292        * ksvg2/misc/KCanvasRenderingStyle.h:
64293        * ksvg2/misc/PointerEventsHitRules.h:
64294        * ksvg2/misc/SVGDocumentExtensions.h:
64295        * ksvg2/misc/SVGImageLoader.h:
64296        * ksvg2/misc/TimeScheduler.h:
64297        * ksvg2/svg/GradientAttributes.h:
64298        * ksvg2/svg/LinearGradientAttributes.h:
64299        * ksvg2/svg/PatternAttributes.h:
64300        * ksvg2/svg/RadialGradientAttributes.h:
64301        * ksvg2/svg/SVGAElement.h:
64302        * ksvg2/svg/SVGAngle.h:
64303        * ksvg2/svg/SVGAnimateColorElement.h:
64304        * ksvg2/svg/SVGAnimateElement.h:
64305        * ksvg2/svg/SVGAnimateMotionElement.h:
64306        * ksvg2/svg/SVGAnimateTransformElement.h:
64307        * ksvg2/svg/SVGAnimatedPathData.h:
64308        * ksvg2/svg/SVGAnimatedPoints.h:
64309        * ksvg2/svg/SVGAnimatedTemplate.h:
64310        * ksvg2/svg/SVGAnimationElement.h:
64311        * ksvg2/svg/SVGCircleElement.h:
64312        * ksvg2/svg/SVGClipPathElement.h:
64313        * ksvg2/svg/SVGColor.h:
64314        * ksvg2/svg/SVGComponentTransferFunctionElement.h:
64315        * ksvg2/svg/SVGCursorElement.h:
64316        * ksvg2/svg/SVGDOMImplementation.h:
64317        * ksvg2/svg/SVGDefsElement.h:
64318        * ksvg2/svg/SVGDescElement.h:
64319        * ksvg2/svg/SVGDocument.h:
64320        * ksvg2/svg/SVGElement.h:
64321        * ksvg2/svg/SVGElementInstance.h:
64322        * ksvg2/svg/SVGElementInstanceList.h:
64323        * ksvg2/svg/SVGEllipseElement.h:
64324        * ksvg2/svg/SVGExternalResourcesRequired.h:
64325        * ksvg2/svg/SVGFEBlendElement.h:
64326        * ksvg2/svg/SVGFEColorMatrixElement.h:
64327        * ksvg2/svg/SVGFEComponentTransferElement.h:
64328        * ksvg2/svg/SVGFECompositeElement.h:
64329        * ksvg2/svg/SVGFEDiffuseLightingElement.h:
64330        * ksvg2/svg/SVGFEDisplacementMapElement.h:
64331        * ksvg2/svg/SVGFEDistantLightElement.h:
64332        * ksvg2/svg/SVGFEFloodElement.h:
64333        * ksvg2/svg/SVGFEFuncAElement.h:
64334        * ksvg2/svg/SVGFEFuncBElement.h:
64335        * ksvg2/svg/SVGFEFuncGElement.h:
64336        * ksvg2/svg/SVGFEFuncRElement.h:
64337        * ksvg2/svg/SVGFEGaussianBlurElement.h:
64338        * ksvg2/svg/SVGFEImageElement.h:
64339        * ksvg2/svg/SVGFELightElement.h:
64340        * ksvg2/svg/SVGFEMergeElement.h:
64341        * ksvg2/svg/SVGFEMergeNodeElement.h:
64342        * ksvg2/svg/SVGFEOffsetElement.h:
64343        * ksvg2/svg/SVGFEPointLightElement.h:
64344        * ksvg2/svg/SVGFESpecularLightingElement.h:
64345        * ksvg2/svg/SVGFESpotLightElement.h:
64346        * ksvg2/svg/SVGFETileElement.h:
64347        * ksvg2/svg/SVGFETurbulenceElement.h:
64348        * ksvg2/svg/SVGFilterElement.h:
64349        * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h:
64350        * ksvg2/svg/SVGFitToViewBox.h:
64351        * ksvg2/svg/SVGForeignObjectElement.h:
64352        * ksvg2/svg/SVGGElement.h:
64353        * ksvg2/svg/SVGGradientElement.h:
64354        * ksvg2/svg/SVGImageElement.h:
64355        * ksvg2/svg/SVGLangSpace.h:
64356        * ksvg2/svg/SVGLength.h:
64357        * ksvg2/svg/SVGLengthList.h:
64358        * ksvg2/svg/SVGLineElement.h:
64359        * ksvg2/svg/SVGLinearGradientElement.h:
64360        * ksvg2/svg/SVGList.h:
64361        * ksvg2/svg/SVGListTraits.h:
64362        * ksvg2/svg/SVGLocatable.h:
64363        * ksvg2/svg/SVGMarkerElement.h:
64364        * ksvg2/svg/SVGMaskElement.h:
64365        * ksvg2/svg/SVGMetadataElement.h:
64366        * ksvg2/svg/SVGNumberList.h:
64367        * ksvg2/svg/SVGPaint.h:
64368        * ksvg2/svg/SVGParserUtilities.h:
64369        * ksvg2/svg/SVGPathElement.h:
64370        * ksvg2/svg/SVGPathSeg.h:
64371        * ksvg2/svg/SVGPathSegArc.h:
64372        * ksvg2/svg/SVGPathSegClosePath.h:
64373        * ksvg2/svg/SVGPathSegCurvetoCubic.h:
64374        * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h:
64375        * ksvg2/svg/SVGPathSegCurvetoQuadratic.h:
64376        * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h:
64377        * ksvg2/svg/SVGPathSegLineto.h:
64378        * ksvg2/svg/SVGPathSegLinetoHorizontal.h:
64379        * ksvg2/svg/SVGPathSegLinetoVertical.h:
64380        * ksvg2/svg/SVGPathSegList.h:
64381        * ksvg2/svg/SVGPathSegMoveto.h:
64382        * ksvg2/svg/SVGPatternElement.h:
64383        * ksvg2/svg/SVGPointList.h:
64384        * ksvg2/svg/SVGPolyElement.h:
64385        * ksvg2/svg/SVGPolygonElement.h:
64386        * ksvg2/svg/SVGPolylineElement.h:
64387        * ksvg2/svg/SVGPreserveAspectRatio.h:
64388        * ksvg2/svg/SVGRadialGradientElement.h:
64389        * ksvg2/svg/SVGRectElement.h:
64390        * ksvg2/svg/SVGRenderingIntent.h:
64391        * ksvg2/svg/SVGSVGElement.h:
64392        * ksvg2/svg/SVGScriptElement.h:
64393        * ksvg2/svg/SVGSetElement.h:
64394        * ksvg2/svg/SVGStopElement.h:
64395        * ksvg2/svg/SVGStringList.h:
64396        * ksvg2/svg/SVGStylable.h:
64397        * ksvg2/svg/SVGStyleElement.h:
64398        * ksvg2/svg/SVGStyledElement.h:
64399        * ksvg2/svg/SVGStyledLocatableElement.h:
64400        * ksvg2/svg/SVGStyledTransformableElement.h:
64401        * ksvg2/svg/SVGSwitchElement.h:
64402        * ksvg2/svg/SVGSymbolElement.h:
64403        * ksvg2/svg/SVGTRefElement.h:
64404        * ksvg2/svg/SVGTSpanElement.h:
64405        * ksvg2/svg/SVGTests.h:
64406        * ksvg2/svg/SVGTextContentElement.h:
64407        * ksvg2/svg/SVGTextElement.h:
64408        * ksvg2/svg/SVGTextPositioningElement.h:
64409        * ksvg2/svg/SVGTitleElement.h:
64410        * ksvg2/svg/SVGTransform.h:
64411        * ksvg2/svg/SVGTransformList.h:
64412        * ksvg2/svg/SVGTransformable.h:
64413        * ksvg2/svg/SVGURIReference.h:
64414        * ksvg2/svg/SVGUnitTypes.h:
64415        * ksvg2/svg/SVGUseElement.h:
64416        * ksvg2/svg/SVGViewElement.h:
64417        * ksvg2/svg/SVGZoomAndPan.h:
64418        * loader/CachedCSSStyleSheet.h:
64419        * loader/CachedImage.h:
64420        * loader/CachedXSLStyleSheet.h:
64421        * loader/DocumentLoader.h:
64422        * loader/Request.h:
64423        * loader/SubresourceLoader.h:
64424        * loader/icon/IconDataCache.h:
64425        * loader/icon/IconDatabase.h:
64426        * loader/icon/IconLoader.h:
64427        * loader/icon/SQLDatabase.h:
64428        * loader/icon/SQLStatement.h:
64429        * loader/icon/SQLTransaction.h:
64430        * page/Frame.h:
64431        * page/FrameLoadRequest.h:
64432        * page/FrameTree.h:
64433        * page/FrameView.h:
64434        * page/PageState.h:
64435        * page/Plugin.h:
64436        * page/qt/FrameQt.h:
64437        * page/qt/FrameQtClient.h:
64438        * platform/Arena.h:
64439        * platform/ArrayImpl.h:
64440        * platform/Cursor.h:
64441        * platform/DeprecatedArray.h:
64442        * platform/DeprecatedCString.h:
64443        * platform/FileChooser.h:
64444        * platform/Font.h:
64445        * platform/FontCache.h:
64446        * platform/FontData.h:
64447        * platform/FontDescription.h:
64448        * platform/FontFamily.h:
64449        * platform/GlyphBuffer.h:
64450        * platform/GlyphMap.h:
64451        * platform/GlyphWidthMap.h:
64452        * platform/Logging.h:
64453        * platform/Pasteboard.h:
64454        * platform/PlatformString.h:
64455        * platform/PlugInInfoStore.h:
64456        * platform/PopupMenu.h:
64457        * platform/PopupMenuClient.h:
64458        * platform/ScrollBar.h:
64459        * platform/ScrollView.h:
64460        * platform/SearchPopupMenu.h:
64461        * platform/Shared.h:
64462        * platform/Sound.h:
64463        * platform/SystemTime.h:
64464        * platform/Timer.h:
64465        * platform/Widget.h:
64466        * platform/cf/RetainPtr.h:
64467        * platform/gdk/ChromeClientGdk.h:
64468        * platform/gdk/FontPlatformData.h:
64469        * platform/gdk/FrameGdk.h:
64470        * platform/gdk/KeyboardCodes.h:
64471        * platform/gdk/RenderPopupMenuGdk.h:
64472        * platform/gdk/RenderThemeGdk.h:
64473        * platform/graphics/BitmapImage.h:
64474        * platform/graphics/Color.h:
64475        * platform/graphics/FloatPoint.h:
64476        * platform/graphics/FloatPoint3D.h:
64477        * platform/graphics/FloatRect.h:
64478        * platform/graphics/Icon.h:
64479        * platform/graphics/Image.h:
64480        * platform/graphics/ImageAnimationObserver.h:
64481        * platform/graphics/ImageBuffer.h:
64482        * platform/graphics/ImageSource.h:
64483        * platform/graphics/IntPoint.h:
64484        * platform/graphics/IntRect.h:
64485        * platform/graphics/IntSize.h:
64486        * platform/graphics/IntSizeHash.h:
64487        * platform/graphics/PathTraversalState.h:
64488        * platform/graphics/Pen.h:
64489        * platform/graphics/qt/ImageDecoderQt.h:
64490        * platform/graphics/svg/SVGImage.h:
64491        * platform/graphics/svg/SVGImageEmptyClients.h:
64492        * platform/graphics/svg/SVGPaintServer.h:
64493        * platform/graphics/svg/SVGPaintServerGradient.h:
64494        * platform/graphics/svg/SVGPaintServerLinearGradient.h:
64495        * platform/graphics/svg/SVGPaintServerPattern.h:
64496        * platform/graphics/svg/SVGPaintServerRadialGradient.h:
64497        * platform/graphics/svg/SVGPaintServerSolid.h:
64498        * platform/graphics/svg/SVGResource.h:
64499        * platform/graphics/svg/SVGResourceClipper.h:
64500        * platform/graphics/svg/SVGResourceFilter.h:
64501        * platform/graphics/svg/SVGResourceMarker.h:
64502        * platform/graphics/svg/SVGResourceMasker.h:
64503        * platform/graphics/svg/cg/CgSupport.h:
64504        * platform/graphics/svg/filters/SVGDistantLightSource.h:
64505        * platform/graphics/svg/filters/SVGFEBlend.h:
64506        * platform/graphics/svg/filters/SVGFEColorMatrix.h:
64507        * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
64508        * platform/graphics/svg/filters/SVGFEComposite.h:
64509        * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
64510        * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
64511        * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
64512        * platform/graphics/svg/filters/SVGFEFlood.h:
64513        * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
64514        * platform/graphics/svg/filters/SVGFEImage.h:
64515        * platform/graphics/svg/filters/SVGFEMerge.h:
64516        * platform/graphics/svg/filters/SVGFEMorphology.h:
64517        * platform/graphics/svg/filters/SVGFEOffset.h:
64518        * platform/graphics/svg/filters/SVGFESpecularLighting.h:
64519        * platform/graphics/svg/filters/SVGFETile.h:
64520        * platform/graphics/svg/filters/SVGFETurbulence.h:
64521        * platform/graphics/svg/filters/SVGFilterEffect.h:
64522        * platform/graphics/svg/filters/SVGLightSource.h:
64523        * platform/graphics/svg/filters/SVGPointLightSource.h:
64524        * platform/graphics/svg/filters/SVGSpotLightSource.h:
64525        * platform/mac/FontPlatformData.h:
64526        * platform/mac/PlatformScrollBar.h:
64527        * platform/network/AuthenticationChallenge.h:
64528        * platform/network/Credential.h:
64529        * platform/network/HTTPHeaderMap.h:
64530        * platform/network/ProtectionSpace.h:
64531        * platform/network/ResourceError.h:
64532        * platform/network/ResourceRequest.h:
64533        * platform/network/ResourceResponse.h:
64534        * platform/network/cf/FormDataStreamCFNet.h:
64535        * platform/network/cf/ResourceRequestCFNet.h:
64536        * platform/network/cf/ResourceResponseCFNet.h:
64537        * platform/network/gdk/ResourceHandleManager.h:
64538        * platform/network/mac/AuthenticationMac.h:
64539        * platform/network/mac/FormDataStreamMac.h:
64540        * platform/network/qt/ResourceHandleManagerKDE.h:
64541        * platform/network/qt/ResourceHandleManagerQt.h:
64542        * platform/network/win/ResourceHandleWin.h:
64543        * platform/qt/FontPlatformData.h:
64544        * platform/qt/KeyboardCodes.h:
64545        * platform/qt/PlatformScrollBar.h:
64546        * platform/qt/ScrollViewCanvasQt.h:
64547        * platform/qt/SharedTimerQt.h:
64548        * platform/win/FontPlatformData.h:
64549        * platform/win/PlatformScrollBar.h:
64550        * rendering/AutoTableLayout.h:
64551        * rendering/HitTestRequest.h:
64552        * rendering/HitTestResult.h:
64553        * rendering/InlineBox.h:
64554        * rendering/InlineFlowBox.h:
64555        * rendering/Length.h:
64556        * rendering/ListMarkerBox.h:
64557        * rendering/RenderBox.h:
64558        * rendering/RenderMenuList.h:
64559        * rendering/RenderPart.h:
64560        * rendering/RenderPartObject.h:
64561        * rendering/RenderPath.h:
64562        * rendering/RenderReplaced.h:
64563        * rendering/RenderSVGContainer.h:
64564        * rendering/RenderSVGImage.h:
64565        * rendering/RenderSVGInline.h:
64566        * rendering/RenderSVGInlineText.h:
64567        * rendering/RenderSVGTSpan.h:
64568        * rendering/RenderSVGText.h:
64569        * rendering/RenderStyle.h:
64570        * rendering/RenderTableCol.h:
64571        * rendering/RenderThemeWin.h:
64572        * rendering/bidi.h:
64573        * xml/DOMParser.h:
64574        * xml/XPathEvaluator.h:
64575        * xml/XPathExpression.h:
64576        * xml/XPathExpressionNode.h:
64577        * xml/XPathFunctions.h:
64578        * xml/XPathNSResolver.h:
64579        * xml/XPathNamespace.h:
64580        * xml/XPathParser.h:
64581        * xml/XPathPath.h:
64582        * xml/XPathPredicate.h:
64583        * xml/XPathResult.h:
64584        * xml/XPathStep.h:
64585        * xml/XPathUtil.h:
64586        * xml/XPathValue.h:
64587        * xml/XPathVariableReference.h:
64588        * xml/XSLImportRule.h:
64589        * xml/XSLStyleSheet.h:
64590        * xml/XSLTProcessor.h:
64591        * xml/xmlhttprequest.h:
64592
645932007-01-15  Anders Carlsson  <acarlsson@apple.com>
64594
64595        Build fix.
64596        
64597        * loader/ProgressTracker.cpp:
64598
645992007-01-15  Lars Knoll <lars@trolltech.com>
64600
64601        Fix the Qt build
64602
64603        * WebCore.pro:
64604
646052007-01-15  Anders Carlsson  <acarlsson@apple.com>
64606
64607        Reviewed by Darin.
64608
64609        * loader/ProgressTracker.cpp:
64610        Set finalProgressValue to its value explicitly instead of calculating it 
64611        (which causes a global initializer to be generated).
64612
646132007-01-15  Anders Carlsson  <acarlsson@apple.com>
64614
64615        Reviewed by Darin and Adam.
64616
64617        Move progress tracking down to WebCore.
64618        
64619        * WebCore.exp:
64620        Add ProgressTracker::estimatedProgress() to be used by WebKit.
64621        
64622        * WebCore.xcodeproj/project.pbxproj:
64623        Add ProgressTracker.[cpp|h]
64624        
64625        * loader/FrameLoader.cpp:
64626        (WebCore::FrameLoader::prepareForLoadStart):
64627        (WebCore::FrameLoader::clearProvisionalLoad):
64628        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
64629        (WebCore::FrameLoader::startLoading):
64630        (WebCore::FrameLoader::didReceiveResponse):
64631        (WebCore::FrameLoader::didReceiveData):
64632        (WebCore::FrameLoader::didFailToLoad):
64633        (WebCore::FrameLoader::requestFromDelegate):
64634        (WebCore::FrameLoader::didFinishLoad):
64635        Call directly to the progress tracker instead of through the frame loader client.
64636        
64637        * loader/FrameLoaderClient.h:
64638        Get rid of the old methods and add new methods for tracking progress.
64639        
64640        * loader/ProgressTracker.cpp: Added.
64641        (WebCore::ProgressItem::ProgressItem):
64642        (WebCore::ProgressTracker::ProgressTracker):
64643        (WebCore::ProgressTracker::~ProgressTracker):
64644        (WebCore::ProgressTracker::estimatedProgress):
64645        (WebCore::ProgressTracker::reset):
64646        (WebCore::ProgressTracker::progressStarted):
64647        (WebCore::ProgressTracker::progressCompleted):
64648        (WebCore::ProgressTracker::finalProgressComplete):
64649        (WebCore::ProgressTracker::incrementProgress):
64650        (WebCore::ProgressTracker::completeProgress):
64651        (WebCore::ProgressTracker::createUniqueIdentifier):
64652        * loader/ProgressTracker.h: Added.
64653        New per page class which tracks progress.
64654        
64655        * loader/ResourceLoader.cpp:
64656        (WebCore::ResourceLoader::willSendRequest):
64657        * page/Page.cpp:
64658        (WebCore::Page::Page):
64659        * page/Page.h:
64660        (WebCore::Page::progress):
64661        Move createUniqueIdentifier to ProgressTracker, add ProgressTracker object to Page.
64662        
64663        * platform/graphics/svg/SVGImageEmptyClients.h:
64664        (WebCore::SVGEmptyFrameLoaderClient::willChangeEstimatedProgress):
64665        (WebCore::SVGEmptyFrameLoaderClient::didChangeEstimatedProgress):
64666        (WebCore::SVGEmptyFrameLoaderClient::postProgressStartedNotification):
64667        (WebCore::SVGEmptyFrameLoaderClient::postProgressEstimateChangedNotification):
64668        (WebCore::SVGEmptyFrameLoaderClient::postProgressFinishedNotification):
64669        Add new methods, get rid of the old ones.
64670
646712007-01-15  Adam Roben  <aroben@apple.com>
64672
64673        Reviewed by Anders.
64674
64675        Fix comment.
64676
64677        * html/HTMLScriptElement.cpp:
64678        (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript):
64679
646802007-01-15  John Sullivan  <sullivan@apple.com>
64681
64682        * platform/ContextMenu.cpp:
64683        (WebCore::ContextMenu::checkOrEnableIfNeeded):
64684        Leopard build fix; don't declare one of the case values twice
64685
646862007-01-15  Mitz Pettel  <mitz@webkit.org>
64687
64688        Reviewed by Darin.
64689
64690        - fix http://bugs.webkit.org/show_bug.cgi?id=8604
64691          rowspan does not work when set through javascript
64692
64693        Covered by existing tests.
64694
64695        * rendering/RenderTableCell.cpp:
64696        (WebCore::RenderTableCell::updateFromElement): Mark the section for grid recalc
64697        if row span or column span change.
64698
646992007-01-15  Adam Roben  <aroben@apple.com>
64700
64701        Reviewed by Darin.
64702
64703        Small context menu fixes.
64704
64705        * platform/ContextMenu.cpp:
64706        (WebCore::ContextMenu::populate): Fix typo.
64707        (WebCore::ContextMenu::checkOrEnableIfNeeded): Disabled "No Guesses
64708        Found", and added all enum values explicitly.
64709
647102007-01-15  Alexey Proskuryakov  <ap@webkit.org>
64711
64712        Reviewed by Darin.
64713
64714        http://bugs.webkit.org/show_bug.cgi?id=6272
64715        XMLHttpRequest freezes on getting a missing document with overridden Content-Length
64716
64717        http://bugs.webkit.org/show_bug.cgi?id=6212
64718        Investigate disallowing some XMLHttpRequest headers from being set via setRequestHeader.
64719
64720        Tests:
64721        - http/tests/xmlhttprequest/connection-error-sync.html
64722        - http/tests/xmlhttprequest/set-dangerous-headers.html
64723
64724        * bindings/js/kjs_binding.cpp:
64725        (KJS::):
64726        (KJS::setDOMException): Added support for NETWORK_ERR. Changed the temporary 
64727        PERMISSION_DENIED error into a special case.
64728
64729        * loader/FrameLoader.cpp:
64730        (WebCore::FrameLoader::loadResourceSynchronously):
64731        * loader/FrameLoader.h:
64732        Return the error object to the caller. Removed an extra local variable for error, 
64733        which shadowed the one from enclosing block.
64734
64735        * dom/XMLTokenizer.cpp:
64736        (WebCore::openFunc): 
64737        * xml/XSLTProcessor.cpp:
64738        (WebCore::docLoaderFunc): 
64739        Updated to pass an error object (currently ignored).
64740
64741        * xml/xmlhttprequest.cpp:
64742        (WebCore::canSetRequestHeader): Added. The headers to block include the ones from 
64743        the current XMLHttpRequest draft plus "Via", which is blocked by Firefox.
64744        (WebCore::XMLHttpRequest::send): Raise an exception if a sync request results in 
64745        an error.
64746        (WebCore::XMLHttpRequest::setRequestHeader): Call canSetRequestHeader().
64747        * xml/xmlhttprequest.h:
64748        (WebCore::): Added NETWORK_ERR and a comment about PERMISSION_DENIED.
64749
647502007-01-15  Zack Rusin  <zack@kde.org>
64751
64752        Optimizing rendering on the Qt platform. Mainly
64753        switching from client side QImage to QPixmap's.
64754        Also cleaning the the ScrollViewCanvasQt code
64755        quite a bit.
64756
64757        * platform/graphics/ImageSource.h: use QPixmap
64758        * platform/graphics/qt/GraphicsContextQt.cpp:
64759        (WebCore::TransparencyLayer::TransparencyLayer):
64760        (WebCore::GraphicsContext::clip): clip rects when you can
64761        * platform/graphics/qt/ImageDecoderQt.cpp:
64762        (WebCore::ImageDecoderQt::ImageData::ImageData):
64763        (WebCore::ImageDecoderQt::ReadContext::read):
64764        (WebCore::ImageDecoderQt::ReadContext::readImageLines):
64765        (WebCore::ImageDecoderQt::imageAtIndex):
64766        * platform/graphics/qt/ImageDecoderQt.h: use QPixmap
64767        * platform/graphics/qt/ImageQt.cpp: QPixmap instead of QImage
64768        (WebCore::BitmapImage::draw):
64769        (WebCore::BitmapImage::drawTiled):
64770        * platform/graphics/qt/ImageSourceQt.cpp:
64771        (WebCore::):
64772        (WebCore::ImageSource::createFrameAtIndex):
64773        (WebCore::ImageSource::frameHasAlphaAtIndex):
64774        * platform/qt/ScrollViewCanvasQt.cpp: clean up
64775        (WebCore::ScrollViewCanvasQt::ScrollViewCanvasQt):
64776        (WebCore::ScrollViewCanvasQt::updateFrameView):
64777        (WebCore::ScrollViewCanvasQt::paintEvent):
64778        (WebCore::ScrollViewCanvasQt::mouseMoveEvent):
64779        (WebCore::ScrollViewCanvasQt::mousePressEvent):
64780        (WebCore::ScrollViewCanvasQt::mouseReleaseEvent):
64781        (WebCore::ScrollViewCanvasQt::handleKeyEvent):
64782        * platform/qt/ScrollViewCanvasQt.h:
64783        * platform/qt/ScrollViewQt.cpp: remove hacks
64784        (WebCore::ScrollView::ScrollView):
64785        (WebCore::ScrollView::setParentWidget):
64786        (WebCore::ScrollView::updateContents):
64787
647882007-01-15  Lars Knoll <lars@trolltech.com>
64789
64790        Reviewed by Zack
64791
64792        Fix weird crashes when running the layout tests. The
64793        reason was that I used KURL (and thus DeprecatedString)
64794        in a thread. Unfortunately that class is not threadsafe
64795        at all.
64796
64797        * platform/network/qt/ResourceHandleManagerQt.cpp:
64798        (WebCore::RequestQt::RequestQt):
64799        (WebCore::RequestQt::setURL):
64800        (WebCore::ResourceHandleManager::add):
64801        (WebCore::ResourceHandleManager::cancel):
64802        (WebCore::ResourceHandleManager::receivedResponse):
64803        (WebCore::FileLoader::request):
64804        (WebCore::HostInfo::HostInfo):
64805        (WebCore::NetworkLoader::request):
64806        (WebCore::NetworkLoader::cancel):
64807        * platform/network/qt/ResourceHandleManagerQt.h:
64808        (WebCore::HostInfo::HostInfo):
64809        (WebCore::HostInfo::isLocalFile):
64810
648112007-01-15  Eric Seidel  <eric@webkit.org>
64812
64813        Reviewed by rwlbuis.
64814
64815        Make isValid check not malloc 3 SVGStringLists for every element.
64816        
64817        No test possible, performance fix only.
64818
64819        * ksvg2/svg/SVGTests.cpp:
64820        (WebCore::SVGTests::isValid):
64821
648222007-01-15  Rob Buis  <buis@kde.org>
64823
64824        Reviewed by Eric.
64825
64826        Remove unused member var.
64827
64828        * ksvg2/svg/SVGStyledElement.h:
64829
648302007-01-15  Rob Buis  <buis@kde.org>
64831
64832        Reviewed by Eric.
64833
64834        http://bugs.webkit.org/show_bug.cgi?id=12069
64835        Hit detection fails under some viewbox constraints
64836
64837        Do not take viewBox into account when hit testing svg container.
64838
64839        * rendering/RenderSVGContainer.cpp:
64840        (WebCore::RenderSVGContainer::nodeAtPoint):
64841
648422007-01-15  David Hyatt  <hyatt@apple.com>
64843
64844        Fix  for 12275, negative margins confuse page breaks.
64845
64846        Reviewed by Eric
64847
64848        * rendering/RenderBlock.cpp:
64849        (WebCore::RenderBlock::paintChildren):
64850
648512007-01-15  Eric Seidel  <eric@webkit.org>
64852
64853        Reviewed by mjs.
64854        
64855        SVG gradients do not notice stop additions
64856        http://bugs.webkit.org/show_bug.cgi?id=12192
64857
64858        Test: svg/custom/gradient-add-stops.svg
64859
64860        * ksvg2/svg/SVGGradientElement.cpp:
64861        (WebCore::SVGGradientElement::childrenChanged):
64862        * ksvg2/svg/SVGGradientElement.h:
64863
648642007-01-14  David Hyatt  <hyatt@apple.com>
64865
64866        Fix for bug 10356, positioning doesn't work with <svg> elements in XHTML.  Change the requiresLayer
64867        check to use the DOM, since the old check would fail if the parent block had no element.
64868
64869        Reviewed by Eric
64870
64871        Added svg/custom/relative-positioning.html (absolute/fixed too)
64872
64873        * rendering/RenderSVGContainer.cpp:
64874        (WebCore::RenderSVGContainer::requiresLayer):
64875
648762007-01-14  Eric Seidel  <eric@webkit.org>
64877
64878        Reviewed by hyatt.
64879        
64880        SVG does not correctly handle float: left
64881        http://bugs.webkit.org/show_bug.cgi?id=12210
64882
64883        Test: svg/custom/svg-float-border-padding.xml
64884
64885        * rendering/RenderSVGContainer.cpp:
64886        (WebCore::RenderSVGContainer::paint):
64887
648882007-01-14  David Hyatt  <hyatt@apple.com>
64889
64890        More work to fix 10145, regression where form elements don't break properly.  Make sure to really use
64891        the parent of the replaced element's whitespace value everywhere.
64892
64893        Reviewed by olliej
64894
64895        fast/replaced/three-selects-break.html
64896
64897        * rendering/bidi.cpp:
64898        (WebCore::RenderBlock::findNextLineBreak):
64899
649002007-01-14  Sam Weinig  <sam@webkit.org>
64901
64902        Reviewed by Darin and then by Mitz.
64903
64904        Patch for http://bugs.webkit.org/show_bug.cgi?id=12228
64905        Cleanup assorted CSS classes
64906
64907        * css/CSSBorderImageValue.cpp:
64908        (WebCore::CSSBorderImageValue::CSSBorderImageValue):
64909        (WebCore::CSSBorderImageValue::cssText):
64910        * css/CSSBorderImageValue.h:
64911        * css/CSSComputedStyleDeclaration.cpp:
64912        (WebCore::valueForLength):
64913        (WebCore::valueForBorderStyle):
64914        (WebCore::valueForTextAlign):
64915        (WebCore::valueForShadow):
64916        (WebCore::getPositionOffsetValue):
64917        (WebCore::CSSComputedStyleDeclaration::cssText):
64918        (WebCore::primitiveValueFromLength):
64919        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
64920        (WebCore::CSSComputedStyleDeclaration::getPropertyPriority):
64921        (WebCore::CSSComputedStyleDeclaration::removeProperty):
64922        (WebCore::CSSComputedStyleDeclaration::setProperty):
64923        (WebCore::CSSComputedStyleDeclaration::length):
64924        (WebCore::CSSComputedStyleDeclaration::item):
64925        * css/CSSComputedStyleDeclaration.h:
64926        * css/CSSCursorImageValue.cpp:
64927        (WebCore::CSSCursorImageValue::CSSCursorImageValue):
64928        * css/CSSCursorImageValue.h:
64929        * css/CSSGrammar.y:
64930        * css/CSSImageValue.cpp:
64931        * css/CSSImageValue.h:
64932        * css/CSSInheritedValue.cpp:
64933        * css/CSSInheritedValue.h:
64934        * css/CSSInitialValue.cpp:
64935        * css/CSSInitialValue.h:
64936        * css/CSSMutableStyleDeclaration.cpp:
64937        (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
64938        (WebCore::CSSMutableStyleDeclaration::operator=):
64939        (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
64940        (WebCore::CSSMutableStyleDeclaration::get4Values):
64941        (WebCore::CSSMutableStyleDeclaration::getShorthandValue):
64942        (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
64943        (WebCore::CSSMutableStyleDeclaration::removeProperty):
64944        (WebCore::CSSMutableStyleDeclaration::setChanged):
64945        (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
64946        (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
64947        (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
64948        (WebCore::CSSMutableStyleDeclaration::setProperty):
64949        (WebCore::CSSMutableStyleDeclaration::setImageProperty):
64950        (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
64951        (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
64952        (WebCore::CSSMutableStyleDeclaration::setLengthProperty):
64953        (WebCore::CSSMutableStyleDeclaration::cssText):
64954        (WebCore::CSSMutableStyleDeclaration::merge):
64955        (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
64956        * css/CSSMutableStyleDeclaration.h:
64957        (WebCore::CSSMutableStyleDeclaration::setProperty):
64958        (WebCore::CSSMutableStyleDeclaration::removeProperty):
64959        * css/CSSNamespace.h:
64960        (WebCore::CSSNamespace::CSSNamespace):
64961        * css/CSSPrimitiveValue.cpp:
64962        (WebCore::isCSSTokenizerIdentifier):
64963        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
64964        (WebCore::CSSPrimitiveValue::cleanup):
64965        (WebCore::CSSPrimitiveValue::computeLengthInt):
64966        (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
64967        (WebCore::CSSPrimitiveValue::computeLengthShort):
64968        (WebCore::CSSPrimitiveValue::computeLengthFloat):
64969        (WebCore::CSSPrimitiveValue::setFloatValue):
64970        (WebCore::scaleFactorForConversion):
64971        (WebCore::CSSPrimitiveValue::getFloatValue):
64972        (WebCore::CSSPrimitiveValue::setStringValue):
64973        (WebCore::CSSPrimitiveValue::getStringValue):
64974        (WebCore::CSSPrimitiveValue::parseString):
64975        (WebCore::CSSPrimitiveValue::getIdent):
64976        (WebCore::CSSPrimitiveValue::cssText):
64977        * css/CSSPrimitiveValue.h:
64978        (WebCore::CSSPrimitiveValue::getCounterValue):
64979        (WebCore::CSSPrimitiveValue::getRectValue):
64980        (WebCore::CSSPrimitiveValue::getRGBColorValue):
64981        (WebCore::CSSPrimitiveValue::getPairValue):
64982        (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
64983        * css/CSSProperty.cpp:
64984        (WebCore::operator==):
64985        * css/CSSProperty.h:
64986        (WebCore::CSSProperty::operator=):
64987        * css/CSSQuirkPrimitiveValue.h:
64988        (WebCore::CSSQuirkPrimitiveValue::CSSQuirkPrimitiveValue):
64989        * css/CSSRuleList.cpp:
64990        (WebCore::CSSRuleList::CSSRuleList):
64991        (WebCore::CSSRuleList::deleteRule):
64992        (WebCore::CSSRuleList::insertRule):
64993        * css/CSSRuleList.h:
64994        (WebCore::CSSRuleList::item):
64995        * css/CSSSelector.cpp:
64996        (WebCore::CSSSelector::print):
64997        (WebCore::CSSSelector::specificity):
64998        (WebCore::CSSSelector::extractPseudoType):
64999        (WebCore::CSSSelector::operator==):
65000        (WebCore::CSSSelector::selectorText):
65001        * css/CSSSelector.h:
65002        (WebCore::CSSSelector::CSSSelector):
65003        (WebCore::CSSSelector::~CSSSelector):
65004        (WebCore::CSSSelector::append):
65005        (WebCore::CSSSelector::next):
65006        (WebCore::CSSSelector::pseudoType):
65007        (WebCore::CSSSelector::hasTag):
65008        (WebCore::CSSSelector::hasAttribute):
65009        * css/CSSStyleDeclaration.cpp:
65010        (WebCore::propertyID):
65011        (WebCore::CSSStyleDeclaration::getPropertyPriority):
65012        (WebCore::CSSStyleDeclaration::getPropertyShorthand):
65013        (WebCore::CSSStyleDeclaration::isPropertyImplicit):
65014        (WebCore::CSSStyleDeclaration::setProperty):
65015        (WebCore::CSSStyleDeclaration::isPropertyName):
65016        (WebCore::CSSStyleDeclaration::parentRule):
65017        (WebCore::CSSStyleDeclaration::diff):
65018        (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
65019        * css/CSSStyleDeclaration.h:
65020        * css/Counter.h:
65021        (WebCore::Counter::Counter):
65022        (WebCore::Counter::listStyleNumber):
65023        * css/csshelper.cpp:
65024        (WebCore::parseURL):
65025        * css/csshelper.h:
65026        * css/cssparser.h:
65027        (WebCore::domString):
65028        (WebCore::atomicString):
65029        (WebCore::CSSParser::operator|):
65030        * css/cssstyleselector.cpp:
65031        (WebCore::CSSStyleSelector::matchRulesForList):
65032        (WebCore::CSSStyleSelector::checkSelector):
65033        (WebCore::CSSStyleSelector::checkOneSelector):
65034        (WebCore::CSSRuleSet::addRule):
65035
650362007-01-14  Mitz Pettel  <mitz@webkit.org>
65037
65038        Reviewed by Adam.
65039
65040        - fix http://bugs.webkit.org/show_bug.cgi?id=12264
65041          REGRESSION (r18843): Webkit crashes on 43Folders.com home page
65042
65043        Test: fast/tokenizer/ignore-tags-in-iframe.html
65044
65045        * html/HTMLParser.cpp:
65046        (WebCore::HTMLParser::reset): Removed unused inSelect member variable.
65047        (WebCore::HTMLParser::selectCreateErrorCheck): Ditto.
65048        (WebCore::HTMLParser::processCloseTag): Ditto.
65049        * html/HTMLParser.h: Ditto.
65050        * html/HTMLTokenizer.cpp:
65051        (WebCore::HTMLTokenizer::parseTag): Changed not to process <pre>, <listing>,
65052        <script>, <style>, <title>, <textarea> and <xmp> if the parser is in skip mode
65053        (waiting for a close tag of an element whose contents are not parsed,
65054        such as iframe).
65055        * html/HTMLTokenizer.h:
65056        (WebCore::HTMLTokenizer::State::setInStyle): Removed unused bit.
65057        (WebCore::HTMLTokenizer::State::): Ditto.
65058
650592007-01-14  Alexey Proskuryakov  <ap@webkit.org>
65060
65061        Reviewed by Darin.
65062
65063        http://bugs.webkit.org/show_bug.cgi?id=12258
65064        fast/tokenizer/002 test broken
65065
65066        * loader/FrameLoader.h: Added a flush parameter to write().
65067        * loader/FrameLoader.cpp:
65068        (WebCore::FrameLoader::write): Ditto.
65069        (WebCore::FrameLoader::endIfNotLoading): Instead of poorly duplicating the logic in write(),
65070        call it directly.
65071
650722007-01-14  Adam Roben  <aroben@apple.com>
65073
65074        Reviewed by Maciej.
65075
65076        Make sure our whitelisting of the type and language attributes of the
65077        <script> element is enforced in all HTMLTokenizer/HTMLScriptElement
65078        code paths.
65079
65080        All layout tests pass.
65081
65082        * html/HTMLScriptElement.cpp:
65083        (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): New method to
65084        determine whether the script should be executed, given its type and
65085        language attributes.
65086        (WebCore::HTMLScriptElement::evaluateScript): Check type/language
65087        before executing.
65088        * html/HTMLScriptElement.h: Added new declarations.
65089        * html/HTMLTokenizer.cpp:
65090        (WebCore::HTMLTokenizer::begin): Made scriptSrc a String. 
65091        (WebCore::HTMLTokenizer::scriptHandler): Check
65092        shouldExecuteAsJavaScript before executing.
65093        (WebCore::HTMLTokenizer::notifyFinished): Ditto.
65094        (WebCore::HTMLTokenizer::parseTag): Moved type/language checking from
65095        here to HTMLScriptElement::shouldExecuteAsJavaScript.
65096        * html/HTMLTokenizer.h: Made scriptSrc a String, and removed the
65097        javascript member.
65098
650992007-01-14  David Hyatt  <hyatt@apple.com>
65100
65101        Make sure floats are avoided if you have non-auto column property values.  Fixes the crazy layout
65102        on http://weblogs.mozillazine.org/roc.
65103
65104        Reviewed by mitz
65105
65106        Added fast/multicol/float-avoidance.html
65107
65108        * rendering/RenderBlock.cpp:
65109        (WebCore::RenderBlock::avoidsFloats):
65110
651112007-01-14  David Hyatt  <hyatt@apple.com>
65112
65113        Fix for 10145, regression where line breaks are not being honored between adjacent replaced elements.
65114        When checking for break opportunities where replaced elements are involved, we ignore their white-space
65115        values and use their parents' instead.  The assumption/idea behind this change is that because the element
65116        is replaced, its white-space value is irrelevant except as a means of applying style to its interior.
65117
65118        The CSS spec does not cover this situation, so we're implementing this based off what other browsers seem to
65119        do.
65120
65121        Reviewed by aroben
65122
65123        * css/CSSComputedStyleDeclaration.cpp:
65124        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
65125        * css/CSSValueKeywords.in:
65126        * css/cssparser.cpp:
65127        (WebCore::CSSParser::parseValue):
65128        * css/cssstyleselector.cpp:
65129        (WebCore::CSSStyleSelector::applyProperty):
65130        * page/EventHandler.cpp:
65131        (WebCore::EventHandler::EventHandler):
65132        (WebCore::EventHandler::clear):
65133        (WebCore::EventHandler::handleWheelEvent):
65134        * page/EventHandler.h:
65135        * rendering/RenderBox.cpp:
65136        (WebCore::RenderBox::calcHeight):
65137        * rendering/RenderLayer.cpp:
65138        (WebCore::Marquee::Marquee):
65139        (WebCore::Marquee::start):
65140        (WebCore::Marquee::updateMarqueePosition):
65141        (WebCore::Marquee::updateMarqueeStyle):
65142        (WebCore::Marquee::timerFired):
65143        * rendering/RenderLayer.h:
65144        * rendering/RenderPartObject.cpp:
65145        (WebCore::RenderPartObject::viewCleared):
65146        * rendering/RenderStyle.h:
65147        (WebCore::):
65148        * rendering/bidi.cpp:
65149        (WebCore::RenderBlock::findNextLineBreak):
65150
651512007-01-13  David Hyatt  <hyatt@apple.com>
65152
65153        While optimizing form controls and fixing their clipping, I caused this text zoom regression.  The layout
65154        of text is necessary because it needs to recalc minmaxwidth.  This is still a really unfortunate
65155        bit of code... since a lot of properties don't apply to text (e.g., borders), we're marking text renderers
65156        as dirty when we don't have to.
65157
65158        Reviewed by mitz
65159
65160        * rendering/RenderObject.cpp:
65161        (WebCore::RenderObject::setStyle):
65162
651632007-01-13  Lars Knoll <lars@trolltech.com>
65164
65165        Reviewed by Alexey
65166
65167        String::format() was relying on undefined behaviour, which
65168        happened to work on lots of systems (Mac and 32bit Linux at least)
65169        but broke badly on 64bit Linux.
65170        
65171        * platform/String.cpp:
65172        (WebCore::String::format):
65173
651742007-01-13  Martin Reddy  <reddy@pixar.com>
65175
65176        Fix for bug 11924: WebCore would crash on any HTML content
65177        with a non-empty <table> tag in it on a 64-bit machine. The
65178        size_t (64bit) vs int (32bit) cast is now fixed in ensureRows,
65179        and the clients of this function have been updated to check
65180        for a false return code.
65181
65182        Reviewed by Darin, landed by Lars
65183
65184        * rendering/RenderTableSection.cpp:
65185        (WebCore::RenderTableSection::addChild):
65186        (WebCore::RenderTableSection::ensureRows):
65187        (WebCore::RenderTableSection::recalcCells):
65188
651892007-01-13  Alexey Proskuryakov  <ap@webkit.org>
65190
65191        Reviewed by Darin.
65192
65193        http://bugs.webkit.org/show_bug.cgi?id=12165
65194        REGRESSION: text encoding problem at jn.sapo.pt
65195
65196        Test: fast/encoding/script-in-head.html
65197
65198        * loader/TextResourceDecoder.cpp:
65199        (WebCore::TextResourceDecoder::checkForHeadCharset):
65200        Ignore tags within <script> elements in head, just like we do for <title>.
65201
652022007-01-13  Lars Knoll <lars@trolltech.com>
65203
65204        Reviewed by Maciej
65205
65206        Don't crash when constructing a GraphicsContext with a 0
65207        PlatformGraphicsContext and don't do anything if painting
65208        is disabled.
65209
65210        * platform/graphics/qt/GraphicsContextQt.cpp:
65211        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
65212        (WebCore::GraphicsContext::origin):
65213        (WebCore::GraphicsContext::setPlatformFont):
65214        (WebCore::GraphicsContext::setPlatformStrokeColor):
65215        (WebCore::GraphicsContext::setPlatformStrokeStyle):
65216        (WebCore::GraphicsContext::setPlatformStrokeThickness):
65217        (WebCore::GraphicsContext::setPlatformFillColor):
65218
652192007-01-13  Eric Seidel  <eric@webkit.org>
65220
65221        Reviewed by hyatt.
65222
65223        RichDraw demo does not live-update in Safari
65224        (SVG elements should ignore CSS position)
65225        http://bugs.webkit.org/show_bug.cgi?id=10364
65226
65227        * css/cssstyleselector.cpp:
65228        (WebCore::CSSStyleSelector::adjustRenderStyle): ignore position for everything but <svg>
65229        * ksvg2/svg/SVGStyledElement.cpp:
65230        (WebCore::SVGStyledElement::rebuildRenderer): move path generation into layout()
65231        * rendering/RenderContainer.cpp:
65232        (WebCore::RenderContainer::layout): ASSERT kids marked as having completed layout
65233        * rendering/RenderPath.cpp:
65234        (WebCore::RenderPath::layout): move path generation into layout()
65235        * rendering/RenderSVGContainer.cpp:
65236        (WebCore::RenderSVGContainer::layout): ASSERT kids marked as having completed layout
65237
652382007-01-12  David Hyatt  <hyatt@apple.com>
65239
65240        Add support for column rules.
65241
65242        Reviewed by bdash
65243
65244        fast/multicol/column-rules.html
65245
65246        * rendering/RenderBlock.cpp:
65247        (WebCore::RenderBlock::paintColumns):
65248        * rendering/RenderStyle.h:
65249        (WebCore::RenderStyle::columnRuleIsTransparent):
65250
652512007-01-12  David Hyatt  <hyatt@apple.com>
65252
65253        Make multicolumn layout work with floats.
65254
65255        Reviewed by andersca
65256
65257        Added fast/multicol/float-multicol.html
65258
65259        * rendering/RenderBlock.cpp:
65260        (WebCore::RenderBlock::layoutBlock):
65261        (WebCore::RenderBlock::paintColumns):
65262        (WebCore::RenderBlock::paintObject):
65263        * rendering/RenderBlock.h:
65264
652652007-01-12  David Kilzer  <ddkilzer@kilzer.net>
65266
65267        Reviewed by Maciej.
65268
65269        - fix http://bugs.webkit.org/show_bug.cgi?id=12239
65270          REGRESSION (r18816-r18818): Assertion failure in 
65271          WebCore::Length::Length[in-charge](int, WebCore::LengthType, bool)
65272
65273        Test: fast/css/line-height.html
65274
65275        * rendering/RenderTextControl.cpp:
65276        (WebCore::RenderTextControl::createInnerTextStyle): Use a float to create a percent Length.
65277
652782007-01-12  Anders Carlsson  <acarlsson@apple.com>
65279
65280        Reviewed by Darin.
65281
65282        Use unsigned long for identifiers instead of Objective-C objects.
65283        
65284        * loader/FrameLoader.cpp:
65285        (WebCore::FrameLoader::loadResourceSynchronously):
65286        (WebCore::FrameLoader::startLoadingMainResource):
65287        (WebCore::FrameLoader::startLoading):
65288        (WebCore::FrameLoader::assignIdentifierToInitialRequest):
65289        (WebCore::FrameLoader::opened):
65290        (WebCore::FrameLoader::sendRemainingDelegateMessages):
65291        (WebCore::FrameLoader::requestFromDelegate):
65292        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
65293        * loader/FrameLoader.h:
65294        * loader/FrameLoaderClient.h:
65295        * loader/ResourceLoader.cpp:
65296        (WebCore::ResourceLoader::ResourceLoader):
65297        (WebCore::ResourceLoader::willSendRequest):
65298        * loader/ResourceLoader.h:
65299        (WebCore::ResourceLoader::setIdentifier):
65300        (WebCore::ResourceLoader::identifier):
65301        * page/Page.cpp:
65302        (WebCore::Page::Page):
65303        (WebCore::Page::createUniqueIdentifier):
65304        * page/Page.h:
65305        * platform/graphics/svg/SVGImageEmptyClients.h:
65306        (WebCore::SVGEmptyFrameLoaderClient::assignIdentifierToInitialRequest):
65307        (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
65308        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
65309        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
65310        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
65311        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveContentLength):
65312        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFinishLoading):
65313        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidFailLoading):
65314        (WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
65315        (WebCore::SVGEmptyFrameLoaderClient::completeProgress):
65316
653172007-01-12  Mitz Pettel  <mitz@webkit.org>
65318
65319        Reviewed by Darin.
65320
65321        - fix http://bugs.webkit.org/show_bug.cgi?id=12235
65322          REGRESSION (r18815): Marquees do not scroll
65323
65324        * css/cssstyleselector.cpp:
65325        (WebCore::CSSStyleSelector::applyProperty): Apply the '-webkit-marquee' value
65326        of 'overflow-x' and 'overflow-y'.
65327
653282007-01-12  Justin Garcia  <justin.garcia@apple.com>
65329
65330        Reviewed by hyatt
65331        
65332        <rdar://problem/4875425>
65333        EBay, GMail, and GoogleDocs RTEs font size popups don't work
65334
65335        Changed execCommand("FontSize", ...) to match the spec 
65336        and the behavior of other browsers.  It expects a number, 
65337        n, which, the spec says can be 1 through 7.  Other browsers 
65338        perform the font size change by creating a font element 
65339        wrapper with size="n".  We convert n into one of the absolute 
65340        size CSS keywords (x-small, medium, etc.).
65341
65342        * editing/JSEditor.cpp: Call cssValueFromFontSizeNumber.  If
65343        successful, perform the style change.
65344        * html/HTMLFontElement.cpp:
65345        (WebCore::HTMLFontElement::cssValueFromFontSizeNumber):  Added.
65346        Moved this code from parsedMappedAttribute so that it could be
65347        called from the Editor.
65348        (WebCore::HTMLFontElement::parseMappedAttribute): Moved code into
65349        cssValueFromFontSizeNumber.
65350        * html/HTMLFontElement.h:
65351
653522007-01-12  David Hyatt  <hyatt@apple.com>
65353
65354        Fix for bug 11598, implement lightweight control clipping mechanism for
65355        buttons, list boxes, and dropdown lists.  Make sure list box respects
65356        scrollLeft/Top/Width/Height as well as clientWidth/Height.
65357
65358        Fix bugs in RenderStyle::diff.  CursorData was not being compared properly.
65359        vertical-align had a non-inline display check that was wrong (preventing
65360        dynamic changes to keyword-based vertical-align from working).
65361
65362        Reviewed by mitz
65363
65364        * page/EventHandler.cpp:
65365        (WebCore::EventHandler::selectClosestWordFromMouseEvent):
65366        * rendering/RenderBlock.cpp:
65367        (WebCore::RenderBlock::layout):
65368        (WebCore::RenderBlock::layoutBlock):
65369        (WebCore::RenderBlock::determineHorizontalPosition):
65370        (WebCore::RenderBlock::layoutBlockChildren):
65371        (WebCore::RenderBlock::paint):
65372        (WebCore::RenderBlock::fillHorizontalSelectionGap):
65373        (WebCore::RenderBlock::nodeAtPoint):
65374        (WebCore::RenderBlock::layoutColumns):
65375        * rendering/RenderBox.cpp:
65376        (WebCore::RenderBox::computeAbsoluteRepaintRect):
65377        * rendering/RenderBox.h:
65378        * rendering/RenderButton.cpp:
65379        (WebCore::RenderButton::setStyle):
65380        (WebCore::RenderButton::controlClipRect):
65381        * rendering/RenderButton.h:
65382        (WebCore::RenderButton::hasControlClip):
65383        * rendering/RenderFlexibleBox.cpp:
65384        (WebCore::RenderFlexibleBox::layoutBlock):
65385        (WebCore::RenderFlexibleBox::layoutHorizontalBox):
65386        (WebCore::RenderFlexibleBox::layoutVerticalBox):
65387        * rendering/RenderFlow.cpp:
65388        (WebCore::RenderFlow::addFocusRingRects):
65389        * rendering/RenderListBox.cpp:
65390        (WebCore::RenderListBox::itemBoundingBoxRect):
65391        (WebCore::RenderListBox::paintObject):
65392        (WebCore::RenderListBox::itemHeight):
65393        (WebCore::RenderListBox::verticalScrollbarWidth):
65394        (WebCore::RenderListBox::scrollWidth):
65395        (WebCore::RenderListBox::scrollHeight):
65396        (WebCore::RenderListBox::scrollLeft):
65397        (WebCore::RenderListBox::setScrollLeft):
65398        (WebCore::RenderListBox::scrollTop):
65399        (WebCore::RenderListBox::setScrollTop):
65400        (WebCore::RenderListBox::controlClipRect):
65401        * rendering/RenderListBox.h:
65402        (WebCore::RenderListBox::hasControlClip):
65403        * rendering/RenderMenuList.cpp:
65404        (WebCore::RenderMenuList::setStyle):
65405        (WebCore::RenderMenuList::controlClipRect):
65406        * rendering/RenderMenuList.h:
65407        (WebCore::RenderMenuList::hasControlClip):
65408        * rendering/RenderObject.cpp:
65409        (WebCore::RenderObject::verticalScrollbarWidth):
65410        (WebCore::RenderObject::horizontalScrollbarHeight):
65411        (WebCore::RenderObject::clientWidth):
65412        (WebCore::RenderObject::clientHeight):
65413        (WebCore::RenderObject::setStyle):
65414        * rendering/RenderObject.h:
65415        (WebCore::RenderObject::hasControlClip):
65416        (WebCore::RenderObject::controlClipRect):
65417        (WebCore::RenderObject::contentWidth):
65418        (WebCore::RenderObject::contentHeight):
65419        * rendering/RenderStyle.cpp:
65420        (WebCore::StyleVisualData::StyleVisualData):
65421        (WebCore::cursorDataEqvuialent):
65422        (WebCore::StyleInheritedData::operator==):
65423        (WebCore::CursorList::operator==):
65424        (WebCore::RenderStyle::diff):
65425        * rendering/RenderStyle.h:
65426        (WebCore::LengthBox::operator!=):
65427        (WebCore::StyleVisualData::operator==):
65428        (WebCore::CursorData::operator==):
65429        (WebCore::CursorData::operator!=):
65430        (WebCore::CursorList::operator!=):
65431        (WebCore::RenderStyle::setTableLayout):
65432        * rendering/bidi.cpp:
65433        (WebCore::RenderBlock::layoutInlineChildren):
65434
654352007-01-12  David Hyatt  <hyatt@apple.com>
65436
65437        Fix for bug 9934, smaller line heights should not be allowed on
65438        text fields.
65439
65440        Reviewed by darin
65441
65442        * rendering/RenderTextControl.cpp:
65443        (WebCore::RenderTextControl::createInnerTextStyle):
65444
654452007-01-12  Mitz Pettel  <mitz@webkit.org>
65446
65447        Reviewed by Hyatt.
65448
65449        - http://bugs.webkit.org/show_bug.cgi?id=12215
65450          Treat 'overflow' and '-webkit-border-radius' as shorthands when parsing and
65451          when removing.
65452
65453        Test: fast/css/remove-shorthand.html (updated)
65454
65455        * css/CSSMutableStyleDeclaration.cpp:
65456        (WebCore::initShorthandMap):
65457        * css/cssparser.cpp:
65458        (WebCore::CSSParser::parseValue):
65459
654602007-01-12  Rob Buis  <buis@kde.org>
65461
65462        Reviewed by Mitz.
65463
65464        Do not mix up JSSVGPolygonElement and JSSVGPolylineElement.
65465
65466        * bindings/js/JSSVGElementWrapperFactory.cpp:
65467
654682007-01-12  Kevin Decker <kdecker@apple.com>
65469
65470        Reviewed by andersca.
65471
65472        Fixed: <rdar://problem/4701326>21.2 ms launch time regression spent in +[WebPluginDatabase installedPlugins]
65473
65474        * dom/DOMImplementation.cpp:
65475        (WebCore::DOMImplementation::createDocument): Added a guard clause for text/html which used to be in WebKit before a lot of the 
65476        loader plumbing was moved to WebCore.  Pinging the plug-in database to ask it if it supports a given mime type has the side 
65477        effect of reading from disk on first call, therefore such a check should be a last resort.  
65478
654792007-01-12  Mitz Pettel  <mitz@webkit.org>
65480
65481        Reviewed by Darin.
65482
65483        - fix http://bugs.webkit.org/show_bug.cgi?id=12223
65484          REGRESSION: Leaks under CSSStyleSelector::applyProperty
65485
65486        No test possible (no change to functionality).
65487
65488        * rendering/RenderObject.h: Removed unused forward declaration.
65489        * rendering/RenderStyle.cpp:
65490        (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
65491        Delete shadow data.
65492
654932007-01-12  Anders Carlsson  <acarlsson@apple.com>
65494
65495        Build fix.
65496        
65497        * WebCore.xcodeproj/project.pbxproj:
65498        Remove SubresourceLoaderMac.mm.
65499        
655002007-01-12  Lars Knoll <lars@trolltech.com>
65501
65502        Reviewed by Darin and Anders.
65503
65504        Make some more of the loader code platform independent.
65505
65506        * loader/FrameLoader.cpp:
65507        (WebCore::FrameLoader::clear):
65508        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
65509        (WebCore::FrameLoader::urlSelected):
65510        (WebCore::FrameLoader::createEmptyDocument):
65511        (WebCore::FrameLoader::setTitle):
65512        (WebCore::FrameLoader::originalRequestURL):
65513        (WebCore::FrameLoader::referrer):
65514        * loader/SubresourceLoader.cpp:
65515        (WebCore::SubresourceLoader::SubresourceLoader):
65516        (WebCore::SubresourceLoader::load):
65517        (WebCore::SubresourceLoader::create):
65518        (WebCore::SubresourceLoader::willSendRequest):
65519        (WebCore::SubresourceLoader::didReceiveResponse):
65520        (WebCore::SubresourceLoader::didReceiveData):
65521        (WebCore::SubresourceLoader::didFinishLoading):
65522        (WebCore::SubresourceLoader::didFail):
65523        (WebCore::SubresourceLoader::didCancel):
65524        (WebCore::SubresourceLoader::stopLoading):
65525        * loader/SubresourceLoader.h:
65526        * loader/mac/FrameLoaderMac.mm:
65527        * loader/mac/SubresourceLoaderMac.mm: Removed.
65528        * loader/qt/FrameLoaderQt.cpp:
65529
655302007-01-12  Lars Knoll <lars@trolltech.com>
65531
65532        Reviewed by Zack
65533
65534        Valgrind reported uninitialized variable.
65535
65536        * platform/network/qt/ResourceHandleManagerQt.cpp:
65537        (WebCore::FileLoader::request):
65538
655392007-01-12  Mitz Pettel  <mitz@webkit.org>
65540
65541        Reviewed by rwlbuis.
65542
65543        - add missing null check in new fixed table layout code
65544
65545        * rendering/FixedTableLayout.cpp:
65546        (WebCore::FixedTableLayout::calcWidthArray):
65547
655482007-01-12  Lars Knoll <lars@trolltech.com>
65549
65550        Fix the Qt build after the Authenitcation changes.
65551
65552        * WebCore.pro:
65553        * platform/network/ResourceHandleInternal.h:
65554
655552007-01-12  David Hyatt  <hyatt@apple.com>
65556
65557        Fix for bug 9569.  Make sure the selection offset for selection roots excludes border and padding.
65558
65559        Reviewed by Eric
65560
65561        * rendering/RenderBlock.cpp:
65562        (WebCore::RenderBlock::leftSelectionOffset):
65563        (WebCore::RenderBlock::rightSelectionOffset):
65564
655652007-01-11  David Hyatt  <hyatt@apple.com>
65566
65567        Fix for bug 8705, readonly text fields should not get focus rings.  Add a rule to that effect to
65568        html4.css and then also add readonly as a special case for style sharing so that we can retain the
65569        performance boost from sharing styles on inputs.
65570
65571        Reviewed by bdash
65572
65573        * css/cssstyleselector.cpp:
65574        (WebCore::CSSStyleSelector::canShareStyleWithElement):
65575        (WebCore::CSSStyleSelector::checkOneSelector):
65576        * css/html4.css:
65577
655782007-01-11  David Hyatt  <hyatt@apple.com>
65579
65580        Fix for bug 11595.  Autoscrolling of layers didn't really work at all unless the layer was coincidentally
65581        in the root layer's coordinate space.  The event point was an absolute position within the document, but
65582        the layer's rect was only local coords.  This patch makes sure to use absolute bounds for the layer
65583        when comparing it with the point.
65584
65585        This is covered by the scrollRevealButton test case already in the tree... the results change to be more
65586        correct.
65587
65588        Reviewed by ggaren
65589
65590        * rendering/RenderLayer.cpp:
65591        (WebCore::RenderLayer::scrollRectToVisible):
65592
655932007-01-11  Brady Eidson  <beidson@apple.com>
65594
65595        Reviewed by Oliver
65596
65597        -Move more HTTP Auth handling towards ResourceHandle, away from ResourceHandleClient
65598        -Make more of ResourceLoader cross-platform
65599
65600        * loader/ResourceLoader.cpp:
65601        (WebCore::ResourceLoader::ResourceLoader):
65602        (WebCore::ResourceLoader::releaseResources):
65603        (WebCore::ResourceLoader::didCancel):
65604        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
65605        (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65606        (WebCore::ResourceLoader::receivedCancellation):
65607        * loader/ResourceLoader.h:
65608        (WebCore::ResourceLoader::willStopBufferingData):
65609        (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65610        (WebCore::ResourceLoader::willCacheResponse):
65611        * loader/mac/ResourceLoaderMac.mm:
65612        * platform/network/ResourceHandle.h:
65613        * platform/network/ResourceHandleClient.h:
65614        (WebCore::ResourceHandleClient::willStopBufferingData):
65615        * platform/network/ResourceHandleInternal.h:
65616        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
65617        * platform/network/mac/ResourceHandleMac.mm:
65618        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
65619        (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
65620        (WebCore::ResourceHandle::receivedCredential):
65621        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
65622        (WebCore::ResourceHandle::receivedCancellation):
65623        (WebCore::ResourceHandle::clearAuthentication):
65624        (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
65625        (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
65626        (-[WebCoreResourceHandleAsDelegate useCredential:forAuthenticationChallenge:]):
65627        (-[WebCoreResourceHandleAsDelegate continueWithoutCredentialForAuthenticationChallenge:]):
65628        (-[WebCoreResourceHandleAsDelegate cancelAuthenticationChallenge:]):
65629
656302007-01-11  David Hyatt  <hyatt@apple.com>
65631
65632        A hit test is returning a null renderer.  Make sure to null-check it in the autoscroll code.
65633        This really shouldn't happen, but I'm just going to bullet proof for now given that it's happening
65634        on the front page of yahoo.com!
65635
65636        Reviewed by mark
65637
65638        * rendering/RenderLayer.cpp:
65639        (WebCore::RenderLayer::autoscroll):
65640
656412007-01-11  David Hyatt  <hyatt@apple.com>
65642
65643        Force column-width to parse in strict mode so that there is no confusion when it is used in the columns
65644        shorthand (it can be mistaken for column-count otherwise).
65645
65646        Reviewed by Mark
65647
65648        fast/multicol/columns-shorthand-parsing.html
65649
65650        * css/cssparser.cpp:
65651        (WebCore::CSSParser::parseValue):
65652
656532007-01-11  Mitz Pettel  <mitz@webkit.org>
65654
65655        Reviewed by Hyatt.
65656
65657        - fix http://bugs.webkit.org/show_bug.cgi?id=12124
65658          RenderTable::section{Above,Below}() can return the wrong answer for the {footer,header}
65659
65660        * rendering/RenderTable.cpp:
65661        (WebCore::resetSectionPointerIfNotBefore): Added this function to help with
65662        checking if a section being inserted is the going to be the first of its kind.
65663        (WebCore::RenderTable::addChild): Changed to maintain the pointers to the
65664        header, the footer, the caption and the first table body properly when objects
65665        are inserted in the middle. Also changed to make the first caption win over
65666        any other captions. This matches Firefox and what already used to happen when a
65667        section recalc took place.
65668        (WebCore::RenderTable::layout): Changed to use sectionBelow() for iterating
65669        over the sections from top to bottom.
65670        (WebCore::RenderTable::calcBorderLeft): Changed to really find the section
65671        containing the first row.
65672        (WebCore::RenderTable::calcBorderRight): Ditto.
65673        (WebCore::RenderTable::sectionAbove): Fixed a bug when the last section was
65674        skipped if the input was the footer.
65675        (WebCore::RenderTable::sectionBelow): Ditto for "first" and "header"
65676        respectively.
65677
656782007-01-11  Mitz Pettel  <mitz@webkit.org>
65679
65680        Reviewed by Hyatt.
65681
65682        - fix http://bugs.webkit.org/show_bug.cgi?id=12115
65683          RTL text is jumbled on display
65684
65685        Fixed fixed table layout. Implemented an algorithm that matches the behavior
65686        of Firefox, up to rounding errors.
65687
65688        Fixes three existing table tests.
65689
65690        * rendering/FixedTableLayout.cpp:
65691        Undid accidental search-and-replace of "width" to "m_width" in the comments.
65692        Removed an outdated comment, since WebKit no longer honors table-layout:fixed
65693        for variable-width tables.
65694        (WebCore::FixedTableLayout::calcWidthArray): Fixed the logic that finds the
65695        first row. Changed to divide the width specified for a cell that spans multiple
65696        columns between the columns rather than assign its entire width to each column.
65697        (WebCore::FixedTableLayout::calcMinMaxWidth):
65698        (WebCore::FixedTableLayout::layout): Implemented the behavior observed in
65699        Firefox.
65700        * rendering/FixedTableLayout.h:
65701
657022007-01-11  Mitz Pettel  <mitz@webkit.org>
65703
65704        Reviewed by Hyatt.
65705
65706        - fix http://bugs.webkit.org/show_bug.cgi?id=8438
65707          iExploder(#460): Assertion failure in RenderObject::drawBorder()
65708
65709        Test: fast/block/basic/fieldset-stretch-to-legend.html
65710
65711        * rendering/RenderBox.cpp:
65712        (WebCore::RenderBox::calcWidth): Stretch to the minimum intrinsic
65713        width if the object requires it.
65714        (WebCore::RenderBox::calcHorizontalMargins): Some style cleanup.
65715        (WebCore::RenderBox::calcAbsoluteHorizontal): Stretch to the minimum
65716        intrinsic width if the object requires it.
65717        * rendering/RenderBox.h:
65718        (WebCore::RenderBox::stretchesToMinIntrinsicWidth): Added. Returns false.
65719        * rendering/RenderFieldset.cpp:
65720        (WebCore::RenderFieldset::calcMinMaxWidth): Overloaded RenderBlock's
65721        implementation to ensure that the legend's will fit in the fieldset's
65722        minimum intrinsic width.
65723        (WebCore::RenderFieldset::findLegend): Made const.
65724        (WebCore::RenderFieldset::paintBoxDecorations):
65725        (WebCore::RenderFieldset::paintBorderMinusLegend): Fixed the behavior when
65726        the legend does overflow the fieldset. This is the part of the fix that
65727        prevents the assertion failure. If the legend intersects with a corner of
65728        the fieldset's border, that corner will not be painted, even if it is not
65729        completely occluded. This edge case can be improved with clipping in the
65730        future. Added FIXME to implement border-radius.
65731        * rendering/RenderFieldset.h:
65732        (WebCore::RenderFieldset::stretchesToMinIntrinsicWidth): Overloaded to
65733        return true.
65734
657352007-01-11  Brady Eidson  <beidson@apple.com>
65736
65737        Reviewed by Build Fix Karma
65738
65739        I broke the release build (debug build passed)
65740
65741        * platform/network/mac/AuthenticationMac.mm:
65742        (WebCore::core):
65743
657442007-01-11  Brady Eidson  <beidson@apple.com>
65745
65746        Reviewed by Anders
65747
65748        Rewrites HTTP Authentication setting up a more platform-independent structure
65749
65750        * WebCore.exp:
65751        * WebCore.xcodeproj/project.pbxproj:
65752        * loader/FrameLoader.cpp:
65753        (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
65754        (WebCore::FrameLoader::didCancelAuthenticationChallenge):
65755        * loader/FrameLoader.h:
65756        * loader/FrameLoaderClient.h:
65757        * loader/ResourceLoader.cpp:
65758        (WebCore::ResourceLoader::ResourceLoader):
65759        (WebCore::ResourceLoader::didCancel):
65760        * loader/ResourceLoader.h:
65761        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
65762        (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65763        (WebCore::ResourceLoader::receivedCredential):
65764        (WebCore::ResourceLoader::receivedRequestToContinueWithoutCredential):
65765        (WebCore::ResourceLoader::receivedCancellation):
65766        * loader/mac/FrameLoaderMac.mm:
65767        * loader/mac/ResourceLoaderMac.mm:
65768        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
65769        (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
65770        (WebCore::ResourceLoader::receivedCredential):
65771        (WebCore::ResourceLoader::receivedRequestToContinueWithoutCredential):
65772        (WebCore::ResourceLoader::receivedCancellation):
65773        * platform/graphics/svg/SVGImageEmptyClients.h:
65774        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
65775        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
65776        * platform/network/ResourceHandleClient.h:
65777        (WebCore::ResourceHandleClient::willSendRequest):
65778        (WebCore::ResourceHandleClient::didReceiveAuthenticationChallenge):
65779        (WebCore::ResourceHandleClient::didCancelAuthenticationChallenge):
65780        (WebCore::ResourceHandleClient::receivedCredential):
65781        (WebCore::ResourceHandleClient::receivedRequestToContinueWithoutCredential):
65782        (WebCore::ResourceHandleClient::receivedCancellation):
65783        (WebCore::ResourceHandleClient::willCacheResponse):
65784        * platform/network/ResourceResponse.h:
65785        (WebCore::operator!=):
65786        * platform/network/URLAuthenticationChallenge.cpp: Added.
65787        (WebCore::URLAuthenticationChallenge::URLAuthenticationChallenge):
65788        (WebCore::URLAuthenticationChallenge::previousFailureCount):
65789        (WebCore::URLAuthenticationChallenge::proposedCredential):
65790        (WebCore::URLAuthenticationChallenge::protectionSpace):
65791        (WebCore::URLAuthenticationChallenge::failureResponse):
65792        (WebCore::URLAuthenticationChallenge::error):
65793        (WebCore::URLAuthenticationChallenge::isNull):
65794        (WebCore::URLAuthenticationChallenge::nullify):
65795        (WebCore::operator==):
65796        (WebCore::operator!=):
65797        * platform/network/URLAuthenticationChallenge.h: Added.
65798        (WebCore::URLAuthenticationChallenge::sender):
65799        (WebCore::URLAuthenticationChallenge::nsURLAuthenticationChallenge):
65800        * platform/network/URLCredential.cpp: Added.
65801        (WebCore::URLCredential::URLCredential):
65802        (WebCore::URLCredential::user):
65803        (WebCore::URLCredential::password):
65804        (WebCore::URLCredential::hasPassword):
65805        (WebCore::URLCredential::persistence):
65806        (WebCore::operator==):
65807        * platform/network/URLCredential.h: Added.
65808        (WebCore::):
65809        (WebCore::operator!=):
65810        * platform/network/URLProtectionSpace.cpp: Added.
65811        (WebCore::URLProtectionSpace::URLProtectionSpace):
65812        (WebCore::URLProtectionSpace::host):
65813        (WebCore::URLProtectionSpace::port):
65814        (WebCore::URLProtectionSpace::serverType):
65815        (WebCore::URLProtectionSpace::realm):
65816        (WebCore::URLProtectionSpace::authenticationScheme):
65817        (WebCore::operator==):
65818        * platform/network/URLProtectionSpace.h: Added.
65819        (WebCore::):
65820        (WebCore::operator!=):
65821        * platform/network/mac/AuthenticationMac.h: Added.
65822        * platform/network/mac/AuthenticationMac.mm: Added.
65823        (WebCore::URLAuthenticationChallenge::URLAuthenticationChallenge):
65824        (WebCore::mac):
65825        (WebCore::core):
65826        * platform/network/mac/ResourceHandleMac.mm:
65827        (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
65828        (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
65829        (-[WebCoreResourceHandleAsDelegate useCredential:forAuthenticationChallenge:]):
65830        (-[WebCoreResourceHandleAsDelegate continueWithoutCredentialForAuthenticationChallenge:]):
65831        (-[WebCoreResourceHandleAsDelegate cancelAuthenticationChallenge:]):
65832        * platform/network/mac/ResourceResponseMac.mm:
65833        (WebCore::operator==):
65834
658352007-01-11  Geoffrey Garen  <ggaren@apple.com>
65836
65837        Reviewed by Anders Carlsson.
65838        
65839        Even more cleanup in preparation for fixing <rdar://problem/4608404> 
65840        WebScriptObject's _executionContext lack of ownership policy causes 
65841        crashes (e.g., in Dashcode)
65842        
65843        Layout tests pass.
65844        
65845        Renames:
65846            findRootObjectForNativeHandleFunction => createRootObject
65847            FindRootObjectForNativeHandleFunctionPtr => createRootObjectFunction
65848            rootForView => createRootObject
65849            getInstanceForView => getPluginInstanceForWidget
65850
65851        * page/mac/FrameMac.mm:
65852        (WebCore::FrameMac::getAppletInstanceForWidget): Put the NSView * in a void*
65853        variable named "nativeHandle" to be more explicit about the fact that JavaScript's
65854        "nativeHandle" is just an NSView *.
65855
65856        (WebCore::getPluginInstanceForWidget): This function now does the NSView *
65857        fetching that its callers used to do.
65858        (WebCore::FrameMac::getEmbedInstanceForWidget): Updated for rename.
65859        (WebCore::FrameMac::getObjectInstanceForWidget): ditto
65860
65861        * page/mac/WebCoreFrameBridge.mm: Killed the WebCoreBridgeInternal category,
65862        which was really more of a shmategory.
65863        (createRootObject): Removed rootObjectForView, folding it into its only
65864        caller, the similarly named rootForView. Renamed the pair to "createRootObject"
65865        because that's what they do.
65866
65867        (-[WebCoreFrameBridge init]): Updated for renames
65868
658692007-01-11  Anders Carlsson  <acarlsson@apple.com>
65870
65871        Reviewed by Darin.
65872
65873        Fix crash on platforms that don't use the new loader yet.
65874        
65875        * loader/DocLoader.cpp:
65876        (WebCore::DocLoader::requestResource):
65877
658782007-01-11  Mitz Pettel  <mitz@webkit.org>
65879
65880        Reviewed by Adam.
65881
65882        - fix http://bugs.webkit.org/show_bug.cgi?id=11449
65883          Type-to-select in unopened popups doesn't work with Hebrew
65884
65885        Test: fast/forms/select-type-ahead-non-latin.html
65886
65887        * html/HTMLSelectElement.cpp:
65888        (WebCore::HTMLSelectElement::defaultEventHandler): Changed locale-specific
65889        isprint() condition to a Unicode isPrintableChar().
65890
658912007-01-09  Justin Garcia  <justin.garcia@apple.com>
65892
65893        Reviewed by geoff
65894        
65895        <rdar://problem/4889140>
65896        GMail Editor: List creation fails in new message
65897
65898        * editing/InsertListCommand.cpp:
65899        (WebCore::InsertListCommand::doApply): Inserting the list
65900        into an empty paragraph not held open by a br or a '\n', 
65901        will invalidate start and end.  Insert a placeholder and 
65902        then recompute start and end.
65903
659042007-01-11  Lars Knoll <lars@trolltech.com>
65905
65906        Rubberstamped by Anders
65907
65908        This one is not needed any longer neither.
65909
65910        * ChangeLog:
65911        * WebCore.pro:
65912        * loader/qt/NavigationActionQt.cpp: Removed.
65913
659142007-01-11  Lars Knoll <lars@trolltech.com>
65915
65916        Reviewed by Anders
65917
65918        Remove now unused file
65919
65920        * WebCore.pro:
65921        * loader/qt/LoaderFunctionsQt.cpp: Removed.
65922
659232007-01-11  David Kilzer  <ddkilzer@webkit.org>
65924
65925        Reviewed by NOBODY (build fix).
65926
65927        * loader/mac/FrameLoaderMac.mm:  Removed import of LoaderNSURLRequestExtras.h.
65928        * loader/mac/SubresourceLoaderMac.mm:  Ditto.
65929
659302007-01-11  George Staikos  <staikos@kde.org>
65931
65932        Fix compile.
65933
65934        * page/qt/FrameQtClient.cpp:
65935
659362007-01-11  Anders Carlsson  <acarlsson@apple.com>
65937
65938        Fix build.
65939        
65940        * dom/XMLTokenizer.cpp:
65941        * loader/CachedCSSStyleSheet.cpp:
65942        * loader/CachedImage.cpp:
65943        * loader/DocLoader.cpp:
65944        * loader/loader.cpp:
65945        * xml/XSLTProcessor.cpp:
65946        * xml/xmlhttprequest.cpp:
65947
659482007-01-11  Anders Carlsson  <acarlsson@apple.com>
65949
65950        Reviewed by Adam.
65951
65952        Loader cleanup, get rid of unused code.
65953        
65954        * WebCore.xcodeproj/project.pbxproj:
65955        * loader/CachedResource.h:
65956        * loader/DocLoader.cpp:
65957        (WebCore::DocLoader::requestResource):
65958        (WebCore::DocLoader::checkCacheObjectStatus):
65959        * loader/DocLoader.h:
65960        * loader/LoaderFunctions.h: Removed.
65961        * loader/mac/CachedResourceMac.mm: Removed.
65962        * loader/mac/LoaderFunctionsMac.mm: Removed.
65963        * loader/mac/LoaderNSURLRequestExtras.h: Removed.
65964        * loader/mac/LoaderNSURLRequestExtras.m: Removed.
65965        * loader/mac/SubresourceLoaderMac.mm:
65966        * page/mac/WebCoreFrameBridge.mm:
65967        * platform/network/ResourceHandle.cpp:
65968
659692007-01-11  Beth Dakin  <bdakin@apple.com>
65970
65971        Reviewed by Adam.
65972
65973        Fix for http://bugs.webkit.org/show_bug.cgi?id=12135 REGRESSION: 
65974        <input> and <textarea> not focused on right click (4908884 in 
65975        Radar)
65976
65977        * page/EventHandler.cpp:
65978        (WebCore::EventHandler::sendContextMenuEvent): Since WebcCore now 
65979        handles the context menu event, we want to ask if we *have* 
65980        swallowed the event instead of if we *haven't* when deciding to 
65981        perform a selection. In the past, WebKit handled the event, so 
65982        swallowEvent was false in the case where we want to pop up a menu. 
65983
659842007-01-11  Darin Adler  <darin@apple.com>
65985
65986        Reviewed by Anders.
65987
65988        - fix http://bugs.webkit.org/show_bug.cgi?id=12189
65989          REGRESSION(r18614-18640): Crash in WebCore::SharedBuffer::hasPlatformData()
65990
65991        * loader/mac/LoaderFunctionsMac.mm: (WebCore::CheckCacheObjectStatus):
65992        Added null check.
65993
659942007-01-11  Darin Adler  <darin@apple.com>
65995
65996        * platform/CharacterNames.h: Oops! horizontalEllipsis != zeroWidthSpace!
65997
659982007-01-11  Lars Knoll <lars@trolltech.com>
65999
66000        Reviewed by Darin.
66001
66002        Start using the loader in the Qt port.
66003
66004        * loader/FrameLoader.cpp:
66005        (WebCore::FrameLoader::clear):
66006        (WebCore::FrameLoader::URL):
66007        (WebCore::FrameLoader::createEmptyDocument):
66008        * loader/qt/FrameLoaderQt.cpp:
66009        (WebCore::FrameLoader::setTitle):
66010        (WebCore::FrameLoader::originalRequestURL):
66011        (WebCore::FrameLoader::referrer):
66012        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
66013        * page/qt/FrameQtClient.cpp:
66014        (WebCore::FrameQtClient::openURL):
66015
660162007-01-11  Darin Adler  <darin@apple.com>
66017
66018        Reviewed by Hyatt.
66019
66020        - removed a couple Mac bridging classes; put the code in WebKit instead
66021
66022        * WebCore.exp: Updated for new WebKit uses.
66023
66024        * WebCore.xcodeproj/project.pbxproj: Removed files.
66025        * bridge/mac/WebCoreEncodings.h: Removed.
66026        * bridge/mac/WebCoreEncodings.mm: Removed.
66027        * bridge/mac/WebMimeTypeRegistryBridge.h: Removed.
66028        * bridge/mac/WebMimeTypeRegistryBridge.mm: Removed.
66029        * platform/mac/WebNSAttributedStringExtras.h: Removed.
66030        * platform/mac/WebNSAttributedStringExtras.mm: Removed.
66031
66032        * platform/mac/PasteboardMac.mm:
66033        (WebCore::stripAttachmentCharacters): Added. Moved code from
66034        WebNSAttributedStringExtras.mm, and fixed a garbage collection problem
66035        (a global with a plain old retain rather than HardRetain).
66036        (WebCore::Pasteboard::writeSelection): Updated to use stripAttachmentCharacters.
66037
66038        - removed some DeprecatedCString use
66039
66040        * loader/FrameLoader.cpp: Changed to use String more to eliminate use of
66041        DeprecatedCString here in the mailto form support. But maybe we can remove
66042        this entirely. Do we really care about mailto forms any more?
66043
66044        * platform/Pasteboard.h: Removed unneeded DeprecatedCString declaration.
66045
66046        * platform/PlatformString.h: Added replace that takes two strings.
66047        * platform/StringImpl.h: Ditto.
66048        * platform/StringImpl.cpp: (WebCore::StringImpl::replace): Ditto.
66049
66050        * platform/TextStream.h: Remove DeprecatedCString case.
66051        * platform/TextStream.cpp: Ditto.
66052
66053        - made a few more files use CharacterNames.h
66054
66055        * platform/CharacterNames.h: Added some more character names and
66056        sorted alphabetically.
66057
66058        * bridge/mac/WebCoreStringTruncator.mm:
66059        (centerTruncateToBuffer): Use character name from CharacterNames.h.
66060        (rightTruncateToBuffer): Ditto.
66061        (truncateString): Ditto.
66062        * platform/mac/FontMac.mm: (WebCore::addDirectionalOverride): Ditto.
66063        * rendering/RenderFlexibleBox.cpp:
66064        (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto.
66065        * rendering/bidi.cpp:
66066        (WebCore::RenderBlock::checkLinesForTextOverflow): Ditto.
66067
660682007-01-11  David Hyatt  <hyatt@apple.com>
66069
66070        Fix two bugs in positionForCoordinates.  (Make it work when you have a margin in between your border and
66071        your first child block.)
66072
66073        Rewrite column rebalancing to have two modes: constrained and unconstrained.  In unconstrained mode,
66074        the system will dynamically rebalance as it loses space to breaks and compute a final intrinsic height
66075        for the overall block.  In constrained mode, columns flow into the fixed height block, and extra columns
66076        spill out horizontally in the appropriate direction (RTL/LTR).
66077
66078        Make columns work properly with both LTR and RTL overflow blocks.
66079
66080        Initial column test suite coming soon now that the basic layout is right.
66081
66082        Reviewed by darin
66083
66084        * rendering/RenderBlock.cpp:
66085        (WebCore:::RenderFlow):
66086        (WebCore::RenderBlock::layoutBlock):
66087        (WebCore::RenderBlock::paintColumns):
66088        (WebCore::RenderBlock::lowestPosition):
66089        (WebCore::RenderBlock::rightmostPosition):
66090        (WebCore::RenderBlock::leftmostPosition):
66091        (WebCore::RenderBlock::hitTestColumns):
66092        (WebCore::RenderBlock::positionForCoordinates):
66093        (WebCore::RenderBlock::availableWidth):
66094        (WebCore::RenderBlock::calcColumnWidth):
66095        (WebCore::RenderBlock::layoutColumns):
66096        (WebCore::RenderBlock::adjustPointToColumnContents):
66097        * rendering/RenderBlock.h:
66098        (WebCore::RenderBlock::hasColumns):
66099
661002007-01-10  Rob Buis  <buis@kde.org>
66101
66102        Reviewed by Eric.
66103
66104        http://bugs.webkit.org/show_bug.cgi?id=12201
66105        Fix image dragging issues with http://www.carto.net/papers/svg/gui/scrollbar/index.svg
66106
66107        Fix calculation of absolute transform so that viewport x,y
66108        translation is always done, also when viewBox is set.     
66109
66110        * rendering/RenderSVGContainer.cpp:
66111        (WebCore::RenderSVGContainer::paint):
66112        (WebCore::RenderSVGContainer::viewportTransform):
66113        (WebCore::RenderSVGContainer::absoluteTransform):
66114
661152007-01-10  David Hyatt  <hyatt@apple.com>
66116
66117        Rework positionForCoordinates to be more efficient and to handle multi-column content.  This entailed
66118        adding a new field to HitTestResult called localPoint that cached the mouse coordinate in the coordinate
66119        space of the renderer.
66120
66121        positionForCoordinates now takes local coordinates and so no longer needs to waste time recomputing
66122        absolute positions over and over again.
66123
66124        Reviewed by darin
66125
66126        * bridge/mac/WebCoreAXObject.mm:
66127        (-[WebCoreAXObject value]):
66128        (-[WebCoreAXObject doAXTextMarkerRangeForLine:]):
66129        (-[WebCoreAXObject doAXTextMarkerForPosition:]):
66130        * dom/Document.cpp:
66131        (WebCore::Document::prepareMouseEvent):
66132        * editing/SelectionController.cpp:
66133        (WebCore::SelectionController::contains):
66134        * editing/visible_units.cpp:
66135        (WebCore::previousLinePosition):
66136        (WebCore::nextLinePosition):
66137        * page/EventHandler.cpp:
66138        (WebCore::EventHandler::selectClosestWordFromMouseEvent):
66139        (WebCore::EventHandler::handleMousePressEventDoubleClick):
66140        (WebCore::EventHandler::handleMousePressEventTripleClick):
66141        (WebCore::EventHandler::handleMousePressEventSingleClick):
66142        (WebCore::EventHandler::handleMouseMoveEvent):
66143        (WebCore::EventHandler::handleMouseReleaseEvent):
66144        (WebCore::EventHandler::sendContextMenuEvent):
66145        * page/EventHandler.h:
66146        * page/MouseEventWithHitTestResults.cpp:
66147        (WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
66148        * page/MouseEventWithHitTestResults.h:
66149        (WebCore::MouseEventWithHitTestResults::localPoint):
66150        * page/mac/WebCoreFrameBridge.mm:
66151        (-[WebCoreFrameBridge _visiblePositionForPoint:]):
66152        * rendering/EllipsisBox.cpp:
66153        (WebCore::EllipsisBox::nodeAtPoint):
66154        * rendering/HitTestResult.h:
66155        (WebCore::HitTestResult::localPoint):
66156        (WebCore::HitTestResult::setLocalPoint):
66157        * rendering/InlineFlowBox.cpp:
66158        (WebCore::InlineFlowBox::nodeAtPoint):
66159        * rendering/InlineTextBox.cpp:
66160        (WebCore::InlineTextBox::nodeAtPoint):
66161        * rendering/RenderBlock.cpp:
66162        (WebCore::RenderBlock::nodeAtPoint):
66163        (WebCore::RenderBlock::hitTestContents):
66164        (WebCore::RenderBlock::positionForCoordinates):
66165        * rendering/RenderBox.cpp:
66166        (WebCore::RenderBox::nodeAtPoint):
66167        * rendering/RenderContainer.cpp:
66168        (WebCore::RenderContainer::positionForCoordinates):
66169        * rendering/RenderFlow.cpp:
66170        (WebCore::RenderFlow::hitTestLines):
66171        * rendering/RenderInline.cpp:
66172        (WebCore::RenderInline::positionForCoordinates):
66173        * rendering/RenderLayer.cpp:
66174        (WebCore::RenderLayer::autoscroll):
66175        (WebCore::RenderLayer::hitTestLayer):
66176        * rendering/RenderObject.cpp:
66177        (WebCore::RenderObject::updateHitTestResult):
66178        * rendering/RenderObject.h:
66179        * rendering/RenderPath.cpp:
66180        (WebCore::RenderPath::nodeAtPoint):
66181        * rendering/RenderReplaced.cpp:
66182        (WebCore::RenderReplaced::positionForCoordinates):
66183        * rendering/RenderTableRow.cpp:
66184        (WebCore::RenderTableRow::nodeAtPoint):
66185        * rendering/RenderTableSection.cpp:
66186        (WebCore::RenderTableSection::nodeAtPoint):
66187        * rendering/RenderText.cpp:
66188        (WebCore::RenderText::positionForCoordinates):
66189        * rendering/RootInlineBox.cpp:
66190        (WebCore::RootInlineBox::nodeAtPoint):
66191        (WebCore::RootInlineBox::closestLeafChildForXPos):
66192        * rendering/RootInlineBox.h:
66193
661942007-01-11  George Staikos  <staikos@kde.org>
66195
66196        Reviewed by Maciej.
66197
66198        Fix Qt Build.
66199
66200        * loader/qt/DocumentLoaderQt.cpp:
66201        (WebCore::DocumentLoader::getResponseModifiedHeader):
66202
662032007-01-10  Pam Greene  <pam@chromium.org>
66204
66205        Reviewed by Darin.
66206
66207        Fixes for http://bugs.webkit.org/show_bug.cgi?id=11841
66208
66209        Set image size to fit alt text when image or input-image element
66210        has no src attribute, so that those images show their alt text instead
66211        of showing nothing at all.
66212
66213        * html/HTMLImageElement.cpp:
66214        (WebCore::HTMLImageElement::attach):
66215        * html/HTMLInputElement.cpp:
66216        (WebCore::HTMLInputElement::attach):
66217        * rendering/RenderImage.cpp:
66218        (WebCore::RenderImage::setImageSizeForAltText):
66219        (WebCore::RenderImage::imageChanged):
66220        * rendering/RenderImage.h:
66221
662222007-01-11  Mark Rowe  <mrowe@apple.com>
66223
66224        Build fix.
66225
66226        * rendering/RenderView.cpp:
66227        (WebCore::RenderView::printing):
66228
662292007-01-10  Mitz Pettel  <mitz@webkit.org>
66230
66231        Reviewed by Darin.
66232
66233        - fix http://bugs.webkit.org/show_bug.cgi?id=9284
66234          Quirksmode (CSS1): Removing inline border styles is impossible
66235
66236        Test: fast/css/remove-shorthand.html
66237
66238        * css/CSSMutableStyleDeclaration.cpp:
66239        (WebCore::PropertyLonghand::PropertyLonghand): Added this structure
66240        containing a pointer to an array if properties and the array's length.
66241        (WebCore::PropertyLonghand::properties):
66242        (WebCore::PropertyLonghand::length):
66243        (WebCore::initShorthandMap): Initialize the mapping from shorthand
66244        properties to their dependent properties.
66245        (WebCore::CSSMutableStyleDeclaration::removeProperty): Changed to check
66246        if the property being removed is a shorthand, and if so, to remove all
66247        of its dependent properties.
66248        (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet): Added a
66249        'notifyChanged' boolean parameter which controls whether this method
66250        calls setChanged() if it actually removes any property.
66251        * css/CSSMutableStyleDeclaration.h:
66252
662532007-01-10  Steve Falkenburg  <sfalken@apple.com>
66254
66255        Reviewed by Kevin.
66256
66257        Removed unnecessary printing state
66258
66259        * page/FrameView.cpp:
66260        (WebCore::FrameView::layout):
66261        * page/mac/WebCoreFrameBridge.mm:
66262        (-[WebCoreFrameBridge forceLayoutAdjustingViewSize:]):
66263        (-[WebCoreFrameBridge forceLayoutWithMinimumPageWidth:maximumPageWidth:adjustingViewSize:]):
66264        (-[WebCoreFrameBridge drawRect:]):
66265        (-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
66266        (-[WebCoreFrameBridge adjustPageHeightNew:top:bottom:limit:]):
66267        * rendering/RenderLayer.cpp:
66268        (WebCore::RenderLayer::updateLayerPositions):
66269        * rendering/RenderObject.cpp:
66270        (WebCore::RenderObject::repaint):
66271        (WebCore::RenderObject::repaintRectangle):
66272        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
66273        * rendering/RenderView.cpp:
66274        (WebCore::RenderView::RenderView):
66275        (WebCore::RenderView::calcHeight):
66276        (WebCore::RenderView::calcWidth):
66277        (WebCore::RenderView::layout):
66278        (WebCore::RenderView::paint):
66279        (WebCore::RenderView::repaintViewRectangle):
66280        (WebCore::RenderView::computeAbsoluteRepaintRect):
66281        (WebCore::RenderView::printing):
66282        (WebCore::RenderView::viewRect):
66283        (WebCore::RenderView::docHeight):
66284        (WebCore::RenderView::docWidth):
66285        * rendering/RenderView.h:
66286        * rendering/RenderWidget.cpp:
66287        (WebCore::RenderWidget::updateWidgetPosition):
66288        * rendering/bidi.cpp:
66289        (WebCore::RenderBlock::layoutInlineChildren):
66290
662912007-01-10  Anders Carlsson  <acarlsson@apple.com>
66292
66293        Reviewed by Maciej.
66294
66295        Get the Refresh header directly from the ResourceResponse.
66296        
66297        * loader/DocumentLoader.h:
66298        * loader/FrameLoader.cpp:
66299        (WebCore::FrameLoader::commitProvisionalLoad):
66300        * loader/mac/DocumentLoaderMac.mm:
66301        (WebCore::DocumentLoader::getResponseModifiedHeader):
66302
663032007-01-10  Beth Dakin  <bdakin@apple.com>
66304
66305        Reviewed by John.
66306
66307        Fix for <rdar://problem/4914258> REGRESSION: Search in Google now 
66308        operates on the current WebView instead of invoking Safari's 
66309        service
66310
66311        * page/ContextMenuClient.h: New call to the client to search in 
66312        google.
66313        * page/ContextMenuController.cpp:
66314        (WebCore::ContextMenuController::contextMenuItemSelected): Call 
66315        into the client instead of forming a new url string and loading it.
66316        * platform/graphics/svg/SVGImageEmptyClients.h:
66317        (WebCore::SVGEmptyContextMenuClient::searchWithGoogle): New call.
66318
663192007-01-10  Adam Roben  <aroben@apple.com>
66320
66321        Rubberstamped by Darin.
66322
66323        * page/ContextMenuController.cpp:
66324        (WebCore::ContextMenuController::contextMenuItemSelected): Pass 0
66325        instead of an empty Event to FrameLoader::load and
66326        FrameLoader::urlSelected.
66327
663282007-01-10  Anders Carlsson  <acarlsson@apple.com>
66329
66330        * loader/ResourceLoader.cpp:
66331        (WebCore::ResourceLoader::~ResourceLoader):
66332        Disable assertion (I forgot to do this even though I added the comment!)
66333
663342007-01-10  Ross Burton  <ross@burtonini.com>
66335
66336        Reviewed and landed by Anders.
66337
66338        Fix case in vcproj file (the GTK+ port uses the vcproj file).
66339
66340        * WebCore.vcproj/WebCore/WebCore.vcproj:
66341
663422007-01-10  Lars Knoll  <lars@trolltech.com>
66343
66344        Make the Qt build compile again after 
66345        the ResourceLoader was made platform
66346        independent. 
66347
66348        * WebCore.pro:
66349        * loader/FrameLoader.cpp:
66350        (WebCore::FrameLoader::didFirstLayout):
66351        * loader/qt/FrameLoaderQt.cpp:
66352        * loader/qt/MainResourceLoaderQt.cpp: Removed.
66353        * loader/qt/ResourceLoaderQt.cpp: Removed.
66354        * page/qt/FrameQtClient.cpp:
66355        (WebCore::FrameQtClient::openURL):
66356        * platform/network/qt/ResourceHandleQt.cpp:
66357        (WebCore::ResourceHandle::setDefersLoading):
66358
663592007-01-10  Anders Carlsson  <acarlsson@apple.com>
66360
66361        Rubber-stamped by Maciej.
66362        
66363        Move most of ResourceLoader and MainResourceLoader into the platform-independent files.
66364        
66365        * WebCore.xcodeproj/project.pbxproj:
66366        * loader/FrameLoader.cpp:
66367        (WebCore::FrameLoader::didFinishLoad):
66368        * loader/MainResourceLoader.cpp:
66369        (WebCore::MainResourceLoader::MainResourceLoader):
66370        (WebCore::MainResourceLoader::~MainResourceLoader):
66371        (WebCore::MainResourceLoader::create):
66372        (WebCore::MainResourceLoader::receivedError):
66373        (WebCore::MainResourceLoader::didCancel):
66374        (WebCore::MainResourceLoader::interruptionForPolicyChangeError):
66375        (WebCore::MainResourceLoader::stopLoadingForPolicyChange):
66376        (WebCore::MainResourceLoader::callContinueAfterNavigationPolicy):
66377        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
66378        (WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
66379        (WebCore::MainResourceLoader::addData):
66380        (WebCore::MainResourceLoader::willSendRequest):
66381        (WebCore::shouldLoadAsEmptyDocument):
66382        (WebCore::MainResourceLoader::continueAfterContentPolicy):
66383        (WebCore::MainResourceLoader::callContinueAfterContentPolicy):
66384        (WebCore::MainResourceLoader::didReceiveResponse):
66385        (WebCore::MainResourceLoader::didReceiveData):
66386        (WebCore::MainResourceLoader::didFinishLoading):
66387        (WebCore::MainResourceLoader::didFail):
66388        (WebCore::MainResourceLoader::loadNow):
66389        (WebCore::MainResourceLoader::load):
66390        (WebCore::MainResourceLoader::setDefersLoading):
66391        * loader/MainResourceLoader.h:
66392        * loader/ResourceLoader.cpp:
66393        (WebCore::ResourceLoader::ResourceLoader):
66394        (WebCore::ResourceLoader::~ResourceLoader):
66395        (WebCore::ResourceLoader::releaseResources):
66396        (WebCore::ResourceLoader::load):
66397        (WebCore::ResourceLoader::setDefersLoading):
66398        (WebCore::ResourceLoader::frameLoader):
66399        (WebCore::ResourceLoader::addData):
66400        (WebCore::ResourceLoader::clearResourceData):
66401        (WebCore::ResourceLoader::willSendRequest):
66402        (WebCore::ResourceLoader::didReceiveResponse):
66403        (WebCore::ResourceLoader::didReceiveData):
66404        (WebCore::ResourceLoader::willStopBufferingData):
66405        (WebCore::ResourceLoader::didFinishLoading):
66406        (WebCore::ResourceLoader::didFinishLoadingOnePart):
66407        (WebCore::ResourceLoader::didFail):
66408        (WebCore::ResourceLoader::didCancel):
66409        (WebCore::ResourceLoader::cancel):
66410        (WebCore::ResourceLoader::response):
66411        (WebCore::ResourceLoader::cancelledError):
66412        * loader/ResourceLoader.h:
66413        (WebCore::ResourceLoader::willStopBufferingData):
66414        (WebCore::ResourceLoader::setRequest):
66415        * loader/mac/FrameLoaderMac.mm:
66416        * loader/mac/MainResourceLoaderMac.mm: Removed.
66417        * loader/mac/ResourceLoaderMac.mm:
66418
664192007-01-10  Lars Knoll <lars@trolltech.com>
66420
66421        Move files to the correct location,
66422        and remove a few unused methods from 
66423        LoaderFunctionsQt.cpp
66424
66425        * WebCore.pro:
66426        * loader/qt/LoaderFunctionsQt.cpp: Added.
66427        (WebCore::CheckCacheObjectStatus):
66428        * page/qt/FrameQt.cpp: Added.
66429        (WebCore::doScroll):
66430        (WebCore::FrameQt::FrameQt):
66431        (WebCore::FrameQt::~FrameQt):
66432        (WebCore::FrameQt::passMouseDownEventToWidget):
66433        (WebCore::FrameQt::isLoadTypeReload):
66434        (WebCore::FrameQt::markedTextRange):
66435        (WebCore::FrameQt::mimeTypeForFileName):
66436        (WebCore::FrameQt::unfocusWindow):
66437        (WebCore::FrameQt::focusWindow):
66438        (WebCore::FrameQt::getEmbedInstanceForWidget):
66439        (WebCore::FrameQt::getObjectInstanceForWidget):
66440        (WebCore::FrameQt::getAppletInstanceForWidget):
66441        (WebCore::FrameQt::issueCutCommand):
66442        (WebCore::FrameQt::issueCopyCommand):
66443        (WebCore::FrameQt::issuePasteCommand):
66444        (WebCore::FrameQt::issuePasteAndMatchStyleCommand):
66445        (WebCore::FrameQt::issueTransposeCommand):
66446        (WebCore::FrameQt::respondToChangedSelection):
66447        (WebCore::FrameQt::shouldChangeSelection):
66448        (WebCore::FrameQt::print):
66449        (WebCore::FrameQt::shouldInterruptJavaScript):
66450        (WebCore::FrameQt::keyEvent):
66451        (WebCore::FrameQt::setFrameGeometry):
66452        (WebCore::FrameQt::client):
66453        (WebCore::FrameQt::createNewWindow):
66454        (WebCore::FrameQt::goBackOrForward):
66455        (WebCore::FrameQt::historyURL):
66456        (WebCore::FrameQt::runJavaScriptAlert):
66457        (WebCore::FrameQt::runJavaScriptConfirm):
66458        (WebCore::FrameQt::runJavaScriptPrompt):
66459        (WebCore::FrameQt::bindingRootObject):
66460        (WebCore::FrameQt::addPluginRootObject):
66461        * page/qt/FrameQt.h: Added.
66462        (WebCore::QtFrame):
66463        * page/qt/FrameQtClient.cpp: Added.
66464        (WebCore::FrameQtClient::FrameQtClient):
66465        (WebCore::FrameQtClient::~FrameQtClient):
66466        (WebCore::FrameQtClient::setFrame):
66467        (WebCore::FrameQtClient::openURL):
66468        (WebCore::FrameQtClient::submitForm):
66469        (WebCore::FrameQtClient::didReceiveResponse):
66470        (WebCore::FrameQtClient::didFinishLoading):
66471        (WebCore::FrameQtClient::didFail):
66472        (WebCore::FrameQtClient::didReceiveData):
66473        (WebCore::FrameQtClient::traverseNextFrameStayWithin):
66474        (WebCore::numRequests):
66475        (WebCore::FrameQtClient::numPendingOrLoadingRequests):
66476        * page/qt/FrameQtClient.h: Added.
66477        * platform/qt/FrameQt.cpp: Removed.
66478        * platform/qt/FrameQt.h: Removed.
66479        * platform/qt/FrameQtClient.cpp: Removed.
66480        * platform/qt/FrameQtClient.h: Removed.
66481        * platform/qt/LoaderFunctionsQt.cpp: Removed.
66482
664832007-01-10  Adam Roben  <aroben@apple.com>
66484
66485        Reviewed by Geoff.
66486
66487        Fix: <rdar://problem/4917054> ContextMenuController leaks Events
66488
66489        No layout tests possible.
66490
66491        * page/ContextMenuController.cpp:
66492        (WebCore::ContextMenuController::contextMenuItemSelected): Use RefPtr
66493        to manage the lifetime of Shared objects.
66494
664952007-01-10  Rob Buis  <buis@kde.org>
66496
66497        Reviewed by Sam.
66498
66499        http://bugs.webkit.org/show_bug.cgi?id=12196
66500        SVGPatternElement should not be locatable
66501
66502        Replace SVGStyledLocatableElement derivation with
66503        SVGStyledElement.
66504
66505        * ksvg2/svg/SVGPatternElement.cpp:
66506        (WebCore::SVGPatternElement::SVGPatternElement):
66507        * ksvg2/svg/SVGPatternElement.h:
66508
665092007-01-10  Nikolas Zimmermann  <zimmermann@kde.org>
66510
66511        Build fix, not reviewed.
66512
66513        * rendering/RenderSVGText.cpp: Use correct method name.
66514        (WebCore::RenderSVGText::relativeBBox):
66515
665162007-01-10  Nikolas Zimmermann  <zimmermann@kde.org>
66517
66518        Reviewed by Eric.
66519
66520        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10262 (SVG fails to redraw top 20 pixels)
66521        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10263 (SVG seems to repaint way too many times during load)
66522        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10404 (Invalidation issues with text skew)
66523        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10407 (bad SVG text invalidation issues on mouseover/mouseout)
66524        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10806 (failing manual-tests/svg-repaint-group.svg)
66525        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10913 (SVG charts from plotkit fail to render unless you scroll them offscreen)
66526        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10964 (inclusion of svg into svg leave a ghost invisible rectangle)
66527        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11680 (DojoKit SVG test chart fails to render (clipping issue?))
66528        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11883 (SVG Text has updating/repainting issues)
66529        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11907 (RenderSVGContainer does not mark itself for repaint after setting viewBox, slice or align) 
66530        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11913 (Invalidation issues in SVG javascript-based animation example)
66531        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11979 (SVG text does not respect font-size scaling in bbox calculation)
66532        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11984 (SVG <text> does not calculate the correct absoluteRepaintRect)
66533        Partly fixes: http://bugs.webkit.org/show_bug.cgi?id=10745 (SVG layout needs to move out of DOM and into rendering tree during layout() call)
66534
66535        Fixes text redrawing issues seen in svg/carto.net (when actually playing with those files, manually)
66536        Fixes svg/carto.net/window.svg (moving "Navigation Window" caused artefacts)
66537        Fixes svg/W3C-SVG-1.1/types-basicDOM-01-b.svg (bbox calculations had one pixel offset)
66538
66539        Large SVG dynamic update rework/optimization. Also fixes SVG printing.
66540
66541        Rename updateCanvasItem() to rebuildRenderer(), as this is what it really does.
66542
66543        Do NOT call rebuildRenderer() in notifyAttributeChange() anymore,
66544        but override notifyAttributeChange() in SVGPathElement/SVGCircleElement/etc..
66545        (as only primitives using RenderPath as rendering object need this logic!)
66546
66547        This should clarify what really happens, as discussed with Eric.
66548
66549        Remove the invocations of notifyAttributeChange() in SVGLength. It's already
66550        handled by the JS bindings, and we do double updating work. Fixed.
66551
66552        Because SVG dynamic updates have been flaky in the past, there was a hack introduced
66553        in RenderPath causing the updateCanvasItem() function to be called _on every layout_ (!!!).
66554        Finally this hack is gone. Offer RenderSVGContainer::absoluteRects() function to be able
66555        to use WebInspector for <g> elements (very handy!).
66556
66557        Remove the unneeded "m_updateVectorial" bool from SVGStyledElement.
66558        Remove computeAbsoluteRepaintRect() from RenderSVGContainer/RenderSVGImage/RenderSVGText,
66559        as dicussed with David (we only need to reimplement getAbsoluteRepaintRect there).
66560
66561        Make RenderSVGText::absoluteRects just use the getAbsoluteRepaintRect() function, instead of
66562        code duplication. Remove unneeded RenderSVGImage::layout() function (RenderImage does the same).
66563
66564        Add new function SVGStyledElement::renderStyleForElement, which centralizes the manual style
66565        resolving needed for gradient stops.
66566
66567        * ksvg2/svg/SVGCircleElement.cpp:
66568        (WebCore::SVGCircleElement::notifyAttributeChange):
66569        (WebCore::SVGCircleElement::hasRelativeValues):
66570        * ksvg2/svg/SVGCircleElement.h:
66571        * ksvg2/svg/SVGEllipseElement.cpp:
66572        (WebCore::SVGEllipseElement::notifyAttributeChange):
66573        (WebCore::SVGEllipseElement::hasRelativeValues):
66574        * ksvg2/svg/SVGEllipseElement.h:
66575        * ksvg2/svg/SVGImageElement.cpp:
66576        (WebCore::SVGImageElement::notifyAttributeChange):
66577        * ksvg2/svg/SVGImageElement.h:
66578        * ksvg2/svg/SVGLength.cpp:
66579        (WebCore::SVGLength::setValue):
66580        (WebCore::SVGLength::setValueInSpecifiedUnits):
66581        * ksvg2/svg/SVGLength.h:
66582        (WebCore::SVGLength::isRelative):
66583        * ksvg2/svg/SVGLineElement.cpp:
66584        (WebCore::SVGLineElement::notifyAttributeChange):
66585        (WebCore::SVGLineElement::hasRelativeValues):
66586        * ksvg2/svg/SVGLineElement.h:
66587        * ksvg2/svg/SVGLocatable.cpp:
66588        (WebCore::SVGLocatable::getBBox):
66589        * ksvg2/svg/SVGPathElement.cpp:
66590        (WebCore::SVGPathElement::notifyAttributeChange):
66591        * ksvg2/svg/SVGPathElement.h:
66592        * ksvg2/svg/SVGPolyElement.cpp:
66593        (WebCore::SVGPolyElement::notifyAttributeChange):
66594        * ksvg2/svg/SVGPolyElement.h:
66595        (WebCore::SVGPolyElement::rendererIsNeeded):
66596        * ksvg2/svg/SVGRectElement.cpp:
66597        (WebCore::SVGRectElement::notifyAttributeChange):
66598        (WebCore::SVGRectElement::hasRelativeValues):
66599        * ksvg2/svg/SVGRectElement.h:
66600        * ksvg2/svg/SVGSVGElement.cpp:
66601        (WebCore::SVGSVGElement::hasRelativeValues):
66602        * ksvg2/svg/SVGSVGElement.h:
66603        * ksvg2/svg/SVGStyledElement.cpp:
66604        (WebCore::SVGStyledElement::SVGStyledElement):
66605        (WebCore::SVGStyledElement::createRenderer):
66606        (WebCore::SVGStyledElement::notifyAttributeChange):
66607        (WebCore::SVGStyledElement::rebuildRenderer):
66608        * ksvg2/svg/SVGStyledElement.h:
66609        (WebCore::SVGStyledElement::hasRelativeValues):
66610        * rendering/RenderPath.cpp:
66611        (WebCore::RenderPath::setLocalTransform):
66612        (WebCore::RenderPath::fillContains):
66613        (WebCore::RenderPath::relativeBBox):
66614        (WebCore::RenderPath::layout):
66615        (WebCore::RenderPath::getAbsoluteRepaintRect):
66616        (WebCore::RenderPath::paint):
66617        (WebCore::RenderPath::nodeAtPoint):
66618        (WebCore::drawMarkerWithData):
66619        (WebCore::updateMarkerDataForElement):
66620        (WebCore::drawStartAndMidMarkers):
66621        (WebCore::RenderPath::drawMarkersIfNeeded):
66622        (WebCore::RenderPath::hasRelativeValues):
66623        * rendering/RenderPath.h:
66624        * rendering/RenderSVGContainer.cpp:
66625        (WebCore::RenderSVGContainer::layout):
66626        (WebCore::RenderSVGContainer::paint):
66627        (WebCore::RenderSVGContainer::calcViewport):
66628        (WebCore::RenderSVGContainer::setViewBox):
66629        (WebCore::RenderSVGContainer::setAlign):
66630        (WebCore::RenderSVGContainer::viewportTransform):
66631        (WebCore::RenderSVGContainer::getAbsoluteRepaintRect):
66632        (WebCore::RenderSVGContainer::absoluteRects):
66633        (WebCore::RenderSVGContainer::fillContains):
66634        (WebCore::RenderSVGContainer::strokeContains):
66635        (WebCore::RenderSVGContainer::relativeBBox):
66636        (WebCore::RenderSVGContainer::setSlice):
66637        * rendering/RenderSVGContainer.h:
66638        * rendering/RenderSVGImage.cpp:
66639        (WebCore::RenderSVGImage::RenderSVGImage):
66640        (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
66641        (WebCore::RenderSVGImage::relativeBBox):
66642        (WebCore::RenderSVGImage::imageChanged):
66643        (WebCore::RenderSVGImage::getAbsoluteRepaintRect):
66644        (WebCore::RenderSVGImage::absoluteRects):
66645        * rendering/RenderSVGImage.h:
66646        * rendering/RenderSVGText.cpp:
66647        (WebCore::RenderSVGText::getAbsoluteRepaintRect):
66648        (WebCore::RenderSVGText::layout):
66649        (WebCore::RenderSVGText::createInlineBox):
66650        (WebCore::RenderSVGText::absoluteRects):
66651        (WebCore::RenderSVGText::relativeBBox):
66652        * rendering/RenderSVGText.h:
66653        * rendering/SVGInlineFlowBox.cpp:
66654        (WebCore::placePositionedBoxesHorizontally):
66655
666562007-01-10  David Hyatt  <hyatt@apple.com>
66657
66658        Make the selectionRect() method of RenderText better by reusing computeAbsoluteRepaintRect.  This enables
66659        the method to be multi-column aware and also to understand when the selection is clipped out by overflow.
66660
66661        Reviewed by bdash
66662
66663        * rendering/RenderText.cpp:
66664        (WebCore::RenderText::selectionRect):
66665
666662007-01-10  David Hyatt  <hyatt@apple.com>
66667
66668        Make the absolutePosition method multi-column aware.  Note that there is now a real problem with the
66669        absoluteRects method, since an object can split across multiple columns and break into multiple rects.
66670        absolutePosition just returns the top-left corner of the element's box in the first column in which it
66671        appears.
66672
66673        Reviewed by bdash
66674
66675        * rendering/RenderBlock.cpp:
66676        (WebCore::RenderBlock::adjustRectForColumns):
66677        * rendering/RenderBlock.h:
66678        * rendering/RenderBox.cpp:
66679        (WebCore::RenderBox::absolutePosition):
66680        (WebCore::RenderBox::computeAbsoluteRepaintRect):
66681        * rendering/RenderFlow.cpp:
66682        (WebCore::RenderFlow::getAbsoluteRepaintRect):
66683
666842007-01-09  David Hyatt  <hyatt@apple.com>
66685
66686        Avoid crashing when repainting multiple columns... make sure to use the current vector's size and
66687        not the newly-computed column count.
66688
66689        * rendering/RenderBlock.cpp:
66690        (WebCore::RenderBlock::layoutColumns):
66691        (WebCore::RenderBlock::adjustRepaintRectForColumns):
66692
666932007-01-09  David Hyatt  <hyatt@apple.com>
66694
66695        Break up painting and hit testing of children into helper methods and add multi-column versions for both.
66696        
66697        Make incremental repainting able to invalidate the right spot in multiple column layouts so that e.g., link
66698        hover works.
66699
66700        Turn off selection gap filling in columns for now until it can be made to work correctly.
66701
66702        Improve the column balancing heuristic by adding in the block's lineHeight/2 to each column initially to
66703        account for column break adjustments that shrink the columns slightly.  Avoid clipping of the last column's
66704        contents by ensuring it gets all the remaining available height.
66705
66706        Reviewed by mitz
66707
66708        * rendering/RenderBlock.cpp:
66709        (WebCore::RenderBlock::paintColumns):
66710        (WebCore::RenderBlock::paintContents):
66711        (WebCore::RenderBlock::paintObject):
66712        (WebCore::RenderBlock::fillSelectionGaps):
66713        (WebCore::RenderBlock::nodeAtPoint):
66714        (WebCore::RenderBlock::hitTestColumns):
66715        (WebCore::RenderBlock::layoutColumns):
66716        (WebCore::RenderBlock::adjustRepaintRectForColumns):
66717        * rendering/RenderBlock.h:
66718        * rendering/RenderBox.cpp:
66719        (WebCore::RenderBox::computeAbsoluteRepaintRect):
66720        * rendering/RenderFlow.cpp:
66721        (WebCore::RenderFlow::getAbsoluteRepaintRect):
66722
667232007-01-09  Remi Zara  <remi_zara@mac.com>
66724
66725        Reviewed by Darin and Eric.
66726
66727        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12150
66728
66729        Don't use memset to set float to 0
66730
66731        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
66732        (WebCore::cgGradientCallback):
66733
667342007-01-09  Anders Carlsson  <acarlsson@apple.com>
66735
66736        Reviewed by Brady.
66737
66738        Add default constructor to SharedBuffer.
66739
66740        * platform/SharedBuffer.cpp:
66741        (WebCore::SharedBuffer::SharedBuffer):
66742        * platform/SharedBuffer.h:
66743
667442007-01-09  David Hyatt  <hyatt@apple.com>
66745
66746        This patch gets rudimentary column layout working.  Normal flow content only gets laid out into
66747        columns properly and painted correctly initially.  What doesn't work: hit testing, incremental repainting,
66748        column rule painting, child layers.
66749
66750        Some work needs to be done on the render tree dumper before column tests will be
66751        meaningful.
66752
66753        Also reworked overflow and fixed a bunch of bugs with the computation of overflow.  These include an error
66754        in the height calculations caused by not adding in the horizontal scrollbar height and other errors caused
66755        by not checking overflow in lowest/rightmostPosition.  Existing tests improve their rendering to match
66756        Firefox with this change.
66757
66758        Fixed a bug where a table cell incorrectly expanded to encompass floats inside an overflow:auto block.
66759        This should not have happened.  Covered by new test fast/overflow/table-overflow-float.html.
66760
66761        Reviewed by mitz
66762
66763        * page/Frame.cpp:
66764        * rendering/RenderBlock.cpp:
66765        (WebCore:::RenderFlow):
66766        (WebCore::RenderBlock::layoutBlock):
66767        (WebCore::RenderBlock::paintContents):
66768        (WebCore::RenderBlock::paintChildren):
66769        (WebCore::RenderBlock::paintObject):
66770        (WebCore::RenderBlock::lowestPosition):
66771        (WebCore::RenderBlock::rightmostPosition):
66772        (WebCore::RenderBlock::leftmostPosition):
66773        (WebCore::RenderBlock::avoidsFloats):
66774        (WebCore::RenderBlock::nodeAtPoint):
66775        (WebCore::RenderBlock::hitTestContents):
66776        (WebCore::RenderBlock::layoutColumns):
66777        * rendering/RenderBlock.h:
66778        (WebCore::RenderBlock::hasOverhangingFloats):
66779        (WebCore::RenderBlock::hasColumns):
66780        * rendering/RenderFlexibleBox.cpp:
66781        (WebCore::RenderFlexibleBox::layoutBlock):
66782        (WebCore::RenderFlexibleBox::layoutHorizontalBox):
66783        (WebCore::RenderFlexibleBox::layoutVerticalBox):
66784        * rendering/RenderFlow.cpp:
66785        (WebCore::RenderFlow::paintLines):
66786        (WebCore::RenderFlow::lowestPosition):
66787        (WebCore::RenderFlow::rightmostPosition):
66788        (WebCore::RenderFlow::leftmostPosition):
66789        * rendering/RenderFlow.h:
66790        (WebCore::RenderFlow::hasColumns):
66791        * rendering/RenderListMarker.cpp:
66792        (WebCore::RenderListMarker::paint):
66793        * rendering/RenderObject.h:
66794        (WebCore::RenderObject::expandsToEncloseOverflow):
66795        * rendering/RenderTableCell.h:
66796        (WebCore::RenderTableCell::expandsToEncloseOverflow):
66797        * rendering/RenderView.cpp:
66798        (WebCore::RenderView::paint):
66799
668002007-01-09  Darin Adler  <darin@apple.com>
66801
66802        - update all 2007 Apple copyrights for the new company name
66803
66804        * css/cssstyleselector.cpp:
66805        * html/HTMLLIElement.cpp:
66806        * platform/CharacterNames.h:
66807        * platform/TextBreakIterator.h:
66808        * platform/TextBreakIteratorICU.cpp:
66809        * platform/graphics/ImageBuffer.h:
66810        * rendering/CounterNode.cpp:
66811        * rendering/CounterNode.h:
66812        * rendering/RenderBox.h:
66813        * rendering/RenderContainer.cpp:
66814        * rendering/RenderCounter.cpp:
66815        * rendering/RenderCounter.h:
66816        * rendering/RenderImage.h:
66817        * rendering/RenderListItem.h:
66818        * rendering/RenderListMarker.h:
66819        * rendering/RenderObject.cpp:
66820        * rendering/RenderObject.h:
66821        * rendering/RenderStyle.cpp:
66822        * rendering/RenderStyle.h:
66823        * rendering/RenderTable.cpp:
66824        * rendering/RenderTableCell.cpp:
66825        * rendering/RenderTableCell.h:
66826        * rendering/RenderText.cpp:
66827        * rendering/RenderText.h:
66828        * rendering/RenderTreeAsText.cpp:
66829        * rendering/SVGRenderTreeAsText.cpp:
66830        * rendering/break_lines.cpp:
66831
668322007-01-09  Justin Garcia  <justin.garcia@apple.com>
66833
66834        Reviewed by john
66835
66836        <rdar://problem/4840662>
66837        REGRESSION: Mail crash when dragging text into a link
66838        
66839        moveParagraphs fails to move content into a display:block 
66840        anchor because of code in positionAvoidingSpecialElementBoundary,
66841        and so it infinitely recurs.
66842        
66843        * editing/htmlediting.cpp:
66844        (WebCore::positionAvoidingSpecialElementBoundary): Don't avoid anchors
66845        that have display:block so that content is inserted in the expected
66846        paragraph.  This fixes the bug and weird behavior when typing before/after
66847        anchors with display:block.
66848
668492007-01-09  Rob Buis  <buis@kde.org>
66850
66851        Reviewed by Darin.
66852
66853        http://bugs.webkit.org/show_bug.cgi?id=12145
66854        Color parsing is too relaxed in strict mode
66855        http://bugs.webkit.org/show_bug.cgi?id=12166
66856        REGRESSION (r18480): "336633" is not parsed as a color
66857
66858        Fix a regression by using String::format return value.
66859        Also make strict mode more strict for cases where hexcolors
66860        lack a #.
66861
66862        * css/cssparser.cpp:
66863        (WebCore::CSSParser::parseColor):
66864        (WebCore::CSSParser::parseColorFromValue):
66865        * css/cssparser.h:
66866
668672007-01-09  Darin Adler  <darin@apple.com>
66868
66869        Reviewed by Maciej.
66870
66871        - fixed regression where redirects did not have user-agent any more
66872
66873        Showed up as a failure in one of the http tests, so no new test needed.
66874
66875        * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::willSendRequest):
66876        Don't use a copy of the ResourceRequest; pass the original so it can be modified.
66877
668782007-01-09  Mitz Pettel  <mitz@webkit.org>
66879
66880        Reviewed by Darin.
66881
66882        - fix http://bugs.webkit.org/show_bug.cgi?id=11078
66883          Forms Don't Submit (ASP Pages)
66884
66885        Test: fast/dom/collection-namedItem-via-item.html
66886
66887        * bindings/js/kjs_html.cpp:
66888        (KJS::JSHTMLCollectionProtoFunc::callAsFunction): Changed item() to fall back
66889        to namedItem() if its argument does not convert to a number.
66890
668912007-01-09  Darin Adler  <darin@apple.com>
66892
66893        Reviewed by Maciej.
66894
66895        - fix http://bugs.webkit.org/show_bug.cgi?id=12174
66896          improve Unicode use (less WTF::Unicode:: prefix, centralized character names)
66897
66898        - got rid of namespace prefixes from most uses of WTF::Unicode
66899
66900        - updated for removal of WTF::Unicode::memcmp
66901        - updated for renaming of WTF::Unicode::strcasecmp to umemcasecmp.
66902
66903        - unified constants for special Unicode characters in a new
66904          CharacterNames.h header
66905
66906        * WebCore.xcodeproj/project.pbxproj:
66907        * css/cssparser.cpp:
66908        (WebCore::ParseString::lower):
66909        * dom/Document.cpp:
66910        (WebCore::isValidNameStart):
66911        (WebCore::isValidNamePart):
66912        * dom/Position.cpp:
66913        (WebCore::Position::leadingWhitespacePosition):
66914        (WebCore::Position::trailingWhitespacePosition):
66915        * editing/CompositeEditCommand.cpp:
66916        (WebCore::isWhitespace):
66917        * editing/HTMLInterchange.cpp:
66918        * editing/TextIterator.cpp:
66919        (WebCore::CircularSearchBuffer::CircularSearchBuffer):
66920        (WebCore::CircularSearchBuffer::append):
66921        * editing/htmlediting.cpp:
66922        (WebCore::stringWithRebalancedWhitespace):
66923        (WebCore::nonBreakingSpaceString):
66924        * editing/htmlediting.h:
66925        * html/HTMLFontElement.cpp:
66926        (WebCore::parseFontSizeNumber):
66927        * html/HTMLParser.cpp:
66928        (WebCore::HTMLParser::handleError):
66929        * html/HTMLSelectElement.cpp:
66930        (WebCore::stripLeadingWhiteSpace):
66931        * platform/Font.cpp:
66932        (WebCore::WidthIterator::advance):
66933        (WebCore::WidthIterator::normalizeVoicingMarks):
66934        * platform/GlyphMap.cpp:
66935        (WebCore::GlyphMap::locatePage):
66936        * platform/MimeTypeRegistry.h:
66937        * platform/StringHash.h:
66938        * platform/StringImpl.cpp:
66939        (WebCore::isSpace):
66940        (WebCore::StringImpl::append):
66941        (WebCore::StringImpl::insert):
66942        (WebCore::StringImpl::truncate):
66943        (WebCore::StringImpl::remove):
66944        (WebCore::parseLength):
66945        (WebCore::StringImpl::isLower):
66946        (WebCore::StringImpl::lower):
66947        (WebCore::StringImpl::upper):
66948        (WebCore::StringImpl::secure):
66949        (WebCore::StringImpl::foldCase):
66950        (WebCore::StringImpl::capitalize):t
66951        (WebCore::StringImpl::toInt):
66952        (WebCore::equalIgnoringCase):
66953        (WebCore::StringImpl::find):
66954        * platform/TextBoundaries.h:
66955        * platform/TextCodec.h:
66956        * platform/TextCodecLatin1.cpp:
66957        * platform/TextEncoding.h:
66958        * platform/TextEncodingRegistry.h:
66959        * platform/mac/PasteboardMac.mm:
66960        (WebCore::Pasteboard::writeSelection):
66961        * platform/mac/TextCodecMac.cpp:
66962        (WebCore::TextCodecMac::decode):
66963        * rendering/RenderBlock.cpp:
66964        (WebCore::RenderBlock::updateFirstLetter):
66965        * rendering/RenderListMarker.cpp:
66966        (WebCore::listMarkerText):
66967        (WebCore::RenderListMarker::paint):
66968        * rendering/RenderText.cpp:
66969        (WebCore::RenderText::widthFromCache):
66970        (WebCore::isSpaceAccordingToStyle):
66971        (WebCore::RenderText::setInternalString):
66972        * rendering/RenderTreeAsText.cpp:
66973        (WebCore::quoteAndEscapeNonPrintables):
66974        (WebCore::operator<<):
66975        * rendering/bidi.cpp:
66976        (WebCore::BidiState::BidiState):
66977        (WebCore::BidiContext::BidiContext):
66978        (WebCore::bidiNext):
66979        (WebCore::bidiFirst):
66980        (WebCore::BidiIterator::direction):
66981        (WebCore::appendRun):
66982        (WebCore::embed):
66983        (WebCore::RenderBlock::bidiReorderLine):
66984        (WebCore::RenderBlock::layoutInlineChildren):
66985        (WebCore::skipNonBreakingSpace):
66986        (WebCore::RenderBlock::findNextLineBreak):
66987        * rendering/break_lines.cpp:
66988        (WebCore::nextBreakablePosition):
66989        * rendering/break_lines.h:
66990        * xml/XPathParser.cpp:
66991        (WebCore::XPath::charCat):
66992
669932007-01-09  Matt Perry  <mpcomplete@chromium.org>
66994
66995        Reviewed by Darin.
66996
66997        - fix http://bugs.webkit.org/show_bug.cgi?id=12170
66998          RenderView holds dangling reference to RenderObjects as selection markers
66999
67000        This fixes the crash seen on Windows -- the underlying problem
67001        may still exist.
67002
67003        * rendering/RenderText.h:
67004        (WebCore::RenderText::selectionState):
67005        Change the m_selectionState enum-bitfield to an unsigned-bitfield,
67006        because enums on Windows are signed, which caused it to become
67007        negative (whereas the valid values are all positive).
67008
670092007-01-09  Darin Adler  <darin@apple.com>
67010
67011        Reviewed by Hyatt.
67012
67013        - http://bugs.webkit.org/show_bug.cgi?id=12175
67014          port break_lines.cpp to be platform independent
67015
67016        * platform/TextBreakIterator.h: Added lineBreakIterator.
67017        Removed ICU-specific stuff from the header.
67018
67019        * platform/TextBreakIteratorICU.cpp:
67020        (WebCore::setUpIterator): Added helper to be shared by the three different
67021        creation functions.
67022        (WebCore::characterBreakIterator): Changed to use setUpIterator.
67023        (WebCore::wordBreakIterator): Ditto.
67024        (WebCore::lineBreakIterator): Added.
67025
67026        * platform/qt/TextBreakIteratorQt.cpp:
67027        (WebCore::lineBreakIterator): Added a stub.
67028
67029        * rendering/break_lines.cpp:
67030        (WebCore::isBreakableSpace): Added.
67031        (WebCore::shouldBreakAfter): Added.
67032        (WebCore::needsAdvancedBreakAnalysis): Added.
67033        (WebCore::nextBreakablePosition): Changed to use TextBreakIterator on platforms
67034        other than Mac.
67035
670362007-01-09  Maciej Stachowiak  <mjs@apple.com>
67037
67038        Reviewed by Darin.
67039
67040        - move WebDataProtocol load handling from ResourceLoader to MainResourceLoader
67041        
67042        (it's only ever used for main resources)
67043
67044        * loader/ResourceLoader.h:
67045        (WebCore::ResourceLoader::setRequest):
67046        * loader/mac/MainResourceLoaderMac.mm:
67047        (WebCore::MainResourceLoader::willSendRequest):
67048        (WebCore::MainResourceLoader::continueAfterContentPolicy):
67049        * loader/mac/ResourceLoaderMac.mm:
67050        (WebCore::ResourceLoader::willSendRequest):
67051        (WebCore::ResourceLoader::didReceiveResponse):
67052
670532007-01-09  Rob Buis  <buis@kde.org>
67054
67055        Reviewed by Eric.
67056
67057        http://bugs.webkit.org/show_bug.cgi?id=12129
67058        repaint issue after setting viewBox attribute with ECMAScript
67059
67060        Make sure RenderSVGContainer updates after setting viewBox from js.
67061
67062        * ksvg2/svg/SVGSVGElement.cpp:
67063        (WebCore::SVGSVGElement::parseMappedAttribute):
67064        * rendering/RenderSVGContainer.cpp:
67065        (WebCore::RenderSVGContainer::setViewBox):
67066
670672007-01-09  Lars Knoll <lars@trolltech.com>
67068
67069        Make the Qt build compile... again!
67070
67071        * WebCore.pro:
67072        * loader/qt/FrameLoaderQt.cpp:
67073        * platform/graphics/qt/GraphicsContextQt.cpp:
67074        * platform/graphics/qt/ImageBufferQt.cpp:
67075        (WebCore::ImageBuffer::create):
67076        * platform/qt/WidgetQt.cpp:
67077        (WebCore::Widget::focusPolicy):
67078
670792007-01-09  David Hyatt  <hyatt@apple.com>
67080
67081        Fix for background: inherit bug where background-color wasn't getting properly overridden.  This was a
67082        regression from Safari 1.3 to 2.0.
67083
67084        Reviewed by bdash
67085
67086        fast/backgrounds/background-color-inherit-bug.html
67087
67088        * css/cssstyleselector.cpp:
67089        (WebCore::CSSStyleSelector::applyProperty):
67090
670912007-01-08  Brady Eidson <beidson@apple.com>
67092
67093        Reviewed by Brian Dash
67094
67095        <rdar://problem/4895178> 
67096        WebCore::BackForwardList vector should be backed by a HashSet to remove
67097        the potential expense in frequently calling BackForwardList::containsItem()
67098
67099        * history/BackForwardList.cpp:
67100        (WebCore::BackForwardList::addItem): Maintain HashSet as well as Vector
67101        (WebCore::BackForwardList::setCapacity): Ditto
67102        (WebCore::BackForwardList::close): Ditto
67103        (WebCore::BackForwardList::removeItem): Ditto
67104        (WebCore::BackForwardList::containsItem): Make a hash lookup instead of iterate 
67105        through the Vector
67106        * history/BackForwardList.h:
67107
671082007-01-08  David Hyatt  <hyatt@apple.com>
67109
67110        Fix a regression where layout is triggering on all recalcStyles, due to a bad comparison
67111        in the multicol assignment operator.
67112
67113        * rendering/RenderStyle.cpp:
67114        (WebCore::StyleMultiColData::operator==):
67115
671162007-01-08  Darin Adler  <darin@apple.com>
67117
67118        - rolled out Beth's RenderFlow::destroy change, which broke 5 editing tests
67119
67120        * rendering/InlineBox.cpp: (WebCore::InlineBox::root):
67121        * rendering/RenderFlow.cpp: (WebCore::RenderFlow::destroy):
67122        Used svn merge to roll the change out.
67123
671242007-01-09  Mark Rowe  <mrowe@apple.com>
67125
67126        Reviewed by Tim H.
67127
67128        Build fix for 64-bit platforms.
67129
67130        * platform/graphics/svg/SVGPaintServerGradient.h:
67131        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
67132        (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
67133
671342007-01-08  Anders Carlsson  <acarlsson@apple.com>
67135
67136        Reviewed by Brady.
67137
67138        Move some history related functions off the bridge and into FrameLoader directly.
67139
67140        * loader/FrameLoader.cpp:
67141        (WebCore::FrameLoader::canGoBackOrForward):
67142        (WebCore::FrameLoader::getHistoryLength):
67143        (WebCore::FrameLoader::historyURL):
67144        * loader/mac/FrameLoaderMac.mm:
67145        * page/mac/WebCoreFrameBridge.h:
67146
671472007-01-08  Sam Weinig  <sam@webkit.org>
67148
67149        Reviewed by Mark.
67150
67151        Adds outline-color to list of computable styles.
67152
67153        * css/CSSComputedStyleDeclaration.cpp:
67154        (WebCore::):
67155
671562007-01-08  Beth Dakin  <bdakin@apple.com>
67157
67158        Reviewed by Hyatt.
67159
67160        Fix for a bug that Adam, Hyatt, and I noticed when debugging 
67161        another problem.
67162
67163        * rendering/InlineBox.cpp:
67164        (WebCore::InlineBox::root): Added assertion. If we are casting to a 
67165        root, we should make sure we are root.
67166        * rendering/RenderFlow.cpp:
67167        (WebCore::RenderFlow::destroy): It is not enough to remove the 
67168        child boxes for anonymous blocks. We need to be more thorough when 
67169        cleaning these up. Adam's test case illustrates the problem well.
67170
671712007-01-08  John Sullivan  <sullivan@apple.com>
67172
67173        Tweak to previous checkin
67174
67175        * page/ContextMenuController.cpp:
67176        (WebCore::ContextMenuController::contextMenuItemSelected):
67177        Adam suggested I should nil-check frame->page()
67178
671792007-01-08  John Sullivan  <sullivan@apple.com>
67180
67181        Reviewed by Brady and Beth
67182        
67183        - fixed <rdar://problem/4912541> GMAIL: With selected text in a rich text message, choosing 
67184        "Search in Google" displays search results in the message body field
67185
67186        * page/ContextMenuController.cpp:
67187        (WebCore::ContextMenuController::contextMenuItemSelected):
67188        Visit google URL in main frame rather than in current frame
67189
671902007-01-08  David Hyatt  <hyatt@apple.com>
67191
67192        Fix computed style errors for color properties that had invalid colors.
67193        They should return the value of the 'color' property when their colors
67194        are not valid.
67195
67196        Fixed the computed style value for border-top-color (a typo was causing it to
67197        use border-left-color instead).
67198
67199        Implement outline-color computed style.
67200
67201        Reviewed by harrison
67202
67203        * css/CSSComputedStyleDeclaration.cpp:
67204        (WebCore::currentColorOrValidColor):
67205        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
67206
672072007-01-08  Remi Zara  <remi_zara@mac.com>
67208
67209        Reviewed by Darin and Eric.
67210
67211        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12150
67212        Handle correctly cases where no stops are defined, cases where a
67213        stop offset value is less than previous stops offset value, and cases
67214        where a stop offset value is greater than 1.0.
67215        
67216        * platform/graphics/svg/SVGPaintServerGradient.cpp:
67217        (WebCore::SVGPaintServerGradient::setGradientStops): Don't sort stops
67218        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
67219        (WebCore::cgGradientCallback): When there are no stops, use a transparent
67220        fill
67221        (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
67222        a stop offset must always be considered at greater or equal to all
67223        preceding stop offsets, but no more than 1.0
67224
672252007-01-08  Timothy Hatcher  <timothy@apple.com>
67226
67227        Reviewed by Geoff.
67228
67229        <rdar://problem/4865325> please re-add auto font activation support in WebKit
67230
67231        * platform/mac/WebFontCache.mm:
67232        (+[WebFontCache fontWithFamily:traits:size:]):
67233
672342007-01-08  Darin Adler  <darin@apple.com>
67235
67236        Reviewed by Adam.
67237
67238        - http://bugs.webkit.org/show_bug.cgi?id=12143
67239          remove Widget code unneeded now that form elements do not use Widget
67240
67241        * bindings/objc/DOMHTML.mm: (-[DOMHTMLSelectElement _activateItemAtIndex:]):
67242        Removed useless implementation that would only work with NSView-based
67243        <select> elements, and added a FIXME about the fact that this function
67244        doesn't do anything any more. I think it's used by Safari forms auto-fill.
67245
67246        * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject rendererForView:]):
67247        Removed code that depends on elementForView:, since that always returns
67248        nil now.
67249
67250        * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::~HTMLFormElement):
67251        Use a formDestroyed() function rather than clearing m_form directly so that
67252        this class doesn't have to be a friend of HTMLGenericFormElement.
67253
67254        * html/HTMLGenericFormElement.h: Removed now-unneeded friend declaration
67255        for HTMLFormElement. Moved definition of supportsFocus into the .cpp file.
67256        Added a public formDestroyed function for use by HTMLFormElement.
67257        * html/HTMLGenericFormElement.cpp:
67258        (WebCore::HTMLGenericFormElement::attach): Removed widget-specific code.
67259        (WebCore::HTMLGenericFormElement::isKeyboardFocusable): Ditto.
67260        (WebCore::HTMLGenericFormElement::isMouseFocusable): Ditto.
67261        (WebCore::HTMLGenericFormElement::supportsFocus): Added this here; it was
67262        in the header file before, for no good reason.
67263
67264        * page/EventHandler.h: Removed unused Mac-specific
67265        currentEventIsMouseDownInWidget.
67266        * page/mac/EventHandlerMac.mm: Ditto.
67267
67268        * page/Frame.cpp: (WebCore::Frame::frameForWidget): Changed to use
67269        RenderWidget to find the frame rather than the WigetClient element()
67270        function.
67271
67272        * page/mac/FrameMac.h: Removed unused bridgeForWidget.
67273        * page/mac/FrameMac.mm: Ditto.
67274
67275        * page/mac/WebCoreFrameBridge.h: Removed elementForView.
67276        * page/mac/WebCoreFrameBridge.mm: Ditto. While the scroll bar still did
67277        implement WebCoreWidgetHolder, it does not correspond to a DOM element,
67278        so this method was always returning nil.
67279
67280        * platform/Widget.h: Moved unused types and functions that are still
67281        in the platform-specific implementations into a "to be deleted" section:
67282        FocusPolicy, NoFocus, TabFocus, ClickFocus, StrongFocus, WheelFocus,
67283        lockDrawingFocus, font, focusPolicy, hasFocus, clearFocus, setFont,
67284        disableFlushDrawing, enableFlushDrawing, unlockDrawingFocus.
67285        Removed unused functions that are not in platform-specific implementations:
67286        sizeHint, baselinePosition, checksDescendantsForFocus.
67287        * platform/Widget.cpp: Removed functions.
67288
67289        * platform/WidgetClient.h: Emptied out the class. Soon we can delete it.
67290
67291        * platform/mac/PlatformScrollBarMac.mm: (-[WebCoreScrollBar mouseDown:]):
67292        Got rid of unneeded includes, removed use of the WebCoreWidgetHolder
67293        protocol and the one method in it, and changed the calls to beforeMouseDown
67294        and afterMouseDown to pass the widget pointer in.
67295
67296        * platform/mac/WebCoreWidgetHolder.h: Emptied out the file -- to be deleted
67297        later.
67298
67299        * platform/mac/WidgetMac.mm:
67300        (WebCore::Widget::~Widget): Removed code to manage deferredFirstResponder.
67301        (WebCore::Widget::hasFocus): Removed body of function and replaced with
67302        an assertion that it's never called. Later we'll remove it.
67303        (WebCore::Widget::setFocus): Tweaked a bit to work given changes to the
67304        FrameMac class. Also added a FIXME. Given how this works, it does not
67305        belong in the platform layer.
67306        (WebCore::Widget::clearFocus): Removed body of function and replaced with
67307        an assertion that it's never called. Later we'll remove it.
67308        (WebCore::Widget::focusPolicy): Ditto.
67309        (WebCore::Widget::font): Ditto.
67310        (WebCore::Widget::setFont): Ditto.
67311        (WebCore::Widget::lockDrawingFocus): Ditto.
67312        (WebCore::Widget::unlockDrawingFocus): Ditto.
67313        (WebCore::Widget::disableFlushDrawing): Ditto.
67314        (WebCore::Widget::enableFlushDrawing): Ditto.
67315        (WebCore::Widget::paint): Removed obsolete comment.
67316        (WebCore::Widget::sendConsumedMouseUp): Removed body of function and replaced with
67317        an assertion that it's never called. Later we'll remove it.
67318        (WebCore::Widget::setIsSelected): Tweaked a bit to work given changes to the
67319        FrameMac class. Also added a FIXME. Given how this works, it does not
67320        belong in the platform layer.
67321        (WebCore::Widget::beforeMouseDown): Changed to take an explicit Widget parameter.
67322        (WebCore::Widget::afterMouseDown): Ditto.
67323
67324        * rendering/RenderApplet.cpp:
67325        (WebCore::RenderApplet::intrinsicWidth): Changed to not call sizeHint() any more.
67326        I didn't change the values returned by the function, but they make no sense and
67327        this should probably be fixed later.
67328        (WebCore::RenderApplet::intrinsicHeight): Ditto.
67329
67330        * rendering/RenderWidget.h: Removed unneeded WidgetClient.h include. Changed
67331        RenderWidget to no longer inherit from WidgetClient. Added a find function to find
67332        a RenderWidget given a Widget. Removed all the virtual functions that override
67333        WidgetClient hooks.
67334        * rendering/RenderWidget.cpp: Removed all the WidgetClient functions.
67335        (WebCore::widgetRendererMap): Added. Map that gives the RenderWidget for each
67336        Widget that is owned by a RenderWidget.
67337        (WebCore::RenderWidget::destroy): Removed the setClient call and added a call to
67338        remove the widget from the widgetRendererMap.
67339        (WebCore::RenderWidget::setWidget): Ditto.
67340        (WebCore::RenderWidget::setStyle): Removed the call to Widget::setFont.
67341        (WebCore::RenderWidget::find): Added. Returns the RenderWidget for a Widget, if any.
67342
67343        - other changes
67344
67345        * dom/Node.cpp:
67346        (WebCore::Node::dump): Removed unnecessary use of DeprecatedString.
67347        (WebCore::appendAttributeDesc): Ditto.
67348        (WebCore::Node::showNode): Ditto.
67349        (WebCore::Node::formatForDebugger): Ditto.
67350
67351        * loader/CachedImage.cpp: (WebCore::CachedImage::createImage): Cleaned up
67352        conditional compilation so adding more MIME types here doesn't make the
67353        function more and more difficult to read.
67354
67355        * page/Frame.h: Removed unneeded includes and declarations.
67356        Tweaked formatting.
67357        * page/Page.h: Removed unneeded declarations.
67358        * platform/ScrollView.h: Removed unneeded includes.
67359
67360        * rendering/RenderBlock.cpp: (WebCore::RenderBlock::renderName): Tweaked formatting.
67361
673622007-01-08  Mitz Pettel  <mitz@webkit.org>
67363
67364        Reviewed by Darin.
67365
67366        - fix http://bugs.webkit.org/show_bug.cgi?id=12162
67367          The inheritableProperties array is duplicated
67368
67369        No test possible (no change to functionality).
67370
67371        * css/CSSComputedStyleDeclaration.cpp:
67372        (WebCore::CSSComputedStyleDeclaration::removeComputedInheritablePropertiesFrom): Added.
67373        Removes the inheritable properties that CSSComputedStyleDeclaration knows how to compute
67374        from the given mutable declaration.
67375        * css/CSSComputedStyleDeclaration.h:
67376        * css/CSSMutableStyleDeclaration.cpp: Removed one copy of the inheritableProperties array.
67377        * css/CSSMutableStyleDeclaration.h:
67378        * editing/ReplaceSelectionCommand.cpp:
67379        (WebCore::ReplaceSelectionCommand::removeRedundantStyles): Changed to call
67380        CSSComputedStyleDeclaration::removeComputedInheritablePropertiesFrom.
67381
673822007-01-08  Alexey Proskuryakov  <ap@webkit.org>
67383
67384        Reviewed by Darin.
67385
67386        http://bugs.webkit.org/show_bug.cgi?id=12099
67387        XMLHttpRequest shouldn't honor a charset specified via setRequestHeader
67388
67389        Test: http/tests/xmlhttprequest/request-encoding.html
67390
67391        * xml/xmlhttprequest.cpp:
67392        (WebCore::XMLHttpRequest::send): Don't try to get the charset from Content-Type. Keep checking 
67393        for unknown charsets, because that will be needed again when we start using document.xmlEncoding.
67394
673952007-01-08  Alexey Proskuryakov  <ap@webkit.org>
67396
67397        Reviewed by Darin.
67398
67399        http://bugs.webkit.org/show_bug.cgi?id=7640
67400        Menu items are displayed as "undefined"
67401
67402        * bindings/js/kjs_dom.cpp:
67403        (KJS::DOMNodeProtoFunc::callAsFunction):
67404        * bindings/js/kjs_domnode.h:
67405        (KJS::DOMNode::):
67406        Removed Node::item. No idea why it was there in the first place.
67407
67408        * bindings/js/kjs_html.cpp:
67409        (KJS::HTMLElementFunction::callAsFunction):
67410        * bindings/js/kjs_html.h:
67411        (KJS::JSHTMLElement::):
67412        Added HTMLSelectElement::item. It is not in DOM2 IDL, but the spec seems to mentions it anyway:
67413        "The contained options can be directly accessed through the select element as a collection."
67414
67415        * html/HTMLSelectElement.cpp:
67416        (WebCore::HTMLSelectElement::namedItem):
67417        (WebCore::HTMLSelectElement::item):
67418        * html/HTMLSelectElement.h:
67419        * html/HTMLSelectElement.idl:
67420        Added this method to DOM and IDL, too. Made namedItem() non-virtual.
67421
674222007-01-08  Beth Dakin  <bdakin@apple.com>
67423
67424        Reviewed by Maciej.
67425
67426        Fix for <rdar://problem/4912254> REGRESSION: After copying text to 
67427        the clipboard, the paste contextual remains dimmed when it should
67428        be active
67429
67430        No layout test for context menu problems.
67431
67432        * platform/ContextMenu.cpp:
67433        (WebCore::ContextMenu::checkOrEnableIfNeeded): Remove check to see 
67434        if the content is richly editable; it only has to be regular 
67435        editable and the call to canPaste() takes care of that.
67436
674372007-01-08  Sam Weinig  <sam@webkit.org>
67438
67439        Reviewed by Mitz.
67440
67441        Attempt to fix build for buildbots.
67442
67443        * rendering/RenderBlock.cpp:
67444        (WebCore::RenderBlock::columnGap):
67445        (WebCore::RenderBlock::calcColumnWidth):
67446
674472007-01-08  Darin Adler  <darin@apple.com>
67448
67449        Reviewed by Maciej.
67450
67451        - fix http://bugs.webkit.org/show_bug.cgi?id=3232
67452          CSS2: Web Kit does not support all list style types
67453
67454        Test case showed problems in cjk-ideographic and hebrew
67455        Test: fast/lists/w3-list-styles.html
67456
67457        * rendering/RenderListMarker.cpp:
67458        (WebCore::toCJKIdeographic): Fix the algorithm so it doesn't include leading zeroes.
67459        I had misread the part that says you start with the decimal form of the number.
67460        Fix an assertion that was too stringent. Fix the code to collapse consecutive zeroes
67461        so that it doesn't get confused by intervening "noChar" characters.
67462        (WebCore::RenderListMarker::paint): Reverse the text before painting if the first character's
67463        direction is right to left.
67464
674652007-01-08  Darin Adler  <darin@apple.com>
67466
67467        Reviewed by Beth.
67468
67469        - http://bugs.webkit.org/show_bug.cgi?id=12142
67470          render tree dump for test results should include the value of list markers
67471
67472        * rendering/RenderTreeAsText.cpp:
67473        (WebCore::getTagName): Changed to use String instead of DeprecatedString.
67474        (WebCore::quoteAndEscapeNonPrintables): Ditto. Also moved up so it can be used
67475        in the operator below.
67476        (WebCore::operator<<): Added clause for RenderListMarker that dumps the value
67477        of the list marker's text.
67478        (WebCore::nodePosition): Changed to use String instead of DeprecatedString.
67479        * rendering/SVGRenderTreeAsText.cpp:
67480        (WebCore::TextStreamSeparator::TextStreamSeparator): Changed to use String
67481        instead of DeprecatedString.
67482        (WebCore::getTagName): Ditto.
67483        (WebCore::write): Ditto.
67484
674852007-01-08  Sam Weinig  <sam@webkit.org>
67486
67487        Reviewed by ap and the rubber stamp of Maciej.
67488
67489        Patch for http://bugs.webkit.org/show_bug.cgi?id=12164
67490        Cleanup Tokenizers
67491
67492        - Moves Tokenizer class into its own file.
67493        - Move XMLTokenizer declaration from XMLTokenizer.cpp to XMLTokenizer.h
67494        - Fixup #includes.
67495
67496        * WebCore.xcodeproj/project.pbxproj:
67497        * dom/Document.cpp:
67498        (WebCore::Document::createTokenizer):
67499        * dom/Tokenizer.h: Added.
67500        (WebCore::Tokenizer::Tokenizer):
67501        (WebCore::Tokenizer::~Tokenizer):
67502        (WebCore::Tokenizer::stopParsing):
67503        (WebCore::Tokenizer::processingData):
67504        (WebCore::Tokenizer::executingScript):
67505        (WebCore::Tokenizer::wantsRawData):
67506        (WebCore::Tokenizer::writeRawData):
67507        (WebCore::Tokenizer::inViewSourceMode):
67508        (WebCore::Tokenizer::setInViewSourceMode):
67509        (WebCore::Tokenizer::wellFormed):
67510        (WebCore::Tokenizer::lineNumber):
67511        (WebCore::Tokenizer::columnNumber):
67512        * dom/XMLTokenizer.cpp:
67513        * dom/XMLTokenizer.h:
67514        (WebCore::XMLTokenizer::):
67515        (WebCore::XMLTokenizer::setIsXHTMLDocument):
67516        (WebCore::XMLTokenizer::isXHTMLDocument):
67517        (WebCore::XMLTokenizer::wellFormed):
67518        * html/HTMLElement.cpp:
67519        * html/HTMLTokenizer.h:
67520        (WebCore::Token::reset):
67521        (WebCore::HTMLTokenizer::checkBuffer):
67522        (WebCore::HTMLTokenizer::checkScriptBuffer):
67523        (WebCore::HTMLTokenizer::State::State):
67524        (WebCore::HTMLTokenizer::State::setBit):
67525        * xml/XSLTProcessor.cpp:
67526
675272007-01-08  Sam Weinig  <sam@webkit.org>
67528
67529        Reviewed by Tim H.
67530
67531        Adds -webkit-box-shadow to list of computable styles.
67532
67533        * css/CSSComputedStyleDeclaration.cpp:
67534        (WebCore::):
67535
675362007-01-08  Rob Buis  <buis@kde.org>
67537
67538        Reviewed by bdash.
67539
67540        Initialize the member vars, fixes testcases
67541        pointer-events-path.svg and pointer-events-text.svg
67542        on the PPC build.
67543
67544        * ksvg2/misc/PointerEventsHitRules.cpp:
67545        (WebCore::PointerEventsHitRules::PointerEventsHitRules):
67546
675472007-01-08  David Hyatt  <hyatt@apple.com>
67548
67549        This patch computes the correct column width and column count.  It ensures that content lays out constrained
67550        to the column width in one long strip.  It does not yet balance the long strip into multiple columns.
67551
67552        Reviewed by Mark
67553
67554        * rendering/RenderBlock.cpp:
67555        (WebCore:::RenderFlow):
67556        (WebCore::RenderBlock::layoutBlock):
67557        (WebCore::RenderBlock::rightOffset):
67558        (WebCore::RenderBlock::availableWidth):
67559        (WebCore::RenderBlock::columnGap):
67560        (WebCore::RenderBlock::calcColumnWidth):
67561        * rendering/RenderBlock.h:
67562        * rendering/RenderStyle.h:
67563        (WebCore::RenderStyle::setColumnWidth):
67564
675652007-01-08  David Hyatt  <hyatt@apple.com>
67566
67567        Fix column-count so that it supports auto just like column-width does.
67568
67569        Add a new function, availableWidth(), that will be used to return the width available to content placed inside
67570        a block.  For now it still returns contentWidth(), so no behavioral change has occurred yet.
67571
67572        Subclass calcWidth() in RenderBlock, but don't change anything yet.  This is where RenderBlock will calc the
67573        correct column width.
67574
67575        Reviewed by mark
67576
67577        * css/CSSComputedStyleDeclaration.cpp:
67578        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
67579        * css/cssstyleselector.cpp:
67580        (WebCore::CSSStyleSelector::applyProperty):
67581        * rendering/RenderBlock.cpp:
67582        (WebCore::RenderBlock::leftRelOffset):
67583        (WebCore::RenderBlock::rightRelOffset):
67584        (WebCore::RenderBlock::getClearDelta):
67585        (WebCore::RenderBlock::availableWidth):
67586        (WebCore::RenderBlock::calcWidth):
67587        * rendering/RenderBlock.h:
67588        * rendering/RenderBox.cpp:
67589        (WebCore::RenderBox::containingBlockWidth):
67590        * rendering/RenderObject.cpp:
67591        (WebCore::RenderObject::containingBlockWidth):
67592        (WebCore::RenderObject::paddingTop):
67593        (WebCore::RenderObject::paddingBottom):
67594        (WebCore::RenderObject::paddingLeft):
67595        (WebCore::RenderObject::paddingRight):
67596        * rendering/RenderObject.h:
67597        (WebCore::RenderObject::availableWidth):
67598        * rendering/RenderStyle.cpp:
67599        (WebCore::StyleMultiColData::StyleMultiColData):
67600        (WebCore::StyleMultiColData::operator==):
67601        * rendering/RenderStyle.h:
67602        (WebCore::RenderStyle::hasAutoColumnCount):
67603        (WebCore::RenderStyle::setColumnCount):
67604        (WebCore::RenderStyle::setHasAutoColumnCount):
67605        * rendering/RenderTable.cpp:
67606        (WebCore::RenderTable::calcWidth):
67607
676082007-01-08  David Hyatt  <hyatt@apple.com>
67609
67610        Fix z-index:inherit so that it works properly when inheriting from z-index:auto.
67611
67612        Reviewed by eric
67613
67614        fast/layers/zindex-inherit.html
67615
67616        * css/cssstyleselector.cpp:
67617        (WebCore::CSSStyleSelector::applyProperty):
67618
676192007-01-08  David Hyatt  <hyatt@apple.com>
67620
67621        Add support for all of the CSS3 multi-column properties in preparation for implementing the
67622        feature.
67623
67624        Reviewed by eric
67625
67626        * css/CSSComputedStyleDeclaration.cpp:
67627        (WebCore::):
67628        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
67629        * css/CSSMutableStyleDeclaration.cpp:
67630        (WebCore::):
67631        * css/CSSPropertyNames.in:
67632        * css/cssparser.cpp:
67633        (WebCore::CSSParser::parseValue):
67634        * css/cssstyleselector.cpp:
67635        (WebCore::CSSStyleSelector::applyProperty):
67636        * rendering/RenderStyle.cpp:
67637        (WebCore::StyleMultiColData::StyleMultiColData):
67638        (WebCore::StyleMultiColData::operator==):
67639        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
67640        (WebCore::StyleRareNonInheritedData::operator==):
67641        (WebCore::RenderStyle::RenderStyle):
67642        (WebCore::RenderStyle::diff):
67643        * rendering/RenderStyle.h:
67644        (WebCore::StyleMultiColData::operator!=):
67645        (WebCore::StyleMultiColData::ruleWidth):
67646        (WebCore::RenderStyle::columnWidth):
67647        (WebCore::RenderStyle::hasAutoColumnWidth):
67648        (WebCore::RenderStyle::columnCount):
67649        (WebCore::RenderStyle::columnGap):
67650        (WebCore::RenderStyle::hasAutoColumnGap):
67651        (WebCore::RenderStyle::columnRuleColor):
67652        (WebCore::RenderStyle::columnRuleStyle):
67653        (WebCore::RenderStyle::columnRuleWidth):
67654        (WebCore::RenderStyle::columnBreakBefore):
67655        (WebCore::RenderStyle::columnBreakInside):
67656        (WebCore::RenderStyle::columnBreakAfter):
67657        (WebCore::RenderStyle::setColumnWidth):
67658        (WebCore::RenderStyle::setHasAutoColumnWidth):
67659        (WebCore::RenderStyle::setColumnCount):
67660        (WebCore::RenderStyle::setColumnGap):
67661        (WebCore::RenderStyle::setHasAutoColumnGap):
67662        (WebCore::RenderStyle::setColumnRuleColor):
67663        (WebCore::RenderStyle::setColumnRuleStyle):
67664        (WebCore::RenderStyle::setColumnRuleWidth):
67665        (WebCore::RenderStyle::resetColumnRule):
67666        (WebCore::RenderStyle::setColumnBreakBefore):
67667        (WebCore::RenderStyle::setColumnBreakInside):
67668        (WebCore::RenderStyle::setColumnBreakAfter):
67669        (WebCore::RenderStyle::initialColumnCount):
67670        (WebCore::RenderStyle::initialColumnWidth):
67671
676722007-01-07  Rob Buis  <buis@kde.org>
67673
67674        Reviewed by Eric.
67675
67676        http://bugs.webkit.org/show_bug.cgi?id=10587
67677        pointer-events is not implemented for RenderSVGImage or RenderSVGText
67678
67679        Implement pointer-events for raster images and svg text.
67680
67681        * WebCore.xcodeproj/project.pbxproj:
67682        * ksvg2/misc/PointerEventsHitRules.cpp: Added.
67683        (WebCore::PointerEventsHitRules::PointerEventsHitRules):
67684        * ksvg2/misc/PointerEventsHitRules.h: Added.
67685        (WebCore::PointerEventsHitRules::):
67686        * rendering/RenderPath.cpp:
67687        (WebCore::RenderPath::nodeAtPoint):
67688        * rendering/RenderPath.h:
67689        * rendering/RenderSVGImage.cpp:
67690        (WebCore::RenderSVGImage::nodeAtPoint):
67691        * rendering/RenderSVGImage.h:
67692        * rendering/RenderSVGText.cpp:
67693        (WebCore::RenderSVGText::nodeAtPoint):
67694        * rendering/RenderSVGText.h:
67695
676962007-01-07  David Hyatt  <hyatt@apple.com>
67697
67698        Fix a regression where border-radius was not clipping the background when border was set to none.
67699        Fix multi-line inline flow painting to properly apply border-radius to the background only at the
67700        beginning of the first line and end of the last line.
67701
67702        Reviewed by eric
67703
67704        * rendering/InlineFlowBox.cpp:
67705        (WebCore::InlineFlowBox::paintBackground):
67706        * rendering/RenderBox.cpp:
67707        (WebCore::RenderBox::paintBackground):
67708        (WebCore::RenderBox::paintBackgroundExtended):
67709        * rendering/RenderBox.h:
67710        * rendering/RenderObject.h:
67711        (WebCore::RenderObject::paintBackgroundExtended):
67712
677132007-01-07  David Hyatt  <hyatt@apple.com>
67714
67715        Add support for the CSS3 box-shadow property.
67716
67717        Reviewed by olliej
67718
67719        fast/box-shadow/ contains the tests for this feature.
67720
67721        * platform/graphics/GraphicsContext.cpp:
67722        (WebCore::GraphicsContext::clipOutRoundedRect):
67723        * platform/graphics/GraphicsContext.h:
67724        * platform/graphics/cg/GraphicsContextCG.cpp:
67725        (WebCore::GraphicsContext::fillRoundedRect):
67726        (WebCore::GraphicsContext::clipOut):
67727        (WebCore::GraphicsContext::clipOutEllipseInRect):
67728        * platform/graphics/qt/GraphicsContextQt.cpp:
67729        (WebCore::GraphicsContext::fillRoundedRect):
67730        (WebCore::GraphicsContext::clipOut):
67731        (WebCore::GraphicsContext::clipOutEllipseInRect):
67732        * rendering/InlineFlowBox.cpp:
67733        (WebCore::InlineFlowBox::paint):
67734        (WebCore::InlineFlowBox::paintBoxShadow):
67735        (WebCore::InlineFlowBox::paintBoxDecorations):
67736        (WebCore::shouldDrawTextDecoration):
67737        (WebCore::InlineFlowBox::paintTextDecorations):
67738        * rendering/InlineFlowBox.h:
67739        * rendering/InlineRunBox.h:
67740        (WebCore::InlineRunBox::paintBoxDecorations):
67741        (WebCore::InlineRunBox::paintTextDecorations):
67742        * rendering/RenderBlock.cpp:
67743        (WebCore::RenderBlock::paintObject):
67744        * rendering/RenderBox.cpp:
67745        (WebCore::RenderBox::setStyle):
67746        (WebCore::RenderBox::paintBoxDecorations):
67747        (WebCore::RenderBox::paintBackgroundExtended):
67748        * rendering/RenderFieldset.cpp:
67749        (WebCore::RenderFieldset::paintBoxDecorations):
67750        * rendering/RenderHTMLCanvas.cpp:
67751        (WebCore::RenderHTMLCanvas::paint):
67752        * rendering/RenderImage.cpp:
67753        (WebCore::RenderImage::paint):
67754        * rendering/RenderImage.h:
67755        * rendering/RenderListMarker.cpp:
67756        (WebCore::RenderListMarker::paint):
67757        * rendering/RenderObject.cpp:
67758        (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
67759        (WebCore::RenderObject::paintBoxShadow):
67760        (WebCore::RenderObject::dump):
67761        (WebCore::RenderObject::setStyle):
67762        * rendering/RenderObject.h:
67763        (WebCore::RenderObject::hasBoxDecorations):
67764        (WebCore::RenderObject::setHasBoxDecorations):
67765        * rendering/RenderSVGContainer.cpp:
67766        (WebCore::RenderSVGContainer::paint):
67767        * rendering/RenderTable.cpp:
67768        (WebCore::RenderTable::paint):
67769        (WebCore::RenderTable::paintBoxDecorations):
67770        * rendering/RenderTableCell.cpp:
67771        (WebCore::RenderTableCell::RenderTableCell):
67772        (WebCore::RenderTableCell::setStyle):
67773        (WebCore::RenderTableCell::paintBoxDecorations):
67774        * rendering/RenderWidget.cpp:
67775        (WebCore::RenderWidget::paint):
67776
677772007-01-07  Rob Buis  <buis@kde.org>
67778
67779        Reviewed by weinig.
67780
67781        http://bugs.webkit.org/show_bug.cgi?id=10362
67782        SVG needs to support SVGError events and some form of "error state"
67783
67784        Report SVG warnings and errors on (JS) console.
67785        Expose line and column number getters in Tokenizer in
67786        order to display them with the error message.
67787
67788        * dom/XMLTokenizer.cpp:
67789        * dom/XMLTokenizer.h:
67790        (WebCore::Tokenizer::lineNumber):
67791        (WebCore::Tokenizer::columnNumber):
67792        * html/HTMLTokenizer.h:
67793        (WebCore::HTMLTokenizer::lineNumber):
67794        (WebCore::HTMLTokenizer::columnNumber):
67795        * ksvg2/misc/SVGDocumentExtensions.cpp:
67796        (WebCore::SVGDocumentExtensions::reportWarning):
67797        (WebCore::SVGDocumentExtensions::reportError):
67798        * ksvg2/misc/SVGDocumentExtensions.h:
67799        * ksvg2/svg/SVGCircleElement.cpp:
67800        (WebCore::SVGCircleElement::parseMappedAttribute):
67801        * ksvg2/svg/SVGElement.h:
67802        * ksvg2/svg/SVGEllipseElement.cpp:
67803        (WebCore::SVGEllipseElement::parseMappedAttribute):
67804        * ksvg2/svg/SVGFitToViewBox.cpp:
67805        (WebCore::SVGFitToViewBox::parseViewBox):
67806        * ksvg2/svg/SVGFitToViewBox.h:
67807        * ksvg2/svg/SVGImageElement.cpp:
67808        (WebCore::SVGImageElement::parseMappedAttribute):
67809        * ksvg2/svg/SVGParserUtilities.cpp:
67810        (WebCore::SVGPolyParser::parsePoints):
67811        * ksvg2/svg/SVGParserUtilities.h:
67812        * ksvg2/svg/SVGPathElement.cpp:
67813        (WebCore::SVGPathElement::parseMappedAttribute):
67814        * ksvg2/svg/SVGPatternElement.cpp:
67815        (WebCore::SVGPatternElement::parseMappedAttribute):
67816        * ksvg2/svg/SVGPolyElement.cpp:
67817        (WebCore::SVGPolyElement::parseMappedAttribute):
67818        * ksvg2/svg/SVGRadialGradientElement.cpp:
67819        (WebCore::SVGRadialGradientElement::parseMappedAttribute):
67820        * ksvg2/svg/SVGRectElement.cpp:
67821        (WebCore::SVGRectElement::parseMappedAttribute):
67822        * ksvg2/svg/SVGSVGElement.cpp:
67823        (WebCore::SVGSVGElement::parseMappedAttribute):
67824        * ksvg2/svg/SVGTextContentElement.cpp:
67825        (WebCore::SVGTextContentElement::parseMappedAttribute):
67826        * ksvg2/svg/SVGUseElement.cpp:
67827        (WebCore::SVGUseElement::parseMappedAttribute):
67828
678292007-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
67830
67831        Reviewed by Sam.
67832
67833        Cleanup code & fix InlineBox positioning when text-anchor is used.
67834
67835        * rendering/RenderSVGText.cpp: Cleanup code.
67836        (WebCore::RenderSVGText::nodeAtPoint):
67837        (WebCore::RenderSVGText::absoluteRects):
67838        (WebCore::RenderSVGText::paint):
67839        * rendering/RenderText.cpp: Remove unused function posOfChar()
67840        * rendering/RenderText.h: Ditto.
67841        * rendering/SVGInlineFlowBox.cpp:
67842        (WebCore::translateBox):
67843        (WebCore::placePositionedBoxesHorizontally):
67844
678452007-01-06  George Staikos  <staikos@kde.org>
67846
67847        Reviewed by Brady.
67848
67849        Make the Qt build work.... again.
67850
67851        * WebCore.pro:
67852        * loader/FrameLoader.cpp:
67853        (WebCore::FrameLoader::requestFromDelegate):
67854        * loader/qt/DocumentLoaderQt.cpp:
67855        * loader/qt/FrameLoaderQt.cpp:
67856        * loader/qt/MainResourceLoaderQt.cpp: Added.
67857        (WebCore::MainResourceLoader::create):
67858        * loader/qt/ResourceLoaderQt.cpp:
67859        (WebCore::ResourceLoader::load):
67860        (WebCore::ResourceLoader::cancel):
67861        (WebCore::ResourceLoader::releaseResources):
67862        (WebCore::ResourceLoader::addData):
67863        * platform/network/qt/ResourceHandleQt.cpp:
67864        (WebCore::ResourceHandle::supportsBufferedData):
67865        (WebCore::ResourceHandle::bufferedData):
67866        (WebCore::ResourceHandle::loadResourceSynchronously):
67867        * platform/qt/LoaderFunctionsQt.cpp:
67868        * platform/qt/TemporaryLinkStubs.cpp: implemented some functions
67869        (WebCore::screenDepth):
67870        (WebCore::screenDepthPerComponent):
67871        (WebCore::screenIsMonochrome):
67872        (WebCore::screenRect):
67873        (WebCore::screenAvailableRect):
67874
678752007-01-07  Mitz Pettel  <mitz@webkit.org>
67876
67877        Reviewed by Mark Rowe.
67878
67879        - fix http://bugs.webkit.org/show_bug.cgi?id=11133
67880
67881        Test: fast/forms/listbox-clip.html
67882
67883        * platform/mac/PlatformScrollBarMac.mm:
67884        (-[WebCoreScrollBar initWithPlatformScrollbar:]): Get the correct scrollbar
67885        width/height based on control size.
67886        * rendering/RenderListBox.cpp:
67887        Renamed optionsSpacingLeft to optionsSpacingHorizontal since it is applied
67888        on both sides.
67889        (WebCore::RenderListBox::calcMinMaxWidth): Account for optionsSpacingHorizontal.
67890        Not including the spacing before went unnoticed since the scrollbar was lying
67891        about its width by exactly the same amount.
67892        (WebCore::RenderListBox::paintObject): Clip out the scrollbar.
67893        (WebCore::RenderListBox::paintItemForeground): Changed for the rename.
67894
678952007-01-07  Mitz Pettel  <mitz@webkit.org>
67896
67897        Reviewed by Hyatt.
67898
67899        - fix http://bugs.webkit.org/show_bug.cgi?id=11935
67900          REGRESSION: Changing the overflow style dynamically does not force repaint
67901
67902        Test: fast/repaint/erase-overflow.html
67903
67904        * rendering/RenderBox.cpp:
67905        (WebCore::RenderBox::setStyle): Added a repaint before changing hasOverflowClip
67906        to true, to ensure that the current overflow is erased.
67907
679082007-01-07  Graham Dennis  <graham.dennis@gmail.com>
67909
67910        Reviewed by Darin.
67911
67912        Patch for http://bugs.webkit.org/show_bug.cgi?id=12106
67913        Changed URL from WebResourceLoadDelegate's webView:resource:willSendRequest:... is ignored
67914
67915        * loader/mac/SubresourceLoaderMac.mm:
67916        (WebCore::SubresourceLoader::willSendRequest): Use m_originalURL instead of request().url()
67917        as m_request is not set until the end of ResourceLoader::willSendRequest. Also, ensure that
67918        the request is updated if the frame's client changes it, and that the SubresourceLoader's client
67919        gets the new request and not the old one. 
67920
679212007-01-07  Alexey Proskuryakov  <ap@webkit.org>
67922
67923        Reviewed by Darin.
67924
67925        http://bugs.webkit.org/show_bug.cgi?id=10313
67926        xsl:import doesn't work in stylesheets loaded via XMLHttpRequest
67927
67928        This is a partial fix that makes a couple more steps towards fixing the problem.
67929
67930        Test: fast/xsl/transform-xhr-doc.xhtml
67931
67932        * xml/XSLTProcessor.cpp:
67933        (WebCore::xsltStylesheetPointer): Pass an URL for the stylesheet. I'm not sure why this constructor even needs it, 
67934        given that it has a Node, but this is a small modifications that makes XSLImportRule try to load from a correct URL.
67935        (WebCore::XSLTProcessor::transformToString): Fix the crash for real this time.
67936
679372007-01-06  Rob Buis  <buis@kde.org>
67938
67939        Reviewed by Darin.
67940
67941        http://bugs.webkit.org/show_bug.cgi?id=12125
67942        overflow attribute of the symbol element not respected
67943
67944        Copy the attribute map to the cloned node so the overflow on
67945        the symbol is respected.
67946
67947        * ksvg2/svg/SVGUseElement.cpp:
67948        (WebCore::SVGUseElement::closeRenderer):
67949
679502007-01-06  Eric Seidel  <eric@webkit.org>
67951
67952        Reviewed and significantly tweaked by Darin.
67953
67954        - fix http://bugs.webkit.org/show_bug.cgi?id=12103
67955          LEAK: Fix the leaking ImageBuffer buffers on TOT
67956
67957        * ksvg2/svg/SVGMaskElement.h:
67958        * ksvg2/svg/SVGMaskElement.cpp:
67959        (WebCore::SVGMaskElement::drawMaskerContent):
67960        Changed to return auto_ptr since it returns a newly-created ImageBuffer.
67961
67962        * ksvg2/svg/SVGPatternElement.cpp:
67963        (WebCore::SVGPatternElement::buildPattern):
67964        Changed to use auto_ptr since ImageBuffer::create now returns one.
67965
67966        * platform/graphics/GraphicsContext.h: Removed the include of ImageBuffer.h,
67967        which was never needed, and the declaration of createImageBuffer, which is
67968        now a class member function of ImageBuffer.
67969
67970        * platform/graphics/ImageBuffer.h: Replaced the constructor with a create
67971        function. Added a comment about the need to move renderSubtreeToImage
67972        elsewhere. Added an m_data member to store the data so it can be deleted
67973        when the object is done, made the m_size member non-platform-specific.
67974        Added a private constructor for use to create the CG version.
67975
67976        * platform/graphics/cg/GraphicsContextCG.cpp: Removed
67977        GraphicsContext::createImageBuffer.
67978
67979        * platform/graphics/cg/ImageBufferCG.cpp:
67980        (WebCore::ImageBuffer::create): Added. Replaces the old
67981        GraphicsContext::createImageBuffer function.
67982        (WebCore::ImageBuffer::ImageBuffer): Added m_data and m_context.
67983        (WebCore::ImageBuffer::~ImageBuffer): Added a fastFree of the data and got
67984        rid of the unneeded null check before calling CGImageRelease.
67985
67986        * platform/graphics/svg/SVGPaintServerGradient.h: Removed the include of
67987        ImageBuffer.h and declared the ImageBuffer class instead.
67988
67989        * platform/graphics/svg/SVGPaintServerPattern.h: Removed the include of
67990        ImageBuffer.h and declared the ImageBuffer class instead, and changed setTile
67991        to take an auto_ptr since it takes ownership of the ImageBuffer.
67992        * platform/graphics/svg/SVGPaintServerPattern.cpp:
67993        (WebCore::SVGPaintServerPattern::setTile): Ditto.
67994
67995        * platform/graphics/svg/SVGResourceMasker.h: Removed the include of
67996        ImageBuffer.h and declared the ImageBuffer class instead, and changed setMask
67997        to take an auto_ptr since it takes ownership of the ImageBuffer.
67998        * platform/graphics/svg/SVGResourceMasker.cpp:
67999        (WebCore::SVGResourceMasker::setMask): Ditto.
68000
68001        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
68002        (WebCore::SVGPaintServerGradient::setup): Updated to use auto_ptr.
68003
68004        * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp: Updated includes.
68005
68006        * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
68007        (WebCore::SVGResourceMasker::applyMask): Updated to use auto_ptr.
68008
68009        - other changes
68010
68011        * ksvg2/svg/SVGAnimateTransformElement.cpp:
68012        (WebCore::SVGAnimateTransformElement::handleStartCondition):
68013        Remove unused variables.
68014
680152007-01-06  Mitz Pettel  <mitz@webkit.org>
68016
68017        Reviewed by Maciej.
68018
68019        - fix http://bugs.webkit.org/show_bug.cgi?id=12136
68020          REGRESSION: Counters-related leaks
68021
68022        * rendering/RenderCounter.cpp:
68023        (WebCore::destroyCounterNodeChildren): Delete the child counter nodes.
68024
680252007-01-05  Adele Peterson  <adele@apple.com>
68026
68027        Release build fix.
68028
68029        * rendering/RenderListItem.cpp: (WebCore::RenderListItem::explicitValueChanged): Initialize listRenderer.
68030
680312007-01-05  Darin Adler  <darin@apple.com>
68032
68033        Reviewed by Hyatt.
68034
68035        - eliminated use of DeprecatedString for list item markers
68036        - eliminated use of DeprecatedValueList for border style collapsing
68037        - made many members private instead of protected or public
68038
68039        - reworked counter implementation to fix most of the CSS 2.1 counter tests;
68040            made CounterNode be a simple non-polymorphic class, moved most counter-
68041            specific code out of RenderObject into RenderCounter, changed the data
68042            structure in RenderStyle to be more speed-efficient but less space-
68043            efficient for nodes with counter styles
68044        - fixed http://bugs.webkit.org/show_bug.cgi?id=11557
68045
68046        Tests: css2.1
68047
68048        - fixed a bug where counter text did not have text transform or text security
68049          applied to it
68050
68051        Test: fast/css/counters/counter-text-security.html
68052        Test: fast/css/counters/counter-text-transform.html
68053
68054        - improved handling of CSS content property values with data of the wrong
68055          type; this probably needs a bit more refinement
68056
68057        Test: fast/css-generated-content/reset-content-to-initial-expected.txt
68058
68059        - fixed a bug where removing the value attribute from an HTMLLIElement would
68060          set the list item's value to 0 instead of restoring it to normal
68061
68062        Test: fast/lists/li-values.html
68063
68064        - fixed a bug where changing the text security style from one style to another
68065          would not change the displayed text
68066
68067        Test: fast/css/text-security.html
68068
68069        - fixed some problems handling long sequences of counter-related styles;
68070          still needs more work and some super-large test cases to check if
68071          recursive algorithms for these that will overflow stack remain
68072
68073        - added support for list styles decimal-leading-zero, hiragana, hirigana-iroha,
68074          katakana, katakana-iroha, cjk-ideographic, armenian, and georgian
68075
68076        Test: fast/lists/decimal-leading-zero.html
68077
68078        - minor tweaks and bug fixes for other list styles, including range checking
68079
68080        * WebCore.exp: Updated for RenderListItem change.
68081
68082        * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject value]): Updated to use
68083        String instead of DeprecatedString.
68084
68085        * css/CSSComputedStyleDeclaration.cpp:
68086        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Removed
68087        implementation for counter styles for now. We should probably restore it
68088        later, but we need to make sure the returned list is separate from the
68089        original list in the DOM -- modifying the list should not change the element
68090        it was computed from.
68091
68092        * css/Counter.h: Removed unneeded empty constructor and destructor.
68093
68094        * css/cssstyleselector.cpp:
68095        (WebCore::applyCounterList): Added. Stores counter directives in hash tables
68096        that should allow us to efficiently implement dynamic counter changes. Full
68097        support will have to wait for a future check-in.
68098        (WebCore::CSSStyleSelector::applyProperty): Changed counter properties to
68099        call applyCounterList. Reformatted the code to parse the content property for
68100        changes to RenderStyle and to handle the case where some the items in the
68101        content list don't generate any content.
68102
68103        * editing/visible_units.cpp:
68104        * rendering/RenderBox.cpp:
68105        * rendering/RenderFlexibleBox.cpp:
68106        * rendering/RenderFlow.cpp:
68107        * rendering/RenderSlider.cpp:
68108        Added includes needed because of header changes.
68109
68110        * html/HTMLLIElement.H: Removed unneeded m_isValued.
68111        * html/HTMLLIElement.cpp:
68112        (WebCore::HTMLLIElement::parseMappedAttribute): To match test results seen
68113        in WinIE, ignore values that are 0 or negative, and use new functions in
68114        RenderListItem to communicate the lack of a valid value.
68115        (WebCore::HTMLLIElement::attach): More of the same.
68116
68117        * rendering/CounterNode.h: Made CounterNode be a non-polymorphic class,
68118        removing all the subclasses. Merged in CounterResetNode. Removed
68119        m_total from CounterResetNode, because it isn't needed for any of
68120        the styles (decimal-leading-zero always uses two digits). Removed
68121        m_hasSeparator and m_willNeedLayout since they aren't needed any more.
68122        Renamed m_count to m_countInParent for clarify, and named the list
68123        links the same as their associated functions. Removed many functions
68124        as well.
68125        * rendering/CounterNode.cpp:
68126        (WebCore::CounterNode::CounterNode): Added new fields.
68127        (WebCore::CounterNode::computeCountInParent): Added. Used by recount.
68128        (WebCore::CounterNode::recount): Simplified by removing unused parameter and the
68129        "get next" idiom. Changed to be iterative instead of recursive so we can handle
68130        arbitrarily long lists.
68131        (WebCore::CounterNode::insertAfter): Moved here from CounterResetNode. Updated
68132        for field name changes. Corrected rule for when to recount.
68133        (WebCore::CounterNode::removeChild): Moved here from CounterResetNode. Changed
68134        to only work on nodes without children. Corrected rule for when to recount.
68135        (WebCore::nextInPreOrderAfterChildren): Added. For debugging only.
68136        (WebCore::nextInPreOrder): Ditto.
68137        (WebCore::showTreeAndMark): Ditto.
68138        (showTree): Ditto.
68139
68140        * rendering/CounterListItem.h:
68141        * rendering/CounterResetNode.h:
68142        * rendering/CounterResetNode.cpp:
68143        Marked ready to remove. I'll do the remove in a separate patch, since I have
68144        to update a lot of different make files when I do.
68145
68146        * rendering/ListMarkerBox.cpp: (WebCore::ListMarkerBox::isText): Changed for the
68147        change to RenderListMarker.
68148
68149        * rendering/RenderBlock.cpp:
68150        (WebCore::RenderBlock::addChildToFlow): Changed to use functions instead of
68151        direct field access so the fields can be private and we don't need to be friends.
68152        (WebCore::RenderBlock::getBaselineOfFirstLineBox): Ditto.
68153        (WebCore::RenderBlock::getBaselineOfLastLineBox): Ditto.
68154        * rendering/RenderBlock.h:
68155        (WebCore::RenderBlock::initMaxMarginValues): Ditto.
68156        (WebCore::RenderBlock::firstRootBox): Ditto.
68157        (WebCore::RenderBlock::lastRootBox): Ditto.
68158        * rendering/RenderBox.h:
68159        (WebCore::RenderBox::setWidth): Ditto.
68160        (WebCore::RenderBox::setHeight): Ditto.
68161        * rendering/RenderButton.cpp:
68162        (WebCore::RenderButton::addChild): Ditto.
68163        * rendering/bidi.cpp:
68164        (WebCore::RenderBlock::determineStartPosition): Ditto.
68165
68166        * rendering/RenderContainer.h: Renamed m_first and m_last to m_firstChild
68167        and m_lastChild. Made them private instead of proected. Removed the
68168        setFirstChild and setLastChild functions.
68169        * rendering/RenderContainer.cpp:
68170        (WebCore::RenderContainer::RenderContainer): Updated for field name change.
68171        Changed all calls to get at fields directly instead of using functions.
68172        (WebCore::RenderContainer::destroyLeftoverChildren): Ditto.
68173        (WebCore::updateListMarkerNumbers): Updated for RenderListItem change.
68174        (WebCore::RenderContainer::addChild): Changed to get at fields directly
68175        instead of using functions. Also used release() since RenderText::setText
68176        now takes PassRefPtr.
68177        (WebCore::RenderContainer::removeChildNode): Changed to get at fields directly
68178        instead of using functions.
68179        (WebCore::RenderContainer::updatePseudoChildForObject): Create the anonymous
68180        box only if at least one of of the items in the content list actually
68181        generates content. Since a RenderCounter is a RenderText, don't bother making
68182        a new style for it -- it just shares the style with its parent. Changed code
68183        to use RenderImage::setCachedImage() instead of of setContentObject().
68184        Added a call to setIsAnonymousImage() here, which was the only special thing
68185        that setContentObject() used to do. Pass a reference to the counter to the
68186        RenderCounter rather than a pointer. Pass document() as the node instead of
68187        passing the element to RenderCounter, which makes it anonymous automatically,
68188        and removed the setIsAnonymous call.
68189        (WebCore::RenderContainer::appendChildNode): Chagned to get at fields directly
68190        instead of using functions.
68191        (WebCore::RenderContainer::insertChildNode): Ditto.
68192        (WebCore::RenderContainer::layout): Ditto.
68193        (WebCore::RenderContainer::removeLeftoverAnonymousBoxes): Ditto.
68194        (WebCore::RenderContainer::positionForCoordinates): Ditto.
68195        (WebCore::RenderContainer::addLineBoxRects): Ditto.
68196
68197        * rendering/RenderCounter.h: Removed unneeded layout override, never called on a
68198        text node. Added override of originalString. Replaced CounterData* with a copy of
68199        the CounterContent -- it's two atomic strings and an integer so it's efficient
68200        enough to store all three in the render object, and this eliminates the lifetime
68201        problems we could have if we used a pointer.
68202        * rendering/RenderCounter.cpp: Removed duplicate copy of list marker code.
68203        (WebCore::counterMaps): Moved these maps here from RenderObject.
68204        (WebCore::previousSiblingOrParent): Added.
68205        (WebCore::lastDescendant): Added.
68206        (WebCore::previousInPreOrder): Added.
68207        (WebCore::planCounter): Added.
68208        (WebCore::findPlaceForCounter): Added.
68209        (WebCore::counter): New name of function that was named RenderObject::findCounter.
68210        Also uses a new algorithm that passes all the CSS 2.1 tests.
68211        (WebCore::RenderCounter::RenderCounter): Changed to take a Document* instead of a
68212        Node*, since at the moment counters are always anonymous.
68213        (WebCore::RenderCounter::originalString): Added. This overrides the originalString
68214        in the RenderText base class so that any text transforms will use the counter's
68215        value. This code was previously in calcMinMaxWidth.
68216        (WebCore::RenderCounter::calcMinMaxWidth): Changed to call setInternalString and
68217        pass originalString -- this uses the counter's value from the counter tree.
68218        (WebCore::destroyCounterNodeChildren): Added.
68219        (WebCore::RenderCounter::destroyCounterNodes): Added. Called as needed from
68220        RenderObject::destroy for objects that have counter nodes.
68221
68222        * rendering/RenderFlow.h: Made m_continuation private instead of protected.
68223
68224        * rendering/RenderImage.h: Removed unneeded includes, and unnecessary element()
68225        function that casts to HTMLElement*. Made image() protected, and made the two
68226        calcAspectRatio functions private. Removed setContentObject(). Renamed the
68227        errorOccured() function to isErrorImage() and made it private.
68228        * rendering/RenderImage.cpp:
68229        (WebCore::RenderImage::RenderImage): Removed initialization of removed
68230        m_selectionState field.
68231        (WebCore::RenderImage::setCachedImage): Rearrange code so it won't try to
68232        call isErrorImage() on a null image.
68233        (WebCore::RenderImage::paint): Updated for name change.
68234
68235        * rendering/RenderListBox.h: Removed unneeded forward declarations.
68236
68237        * rendering/RenderListItem.h:
68238        Renamed markerStringValue() to markerText() and made it return a String instead of
68239        a DeprecatedString. Renamed m_prededfVal to m_explicitValue. Added booleans named
68240        m_hasExplicitValue and m_isValueUpToDate and marked m_value mutable so it can be
68241        computed in const member functions.
68242        (WebCore::RenderListItem::value): Changed to update value on demand at the time
68243        you ask for it.
68244        (WebCore::RenderListItem::hasExplicitValue): Added. Use instead of magic -1 value
68245        to indicate that the item does or does not have an explicit value.
68246        (WebCore::RenderListItem::explicitValue): Added.
68247        (WebCore::RenderListItem::setExplicitValue): Added.
68248        (WebCore::RenderListItem::clearExplicitValue): Added.
68249        * rendering/RenderListItem.cpp:
68250        (WebCore::RenderListItem::RenderListItem): Updated to not use magic -1 values.
68251        (WebCore::RenderListItem::setStyle): Removed call to RenderListMarker::setListItem
68252        since it's not needed any more, and instead pass the list item to the constructor.
68253        (WebCore::previousListItem): Made parameter const.
68254        (WebCore::RenderListItem::calcValue): Restructed the function a bit.
68255        (WebCore::RenderListItem::updateValueNow): Added. Calls calcValue.
68256        (WebCore::RenderListItem::updateValue): Added. New name for resetValue(). Unlike
68257        the old version, this no longer calculates the value until it's asked-for later.
68258        (WebCore::RenderListItem::markerText): Changed to return String rather than a
68259        DeprecatedString and to return a null string rather than empty string when there
68260        is no marker.
68261
68262        * rendering/RenderListMarker.h: Added listMarkerText function -- common code shared
68263        with anyone who needs to convert a value into text given a list style.
68264        Changed constructor to take a RenderListItem and figure out the document from that.
68265        Added isImage() and isText() functions and removed listImage() function. Changed the
68266        type of the text() function from DeprecatedString to String. Removed the listItem()
68267        and seListeItem() functions. Made the getRelativeMarkerRect() function private.
68268        Renamed m_item to m_text and chagned it from DeprecatedString to String. Renamed
68269        m_listImage to m_image.
68270        * rendering/RenderListMarker.cpp:
68271        (WebCore::toRoman): Added range checking to fix buffer overrun for large or negative
68272        numbers. Rewrote to use a local UChar array and String rather than prepending to a
68273        DeprecatedString.
68274        (WebCore::toAlphabetic): Replaces toLetterString, and is more flexible since it takes
68275        an alphabet array. Changed to match CSS 3 specification by using decimal numbering for
68276        0 and negative numbers. Rewrote to use a local UChar array and String rather than
68277        prepending to a DeprecatedString.
68278        (WebCore::toHebrewUnder1000): Added. Helper function for Hebrew numbers so we can
68279        handle numbers up to a million.
68280        (WebCore::toHebrew): Changed to use toHebrewUnder1000, added a special case for
68281        zero, negative, and too-large numbers.
68282        (WebCore::toArmenianUnder10000): Added. Used by toArmenian.
68283        (WebCore::toArmenian): Added.
68284        (WebCore::toGeorgian): Added.
68285        (WebCore::toCJKIdeographic): Added.
68286        (WebCore::listMarkerText): Added. Moved the code here from calcMinMaxWidth, but added
68287        support for text for the styles disc, circle, square, decimal-leading-zero, hiragana,
68288        hirigana-iroha, katakana, katakana-iroha, cjk-ideographic, armenian, and georgian.
68289        Also changed some of the styles to share the new toAlphabetic function.
68290        (WebCore::RenderListMarker::RenderListMarker): Updated for name changes and list
68291        item parameter.
68292        (WebCore::RenderListMarker::~RenderListMarker): Updated for name changes.
68293        (WebCore::RenderListMarker::setStyle): Updated for name changes.
68294        (WebCore::RenderListMarker::isImage): Added. Useful helper that unifies the check
68295        for no image and the error image.
68296        (WebCore::RenderListMarker::paint): Updated for name changes to to use isImage()
68297        and rearranged the code a bit.
68298        (WebCore::RenderListMarker::imageChanged): Updated for name change
68299        (WebCore::RenderListMarker::calcMinMaxWidth): Updated for name change, fixed a bug
68300        where we'd leave the old text around if we were using an image-based marker. Also
68301        changed the code to use isImage() instead of checking m_listImage.
68302        (WebCore::RenderListMarker::calcWidth): Changed to use isImage().
68303        (WebCore::RenderListMarker::lineHeight): Changed to use isImage().
68304        (WebCore::RenderListMarker::baselinePosition): Changed to use isImage().
68305        (WebCore::RenderListMarker::getRelativeMarkerRect): Changed to use isImage(),
68306        restructured the code a little.
68307
68308        * rendering/RenderObject.h: Removed now-uneeded includes. Removed collectBorders()
68309        and isFormElement(). Made remove() function and m_hasCounterNodeMap public so
68310        we could remove friend declarations for RenderListItem and RenderView.
68311        Moved findCounter() to become a private function inside RenderCounter.cpp.
68312        * rendering/RenderObject.cpp:
68313        (WebCore::RenderObject::createObject): Fix bug where a contentData() with
68314        CONTENT_NONE is treated as image content -- only look at the content property
68315        if it has exactly one entry which is a CONTENT_OBJECT.
68316        (WebCore::RenderObject::selectionStartEnd): Add const.
68317        (WebCore::RenderObject::destroy): Moved counter-specific code to
68318        RenderCounter::destroyCounterNodes.
68319        (WebCore::RenderObject::recalcMinMaxWidths): Changed code to set m_recalcMinMax
68320        near the top of the function -- the old code would potentially reset it after it
68321        was set by the calcMinMaxWidths functions, and possibly skip a future needed
68322        recalc. That came up in counter test cases. Removed unneeded boolean check right
68323        after an assertion.
68324
68325        * rendering/RenderPart.h: Marked two virtual functions virtual for clarity.
68326
68327        * rendering/RenderReplaced.h: Made shouldPaint be protected, and made
68328        m_intrinsicWidth, m_intrinsicHeight, and m_selectionState be private.
68329        Also marked isSelected() const.
68330        * rendering/RenderReplaced.cpp: Added newly-needed include.
68331        (WebCore::RenderReplaced::RenderReplaced): Use constructor syntax.
68332        (WebCore::RenderReplaced::isSelected): Made const and changed to call the
68333        selectionStartEnd function in the straightforward way.
68334
68335        * rendering/RenderSVGText.cpp:
68336        (WebCore::RenderSVGText::absoluteRects): Use functions instead of direct field
68337        access so the fields can be private.
68338        (WebCore::RenderSVGText::relativeBBox): Ditto.
68339
68340        * rendering/RenderStyle.h: Tweaked formatting. Changed names of CSS3 holders
68341        to say "rare" instead, since it's not all CSS 3. Renamed CounterData to
68342        CounterContent, since it's used inside ContentData. Changed names of fields in
68343        ContentData to have m prefix. Moved content and counter fields into the rare
68344        non-inherited data object. Removed unneeded assignment operator from a class
68345        that already inherits from Shared which makes it start out noncopyable.
68346        * rendering/RenderStyle.cpp: Name changes, plus:
68347        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
68348        Updated for added fields (content, counter-reset, counter-increment).
68349        (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData): Ditto.
68350        (WebCore::StyleRareNonInheritedData::operator==): Reformatted and sorted so it's
68351        easy to see if any fields are missing.
68352        (WebCore::operator!=): Added. Compares two CounterContent objects.
68353        (WebCore::RenderStyle::arenaDelete): Removed code to handle content, which is
68354        now in the rareNonInheritedData structure.
68355        (WebCore::RenderStyle::RenderStyle): Ditto.
68356        (WebCore::RenderStyle::inheritFrom): Ditto.
68357        (WebCore::RenderStyle::operator==): Ditto.
68358        (WebCore::RenderStyle::inheritedNotEqual):
68359        (WebCore::RenderStyle::diff):
68360        (WebCore::RenderStyle::contentDataEquivalent): Added case for counter,
68361        which previously would be ignored when determining if content is equivalent.
68362        (WebCore::RenderStyle::clearContent): Added.
68363        (WebCore::RenderStyle::setContent): Updated for change in content location.
68364        (WebCore::ContentData::clear): Changed algorithm so that it's not recursive
68365        and thus can handle a very long list of ContentData.
68366        (WebCore::operator==): Added. Compares two CounterDirective objects.
68367        (WebCore::RenderStyle::counterDirectives): Added.
68368        (WebCore::RenderStyle::accessCounterDirectives): Added.
68369
68370        * rendering/RenderTable.h: Made m_currentBorder const to better reflect the
68371        paint algorithm.
68372        * rendering/RenderTable.cpp: (WebCore::RenderTable::paint): Changed to use
68373        Vector instead of DeprecatedValueList for the border styles, and to sort
68374        rather than inserting in sorted order as we go. Put the code to loop through
68375        the nodes and collect border styles here instead of in a RenderObject virtual
68376        function. Also set m_currentBorder to 0 after the loop for greater clarity.
68377
68378        * rendering/RenderTableCell.h: Added a typedef for a vector of border values.
68379        Removed the virtual collectBorders and replaced with the non-virtual named
68380        collectBorderStyles. Also added a static member function named sortBorderStyles.
68381        * rendering/RenderTableCell.cpp:
68382        (WebCore::CollapsedBorders::CollapsedBorders): Removed unneeded constructor
68383        parameter.
68384        (WebCore::addBorderStyle): Changed to use a vector instead of a
68385        DeprecatedValueList. Wrote out a loop since Vector doesn't have a contains
68386        member function. Removed the code to insert the border at a sorted location;
68387        instead we have a separate call to sort the border styles
68388        (WebCore::RenderTableCell::collectBorderStyles): Renamed, and changed the
68389        parameter type.
68390        (WebCore::compareBorderStylesForQSort): Added.
68391        (WebCore::RenderTableCell::sortBorderStyles): Added.
68392
68393        * rendering/RenderText.h: Changed StringImpl parameters in setText functions
68394        to be PassRefPtr; added a new setInternalString function. Made a bunch of the
68395        member functions private and made all the data members private instead of
68396        protected.
68397        * rendering/RenderText.cpp:
68398        (WebCore::RenderText::setStyle): Restructure a bit for clarity. Fix case where
68399        the old style has a different security than the new style. Use release() since
68400        RenderText::setText now takes PassRefPtr. Always call cacheWidths here.
68401        (WebCore::RenderText::setTextWithOffset): Changed to take the string as a
68402        PassRefPtr instead of a raw pointer.
68403        (WebCore::isInlineFlowOrEmptyText): Added.
68404        (WebCore::RenderText::setInternalString): Refactored core of setText into a
68405        separate protected member function that can be used RenderCounter. Changed
68406        the text security square character to match what's used in list markers.
68407        Changed the text transform switch statement so that gcc will warn us if we add
68408        a new value and don't add a case for it.
68409        (WebCore::RenderText::setText): Refactored most of the function into
68410        setInternalString. Removed the call to cacheWidths -- that's now done in the
68411        setStyle function only.
68412
68413        * rendering/RenderView.h:
68414        * rendering/RenderView.cpp: (WebCore::RenderView::selectionStartEnd): Now const.
68415
68416        * rendering/RenderWidget.cpp: Added newly-needed include.
68417        (WebCore::RenderWidget::setSelectionState): Don't bother setting m_selectionState
68418        here since RenderReplaced::setSelectionState already does that.
68419
684202007-01-05  Anders Carlsson  <acarlsson@apple.com>
68421
68422        Rubber stamped by Adam.
68423        
68424        Move even more code to .cpp files.
68425
68426        * WebCore.xcodeproj/project.pbxproj:
68427        * loader/FrameLoader.cpp:
68428        (WebCore::FrameLoader::createWindow):
68429        (WebCore::FrameLoader::load):
68430        (WebCore::FrameLoader::canLoad):
68431        (WebCore::FrameLoader::initialRequest):
68432        (WebCore::FrameLoader::receivedData):
68433        (WebCore::FrameLoader::setRequest):
68434        (WebCore::FrameLoader::setResponse):
68435        (WebCore::FrameLoader::willUseArchive):
68436        (WebCore::FrameLoader::handleUnimplementablePolicy):
68437        (WebCore::FrameLoader::cannotShowMIMEType):
68438        (WebCore::FrameLoader::interruptionForPolicyChangeError):
68439        (WebCore::FrameLoader::checkNavigationPolicy):
68440        (WebCore::FrameLoader::checkContentPolicy):
68441        (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
68442        (WebCore::FrameLoader::reloadAllowingStaleData):
68443        (WebCore::FrameLoader::reload):
68444        (WebCore::FrameLoader::finishedLoading):
68445        (WebCore::FrameLoader::continueAfterWillSubmitForm):
68446        (WebCore::FrameLoader::submitForm):
68447        (WebCore::FrameLoader::post):
68448        (WebCore::FrameLoader::isReloading):
68449        (WebCore::FrameLoader::loadEmptyDocumentSynchronously):
68450        (WebCore::FrameLoader::loadResourceSynchronously):
68451        (WebCore::FrameLoader::startLoadingMainResource):
68452        (WebCore::FrameLoader::startLoading):
68453        (WebCore::FrameLoader::cancelMainResourceLoad):
68454        (WebCore::FrameLoader::identifierForInitialRequest):
68455        (WebCore::FrameLoader::willSendRequest):
68456        (WebCore::FrameLoader::didReceiveResponse):
68457        (WebCore::FrameLoader::didReceiveData):
68458        (WebCore::FrameLoader::didFailToLoad):
68459        (WebCore::FrameLoader::originalRequest):
68460        (WebCore::FrameLoader::receivedMainResourceError):
68461        (WebCore::FrameLoader::callContinueFragmentScrollAfterNavigationPolicy):
68462        (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
68463        (WebCore::FrameLoader::opened):
68464        (WebCore::FrameLoader::dataURLBaseFromRequest):
68465        (WebCore::FrameLoader::checkNewWindowPolicy):
68466        (WebCore::FrameLoader::continueAfterNewWindowPolicy):
68467        (WebCore::FrameLoader::continueAfterNavigationPolicy):
68468        (WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy):
68469        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
68470        (WebCore::FrameLoader::callContinueLoadAfterNewWindowPolicy):
68471        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
68472        (WebCore::FrameLoader::sendRemainingDelegateMessages):
68473        (WebCore::FrameLoader::requestFromDelegate):
68474        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
68475        (WebCore::FrameLoader::applyUserAgent):
68476        (WebCore::PolicyCheck::PolicyCheck):
68477        (WebCore::PolicyCheck::clear):
68478        (WebCore::PolicyCheck::set):
68479        (WebCore::PolicyCheck::call):
68480        (WebCore::PolicyCheck::clearRequest):
68481        * loader/FrameLoader.h:
68482        * loader/FrameLoaderClient.h:
68483        * loader/MainResourceLoader.h:
68484        * loader/ResourceLoader.h:
68485        (WebCore::ResourceLoader::setIdentifier):
68486        (WebCore::ResourceLoader::identifier):
68487        * loader/mac/FrameLoaderMac.mm:
68488        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
68489        (WebCore::FrameLoader::referrer):
68490        (WebCore::FrameLoader::didReceiveAuthenticationChallenge):
68491        (WebCore::FrameLoader::didCancelAuthenticationChallenge):
68492        (WebCore::FrameLoader::didChangeTitle):
68493        * platform/graphics/svg/SVGImageEmptyClients.h:
68494        (WebCore::SVGEmptyFrameLoaderClient::dispatchCreatePage):
68495
684962007-01-05  Mitz Pettel  <mitz@webkit.org>
68497
68498        Reviewed by Hyatt.
68499
68500        - fix http://bugs.webkit.org/show_bug.cgi?id=12079
68501          Nested tables don't repaint properly when a certain row is added
68502
68503        Tests: fast/repaint/table-section-repaint.html
68504               fast/repaint/table-section-overflow.html
68505
68506        Fixed repainting when table sections move during layout.
68507
68508        Made table cells' overflows propagate to table sections and gave tables
68509        overflows.
68510
68511        * rendering/RenderTable.cpp:
68512        (WebCore::RenderTable::layout): Added computation of horizontal and vertical overflows
68513        based on the caption's and the table sections' overflows.
68514        Added checks for table sections that change position during layout. When that happens,
68515        we assume all sections below the first section that moved also moved, and repaint
68516        everything downwards from there.
68517        Added calls to repaintDuringLayoutIfMoved() for the caption.
68518        Changed the way table sections are iterated over and added a FIXME to change it again
68519        once bug 12124 is fixed.
68520        (WebCore::RenderTable::paint): Changed to paint overflow.
68521        (WebCore::RenderTable::outerBorderBottom):
68522        * rendering/RenderTableSection.cpp:
68523        (WebCore::RenderTableSection::RenderTableSection):
68524        (WebCore::RenderTableSection::layoutRows): Added code to compute the section's overflow
68525        and a flag saying whether any cells in this section overflow.
68526        (WebCore::RenderTableSection::paint): Changed to paint overflow. If any cell
68527        in the section has overflow, then all cells are given a chance to paint. This is needed
68528        because there can be internal overflow, and external overflow can be coming from any
68529        cell inside.
68530        * rendering/RenderTableSection.h:
68531        (WebCore::RenderTableSection::overflowWidth):
68532        (WebCore::RenderTableSection::overflowLeft):
68533
685342007-01-05  Beth Dakin  <bdakin@apple.com>
68535
68536        Reviewed by Adam.
68537
68538        Fix for <rdar://problem/4863434> Wrong contextual menu appears for 
68539        textarea and input elements at http://www.apple.com/feedback/
68540        ical.html
68541
68542        No test cases added since context menus are not in DRT.
68543
68544        * page/ContextMenuController.cpp: 
68545        (WebCore::ContextMenuController::handleContextMenuEvent): Call 
68546        EventHandler's hitTestResultAtPoint() instead of just hit testing 
68547        the layer.
68548
685492007-01-05  Anders Carlsson  <acarlsson@apple.com>
68550
68551        Rubber-stamped by Adam.
68552        
68553        Move a bunch of platform independent code over to DocumentLoader.cpp
68554
68555        * WebCore.xcodeproj/project.pbxproj:
68556        * loader/DocumentLoader.cpp:
68557        (WebCore::canonicalizedTitle):
68558        (WebCore::DocumentLoader::DocumentLoader):
68559        (WebCore::DocumentLoader::frameLoader):
68560        (WebCore::DocumentLoader::~DocumentLoader):
68561        (WebCore::DocumentLoader::setMainResourceData):
68562        (WebCore::DocumentLoader::mainResourceData):
68563        (WebCore::DocumentLoader::originalRequest):
68564        (WebCore::DocumentLoader::originalRequestCopy):
68565        (WebCore::DocumentLoader::request):
68566        (WebCore::DocumentLoader::initialRequest):
68567        (WebCore::DocumentLoader::actualRequest):
68568        (WebCore::DocumentLoader::URL):
68569        (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
68570        (WebCore::DocumentLoader::setRequest):
68571        (WebCore::DocumentLoader::setMainDocumentError):
68572        (WebCore::DocumentLoader::clearErrors):
68573        (WebCore::DocumentLoader::mainReceivedError):
68574        (WebCore::DocumentLoader::stopLoading):
68575        (WebCore::DocumentLoader::setupForReplace):
68576        (WebCore::DocumentLoader::commitIfReady):
68577        (WebCore::DocumentLoader::finishedLoading):
68578        (WebCore::DocumentLoader::setCommitted):
68579        (WebCore::DocumentLoader::isCommitted):
68580        (WebCore::DocumentLoader::setLoading):
68581        (WebCore::DocumentLoader::isLoading):
68582        (WebCore::DocumentLoader::commitLoad):
68583        (WebCore::DocumentLoader::doesProgressiveLoad):
68584        (WebCore::DocumentLoader::receivedData):
68585        (WebCore::DocumentLoader::setupForReplaceByMIMEType):
68586        (WebCore::DocumentLoader::updateLoading):
68587        (WebCore::DocumentLoader::setFrame):
68588        (WebCore::DocumentLoader::attachToFrame):
68589        (WebCore::DocumentLoader::detachFromFrame):
68590        (WebCore::DocumentLoader::prepareForLoadStart):
68591        (WebCore::DocumentLoader::setIsClientRedirect):
68592        (WebCore::DocumentLoader::isClientRedirect):
68593        (WebCore::DocumentLoader::setPrimaryLoadComplete):
68594        (WebCore::DocumentLoader::isLoadingInAPISense):
68595        (WebCore::DocumentLoader::addResponse):
68596        (WebCore::DocumentLoader::stopRecordingResponses):
68597        (WebCore::DocumentLoader::title):
68598        (WebCore::DocumentLoader::setLastCheckedRequest):
68599        (WebCore::DocumentLoader::lastCheckedRequest):
68600        (WebCore::DocumentLoader::triggeringAction):
68601        (WebCore::DocumentLoader::setTriggeringAction):
68602        (WebCore::DocumentLoader::responses):
68603        (WebCore::DocumentLoader::setOverrideEncoding):
68604        (WebCore::DocumentLoader::overrideEncoding):
68605        (WebCore::DocumentLoader::setTitle):
68606        (WebCore::DocumentLoader::urlForHistory):
68607        * loader/DocumentLoader.h:
68608        * loader/FrameLoader.cpp:
68609        (WebCore::FrameLoader::load):
68610        (WebCore::FrameLoader::committedLoad):
68611        (WebCore::FrameLoader::setMainDocumentError):
68612        (WebCore::FrameLoader::mainReceivedCompleteError):
68613        (WebCore::FrameLoader::mainReceivedError):
68614        (WebCore::FrameLoader::cancelledError):
68615        (WebCore::FrameLoader::fileDoesNotExistError):
68616        (WebCore::FrameLoader::mainResourceData):
68617        * loader/FrameLoader.h:
68618        * loader/FrameLoaderClient.h:
68619        * loader/mac/DocumentLoaderMac.mm:
68620        (WebCore::DocumentLoader::unreachableURL):
68621        * loader/mac/FrameLoaderMac.mm:
68622
686232007-01-05  Brady Eidson  <beidson@apple.com>
68624
68625        Reviewed by Eric Seidel
68626
68627        http://bugs.webkit.org/show_bug.cgi?id=12117
68628        Fixes null deref when opening links from a gmail account
68629
68630        * loader/FrameLoader.cpp:
68631        (WebCore::FrameLoader::updateHistoryForStandardLoad): Null check m_currentHistoryItem
68632        (WebCore::FrameLoader::updateHistoryForClientRedirect): Ditto
68633
686342007-01-05  Anders Carlsson  <acarlsson@apple.com>
68635
68636        Move some now cross platform functions over to ResourceLoader.cpp in an attempt to fix the non Mac builds.
68637        
68638        * loader/CachedResource.h:
68639        (WebCore::CachedResource::setAllData):
68640        * loader/ResourceLoader.cpp:
68641        (WebCore::ResourceLoader::resourceData):
68642        * loader/ResourceLoader.h:
68643        * loader/SubresourceLoader.cpp:
68644        (WebCore::SubresourceLoader::didFinishLoading):
68645        * loader/mac/LoaderFunctionsMac.mm:
68646        * loader/mac/ResourceLoaderMac.mm:
68647        * platform/SharedBuffer.cpp:
68648        (WebCore::SharedBuffer::platformDataSize):
68649        * platform/network/ResourceHandle.h:
68650
686512007-01-05  David Hyatt  <hyatt@apple.com>
68652
68653        Back out fix for 12114.  I missed rule #5 in the float positioning part of the CSS2.1 spec.  Keep all
68654        the code cleanup though.
68655
68656        Reviewed by mitz
68657
68658        * rendering/RenderBlock.cpp:
68659        (WebCore::RenderBlock::positionNewFloats):
68660
686612007-01-05  Anders Carlsson  <acarlsson@apple.com>
68662
68663        Reviewed by Maciej.
68664
68665        Add a shared buffer class which is backed by either a vector or an NSData object. This object can also
68666        be held in a custom NSData subclass. Use this in the loader wherever NSData was used.
68667        
68668        * WebCore.exp:
68669        * WebCore.xcodeproj/project.pbxproj:
68670        * loader/CachedResource.h:
68671        (WebCore::CachedResource::allData):
68672        * loader/DocumentLoader.h:
68673        * loader/FrameLoader.h:
68674        * loader/ResourceLoader.h:
68675        * loader/SubresourceLoaderClient.h:
68676        (WebCore::SubresourceLoaderClient::didFail):
68677        * loader/loader.cpp:
68678        (WebCore::Loader::didFinishLoading):
68679        * loader/loader.h:
68680        * loader/mac/DocumentLoaderMac.mm:
68681        (WebCore::DocumentLoader::setMainResourceData):
68682        (WebCore::DocumentLoader::mainResourceData):
68683        (WebCore::DocumentLoader::setupForReplaceByMIMEType):
68684        * loader/mac/FrameLoaderMac.mm:
68685        (WebCore::FrameLoader::mainResourceData):
68686        * loader/mac/ImageDocumentMac.mm:
68687        (WebCore::finishImageLoad):
68688        * loader/mac/LoaderFunctionsMac.mm:
68689        (WebCore::CheckCacheObjectStatus):
68690        (WebCore::CachedResource::setAllData):
68691        * loader/mac/NetscapePlugInStreamLoaderMac.mm:
68692        (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
68693        * loader/mac/ResourceLoaderMac.mm:
68694        (WebCore::ResourceLoader::addData):
68695        (WebCore::ResourceLoader::resourceData):
68696        (WebCore::ResourceLoader::clearResourceData):
68697        (WebCore::ResourceLoader::didReceiveData):
68698        (WebCore::ResourceLoader::willStopBufferingData):
68699        * loader/mac/SubresourceLoaderMac.mm:
68700        (WebCore::SubresourceLoader::didReceiveResponse):
68701        (WebCore::SubresourceLoader::didFinishLoading):
68702        * page/mac/WebCoreFrameBridge.mm:
68703        (-[WebCoreFrameBridge getData:andResponse:forURL:]):
68704        (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
68705        * platform/KURL.h:
68706        * platform/SharedBuffer.cpp: Added.
68707        (WebCore::SharedBuffer::SharedBuffer):
68708        (WebCore::SharedBuffer::size):
68709        (WebCore::SharedBuffer::data):
68710        (WebCore::SharedBuffer::append):
68711        (WebCore::SharedBuffer::clear):
68712        (WebCore::SharedBuffer::clearPlatformData):
68713        (WebCore::SharedBuffer::maybeTransferPlatformData):
68714        (WebCore::SharedBuffer::hasPlatformData):
68715        (WebCore::SharedBuffer::platformData):
68716        * platform/SharedBuffer.h: Added.
68717        * platform/mac/SharedBufferMac.mm: Added.
68718        (-[SharedBufferData dealloc]):
68719        (-[SharedBufferData finalize]):
68720        (-[SharedBufferData initWithSharedBuffer:]):
68721        (-[SharedBufferData length]):
68722        (-[SharedBufferData bytes]):
68723        (WebCore::SharedBuffer::wrapNSData):
68724        (WebCore::SharedBuffer::SharedBuffer):
68725        (WebCore::SharedBuffer::createNSData):
68726        (WebCore::SharedBuffer::hasPlatformData):
68727        (WebCore::SharedBuffer::platformData):
68728        (WebCore::SharedBuffer::platformDataSize):
68729        (WebCore::SharedBuffer::maybeTransferPlatformData):
68730        (WebCore::SharedBuffer::clearPlatformData):
68731        * platform/network/ResourceHandle.h:
68732        * platform/network/ResourceHandleClient.h:
68733        * platform/network/mac/ResourceHandleMac.mm:
68734        (WebCore::ResourceHandle::bufferedData):
68735
687362007-01-05  Anders Carlsson  <acarlsson@apple.com>
68737
68738        Reviewed by Adam.
68739
68740        http://bugs.webkit.org/show_bug.cgi?id=12120
68741        REGRESSION(r18605): Safari snippet editor no longer works
68742        
68743        * loader/mac/ResourceLoaderMac.mm:
68744        (WebCore::ResourceLoader::willSendRequest):
68745        Put back the code change in r18607.
68746        
68747        * platform/mac/KURLMac.mm:
68748        (WebCore::KURL::KURL):
68749        Convert nil NSURLs to null KURLs.
68750
687512007-01-04  Alexey Proskuryakov  <ap@webkit.org>
68752
68753        Reviewed by Geoff.
68754
68755        http://bugs.webkit.org/show_bug.cgi?id=7296
68756        Disable JavaScript exceptions when dynamically changing CSS properties.
68757
68758        * bindings/js/kjs_css.cpp:
68759        (KJS::DOMCSSStyleDeclaration::put): Removed the Dashboard quirk logic.
68760
68761        * css/CSSMutableStyleDeclaration.cpp:
68762        (WebCore::CSSMutableStyleDeclaration::setProperty): Don't raise an exception if parsing fails.
68763
687642007-01-05  Antti Koivisto  <koivisto@iki.fi>
68765
68766        Reviewed by hyatt.
68767        
68768        http://bugs.webkit.org/show_bug.cgi?id=12109
68769        
68770        Fix layer visibility in some cases with nested layers.
68771
68772        * rendering/RenderLayer.cpp:
68773        (WebCore::RenderLayer::updateVisibilityStatus):
68774
687752007-01-05  Lars Knoll <lars@trolltech.com>
68776
68777        Make it compile with gcc 4.1
68778
68779        * rendering/RenderTableSection.h:
68780
687812007-01-04  Adam Roben  <aroben@apple.com>
68782
68783        Reviewed by Geoff, cheered by others.
68784
68785        Dead code elimination.
68786
68787        All layout tests pass.
68788
68789        * page/EventHandler.h:
68790        * page/mac/EventHandlerMac.mm:
68791        * page/mac/WebCoreFrameBridge.h:
68792        * page/mac/WebCoreFrameBridge.mm:
68793
687942007-01-04  Adam Roben  <aroben@apple.com>
68795
68796        Reviewed by Geoff.
68797
68798        Fix: <rdar://4800335> REGRESSION: shift-tabbing from location field
68799        goes to first field rather than last (businessweek.com)
68800
68801        Fix: <rdar://4800373> REGRESSION: tabbing from last control focuses
68802        nothing visible (busniessweek.com)
68803
68804        Handle tabbing into/out of subframes in WebCore instead of letting
68805        AppKit do the dirty work. This change also fixes a number of bugs and
68806        changes some behavior to match other browsers:
68807          - No frames receive a focus event when the page is first loaded.
68808          - When a frame is clicked or focused with the keyboard, it receives
68809            a focus event and all other frames receive a blur event.
68810          - tabindex values are clamped to the range of a signed short, rather
68811            than overflowing within an unsigned short.
68812          - tabindex is respected on frame owner elements, even though HTML4
68813            says it shouldn't be.
68814          - Subframes will be focused when tabbing if they don't contain any
68815            focusable elements within them (it would be nice to only focus the
68816            frame if it has scrollbars).
68817
68818        Renamed SelectionDirection to FocusDirection and put it in its own file.
68819
68820        * page/FocusDirection.h: Added.
68821        (WebCore::):
68822        * page/mac/WebCoreFrameBridge.mm: Updated for renames.
68823        (-[WebCoreFrameBridge nextKeyView]):
68824        (-[WebCoreFrameBridge previousKeyView]):
68825        (-[WebCoreFrameBridge nextKeyViewInsideWebFrameViews]):
68826        (-[WebCoreFrameBridge previousKeyViewInsideWebFrameViews]):
68827
68828        Moved advanceFocus from EventHandler to FocusController and added
68829        support for moving into/out of subframes..
68830
68831        * page/EventHandler.cpp: Moved advanceFocus to FocusController.
68832        * page/EventHandler.h: Ditto.
68833        * page/FocusController.cpp:
68834        (WebCore::deepFocusableNode): Static helper function to find focusable
68835        nodes nested within frames.
68836        (WebCore::FocusController::advanceFocus): Moved from EventHandler and
68837        rewritten to handle subframes.
68838        * page/FocusController.h: Added advanceFocus declaration.
68839        * dom/EventTargetNode.cpp:
68840        (WebCore::EventTargetNode::defaultEventHandler): Updated for the move
68841        of advanceFocus to FocusController.
68842        * html/HTMLFrameOwnerElement.h:
68843        (WebCore::HTMLFrameOwnerElement::isFrameOwnerElement): New method.
68844        (WebCore::HTMLFrameOwnerElement::isKeyboardFocusable): New virtual
68845        implementation used to trick Document::nextFocusableNode so that we
68846        can focus frames.
68847
68848        Rewrote/renamed
68849        Document::nextFocusableNode/Document::previousFocusableNode.
68850
68851        * dom/Document.cpp:
68852        (WebCore::nextNodeWithExactTabIndex): New static helper
68853        function.
68854        (WebCore::previousNodeWithExactTabIndex): Ditto.
68855        (WebCore::nextNodeWithGreaterTabIndex): Ditto.
68856        (WebCore::previousNodeWithLowerTabIndex): Ditto.
68857        (WebCore::Document::nextFocusableNode): Renamed from nextFocusedNode,
68858        and rewritten with much simpler logic.
68859        (WebCore::Document::previousFocusableNode): Ditto.
68860        * dom/Document.h: Updated declarations for renames.
68861        * page/mac/EventHandlerMac.mm: Updated for rename of SelectionDirection
68862        to FocusDirection.
68863        (WebCore::EventHandler::nextKeyViewInFrame): Updated for renames.
68864        (WebCore::EventHandler::nextKeyViewInFrameHierarchy): Ditto.
68865        (WebCore::EventHandler::nextKeyView): Ditto.
68866        (WebCore::EventHandler::focusDocumentView): Added call to
68867        setFocusedFrame when focusing the document view.
68868        (WebCore::EventHandler::passMouseDownEventToWidget): Removed LOG_ERROR
68869        when a nil NSView is returned from AppKit, as this is a fairly common
68870        occurrence when a RenderWidget has a border.
68871        (WebCore::EventHandler::passWheelEventToWidget): Added a nil-check of
68872        the hit-tested NSView.
68873
68874        Changed storage of tabIndex to a signed short, and added clamping of
68875        tabindex attribute values to match Firefox's behavior.
68876
68877        * dom/Node.h: Use a signed short to store m_tabIndex.
68878        (WebCore::Node::isFrameOwnerElement): New method.
68879        (WebCore::Node::tabIndex): Updated for signedness.
68880        (WebCore::Node::setTabIndex): Ditto.
68881        * html/HTMLAnchorElement.cpp: Remove implementation of tabIndex() so
68882        that Node::tabIndex() will be called instead and return the clamped
68883        value (which matches Firefox's behavior).
68884        * html/HTMLAnchorElement.h: Ditto.
68885        * html/HTMLAreaElement.cpp: Ditto.
68886        * html/HTMLAreaElement.h: Ditto.
68887        * html/HTMLGenericFormElement.cpp: Ditto.
68888        * html/HTMLGenericFormElement.h: Ditto.
68889        * html/HTMLObjectElement.cpp: Ditto.
68890        * html/HTMLObjectElement.h: Ditto.
68891        * html/HTMLElement.cpp:
68892        (WebCore::HTMLElement::parseMappedAttribute): Clamp tabIndex to the
68893        range of a signed short to match Firefox.
68894
68895        Added two new Chrome methods for transferring focus out of the
68896        WebView.
68897
68898        * page/Chrome.cpp:
68899        (WebCore::Chrome::canTakeFocus):
68900        (WebCore::Chrome::takeFocus):
68901        * page/Chrome.h:
68902        * page/ChromeClient.h:
68903        * platform/graphics/svg/SVGImageEmptyClients.h: Fixed typo "CromeClient" -> "ChromeClient".
68904        (WebCore::SVGEmptyChromeClient::~SVGEmptyChromeClient):
68905        (WebCore::SVGEmptyChromeClient::canTakeFocus):
68906        (WebCore::SVGEmptyChromeClient::takeFocus):
68907        * platform/graphics/svg/SVGImage.cpp:
68908        (WebCore::SVGImage::setData): Fixed typo.
68909
68910        Miscellaneous:
68911
68912        * WebCore.exp: Updated/sorted symbols.
68913        * WebCore.xcodeproj/project.pbxproj: Made FocusController.h Private so
68914        WebKit can access it.
68915
689162007-01-04  Brady Eidson  <beidson@apple.com>
68917
68918        Reverted Anders' change to fix the world
68919
68920        * loader/mac/ResourceLoaderMac.mm:
68921        (WebCore::ResourceLoader::willSendRequest):
68922        (WebCore::ResourceLoader::didReceiveResponse):
68923
689242007-01-04  Mitz Pettel  <mitz@webkit.org>
68925
68926        Reviewed by Sam Weinig.
68927
68928        - http://bugs.webkit.org/show_bug.cgi?id=12078
68929          Clean up RenderTable*
68930
68931        - Coding style cleanup.
68932        - Canceled AutoTableLayout and FixedTableLayout being friend classes of
68933          RenderTable. Instead, added public accessors to RenderTable for what
68934          the table layout classes need and changed TableLayout::calcMinMaxWidth()
68935          to take references to the caller's min and max widths.
68936        - Made RenderTableSection's grid protected and moved code that accessed it
68937          from RenderTable into RenderTableSection.
68938
68939        No test possible (no change to functionality).
68940
68941        * rendering/AutoTableLayout.cpp:
68942        (WebCore::AutoTableLayout::calcMinMaxWidth):
68943        (WebCore::AutoTableLayout::layout):
68944        * rendering/AutoTableLayout.h:
68945        * rendering/FixedTableLayout.cpp:
68946        (WebCore::FixedTableLayout::calcWidthArray):
68947        (WebCore::FixedTableLayout::calcMinMaxWidth):
68948        (WebCore::FixedTableLayout::layout):
68949        * rendering/FixedTableLayout.h:
68950        * rendering/RenderTable.cpp:
68951        (WebCore::RenderTable::RenderTable):
68952        (WebCore::RenderTable::~RenderTable):
68953        (WebCore::RenderTable::setStyle):
68954        (WebCore::RenderTable::addChild):
68955        (WebCore::RenderTable::calcWidth):
68956        (WebCore::RenderTable::layout):
68957        (WebCore::RenderTable::setCellWidths):
68958        (WebCore::RenderTable::paint):
68959        (WebCore::RenderTable::paintBoxDecorations):
68960        (WebCore::RenderTable::calcMinMaxWidth):
68961        (WebCore::RenderTable::splitColumn): Factored out the section work
68962        to RenderTableSection::splitColumn().
68963        (WebCore::RenderTable::appendColumn): Factored out the section work
68964        to RenderTableSection::appendColumn().
68965        (WebCore::RenderTable::colElement):
68966        (WebCore::RenderTable::recalcSections):
68967        (WebCore::RenderTable::removeChildNode):
68968        (WebCore::RenderTable::calcBorderLeft):
68969        (WebCore::RenderTable::calcBorderRight):
68970        (WebCore::RenderTable::outerBorderTop):
68971        (WebCore::RenderTable::outerBorderBottom):
68972        (WebCore::RenderTable::outerBorderLeft):
68973        (WebCore::RenderTable::outerBorderRight):
68974        (WebCore::RenderTable::sectionAbove):
68975        (WebCore::RenderTable::sectionBelow):
68976        (WebCore::RenderTable::cellAbove):
68977        (WebCore::RenderTable::cellBelow):
68978        (WebCore::RenderTable::cellBefore):
68979        (WebCore::RenderTable::getOverflowClipRect):
68980        (WebCore::RenderTable::dump):
68981        * rendering/RenderTable.h:
68982        (WebCore::RenderTable::getColumnPos):
68983        (WebCore::RenderTable::hBorderSpacing):
68984        (WebCore::RenderTable::vBorderSpacing):
68985        (WebCore::RenderTable::getRules):
68986        (WebCore::RenderTable::cellPadding):
68987        (WebCore::RenderTable::setCellPadding):
68988        (WebCore::RenderTable::ColumnStruct::ColumnStruct):
68989        (WebCore::RenderTable::columns): Added this accessor.
68990        (WebCore::RenderTable::columnPositions): Added this accessor.
68991        (WebCore::RenderTable::header):
68992        (WebCore::RenderTable::footer):
68993        (WebCore::RenderTable::firstBody):
68994        (WebCore::RenderTable::numEffCols):
68995        (WebCore::RenderTable::spanOfEffCol):
68996        (WebCore::RenderTable::colToEffCol):
68997        (WebCore::RenderTable::effColToCol):
68998        (WebCore::RenderTable::bordersPaddingAndSpacing):
68999        (WebCore::RenderTable::needsSectionRecalc):
69000        (WebCore::RenderTable::setNeedsSectionRecalc): Renamed setNeedSectionRecalc()
69001        to this.
69002        (WebCore::RenderTable::hasSections):
69003        (WebCore::RenderTable::recalcSectionsIfNeeded):
69004        * rendering/RenderTableCell.cpp:
69005        (WebCore::RenderTableCell::RenderTableCell):
69006        (WebCore::RenderTableCell::destroy):
69007        (WebCore::RenderTableCell::updateFromElement):
69008        (WebCore::RenderTableCell::styleOrColWidth):
69009        (WebCore::RenderTableCell::computeAbsoluteRepaintRect):
69010        (WebCore::RenderTableCell::absolutePosition):
69011        (WebCore::RenderTableCell::baselinePosition):
69012        (WebCore::RenderTableCell::setStyle):
69013        (WebCore::compareBorders):
69014        (WebCore::RenderTableCell::collapsedTopBorder):
69015        (WebCore::RenderTableCell::paint):
69016        (WebCore::collapsedBorderStyle):
69017        (WebCore::CollapsedBorder::CollapsedBorder):
69018        (WebCore::CollapsedBorders::CollapsedBorders):
69019        (WebCore::CollapsedBorders::addBorder):
69020        (WebCore::CollapsedBorders::nextBorder):
69021        (WebCore::RenderTableCell::paintCollapsedBorder):
69022        (WebCore::RenderTableCell::paintBackgroundsBehindCell):
69023        (WebCore::RenderTableCell::paintBoxDecorations):
69024        (WebCore::RenderTableCell::dump):
69025        * rendering/RenderTableCell.h:
69026        (WebCore::RenderTableCell::colSpan):
69027        (WebCore::RenderTableCell::setColSpan):
69028        (WebCore::RenderTableCell::rowSpan):
69029        (WebCore::RenderTableCell::setRowSpan):
69030        (WebCore::RenderTableCell::col):
69031        (WebCore::RenderTableCell::setCol):
69032        (WebCore::RenderTableCell::row):
69033        (WebCore::RenderTableCell::setRow):
69034        (WebCore::RenderTableCell::section):
69035        (WebCore::RenderTableCell::table):
69036        (WebCore::RenderTableCell::yPos):
69037        (WebCore::RenderTableCell::setCellTopExtra):
69038        (WebCore::RenderTableCell::setCellBottomExtra):
69039        (WebCore::RenderTableCell::borderTopExtra):
69040        (WebCore::RenderTableCell::borderBottomExtra):
69041        * rendering/RenderTableRow.cpp:
69042        (WebCore::RenderTableRow::destroy):
69043        (WebCore::RenderTableRow::setStyle):
69044        (WebCore::RenderTableRow::addChild):
69045        (WebCore::RenderTableRow::layout):
69046        (WebCore::RenderTableRow::getAbsoluteRepaintRect):
69047        (WebCore::RenderTableRow::paint):
69048        * rendering/RenderTableRow.h:
69049        (WebCore::RenderTableRow::section):
69050        (WebCore::RenderTableRow::table):
69051        (WebCore::RenderTableRow::lineHeight):
69052        * rendering/RenderTableSection.cpp:
69053        (WebCore::RenderTableSection::RenderTableSection):
69054        (WebCore::RenderTableSection::destroy):
69055        (WebCore::RenderTableSection::setStyle):
69056        (WebCore::RenderTableSection::addChild):
69057        (WebCore::RenderTableSection::ensureRows):
69058        (WebCore::RenderTableSection::addCell):
69059        (WebCore::RenderTableSection::setCellWidths):
69060        (WebCore::RenderTableSection::calcRowHeight):
69061        (WebCore::RenderTableSection::layoutRows):
69062        (WebCore::RenderTableSection::lowestPosition):
69063        (WebCore::RenderTableSection::rightmostPosition):
69064        (WebCore::RenderTableSection::leftmostPosition):
69065        (WebCore::RenderTableSection::calcOuterBorderTop):
69066        (WebCore::RenderTableSection::calcOuterBorderBottom):
69067        (WebCore::RenderTableSection::calcOuterBorderLeft):
69068        (WebCore::RenderTableSection::calcOuterBorderRight):
69069        (WebCore::RenderTableSection::paint):
69070        (WebCore::RenderTableSection::recalcCells):
69071        (WebCore::RenderTableSection::clearGrid):
69072        (WebCore::RenderTableSection::numColumns):
69073        (WebCore::RenderTableSection::appendColumn): Added. Moved code from
69074        RenderTable::appendColumn() into here.
69075        (WebCore::RenderTableSection::splitColumn): Added. Moved code from
69076        RenderTable::splitColumn() into here.
69077        (WebCore::RenderTableSection::removeChildNode):
69078        (WebCore::RenderTableSection::dump):
69079        * rendering/RenderTableSection.h:
69080        (WebCore::RenderTableSection::renderName):
69081        (WebCore::RenderTableSection::isTableSection):
69082        (WebCore::RenderTableSection::lineHeight):
69083        (WebCore::RenderTableSection::table):
69084        (WebCore::RenderTableSection::cellAt):
69085        (WebCore::RenderTableSection::numRows):
69086        (WebCore::RenderTableSection::recalcCellsIfNeeded):
69087        (WebCore::RenderTableSection::needsCellRecalc):
69088        (WebCore::RenderTableSection::setNeedsCellRecalc):
69089        (WebCore::RenderTableSection::getBaseline):
69090        * rendering/TableLayout.h:
69091
690922007-01-04  Anders Carlsson  <acarlsson@apple.com>
69093
69094        Reviewed by Adam.
69095
69096        http://bugs.webkit.org/show_bug.cgi?id=12120
69097        REGRESSION(r18605): Safari snippet editor no longer works
69098        
69099        * loader/mac/ResourceLoaderMac.mm:
69100        (WebCore::ResourceLoader::willSendRequest):
69101        Fix logic so applewebdata: URLs no longer cause the underlying URL to be fetched .
69102
691032007-01-04  Anders Carlsson  <acarlsson@apple.com>
69104
69105        Reviewed by Adam.
69106
69107        Move all remaining instances of NSURLRequest over to ResourceRequest (well, pretty much all).
69108
69109        * loader/MainResourceLoader.h:
69110        * loader/ResourceLoader.h:
69111        * loader/SubresourceLoader.h:
69112        * loader/mac/FrameLoaderMac.mm:
69113        (WebCore::FrameLoader::startLoadingMainResource):
69114        * loader/mac/MainResourceLoaderMac.mm:
69115        (WebCore::MainResourceLoader::loadNow):
69116        (WebCore::MainResourceLoader::load):
69117        (WebCore::MainResourceLoader::setDefersLoading):
69118        * loader/mac/ResourceLoaderMac.mm:
69119        (WebCore::ResourceLoader::load):
69120        * loader/mac/SubresourceLoaderMac.mm:
69121        (WebCore::SubresourceLoader::load):
69122        (WebCore::SubresourceLoader::create):
69123        * platform/graphics/svg/SVGImage.cpp:
69124        (WebCore::SVGImage::setData):
69125        * platform/network/mac/ResourceRequestMac.mm:
69126        (WebCore::ResourceRequest::doUpdatePlatformRequest):
69127
691282007-01-04  Anders Carlsson  <acarlsson@apple.com>
69129
69130        Reviewed by Brady.
69131
69132        Move more NSURLRequests over to ResourceRequests.
69133        
69134        * loader/DocumentLoader.h:
69135        * loader/FrameLoader.h:
69136        * loader/FrameLoaderClient.h:
69137        * loader/MainResourceLoader.h:
69138        * loader/ResourceLoader.h:
69139        (WebCore::ResourceLoader::request):
69140        * loader/SubresourceLoader.h:
69141        * loader/mac/FrameLoaderMac.mm:
69142        (WebCore::FrameLoader::willSendRequest):
69143        (WebCore::FrameLoader::opened):
69144        (WebCore::FrameLoader::requestFromDelegate):
69145        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
69146        (WebCore::FrameLoader::loadResourceSynchronously):
69147        * loader/mac/MainResourceLoaderMac.mm:
69148        (WebCore::MainResourceLoader::willSendRequest):
69149        (WebCore::MainResourceLoader::continueAfterContentPolicy):
69150        (WebCore::MainResourceLoader::loadNow):
69151        (WebCore::MainResourceLoader::setDefersLoading):
69152        * loader/mac/ResourceLoaderMac.mm:
69153        (WebCore::ResourceLoader::load):
69154        (WebCore::ResourceLoader::willSendRequest):
69155        (WebCore::ResourceLoader::didReceiveResponse):
69156        (WebCore::ResourceLoader::cancelledError):
69157        * loader/mac/SubresourceLoaderMac.mm:
69158        (WebCore::SubresourceLoader::willSendRequest):
69159        * platform/graphics/svg/SVGImageEmptyClients.h:
69160        (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
69161        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
69162        * platform/network/ResourceRequest.cpp:
69163        (WebCore::ResourceRequest::isNull):
69164        * platform/network/ResourceRequest.h:
69165
691662007-01-04  Brady Eidson  <beidson@apple.com>
69167
69168        Reviewed by Mark Rowe
69169
69170        http://bugs.webkit.org/show_bug.cgi?id=12119
69171        Changing the behavior of HistoryItem::pageCache() this morning also necessitated
69172        changing the behavior of HistoryItem::hasPageCache()
69173
69174        * history/HistoryItem.cpp:
69175        (WebCore::HistoryItem::hasPageCache): Add the same pendingRelease check pageCache() has
69176
691772007-01-04  Mitz Pettel  <mitz@webkit.org>
69178
69179        Reviewed by Sam Weinig.
69180
69181        - fix http://bugs.webkit.org/show_bug.cgi?id=12043
69182          Another assertion failure in WebCore::RenderObject::drawBorder
69183
69184        Test: fast/borders/border-radius-huge-assert.html
69185
69186        * platform/graphics/cg/GraphicsContextCG.cpp:
69187        (WebCore::GraphicsContext::addRoundedRectClip): Fixed the check for border radii
69188        that do not fit in the given width or height to work with radii that sum up to
69189        more than MAX_INT.
69190        * rendering/RenderObject.cpp:
69191        (WebCore::RenderObject::paintBorder): Ditto.
69192
691932007-01-04  Justin Garcia  <justin.garcia@apple.com>
69194
69195        Reviewed by john
69196
69197        <rdar://problem/4861080>
69198        GMail Editor: Crash when dropping content into certain list items
69199        
69200        A rendering bug (4907469) creates unwanted space at the top of a 
69201        list item when its contents are wrapped in span.  Dropping content 
69202        inside that space causes a crash because positionForCoordinates 
69203        fails there and the code that creates drag carets can't handle it.
69204
69205        * page/mac/WebCoreFrameBridge.mm:
69206        (-[WebCoreFrameBridge _visiblePositionForPoint:]): Added the
69207        that's inside click handling for the case where 
69208        positionForCoordinates returns null.  We should also fix 
69209        positionForCoordinates but that's less important: now its only side 
69210        effect is that a no-op drop is performed instead of a snap back 
69211        when you drop the contents of one of these list items its own 
69212        unwanted space.
69213
692142007-01-04  Beth Dakin  <bdakin@apple.com>
69215
69216        Reviewed by Adam.
69217
69218        Fix for http://bugs.webkit.org/show_bug.cgi?id=12118 REGRESSION 
69219        (Context menus): No context menu displayed when clicking outside a 
69220        short document
69221
69222        No test case added since we do not currently have a way to automate 
69223        context menus. 
69224
69225        * page/ContextMenuController.cpp:
69226        (WebCore::ContextMenuController::handleContextMenuEvent): If the 
69227        hit test does not find a node, use the document node.
69228
692292007-01-04  Anders Carlsson  <acarlsson@apple.com>
69230
69231        Reviewed by Adam.
69232
69233        Convert NSURLRequest to ResourceRequest in a few places
69234
69235        * loader/FrameLoader.h:
69236        * loader/FrameLoaderClient.h:
69237        * loader/MainResourceLoader.h:
69238        * loader/mac/FrameLoaderMac.mm:
69239        (WebCore::FrameLoader::identifierForInitialRequest):
69240        (WebCore::FrameLoader::willUseArchive):
69241        * loader/mac/MainResourceLoaderMac.mm:
69242        (WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
69243        * platform/graphics/svg/SVGImageEmptyClients.h:
69244        (WebCore::SVGEmptyFrameLoaderClient::download):
69245        (WebCore::SVGEmptyFrameLoaderClient::willUseArchive):
69246
692472007-01-04  David Hyatt  <hyatt@apple.com>
69248
69249        Bug 12114 fix, make sure left/right floats are allowed to go above
69250        other floats of opposite alignment.
69251
69252        Reviewed by aroben
69253
69254        fast/block/float/independent-align-positioning.html
69255
69256        * rendering/RenderBlock.cpp:
69257        (WebCore::RenderBlock::positionNewFloats):
69258
692592007-01-04  Anders Carlsson  <acarlsson@apple.com>
69260
69261        Reviewed by Brady.
69262
69263        http://bugs.webkit.org/show_bug.cgi?id=12116
69264        REGRESSION: ASSERTION FAILED: URL in +[WebDataProtocol _webIsDataProtocolURL:]
69265        
69266        <rdar://problem/4908910> 
69267        REGRESSION: After switching to Bookmarks view, the browser window is completely empty (no bookmarks are displayed)
69268        
69269        * platform/network/ResourceResponse.h:
69270        (WebCore::ResourceResponse::ResourceResponse):
69271        Initialize m_isNull
69272
692732007-01-04  Beth Dakin  <bdakin@apple.com>
69274
69275        Reviewed by Adam.
69276
69277        Turn on WebCore context menus.
69278
69279        * dom/EventTargetNode.cpp:
69280        (WebCore::EventTargetNode::defaultEventHandler): Turn on WebCore 
69281        menus.
69282        * page/ContextMenuClient.h: Name change and have the 
69283        former getCustomMenuFromDefaultItems function return the 
69284        PlatformMenuDescription since it feels funny to have the client set 
69285        the new platform description.
69286        * page/ContextMenuController.cpp:
69287        (WebCore::ContextMenuController::handleContextMenuEvent): Above 
69288        name change.
69289        (WebCore::ContextMenuController::contextMenuItemSelected): Use 
69290        local variable.
69291        * platform/ContextMenu.cpp:
69292        (WebCore::createAndAppendSpeechSubMenu): Fix silly mistake -- make 
69293        "Stop speaking" actually stop speaking.
69294        * platform/graphics/svg/SVGImageEmptyClients.h: Name change and 
69295        have the former getCustomMenuFromDefaultItems function return the 
69296        PlatformMenuDescription since it feels funny to have the client set 
69297        the new platform description.
69298       (WebCore::SVGEmptyContextMenuClient::getCustomMenuFromDefaultItems):
69299
693002007-01-04  Mitz Pettel  <mitz@webkit.org>
69301
69302        Reviewed and landed by Brady
69303
69304        - fix http://bugs.webkit.org/show_bug.cgi?id=12087
69305          REGRESSION: Reproducible crash going back in Back/Forward history
69306
69307        Allow a PageCache that is pending release to be resurrected by its
69308        HistoryItem instead of creating a new PageCache. This avoids the
69309        the condition of having two PageCaches for the same HistoryItem, one
69310        current and one pending release but not yet released, which was causing
69311        this and other bugs before.
69312        
69313        Replaced the vector of PageCaches pending release with a set of
69314        HistoryItems that are pending release of their PageCache.
69315
69316        * history/HistoryItem.cpp:
69317        (WebCore::HistoryItem::HistoryItem):
69318        (WebCore::HistoryItem::setHasPageCache): Check for an existing PageCache
69319        pending release, and if found, resurrect it by canceling the release.
69320        (WebCore::HistoryItem::pageCache): Return 0 if the PageCache is pending
69321        release.
69322        (WebCore::itemsWithPendingPageCacheToRelease): Renamed pendingPageCacheToRelease
69323        to this. This method now returns a HashSet of HistoryItems that have scheduled
69324        their PageCaches for release.
69325        (WebCore::HistoryItem::releasePageCachesOrReschedule): Renamed releasePageCache
69326        to this.
69327        (WebCore::HistoryItem::releasePageCache): Added. Actually closes and releases
69328        the PageCache.
69329        (WebCore::HistoryItem::releaseAllPendingPageCaches): Rolled closeObjectsInPendingPageCaches
69330        into this method.
69331        (WebCore::HistoryItem::scheduleRelease):
69332        (WebCore::HistoryItem::cancelRelease): Added.
69333        * history/HistoryItem.h: Removed unused declaration of scheduleReleaseTimer()
69334        * history/HistoryItemTimer.cpp:
69335        (WebCore::HistoryItemTimer::HistoryItemTimer):
69336        (WebCore::HistoryItemTimer::callReleasePageCachesOrReschedule):
69337        * history/HistoryItemTimer.h:
69338
693392007-01-04  David Hyatt  <hyatt@apple.com>
69340
69341        Just make the synthetic bold offset always be 1.0.  This fixes bug
69342        9534, synthetic bold looks doubled.
69343
69344        Reviewed by olliej
69345
69346        * platform/mac/FontDataMac.mm:
69347        (WebCore::FontData::platformInit):
69348
693492007-01-04  Anders Carlsson  <acarlsson@apple.com>
69350
69351        Reviewed by Brady.
69352
69353        Convert almost all occurrences of NSURLResponse to ResourceResponse.
69354
69355        * WebCore.exp:
69356        * loader/DocumentLoader.h:
69357        * loader/FrameLoader.h:
69358        * loader/FrameLoaderClient.h:
69359        * loader/MainResourceLoader.h:
69360        * loader/NetscapePlugInStreamLoader.h:
69361        * loader/ResourceLoader.h:
69362        * loader/SubresourceLoader.h:
69363        * loader/loader.h:
69364        * loader/mac/FrameLoaderMac.mm:
69365        (WebCore::FrameLoader::willSendRequest):
69366        (WebCore::FrameLoader::didReceiveResponse):
69367        (WebCore::FrameLoader::opened):
69368        (WebCore::FrameLoader::sendRemainingDelegateMessages):
69369        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
69370        (WebCore::FrameLoader::loadResourceSynchronously):
69371        * loader/mac/LoaderFunctionsMac.mm:
69372        (WebCore::CheckCacheObjectStatus):
69373        * loader/mac/MainResourceLoaderMac.mm:
69374        (WebCore::MainResourceLoader::isPostOrRedirectAfterPost):
69375        (WebCore::MainResourceLoader::willSendRequest):
69376        (WebCore::MainResourceLoader::continueAfterContentPolicy):
69377        (WebCore::MainResourceLoader::didReceiveResponse):
69378        (WebCore::MainResourceLoader::loadNow):
69379        * loader/mac/NetscapePlugInStreamLoaderMac.mm:
69380        (WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
69381        * loader/mac/ResourceLoaderMac.mm:
69382        (WebCore::ResourceLoader::willSendRequest):
69383        (WebCore::ResourceLoader::didReceiveResponse):
69384        (WebCore::ResourceLoader::response):
69385        * loader/mac/SubresourceLoaderMac.mm:
69386        (WebCore::SubresourceLoader::willSendRequest):
69387        (WebCore::SubresourceLoader::didReceiveResponse):
69388        * platform/graphics/svg/SVGImageEmptyClients.h:
69389        (WebCore::SVGEmptyFrameLoaderClient::download):
69390        (WebCore::SVGEmptyFrameLoaderClient::dispatchWillSendRequest):
69391        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidReceiveResponse):
69392        (WebCore::SVGEmptyFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
69393        (WebCore::SVGEmptyFrameLoaderClient::incrementProgress):
69394        * platform/network/ResourceHandle.h:
69395        * platform/network/ResourceHandleClient.h:
69396        * platform/network/ResourceResponse.cpp:
69397        (WebCore::ResourceResponse::isHTTP):
69398        * platform/network/ResourceResponse.h:
69399        (WebCore::ResourceResponse::ResourceResponse):
69400        (WebCore::ResourceResponse::isNull):
69401        * platform/network/mac/ResourceResponseMac.mm:
69402        (WebCore::ResourceResponse::nsURLResponse):
69403        (WebCore::ResourceResponse::doUpdateResourceResponse):
69404
694052007-01-03  Adele Peterson  <adele@apple.com>
69406
69407        Reviewed by Darin.
69408
69409        - Fix for <rdar://problem/4887422>
69410        http://bugs.webkit.org/show_bug.cgi?id=11848
69411        REGRESSION (SearchField): Search field on developer.apple.com not drawn with top/bottom borders (11848)
69412
69413        Test: fast/forms/searchfield-heights.html
69414
69415        Override the border and the height for search fields that use -webkit-appearance: searchfield.
69416
69417        * css/html4.css: Use box-sizing: border-box for search fields.  We don't need to have the border-box quirk
69418          that we use for the other text fields for this control.
69419        * rendering/RenderThemeMac.h:
69420        * rendering/RenderThemeMac.mm:
69421        (WebCore::RenderThemeMac::searchFieldSizes): Added.
69422        (WebCore::RenderThemeMac::setSearchFieldSize): Added.
69423        (WebCore::RenderThemeMac::adjustSearchFieldStyle): Override the border and the height of the search field.
69424
694252007-01-04  Lars Knoll <lars@trolltech.com>
69426
69427        * platform/qt/TemporaryLinkStubs.cpp:
69428        (WebCore::inputElementAltText):
69429        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
69430        (WebCore::contextMenuItemTagDownloadLinkToDisk):
69431        (WebCore::contextMenuItemTagCopyLinkToClipboard):
69432        (WebCore::contextMenuItemTagOpenImageInNewWindow):
69433        (WebCore::contextMenuItemTagDownloadImageToDisk):
69434        (WebCore::contextMenuItemTagCopyImageToClipboard):
69435        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
69436        (WebCore::contextMenuItemTagCopy):
69437        (WebCore::contextMenuItemTagGoBack):
69438        (WebCore::contextMenuItemTagGoForward):
69439        (WebCore::contextMenuItemTagStop):
69440        (WebCore::contextMenuItemTagReload):
69441        (WebCore::contextMenuItemTagCut):
69442        (WebCore::contextMenuItemTagPaste):
69443        (WebCore::contextMenuItemTagNoGuessesFound):
69444        (WebCore::contextMenuItemTagIgnoreSpelling):
69445        (WebCore::contextMenuItemTagLearnSpelling):
69446        (WebCore::contextMenuItemTagSearchWeb):
69447        (WebCore::contextMenuItemTagLookUpInDictionary):
69448        (WebCore::contextMenuItemTagOpenLink):
69449        (WebCore::contextMenuItemTagIgnoreGrammar):
69450        (WebCore::contextMenuItemTagSpellingMenu):
69451        (WebCore::contextMenuItemTagShowSpellingPanel):
69452        (WebCore::contextMenuItemTagCheckSpelling):
69453        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
69454        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
69455        (WebCore::contextMenuItemTagFontMenu):
69456        (WebCore::contextMenuItemTagBold):
69457        (WebCore::contextMenuItemTagItalic):
69458        (WebCore::contextMenuItemTagUnderline):
69459        (WebCore::contextMenuItemTagOutline):
69460        (WebCore::contextMenuItemTagWritingDirectionMenu):
69461        (WebCore::contextMenuItemTagDefaultDirection):
69462        (WebCore::contextMenuItemTagLeftToRight):
69463        (WebCore::contextMenuItemTagRightToLeft):
69464            Added missing stubs.
69465
694662007-01-04  Peter Kasting  <pkasting@google.com>
69467
69468        Reviewed by Alexey.
69469
69470        http://bugs.webkit.org/show_bug.cgi?id=11900:
69471        Windows build bustage
69472
69473        * WebCore.vcproj/WebCore/WebCore.vcproj:
69474        * bridge/win/FrameWin.cpp:
69475        (WebCore::FrameWin::FrameWin):
69476        * platform/graphics/BitmapImage.h:
69477        * platform/graphics/GraphicsContext.cpp:
69478        (WebCore::GraphicsContext::setPlatformStrokeColor):
69479        * platform/graphics/Image.h:
69480        * platform/graphics/cairo/GraphicsContextCairo.cpp:
69481        (WebCore::GraphicsContext::drawRect):
69482        (WebCore::adjustLineToPixelBoundaries):
69483        (WebCore::GraphicsContext::drawLine):
69484        (WebCore::GraphicsContext::drawEllipse):
69485        (WebCore::GraphicsContext::strokeArc):
69486        (WebCore::GraphicsContext::drawConvexPolygon):
69487        * platform/graphics/cairo/ImageCairo.cpp:
69488        (WebCore::BitmapImage::checkForSolidColor):
69489        (WebCore::BitmapImage::draw):
69490        (WebCore::BitmapImage::drawTiled):
69491        * platform/graphics/win/ImageWin.cpp:
69492        (WebCore::BitmapImage::initPlatformData):
69493        (WebCore::BitmapImage::invalidatePlatformData):
69494        (WebCore::Image::loadPlatformResource):
69495        * platform/win/FontWin.cpp:
69496        (WebCore::Font::drawGlyphs):
69497        * platform/win/TemporaryLinkStubs.cpp:
69498        (WebCore::userIdleTime):
69499        (WebCore::BitmapImage::drawTiled):
69500        (WebCore::BitmapImage::getHBITMAP):
69501        (WebCore::ContextMenu::~ContextMenu):
69502        (WebCore::ContextMenu::appendItem):
69503        (WebCore::ContextMenuItem::ContextMenuItem):
69504        (WebCore::ContextMenuItem::releasePlatformDescription):
69505        (WebCore::ContextMenuItem::type):
69506        (WebCore::ContextMenuItem::setType):
69507        (WebCore::ContextMenuItem::setAction):
69508        (WebCore::ContextMenuItem::setTitle):
69509        (WebCore::ContextMenuItem::setSubMenu):
69510        (WebCore::ContextMenuItem::setChecked):
69511        (WebCore::ContextMenuItem::setEnabled):
69512        (WebCore::DocumentLoader::originalRequest):
69513        (WebCore::DocumentLoader::request):
69514        (WebCore::DocumentLoader::unreachableURL):
69515        (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
69516        (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
69517        (WebCore::DocumentLoader::setCommitted):
69518        (WebCore::DocumentLoader::isLoading):
69519        (WebCore::DocumentLoader::prepareForLoadStart):
69520        (WebCore::DocumentLoader::isClientRedirect):
69521        (WebCore::DocumentLoader::title):
69522        (WebCore::DocumentLoader::urlForHistory):
69523        (WebCore::Editor::markMisspellingsAfterTypingToPosition):
69524        (WebCore::FrameLoader::load):
69525        (WebCore::FrameLoader::referrer):
69526        (WebCore::FrameLoader::dataURLBaseFromRequest):
69527        (WebCore::FrameLoader::opened):
69528        (WebCore::FrameLoader::applyUserAgent):
69529        (WebCore::GraphicsContext::strokeRect):
69530        (WebCore::IconDatabase::iconForPageURL):
69531        (WebCore::IconDatabase::defaultIcon):
69532        (WebCore::IconDatabase::retainIconForPageURL):
69533        (WebCore::IconDatabase::releaseIconForPageURL):
69534        (WebCore::PageCache::close):
69535        (WebCore::ResourceHandle::willLoadFromCache):
69536        (WebCore::SearchPopupMenu::saveRecentSearches):
69537        (WebCore::SearchPopupMenu::loadRecentSearches):
69538        (WebCore::SearchPopupMenu::SearchPopupMenu):
69539
695402007-01-04  Alexey Proskuryakov  <ap@webkit.org>
69541
69542        Reviewed by Darin.
69543
69544        http://bugs.webkit.org/show_bug.cgi?id=11611
69545        REGRESSION: No http referer header sent on XMLHttpRequest
69546
69547        Test: http/tests/xmlhttprequest/referer.html
69548
69549        * loader/FrameLoader.h: Removed FrameLoader::addExtraFieldsToRequest(NSMutableURLRequest*, bool, bool),
69550        which is no longer used.
69551        * loader/mac/FrameLoaderMac.mm: Ditto.
69552        * WebCore.exp: Do not export this method (WebKit doesn't use it).
69553
69554        * loader/mac/SubresourceLoaderMac.mm:
69555        (WebCore::SubresourceLoader::create): Rewrote to create the request with ResourceRequest::nsURLRequest.
69556
69557        * platform/PlatformString.h:
69558        (WebCore::operator!): Added. Previously, attempts to use operator! on a String would result 
69559        with an NSString* conversion, which never returns nil. This was causing a problem in SubresourceLoader::create().
69560
695612007-01-04  Lars Knoll <lars@trolltech.com>
69562
69563
69564        Make the Qt build compile again.
69565
69566        * platform/ContextMenu.cpp:
69567        (WebCore::ContextMenu::populate):
69568
695692007-01-03  Mitz Pettel  <mitz@webkit.org>
69570
69571        Reviewed by Hyatt.
69572
69573        - fix http://bugs.webkit.org/show_bug.cgi?id=5164
69574          Non-integer percentages are incorrectly rounded down in Safari
69575
69576        Test: fast/css/percentage-non-integer.html
69577
69578        Added floating point constructor and accessors to Length for use with
69579        Percent lengths only. The raw value of a percent length is the integer
69580        part of a constant multiple of the original double value. The constant
69581        is percentScaleFactor, which is currently 128.
69582        
69583        Added assertions that the correct constructors and accessors are used
69584        depending on the type: the double-based percent(), setValue() and Length()
69585        for the Percent type, and the integer-based value(), setValue() and Length()
69586        for all other types.
69587        
69588        calcValue() and calcMinValue() work the same as before, regardless of the
69589        type.
69590
69591        Added helpers for testing if the value is 0, positive, negative or undefined
69592        without having to check the type first.
69593        
69594        Added raw value accessors. These are useful for doing integer math and
69595        comparisons with scaled percent values or doing Length type-agnostic math.
69596
69597        Changed the rest of the code to use the appropriate accessors and helpers.
69598
69599        * css/CSSComputedStyleDeclaration.cpp:
69600        (WebCore::valueForLength):
69601        (WebCore::primitiveValueFromLength):
69602        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
69603        * css/cssstyleselector.cpp:
69604        (WebCore::convertToLength):
69605        (WebCore::CSSStyleSelector::applyProperty):
69606        (WebCore::CSSStyleSelector::mapBackgroundSize):
69607        (WebCore::CSSStyleSelector::mapBackgroundXPosition):
69608        (WebCore::CSSStyleSelector::mapBackgroundYPosition):
69609        * platform/StringImpl.cpp:
69610        (WebCore::parseLength):
69611        * rendering/AutoTableLayout.cpp:
69612        (WebCore::AutoTableLayout::recalcColumn):
69613        (WebCore::AutoTableLayout::fullRecalc):
69614        (WebCore::AutoTableLayout::calcMinMaxWidth):
69615        (WebCore::AutoTableLayout::calcEffectiveWidth):
69616        (WebCore::AutoTableLayout::layout):
69617        (WebCore::AutoTableLayout::calcPercentages):
69618        * rendering/FixedTableLayout.cpp:
69619        (WebCore::FixedTableLayout::calcWidthArray):
69620        (WebCore::FixedTableLayout::layout):
69621        * rendering/Length.h:
69622        (WebCore::Length::Length):
69623        (WebCore::Length::value):
69624        (WebCore::Length::rawValue):
69625        (WebCore::Length::percent):
69626        (WebCore::Length::setValue):
69627        (WebCore::Length::setRawValue):
69628        (WebCore::Length::calcValue):
69629        (WebCore::Length::calcMinValue):
69630        (WebCore::Length::isUndefined):
69631        (WebCore::Length::isZero):
69632        (WebCore::Length::isPositive):
69633        (WebCore::Length::isNegative):
69634        * rendering/RenderBR.cpp:
69635        (WebCore::RenderBR::lineHeight):
69636        * rendering/RenderBlock.cpp:
69637        (WebCore::RenderBlock::isSelfCollapsingBlock):
69638        * rendering/RenderBox.cpp:
69639        (WebCore::cacluateBackgroundSize):
69640        (WebCore::RenderBox::calcWidth):
69641        (WebCore::RenderBox::calcHeight):
69642        (WebCore::RenderBox::calcReplacedWidth):
69643        (WebCore::RenderBox::calcReplacedHeight):
69644        (WebCore::RenderBox::calcAbsoluteHorizontal):
69645        (WebCore::RenderBox::calcAbsoluteVertical):
69646        * rendering/RenderFlexibleBox.cpp:
69647        (WebCore::RenderFlexibleBox::allowedChildFlex):
69648        * rendering/RenderFlow.cpp:
69649        (WebCore::RenderFlow::lineHeight):
69650        * rendering/RenderImage.cpp:
69651        (WebCore::RenderImage::calcReplacedWidth):
69652        (WebCore::RenderImage::calcReplacedHeight):
69653        * rendering/RenderLayer.cpp:
69654        (WebCore::Marquee::direction):
69655        (WebCore::Marquee::start):
69656        * rendering/RenderObject.cpp:
69657        (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
69658        (WebCore::RenderObject::lineHeight):
69659        * rendering/RenderSlider.cpp:
69660        (WebCore::RenderSlider::layout): Added FIXMEs.
69661        * rendering/RenderStyle.h:
69662        (WebCore::LengthBox::nonZero):
69663        (WebCore::RenderStyle::initialLineHeight):
69664        * rendering/RenderTable.cpp:
69665        (WebCore::RenderTable::calcWidth):
69666        * rendering/RenderTableSection.cpp:
69667        (WebCore::RenderTableSection::addCell):
69668        (WebCore::RenderTableSection::layoutRows):
69669
696702007-01-03  Mitz Pettel  <mitz@webkit.org>
69671
69672        Reviewed by Hyatt.
69673
69674        - fix http://bugs.webkit.org/show_bug.cgi?id=11744
69675          Setting the 'content' property dynamically has no effect
69676
69677        Test: fast/css/content-dynamic.html
69678
69679        * dom/Node.cpp:
69680        (WebCore::Node::diff): Changed to return 'Detach' if the styles' content
69681        data are not equivalent.
69682
696832007-01-03  Mitz Pettel  <mitz@webkit.org>
69684
69685        Reviewed by Darin.
69686
69687        - fix http://bugs.webkit.org/show_bug.cgi?id=12082
69688          REGRESSION (r18333): Crash in RenderFrameSet::layOutAxis()
69689
69690        Test: fast/frames/negative-remaining-length-crash.html
69691
69692        * rendering/RenderFrameSet.cpp:
69693        (WebCore::RenderFrameSet::layOutAxis): Treat negative availableLength
69694        as zero.
69695
696962007-01-03  John Sullivan  <sullivan@apple.com>
69697
69698        Written by Darin over my shoulder; reviewed by me
69699
69700        - fixed <rdar://problem/4907437> Find doesn't work if invoked when a form field is focused
69701
69702        * page/Frame.cpp:
69703        (WebCore::isInShadowTree):
69704        new helper function used by findString
69705        (WebCore::Frame::findString):
69706        when deciding whether to start from the selection, ignore selections that are in
69707        a shadow tree (i.e. in a form control)
69708
697092007-01-03  Brady Eidson  <beidson@apple.com>
69710
69711        Reviewed by Mark Rowe
69712
69713        Fixes http://bugs.webkit.org/show_bug.cgi?id=12089
69714
69715        * loader/FrameLoader.cpp:
69716        (WebCore::FrameLoader::updateHistoryForCommit): Null check the documentLoader
69717
697182007-01-03  David Hyatt  <hyatt@apple.com>
69719
69720        Relax the display type restriction a little bit for generated content inside
69721        inlines.  We still don't allow block display types like we should (since this
69722        will cause a crash), but we at least handle inline-table and inline-block now.
69723
69724        Reviewed by beth
69725
69726        fast/css-generated-content/inline-display-types.html
69727
69728        * rendering/RenderContainer.cpp:
69729        (WebCore::RenderContainer::updatePseudoChildForObject):
69730
697312007-01-03  Justin Garcia  <justin.garcia@apple.com>
69732
69733        Reviewed by john
69734        
69735        <rdar://problem/4663571> Spell checking won't cross boundary of individual To-Do item
69736        
69737        No layout tests because advanceToNextMisspelling isn't yet exposed to automated tests.
69738
69739        * editing/mac/EditorMac.mm:
69740        (WebCore::Editor::advanceToNextMisspelling): Confine spell checking to
69741        the highest editable root, instead of the lowest.  Use firstEditablePosition...
69742        to look for an editable position.
69743
697442007-01-03  Beth Dakin  <bdakin@apple.com>
69745
69746        Fixing silly mistake. 
69747
69748        * platform/ContextMenu.cpp:
69749        (WebCore::ContextMenu::checkOrEnableIfNeeded): Called wrong string 
69750        function.
69751
697522007-01-03  Brady Eidson  <beidson@apple.com>
69753
69754        Reviewed by Anders
69755
69756        http://bugs.webkit.org/show_bug.cgi?id=12093 - Assertion in certain SVG layout tests
69757        I can't really think of a cleaner way to fix this then to help these SVG cases avoid
69758        the ASSERT - hopefully we can clean up the svg-as-image situation as the loader stabilizes 
69759        and we find better ways to handle it...
69760
69761        * loader/mac/DocumentLoaderMac.mm:
69762        (WebCore::DocumentLoader::urlForHistory): empty-check the url before passing it to the
69763        ASSERTing method
69764
697652007-01-03  Darin Adler  <darin@apple.com>
69766
69767        Reviewed by Adele.
69768
69769        - removed some obsolete source files
69770
69771        * CMakeLists.txt: Removed obsolete files.
69772        * WebCore.pro: Ditto.
69773        * WebCore.vcproj/WebCore/WebCore.vcproj: Ditto.
69774        * WebCore.xcodeproj/project.pbxproj: Ditto.
69775        * WebCoreSources.bkl: Ditto.
69776
69777        * html/HTMLGenericFormElement.h: Removed reference to RenderFormElement.
69778
69779        * platform/qt/ComboBoxQt.cpp: Removed.
69780        * platform/qt/LineEditQt.cpp: Removed.
69781        * platform/qt/ListBoxQt.cpp: Removed.
69782        * platform/qt/TextEditQt.cpp: Removed.
69783        * rendering/RenderFormElement.cpp: Removed.
69784        * rendering/RenderFormElement.h: Removed.
69785        * rendering/RenderLabel.cpp: Removed.
69786        * rendering/RenderLabel.h: Removed.
69787
697882007-01-03  Darin Adler  <darin@apple.com>
69789
69790        Reviewed by Hyatt.
69791
69792        - fix bug where :after content appears backwards
69793
69794        Test: fast/css-generated-content/after-order.html
69795
69796        * rendering/RenderBlock.cpp:
69797        (WebCore::isAfterContent): Added.
69798        (WebCore::RenderBlock::addChildToFlow): Use isAfterContent.
69799        * rendering/RenderInline.cpp:
69800        (WebCore::isAfterContent): Added.
69801        (WebCore::RenderInline::addChildToFlow): Use isAfterContent.
69802
698032007-01-03  David Hyatt  <hyatt@apple.com>
69804
69805        Implement box-shadow parsing... getting it all into the RenderStyle.
69806
69807        Reviewed by beth
69808
69809        * css/CSSComputedStyleDeclaration.cpp:
69810        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
69811        * css/CSSPropertyNames.in:
69812        * css/cssparser.cpp:
69813        (WebCore::CSSParser::parseValue):
69814        * css/cssstyleselector.cpp:
69815        (WebCore::CSSStyleSelector::applyProperty):
69816        * rendering/RenderStyle.cpp:
69817        (WebCore::StyleCSS3NonInheritedData::StyleCSS3NonInheritedData):
69818        (WebCore::StyleCSS3NonInheritedData::operator==):
69819        (WebCore::StyleCSS3NonInheritedData::shadowDataEquivalent):
69820        (WebCore::RenderStyle::diff):
69821        (WebCore::RenderStyle::setBoxShadow):
69822        * rendering/RenderStyle.h:
69823        (WebCore::RenderStyle::boxShadow):
69824
698252007-01-03  Beth Dakin  <bdakin@apple.com>
69826
69827        Reviewed by John.
69828
69829        Call into WebKit to get localized strings for all of the context 
69830        menu item titles.
69831
69832        * page/mac/WebCoreViewFactory.h:
69833        * platform/ContextMenu.cpp:
69834        (WebCore::createAndAppendFontSubMenu):
69835        (WebCore::createAndAppendSpellingAndGrammarSubMenu):
69836        (WebCore::createAndAppendSpellingSubMenu):
69837        (WebCore::createAndAppendSpeechSubMenu):
69838        (WebCore::createAndAppendWritingDirectionSubMenu):
69839        (WebCore::ContextMenu::populate):
69840        (WebCore::ContextMenu::checkOrEnableIfNeeded):
69841        * platform/LocalizedStrings.h:
69842        * platform/mac/LocalizedStringsMac.mm:
69843        (WebCore::contextMenuItemTagOpenLinkInNewWindow):
69844        (WebCore::contextMenuItemTagDownloadLinkToDisk):
69845        (WebCore::contextMenuItemTagCopyLinkToClipboard):
69846        (WebCore::contextMenuItemTagOpenImageInNewWindow):
69847        (WebCore::contextMenuItemTagDownloadImageToDisk):
69848        (WebCore::contextMenuItemTagCopyImageToClipboard):
69849        (WebCore::contextMenuItemTagOpenFrameInNewWindow):
69850        (WebCore::contextMenuItemTagCopy):
69851        (WebCore::contextMenuItemTagGoBack):
69852        (WebCore::contextMenuItemTagGoForward):
69853        (WebCore::contextMenuItemTagStop):
69854        (WebCore::contextMenuItemTagReload):
69855        (WebCore::contextMenuItemTagCut):
69856        (WebCore::contextMenuItemTagPaste):
69857        (WebCore::contextMenuItemTagNoGuessesFound):
69858        (WebCore::contextMenuItemTagIgnoreSpelling):
69859        (WebCore::contextMenuItemTagLearnSpelling):
69860        (WebCore::contextMenuItemTagSearchInSpotlight):
69861        (WebCore::contextMenuItemTagSearchWeb):
69862        (WebCore::contextMenuItemTagLookUpInDictionary):
69863        (WebCore::contextMenuItemTagOpenLink):
69864        (WebCore::contextMenuItemTagIgnoreGrammar):
69865        (WebCore::contextMenuItemTagSpellingMenu):
69866        (WebCore::contextMenuItemTagShowSpellingPanel):
69867        (WebCore::contextMenuItemTagCheckSpelling):
69868        (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
69869        (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
69870        (WebCore::contextMenuItemTagFontMenu):
69871        (WebCore::contextMenuItemTagShowFonts):
69872        (WebCore::contextMenuItemTagBold):
69873        (WebCore::contextMenuItemTagItalic):
69874        (WebCore::contextMenuItemTagUnderline):
69875        (WebCore::contextMenuItemTagOutline):
69876        (WebCore::contextMenuItemTagStyles):
69877        (WebCore::contextMenuItemTagShowColors):
69878        (WebCore::contextMenuItemTagSpeechMenu):
69879        (WebCore::contextMenuItemTagStartSpeaking):
69880        (WebCore::contextMenuItemTagStopSpeaking):
69881        (WebCore::contextMenuItemTagWritingDirectionMenu):
69882        (WebCore::contextMenuItemTagDefaultDirection):
69883        (WebCore::contextMenuItemTagLeftToRight):
69884        (WebCore::contextMenuItemTagRightToLeft):
69885
698862007-01-03  Brady Eidson  <beidson@apple.com>
69887
69888        Reviewed by Darin and Geoff
69889
69890        http://bugs.webkit.org/show_bug.cgi?id=12105 - Crash visiting Acid2 test page
69891        -Replace lost "free nil checking" in the WebKit->WebCore conversion of the BackForwardList
69892        -Changed ::createItem and ::createItemTree to ::createHistoryItem and ::createHistoryItemTree
69893
69894        * loader/FrameLoader.cpp:
69895        (WebCore::FrameLoader::createHistoryItem):
69896        (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
69897        (WebCore::FrameLoader::createHistoryItemTree):
69898        (WebCore::FrameLoader::updateHistoryForInternalLoad):
69899        * loader/FrameLoader.h:
69900
699012007-01-03  Anders Carlsson  <acarlsson@apple.com>
69902
69903        Reviewed by Geoff.
69904        
69905        Allow plugin elements to handle off events to their widgets.
69906        
69907        * html/HTMLPlugInElement.cpp:
69908        (WebCore::HTMLPlugInElement::defaultEventHandler):
69909        * html/HTMLPlugInElement.h:
69910        * platform/Widget.h:
69911        (WebCore::Widget::handleEvent):
69912
699132007-01-03  Lars Knoll <lars@trolltech.com>
69914
69915        Fix the Qt build
69916
69917        * WebCore.pro:
69918        * history/qt/PageCacheQt.cpp: Added.
69919        (WebCore::PageCache::close):
69920        * loader/qt/DocumentLoaderQt.cpp:
69921        (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
69922        (WebCore::DocumentLoader::urlForHistory):
69923        * loader/qt/FrameLoaderQt.cpp:
69924        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
69925        (WebCore::FrameLoader::didFirstLayout):
69926        (WebCore::FrameLoader::load):
69927        (WebCore::FrameLoader::opened):
69928        (WebCore::FrameLoader::dataURLBaseFromRequest):
69929        (WebCore::FrameLoader::applyUserAgent):
69930        * platform/network/qt/ResourceHandleQt.cpp:
69931        (WebCore::ResourceHandle::loadsBlocked):
69932        (WebCore::ResourceHandle::willLoadFromCache):
69933
699342007-01-02  Brady Eidson  <beidson@apple.com>
69935
69936        Reviewed extensively and repeatedly by Darin
69937
69938        <rdar://problem/4887137> - WebCore Back/Forward Cache
69939
69940        * WebCore.exp:
69941        * WebCore.xcodeproj/project.pbxproj:
69942
69943        * bridge/mac/WebCorePageState.h: Removed.
69944        * bridge/mac/WebCorePageState.mm: Removed.
69945
69946        * history/BackForwardList.cpp: Added - This largely emulates the design of WebBackForwardList
69947        (WebCore::BackForwardList::BackForwardList):
69948        (WebCore::BackForwardList::~BackForwardList):
69949        (WebCore::BackForwardList::addItem):
69950        (WebCore::BackForwardList::goBack):
69951        (WebCore::BackForwardList::goForward):
69952        (WebCore::BackForwardList::goToItem):
69953        (WebCore::BackForwardList::backItem):
69954        (WebCore::BackForwardList::currentItem):
69955        (WebCore::BackForwardList::forwardItem):
69956        (WebCore::BackForwardList::backListWithLimit):
69957        (WebCore::BackForwardList::forwardListWithLimit):
69958        (WebCore::BackForwardList::capacity):
69959        (WebCore::BackForwardList::setCapacity):
69960        (WebCore::BackForwardList::setPageCacheSize):
69961        (WebCore::BackForwardList::pageCacheSize):
69962        (WebCore::BackForwardList::clearPageCache):
69963        (WebCore::BackForwardList::usesPageCache):
69964        (WebCore::BackForwardList::backListCount):
69965        (WebCore::BackForwardList::forwardListCount):
69966        (WebCore::BackForwardList::itemAtIndex):
69967        (WebCore::BackForwardList::entries):
69968        (WebCore::BackForwardList::close):
69969        (WebCore::BackForwardList::closed):
69970        (WebCore::BackForwardList::removeItem):
69971        (WebCore::BackForwardList::containsItem):
69972        (WebCore::BackForwardList::setDefaultPageCacheSize):
69973        (WebCore::BackForwardList::defaultPageCacheSize):
69974        * history/BackForwardList.h: Added.
69975
69976        * history/HistoryItem.cpp: Added - This largely emulates the design of WebBackForwardList
69977        (WebCore::defaultNotifyHistoryItemChanged):
69978        (WebCore::HistoryItem::HistoryItem):
69979        (WebCore::HistoryItem::~HistoryItem):
69980        (WebCore::HistoryItem::copy):
69981        (WebCore::HistoryItem::setHasPageCache):
69982        (WebCore::HistoryItem::retainIconInDatabase):
69983        (WebCore::HistoryItem::urlString):
69984        (WebCore::HistoryItem::originalURLString):
69985        (WebCore::HistoryItem::title):
69986        (WebCore::HistoryItem::alternateTitle):
69987        (WebCore::HistoryItem::icon):
69988        (WebCore::HistoryItem::lastVisitedTime):
69989        (WebCore::HistoryItem::url):
69990        (WebCore::HistoryItem::originalURL):
69991        (WebCore::HistoryItem::target):
69992        (WebCore::HistoryItem::parent):
69993        (WebCore::HistoryItem::setAlternateTitle):
69994        (WebCore::HistoryItem::setURLString):
69995        (WebCore::HistoryItem::setURL):
69996        (WebCore::HistoryItem::setOriginalURLString):
69997        (WebCore::HistoryItem::setTitle):
69998        (WebCore::HistoryItem::setTarget):
69999        (WebCore::HistoryItem::setParent):
70000        (WebCore::HistoryItem::setLastVisitedTime):
70001        (WebCore::HistoryItem::visitCount):
70002        (WebCore::HistoryItem::setVisitCount):
70003        (WebCore::HistoryItem::scrollPoint):
70004        (WebCore::HistoryItem::setScrollPoint):
70005        (WebCore::HistoryItem::clearScrollPoint):
70006        (WebCore::HistoryItem::setDocumentState):
70007        (WebCore::HistoryItem::documentState):
70008        (WebCore::HistoryItem::clearDocumentState):
70009        (WebCore::HistoryItem::isTargetItem):
70010        (WebCore::HistoryItem::setIsTargetItem):
70011        (WebCore::HistoryItem::alwaysAttemptToUsePageCache):
70012        (WebCore::HistoryItem::setAlwaysAttemptToUsePageCache):
70013        (WebCore::HistoryItem::addChildItem):
70014        (WebCore::HistoryItem::childItemWithName):
70015        (WebCore::HistoryItem::recurseToFindTargetItem):
70016        (WebCore::HistoryItem::targetItem):
70017        (WebCore::HistoryItem::pageCache):
70018        (WebCore::HistoryItem::children):
70019        (WebCore::HistoryItem::hasChildren):
70020        (WebCore::HistoryItem::formContentType):
70021        (WebCore::HistoryItem::formReferrer):
70022        (WebCore::HistoryItem::rssFeedReferrer):
70023        (WebCore::HistoryItem::setRSSFeedReferrer):
70024        (WebCore::HistoryItem::setFormInfoFromRequest):
70025        (WebCore::HistoryItem::formData):
70026        (WebCore::HistoryItem::mergeAutoCompleteHints):
70027        (WebCore::HistoryItem::hasPageCache):
70028        (WebCore::timer): Function to manage the global release timer
70029        (WebCore::pendingPageCacheToRelease): Function to manage the global queue of caches to be released
70030        (WebCore::HistoryItem::releasePageCache):
70031        (WebCore::closeObjectsInPendingPageCaches):
70032        (WebCore::HistoryItem::releaseAllPendingPageCaches):
70033        (WebCore::HistoryItem::scheduleRelease):
70034        (WebCore::HistoryItem::print):
70035        * history/HistoryItem.h: Added.
70036        * history/mac/HistoryItemMac.mm: Added.
70037        (WebCore::HistoryItem::viewState): In the future we need a platform agnostic way to manage the view state
70038        (WebCore::HistoryItem::setViewState):
70039        (WebCore::HistoryItem::getTransientProperty): Transient properties are, for now, only a Mac concept
70040        (WebCore::HistoryItem::setTransientProperty):
70041
70042        * history/HistoryItemTimer.cpp: Added
70043        (WebCore::HistoryItemTimer::HistoryItemTimer): We need a specific class to be the history item timer because
70044        WebCore::Timers only work when you have an instance of an object, but the caches pending release is a static concept
70045        (WebCore::HistoryItemTimer::isActive):
70046        (WebCore::HistoryItemTimer::schedule):
70047        (WebCore::HistoryItemTimer::invalidate):
70048        (WebCore::HistoryItemTimer::callReleasePageCache):
70049        * history/HistoryItemTimer.h: Added.
70050
70051        * history/PageCache.cpp Added - This is a class that contains the fields that used to be in an NSDictionary in WebKit
70052        (WebCore::PageCache::PageCache):
70053        (WebCore::PageCache::setPageState):
70054        (WebCore::PageCache::~PageCache):
70055        (WebCore::PageCache::pageState):
70056        (WebCore::PageCache::setDocumentLoader):
70057        (WebCore::PageCache::documentLoader):
70058        (WebCore::PageCache::setTimeStamp):
70059        (WebCore::PageCache::setTimeStampToNow):
70060        (WebCore::PageCache::timeStamp):
70061        * history/PageCache.h: Added.
70062        * history/mac/PageCacheMac.mm: Added.
70063        (WebCore::PageCache::close):
70064        (WebCore::PageCache::setDocumentView): In the future we need a platform agnostic way to manage the documentView
70065        (WebCore::PageCache::documentView):
70066
70067        * loader/DocumentLoader.cpp:
70068        (WebCore::DocumentLoader::loadFromPageCache):
70069        (WebCore::DocumentLoader::setLoadingFromPageCache): 
70070        (WebCore::DocumentLoader::isLoadingFromPageCache):
70071        (WebCore::DocumentLoader::originalURL):
70072        (WebCore::DocumentLoader::requestURL):
70073        (WebCore::DocumentLoader::responseURL):
70074        (WebCore::DocumentLoader::responseMIMEType):
70075        * loader/DocumentLoader.h:
70076
70077        * loader/FrameLoader.cpp: Responsibilities previously scattered in WebKit but concentrated in WebView and WebFrame 
70078          are now here, where they should be.
70079        (WebCore::FrameLoader::clear):
70080        (WebCore::FrameLoader::restoreDocumentState):
70081        (WebCore::FrameLoader::goBackOrForward):
70082        (WebCore::FrameLoader::provisionalLoadStarted):
70083        (WebCore::FrameLoader::canCachePage):
70084        (WebCore::FrameLoader::commitProvisionalLoad):
70085        (WebCore::FrameLoader::transitionToCommitted):
70086        (WebCore::FrameLoader::open):
70087        (WebCore::FrameLoader::didFirstLayout):
70088        (WebCore::FrameLoader::dispatchDidChangeLocationWithinPage):
70089        (WebCore::FrameLoader::dispatchDidFinishLoadToClient):
70090        (WebCore::FrameLoader::updateGlobalHistoryForStandardLoad): Marked for usage in future GlobalHistory (uses client for now)
70091        (WebCore::FrameLoader::updateGlobalHistoryForReload): Ditto
70092        (WebCore::FrameLoader::shouldGoToHistoryItem):
70093        (WebCore::FrameLoader::addExtraFieldsToRequest):
70094        (WebCore::FrameLoader::addHistoryItemForFragmentScroll):
70095        (WebCore::FrameLoader::loadProvisionalItemFromPageCache):
70096        (WebCore::FrameLoader::createPageCache):
70097        (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
70098        (WebCore::FrameLoader::createItem):
70099        (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
70100        (WebCore::FrameLoader::createItemTree):
70101        (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
70102        (WebCore::FrameLoader::restoreScrollPositionAndViewState):
70103        (WebCore::FrameLoader::purgePageCache):
70104        (WebCore::FrameLoader::invalidateCurrentItemPageCache):
70105        (WebCore::FrameLoader::saveDocumentState):
70106        (WebCore::FrameLoader::loadItem):
70107        (WebCore::FrameLoader::urlsMatchItem):
70108        (WebCore::FrameLoader::goToItem):
70109        (WebCore::FrameLoader::recursiveGoToItem):
70110        (WebCore::FrameLoader::childFramesMatchItem):
70111        (WebCore::FrameLoader::updateHistoryForStandardLoad):
70112        (WebCore::FrameLoader::updateHistoryForClientRedirect):
70113        (WebCore::FrameLoader::updateHistoryForBackForwardNavigation):
70114        (WebCore::FrameLoader::updateHistoryForReload):
70115        (WebCore::FrameLoader::updateHistoryForInternalLoad):
70116        (WebCore::FrameLoader::updateHistoryForCommit):
70117        (WebCore::FrameLoader::saveDocumentAndScrollState):
70118        (WebCore::FrameLoader::currentHistoryItem):
70119        (WebCore::FrameLoader::previousHistoryItem):
70120        (WebCore::FrameLoader::provisionalHistoryItem):
70121        (WebCore::FrameLoader::setCurrentHistoryItem):
70122        (WebCore::FrameLoader::setPreviousHistoryItem):
70123        (WebCore::FrameLoader::setProvisionalHistoryItem):
70124        * loader/FrameLoader.h:
70125
70126        * loader/FrameLoaderClient.h:
70127
70128        * loader/mac/DocumentLoaderMac.mm:
70129        (WebCore::DocumentLoader::DocumentLoader):
70130        (WebCore::DocumentLoader::getResponseRefreshAndModifiedHeaders):
70131        (WebCore::DocumentLoader::commitIfReady):
70132        (WebCore::DocumentLoader::urlForHistory):
70133
70134        * loader/mac/FrameLoaderMac.mm:
70135        (WebCore::FrameLoader::load):
70136        (WebCore::FrameLoader::startLoading):
70137        (WebCore::FrameLoader::receivedMainResourceError):
70138        (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
70139        (WebCore::FrameLoader::opened):
70140        (WebCore::FrameLoader::dataURLBaseFromRequest):
70141        (WebCore::FrameLoader::didChangeTitle):
70142        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
70143        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
70144
70145        * page/FrameTree.cpp:
70146        (WebCore::FrameTree::removeChild):
70147
70148        * page/Page.cpp: Transfered a handful of concepts from WebView
70149        (WebCore::Page::Page):
70150        (WebCore::Page::~Page):
70151        (WebCore::Page::backForwardList):
70152        (WebCore::Page::goBack):
70153        (WebCore::Page::goForward):
70154        (WebCore::Page::goToItem):
70155        * page/Page.h:
70156
70157        * page/PageState.h:
70158        * page/mac/FrameMac.h:
70159        * page/mac/FrameMac.mm:
70160        * page/mac/WebCoreFrameBridge.h:
70161        * page/mac/WebCoreFrameBridge.mm:
70162
70163        * platform/KURL.cpp:
70164        (WebCore::KURL::print):  Added debug only method for debugging convenience
70165        * platform/KURL.h:
70166
70167        * platform/Logging.cpp:
70168        (WebCore::): Added some logging channels
70169        * platform/Logging.h:
70170
70171        * platform/PlatformString.h:
70172        (WebCore::nsStringNilIfEmpty): Added for WebKit use
70173
70174        * platform/SystemTime.h: Added userIdleTime()
70175
70176        * platform/graphics/svg/SVGImage.cpp:
70177        * platform/graphics/svg/SVGImageEmptyClients.h: Updated for new FrameLoaderClient methods
70178        (WebCore::SVGEmptyFrameLoaderClient::setDocumentViewFromPageCache):
70179        (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForStandardLoad):
70180        (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistoryForReload):
70181        (WebCore::SVGEmptyFrameLoaderClient::shouldGoToHistoryItem):
70182        (WebCore::SVGEmptyFrameLoaderClient::saveScrollPositionAndViewStateToItem):
70183        (WebCore::SVGEmptyFrameLoaderClient::saveDocumentViewToPageCache):
70184        (WebCore::SVGEmptyFrameLoaderClient::canCachePage):
70185        (WebCore::SVGEmptyEditorClient::~SVGEmptyEditorClient):
70186
70187        * platform/mac/LoggingMac.mm:
70188        (WebCore::InitializeLoggingChannelsIfNecessary):
70189
70190        * platform/mac/SystemTimeMac.cpp:
70191        (WebCore::userIdleTime):
70192
70193        * platform/mac/WebCoreSystemInterface.h: Added wkSecondsSinceLastInput for use in userIdleTime
70194        * platform/mac/WebCoreSystemInterface.mm:
70195
70196        * platform/network/FormData.cpp:
70197        (WebCore::FormData::FormData):
70198        (WebCore::FormData::copy):
70199        * platform/network/FormData.h:
70200
70201        * platform/network/ResourceHandle.h:
70202        * platform/network/mac/ResourceHandleMac.mm:
70203        (WebCore::ResourceHandle::willLoadFromCache): For "are you sure you want to resubmit?" nag
70204
70205        * platform/qt/TemporaryLinkStubs.cpp:
70206        (WebCore::userIdleTime):
70207        * rendering/RenderPart.h:
70208
702092007-01-02  Darin Adler  <darin@apple.com>
70210
70211        Rubber stamped by Mitz.
70212
70213        Rename isRenderSVGContainer to isSVGContainer.
70214
70215        * platform/graphics/ImageBuffer.cpp:
70216        (WebCore::ImageBuffer::renderSubtreeToImage):
70217        * rendering/RenderObject.cpp:
70218        (WebCore::RenderObject::containingBlock):
70219        * rendering/RenderObject.h:
70220        (WebCore::RenderObject::isSVGContainer):
70221        * rendering/RenderSVGContainer.cpp:
70222        (WebCore::RenderSVGContainer::viewportTransform):
70223        * rendering/RenderSVGContainer.h:
70224        (WebCore::RenderSVGContainer::isSVGContainer):
70225        * rendering/RenderTreeAsText.cpp:
70226        (WebCore::write):
70227
702282007-01-03  Nikolas Zimmermann  <zimmermann@kde.org>
70229
70230        Reviewed by Mitz.
70231
70232        Rename isKCanvasContainer to isRenderSVGContainer.
70233
70234        * platform/graphics/ImageBuffer.cpp:
70235        (WebCore::ImageBuffer::renderSubtreeToImage):
70236        * rendering/RenderObject.cpp:
70237        (WebCore::RenderObject::containingBlock):
70238        * rendering/RenderObject.h:
70239        (WebCore::RenderObject::isRenderSVGContainer):
70240        * rendering/RenderSVGContainer.cpp:
70241        (WebCore::RenderSVGContainer::viewportTransform):
70242        * rendering/RenderSVGContainer.h:
70243        (WebCore::RenderSVGContainer::isRenderSVGContainer):
70244        * rendering/RenderTreeAsText.cpp:
70245        (WebCore::write):
70246
702472007-01-02  Beth Dakin  <bdakin@apple.com>
70248
70249        Reviewed by Darin.
70250
70251        Fix assertion failure with WebCore context menus by getting "Copy 
70252        Image" item added in.
70253
70254        * platform/ContextMenu.cpp:
70255        (WebCore::ContextMenu::populate): Check if the image url is a local 
70256        file or if we have an image in the cache.
70257
702582007-01-02  Sam Weinig  <sam@webkit.org>
70259
70260        Reviewed by Anders.
70261
70262        Patch for http://bugs.webkit.org/show_bug.cgi?id=12072
70263        select with align attribute should not affect contained text
70264
70265        Don't map align for select elements.
70266
70267        Test: fast/forms/select-align.html
70268
70269        * html/HTMLSelectElement.cpp:
70270        (WebCore::HTMLSelectElement::parseMappedAttribute):
70271
702722007-01-02  Sam Weinig  <sam@webkit.org>
70273
70274        Reviewed by Mitz.
70275
70276        Patch for http://bugs.webkit.org/show_bug.cgi?id=12071
70277        button with align attribute should not affect contained text
70278
70279        Don't map align for button elements.
70280
70281        Test: fast/forms/button-align.html
70282
70283        * html/HTMLButtonElement.cpp:
70284        (WebCore::HTMLButtonElement::parseMappedAttribute):
70285
702862007-01-02  Sam Weinig  <sam@webkit.org>
70287
70288        Reviewed by Mitz and Anders.
70289
70290        Patch for http://bugs.webkit.org/show_bug.cgi?id=7075
70291        textarea with align=right should not cause contained text to 
70292        be right-justified
70293
70294        Don't map align for textarea elements.
70295
70296        Test: fast/forms/textarea-align.html
70297
70298        * html/HTMLTextAreaElement.cpp:
70299        (WebCore::HTMLTextAreaElement::parseMappedAttribute):
70300
703012007-01-02  Eric Seidel  <eric@webkit.org>
70302
70303        Reviewed by mitz.
70304
70305        Implement SVGSVGElement::deselectAll()
70306
70307        * ksvg2/svg/SVGAnimationElement.h:
70308        (WebCore::SVGAnimationElement::updateLastValueWithCurrent): add comment
70309        * ksvg2/svg/SVGSVGElement.cpp:
70310        (WebCore::SVGSVGElement::deselectAll): implement
70311        (WebCore::SVGSVGElement::setCurrentTime): add comment about bug
70312        * ksvg2/svg/SVGSVGElement.idl: remove unnecessary comment
70313
703142007-01-02  Sam Weinig  <sam@webkit.org>
70315
70316        Reviewed by Darin.
70317
70318        Patch for http://bugs.webkit.org/show_bug.cgi?id=3360
70319        align="right" on a text input aligns the input field to the right
70320
70321        Don't map align if input type is not 'image'.
70322
70323        Test: fast/forms/input-align-image.html
70324        Test: fast/forms/input-align.html
70325
70326        * WebCore.xcodeproj/project.pbxproj:
70327        * html/HTMLInputElement.cpp:
70328        (WebCore::HTMLInputElement::setInputType):
70329        (WebCore::HTMLInputElement::mapToEntry):
70330        (WebCore::HTMLInputElement::parseMappedAttribute):
70331
703322007-01-02  Nikolas Zimmermann  <zimmermann@kde.org>
70333
70334        Reviewed by Eric.
70335
70336        Fixes: http://bugs.webkit.org/show_bug.cgi?id=12013
70337        Fixes: http://bugs.webkit.org/show_bug.cgi?id=11980
70338        Partly fixes: http://bugs.webkit.org/show_bug.cgi?id=6000 (pattern/gradient recursion works now)
70339
70340        Fixed testcases:
70341        coords-units-01-b.svg (<pattern> in objectBoundingBoxMode were broken.)
70342        pattern-in-defs.svg (clip pattern size against target size, to avoid excessive mallocs)
70343        js-update-pattern.svg (live updating really works now!)
70344        js-late-gradient-and-object-creation.svg (objectBoundingBoxMode gradients-on-text work now)
70345        js-late-gradient-creation.svg (same)
70346
70347        Added testcases:
70348        js-late-pattern-and-object-creation.svg (objectBoundingBoxMode patterns-on-text work now)
70349        js-late-pattern-creation.svg (same)
70350        gradient-cycle-detection.svg (tests that cyclic gradients are ignored)
70351        gradient-deep-referencing.svg
70352        pattern-cycle-detection.svg (tests that cyclic patterns are ignored)
70353        pattern-deep-referencing.svg
70354
70355        Rewrite gradient & pattern code, fixing all known bugs & regressions.
70356
70357        -> Remove SVGResourceListener completly (the ugly resourceNotification() hack is gone now)
70358
70359        -> Make patterns operate in all possible combinations of patternUnits / patternContentunits
70360           The SVGPaintServerPattern now asks the SVGPatternElement to build the pattern tile, passing
70361           the target object's bbox rectangle -> objectBoundingBox calculations can be done, so SVGPaintServerPattern
70362           itself doesn't need to know anything about "bounding box mode". Same could be done for gradients.
70363
70364        -> SVGLength::valueAsPercentage() returns again fractional values, saves some "/ 100.0" statements.
70365
70366        -> Deep references (gradientA -> gradientB -> gradientC...) work now. Previously only one reference worked.
70367           Adding GradientAttributes.h / PatternAttributes.h helper structures for the property collection.
70368           Cycle detection is implemented and won't kill us anymore :-)
70369
70370        JS updates on gradients/patterns only cause one repaint of the client's now. Gradient drawing
70371        does not cause the target object to be redrawn immediately afterwards anymore.
70372
70373        * WebCore.xcodeproj/project.pbxproj:
70374        * ksvg2/misc/KCanvasRenderingStyle.cpp:
70375        (WebCore::KSVGPainterFactory::fillPaintServer):
70376        (WebCore::KSVGPainterFactory::strokePaintServer):
70377        * ksvg2/misc/KCanvasRenderingStyle.h:
70378        * ksvg2/misc/SVGDocumentExtensions.cpp:
70379        (WebCore::SVGDocumentExtensions::addPendingResource):
70380        (WebCore::SVGDocumentExtensions::isPendingResource):
70381        (WebCore::SVGDocumentExtensions::removePendingResource):
70382        * ksvg2/misc/SVGDocumentExtensions.h:
70383        * ksvg2/svg/GradientAttributes.h: Added.
70384        (WebCore::GradientAttributes::GradientAttributes):
70385        (WebCore::GradientAttributes::spreadMethod):
70386        (WebCore::GradientAttributes::boundingBoxMode):
70387        (WebCore::GradientAttributes::gradientTransform):
70388        (WebCore::GradientAttributes::stops):
70389        (WebCore::GradientAttributes::setSpreadMethod):
70390        (WebCore::GradientAttributes::setBoundingBoxMode):
70391        (WebCore::GradientAttributes::setGradientTransform):
70392        (WebCore::GradientAttributes::setStops):
70393        (WebCore::GradientAttributes::hasSpreadMethod):
70394        (WebCore::GradientAttributes::hasBoundingBoxMode):
70395        (WebCore::GradientAttributes::hasGradientTransform):
70396        (WebCore::GradientAttributes::hasStops):
70397        * ksvg2/svg/LinearGradientAttributes.h: Added.
70398        (WebCore::LinearGradientAttributes::LinearGradientAttributes):
70399        (WebCore::LinearGradientAttributes::x1):
70400        (WebCore::LinearGradientAttributes::y1):
70401        (WebCore::LinearGradientAttributes::x2):
70402        (WebCore::LinearGradientAttributes::y2):
70403        (WebCore::LinearGradientAttributes::setX1):
70404        (WebCore::LinearGradientAttributes::setY1):
70405        (WebCore::LinearGradientAttributes::setX2):
70406        (WebCore::LinearGradientAttributes::setY2):
70407        (WebCore::LinearGradientAttributes::hasX1):
70408        (WebCore::LinearGradientAttributes::hasY1):
70409        (WebCore::LinearGradientAttributes::hasX2):
70410        (WebCore::LinearGradientAttributes::hasY2):
70411        * ksvg2/svg/PatternAttributes.h: Added.
70412        (WebCore::PatternAttributes::PatternAttributes):
70413        (WebCore::PatternAttributes::x):
70414        (WebCore::PatternAttributes::y):
70415        (WebCore::PatternAttributes::width):
70416        (WebCore::PatternAttributes::height):
70417        (WebCore::PatternAttributes::boundingBoxMode):
70418        (WebCore::PatternAttributes::boundingBoxModeContent):
70419        (WebCore::PatternAttributes::patternTransform):
70420        (WebCore::PatternAttributes::patternContentElement):
70421        (WebCore::PatternAttributes::setX):
70422        (WebCore::PatternAttributes::setY):
70423        (WebCore::PatternAttributes::setWidth):
70424        (WebCore::PatternAttributes::setHeight):
70425        (WebCore::PatternAttributes::setBoundingBoxMode):
70426        (WebCore::PatternAttributes::setBoundingBoxModeContent):
70427        (WebCore::PatternAttributes::setPatternTransform):
70428        (WebCore::PatternAttributes::setPatternContentElement):
70429        (WebCore::PatternAttributes::hasX):
70430        (WebCore::PatternAttributes::hasY):
70431        (WebCore::PatternAttributes::hasWidth):
70432        (WebCore::PatternAttributes::hasHeight):
70433        (WebCore::PatternAttributes::hasBoundingBoxMode):
70434        (WebCore::PatternAttributes::hasBoundingBoxModeContent):
70435        (WebCore::PatternAttributes::hasPatternTransform):
70436        (WebCore::PatternAttributes::hasPatternContentElement):
70437        * ksvg2/svg/RadialGradientAttributes.h: Added.
70438        (WebCore::RadialGradientAttributes::RadialGradientAttributes):
70439        (WebCore::RadialGradientAttributes::cx):
70440        (WebCore::RadialGradientAttributes::cy):
70441        (WebCore::RadialGradientAttributes::r):
70442        (WebCore::RadialGradientAttributes::fx):
70443        (WebCore::RadialGradientAttributes::fy):
70444        (WebCore::RadialGradientAttributes::setCx):
70445        (WebCore::RadialGradientAttributes::setCy):
70446        (WebCore::RadialGradientAttributes::setR):
70447        (WebCore::RadialGradientAttributes::setFx):
70448        (WebCore::RadialGradientAttributes::setFy):
70449        (WebCore::RadialGradientAttributes::hasCx):
70450        (WebCore::RadialGradientAttributes::hasCy):
70451        (WebCore::RadialGradientAttributes::hasR):
70452        (WebCore::RadialGradientAttributes::hasFx):
70453        (WebCore::RadialGradientAttributes::hasFy):
70454        * ksvg2/svg/SVGGradientElement.cpp:
70455        (WebCore::SVGGradientElement::notifyAttributeChange):
70456        (WebCore::SVGGradientElement::canvasResource):
70457        (WebCore::SVGGradientElement::buildStops):
70458        (WebCore::SVGGradientElement::insertedIntoDocument):
70459        * ksvg2/svg/SVGGradientElement.h:
70460        * ksvg2/svg/SVGLength.cpp:
70461        (WebCore::SVGLength::valueAsPercentage):
70462        * ksvg2/svg/SVGLinearGradientElement.cpp:
70463        (WebCore::SVGLinearGradientElement::buildGradient):
70464        (WebCore::SVGLinearGradientElement::collectGradientProperties):
70465        * ksvg2/svg/SVGLinearGradientElement.h:
70466        * ksvg2/svg/SVGLocatable.cpp:
70467        (WebCore::SVGLocatable::getScreenCTM):
70468        * ksvg2/svg/SVGPatternElement.cpp:
70469        (WebCore::SVGPatternElement::SVGPatternElement):
70470        (WebCore::SVGPatternElement::buildPattern):
70471        (WebCore::SVGPatternElement::notifyAttributeChange):
70472        (WebCore::SVGPatternElement::canvasResource):
70473        (WebCore::SVGPatternElement::insertedIntoDocument):
70474        (WebCore::SVGPatternElement::collectPatternProperties):
70475        * ksvg2/svg/SVGPatternElement.h:
70476        * ksvg2/svg/SVGRadialGradientElement.cpp:
70477        (WebCore::SVGRadialGradientElement::buildGradient):
70478        (WebCore::SVGRadialGradientElement::collectGradientProperties):
70479        * ksvg2/svg/SVGRadialGradientElement.h:
70480        * platform/graphics/svg/SVGPaintServerGradient.cpp:
70481        (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
70482        (WebCore::SVGPaintServerGradient::externalRepresentation):
70483        * platform/graphics/svg/SVGPaintServerGradient.h:
70484        (WebCore::):
70485        * platform/graphics/svg/SVGPaintServerLinearGradient.cpp:
70486        (WebCore::SVGPaintServerLinearGradient::SVGPaintServerLinearGradient):
70487        * platform/graphics/svg/SVGPaintServerLinearGradient.h:
70488        * platform/graphics/svg/SVGPaintServerPattern.cpp:
70489        (WebCore::SVGPaintServerPattern::SVGPaintServerPattern):
70490        (WebCore::SVGPaintServerPattern::patternBoundaries):
70491        (WebCore::SVGPaintServerPattern::setPatternBoundaries):
70492        (WebCore::SVGPaintServerPattern::setTile):
70493        (WebCore::SVGPaintServerPattern::externalRepresentation):
70494        * platform/graphics/svg/SVGPaintServerPattern.h:
70495        * platform/graphics/svg/SVGPaintServerRadialGradient.cpp:
70496        (WebCore::SVGPaintServerRadialGradient::SVGPaintServerRadialGradient):
70497        * platform/graphics/svg/SVGPaintServerRadialGradient.h:
70498        * platform/graphics/svg/SVGResource.cpp:
70499        (WebCore::SVGResource::invalidate):
70500        (WebCore::SVGResource::repaintClients):
70501        * platform/graphics/svg/SVGResource.h:
70502        * platform/graphics/svg/SVGResourceListener.h:
70503        * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
70504        (WebCore::cgGradientCallback):
70505        (WebCore::CGShadingRefForRadialGradient):
70506        (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
70507        (WebCore::SVGPaintServerGradient::updateQuartzGradientCache):
70508        (WebCore::SVGPaintServerGradient::teardown):
70509        (WebCore::SVGPaintServerGradient::renderPath):
70510        (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
70511        (WebCore::SVGPaintServerGradient::setup):
70512        (WebCore::SVGPaintServerGradient::invalidate):
70513        * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp:
70514        (WebCore::SVGPaintServerPattern::setup):
70515        (WebCore::SVGPaintServerPattern::teardown):
70516        * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp:
70517        (WebCore::SVGPaintServerLinearGradient::setup):
70518        * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp:
70519        (WebCore::SVGPaintServerPattern::setup):
70520        * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp:
70521        (WebCore::SVGPaintServerRadialGradient::setup):
70522
705232007-01-02  Zack Rusin  <zack@kde.org>
70524
70525        Compilation fix. File names are case-sensitive.
70526
70527        * ksvg2/svg/SVGPathSegList.cpp:
70528
705292007-01-02  Zack Rusin  <zack@kde.org>
70530
70531        Compilation fixes for the Qt port.
70532
70533        * WebCore.pro:
70534        * platform/qt/FrameQt.cpp:
70535        (WebCore::FrameQt::bindingRootObject):
70536        (WebCore::FrameQt::addPluginRootObject):
70537
705382007-01-02  Eric Seidel  <eric@webkit.org>
70539
70540        Reviewed by rwlbuis.
70541
70542        Refactor more animation code for better sharing between SVGAnimate*Element classes.
70543        - replace handleEndCondition with resetValues() and updateLastValueWithCurrent()
70544        - move initialTransform() function down into SVGTimer (eventually to AnimationCompositor)
70545        Add non-functional (only parses) SVGAnimateMotionElement
70546        Improve precision of getPointAtLength calculations and add support for "getNormalAtLength" functionality (needed for rotate='auto' support in animateMotion)
70547        Move add getSegmentAtLength functionality to SVGPathSegList, move toPathData into SVGPathSegList as well.
70548        Add SVGAnimationElement::hasValidTarget() for future better/simpler ASSERT checking
70549        change transformMatrix() to currentTransform() to match AffineTransform class name
70550
70551        * WebCore.xcodeproj/project.pbxproj:
70552        * ksvg2/misc/SVGTimer.cpp:
70553        (WebCore::SVGTimer::animationsByElement):
70554        (WebCore::baseValueTransformList):
70555        (WebCore::SVGTimer::applyAnimations):
70556        * ksvg2/svg/SVGAnimateColorElement.cpp:
70557        (WebCore::SVGAnimateColorElement::updateLastValueWithCurrent):
70558        * ksvg2/svg/SVGAnimateColorElement.h:
70559        * ksvg2/svg/SVGAnimateMotionElement.cpp: Added.
70560        (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
70561        (WebCore::SVGAnimateMotionElement::~SVGAnimateMotionElement):
70562        (WebCore::SVGAnimateMotionElement::hasValidTarget): added.
70563        (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
70564        (WebCore::SVGAnimateMotionElement::animationPath): fetch path from <mpath> or d attribute
70565        (WebCore::SVGAnimateMotionElement::updateCurrentValue):
70566        (WebCore::SVGAnimateMotionElement::handleStartCondition):
70567        (WebCore::SVGAnimateMotionElement::applyAnimationToValue):
70568        * ksvg2/svg/SVGAnimateMotionElement.h: Added.
70569        (WebCore::SVGAnimateMotionElement::contextElement):
70570        (WebCore::SVGAnimateMotionElement::):
70571        * ksvg2/svg/SVGAnimateTransformElement.cpp:
70572        (WebCore::SVGAnimateTransformElement::hasValidTarget): added.
70573        (WebCore::SVGAnimateTransformElement::storeInitialValue):
70574        (WebCore::SVGAnimateTransformElement::updateCurrentValue):
70575        (WebCore::SVGAnimateTransformElement::updateLastValueWithCurrent):
70576        (WebCore::SVGAnimateTransformElement::applyAnimationToValue):
70577        (WebCore::SVGAnimateTransformElement::currentTransform):
70578        * ksvg2/svg/SVGAnimateTransformElement.h:
70579        * ksvg2/svg/SVGAnimationElement.cpp:
70580        (WebCore::SVGAnimationElement::hasValidTarget): added.
70581        (WebCore::SVGAnimationElement::parseMappedAttribute):
70582        (WebCore::SVGAnimationElement::isAdditive):
70583        (WebCore::SVGAnimationElement::isAccumulated):
70584        (WebCore::SVGAnimationElement::handleTimerEvent):
70585        * ksvg2/svg/SVGAnimationElement.h:
70586        (WebCore::SVGAnimationElement::updateLastValueWithCurrent):
70587        (WebCore::SVGAnimationElement::resetValues):
70588        * ksvg2/svg/SVGPathElement.cpp:
70589        (WebCore::SVGPathElement::getPointAtLength):
70590        (WebCore::SVGPathElement::getPathSegAtLength):
70591        (WebCore::SVGPathElement::parseMappedAttribute):
70592        (WebCore::SVGPathElement::toPathData):
70593        * ksvg2/svg/SVGPathSegList.cpp:
70594        (WebCore::SVGPathSegList::getPathSegAtLength): added.
70595        (WebCore::SVGPathSegList::toPathData): added.
70596        * ksvg2/svg/SVGPathSegList.h:
70597        * ksvg2/svg/svgtags.in: add animateMotion
70598        * platform/graphics/Path.cpp:
70599        (WebCore::pathLengthApplierFunction): add support for TraversalNormalAngleAtLength
70600        * platform/graphics/PathTraversalState.cpp:
70601        (WebCore::curveLength): support higher precision pointAtLength calculations, and add normalAtLength support
70602        (WebCore::PathTraversalState::quadraticBezierTo):
70603        (WebCore::PathTraversalState::cubicBezierTo):
70604        * platform/graphics/PathTraversalState.h:
70605        (WebCore::PathTraversalState::): add TraversalNormalAngleAtLength mode
70606
706072007-01-01  Mitz Pettel  <mitz@webkit.org>
70608
70609        Reviewed by Darin.
70610
70611        - WebCore changes for http://bugs.webkit.org/show_bug.cgi?id=11849
70612          REGRESSION (r18182): Google Calendar is broken (a regular expression containing a null character is not parsed correctly)
70613
70614        * platform/RegularExpression.cpp:
70615        (WebCore::RegularExpression::Private::compile): Changed to not null-terminate
70616        the pattern string and instead pass its length to pcre_compile.
70617
706182007-01-01  Mitz Pettel  <mitz@webkit.org>
70619
70620        Reviewed by Darin.
70621
70622        - fix http://bugs.webkit.org/show_bug.cgi?id=11359
70623          Incomplete repaint of table cell's collapsed border when changing only the cell
70624
70625        Test: fast/repaint/table-cell-collapsed-border.html
70626
70627        * rendering/RenderTable.h:
70628        Added needsSectionRecalc() accessor.
70629        * rendering/RenderTableCell.cpp:
70630        (WebCore::RenderTableCell::getAbsoluteRepaintRect): Overloaded to add the
70631        outer half of any collapsed borders. This function checks the cell's borders'
70632        widths but also the widths of the adjoining cells' borders, since they can
70633        contribute to the length of this cell's borders perpendicular to them, making
70634        such a border overflow the cell in both dimensions.
70635        (WebCore::RenderTableCell::borderLeft): Split the collapsing borders case off to
70636        borderHalfLeft().
70637        (WebCore::RenderTableCell::borderRight): Ditto.
70638        (WebCore::RenderTableCell::borderTop): Ditto.
70639        (WebCore::RenderTableCell::borderBottom): Ditto.
70640        (WebCore::RenderTableCell::borderHalfLeft): Added. Takes an 'outer' boolean
70641        parameter. When true, this function returns the width of the part of the border
70642        that is outside the cell (different from the inner width when the total width is odd).
70643        (WebCore::RenderTableCell::borderHalfRight): Ditto.
70644        (WebCore::RenderTableCell::borderHalfTop): Ditto.
70645        (WebCore::RenderTableCell::borderHalfBottom): Ditto.
70646        * rendering/RenderTableCell.h:
70647
706482007-01-01  David Kilzer  <ddkilzer@webkit.org>
70649
70650        WebCore.vcproj change reviewed by Darin.  Additional build files updated by ddkilzer.
70651
70652        * CMakeLists.txt: Removed RenderLineEdit.cpp.
70653        * WebCore.vcproj/WebCore/WebCore.vcproj: Removed RenderLineEdit.cpp and RenderLineEdit.h.
70654        * WebCoreSources.bkl: Removed RenderLineEdit.cpp.
70655
706562007-01-01  Mitz Pettel  <mitz@webkit.org>
70657
70658        Reviewed by Mark Rowe.
70659
70660        - fix http://bugs.webkit.org/show_bug.cgi?id=12042
70661          Assertion failure in WebCore::RenderObject::drawBorder
70662
70663        Test: fast/borders/outline-offset-min-assert.html
70664
70665        * rendering/RenderObject.cpp:
70666        (WebCore::RenderObject::paintOutline): Bail out if the width or height is
70667        smaller than twice the outline inset.
70668        
706692007-01-01  Mark Rowe  <bdash@webkit.org>
70670
70671        Reviewed by Eric.
70672
70673        http://bugs.webkit.org/show_bug.cgi?id=12061
70674        Bug 12061: Crash in WebCore::Shared<WebCore::StringImpl>::deref
70675
70676        * rendering/RenderStyle.cpp:
70677        (WebCore::ContentData::clearContent): Reset _contentType to CONTENT_NONE to ensure repeated calls to clearContent
70678        do not result in derefing deallocated members.
70679
706802007-01-01  Eric Seidel  <eric@webkit.org>
70681
70682        Reviewed by andersca.
70683
70684        Begin pushing code down into SVGAnimateElement
70685
70686        * ksvg2/svg/SVGAnimateColorElement.cpp:
70687        (WebCore::SVGAnimateColorElement::handleStartCondition):
70688        * ksvg2/svg/SVGAnimateColorElement.h:
70689        * ksvg2/svg/SVGAnimateElement.h:
70690        (WebCore::SVGAnimateElement::updateCurrentValue):
70691        (WebCore::SVGAnimateElement::handleStartCondition):
70692        (WebCore::SVGAnimateElement::handleEndCondition):
70693        * ksvg2/svg/SVGAnimateTransformElement.cpp:
70694        (WebCore::SVGAnimateTransformElement::handleStartCondition):
70695        * ksvg2/svg/SVGAnimateTransformElement.h:
70696        * ksvg2/svg/SVGAnimationElement.cpp:
70697        (WebCore::SVGAnimationElement::handleTimerEvent):
70698        * ksvg2/svg/SVGAnimationElement.h:
70699        * ksvg2/svg/SVGSetElement.cpp:
70700        (WebCore::SVGSetElement::updateCurrentValue):
70701        (WebCore::SVGSetElement::handleStartCondition):
70702        (WebCore::SVGSetElement::handleEndCondition):
70703        * ksvg2/svg/SVGSetElement.h:
70704
707052007-01-01  Eric Seidel  <eric@webkit.org>
70706
70707        Reviewed by andersca.
70708
70709        Add static function SVGColor::colorFromRGBColorString to allow parsing Colors from SVG color strings w/o creating an SVGColor object.
70710
70711        * ksvg2/svg/SVGAnimateColorElement.cpp:
70712        (WebCore::SVGAnimateColorElement::storeInitialValue): use colorFromRGBColorString
70713        (WebCore::SVGAnimateColorElement::startIfNecessary): use colorFromRGBColorString
70714        * ksvg2/svg/SVGColor.cpp:
70715        (WebCore::SVGColor::setRGBColor): use colorFromRGBColorString
70716        (WebCore::parseNumberOrPercent): new color parsing helper
70717        (WebCore::SVGColor::colorFromRGBColorString): cleaned up version of setRGBColor parsing logic
70718        * ksvg2/svg/SVGColor.h:
70719
707202007-01-01  Eric Seidel  <eric@webkit.org>
70721
70722        Reviewed by andersca.
70723
70724        Split handleTimerEvent logic into separate functions in preparation for moving down into SVGAnimationElement
70725
70726        * ksvg2/svg/SVGAnimateColorElement.cpp:
70727        (WebCore::SVGAnimateColorElement::storeInitialValue):
70728        (WebCore::SVGAnimateColorElement::resetValues):
70729        (WebCore::SVGAnimateColorElement::updateCurrentValue):
70730        (WebCore::SVGAnimateColorElement::startIfNecessary):
70731        (WebCore::SVGAnimateColorElement::handleEndCondition):
70732        (WebCore::SVGAnimateColorElement::handleTimerEvent):
70733        * ksvg2/svg/SVGAnimateColorElement.h:
70734        * ksvg2/svg/SVGAnimateTransformElement.cpp:
70735        (WebCore::SVGAnimateTransformElement::storeInitialValue):
70736        (WebCore::SVGAnimateTransformElement::resetValues):
70737        (WebCore::SVGAnimateTransformElement::updateCurrentValue):
70738        (WebCore::SVGAnimateTransformElement::startIfNecessary):
70739        (WebCore::SVGAnimateTransformElement::handleEndCondition):
70740        (WebCore::SVGAnimateTransformElement::handleTimerEvent):
70741        * ksvg2/svg/SVGAnimateTransformElement.h:
70742
707432007-01-01  Rob Buis  <buis@kde.org>
70744
70745        Reviewed by Eric.
70746
70747        Simple cleanups, removing unused color table, copyright and include guard fixes.
70748
70749        * ksvg2/svg/SVGColor.cpp:
70750        * ksvg2/svg/SVGColor.h:
70751
707522007-01-01  Eric Seidel  <eric@webkit.org>
70753
70754        Reviewed by andersca.
70755
70756        More animation code cleanup.
70757
70758        * ksvg2/svg/SVGAnimateColorElement.cpp:
70759        (WebCore::SVGAnimateColorElement::handleTimerEvent):
70760        * ksvg2/svg/SVGAnimateTransformElement.cpp:
70761        (WebCore::SVGAnimateTransformElement::handleTimerEvent):
70762        * ksvg2/svg/SVGAnimationElement.cpp:
70763        (WebCore::SVGAnimationElement::SVGAnimationElement):
70764        (WebCore::SVGAnimationElement::connectedToTimer):
70765        (WebCore::SVGAnimationElement::connectTimer):
70766        (WebCore::SVGAnimationElement::disconnectTimer):
70767        (WebCore::SVGAnimationElement::updateForElapsedSeconds):
70768        * ksvg2/svg/SVGAnimationElement.h:
70769        * ksvg2/svg/SVGSetElement.cpp:
70770        (WebCore::SVGSetElement::handleTimerEvent):
70771        * ksvg2/svg/SVGSetElement.h:
70772
707732007-01-01  Eric Seidel  <eric@webkit.org>
70774
70775        Reviewed by mitz.
70776
70777        More clean-up to animation code.
70778
70779        * ksvg2/svg/SVGAnimateColorElement.cpp:
70780        (WebCore::SVGAnimateColorElement::handleTimerEvent):
70781        * ksvg2/svg/SVGAnimateTransformElement.cpp:
70782        (WebCore::SVGAnimateTransformElement::handleTimerEvent):
70783        (WebCore::SVGAnimateTransformElement::parseTransformValue):
70784        (WebCore::SVGAnimateTransformElement::calculateRotationFromMatrix):
70785
707862007-01-01  Eric Seidel  <eric@webkit.org>
70787
70788        Reviewed by olliej.
70789
70790        Begin pushing more animation logic out of SVGTimer and into the SVGAnimate* classes.
70791        
70792        * ksvg2/misc/SVGTimer.cpp:
70793        (WebCore::SVGTimer::animationsByElement): add comment
70794        (WebCore::SVGTimer::notifyAll): push logic into SVGAnimte* classes
70795        * ksvg2/svg/SVGAnimateColorElement.cpp:
70796        (WebCore::SVGAnimateColorElement::applyAnimationToValue): added.
70797        * ksvg2/svg/SVGAnimateColorElement.h:
70798        * ksvg2/svg/SVGAnimateElement.cpp:
70799        * ksvg2/svg/SVGAnimateTransformElement.cpp:
70800        (WebCore::SVGAnimateTransformElement::applyAnimationToValue): added.
70801        * ksvg2/svg/SVGAnimateTransformElement.h:
70802        * ksvg2/svg/SVGAnimationElement.cpp:
70803        (WebCore::calculateTimePercentage): logic moved from SVGTimer
70804        (WebCore::SVGAnimationElement::updateForElapsedSeconds): logic moved from SVGTimer
70805        * ksvg2/svg/SVGAnimationElement.h:
70806        * ksvg2/svg/SVGTransformList.cpp:
70807        (SVGTransformList::concatenate): fixed spacing
70808
708092007-01-01  Eric Seidel  <eric@webkit.org>
70810
70811        Reviewed by olliej.
70812
70813        Split out animationsByElement() logic in preparation for adding AnimationCompositor class
70814        Add addColorsAndClamp helper (since adding and clamping is the common case)
70815
70816        * ksvg2/misc/SVGTimer.cpp:
70817        (WebCore::SVGTimer::animationsByElement): split out from notifyAll
70818        (WebCore::SVGTimer::notifyAll):
70819        * ksvg2/misc/SVGTimer.h:
70820        * ksvg2/svg/SVGAnimateColorElement.cpp:
70821        (WebCore::SVGAnimateColorElement::addColorsAndClamp): added.
70822        * ksvg2/svg/SVGAnimateColorElement.h:
70823
708242006-12-31  Eric Seidel  <eric@webkit.org>
70825
70826        Reviewed by olliej.
70827
70828        Split KSVGTimeScheduler into SVGTimer and TimeScheduler.
70829        (Basic clean-up before re-working animation system)
70830
70831        * WebCore.xcodeproj/project.pbxproj:
70832        * ksvg2/misc/KSVGTimeScheduler.cpp: Removed.
70833        * ksvg2/misc/KSVGTimeScheduler.h: Removed.
70834        * ksvg2/misc/SVGTimer.cpp: Added.
70835        (WebCore::SVGTimer::SVGTimer):
70836        (WebCore::SVGTimer::calculateTimePercentage):
70837        (WebCore::SVGTimer::notifyAll):
70838        * ksvg2/misc/SVGTimer.h: Added.
70839        * ksvg2/misc/TimeScheduler.cpp: Added.
70840        (WebCore::TimeScheduler::TimeScheduler):
70841
708422006-12-31  Eric Seidel  <eric@webkit.org>
70843
70844        Reviewed by olliej.
70845
70846        Re-enable animateTransform (now that SVGList is fixed)
70847        (Things are only "less broken" not totally fixed yet.)
70848
70849        * ksvg2/misc/KSVGTimeScheduler.cpp:
70850        (WebCore::SVGTimer::notifyAll):
70851
708522006-12-31  Mitz Pettel  <mitz@webkit.org>
70853
70854        Reviewed by Hyatt.
70855
70856        - http://bugs.webkit.org/show_bug.cgi?id=12049
70857          RenderBlock::calcMinMaxWidth() should not examine children of fixed-width blocks
70858
70859        No test possible (no change to functionality).
70860
70861        * rendering/RenderBlock.cpp:
70862        (WebCore::RenderBlock::calcMinMaxWidth): Call calc{Inline,Block}MinMaxWidth()
70863        only if their result is needed.
70864
70865== Rolled over to ChangeLog-2006-12-31 ==
70866