2008-06-30 Anders Carlsson <andersca@apple.com>
[webkit/qt.git] / WebCore / ChangeLog
blob8c5ba167e43728dc8b41641c947961d3623afee0
1 2008-06-30  Anders Carlsson  <andersca@apple.com>
3         Reviewed by Adam.
5         Add PluginMainThreadScheduler, a singleton which is responsible for scheduling plug-in 
6         callbacks on the main thread. Use this to implement NPN_PluginThreadAsyncCall on Windows.
7         
8         * WebCore.vcproj/WebCore.vcproj:
9         Add PluginMainThreadScheduler.{cpp|h}
10         
11         * plugins/PluginMainThreadScheduler.cpp: Added.
12         * plugins/PluginMainThreadScheduler.h: Added.
14         * plugins/PluginView.cpp:
15         (WebCore::PluginView::start):
16         Register with the thread scheduler.
17         
18         * plugins/npapi.cpp:
19         (NPN_PluginThreadAsyncCall):
20         Call the thread scheduler.
21         
22         * plugins/win/PluginPackageWin.cpp:
23         (WebCore::PluginPackage::load):
24         Initialize the NPN_PluginThreadAsyncCall callback.
25         
26         * plugins/win/PluginViewWin.cpp:
27         (WebCore::PluginView::stop):
28         Unregister with the scheduler. This makes sure that we won't try to deliver callbacks
29         after the plug-in has been destroyed.
31 2008-07-01  Adam Roben  <aroben@apple.com>
33         Roll out r34913, as it broke the Windows build due to bad casting
35         r34913 introduced code that assigned pointers-to-member from a derived
36         class into a base class pointer-to-member type (e.g., assigned a void
37         (SVGUseElement::*)() into a void (SVGElement::*)()). This is bad
38         because it could allow us to call SVGUseElement member functions on a
39         different SVGElement-derived class. MSVC rightly flagged this as an
40         error.
42         Rubberstamped by Anders Carlsson.
44 2008-07-01  Darin Adler  <darin@apple.com>
46         - fix build
48         * bindings/scripts/CodeGeneratorJS.pm: Fix warnings that indicate this was
49         not working propertly.
51 2008-07-01  Dan Bernstein  <mitz@apple.com>
53         Reviewed by Darin Adler.
55         - fix <rdar://problem/6045893> REGRESSION: Leak in WebCore::HTMLCanvasElement::createPlatformImage() const
57         * html/CanvasRenderingContext2D.cpp:
58         (WebCore::CanvasRenderingContext2D::createPattern):
60 2008-07-01  Sam Weinig  <sam@webkit.org>
62         Reviewed by Darin Adler.
64         Split JSCell and JSNumberCell class declarations out of JSValue.h
66         * ForwardingHeaders/kjs/JSNumberCell.h: Added.
67         * bindings/scripts/CodeGeneratorJS.pm:
68         * bridge/c/c_instance.cpp:
70 2008-07-01  chris fleizach  <cfleizach@apple.com>
72         Reviewed by Beth Dakin
74         <rdar://problem/6041580> REGRESSION: AX: AXSize of radio buttons is 0,0
76         Test: accessibility/radio-button-checkbox-size.html
78         * page/AccessibilityRenderObject.cpp:
79         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
81 2008-07-01  Dan Bernstein  <mitz@apple.com>
83         Reviewed by Antti Koivisto.
85         - fix SVG pointer-events layout test failures
87         * css/SVGCSSParser.cpp:
88         (WebCore::CSSParser::parseSVGValue):
90 2008-07-01  Nikolas Zimmermann  <zimmermann@kde.org>
92         Reviewed by Antti.
94         Fixes: https://bugs.webkit.org/show_bug.cgi?id=19841
95         Fix two small problems in the gradient & pattern code.
97         Added 12 new layout tests: svg/dynamic-updates/SVGLinearGradientElement*.html
99         * svg/SVGLinearGradientElement.cpp:
100         (WebCore::SVGLinearGradientElement::collectGradientProperties): Compare against already computed bounding box information, instead of querying attributes.
101         * svg/SVGPatternElement.cpp:
102         (WebCore::SVGPatternElement::collectPatternProperties): Ditto.
103         * svg/SVGRadialGradientElement.cpp:
104         (WebCore::SVGRadialGradientElement::collectGradientProperties): Ditto.
105         (WebCore::SVGRadialGradientElement::svgAttributeChanged): 'fxAttr' updating wasn't handled. Copy'n'paste error.
107 2008-07-01  Simon Hausmann  <hausmann@webkit.org>
109         Fix the build, include SVGTransformList.h instead of
110         SVGTransformlist.h
112         * svg/SVGGradientElement.h:
114 2008-07-01  Alexey Proskuryakov  <ap@webkit.org>
116         Reviewed by Antti.
118         <rdar://problem/6033080> REGRESSION: Some CH characters display as garbage on webpage for
119         the first time.
121         Test: fast/encoding/preload-encoding.html
123         * html/PreloadScanner.cpp:
124         (WebCore::PreloadScanner::tokenize): Reset charset when entering a tag, not just when
125         starting a load.
127 2008-07-01  Nikolas Zimmermann  <zimmermann@kde.org>
129         Reviewed by Antti & Eric.
131         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17779 (SVG 1.1 Errata demands "SVG JavaScript Liveness" support)
133         SVG Errata states: "All SVG DOM objects that directly correspond to an
134         attribute, e.g. the SVGAnimatedLength 'ry' in an SVGRectElement, are live. This
135         means that any changes made to the attribute are immediately reflected in the
136         corresponding SVG DOM object." (see linked URL on bug report)
138         Until now only XML -> SVG DOM changes took affect, aka. changing the 'rx' attribute of a <rect>
139         element resuted in changes when accessing 'rx' through SVG DOM (rx.baseVal.value).
141         Add a new synchronization layer to handle SVG DOM -> XML changes.
143         Global macro change #1: ANIMATED_PROPERTY_FORWARD_DECLARATIONS contains the class name where it's defined as first parameter.
144         Global macro change #2: Add ANIMATED_PROPERTY_START_DECLARATIONS to all direct base-classes.
145         Global macro change #3: Rename ANIMATED_PROPERTY_DEFINITIONS to ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED for refcounted types (ie. SVGTransformList*).
147         Added test: svg/custom/svg-xml-dom-sync.html
148         Fixed test: svg/hixie/dynamic/005-broken.xml (renamed to 005.xml)
150         * dom/Element.cpp:
151         (WebCore::Element::Element): Initialize the two new bits.
152         (WebCore::Element::attributes): Add hooks to call into SVG attribute synchronization code, wrapped in ENABLE(SVG) blocks.
153         (WebCore::Element::getAttribute): Ditto.
154         (WebCore::Element::hasAttributes): Ditto.
155         * dom/Element.h: Add two bits: m_synchronizedSVGAttributes/m_synchronizingSVGAttribute, to track synchronization status.
156         (WebCore::Element::updateAnimatedSVGAttribute): New virtual function, handling the synronication, similar to updateStyleAttribute.
157         * dom/NamedAttrMap.h: Make addAttribute/removeAttribute protected, from use within the ANIMATED_* macros.
158         * svg/SVGAElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
159         (WebCore::SVGAElement::contextElement): Return non-const value.
160         * svg/SVGAltGlyphElement.h:
161         (WebCore::SVGAltGlyphElement::contextElement): Ditto.
162         * svg/SVGAnimateElement.h:
163         (WebCore::SVGAnimateElement::contextElement): Ditto.
164         * svg/SVGAnimateMotionElement.h:
165         (WebCore::SVGAnimateMotionElement::contextElement): Ditto.
166         * svg/SVGAnimateTransformElement.h:
167         (WebCore::SVGAnimateTransformElement::contextElement): Ditto.
168         * svg/SVGAnimatedTemplate.h: Add toString() conversion to all SVGAnimated* classes
169         (WebCore::SVGAnimatedTemplate::toString):
170         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
171         (WebCore::lookupOrCreateWrapper):
172         (WebCore::SVGAnimatedAngle::SVGAnimatedAngle): 
173         (WebCore::SVGAnimatedAngle::toString):
174         (WebCore::SVGAnimatedBoolean::SVGAnimatedBoolean):
175         (WebCore::SVGAnimatedBoolean::toString):
176         (WebCore::SVGAnimatedEnumeration::SVGAnimatedEnumeration):
177         (WebCore::SVGAnimatedEnumeration::toString):
178         (WebCore::SVGAnimatedInteger::SVGAnimatedInteger):
179         (WebCore::SVGAnimatedInteger::toString):
180         (WebCore::SVGAnimatedLength::SVGAnimatedLength):
181         (WebCore::SVGAnimatedLength::toString):
182         (WebCore::SVGAnimatedLengthList::SVGAnimatedLengthList):
183         (WebCore::SVGAnimatedLengthList::toString):
184         (WebCore::SVGAnimatedNumber::SVGAnimatedNumber):
185         (WebCore::SVGAnimatedNumber::toString):
186         (WebCore::SVGAnimatedNumberList::SVGAnimatedNumberList):
187         (WebCore::SVGAnimatedNumberList::toString):
188         (WebCore::SVGAnimatedPreserveAspectRatio::SVGAnimatedPreserveAspectRatio):
189         (WebCore::SVGAnimatedPreserveAspectRatio::toString):
190         (WebCore::SVGAnimatedRect::SVGAnimatedRect):
191         (WebCore::SVGAnimatedRect::toString):
192         (WebCore::SVGAnimatedString::SVGAnimatedString):
193         (WebCore::SVGAnimatedString::toString):
194         (WebCore::SVGAnimatedTransformList::SVGAnimatedTransformList):
195         (WebCore::SVGAnimatedTransformList::toString):
196         (WebCore::SVGAnimatedType::SVGAnimatedType):
197         * svg/SVGAnimationElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
198         * svg/SVGCircleElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
199         (WebCore::SVGCircleElement::contextElement): Return non-const value.
200         * svg/SVGClipPathElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
201         (WebCore::SVGClipPathElement::contextElement): Return non-const value.
202         * svg/SVGComponentTransferFunctionElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
203         * svg/SVGComponentTransferFunctionElement.h: Add ANIMATED_PROPERTY_START_DECLARATIONS, as this class is a base class.
204         * svg/SVGCursorElement.cpp: Wrap SVGLength objects in SVGLength() statements.
205         (WebCore::SVGCursorElement::SVGCursorElement):
206         * svg/SVGCursorElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS. Add ANIMATED_PROPERTY_START_DECLARATIONS.
207         (WebCore::SVGCursorElement::contextElement): Return non-const value.
208         * svg/SVGDefsElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
209         (WebCore::SVGDefsElement::contextElement): Return non-const value.
210         * svg/SVGElement.cpp:
211         (WebCore::SVGElement::updateAnimatedSVGAttribute): Override virtual function from Element, to handle SVG<->XML DOM synchronization.
212         (WebCore::SVGElement::setSynchronizedSVGAttributes):
213         * svg/SVGElement.h: Add helper class "StoredTypeWithDirtyFlag".
214         (StoredTypeWithDirtyFlag::StoredTypeWithDirtyFlag): Tracks a type and a flag indicating that SVG<->XML DOM synchronization has to be done.
215         (StoredTypeWithDirtyFlag::operator=):
216         (StoredTypeWithDirtyFlag::operator==):
217         (StoredTypeWithDirtyFlag::operator!=):
218         (StoredTypeWithDirtyFlag::operator StoredType):
219         (WebCore::SVGElement::invokeSVGPropertySynchronizer): New set of functions taking care of invoking the update handlers.
220         (WebCore::SVGElement::invokeAllSVGPropertySynchronizers): Ditto.
221         (WebCore::SVGElement::addSVGPropertySynchronizer): Ditto.
222         * svg/SVGEllipseElement.cpp: Wrap SVGLength objects in SVGLength() statements.
223         (WebCore::SVGEllipseElement::SVGEllipseElement):
224         * svg/SVGEllipseElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
225         (WebCore::SVGEllipseElement::contextElement): Return non-const value.
226         * svg/SVGExternalResourcesRequired.h: Change contextElement() to return a non-const value.
227         * svg/SVGFEBlendElement.h:
228         (WebCore::SVGFEBlendElement::contextElement): Return non-const value.
229         * svg/SVGFEColorMatrixElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
230         * svg/SVGFEColorMatrixElement.h:
231         (WebCore::SVGFEColorMatrixElement::contextElement): Return non-const value.
232         * svg/SVGFEComponentTransferElement.h:
233         (WebCore::SVGFEComponentTransferElement::contextElement): Return non-const value.
234         * svg/SVGFECompositeElement.h:
235         (WebCore::SVGFECompositeElement::contextElement): Return non-const value.
236         * svg/SVGFEDiffuseLightingElement.h:
237         (WebCore::SVGFEDiffuseLightingElement::contextElement): Return non-const value.
238         * svg/SVGFEDisplacementMapElement.h:
239         (WebCore::SVGFEDisplacementMapElement::contextElement): Return non-const value.
240         * svg/SVGFEFloodElement.h:
241         (WebCore::SVGFEFloodElement::contextElement): Return non-const value.
242         * svg/SVGFEGaussianBlurElement.h:
243         (WebCore::SVGFEGaussianBlurElement::contextElement): Return non-const value.
244         * svg/SVGFEImageElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
245         * svg/SVGFEImageElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
246         (WebCore::SVGFEImageElement::contextElement): Return non-const value.
247         * svg/SVGFELightElement.h: Add ANIMATED_PROPERTY_START_DECLARATIONS, as this is a base class.
248         * svg/SVGFEMergeElement.h:
249         (WebCore::SVGFEMergeElement::contextElement): Return non-const value.
250         * svg/SVGFEMergeNodeElement.h: Add ANIMATED_PROPERTY_START_DECLARATIONS, as this is a base class.
251         (WebCore::SVGFEMergeNodeElement::contextElement): Return non-const value.
252         * svg/SVGFEOffsetElement.h:
253         (WebCore::SVGFEOffsetElement::contextElement): Return non-const value.
254         * svg/SVGFESpecularLightingElement.h:
255         (WebCore::SVGFESpecularLightingElement::contextElement): Return non-const value.
256         * svg/SVGFETileElement.h:
257         (WebCore::SVGFETileElement::contextElement): Return non-const value.
258         * svg/SVGFETurbulenceElement.h:
259         (WebCore::SVGFETurbulenceElement::contextElement): Return non-const value.
260         * svg/SVGFilterElement.cpp: Wrap SVGLength objects in SVGLength() statements.
261         (WebCore::SVGFilterElement::SVGFilterElement):
262         * svg/SVGFilterElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
263         (WebCore::SVGFilterElement::contextElement): Return non-const value.
264         * svg/SVGFilterPrimitiveStandardAttributes.cpp: Wrap SVGLength objects in SVGLength() statements.
265         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
266         * svg/SVGFilterPrimitiveStandardAttributes.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
267         (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement): Return non-const value.
268         * svg/SVGFitToViewBox.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
269         * svg/SVGFitToViewBox.h: Change contextElement() to return a non-const value.
270         * svg/SVGFontElement.h:
271         (WebCore::SVGFontElement::contextElement): Return non-const value.
272         * svg/SVGForeignObjectElement.cpp: Wrap SVGLength objects in SVGLength() statements.
273         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
274         * svg/SVGForeignObjectElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
275         (WebCore::SVGForeignObjectElement::contextElement): Return non-const value.
276         * svg/SVGGElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
277         (WebCore::SVGGElement::contextElement): Return non-const value.
278         * svg/SVGGradientElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
279         * svg/SVGGradientElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
280         * svg/SVGImageElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change. Wrap SVGLength objects in SVGLength() statements.
281         (WebCore::SVGImageElement::SVGImageElement):
282         * svg/SVGImageElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
283         (WebCore::SVGImageElement::contextElement): Return non-const value.
284         * svg/SVGLengthList.cpp:
285         (WebCore::SVGLengthList::valueAsString): Add new function converting SVG values to strings.
286         * svg/SVGLengthList.h:
287         * svg/SVGLineElement.cpp: Wrap SVGLength objects in SVGLength() statements.
288         (WebCore::SVGLineElement::SVGLineElement):
289         * svg/SVGLineElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
290         (WebCore::SVGLineElement::contextElement): Return non-const value.
291         * svg/SVGLinearGradientElement.cpp:
292         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement): Wrap SVGLength objects in SVGLength() statements.
293         (WebCore::SVGLinearGradientElement::collectGradientProperties):
294         * svg/SVGLinearGradientElement.h:
295         (WebCore::SVGLinearGradientElement::contextElement): Return non-const value.
296         * svg/SVGMPathElement.h:
297         (WebCore::SVGMPathElement::contextElement): Return non-const value.
298         * svg/SVGMarkerElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change. Wrap SVGLength objects in SVGLength() statements.
299         (WebCore::SVGMarkerElement::SVGMarkerElement):
300         * svg/SVGMarkerElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
301         (WebCore::SVGMarkerElement::contextElement): Return non-const value.
302         * svg/SVGMaskElement.cpp: Wrap SVGLength objects in SVGLength() statements.
303         (WebCore::SVGMaskElement::SVGMaskElement):
304         * svg/SVGMaskElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
305         (WebCore::SVGMaskElement::contextElement): Return non-const value.
306         * svg/SVGNumberList.cpp:
307         (WebCore::SVGNumberList::valueAsString): Add new function converting SVG values to strings.
308         * svg/SVGNumberList.h:
309         * svg/SVGPathElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
310         (WebCore::SVGPathElement::contextElement): Return non-const value.
311         * svg/SVGPatternElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change. Wrap SVGLength objects in SVGLength() statements.
312         (WebCore::SVGPatternElement::SVGPatternElement):
313         (WebCore::SVGPatternElement::collectPatternProperties):
314         * svg/SVGPatternElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
315         (WebCore::SVGPatternElement::contextElement): Return non-const value.
316         * svg/SVGPolyElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
317         (WebCore::SVGPolyElement::contextElement): Return non-const value.
318         * svg/SVGPreserveAspectRatio.cpp:
319         (WebCore::SVGPreserveAspectRatio::valueAsString): Add new function converting SVG values to strings.
320         * svg/SVGPreserveAspectRatio.h:
321         * svg/SVGRadialGradientElement.cpp: Wrap SVGLength objects in SVGLength() statements.
322         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
323         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
324         (WebCore::SVGRadialGradientElement::collectGradientProperties):
325         * svg/SVGRadialGradientElement.h:
326         (WebCore::SVGRadialGradientElement::contextElement): Return non-const value.
327         * svg/SVGRectElement.cpp: Wrap SVGLength objects in SVGLength() statements.
328         (WebCore::SVGRectElement::SVGRectElement):
329         * svg/SVGRectElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
330         (WebCore::SVGRectElement::contextElement): Return non-const value.
331         * svg/SVGSVGElement.cpp: Wrap SVGLength objects in SVGLength() statements.
332         (WebCore::SVGSVGElement::SVGSVGElement):
333         (WebCore::SVGSVGElement::currentView): Pass non-const SVGSVGElement* object to SVGViewSpec.
334         * svg/SVGSVGElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
335         (WebCore::SVGSVGElement::contextElement): Return non-const value.
336         * svg/SVGScriptElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
337         (WebCore::SVGScriptElement::contextElement): Return non-const value.
338         * svg/SVGStyledElement.h: Add ANIMATED_PROPERTY_START_DECLARATIONS, as this is a base class.
339         * svg/SVGStyledTransformableElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
340         * svg/SVGStyledTransformableElement.h:
341         * svg/SVGSwitchElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
342         (WebCore::SVGSwitchElement::contextElement): Return non-const value.
343         * svg/SVGSymbolElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
344         (WebCore::SVGSymbolElement::contextElement): Return non-const value.
345         * svg/SVGTRefElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
346         (WebCore::SVGTRefElement::contextElement): Return non-const value.
347         * svg/SVGTSpanElement.h:
348         (WebCore::SVGTSpanElement::contextElement): Return non-const value.
349         * svg/SVGTextContentElement.cpp: Wrap SVGLength objects in SVGLength() statements.
350         (WebCore::SVGTextContentElement::SVGTextContentElement):
351         * svg/SVGTextContentElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
352         * svg/SVGTextElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
353         * svg/SVGTextElement.h:
354         (WebCore::SVGTextElement::contextElement): Return non-const value.
355         * svg/SVGTextPathElement.cpp: Wrap SVGLength objects in SVGLength() statements.
356         (WebCore::SVGTextPathElement::SVGTextPathElement):
357         * svg/SVGTextPathElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
358         (WebCore::SVGTextPathElement::contextElement): Return non-const value.
359         * svg/SVGTextPositioningElement.cpp: Apply ANIMATED_PROPERTY_DEFINITIONS_REFCOUNTED change.
360         * svg/SVGTextPositioningElement.h:
361         * svg/SVGTransformList.cpp:
362         (SVGTransformList::valueAsString): Add new function converting SVG values to strings.
363         * svg/SVGTransformList.h:
364         * svg/SVGURIReference.h: Change contextElement() to return a non-const value.
365         * svg/SVGUseElement.cpp: Wrap SVGLength objects in SVGLength() statements.
366         (WebCore::SVGUseElement::SVGUseElement):
367         * svg/SVGUseElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
368         (WebCore::SVGUseElement::contextElement): Return non-const value.
369         * svg/SVGViewElement.h: Apply global macro change for ANIMATED_PROPERTY_FORWARD_DECLARATIONS.
370         (WebCore::SVGViewElement::contextElement): Return non-const value.
371         * svg/SVGViewSpec.cpp:
372         (WebCore::SVGViewSpec::SVGViewSpec): Pass non-const context element in constructor.
373         (WebCore::SVGViewSpec::contextElement): Return non-const value.
374         * svg/SVGViewSpec.h:
376 2008-07-01  Alex Mathews  <possessedpenguinbob@gmail.com>
378         Reviewed by Nikolas Zimmermann.
380         Class name changes for SVG Light Effect files. The class names that changed :
382         SVGLightSource -> LightSource
383         SVGDistantLightSource -> DistantLightSource
384         SVGPointLightSource -> PointLightSource
385         SVGSpotLightSource -> SpotLightSource
387         Every other file that is changed is just propagating the class name changes to
388         dependent files.
390         * svg/SVGFEDiffuseLightingElement.cpp:
391         (WebCore::SVGFEDiffuseLightingElement::updateLights):
392         * svg/SVGFEDistantLightElement.cpp:
393         (WebCore::SVGFEDistantLightElement::lightSource):
394         * svg/SVGFEDistantLightElement.h:
395         * svg/SVGFELightElement.h:
396         * svg/SVGFEPointLightElement.cpp:
397         (WebCore::SVGFEPointLightElement::lightSource):
398         * svg/SVGFEPointLightElement.h:
399         * svg/SVGFESpecularLightingElement.cpp:
400         (WebCore::SVGFESpecularLightingElement::updateLights):
401         * svg/SVGFESpotLightElement.cpp:
402         (WebCore::SVGFESpotLightElement::lightSource):
403         * svg/SVGFESpotLightElement.h:
404         * svg/graphics/filters/SVGDistantLightSource.h:
405         (WebCore::DistantLightSource::DistantLightSource):
406         (WebCore::DistantLightSource::azimuth):
407         (WebCore::DistantLightSource::elevation):
408         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
409         (WebCore::SVGFEDiffuseLighting::lightSource):
410         (WebCore::SVGFEDiffuseLighting::setLightSource):
411         * svg/graphics/filters/SVGFEDiffuseLighting.h:
412         * svg/graphics/filters/SVGFESpecularLighting.cpp:
413         (WebCore::SVGFESpecularLighting::lightSource):
414         (WebCore::SVGFESpecularLighting::setLightSource):
415         * svg/graphics/filters/SVGFESpecularLighting.h:
416         * svg/graphics/filters/SVGLightSource.cpp:
417         (WebCore::PointLightSource::externalRepresentation):
418         (WebCore::SpotLightSource::externalRepresentation):
419         (WebCore::DistantLightSource::externalRepresentation):
420         * svg/graphics/filters/SVGLightSource.h:
421         (WebCore::):
422         (WebCore::LightSource::LightSource):
423         (WebCore::LightSource::~LightSource):
424         (WebCore::LightSource::type):
425         * svg/graphics/filters/SVGPointLightSource.h:
426         (WebCore::PointLightSource::PointLightSource):
427         (WebCore::PointLightSource::position):
428         * svg/graphics/filters/SVGSpotLightSource.h:
429         (WebCore::SpotLightSource::SpotLightSource):
430         (WebCore::SpotLightSource::position):
431         (WebCore::SpotLightSource::direction):
432         (WebCore::SpotLightSource::specularExponent):
433         (WebCore::SpotLightSource::limitingConeAngle):
434         * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
435         (WebCore::SVGFEDiffuseLighting::getCIFilter):
436         * svg/graphics/filters/cg/SVGFEHelpersCg.h:
437         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
438         (WebCore::getLightVectors):
439         * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
440         (WebCore::SVGFESpecularLighting::getCIFilter):
442 2008-07-01  Alp Toker  <alp@nuanti.com>
444         Rubber-stamped by Holger.
446         autotools cleanup: move some GTK+-specific sources from libwebcore to
447         libwebcoregtk.
449         * GNUmakefile.am:
451 2008-07-01  Dan Bernstein  <mitz@apple.com>
453         Reviewed by Oliver Hunt.
455         - fix the non-SVG build
457         * css/CSSValueKeywords.in: Added 'all'.
458         * css/SVGCSSValueKeywords.in: Removed 'all'.
460 2008-07-01  Simon Hausmann  <hausmann@webkit.org>
462         Build fix, include DateInstance.h.
464         * bridge/qt/qt_runtime.cpp:
466 2008-06-30  Adele Peterson  <adele@apple.com>
468         Reviewed by Oliver.
470         Fix for <rdar://problem/5882050> clicking in hidden close box area of empty searchfield causes mousedown to stop firing
472         Test: fast/forms/search-hidden-cancel-button.html
474         * html/HTMLTextFieldInnerElement.cpp: (WebCore::HTMLSearchFieldCancelButtonElement::defaultEventHandler):
475           Don't start capturing mouse events if the cancel button isn't visible.  This was causing the button to start but never stop capturing mouse events.
477 2008-06-30  Sam Weinig  <sam@webkit.org>
479         Rubber-stamped by Darin Adler.
481         Split InternalFunction into its own header file.
483         * ForwardingHeaders/kjs/InternalFunction.h: Added.
484         * bridge/runtime_method.h:
486 2008-06-30  Adele Peterson  <adele@apple.com>
488         Reviewed by Anders.
490         Fix for <rdar://problem/5301322> REGRESSION: Select All selects the whole page when used in readonly textareas
492         Test: editing/selection/select-all-textarea.html
494         * dom/Node.cpp:
495         (WebCore::Node::shadowAncestorNode): Break out code to find the root of the shadow tree into a new helper function.
496         (WebCore::Node::shadowTreeRootNode): Added helper function.
497         * dom/Node.h:
498         * dom/Range.cpp: (WebCore::Range::shadowTreeRootNode): Added helper function.
499         * dom/Range.h:
500         * editing/Selection.cpp: (WebCore::Selection::shadowTreeRootNode): ditto.
501         * editing/Selection.h:
502         * editing/SelectionController.h: (WebCore::SelectionController::shadowTreeRootNode): ditto.
503         * editing/SelectionController.cpp: (WebCore::SelectionController::selectAll):
504         If the selection is in a shadow tree, only select the contents of that shadow tree, not the whole document.
505         * page/Frame.cpp:
506         (WebCore::Frame::findString): Use the new shadowTreeRootNode helper functions.
507         (WebCore::Frame::markAllMatchesForText): ditto.
509 2008-06-30  chris fleizach  <cfleizach@apple.com>
511         Reviewed by Beth Dakin
513         <rdar://problem/4180780> Add attribute to get all the radio buttons in a set
515         * page/AccessibilityObject.cpp:
516         (WebCore::AccessibilityObject::linkedUIElements):
517         * page/AccessibilityObject.h:
518         * page/AccessibilityRenderObject.cpp:
519         (WebCore::AccessibilityRenderObject::internalLinkElement):
520         (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
521         (WebCore::AccessibilityRenderObject::linkedUIElements):
522         * page/AccessibilityRenderObject.h:
523         * page/mac/AccessibilityObjectWrapper.mm:
524         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
526 2008-06-30  Dan Bernstein  <mitz@apple.com>
528         Reviewed by Adele Peterson.
530         - WebCore part of <rdar://problem/3881497> Writing direction context menu item has no effect on text typed in Safari
532         * WebCore.base.exp: Removed Editor::setBaseWritingDirection() and added
533         Frame::setSelectionBaseWritingDirection().
534         * page/ContextMenuController.cpp:
535         (WebCore::ContextMenuController::contextMenuItemSelected): Changed to
536         call Frame::setSelectionBaseWritingDirection().
537         * page/Frame.cpp:
538         (WebCore::Frame::setSelectionBaseWritingDirection): Added. If the
539         focused node is a text field or text area, changes its 'dir' attribute.
540         This is what IE does when the user changes the writing direction in a
541         text control. Otherwise, calls down to Editor::setBaseWritingDirection().
542         * page/Frame.h:
544 2008-06-30  David Kilzer  <ddkilzer@apple.com>
546         Improve HTMLObjectElement data encapsulation
548         Reviewed by Dave Hyatt.
550         HTMLObjectElement has some public member variables that should be
551         private with accessor methods.
553         No test cases added since there is no change in behavior.
555         * html/HTMLObjectElement.cpp:
556         (WebCore::HTMLObjectElement::HTMLObjectElement): Reorder
557         initialization of member variables to match defined order in header.
558         * html/HTMLObjectElement.h:
559         (WebCore::HTMLObjectElement::classId): Added.
560         (WebCore::HTMLObjectElement::url): Added.
561         (WebCore::HTMLObjectElement::serviceType): Added.
562         * rendering/RenderPartObject.cpp:
563         (WebCore::RenderPartObject::updateWidget): Use new accessor methods
564         in HTMLObjectElement now that its member variables are private.
566 2008-06-30  Dan Bernstein  <mitz@apple.com>
568         Reviewed by Anders Carlsson.
570         - remove unused member variable
572         * page/Page.h: Removed Page::m_focusedNode.
574 2008-06-30  Anders Carlsson  <andersca@apple.com>
576         Reviewed by Adam.
578         <rdar://problem/6014209>
579         Crash when loading manifest from application cache fails
580         
581         There is no need to set any handles to 0 after calling cacheUpdateFailed(), since
582         that is done inside the function. Furthermore, after calling cacheUpdateFailed() the cache
583         group could be deleted causing us to access freed memory and then crashing.
584         
585         * loader/appcache/ApplicationCacheGroup.cpp:
586         (WebCore::ApplicationCacheGroup::didReceiveResponse):
587         (WebCore::ApplicationCacheGroup::didFail):
588         (WebCore::ApplicationCacheGroup::didFailToLoadManifest):
590 2008-06-30  Adam Roben  <aroben@apple.com>
592         Fix <rdar://5954749> Assertion failure due to HashTable's use of
593         operator&
595         Reviewed by Ada Chan.
597         * bindings/js/JSSVGPODTypeWrapper.h:
598         * dom/Document.h:
599         * dom/StyledElement.cpp:
600         * platform/graphics/FontCache.cpp:
601         * platform/graphics/IntSizeHash.h:
602         (WTF::):
603         * platform/text/StringHash.h:
604         * platform/win/COMPtr.h:
605         * svg/SVGAnimatedTemplate.h:
606         Updated all custom HashTraits for HashTable changes.
608 2008-06-30  Simon Hausmann  <hausmann@webkit.org>
610         Fix the Qt build.
612         Added missing includes and changed getItem array calls to use get()
613         instead.
615         * bridge/qt/qt_runtime.cpp:
616         (KJS::Bindings::convertValueToQVariant):
618 2008-06-29  David Smith  <catfish.man@gmail.com>
620         Rubberstamped by Sam Weinig.
622         Change a redundant node->isElement() check to an ASSERT for a 1.3% speedup on getElementsByTagName.
624         * dom/TagNodeList.cpp:
625         (WebCore::TagNodeList::nodeMatches):
627 2008-06-29  Dan Bernstein  <mitz@apple.com>
629         Reviewed by Darin Adler.
631         - fix SVG layout test regressions
633         * css/CSSFontSelector.cpp:
634         (WebCore::CSSFontSelector::addFontFaceRule): Made this function work
635         again with primitive values, because the @font-face rules SVG fonts
636         create still use a single primitive value rather than a value list.
638 2008-06-29  Dan Bernstein  <mitz@apple.com>
640         Reviewed by Sam Weinig.
642         - fix <rdar://problem/5734440> Specifying a font-weight for @font-face not working
644         Tests: fast/css/font-face-descriptor-multiple-values-parsing.html
645                fast/css/font-face-descriptor-multiple-values.html
647         * css/CSSFontSelector.cpp:
648         (WebCore::CSSFontSelector::addFontFaceRule): Changed to work with value
649         lists for the descriptor properties.
651         * css/CSSParser.cpp:
652         (WebCore::CSSParser::CSSParser): Initialize m_hasFontFaceOnlyValues.
653         (WebCore::CSSParser::parseValue): Added a call to
654         deleteFontFaceOnlyValues() if necessary.
655         (WebCore::CSSParser::parseDeclaration): Ditto.
656         (WebCore::CSSParser::clearProperties): Added code to reset
657         m_hasFontFaceOnlyValues to false.
658         (WebCore::CSSParser::parseFontStyle): Added. If there is a single
659         valid identifier other than 'all', creates a CSSPrimitiveValue and
660         assigns it to the property. If 'all' is the only value, or if there are
661         multiple valid identifiers that are not 'all', creates a CSSValueList
662         and assigns it to the property, and sets m_hasFontFaceOnlyValues to
663         true.
664         (WebCore::CSSParser::parseFontVariant): Ditto.
665         (WebCore::CSSParser::parseFontWeight): Ditto.
666         (WebCore::CSSParser::createStyleRule): Added a call to
667         deleteFontFaceOnlyValues().
668         (WebCore::CSSParser::createFontFaceRule): Added code to change
669         font descriptor properties that had only one value, and therefore were
670         assigned a CSSPrimitiveValue, into CSSValueLists containing that value.
671         (WebCore::CSSParser::deleteFontFaceOnlyValues): Added. Retroactively
672         invalidates font descriptor properties that had values that are only
673         allowed in @font-face. Those are identified by having CSSValueLists
674         rather than CSSPrimitiveValues as their values.
675         * css/CSSParser.h: Added m_hasFontFaceOnlyValues, a flag that says that
676         font descriptor property values that are only valid in @font-face were
677         encountered. This is used when the style declaration is created (and we
678         finally know if it is @font-face or not) to delete invalid properties
679         if needed.
681 2008-06-28  Darin Adler  <darin@apple.com>
683         Reviewed by Sam and Cameron.
685         - fix https://bugs.webkit.org/show_bug.cgi?id=19805
686           Array.concat turns missing array elements into "undefined"
688         * bridge/jni/jni_utility.cpp:
689         (KJS::Bindings::convertArrayInstanceToJavaArray):
690         Use get instead of getItem, since we always want to consider values from the
691         prototypes when looking at JavaScript arrays.
693 2008-06-28  Dan Bernstein  <mitz@apple.com>
695         Reviewed by Darin Adler.
697         - allow document markers to touch or overlap if they are not of the same type
699         Cannot be tested in DumpRenderTree
701         * dom/Document.cpp:
702         (WebCore::Document::addMarker):
703         * rendering/InlineTextBox.cpp:
704         (WebCore::InlineTextBox::paintDocumentMarkers):
706 2008-06-28  Sam Weinig  <sam@webkit.org>
708         Rubber-stamped by Darin Adler.
710         Update includes after remaming string_object.h to StringObject.h and
711         splitting out StringObjectThatMasqueradesAsUndefined, StringConstructor
712         and StringPrototype.
714         * ForwardingHeaders/kjs/StringObject.h: Copied from WebCore/ForwardingHeaders/kjs/string_object.h.
715         * ForwardingHeaders/kjs/StringObjectThatMasqueradesAsUndefined.h: Added.
716         * ForwardingHeaders/kjs/StringPrototype.h: Added.
717         * ForwardingHeaders/kjs/string_object.h: Removed.
718         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
720 2008-06-28  Sam Weinig  <sam@webkit.org>
722         Rubber-stamped by Oliver Hunt.
724         Update includes after remaming object_object.h to ObjectPrototype.h and
725         splitting FunctionConstructor out of FunctionPrototype.h
727         * ForwardingHeaders/kjs/FunctionConstructor.h: Added.
728         * ForwardingHeaders/kjs/ObjectPrototype.h: Copied from WebCore/ForwardingHeaders/kjs/object_object.h.
729         * ForwardingHeaders/kjs/object_object.h: Removed.
730         * bindings/js/JSEventListener.cpp:
731         * bindings/scripts/CodeGeneratorJS.pm:
732         * bridge/qt/qt_instance.cpp:
734 2008-06-28  Dan Bernstein  <mitz@apple.com>
736         Reviewed by Darin Adler.
738         - fix <rdar://problem/5994621> REGRESSION (r31090-r31114): Weather widget shows missing image icons briefly when (re)loaded
740         * html/HTMLImageLoader.cpp:
741         (WebCore::HTMLImageLoader::updateFromElement): Changed to not load an
742         image if the 'src' attribute is the empty string and the document's base
743         URI is a file: URL.
745 2008-06-27  Sam Weinig  <sam@webkit.org>
747         Reviewed by Dan Bernstein.
749         <rdar://problem/6025499> Make Cross-site XHR match the final specification
751         Update the implemented subset of Access-Control for XMLHttpRequest to the 
752         latest version. (Editor's Draft 25 May 2008)
754         - Now differentiates between simple and non-simple cross-site requests, the later
755           requiring a preflight.
756         - Now sends request headers cross-site, limited by a blacklist.
757         - Now allows access to cross-site response headers, limited by a whitelist.
758         - Now sends request entity body for non-get cross-site requests after preflight.
760         Tests: http/tests/xmlhttprequest/access-control-basic-blacklist-request-headers.html
761                http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple.html
762                http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers.html
764         * xml/XMLHttpRequest.cpp:
765         (WebCore::isOnAccessControllRequestHeaderBlackList):
766         (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist):
767         (WebCore::isOnAccessControlResponseHeaderWhitelist):
768         (WebCore::XMLHttpRequest::XMLHttpRequest):
769         (WebCore::XMLHttpRequest::createRequest):
770         (WebCore::XMLHttpRequest::makeSameOriginRequest):
771         (WebCore::XMLHttpRequest::isSimpleCrossSiteAccessRequest):
772         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequest):
773         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
774         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
775         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
776         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
777         (WebCore::XMLHttpRequest::abort):
778         (WebCore::XMLHttpRequest::clearRequest):
779         (WebCore::XMLHttpRequest::setRequestHeader):
780         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
781         (WebCore::XMLHttpRequest::getAllResponseHeaders):
782         (WebCore::XMLHttpRequest::getResponseHeader):
783         (WebCore::XMLHttpRequest::didFinishLoading):
784         (WebCore::XMLHttpRequest::didFinishLoadingPreflight):
785         (WebCore::XMLHttpRequest::didReceiveResponse):
786         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
787         (WebCore::XMLHttpRequest::didReceiveData):
788         * xml/XMLHttpRequest.h:
790 2008-06-27  Sam Weinig  <sam@webkit.org>
792         Rubber-stamped by Mark Rowe.
794         Clean up sorting in WebCore.xcodeproj.
796         * WebCore.xcodeproj/project.pbxproj:
798 2008-06-27  Jan Michael Alonzo  <jmalonzo@webkit.org>
800         Reviewed by Darin Adler.
802         Remove unnecessary options to make_names.pl command line
803         http://bugs.webkit.org/show_bug.cgi?id=19777
805         * DerivedSources.make:
806         * GNUmakefile.am:
808 2008-06-27  Adam Barth  <abarth@webkit.org>
810         Reviewed by Darin Adler.
812         https://bugs.webkit.org/show_bug.cgi?id=19784
814         Properly handle untermianted <!-- comments in <textarea>s.
816         Tests: fast/parser/open-comment-in-script-tricky.html
817                fast/parser/open-comment-in-style.html
818                fast/parser/open-comment-in-textarea.html
820         * html/HTMLTokenizer.cpp:
821         (WebCore::HTMLTokenizer::finish):
823 2008-06-27  Adam Barth  <abarth@webkit.org>
825         Reviewed by Darin Alder.
827         Fix <https://bugs.webkit.org/show_bug.cgi?id=19784>:
828           Text areas in Wikipedia edit pages are empty, following content is missing
830         Don't treat entities as comment starters in parseSpecial.
832         Tests: fast/parser/comment-in-iframe.html
833                fast/parser/entity-comment-in-iframe.html
834                fast/parser/entity-comment-in-script-tricky.html
835                fast/parser/entity-comment-in-style.html
836                fast/parser/entity-comment-in-textarea.html
837                fast/parser/entity-comment-in-title.html
839         * html/HTMLTokenizer.cpp:
840         (WebCore::HTMLTokenizer::parseSpecial):
842 2008-06-27  Antti Koivisto  <antti@apple.com>
844         Reviewed by Oliver.
845         
846         <rdar://problem/6030720> 
847         REGRESSION: Discrete animation between incompatible paths does not work
849         Fall back to discrete path animation if paths are not suitable for morphing.
850         
851         Test: svg/custom/animate-path-discrete.svg
852         
853         * svg/SVGAnimateElement.cpp:
854         (WebCore::SVGAnimateElement::calculateAnimatedValue):
856 2008-06-26  David Smith  <catfish.man@gmail.com>
858         Reviewed by Sam Weinig.
859         
860         https://bugs.webkit.org/show_bug.cgi?id=19002
861         
862         Optimize simple id selectors in querySelector/querySelectorAll. 
863         ~4.4x speedup on the 4 subtests of http://webkit.org/perf/slickspeed/ that it applies to.
865         * dom/Document.h:
866         (WebCore::Document::containsMultipleElementsWithId): Added to allow optimizing the common case of no duplicates
867         * dom/Node.cpp:
868         (WebCore::Node::querySelector): Uses getElementById instead of DOM traversal where possible now
869         * dom/SelectorNodeList.cpp:
870         (WebCore::createSelectorNodeList): Uses getElementById instead of DOM traversal where possible now
872 2008-06-26  Dan Bernstein  <mitz@apple.com>
874         Reviewed by Darin Adler.
876         - fix <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields)
877           http://bugs.webkit.org/show_bug.cgi?id=7023
879         Test: editing/selection/find-in-text-control.html
881         * WebCore.base.exp: Updated the TextIterator constructor signature.
883         * editing/TextIterator.cpp:
884         (WebCore::TextIterator::TextIterator): Added an enterTextControls
885         boolean parameter that determines whether the iterator should visit text
886         inside text areas and text fields. Added code to initialize the
887         m_inShadowContent member variable based on whether the range is in
888         shadow content.
889         (WebCore::TextIterator::advance): Added code to step out of shadow
890         content.
891         (WebCore::TextIterator::handleReplacedElement): Added code to enter
892         text controls if desired.
893         (WebCore::CharacterIterator::CharacterIterator): Added an
894         enterTextControls boolean parameter that determines whether the iterator
895         should visit text inside text areas and text fields. This is passed to
896         the TextIterator constructor.
897         (WebCore::findPlainText): Changed to use a CharacterIterator that
898         visits text controls.
900         * editing/TextIterator.h: Added member variables to track whether the
901         current node is in a shadow tree and whether the iterator should visit
902         text controls.
904         * page/Frame.cpp:
905         (WebCore::Frame::findString): Changed to find inside text controls.
906         (WebCore::Frame::markAllMatchesForText): Ditto.
908         * rendering/RenderTextControl.cpp:
909         (WebCore::RenderTextControl::innerTextElement): Added.
910         * rendering/RenderTextControl.h: Added innerTextElement(), a private
911         accessor method that is accessible to TextIterator through class
912         friendship.
914 2008-06-26  Darin Adler  <darin@apple.com>
916         Reviewed by Geoff.
918         * bridge/runtime.h: Added include of JSString.h since jsString will soon
919         change to return a JSString*.
921 2008-06-26  Adele Peterson  <adele@apple.com>
923         Fix suggested by Eric Carlson, added by me, reviewed by Adam.
925         Fix for <rdar://problem/5733006> <video> and <audio> element should not prompt user for missing files
927         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::createQTMovie):
928         Set object with key QTMovieAskUnresolvedDataRefsAttribute to NO in the attributes dictionary passed to -[QTMovie initWithAttributes:]
930 2008-06-26  Sam Weinig  <sam@webkit.org>
932         Reviewed by John Sullivan.
934         <rdar://problem/6031969> Crash in SecurityOrigin code going Forward to a page in the back/forward cache
936         * loader/FrameLoader.cpp:
937         (WebCore::FrameLoader::open): Make sure to update the SecurityOrigin and URL of the 
938         DOMWindow when opening a CachedPage.
940 2008-06-26  Eric Seidel  <eric@webkit.org>
942         Reviewed by Beth Dakin.
944         CSS @import statements can cause DocLoader to use
945         a dead Frame pointer.
946         https://bugs.webkit.org/show_bug.cgi?id=19618
947         
948         The fix is to get rid of the Frame pointer on DocLoader.
949         
950         I also took this opportunity to clean up Document::detach
951         a little to make it clear why we clear the m_frame pointer
952         there, and to note that in the future we should stop
953         using Node::detach to mean "tear down the whole rendering
954         tree and detach from the frame".
956         Test: I don't know how to make a good test for this, the test
957         we have is network timing dependent and does not make a good
958         layout test.
960         * dom/Document.cpp:
961         (WebCore::Document::Document):
962         (WebCore::Document::detach):
963         (WebCore::Document::clearFramePointer):
964         * dom/Document.h:
965         * loader/DocLoader.cpp:
966         (WebCore::DocLoader::frame):
967         * loader/DocLoader.h:
969 2008-06-26  Anders Carlsson  <andersca@apple.com>
971         Reviewed by Brady.
973         Don't enumerate document.applets trying to determine if a page contains applets.
974         Instead, set m_containsPlugIns to true when an applet has been created.
975         
976         * loader/FrameLoader.cpp:
977         (WebCore::FrameLoader::canCachePage):
978         (WebCore::FrameLoader::createJavaAppletWidget):
980 2008-06-26  Alexey Proskuryakov  <ap@webkit.org>
982         Reviewed by Maciej.
984         Make JSGlobalData per-thread.
986         * bindings/js/JSDOMBinding.h:
987         (WebCore::DOMObject::DOMObject):
988         * bindings/js/JSDOMWindowBase.cpp:
989         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
990         * bridge/runtime_object.cpp:
991         (RuntimeObjectImp::RuntimeObjectImp):
992         Removed collectOnMainThreadOnly() calls. WebCore objects live in their own heap now, so
993         there is no danger for them to be collected on a wrong thread.
995 2008-06-26  Holger Hans Peter Freyther  <zecke@selfish.org>
997         Reviewed by Simon.
999         [svg] Disable plugins for SVG images
1000         The Qt platform allows to have a plugin factory per Page. Now SVG Images
1001         are using a Page and dummy/empty clients for Chrome. The only way to get
1002         the kit from the WebCore::Page is to go through the ChromeClient but this
1003         is not possible when the ChromeClient is an empty client. This leads to a
1004         crash in PluginDataQt.cpp. One way to avoid this would have been the
1005         addition of a rtti like field to ChromeClient to see if it is an empty
1006         client. The other possibility is to not enable plugins for images.
1008         The SVGImage relies on the fact that the document is a SVGDocument and
1009         that the rootElement is a SVGSVGElement. If plugins are used we could
1010         end up with a PluginDocument and crash badly. Do not try to use plugins
1011         if plugins are disabled for the WebCore::Page.
1013         * dom/DOMImplementation.cpp:
1014         (WebCore::DOMImplementation::createDocument):
1015         * svg/graphics/SVGImage.cpp:
1016         (WebCore::SVGImage::dataChanged):
1018 2008-06-25  Holger Hans Peter Freyther  <zecke@selfish.org>
1020         Reviewed by Simon.
1022         CodingStyle fixes
1024         * platform/graphics/qt/SimpleFontDataQt.cpp:
1025         (WebCore::SimpleFontData::SimpleFontData):
1027 2008-06-25  Holger Hans Peter Freyther  <zecke@selfish.org>
1029         Reviewed by Simon.
1031         [svg] Make QtWebKit build more of the SVG support
1032         Add the proper defines and files, update SVGResourceFilterQt.cpp
1033         to be enabled by the filter option and not by experimental svg support
1035         * WebCore.pro:
1036         * svg/graphics/qt/SVGResourceFilterQt.cpp:
1037         (WebCore::SVGResourceFilter::createPlatformData):
1038         (WebCore::SVGResourceFilter::prepareFilter):
1040 2008-06-25  Sam Weinig  <sam@webkit.org>
1042         Reviewed by Brady Eidson.
1044         Move XMLHttpRequestState enum into XMLHttpRequest and rename to State.
1046         * xml/XMLHttpRequest.cpp:
1047         (WebCore::XMLHttpRequest::readyState):
1048         (WebCore::XMLHttpRequest::changeState):
1049         (WebCore::XMLHttpRequest::open):
1050         * xml/XMLHttpRequest.h:
1051         (WebCore::XMLHttpRequest::create):
1052         (WebCore::XMLHttpRequest::):
1054 2008-06-25  Justin Garcia  <justin.garcia@apple.com>
1056         Reviewed by John.
1058         <rdar://problem/5994480> Line break lost on some pastes
1059         
1060         Merging the the first paragraph of inserted content with the content that came
1061         before the selection that was pasted into would also move content after 
1062         the selection that was pasted into if:
1063         
1064         1) Only one paragraph was being pasted, and it was not wrapped in a block
1065         2) The selection that was pasted into ended at the end of a block
1066         3) The next paragraph didn't start at the start of a block.
1067         
1068         Insert a line break just after the inserted content to separate it from what 
1069         comes after and prevent that from happening.
1070         
1071         Doing this exposed a bug in deletion where it would insert an unnecessary placeholder
1072         when deleting a paragraph that started or ended with an input element.  This was
1073         because its m_startBlock and m_endBlock were still computed with the old deprecated
1074         enclosingBlockFlowOrTableElement().
1075         
1076         * editing/DeleteSelectionCommand.cpp:
1077         (WebCore::DeleteSelectionCommand::initializePositionData): Use the new method for
1078         getting an enclosing block.
1079         (WebCore::DeleteSelectionCommand::doApply): The new method for getting an enclosing
1080         block will return 0 if it reaches the root editable element before finding a block,
1081         so if we're deleting inside an inline editable root, m_start/endBlock will
1082         be 0.  Removed an early return for this case (we already have test coverage for it).
1083         * editing/ReplaceSelectionCommand.cpp:
1084         (WebCore::ReplaceSelectionCommand::doApply): Insert a line break just after the inserted 
1085         content to separate it from what comes after.
1086         * dom/Node.h: Removed enclosingBlockFlowOrTableElement().
1087         * dom/Node.cpp: Ditto.
1089 2008-06-25  Anders Carlsson  <andersca@apple.com>
1091         Reviewed by Dave Hyatt.
1093         Fix refcount leak in CSSVariablesRule.
1095         * css/CSSParser.cpp:
1096         (WebCore::CSSParser::createVariablesRule):
1097         * css/CSSVariablesRule.h:
1098         (WebCore::CSSVariablesRule::create):
1099         (WebCore::CSSVariablesRule::setDeclaration):
1101 2008-06-25  Anders Carlsson  <andersca@apple.com>
1103         Reviewed by Mitz.
1105         <rdar://problem/6007111> 
1106         https://bugs.webkit.org/show_bug.cgi?id=19516
1107         DOM modification causes Access Violation (NULL pointer?)
1108         
1109         Null check the document element.
1110         
1111         * html/HTMLParser.cpp:
1112         (WebCore::HTMLParser::handleError):
1114 2008-06-25  Dan Bernstein  <mitz@apple.com>
1116         Reviewed by Dave Hyatt.
1118         - fix <rdar://problem/5873639> REGRESSION (r31620): css2.1/t1506-c525-font-wt-00-b fails on Windows
1120         - fix https://bugs.webkit.org/show_bug.cgi?id=18863
1121           <rdar://problem/5908890> weight mappings with @font-face aren't consistent
1123         Tests: fast/css/font-face-locally-installed.html
1124                fast/css/font-face-multiple-faces.html
1126         * WebCore.vcproj/WebCore.vcproj: Added FontTraitsMask.h.
1128         * WebCore.xcodeproj/project.pbxproj: Ditto.
1130         * css/CSSFontFace.h:
1131         Made CSSFontFace store descriptors from the @font-face rule, as follows:
1132         (WebCore::CSSFontFace::create): Added a FontTraitsMask argument.
1133         (WebCore::CSSFontFace::traitsMask): Added this accessor.
1134         (WebCore::CSSFontFace::addRange): Added.
1135         (WebCore::CSSFontFace::ranges): Added.
1136         (WebCore::CSSFontFace::UnicodeRange::UnicodeRange):
1137         (WebCore::CSSFontFace::UnicodeRange::from):
1138         (WebCore::CSSFontFace::UnicodeRange::to):
1139         (WebCore::CSSFontFace::CSSFontFace): Added a FontTraitsMask and a vector
1140         of UnicodeRanges as member variables.
1142         * css/CSSFontFaceSource.cpp:
1143         Changed the hash key from the font size alone to the font size and
1144         the synthetic style bits, needed if the same source supplies different
1145         synthesized versions.
1146         (WebCore::CSSFontFaceSource::pruneTable):
1147         (WebCore::CSSFontFaceSource::getFontData):
1149         * css/CSSFontFaceSource.h:
1151         * css/CSSFontSelector.cpp:
1152         (WebCore::CSSFontSelector::~CSSFontSelector): Added code to delete
1153         the contents of the font face, locally-installed font face and segmented
1154         font tables.
1155         (WebCore::CSSFontSelector::addFontFaceRule): Changed this function to
1156         not create segmented font faces, but instead just collect font faces
1157         and annotate them with descriptors (traits and unicode ranges).
1158         (WebCore::compareFontFaces): Added. Used in getFontData() to sort the
1159         font faces by proximity to the desired traits.
1160         (WebCore::CSSFontSelector::getFontData): Changed to create the segmented
1161         font face here and cache it.
1163         * css/CSSFontSelector.h:
1165         * css/CSSSegmentedFontFace.cpp:
1166         Changed to keep a vector of font faces instead of font face ranges, as
1167         font faces now know their Unicode ranges.
1168         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
1169         (WebCore::CSSSegmentedFontFace::isLoaded):
1170         (WebCore::CSSSegmentedFontFace::isValid):
1171         (WebCore::CSSSegmentedFontFace::appendFontFace):
1172         (WebCore::CSSSegmentedFontFace::getFontData): Removed the synthetic
1173         traits parameters, and instead changed to set them on each FontData
1174         separately based on the difference between the desired traits and
1175         the font face's traits.
1177         * css/CSSSegmentedFontFace.h:
1179         * platform/graphics/FontCache.h:
1180         Removed fontExists() and added getTraitsInFamily().
1182         * platform/graphics/FontDescription.cpp:
1183         (WebCore::FontDescription::traitsMask): Added.
1185         * platform/graphics/FontDescription.h:
1187         * platform/graphics/FontTraitsMask.h: Added.
1189         * platform/graphics/GlyphPageTreeNode.cpp:
1190         (WebCore::GlyphPageTreeNode::initializePage): Changed to fill in with
1191         glyphs from all fonts in the segmented font, using each font in turn to
1192         fill in characters not covered by earlier fonts.
1194         * platform/graphics/gtk/FontCacheGtk.cpp:
1195         (WebCore::FontCache::getTraitsInFamily): Added a stub.
1197         * platform/graphics/mac/FontCacheMac.mm:
1198         (WebCore::FontCache::getTraitsInFamily): Added.
1200         * platform/graphics/qt/FontCacheQt.cpp:
1201         (WebCore::FontCache::getTraitsInFamily): Added a stub.
1203         * platform/graphics/win/FontCacheWin.cpp:
1204         (WebCore::TraitsInFamilyProcData::TraitsInFamilyProcData): Added.
1205         (WebCore::traitsInFamilyEnumProc): Added.
1206         (WebCore::FontCache::getTraitsInFamily): Added.
1208         * platform/graphics/wx/FontCacheWx.cpp:
1209         (WebCore::FontCache::getTraitsInFamily): Added a stub.
1211         * platform/mac/WebFontCache.h:
1212         * platform/mac/WebFontCache.mm:
1213         (toTraitsMask): Added.
1214         (+[WebFontCache getTraits:inFamily:]): Added.
1216 2008-06-24  Anonymous
1218         Reviewed by Darin Adler.  Committed by Adam Barth.
1220         https://bugs.webkit.org/show_bug.cgi?id=19470
1222         Check for a null documentElement() to fix four crashes.
1224         * WebCore/dom/Document.cpp:
1225         * WebCore/dom/Node.cpp:
1227 2008-06-24  Adam Barth  <abarth@webkit.org>
1229         Reviewed by Darin Adler.
1231         Fix <https://bugs.webkit.org/show_bug.cgi?id=19597>
1233         Correctly parse <!-- </textarea> --> inside a <textarea>, matching
1234         Internet Explorer, Firefox, Opera, and HTML 5.
1236         Tests: fast/parser/comment-in-script-tricky.html
1237                fast/parser/comment-in-style.html
1238                fast/parser/comment-in-textarea.html
1239                fast/parser/comment-in-title.html
1241         * html/HTMLTokenizer.cpp:
1242         (WebCore::HTMLTokenizer::parseSpecial):
1244 2008-06-24  Justin Garcia  <justin.garcia@apple.com>
1246         Reviewed by John.
1248         <rdar://problem/6026335> REGRESSION: Caret disappears after deleting a particular selection involving a ToDo
1249         
1250         * editing/CompositeEditCommand.cpp:
1251         (WebCore::CompositeEditCommand::moveParagraphs): If asked to preserveStyle, we
1252         apply styles from the moved paragraph to the destination with applyStyle, which
1253         does selection preservation when it needs to apply block styles.  Selection preservation 
1254         uses relatively untested code in TextIterator to count VisiblePositions which fails in 
1255         this particular test case because it doesn't handle changes in editability properly.  
1256         We can avoid this bug by not applying block styles from moved paragraphs.  This is 
1257         something that should be done anyway, since the moved paragraph should assume the 
1258         block styles of the destination.
1259         * editing/EditCommand.cpp:
1260         (WebCore::EditCommand::styleAtPosition): Added a FIXME about how it is misleading for
1261         this function to also include the typing style.
1262         * editing/TextIterator.h: Added a FIXME about how the code path used for selection preservation
1263         is buggy and should be phased out when we rewrite moveParagraphs.
1265 2008-06-24  Kevin McCullough  <kmccullough@apple.com>
1267         -Added a manual test for the profiler.
1269         * manual-tests/inspector/profiler-test-compare-multiple-profiles.html: Added.
1271 2008-06-24  Sam Weinig  <sam@webkit.org>
1273         Reviewed by Anders Carlsson.
1275         Add support for loadstart, abort and error events for XMLHttpRequests.
1277         Tests: http/tests/xmlhttprequest/onabort-event.html
1278                http/tests/xmlhttprequest/onerror-event.html
1279                http/tests/xmlhttprequest/onloadstart-event.html
1281         * bindings/js/JSXMLHttpRequestCustom.cpp:
1282         (WebCore::JSXMLHttpRequest::mark):
1283         (WebCore::JSXMLHttpRequest::onreadystatechange):
1284         (WebCore::JSXMLHttpRequest::onabort):
1285         (WebCore::JSXMLHttpRequest::setOnabort):
1286         (WebCore::JSXMLHttpRequest::onerror):
1287         (WebCore::JSXMLHttpRequest::setOnerror):
1288         (WebCore::JSXMLHttpRequest::onload):
1289         (WebCore::JSXMLHttpRequest::onloadstart):
1290         (WebCore::JSXMLHttpRequest::setOnloadstart):
1291         (WebCore::JSXMLHttpRequest::onprogress):
1292         * dom/EventNames.h:
1293         * xml/XMLHttpRequest.cpp:
1294         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
1295         (WebCore::XMLHttpRequest::createRequest):
1296         (WebCore::XMLHttpRequest::abort):
1297         (WebCore::XMLHttpRequest::networkError):
1298         (WebCore::XMLHttpRequest::abortError):
1299         (WebCore::XMLHttpRequest::didFail):
1300         (WebCore::XMLHttpRequest::updateAndDispatchOnProgress):
1301         (WebCore::XMLHttpRequest::dispatchReadyStateChangeEvent):
1302         (WebCore::XMLHttpRequest::dispatchXMLHttpRequestProgressEvent):
1303         (WebCore::XMLHttpRequest::dispatchAbortEvent):
1304         (WebCore::XMLHttpRequest::dispatchErrorEvent):
1305         (WebCore::XMLHttpRequest::dispatchLoadEvent):
1306         (WebCore::XMLHttpRequest::dispatchLoadStartEvent):
1307         (WebCore::XMLHttpRequest::dispatchProgressEvent):
1308         * xml/XMLHttpRequest.h:
1309         (WebCore::XMLHttpRequest::setOnAbortListener):
1310         (WebCore::XMLHttpRequest::onAbortListener):
1311         (WebCore::XMLHttpRequest::setOnErrorListener):
1312         (WebCore::XMLHttpRequest::onErrorListener):
1313         (WebCore::XMLHttpRequest::setOnLoadStartListener):
1314         (WebCore::XMLHttpRequest::onLoadStartListener):
1315         * xml/XMLHttpRequest.idl:
1317 2008-06-24  Anders Carlsson  <andersca@apple.com>
1319         Reviewed by Mitz.
1321         <rdar://problem/5957606>
1322         CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::DocumentLoader::cancelPendingSubstituteLoad + 23
1324         Remove the loader from the document loader after calling didFail, so that the loader will be deferred corectly
1325         in case the call do didFail starts a new run loop.
1326         
1327         * loader/NetscapePlugInStreamLoader.cpp:
1328         (WebCore::NetscapePlugInStreamLoader::didCancel):
1330 2008-06-24  Alexey Proskuryakov  <ap@webkit.org>
1332         Release build fix.
1334         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1335         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
1336         * bindings/js/JSCustomSQLTransactionCallback.cpp:
1337         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
1338         Initialize callbackCallType, as the compiler is not smart enough to figure out data flow.
1340 2008-06-24  Alexey Proskuryakov  <ap@webkit.org>
1342         Reviewed by Darin.
1344         https://bugs.webkit.org/show_bug.cgi?id=19723
1345         REGRESSION(r34648): Some SVG tests crash when running under --threaded
1347         * rendering/RenderSVGInlineText.cpp: (WebCore::RenderSVGInlineText::destroy): Do not attempt
1348         to paint during document destruction, because rendering structures are not kept in a
1349         consistent state then.
1351 2008-06-24  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
1353         Reviewed by Darin.
1355         https://bugs.webkit.org/show_bug.cgi?id=19727
1357         Return bool from GraphicsContext::getShadow() so the tests aren't duplicated so
1358         many times in Cairo and Qt ports.
1360         * platform/graphics/GraphicsContext.h:
1361         * platform/graphics/GraphicsContext.cpp:
1362         (WebCore::GraphicsContext::getShadow): return a boolean from getShadow()
1363         which indicates whether there is a visible shadow to draw or not.  Ports
1364         without a platform shadow implementation can use this flag to determine
1365         whether a shadow needs to be drawn manually
1366         * platform/graphics/cairo/FontCairo.cpp:
1367         (WebCore::Font::drawGlyphs):
1368         * platform/graphics/qt/FontQt.cpp:
1369         (WebCore::Font::drawText):
1370         * platform/graphics/qt/GraphicsContextQt.cpp:
1371         (WebCore::GraphicsContext::drawLine): use return from getShadow() to
1372         determine whether to draw the shadow
1374 2008-06-24  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
1376         Reviewed by Simon.
1378         https://bugs.webkit.org/show_bug.cgi?id=18459
1380         Clean up and remove unused platform shadow code.
1382         Minor edits by Simon, removed unused TextShadow struct.
1384         * platform/graphics/qt/GraphicsContextQt.cpp:
1385         (WebCore::GraphicsContext::setPlatformShadow):
1386         (WebCore::GraphicsContext::clearPlatformShadow): Qt doesn't support a
1387         platform shadow, so just make these functions empty.  The shadows are
1388         drawn manually in function like drawLine(), etc.
1390 2008-06-24  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
1392         Reviewed by Simon.
1394         https://bugs.webkit.org/show_bug.cgi?id=18459
1396         Implemented basic text-shadow support for the Qt port.
1398         * platform/graphics/qt/FontQt.cpp:
1399         (WebCore::Font::drawText): implement text-shadow support in the Qt port
1400         * platform/graphics/qt/GraphicsContextQt.cpp:
1401         (WebCore::GraphicsContext::drawLine): also draw shadows for text
1402         decorations such as unerlines
1404 2008-06-24  Simon Hausmann  <hausmann@webkit.org>
1406         Fix the Qt build, adapt to various JSCore API changes.
1408         * bridge/qt/qt_instance.cpp:
1409         (KJS::Bindings::QtRuntimeObjectImp::construct):
1410         (KJS::Bindings::QtInstance::getRuntimeObject):
1411         (KJS::Bindings::QtInstance::invokeDefaultMethod):
1412         * bridge/qt/qt_runtime.cpp:
1413         (KJS::Bindings::convertQVariantToValue):
1414         (KJS::Bindings::QtRuntimeMetaMethod::getCallData):
1415         (KJS::Bindings::QtRuntimeConnectionMethod::call):
1416         (KJS::Bindings::QtRuntimeConnectionMethod::getCallData):
1417         (KJS::Bindings::QtConnectionObject::execute):
1418         * bridge/qt/qt_runtime.h:
1419         (KJS::Bindings::QtRuntimeConnectionMethod::d_func):
1421 2008-06-24  Alexey Proskuryakov  <ap@webkit.org>
1423         Remove XMLHttpRequestProgressEvent.cpp from more project files.
1425         * GNUmakefile.am:
1426         * WebCore.pro:
1428 2008-06-24  Ariya Hidayat  <ariya.hidayat@trolltech.com>
1430         Reviewed by Simon.
1432         For the Qt port, fix linking with MinGW.
1434         * WebCore.pro:
1436 2008-06-23  Darin Adler  <darin@apple.com>
1438         Reviewed by Geoff.
1440         Update for JavaScript changes.
1442         - Use CallData and ConstructData instead of the obsolete implementsCall,
1443           callAsFunction, and construct functions.
1445         - Updated native function arguments, specifically to allow a JSValue
1446           rather than a JSObject for the this argument, and to call toThisObject
1447           as needed when treating it as an object.
1449         - Made some more class members private and protected, including virtual
1450           function overrides.
1452         - Eliminated the use of getCallData in the JavaScript bridging code as
1453           a way to check if an instance supports invokeDefaultMethod.
1455         - Eliminated unnecessary polymorphism in the NodeIterator and TreeWalker
1456           classes. They were using virtual functions simply to share an instance
1457           of the RefCounted template, which was not helpful.
1459         * bindings/js/JSAudioConstructor.cpp:
1460         (WebCore::constructAudio):
1461         (WebCore::JSAudioConstructor::getConstructData):
1462         * bindings/js/JSAudioConstructor.h:
1463         (WebCore::JSAudioConstructor::document):
1464         (WebCore::JSAudioConstructor::classInfo):
1465         * bindings/js/JSClipboardCustom.cpp:
1466         (WebCore::JSClipboard::types):
1467         * bindings/js/JSCustomSQLStatementCallback.cpp:
1468         (WebCore::JSCustomSQLStatementCallback::handleEvent):
1469         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1470         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
1471         * bindings/js/JSCustomSQLTransactionCallback.cpp:
1472         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
1473         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
1474         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
1475         * bindings/js/JSCustomVoidCallback.cpp:
1476         (WebCore::JSCustomVoidCallback::handleEvent):
1477         * bindings/js/JSCustomXPathNSResolver.cpp:
1478         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1479         * bindings/js/JSDOMBinding.h:
1480         (WebCore::DOMObject::DOMObject):
1481         * bindings/js/JSDOMWindowBase.cpp:
1482         (WebCore::windowProtoFuncAToB):
1483         (WebCore::windowProtoFuncBToA):
1484         (WebCore::windowProtoFuncOpen):
1485         (WebCore::windowProtoFuncSetTimeout):
1486         (WebCore::windowProtoFuncClearTimeout):
1487         (WebCore::windowProtoFuncSetInterval):
1488         (WebCore::windowProtoFuncAddEventListener):
1489         (WebCore::windowProtoFuncRemoveEventListener):
1490         (WebCore::windowProtoFuncShowModalDialog):
1491         (WebCore::windowProtoFuncNotImplemented):
1492         (WebCore::toJSDOMWindow):
1493         * bindings/js/JSDOMWindowBase.h:
1494         * bindings/js/JSDOMWindowShell.h:
1495         (WebCore::JSDOMWindowShell::classInfo):
1496         * bindings/js/JSEventListener.cpp:
1497         (WebCore::JSAbstractEventListener::handleEvent):
1498         (WebCore::JSLazyEventListener::parseCode):
1499         * bindings/js/JSEventTargetBase.cpp:
1500         (WebCore::retrieveEventTargetAndCorrespondingNode):
1501         (WebCore::jsEventTargetAddEventListener):
1502         (WebCore::jsEventTargetRemoveEventListener):
1503         (WebCore::jsEventTargetDispatchEvent):
1504         * bindings/js/JSEventTargetBase.h:
1505         * bindings/js/JSHTMLAppletElementCustom.cpp:
1506         (WebCore::JSHTMLAppletElement::customGetOwnPropertySlot):
1507         (WebCore::JSHTMLAppletElement::customPut):
1508         (WebCore::JSHTMLAppletElement::getCallData):
1509         * bindings/js/JSHTMLCollectionCustom.cpp:
1510         (WebCore::callHTMLCollection):
1511         (WebCore::JSHTMLCollection::getCallData):
1512         * bindings/js/JSHTMLDocumentCustom.cpp:
1513         (WebCore::JSHTMLDocument::open):
1514         * bindings/js/JSHTMLEmbedElementCustom.cpp:
1515         (WebCore::JSHTMLEmbedElement::customGetOwnPropertySlot):
1516         (WebCore::JSHTMLEmbedElement::customPut):
1517         (WebCore::JSHTMLEmbedElement::getCallData):
1518         * bindings/js/JSHTMLInputElementBase.cpp:
1519         (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
1520         * bindings/js/JSHTMLInputElementBase.h:
1521         * bindings/js/JSHTMLObjectElementCustom.cpp:
1522         (WebCore::JSHTMLObjectElement::customGetOwnPropertySlot):
1523         (WebCore::JSHTMLObjectElement::customPut):
1524         (WebCore::JSHTMLObjectElement::getCallData):
1525         * bindings/js/JSHTMLOptionElementConstructor.cpp:
1526         (WebCore::constructHTMLOptionElement):
1527         (WebCore::JSHTMLOptionElementConstructor::getConstructData):
1528         * bindings/js/JSHTMLOptionElementConstructor.h:
1529         (WebCore::JSHTMLOptionElementConstructor::document):
1530         (WebCore::JSHTMLOptionElementConstructor::classInfo):
1531         * bindings/js/JSImageConstructor.cpp:
1532         (WebCore::constructImage):
1533         (WebCore::JSImageConstructor::getConstructData):
1534         * bindings/js/JSImageConstructor.h:
1535         (WebCore::JSImageConstructor::document):
1536         (WebCore::JSImageConstructor::classInfo):
1537         * bindings/js/JSInspectedObjectWrapper.h:
1538         (WebCore::JSInspectedObjectWrapper::classInfo):
1539         * bindings/js/JSInspectorCallbackWrapper.cpp:
1540         (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue):
1541         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
1542         (WebCore::JSJavaScriptCallFrame::scopeChain):
1543         * bindings/js/JSNodeFilterCondition.cpp:
1544         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
1545         (WebCore::JSNodeFilterCondition::mark):
1546         (WebCore::JSNodeFilterCondition::acceptNode):
1547         * bindings/js/JSNodeFilterCondition.h:
1548         (WebCore::JSNodeFilterCondition::create):
1549         * bindings/js/JSNodeFilterCustom.cpp:
1550         (WebCore::toNodeFilter):
1551         * bindings/js/JSNodeListCustom.cpp:
1552         (WebCore::callNodeList):
1553         (WebCore::JSNodeList::getCallData):
1554         (WebCore::JSNodeList::canGetItemsForName):
1555         (WebCore::JSNodeList::nameGetter):
1556         * bindings/js/JSPluginElementFunctions.cpp:
1557         (WebCore::runtimeObjectGetter):
1558         (WebCore::runtimeObjectPropertyGetter):
1559         (WebCore::runtimeObjectCustomGetOwnPropertySlot):
1560         (WebCore::runtimeObjectCustomPut):
1561         (WebCore::runtimeObjectGetCallData):
1562         (WebCore::pluginInstance):
1563         (WebCore::getRuntimeObject):
1564         (WebCore::callPlugin):
1565         * bindings/js/JSPluginElementFunctions.h:
1566         * bindings/js/JSQuarantinedObjectWrapper.cpp:
1567         (WebCore::JSQuarantinedObjectWrapper::put):
1568         (WebCore::JSQuarantinedObjectWrapper::construct):
1569         (WebCore::JSQuarantinedObjectWrapper::getConstructData):
1570         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
1571         (WebCore::JSQuarantinedObjectWrapper::call):
1572         (WebCore::JSQuarantinedObjectWrapper::getCallData):
1573         * bindings/js/JSQuarantinedObjectWrapper.h:
1574         (WebCore::JSQuarantinedObjectWrapper::className):
1575         * bindings/js/JSRGBColor.cpp:
1576         * bindings/js/JSXMLHttpRequestConstructor.cpp:
1577         (WebCore::constructXMLHttpRequest):
1578         (WebCore::JSXMLHttpRequestConstructor::getConstructData):
1579         * bindings/js/JSXMLHttpRequestConstructor.h:
1580         (WebCore::JSXMLHttpRequestConstructor::document):
1581         (WebCore::JSXMLHttpRequestConstructor::classInfo):
1582         * bindings/js/JSXSLTProcessorConstructor.cpp:
1583         (WebCore::constructXSLTProcessor):
1584         (WebCore::JSXSLTProcessorConstructor::getConstructData):
1585         * bindings/js/JSXSLTProcessorConstructor.h:
1586         (WebCore::JSXSLTProcessorConstructor::classInfo):
1587         * bindings/js/ScheduledAction.cpp:
1588         (WebCore::ScheduledAction::ScheduledAction):
1589         (WebCore::ScheduledAction::execute):
1590         * bindings/js/ScheduledAction.h:
1591         * bindings/objc/WebScriptObject.mm:
1592         (-[WebScriptObject callWebScriptMethod:withArguments:]):
1593         * bindings/scripts/CodeGeneratorJS.pm:
1594         * bridge/NP_jsobject.cpp:
1595         (_NPN_InvokeDefault):
1596         (_NPN_Invoke):
1597         * bridge/c/c_instance.cpp:
1598         (KJS::Bindings::CInstance::supportsInvokeDefaultMethod):
1599         * bridge/c/c_instance.h:
1600         * bridge/jni/jni_jsobject.mm:
1601         (JavaJSObject::call):
1602         * bridge/objc/objc_instance.h:
1603         * bridge/objc/objc_instance.mm:
1604         (ObjcInstance::supportsInvokeDefaultMethod):
1605         * bridge/objc/objc_runtime.h:
1606         (KJS::Bindings::ObjcFallbackObjectImp::propertyName):
1607         (KJS::Bindings::ObjcFallbackObjectImp::classInfo):
1608         * bridge/objc/objc_runtime.mm:
1609         (Bindings::webScriptObjectClass):
1610         (Bindings::webUndefinedClass):
1611         (ObjcFallbackObjectImp::ObjcFallbackObjectImp):
1612         (callObjCFallbackObject):
1613         (ObjcFallbackObjectImp::getCallData):
1614         * bridge/qt/qt_instance.h:
1615         * bridge/runtime.cpp:
1616         (KJS::Bindings::Instance::createRuntimeObject):
1617         (KJS::Bindings::Instance::getInstance):
1618         * bridge/runtime.h:
1619         (KJS::Bindings::Field::~Field):
1620         (KJS::Bindings::Method::~Method):
1621         (KJS::Bindings::Class::~Class):
1622         (KJS::Bindings::Instance::supportsInvokeDefaultMethod):
1623         * bridge/runtime_method.cpp:
1624         (KJS::callRuntimeMethod):
1625         (KJS::RuntimeMethod::getCallData):
1626         * bridge/runtime_method.h:
1627         (KJS::RuntimeMethod::methods):
1628         * bridge/runtime_object.cpp:
1629         (RuntimeObjectImp::defaultValue):
1630         (callRuntimeObject):
1631         (RuntimeObjectImp::getCallData):
1632         * bridge/runtime_object.h:
1633         (KJS::RuntimeObjectImp::getInternalInstance):
1634         (KJS::RuntimeObjectImp::classInfo):
1635         * dom/NodeIterator.h:
1636         * dom/Traversal.cpp:
1637         * dom/Traversal.h:
1638         * dom/TreeWalker.h:
1640 2008-06-23  Adam Barth  <abarth@webkit.org>
1642         Reviewed by Darin Adler.
1644         https://bugs.webkit.org/show_bug.cgi?id=16756
1646         Move isAllowedToLoadLocalResources into SecurityOrigin.
1648         * dom/Document.cpp:
1649         (WebCore::Document::Document):
1650         (WebCore::Document::setURL):
1651         (WebCore::Document::initSecurityContext):
1652         * dom/Document.h:
1653         * loader/FrameLoader.cpp:
1654         (WebCore::FrameLoader::canLoad):
1655         * platform/SecurityOrigin.cpp:
1656         (WebCore::SecurityOrigin::SecurityOrigin):
1657         (WebCore::SecurityOrigin::isLocal):
1658         * platform/SecurityOrigin.h:
1659         (WebCore::SecurityOrigin::protocol):
1660         (WebCore::SecurityOrigin::host):
1661         (WebCore::SecurityOrigin::domain):
1662         (WebCore::SecurityOrigin::port):
1663         (WebCore::SecurityOrigin::canLoadLocalResources):
1664         (WebCore::SecurityOrigin::grantLoadLocalResources):
1665         * xml/XMLHttpRequest.cpp:
1666         (WebCore::XMLHttpRequest::setRequestHeader):
1668 2008-06-23  Mark Rowe  <mrowe@apple.com>
1670         Fix the Windows build.
1672         * WebCore.vcproj/WebCore.vcproj: Add generated files related to CSS variables to the Windows project file.
1674 2008-06-23  Steve Falkenburg  <sfalken@apple.com>
1676         Fix a math error in my last change.
1677         
1678         Reviewed by Ada Chan.
1680         * platform/win/FileSystemWin.cpp:
1681         (WebCore::openTemporaryFile):
1683 2008-06-23  Kevin McCullough  <kmccullough@apple.com>
1685         -Build fix.
1687         * WebCore.vcproj/WebCore.vcproj:
1689 2008-06-23  chris fleizach  <cfleizach@apple.com>
1691         Reviewed by Darin Adler.
1693         <rdar://problem/6024267> VO unable to read massive emails because AccessibilityObject::lengthForVisiblePositionRange makes the string
1695         * page/AccessibilityObject.cpp:
1696         (WebCore::replacedNodeNeedsCharacter):
1697         (WebCore::AccessibilityObject::stringForVisiblePositionRange):
1698         (WebCore::AccessibilityObject::lengthForVisiblePositionRange):
1700 2008-06-23  Steve Falkenburg  <sfalken@apple.com>
1702         Added our own mechanism for generating temporary file names.
1703         
1704         Reviewed by Ada Chan, Darin Adler.
1706         * platform/win/FileSystemWin.cpp:
1707         (WebCore::openTemporaryFile):
1709 2008-06-23  Sam Weinig  <sam@webkit.org>
1711         Remove XMLHttpRequestProgressEvent.cpp from project files.
1713         * WebCore.vcproj/WebCore.vcproj:
1714         * WebCore.xcodeproj/project.pbxproj:
1715         * WebCoreSources.bkl:
1717 2008-06-23  Sam Weinig  <sam@webkit.org>
1719         Reviewed by Dave Hyatt.
1721         Remove empty file.
1723         * xml/XMLHttpRequestProgressEvent.cpp: Removed.
1725 2008-06-23  Sam Weinig  <sam@webkit.org>
1727         Rubber-stamped by Tim Hatcher.
1729         Rename XMLHttpRequest::sameOriginRequest to XMLHttpRequest::makeSameOriginRequest
1730         and XMLHttpRequest::crossSiteAccessRequest to XMLHttpRequest::makeCrossSiteAccessRequest.
1732         * xml/XMLHttpRequest.cpp:
1733         (WebCore::XMLHttpRequest::createRequest):
1734         (WebCore::XMLHttpRequest::makeSameOriginRequest):
1735         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequest):
1736         * xml/XMLHttpRequest.h:
1738 2008-06-23  Sam Weinig  <sam@webkit.org>
1740         Reviewed by Alexey Proskuryakov.
1742         Some XMLHttpRequest re-organization to aid further enhancements coming soon.
1744         * bindings/js/JSXMLHttpRequestCustom.cpp:
1745         (WebCore::JSXMLHttpRequest::send): Explicitly call overloaded versions of send,
1746         instead of always calling though send(DOMString).
1747         * dom/Document.idl: Adds native converter.
1749         * xml/XMLHttpRequest.cpp:
1750         (WebCore::XMLHttpRequest::open):
1751         (WebCore::XMLHttpRequest::initSend):
1752         (WebCore::XMLHttpRequest::send):
1753         (WebCore::XMLHttpRequest::createRequest):
1754         (WebCore::XMLHttpRequest::sameOriginRequest):
1755         (WebCore::XMLHttpRequest::crossSiteAccessRequest):
1756         (WebCore::XMLHttpRequest::abort):
1757         (WebCore::XMLHttpRequest::clearResponse):
1758         (WebCore::XMLHttpRequest::clearRequest):
1759         (WebCore::XMLHttpRequest::genericError):
1760         (WebCore::XMLHttpRequest::dispatchProgressEvent):
1761         * xml/XMLHttpRequest.h:
1762         (WebCore::XMLHttpRequest::setOnReadyStateChangeListener): Inline.
1763         (WebCore::XMLHttpRequest::onReadyStateChangeListener): Ditto.
1764         (WebCore::XMLHttpRequest::setOnLoadListener): Ditto.
1765         (WebCore::XMLHttpRequest::onLoadListener): Ditto.
1766         (WebCore::XMLHttpRequest::setOnProgressListener): Ditto.
1767         (WebCore::XMLHttpRequest::onProgressListener): Ditto.
1768         Makes the request entity body a member variable so that the send method
1769         can be more easily broken up.
1771 2008-06-23  Timothy Hatcher  <timothy@apple.com>
1773         Make profiles of the same name in the Inspector group in the
1774         sidebar under a collapsable item that contains all the runs.
1776         https://bugs.webkit.org/show_bug.cgi?id=19713
1778         Reviewed by Darin Adler.
1780         * English.lproj/localizedStrings.js: New strings.
1781         * page/inspector/Images/profileGroupIcon.png: Added.
1782         * page/inspector/Images/profileSmallIcon.png: Added.
1783         * page/inspector/ProfilesPanel.js:
1784         (WebInspector.ProfilesPanel.prototype.reset): Clear _profileGroups.
1785         Remove the "some-expandable" class from the sidebarTree.
1786         (WebInspector.ProfilesPanel.prototype.addProfile): Append new profiles
1787         that have the same name as a previous profile into a group. When a
1788         group has 2 profiles a ProfileGroupSidebarTreeElement is made and the
1789         ProfileSidebarTreeElements are appended to the group's element. 
1790         (WebInspector.ProfileSidebarTreeElement.prototype.get mainTitle):
1791         Return _mainTitle is it is set.
1792         (WebInspector.ProfileSidebarTreeElement.prototype.set mainTitle):
1793         Set _mainTitle which is an override title.
1794         (WebInspector.ProfileGroupSidebarTreeElement): Inherit SidebarTreeElement.
1795         (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
1796         Show the last profile in the group when selected.
1797         * page/inspector/SidebarTreeElement.js:
1798         (WebInspector.SidebarTreeElement.prototype.get small): Return _small.
1799         (WebInspector.SidebarTreeElement.prototype.set small): Set _small and
1800         update the style to match.
1801         (WebInspector.SidebarTreeElement.prototype.onattach): Set the small
1802         class if the small property is true.
1803         * page/inspector/inspector.css: New styles for profiles groups
1804         and for the small profiles.
1806 2008-06-23  Anders Carlsson  <andersca@apple.com>
1808         Reviewed by Geoff.
1810         Make changedDocuments a HashSet.
1812         * dom/Document.cpp:
1813         (WebCore::Document::setDocumentChanged):
1814         (WebCore::Document::updateDocumentsRendering):
1816 2008-06-23  Alexey Proskuryakov  <ap@webkit.org>
1818         Reviewed by Mark Rowe.
1820         Restore a collectOnMainThreadOnly call that was accidentally removed in r34659. It will not
1821         be needed when heaps are actually per-thread, but this isn't the case yet, and collecting
1822         on a different thread causes crashes.
1824         * bindings/js/JSDOMBinding.h:
1825         (WebCore::DOMObject::DOMObject):
1827 2008-06-22  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
1829         Reviewed by Darin Adler.
1831         Fix https://bugs.webkit.org/show_bug.cgi?id=19465
1832         Bug 19465: Cursor sometimes gets 'stuck' in textareas when trying to navigate with arrow keys
1834         Test: editing/input/textarea-arrow-navigation.html
1836         * rendering/RenderText.cpp:
1837         (WebCore::RenderText::positionForCoordinates): In the case when the next position is to the right
1838         of the last text box but the text offset is 0, set the affinity to DOWNSTREAM instead of UPSTREAM so
1839         that the cursor doesn't remain on the previous line.
1841 2008-06-22  Robert Blaut  <webkit@blaut.biz>
1843         Reviewed by Darin Adler.
1845         Fix for https://bugs.webkit.org/show_bug.cgi?id=17421
1846         Bug 17421: Lack of end tag for SELECT element causes the rest of page to not be rendered
1848         Test: fast/parser/input-textarea-inside-select-element.html
1850         * html/HTMLParser.cpp:
1851         (WebCore::HTMLParser::handleError):
1853 2008-06-22  David Krause  <david.krause@gmail.com>
1855         Reviewed by Darin Adler.
1857         Fix https://bugs.webkit.org/show_bug.cgi?id=19426
1858         Bug 19426: LOW_BANDWIDTH_DISPLAY build broken
1860         Change ref to addClient and deref to removeClient in code wrapped
1861         by USE(LOW_BANDWIDTH_DISPLAY) to match changes in r31834.
1863         * loader/FrameLoader.cpp:
1864         (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
1865         (WebCore::FrameLoader::removeAllLowBandwidthDisplayRequests):
1866         (WebCore::FrameLoader::notifyFinished):
1868 2008-06-22  Robert Blaut  <webkit@blaut.biz>
1870         Reviewed by Darin Adler.
1872         Fix https://bugs.webkit.org/show_bug.cgi?id=19520
1873         Bug 19520: WebKit incorrectly accepts hidden as the value of outline-style
1875         Test: fast/css/outline-hidden-illegal-value.html
1877         * css/CSSParser.cpp:
1878         (WebCore::CSSParser::parseValue):
1879         * rendering/RenderFlow.cpp:
1880         (WebCore::RenderFlow::paintOutline):
1881         * rendering/RenderObject.cpp:
1882         (WebCore::RenderObject::paintOutline):
1883         * rendering/style/RenderStyle.h:
1884         (WebCore::RenderStyle::outlineWidth):
1885         (WebCore::RenderStyle::outlineOffset):
1887 2008-06-22  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
1889         Reviewed by Dan Bernstein.
1891         Fix https://bugs.webkit.org/show_bug.cgi?id=19675
1892         Bug 19675: [GTK] negative text-shadows are not rendered
1894         * platform/graphics/cairo/FontCairo.cpp:
1895         (WebCore::Font::drawGlyphs): The IntSize::isEmpty() call checks that the
1896         sizes are > 0, while we need to check for != 0.
1898 2008-06-22  kuchhal  <kuchhal@yahoo.com>
1900         Reviewed by Darin Adler.
1902         Fix https://bugs.webkit.org/show_bug.cgi?id=19696
1903         Bug 19696: Memory leak in WebCore/editing/DeleteButtonController.cpp
1905         * editing/DeleteButtonController.cpp:
1906         (WebCore::DeleteButtonController::createDeletionUI): Delete the Image instance
1907         if the platform resource could not be loaded.
1909 2008-06-22  kuchhal  <kuchhal@yahoo.com>
1911         Reviewed by Darin Adler.
1913         Fix https://bugs.webkit.org/show_bug.cgi?id=19697
1914         Bug 19697: Redundant releaseRef causing memory leak
1916         * platform/win/ClipboardUtilitiesWin.cpp:
1917         (WebCore::fragmentFromCF_HTML):
1919 2008-06-21  Sam Weinig  <sam@webkit.org>
1921         Fix Windows build.
1923         * bindings/scripts/CodeGeneratorCOM.pm:
1924         * html/HTMLInputElement.idl:
1926 2008-06-21  Timothy Hatcher  <timothy@apple.com>
1928         Fix a typo "new" in the keywords list for hte JavaScript
1929         syntax highlighter. And adds "get" and "set" to the keyword list.
1931         Reviewed by Sam Weinig.
1933         * page/inspector/SourceFrame.js:
1934         (WebInspector.SourceFrame.prototype._syntaxHighlightJavascriptLine):
1935         Fixes the "new" typo and adds "get" and "set".
1937 2008-06-21  David Kilzer  <ddkilzer@apple.com>
1939         Bug 7931: Escaped elements within a textarea block can cause the textarea box to be closed prematurely
1941         <https://bugs.webkit.org/show_bug.cgi?id=7931>
1943         Reviewed by Darin.
1945         Tests: fast/parser/entity-end-iframe-tag.html
1946                fast/parser/entity-end-script-tag.html
1947                fast/parser/entity-end-style-tag.html
1948                fast/parser/entity-end-textarea-tag.html
1949                fast/parser/entity-end-title-tag.html
1950                fast/parser/entity-end-xmp-tag.html
1952         Previously the parser accepted end tags for textarea, title and
1953         iframe elements that contained entity-escaped characters such as
1954         '&lt;'.  The fix is to save the position of the last entity-escaped
1955         character converted and to use that to make sure the end tag does
1956         not contain an escaped character.
1958         Note that this was not an issue for script, style and xmp elements
1959         since they already ignored entity-escaped characters.
1961         * html/HTMLTokenizer.cpp:
1962         (WebCore::HTMLTokenizer::parseSpecial): When looking for a closing
1963         tag, ignore any text with entity-escaped characters by making sure
1964         lastDecodedEntityPosition is less than the first character of the
1965         end tag.
1967 2008-06-21  Sam Weinig  <sam@webkit.org>
1969         Reviewed by Dan Bernstein.
1971         Fix for https://bugs.webkit.org/show_bug.cgi?id=19647
1972         REGRESSION: Problem with extjs (insertAdjacentHTML)
1974         Test: fast/dynamic/insertAdjacentHTML-allowed-parents.html
1976         * html/HTMLElement.cpp:
1977         (WebCore::HTMLElement::insertAdjacentHTML): Don't use innerHTML logic for creating
1978         the DocumentFragment from the html string.
1980 2008-06-21  Adam Barth  <abarth@webkit.org>
1982         Reviewed by Sam Weinig.
1984         Log error messages to the console when we deny a request for a URL.
1985         These error messages do not appear in LayoutTests, but they do
1986         appear in the WebInspector.
1988         * dom/XMLTokenizer.cpp:
1989         (WebCore::shouldAllowExternalLoad):
1990         * loader/DocLoader.cpp:
1991         (WebCore::DocLoader::requestResource):
1992         (WebCore::DocLoader::printAccessDeniedMessage):
1993         * loader/DocLoader.h:
1994         * xml/XSLTProcessor.cpp:
1995         (WebCore::docLoaderFunc):
1997 2008-06-21  Adam Barth  <abarth@webkit.org>
1999         Reviewed by Sam Weinig.
2001         Fix <https://bugs.webkit.org/show_bug.cgi?id=19649>:
2002           XSL style sheets allowed across origins
2004         Block cross-orgin loads of XSL style sheets, matching Internet
2005         Explorer, Firefox, and Opera.  Also, we now block loading of XBL
2006         across origins, matching Firefox.  The XBL behavior does not appear
2007         testable because XBL seems to not be enabled.
2009         Test: http/tests/security/cross-origin-xsl-BLOCKED.html
2011         * loader/DocLoader.cpp:
2012         (WebCore::DocLoader::requestResource):
2014 2008-06-21  Marvin Decker  <marv.decker@gmail.com>
2016         Reviewed by Dave Hyatt.
2018         - fix https://bugs.webkit.org/show_bug.cgi?id=19542
2019           <rdar://problem/6007976> Crash in Font::glyphDataForCharacter when getting small caps data
2021         Adds a NULL check for getting the small caps page of glyph data. The
2022         page() function can explicitly return null in some cases, and every
2023         other usage in this function does the check.
2025         * platform/graphics/Font.cpp:
2026         (WebCore::Font::glyphDataForCharacter):
2028 2008-06-21  Alex Taylor  <darwin@milliamp.org>
2030         Reviewed by Dan Bernstein.
2032         Fixes <https://bugs.webkit.org/show_bug.cgi?id=12425>
2034         Adds support for border-radius on legend elements.
2035         Fieldsets with a legend and rounded borders now have a clipping region set
2036         around the legend.
2037         
2038         Test: fast/borders/fieldsetBorderRadius.html
2040         * rendering/RenderFieldset.cpp:
2041         (WebCore::RenderFieldset::paintBoxDecorations):
2042         (WebCore::RenderFieldset::paintBorderMinusLegend): Removed a FIXME.
2044 2008-06-21  Kevin Ollivier  <kevino@theolliviers.com>
2046         wx build fix. Adding CSSVariable* API sources to the Bakefiles.
2048         * WebCoreSources.bkl:
2050 2008-06-20  Sam Weinig  <sam@webkit.org>
2052         Fix Windows build.
2054         * bindings/scripts/CodeGeneratorCOM.pm:
2056 2008-06-20  Jan Michael Alonzo  <jmalonzo@webkit.org>
2058         Gtk build fix: Add files missing in the previous fix (r34705)
2060         * GNUmakefile.am:
2062 2008-06-20  Dan Bernstein  <mitz@apple.com>
2064         Reviewed by Sam Weinig.
2066         - fix leak of mask images
2068         * rendering/RenderObject.cpp:
2069         (WebCore::RenderObject::arenaDelete): Added a call to removeClient() on
2070         the mask box image.
2072 2008-06-20  Jan Michael Alonzo  <jmalonzo@webkit.org>
2074         Gtk build fix for r34702, r34700 and r34693
2075         Qt build fix for r34700 and r34693
2077         * GNUmakefile.am:
2078         * WebCore.pro:
2079         * platform/gtk/RenderThemeGtk.cpp:
2080         * platform/gtk/RenderThemeGtk.h:
2081         * platform/qt/RenderThemeQt.cpp:
2082         * platform/qt/RenderThemeQt.h:
2084 2008-06-20  Sam Weinig  <sam@webkit.org>
2086         Reviewed by Adele Peterson.
2088         Add 'files' property to the HTMLInputElement, which returns a FileList object 
2089         (when type=file, null otherwise) containing a list of all the files selected.
2090         It currently always contains only 0 or 1 files as multifile input is not supported 
2091         yet.  The list contains File objects which contains the name and size of the file. 
2092         The inspiration for these interfaces is from:
2093             - http://developer.mozilla.org/en/docs/nsIDOMFileList
2094             - http://developer.mozilla.org/en/docs/nsIDOMFile
2096         Also fixes <rdar://problem/6022802>
2098         * DerivedSources.make:
2099         * GNUmakefile.am:
2100         * WebCore.pro:
2101         * WebCore.vcproj/WebCore.vcproj:
2102         * WebCore.xcodeproj/project.pbxproj:
2103         * WebCoreSources.bkl:
2104         * bindings/objc/DOMInternal.h:
2105         * bindings/scripts/CodeGenerator.pm:
2106         * bindings/scripts/IDLStructure.pm:
2107         * html/File.cpp: Added.
2108         (WebCore::File::File):
2109         (WebCore::File::fileSize):
2110         * html/File.h: Added.
2111         (WebCore::File::create):
2112         (WebCore::File::fileName):
2113         (WebCore::File::path):
2114         * html/File.idl: Added.
2115         * html/FileList.cpp: Added.
2116         (WebCore::FileList::FileList):
2117         (WebCore::FileList::item):
2118         * html/FileList.h: Added.
2119         (WebCore::FileList::create):
2120         (WebCore::FileList::length):
2121         (WebCore::FileList::isEmpty):
2122         (WebCore::FileList::clear):
2123         (WebCore::FileList::append):
2124         * html/FileList.idl: Added.
2125         * html/HTMLInputElement.cpp:
2126         (WebCore::HTMLInputElement::setInputType):
2127         (WebCore::HTMLInputElement::appendFormData):
2128         (WebCore::HTMLInputElement::value):
2129         (WebCore::HTMLInputElement::setValue):
2130         (WebCore::HTMLInputElement::setValueFromRenderer):
2131         (WebCore::HTMLInputElement::files):
2132         * html/HTMLInputElement.h:
2133         * html/HTMLInputElement.idl:
2134         * page/DOMWindow.idl:
2136 2008-06-20  David Hyatt  <hyatt@apple.com>
2138         Make sure CSS variables work inside the inline style attribute.
2140         Reviewed by Beth
2142         Added fast/css/variables/inline-style-test.html
2144         * css/CSSMutableStyleDeclaration.cpp:
2145         (WebCore::CSSMutableStyleDeclaration::removeProperty):
2146         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
2148 2008-06-20  David Hyatt  <hyatt@apple.com>
2150         Add support for the CSSVariablesRule and CSSVariablesDeclaration DOM APIs.  These allow querying of
2151         variables names and values, as well as iteration, setting and removal.
2153         Reviewed by Sam
2155         Added multiple new tests to fast/css/variables/
2157         * DerivedSources.make:
2158         * WebCore.xcodeproj/project.pbxproj:
2159         * bindings/js/JSCSSRuleCustom.cpp:
2160         (WebCore::toJS):
2161         * bindings/objc/DOMInternal.h:
2162         * bindings/scripts/CodeGeneratorJS.pm:
2163         * css/CSSPrimitiveValue.cpp:
2164         (WebCore::CSSPrimitiveValue::parserValue):
2165         * css/CSSVariablesDeclaration.cpp:
2166         (WebCore::CSSVariablesDeclaration::removeVariable):
2167         (WebCore::CSSVariablesDeclaration::setVariable):
2168         (WebCore::CSSVariablesDeclaration::setCssText):
2169         (WebCore::CSSVariablesDeclaration::setChanged):
2170         * css/CSSVariablesDeclaration.h:
2171         * css/CSSVariablesDeclaration.idl: Added.
2172         * css/CSSVariablesRule.h:
2173         * css/CSSVariablesRule.idl: Added.
2175 2008-06-20  Kevin McCullough  <kmccullough@apple.com>
2177         Rubber stamped by Adele. 
2179         * manual-tests/inspector/profiler-test-stop-profiling-after-setTimeout.html: Added.
2181 2008-06-20  Kevin McCullough  <kmccullough@apple.com>
2183         Reviewed by Tim.
2185         <rdar://problem/5958770> JSProfiler: Time incorrectly given to (idle)
2186         if profiling is started and finished within the same function. (19230)
2187         - Now we profile one more stack frame up from the last frame to allocate
2188         the time spent in it, if it exists.
2190         * page/Console.cpp:
2191         * manual-tests/inspector/profiler-test-start-and-stop-profiling-in-the-same-function.html: Added.
2192         (WebCore::Console::profile): When stating the profiler give a client for
2193         the callback of when the profile actually finishes.
2194         (WebCore::Console::profileEnd): No longer needs to handle the return of
2195         the profile object since it will be retruned in the client's callback.
2196         (WebCore::Console::finishedProfiling): Implemenet the ProfileClient
2197         callback method.
2198         * page/Console.h: Inherit from the ProfileClient.
2199         * page/InspectorController.cpp:
2200         (WebCore::InspectorController::startUserInitiatedProfiling): Use the
2201         client callback.
2202         (WebCore::InspectorController::stopUserInitiatedProfiling): Does not
2203         need to handle the profile being returned as it is now handled by the
2204         client callback.
2205         (WebCore::InspectorController::finishedProfiling): Implement the
2206         ProfileClient callback method.
2207         * page/InspectorController.h: Inherit from the ProfileClient.
2209 2008-06-20  Timothy Hatcher  <timothy@apple.com>
2211         Makes the JavaScript syntax highlighter process lines in chunks
2212         so the user interface isn't blocked for large script files.
2214         https://bugs.webkit.org/show_bug.cgi?id=19677
2216         Reviewed by Adam Roben.
2218         * page/inspector/SourceFrame.js:
2219         (WebInspector.SourceFrame.prototype._addMessageToSource): Use the cells
2220         property on the row instead of getElementsByTagName.
2221         (WebInspector.SourceFrame.prototype.syntaxHighlightJavascript): Use the
2222         cells property on the row instead of getElementsByTagName. Added
2223         a nested processChunk function that highlights 10 lines at a time
2224         This processChunk function is called at an interval of 25ms. The
2225         code is still highlighted quickly, and the user can't tell it wasn't
2226         highlighted all at once.
2228 2008-06-20  Timothy Hatcher  <timothy@apple.com>
2230         Fixes a bug where the source view in the Resources panel had a
2231         couple of extra pixels at the bottom when fully scrolled.
2233         Reviewed by Adam Roben.
2235         * page/inspector/SourceFrame.js:
2236         (WebInspector.SourceFrame.prototype.set autoSizesToFitContentHeight):
2237         Call removeStyleClass instead of addStyleClass for "webkit-height-sized-to-fit"
2238         when sizing to fit is being disabled.
2239         * page/inspector/inspector.css:
2240         (.resource-view.headers-visible .source-view-frame): Added the
2241         vertical-align: top property to prevent line alignment from adding extra
2242         pixels on the bottom.
2244 2008-06-20  Timothy Hatcher  <timothy@apple.com>
2246         Changed all lineHeight, baselinePosition and verticalPositionHint
2247         calls to return int instead of short. The short was overflowing
2248         when a value greater than 32,767 was encountered.
2250         Fixes: iframes with a height of 32,768px or greater do not layout correctly
2251         https://bugs.webkit.org/show_bug.cgi?id=19679
2253         Reviewed by Dave Hyatt.
2255         Test: fast/css/line-height-overflow.html
2257         * rendering/RenderBR.cpp:
2258         (WebCore::RenderBR::baselinePosition):
2259         * rendering/RenderBR.h:
2260         * rendering/RenderBlock.cpp:
2261         (WebCore::RenderBlock::lineHeight):
2262         * rendering/RenderBlock.h:
2263         * rendering/RenderFlow.cpp:
2264         * rendering/RenderFlow.h:
2265         * rendering/RenderListBox.cpp:
2266         * rendering/RenderListBox.h:
2267         * rendering/RenderListMarker.cpp:
2268         (WebCore::RenderListMarker::lineHeight):
2269         * rendering/RenderListMarker.h:
2270         * rendering/RenderObject.cpp:
2271         (WebCore::RenderObject::verticalPositionHint):
2272         * rendering/RenderObject.h:
2273         (WebCore::):
2274         * rendering/RenderPath.cpp:
2275         (WebCore::RenderPath::lineHeight):
2276         * rendering/RenderPath.h:
2277         * rendering/RenderReplaced.cpp:
2278         (WebCore::RenderReplaced::lineHeight):
2279         * rendering/RenderReplaced.h:
2280         * rendering/RenderSVGContainer.cpp:
2281         (WebCore::RenderSVGContainer::lineHeight):
2282         * rendering/RenderSVGContainer.h:
2283         * rendering/RenderSVGHiddenContainer.cpp:
2284         (WebCore::RenderSVGHiddenContainer::lineHeight):
2285         * rendering/RenderSVGHiddenContainer.h:
2286         * rendering/RenderSVGRoot.cpp:
2287         (WebCore::RenderSVGRoot::lineHeight):
2288         * rendering/RenderSVGRoot.h:
2289         * rendering/RenderSlider.cpp:
2290         * rendering/RenderSlider.h:
2291         * rendering/RenderTableCell.cpp:
2292         * rendering/RenderTableCell.h:
2293         * rendering/RenderTableCol.h:
2294         * rendering/RenderTableRow.h:
2295         * rendering/RenderTableSection.h:
2296         * rendering/RenderText.cpp:
2297         * rendering/RenderText.h:
2298         * rendering/RenderTextControl.cpp:
2299         * rendering/RenderTextControl.h:
2300         * rendering/RenderTheme.cpp:
2301         * rendering/RenderTheme.h:
2302         * rendering/RenderThemeMac.h:
2303         * rendering/RenderThemeMac.mm:
2304         * rendering/RenderThemeSafari.cpp:
2305         * rendering/RenderThemeSafari.h:
2307 2008-06-20  Dan Bernstein  <mitz@apple.com>
2309         Reviewed by Darin Adler.
2311         - fix https://bugs.webkit.org/show_bug.cgi?id=19519
2312           <rdar://problem/6007345> DOM modification causes stack exhaustion (BUTTON OBJECT COLGROUP)
2314         Test: fast/table/prepend-in-anonymous-table.html
2316         * rendering/RenderBlock.cpp:
2317         (WebCore::RenderBlock::addChildToFlow): Added code to handle the case
2318         of inserting before a child that has been wrapped by an anonymous table,
2319         in which case if the new child is the type that needs to be in a table,
2320         it is inserted into the table, and otherwise it is inserted before the
2321         table.
2322         * rendering/RenderTable.cpp:
2323         (WebCore::RenderTable::addChild): Added table-column-group alongside
2324         table-caption as content that can exist inside an anonymous table
2325         without being wrapped in a table section.
2327 2008-06-20  David Hyatt  <hyatt@apple.com>
2329         Allow CSS variables to support arbitrary expressions as values instead of just a single term.
2331         Reviewed by Sam
2333         Removed fast/css/variables/single-term-test.html and replaced with multiple-term-test.html
2335         * css/CSSGrammar.y:
2336         * css/CSSParser.cpp:
2337         (WebCore::CSSParser::addVariable):
2338         * css/CSSParser.h:
2339         * css/CSSStyleSelector.cpp:
2340         (WebCore::CSSStyleSelector::addMatchedDeclaration):
2341         * css/CSSVariablesDeclaration.cpp:
2342         (WebCore::CSSVariablesDeclaration::CSSVariablesDeclaration):
2343         (WebCore::CSSVariablesDeclaration::getVariableValue):
2344         (WebCore::CSSVariablesDeclaration::addParsedVariable):
2345         (WebCore::CSSVariablesDeclaration::getParsedVariable):
2346         * css/CSSVariablesDeclaration.h:
2347         (WebCore::CSSVariablesDeclaration::create):
2349 2008-06-19  Dan Bernstein  <mitz@apple.com>
2351         Reviewed by John Sullivan.
2353         - fix a bug where anonymous tables were inserted in the wrong place
2355         Tests: tables/mozilla/bugs/bug2479-2.html
2356                tables/mozilla/bugs/bug278266.html
2357                tables/mozilla/bugs/bug8411.xml
2359         * rendering/RenderContainer.cpp:
2360         (WebCore::RenderContainer::addChild): Changed to create an anonymous
2361         table and insert it before beforeChild unless the insertion point is
2362         right after an existing anonymous table, in which case the existing
2363         table is used.
2365 2008-06-19  Justin Garcia  <justin.garcia@apple.com>
2367         Reviewed by Oliver.
2369         <https://bugs.webkit.org/show_bug.cgi?id=16049>
2370         execCommand('backColor') fails on collapsed selections
2372         * editing/EditorCommand.cpp:
2373         (WebCore::CommandEntry::): Enable BackColor for caret selections, and
2374         disable ForeColor in plaintext-only regions.
2376 2008-06-19  Justin Garcia  <justin.garcia@apple.com>
2378         Reviewed by John.
2380         <https://bugs.webkit.org/show_bug.cgi?id=19653>
2381         Typing style lost when creating list from, indenting or outdenting an empty paragraph
2382         
2383         There were two problems.  First, moveParagraphs didn't preserve the style of empty paragraphs.
2384         Second, indent, outdent and list creation returned false from preservesTypingStyle.
2385         The second problem couldn't be fixed by just adding preservesTypingStyle() { return true; }
2386         to those commands, though, because of other bugs.
2387         
2388         Cleaned up the implementation of typing style enough to remove FIXMEs for:
2389         
2390         <rdar://problem/3769899> Implementation of typing style needs improvement 
2391         
2392         which has actually been closed for some time now anyway.
2393         
2394         * dom/Document.cpp: Removed an unused header.
2395         * editing/CompositeEditCommand.cpp:
2396         (WebCore::CompositeEditCommand::moveParagraphs): Preserve the style of an empty paragraph, too.
2397         * editing/DeleteSelectionCommand.cpp:
2398         (WebCore::DeleteSelectionCommand::saveTypingStyleState): Removed FIXME.
2399         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): 
2400         Removed FIXME.  
2401         If there is a typing style to apply after a delete, apply it to any line break that acts as a paragraph
2402         placeholder, not only one that was inserted by deletion.  This fixes a bug where deleting
2403         <div><b>Bold</b><br></div>, changing the selection and then coming back and typing wouldn't 
2404         produce bold text.  
2405         Don't set the EditCommand's typingStyle, it has been removed (more on that later).
2406         (WebCore::DeleteSelectionCommand::doApply): We don't need to pass calculateTypingStyleAfterDelete
2407         the inserted placeholder because it will find it.
2408         (WebCore::DeleteSelectionCommand::preservesTypingStyle): Normally deletion doesn't preserve the 
2409         typing style that was present before it.  For example, type a character, Bold, then delete the 
2410         character and start typing.  The Bold typing style shouldn't stick around.  We got this right before 
2411         purely by chance. Deletion should preserve a typing style that *it* sets, however.
2412         * editing/DeleteSelectionCommand.h: No longer need to pass calculateTypingStyleAfterDelete
2413         the inserted placeholder.
2414         * editing/EditCommand.cpp:
2415         (WebCore::EditCommand::apply): 
2416         Clearing or not clearing a removed anchor should not be determined by whether or not a command 
2417         preservesTypingStyle().  For example, the deletion that removed an anchor (and stored it), may 
2418         not preserve the typing style, but that doesn't mean that it should then go and clear the removed 
2419         anchor.  All high level commands, and all commands that a TypingCommand spawns, except for
2420         text insertions, which should restore a removed anchor, should clear it.
2421         There is no longer a typing style on EditCommand, removed code that cleared it.  Code that clears the 
2422         *actual* typing style is now in Editor::appliedEditing, just like before.
2423         There is no longer a typing style on EditCommand, removed code to set one.
2424         (WebCore::EditCommand::styleAtPosition): Removed FIXME.
2425         * editing/EditCommand.h: 
2426         Removed code assosiated with m_typingStyle.
2427         Made preservesTypingStyle() public, so that we can call it from Editor::appliedEditing().
2428         * editing/Editor.cpp:
2429         (WebCore::Editor::appliedEditing):
2430         Removed code to preserve the removedAnchor during the call to setSelection, because we no longer
2431         request to clear the typing style with that call.  Also removed the FIXME about this.
2432         Before, a command would set the Frame's typing style by setting its own typingStyle, and then 
2433         letting code here, in appliedEditing pick that up and set it on the Frame.  Now, the command 
2434         itself sets the Frame's typing style.  Deletion is the only command that does this right now.
2435         * editing/IndentOutdentCommand.h:
2436         (WebCore::IndentOutdentCommand::preservesTypingStyle): Added, returns true.
2437         * editing/InsertLineBreakCommand.cpp:
2438         (WebCore::InsertLineBreakCommand::doApply): Removed FIXME.
2439         * editing/InsertListCommand.h:
2440         (WebCore::InsertListCommand::preservesTypingStyle): Added.
2441         * editing/InsertParagraphSeparatorCommand.cpp:
2442         (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Removed FIXME.
2443         * editing/InsertTextCommand.cpp:
2444         (WebCore::InsertTextCommand::input): Removed FIXME.
2445         * editing/ReplaceSelectionCommand.cpp:
2446         (WebCore::ReplaceSelectionCommand::doApply): Removed FIXME and also added one about clearing
2447         the typing style here.  It seems like it's something that could wait until after the command
2448         has been performed, since there is no code between this point and the end of the operation
2449         that queries or uses the typing style.
2451 2008-06-19  Dan Bernstein  <mitz@apple.com>
2453         Reviewed by Alexey Proskuryakov.
2455         - fix crash in CSSStyleDeclaration::copyPropertiesInSet()
2457         Covered by many editing tests
2459         * css/CSSStyleDeclaration.cpp:
2460         (WebCore::CSSStyleDeclaration::copyPropertiesInSet): Re-ordered to avoid
2461         null pointer deref.
2463 2008-06-19  David Hyatt  <hyatt@apple.com>
2465         Fix out of bounds bug in CSSVariablesDeclaration's item() method.
2467         Reviewed by Sam, Darin
2469         * css/CSSVariablesDeclaration.cpp:
2470         (WebCore::CSSVariablesDeclaration::item):
2471         * css/CSSVariablesDeclaration.h:
2473 2008-06-19  John Sullivan  <sullivan@apple.com>
2475         Reviewed by Darin
2476         
2477         Tweak to previous checkin
2479         * page/FrameView.cpp:
2480         (WebCore::FrameView::performPostLayoutTasks):
2481         clear m_firstLayoutCallbackPending before performing callback, to avoid recursion
2483 2008-06-19  John Sullivan  <sullivan@apple.com>
2485         Reviewed by Darin
2486         
2487         - fixed <rdar://problem/6021353> Assertion failure (!root->needsLayout()) after certain steps
2488         
2489         The didFirstLayout callback was called in a place where trouble would ensue if the client
2490         did any work that would cause the layout to be dirtied. Fixed by delaying the callback
2491         until performPostLayoutTasks.
2493         * page/FrameView.cpp:
2494         new m_firstLayoutCallbackPending instance member variable in FrameViewPrivate
2495         (WebCore::FrameViewPrivate::reset):
2496         set m_firstLayoutCallbackPending to false
2497         (WebCore::FrameView::layout):
2498         set m_firstLayoutCallbackPending instead of a local variable; don't do didFirstLayout callback here
2499         (WebCore::FrameView::performPostLayoutTasks):
2500         if m_firstLayoutCallbackPending is set, do didFirstLayout callback here, then clear m_firstLayoutCallbackPending
2502 2008-06-19  David Hyatt  <hyatt@apple.com>
2504         Implement some cleanup of CSS variables based off Darin's review comments.
2506         Reviewed by darin
2508         * css/CSSParser.cpp:
2509         (WebCore::CSSParser::parseVariable):
2510         (WebCore::CSSParser::checkForVariables):
2511         (WebCore::CSSParser::addUnresolvedProperty):
2512         * css/CSSStyleSelector.cpp:
2513         (WebCore::CSSStyleSelector::addMatchedDeclaration):
2514         * css/CSSVariableDependentValue.h:
2515         * css/CSSVariablesRule.cpp:
2516         (WebCore::CSSVariablesRule::CSSVariablesRule):
2518 2008-06-19  John Sullivan  <sullivan@apple.com>
2520         Rubber-stamped by Dan
2521         
2522         Prepended all FrameViewPrivate instance member variables with "m_" (in preparation
2523         for adding a new one in a future patch)
2525         * page/FrameView.cpp:
2526         (WebCore::FrameViewPrivate::FrameViewPrivate):
2527         (WebCore::FrameViewPrivate::reset):
2528         (WebCore::FrameView::~FrameView):
2529         (WebCore::FrameView::resetScrollbars):
2530         (WebCore::FrameView::didFirstLayout):
2531         (WebCore::FrameView::initScrollbars):
2532         (WebCore::FrameView::layoutCount):
2533         (WebCore::FrameView::needsFullRepaint):
2534         (WebCore::FrameView::layoutRoot):
2535         (WebCore::FrameView::layout):
2536         (WebCore::FrameView::scrollTo):
2537         (WebCore::FrameView::useSlowRepaints):
2538         (WebCore::FrameView::setUseSlowRepaints):
2539         (WebCore::FrameView::removeSlowRepaintObject):
2540         (WebCore::FrameView::setScrollbarsMode):
2541         (WebCore::FrameView::setVScrollbarMode):
2542         (WebCore::FrameView::setHScrollbarMode):
2543         (WebCore::FrameView::scheduleRelayout):
2544         (WebCore::FrameView::scheduleRelayoutOfSubtree):
2545         (WebCore::FrameView::layoutPending):
2546         (WebCore::FrameView::needsLayout):
2547         (WebCore::FrameView::unscheduleRelayout):
2548         (WebCore::FrameView::isTransparent):
2549         (WebCore::FrameView::setTransparent):
2550         (WebCore::FrameView::baseBackgroundColor):
2551         (WebCore::FrameView::setBaseBackgroundColor):
2552         (WebCore::FrameView::performPostLayoutTasks):
2553         (WebCore::FrameView::updateOverflowStatus):
2555 2008-06-19  David Hyatt  <hyatt@apple.com>
2557         Add initial support for CSS variables.  Non-dynamic cases should (hopefully) all work.  Things will get
2558         confused if you use the CSS OM to remove variables/inject variables, etc.  In addition no DOM APIs are
2559         exposed yet for the new variable interfaces.
2561         Reviewed by Beth
2563         Added many tests to fast/css/variables/
2565         * WebCore.xcodeproj/project.pbxproj:
2566         * css/CSSFunctionValue.cpp: Added.
2567         (WebCore::CSSFunctionValue::CSSFunctionValue):
2568         (WebCore::CSSFunctionValue::~CSSFunctionValue):
2569         (WebCore::CSSFunctionValue::cssText):
2570         (WebCore::CSSFunctionValue::parserValue):
2571         * css/CSSFunctionValue.h: Added.
2572         (WebCore::CSSFunctionValue::create):
2573         * css/CSSGrammar.y:
2574         * css/CSSMutableStyleDeclaration.cpp:
2575         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
2576         (WebCore::CSSMutableStyleDeclaration::copy):
2577         * css/CSSMutableStyleDeclaration.h:
2578         (WebCore::CSSMutableStyleDeclaration::create):
2579         (WebCore::CSSMutableStyleDeclaration::hasVariableDependentValue):
2580         * css/CSSParser.cpp:
2581         (WebCore::equal):
2582         (WebCore::equalIgnoringCase):
2583         (WebCore::CSSParser::~CSSParser):
2584         (WebCore::CSSParserString::lower):
2585         (WebCore::CSSParser::document):
2586         (WebCore::CSSParser::validUnit):
2587         (WebCore::unitFromString):
2588         (WebCore::CSSParser::checkForOrphanedUnits):
2589         (WebCore::CSSParser::parseValue):
2590         (WebCore::CSSParser::parseFillShorthand):
2591         (WebCore::CSSParser::parseTransitionShorthand):
2592         (WebCore::CSSParser::parseContent):
2593         (WebCore::CSSParser::parseFillImage):
2594         (WebCore::CSSParser::parseFillPosition):
2595         (WebCore::CSSParser::parseFillSize):
2596         (WebCore::CSSParser::parseFillProperty):
2597         (WebCore::CSSParser::parseTransitionDuration):
2598         (WebCore::CSSParser::parseTransitionRepeatCount):
2599         (WebCore::CSSParser::parseTimingFunctionValue):
2600         (WebCore::CSSParser::parseTransitionTimingFunction):
2601         (WebCore::CSSParser::parseTransitionProperty):
2602         (WebCore::skipCommaInDashboardRegion):
2603         (WebCore::CSSParser::parseDashboardRegions):
2604         (WebCore::CSSParser::parseCounterContent):
2605         (WebCore::CSSParser::parseShape):
2606         (WebCore::CSSParser::parseFont):
2607         (WebCore::CSSParser::parseFontFamily):
2608         (WebCore::CSSParser::parseFontFaceSrc):
2609         (WebCore::CSSParser::parseFontFaceUnicodeRange):
2610         (WebCore::CSSParser::parseColorParameters):
2611         (WebCore::CSSParser::parseHSLParameters):
2612         (WebCore::CSSParser::parseColor):
2613         (WebCore::CSSParser::parseColorFromValue):
2614         (WebCore::ShadowParseContext::commitLength):
2615         (WebCore::CSSParser::parseShadow):
2616         (WebCore::CSSParser::parseReflect):
2617         (WebCore::BorderImageParseContext::commitNumber):
2618         (WebCore::BorderImageParseContext::commitWidth):
2619         (WebCore::BorderImageParseContext::commitBorderImage):
2620         (WebCore::CSSParser::parseBorderImage):
2621         (WebCore::CSSParser::parseCounter):
2622         (WebCore::parseGradientPoint):
2623         (WebCore::parseGradientColorStop):
2624         (WebCore::CSSParser::parseGradient):
2625         (WebCore::CSSParser::parseCanvas):
2626         (WebCore::TransformOperationInfo::TransformOperationInfo):
2627         (WebCore::CSSParser::parseTransform):
2628         (WebCore::CSSParser::lex):
2629         (WebCore::CSSParser::text):
2630         (WebCore::CSSParser::createFloatingValueList):
2631         (WebCore::CSSParser::sinkFloatingValueList):
2632         (WebCore::CSSParser::createFloatingFunction):
2633         (WebCore::CSSParser::sinkFloatingFunction):
2634         (WebCore::CSSParser::sinkFloatingValue):
2635         (WebCore::CSSParser::createFloatingMediaQueryExp):
2636         (WebCore::CSSParser::createCharsetRule):
2637         (WebCore::CSSParser::createImportRule):
2638         (WebCore::CSSParser::createVariablesRule):
2639         (WebCore::CSSParser::addVariable):
2640         (WebCore::CSSParser::clearVariables):
2641         (WebCore::CSSParser::parseVariable):
2642         (WebCore::CSSParser::parsePropertyWithResolvedVariables):
2643         (WebCore::CSSParser::checkForVariables):
2644         (WebCore::CSSParser::addUnresolvedProperty):
2645         (WebCore::cssPropertyID):
2646         (WebCore::cssValueKeywordID):
2647         * css/CSSParser.h:
2648         * css/CSSParserValues.cpp: Added.
2649         (WebCore::CSSParserValueList::~CSSParserValueList):
2650         (WebCore::CSSParserValueList::addValue):
2651         (WebCore::CSSParserValueList::deleteValueAt):
2652         (WebCore::CSSParserValue::createCSSValue):
2653         * css/CSSParserValues.h: Added.
2654         (WebCore::CSSParserString::operator String):
2655         (WebCore::CSSParserString::operator AtomicString):
2656         (WebCore::CSSParserValue::):
2657         (WebCore::CSSParserValueList::CSSParserValueList):
2658         (WebCore::CSSParserValueList::size):
2659         (WebCore::CSSParserValueList::current):
2660         (WebCore::CSSParserValueList::next):
2661         (WebCore::CSSParserValueList::valueAt):
2662         (WebCore::CSSParserValueList::clear):
2663         (WebCore::CSSParserValueList::containsVariables):
2664         (WebCore::CSSParserFunction::~CSSParserFunction):
2665         * css/CSSPrimitiveValue.cpp:
2666         (WebCore::CSSPrimitiveValue::getStringValue):
2667         (WebCore::CSSPrimitiveValue::cssText):
2668         (WebCore::CSSPrimitiveValue::parserValue):
2669         * css/CSSPrimitiveValue.h:
2670         (WebCore::CSSPrimitiveValue::):
2671         (WebCore::CSSPrimitiveValue::setPrimitiveType):
2672         * css/CSSRule.h:
2673         (WebCore::CSSRule::):
2674         * css/CSSRule.idl:
2675         * css/CSSStyleDeclaration.cpp:
2676         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
2677         * css/CSSStyleSelector.cpp:
2678         (WebCore::CSSStyleSelector::addMatchedDeclaration):
2679         (WebCore::CSSStyleSelector::addVariables):
2680         (WebCore::CSSStyleSelector::resolveVariableDependentValue):
2681         (WebCore::CSSRuleSet::addRulesFromSheet):
2682         (WebCore::CSSStyleSelector::applyDeclarations):
2683         * css/CSSStyleSelector.h:
2684         * css/CSSValue.h:
2685         (WebCore::CSSValue::isVariableDependentValue):
2686         (WebCore::CSSValue::parserValue):
2687         * css/CSSValueList.cpp:
2688         (WebCore::CSSValueList::CSSValueList):
2689         (WebCore::CSSValueList::createParserValueList):
2690         * css/CSSValueList.h:
2691         (WebCore::CSSValueList::createFromParserValueList):
2692         * css/CSSVariableDependentValue.cpp: Added.
2693         (WebCore::CSSVariableDependentValue::CSSVariableDependentValue):
2694         (WebCore::CSSVariableDependentValue::~CSSVariableDependentValue):
2695         (WebCore::CSSVariableDependentValue::cssText):
2696         * css/CSSVariableDependentValue.h: Added.
2697         (WebCore::CSSVariableDependentValue::create):
2698         (WebCore::CSSVariableDependentValue::isVariableDependentValue):
2699         (WebCore::CSSVariableDependentValue::valueList):
2700         * css/CSSVariablesDeclaration.cpp: Added.
2701         (WebCore::CSSVariablesDeclaration::CSSVariablesDeclaration):
2702         (WebCore::CSSVariablesDeclaration::~CSSVariablesDeclaration):
2703         (WebCore::CSSVariablesDeclaration::getVariableValue):
2704         (WebCore::CSSVariablesDeclaration::removeVariable):
2705         (WebCore::CSSVariablesDeclaration::setVariable):
2706         (WebCore::CSSVariablesDeclaration::addParsedVariable):
2707         (WebCore::CSSVariablesDeclaration::getParsedVariable):
2708         (WebCore::CSSVariablesDeclaration::length):
2709         (WebCore::CSSVariablesDeclaration::item):
2710         (WebCore::CSSVariablesDeclaration::parentRule):
2711         (WebCore::CSSVariablesDeclaration::cssText):
2712         * css/CSSVariablesDeclaration.h: Added.
2713         (WebCore::CSSVariablesDeclaration::create):
2714         * css/CSSVariablesRule.cpp: Added.
2715         (WebCore::CSSVariablesRule::CSSVariablesRule):
2716         (WebCore::CSSVariablesRule::~CSSVariablesRule):
2717         (WebCore::CSSVariablesRule::cssText):
2718         * css/CSSVariablesRule.h: Added.
2719         (WebCore::CSSVariablesRule::media):
2720         (WebCore::CSSVariablesRule::variables):
2721         (WebCore::CSSVariablesRule::type):
2722         (WebCore::CSSVariablesRule::isVariablesRule):
2723         (WebCore::CSSVariablesRule::setDeclaration):
2724         * css/MediaQueryExp.cpp:
2725         (WebCore::MediaQueryExp::MediaQueryExp):
2726         * css/MediaQueryExp.h:
2727         * css/SVGCSSParser.cpp:
2728         (WebCore::CSSParser::parseSVGValue):
2729         (WebCore::CSSParser::parseSVGStrokeDasharray):
2730         * css/StyleBase.h:
2731         (WebCore::StyleBase::isVariablesRule):
2732         * css/tokenizer.flex:
2734 2008-06-19  Julien Chaffraix  <jchaffraix@webkit.org>
2736         Reviewed by Darin.
2738         Bug 19529 : Empty clients need to be refactored
2739         https://bugs.webkit.org/show_bug.cgi?id=19529
2741         - SVGImageEmptyClients' refactoring in order to be able to use them for other
2742         elements.
2744         - Trimmed empty spaces that were pointed out by git.
2746         * WebCore.xcodeproj/project.pbxproj:
2747         * loader/EmptyClients.h: Copied from WebCore/svg/graphics/SVGImageEmptyClients.h.
2749         (WebCore::EmptyChromeClient::~EmptyChromeClient):
2750         (WebCore::EmptyFrameLoaderClient::~EmptyFrameLoaderClient):
2751         (WebCore::EmptyEditorClient::~EmptyEditorClient):
2752         (WebCore::EmptyEditorClient::smartInsertDeleteEnabled):
2753         (WebCore::EmptyContextMenuClient::~EmptyContextMenuClient):
2754         (WebCore::EmptyDragClient::~EmptyDragClient):
2755         (WebCore::EmptyDragClient::createDragImageForLink):
2756         (WebCore::EmptyInspectorClient::~EmptyInspectorClient):
2757         Renamed SVGImageEmpty*Client classes to Empty*Client.
2759         * svg/graphics/SVGImage.cpp:
2760         (WebCore::SVGImage::dataChanged):
2761         * svg/graphics/SVGImageEmptyClients.h: Removed.
2763 2008-06-19  Dan Bernstein  <mitz@apple.com>
2765         Reviewed by Darin Adler.
2767         - fix <rdar://problem/6008098> REGRESSION: Crash at FontFallbackList::fontDataAt()
2769         Test: fast/css/font-face-multiple-families.html
2771         Made changes to reflect the fact that the relationship between
2772         CSSFontFace and CSSSegmentedFontFace is in fact many-to-many.
2774         * css/CSSFontFace.cpp:
2775         (WebCore::CSSFontFace::addedToSegmentedFontFace): Added.
2776         (WebCore::CSSFontFace::removedFromSegmentedFontFace): Added.
2777         (WebCore::CSSFontFace::fontLoaded): Changed to notify all segmented font
2778         faces that include this font face.
2779         (WebCore::CSSFontFace::getFontData): Updated to get the font selector
2780         from one of the segmented font faces.
2781         * css/CSSFontFace.h:
2782         (WebCore::CSSFontFace::CSSFontFace):
2783         * css/CSSFontSelector.cpp:
2784         (WebCore::CSSFontSelector::addFontFaceRule): Fixed the direct cause of
2785         the crash, namely releasing the font face when adding it to the first
2786         family that uses it, making it impossible to add it to the second and
2787         onwards families.
2788         * css/CSSSegmentedFontFace.cpp:
2789         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace): Added code to
2790         call CSSFontFace::removedFromSegmentedFontFace().
2791         (WebCore::CSSSegmentedFontFace::overlayRange): Added code to call
2792         CSSFontFace::{addedTo, removedFrom}SegmentedFontFace().
2794 2008-06-19  Alexey Proskuryakov  <ap@webkit.org>
2796         Qt build fix.
2798         * bridge/qt/qt_runtime.h: Include completion.h.
2800 2008-06-17  Alexey Proskuryakov  <ap@webkit.org>
2802         Reviewed by Darin.
2804         Prepare JavaScript heap for being per-thread.
2806         * ForwardingHeaders/kjs/JSGlobalData.h: Added.
2807         * bindings/js/GCController.cpp:
2808         (WebCore::collect):
2809         (WebCore::GCController::gcTimerFired):
2810         (WebCore::GCController::garbageCollectNow):
2811         * bindings/js/JSAudioConstructor.cpp:
2812         (WebCore::JSAudioConstructor::JSAudioConstructor):
2813         * bindings/js/JSCSSRuleCustom.cpp:
2814         (WebCore::toJS):
2815         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2816         (WebCore::JSCSSStyleDeclaration::nameGetter):
2817         * bindings/js/JSCSSValueCustom.cpp:
2818         (WebCore::toJS):
2819         * bindings/js/JSCanvasPixelArrayCustom.cpp:
2820         (WebCore::JSCanvasPixelArray::indexGetter):
2821         (WebCore::toJS):
2822         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2823         (WebCore::toJS):
2824         * bindings/js/JSClipboardCustom.cpp:
2825         (WebCore::JSClipboard::types):
2826         (WebCore::JSClipboard::getData):
2827         * bindings/js/JSCustomXPathNSResolver.cpp:
2828         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2829         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2830         (WebCore::JSDOMApplicationCache::addEventListener):
2831         (WebCore::JSDOMApplicationCache::removeEventListener):
2832         (WebCore::JSDOMApplicationCache::setOnchecking):
2833         (WebCore::JSDOMApplicationCache::setOnerror):
2834         (WebCore::JSDOMApplicationCache::setOnnoupdate):
2835         (WebCore::JSDOMApplicationCache::setOndownloading):
2836         (WebCore::JSDOMApplicationCache::setOnprogress):
2837         (WebCore::JSDOMApplicationCache::setOnupdateready):
2838         (WebCore::JSDOMApplicationCache::setOncached):
2839         * bindings/js/JSDOMBinding.cpp:
2840         (WebCore::jsStringOrNull):
2841         (WebCore::jsOwnedStringOrNull):
2842         (WebCore::jsStringOrUndefined):
2843         (WebCore::jsStringOrFalse):
2844         (WebCore::nonCachingStaticFunctionGetter):
2845         (WebCore::objectToStringFunctionGetter):
2846         * bindings/js/JSDOMBinding.h:
2847         (WebCore::DOMObject::DOMObject):
2848         (WebCore::cacheDOMObject):
2849         (WebCore::cacheSVGDOMObject):
2850         * bindings/js/JSDOMWindowBase.cpp:
2851         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
2852         (WebCore::JSDOMWindowBase::getValueProperty):
2853         (WebCore::JSDOMWindowBase::setListener):
2854         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
2855         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
2856         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
2857         (WebCore::windowProtoFuncAToB):
2858         (WebCore::windowProtoFuncBToA):
2859         (WebCore::windowProtoFuncSetTimeout):
2860         (WebCore::windowProtoFuncSetInterval):
2861         (WebCore::windowProtoFuncAddEventListener):
2862         * bindings/js/JSDOMWindowBase.h:
2863         * bindings/js/JSDOMWindowShell.cpp:
2864         (WebCore::JSDOMWindowShell::operator new):
2865         * bindings/js/JSDOMWindowShell.h:
2866         * bindings/js/JSDocumentCustom.cpp:
2867         (WebCore::toJS):
2868         * bindings/js/JSElementCustom.cpp:
2869         (WebCore::toJSNewlyCreated):
2870         * bindings/js/JSEventCustom.cpp:
2871         (WebCore::toJS):
2872         * bindings/js/JSEventListener.cpp:
2873         (WebCore::JSLazyEventListener::eventParameterName):
2874         (WebCore::JSLazyEventListener::parseCode):
2875         * bindings/js/JSEventTargetBase.cpp:
2876         (WebCore::jsEventTargetAddEventListener):
2877         * bindings/js/JSEventTargetBase.h:
2878         (WebCore::JSEventTargetPrototype::self):
2879         * bindings/js/JSEventTargetNode.cpp:
2880         (WebCore::JSEventTargetNode::setListener):
2881         * bindings/js/JSHTMLCollectionCustom.cpp:
2882         (WebCore::getNamedItems):
2883         (WebCore::toJS):
2884         * bindings/js/JSHTMLFormElementCustom.cpp:
2885         (WebCore::JSHTMLFormElement::nameGetter):
2886         * bindings/js/JSHTMLInputElementBase.cpp:
2887         (WebCore::JSHTMLInputElementBase::getValueProperty):
2888         * bindings/js/JSHTMLOptionElementConstructor.cpp:
2889         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
2890         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2891         (WebCore::JSHTMLOptionsCollection::length):
2892         * bindings/js/JSInspectedObjectWrapper.cpp:
2893         (WebCore::JSInspectedObjectWrapper::wrap):
2894         * bindings/js/JSInspectorCallbackWrapper.cpp:
2895         (WebCore::JSInspectorCallbackWrapper::wrap):
2896         * bindings/js/JSLocationCustom.cpp:
2897         (WebCore::JSLocation::toString):
2898         * bindings/js/JSNamedNodesCollection.cpp:
2899         (WebCore::JSNamedNodesCollection::lengthGetter):
2900         * bindings/js/JSNavigatorCustom.cpp:
2901         (WebCore::JSNavigator::appVersion):
2902         * bindings/js/JSNodeCustom.cpp:
2903         (WebCore::createWrapper):
2904         * bindings/js/JSNodeFilterCustom.cpp:
2905         (WebCore::JSNodeFilter::acceptNode):
2906         * bindings/js/JSPluginElementFunctions.cpp:
2907         (WebCore::getRuntimeObject):
2908         * bindings/js/JSRGBColor.cpp:
2909         (WebCore::getJSRGBColor):
2910         * bindings/js/JSSQLResultSetRowListCustom.cpp:
2911         (WebCore::JSSQLResultSetRowList::item):
2912         * bindings/js/JSSVGLazyEventListener.cpp:
2913         (WebCore::JSSVGLazyEventListener::eventParameterName):
2914         * bindings/js/JSStorageCustom.cpp:
2915         (WebCore::JSStorage::nameGetter):
2916         * bindings/js/JSStyleSheetCustom.cpp:
2917         (WebCore::toJS):
2918         * bindings/js/JSTextCustom.cpp:
2919         (WebCore::toJSNewlyCreated):
2920         * bindings/js/JSXMLHttpRequestConstructor.cpp:
2921         (WebCore::JSXMLHttpRequestConstructor::construct):
2922         * bindings/js/JSXMLHttpRequestCustom.cpp:
2923         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
2924         (WebCore::JSXMLHttpRequest::setOnload):
2925         (WebCore::JSXMLHttpRequest::setOnprogress):
2926         (WebCore::JSXMLHttpRequest::getResponseHeader):
2927         (WebCore::JSXMLHttpRequest::addEventListener):
2928         (WebCore::JSXMLHttpRequest::removeEventListener):
2929         * bindings/js/JSXSLTProcessorConstructor.cpp:
2930         (WebCore::JSXSLTProcessorConstructor::construct):
2931         * bindings/js/JSXSLTProcessorCustom.cpp:
2932         (WebCore::JSXSLTProcessor::getParameter):
2933         * bindings/scripts/CodeGeneratorJS.pm:
2934         * bridge/c/c_instance.cpp:
2935         (KJS::Bindings::CInstance::defaultValue):
2936         (KJS::Bindings::CInstance::stringValue):
2937         (KJS::Bindings::CInstance::numberValue):
2938         (KJS::Bindings::CInstance::valueOf):
2939         * bridge/c/c_instance.h:
2940         * bridge/c/c_utility.cpp:
2941         (KJS::Bindings::convertNPVariantToValue):
2942         * bridge/jni/jni_instance.cpp:
2943         (JavaInstance::stringValue):
2944         (JavaInstance::numberValue):
2945         (JavaInstance::invokeMethod):
2946         (JavaInstance::defaultValue):
2947         (JavaInstance::valueOf):
2948         * bridge/jni/jni_instance.h:
2949         * bridge/jni/jni_jsobject.h:
2950         * bridge/jni/jni_jsobject.mm:
2951         (JavaJSObject::call):
2952         (JavaJSObject::setMember):
2953         (JavaJSObject::setSlot):
2954         (JavaJSObject::convertJObjectToValue):
2955         (JavaJSObject::getListFromJArray):
2956         * bridge/jni/jni_objc.mm:
2957         (KJS::Bindings::dispatchJNICall):
2958         * bridge/jni/jni_runtime.cpp:
2959         (JavaArray::convertJObjectToArray):
2960         (JavaField::dispatchValueFromInstance):
2961         (JavaField::valueFromInstance):
2962         (JavaField::dispatchSetValueToInstance):
2963         (JavaArray::valueAt):
2964         * bridge/jni/jni_utility.h:
2965         * bridge/objc/objc_class.mm:
2966         (KJS::Bindings::ObjcClass::fallbackObject):
2967         * bridge/objc/objc_instance.h:
2968         * bridge/objc/objc_instance.mm:
2969         (ObjcInstance::defaultValue):
2970         (ObjcInstance::stringValue):
2971         (ObjcInstance::numberValue):
2972         (ObjcInstance::valueOf):
2973         * bridge/objc/objc_utility.h:
2974         * bridge/objc/objc_utility.mm:
2975         (KJS::Bindings::convertNSStringToString):
2976         (KJS::Bindings::convertObjcValueToValue):
2977         * bridge/runtime.cpp:
2978         (KJS::Bindings::Instance::createRuntimeObject):
2979         * bridge/runtime.h:
2980         (KJS::Bindings::Instance::valueOf):
2981         * bridge/runtime_array.cpp:
2982         (RuntimeArray::lengthGetter):
2983         * bridge/runtime_method.cpp:
2984         (RuntimeMethod::lengthGetter):
2985         * bridge/runtime_object.cpp:
2986         (RuntimeObjectImp::RuntimeObjectImp):
2987         (RuntimeObjectImp::methodGetter):
2988         (RuntimeObjectImp::defaultValue):
2989         * dom/make_names.pl:
2990         * xml/XMLHttpRequest.cpp:
2991         (WebCore::XMLHttpRequest::dropProtection):
2992         * bridge/qt/qt_class.cpp:
2993         (KJS::Bindings::QtClass::fallbackObject):
2994         * bridge/qt/qt_instance.cpp:
2995         (KJS::Bindings::QtRuntimeObjectImp::construct):
2996         (KJS::Bindings::QtInstance::getRuntimeObject):
2997         (KJS::Bindings::QtInstance::invokeDefaultMethod):
2998         (KJS::Bindings::QtInstance::defaultValue):
2999         (KJS::Bindings::QtInstance::stringValue):
3000         (KJS::Bindings::QtInstance::numberValue):
3001         (KJS::Bindings::QtInstance::valueOf):
3002         * bridge/qt/qt_instance.h:
3003         * bridge/qt/qt_runtime.cpp:
3004         (KJS::Bindings::convertValueToQVariant):
3005         (KJS::Bindings::convertQVariantToValue):
3006         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
3007         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
3008         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
3009         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
3010         (KJS::Bindings::QtConnectionObject::execute):
3011         Pass ExecState* where now required.
3013 2008-06-19  Timothy Hatcher  <timothy@apple.com>
3015         Update the JavaScript syntax highlight colors to match Xcode.
3016         This matches the other Xcode colors we are using for HTML.
3018         Reviewed by Dan Bernstein.
3020         * page/inspector/SourceFrame.js:
3022 2008-06-19  Keishi Hattori  <casey.hattori@gmail.com>
3024         Added JavaScript syntax highlighting to the Web Inspector.
3026         https://bugs.webkit.org/show_bug.cgi?id=14360
3028         Reviewed by Tim Hatcher and Adam Roben.
3030         * page/inspector/ScriptView.js: Added a call to syntaxHighlightJavascript.
3031         * page/inspector/SourceFrame.js:
3032         (WebInspector.SourceFrame.prototype._syntaxHighlightJavascriptLine): Added.
3033         Modifies a line content element.
3034         (WebInspector.SourceFrame.prototype.syntaxHighlightJavascript): Added.
3035         Syntax highlights the entire script.
3036         * page/inspector/SourceView.js: Added a call to syntaxHighlightJavascript.
3038 2008-06-19  Alex Mathews  <possessedpenguinbob@gmail.com>
3040         Reviewed by Oliver.
3042         Starting to clean up the SVG Filter code. Mostly adding 'create' wrapper
3043         functions and changing raw pointer fields to RefPtrs.
3045         * Configurations/WebCore.xcconfig:
3046         * WebCore.xcodeproj/project.pbxproj:
3047         * svg/SVGFEBlendElement.cpp:
3048         (WebCore::SVGFEBlendElement::~SVGFEBlendElement):
3049         (WebCore::SVGFEBlendElement::filterEffect):
3050         * svg/SVGFEBlendElement.h:
3051         * svg/SVGFEColorMatrixElement.cpp:
3052         (WebCore::SVGFEColorMatrixElement::~SVGFEColorMatrixElement):
3053         (WebCore::SVGFEColorMatrixElement::filterEffect):
3054         * svg/SVGFEColorMatrixElement.h:
3055         * svg/SVGFEComponentTransferElement.cpp:
3056         (WebCore::SVGFEComponentTransferElement::~SVGFEComponentTransferElement):
3057         (WebCore::SVGFEComponentTransferElement::filterEffect):
3058         * svg/SVGFEComponentTransferElement.h:
3059         * svg/SVGFECompositeElement.cpp:
3060         (WebCore::SVGFECompositeElement::~SVGFECompositeElement):
3061         (WebCore::SVGFECompositeElement::filterEffect):
3062         * svg/SVGFECompositeElement.h:
3063         * svg/SVGFEDiffuseLightingElement.cpp:
3064         (WebCore::SVGFEDiffuseLightingElement::~SVGFEDiffuseLightingElement):
3065         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
3066         * svg/SVGFEDiffuseLightingElement.h:
3067         * svg/SVGFEDisplacementMapElement.cpp:
3068         (WebCore::SVGFEDisplacementMapElement::~SVGFEDisplacementMapElement):
3069         (WebCore::SVGFEDisplacementMapElement::filterEffect):
3070         * svg/SVGFEDisplacementMapElement.h:
3071         * svg/SVGFEFloodElement.cpp:
3072         (WebCore::SVGFEFloodElement::~SVGFEFloodElement):
3073         (WebCore::SVGFEFloodElement::filterEffect):
3074         * svg/SVGFEFloodElement.h:
3075         * svg/SVGFEGaussianBlurElement.cpp:
3076         (WebCore::SVGFEGaussianBlurElement::~SVGFEGaussianBlurElement):
3077         (WebCore::SVGFEGaussianBlurElement::filterEffect):
3078         * svg/SVGFEGaussianBlurElement.h:
3079         * svg/SVGFEImageElement.cpp:
3080         (WebCore::SVGFEImageElement::~SVGFEImageElement):
3081         (WebCore::SVGFEImageElement::filterEffect):
3082         * svg/SVGFEImageElement.h:
3083         * svg/SVGFEMergeElement.cpp:
3084         (WebCore::SVGFEMergeElement::~SVGFEMergeElement):
3085         (WebCore::SVGFEMergeElement::filterEffect):
3086         * svg/SVGFEMergeElement.h:
3087         * svg/SVGFEOffsetElement.cpp:
3088         (WebCore::SVGFEOffsetElement::~SVGFEOffsetElement):
3089         (WebCore::SVGFEOffsetElement::filterEffect):
3090         * svg/SVGFEOffsetElement.h:
3091         * svg/SVGFESpecularLightingElement.cpp:
3092         (WebCore::SVGFESpecularLightingElement::~SVGFESpecularLightingElement):
3093         (WebCore::SVGFESpecularLightingElement::filterEffect):
3094         * svg/SVGFESpecularLightingElement.h:
3095         * svg/SVGFETileElement.cpp:
3096         (WebCore::SVGFETileElement::~SVGFETileElement):
3097         (WebCore::SVGFETileElement::filterEffect):
3098         * svg/SVGFETileElement.h:
3099         * svg/SVGFETurbulenceElement.cpp:
3100         (WebCore::SVGFETurbulenceElement::~SVGFETurbulenceElement):
3101         (WebCore::SVGFETurbulenceElement::filterEffect):
3102         * svg/SVGFETurbulenceElement.h:
3103         * svg/graphics/SVGResourceFilter.cpp:
3104         (WebCore::SVGResourceFilter::addFilterEffect):
3105         * svg/graphics/SVGResourceFilter.h:
3106         * svg/graphics/filters/SVGFEBlend.cpp:
3107         (WebCore::SVGFEBlend::create):
3108         * svg/graphics/filters/SVGFEBlend.h:
3109         * svg/graphics/filters/SVGFEColorMatrix.cpp:
3110         (WebCore::SVGFEColorMatrix::create):
3111         * svg/graphics/filters/SVGFEColorMatrix.h:
3112         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
3113         (WebCore::SVGFEComponentTransfer::create):
3114         * svg/graphics/filters/SVGFEComponentTransfer.h:
3115         * svg/graphics/filters/SVGFEComposite.cpp:
3116         (WebCore::SVGFEComposite::create):
3117         * svg/graphics/filters/SVGFEComposite.h:
3118         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
3119         (WebCore::SVGFEConvolveMatrix::create):
3120         * svg/graphics/filters/SVGFEConvolveMatrix.h:
3121         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
3122         (WebCore::SVGFEDiffuseLighting::create):
3123         (WebCore::SVGFEDiffuseLighting::~SVGFEDiffuseLighting):
3124         (WebCore::SVGFEDiffuseLighting::lightSource):
3125         (WebCore::SVGFEDiffuseLighting::setLightSource):
3126         * svg/graphics/filters/SVGFEDiffuseLighting.h:
3127         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
3128         (WebCore::SVGFEDisplacementMap::create):
3129         * svg/graphics/filters/SVGFEDisplacementMap.h:
3130         * svg/graphics/filters/SVGFEFlood.cpp:
3131         (WebCore::SVGFEFlood::create):
3132         * svg/graphics/filters/SVGFEFlood.h:
3133         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
3134         (WebCore::SVGFEGaussianBlur::create):
3135         * svg/graphics/filters/SVGFEGaussianBlur.h:
3136         * svg/graphics/filters/SVGFEImage.cpp:
3137         (WebCore::SVGFEImage::create):
3138         * svg/graphics/filters/SVGFEImage.h:
3139         * svg/graphics/filters/SVGFEMerge.cpp:
3140         (WebCore::SVGFEMerge::SVGFEMerge):
3141         (WebCore::SVGFEMerge::create):
3142         * svg/graphics/filters/SVGFEMerge.h:
3143         * svg/graphics/filters/SVGFEOffset.cpp:
3144         (WebCore::SVGFEOffset::create):
3145         * svg/graphics/filters/SVGFEOffset.h:
3146         * svg/graphics/filters/SVGFESpecularLighting.cpp:
3147         (WebCore::SVGFESpecularLighting::create):
3148         (WebCore::SVGFESpecularLighting::~SVGFESpecularLighting):
3149         (WebCore::SVGFESpecularLighting::lightSource):
3150         (WebCore::SVGFESpecularLighting::setLightSource):
3151         * svg/graphics/filters/SVGFESpecularLighting.h:
3152         * svg/graphics/filters/SVGFETile.cpp: Added.
3153         (WebCore::SVGFETile::SVGFETile):
3154         (WebCore::SVGFETile::create):
3155         * svg/graphics/filters/SVGFETile.h:
3156         * svg/graphics/filters/SVGFETurbulence.cpp:
3157         (WebCore::SVGFETurbulence::create):
3158         * svg/graphics/filters/SVGFETurbulence.h:
3159         * svg/graphics/filters/SVGFilterEffect.h:
3160         * svg/graphics/filters/SVGLightSource.h:
3162 2008-06-18  Adele Peterson  <adele@apple.com>
3164         Reviewed by Dan Bernstein.
3166         Fix assertion in fast/dom/ImageDocument-image-deletion.html caused by new media document creation.
3168         * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument):
3169           Create the media document after we're done processing pdfs and images.
3171 192008-06-17  Dan Bernstein  <mitz@apple.com>
3173         Reviewed by Darin Adler.
3175         - fix https://bugs.webkit.org/show_bug.cgi?id=19598
3176           Crash in WebCore::RenderBlock::determineStartPosition
3178         Test: fast/dynamic/floating-to-positioned-2.html
3180         * rendering/RenderObject.cpp:
3181         (WebCore::RenderObject::setStyle): Changed to also remove relatively
3182         positioned floats from object lists when they become positioned, because
3183         then they cease to be floating.
3185 2008-06-18  Darin Adler  <darin@apple.com>
3187         Reviewed by Mark Rowe.
3189         - fix storage leak
3191         * css/CSSMutableStyleDeclaration.cpp:
3192         (WebCore::CSSMutableStyleDeclaration::copy): Added an adoptRef that
3193         I missed when changing these objects to start with a refcount of 1.
3195 2008-06-18  Timothy Hatcher  <timothy@apple.com>
3197         Add a script build phase to remove the WebKit.qrc file from
3198         WebCore's resources. This file is used for the Qt port, but we
3199         copy the whole inspector folder for connivence and get this file.
3201         Reviewed by Adam Roben.
3203         * WebCore.xcodeproj/project.pbxproj: New script phase.
3205 2008-06-18  Timothy Hatcher  <timothy@apple.com>
3207         Combine the Web Inspector's JavaScript resources into one large
3208         script file to speed up loading of the Inspector. This is only
3209         done for Release and Production builds.
3211         Reviewed by Adam Roben.
3213         * WebCore.xcodeproj/project.pbxproj: Added a Streamline Inspector Source
3214         script build phase that calls combine-javascript-resources and
3215         moves files around in the build directory.
3216         * combine-javascript-resources: Added.
3218 2008-06-18  Rob Buis  <buis@kde.org>
3220         Reviewed by Darin.
3222         https://bugs.webkit.org/show_bug.cgi?id=18786
3223         Once rendered, SVG text elements removed from DOM continue to be displayed
3225         Repaint the text visual rect before removing it.
3227         * rendering/RenderSVGInlineText.cpp:
3228         (WebCore::RenderSVGInlineText::destroy):
3229         * rendering/RenderSVGInlineText.h:
3231 2008-06-18  Christian Dywan  <christian@twotoasts.de>
3233         Gtk build fix, brought up by Dirk Schulze.
3235         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
3237 2008-06-17  Beth Dakin  <bdakin@apple.com>
3239         Reviewed by Tim.
3241         This patch removes all instances of the phrase "TextMarker" from 
3242         function names in the C++ accessibility code. TextMarkers only 
3243         exists in the Objective-C code.
3245         * page/AccessibilityObject.cpp:
3246         (WebCore::AccessibilityObject::visiblePositionRangeForLine):
3247         (WebCore::AccessibilityObject::visiblePositionRangeForUnorderedPositions):
3248         (WebCore::AccessibilityObject::positionOfLeftWord):
3249         (WebCore::AccessibilityObject::positionOfRightWord):
3250         (WebCore::AccessibilityObject::leftLineVisiblePositionRange):
3251         (WebCore::AccessibilityObject::rightLineVisiblePositionRange):
3252         (WebCore::AccessibilityObject::sentenceForPosition):
3253         (WebCore::AccessibilityObject::paragraphForPosition):
3254         (WebCore::AccessibilityObject::styleRangeForPosition):
3255         (WebCore::AccessibilityObject::visiblePositionRangeForRange):
3256         (WebCore::AccessibilityObject::stringForVisiblePositionRange):
3257         (WebCore::AccessibilityObject::boundsForVisiblePositionRange):
3258         (WebCore::AccessibilityObject::lengthForVisiblePositionRange):
3259         (WebCore::AccessibilityObject::setSelectedVisiblePositionRange):
3260         (WebCore::AccessibilityObject::visiblePositionForPoint):
3261         (WebCore::AccessibilityObject::nextVisiblePosition):
3262         (WebCore::AccessibilityObject::previousVisiblePosition):
3263         (WebCore::AccessibilityObject::nextWordEnd):
3264         (WebCore::AccessibilityObject::previousWordStart):
3265         (WebCore::AccessibilityObject::nextLineEndPosition):
3266         (WebCore::AccessibilityObject::previousLineStartPosition):
3267         (WebCore::AccessibilityObject::nextSentenceEndPosition):
3268         (WebCore::AccessibilityObject::previousSentenceStartPosition):
3269         (WebCore::AccessibilityObject::nextParagraphEndPosition):
3270         (WebCore::AccessibilityObject::previousParagraphStartPosition):
3271         (WebCore::AccessibilityObject::visiblePositionForIndex):
3272         (WebCore::AccessibilityObject::accessibilityObjectForPosition):
3273         (WebCore::AccessibilityObject::lineForPosition):
3274         (WebCore::AccessibilityObject::plainTextRangeForVisiblePositionRange):
3275         (WebCore::AccessibilityObject::index):
3276         (WebCore::AccessibilityObject::doAXRangeForPosition):
3277         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
3278         (WebCore::AccessibilityObject::doAXLineForIndex):
3279         * page/AccessibilityObject.h:
3280         * page/AccessibilityRenderObject.cpp:
3281         (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
3282         (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
3283         (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):
3284         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
3285         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
3286         (WebCore::AccessibilityRenderObject::index):
3287         (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
3288         * page/AccessibilityRenderObject.h:
3289         * page/mac/AccessibilityObjectWrapper.mm:
3290         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
3291         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
3292         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
3293         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
3295 2008-06-17  Mark Rowe  <mrowe@apple.com>
3297         Reviewed by Darin Adler.
3299         <rdar://problem/5775802> WebCore should not force use of GCC 4.0.
3301         * WebCore.xcodeproj/project.pbxproj:
3303 2008-06-17  Darin Adler  <darin@apple.com>
3305         Reviewed by Sam.
3307         - eliminate the last RefCounted client that needs the "start at 0" behavior, NodeFilter
3309         - move handling of non-Attr arguments from the code generation script to the DOM
3310           itself (as with every other type of argument)
3312         * bindings/js/JSNodeFilterCustom.cpp:
3313         (WebCore::toNodeFilter): Changed return type to PassRefPtr. Use create instead of new.
3315         * bindings/objc/DOM.mm:
3316         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
3317         Use create instead of new.
3318         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
3319         Ditto.
3321         * bindings/scripts/CodeGeneratorJS.pm: Use PassRefPtr and RefPtr for toNodeFilter and
3322         the local variable for NodeFilter arguments. Remove the TypeCanFailConversion mechanism:
3323         It's no longer needed for Attr, was not having any effect for VoidCallback, and was
3324         returning false for all other types.
3326         * dom/Element.cpp:
3327         (WebCore::Element::setAttributeNode): Added code to return TYPE_MISMATCH_ERR when
3328         the attr is 0 -- this matches what the autogenerated bindings did before.
3329         (WebCore::Element::setAttributeNodeNS): Ditto.
3330         (WebCore::Element::removeAttributeNode): Ditto.
3332         * dom/NodeFilter.h: Added create, made constructor private, and got rid of code to
3333         initialize the refcount to 0.
3335         * html/CanvasPattern.h: Made CachedResourceClient base class private in a
3336         more-explicit way.
3338 2008-06-17  Adam Roben  <aroben@apple.com>
3340         Fix <rdar://6016755> Assertion failure when WebView is child of
3341         message-only window
3343         Reviewed by Ada Chan.
3345         No test possible.
3347         * platform/win/WindowMessageBroadcaster.cpp:
3348         (WebCore::WindowMessageBroadcaster::addListener): Only subclass the
3349         window when we're adding our first listener. Removed an assertion that
3350         an old WNDPROC was returned -- this will be 0 in the case of a
3351         message-only window. Added an assertion to help catch cases where we
3352         try to subclass the window twice.
3353         (WebCore::WindowMessageBroadcaster::unsubclassWindow): Removed an
3354         assertion that is not correct in the message-only window case.
3356 2008-06-17  Adele Peterson  <adele@apple.com>
3358         Attempt to fix builds by wrapping new code in #if ENABLE(VIDEO)
3360         * loader/MediaDocument.cpp:
3361         * loader/MediaDocument.h:
3363 2008-06-17  Adele Peterson  <adele@apple.com>
3365         Attempt to fix builds by wrapping new code in #if ENABLE(VIDEO)
3367         * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument):
3369 2008-06-17  Adele Peterson  <adele@apple.com>
3371         Reviewed by Brady.
3373         Fix for <rdar://problem/5605768> Render full-page video/audio with <video>/<audio> instead of QuickTime plug-in
3375         * WebCore.xcodeproj/project.pbxproj: Added MediaDocument class.
3376         * GNUmakefile.am: ditto.
3377         * WebCore.pro: ditto.
3378         * WebCore.vcproj/WebCore.vcproj: ditto.
3379         * WebCoreSources.bkl: ditto.
3381         * dom/DOMImplementation.cpp: (WebCore::DOMImplementation::createDocument):
3382           Check to see if the type can be played by our MediaPlayer, if so create a MediaDocument
3383         * dom/Document.h: (WebCore::Document::isMediaDocument): Added.
3385         * loader/MediaDocument.cpp: Added.
3386         (WebCore::MediaTokenizer::MediaTokenizer):
3387         (WebCore::MediaTokenizer::wantsRawData):
3388         (WebCore::MediaTokenizer::write):
3389         (WebCore::MediaTokenizer::createDocumentStructure):
3390         (WebCore::MediaTokenizer::writeRawData):
3391         (WebCore::MediaTokenizer::stopParsing):
3392         (WebCore::MediaTokenizer::finish):
3393         (WebCore::MediaTokenizer::isWaitingForScripts):
3394         (WebCore::MediaDocument::MediaDocument):
3395         (WebCore::MediaDocument::createTokenizer):
3396         * loader/MediaDocument.h: Added.
3397         (WebCore::MediaDocument::create):
3398         (WebCore::MediaDocument::isMediaDocument):
3400         * page/InspectorController.cpp: (WebCore::getResourceDocumentNode):
3401           Added MediaDocument case so it is handled the same as a PluginDocument or ImageDocument.
3402         * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::supportsType): Added.
3403         * platform/graphics/MediaPlayer.h:
3404         * rendering/RenderMedia.cpp: (WebCore::RenderMedia::updateControlVisibility):
3405           Instead of checking the html element to decide if the media is audio, check the player.
3406           This means that if a video element actually only contains audio, then we will still avoid fading the controls in and out.
3408 2008-06-17  Timothy Hatcher  <timothy@apple.com>
3410         Adds the file name and line number for call frames next to
3411         the function name in the Call Stack pane.
3413         https://bugs.webkit.org/show_bug.cgi?id=19586
3415         Reviewed by Adam Roben.
3417         * English.lproj/localizedStrings.js: Updated strings.
3418         * page/inspector/CallStackSidebarPane.js:
3419         (WebInspector.CallStackSidebarPane.prototype.update): Create a subtitle
3420         based on the URL and line number.
3422 2008-06-17  Timothy Hatcher  <timothy@apple.com>
3424         Use accurate call frame title's based on the call frame type.
3426         https://bugs.webkit.org/show_bug.cgi?id=19585
3428         Reviewed by Geoff Garen.
3430         * English.lproj/localizedStrings.js: Updated strings.
3431         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
3432         (WebCore::JSJavaScriptCallFrame::evaluate): Removed the isValid()
3433         check since the evaluate() functiondoes the check already.
3434         (WebCore::JSJavaScriptCallFrame::thisObject): Removed the isValid()
3435         check, since thisObject() does the check and returns null if invalid.
3436         (WebCore::JSJavaScriptCallFrame::type): Return a string
3437         based on the enum value of the type.
3438         (WebCore::JSJavaScriptCallFrame::scopeChain): Removed the isValid()
3439         check, since scopeChain() does the check and returns null if invalid.
3440         So just null check scopeChain().
3441         * page/JavaScriptCallFrame.cpp:
3442         (WebCore::JavaScriptCallFrame::type): Return the DebuggerCallFrame::Type.
3443         Return DebuggerCallFrame::UnknownType if the call frame is invalid.
3444         * page/JavaScriptCallFrame.h:
3445         * page/JavaScriptCallFrame.idl: Add the type property.
3446         * page/inspector/CallStackSidebarPane.js:
3447         (WebInspector.CallStackSidebarPane.prototype.update): Check the type
3448         of the call frame to create the correct title.
3449         * page/inspector/ScriptsPanel.js:
3450         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Use the
3451         "(program)" title for the file menu to match the call frames.
3453 2008-06-17  Timothy Hatcher  <timothy@apple.com>
3455         Remember the expanded state of objects in the Scope Variables pane when stepping.
3456         https://bugs.webkit.org/show_bug.cgi?id=19584
3458         Reviewed by Adam Roben.
3460         * page/inspector/ObjectPropertiesSection.js:
3461         (WebInspector.ObjectPropertiesSection): Add an optional argument
3462         that is the treeElementConstructor to use when making TreeElements.
3463         (WebInspector.ObjectPropertiesSection.prototype.onpopulate): Use
3464         the treeElementConstructor to create TreeElements.
3465         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate): Use
3466         the treeElementConstructor to create TreeElements.
3467         * page/inspector/ScopeChainSidebarPane.js:
3468         (WebInspector.ScopeChainSidebarPane.prototype.update): Create an
3469         _expandedProperties object on the callframe if one doesn't exist yet.
3470         Pass WebInspector.ScopeVariableTreeElement to the ObjectPropertiesSection
3471         as the TreeElement constructor we want to use.
3472         (WebInspector.ScopeVariableTreeElement): Added.
3473         (WebInspector.ScopeVariableTreeElement.prototype.onattach): Expand if the
3474         propertyIdentifier is in the pane's _expandedProperties.
3475         (WebInspector.ScopeVariableTreeElement.prototype.onexpand): Add the
3476         propertyIdentifier to the pane's _expandedProperties.
3477         (WebInspector.ScopeVariableTreeElement.prototype.oncollapse): Remove the
3478         propertyIdentifier from the pane's _expandedProperties.
3479         (WebInspector.ScopeVariableTreeElement.prototype.get propertyIdentifier):
3480         Return an identifier that has the section title, subtile and propertyPath concatenated.
3481         (WebInspector.ScopeVariableTreeElement.prototype.get propertyPath): Return a string
3482         that has the propertyNames up to the root ancestor concatenated with a period.
3484 2008-06-17  Timothy Hatcher  <timothy@apple.com>
3486         Focus the mainPanelsElement in a timeout so it happens after the
3487         initial focus, so it doesn't get reset to the first toolbar button.
3488         This initial focus happens on Mac when the window is made key and
3489         the WebHTMLView becomes the first responder.
3491         https://bugs.webkit.org/show_bug.cgi?id=19587
3493         Reviewed by Adele Peterson.
3495         * page/inspector/inspector.js:
3496         (WebInspector.loaded): Focus the mainPanelsElement in a timeout.
3498 2008-06-17  Timothy Hatcher  <timothy@apple.com>
3500         Use tabIndex in the Web Inspector for focusable areas.
3501         https://bugs.webkit.org/show_bug.cgi?id=19583
3503         Reviewed by Adam Roben.
3505         * page/inspector/Console.js:
3506         (WebInspector.Console): No longer make the messagesElement
3507         focusable since the engine handles the case for us. The promptElement
3508         now handles the key events.
3509         (WebInspector.Console.prototype.show): Set the current focus element
3510         to the prompt element.
3511         (WebInspector.Console.prototype.hide): Set the current focus element
3512         to WebInspector.previousFocusElement.
3513         (WebInspector.Console.prototype._messagesFocused): Removed.
3514         * page/inspector/DataGrid.js:
3515         (WebInspector.DataGrid): Remove the focusable class.
3516         * page/inspector/DatabaseQueryView.js:
3517         (WebInspector.DatabaseQueryView): Remove the focusable class. Set
3518         tabIndex to 0. The promptElement now handles the key events.
3519         (WebInspector.DatabaseQueryView.prototype._focused): Removed.
3520         * page/inspector/inspector.css: Updated selectors to use :focus
3521         instead of .focused and .blurred.
3522         * page/inspector/inspector.html: Removed focusable, focused and blurred
3523         classes and added tabindex attributes.
3524         * page/inspector/inspector.js:
3525         (WebInspector.get previousFocusElement): Added. Returns _previousFocusElement.
3526         (WebInspector.set currentFocusElement): Simplified. Stores the previous element
3527         in _previousFocusElement for clients that need it. Calls focus on the passed
3528         in element or blur on the previous element.
3529         (WebInspector.loaded): Removed the event listener for mousedown. Renamed
3530         changeFocus to focusChanged.
3531         (WebInspector.focusChanged): Renamed from changeFocus. Just sets the
3532         currentFocusElement to the event target.
3533         (WebInspector.startEditing): Changed to use tabIndex and blur events.
3534         Add a more robust check for restoring focus to the previous element
3535         when editing finishes that catches focused descendants.
3537 2008-06-17  Timothy Hatcher  <timothy@apple.com>
3539         Removed redundant if statements and early returns from
3540         AccessibilityRenderObject::ariaRoleAttribute.
3542         Reviewed by Sam Wenig.
3544         * page/AccessibilityRenderObject.cpp:
3545         (AccessibilityRenderObject::ariaRoleAttribute): Removed redundant if
3546         statements and early returns.
3548 2008-06-17  Timothy Hatcher  <timothy@apple.com>
3550         Removed duplicate implementations of setTabIndex. They all matched
3551         the HTMLElement::setTabIndex implementation.
3553         Reviewed by Sam Wenig.
3555         * html/HTMLAnchorElement.cpp: Removed setTabIndex.
3556         * html/HTMLAreaElement.cpp: Ditto.
3557         * html/HTMLFormControlElement.cpp: Ditto.
3558         * html/HTMLFormControlElement.h: Ditto.
3559         * html/HTMLObjectElement.cpp: Ditto.
3560         * html/HTMLObjectElement.h: Ditto.
3562 2008-06-17  Darin Adler  <darin@apple.com>
3564         Reviewed by Sam.
3566         - more of https://bugs.webkit.org/show_bug.cgi?id=17257
3567           start ref counts at 1 instead of 0 for speed
3569         Change StyleBase and all classes derived from it.
3571         * bindings/js/JSRGBColor.cpp:
3572         (WebCore::JSRGBColor::getValueProperty):
3573         * bindings/objc/DOMRGBColor.mm:
3574         (-[DOMRGBColor red]):
3575         (-[DOMRGBColor green]):
3576         (-[DOMRGBColor blue]):
3577         (-[DOMRGBColor alpha]):
3578         * css/CSSBorderImageValue.cpp:
3579         (WebCore::CSSBorderImageValue::cssText):
3580         * css/CSSBorderImageValue.h:
3581         (WebCore::CSSBorderImageValue::create):
3582         * css/CSSCanvasValue.h:
3583         (WebCore::CSSCanvasValue::create):
3584         (WebCore::CSSCanvasValue::setName):
3585         (WebCore::CSSCanvasValue::CSSCanvasValue):
3586         * css/CSSCharsetRule.cpp:
3587         (WebCore::CSSCharsetRule::CSSCharsetRule):
3588         * css/CSSCharsetRule.h:
3589         (WebCore::CSSCharsetRule::create):
3590         (WebCore::CSSCharsetRule::encoding):
3591         (WebCore::CSSCharsetRule::isCharsetRule):
3592         (WebCore::CSSCharsetRule::type):
3593         * css/CSSComputedStyleDeclaration.cpp:
3594         (WebCore::valueForShadow):
3595         (WebCore::valueForNinePieceImage):
3596         (WebCore::valueForReflection):
3597         (WebCore::getPositionOffsetValue):
3598         (WebCore::currentColorOrValidColor):
3599         (WebCore::getBorderRadiusCornerValue):
3600         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3601         * css/CSSComputedStyleDeclaration.h:
3602         (WebCore::computedStyle):
3603         * css/CSSCursorImageValue.h:
3604         (WebCore::CSSCursorImageValue::create):
3605         * css/CSSFontFaceRule.cpp:
3606         (WebCore::CSSFontFaceRule::CSSFontFaceRule):
3607         * css/CSSFontFaceRule.h:
3608         (WebCore::CSSFontFaceRule::create):
3609         (WebCore::CSSFontFaceRule::isFontFaceRule):
3610         (WebCore::CSSFontFaceRule::type):
3611         * css/CSSFontFaceSrcValue.h:
3612         (WebCore::CSSFontFaceSrcValue::create):
3613         (WebCore::CSSFontFaceSrcValue::createLocal):
3614         (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
3615         (WebCore::CSSFontFaceSrcValue::CSSFontFaceSrcValue):
3616         * css/CSSGradientValue.h:
3617         (WebCore::CSSGradientColorStop::CSSGradientColorStop):
3618         (WebCore::CSSGradientValue::create):
3619         (WebCore::CSSGradientValue::CSSGradientValue):
3620         * css/CSSImageGeneratorValue.h:
3621         (WebCore::CSSImageGeneratorValue::isImageGeneratorValue):
3622         * css/CSSImageValue.h:
3623         (WebCore::CSSImageValue::create):
3624         * css/CSSImportRule.cpp:
3625         (WebCore::CSSImportRule::CSSImportRule):
3626         (WebCore::CSSImportRule::setCSSStyleSheet):
3627         * css/CSSImportRule.h:
3628         (WebCore::CSSImportRule::create):
3629         (WebCore::CSSImportRule::isImportRule):
3630         (WebCore::CSSImportRule::type):
3631         * css/CSSInheritedValue.h:
3632         (WebCore::CSSInheritedValue::create):
3633         (WebCore::CSSInheritedValue::CSSInheritedValue):
3634         * css/CSSInitialValue.h:
3635         (WebCore::CSSInitialValue::createExplicit):
3636         (WebCore::CSSInitialValue::createImplicit):
3637         (WebCore::CSSInitialValue::CSSInitialValue):
3638         * css/CSSMediaRule.cpp:
3639         (WebCore::CSSMediaRule::CSSMediaRule):
3640         * css/CSSMediaRule.h:
3641         (WebCore::CSSMediaRule::create):
3642         (WebCore::CSSMediaRule::isMediaRule):
3643         (WebCore::CSSMediaRule::type):
3644         * css/CSSMutableStyleDeclaration.cpp:
3645         (WebCore::CSSMutableStyleDeclaration::setProperty):
3646         (WebCore::CSSMutableStyleDeclaration::setStringProperty):
3647         * css/CSSMutableStyleDeclaration.h:
3648         (WebCore::CSSMutableStyleDeclaration::create):
3649         * css/CSSPageRule.cpp:
3650         (WebCore::CSSPageRule::CSSPageRule):
3651         * css/CSSPageRule.h:
3652         (WebCore::CSSPageRule::create):
3653         * css/CSSParser.cpp:
3654         (WebCore::CSSParser::parseColor):
3655         (WebCore::CSSParser::parseValue):
3656         (WebCore::CSSParser::addFillValue):
3657         (WebCore::CSSParser::parseFillShorthand):
3658         (WebCore::CSSParser::addTransitionValue):
3659         (WebCore::CSSParser::parseTransitionShorthand):
3660         (WebCore::CSSParser::parseShorthand):
3661         (WebCore::CSSParser::parseContent):
3662         (WebCore::CSSParser::parseBackgroundColor):
3663         (WebCore::CSSParser::parseFillPositionXY):
3664         (WebCore::CSSParser::parseFillPosition):
3665         (WebCore::CSSParser::parseFillSize):
3666         (WebCore::CSSParser::parseFillProperty):
3667         (WebCore::CSSParser::parseTransitionDuration):
3668         (WebCore::CSSParser::parseTransitionRepeatCount):
3669         (WebCore::CSSParser::parseTransitionTimingFunction):
3670         (WebCore::CSSParser::parseTransitionProperty):
3671         (WebCore::CSSParser::parseDashboardRegions):
3672         (WebCore::CSSParser::parseCounterContent):
3673         (WebCore::CSSParser::parseShape):
3674         (WebCore::CSSParser::parseFont):
3675         (WebCore::CSSParser::parseFontFamily):
3676         (WebCore::CSSParser::parseFontFaceSrc):
3677         (WebCore::CSSParser::parseFontFaceUnicodeRange):
3678         (WebCore::ShadowParseContext::commitValue):
3679         (WebCore::ShadowParseContext::commitLength):
3680         (WebCore::CSSParser::parseShadow):
3681         (WebCore::CSSParser::parseReflect):
3682         (WebCore::BorderImageParseContext::commitNumber):
3683         (WebCore::BorderImageParseContext::commitBorderImage):
3684         (WebCore::CSSParser::parseBorderImage):
3685         (WebCore::CSSParser::parseCounter):
3686         (WebCore::parseGradientPoint):
3687         (WebCore::parseGradientColorStop):
3688         (WebCore::CSSParser::parseGradient):
3689         (WebCore::CSSParser::parseCanvas):
3690         (WebCore::CSSParser::parseTransform):
3691         (WebCore::CSSParser::createMediaList):
3692         (WebCore::CSSParser::createCharsetRule):
3693         (WebCore::CSSParser::createImportRule):
3694         (WebCore::CSSParser::createMediaRule):
3695         (WebCore::CSSParser::createStyleRule):
3696         (WebCore::CSSParser::createFontFaceRule):
3697         * css/CSSPrimitiveValue.h:
3698         (WebCore::CSSPrimitiveValue::):
3699         (WebCore::CSSPrimitiveValue::createIdentifier):
3700         (WebCore::CSSPrimitiveValue::createColor):
3701         (WebCore::CSSPrimitiveValue::create):
3702         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3703         (WebCore::CSSPrimitiveValue::isPrimitiveValue):
3704         * css/CSSQuirkPrimitiveValue.h:
3705         (WebCore::CSSQuirkPrimitiveValue::create):
3706         * css/CSSReflectValue.h:
3707         (WebCore::CSSReflectValue::create):
3708         * css/CSSRule.cpp:
3709         (WebCore::CSSRule::parentRule):
3710         (WebCore::CSSRule::setCssText):
3711         * css/CSSRule.h:
3712         (WebCore::CSSRule::CSSRule):
3713         (WebCore::CSSRule::isRule):
3714         * css/CSSStyleDeclaration.cpp:
3715         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
3716         * css/CSSStyleDeclaration.h:
3717         * css/CSSStyleRule.cpp:
3718         (WebCore::CSSStyleRule::CSSStyleRule):
3719         * css/CSSStyleRule.h:
3720         (WebCore::CSSStyleRule::create):
3721         (WebCore::CSSStyleRule::isStyleRule):
3722         (WebCore::CSSStyleRule::type):
3723         * css/CSSStyleSelector.cpp:
3724         (WebCore::CSSStyleSelector::CSSStyleSelector):
3725         (WebCore::parseUASheet):
3726         (WebCore::CSSRuleSet::addRulesFromSheet):
3727         (WebCore::CSSStyleSelector::applyProperty):
3728         * css/CSSStyleSheet.cpp:
3729         (WebCore::CSSStyleSheet::checkLoaded):
3730         * css/CSSStyleSheet.h:
3731         (WebCore::CSSStyleSheet::create):
3732         (WebCore::CSSStyleSheet::isCSSStyleSheet):
3733         (WebCore::CSSStyleSheet::type):
3734         * css/CSSTimingFunctionValue.h:
3735         (WebCore::CSSTimingFunctionValue::create):
3736         (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
3737         (WebCore::CSSTimingFunctionValue::isTransitionTimingFunctionValue):
3738         * css/CSSTransformValue.cpp:
3739         (WebCore::CSSTransformValue::CSSTransformValue):
3740         (WebCore::CSSTransformValue::~CSSTransformValue):
3741         (WebCore::CSSTransformValue::addValue):
3742         (WebCore::CSSTransformValue::cssText):
3743         * css/CSSTransformValue.h:
3744         (WebCore::CSSTransformValue::create):
3745         * css/CSSUnicodeRangeValue.h:
3746         (WebCore::CSSUnicodeRangeValue::create):
3747         (WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue):
3748         * css/CSSUnknownRule.h:
3749         * css/CSSValue.h:
3750         (WebCore::CSSValue::isImageGeneratorValue):
3751         (WebCore::CSSValue::isImageValue):
3752         (WebCore::CSSValue::isPrimitiveValue):
3753         (WebCore::CSSValue::isValueList):
3754         (WebCore::CSSValue::isSVGColor):
3755         (WebCore::CSSValue::isSVGPaint):
3756         (WebCore::CSSValue::CSSValue):
3757         * css/CSSValueList.h:
3758         (WebCore::CSSValueList::createCommaSeparated):
3759         (WebCore::CSSValueList::createSpaceSeparated):
3760         (WebCore::CSSValueList::isValueList):
3761         * css/FontFamilyValue.h:
3762         (WebCore::FontFamilyValue::create):
3763         * css/FontValue.h:
3764         (WebCore::FontValue::create):
3765         (WebCore::FontValue::FontValue):
3766         (WebCore::FontValue::isFontValue):
3767         * css/MediaList.cpp:
3768         (WebCore::MediaList::MediaList):
3769         (WebCore::MediaList::deleteMedium):
3770         (WebCore::MediaList::setMediaText):
3771         * css/MediaList.h:
3772         (WebCore::MediaList::create):
3773         (WebCore::MediaList::createAllowingDescriptionSyntax):
3774         (WebCore::MediaList::length):
3775         (WebCore::MediaList::mediaQueries):
3776         * css/MediaQueryEvaluator.cpp:
3777         (WebCore::MediaQueryEvaluator::eval):
3778         * css/MediaQueryExp.cpp:
3779         (WebCore::MediaQueryExp::MediaQueryExp):
3780         * css/SVGCSSComputedStyleDeclaration.cpp:
3781         (WebCore::glyphOrientationToCSSPrimitiveValue):
3782         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
3783         * css/SVGCSSParser.cpp:
3784         (WebCore::CSSParser::parseSVGValue):
3785         (WebCore::CSSParser::parseSVGStrokeDasharray):
3786         (WebCore::CSSParser::parseSVGPaint):
3787         (WebCore::CSSParser::parseSVGColor):
3788         * css/ShadowValue.h:
3789         (WebCore::ShadowValue::create):
3790         * css/StyleBase.h:
3791         (WebCore::StyleBase::isCSSStyleSheet):
3792         (WebCore::StyleBase::isFontFaceRule):
3793         (WebCore::StyleBase::isRule):
3794         (WebCore::StyleBase::isStyleRule):
3795         (WebCore::StyleBase::isStyleSheet):
3796         (WebCore::StyleBase::isXSLStyleSheet):
3797         (WebCore::StyleBase::StyleBase):
3798         * css/StyleList.cpp:
3799         * css/StyleList.h:
3800         (WebCore::StyleList::StyleList):
3801         * css/StyleSheet.h:
3802         (WebCore::StyleSheet::styleSheetChanged):
3803         (WebCore::StyleSheet::isStyleSheet):
3804         * dom/CSSMappedAttributeDeclaration.h:
3805         (WebCore::CSSMappedAttributeDeclaration::create):
3806         (WebCore::CSSMappedAttributeDeclaration::CSSMappedAttributeDeclaration):
3807         * dom/DOMImplementation.cpp:
3808         (WebCore::DOMImplementation::createCSSStyleSheet):
3809         * dom/Document.cpp:
3810         (WebCore::Document::createCSSStyleDeclaration):
3811         (WebCore::Document::setCSSStyleSheet):
3812         (WebCore::Document::elementSheet):
3813         (WebCore::Document::mappedElementSheet):
3814         (WebCore::Document::recalcStyleSelector):
3815         * dom/Node.cpp:
3816         (WebCore::Node::querySelector):
3817         (WebCore::Node::querySelectorAll):
3818         * dom/Position.cpp:
3819         (WebCore::Position::computedStyle):
3820         * dom/ProcessingInstruction.cpp:
3821         (WebCore::ProcessingInstruction::checkStyleSheet):
3822         (WebCore::ProcessingInstruction::setCSSStyleSheet):
3823         (WebCore::ProcessingInstruction::setXSLStyleSheet):
3824         * dom/ProcessingInstruction.h:
3825         * dom/StyleElement.cpp:
3826         (WebCore::StyleElement::createSheet):
3827         * dom/StyledElement.cpp:
3828         (WebCore::StyledElement::createInlineStyleDecl):
3829         (WebCore::StyledElement::createMappedDecl):
3830         * editing/ApplyStyleCommand.cpp:
3831         (WebCore::ApplyStyleCommand::ApplyStyleCommand):
3832         (WebCore::hasTextDecorationProperty):
3833         (WebCore::ApplyStyleCommand::extractAndNegateTextDecorationStyle):
3834         * editing/CompositeEditCommand.cpp:
3835         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
3836         * editing/DeleteSelectionCommand.cpp:
3837         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
3838         * editing/Editor.cpp:
3839         (WebCore::Editor::selectionHasStyle):
3840         (WebCore::Editor::setBaseWritingDirection):
3841         * editing/EditorCommand.cpp:
3842         (WebCore::executeApplyStyle):
3843         (WebCore::executeToggleStyle):
3844         (WebCore::executeApplyParagraphStyle):
3845         (WebCore::stateStyle):
3846         * editing/InsertParagraphSeparatorCommand.cpp:
3847         (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion):
3848         * editing/RemoveFormatCommand.cpp:
3849         (WebCore::RemoveFormatCommand::doApply):
3850         * editing/ReplaceSelectionCommand.cpp:
3851         (WebCore::ReplacementFragment::insertFragmentForTestRendering):
3852         * editing/markup.cpp:
3853         (WebCore::styleFromMatchedRulesForElement):
3854         (WebCore::appendStartMarkup):
3855         * html/HTMLBodyElement.cpp:
3856         (WebCore::HTMLBodyElement::createLinkDecl):
3857         * html/HTMLLinkElement.cpp:
3858         (WebCore::HTMLLinkElement::process):
3859         (WebCore::HTMLLinkElement::setCSSStyleSheet):
3860         * html/HTMLMediaElement.cpp:
3861         (WebCore::HTMLMediaElement::pickMedia):
3862         * html/HTMLTableElement.cpp:
3863         (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
3864         (WebCore::HTMLTableElement::addSharedCellBordersDecl):
3865         (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
3866         (WebCore::HTMLTableElement::addSharedGroupDecls):
3867         * page/DOMWindow.cpp:
3868         (WebCore::DOMWindow::getComputedStyle):
3869         * page/Frame.cpp:
3870         (WebCore::Frame::computeAndSetTypingStyle):
3871         (WebCore::Frame::selectionComputedStyle):
3872         * page/Frame.h:
3873         * rendering/style/RenderStyle.cpp:
3874         (WebCore::StyleCachedImage::cssValue):
3875         * rendering/style/RenderStyle.h:
3876         * svg/SVGColor.h:
3877         (WebCore::SVGColor::create):
3878         (WebCore::SVGColor::isSVGColor):
3879         * svg/SVGFontFaceElement.cpp:
3880         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
3881         (WebCore::SVGFontFaceElement::rebuildFontFace):
3882         * svg/SVGFontFaceNameElement.cpp:
3883         (WebCore::SVGFontFaceNameElement::srcValue):
3884         * svg/SVGFontFaceSrcElement.cpp:
3885         (WebCore::SVGFontFaceSrcElement::srcValue):
3886         * svg/SVGFontFaceUriElement.cpp:
3887         (WebCore::SVGFontFaceUriElement::srcValue):
3888         * svg/SVGPaint.cpp:
3889         (WebCore::SVGPaint::SVGPaint):
3890         * svg/SVGPaint.h:
3891         (WebCore::SVGPaint::create):
3892         (WebCore::SVGPaint::isSVGPaint):
3893         * svg/animation/SMILTimeContainer.cpp:
3894         (WebCore::SMILTimeContainer::baseValueFor):
3895         * xml/XSLImportRule.cpp:
3896         (WebCore::XSLImportRule::XSLImportRule):
3897         (WebCore::XSLImportRule::setXSLStyleSheet):
3898         * xml/XSLImportRule.h:
3899         (WebCore::XSLImportRule::create):
3900         (WebCore::XSLImportRule::href):
3901         (WebCore::XSLImportRule::isImportRule):
3902         * xml/XSLStyleSheet.cpp:
3903         (WebCore::XSLStyleSheet::checkLoaded):
3904         (WebCore::XSLStyleSheet::loadChildSheet):
3905         * xml/XSLStyleSheet.h:
3906         (WebCore::XSLStyleSheet::create):
3907         (WebCore::XSLStyleSheet::createEmbedded):
3908         * xml/XSLTProcessor.cpp:
3909         (WebCore::xsltStylesheetPointer):
3911 2008-06-17  Michelangelo De Simone  <m.des@mac.com>
3913         Reviewed by Adele.
3914         
3915         Fix for https://bugs.webkit.org/show_bug.cgi?id=18887
3916         Added support for autofocus controls.
3918         When authors specify the "autofocus" attribute on form controls these 
3919         acquire focus automatically as the document is rendered.
3921         Tests: fast/forms/autofocus-attribute.html
3922                fast/forms/autofocus-opera-001.html
3923                fast/forms/autofocus-opera-002.html
3924                fast/forms/autofocus-opera-003.html
3925                fast/forms/autofocus-opera-004.html
3926                fast/forms/autofocus-opera-005.html
3927                fast/forms/autofocus-opera-006.html
3928                fast/forms/autofocus-opera-007.html
3929                fast/forms/autofocus-opera-008.html
3931         * dom/Document.cpp: (WebCore::Document::Document): Initialize the flag to ignore autofocus.
3932         * dom/Document.h:
3933         * html/HTMLAttributeNames.in:
3934         * html/HTMLButtonElement.idl:
3935         * html/HTMLFormControlElement.cpp:
3936         (WebCore::HTMLFormControlElement::attach): Sets focus onto the appropriate "autofocus" control
3937         (WebCore::HTMLFormControlElement::autofocus): Autofocus attribute getter
3938         (WebCore::HTMLFormControlElement::setAutofocus): Autofocus attribute setter
3939         * html/HTMLFormControlElement.h:
3940         * html/HTMLInputElement.idl:
3941         * html/HTMLSelectElement.idl:
3942         * html/HTMLTextAreaElement.idl:
3943         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setUserEdited):
3944           Sets the "ignore autofocus" flag on document if the user edited the control.
3945         * rendering/RenderTextControl.h:
3947 2008-06-17  Alp Toker  <alp@nuanti.com>
3949         Reviewed by Dave Hyatt and Mark Rowe.
3951         https://bugs.webkit.org/show_bug.cgi?id=19190
3952         [CAIRO] Canvas rendered as black
3954         Make sure the frame alpha transparency flag is set to true unless
3955         we're certain the image data is solid and can be blitted, since the
3956         Cairo backend implements a fast-path for blittable BitmapImages.
3958         Thanks to Dirk Schulze for helping to track down this problem.
3960         * platform/graphics/BitmapImage.cpp:
3961         (WebCore::BitmapImage::frameHasAlphaAtIndex):
3962         * platform/graphics/cairo/ImageCairo.cpp:
3963         (WebCore::BitmapImage::BitmapImage):
3964         * platform/graphics/cg/ImageCG.cpp:
3965         (WebCore::BitmapImage::BitmapImage):
3967 2008-06-17  Ariya Hidayat  <ariya.hidayat@trolltech.com>
3969         Reviewed by Simon.
3971         Fix the Qt port by adding ExecState when necessary.
3973         * bridge/qt/qt_instance.cpp:
3974         (KJS::Bindings::QtInstance::getPropertyNames):
3975         (KJS::Bindings::QtInstance::invokeDefaultMethod):
3976         * bridge/qt/qt_runtime.cpp:
3977         (KJS::Bindings::convertValueToQVariant):
3978         (KJS::Bindings::convertQVariantToValue):
3979         (KJS::Bindings::QtRuntimeConnectionMethod::callAsFunction):
3980         (KJS::Bindings::QtConnectionObject::execute):
3982 2008-06-17  David Hyatt  <hyatt@apple.com>
3984         Fix for slow performance on CSS selector tests at:
3986         http://jpsykes.com/153/more-css-performance-testing-pt-2
3988         Fix <style> element processing so that we don't reparse the entire stylesheet as chunks come in from
3989         the network (since this is O(n^2)).   Wait for the parser to deliver all of the data before we
3990         process the sheet for the first time.
3992         Reviewed by olliej
3994         * html/HTMLStyleElement.cpp:
3995         (WebCore::HTMLStyleElement::finishParsingChildren):
3996         (WebCore::HTMLStyleElement::childrenChanged):
3998 2008-06-16  Dan Bernstein  <mitz@apple.com>
4000         Reviewed by Justin Garcia.
4002         - fix <rdar://problem/5973313> REGRESSION (r32508): Down arrow doesn't change caret with non-user entered newlines in textareas
4004         Test: editing/selection/after-line-break.html
4006         * dom/Position.cpp:
4007         (WebCore::Position::getInlineBoxAndOffset): Changed to not include the
4008         position after a line break in its line box, because that position is
4009         actually on the next line.
4011 2008-06-16  Alexey Proskuryakov  <ap@webkit.org>
4013         Reviewed by Geoff Garen.
4015         Make Identifier construction use an explicitly passed IdentifierTable.
4017         * platform/text/AtomicString.cpp:
4018         * platform/text/AtomicString.h:
4019         * platform/text/PlatformString.h:
4020         * platform/text/String.cpp:
4021         Removed "operator KJS::Identifier".
4023         * bindings/js/JSCustomSQLStatementCallback.cpp:
4024         (WebCore::JSCustomSQLStatementCallback::handleEvent):
4025         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
4026         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
4027         * bindings/js/JSCustomSQLTransactionCallback.cpp:
4028         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
4029         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
4030         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
4031         * bindings/js/JSCustomVoidCallback.cpp:
4032         (WebCore::JSCustomVoidCallback::handleEvent):
4033         * bindings/js/JSCustomXPathNSResolver.cpp:
4034         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
4035         * bindings/js/JSDOMWindowBase.cpp:
4036         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
4037         (WebCore::JSDOMWindowBase::updateDocument):
4038         (WebCore::createWindow):
4039         (WebCore::showModalDialog):
4040         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
4041         (WebCore::JSDOMWindowBase::put):
4042         (WebCore::JSDOMWindowBase::clear):
4043         * bindings/js/JSDOMWindowCustom.cpp:
4044         (WebCore::JSDOMWindow::setLocation):
4045         * bindings/js/JSDOMWindowCustom.h:
4046         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
4047         * bindings/js/JSEventListener.cpp:
4048         (WebCore::JSAbstractEventListener::handleEvent):
4049         (WebCore::JSLazyEventListener::parseCode):
4050         * bindings/js/JSEventTargetBase.h:
4051         (WebCore::JSEventTargetPrototype::self):
4052         * bindings/js/JSHTMLCollectionCustom.cpp:
4053         (WebCore::JSHTMLCollection::callAsFunction):
4054         (WebCore::JSHTMLCollection::item):
4055         (WebCore::JSHTMLCollection::namedItem):
4056         * bindings/js/JSHTMLDocumentCustom.cpp:
4057         (WebCore::JSHTMLDocument::all):
4058         (WebCore::JSHTMLDocument::setAll):
4059         (WebCore::JSHTMLDocument::open):
4060         * bindings/js/JSHTMLInputElementBase.cpp:
4061         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
4062         * bindings/js/JSHistoryCustom.cpp:
4063         (WebCore::JSHistory::customGetOwnPropertySlot):
4064         * bindings/js/JSLocationCustom.cpp:
4065         (WebCore::JSLocation::customGetOwnPropertySlot):
4066         (WebCore::JSLocation::customPut):
4067         * bindings/js/JSNavigatorCustom.cpp:
4068         (WebCore::needsYouTubeQuirk):
4069         * bindings/js/JSSQLResultSetRowListCustom.cpp:
4070         (WebCore::JSSQLResultSetRowList::item):
4071         * bindings/js/JSStorageCustom.cpp:
4072         (WebCore::JSStorage::customGetPropertyNames):
4073         * bindings/js/ScheduledAction.cpp:
4074         (WebCore::ScheduledAction::execute):
4075         * bindings/js/ScriptController.cpp:
4076         (WebCore::ScriptController::evaluate):
4077         * bindings/objc/WebScriptObject.mm:
4078         (WebCore::addExceptionToConsole):
4079         (-[WebScriptObject callWebScriptMethod:withArguments:]):
4080         (-[WebScriptObject setValue:forKey:]):
4081         (-[WebScriptObject valueForKey:]):
4082         (-[WebScriptObject removeWebScriptKey:]):
4083         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
4084         * bindings/scripts/CodeGeneratorJS.pm:
4085         * bridge/NP_jsobject.cpp:
4086         (_NPN_Enumerate):
4087         * bridge/c/c_instance.cpp:
4088         (KJS::Bindings::CInstance::getPropertyNames):
4089         * bridge/c/c_utility.cpp:
4090         (KJS::Bindings::identifierFromNPIdentifier):
4091         * bridge/jni/jni_class.cpp:
4092         (JavaClass::JavaClass):
4093         * bridge/jni/jni_jsobject.mm:
4094         (JavaJSObject::call):
4095         (JavaJSObject::getMember):
4096         (JavaJSObject::setMember):
4097         (JavaJSObject::removeMember):
4098         * bridge/runtime_method.cpp:
4099         (RuntimeMethod::callAsFunction):
4100         Adapted to JavaScriptCore changes by explicitly constructing Identifiers, and always passing
4101         an ExecState or JSGlobalData pointer. Since WebCore is not a legacy client, this can use
4102         JSGlobalData::threadInstance(), as performance permits.
4104 2008-06-16  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
4106         Reviewed by Dan Bernstein.
4108         - fix https://bugs.webkit.org/show_bug.cgi?id=19592
4109           Mismatched GraphicsContext::save()/restore() pairs in shadow painting code
4111         * rendering/InlineFlowBox.cpp:
4112         (WebCore::InlineFlowBox::paintTextDecorations): remove an extra context->save()
4113         from the shadow painting code.
4115 2008-06-16  Adriaan de Groot  <groot@kde.org>
4117         Reviewed by Simon.
4119         Fix compilation on Sun Studio 12
4121         make_pair is a function template with two template arguments. This is to force
4122         it to have the correct type according to the pair<> structure.
4124         * editing/TextIterator.cpp:
4125         (WebCore::plainTextToMallocAllocatedBuffer):
4126         * page/Chrome.cpp:
4127         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
4129 2008-06-10  Tor Arne Vestbø  <tavestbo@trolltech.com>
4131         Reviewed by Simon
4133         https://bugs.webkit.org/show_bug.cgi?id=19462
4135         Fill the background of scrollbars to the window color before
4136         letting the QStyle paint its primitive elements.
4138         * platform/qt/PlatformScrollBarQt.cpp:
4139         (WebCore::PlatformScrollbar::paint):
4141 2008-06-15  Darin Adler  <darin@apple.com>
4143         Rubber stamped by Sam.
4145         - renamed kjs_html.h/cpp to JSPluginElementFunctions.h/cpp
4146         - renamed kjs_events.h/cpp to JSEventListener.h/cpp
4148         * GNUmakefile.am:
4149         * WebCore.pro:
4150         * WebCore.vcproj/WebCore.vcproj:
4151         * WebCore.xcodeproj/project.pbxproj:
4152         * WebCoreSources.bkl:
4153         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
4154         * bindings/js/JSDOMApplicationCacheCustom.cpp:
4155         * bindings/js/JSDOMWindowBase.cpp:
4156         * bindings/js/JSEventCustom.cpp:
4157         * bindings/js/JSEventListener.cpp: Copied from WebCore/bindings/js/kjs_events.cpp.
4158         * bindings/js/JSEventListener.h: Copied from WebCore/bindings/js/kjs_events.h.
4159         * bindings/js/JSEventTargetBase.h:
4160         * bindings/js/JSHTMLAppletElementCustom.cpp:
4161         * bindings/js/JSHTMLCollectionCustom.cpp:
4162         * bindings/js/JSHTMLDocumentCustom.cpp:
4163         * bindings/js/JSHTMLEmbedElementCustom.cpp:
4164         * bindings/js/JSHTMLInputElementBase.h:
4165         * bindings/js/JSHTMLObjectElementCustom.cpp:
4166         * bindings/js/JSHTMLSelectElementCustom.cpp:
4167         * bindings/js/JSPluginElementFunctions.cpp: Copied from WebCore/bindings/js/kjs_html.cpp.
4168         * bindings/js/JSPluginElementFunctions.h: Copied from WebCore/bindings/js/kjs_html.h.
4169         * bindings/js/JSSVGLazyEventListener.h:
4170         * bindings/js/JSXMLHttpRequestCustom.cpp:
4171         * bindings/js/ScriptController.cpp:
4172         * bindings/js/kjs_events.cpp: Removed.
4173         * bindings/js/kjs_events.h: Removed.
4174         * bindings/js/kjs_html.cpp: Removed.
4175         * bindings/js/kjs_html.h: Removed.
4177 2008-06-15  Darin Adler  <darin@apple.com>
4179         - give Frame object functions shorter names: scriptProxy() -> script(),
4180           selectionController() -> selection(), animationController() -> animation()
4182         * WebCore.base.exp:
4183         * bindings/js/JSCustomSQLStatementCallback.cpp:
4184         (WebCore::JSCustomSQLStatementCallback::handleEvent):
4185         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
4186         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
4187         * bindings/js/JSCustomSQLTransactionCallback.cpp:
4188         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
4189         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
4190         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
4191         * bindings/js/JSCustomVoidCallback.cpp:
4192         (WebCore::JSCustomVoidCallback::handleEvent):
4193         * bindings/js/JSCustomXPathNSResolver.cpp:
4194         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
4195         * bindings/js/JSDOMWindowBase.cpp:
4196         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
4197         (WebCore::allowPopUp):
4198         (WebCore::createWindow):
4199         (WebCore::windowProtoFuncOpen):
4200         (WebCore::toJS):
4201         (WebCore::toJSDOMWindow):
4202         * bindings/js/JSDOMWindowCustom.cpp:
4203         (WebCore::JSDOMWindow::setLocation):
4204         * bindings/js/JSDOMWindowShell.cpp:
4205         (WebCore::toJS):
4206         (WebCore::toJSDOMWindowShell):
4207         * bindings/js/JSDocumentCustom.cpp:
4208         (WebCore::JSDocument::setLocation):
4209         * bindings/js/JSLocationCustom.cpp:
4210         (WebCore::navigateIfAllowed):
4211         (WebCore::JSLocation::reload):
4212         * bindings/js/JSNodeFilterCondition.cpp:
4213         (WebCore::JSNodeFilterCondition::acceptNode):
4214         * bindings/js/ScheduledAction.cpp:
4215         (WebCore::ScheduledAction::execute):
4216         * bindings/js/kjs_events.cpp:
4217         (WebCore::JSAbstractEventListener::handleEvent):
4218         (WebCore::JSLazyEventListener::parseCode):
4219         * bindings/js/kjs_html.cpp:
4220         (WebCore::runtimeObjectImplementsCall):
4221         * bindings/objc/DOMInternal.mm:
4222         (-[WebScriptObject _initializeScriptDOMNodeImp]):
4223         * bridge/jni/jni_jsobject.mm:
4224         (createRootObject):
4225         * css/CSSStyleSelector.cpp:
4226         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
4227         * dom/Document.cpp:
4228         (WebCore::Document::nodeWillBeRemoved):
4229         (WebCore::Document::createHTMLEventListener):
4230         * dom/Element.cpp:
4231         (WebCore::Element::updateFocusAppearance):
4232         * dom/EventTarget.cpp:
4233         (WebCore::EventTarget::dispatchGenericEvent):
4234         * dom/XMLTokenizer.cpp:
4235         (WebCore::XMLTokenizer::startElementNs):
4236         * editing/DeleteButtonController.cpp:
4237         (WebCore::DeleteButtonController::respondToChangedSelection):
4238         (WebCore::DeleteButtonController::enable):
4239         (WebCore::DeleteButtonController::deleteTarget):
4240         * editing/EditCommand.cpp:
4241         (WebCore::EditCommand::EditCommand):
4242         * editing/Editor.cpp:
4243         (WebCore::Editor::selectionForCommand):
4244         (WebCore::Editor::canEdit):
4245         (WebCore::Editor::canEditRichly):
4246         (WebCore::Editor::canDHTMLCut):
4247         (WebCore::Editor::canDHTMLCopy):
4248         (WebCore::Editor::canCopy):
4249         (WebCore::Editor::canDelete):
4250         (WebCore::Editor::deleteWithDirection):
4251         (WebCore::Editor::deleteSelectionWithSmartDelete):
4252         (WebCore::Editor::replaceSelectionWithFragment):
4253         (WebCore::Editor::selectedRange):
4254         (WebCore::Editor::tryDHTMLCopy):
4255         (WebCore::Editor::tryDHTMLCut):
4256         (WebCore::Editor::fontForSelection):
4257         (WebCore::Editor::selectionUnorderedListState):
4258         (WebCore::Editor::selectionOrderedListState):
4259         (WebCore::Editor::increaseSelectionListLevel):
4260         (WebCore::Editor::increaseSelectionListLevelOrdered):
4261         (WebCore::Editor::increaseSelectionListLevelUnordered):
4262         (WebCore::Editor::decreaseSelectionListLevel):
4263         (WebCore::Editor::dispatchCPPEvent):
4264         (WebCore::Editor::applyStyle):
4265         (WebCore::Editor::applyParagraphStyle):
4266         (WebCore::Editor::applyStyleToSelection):
4267         (WebCore::Editor::applyParagraphStyleToSelection):
4268         (WebCore::Editor::selectionHasStyle):
4269         (WebCore::Editor::appliedEditing):
4270         (WebCore::Editor::unappliedEditing):
4271         (WebCore::Editor::reappliedEditing):
4272         (WebCore::Editor::insertLineBreak):
4273         (WebCore::Editor::insertParagraphSeparator):
4274         (WebCore::Editor::paste):
4275         (WebCore::Editor::selectComposition):
4276         (WebCore::Editor::confirmComposition):
4277         (WebCore::Editor::setComposition):
4278         (WebCore::Editor::advanceToNextMisspelling):
4279         (WebCore::Editor::isSelectionUngrammatical):
4280         (WebCore::Editor::guessesForUngrammaticalSelection):
4281         (WebCore::Editor::getCompositionSelection):
4282         (WebCore::Editor::transpose):
4283         * editing/EditorCommand.cpp:
4284         (WebCore::expandSelectionToGranularity):
4285         (WebCore::executeDeleteToMark):
4286         (WebCore::executeMoveBackward):
4287         (WebCore::executeMoveBackwardAndModifySelection):
4288         (WebCore::executeMoveDown):
4289         (WebCore::executeMoveDownAndModifySelection):
4290         (WebCore::executeMoveForward):
4291         (WebCore::executeMoveForwardAndModifySelection):
4292         (WebCore::executeMoveLeft):
4293         (WebCore::executeMoveLeftAndModifySelection):
4294         (WebCore::executeMovePageDown):
4295         (WebCore::executeMovePageDownAndModifySelection):
4296         (WebCore::executeMovePageUp):
4297         (WebCore::executeMovePageUpAndModifySelection):
4298         (WebCore::executeMoveRight):
4299         (WebCore::executeMoveRightAndModifySelection):
4300         (WebCore::executeMoveToBeginningOfDocument):
4301         (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
4302         (WebCore::executeMoveToBeginningOfLine):
4303         (WebCore::executeMoveToBeginningOfLineAndModifySelection):
4304         (WebCore::executeMoveToBeginningOfParagraph):
4305         (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
4306         (WebCore::executeMoveToBeginningOfSentence):
4307         (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
4308         (WebCore::executeMoveToEndOfDocument):
4309         (WebCore::executeMoveToEndOfDocumentAndModifySelection):
4310         (WebCore::executeMoveToEndOfSentence):
4311         (WebCore::executeMoveToEndOfSentenceAndModifySelection):
4312         (WebCore::executeMoveToEndOfLine):
4313         (WebCore::executeMoveToEndOfLineAndModifySelection):
4314         (WebCore::executeMoveToEndOfParagraph):
4315         (WebCore::executeMoveToEndOfParagraphAndModifySelection):
4316         (WebCore::executeMoveParagraphBackwardAndModifySelection):
4317         (WebCore::executeMoveParagraphForwardAndModifySelection):
4318         (WebCore::executeMoveUp):
4319         (WebCore::executeMoveUpAndModifySelection):
4320         (WebCore::executeMoveWordBackward):
4321         (WebCore::executeMoveWordBackwardAndModifySelection):
4322         (WebCore::executeMoveWordForward):
4323         (WebCore::executeMoveWordForwardAndModifySelection):
4324         (WebCore::executeMoveWordLeft):
4325         (WebCore::executeMoveWordLeftAndModifySelection):
4326         (WebCore::executeMoveWordRight):
4327         (WebCore::executeMoveWordRightAndModifySelection):
4328         (WebCore::executeSelectAll):
4329         (WebCore::executeSelectToMark):
4330         (WebCore::executeSetMark):
4331         (WebCore::executeSwapWithMark):
4332         (WebCore::executeUnselect):
4333         (WebCore::enabledAnySelection):
4334         (WebCore::enabledAnySelectionAndMark):
4335         (WebCore::enabledInRichlyEditableText):
4336         (WebCore::enabledRangeInEditableText):
4337         (WebCore::enabledRangeInRichlyEditableText):
4338         * editing/ModifySelectionListLevel.cpp:
4339         (WebCore::IncreaseSelectionListLevelCommand::canIncreaseSelectionListLevel):
4340         (WebCore::DecreaseSelectionListLevelCommand::canDecreaseSelectionListLevel):
4341         * editing/RemoveFormatCommand.cpp:
4342         (WebCore::RemoveFormatCommand::doApply):
4343         * editing/SelectionController.cpp:
4344         (WebCore::SelectionController::setSelection):
4345         (WebCore::SelectionController::selectFrameElementInParentIfFullySelected):
4346         * editing/TypingCommand.cpp:
4347         (WebCore::TypingCommand::deleteSelection):
4348         (WebCore::TypingCommand::insertText):
4349         (WebCore::TypingCommand::deleteKeyPressed):
4350         (WebCore::TypingCommand::forwardDeleteKeyPressed):
4351         * history/CachedPage.cpp:
4352         (WebCore::CachedPage::CachedPage):
4353         (WebCore::CachedPage::restore):
4354         * html/HTMLAnchorElement.cpp:
4355         (WebCore::HTMLAnchorElement::defaultEventHandler):
4356         (WebCore::HTMLAnchorElement::setActive):
4357         * html/HTMLInputElement.cpp:
4358         (WebCore::HTMLInputElement::defaultEventHandler):
4359         * html/HTMLPlugInElement.cpp:
4360         (WebCore::HTMLPlugInElement::createNPObject):
4361         * html/HTMLScriptElement.cpp:
4362         (WebCore::HTMLScriptElement::evaluateScript):
4363         * html/HTMLTokenizer.cpp:
4364         (WebCore::HTMLTokenizer::parseTag):
4365         (WebCore::HTMLTokenizer::processToken):
4366         * loader/FrameLoader.cpp:
4367         (WebCore::FrameLoader::executeScript):
4368         (WebCore::FrameLoader::clear):
4369         (WebCore::FrameLoader::userGestureHint):
4370         (WebCore::FrameLoader::open):
4371         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
4372         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
4373         * loader/archive/cf/LegacyWebArchive.cpp:
4374         (WebCore::LegacyWebArchive::createFromSelection):
4375         * page/AccessibilityRenderObject.cpp:
4376         (WebCore::AccessibilityRenderObject::selection):
4377         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
4378         (WebCore::AccessibilityRenderObject::isFocused):
4379         (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
4380         (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
4381         (WebCore::AccessibilityRenderObject::doAXRangeForLine):
4382         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
4383         * page/ContextMenuController.cpp:
4384         (WebCore::ContextMenuController::contextMenuItemSelected):
4385         * page/DOMSelection.cpp:
4386         (WebCore::DOMSelection::anchorNode):
4387         (WebCore::DOMSelection::baseNode):
4388         (WebCore::DOMSelection::anchorOffset):
4389         (WebCore::DOMSelection::baseOffset):
4390         (WebCore::DOMSelection::focusNode):
4391         (WebCore::DOMSelection::extentNode):
4392         (WebCore::DOMSelection::focusOffset):
4393         (WebCore::DOMSelection::extentOffset):
4394         (WebCore::DOMSelection::isCollapsed):
4395         (WebCore::DOMSelection::type):
4396         (WebCore::DOMSelection::rangeCount):
4397         (WebCore::DOMSelection::collapse):
4398         (WebCore::DOMSelection::collapseToEnd):
4399         (WebCore::DOMSelection::collapseToStart):
4400         (WebCore::DOMSelection::empty):
4401         (WebCore::DOMSelection::setBaseAndExtent):
4402         (WebCore::DOMSelection::setPosition):
4403         (WebCore::DOMSelection::modify):
4404         (WebCore::DOMSelection::extend):
4405         (WebCore::DOMSelection::getRangeAt):
4406         (WebCore::DOMSelection::removeAllRanges):
4407         (WebCore::DOMSelection::addRange):
4408         (WebCore::DOMSelection::deleteFromDocument):
4409         (WebCore::DOMSelection::containsNode):
4410         (WebCore::DOMSelection::toString):
4411         * page/DragController.cpp:
4412         (WebCore::DragController::dragIsMove):
4413         (WebCore::DragController::tryDocumentDrag):
4414         (WebCore::setSelectionToDragCaret):
4415         (WebCore::DragController::concludeDrag):
4416         (WebCore::prepareClipboardForImageDrag):
4417         (WebCore::DragController::startDrag):
4418         * page/EventHandler.cpp:
4419         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
4420         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
4421         (WebCore::EventHandler::handleMousePressEventDoubleClick):
4422         (WebCore::EventHandler::handleMousePressEventTripleClick):
4423         (WebCore::EventHandler::handleMousePressEventSingleClick):
4424         (WebCore::EventHandler::handleMousePressEvent):
4425         (WebCore::EventHandler::updateSelectionForMouseDrag):
4426         (WebCore::EventHandler::handleMouseReleaseEvent):
4427         (WebCore::nodeIsNotBeingEdited):
4428         (WebCore::EventHandler::selectCursor):
4429         (WebCore::EventHandler::dispatchMouseEvent):
4430         (WebCore::EventHandler::sendContextMenuEvent):
4431         (WebCore::EventHandler::handleKeyboardSelectionMovement):
4432         (WebCore::EventHandler::handleDrag):
4433         * page/FocusController.cpp:
4434         (WebCore::FocusController::setFocusedFrame):
4435         (WebCore::clearSelectionIfNeeded):
4436         (WebCore::FocusController::setActive):
4437         * page/Frame.cpp:
4438         (WebCore::Frame::~Frame):
4439         (WebCore::Frame::script):
4440         (WebCore::Frame::setDocument):
4441         (WebCore::Frame::selectedText):
4442         (WebCore::Frame::selection):
4443         (WebCore::Frame::animation):
4444         (WebCore::Frame::notifyRendererOfSelectionChange):
4445         (WebCore::Frame::invalidateSelection):
4446         (WebCore::Frame::clearCaretRectIfNeeded):
4447         (WebCore::Frame::setFocusedNodeIfNeeded):
4448         (WebCore::Frame::selectionLayoutChanged):
4449         (WebCore::Frame::caretBlinkTimerFired):
4450         (WebCore::Frame::paintCaret):
4451         (WebCore::Frame::shouldChangeSelection):
4452         (WebCore::Frame::updateSecureKeyboardEntryIfActive):
4453         (WebCore::Frame::computeAndSetTypingStyle):
4454         (WebCore::Frame::selectionComputedStyle):
4455         (WebCore::Frame::bindingRootObject):
4456         (WebCore::Frame::windowScriptNPObject):
4457         (WebCore::Frame::clearScriptController):
4458         (WebCore::Frame::selectionTextRects):
4459         (WebCore::Frame::currentForm):
4460         (WebCore::Frame::revealSelection):
4461         (WebCore::Frame::revealCaret):
4462         (WebCore::Frame::clearTimers):
4463         (WebCore::Frame::styleForSelectionStart):
4464         (WebCore::Frame::setSelectionFromNone):
4465         (WebCore::Frame::findString):
4466         (WebCore::Frame::pageDestroyed):
4467         (WebCore::Frame::respondToChangedSelection):
4468         (WebCore::FramePrivate::FramePrivate):
4469         * page/Frame.h:
4470         * page/FramePrivate.h:
4471         * page/InspectorController.cpp:
4472         (WebCore::canPassNodeToJavaScript):
4473         (WebCore::InspectorController::windowScriptObjectAvailable):
4474         * page/JavaScriptDebugServer.cpp:
4475         (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
4476         * page/Page.cpp:
4477         (WebCore::Page::findString):
4478         (WebCore::Page::selection):
4479         (WebCore::Page::setDebugger):
4480         * page/mac/FrameMac.mm:
4481         (WebCore::Frame::baseWritingDirectionForSelectionStart):
4482         (WebCore::Frame::dragImageForSelection):
4483         (WebCore::Frame::createScriptInstanceForWidget):
4484         (WebCore::Frame::windowScriptObject):
4485         * page/win/FrameWin.cpp:
4486         (WebCore::Frame::dragImageForSelection):
4487         * platform/ContextMenu.cpp:
4488         (WebCore::selectionContainsPossibleWord):
4489         (WebCore::ContextMenu::populate):
4490         (WebCore::ContextMenu::checkOrEnableIfNeeded):
4491         * plugins/PluginView.cpp:
4492         (WebCore::PluginView::performRequest):
4493         (WebCore::PluginView::bindingInstance):
4494         * rendering/HitTestResult.cpp:
4495         (WebCore::HitTestResult::isSelected):
4496         * rendering/RenderBlock.cpp:
4497         (WebCore::RenderBlock::paintCaret):
4498         * rendering/RenderListBox.cpp:
4499         (WebCore::RenderListBox::paintItemForeground):
4500         (WebCore::RenderListBox::paintItemBackground):
4501         * rendering/RenderObject.cpp:
4502         (WebCore::RenderObject::selectionBackgroundColor):
4503         (WebCore::RenderObject::selectionForegroundColor):
4504         (WebCore::RenderObject::setAnimatableStyle):
4505         (WebCore::RenderObject::destroy):
4506         (WebCore::RenderObject::animation):
4507         * rendering/RenderObject.h:
4508         * rendering/RenderTextControl.cpp:
4509         (WebCore::RenderTextControl::selectionStart):
4510         (WebCore::RenderTextControl::selectionEnd):
4511         (WebCore::RenderTextControl::setSelectionRange):
4512         (WebCore::RenderTextControl::selectionChanged):
4513         (WebCore::RenderTextControl::capsLockStateMayHaveChanged):
4514         * rendering/RenderTheme.cpp:
4515         (WebCore::RenderTheme::isFocused):
4516         * rendering/RenderTreeAsText.cpp:
4517         (WebCore::writeSelection):
4518         * rendering/RenderWidget.cpp:
4519         (WebCore::RenderWidget::destroy):
4520         * svg/SVGDocumentExtensions.cpp:
4521         (WebCore::SVGDocumentExtensions::createSVGEventListener):
4522         * svg/SVGSVGElement.cpp:
4523         (WebCore::SVGSVGElement::deselectAll):
4524         * svg/SVGTextContentElement.cpp:
4525         (WebCore::SVGTextContentElement::selectSubString):
4527 2008-06-15  Sam Weinig  <sam@webkit.org>
4529         Reviewed by Darin Adler.
4531         Remove outdated comment.
4533         * bindings/js/ScriptController.h:
4535 2008-06-15  Darin Adler  <darin@apple.com>
4537         - try to fix Qt build
4539         * dom/XMLTokenizer.cpp: Use create instead of new.
4541         - rename KJS::List to KJS::ArgList
4543         * bindings/js/JSAudioConstructor.cpp:
4544         (WebCore::JSAudioConstructor::construct):
4545         * bindings/js/JSAudioConstructor.h:
4546         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
4547         (WebCore::JSCanvasRenderingContext2D::setFillColor):
4548         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
4549         (WebCore::JSCanvasRenderingContext2D::strokeRect):
4550         (WebCore::JSCanvasRenderingContext2D::drawImage):
4551         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
4552         (WebCore::JSCanvasRenderingContext2D::setShadow):
4553         (WebCore::JSCanvasRenderingContext2D::createPattern):
4554         (WebCore::JSCanvasRenderingContext2D::putImageData):
4555         * bindings/js/JSClipboardCustom.cpp:
4556         (WebCore::JSClipboard::types):
4557         (WebCore::JSClipboard::clearData):
4558         (WebCore::JSClipboard::getData):
4559         (WebCore::JSClipboard::setData):
4560         (WebCore::JSClipboard::setDragImage):
4561         * bindings/js/JSConsoleCustom.cpp:
4562         (WebCore::JSConsole::debug):
4563         (WebCore::JSConsole::error):
4564         (WebCore::JSConsole::info):
4565         (WebCore::JSConsole::log):
4566         (WebCore::JSConsole::warn):
4567         (WebCore::JSConsole::assertCondition):
4568         (WebCore::JSConsole::profile):
4569         (WebCore::JSConsole::profileEnd):
4570         * bindings/js/JSCustomSQLStatementCallback.cpp:
4571         (WebCore::JSCustomSQLStatementCallback::handleEvent):
4572         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
4573         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
4574         * bindings/js/JSCustomSQLTransactionCallback.cpp:
4575         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
4576         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
4577         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
4578         * bindings/js/JSCustomVoidCallback.cpp:
4579         (WebCore::JSCustomVoidCallback::handleEvent):
4580         * bindings/js/JSCustomXPathNSResolver.cpp:
4581         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
4582         * bindings/js/JSDOMApplicationCacheCustom.cpp:
4583         (WebCore::JSDOMApplicationCache::add):
4584         (WebCore::JSDOMApplicationCache::remove):
4585         (WebCore::JSDOMApplicationCache::addEventListener):
4586         (WebCore::JSDOMApplicationCache::removeEventListener):
4587         (WebCore::JSDOMApplicationCache::dispatchEvent):
4588         * bindings/js/JSDOMWindowBase.cpp:
4589         (WebCore::windowProtoFuncAToB):
4590         (WebCore::windowProtoFuncBToA):
4591         (WebCore::windowProtoFuncOpen):
4592         (WebCore::windowProtoFuncSetTimeout):
4593         (WebCore::windowProtoFuncClearTimeout):
4594         (WebCore::windowProtoFuncSetInterval):
4595         (WebCore::windowProtoFuncAddEventListener):
4596         (WebCore::windowProtoFuncRemoveEventListener):
4597         (WebCore::windowProtoFuncShowModalDialog):
4598         (WebCore::windowProtoFuncNotImplemented):
4599         (WebCore::JSDOMWindowBase::installTimeout):
4600         * bindings/js/JSDOMWindowBase.h:
4601         * bindings/js/JSDOMWindowCustom.cpp:
4602         (WebCore::JSDOMWindow::postMessage):
4603         * bindings/js/JSDatabaseCustom.cpp:
4604         (WebCore::JSDatabase::changeVersion):
4605         (WebCore::JSDatabase::transaction):
4606         * bindings/js/JSElementCustom.cpp:
4607         (WebCore::JSElement::setAttribute):
4608         (WebCore::JSElement::setAttributeNode):
4609         (WebCore::JSElement::setAttributeNS):
4610         (WebCore::JSElement::setAttributeNodeNS):
4611         * bindings/js/JSEventTargetBase.cpp:
4612         (WebCore::jsEventTargetAddEventListener):
4613         (WebCore::jsEventTargetRemoveEventListener):
4614         (WebCore::jsEventTargetDispatchEvent):
4615         * bindings/js/JSEventTargetBase.h:
4616         * bindings/js/JSHTMLAppletElementCustom.cpp:
4617         (WebCore::JSHTMLAppletElement::callAsFunction):
4618         * bindings/js/JSHTMLCollectionCustom.cpp:
4619         (WebCore::JSHTMLCollection::callAsFunction):
4620         (WebCore::JSHTMLCollection::item):
4621         (WebCore::JSHTMLCollection::namedItem):
4622         * bindings/js/JSHTMLDocumentCustom.cpp:
4623         (WebCore::JSHTMLDocument::open):
4624         (WebCore::writeHelper):
4625         (WebCore::JSHTMLDocument::write):
4626         (WebCore::JSHTMLDocument::writeln):
4627         * bindings/js/JSHTMLEmbedElementCustom.cpp:
4628         (WebCore::JSHTMLEmbedElement::callAsFunction):
4629         * bindings/js/JSHTMLInputElementBase.cpp:
4630         (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
4631         * bindings/js/JSHTMLInputElementBase.h:
4632         * bindings/js/JSHTMLObjectElementCustom.cpp:
4633         (WebCore::JSHTMLObjectElement::callAsFunction):
4634         * bindings/js/JSHTMLOptionElementConstructor.cpp:
4635         (WebCore::JSHTMLOptionElementConstructor::construct):
4636         * bindings/js/JSHTMLOptionElementConstructor.h:
4637         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
4638         (WebCore::JSHTMLOptionsCollection::add):
4639         (WebCore::JSHTMLOptionsCollection::remove):
4640         * bindings/js/JSHTMLSelectElementCustom.cpp:
4641         (WebCore::JSHTMLSelectElement::remove):
4642         * bindings/js/JSImageConstructor.cpp:
4643         (WebCore::JSImageConstructor::construct):
4644         * bindings/js/JSImageConstructor.h:
4645         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
4646         (WebCore::JSJavaScriptCallFrame::evaluate):
4647         (WebCore::JSJavaScriptCallFrame::scopeChain):
4648         * bindings/js/JSLocationCustom.cpp:
4649         (WebCore::JSLocation::replace):
4650         (WebCore::JSLocation::reload):
4651         (WebCore::JSLocation::assign):
4652         (WebCore::JSLocation::toString):
4653         * bindings/js/JSNodeCustom.cpp:
4654         (WebCore::JSNode::insertBefore):
4655         (WebCore::JSNode::replaceChild):
4656         (WebCore::JSNode::removeChild):
4657         (WebCore::JSNode::appendChild):
4658         * bindings/js/JSNodeFilterCondition.cpp:
4659         (WebCore::JSNodeFilterCondition::acceptNode):
4660         * bindings/js/JSNodeFilterCustom.cpp:
4661         (WebCore::JSNodeFilter::acceptNode):
4662         * bindings/js/JSNodeIteratorCustom.cpp:
4663         (WebCore::JSNodeIterator::nextNode):
4664         (WebCore::JSNodeIterator::previousNode):
4665         * bindings/js/JSNodeListCustom.cpp:
4666         (WebCore::JSNodeList::callAsFunction):
4667         * bindings/js/JSQuarantinedObjectWrapper.cpp:
4668         (WebCore::JSQuarantinedObjectWrapper::construct):
4669         (WebCore::JSQuarantinedObjectWrapper::callAsFunction):
4670         * bindings/js/JSQuarantinedObjectWrapper.h:
4671         * bindings/js/JSSQLResultSetRowListCustom.cpp:
4672         (WebCore::JSSQLResultSetRowList::item):
4673         * bindings/js/JSSQLTransactionCustom.cpp:
4674         (WebCore::JSSQLTransaction::executeSql):
4675         * bindings/js/JSSVGMatrixCustom.cpp:
4676         (WebCore::JSSVGMatrix::multiply):
4677         (WebCore::JSSVGMatrix::inverse):
4678         (WebCore::JSSVGMatrix::translate):
4679         (WebCore::JSSVGMatrix::scale):
4680         (WebCore::JSSVGMatrix::scaleNonUniform):
4681         (WebCore::JSSVGMatrix::rotate):
4682         (WebCore::JSSVGMatrix::rotateFromVector):
4683         (WebCore::JSSVGMatrix::flipX):
4684         (WebCore::JSSVGMatrix::flipY):
4685         (WebCore::JSSVGMatrix::skewX):
4686         (WebCore::JSSVGMatrix::skewY):
4687         * bindings/js/JSSVGPathSegListCustom.cpp:
4688         (WebCore::JSSVGPathSegList::clear):
4689         (WebCore::JSSVGPathSegList::initialize):
4690         (WebCore::JSSVGPathSegList::getItem):
4691         (WebCore::JSSVGPathSegList::insertItemBefore):
4692         (WebCore::JSSVGPathSegList::replaceItem):
4693         (WebCore::JSSVGPathSegList::removeItem):
4694         (WebCore::JSSVGPathSegList::appendItem):
4695         * bindings/js/JSSVGPointListCustom.cpp:
4696         (WebCore::JSSVGPointList::clear):
4697         (WebCore::JSSVGPointList::initialize):
4698         (WebCore::JSSVGPointList::getItem):
4699         (WebCore::JSSVGPointList::insertItemBefore):
4700         (WebCore::JSSVGPointList::replaceItem):
4701         (WebCore::JSSVGPointList::removeItem):
4702         (WebCore::JSSVGPointList::appendItem):
4703         * bindings/js/JSSVGTransformListCustom.cpp:
4704         (WebCore::JSSVGTransformList::clear):
4705         (WebCore::JSSVGTransformList::initialize):
4706         (WebCore::JSSVGTransformList::getItem):
4707         (WebCore::JSSVGTransformList::insertItemBefore):
4708         (WebCore::JSSVGTransformList::replaceItem):
4709         (WebCore::JSSVGTransformList::removeItem):
4710         (WebCore::JSSVGTransformList::appendItem):
4711         * bindings/js/JSTreeWalkerCustom.cpp:
4712         (WebCore::JSTreeWalker::parentNode):
4713         (WebCore::JSTreeWalker::firstChild):
4714         (WebCore::JSTreeWalker::lastChild):
4715         (WebCore::JSTreeWalker::nextSibling):
4716         (WebCore::JSTreeWalker::previousSibling):
4717         (WebCore::JSTreeWalker::previousNode):
4718         (WebCore::JSTreeWalker::nextNode):
4719         * bindings/js/JSXMLHttpRequestConstructor.cpp:
4720         (WebCore::JSXMLHttpRequestConstructor::construct):
4721         * bindings/js/JSXMLHttpRequestConstructor.h:
4722         * bindings/js/JSXMLHttpRequestCustom.cpp:
4723         (WebCore::JSXMLHttpRequest::open):
4724         (WebCore::JSXMLHttpRequest::setRequestHeader):
4725         (WebCore::JSXMLHttpRequest::send):
4726         (WebCore::JSXMLHttpRequest::getResponseHeader):
4727         (WebCore::JSXMLHttpRequest::overrideMimeType):
4728         (WebCore::JSXMLHttpRequest::addEventListener):
4729         (WebCore::JSXMLHttpRequest::removeEventListener):
4730         (WebCore::JSXMLHttpRequest::dispatchEvent):
4731         * bindings/js/JSXSLTProcessorConstructor.cpp:
4732         (WebCore::JSXSLTProcessorConstructor::construct):
4733         * bindings/js/JSXSLTProcessorConstructor.h:
4734         * bindings/js/JSXSLTProcessorCustom.cpp:
4735         (WebCore::JSXSLTProcessor::importStylesheet):
4736         (WebCore::JSXSLTProcessor::transformToFragment):
4737         (WebCore::JSXSLTProcessor::transformToDocument):
4738         (WebCore::JSXSLTProcessor::setParameter):
4739         (WebCore::JSXSLTProcessor::getParameter):
4740         (WebCore::JSXSLTProcessor::removeParameter):
4741         * bindings/js/ScheduledAction.cpp:
4742         (WebCore::ScheduledAction::ScheduledAction):
4743         (WebCore::ScheduledAction::execute):
4744         * bindings/js/ScheduledAction.h:
4745         * bindings/js/kjs_events.cpp:
4746         (WebCore::JSAbstractEventListener::handleEvent):
4747         (WebCore::JSLazyEventListener::parseCode):
4748         * bindings/js/kjs_html.cpp:
4749         (WebCore::runtimeObjectCallAsFunction):
4750         * bindings/js/kjs_html.h:
4751         * bindings/objc/WebScriptObject.mm:
4752         (getListFromNSArray):
4753         (-[WebScriptObject callWebScriptMethod:withArguments:]):
4754         * bindings/scripts/CodeGeneratorJS.pm:
4755         * bridge/NP_jsobject.cpp:
4756         (getListFromVariantArgs):
4757         (_NPN_InvokeDefault):
4758         (_NPN_Invoke):
4759         * bridge/c/c_instance.cpp:
4760         (KJS::Bindings::CInstance::invokeMethod):
4761         (KJS::Bindings::CInstance::invokeDefaultMethod):
4762         * bridge/c/c_instance.h:
4763         * bridge/jni/jni_instance.cpp:
4764         (JavaInstance::invokeMethod):
4765         * bridge/jni/jni_instance.h:
4766         * bridge/jni/jni_jsobject.h:
4767         * bridge/jni/jni_jsobject.mm:
4768         (JavaJSObject::call):
4769         (JavaJSObject::getListFromJArray):
4770         * bridge/objc/objc_instance.h:
4771         * bridge/objc/objc_instance.mm:
4772         (ObjcInstance::invokeMethod):
4773         (ObjcInstance::invokeDefaultMethod):
4774         * bridge/objc/objc_runtime.h:
4775         * bridge/objc/objc_runtime.mm:
4776         (ObjcFallbackObjectImp::callAsFunction):
4777         * bridge/qt/qt_instance.cpp:
4778         (KJS::Bindings::QtRuntimeObjectImp::construct):
4779         (KJS::Bindings::QtInstance::invokeMethod):
4780         (KJS::Bindings::QtInstance::invokeDefaultMethod):
4781         * bridge/qt/qt_instance.h:
4782         * bridge/qt/qt_runtime.cpp:
4783         (KJS::Bindings::convertQVariantToValue):
4784         (KJS::Bindings::findMethodIndex):
4785         (KJS::Bindings::QtRuntimeMetaMethod::callAsFunction):
4786         (KJS::Bindings::QtRuntimeConnectionMethod::callAsFunction):
4787         (KJS::Bindings::QtConnectionObject::execute):
4788         * bridge/qt/qt_runtime.h:
4789         * bridge/runtime.h:
4790         (KJS::Bindings::Instance::invokeDefaultMethod):
4791         * bridge/runtime_method.cpp:
4792         (RuntimeMethod::callAsFunction):
4793         * bridge/runtime_method.h:
4794         * bridge/runtime_object.cpp:
4795         (RuntimeObjectImp::callAsFunction):
4796         * bridge/runtime_object.h:
4797         * page/Console.cpp:
4798         (WebCore::printToStandardOut):
4799         (WebCore::Console::debug):
4800         (WebCore::Console::error):
4801         (WebCore::Console::info):
4802         (WebCore::Console::log):
4803         (WebCore::Console::assertCondition):
4804         (WebCore::Console::profile):
4805         (WebCore::Console::profileEnd):
4806         (WebCore::Console::warn):
4807         * page/Console.h:
4808         * page/InspectorController.cpp:
4809         (WebCore::ConsoleMessage::ConsoleMessage):
4810         (WebCore::InspectorController::addMessageToConsole):
4811         * page/InspectorController.h:
4813 2008-06-15  Darin Adler  <darin@apple.com>
4815         * platform/graphics/gtk/VideoSinkGStreamer.h: Undo a bogus rename done by the script.
4817 2008-06-15  Adam Barth  <abarth@webkit.org>
4819         Reviewed by Sam Weinig.
4821         Fix our implementation of Document.documentURI (DOM Core Level 3).
4823         Tests: fast/dom/documenturi-affects-relative-paths.html
4824                fast/dom/documenturi-assigned-junk-implies-baseuri-null.html
4825                fast/dom/documenturi-assigned-junk-implies-relative-urls-do-not-resolve.html
4826                fast/dom/documenturi-can-hold-arbitrary-string.html
4827                fast/dom/documenturi-loses-to-base-tag.html
4828                fast/dom/documenturi-not-affected-by-base-tag.html
4830         * dom/Document.cpp:
4831         (WebCore::Document::setDocumentURI):
4832         (WebCore::Document::setURL):
4833         (WebCore::Document::updateBaseURL):
4834         * dom/Document.h:
4835         * page/AccessibilityRenderObject.cpp:
4836         (WebCore::AccessibilityRenderObject::url):
4838 2008-06-15  Adam Barth  <abarth@webkit.org>
4840         Reviewed by Sam Weinig.
4842         Refactor our handling of Document::m_baseURL in preparation for
4843         correcting our implementation of Document.documentURI.
4845         * dom/Document.cpp:
4846         (WebCore::Document::documentURI):
4847         (WebCore::Document::open):
4848         (WebCore::Document::setURL):
4849         (WebCore::Document::setBaseElementURL):
4850         (WebCore::Document::updateBaseURL):
4851         (WebCore::Document::elementSheet):
4852         (WebCore::Document::mappedElementSheet):
4853         (WebCore::Document::completeURL):
4854         * dom/Document.h:
4855         (WebCore::Document::url):
4856         (WebCore::Document::baseURL):
4857         * html/HTMLBaseElement.cpp:
4858         (WebCore::HTMLBaseElement::removedFromDocument):
4859         (WebCore::HTMLBaseElement::process):
4860         * loader/FrameLoader.cpp:
4861         (WebCore::FrameLoader::begin):
4862         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
4863         * xml/XSLTProcessor.cpp:
4864         (WebCore::XSLTProcessor::createDocumentFromSource):
4866 2008-06-15  Darin Adler  <darin@apple.com>
4868         - new names for more JavaScriptCore files
4870         * ForwardingHeaders/kjs/ArrayPrototype.h: Copied from WebCore/ForwardingHeaders/kjs/array_object.h.
4871         * ForwardingHeaders/kjs/BooleanObject.h: Copied from WebCore/ForwardingHeaders/kjs/bool_object.h.
4872         * ForwardingHeaders/kjs/FunctionPrototype.h: Copied from WebCore/ForwardingHeaders/kjs/function_object.h.
4873         * ForwardingHeaders/kjs/JSArray.h: Copied from WebCore/ForwardingHeaders/kjs/array_instance.h.
4874         * ForwardingHeaders/kjs/PropertyMap.h: Copied from WebCore/ForwardingHeaders/kjs/property_map.h.
4875         * ForwardingHeaders/kjs/array_instance.h: Removed.
4876         * ForwardingHeaders/kjs/array_object.h: Removed.
4877         * ForwardingHeaders/kjs/bool_object.h: Removed.
4878         * ForwardingHeaders/kjs/function_object.h: Removed.
4879         * ForwardingHeaders/kjs/property_map.h: Removed.
4880         * WebCore.vcproj/WebCore.vcproj:
4881         * bindings/js/JSClipboardCustom.cpp:
4882         * bindings/js/JSDatabaseCustom.cpp:
4883         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
4884         * bindings/js/kjs_events.cpp:
4885         * bridge/jni/jni_utility.cpp:
4886         * bridge/qt/qt_runtime.cpp:
4887         * bridge/runtime_array.cpp:
4889 2008-06-15  Darin Adler  <darin@apple.com>
4891         - new names for a few key JavaScriptCore files
4893         * ForwardingHeaders/kjs/JSFunction.h: Copied from WebCore/ForwardingHeaders/kjs/function.h.
4894         * ForwardingHeaders/kjs/JSObject.h: Copied from WebCore/ForwardingHeaders/kjs/object.h.
4895         * ForwardingHeaders/kjs/JSString.h: Copied from WebCore/ForwardingHeaders/kjs/internal.h.
4896         * ForwardingHeaders/kjs/JSValue.h: Copied from WebCore/ForwardingHeaders/kjs/value.h.
4897         * ForwardingHeaders/kjs/function.h: Removed.
4898         * ForwardingHeaders/kjs/internal.h: Removed.
4899         * ForwardingHeaders/kjs/object.h: Removed.
4900         * ForwardingHeaders/kjs/value.h: Removed.
4901         * WebCore.vcproj/WebCore.vcproj:
4902         * bindings/js/JSCustomSQLStatementCallback.h:
4903         * bindings/js/JSCustomSQLStatementErrorCallback.h:
4904         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
4905         * bindings/js/JSCustomVoidCallback.h:
4906         * bindings/js/JSDOMBinding.h:
4907         * bindings/js/JSDOMWindowCustom.cpp:
4908         * bindings/js/JSDOMWindowShell.cpp:
4909         * bindings/js/JSQuarantinedObjectWrapper.h:
4910         * bridge/objc/objc_runtime.h:
4911         * bridge/objc/objc_utility.h:
4912         * bridge/qt/qt_runtime.cpp:
4913         * bridge/runtime.h:
4914         * bridge/runtime_array.h:
4915         * bridge/runtime_method.h:
4916         * bridge/runtime_object.h:
4917         * bridge/testbindings.cpp:
4918         * bridge/testbindings.mm:
4919         * bridge/testqtbindings.cpp:
4920         * loader/FrameLoader.cpp:
4921         * page/JavaScriptCallFrame.cpp:
4922         * page/JavaScriptProfile.cpp:
4923         * page/JavaScriptProfileNode.cpp:
4924         * platform/graphics/gtk/VideoSinkGStreamer.h:
4925         * plugins/PluginView.cpp:
4926         * plugins/gtk/PluginViewGtk.cpp:
4927         * plugins/qt/PluginViewQt.cpp:
4928         * plugins/win/PluginViewWin.cpp:
4930 2008-06-15  Darin Adler  <darin@apple.com>
4932         Rubber stamped by Sam.
4934         - cut down on confusing uses of "Object" and "Imp" in
4935           JavaScriptCore class names
4937         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
4938         (WebCore::JSCSSStyleDeclaration::nameGetter):
4939         * bridge/qt/qt_runtime.cpp:
4940         (KJS::Bindings::valueRealType):
4941         (KJS::Bindings::convertValueToQVariant):
4942         (KJS::Bindings::convertQVariantToValue):
4943         (KJS::Bindings::QtRuntimeMethod::QtRuntimeMethod):
4944         * bridge/qt/qt_runtime.h:
4945         * bridge/runtime_method.cpp:
4946         (RuntimeMethod::RuntimeMethod):
4947         (RuntimeMethod::getOwnPropertySlot):
4948         * bridge/runtime_method.h:
4950 2008-06-15  Dan Bernstein  <mitz@apple.com>
4952         Reviewed by Darin Adler.
4954         - fix <rdar://problem/5825683> Three slash URLs are modified by WebKit
4956         Test: fast/loader/url-parse-1.html
4958         URIs in which the scheme is followed by "://" are ambiguous, because
4959         "//" can be either the beginning of a net_path or the beginning of an
4960         abs_path whose first path segment is empty. In the case of ":///", the
4961         net_path interpretation is invalid, because the authority (the part
4962         between the second and third slashes) cannot be empty. However, for
4963         historical reasons, this is allowed in http:, https: and file: URLs,
4964         in which an empty authority means the local host.
4966         * platform/KURL.cpp:
4967         (WebCore::KURL::parse): Changed to interpret URLs in which the scheme
4968         is followed by ":///" as abs_path-only URLs, unless the scheme is http,
4969         https or file.
4971 2008-06-15  Darin Adler  <darin@apple.com>
4973         Rubber stamped by Sam.
4975         - use JS prefix and simpler names for basic JavaScriptCore types,
4976           to complement JSValue and JSObject
4978         * bindings/js/JSNavigatorCustom.cpp:
4979         (WebCore::needsYouTubeQuirk):
4980         * bindings/js/kjs_events.cpp:
4981         (WebCore::JSLazyEventListener::parseCode):
4982         * bridge/jni/jni_utility.cpp:
4983         (KJS::Bindings::convertArrayInstanceToJavaArray):
4984         (KJS::Bindings::convertValueToJValue):
4985         * bridge/qt/qt_runtime.cpp:
4986         (KJS::Bindings::valueRealType):
4987         (KJS::Bindings::convertValueToQVariant):
4988         (KJS::Bindings::QtConnectionObject::execute):
4989         * bridge/runtime_array.cpp:
4991 2008-06-15  Darin Adler  <darin@apple.com>
4993         Reviewed by Mitz.
4995         - fix https://bugs.webkit.org/show_bug.cgi?id=19556
4996           REGRESSION (r34544): Crash while visiting bigglook.com
4998         This fix eliminates the crash, but the logic remaining seems a little strange.
4999         We create an IconRecord and then immediately destroy it. Worth taking another
5000         look at this later.
5002         * loader/icon/IconDatabase.cpp:
5003         (WebCore::IconDatabase::setIconDataForIconURL): Added code to remove the icon
5004         just as in the other cases where we might be holding the single reference to it.
5005         (WebCore::IconDatabase::setIconURLForPageURL): Fixed comment typo.
5006         (WebCore::IconDatabase::writeToDatabase): Removed unused local variable.
5008 2008-06-15  Darin Adler  <darin@apple.com>
5010         Reviewed and tweaked by Sam Weinig.
5012         Fix for <rdar://problem/5908591>
5013         https://bugs.webkit.org/show_bug.cgi?id=18743
5015         Makes DOMImplementation per-document.
5017         Test: http/tests/security/cross-frame-access-DOMImplementation.html
5019         * bindings/objc/DOMImplementationFront.cpp:
5020         (WebCore::DOMImplementationFront::getInterface):
5021         * bindings/objc/DOMImplementationFront.h:
5022         * dom/DOMImplementation.cpp:
5023         (WebCore::DOMImplementation::hasFeature):
5024         (WebCore::DOMImplementation::createDocumentType):
5025         (WebCore::DOMImplementation::getInterface):
5026         (WebCore::DOMImplementation::createDocument):
5027         (WebCore::DOMImplementation::createHTMLDocument):
5028         * dom/DOMImplementation.h:
5029         (WebCore::DOMImplementation::create):
5030         * dom/Document.cpp:
5031         (WebCore::Document::Document):
5032         (WebCore::Document::implementation):
5033         * dom/Document.h:
5034         (WebCore::Document::create):
5035         (WebCore::Document::createXHTML):
5036         * dom/DocumentType.cpp:
5037         * dom/DocumentType.h:
5038         (WebCore::DocumentType::create):
5039         (WebCore::DocumentType::entities):
5040         (WebCore::DocumentType::notations):
5041         (WebCore::DocumentType::name):
5042         (WebCore::DocumentType::publicId):
5043         (WebCore::DocumentType::systemId):
5044         (WebCore::DocumentType::internalSubset):
5045         * dom/Node.cpp:
5046         (WebCore::Node::isSupported):
5047         * dom/XMLTokenizer.cpp:
5048         (WebCore::XMLTokenizer::internalSubset):
5049         * html/HTMLDocument.cpp:
5050         (WebCore::HTMLDocument::HTMLDocument):
5051         * html/HTMLDocument.h:
5052         (WebCore::HTMLDocument::create):
5053         (WebCore::HTMLDocument::isHTMLDocument):
5054         * html/HTMLParser.cpp:
5055         (WebCore::HTMLParser::parseDoctypeToken):
5056         * html/HTMLViewSourceDocument.cpp:
5057         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
5058         (WebCore::HTMLViewSourceDocument::createTokenizer):
5059         * html/HTMLViewSourceDocument.h:
5060         (WebCore::HTMLViewSourceDocument::create):
5061         * loader/CachedFont.cpp:
5062         (WebCore::CachedFont::ensureSVGFontData):
5063         * loader/FTPDirectoryDocument.cpp:
5064         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
5065         * loader/FTPDirectoryDocument.h:
5066         (WebCore::FTPDirectoryDocument::create):
5067         * loader/FrameLoader.cpp:
5068         (WebCore::FrameLoader::begin):
5069         * loader/ImageDocument.cpp:
5070         (WebCore::ImageDocument::ImageDocument):
5071         * loader/ImageDocument.h:
5072         (WebCore::ImageDocument::create):
5073         (WebCore::ImageDocument::isImageDocument):
5074         * loader/PluginDocument.cpp:
5075         (WebCore::PluginDocument::PluginDocument):
5076         * loader/PluginDocument.h:
5077         (WebCore::PluginDocument::create):
5078         (WebCore::PluginDocument::isPluginDocument):
5079         * loader/TextDocument.cpp:
5080         (WebCore::TextTokenizer::checkBuffer):
5081         (WebCore::TextDocument::TextDocument):
5082         (WebCore::createTextTokenizer):
5083         * loader/TextDocument.h:
5084         (WebCore::TextDocument::create):
5085         * svg/SVGDocument.cpp:
5086         (WebCore::SVGDocument::SVGDocument):
5087         * svg/SVGDocument.h:
5088         (WebCore::SVGDocument::create):
5089         * svg/SVGElement.cpp:
5090         (WebCore::SVGElement::isSupported):
5091         * svg/SVGTests.cpp:
5092         (WebCore::SVGTests::isValid):
5093         * xml/DOMParser.cpp:
5094         (WebCore::DOMParser::parseFromString):
5096 2008-06-15  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
5098         Reviewed by Maciej.
5100         Mac build fix.
5102         * WebCore.base.exp:
5103         * WebCore.order:
5105 2008-06-14  Darin Adler  <darin@apple.com>
5107         Rubber stamped by Sam.
5109         - new names for kjs_binding.h and kjs_proxy.h
5111         * GNUmakefile.am:
5112         * WebCore.pro:
5113         * WebCore.vcproj/WebCore.vcproj:
5114         * WebCore.xcodeproj/project.pbxproj:
5115         * WebCoreSources.bkl:
5116         * bindings/js/JSAudioConstructor.h:
5117         * bindings/js/JSCustomSQLStatementCallback.cpp:
5118         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
5119         * bindings/js/JSCustomSQLTransactionCallback.cpp:
5120         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
5121         * bindings/js/JSCustomVoidCallback.cpp:
5122         * bindings/js/JSCustomXPathNSResolver.cpp:
5123         * bindings/js/JSDOMBinding.cpp: Copied from WebCore/bindings/js/kjs_binding.cpp.
5124         * bindings/js/JSDOMBinding.h: Copied from WebCore/bindings/js/kjs_binding.h.
5125         * bindings/js/JSDOMWindowBase.cpp:
5126         * bindings/js/JSDOMWindowBase.h:
5127         * bindings/js/JSDOMWindowCustom.cpp:
5128         * bindings/js/JSDOMWindowShell.cpp:
5129         * bindings/js/JSDOMWindowShell.h:
5130         * bindings/js/JSDocumentCustom.cpp:
5131         * bindings/js/JSHTMLCollectionCustom.cpp:
5132         * bindings/js/JSHTMLFrameElementCustom.cpp:
5133         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
5134         * bindings/js/JSHTMLIFrameElementCustom.cpp:
5135         * bindings/js/JSHTMLInputElementBase.h:
5136         * bindings/js/JSHTMLOptionElementConstructor.h:
5137         * bindings/js/JSImageConstructor.h:
5138         * bindings/js/JSLocationCustom.cpp:
5139         * bindings/js/JSNamedNodeMapCustom.cpp:
5140         * bindings/js/JSNamedNodesCollection.h:
5141         * bindings/js/JSNodeFilterCondition.cpp:
5142         * bindings/js/JSNodeFilterCustom.cpp:
5143         * bindings/js/JSRGBColor.h:
5144         * bindings/js/JSSVGPathSegCustom.cpp:
5145         * bindings/js/JSXMLHttpRequestConstructor.h:
5146         * bindings/js/JSXSLTProcessorConstructor.h:
5147         * bindings/js/JSXSLTProcessorCustom.cpp:
5148         * bindings/js/ScheduledAction.cpp:
5149         (WebCore::ScheduledAction::execute):
5150         * bindings/js/ScriptController.cpp: Copied from WebCore/bindings/js/kjs_proxy.cpp.
5151         * bindings/js/ScriptController.h: Copied from WebCore/bindings/js/kjs_proxy.h.
5152         * bindings/js/kjs_binding.cpp: Removed.
5153         * bindings/js/kjs_binding.h: Removed.
5154         * bindings/js/kjs_events.cpp:
5155         (WebCore::JSAbstractEventListener::handleEvent):
5156         * bindings/js/kjs_html.cpp:
5157         * bindings/js/kjs_html.h:
5158         * bindings/js/kjs_proxy.cpp: Removed.
5159         * bindings/js/kjs_proxy.h: Removed.
5160         * bindings/objc/DOMInternal.mm:
5161         * bindings/scripts/CodeGeneratorJS.pm:
5162         * bridge/jni/jni_jsobject.mm:
5163         * dom/Document.cpp:
5164         * dom/EventTarget.cpp:
5165         * dom/Node.cpp:
5166         * dom/XMLTokenizer.cpp:
5167         (WebCore::XMLTokenizer::startElementNs):
5168         * history/CachedPage.cpp:
5169         (WebCore::CachedPage::CachedPage):
5170         (WebCore::CachedPage::restore):
5171         * html/HTMLPlugInElement.cpp:
5172         * html/HTMLScriptElement.cpp:
5173         * html/HTMLTokenizer.cpp:
5174         (WebCore::HTMLTokenizer::processToken):
5175         * loader/FrameLoader.cpp:
5176         (WebCore::FrameLoader::executeScript):
5177         * page/Frame.cpp:
5178         (WebCore::Frame::scriptProxy):
5179         * page/Frame.h:
5180         * page/FramePrivate.h:
5181         * page/InspectorController.cpp:
5182         * page/JavaScriptDebugServer.cpp:
5183         * page/JavaScriptProfileNode.cpp:
5184         * page/Page.cpp:
5185         * page/gtk/FrameGtk.cpp:
5186         * page/mac/FrameMac.mm:
5187         * page/qt/FrameQt.cpp:
5188         * page/win/FrameWin.cpp:
5189         * plugins/PluginView.cpp:
5190         (WebCore::getString):
5191         * plugins/gtk/PluginViewGtk.cpp:
5192         * plugins/qt/PluginViewQt.cpp:
5193         * plugins/win/PluginViewWin.cpp:
5194         * svg/SVGDocumentExtensions.cpp:
5195         * xml/XMLHttpRequest.cpp:
5197 2008-06-14  Darin Adler  <darin@apple.com>
5199         Rubber stamped by Sam.
5201         - renamed HTMLGenericFormElement to HTMLFormControlElement
5203         * GNUmakefile.am:
5204         * WebCore.pro:
5205         * WebCore.vcproj/WebCore.vcproj:
5206         * WebCore.xcodeproj/project.pbxproj:
5207         * WebCoreSources.bkl:
5208         * html/HTMLButtonElement.cpp:
5209         (WebCore::HTMLButtonElement::HTMLButtonElement):
5210         (WebCore::HTMLButtonElement::parseMappedAttribute):
5211         (WebCore::HTMLButtonElement::defaultEventHandler):
5212         * html/HTMLButtonElement.h:
5213         * html/HTMLFieldSetElement.cpp:
5214         (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
5215         * html/HTMLFieldSetElement.h:
5216         * html/HTMLFormCollection.cpp:
5217         (WebCore::HTMLFormCollection::item):
5218         (WebCore::HTMLFormCollection::getNamedFormItem):
5219         (WebCore::HTMLFormCollection::updateNameCache):
5220         * html/HTMLFormControlElement.cpp: Copied from WebCore/html/HTMLGenericFormElement.cpp.
5221         * html/HTMLFormControlElement.h: Copied from WebCore/html/HTMLGenericFormElement.h.
5222         * html/HTMLFormElement.cpp:
5223         (WebCore::HTMLFormElement::formData):
5224         (WebCore::HTMLFormElement::submit):
5225         (WebCore::HTMLFormElement::formElementIndex):
5226         (WebCore::HTMLFormElement::registerFormElement):
5227         (WebCore::HTMLFormElement::removeFormElement):
5228         (WebCore::HTMLFormElement::elementForAlias):
5229         (WebCore::HTMLFormElement::addElementAlias):
5230         (WebCore::HTMLFormElement::getNamedElements):
5231         (WebCore::HTMLFormElement::CheckedRadioButtons::addButton):
5232         (WebCore::HTMLFormElement::CheckedRadioButtons::removeButton):
5233         * html/HTMLFormElement.h:
5234         * html/HTMLGenericFormElement.cpp: Removed.
5235         * html/HTMLGenericFormElement.h: Removed.
5236         * html/HTMLInputElement.h:
5237         * html/HTMLIsIndexElement.cpp:
5238         (WebCore::HTMLIsIndexElement::parseMappedAttribute):
5239         * html/HTMLKeygenElement.cpp:
5240         (WebCore::HTMLKeygenElement::parseMappedAttribute):
5241         * html/HTMLLegendElement.cpp:
5242         (WebCore::HTMLLegendElement::HTMLLegendElement):
5243         * html/HTMLLegendElement.h:
5244         * html/HTMLOptGroupElement.cpp:
5245         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
5246         (WebCore::HTMLOptGroupElement::insertBefore):
5247         (WebCore::HTMLOptGroupElement::replaceChild):
5248         (WebCore::HTMLOptGroupElement::removeChild):
5249         (WebCore::HTMLOptGroupElement::appendChild):
5250         (WebCore::HTMLOptGroupElement::removeChildren):
5251         (WebCore::HTMLOptGroupElement::childrenChanged):
5252         (WebCore::HTMLOptGroupElement::parseMappedAttribute):
5253         (WebCore::HTMLOptGroupElement::attach):
5254         (WebCore::HTMLOptGroupElement::detach):
5255         * html/HTMLOptGroupElement.h:
5256         * html/HTMLOptionElement.cpp:
5257         (WebCore::HTMLOptionElement::HTMLOptionElement):
5258         (WebCore::HTMLOptionElement::attach):
5259         (WebCore::HTMLOptionElement::detach):
5260         (WebCore::HTMLOptionElement::parseMappedAttribute):
5261         (WebCore::HTMLOptionElement::childrenChanged):
5262         (WebCore::HTMLOptionElement::disabled):
5263         (WebCore::HTMLOptionElement::insertedIntoDocument):
5264         * html/HTMLOptionElement.h:
5265         * html/HTMLSelectElement.h:
5266         * html/HTMLTextAreaElement.h:
5267         * page/Frame.cpp:
5268         (WebCore::scanForForm):
5269         (WebCore::Frame::currentForm):
5270         * page/mac/FrameMac.mm:
5271         * rendering/RenderFieldset.cpp:
5272         (WebCore::RenderFieldset::RenderFieldset):
5273         * rendering/RenderFieldset.h:
5274         * rendering/RenderLegend.cpp:
5275         (WebCore::RenderLegend::RenderLegend):
5276         * rendering/RenderLegend.h:
5277         * rendering/RenderTextControl.cpp:
5278         (WebCore::RenderTextControl::createInnerTextStyle):
5279         (WebCore::RenderTextControl::updateFromElement):
5280         (WebCore::RenderTextControl::subtreeHasChanged):
5281         (WebCore::RenderTextControl::selectionChanged):
5283 2008-06-14  Sam Weinig  <sam@webkit.org>
5285         Windows build fix.
5287         * bindings/scripts/CodeGeneratorCOM.pm:
5289 2008-06-14  Darin Adler  <darin@apple.com>
5291         - more build fixing
5293         * platform/gtk/DragDataGtk.cpp: Added missing header.
5294         * platform/wx/DragDataWx.cpp: Ditto.
5296 2008-06-14  Darin Adler  <darin@apple.com>
5298         Reviewed by Sam.
5300         - fix https://bugs.webkit.org/show_bug.cgi?id=19544
5301           DashboardRegion pieces are leaking
5303         My recent change introduced a leak of objects owned by each DashboardRegion,
5304         because I made ~Rect non-virtual. By using a separate RefCounted class for
5305         each of Rect and DashboardRegion, the leak is gone. It's not clear if the
5306         DashboardRegion class should really exist -- it doesn't have a DOM binding,
5307         so it could conceivably be removed some day.
5309         * css/DashboardRegion.h: Derive from RectBase instead of from Rect.
5310         * css/Rect.h: Added RectBase. Changed Rect to derive from RectBase.
5312 2008-06-14  Darin Adler  <darin@apple.com>
5314         Reviewed by Sam.
5316         - https://bugs.webkit.org/show_bug.cgi?id=19545
5317           use PassRefPtr, not RefPtr, for return values
5319         * css/CSSParser.cpp:
5320         (WebCore::CSSParser::parseGradient): Call release() when assigning result to avoid
5321         a little bit of refcount churn.
5323         * css/CSSStyleSelector.cpp:
5324         (WebCore::CSSStyleSelector::styleRulesForElement): Changed return value to PassRefPtr.
5325         (WebCore::CSSStyleSelector::pseudoStyleRulesForElement): Ditto.
5326         * css/CSSStyleSelector.h: Ditto.
5328         * svg/SVGElementInstanceList.cpp:
5329         (WebCore::SVGElementInstanceList::length): Tweaked formatting.
5330         (WebCore::SVGElementInstanceList::item): Changed return value to raw pointer.
5331         * svg/SVGElementInstanceList.h: Ditto.
5333         * xml/XSLTProcessor.cpp:
5334         (WebCore::XSLTProcessor::createDocumentFromSource): Changed return value to PassRefPtr.
5335         (WebCore::XSLTProcessor::transformToDocument): Ditto.
5336         (WebCore::XSLTProcessor::transformToFragment): Ditto.
5337         * xml/XSLTProcessor.h: Ditto.
5339 2008-06-14  Darin Adler  <darin@apple.com>
5341         - try to fix the gtk build
5343         * platform/gtk/DragDataGtk.cpp:
5344         (WebCore::DragData::createClipboard): Changed return type to PassRefPtr.
5346 2008-06-14  Darin Adler  <darin@apple.com>
5348         - another try at fixing the wx build
5350         * platform/wx/DragDataWx.cpp:
5351         (WebCore::DragData::createClipboard): Changed return type to PassRefPtr.
5353 2008-06-14  Darin Adler  <darin@apple.com>
5355         - try to fix Windows build
5357         * svg/graphics/SVGImageEmptyClients.h: Added missing include.
5359 2008-06-14  Darin Adler  <darin@apple.com>
5361         - fix wx build
5363         * platform/wx/TemporaryLinkStubs.cpp: Removed unneeded Icon constructor.
5365 2008-06-14  Darin Adler  <darin@apple.com>
5367         Reviewed by Sam.
5369         - more work on https://bugs.webkit.org/show_bug.cgi?id=17257
5370           start ref counts at 1 instead of 0 for speed
5372         * WebCore.base.exp: Added some new exports needed for functions that are now
5373         non-virtual.
5375         * WebCore.xcodeproj/project.pbxproj: Moved the "icon" group to the correct
5376         location in the project. Before it was inside "appcache"!
5378         * css/CSSStyleSelector.cpp:
5379         (WebCore::CSSStyleSelector::applyProperty):
5380         * dom/Clipboard.cpp:
5381         (WebCore::Clipboard::Clipboard):
5382         * editing/mac/EditorMac.mm:
5383         (WebCore::Editor::newGeneralClipboard):
5384         * editing/qt/EditorQt.cpp:
5385         (WebCore::Editor::newGeneralClipboard):
5386         * editing/wx/EditorWx.cpp:
5387         (WebCore::Editor::newGeneralClipboard):
5388         * loader/DocumentLoader.cpp:
5389         (WebCore::DocumentLoader::DocumentLoader):
5390         * loader/DocumentLoader.h:
5391         (WebCore::DocumentLoader::create):
5392         * loader/icon/IconDatabase.cpp:
5393         (WebCore::IconDatabase::defaultIcon):
5394         (WebCore::IconDatabase::setIconDataForIconURL):
5395         (WebCore::IconDatabase::setIconURLForPageURL):
5396         (WebCore::IconDatabase::getOrCreateIconRecord):
5397         (WebCore::IconDatabase::performURLImport):
5398         * loader/icon/IconDatabase.h:
5399         * loader/icon/IconRecord.cpp:
5400         (WebCore::IconRecord::IconRecord):
5401         * loader/icon/IconRecord.h:
5402         (WebCore::IconRecord::create):
5403         * page/EventHandler.h:
5404         * page/Frame.cpp:
5405         (WebCore::Frame::Frame):
5406         * page/Frame.h:
5407         (WebCore::Frame::create):
5408         * page/gtk/EventHandlerGtk.cpp:
5409         (WebCore::EventHandler::createDraggingClipboard):
5410         * page/mac/EventHandlerMac.mm:
5411         (WebCore::EventHandler::createDraggingClipboard):
5412         * page/qt/EventHandlerQt.cpp:
5413         (WebCore::EventHandler::createDraggingClipboard):
5414         * page/win/EventHandlerWin.cpp:
5415         (WebCore::EventHandler::createDraggingClipboard):
5416         * page/wx/EventHandlerWx.cpp:
5417         (WebCore::EventHandler::createDraggingClipboard):
5418         * platform/Cursor.h:
5419         (WebCore::SharedCursor::create):
5420         (WebCore::SharedCursor::~SharedCursor):
5421         (WebCore::SharedCursor::SharedCursor):
5422         * platform/DragData.h:
5423         * platform/PopupMenu.h:
5424         (WebCore::PopupMenu::create):
5425         (WebCore::PopupMenu::isActive):
5426         * platform/ScrollBar.cpp:
5427         (WebCore::Scrollbar::Scrollbar):
5428         * platform/SearchPopupMenu.h:
5429         (WebCore::SearchPopupMenu::create):
5430         * platform/graphics/FontFamily.cpp:
5431         (WebCore::FontFamily::FontFamily):
5432         (WebCore::operator==):
5433         * platform/graphics/FontFamily.h:
5434         (WebCore::FontFamily::FontFamily):
5435         (WebCore::SharedFontFamily::create):
5436         (WebCore::SharedFontFamily::SharedFontFamily):
5437         (WebCore::operator!=):
5438         (WebCore::FontFamily::next):
5439         (WebCore::FontFamily::appendFamily):
5440         (WebCore::FontFamily::releaseNext):
5441         * platform/graphics/Icon.h:
5442         * platform/graphics/gtk/IconGtk.cpp:
5443         (WebCore::Icon::Icon):
5444         (WebCore::Icon::~Icon):
5445         (WebCore::Icon::newIconForFile):
5446         * platform/graphics/mac/IconMac.mm:
5447         (WebCore::Icon::Icon):
5448         (WebCore::Icon::newIconForFile):
5449         * platform/graphics/qt/IconQt.cpp:
5450         (WebCore::Icon::Icon):
5451         (WebCore::Icon::newIconForFile):
5452         * platform/graphics/win/IconWin.cpp:
5453         (WebCore::Icon::Icon):
5454         (WebCore::Icon::~Icon):
5455         (WebCore::Icon::newIconForFile):
5456         * platform/gtk/ClipboardGtk.cpp:
5457         (WebCore::Editor::newGeneralClipboard):
5458         * platform/gtk/ClipboardGtk.h:
5459         (WebCore::ClipboardGtk::create):
5460         * platform/gtk/PlatformScrollBar.h:
5461         (WebCore::PlatformScrollbar::create):
5462         * platform/gtk/PopupMenuGtk.cpp:
5463         (WebCore::PopupMenu::PopupMenu):
5464         * platform/gtk/ScrollViewGtk.cpp:
5465         (WebCore::ScrollViewScrollbar::create):
5466         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
5467         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
5468         * platform/mac/ClipboardMac.h:
5469         (WebCore::ClipboardMac::create):
5470         * platform/mac/DragDataMac.mm:
5471         (WebCore::DragData::createClipboard):
5472         (WebCore::DragData::containsCompatibleContent):
5473         * platform/mac/PlatformScrollBar.h:
5474         (WebCore::PlatformScrollbar::create):
5475         (WebCore::PlatformScrollbar::horizontalScrollbarHeight):
5476         (WebCore::PlatformScrollbar::verticalScrollbarWidth):
5477         * platform/mac/PopupMenuMac.mm:
5478         (WebCore::PopupMenu::PopupMenu):
5479         * platform/qt/ClipboardQt.h:
5480         (WebCore::ClipboardQt::create):
5481         * platform/qt/DragDataQt.cpp:
5482         (WebCore::DragData::createClipboard):
5483         * platform/qt/PlatformScrollBar.h:
5484         (WebCore::PlatformScrollbar::create):
5485         * platform/qt/PopupMenuQt.cpp:
5486         (WebCore::PopupMenu::PopupMenu):
5487         * platform/qt/ScrollViewQt.cpp:
5488         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
5489         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
5490         * platform/win/ClipboardWin.h:
5491         (WebCore::ClipboardWin::create):
5492         * platform/win/CursorWin.cpp:
5493         (WebCore::Cursor::Cursor):
5494         (WebCore::loadSharedCursor):
5495         * platform/win/DragDataWin.cpp:
5496         (WebCore::DragData::createClipboard):
5497         * platform/win/EditorWin.cpp:
5498         (WebCore::Editor::newGeneralClipboard):
5499         * platform/win/PlatformScrollBar.h:
5500         (WebCore::PlatformScrollbar::create):
5501         * platform/win/PopupMenuWin.cpp:
5502         (WebCore::PopupMenu::PopupMenu):
5503         (WebCore::PopupMenu::show):
5504         * platform/win/ScrollViewWin.cpp:
5505         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
5506         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
5507         * platform/wx/ClipboardWx.h:
5508         (WebCore::ClipboardWx::create):
5509         * platform/wx/PlatformScrollBar.h:
5510         (WebCore::PlatformScrollbar::create):
5511         * platform/wx/PopupMenuWx.cpp:
5512         (WebCore::PopupMenu::PopupMenu):
5513         * platform/wx/TemporaryLinkStubs.cpp:
5514         (Icon::Icon):
5515         (Icon::newIconForFile):
5516         * rendering/RenderLayer.cpp:
5517         (WebCore::RenderLayer::createScrollbar):
5518         * rendering/RenderListBox.cpp:
5519         (WebCore::RenderListBox::updateFromElement):
5520         * svg/graphics/SVGImage.cpp:
5521         (WebCore::SVGImage::dataChanged):
5522         * svg/graphics/SVGImageEmptyClients.h:
5523         (WebCore::SVGEmptyFrameLoaderClient::createDocumentLoader):
5525 2008-06-14  Sam Weinig  <sam@webkit.org>
5527         Reviewed by Dan Bernstein.
5529         Fix for <rdar://problem/5775192>
5530         insertAdjacentHTML and insertAdjacentText are not implemented although insertAdjacentElement is.
5532         - Implements insertAdjacentHTML and insertAdjacentText for HTMLElement.
5533         - Moves the insertAdjacentElement implementation from Element to HTMLElement.
5535         Tests: fast/dynamic/insertAdjacentHTML.html
5536                fast/dynamic/insertAdjacentText.html
5538         * dom/Element.cpp:
5539         * dom/Element.h:
5540         * dom/Element.idl:
5541         * html/HTMLElement.cpp:
5542         (WebCore::HTMLElement::insertAdjacent):
5543         (WebCore::HTMLElement::insertAdjacentElement):
5544         (WebCore::HTMLElement::insertAdjacentHTML):
5545         (WebCore::HTMLElement::insertAdjacentText):
5546         * html/HTMLElement.h:
5547         * html/HTMLElement.idl:
5549 2008-06-14  Darin Adler  <darin@apple.com>
5551         Reviewed by Maciej.
5553         - fix https://bugs.webkit.org/show_bug.cgi?id=19538
5554           <rdar://problem/5957595> Reading transition property from the style JS gives the wrong value
5556         Test: fast/dom/CSSStyleDeclaration/transition-property-names.html
5558         * css/CSSPrimitiveValue.cpp:
5559         (WebCore::valueOrPropertyName): Added.
5560         (WebCore::CSSPrimitiveValue::getStringValue): Use valueOrPropertyName since the ident can either
5561         be a value or property ID.
5562         (WebCore::CSSPrimitiveValue::cssText): Ditto.
5564         * css/makeprop.pl: Assign property IDs starting at 1001 instead of 1 so they can be stored along
5565         with value IDs with no ambiguity.
5567 2008-06-14  Adam Barth  <abarth@webkit.org>
5569         Reviewed by David Kilzer.
5571         Fix typo.
5573         * dom/XMLTokenizer.cpp:
5574         (WebCore::shouldAllowExternalLoad):
5576 2008-06-14  Darin Adler  <darin@apple.com>
5578         - fix build
5580         * plugins/PluginStream.h: Move functions back into public section.
5582 2008-06-14  Darin Adler  <darin@apple.com>
5584         Reviewed by Sam.
5586         - more work on https://bugs.webkit.org/show_bug.cgi?id=17257
5587           start ref counts at 1 instead of 0 for speed
5589         * WebCore.base.exp:
5590         * bindings/js/JSSVGMatrixCustom.cpp:
5591         (WebCore::JSSVGMatrix::multiply):
5592         (WebCore::JSSVGMatrix::inverse):
5593         (WebCore::JSSVGMatrix::translate):
5594         (WebCore::JSSVGMatrix::scale):
5595         (WebCore::JSSVGMatrix::scaleNonUniform):
5596         (WebCore::JSSVGMatrix::rotate):
5597         (WebCore::JSSVGMatrix::rotateFromVector):
5598         (WebCore::JSSVGMatrix::flipX):
5599         (WebCore::JSSVGMatrix::flipY):
5600         (WebCore::JSSVGMatrix::skewX):
5601         (WebCore::JSSVGMatrix::skewY):
5602         * bindings/js/JSSVGPODTypeWrapper.h:
5603         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::create):
5604         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::JSSVGPODTypeWrapperCreatorReadWrite):
5605         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::create):
5606         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::JSSVGPODTypeWrapperCreatorReadOnly):
5607         (WebCore::JSSVGPODTypeWrapperCreatorForList::create):
5608         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
5609         (WebCore::JSSVGPODTypeWrapperCache::lookupOrCreateWrapper):
5610         (WebCore::JSSVGPODTypeWrapperCache::forgetWrapper):
5611         * bindings/js/JSSVGPointListCustom.cpp:
5612         (WebCore::finishGetter):
5613         (WebCore::finishSetter):
5614         (WebCore::finishSetterReadOnlyResult):
5615         (WebCore::JSSVGPointList::clear):
5616         (WebCore::JSSVGPointList::initialize):
5617         (WebCore::JSSVGPointList::getItem):
5618         (WebCore::JSSVGPointList::insertItemBefore):
5619         (WebCore::JSSVGPointList::replaceItem):
5620         (WebCore::JSSVGPointList::removeItem):
5621         (WebCore::JSSVGPointList::appendItem):
5622         * bindings/js/JSSVGTransformListCustom.cpp:
5623         (WebCore::finishGetter):
5624         (WebCore::finishSetter):
5625         (WebCore::finishSetterReadOnlyResult):
5626         (WebCore::JSSVGTransformList::clear):
5627         (WebCore::JSSVGTransformList::initialize):
5628         (WebCore::JSSVGTransformList::getItem):
5629         (WebCore::JSSVGTransformList::insertItemBefore):
5630         (WebCore::JSSVGTransformList::replaceItem):
5631         (WebCore::JSSVGTransformList::removeItem):
5632         (WebCore::JSSVGTransformList::appendItem):
5633         * bindings/scripts/CodeGeneratorJS.pm:
5634         * css/CSSFontSelector.cpp:
5635         (WebCore::CSSFontSelector::CSSFontSelector):
5636         (WebCore::CSSFontSelector::~CSSFontSelector):
5637         * css/CSSFontSelector.h:
5638         (WebCore::CSSFontSelector::create):
5639         * css/CSSStyleSelector.cpp:
5640         (WebCore::CSSStyleSelector::CSSStyleSelector):
5641         (WebCore::CSSStyleSelector::applyProperty):
5642         * dom/Attribute.cpp:
5643         (WebCore::Attribute::clone):
5644         * dom/Attribute.h:
5645         (WebCore::Attribute::create):
5646         (WebCore::Attribute::Attribute):
5647         * dom/BeforeTextInsertedEvent.h:
5648         (WebCore::BeforeTextInsertedEvent::create):
5649         * dom/BeforeUnloadEvent.h:
5650         (WebCore::BeforeUnloadEvent::create):
5651         * dom/CharacterData.cpp:
5652         (WebCore::CharacterData::dispatchModifiedEvent):
5653         * dom/ClipboardEvent.cpp:
5654         (WebCore::ClipboardEvent::ClipboardEvent):
5655         * dom/ClipboardEvent.h:
5656         (WebCore::ClipboardEvent::create):
5657         * dom/ContainerNode.cpp:
5658         (WebCore::ContainerNode::removeChild):
5659         (WebCore::dispatchChildInsertionEvents):
5660         (WebCore::dispatchChildRemovalEvents):
5661         * dom/Document.cpp:
5662         (WebCore::Document::createTextNode):
5663         (WebCore::Document::createComment):
5664         (WebCore::Document::createCDATASection):
5665         (WebCore::Document::createProcessingInstruction):
5666         (WebCore::Document::createEntityReference):
5667         (WebCore::Document::createEditingTextNode):
5668         (WebCore::Document::createEvent):
5669         (WebCore::Document::createAttributeNS):
5670         (WebCore::Document::finishedParsing):
5671         * dom/Document.h:
5672         * dom/Element.cpp:
5673         (WebCore::Element::createAttribute):
5674         * dom/Element.h:
5675         * dom/Event.cpp:
5676         (WebCore::Event::Event):
5677         * dom/Event.h:
5678         (WebCore::Event::create):
5679         * dom/EventTargetNode.cpp:
5680         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent):
5681         (WebCore::EventTargetNode::dispatchWindowEvent):
5682         (WebCore::EventTargetNode::dispatchUIEvent):
5683         (WebCore::EventTargetNode::dispatchKeyEvent):
5684         (WebCore::EventTargetNode::dispatchMouseEvent):
5685         (WebCore::EventTargetNode::dispatchWheelEvent):
5686         (WebCore::EventTargetNode::dispatchHTMLEvent):
5687         (WebCore::EventTargetNode::dispatchProgressEvent):
5688         (WebCore::EventTargetNode::dispatchStorageEvent):
5689         * dom/KeyboardEvent.h:
5690         (WebCore::KeyboardEvent::create):
5691         * dom/MappedAttribute.cpp:
5692         (WebCore::MappedAttribute::clone):
5693         * dom/MappedAttribute.h:
5694         (WebCore::MappedAttribute::create):
5695         (WebCore::MappedAttribute::setDecl):
5696         (WebCore::MappedAttribute::MappedAttribute):
5697         * dom/MessageEvent.cpp:
5698         (WebCore::MessageEvent::MessageEvent):
5699         * dom/MessageEvent.h:
5700         (WebCore::MessageEvent::create):
5701         * dom/MouseEvent.cpp:
5702         (WebCore::MouseEvent::MouseEvent):
5703         (WebCore::MouseEvent::initMouseEvent):
5704         * dom/MouseEvent.h:
5705         (WebCore::MouseEvent::create):
5706         * dom/MouseRelatedEvent.cpp:
5707         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
5708         * dom/MouseRelatedEvent.h:
5709         * dom/MutationEvent.cpp:
5710         (WebCore::MutationEvent::MutationEvent):
5711         (WebCore::MutationEvent::initMutationEvent):
5712         * dom/MutationEvent.h:
5713         (WebCore::MutationEvent::create):
5714         * dom/OverflowEvent.h:
5715         (WebCore::OverflowEvent::create):
5716         * dom/ProgressEvent.h:
5717         (WebCore::ProgressEvent::create):
5718         * dom/StyledElement.cpp:
5719         (WebCore::StyledElement::getMappedAttributeDecl):
5720         (WebCore::StyledElement::setMappedAttributeDecl):
5721         (WebCore::StyledElement::removeMappedAttributeDecl):
5722         (WebCore::StyledElement::createAttribute):
5723         * dom/StyledElement.h:
5724         * dom/TextEvent.cpp:
5725         (WebCore::TextEvent::TextEvent):
5726         (WebCore::TextEvent::initTextEvent):
5727         * dom/TextEvent.h:
5728         (WebCore::TextEvent::create):
5729         * dom/UIEvent.cpp:
5730         (WebCore::UIEvent::UIEvent):
5731         (WebCore::UIEvent::initUIEvent):
5732         * dom/UIEvent.h:
5733         (WebCore::UIEvent::create):
5734         * dom/UIEventWithKeyState.h:
5735         (WebCore::UIEventWithKeyState::ctrlKey):
5736         (WebCore::UIEventWithKeyState::shiftKey):
5737         (WebCore::UIEventWithKeyState::altKey):
5738         (WebCore::UIEventWithKeyState::metaKey):
5739         (WebCore::UIEventWithKeyState::UIEventWithKeyState):
5740         * dom/WheelEvent.cpp:
5741         (WebCore::WheelEvent::WheelEvent):
5742         (WebCore::WheelEvent::initWheelEvent):
5743         * dom/WheelEvent.h:
5744         (WebCore::WheelEvent::create):
5745         * editing/AppendNodeCommand.cpp:
5746         (WebCore::AppendNodeCommand::AppendNodeCommand):
5747         * editing/AppendNodeCommand.h:
5748         (WebCore::AppendNodeCommand::create):
5749         * editing/ApplyStyleCommand.cpp:
5750         (WebCore::ApplyStyleCommand::applyBlockStyle):
5751         * editing/ApplyStyleCommand.h:
5752         (WebCore::ApplyStyleCommand::create):
5753         * editing/BreakBlockquoteCommand.h:
5754         (WebCore::BreakBlockquoteCommand::create):
5755         * editing/CompositeEditCommand.cpp:
5756         (WebCore::CompositeEditCommand::applyStyle):
5757         (WebCore::CompositeEditCommand::applyStyledElement):
5758         (WebCore::CompositeEditCommand::removeStyledElement):
5759         (WebCore::CompositeEditCommand::insertParagraphSeparator):
5760         (WebCore::CompositeEditCommand::insertLineBreak):
5761         (WebCore::CompositeEditCommand::insertNodeBefore):
5762         (WebCore::CompositeEditCommand::appendNode):
5763         (WebCore::CompositeEditCommand::removeNode):
5764         (WebCore::CompositeEditCommand::removeNodePreservingChildren):
5765         (WebCore::CompositeEditCommand::splitTextNode):
5766         (WebCore::CompositeEditCommand::splitElement):
5767         (WebCore::CompositeEditCommand::mergeIdenticalElements):
5768         (WebCore::CompositeEditCommand::wrapContentsInDummySpan):
5769         (WebCore::CompositeEditCommand::splitTextNodeContainingElement):
5770         (WebCore::CompositeEditCommand::joinTextNodes):
5771         (WebCore::CompositeEditCommand::inputText):
5772         (WebCore::CompositeEditCommand::insertTextIntoNode):
5773         (WebCore::CompositeEditCommand::deleteTextFromNode):
5774         (WebCore::CompositeEditCommand::replaceTextInNode):
5775         (WebCore::CompositeEditCommand::deleteSelection):
5776         (WebCore::CompositeEditCommand::removeCSSProperty):
5777         (WebCore::CompositeEditCommand::removeNodeAttribute):
5778         (WebCore::CompositeEditCommand::setNodeAttribute):
5779         (WebCore::CompositeEditCommand::appendBlockPlaceholder):
5780         (WebCore::CompositeEditCommand::insertBlockPlaceholder):
5781         (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
5782         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
5783         (WebCore::CompositeEditCommand::moveParagraphs):
5784         (WebCore::CompositeEditCommand::splitTreeToNode):
5785         * editing/CompositeEditCommand.h:
5786         (WebCore::CompositeEditCommand::isFirstCommand):
5787         * editing/CreateLinkCommand.h:
5788         (WebCore::CreateLinkCommand::create):
5789         * editing/DeleteButtonController.cpp:
5790         (WebCore::DeleteButtonController::deleteTarget):
5791         * editing/DeleteFromTextNodeCommand.cpp:
5792         (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand):
5793         * editing/DeleteFromTextNodeCommand.h:
5794         (WebCore::DeleteFromTextNodeCommand::create):
5795         * editing/DeleteSelectionCommand.h:
5796         (WebCore::DeleteSelectionCommand::create):
5797         * editing/EditCommand.h:
5798         (WebCore::SimpleEditCommand::SimpleEditCommand):
5799         * editing/Editor.cpp:
5800         (WebCore::Editor::deleteSelectionWithSmartDelete):
5801         (WebCore::Editor::replaceSelectionWithFragment):
5802         (WebCore::Editor::removeFormattingAndStyle):
5803         (WebCore::Editor::clearLastEditCommand):
5804         (WebCore::Editor::dispatchCPPEvent):
5805         (WebCore::Editor::applyStyle):
5806         (WebCore::Editor::applyParagraphStyle):
5807         (WebCore::Editor::indent):
5808         (WebCore::Editor::outdent):
5809         (WebCore::dispatchEditableContentChangedEvents):
5810         * editing/Editor.h:
5811         * editing/EditorCommand.cpp:
5812         (WebCore::executeInsertFragment):
5813         (WebCore::executeCreateLink):
5814         (WebCore::executeFormatBlock):
5815         (WebCore::executeIndent):
5816         (WebCore::executeInsertOrderedList):
5817         (WebCore::executeInsertUnorderedList):
5818         (WebCore::executeOutdent):
5819         (WebCore::executeUnlink):
5820         * editing/FormatBlockCommand.h:
5821         (WebCore::FormatBlockCommand::create):
5822         * editing/IndentOutdentCommand.cpp:
5823         (WebCore::IndentOutdentCommand::indentRegion):
5824         (WebCore::IndentOutdentCommand::outdentParagraph):
5825         * editing/IndentOutdentCommand.h:
5826         (WebCore::IndentOutdentCommand::create):
5827         * editing/InsertIntoTextNodeCommand.cpp:
5828         (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand):
5829         * editing/InsertIntoTextNodeCommand.h:
5830         (WebCore::InsertIntoTextNodeCommand::create):
5831         * editing/InsertLineBreakCommand.h:
5832         (WebCore::InsertLineBreakCommand::create):
5833         * editing/InsertListCommand.cpp:
5834         (WebCore::InsertListCommand::doApply):
5835         * editing/InsertListCommand.h:
5836         (WebCore::InsertListCommand::create):
5837         * editing/InsertNodeBeforeCommand.cpp:
5838         (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand):
5839         * editing/InsertNodeBeforeCommand.h:
5840         (WebCore::InsertNodeBeforeCommand::create):
5841         * editing/InsertParagraphSeparatorCommand.cpp:
5842         (WebCore::InsertParagraphSeparatorCommand::doApply):
5843         * editing/InsertParagraphSeparatorCommand.h:
5844         (WebCore::InsertParagraphSeparatorCommand::create):
5845         * editing/InsertTextCommand.h:
5846         (WebCore::InsertTextCommand::create):
5847         * editing/JoinTextNodesCommand.cpp:
5848         (WebCore::JoinTextNodesCommand::JoinTextNodesCommand):
5849         * editing/JoinTextNodesCommand.h:
5850         (WebCore::JoinTextNodesCommand::create):
5851         * editing/MergeIdenticalElementsCommand.cpp:
5852         (WebCore::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand):
5853         * editing/MergeIdenticalElementsCommand.h:
5854         (WebCore::MergeIdenticalElementsCommand::create):
5855         * editing/ModifySelectionListLevel.cpp:
5856         (WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelWithType):
5857         * editing/MoveSelectionCommand.cpp:
5858         (WebCore::MoveSelectionCommand::doApply):
5859         * editing/MoveSelectionCommand.h:
5860         (WebCore::MoveSelectionCommand::create):
5861         * editing/RemoveCSSPropertyCommand.cpp:
5862         (WebCore::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand):
5863         * editing/RemoveCSSPropertyCommand.h:
5864         (WebCore::RemoveCSSPropertyCommand::create):
5865         * editing/RemoveFormatCommand.h:
5866         (WebCore::RemoveFormatCommand::create):
5867         * editing/RemoveNodeAttributeCommand.cpp:
5868         (WebCore::RemoveNodeAttributeCommand::RemoveNodeAttributeCommand):
5869         * editing/RemoveNodeAttributeCommand.h:
5870         (WebCore::RemoveNodeAttributeCommand::create):
5871         * editing/RemoveNodeCommand.cpp:
5872         (WebCore::RemoveNodeCommand::RemoveNodeCommand):
5873         * editing/RemoveNodeCommand.h:
5874         (WebCore::RemoveNodeCommand::create):
5875         * editing/RemoveNodePreservingChildrenCommand.cpp:
5876         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):
5877         (WebCore::RemoveNodePreservingChildrenCommand::doApply):
5878         * editing/RemoveNodePreservingChildrenCommand.h:
5879         (WebCore::RemoveNodePreservingChildrenCommand::create):
5880         * editing/ReplaceSelectionCommand.cpp:
5881         (WebCore::ReplacementFragment::hasInterchangeNewlineAtStart):
5882         (WebCore::ReplacementFragment::hasInterchangeNewlineAtEnd):
5883         (WebCore::ReplacementFragment::ReplacementFragment):
5884         * editing/ReplaceSelectionCommand.h:
5885         (WebCore::ReplaceSelectionCommand::create):
5886         * editing/SetNodeAttributeCommand.cpp:
5887         (WebCore::SetNodeAttributeCommand::SetNodeAttributeCommand):
5888         * editing/SetNodeAttributeCommand.h:
5889         (WebCore::SetNodeAttributeCommand::create):
5890         * editing/SplitElementCommand.cpp:
5891         (WebCore::SplitElementCommand::SplitElementCommand):
5892         * editing/SplitElementCommand.h:
5893         (WebCore::SplitElementCommand::create):
5894         * editing/SplitTextNodeCommand.cpp:
5895         (WebCore::SplitTextNodeCommand::SplitTextNodeCommand):
5896         * editing/SplitTextNodeCommand.h:
5897         (WebCore::SplitTextNodeCommand::create):
5898         * editing/SplitTextNodeContainingElementCommand.cpp:
5899         (WebCore::SplitTextNodeContainingElementCommand::SplitTextNodeContainingElementCommand):
5900         * editing/SplitTextNodeContainingElementCommand.h:
5901         (WebCore::SplitTextNodeContainingElementCommand::create):
5902         * editing/TypingCommand.cpp:
5903         (WebCore::TypingCommand::deleteSelection):
5904         (WebCore::TypingCommand::deleteKeyPressed):
5905         (WebCore::TypingCommand::forwardDeleteKeyPressed):
5906         (WebCore::TypingCommand::insertText):
5907         (WebCore::TypingCommand::insertLineBreak):
5908         (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
5909         (WebCore::TypingCommand::insertParagraphSeparator):
5910         (WebCore::TypingCommand::insertTextRunWithoutNewlines):
5911         * editing/TypingCommand.h:
5912         (WebCore::TypingCommand::create):
5913         (WebCore::TypingCommand::smartDelete):
5914         * editing/UnlinkCommand.h:
5915         (WebCore::UnlinkCommand::create):
5916         * editing/WrapContentsInDummySpanCommand.cpp:
5917         (WebCore::WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand):
5918         * editing/WrapContentsInDummySpanCommand.h:
5919         (WebCore::WrapContentsInDummySpanCommand::create):
5920         * html/HTMLTableElement.cpp:
5921         (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
5922         (WebCore::HTMLTableElement::addSharedCellBordersDecl):
5923         (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
5924         (WebCore::HTMLTableElement::addSharedGroupDecls):
5925         * html/HTMLTokenizer.cpp:
5926         (WebCore::Token::addAttribute):
5927         * html/HTMLViewSourceDocument.cpp:
5928         (WebCore::HTMLViewSourceDocument::createContainingTable):
5929         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
5930         (WebCore::HTMLViewSourceDocument::addLine):
5931         (WebCore::HTMLViewSourceDocument::addLink):
5932         * loader/FrameLoader.cpp:
5933         (WebCore::FrameLoader::didOpenURL):
5934         * loader/appcache/DOMApplicationCache.cpp:
5935         (WebCore::DOMApplicationCache::callListener):
5936         * page/ContextMenuController.cpp:
5937         (WebCore::ContextMenuController::contextMenuItemSelected):
5938         * page/DOMWindow.cpp:
5939         (WebCore::PostMessageTimer::PostMessageTimer):
5940         (WebCore::PostMessageTimer::fired):
5941         (WebCore::DOMWindow::postMessage):
5942         * page/DragController.cpp:
5943         (WebCore::DragController::concludeDrag):
5944         * page/EventHandler.cpp:
5945         (WebCore::EventHandler::dispatchDragEvent):
5946         (WebCore::EventHandler::keyEvent):
5947         (WebCore::EventHandler::handleTextInputEvent):
5948         * page/Frame.cpp:
5949         (WebCore::Frame::computeAndSetTypingStyle):
5950         (WebCore::Frame::shouldClose):
5951         * page/FrameView.cpp:
5952         (WebCore::FrameView::updateOverflowStatus):
5953         * page/mac/EventHandlerMac.mm:
5954         (WebCore::EventHandler::currentKeyboardEvent):
5955         * page/mac/FrameMac.mm:
5956         * platform/DeprecatedValueListImpl.cpp:
5957         (WebCore::DeprecatedValueListImpl::Private::Private):
5958         (WebCore::DeprecatedValueListImpl::DeprecatedValueListImpl):
5959         (WebCore::DeprecatedValueListImpl::copyOnWrite):
5960         * platform/graphics/FontSelector.h:
5961         * platform/graphics/GlyphPageTreeNode.cpp:
5962         (WebCore::GlyphPageTreeNode::initializePage):
5963         * platform/graphics/GlyphPageTreeNode.h:
5964         (WebCore::GlyphPage::create):
5965         (WebCore::GlyphPage::GlyphPage):
5966         * rendering/RenderLayer.cpp:
5967         (WebCore::RenderLayer::scrollToOffset):
5968         (WebCore::RenderLayer::updateOverflowStatus):
5969         (WebCore::RenderLayer::updateReflectionStyle):
5970         * rendering/style/RenderStyle.h:
5971         (WebCore::TransformOperation::~TransformOperation):
5972         (WebCore::ScaleTransformOperation::create):
5973         (WebCore::ScaleTransformOperation::ScaleTransformOperation):
5974         (WebCore::RotateTransformOperation::create):
5975         (WebCore::RotateTransformOperation::RotateTransformOperation):
5976         (WebCore::SkewTransformOperation::create):
5977         (WebCore::SkewTransformOperation::operator==):
5978         (WebCore::SkewTransformOperation::SkewTransformOperation):
5979         (WebCore::TranslateTransformOperation::create):
5980         (WebCore::TranslateTransformOperation::operator==):
5981         (WebCore::TranslateTransformOperation::TranslateTransformOperation):
5982         (WebCore::MatrixTransformOperation::create):
5983         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
5984         (WebCore::StyleReflection::create):
5985         (WebCore::StyleReflection::StyleReflection):
5986         * storage/StorageEvent.cpp:
5987         (WebCore::StorageEvent::StorageEvent):
5988         (WebCore::StorageEvent::initStorageEvent):
5989         * storage/StorageEvent.h:
5990         (WebCore::StorageEvent::create):
5991         (WebCore::StorageEvent::StorageEvent):
5992         * svg/SVGAngle.cpp:
5993         (WebCore::SVGAngle::SVGAngle):
5994         * svg/SVGAngle.h:
5995         (WebCore::SVGAngle::create):
5996         * svg/SVGAnimatedTemplate.h:
5997         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
5998         (WebCore::lookupOrCreateWrapper):
5999         * svg/SVGElement.cpp:
6000         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
6001         * svg/SVGElement.h:
6002         * svg/SVGMarkerElement.cpp:
6003         (WebCore::SVGMarkerElement::SVGMarkerElement):
6004         (WebCore::SVGMarkerElement::parseMappedAttribute):
6005         (WebCore::SVGMarkerElement::setOrientToAngle):
6006         * svg/SVGMarkerElement.h:
6007         * svg/SVGSVGElement.cpp:
6008         (WebCore::SVGSVGElement::createSVGAngle):
6009         * svg/SVGSVGElement.h:
6010         * svg/SVGZoomEvent.h:
6011         (WebCore::SVGZoomEvent::create):
6012         * svg/graphics/SVGImage.cpp:
6013         * xml/XMLHttpRequest.cpp:
6014         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
6015         (WebCore::XMLHttpRequest::dispatchProgressEvent):
6016         * xml/XMLHttpRequestProgressEvent.cpp:
6017         * xml/XMLHttpRequestProgressEvent.h:
6018         (WebCore::XMLHttpRequestProgressEvent::create):
6019         (WebCore::XMLHttpRequestProgressEvent::position):
6020         (WebCore::XMLHttpRequestProgressEvent::totalSize):
6021         (WebCore::XMLHttpRequestProgressEvent::XMLHttpRequestProgressEvent):
6023 2008-06-13  Adam Barth  <abarth@webkit.org>
6025         Reviewed by Eric Seidel.
6027         https://bugs.webkit.org/show_bug.cgi?id=19199
6029         Prevent external entities from loading across origins.
6031         Test: http/tests/security/xss-DENIED-xsl-external-entity.xml
6033         * dom/XMLTokenizer.cpp:
6034         (WebCore::shouldAllowExternalLoad):
6035         (WebCore::openFunc):
6037 2008-06-13  Adam Barth  <abarth@webkit.org>
6039         Reviewed by Darin Adler.
6041         https://bugs.webkit.org/show_bug.cgi?id=19450
6043         Allow loads of same-origin documents only.
6045         Test: http/tests/security/xss-DENIED-xsl-document.xml
6047         * xml/XSLTProcessor.cpp:
6048         (WebCore::docLoaderFunc):
6050 2008-06-13  Adam Barth  <abarth@webkit.org>
6052         Reviewed by Darin Adler.
6054         Fixes <https://bugs.webkit.org/show_bug.cgi?id=15100>:
6055           XMLHttpRequest::urlMatchesDocumentDomain raises error if port
6056           information does not match exactly
6058         Refactor our security check for XMLHttpRequest into SecurityOrigin so
6059         we can reuse it in other places.  This leverages our default port
6060         technology in SecurityOrigin.
6062         I wasn't sure how to write a test for this because the LayoutTests run
6063         on non-default ports.
6065         * platform/SecurityOrigin.cpp:
6066         (WebCore::SecurityOrigin::canRequest):
6067         * platform/SecurityOrigin.h:
6068         * xml/XMLHttpRequest.cpp:
6069         (WebCore::XMLHttpRequest::send):
6070         (WebCore::XMLHttpRequest::willSendRequest):
6071         * xml/XMLHttpRequest.h:
6073 2008-06-13  Adam Barth  <abarth@webkit.org>
6075         Reviewed by Eric Seidel.
6077         Removed unnecessary dependencies.
6079         * platform/SecurityOrigin.cpp:
6080         * platform/SecurityOrigin.h:
6082 2008-06-13  Darin Adler  <darin@apple.com>
6084         Reviewed by John Sullivan.
6086         - added FormState argument to action policy functions
6088         * loader/FrameLoader.cpp:
6089         (WebCore::FrameLoader::checkNewWindowPolicy):
6090         (WebCore::FrameLoader::checkNavigationPolicy):
6091         * loader/FrameLoaderClient.h:
6092         * svg/graphics/SVGImageEmptyClients.h:
6093         (WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
6094         (WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
6096 2008-06-13  Justin Garcia  <justin.garcia@apple.com>
6098         Reviewed by Jess.
6100         <rdar://problem/5702248> Crash on Copy Image from the contextual menu on a broken image in Mail
6102         * platform/mac/PasteboardMac.mm:
6103         (WebCore::Pasteboard::writeImage): Check to see the image loaded successfully
6104         before trying to put data for it on the Pasteboard.  Mail shouldn't really
6105         include the Copy Image menu item, but if it does and the user selects it,
6106         we shouldn't crash.
6108 2008-06-11  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
6109         With help from Siraj Razick  <siraj.razick@collabora.co.uk>
6111         Reviewed by Simon.
6113         https://bugs.webkit.org/show_bug.cgi?id=19367
6114         [Qt] Plugins are drawn over the scrollbars
6116         * plugins/qt/PluginViewQt.cpp:
6117         (WebCore::PluginView::updateWindow): Call setMask on the
6118         QX11EmbedContainer to set the plugin clipping.
6120 2008-06-12  Darin Adler  <darin@apple.com>
6122         - try to fix no-SVG build
6124         * css/CSSComputedStyleDeclaration.cpp:
6125         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added a case for
6126         CSSPropertyWebkitMask.
6128 2008-06-12  Darin Adler  <darin@apple.com>
6130         - try to fix Windows build
6132         * dom/Element.idl: Turn off ElementTraversal functions when generating COM.
6133         Not sure why they're failing, but turning them off for now seems OK.
6135 2008-06-12  Adam Barth  <abarth@webkit.org>
6137         Rubberstamped by Maciej.
6139         Roll 34504 back in.
6141         Test: http/tests/xmlhttprequest/access-control-basic-allow-access-control-origin-header-data-url.html
6143         * platform/SecurityOrigin.cpp:
6144         (WebCore::SecurityOrigin::toString):
6146 2008-06-11  Dan Bernstein  <mitz@apple.com>
6148         Reviewed by Dave Hyatt.
6150         - fix <rdar://problem/5876370> Safari 3.1.1 bad rendering of pages from http://www.legifrance.gouv.fr/
6152         Tests: fast/parser/p-in-scope-strict.html
6153                fast/parser/p-in-scope.html
6155         * html/HTMLParagraphElement.h:
6156         (WebCore::HTMLParagraphElement::endTagRequirement): Changed to require
6157         an end tag. The explicit closing of one P element by another is now
6158         done in error checking, and therefore takes scope into account, allowing
6159         for <p><button><p>, for example.
6161         * html/HTMLParser.cpp:
6162         (WebCore::HTMLParser::HTMLParser): Initialize m_hasPElementInScope.
6163         (WebCore::isScopingTag): Added. Returns whether the given tag represents
6164         a scoping element as defined in HTML 5 section 8.2.3.2.
6165         (WebCore::HTMLParser::formCreateErrorCheck): Added a call to
6166         pCloserCreateErrorCheck().
6167         (WebCore::HTMLParser::ddCreateErrorCheck): Ditto.
6168         (WebCore::HTMLParser::dtCreateErrorCheck): Ditto.
6169         (WebCore::HTMLParser::nestedPCloserCreateErrorCheck): Added for use with
6170         <li>, which both closes P elements in scope and any previous LI.
6171         (WebCore::HTMLParser::pCloserCreateErrorCheck): Added. If there is a P
6172         element in scope, acts as if a </p> tag was seen.
6173         (WebCore::HTMLParser::pCloserStrictCreateErrorCheck): Ditto, but only
6174         in strict mode. Used for <table>.
6175         (WebCore::HTMLParser::getNode): Added entries for tags that close a P
6176         element in scope.
6177         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Added
6178         code to reset m_hasPElementInScope.
6179         (WebCore::HTMLParser::pushBlock): Added code to update
6180         m_hasPElementInScope.
6181         (WebCore::HTMLParser::popOneBlockCommon): Ditto.
6182         (WebCore::HTMLParser::checkIfHasPElementInScope): Added. Updates
6183         m_hasPElementInScope.
6185         * html/HTMLParser.h:
6186         (WebCore::HTMLParser::hasPElementInScope): Added. Calls
6187         checkIfHasPElementInScope() if needed and returns whether there
6188         is a P element in scope.
6190 2008-06-11  Adam Barth  <abarth@webkit.org>
6192         Reviewed by Sam Weinig.
6194         https://bugs.webkit.org/show_bug.cgi?id=19460
6196         Update the security context of a document after calling document.open
6197         or document.write.  Basically, when a script open()s a document, the
6198         document gains the security context of the script.  Our implementation
6199         now matches Firefox 3 on all these tests.
6201         Tests: http/tests/security/aboutBlank/security-context-alias.html
6202                http/tests/security/aboutBlank/security-context-grandchildren-alias.html
6203                http/tests/security/aboutBlank/security-context-grandchildren.html
6204                http/tests/security/aboutBlank/security-context-window-open.html
6205                http/tests/security/aboutBlank/security-context-with-base-tag.html
6206                http/tests/security/aboutBlank/security-context-write.html
6207                http/tests/security/aboutBlank/security-context-writeln.html
6208                http/tests/security/aboutBlank/security-context.html
6209                http/tests/security/cookies/document-open.html
6211         * bindings/js/JSDOMWindowBase.cpp:
6212         (WebCore::createWindow):
6213         * bindings/js/JSHTMLDocumentCustom.cpp:
6214         (WebCore::JSHTMLDocument::open):
6215         (WebCore::JSHTMLDocument::write):
6216         (WebCore::JSHTMLDocument::writeln):
6217         * dom/Document.cpp:
6218         (WebCore::Document::open):
6219         (WebCore::Document::write):
6220         (WebCore::Document::writeln):
6221         * dom/Document.h:
6223 2008-06-11  Adam Barth  <abarth@webkit.org>
6225         Reviewed by Sam Weinig.
6227         https://bugs.webkit.org/show_bug.cgi?id=19460
6229         Compute the cookie context at the same time as the SecurityOrigin.
6231         Tests: http/tests/security/cookies/create-document.html
6232                http/tests/security/cookies/xmlhttprequest.html
6234         * dom/Document.cpp:
6235         (WebCore::Document::cookie):
6236         (WebCore::Document::initSecurityOrigin):
6237         * dom/Document.h:
6238         * platform/SecurityOrigin.cpp:
6239         * platform/SecurityOrigin.h:
6241 2008-06-11  Adam Barth  <abarth@webkit.org>
6243         Reviewed and tweaked by Sam Weinig.
6245         Fix for https://bugs.webkit.org/show_bug.cgi?id=19242
6246         Data URLs should set an Access-Control-Origin of "null"
6248         Correctly generate "null" as the value of the Access-Control-Origin
6249         header for cross-site XMLHttpRequests for data URLs.
6251         Test: http/tests/xmlhttprequest/access-control-basic-allow-access-control-origin-header-data-url.html
6253         * platform/SecurityOrigin.cpp:
6254         (WebCore::SecurityOrigin::toString):
6255         * xml/XMLHttpRequest.cpp:
6256         (WebCore::XMLHttpRequest::accessControlOrigin):
6257         (WebCore::XMLHttpRequest::crossSiteAccessRequest):
6258         (WebCore::XMLHttpRequest::handleAsynchronousMethodCheckResult):
6259         * xml/XMLHttpRequest.h:
6261 2008-06-11  Sam Weinig  <sam@webkit.org>
6263         Reviewed by Adam Roben.
6265         Add support for "*" wildcarding for Access-Control.
6267         Test: http/tests/xmlhttprequest/access-control-basic-allow-star.html
6269         * xml/AccessItem.cpp:
6270         (WebCore::AccessItem::AccessItem):
6271         (WebCore::AccessItem::parseAccessItem):
6272         (WebCore::AccessItem::matches):
6274 2008-06-11  Justin Garcia  <justin.garcia@apple.com>
6276         Reviewed by Eric.
6278         <https://bugs.webkit.org/show_bug.cgi?id=19455>
6279         Crash at RenderObject::childAt during JustifyCenter
6281         * editing/ApplyStyleCommand.cpp:
6282         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added a FIXME.
6283         * editing/CompositeEditCommand.cpp:
6284         (WebCore::CompositeEditCommand::moveParagraphs): If we're removing a line
6285         break that consists of a single '\n' in a text node by itself, remove
6286         the whole text node instead of just emptying it out.
6287         * editing/Selection.cpp:
6288         (WebCore::Selection::validate): Added a FIXME about canonicalizing
6289         to positions that aren't candidates.
6290         * editing/SelectionController.cpp:
6291         (WebCore::SelectionController::nodeWillBeRemoved): When the base and/or
6292         extent are about to be removed but the start and end aren't, change the 
6293         base and extent to the start and end, but don't re-validate the selection, 
6294         since doing so could move the start and end into the node that is about 
6295         to be removed.
6297 2008-06-11  Gregory Hughes  <ghughes@apple.com>
6299         Reviewed by David Harrison.
6301         <rdar://problem/5990049> AXTextMarker bytes getting messed up when getting AXTextMarkerRangeForUnorderedTextMarkersParameterizedAttribute
6303         * page/mac/AccessibilityObjectWrapper.mm:
6304         (textMarkerForVisiblePosition):
6306 2008-06-11  Adriaan de Groot  <groot@kde.org>
6308         Reviewed by Simon.
6310         Fix compilation with Sun Studio 12
6312         It seems like the compiler instantiates a different template version. I.e.,
6313         instead of parseUASheet<char [nnnn]>, it's probably instantiating
6314         parseUASheet<char *>, which then passes 4 or 8 as the size value.
6316         * css/CSSStyleSelector.cpp:
6317         (WebCore::loadDefaultStyle):
6318         (WebCore::CSSStyleSelector::styleForElement):
6320 2008-06-11  Benjamin Meyer  <bmeyer@trolltech.com>
6322         Reviewed by Simon.
6324         Fixed a crash when a slot connect to QWebPage::unsupportedContent would show a
6325         modal dialog with an event loop.
6327         We have a queued connection to various signals in the QNetworkReply, for which
6328         it can happen that after releasing the QNetworkReply and disconnecting from it
6329         a slot connected to one of the signals may still be called due to a posted
6330         MetaCall event due to the queued connections. This patch removes the posted
6331         events explicitly, fixes the coding style a bit and makes sure the same happens
6332         when abort() is called.
6334         * platform/network/qt/QNetworkReplyHandler.cpp:
6335         (WebCore::QNetworkReplyHandler::abort):
6336         (WebCore::QNetworkReplyHandler::release):
6337         * platform/network/qt/QNetworkReplyHandler.h:
6339 2008-06-10  Kevin Ollivier  <kevino@theolliviers.com>
6341         wx build fix. Reorder include dirs so that WebCore/html/HTMLElementFactory.h
6342         appears before WebCore/DerivedSources/HTMLElementFactory.h. (See note in commit
6343         for more details. This is probably not the right fix, but this will get us building
6344         until the right fix is in place.)
6346         * webcore-base.bkl:
6348 2008-06-10  Eric Seidel  <eric@webkit.org>
6350         Reviewed by mjs.
6352         Fix disconnected event listener crasher
6353         m_disconnectedNodesWithEventListeners not updated when nodes adopted
6354         https://bugs.webkit.org/show_bug.cgi?id=19451
6356         I failed to find a way to make this crash DRT, I can crash Debug Safari consistently.
6358         * dom/EventTarget.cpp:
6359         (WebCore::EventTarget::willMoveToNewOwnerDocument):
6360         (WebCore::EventTarget::didMoveToNewOwnerDocument):
6361         * dom/EventTarget.h:
6362         * dom/EventTargetNode.cpp:
6363         (WebCore::EventTargetNode::willMoveToNewOwnerDocument):
6364         (WebCore::EventTargetNode::didMoveToNewOwnerDocument):
6365         * dom/EventTargetNode.h:
6367 2008-06-10  Julien Chaffraix  <jchaffraix@webkit.org>
6369         Reviewed by Eric.
6371         Part of bug 19200: *.in files should embed more information
6372         https://bugs.webkit.org/show_bug.cgi?id=19200
6374         Move more parameters to the XML files.
6376         * dom/make_names.pl:
6377         * html/HTMLAttributeNames.in:
6378         * html/HTMLTagNames.in:
6379         * svg/svgattrs.in:
6380         * svg/svgtags.in:
6382 2008-06-09  Dan Bernstein  <mitz@apple.com>
6384         Reviewed by Justin Garcia.
6386         - fix https://bugs.webkit.org/show_bug.cgi?id=19443
6387           <rdar://problem/5994544> REGRESSION (r32531-r32652): Moving the insertion point past a newline inserted in a text area skips the next character
6389         Tests added to editing/selection/move-left-right.html
6391         * editing/VisiblePosition.cpp:
6392         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate): When falling
6393         back from visual to logical movement, restart at the original position
6394         rather than an intermediate position.
6395         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate): Ditto.
6397 2008-06-07  Brent Fulgham  <bfulgham@gmail.com>
6399         Reviewed by Maciej.
6401         Windows build fix.
6403         * platform/graphics/win/QTMovieWin.cpp:
6404         (initializeSupportedTypes):
6406 2008-06-07  Julien Chaffraix  <jchaffraix@webkit.org>
6408         Reviewed by Darin Adler.
6410         Part of bug 19200: *.in files should embed more information
6411         https://bugs.webkit.org/show_bug.cgi?id=19200
6413         - Added a parameters hash that will hold the parameters we used to give in the
6414         command line.
6416         - Added "tags" / "attrs" XML tag parsing to fill the parameters hash.
6418         - Moved namespace, namespaceURI, namespacePrefix and cppNamespace in the *.in
6419         files.
6421         * dom/make_names.pl:
6422         * html/HTMLAttributeNames.in:
6423         * html/HTMLTagNames.in:
6424         * svg/svgattrs.in:
6425         * svg/svgtags.in:
6426         * svg/xlinkattrs.in:
6427         * xml/xmlattrs.in:
6429 2008-06-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
6431         Reviewed by Simon
6433         Use the text color from QStyle when styling form elements.
6435         * platform/qt/RenderThemeQt.cpp:
6436         (WebCore::RenderThemeQt::adjustButtonStyle):
6437         (WebCore::RenderThemeQt::adjustTextFieldStyle):
6438         (WebCore::RenderThemeQt::adjustMenuListStyle):
6439         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
6441 2008-06-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
6443         Reviewed by Darin.
6445         Incorporated Darin's comments to bug 18965.
6447         * rendering/RenderTheme.cpp:
6449 2008-06-08  Adam Barth  <abarth@webkit.org>
6451         Reviewed by Darin Adler.
6453         Inherit document.URL from parent's document.URL, not document.baseURI.
6455         https://bugs.webkit.org/show_bug.cgi?id=19257
6457         Tests: http/tests/security/cookies/assign-document-url.html
6458                http/tests/security/cookies/base-about-blank.html
6459                http/tests/security/cookies/base-tag.html
6460                http/tests/security/cookies/basic.html
6462         * dom/Document.cpp:
6463         (WebCore::Document::open):
6465 2008-06-08  Kevin Ollivier  <kevino@theolliviers.com>
6467         Reviewed by Darin Adler.
6469         Fix font asserts in wx port. Our computeHash function should generate the same hash
6470         for two identical fonts which are different objects, which it wasn't doing before.
6471         
6472         https://bugs.webkit.org/show_bug.cgi?id=19310
6474         * platform/graphics/wx/FontPlatformData.h:
6475         (WebCore::FontPlatformData::computeHash):
6477 2008-06-08  Dan Bernstein  <mitz@apple.com>
6479         Reviewed by Darin Adler.
6481         - fix <rdar://problem/5961977> Crash in RenderBlock::layoutColumns()
6483         Test: fast/multicol/content-height-zero-crash.html
6485         * rendering/RenderBlock.cpp:
6486         (WebCore::RenderBlock::layoutColumns): Changed to not keep creating
6487         overflow columns that have zero height, because they do not help with
6488         fitting content in.
6490 2008-06-08  Adam Roben  <aroben@apple.com>
6492         Fix Bug 18837: Database panel fails to display tables if any value is
6493         NULL
6495         <https://bugs.webkit.org/show_bug.cgi?id=18837>
6497         Reviewed by Darin Adler.
6499         Test: manual-tests/inspector/display-sql-null.html
6501         * manual-tests/inspector/display-sql-null.html: Added.
6502         * page/inspector/DatabasesPanel.js:
6503         (WebInspector.DatabasesPanel.prototype.dataGridForResult): Convert all
6504         objects to strings before operating on them.
6506 2008-06-08  Adam Roben  <aroben@apple.com>
6508         Fix Bug 19438: Transaction errors are never displayed in database
6509         query view
6511         <https://bugs.webkit.org/show_bug.cgi?id=19438>
6513         Reviewed by Darin Adler.
6515         Test: manual-tests/inspector/display-sql-transaction-error.html
6517         * manual-tests/inspector/display-sql-transaction-error.html: Added.
6518         * page/inspector/DatabaseQueryView.js:
6519         (WebInspector.DatabaseQueryView.prototype._enterKeyPressed): Use
6520         _executeSqlError as the error callback for executeSql.
6521         (WebInspector.DatabaseQueryView.prototype._queryError): Changed to
6522         only take two parameters. This matches what we'll be passed if
6523         db.transaction fails.
6524         (WebInspector.DatabaseQueryView.prototype._executeSqlError): Added.
6525         Calls through to _queryError.
6527 2008-06-08  Dirk Schulze  <vbs85@gmx.de>
6529         Reviewed by Eric Seidel.
6531         https://bugs.webkit.org/show_bug.cgi?id=18840
6532         [CAIRO] Clipping-support for SVG
6534         Support for clipping in SVG/Cairo and fixes transformation of paths.
6536         * platform/graphics/cairo/PathCairo.cpp:
6537         (WebCore::Path::transform):
6538         * svg/graphics/cairo/SVGResourceClipperCairo.cpp:
6539         (WebCore::SVGResourceClipper::applyClip):
6541 2008-06-08  Dirk Schulze  <vbs85@gmx.de>
6543         Reviewed by Eric Seidel.
6545         https://bugs.webkit.org/show_bug.cgi?id=18663
6546         Add text-stroke support to Cairo.
6548         * platform/graphics/cairo/FontCairo.cpp:
6549         (WebCore::Font::drawGlyphs):
6551 2008-06-08  Vincent Ricard  <magic@magicninja.org>
6553         Reviewed by Darin.
6555         https://bugs.webkit.org/show_bug.cgi?id=16489
6556         WebKit does not support ElementTraversal specification
6558         Tests: fast/dom/Element/element-traversal.html
6560         * dom/Element.cpp:
6561         (WebCore::Element::firstElementChild):
6562         (WebCore::Element::lastElementChild):
6563         (WebCore::Element::previousElementSibling):
6564         (WebCore::Element::nextElementSibling):
6565         (WebCore::Element::childElementCount):
6566         * dom/Element.h:
6567         * dom/Element.idl:
6569 2008-06-08  Bradley Meck  <genisis329@gmail.com>
6571         Reviewed by Darin.
6573         - fix https://bugs.webkit.org/show_bug.cgi?id=17051
6574           safari should treat "url()" as a valid CSS value
6576         Test: fast/css/invalid-cursor-property-crash.html
6578         Changed check for empty url() to be a check for null since url() is valid
6579         CSS even if it is empty.
6581         * css/CSSParser.cpp:
6582         (WebCore::CSSParser::parseValue):
6583         (WebCore::CSSParser::parseFillImage):
6584         (WebCore::CSSParser::parseBorderImage):
6586 2008-06-08  Vincent Ricard  <magic@magicninja.org>
6588         Reviewed by Darin.
6590         Bug 18041: DOMNodeRemoved events are sent twice
6592         Test: fast/dom/Node/DOMNodeRemovedEvent.html
6594         * dom/ContainerNode.cpp:
6595         (WebCore::ContainerNode::removeChild):
6597 2008-06-08  Tony Chang  <idealisms@gmail.com>
6599         Reviewed by Eric Seidel.
6601         - fix https://bugs.webkit.org/show_bug.cgi?id=18167
6602           there should be no text-drag delay on any platform except for Mac
6604         Move the drag text delay value into the platform specific files.
6606         Test: editing/selection/drag-text-delay.html
6608         * page/EventHandler.cpp:
6609         * page/EventHandler.h:
6610         * page/gtk/EventHandlerGtk.cpp:
6611         * page/mac/EventHandlerMac.mm:
6612         * page/qt/EventHandlerQt.cpp:
6613         * page/win/EventHandlerWin.cpp:
6614         * page/wx/EventHandlerWx.cpp:
6616 2008-06-08  Rob Buis  <buis@kde.org>
6618         Reviewed by Darin.
6620         - fix https://bugs.webkit.org/show_bug.cgi?id=18512
6621           getPresentationAttribute returns a shared object
6623         Test: svg/custom/getPresentationAttribute-modify.svg
6625         * svg/SVGStyledElement.cpp:
6626         (WebCore::SVGStyledElement::getPresentationAttribute): Unshare the mapped style
6627         declaration if it is shared before returning the presentation attribute.
6629 2008-06-08  Alp Toker  <alp@nuanti.com>
6631         autotools/GTK+ build system cleanup. Don't include WebKit API in the
6632         WebCore build as it's no longer needed since r34426.
6634         * GNUmakefile.am:
6636 2008-06-08  Jonathan Haas <myrdred@gmail.com>
6638         Reviewed by Eric Seidel.
6639         Tweaked by Darin while landing to make it compile.
6641         - fix http://bugs.webkit.org/show_bug.cgi?id=19128
6642           SVG fonts don't work with medial Arabic characters
6644         Haven't figured out a way to make an automated test for this.
6646         * svg/SVGGlyphElement.h: Made arabicForm unsigned so it fits into
6647         its 3-bit field. Did the same for orientation's 2-bit field.
6649         * svg/SVGFont.cpp: Did a bit of minor tweaking.
6650         (WebCore::isCompatibleArabicForm): Added a cast to avoid a warning
6651         since the type is now different.
6653 2008-06-08  Eric Carlson  <eric.carlson@apple.com>
6655         Reviewed by Antti.
6657         - fix https://bugs.webkit.org/show_bug.cgi?id=19299
6658           <rdar://problem/5969392>
6660         Generate the media MIME type list dynamically.
6662         * platform/graphics/win/QTMovieWin.cpp:
6663         (initializeSupportedTypes):
6665 2008-06-08  Christian Persch  <chpe@gnome.org>
6667         Reviewed by Darin.
6669         - https://bugs.webkit.org/show_bug.cgi?id=19309
6670           uninitialised variable in PluginView
6672         * plugins/PluginView.cpp:
6673         (WebCore::PluginView::PluginView): Initialise the NPP's pdata member to 0.
6675 2008-06-08  Darin Adler  <darin@apple.com>
6677         Reviewed by Mitz.
6679         - https://bugs.webkit.org/show_bug.cgi?id=19435
6680           fix warning in PluginDebug.h
6682         * plugins/PluginDebug.h: Don't compile the errorStrings array if LOG_DISABLED is set.
6684 2008-06-07  Dan Bernstein  <mitz@apple.com>
6686         Reviewed by Dave Hyatt.
6688         - fix https://bugs.webkit.org/show_bug.cgi?id=19431
6689           <rdar://problem/5994060> REGRESSION (r32406): tabs retain hover color after mouse out
6691         Covered by fast/css/remove-shorthand.html
6693         * css/CSSMutableStyleDeclaration.cpp:
6694         (WebCore::initShorthandMap): Fixed a typo which mapped the background
6695         shorthand to the mask properties.
6697 2008-06-07  Brent Fulgham  <bfulgham@gmail.com>
6699         Cairo build fix for r34432
6701         * html/CanvasPattern.cpp:
6702         (WebCore::CanvasPattern::CanvasPattern):
6704 2008-06-07  Darin Adler  <darin@apple.com>
6706         Reviewed by Mitz.
6708         - work on https://bugs.webkit.org/show_bug.cgi?id=17257
6709           start ref counts at 1 instead of 0 for speed
6711         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
6712         (WebCore::toHTMLCanvasStyle):
6713         * bindings/js/JSDOMWindowBase.cpp:
6714         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
6715         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
6716         * bindings/js/JSNodeFilterCondition.h:
6717         (WebCore::JSNodeFilterCondition::create):
6718         * bindings/js/JSNodeFilterCustom.cpp:
6719         (WebCore::toNodeFilter):
6720         * bindings/js/JSSVGLazyEventListener.h:
6721         (WebCore::JSSVGLazyEventListener::create):
6722         * bindings/js/JSSVGMatrixCustom.cpp:
6723         (WebCore::JSSVGMatrix::multiply):
6724         (WebCore::JSSVGMatrix::inverse):
6725         (WebCore::JSSVGMatrix::translate):
6726         (WebCore::JSSVGMatrix::scale):
6727         (WebCore::JSSVGMatrix::scaleNonUniform):
6728         (WebCore::JSSVGMatrix::rotate):
6729         (WebCore::JSSVGMatrix::rotateFromVector):
6730         (WebCore::JSSVGMatrix::flipX):
6731         (WebCore::JSSVGMatrix::flipY):
6732         (WebCore::JSSVGMatrix::skewX):
6733         (WebCore::JSSVGMatrix::skewY):
6734         * bindings/js/JSSVGPODTypeWrapper.h:
6735         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::create):
6736         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::JSSVGPODTypeWrapperCreatorReadWrite):
6737         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::create):
6738         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::JSSVGPODTypeWrapperCreatorReadOnly):
6739         (WebCore::JSSVGPODTypeWrapperCreatorForList::create):
6740         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
6741         (WebCore::JSSVGPODTypeWrapperCache::lookupOrCreateWrapper):
6742         (WebCore::JSSVGPODTypeWrapperCache::forgetWrapper):
6743         * bindings/js/JSSVGPointListCustom.cpp:
6744         (WebCore::commonExit):
6745         (WebCore::commonExitReadOnly):
6746         (WebCore::JSSVGPointList::initialize):
6747         (WebCore::JSSVGPointList::getItem):
6748         (WebCore::JSSVGPointList::insertItemBefore):
6749         (WebCore::JSSVGPointList::replaceItem):
6750         (WebCore::JSSVGPointList::removeItem):
6751         (WebCore::JSSVGPointList::appendItem):
6752         * bindings/js/JSSVGTransformListCustom.cpp:
6753         (WebCore::JSSVGTransformList::initialize):
6754         (WebCore::JSSVGTransformList::getItem):
6755         (WebCore::JSSVGTransformList::insertItemBefore):
6756         (WebCore::JSSVGTransformList::replaceItem):
6757         (WebCore::JSSVGTransformList::removeItem):
6758         (WebCore::JSSVGTransformList::appendItem):
6759         * bindings/js/kjs_binding.cpp:
6760         (WebCore::setDOMException):
6761         * bindings/js/kjs_events.h:
6762         (WebCore::JSUnprotectedEventListener::create):
6763         (WebCore::JSEventListener::create):
6764         (WebCore::JSLazyEventListener::create):
6765         * bindings/js/kjs_proxy.cpp:
6766         (WebCore::KJSProxy::createHTMLEventHandler):
6767         (WebCore::KJSProxy::createSVGEventHandler):
6768         * bindings/objc/DOM.mm:
6769         (WebCore::ObjCNodeFilterCondition::create):
6770         (WebCore::ObjCNodeFilterCondition::ObjCNodeFilterCondition):
6771         (WebCore::ObjCNodeFilterCondition::acceptNode):
6772         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
6773         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
6774         * bindings/scripts/CodeGeneratorJS.pm:
6775         * css/CSSComputedStyleDeclaration.cpp:
6776         (WebCore::valueForNinePieceImage):
6777         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
6778         * css/CSSFontFace.h:
6779         (WebCore::CSSFontFace::create):
6780         (WebCore::CSSFontFace::CSSFontFace):
6781         * css/CSSFontSelector.cpp:
6782         (WebCore::CSSFontSelector::addFontFaceRule):
6783         * css/CSSParser.cpp:
6784         (WebCore::CSSParser::parseDashboardRegions):
6785         (WebCore::CSSParser::parseCounterContent):
6786         (WebCore::CSSParser::parseShape):
6787         (WebCore::BorderImageParseContext::commitBorderImage):
6788         * css/CSSSegmentedFontFace.cpp:
6789         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
6790         * css/CSSSegmentedFontFace.h:
6791         (WebCore::CSSSegmentedFontFace::create):
6792         * css/Counter.h:
6793         (WebCore::Counter::create):
6794         (WebCore::Counter::Counter):
6795         * css/DashboardRegion.h:
6796         (WebCore::DashboardRegion::create):
6797         (WebCore::DashboardRegion::DashboardRegion):
6798         * css/Rect.h:
6799         (WebCore::Rect::create):
6800         (WebCore::Rect::Rect):
6801         * dom/ChildNodeList.h:
6802         (WebCore::ChildNodeList::create):
6803         * dom/ClassNodeList.h:
6804         (WebCore::ClassNodeList::create):
6805         * dom/Clipboard.h:
6806         * dom/DOMCoreException.h:
6807         (WebCore::DOMCoreException::create):
6808         * dom/DOMImplementation.cpp:
6809         (WebCore::DOMImplementation::instance):
6810         * dom/DOMImplementation.h:
6811         (WebCore::DOMImplementation::DOMImplementation):
6812         * dom/Document.cpp:
6813         (WebCore::Document::addWindowEventListener):
6814         (WebCore::Document::removeWindowEventListener):
6815         (WebCore::Document::setDecoder):
6816         (WebCore::Document::images):
6817         (WebCore::Document::applets):
6818         (WebCore::Document::embeds):
6819         (WebCore::Document::plugins):
6820         (WebCore::Document::objects):
6821         (WebCore::Document::scripts):
6822         (WebCore::Document::links):
6823         (WebCore::Document::forms):
6824         (WebCore::Document::anchors):
6825         (WebCore::Document::all):
6826         (WebCore::Document::windowNamedItems):
6827         (WebCore::Document::documentNamedItems):
6828         * dom/Document.h:
6829         * dom/DynamicNodeList.h:
6830         * dom/EventException.h:
6831         (WebCore::EventException::create):
6832         (WebCore::EventException::EventException):
6833         * dom/EventListener.h:
6834         * dom/EventTarget.cpp:
6835         (WebCore::EventTarget::addEventListener):
6836         (WebCore::EventTarget::removeEventListener):
6837         * dom/ExceptionBase.cpp:
6838         (WebCore::ExceptionBase::ExceptionBase):
6839         * dom/ExceptionBase.h:
6840         * dom/NameNodeList.h:
6841         (WebCore::NameNodeList::create):
6842         * dom/Node.cpp:
6843         (WebCore::Node::childNodes):
6844         (WebCore::Node::getElementsByTagNameNS):
6845         (WebCore::Node::getElementsByName):
6846         (WebCore::Node::getElementsByClassName):
6847         (WebCore::Node::querySelectorAll):
6848         * dom/NodeFilterCondition.h:
6849         * dom/NodeList.h:
6850         * dom/RangeException.h:
6851         (WebCore::RangeException::create):
6852         (WebCore::RangeException::RangeException):
6853         * dom/RegisteredEventListener.h:
6854         (WebCore::RegisteredEventListener::create):
6855         * dom/SelectorNodeList.cpp:
6856         (WebCore::createSelectorNodeList):
6857         * dom/SelectorNodeList.h:
6858         * dom/StaticNodeList.cpp:
6859         (WebCore::StaticNodeList::StaticNodeList):
6860         * dom/StaticNodeList.h:
6861         (WebCore::StaticNodeList::adopt):
6862         * dom/TagNodeList.h:
6863         (WebCore::TagNodeList::create):
6864         * history/HistoryItem.cpp:
6865         (WebCore::defaultNotifyHistoryItemChanged):
6866         (WebCore::HistoryItem::HistoryItem):
6867         (WebCore::HistoryItem::copy):
6868         * history/HistoryItem.h:
6869         (WebCore::HistoryItem::create):
6870         * html/CanvasGradient.h:
6871         * html/CanvasPattern.cpp:
6872         (WebCore::CanvasPattern::CanvasPattern):
6873         * html/CanvasPattern.h:
6874         (WebCore::CanvasPattern::create):
6875         * html/CanvasRenderingContext2D.cpp:
6876         (WebCore::CanvasRenderingContext2D::State::State):
6877         (WebCore::CanvasRenderingContext2D::setStrokeColor):
6878         (WebCore::CanvasRenderingContext2D::setFillColor):
6879         (WebCore::CanvasRenderingContext2D::createPattern):
6880         * html/CanvasStyle.cpp:
6881         (WebCore::CanvasStyle::CanvasStyle):
6882         * html/CanvasStyle.h:
6883         (WebCore::CanvasStyle::create):
6884         * html/HTMLCollection.cpp:
6885         (WebCore::HTMLCollection::HTMLCollection):
6886         (WebCore::HTMLCollection::create):
6887         * html/HTMLCollection.h:
6888         * html/HTMLElement.cpp:
6889         (WebCore::HTMLElement::children):
6890         * html/HTMLFormCollection.cpp:
6891         (WebCore::HTMLFormCollection::create):
6892         * html/HTMLFormCollection.h:
6893         * html/HTMLFormElement.cpp:
6894         (WebCore::HTMLFormElement::elements):
6895         * html/HTMLMapElement.cpp:
6896         (WebCore::HTMLMapElement::areas):
6897         * html/HTMLMediaElement.cpp:
6898         (WebCore::HTMLMediaElement::load):
6899         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
6900         (WebCore::HTMLMediaElement::willSaveToCache):
6901         * html/HTMLNameCollection.h:
6902         (WebCore::HTMLNameCollection::create):
6903         * html/HTMLOptionsCollection.cpp:
6904         (WebCore::HTMLOptionsCollection::create):
6905         * html/HTMLOptionsCollection.h:
6906         * html/HTMLSelectElement.cpp:
6907         (WebCore::HTMLSelectElement::options):
6908         * html/HTMLTableElement.cpp:
6909         (WebCore::HTMLTableElement::rows):
6910         (WebCore::HTMLTableElement::tBodies):
6911         * html/HTMLTableRowElement.cpp:
6912         (WebCore::HTMLTableRowElement::cells):
6913         * html/HTMLTableRowsCollection.cpp:
6914         (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
6915         (WebCore::HTMLTableRowsCollection::create):
6916         * html/HTMLTableRowsCollection.h:
6917         * html/HTMLTableSectionElement.cpp:
6918         (WebCore::HTMLTableSectionElement::rows):
6919         * html/MediaError.h:
6920         (WebCore::MediaError::create):
6921         (WebCore::MediaError::MediaError):
6922         * loader/CachedCSSStyleSheet.cpp:
6923         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
6924         * loader/CachedFont.cpp:
6925         (WebCore::CachedFont::ensureSVGFontData):
6926         * loader/CachedXSLStyleSheet.cpp:
6927         (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
6928         * loader/FrameLoader.cpp:
6929         (WebCore::FrameLoader::write):
6930         (WebCore::FrameLoader::createHistoryItem):
6931         * loader/ImageDocument.cpp:
6932         (WebCore::ImageEventListener::create):
6933         (WebCore::ImageEventListener::ImageEventListener):
6934         (WebCore::ImageDocument::createDocumentStructure):
6935         * loader/TextResourceDecoder.h:
6936         (WebCore::TextResourceDecoder::create):
6937         * page/Page.cpp:
6938         (WebCore::Page::userStyleSheet):
6939         * svg/SVGException.h:
6940         (WebCore::SVGException::create):
6941         (WebCore::SVGException::SVGException):
6942         * svg/animation/SVGSMILElement.cpp:
6943         (WebCore::ConditionEventListener::create):
6944         (WebCore::ConditionEventListener::ConditionEventListener):
6945         (WebCore::SVGSMILElement::connectConditions):
6946         * xml/XMLHttpRequest.cpp:
6947         (WebCore::XMLHttpRequest::didReceiveData):
6948         * xml/XMLHttpRequestException.h:
6949         (WebCore::XMLHttpRequestException::create):
6950         (WebCore::XMLHttpRequestException::XMLHttpRequestException):
6951         * xml/XPathException.h:
6952         (WebCore::XPathException::create):
6953         (WebCore::XPathException::XPathException):
6954         * xml/XPathResult.cpp:
6955         (WebCore::InvalidatingEventListener::create):
6956         (WebCore::InvalidatingEventListener::InvalidatingEventListener):
6957         (WebCore::XPathResult::XPathResult):
6958         * xml/XSLTProcessor.cpp:
6959         (WebCore::XSLTProcessor::createDocumentFromSource):
6961 2008-06-07  Christian Dywan  <christian@twotoasts.de>
6963         Reviewed by Alp Toker.
6965         https://bugs.webkit.org/show_bug.cgi?id=17324
6966         Remove PLATFORM ifdefs from ContextMenu.cpp
6968         * platform/ContextMenu.cpp:
6969         (WebCore::ContextMenu::populate):
6971 2008-06-07  Eric Seidel  <eric@webkit.org>
6973         Reviewed by ap.
6975         Still more CSSParser cleanup
6976         - use c++ style member initializers in CSSParser()
6977         - change m_styleElement to m_styleSheet and make it a CSSStyleSheet
6978         - finally add my copyright to the files I've been cleaning
6980         * css/CSSGrammar.y:
6981         * css/CSSParser.cpp:
6982         (WebCore::CSSParser::CSSParser):
6983         (WebCore::CSSParser::setupParser):
6984         (WebCore::CSSParser::parseValue):
6985         (WebCore::CSSParser::parseColor):
6986         (WebCore::CSSParser::parseDeclaration):
6987         (WebCore::CSSParser::parseContent):
6988         (WebCore::CSSParser::parseFillImage):
6989         (WebCore::CSSParser::parseFontFaceSrc):
6990         (WebCore::CSSParser::parseBorderImage):
6991         (WebCore::CSSParser::createCharsetRule):
6992         (WebCore::CSSParser::createImportRule):
6993         (WebCore::CSSParser::createMediaRule):
6994         (WebCore::CSSParser::createStyleRule):
6995         * css/CSSParser.h:
6996         * css/SVGCSSParser.cpp:
6998 2008-06-07  Eric Seidel  <eric@webkit.org>
7000         Reviewed by ap.
7002         More CSSParser cleanup
7003         - rename CSSParser::id to m_id
7004         - rename CSSParser::data to m_data
7005         - fix a few whitespace and argument name issues
7007         * css/CSSGrammar.y:
7008         * css/CSSParser.cpp:
7009         (WebCore::CSSParser::CSSParser):
7010         (WebCore::CSSParser::~CSSParser):
7011         (WebCore::CSSParser::setupParser):
7012         (WebCore::CSSParser::parseValue):
7013         * css/CSSParser.h:
7015 2008-06-07  Eric Seidel  <eric@webkit.org>
7017         Reviewed by ap.
7019         Rename CSSParser::strict to m_strict
7021         * css/CSSGrammar.y:
7022         * css/CSSParser.cpp:
7023         (WebCore::CSSParser::CSSParser):
7024         (WebCore::CSSParser::parseColor):
7025         (WebCore::CSSParser::parseValue):
7026         (WebCore::CSSParser::parseBackgroundColor):
7027         (WebCore::CSSParser::parseFillPositionXY):
7028         (WebCore::CSSParser::parseFillSize):
7029         (WebCore::CSSParser::parseTransitionDuration):
7030         (WebCore::CSSParser::parseTransitionRepeatCount):
7031         (WebCore::CSSParser::parseTimingFunctionValue):
7032         (WebCore::CSSParser::parseDashboardRegions):
7033         (WebCore::CSSParser::parseShape):
7034         (WebCore::CSSParser::parseFont):
7035         (WebCore::CSSParser::parseColorFromValue):
7036         (WebCore::CSSParser::parseShadow):
7037         (WebCore::CSSParser::parseReflect):
7038         (WebCore::CSSParser::parseBorderImage):
7039         * css/CSSParser.h:
7041 2008-06-07  Eric Seidel  <eric@webkit.org>
7043         Reviewed by ap.
7045         Rename CSSParser::defaultNamespace to m_defaultNamespace
7047         * css/CSSGrammar.y:
7048         * css/CSSParser.cpp:
7049         (WebCore::CSSParser::CSSParser):
7050         (WebCore::CSSParser::parseSheet):
7051         * css/CSSParser.h:
7052         * css/CSSStyleSheet.cpp:
7053         (WebCore::CSSStyleSheet::addNamespace):
7055 2008-06-07  Eric Seidel  <eric@webkit.org>
7057         Reviewed by ap.
7059         Rename CSSParser::important to m_important
7061         * css/CSSGrammar.y:
7062         * css/CSSParser.cpp:
7063         (WebCore::CSSParser::CSSParser):
7064         (WebCore::CSSParser::parseValue):
7065         (WebCore::CSSParser::parseFontFaceSrc):
7066         (WebCore::CSSParser::parseFontFaceUnicodeRange):
7067         * css/CSSParser.h:
7069 2008-06-07  Eric Seidel  <eric@webkit.org>
7071         Reviewed by ap.
7073         Rename CSSParser::rule to m_rule
7075         * css/CSSGrammar.y:
7076         * css/CSSParser.cpp:
7077         (WebCore::CSSParser::parseSheet):
7078         (WebCore::CSSParser::parseRule):
7079         (WebCore::CSSParser::parseValue):
7080         (WebCore::CSSParser::parseColor):
7081         (WebCore::CSSParser::parseDeclaration):
7082         * css/CSSParser.h:
7084 2008-06-07  Eric Seidel  <eric@webkit.org>
7086         Reviewed by ap.
7088         Yet another cleanup patch for CSSParser
7089         Rename CSSParser::valueList to m_valueList
7091         * css/CSSGrammar.y:
7092         * css/CSSParser.cpp:
7093         (WebCore::CSSParser::CSSParser):
7094         (WebCore::CSSParser::~CSSParser):
7095         (WebCore::CSSParser::checkForOrphanedUnits):
7096         (WebCore::CSSParser::parseValue):
7097         (WebCore::CSSParser::parseFillShorthand):
7098         (WebCore::CSSParser::parseTransitionShorthand):
7099         (WebCore::CSSParser::parseShorthand):
7100         (WebCore::CSSParser::parse4Values):
7101         (WebCore::CSSParser::parseContent):
7102         (WebCore::CSSParser::parseFillImage):
7103         (WebCore::CSSParser::parseFillPositionXY):
7104         (WebCore::CSSParser::parseFillPosition):
7105         (WebCore::CSSParser::parseFillSize):
7106         (WebCore::CSSParser::parseFillProperty):
7107         (WebCore::CSSParser::parseTransitionProperty):
7108         (WebCore::CSSParser::parseDashboardRegions):
7109         (WebCore::CSSParser::parseShape):
7110         (WebCore::CSSParser::parseFont):
7111         (WebCore::CSSParser::parseFontFamily):
7112         (WebCore::CSSParser::parseFontFaceSrc):
7113         (WebCore::CSSParser::parseFontFaceUnicodeRange):
7114         (WebCore::CSSParser::parseColor):
7115         (WebCore::CSSParser::parseShadow):
7116         (WebCore::CSSParser::parseReflect):
7117         (WebCore::BorderImageParseContext::commitBorderImage):
7118         (WebCore::CSSParser::parseBorderImage):
7119         (WebCore::CSSParser::parseCounter):
7120         (WebCore::CSSParser::parseGradient):
7121         (WebCore::CSSParser::parseCanvas):
7122         (WebCore::CSSParser::parseTransform):
7123         (WebCore::CSSParser::parseTransformOrigin):
7124         * css/CSSParser.h:
7125         * css/SVGCSSParser.cpp:
7126         (WebCore::CSSParser::parseSVGValue):
7127         (WebCore::CSSParser::parseSVGStrokeDasharray):
7128         (WebCore::CSSParser::parseSVGPaint):
7129         (WebCore::CSSParser::parseSVGColor):
7131 2008-06-07  Eric Seidel  <eric@webkit.org>
7133         Reviewed by ap.
7135         More cleanup to CSSParser, rename mediaQuery to m_mediaQuery
7136         Remove CSSParser::current and CSSParser::currentParser and use
7137         the magic of YYLEX_PARAM instead.
7139         * css/CSSParser.cpp:
7140         (WebCore::enterGeneratedParser):
7141         (WebCore::CSSParser::parseSheet):
7142         (WebCore::CSSParser::parseRule):
7143         (WebCore::CSSParser::parseValue):
7144         (WebCore::CSSParser::parseColor):
7145         (WebCore::CSSParser::parseDeclaration):
7146         (WebCore::CSSParser::parseMediaQuery):
7147         * css/CSSParser.h:
7149 2008-06-07  Julien Chaffraix  <jchaffraix@webkit.org>
7151         Reviewed by Eric.
7153         Part of bug 19200: *.in files should embed more information
7154         https://bugs.webkit.org/show_bug.cgi?id=19200
7156         - Added XML attributes' parsing.
7158         - Moved (most) capitalization and audio hacks in the *.in files.
7160         * dom/make_names.pl:
7161         * html/HTMLTagNames.in:
7162         * svg/svgtags.in:
7164 2008-06-07  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
7166         With the help of Jonathon Jongsma.
7168         Reviewed by Dan Bernstein.
7170         Fix for https://bugs.webkit.org/show_bug.cgi?id=19279
7171         REGRESSION (r32660): Text not redrawn correctly when selection changes
7173         * rendering/InlineTextBox.cpp:
7174         (WebCore::InlineTextBox::paint):
7175         Add a condition for when ePos <= sPos 
7177 2008-06-06  Julien Chaffraix  <jchaffraix@webkit.org>
7179         Reviewed by Eric.
7181         Part of bug 19200: *.in files should embed more information
7182         https://bugs.webkit.org/show_bug.cgi?id=19200
7184         - Switched *.in files to XML format.
7186         - Added (simple) parsing facilities in make_names.pl using the XML::Tiny Perl parser.
7188         - Updated the build systems to include bindings/scripts when executing make_names.pl
7189         (for XMLTiny dependency).
7191         - Cleaned-up make_names.pl a little.
7193         * DerivedSources.make:
7194         * GNUmakefile.am:
7195         * WebCore.pro:
7196         * bindings/scripts/XMLTiny.pm: Added.
7197         * dom/make_names.pl:
7198         * html/HTMLAttributeNames.in:
7199         * html/HTMLTagNames.in:
7200         * svg/svgattrs.in:
7201         * svg/svgtags.in:
7202         * svg/xlinkattrs.in:
7203         * xml/xmlattrs.in:
7205 2008-06-06  Robert Blaut  <webkit@blaut.biz>
7207         Reviewed by Darin Adler.
7209         Fix for https://bugs.webkit.org/show_bug.cgi?id=19407 
7210         CSS3 Selector Test: *= ~= ^= $= should all accept the empty string, but match nothing
7212         Test: fast/css/begin-end-contain-selector-empty-value.html
7214         * css/CSSStyleSelector.cpp:
7215         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
7217 2008-06-06  Eric Seidel  <eric@webkit.org>
7219         Reviewed by mitz.
7221         More cleanup of CSSParser.
7222         Rename CSSParser::numParsedProperties and maxNumParsedProperites to m_*
7224         * css/CSSGrammar.y:
7225         * css/CSSParser.cpp:
7226         (WebCore::CSSParser::CSSParser):
7227         (WebCore::CSSParser::parseValue):
7228         (WebCore::CSSParser::parseColor):
7229         (WebCore::CSSParser::parseDeclaration):
7230         (WebCore::CSSParser::addProperty):
7231         (WebCore::CSSParser::rollbackLastProperties):
7232         (WebCore::CSSParser::clearProperties):
7233         (WebCore::CSSParser::parse4Values):
7234         (WebCore::CSSParser::createStyleRule):
7235         (WebCore::CSSParser::createFontFaceRule):
7236         * css/CSSParser.h:
7237         * css/SVGCSSParser.cpp:
7238         (WebCore::CSSParser::parseSVGValue):
7240 2008-06-06  Eric Seidel  <eric@webkit.org>
7242         Reviewed by mitz.
7244         More cleanup of CSSParser.
7245         Rename CSSParser::parsedProperties to m_parsedProperties.
7247         * css/CSSParser.cpp:
7248         (WebCore::CSSParser::CSSParser):
7249         (WebCore::CSSParser::~CSSParser):
7250         (WebCore::CSSParser::parseValue):
7251         (WebCore::CSSParser::parseColor):
7252         (WebCore::CSSParser::parseDeclaration):
7253         (WebCore::CSSParser::addProperty):
7254         (WebCore::CSSParser::rollbackLastProperties):
7255         (WebCore::CSSParser::clearProperties):
7256         (WebCore::CSSParser::parse4Values):
7257         (WebCore::CSSParser::createStyleRule):
7258         (WebCore::CSSParser::createFontFaceRule):
7259         * css/CSSParser.h:
7260         * css/SVGCSSParser.cpp:
7261         (WebCore::CSSParser::parseSVGValue):
7263 2008-06-06  Eric Seidel  <eric@webkit.org>
7265         Reviewed by mitz.
7267         Start the cleanup of CSSParser.
7268         Rename CSSParser::styleElement to CSSParser::m_styleElement
7270         * css/CSSGrammar.y:
7271         * css/CSSParser.cpp:
7272         (WebCore::CSSParser::document):
7273         (WebCore::CSSParser::parseValue):
7274         (WebCore::CSSParser::parseContent):
7275         (WebCore::CSSParser::parseFillImage):
7276         (WebCore::CSSParser::parseFontFaceSrc):
7277         (WebCore::CSSParser::parseBorderImage):
7278         (WebCore::CSSParser::createCharsetRule):
7279         (WebCore::CSSParser::createImportRule):
7280         (WebCore::CSSParser::createMediaRule):
7281         (WebCore::CSSParser::createStyleRule):
7282         * css/CSSParser.h:
7284 2008-06-06  Anthony Ricaud  <rik24d@gmail.com>
7286         Reviewed by adele.  Landed by eseidel.
7288         https://bugs.webkit.org/show_bug.cgi?id=18337
7289         
7290         Calls listBoxOnChange() in typeAheadFind() when the <select> tag is a listBox.
7291         
7292         * html/HTMLSelectElement.cpp:
7293         (WebCore::HTMLSelectElement::typeAheadFind):
7295 2008-06-05  Justin Garcia  <justin.garcia@apple.com>
7297         Reviewed by John.
7299         <rdar://problem/5890684> REGRESSION(r23969): Deleting a line break changes the style of text after the break
7300         
7301         Serialization of font-family:-webkit-monospace when it came from a 
7302         CSSMutableStyleDeclaration would wrap the value in single quotes but 
7303         serialization of the same property value pair from a CSSComputedStyleDeclaration 
7304         wouldn't, which kept code that checked for and removed non-redundant styles from 
7305         style spans from working correctly.
7307         A redundant style left on a style span would not normally create a rendering 
7308         difference, but it did in this case because an element with 
7309         font-family:-webkit-monospace does not appear to inherit font-size.  
7310         Added a FIXME about how we might need to keep font-size on a style span if its 
7311         non-redundant styles include font-family:-webkit-monospace, although I couldn't 
7312         create a test case to produce this scenario.
7314         * css/FontFamilyValue.cpp:
7315         (WebCore::isValidCSSIdentifier): Don't return false if the String starts
7316         with a '-'.  This function now appears identical to isCSSTokenizerIdentifier,
7317         so perhaps we should use a single function.
7318         * editing/ReplaceSelectionCommand.cpp:
7319         (WebCore::ReplaceSelectionCommand::handleStyleSpans): Added FIXME.  Removed the
7320         creation of two Strings that were never used.
7322 2008-06-06  Justin Garcia  <justin.garcia@apple.com>
7324         Reviewed by Darin.
7326         <https://bugs.webkit.org/show_bug.cgi?id=19087>
7327         Editing crash in IndentOutdentCommand::prepareBlockquoteLevelForInsertion, ASSERT in debug mode
7329         * editing/DeleteSelectionCommand.cpp:
7330         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): applyStyle
7331         can destroy insertedPlaceholder if it needs to move it, but it will set an
7332         endingSelection() at [movedPlaceholder, 0] if it does so.  Re-fetch insertedPlaceholder
7333         if that happens.  The long term solution for these crashes is to make moveParagraphs
7334         not copy/destroy/move content, and to make VisiblePositions update themselves on DOM 
7335         mutations.
7336         * editing/IndentOutdentCommand.cpp:
7337         (WebCore::IndentOutdentCommand::indentRegion): Early return to avoid crashes like this
7338         in the future, but ASSERT to catch them in debug builds.
7340 2008-06-05  Justin Garcia  <justin.garcia@apple.com>
7342         Reviewed by Eric.
7344         <https://bugs.webkit.org/show_bug.cgi?id=19403>
7345         ASSERT in InsertIntoTextNodeCommand::InsertIntoTextNodeCommand during RemoveFormat call
7347         * editing/RemoveFormatCommand.cpp:
7348         (WebCore::RemoveFormatCommand::doApply): If the selection was all
7349         formatting (like an empty list) the format-less text will be empty.
7350         Early return to avoid the ASSERT that fires if input(...) is called
7351         with an empty String.
7353 2008-06-05  Alp Toker  <alp@nuanti.com>
7355         Build fix for r34387.
7357         * GNUmakefile.am:
7359 2008-06-05  Justin Garcia  <justin.garcia@apple.com>
7361         Reviewed by Eric.
7363         <https://bugs.webkit.org/show_bug.cgi?id=19089> Editing ASSERT in Range::compareBoundaryPoints
7364         
7365         ApplyStyleCommand::applyInlineStyle does some work and then checks to see
7366         if the start offset of the Range it's operating on is now past the caretMaxOffset
7367         of the start container.  If it is, applyInlineStyle updates the position to 
7368         [startContainer->traverseNextNode(), 0] and then operates on that new start
7369         position.
7370         
7371         caretMaxOffset was incorrect for horizontal rules.  It should be 1 and it was 0.  So,
7372         if the horizontal rule was the last node in the document, applyInlineStyle would update
7373         its start position to [0, 0] and then try to operate on that position, assuming it was
7374         non-null, leading to the ASSERT.
7375         
7376         * rendering/RenderObject.cpp:
7377         (WebCore::RenderObject::caretMaxOffset):
7379 2008-06-05  Chris Fleizach  <cfleizach@apple.com>
7381         Reviewed by John Sullivan.
7383         <rdar://problem/5947396> AccessibilityListBoxOptions should return their string as AXValue, not AXTitle
7385         * page/AccessibilityListBoxOption.cpp:
7386         (WebCore::AccessibilityListBoxOption::stringValue):
7387         * page/AccessibilityListBoxOption.h:
7389 2008-06-05  Justin Garcia  <justin.garcia@apple.com>
7391         Reviewed by Harrison.
7393         <rdar://problem/5658933> GoogleDocs: Crash indenting a particular selection twice
7394         <rdar://problem/5831310> CrashTracer: [USER] 4 crashes in Mail at WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion
7395         <rdar://problem/5480141> GoogleDocs: Attempting to indent content in <td> closes <table> element
7396         
7397         A crash would occur when indenting a selection that started just before a table
7398         and ended inside that table.  With a selection like this, we'd indent the entire
7399         table, then try and indent paragraphs inside it, but the stored position for the
7400         next paragraph to indent was inside content that had been removed from the document 
7401         during the first Indent.
7402         
7403         Fixed the crash adjusting the selection to perform the indent on to prepare it
7404         for paragraph iteration using selectionForParagraphIteration.  We do this adjustment
7405         for paragraph iteration in InsertList as well.
7406         
7407         Also, indenting paragraphs inside table cells would break table structure because 
7408         we were splitting the DOM all the way up to the root editable element to insert
7409         a blockquote.  Fixed this by only splitting up to the enclosing table cell.  This 
7410         matches FF.  Lastly, fixed a bug where indenting several paragraphs inside different 
7411         table cells would move all the selected text into the same table cell. FF still has 
7412         this bug.
7414         * editing/IndentOutdentCommand.cpp:
7415         (WebCore::IndentOutdentCommand::indentRegion):
7417 2008-06-05  chris fleizach  <cfleizach@apple.com>
7419         Reviewed by Alice Liu.
7421          <rdar://problem/5979998> AXList controls should have AXSelectedChildren and its children's AXSelected attribute writable
7423         * page/AccessibilityListBox.cpp:
7424         (WebCore::AccessibilityListBox::canSetSelectedChildrenAttribute):
7425         (WebCore::AccessibilityListBox::setSelectedChildren):
7426         (WebCore::AccessibilityListBox::selectedChildren):
7427         (WebCore::AccessibilityListBox::visibleChildren):
7428         * page/AccessibilityListBox.h:
7429         * page/AccessibilityListBoxOption.cpp:
7430         (WebCore::AccessibilityListBoxOption::canSetSelectedAttribute):
7431         (WebCore::AccessibilityListBoxOption::setSelected):
7432         * page/AccessibilityListBoxOption.h:
7433         (WebCore::AccessibilityListBoxOption::selectedChildren):
7434         (WebCore::AccessibilityListBoxOption::visibleChildren):
7435         * page/AccessibilityObject.cpp:
7436         (WebCore::AccessibilityObject::setSelected):
7437         (WebCore::AccessibilityObject::getDocumentLinks):
7438         * page/AccessibilityObject.h:
7439         (WebCore::AccessibilityObject::canSetSelectedAttribute):
7440         (WebCore::AccessibilityObject::canSetSelectedChildrenAttribute):
7441         (WebCore::AccessibilityObject::children):
7442         * page/AccessibilityRenderObject.cpp:
7443         (WebCore::AccessibilityRenderObject::getDocumentLinks):
7444         (WebCore::AccessibilityRenderObject::children):
7445         (WebCore::AccessibilityRenderObject::addChildren):
7446         (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
7447         (WebCore::AccessibilityRenderObject::selectedChildren):
7448         (WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren):
7449         (WebCore::AccessibilityRenderObject::visibleChildren):
7450         * page/AccessibilityRenderObject.h:
7451         * page/mac/AccessibilityObjectWrapper.mm:
7452         (convertToVector):
7453         (convertToNSArray):
7454         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
7455         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
7456         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
7458 2008-06-04  David Hyatt  <hyatt@apple.com>
7460         Fix for <rdar://problem/5957994> Height doesn't animate
7462         Improve the behavior when transitions are dynamically changed.  Make sure to leave older transitions
7463         running and let them obsolete themselves when they finish.
7465         Reviewed by Dan Bernstein
7467         Added WebCore/manual-tests/transitions2.html (must be tested manually)
7469         * manual-tests/transitions.html:
7470         * manual-tests/transitions2.html: Added.
7471         * page/AnimationController.cpp:
7472         (WebCore::ImplicitAnimation::property):
7473         (WebCore::ImplicitAnimation::setFinished):
7474         (WebCore::ImplicitAnimation::markedForDeath):
7475         (WebCore::ImplicitAnimation::setMarkedForDeath):
7476         (WebCore::ImplicitAnimation::ImplicitAnimation):
7477         (WebCore::ImplicitAnimation::reset):
7478         (WebCore::ImplicitAnimation::animate):
7479         (WebCore::CompositeImplicitAnimation::animate):
7481 2008-06-05  Eric Seidel  <eric@webkit.org>
7483         Reviewed by mjs.
7485         Get rid of Uninitialized Memory Reads (UMRs) in the XPath::Value copy constructor.
7487         No functional changes, thus no tests.
7489         * xml/XPathValue.h:
7490         (WebCore::XPath::Value::Value): initialize all values in each constructor
7492 2008-06-05  Eric Seidel  <eric@webkit.org>
7494         Reviewed by hyatt.
7496         No functional changes, thus no tests.
7498         * platform/graphics/Color.h: remove unnecessary bitfield use
7500 2008-06-05  Antti Koivisto  <antti@apple.com>
7502         Reviewed by Dave Hyatt.
7503         
7504         Make hasFeature() return true for the animation stuff.
7506         * dom/DOMImplementation.cpp:
7507         (WebCore::isSVG11Feature):
7509 2008-06-05  Dan Bernstein  <mitz@apple.com>
7511         Reviewed by Darin Adler.
7513         - fix https://bugs.webkit.org/show_bug.cgi?id=19397
7514           REGRESSION (3.1-TOT): Box-shadow renders weird when rotating a div with border radius
7516         Test: fast/transforms/shadows.html
7518         * platform/graphics/cg/GraphicsContextCG.cpp:
7519         (WebCore::GraphicsContext::setPlatformShadow): In Core Graphics, shadow
7520         dimensions are always in device space. Account for that, and apply the
7521         current context transform to shadow offset, and multiply the blur radius
7522         by the inverse of the operator norm of the inverse transform (which is
7523         the radius of the circle inscribed in the transformed unit circle). 
7524         * rendering/RenderObject.cpp:
7525         (WebCore::RenderObject::paintBoxShadow): Added 1px separation between
7526         the edge of the filled shape and the edge of the clipped-out shape,
7527         because in a transformed context, due to antialiasing, the fill can
7528         bleed into the clip if they touch.
7530 2008-06-05  Tor Arne Vestbø  <tavestbo@trolltech.com>
7532         Reviewed by Simon.
7534         Prevent cycles when converting from DOM objects to
7535         QVariant, due to cycles in the DOM tree.
7537         * bridge/qt/qt_runtime.cpp:
7538         (KJS::Bindings::convertValueToQVariant):
7540 2008-06-04  Anders Carlsson  <andersca@apple.com>
7542         Reviewed by Mitz.
7544         Get rid of DeprecatedPtrList from StyleSheetList.
7545         
7546         * css/CSSStyleSelector.cpp:
7547         (WebCore::CSSStyleSelector::CSSStyleSelector):
7548         * css/StyleSheetList.cpp:
7549         (WebCore::StyleSheetList::~StyleSheetList):
7550         (WebCore::StyleSheetList::length):
7551         (WebCore::StyleSheetList::item):
7552         * css/StyleSheetList.h:
7553         (WebCore::StyleSheetList::swap):
7554         * dom/Document.cpp:
7555         (WebCore::Document::recalcStyleSelector):
7557 2008-06-04  Anders Carlsson  <andersca@apple.com>
7559         Reviewed by Darin.
7561         Convert more classes over to start out with a ref count of 1.
7562         
7563         * css/CSSImageGeneratorValue.cpp:
7564         (WebCore::CSSImageGeneratorValue::generatedImage):
7565         * css/CSSImageValue.cpp:
7566         (WebCore::CSSImageValue::cachedImage):
7567         * css/CSSMediaRule.cpp:
7568         (WebCore::CSSMediaRule::CSSMediaRule):
7569         * css/CSSParser.cpp:
7570         (WebCore::CSSParser::parseValue):
7571         (WebCore::CSSParser::parseFillSize):
7572         (WebCore::CSSParser::parseCounter):
7573         (WebCore::CSSParser::createRuleList):
7574         * css/CSSRuleList.cpp:
7575         (WebCore::CSSRuleList::CSSRuleList):
7576         * css/CSSRuleList.h:
7577         (WebCore::CSSRuleList::create):
7578         * css/CSSStyleSelector.cpp:
7579         (WebCore::CSSStyleSelector::matchRules):
7580         (WebCore::CSSStyleSelector::styleRulesForElement):
7581         * css/CSSStyleSelector.h:
7582         * css/CSSStyleSheet.cpp:
7583         (WebCore::CSSStyleSheet::cssRules):
7584         (WebCore::CSSStyleSheet::addSubresourceURLStrings):
7585         * css/CSSStyleSheet.h:
7586         (WebCore::CSSStyleSheet::rules):
7587         * css/Pair.h:
7588         (WebCore::Pair::create):
7589         (WebCore::Pair::Pair):
7590         * html/HTMLMediaElement.cpp:
7591         (WebCore::HTMLMediaElement::buffered):
7592         (WebCore::HTMLMediaElement::played):
7593         (WebCore::HTMLMediaElement::seekable):
7594         * html/TimeRanges.cpp:
7595         (TimeRanges::TimeRanges):
7596         * html/TimeRanges.h:
7597         (WebCore::TimeRanges::create):
7598         (WebCore::TimeRanges::TimeRanges):
7599         * rendering/style/RenderStyle.cpp:
7600         (WebCore::RenderStyle::addCursor):
7601         (WebCore::RenderStyle::clearCursorList):
7602         * rendering/style/RenderStyle.h:
7603         (WebCore::StyleImage::~StyleImage):
7604         (WebCore::StyleImage::StyleImage):
7605         (WebCore::StyleCachedImage::create):
7606         (WebCore::StyleCachedImage::StyleCachedImage):
7607         (WebCore::StyleGeneratedImage::create):
7608         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
7609         (WebCore::CursorList::create):
7610         (WebCore::CursorList::CursorList):
7612 2008-06-04  chris fleizach  <cfleizach@apple.com>
7614         Reviewed by Dave Hyatt, Alice, Liu
7616         <rdar://problem/5983804> Editable web areas do not properly report the AXFocused attribute
7618         * page/AccessibilityRenderObject.cpp:
7619         (WebCore::AccessibilityRenderObject::isFocused):
7621 2008-06-03  Beth Dakin  <bdakin@apple.com>
7623         Reviewed by Adele.
7625         Fix for https://bugs.webkit.org/show_bug.cgi?id=19381 WebKit 
7626         Crashing Constantly on Gmail with accessibility turned on
7628         There was a missing null-check!
7630         * page/AccessibilityRenderObject.cpp:
7631         (WebCore::AccessibilityRenderObject::roleValue):
7633 2008-06-04  Anders Carlsson  <andersca@apple.com>
7635         Reviewed by Sam.
7637         Convert more classes to start with a ref count of 1.
7638         
7639         * bindings/js/JSCustomVoidCallback.cpp:
7640         (WebCore::toVoidCallback):
7641         * bindings/js/JSCustomVoidCallback.h:
7642         (WebCore::JSCustomVoidCallback::create):
7643         * css/StyleSheetList.cpp:
7644         (WebCore::StyleSheetList::StyleSheetList):
7645         * css/StyleSheetList.h:
7646         (WebCore::StyleSheetList::create):
7647         * dom/Document.cpp:
7648         (WebCore::Document::Document):
7649         (WebCore::Document::createNodeIterator):
7650         (WebCore::Document::createTreeWalker):
7651         * dom/NodeIterator.h:
7652         (WebCore::NodeIterator::create):
7653         * dom/Traversal.cpp:
7654         (WebCore::Traversal::Traversal):
7655         * dom/Traversal.h:
7656         * dom/TreeWalker.h:
7657         (WebCore::TreeWalker::create):
7658         * history/CachedPage.cpp:
7659         (WebCore::CachedPage::create):
7660         (WebCore::CachedPage::CachedPage):
7661         * html/CanvasGradient.cpp:
7662         (WebCore::CanvasGradient::CanvasGradient):
7663         * html/CanvasGradient.h:
7664         (WebCore::CanvasGradient::create):
7665         * html/CanvasRenderingContext2D.cpp:
7666         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
7667         (WebCore::CanvasRenderingContext2D::createLinearGradient):
7668         (WebCore::CanvasRenderingContext2D::createRadialGradient):
7669         * html/CanvasRenderingContext2D.h:
7670         (WebCore::CanvasRenderingContext2D::create):
7671         * html/HTMLCanvasElement.cpp:
7672         (WebCore::HTMLCanvasElement::getContext):
7673         * html/VoidCallback.h:
7674         (WebCore::VoidCallback::VoidCallback):
7675         * loader/FormState.cpp:
7676         (WebCore::FormState::create):
7677         (WebCore::FormState::FormState):
7678         * platform/text/RegularExpression.cpp:
7679         (WebCore::RegularExpression::Private::create):
7680         (WebCore::RegularExpression::Private::Private):
7681         (WebCore::RegularExpression::RegularExpression):
7682         * storage/SQLResultSet.cpp:
7683         (WebCore::SQLResultSet::SQLResultSet):
7684         * storage/SQLResultSetRowList.h:
7685         (WebCore::SQLResultSetRowList::create):
7686         (WebCore::SQLResultSetRowList::SQLResultSetRowList):
7688 2008-06-04  Dan Bernstein  <mitz@apple.com>
7690         Reviewed by Dave Hyatt.
7692         - fix <rdar://problem/5962118> Crash in RenderBlock::calcColumnWidth()
7694         Test: fast/multicol/gap-non-negative.html
7696         * css/CSSParser.cpp:
7697         (WebCore::CSSParser::parseValue): Changed to not allow negative
7698         values for column-gap, per
7699         <http://www.w3.org/TR/2001/WD-css3-multicol-20010118/#column-gap>.
7701 2008-06-04  Dan Bernstein  <mitz@apple.com>
7703         Reviewed by Dave Hyatt.
7705         - fix <rdar://problem/5962270> Crash in WebCore::RenderTableCell::computeAbsoluteRepaintRect()
7707         Test: fast/reflections/table-cell.html
7709         * rendering/RenderTableCell.cpp:
7710         (WebCore::RenderTableCell::computeAbsoluteRepaintRect): Null-check
7711         parent().
7712         (WebCore::RenderTableCell::absolutePosition): Ditto.
7714 2008-06-04  Alexey Proskuryakov  <ap@webkit.org>
7716         Reviewed by Darin.
7718         Fix JSClassCreate to work with old JSCore API threading model.
7720         * ForwardingHeaders/wtf/StrHash.h: Removed (moved into ustring.h).
7722 2008-06-03  Antti Koivisto  <antti@apple.com>
7724         Reviewed by Darin.
7725         
7726         https://bugs.webkit.org/show_bug.cgi?id=19384
7727         Implement path morphing for SVG animation
7728         
7729         You can animate smoothly between paths that have equal number of control points of matching type.
7731         Test: svg/custom/animate-path-morphing.svg
7733         * svg/SVGAnimateElement.cpp:
7734         (WebCore::SVGAnimateElement::determinePropertyType):
7735         (WebCore::SVGAnimateElement::calculateAnimatedValue):
7736         (WebCore::SVGAnimateElement::calculateFromAndToValues):
7737         (WebCore::SVGAnimateElement::resetToBaseValue):
7738         (WebCore::SVGAnimateElement::applyResultsToTarget):
7739         * svg/SVGAnimateElement.h:
7740         (WebCore::SVGAnimateElement::):
7741         * svg/SVGPathSegList.cpp:
7742         (WebCore::blendFunc):
7743         (WebCore::SVGPathSegList::createAnimated):
7744         * svg/SVGPathSegList.h:
7746 2008-06-03  Darin Adler  <darin@apple.com>
7748         - try to fix the Qt build
7750         * bridge/qt/qt_runtime.cpp:
7751         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter): Remove the originalObject argument.
7752         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter): Ditto.
7753         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter): Ditto.
7754         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter): Ditto.
7755         (KJS::Bindings::QtConnectionObject::execute): Use callAsFunction.
7756         * bridge/qt/qt_runtime.h: More of the same.
7758 2008-06-03  Justin Garcia  <justin.garcia@apple.com>
7760         Reviewed by John.
7762         <rdar://problem/5763082> GMail: Hang when removing indent from nested list
7763         <rdar://problem/5775449> In Gmail and GoogleDocs, a hang occurs when I attempt to apply a list style to a large selection of text
7764         <rdar://problem/5937624> 9D32: Hang in Safari. Using 100% of processor
7766         * editing/InsertListCommand.cpp:
7767         (WebCore::InsertListCommand::modifyRange): doApply() may operate on and remove 
7768         the last paragraph of the selection from the document if it's in the same list 
7769         item as startOfCurrentParagraph.  Return early to avoid an infinite loop and 
7770         because there is no more work to be done.  Added a FIXME (<rdar://problem/5983974>)
7771         about the incorrect endingSelection()s.
7773 2008-06-03  Oliver Hunt  <oliver@apple.com>
7775         Reviewed by Tim.
7777         Bug 12983: Web Inspector break on the debugger keyword
7778         <https://bugs.webkit.org/show_bug.cgi?id=12983>
7780         Added support for the new debugger didReachBreakpoint 
7781         callback so that WebInspector receives the debugger event
7782         and breaks.
7784         * page/JavaScriptDebugServer.cpp:
7785         (WebCore::JavaScriptDebugServer::didReachBreakpoint):
7786         * page/JavaScriptDebugServer.h:
7788 2008-06-03  Darin Adler  <darin@apple.com>
7790         Reviewed by Geoff.
7792         - https://bugs.webkit.org/show_bug.cgi?id=19269
7793           speed up SunSpider by eliminating the toObject call for most get/put/delete
7795         Eliminate the originalObject argument from property getter functions; it's no longer
7796         available and was used only for JavaScript function-based getters and setters.
7798         Updated callers of PropertySlot::setUndefined. It no longer takes a base argument.
7800         * bindings/js/JSQuarantinedObjectWrapper.cpp:
7801         (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter): Removed the originalObject
7802         argument.
7803         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot): Changed to initialize the
7804         PropertySlot with the original object -- this is a new requirement.
7806         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
7807         (WebCore::JSCSSStyleDeclaration::nameGetter):
7808         * bindings/js/JSCanvasPixelArrayCustom.cpp:
7809         (WebCore::JSCanvasPixelArray::indexGetter):
7810         * bindings/js/JSDOMWindowBase.cpp:
7811         (WebCore::JSDOMWindowBase::childFrameGetter):
7812         (WebCore::JSDOMWindowBase::indexGetter):
7813         (WebCore::JSDOMWindowBase::namedItemGetter):
7814         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
7815         * bindings/js/JSDOMWindowBase.h:
7816         * bindings/js/JSDOMWindowCustom.h:
7817         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
7818         * bindings/js/JSHTMLAppletElementCustom.cpp:
7819         (WebCore::JSHTMLAppletElement::nameGetter):
7820         * bindings/js/JSHTMLCollectionCustom.cpp:
7821         (WebCore::JSHTMLCollection::nameGetter):
7822         * bindings/js/JSHTMLDocumentCustom.cpp:
7823         (WebCore::JSHTMLDocument::nameGetter):
7824         * bindings/js/JSHTMLEmbedElementCustom.cpp:
7825         (WebCore::JSHTMLEmbedElement::nameGetter):
7826         * bindings/js/JSHTMLFormElementCustom.cpp:
7827         (WebCore::JSHTMLFormElement::nameGetter):
7828         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
7829         (WebCore::JSHTMLFrameSetElement::nameGetter):
7830         * bindings/js/JSHTMLObjectElementCustom.cpp:
7831         (WebCore::JSHTMLObjectElement::nameGetter):
7832         * bindings/js/JSHistoryCustom.cpp:
7833         (WebCore::JSHistory::customGetOwnPropertySlot):
7834         * bindings/js/JSLocationCustom.cpp:
7835         (WebCore::JSLocation::customGetOwnPropertySlot):
7836         * bindings/js/JSMimeTypeArrayCustom.cpp:
7837         (WebCore::JSMimeTypeArray::nameGetter):
7838         * bindings/js/JSNamedNodeMapCustom.cpp:
7839         (WebCore::JSNamedNodeMap::nameGetter):
7840         * bindings/js/JSNamedNodesCollection.cpp:
7841         (WebCore::JSNamedNodesCollection::lengthGetter):
7842         (WebCore::JSNamedNodesCollection::indexGetter):
7843         * bindings/js/JSNamedNodesCollection.h:
7844         * bindings/js/JSNodeListCustom.cpp:
7845         (WebCore::JSNodeList::nameGetter):
7846         * bindings/js/JSPluginArrayCustom.cpp:
7847         (WebCore::JSPluginArray::nameGetter):
7848         * bindings/js/JSPluginCustom.cpp:
7849         (WebCore::JSPlugin::nameGetter):
7850         * bindings/js/JSQuarantinedObjectWrapper.h:
7851         * bindings/js/JSStorageCustom.cpp:
7852         (WebCore::JSStorage::nameGetter):
7853         * bindings/js/JSStyleSheetListCustom.cpp:
7854         (WebCore::JSStyleSheetList::nameGetter):
7855         * bindings/js/kjs_binding.cpp:
7856         (WebCore::nonCachingStaticFunctionGetter):
7857         (WebCore::objectToStringFunctionGetter):
7858         * bindings/js/kjs_binding.h:
7859         * bindings/js/kjs_html.cpp:
7860         (WebCore::runtimeObjectGetter):
7861         (WebCore::runtimeObjectPropertyGetter):
7862         * bindings/js/kjs_html.h:
7863         * bindings/scripts/CodeGeneratorJS.pm:
7864         * bridge/objc/objc_runtime.mm:
7865         (ObjcFallbackObjectImp::getOwnPropertySlot):
7866         * bridge/runtime_array.cpp:
7867         (RuntimeArray::lengthGetter):
7868         (RuntimeArray::indexGetter):
7869         * bridge/runtime_array.h:
7870         * bridge/runtime_method.cpp:
7871         (RuntimeMethod::lengthGetter):
7872         * bridge/runtime_method.h:
7873         * bridge/runtime_object.cpp:
7874         (RuntimeObjectImp::fallbackObjectGetter):
7875         (RuntimeObjectImp::fieldGetter):
7876         (RuntimeObjectImp::methodGetter):
7877         * bridge/runtime_object.h:
7878         Removed originalObject arguments from getter fnctions and base arguments from
7879         calls to setUndefined.
7881 2008-06-03  Darin Adler  <darin@apple.com>
7883         Fix build with GCC.
7885         * page/AccessibilityRenderObject.cpp:
7886         (WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren):
7887         Put a default case back in the switch statement so we don't get warned about
7888         all the unhandled cases with GCC. Remove the unreachable code that was causing
7889         a warning in Visual Studio.
7891 2008-06-03  Steve Falkenburg  <sfalken@apple.com>
7893         Fix build
7895         * page/AccessibilityRenderObject.cpp:
7896         (WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren):
7898 2008-06-03  Justin Garcia  <justin.garcia@apple.com>
7900         Reviewed by John Sullivan.
7902         <rdar://problem/5943515> SelectionController()->modify Backward/Forward with LineGranularity sometimes don't work
7903         
7904         next/previousLinePosition didn't work if the input position was the last line in its
7905         block.  The code for handling such a position assumed that the input position was
7906         editable, and that the position to be returned needed to also be editable.  Changed
7907         this code to just maintain the same editability.
7908         
7909         No test case for now because we haven't enabled selection extension operations for
7910         non-editable selections.  I enabled them temporarily to test the fix, however.
7912         * dom/Node.cpp: Removed the now unused nextEditable(int).
7913         * dom/Node.h:
7914         * editing/visible_units.cpp:
7915         (WebCore::previousLeafWithSameEditability): Added.  Like previousEditable but just returns
7916         a node of the same editability.
7917         (WebCore::previousLinePosition): Call previousLeaf instead of previousEditable.
7918         (WebCore::nextLeafWithSameEditability): Added.
7919         (WebCore::nextLinePosition): Same as above.
7921 2008-06-02  Anders Carlsson  <andersca@apple.com>
7923         Reviewed by John and Sam.
7925         <rdar://problem/5955218> 
7926         Assertion failure in ApplicationCacheGroup::addEntry when reloading a page with a cache manifest (19182)
7927         
7928         * loader/appcache/ApplicationCacheGroup.h:
7929         (WebCore::ApplicationCacheGroup::hasNewestCache):
7930         Add new accessor.
7931         
7932         * loader/appcache/ApplicationCacheStorage.cpp:
7933         (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
7934         Don't call newestCache since it will always be null. Instead, call hasNewestCache which returns the saved newest cache pointer.
7935         
7936 2008-06-03  Dan Bernstein  <mitz@apple.com>
7938         Reviewed by Dave Hyatt.
7940         - fix <rdar://problem/5965410>
7941           In fixed table layout, the width of cells with auto width should be
7942           proportional to their column span, to match Firefox and IE.
7944         Test: fast/table/fixed-with-auto-with-colspan.html
7946         * rendering/FixedTableLayout.cpp:
7947         (WebCore::FixedTableLayout::layout):
7949 2008-06-03  Alp Toker  <alp@nuanti.com>
7951         Rubber-stamped by Alexey.
7953         Remove GenerateNativeConverter added in r34331 to fix JS regressions.
7954         (JSTextCustom.cpp added in r34141 is now unused in any code path.)
7956         * dom/Text.idl:
7958 2008-06-03  Alexander Vassilev <avasilev@voipgate.com>
7960         Reviewed, tweaked and landed by Alexey.
7962         https://bugs.webkit.org/show_bug.cgi?id=19363
7963         Compiler error in Entity.h
7965         * dom/Entity.h:
7966         (WebCore::Entity::Entity): Add a private constructor to shut down the errors.
7968 2008-06-02  Geoffrey Garen  <ggaren@apple.com>
7970         Reviewed by Alexey Proskuryakov.
7971         
7972         Removed JSObject::call, since it just called JSObject::callAsFunction.
7973         
7974         SunSpider reports no change.
7976 2008-06-02  Alp Toker  <alp@nuanti.com>
7978         Reviewed by Maciej.
7980         Two of the toJSNewlyCreated() optimisations in r34141 were never
7981         reached due to a generator bug and missing IDL attribute.
7983         Fix header generation to provide the necessary toJSNewlyCreated()
7984         overloads.
7986         Patch includes a related build fix by Jan Michael Alonzo.
7988         * GNUmakefile.am:
7989         * bindings/scripts/CodeGeneratorJS.pm:
7990         * dom/Text.idl:
7992 2008-06-02  Alice Liu  <alice.liu@apple.com>
7994         Reviewed by Beth Dakin.
7996         Some ARIA roles are designated to have presentational children, which
7997         means that their descendants aren't exposed to assistive technologies
7998         on an individual basis.  What this means in webcore is that descendants
7999         of such roles need to be ignored in terms of accessibility.
8001         * page/AccessibilityObject.cpp:
8002         (WebCore::AccessibilityObject::isPresentationalChildOfAriaRole):
8003         (WebCore::AccessibilityObject::ariaRoleHasPresentationalChildren):
8004         * page/AccessibilityObject.h:
8005         * page/AccessibilityRenderObject.cpp:
8006         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
8007         (WebCore::RoleEntry::):
8008         (WebCore::AccessibilityRenderObject::isPresentationalChildOfAriaRole):
8009         (WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren):
8010         * page/AccessibilityRenderObject.h:
8012 2008-06-02  David Hyatt  <hyatt@apple.com>
8014         Fix for https://bugs.webkit.org/show_bug.cgi?id=19303
8016         When the right slice value is omitted in border-image it should use the value of the left slice and not
8017         the top slice.
8019         Reviewed by darin
8021         Added fast/borders/border-image-omit-right-slice.html
8023         * css/CSSParser.cpp:
8024         (WebCore::BorderImageParseContext::commitBorderImage)
8026 2008-06-02  Anders Carlsson  <andersca@apple.com>
8028         Reviewed by David Hyatt and Mitz.
8030         <rdar://problem/5704119> 
8031         repro crash in WebCore::RenderPart::setWidget (plugin-related?)
8032         
8033         Test: platform/mac/plugins/update-widget-from-style-recalc.html
8035         Make sure to update the document's rendering before calling updateWidget.
8036         
8037         * html/HTMLEmbedElement.cpp:
8038         (WebCore::HTMLEmbedElement::updateWidget):
8039         * html/HTMLObjectElement.cpp:
8040         (WebCore::HTMLObjectElement::updateWidget):
8042 2008-06-02  Kevin McCullough  <kmccullough@apple.com>
8044         Reviewed by Adam.
8046         <rdar://problem/5954226> JSProfiler: Move the calls from
8047         JavaScriptProfileNode to JavaScriptProfile in WebCore (19231)
8048         - This Makes the profiler now call sorting function s on a per-profile
8049         basis instead of on a node in the profile.
8050         - This is also needed to remove the recursion limit in the profiler
8051         <rdar://problem/5969992> JSProfiler: Remove the recursion limit in the
8052         profiler
8053         since once the limit is removed calling sort on a node will only sort
8054         that node's children not the entire sub-tree of that node.
8056         * page/JavaScriptProfile.cpp: All of these functions were moved from 
8057         JavaScriptProfileNode.
8058         (WebCore::sortTotalTimeDescending):
8059         (WebCore::sortTotalTimeAscending):
8060         (WebCore::sortSelfTimeDescending):
8061         (WebCore::sortSelfTimeAscending):
8062         (WebCore::sortCallsDescending):
8063         (WebCore::sortCallsAscending):
8064         (WebCore::sortFunctionNameDescending):
8065         (WebCore::sortFunctionNameAscending):
8066         (WebCore::ProfileClass):
8067         * page/JavaScriptProfileNode.cpp:
8068         (WebCore::ProfileNodeClass):
8069         * page/inspector/ProfileView.js: Change uses of JavaScriptProfileNode
8070         for sorting to JavaScriptProfile.
8072 2008-06-02  Dan Bernstein  <mitz@apple.com>
8074         Reviewed by Oliver Hunt.
8076         - fix more cases of https://bugs.webkit.org/show_bug.cgi?id=19344
8077           <rdar://problem/5977300> Regression: Shadow offsets seem to have changed in 10.5.3 in canvas
8079         Tests: fast/canvas/shadow-offset-1.html
8080                fast/canvas/shadow-offset-2.html
8081                fast/canvas/shadow-offset-3.html
8082                fast/canvas/shadow-offset-4.html
8083                fast/canvas/shadow-offset-5.html
8084                fast/canvas/shadow-offset-6.html
8085                fast/canvas/shadow-offset-7.html
8087         * html/CanvasRenderingContext2D.cpp:
8088         (WebCore::adjustedShadowSize): Added this helper function.
8089         (WebCore::CanvasRenderingContext2D::setShadow): Changed to call
8090         adjustedShadowSize().
8091         (WebCore::CanvasRenderingContext2D::applyShadow): Ditto.
8093 2008-06-02  Julien Chaffraix  <jchaffraix@webkit.org>
8095         Reviewed by Darin.
8097         Bug 18066: REGRESSION: createAttribute throws NAMESPACE_ERR exception
8098         https://bugs.webkit.org/show_bug.cgi?id=18066
8100         Test: fast/dom/createAttribute-exception.html
8102         * dom/Document.cpp:
8103         (WebCore::Document::createAttributeNS):
8104         * dom/Document.h: Add a bool parameter shouldIgnoreNamespaceChecks
8105         to createNamespaceNS() used by createAttribute() to bypass namespace
8106         checking.
8108 2008-06-02  Darin Adler  <darin@apple.com>
8110         Reviewed by John Sullivan.
8112         - fix https://bugs.webkit.org/show_bug.cgi?id=18799
8113           apl.aip.org menu does not work (property names should be case sensitive)
8114           <rdar://problem/5900484>
8116         Test: fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html
8118         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
8119         (WebCore::hasCSSPropertyNamePrefix): Tweak implementation a tiny bit for
8120         improved performance when the first character does not match.
8121         (WebCore::cssPropertyName): Reject property names with a leading uppercase
8122         letter.
8124 2008-06-02  Darin Adler  <darin@apple.com>
8126         Reviewed by Mitz.
8128         - fix https://bugs.webkit.org/show_bug.cgi?id=19358
8129           <rdar://problem/5951986> first line break in <pre> elements ignored
8130           (chess boards at http://rankzero.de/)
8132         Test: fast/parser/pre-first-line-break.html
8134         * editing/markup.cpp:
8135         (WebCore::appendStartMarkup): Fix handling of <listing>. Not part of the
8136         bug mentioned above, but uncovered by the regression test.
8138         * html/HTMLTokenizer.cpp:
8139         (WebCore::HTMLTokenizer::write): Clear the "discardLF" flag when
8140         processing a new tag.
8142 2008-06-02  Timothy Hatcher  <timothy@apple.com>
8144         Fixes a bug where only the last breakpoint would be hit after reloading
8145         the page. Also fixes a bug where disabled breakpoints would be hit
8146         after reloading the page.
8148         Reviewed by Darin Adler.
8150         * page/inspector/BreakpointsSidebarPane.js:
8151         (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint): Don't call
8152         InspectorController.addBreakpoint() unless the breakpoint is enabled.
8153         * page/inspector/ScriptsPanel.js:
8154         (WebInspector.ScriptsPanel.prototype.addScript): Move the addBreakpoint()
8155         call inside the for loop so each breakpoint is added. Also check the
8156         breakpoint's enabled state before calling addBreakpoint().
8158 2008-06-02  Timothy Hatcher  <timothy@apple.com>
8160         Fixes a bug where the line highlight and the execution line were conflicting.
8161         The line highlight no longer shows up when the execution line changes, only
8162         when showResource or showScript is called with a line number.
8164         Reviewed by Darin Adler.
8166         * page/inspector/ScriptsPanel.js:
8167         (WebInspector.ScriptsPanel.prototype.showScript): Pass true for shouldHighlightLine.
8168         (WebInspector.ScriptsPanel.prototype.showResource): Ditto.
8169         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Added a shouldHighlightLine
8170         argument that triggers the highlightLine() call on the SourceFrame.
8171         (WebInspector.ScriptsPanel.prototype._goBack): Pass false for shouldHighlightLine since
8172         we need to pass true for fromBackForwardAction.
8173         (WebInspector.ScriptsPanel.prototype._goForward): Ditto.
8175 2008-06-02  Timothy Hatcher  <timothy@apple.com>
8177         Bring the Web Inspector forward when the debugger pauses.
8179         https://bugs.webkit.org/show_bug.cgi?id=19095
8181         Reviewed by Darin Adler.
8183         * page/inspector/ScriptsPanel.js:
8184         (WebInspector.ScriptsPanel.prototype.debuggerPaused): Call window.focus() and
8185         make the Scripts panel the current panel.
8187 2008-06-02  Jan Michael Alonzo  <jmalonzo@webkit.org>
8189         Reviewed by Alp Toker.
8191         Build WebCore GTK+ sources as part of WebCore, not WebKit.
8192         Split common and GTK+-specific sources into separate file lists.
8194         * GNUmakefile.am:
8196 2008-05-30  Tor Arne Vestbø  <tavestbo@trolltech.com>
8198         Reviewed by Simon.
8200         Implement basic media element controls for the QtWebKit port.
8202         * platform/qt/RenderThemeQt.cpp:
8203         (WebCore::WorldMatrixTransformer::WorldMatrixTransformer):
8204         (WebCore::WorldMatrixTransformer::~WorldMatrixTransformer):
8205         (WebCore::RenderThemeQt::getMediaElementFromRenderObject):
8206         (WebCore::RenderThemeQt::paintMediaBackground):
8207         (WebCore::RenderThemeQt::getMediaControlForegroundColor):
8208         (WebCore::RenderThemeQt::paintMediaFullscreenButton):
8209         (WebCore::RenderThemeQt::paintMediaMuteButton):
8210         (WebCore::RenderThemeQt::paintMediaPlayButton):
8211         (WebCore::RenderThemeQt::paintMediaSeekBackButton):
8212         (WebCore::RenderThemeQt::paintMediaSeekForwardButton):
8213         (WebCore::RenderThemeQt::paintMediaSliderTrack):
8214         (WebCore::RenderThemeQt::paintMediaSliderThumb):
8215         (WebCore::RenderThemeQt::adjustSliderThumbSize):
8216         * platform/qt/RenderThemeQt.h:
8217         * platform/qt/html4-adjustments-qt.css:
8219 2008-05-30  Tor Arne Vestbø  <tavestbo@trolltech.com>
8221         Reviewed by Simon.
8223         Change default styling of media elements to allow controls
8224         to be placed at any position within the media element.
8226         * css/html4.css:
8228 2008-05-30  Tor Arne Vestbø  <tavestbo@trolltech.com>
8230         Reviewed by Simon.
8232         Use intrinsic size for media elements with no natural size.
8234         * rendering/RenderVideo.cpp:
8235         (WebCore::RenderVideo::videoSizeChanged):
8237 2008-05-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
8239         Reviewed by Simon.
8241         Allow platform specific adjustments to the default style sheet.
8243         Clients will change the #ifdef in RenderTheme.cpp and implement
8244         any platform specific adjustments in RenderThemeXXX.cpp, either
8245         by loading a file as the Qt port does, or by modifying the style
8246         directly.
8248         * WebCore.pro: Add new resource file
8249         * css/CSSStyleSelector.cpp:
8250         (WebCore::loadDefaultStyle): adjust default stylesheet
8251         * platform/qt/RenderThemeQt.cpp:
8252         (WebCore::RenderTheme::adjustDefaultStyleSheet): Qt adjustments
8253         * platform/qt/WebCoreResources.qrc: Added.
8254         * platform/qt/html4-adjustments-qt.css: Added.
8255         * rendering/RenderTheme.cpp: Default adjustments (none)
8256         * rendering/RenderTheme.h:
8258 2008-06-02  Siraj Razick  <siraj.razick@collabora.co.uk>
8260         Reviewed by Simon
8262         Allow button fonts to scale based on the text size multiplier.
8264         https://bugs.webkit.org/show_bug.cgi?id=19251
8266         * platform/qt/RenderThemeQt.cpp:
8267         (WebCore::RenderThemeQt::adjustButtonStyle):
8269 2008-06-01  Rob Buis  <buis@kde.org>
8271         Reviewed by Darin.
8273         https://bugs.webkit.org/show_bug.cgi?id=15823
8274         getPropertyValue for border returns null, should compute the shorthand value
8276         Compute the value for the border shorthand property by computing
8277         its shorthand subproperties.
8279         Test: fast/css/getPropertyValue-border.html
8281         * css/CSSMutableStyleDeclaration.cpp:
8282         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
8283         (WebCore::CSSMutableStyleDeclaration::getCommonValue):
8284         * css/CSSMutableStyleDeclaration.h:
8286 2008-06-01  Dan Bernstein  <mitz@apple.com>
8288         Reviewed by Darin Adler.
8290         - fix https://bugs.webkit.org/show_bug.cgi?id=19344
8291           <rdar://problem/5977300> Regression: Shadow offsets seem to have changed in 10.5.3 in canvas
8293         Test: fast/canvas/shadow-offset.html
8295         * html/CanvasRenderingContext2D.cpp:
8296         (WebCore::CanvasRenderingContext2D::applyShadow): Slightly increase the
8297         magnitude of the offsets passed to CGContextSetShadow* to ensure that
8298         the end result after truncation is the desired integer offsets. This is
8299         the same workaround for <rdar://problem/5539388> that is used in
8300         GraphicsContext::setShadow(). Also correct a recent regression where
8301         shadow Y offsets were flipped.
8303 2008-05-31  Maciej Stachowiak  <mjs@apple.com>
8305         Reviewed by Sam.
8307         - avoid assertion in updateDocument() when running debug
8309         * bindings/js/kjs_proxy.cpp:
8310         (WebCore::KJSProxy::updateDocument): Exit early if the document is null. We
8311         don't need to update in this case.
8313 2008-05-30  Dan Bernstein  <mitz@apple.com>
8315         Reviewed by Darin Adler.
8317         - fix https://bugs.webkit.org/show_bug.cgi?id=19278
8318           <rdar://problem/5968621> REGRESSION (r31114-r31132): image float disappears on refresh
8320         Test: fast/dynamic/float-in-trailing-whitespace-after-last-line-break.html
8322         * rendering/bidi.cpp:
8323         (WebCore::RenderBlock::layoutInlineChildren): Ensured that floats
8324         occurring in trailing whitespace after a line break are added to the
8325         last line's floats vector.
8327 2008-05-30  Timothy Hatcher  <timothy@apple.com>
8329         Implements the back and forward buttons in the Scripts panel.
8331         Reviewed by Adam Roben.
8333         * page/inspector/ScriptsPanel.js:
8334         (WebInspector.ScriptsPanel): Add the back and forward button elements
8335         and remove the FIXMEs.
8336         (WebInspector.ScriptsPanel.prototype.reset): Reset _backForwardList
8337         and _currentBackForwardIndex. Then call _updateBackAndForwardButtons().
8338         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
8339         Added a fromBackForwardAction argument. If fromBackForwardAction is false
8340         then update the _currentBackForwardIndex and _backForwardList.
8341         (WebInspector.ScriptsPanel.prototype._updateBackAndForwardButtons):
8342         Update the disabled state of the buttons.
8343         (WebInspector.ScriptsPanel.prototype._goBack): Update the _currentBackForwardIndex
8344         and call _showScriptOrResource() and _updateBackAndForwardButtons().
8345         (WebInspector.ScriptsPanel.prototype._goForward): Ditto.
8347 2008-05-30  Timothy Hatcher  <timothy@apple.com>
8349         Made clicking a Console message URL originating from a JavaScript
8350         source show the Resource in the Scripts panel. This only happens
8351         when the debugger is attached.
8353         Reviewed by Adam Roben.
8355         * page/inspector/Console.js:
8356         (WebInspector.Console.prototype._formaterror):
8357         Add a preferredPanel of "scripts".
8358         (WebInspector.ConsoleMessage.prototype.toMessageElement):
8359         Add a preferredPanel of "scripts" when the source is JS.
8360         * page/inspector/ScriptView.js:
8361         (WebInspector.ScriptView.prototype.highlightLine): Added.
8362         Calls through to the sourceFrame. Matches SourceView.
8363         * page/inspector/ScriptsPanel.js:
8364         (WebInspector.ScriptsPanel.prototype.canShowResource): Added.
8365         Returns true if the debugger is attached and the resource has scripts.
8366         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Call
8367         highlightLine on the view.
8368         * page/inspector/inspector.js:
8369         (WebInspector.documentClick): Pass the preferredPanel to showResourceForURL.
8370         (WebInspector.showResourceForURL): Resolve the preferredPanel from the string
8371         passed in. Checks if the panel implements showResource and canShowResource.
8372         Reverts to the Resources panel if any of that is false or not implemented.
8374 2008-05-30  Timothy Hatcher  <timothy@apple.com>
8376         Fixed an "undefined type" exception that was being thrown when
8377         selecting a eval script from the file menu in the Scripts panel.
8378         This would also happen when stepping into an eval which would
8379         break other parts of the Inspector interface.
8381         Reviewed by Adam Roben.
8383         * page/inspector/ScriptsPanel.js:
8384         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
8385         Use the scriptOrResource variable instead of the undefined script variable.
8387 2008-05-30  Timothy Hatcher  <timothy@apple.com>
8389         Made the starting line number of scripts be 1-based throughout the engine.
8390         This cleans up script line numbers so they are all consistent now and fixes
8391         some cases where script execution was shown as off by one line in the debugger.
8393         Doing this also exposed a bug where JSLazyEventListener created in XHML or SVG
8394         documents would always have a line number of 0. So this change fixed that bug
8395         to pass all the SVG and XHTML tests.
8397         All layout tests pass.
8399         Reviewed by Oliver Hunt.
8401         * bindings/js/kjs_events.cpp:
8402         (WebCore::JSLazyEventListener::JSLazyEventListener): Set the line number to 1
8403         if it was passed in as 0. This can happen when listeners are created with
8404         a setAttribute call from JavaScript.
8405         (WebCore::JSLazyEventListener::parseCode): Add a FIXME about the URL being
8406         incorrect when listeners are created with a setAttribute call from JavaScript.
8407         * bindings/js/kjs_events.h: Remove the default value for lineNumber, since no
8408         callers need it.
8409         * bindings/objc/WebScriptObject.mm:
8410         (-[WebScriptObject evaluateWebScript:]): Pass a line number of 1 instead of 0
8411         to Interpreter::evaluate().
8412         * bridge/NP_jsobject.cpp:
8413         (_NPN_Evaluate): Ditto.
8414         * bridge/jni/jni_jsobject.mm:
8415         (JavaJSObject::eval): Ditto.
8416         * dom/XMLTokenizer.cpp:
8417         (WebCore::XMLTokenizer::startElementNs): Call KJSProxy::setEventHandlerLineno()
8418         around the call to handleElementAttributes, so any JSLazyEventListener created
8419         from those attributes have line numbers.
8420         (WebCore::XMLTokenizer::endElementNs): Remove a minus 1 of the line number.
8421         (WebCore::XMLTokenizer::notifyFinished): Pass a line number of 1 instead of 0.
8422         (WebCore::XMLTokenizer::parseEndElement): Remove a minus 1 of the line number.
8423         * html/HTMLScriptElement.cpp:
8424         (WebCore::HTMLScriptElement::evaluateScript): Add a FIXME about the starting
8425         line number being incorrect in some cases when this function is called.
8426         * html/HTMLTokenizer.cpp:
8427         (WebCore::HTMLTokenizer::parseSpecial): Add a plus 1 to the line number when
8428         setting scriptStartLineno so it is 1-based. Same for calling setEventHandlerLineno().
8429         (WebCore::HTMLTokenizer::processToken): Ditto.
8430         * html/HTMLTokenizer.h: Change the default line number on scriptExecution() to 1 from 0.
8431         * loader/FrameLoader.cpp:
8432         (FrameLoader::executeIfJavaScriptURL): Pass a line number of 1 instead of 0 to executeScript().
8434 2008-05-30  Maciej Stachowiak  <mjs@apple.com>
8436         Reviewed by Oliver (earlier version reviewed by Alexey).
8438         - speculative fix for "REGRESSION(r34143?): Frequent crash while browsing"
8439         https://bugs.webkit.org/show_bug.cgi?id=19285
8440         
8441         ("This Time for Sure" Edition)
8443         I'm pretty sure this fixes it but I have not been able to
8444         reproduce and am unsure if my theory of the bug is right.
8446         I belive the bug was because JSDOMWindowBase accessed
8447         JSDOMWindowShell in its destructor to remove itself from a
8448         hashtable, but GC destructor order is not guaranteed, so the
8449         hashtable may have been freed already. This patch changes things
8450         so that a non-GC object (the KJSProxy) does the tracking of live
8451         window objects for a frame. JSDOMWindowBase can null check the frame
8452         pointer to verify if it is still good.
8453         
8454         In addition, we must create a similar setup between DOMWindow and
8455         Frame; since the DOMWindow of a given frame can now change over
8456         time, we must ensure that the Frame disconnects every live
8457         DOMWindow when destroyed, not just the last.
8459         * bindings/js/JSDOMWindowBase.cpp:
8460         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
8461         * bindings/js/JSDOMWindowShell.cpp:
8462         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
8463         * bindings/js/JSDOMWindowShell.h:
8464         (WebCore::JSDOMWindowShell::setWindow):
8465         * bindings/js/kjs_proxy.cpp:
8466         (WebCore::KJSProxy::clear):
8467         (WebCore::KJSProxy::initScript):
8468         (WebCore::KJSProxy::updateDocument):
8469         * bindings/js/kjs_proxy.h:
8470         (WebCore::KJSProxy::clearFormerWindow):
8471         * page/DOMWindow.cpp:
8472         (WebCore::DOMWindow::~DOMWindow):
8473         * page/Frame.cpp:
8474         (WebCore::Frame::~Frame):
8475         (WebCore::Frame::setDocument):
8476         (WebCore::Frame::clearDOMWindow):
8477         (WebCore::Frame::clearFormerDOMWindow):
8478         * page/Frame.h:
8479         * page/FramePrivate.h:
8481 2008-05-30  Dan Bernstein  <mitz@apple.com>
8483         Reviewed by Darin Adler and Dave Hyatt.
8485         - eliminate excessive repainting when an object's final position
8486           after layout is unchanged
8488         * rendering/RenderBlock.cpp:
8489         (WebCore::RenderBlock::layoutBlockChildren): Removed the full repaint
8490         for the case that the final position is unchanged but the position at
8491         which an intermediate layout occurred was different. Any repainting
8492         done during the intermediate layout would have happened at the object's
8493         initial (and also final) coordinates, since layoutDelta is factored
8494         into repaint rect calculations.
8496 2008-05-30  Chris Fleizach  <cfleizach@apple.com>
8498         Reviewed by Beth Dakin.
8500         <rdar://problem/5959478> r34079: AX: crash at stringForReplacedNode
8502         * page/AccessibilityObject.cpp:
8503         (WebCore::stringForReplacedNode):
8505 2008-05-30  Tor Arne Vestbø  <tavestbo@trolltech.com>
8507         Reviewed by Simon.
8509         Fix the build dependencies for the Qt build. Don't generate
8510         SVGCSSPropertyNames.cpp for every build.
8512         * WebCore.pro: The output file was renamed, so the compiler rule needs
8513         to be adjusted in order for qmake to generate correct depdencies.
8515 2008-05-30  Maciej Stachowiak  <mjs@apple.com>
8517         Revert fix for 19285, it just caused more crashes and I need time
8518         to fix it properly.
8520         * bindings/js/JSDOMWindowBase.cpp:
8521         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
8522         * bindings/js/JSDOMWindowShell.cpp:
8523         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
8524         (WebCore::JSDOMWindowShell::updateDocument):
8525         * bindings/js/JSDOMWindowShell.h:
8526         (WebCore::JSDOMWindowShell::setWindow):
8527         (WebCore::JSDOMWindowShell::clearFormerWindow):
8528         * bindings/js/kjs_proxy.cpp:
8529         (WebCore::KJSProxy::clear):
8530         (WebCore::KJSProxy::initScript):
8531         * bindings/js/kjs_proxy.h:
8532         * page/Frame.cpp:
8533         (WebCore::Frame::setDocument):
8535 2008-05-30  Adam Treat  <treat@kde.org>
8537         Reviewed by Simon.
8539         Fix a huge memory leak by ensuring that on application shutdown
8540         the shared timer is fired one last time if it is active. This
8541         ensures that the GCController timer is fired at the end to free
8542         references to JavaScript objects.
8544         * platform/qt/SharedTimerQt.h:
8545         (WebCore::SharedTimerQt::cleanup):
8546         (WebCore::SharedTimerQt::inst):
8548 2008-05-30  Alexey Proskuryakov  <ap@webkit.org>
8550         Reviewed by Darin.
8552         http://bugs.webkit.org/show_bug.cgi?id=7466
8553         <rdar://problem/4657563> Use of Ctrl as access key modifier conflicts with Mac OS X
8554         emacs-style keybindings
8556         * page/EventHandler.cpp:
8557         (WebCore::EventHandler::handleAccessKey): Use Ctrl+Option for access keys on Mac OS X.
8559 2008-05-30  Maciej Stachowiak  <mjs@apple.com>
8561         Reviewed by Alexey.
8562         
8563         - speculative fix for "REGRESSION(r34143?): Frequent crash while browsing"
8564         https://bugs.webkit.org/show_bug.cgi?id=19285
8566         I'm pretty sure this fixes it but I have not been able to
8567         reproduce and am unsure if my theory of the bug is right.
8569         I belive the bug was because JSDOMWindowBase accessed
8570         JSDOMWindowShell in its destructor to remove itself from a
8571         hashtable, but GC destructor order is not guaranteed, so the
8572         hashtable may have been freed already. This patch changes things
8573         so that a non-GC object (the KJSProxy) does the tracking of live
8574         window objects for a frame. JSDOMWindowBase can null check the frame
8575         pointer to verify if it is still good.
8576         
8577         * bindings/js/JSDOMWindowBase.cpp:
8578         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
8579         * bindings/js/JSDOMWindowShell.cpp:
8580         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
8581         * bindings/js/JSDOMWindowShell.h:
8582         (WebCore::JSDOMWindowShell::setWindow):
8583         * bindings/js/kjs_proxy.cpp:
8584         (WebCore::KJSProxy::clear):
8585         (WebCore::KJSProxy::initScript):
8586         (WebCore::KJSProxy::updateDocument):
8587         * bindings/js/kjs_proxy.h:
8588         (WebCore::KJSProxy::clearFormerWindow):
8589         * page/Frame.cpp:
8590         (WebCore::Frame::setDocument):
8592 2008-05-29  Chris Fleizach  <cfleizach@apple.com>
8594         Reviewed by Darin Adler.
8596         <rdar://problem/4783102> Radio button/checkbox embedded with <label> tag should combine the text and the label as a single element
8597         <rdar://problem/5091386> Seed: VO reads form labels twice in Safari
8599         * page/AccessibilityObject.cpp:
8600         (WebCore::AccessibilityObject::titleUIElement):
8601         * page/AccessibilityObject.h:
8602         (WebCore::AccessibilityObject::isControl):
8603         * page/AccessibilityRenderObject.cpp:
8604         (WebCore::AccessibilityRenderObject::isControl):
8605         (WebCore::AccessibilityRenderObject::labelElementContainer):
8606         (WebCore::AccessibilityRenderObject::title):
8607         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
8608         (WebCore::AccessibilityRenderObject::elementRect):
8609         (WebCore::AccessibilityRenderObject::titleUIElement):
8610         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
8611         (WebCore::AccessibilityRenderObject::roleValue):
8612         * page/AccessibilityRenderObject.h:
8613         * page/mac/AccessibilityObjectWrapper.mm:
8614         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
8615         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
8617 2008-05-29  Timothy Hatcher  <timothy@apple.com>
8619         Fixes the regression where image resources don't have a preview icon.
8621         https://bugs.webkit.org/show_bug.cgi?id=18500
8623         Reviewed by Adam Roben.
8625         * page/inspector/ResourcesPanel.js:
8626         (WebInspector.ResourceSidebarTreeElement): Call createIconElement before
8627         calling the superclass.
8628         (WebInspector.ResourceSidebarTreeElement.prototype.createIconElement):
8629         Create an iconElement, if the category is images then make a div that
8630         contains a preview image. Otherwise just make an img element. If there
8631         was a previous iconElement, then replace it.
8632         (WebInspector.ResourceSidebarTreeElement.prototype.refresh): Call
8633         createIconElement if the category changed.
8634         * page/inspector/SidebarTreeElement.js:
8635         (WebInspector.SidebarTreeElement): Create an iconElement if one hasn't
8636         been made already by a subclass.
8637         (WebInspector.SidebarTreeElement.prototype.onattach): Append the iconElement
8638         instead of creating one each time.
8639         * page/inspector/inspector.css: New and updated style rules.
8641 2008-05-29  Timothy Hatcher  <timothy@apple.com>
8643         Removes a use of the internal _childrenListNode property by adding
8644         a getter/setter for smallChildren to SidebarSectionTreeElement.
8646         Reviewed by Adam Roben.
8648         * page/inspector/ResourcesPanel.js:
8649         (WebInspector.ResourcesPanel.prototype._toggleLargerResources):
8650         Toggle smallChildren on the resourcesTreeElement instead of setting
8651         the style class directly.
8652         * page/inspector/SidebarTreeElement.js:
8653         (WebInspector.SidebarSectionTreeElement.prototype.smallChildren):
8654         Sets or removes the small class on the _childrenListNode.
8656 2008-05-29  Timothy Hatcher  <timothy@apple.com>
8658         Fixes a bug where the className would be reset for Resource
8659         tree elements and the selected state would be lost. This could
8660         happen when sorting the resources.
8662         https://bugs.webkit.org/show_bug.cgi?id=19211
8664         Reviewed by Adam Roben.
8666         * page/inspector/ResourcesPanel.js:
8667         (WebInspector.ResourceSidebarTreeElement.prototype.refresh): Call
8668         removeMatchingStyleClasses to remove previous category classes instead
8669         of setting the whole className directly.
8670         * page/inspector/utilities.js:
8671         (Element.prototype.removeStyleClass): Moved code to
8672         removeMatchingStyleClasses and call removeMatchingStyleClasses.
8673         (Element.prototype.removeMatchingStyleClasses): Added. Code moved from
8674         removeStyleClass and don't escape the string.
8676 2008-05-29  David Hyatt  <hyatt@apple.com>
8678         Improve the performance of the GUIMark benchmark by 2x in the CoreGraphics code path.
8680         Whenever a foreground image changes size rapidly, we will now dynamically shift into rendering it
8681         using low quality scaling.  Once the animation completes, the image will repaint at high quality.
8682         Scaled images will still render at high quality by default, only shifting into low quality if
8683         the scale factor is rapidly changing.  This change raises GUIMark from 21fps to 34fps on my machine.
8685         Rewrite the Image draw method to avoid the use of throwaway CG subimages.  Instead the entire image is
8686         always drawn (with the appropriate clip and scale set up to make sure the correct subimage portion shows up
8687         in the destination rect).  This change raises GUIMark from 34fps to 43fps on my machine.
8689         Reviewed by Darin
8691         * platform/graphics/GraphicsContext.cpp:
8692         (WebCore::GraphicsContext::drawImage):
8693         * platform/graphics/cg/ImageCG.cpp:
8694         (WebCore::BitmapImage::draw):
8695         * rendering/RenderImage.cpp:
8696         (WebCore::RenderImageScaleData::RenderImageScaleData):
8697         (WebCore::RenderImageScaleData::~RenderImageScaleData):
8698         (WebCore::RenderImageScaleData::size):
8699         (WebCore::RenderImageScaleData::time):
8700         (WebCore::RenderImageScaleData::useLowQualityScale):
8701         (WebCore::RenderImageScaleData::hiqhQualityRepaintTimer):
8702         (WebCore::RenderImageScaleData::setSize):
8703         (WebCore::RenderImageScaleData::setTime):
8704         (WebCore::RenderImageScaleData::setUseLowQualityScale):
8705         (WebCore::RenderImageScaleObserver::shouldImagePaintAtLowQuality):
8706         (WebCore::RenderImageScaleObserver::imageDestroyed):
8707         (WebCore::RenderImageScaleObserver::highQualityRepaintTimerFired):
8708         (WebCore::RenderImage::highQualityRepaintTimerFired):
8709         (WebCore::RenderImage::~RenderImage):
8710         (WebCore::RenderImage::paintReplaced):
8711         * rendering/RenderImage.h:
8713 2008-05-29  Justin Garcia  <justin.garcia@apple.com>
8715         Reviewed by Eric.
8717         <rdar://problem/5847330> REGRESSION CrashTracer: [USER] 536 crashes at WebCore::highestAncestor
8719         * editing/CompositeEditCommand.cpp:
8720         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Don't break out of an empty
8721         list item if its parent is non-editable, since doing so will move into non-editable content.
8722         * editing/DeleteSelectionCommand.cpp:
8723         (WebCore::DeleteSelectionCommand::initializePositionData): We want to prevent merges from
8724         table cells even if those table cells are non-editable.
8725         * editing/htmlediting.cpp:
8726         (WebCore::enclosingNodeOfType): Can now return non-editable nodes, for cases where the caller 
8727         isn't going to do editing in the returned node.
8728         * editing/htmlediting.h:
8730 2008-05-29  Anders Carlsson  <andersca@apple.com>
8732         Reviewed by Mitz.
8734         <rdar://problem/5971845>
8735         https://bugs.webkit.org/show_bug.cgi?id=19313
8736         Add version member to NPCocoaEvent
8737         
8738         * bridge/npapi.h:
8740 2008-05-29  Alexey Proskuryakov  <ap@webkit.org>
8742         Reviewed by Adam Roben.
8744         <rdar://problem/5960682> REGRESSION(r30535): Crashes on iExploder in checkForHeadCharset().
8746         I don't see how to make a reliable test, but iExploder catches this quickly.
8748         * loader/TextResourceDecoder.cpp:
8749         (WebCore::TextResourceDecoder::checkForHeadCharset): Correct the length passed to
8750         findIgnoringCase().
8752 2008-05-29  Peter Kasting  <zerodpx@gmail.com>
8754         Reviewed by Dave Hyatt.
8756         https://bugs.webkit.org/show_bug.cgi?id=19273
8757         Handle looping GIFs correctly (at least in the open source GIF decoder) even when
8758         the loop count doesn't appear in the initial data packets.
8760         * platform/graphics/BitmapImage.cpp:
8761         (WebCore::BitmapImage::cacheFrame):
8762         (WebCore::BitmapImage::startAnimation):
8763         (WebCore::BitmapImage::advanceAnimation):
8764         * platform/image-decoders/gif/GIFImageDecoder.cpp:
8765         (WebCore::GIFImageDecoder::GIFImageDecoder):
8766         (WebCore::GIFImageDecoder::repetitionCount):
8767         (WebCore::GIFImageDecoder::gifComplete):
8768         * platform/image-decoders/gif/GIFImageDecoder.h:
8770 2008-05-29  Brent Fulgham  <bfulgham@gmail.com>
8772         Reviewed by Alp Toker.
8774         http://bugs.webkit.org/show_bug.cgi?id=19284
8775         Correct Windows (Cairo) Build Regressions
8777         Correct small Windows (Cairo) build regressions in recent updates.
8779         * platform/graphics/SimpleFontData.h:  Correct build regression due
8780           to r32781 (additional use of m_syntheticBoldOffset in GDI code).
8781         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
8782           Correct build regression due to r31830 (change of clip signature
8783           to use FloatRect rather than IntRect).
8784         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
8785         (WebCore::SimpleFontData::platformInit):  Initialize
8786         m_syntheticBoldOffset
8787         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
8788         (WebCore::JPEGImageReader::JPEGImageReader):  Work around build
8789           error due to warnings about _setjmp treated as errors.
8790         * platform/image-decoders/png/PNGImageDecoder.cpp:  Work around
8791           build error due to warnings about _setjmp treated as errors.
8792         * platform/network/curl/ResourceHandleCurl.cpp:  Correct build error
8793           due to different order (and content) of include files when building
8794           with CoreFoundation (but not CoreGraphics).
8795         * platform/network/curl/ResourceHandleManager.cpp:
8796         (WebCore::ResourceHandleManager::setupPOST):  Correct build error
8797           due to Visual Studio compiler bug.
8799 2008-05-29  Alexey Proskuryakov  <ap@webkit.org>
8801         Reviewed by Darin.
8803         https://bugs.webkit.org/show_bug.cgi?id=19215
8804         REGRESSION: transformToDocument fails when xsl includes &#160;
8806         Test: fast/xsl/nbsp-in-stylesheet.html
8808         * editing/markup.cpp:
8809         (WebCore::appendAttributeValue):
8810         (WebCore::appendEscapedContent):
8811         (WebCore::escapeContentText):
8812         (WebCore::appendQuotedURLAttributeValue):
8813         (WebCore::appendNamespace):
8814         (WebCore::appendStartMarkup):
8815         (WebCore::appendDocumentType):
8816         (WebCore::createMarkup):
8817         Only escape non-breaking spaces in HTML documents. In Firefox, this behavior is also limited
8818         to innerHTML, but we don't have a separate code path for it, and do not necessarily want to.
8820         * page/Frame.cpp:
8821         (WebCore::Frame::documentTypeString):
8822         * dom/CDATASection.cpp:
8823         * dom/CDATASection.h:
8824         * dom/Comment.cpp:
8825         * dom/Comment.h:
8826         * dom/DocumentType.cpp:
8827         * dom/DocumentType.h:
8828         * dom/ProcessingInstruction.cpp:
8829         * dom/ProcessingInstruction.h:
8830         While at it, I also wanted to fix escaping for these nodes, but it turned out that FIXMEs were
8831         incorrect. So, I just moved their serialization to markup.cpp for consistency.
8833 2008-05-29  Maciej Stachowiak  <mjs@apple.com>
8835         Reviewed by Dave Hyatt.
8837         - speed up DHTML using lazy style resolution and renderer creation
8839         This change introduces the concept of "lazy attach" - when a node
8840         is lazy attached, then instead of resolving style and creating a
8841         renderer right away, we just mark it as needing a style recalc.
8842         
8843         The patch makes use of this mechanism when inserting nodes directly
8844         using DOM APIs from script. For now this is only done for the
8845         JavaScript language binding but could also be done for other
8846         bindings in the future.
8847         
8848         Lazy attach helps some common DHTML patterns - when a node is
8849         added to the DOM, and then subsequently changed in a
8850         style-affecting way, this causes an extra style recalc. This is a
8851         fairly common pattern so it is better to be lazy.
8852         
8853         * bindings/js/JSNodeCustom.cpp:
8854         (WebCore::JSNode::insertBefore): Request lazy attach.
8855         (WebCore::JSNode::replaceChild): ditto
8856         (WebCore::JSNode::appendChild): ditto
8857         * dom/ContainerNode.cpp:
8858         (WebCore::ContainerNode::insertBefore): Support lazy attach.
8859         (WebCore::ContainerNode::replaceChild): ditto
8860         (WebCore::ContainerNode::appendChild): ditto
8861         (WebCore::ContainerNode::detach): Clear "changed child" bit if still set.
8862         * dom/ContainerNode.h:
8863         * dom/Element.cpp:
8864         (WebCore::Element::recalcStyle): Adjusted to properly reattach a
8865         lazy-attached node.
8866         * dom/Node.cpp:
8867         (WebCore::Node::insertBefore): Extra parameter for lazy attach
8868         (still doesn't do anything).
8869         (WebCore::Node::replaceChild): ditto
8870         (WebCore::Node::appendChild): ditto
8871         (WebCore::Node::setChanged): Unrelated but obvious optimization -
8872         stop marking ancestor as having a changed child once we already reach
8873         an ancestor so marked.
8874         (WebCore::outermostLazyAttachedAncestor): Helper function for lazyAttach.
8875         (WebCore::Node::lazyAttach): Implement lazy attach.
8876         (WebCore::Node::canLazyAttach): Virtual method - true for most nodes.
8877         * dom/Node.h:
8878         * dom/Text.cpp:
8879         (WebCore::Text::recalcStyle): Properly handle the case of a reattached node.
8880         * html/HTMLEmbedElement.h:
8881         (WebCore::HTMLEmbedElement::canLazyAttach): Refuse lazy attach, since
8882         plugins and frames do important work at rederer creation time.
8883         * html/HTMLFrameElementBase.h:
8884         (WebCore::HTMLFrameElementBase::canLazyAttach): Refuse lazy attach, since
8885         plugins and frames do important work at rederer creation time.
8886         * html/HTMLFrameSetElement.cpp:
8887         (WebCore::HTMLFrameSetElement::recalcStyle): Change order so that
8888         reattach works properly.
8889         * html/HTMLObjectElement.h:
8890         (WebCore::HTMLObjectElement::canLazyAttach): Refuse lazy attach, since
8891         plugins and frames do important work at rederer creation time.
8892         * html/HTMLOptGroupElement.cpp:
8893         (WebCore::HTMLOptGroupElement::insertBefore): Pass along extra param.
8894         (WebCore::HTMLOptGroupElement::replaceChild): ditto
8895         (WebCore::HTMLOptGroupElement::appendChild): ditto
8896         * html/HTMLOptGroupElement.h:
8897         * html/HTMLSelectElement.cpp:
8898         (WebCore::HTMLSelectElement::insertBefore): Pass along extra param.
8899         (WebCore::HTMLSelectElement::replaceChild): ditto
8900         (WebCore::HTMLSelectElement::appendChild): ditto
8901         * html/HTMLSelectElement.h:
8902         * svg/SVGLocatable.cpp:
8903         (WebCore::SVGLocatable::getBBox): Add missing updateLayout call.
8904         * svg/SVGTextContentElement.cpp:
8905         (WebCore::SVGTextContentElement::getNumberOfChars): ditto
8906         (WebCore::SVGTextContentElement::getComputedTextLength): ditto
8907         (WebCore::SVGTextContentElement::getSubStringLength): ditto
8908         (WebCore::SVGTextContentElement::getStartPositionOfChar): ditto
8909         (WebCore::SVGTextContentElement::getEndPositionOfChar): ditto
8910         (WebCore::SVGTextContentElement::getExtentOfChar): ditto
8911         (WebCore::SVGTextContentElement::getRotationOfChar): ditto
8912         (WebCore::SVGTextContentElement::getCharNumAtPosition): ditto
8914 2008-05-28  Ada Chan  <adachan@apple.com>
8916         <rdar://problem/5957036> REGRESSION (r31960): 20-30% slowdown in i-Bench JavaScript test on XP Home
8917         Conditionalize the timer latency change (r31960) only for vista since it does not
8918         help xp anyway.
8920         Reviewed by Steve Falkenburg.
8922         * platform/win/SharedTimerWin.cpp:
8923         (WebCore::isRunningOnVistaOrLater):
8924         (WebCore::TimerWindowWndProc):
8925         (WebCore::setSharedTimerFireTime):
8927 2008-05-28  Anders Carlsson  <andersca@apple.com>
8929         Build fix.
8930         
8931         * storage/LocalStorage.cpp:
8932         (WebCore::LocalStorage::scheduleImport):
8934 2008-05-28  Anders Carlsson  <andersca@apple.com>
8936         Reviewed by Tim.
8938         <rdar://problem/5965960>
8939         CrashTracer: [USER] 4 crashes in Safari at libxml2.2.dylib: xmlGenericErrorDefaultFunc + 76
8940         
8941         Turns out that while libxml has two different error callbacks, they both use the same context, so we need to 
8942         set both error callbacks to prevent one of the error callbacks from using the context as a FILE pointer.
8943         
8944         * xml/XSLStyleSheet.cpp:
8945         (WebCore::XSLStyleSheet::parseString):
8946         * xml/XSLTProcessor.cpp:
8947         (WebCore::XSLTProcessor::genericErrorFunc):
8948         (WebCore::docLoaderFunc):
8949         * xml/XSLTProcessor.h:
8951 2008-05-28  Brady Eidson  <beidson@apple.com>
8953         Reviewed by Adam
8955         Fix hang I introduced to WebKit clients without their LocalStorage paths set
8956         Such as DRT...
8958         * storage/LocalStorage.cpp:
8959         (WebCore::LocalStorage::scheduleImport): Return a bool, namely to signify
8960           whether or not there is a LocalStorageThread to schedule the import on.
8961         * storage/LocalStorage.h:
8963         * storage/LocalStorageArea.cpp:
8964         (WebCore::LocalStorageArea::LocalStorageArea): If the scheduleImport failed,
8965           mark the imported flag as true so the LocalStorageArea doesn't wait around
8966           locking the main thread.
8968 2008-05-28  Anthony Ricaud  <rik24d@gmail.com>
8970         User stylesheets are now non-editable and displayed as user-stylesheets
8972         <https://bugs.webkit.org/show_bug.cgi?id=17602>
8973         <rdar://problem/5967637>
8975         Reviewed by Tim Hatcher.
8977         * English.lproj/localizedStrings.js: Added a string
8978         * page/inspector/StylesSidebarPane.js:
8980 2008-05-28  Anders Carlsson  <andersca@apple.com>
8982         Reviewed by Mitz.
8984         <rdar://problem/5819989> 
8985         Crash in WebKit!KJS::Window::printErrorMessage quitting Safari after pop up window on uk.real.com was closed
8987         Add null check for Frame::settings().
8988         
8989         * bindings/js/JSDOMWindowBase.cpp:
8990         (WebCore::JSDOMWindowBase::printErrorMessage):
8992 2008-05-27  Geoffrey Garen  <ggaren@apple.com>
8994         Reviewed by Tim Hatcher.
8996         Fixed https://bugs.webkit.org/show_bug.cgi?id=19183
8997         REGRESSION (r33979): Crash in DebuggerCallFrame::functionName when
8998         clicking button in returnEvent-crash.html
8999         
9000         Added implementations for willExecuteProgram and didExecuteProgram. They
9001         take care to update our call frame when entering and exiting programs,
9002         preventing us from keeping around a stale global frame after executing
9003         a program.
9004         
9005         eval programs now show up as "anonymous function" in a new scope. This
9006         is slightly better than what they used to do -- overwriting the current
9007         scope -- but obviously we can do better.
9009 2008-05-28  Brady Eidson  <beidson@apple.com>
9011         Reviewed by Dan Bernstein
9013         <rdar://problem/5946834> - LocalStorage threads appearing in apps that don't want them.
9015         Decided to fix this bug from a few different avenues to make sure we only create LocalStorage resources
9016         when we *really* want them.
9018         * page/DOMWindow.cpp:
9019         (WebCore::DOMWindow::localStorage): Account for the possibility that the LocalStorage object might be null.
9021         * storage/LocalStorage.cpp:
9022         (WebCore::LocalStorage::LocalStorage): Don't create the thread if there is no path name - we know we'll never
9023           be needing it when there is no file backing us on disk.
9024         (WebCore::LocalStorage::scheduleImport): Null check the thread, as it might not exist.
9025         (WebCore::LocalStorage::scheduleSync): Ditto
9027         * storage/LocalStorageThread.cpp:
9028         (WebCore::LocalStorageThread::localStorageThread): Clear the threadID after termination - clear way to signify
9029           that this thread is truly done.
9030         (WebCore::LocalStorageThread::scheduleImport): ASSERT that the queue is live, and the threadID exists
9031         (WebCore::LocalStorageThread::scheduleSync): Ditto
9032         (WebCore::LocalStorageThread::terminate): Don't schedule termination and wait for it to complete if the thread 
9033           isn't live.
9035 2008-05-28  Alexander Vassilev  <avasilev@voipgate.com>
9037         Reviewed by Kevin Ollivier.
9039         Rescale image to fit the destination rect so that we don't get a crash when drawing
9040         in a destination rect that's bigger than the image rect. Also adds an optimization for
9041         drawing an image that is a solid color.
9042         
9043         https://bugs.webkit.org/show_bug.cgi?id=18465
9045         * platform/graphics/wx/ImageWx.cpp:
9046         (WebCore::BitmapImage::draw):
9048 2008-05-27  Tor Arne Vestbø  <tavestbo@trolltech.com>
9050         Reviewed by Simon
9052         Close the video widget explicitly so we don't hang
9053         when exiting the application.
9055         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
9056         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
9058 2008-05-27  Justin Garcia  <justin.garcia@apple.com>
9060         Reviewed by Oliver.
9062         <rdar://problem/5803706> Pressing return at the end of a header doesn't break out of header (17460)
9063         
9064         It wasn't enough to break out of the header, to match other browsers we 
9065         also need to not preserve the typing style.
9067         * editing/InsertParagraphSeparatorCommand.cpp:
9068         (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion):
9069         (WebCore::InsertParagraphSeparatorCommand::doApply):
9070         * editing/InsertParagraphSeparatorCommand.h:
9072 2008-05-27  Timothy Hatcher  <timothy@apple.com>
9074         <rdar://problem/5966961> REGRESSION: Font previews in the Web
9075         Inspector always show in Lucida Grande (not the real font)
9077         Reviewed by Adam Roben.
9079         * page/inspector/FontView.js: Add a style element that loads the
9080         @font-face rule that is excepted by the preview element.
9082 2008-05-27  Timothy Hatcher  <timothy@apple.com>
9084         Fixes a regression where the Image and Font preview views do not
9085         size correctly.
9087         <rdar://problem/5966723> REGRESSION (r33991): Image and font previews
9088         are shrunken and can't be made larger (19281)
9090         Reviewed by Adam Roben.
9092         * page/inspector/FontView.js: Adjust the font size based only on the
9093         container width minus padding.
9094         * page/inspector/inspector.css: Updated styles for the image and
9095         font views.
9097 2008-05-27  Adam Roben  <aroben@apple.com>
9099         Fix Bug 19276: XHR resources are classified as "Other" until Inspector
9100         is closed and reopened
9102         <https://bugs.webkit.org/show_bug.cgi?id=19276>
9103         <rdar://problem/5965742>
9105         Reviewed by Tim Hatcher.
9107         * page/InspectorController.cpp:
9108         (WebCore::InspectorController::updateScriptResourceResponse): Moved
9109         code that updates the resource's type from here...
9110         (WebCore::InspectorController::updateScriptResourceType): ...to here.
9111         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
9112         Call updateScriptResourceType now that we know this resource was
9113         retrieved via an XHR.
9114         * page/InspectorController.h:
9116 2008-05-27  Timothy Hatcher  <timothy@apple.com>
9118         Removes a redundant call to InspectorController::stopDebugging().
9120         Rubber-stamped by Adam Roben.
9122         * page/InspectorController.cpp:
9123         (WebCore::InspectorController::showWindow):
9125 2008-05-27  Kevin McCullough  <kmccullough@apple.com>
9127         Reviewed by Tim.
9129         - Added and updated some manual test for the profiler.
9131         * manual-tests/inspector/profiler-test-anonymous-function-calls-eval.html:
9132         * manual-tests/inspector/profiler-test-apply.html:
9133         * manual-tests/inspector/profiler-test-call.html:
9134         * manual-tests/inspector/profiler-test-deep-recursion.html: Added.
9135         * manual-tests/inspector/profiler-test-simple-event-call.html: Added.
9137 2008-05-27  Kevin Ollivier  <kevino@theolliviers.com>
9139         wx build fix. Accidently left a couple fixes out of the previous commit.
9141         * webcore-base.bkl:
9143 2008-05-27  Kevin Ollivier  <kevino@theolliviers.com>
9145         wx build fix. Adding JSHTMLElementWrapperFactory.cpp.
9146         
9147         * WebCoreSources.bkl:
9149 2008-05-27  Ariya Hidayat  <ariya.hidayat@trolltech.com>
9151         Reviewed by Simon.
9153         Fix linking error (missing gdi32 and user32 libraries).
9155         * WebCore.pro:
9157 2008-05-27  Ariya Hidayat  <ariya.hidayat@trolltech.com>
9159         Reviewed by Simon.
9161         Update the WebKit.qrc so that Web Inspector is functional again.
9163         * page/inspector/WebKit.qrc:
9165 2008-05-26  Alp Toker  <alp@nuanti.com>
9167         Reviewed by Anders.
9169         http://bugs.webkit.org/show_bug.cgi?id=16495
9170         [GTK] Accessibility support with ATK/AT-SPI
9172         Implement basic action, text and editable text accessibility.
9174         Provide utility functions to simplify const string return and casting
9175         and add some more stubs.
9177         It's now possible to navigate and manipulate forms and text using
9178         assistive technologies.
9180         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
9181         (returnString):
9182         (core):
9183         * platform/gtk/LocalizedStringsGtk.cpp:
9184         (WebCore::AXButtonActionVerb):
9185         (WebCore::AXRadioButtonActionVerb):
9186         (WebCore::AXTextFieldActionVerb):
9187         (WebCore::AXCheckedCheckBoxActionVerb):
9188         (WebCore::AXUncheckedCheckBoxActionVerb):
9189         (WebCore::AXLinkActionVerb):
9190         (WebCore::imageTitle):
9192 2008-05-25  Maciej Stachowiak  <mjs@apple.com>
9194         Reviewed by Anders.
9196         - bind the window's "document" and "window" properties to static slots
9197         1.7% speedup on Acid3 test 26
9198         
9199         Only the "document" part matters for Acid3, but since I was doing
9200         this anyway, "window" also seemed like a good one to optimize.
9202         * bindings/js/JSDOMWindowBase.cpp:
9203         (WebCore::JSDOMWindowBase::JSDOMWindowBase): Allocate variable
9204         slots for document and window; but just put null in the document
9205         slot for now.
9206         (WebCore::JSDOMWindowBase::updateDocument): Fill in the document
9207         slot.        
9208         (WebCore::JSDOMWindowBase::~JSDOMWindowBase): Make our shell stop
9209         tracking us.
9210         * bindings/js/JSDOMWindowBase.h:
9211         * bindings/js/JSDOMWindowShell.cpp:
9212         (WebCore::JSDOMWindowShell::JSDOMWindowShell): Allocate HashSet
9213         for our still-not-dead inner windows.
9214         (WebCore::JSDOMWindowShell::updateDocument): Update all our
9215         inner windows ever (to make sure the update to the document
9216         property shows up everywhere).
9217         * bindings/js/JSDOMWindowShell.h:
9218         (WebCore::JSDOMWindowShell::setWindow): Update our hash.
9219         (WebCore::JSDOMWindowShell::clearFormerWindow): Ditto.
9220         * bindings/js/JSDocumentCustom.cpp:
9221         (WebCore::toJS): Don't set self as a property map property of
9222         the window, this is no longer necessary.
9223         * bindings/js/kjs_proxy.cpp:
9224         (WebCore::KJSProxy::initScript): Update document for the
9225         newly created window.
9226         * bindings/js/kjs_proxy.h:
9227         * page/Frame.cpp:
9228         (WebCore::Frame::setDocument): If the document is not null,
9229         update our window.
9231 2008-05-26  Anders Carlsson  <andersca@apple.com>
9233         Reviewed by Sam.
9235         This patch does two things:
9236         
9237         * It adds a toJSNewlyCreated function for creating JS wrappers for nodes where we know
9238         that the node doesn't have a wrapper. This avoids a hash lookup.
9239         
9240         * It adds toJSNewlyCreated methods for JSElement and JSText. 
9241         
9242         All in all this is a 4.3% speedup on Acid 3 test 26.
9243         
9244         * WebCore.vcproj/WebCore.vcproj:
9245         * WebCore.xcodeproj/project.pbxproj:
9246         * bindings/js/JSElementCustom.cpp:
9247         (WebCore::toJSNewlyCreated):
9248         * bindings/js/JSNodeCustom.cpp:
9249         (WebCore::createWrapper):
9250         (WebCore::toJSNewlyCreated):
9251         (WebCore::toJS):
9252         * bindings/js/JSTextCustom.cpp: Added.
9253         (WebCore::toJSNewlyCreated):
9254         * bindings/scripts/CodeGeneratorJS.pm:
9255         * dom/Document.idl:
9257 2008-05-26  Sam Weinig  <sam@webkit.org>
9259         Reviewed by Anders Carlsson.
9261         Inline the getOwnPropertySlot for JSNode, JSEventTargetNode, JSElement,
9262         and JSDocument for a 1-2% speedup on Acid 3 test 26.
9264         * bindings/js/JSEventTargetNode.cpp:
9265         * bindings/js/JSEventTargetNode.h:
9266         (WebCore::JSEventTargetNode::getOwnPropertySlot):
9267         (WebCore::JSEventTargetNode::getValueProperty):
9268         (WebCore::JSEventTargetNode::put):
9269         (WebCore::JSEventTargetNode::putValueProperty):
9270         * bindings/scripts/CodeGeneratorJS.pm:
9271         * dom/Document.idl:
9272         * dom/Element.idl:
9273         * dom/Node.idl:
9275 2008-05-26  Darin Adler  <darin@apple.com>
9277         Reviewed by Maciej.
9279         - https://bugs.webkit.org/show_bug.cgi?id=19239
9281         Removed code that would only useful if if there was any way to create an Entity
9282         node or if we populated EntityReference nodes. It's likely that we'll remove
9283         these node types entirely in some future version of WebKit, depending in part
9284         on what happens with these in HTML 5.
9286         1.8% speedup of Acid3 test 26.
9288         The only read-only nodes we ever create are EntityReference nodes.
9289         These are only created by explicit calls to the Document.createEntityReference
9290         function. Since the created nodes are read-only, there can be no children of
9291         these nodes, so no other types of nodes can be read-only despite the rule that
9292         makes descendants of Entity and EntityReference nodes read-only.
9294         * bindings/objc/DOM.mm: Removed unneeded include.
9296         * dom/Attr.cpp:
9297         (WebCore::Attr::setValue): Removed unnecessary isReadOnlyNode check.
9298         (WebCore::Attr::setNodeValue): Ditto.
9299         * dom/CharacterData.cpp:
9300         (WebCore::CharacterData::setData): Removed unnecessary isReadOnlyNode check.
9301         (WebCore::CharacterData::substringData): Don't initialize the ec variable before
9302         calling checkCharDataOperation, since that function already does it.
9303         (WebCore::CharacterData::appendData): Removed unnecessary isReadOnlyNode check.
9304         (WebCore::CharacterData::insertData): Don't initialize ec.
9305         (WebCore::CharacterData::deleteData): Ditto.
9306         (WebCore::CharacterData::replaceData): Ditto.
9307         (WebCore::CharacterData::setNodeValue): Removed now-misleading comment.
9308         (WebCore::CharacterData::checkCharDataOperation): Removed unnecessary
9309         isReadOnlyNode check.
9310         * dom/CharacterData.h: Made checkCharDataOperation private and non-virtual
9311         since it's never used or defined in any other class.
9313         * dom/Element.cpp:
9314         (WebCore::Element::setAttribute): Removed unneeded isReadOnlyNode check.
9316         * dom/Entity.cpp: Removed the entire contents of this file.
9318         * dom/Entity.h: Replaced the class with a stub -- just enough to keep the
9319         public bindings (JavaScript and Objective-C compiling), but the class is
9320         abstract and can't be instantianted.
9322         * dom/EntityReference.cpp: Removed unused constructor.
9323         (WebCore::EntityReference::cloneNode): Removed unneeded code and comments
9324         to clone nonexistent child nodes.
9325         * dom/EntityReference.h: Removed unused constructor and unnecessary override
9326         of childTypeAllowed, since no children are allowed at all.
9328         * dom/NamedAttrMap.cpp:
9329         (WebCore::NamedAttrMap::setNamedItem): Removed unneeded isReadOnlyNode check.
9330         (WebCore::NamedAttrMap::removeNamedItem): Ditto.
9331         * dom/NamedAttrMap.h: Removed isReadOnlyNode function.
9333         * dom/Node.cpp: Removed the old isReadOnlyNode function. It made lots of
9334         virtual nodeType function calls.
9335         * dom/Node.h:
9336         (WebCore::Node::isReadOnlyNode): Replaced the old virtual isReadOnlyNode
9337         function with a new simple non-virtual one.
9339         * dom/ProcessingInstruction.cpp:
9340         (WebCore::ProcessingInstruction::setData): Removed unneeded isReadOnlyNode
9341         check.
9343         * dom/Text.cpp:
9344         (WebCore::Text::splitText): Removed unneeded isReadOnlyNode check.
9345         (WebCore::Text::replaceWholeText): Removed unnecessary isReadOnlyNode assertion.
9346         There is no reason for this function to go out of its way to mention the
9347         read-only node issue when none of the other DOM mutation functions do.
9349 2008-05-26  Adam Barth  <abarth@webkit.org>
9351         Reviewed by Sam.
9353         Cleanup SecurityOrigin::canAccess.  Removed comment referring to an
9354         old version of the code.  Removed some useless code.
9356         * platform/SecurityOrigin.cpp:
9357         (WebCore::SecurityOrigin::canAccess):
9359 2008-05-26  Gwenole Beauchesne  <gbeauchesne@splitted-desktop.org>
9361         Reviewed by Alp Toker.
9363         * platform/gtk/LocalizedStringsGtk.cpp:
9364         (WebCore::contextMenuItemTagSelectAll): Fix GTK+ version check.
9366 2008-05-25  Chris Fleizach  <cfleizach@apple.com>
9368         Reviewed by David Harrison
9370         <rdar://problem/3582905> elements on separate pages need to be distinct
9372         * page/AccessibilityListBox.h:
9373         * page/AccessibilityObject.h:
9374         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
9375         * page/AccessibilityRenderObject.cpp:
9376         * page/AccessibilityRenderObject.h:
9378 2008-05-25  Maciej Stachowiak  <mjs@apple.com>
9380         Reviewed by Darin.
9382         - don't repaint nodes that are removed before layout
9383         4.3% speedup on Acid3 test 26
9385         Mitz points out the new flag can also be used to optimize other
9386         cases of needless repaint such as
9387         <https://bugs.webkit.org/show_bug.cgi?id=15129>.
9388         
9389         * rendering/RenderContainer.cpp:
9390         (WebCore::RenderContainer::removeChildNode): If the child has never had a layout,
9391         don't bother to repaint it, since there's nothing to dirty.
9392         * rendering/RenderObject.cpp:
9393         (WebCore::RenderObject::RenderObject): Initialize m_everHadLayout to false.
9394         (WebCore::RenderObject::setNeedsLayout): Set m_everHadLayout to true if we
9395         are being marked as not needing layout.
9396         * rendering/RenderObject.h:
9398 2008-05-25  Dan Bernstein  <mitz@apple.com>
9400         Reviewed by Darin Adler.
9402         - fix https://bugs.webkit.org/show_bug.cgi?id=19086
9403           <rdar://problem/5962254> REGRESSION (r28519-r28535): Caret doesn't paint past the right edge of a block
9405         Test: fast/repaint/caret-outside-block.html
9407         * editing/SelectionController.cpp:
9408         (WebCore::repaintRectForCaret): Restored this function which was removed
9409         in r28523, but changed it to inflate only the width.
9410         (WebCore::SelectionController::caretRepaintRect): Changed back to use
9411         repaintRectForCaret().
9412         (WebCore::SelectionController::recomputeCaretRect): Ditto.
9414 2008-05-25  Marco Barisione  <marco.barisione@collabora.co.uk>
9416         Reviewed by Alp Toker.
9418         http://bugs.webkit.org/show_bug.cgi?id=18940
9419         [CURL] Allow \n as line terminator for headers
9421         The line terminator for message-header fields should be CRLF. However,
9422         it is recommended to recognise as a line terminator also a single LF.
9424         * platform/network/curl/ResourceHandleManager.cpp:
9425         (WebCore::headerCallback): Allow headers to be terminated by "\n" and
9426         not just by "\r\n".
9428 2008-05-25  Jan Michael Alonzo  <jmalonzo@webkit.org>
9430         Reviewed by Alp Toker.
9432         WARNING: NO TEST CASES ADDED OR CHANGED
9434         http://bugs.webkit.org/show_bug.cgi?id=19142
9435         [Gtk] Remove build options --svg-experimental and --cross-document-messaging
9437         * GNUmakefile.am:
9439 2008-05-24  Rob Buis  <buis@kde.org>
9441         Reviewed by Eric.
9443         https://bugs.webkit.org/show_bug.cgi?id=18927
9444         Unify path data debug output
9446         Implement unified path data output for Mac svg tests.
9448         * platform/graphics/cg/PathCG.cpp:
9449         (WebCore::CGPathToCFStringApplierFunction):
9450         (WebCore::CFStringFromCGPath):
9452 2008-05-24  Timothy Hatcher  <timothy@apple.com>
9454         Fixes a huge leak with the Inspector where it was protecting
9455         a large object that was not being unprotected.
9457         <rdar://problem/5961999> Inspector protects a large JavaScript
9458         object and never unprotects it (large leak)
9460         Reviewed by Darin Adler.
9462         * page/InspectorController.cpp:
9463         (WebCore::InspectorController::inspectedPageDestroyed): Call close()
9464         and removed a call to stopDebugging() and moved it to close().
9465         (WebCore::InspectorController::close): Add stopDebugging() and
9466         stopUserInitiatedProfiling(). Removed an ASSERT and added an
9467         if statement before calling JSValueUnprotect. We don't always have
9468         a m_scriptContext and m_scriptObject.
9470 2008-05-24  Alp Toker  <alp@nuanti.com>
9472         Win32/gcc3 build fix in Pango font backend. UChar needs to be
9473         explicitly cast to gunichar2.
9475         * platform/graphics/gtk/FontGtk.cpp:
9476         (WebCore::utf16_to_utf8):
9478 2008-05-24  Timothy Hatcher  <timothy@apple.com>
9480         Fixes a crash where a new Inspector would get an old
9481         JSInspectedObjectWrapper for a user agent CSSStyleDeclaration.
9482         Since these style objects shared between pages, the wrapper cache
9483         would have a wrapper for the object still. But the wrapper was
9484         for a previous global object and with a disconnected frame. This
9485         fixes the wrapper cache so wrappers are remembered per global object
9486         and the object they are wrapping.
9488         <rdar://problem/5958567> repro crash in WebCore::Frame::keepAlive()
9489         opening inspector window after closing it
9491         Reviewed by Darin Adler.
9493         * bindings/js/JSInspectedObjectWrapper.cpp:
9494         (WebCore::wrappers): Return a GlobalObjectWrapperMap reference.
9495         (WebCore::JSInspectedObjectWrapper::wrap): Find the WrapperMap
9496         by the dynamicGlobalObject then find the wrapper for unwrappedObject.
9497         (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper): Changes
9498         how the wrapper is added to the wrapper cache.
9499         (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper): Changes
9500         how the wrapper is removed from the wrapper cache.
9501         * bindings/js/JSQuarantinedObjectWrapper.h:
9502         (WebCore::JSQuarantinedObjectWrapper:unwrappedGlobalObject): Added.
9504 2008-05-24  Alexey Proskuryakov  <ap@webkit.org>
9506         Reviewed by Maciej.
9508         Optimize Node::textContent() to avoid O(n^2) string appending behavior.
9510         1.6% speedup at Acid3 test 26.
9512         * WebCore.xcodeproj/project.pbxproj:
9513         * GNUmakefile.am:
9514         * WebCore.pro:
9515         * WebCoreSources.bkl:
9516         * WebCore.vcproj/WebCore.vcproj:
9517         * platform/text/StringBuilder.cpp: Added.
9518         (WebCore::StringBuilder::append):
9519         (WebCore::StringBuilder::toString):
9520         * platform/text/StringBuilder.h: Added.
9521         (WebCore::StringBuilder::StringBuilder):
9522         (WebCore::StringBuilder::isNull):
9523         Added a simple class to efficiently build a string by appending. Potentially, it can be
9524         extended to be more like java.lang.StringBuilder, but we don't need that much flexibility now.
9526         * dom/Node.cpp:
9527         (WebCore::Node::appendTextContent):
9528         (WebCore::Node::textContent):
9529         * dom/Node.h:
9530         Changed to use StringBuilder.
9532 2008-05-24  Julien Chaffraix  <jchaffraix@webkit.org>
9534         Reviewed by Eric.
9536         Bug 9191: JS*ElementWrapperFactory should be autogenerated
9537         https://bugs.webkit.org/show_bug.cgi?id=9191
9539         This is a first pass for generation of JS*ElementWrapperFactory, in the long term we should move the make_names.pl
9540         intelligence to the *.in files.
9542         - Add a new parameter to make_names.pl --wrapperFactory which works like --wrapper but generates the
9543         JS*ElementWrapperFactory files.
9545         - Removed JS*ElementWrapperFactory files in WebCore/bindings/js, replaced by the generated ones.
9547         - Updated the build systems to account for the previous changes.
9549         * DerivedSources.make:
9550         * GNUmakefile.am:
9551         * WebCore.pro:
9552         * WebCore.vcproj/WebCore.vcproj:
9553         * WebCore.xcodeproj/project.pbxproj:
9554         * WebCoreSources.bkl:
9555         * bindings/js/JSHTMLElementWrapperFactory.cpp: Removed.
9556         * bindings/js/JSHTMLElementWrapperFactory.h: Removed.
9557         * bindings/js/JSSVGElementWrapperFactory.cpp: Removed.
9558         * bindings/js/JSSVGElementWrapperFactory.h: Removed.
9559         * dom/make_names.pl:
9561 2008-05-24  Oleg Finkelshteyn <olegfink@gmail.com>
9563         Rubber-stamped and landed by Alexey.
9565         Build fix for gcc 4.3.
9567         * WebCore/page/Console.cpp:
9568         Add missing standard includes.
9570 2008-05-23  Timothy Hatcher  <timothy@apple.com>
9572         Fixes a bug where a timer would keep firing after the Inspector
9573         was closed. It turns out this timer wasn't needed anymore now
9574         that we can add an event listener to the inspected page and have
9575         it get called in the Inspector's context.
9577         https://bugs.webkit.org/show_bug.cgi?id=18577
9579         Reviewed by Mark Rowe.
9581         * page/inspector/ElementsPanel.js:
9583 2008-05-23  Anthony Ricaud  <rik24d@gmail.com>
9585         Changes the largerResourcesButton tooltip to toggle.
9587         https://bugs.webkit.org/show_bug.cgi?id=19210
9589         Reviewed by Tim Hatcher.
9591         * WebCore/English.lproj/localizedStrings.js: New string and clean an
9592         double string "Dock to main window."
9593         * WebCore/page/inspector/ResourcesPanel.js: Toggle the tooltip and
9594         change the default tooltip
9596 2008-05-23  Justin Garcia  <justin.garcia@apple.com>
9598         Reviewed by Darin.
9600         <rdar://problem/5939887> REGRESSION: With no selection, copy does not fire oncopy handler (affects CIFilterBrowser widget)
9601         
9602         Execute cut, copy and paste if they are invoked explicitly, via execCommand or -[WebView copy:], even
9603         if they are disabled.  This will fire oncopy, oncut and onpaste, but won't perform any other work, like
9604         writing to the pasteboard during cut/copy or deleting the selection during cut/paste.  This matches FF3,
9605         which actually goes further and fires oncopy on any Command-C.
9606         
9607         * editing/EditorCommand.cpp:
9608         (WebCore::CommandEntry::):
9609         (WebCore::Editor::Command::execute):
9611 2008-05-23  Timothy Hatcher  <timothy@apple.com>
9613         Adds a percentage toggle button the profile view status bar that
9614         changes the time columns between absolute and percents.
9616         https://bugs.webkit.org/show_bug.cgi?id=19224
9618         Reviewed by Kevin McCullough.
9620         * English.lproj/localizedStrings.js: New strings.
9621         * page/inspector/Images/percentButtons.png: Added.
9622         * page/inspector/ProfileView.js: Make the button and add it to the
9623         status bar. Make clicking toggle the showAsPercent* properties.
9624         * page/inspector/inspector.css: New styles.
9626 2008-05-23  Timothy Hatcher  <timothy@apple.com>
9628         Fixes a bug where excluding nodes from the profile could
9629         show an empty parent node.
9631         <rdar://problem/5959573> Excluding nodes from the profile could show
9632         an empty parent node
9634         Reviewed by Kevin McCullough.
9636         * page/inspector/ProfileView.js: Only say we have children if
9637         all of our children nodes are visible.
9639 2008-05-23  Anders Carlsson  <andersca@apple.com>
9641         Reviewed by Adam.
9643         Add IconFetcher to project.
9644         
9645         * WebCore.vcproj/WebCore.vcproj:
9647 2008-05-23  Timothy Hatcher  <timothy@apple.com>
9649         Fixes a bug where the Web Insepctor would jump back to
9650         Elements each time it is opened instead of staying at the
9651         last selected panel.
9653         <rdar://problem/5959475> Inspector jumps to the Elements panel
9654         each time it is opened, instead of staying at the previous panel
9656         Reviewed by Adam Roben.
9658         * page/InspectorController.cpp:
9659         (WebCore::InspectorController::setWindowVisible): Reset
9660         m_showAfterVisible to CurrentPanel, so the next time setWindowVisible
9661         is called it will use CurrentPanel unless showPanel was called again.
9663 2008-05-23  chris fleizach  <cfleizach@apple.com>
9665         Reviewed by Darin Adler.
9667         <rdar://problem/5933759> REGRESSION: Frames don't appear as AX children of the top level web area
9669         * page/AccessibilityRenderObject.cpp:
9670         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
9672 2008-05-23  Ariya Hidayat  <ariya.hidayat@trolltech.com>
9674         Reviewed by Simon.
9676         For Qt port, support painting to native Windows HDC.
9678         * platform/graphics/GraphicsContext.h:
9679         * platform/graphics/qt/GraphicsContextQt.cpp:
9680         (WebCore::GraphicsContext::getWindowsContext):
9681         (WebCore::GraphicsContext::releaseWindowsContext):
9683 2008-05-23  Timothy Hatcher  <timothy@apple.com>
9685         Fixes a bug where the Inspector could have 0ms timers firing
9686         even after it is closed.
9688         https://bugs.webkit.org/show_bug.cgi?id=18577
9690         Reviewed by Oliver Hunt.
9692         * page/inspector/DatabasesPanel.js: Removes setTimeouts that call
9693         the same function with a 0ms delay. These we not doing any good anyway,
9694         so they weren't needed and just caused problems.
9695         * page/inspector/ElementsPanel.js: Ditto.
9696         * page/inspector/ProfilesPanel.js: Ditto.
9697         * page/inspector/ResourcesPanel.js: Ditto.
9699 2008-05-23  Timothy Hatcher  <timothy@apple.com>
9701         Make the Inspector correctly populate the profiles when
9702         closed and re-opened.
9704         Reviewed by Adam Roben.
9706         * page/InspectorController.cpp:
9707         (WebCore::InspectorController::populateScriptObjects): Call populateInterface
9708         in inspector.js.
9709         * page/inspector/ProfilesPanel.js:
9710         (WebInspector.ProfilesPanel.prototype.populateInterface): If visible,
9711         call _populateProfiles. Else just set this._shouldPopulateProfiles to true.
9712         (WebInspector.ProfilesPanel.prototype.reset): Don't call _populateProfiles.
9713         Just set this._shouldPopulateProfiles to true.
9714         (WebInspector.ProfilesPanel.prototype._populateProfiles): Delete
9715         this._shouldPopulateProfiles.
9716         * page/inspector/inspector.js:
9717         (WebInspector.populateInterface): Added. Call populateInterface on all the
9718         panels if they implement it.
9720 2008-05-23  Kevin McCullough  <kmccullough@apple.com>
9722         RS = Adam.
9724         Editorial changes
9726         * manual-tests/inspector/profiler-test-apply.html:
9727         * manual-tests/inspector/profiler-test-document-dot-write.html:
9728         * manual-tests/inspector/profiler-test-execution-context-and-eval-on-same-line.html:
9729         * manual-tests/inspector/profiler-test-one-execution-context.html:
9730         * manual-tests/inspector/profiler-test-two-execution-contexts.html:
9732 2008-05-23  Timothy Hatcher  <timothy@apple.com>
9734         Fixes the bug where the profile was not added when finished.
9736         <rdar://problem/5958851> Stop Profiling from the Develop menu does
9737         not add the Profile to the Inspector
9739         Reviewed by Adam Roben.
9741         * page/InspectorController.cpp:
9742         (WebCore::InspectorController::stopUserInitiatedProfiling): Call
9743         addProfile with the result of stopProfiling.
9745 2008-05-23  Timothy Hatcher  <timothy@apple.com>
9747         Tweak the Web Insector toolbar look to be smaller when attached to
9748         the inspected page.
9750         Reviewed by Adam Roben.
9752         * page/inspector/inspector.css:
9754 2008-05-23  Simon Hausmann  <hausmann@webkit.org>
9756         Fix compilation without accessibility by providing an empty stub for
9757         AXObjectCache::handleAriaRoleChanged.
9759         * page/AXObjectCache.h:
9761 2008-05-23  Alice Liu  <alice.liu@apple.com>
9763         Reviewed by Mark Rowe.
9765         Remove call to function whose body was commented out. Returning the
9766         children for a menu button by the normal calculation works just as well. 
9768         * page/AccessibilityRenderObject.cpp:
9769         (WebCore::AccessibilityRenderObject::addChildren):
9770         * page/AccessibilityRenderObject.h:
9772 2008-05-22  Timothy Hatcher  <timothy@apple.com>
9774         Fixes the bug where resource would show up multiple times in the
9775         Inspector. This happened when a resource was used multiple times or
9776         when the preloader was scanning ahead to fetch resources.
9778         <rdar://problem/5689373> Cached resources re-appear in Web Inspector
9779         for each access (18223)
9781         Reviewed by Adam Roben.
9783         * page/InspectorController.cpp:
9784         (WebCore::InspectorController::addResource): Add the URL to m_knownResources.
9785         (WebCore::InspectorController::removeResource): Remove the URL from m_knownResources
9786         (WebCore::InspectorController::didLoadResourceFromMemoryCache): If the URL
9787         is in m_knownResources, then early return.
9788         * page/InspectorController.h: Added m_knownResources.
9790 2008-05-22  Alice Liu  <alice.liu@apple.com>
9792         Reviewed by Adele, Dan Bernstein.
9794         Fixed <rdar://problem/5943104> Need to implement ARIA role="menu" and related roles
9795         <rdar://problem/5943132> Need to implement ARIA role="menuitem"
9796         <rdar://problem/5943173> Need to implement ARIA role="menubar" 
9798         These changes added a handler for determining the ARIA role when the
9799         attribute changes.  Before we were querying for the attribute over and
9800         over every time we queried for the role.
9801         * dom/Element.cpp:
9802         (WebCore::Element::attributeChanged):
9803         * page/AXObjectCache.cpp:
9804         (WebCore::AXObjectCache::handleAriaRoleChanged):
9805         * page/AXObjectCache.h:
9807         The rest of these changes implement menu, menuitem, and menubar. the last 2 of those
9808         have to, for now, be represented as a Group and MenuButton instead, because AppKit 
9809         won't recognize menubar and menubaritems within apps. 
9810         * page/AccessibilityObject.h:
9811         (WebCore::AccessibilityObject::isMenuRelated):
9812         (WebCore::AccessibilityObject::isMenu):
9813         (WebCore::AccessibilityObject::isMenuBar):
9814         (WebCore::AccessibilityObject::isMenuButton):
9815         (WebCore::AccessibilityObject::isMenuItem):
9816         * page/AccessibilityRenderObject.cpp:
9817         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
9818         (WebCore::AccessibilityRenderObject::parentObject):
9819         (WebCore::AccessibilityRenderObject::isMenuRelated):
9820         (WebCore::AccessibilityRenderObject::isMenu):
9821         (WebCore::AccessibilityRenderObject::isMenuBar):
9822         (WebCore::AccessibilityRenderObject::isMenuButton):
9823         (WebCore::AccessibilityRenderObject::isMenuItem):
9824         (WebCore::siblingWithAriaRole):
9825         (WebCore::AccessibilityRenderObject::menuElementForMenuButton):
9826         (WebCore::AccessibilityRenderObject::menuForMenuButton):
9827         (WebCore::AccessibilityRenderObject::menuItemElementForMenu):
9828         (WebCore::AccessibilityRenderObject::menuButtonForMenu):
9829         (WebCore::AccessibilityRenderObject::title):
9830         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
9831         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
9832         (WebCore::RoleEntry::):
9833         (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
9834         (WebCore::AccessibilityRenderObject::setAriaRole):
9835         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
9836         (WebCore::AccessibilityRenderObject::addChildren):
9837         (WebCore::AccessibilityRenderObject::ariaMenuButtonChildren):
9838         * page/AccessibilityRenderObject.h:
9839         * page/mac/AccessibilityObjectWrapper.mm:
9840         (-[AccessibilityObjectWrapper accessibilityActionNames]):
9841         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
9842         (-[AccessibilityObjectWrapper roleDescription]):
9843         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
9844         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
9846 2008-05-22  Adam Roben  <aroben@apple.com>
9848         Make top-level resources show their full URLs again instead of just
9849         "/"
9851         Reviewed by Tim Hatcher.
9853         * page/inspector/Resource.js:
9854         (WebInspector.Resource.prototype.displayName): If the title has gotten
9855         down to just "/", which will happen for, e.g., http://webkit.org/,
9856         just show the entire URL.
9858 2008-05-22  Timothy Hatcher  <timothy@apple.com>
9860         Shorten URLs shown in the Web Inspector to the file name. This makes
9861         finding files in the Console or the Scripts panel easier.
9863         Reviewed by Adam Roben.
9865         * page/inspector/Console.js:
9866         (WebInspector.ConsoleMessage.prototype.get shortURL): Removed dead code.
9867         (WebInspector.ConsoleMessage.prototype.toMessageElement): Call WebInspector.displayNameForURL
9868         for the URL before making the link element.
9869         * page/inspector/ProfileView.js:
9870         (WebInspector.ProfileDataGridNode.prototype.createCell): Use WebInspector.displayNameForURL.
9871         * page/inspector/Resource.js:
9872         (WebInspector.Resource.prototype.get displayName): Use trimURL to
9873         trim the URL with the main resource's domain.
9874         * page/inspector/ScriptsPanel.js:
9875         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Use WebInspector.displayNameForURL.
9876         * page/inspector/StylesSidebarPane.js:
9877         (WebInspector.StylePropertiesSection): Ditto.
9878         * page/inspector/inspector.js:
9879         (WebInspector.displayNameForURL): Added.
9880         (WebInspector.resourceForURL): Check for a direct match in resourceURLMap first.
9882 2008-05-22  Adam Roben  <aroben@apple.com>
9884         Fix Bug 19204: Inspector should highlight source lines when following
9885         links to them
9887         <https://bugs.webkit.org/show_bug.cgi?id=19204>
9889         Reviewed by Tim Hatcher.
9891         Test: manual-tests/inspector/highlight-source-line.html
9893         * manual-tests/inspector/highlight-source-line.html: Added.
9894         * page/inspector/ResourcesPanel.js:
9895         (WebInspector.ResourcesPanel.prototype.showResource): Call
9896         highlightLine on the view if that function exists.
9897         * page/inspector/SourceFrame.js:
9898         (WebInspector.SourceFrame.prototype.highlightLine): Added. Adds the
9899         webkit-highlighted-line class to the relevant line, then removes it
9900         after a short delay.
9901         (WebInspector.SourceFrame.prototype._loaded): Added styles for the
9902         highlighted line(s).
9903         * page/inspector/SourceView.js:
9904         (WebInspector.SourceView.prototype.highlightLine): Added. Calls
9905         through to the SourceFrame.
9907 2008-05-22  Rob Buis  <buis@kde.org>
9909         Reviewed by Eric.
9911         https://bugs.webkit.org/show_bug.cgi?id=12053
9912         SVGPathSeg*(Abs|Rel) classses should be combined to reduce code size
9914         Reduce code size through shared base classes.
9916         * svg/SVGPathSeg.h:
9917         (WebCore::SVGPathSegSingleCoord::SVGPathSegSingleCoord):
9918         (WebCore::SVGPathSegSingleCoord::setX):
9919         (WebCore::SVGPathSegSingleCoord::x):
9920         (WebCore::SVGPathSegSingleCoord::setY):
9921         (WebCore::SVGPathSegSingleCoord::y):
9922         (WebCore::SVGPathSegSingleCoord::toString):
9923         * svg/SVGPathSegArc.cpp:
9924         (WebCore::SVGPathSegArcAbs::SVGPathSegArcAbs):
9925         (WebCore::SVGPathSegArcRel::SVGPathSegArcRel):
9926         * svg/SVGPathSegArc.h:
9927         (WebCore::SVGPathSegArc::SVGPathSegArc):
9928         (WebCore::SVGPathSegArc::toString):
9929         (WebCore::SVGPathSegArc::setX):
9930         (WebCore::SVGPathSegArc::x):
9931         (WebCore::SVGPathSegArc::setY):
9932         (WebCore::SVGPathSegArc::y):
9933         (WebCore::SVGPathSegArc::setR1):
9934         (WebCore::SVGPathSegArc::r1):
9935         (WebCore::SVGPathSegArc::setR2):
9936         (WebCore::SVGPathSegArc::r2):
9937         (WebCore::SVGPathSegArc::setAngle):
9938         (WebCore::SVGPathSegArc::angle):
9939         (WebCore::SVGPathSegArc::setLargeArcFlag):
9940         (WebCore::SVGPathSegArc::largeArcFlag):
9941         (WebCore::SVGPathSegArc::setSweepFlag):
9942         (WebCore::SVGPathSegArc::sweepFlag):
9943         (WebCore::SVGPathSegArcAbs::create):
9944         (WebCore::SVGPathSegArcAbs::pathSegType):
9945         (WebCore::SVGPathSegArcAbs::pathSegTypeAsLetter):
9946         (WebCore::SVGPathSegArcRel::create):
9947         (WebCore::SVGPathSegArcRel::pathSegTypeAsLetter):
9948         * svg/SVGPathSegCurvetoCubic.cpp:
9949         (WebCore::SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs):
9950         (WebCore::SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel):
9951         * svg/SVGPathSegCurvetoCubic.h:
9952         (WebCore::SVGPathSegCurvetoCubic::SVGPathSegCurvetoCubic):
9953         (WebCore::SVGPathSegCurvetoCubic::toString):
9954         (WebCore::SVGPathSegCurvetoCubic::setX):
9955         (WebCore::SVGPathSegCurvetoCubic::x):
9956         (WebCore::SVGPathSegCurvetoCubic::setY):
9957         (WebCore::SVGPathSegCurvetoCubic::y):
9958         (WebCore::SVGPathSegCurvetoCubic::setX1):
9959         (WebCore::SVGPathSegCurvetoCubic::x1):
9960         (WebCore::SVGPathSegCurvetoCubic::setY1):
9961         (WebCore::SVGPathSegCurvetoCubic::y1):
9962         (WebCore::SVGPathSegCurvetoCubic::setX2):
9963         (WebCore::SVGPathSegCurvetoCubic::x2):
9964         (WebCore::SVGPathSegCurvetoCubic::setY2):
9965         (WebCore::SVGPathSegCurvetoCubic::y2):
9966         (WebCore::SVGPathSegCurvetoCubicAbs::create):
9967         (WebCore::SVGPathSegCurvetoCubicAbs::pathSegType):
9968         (WebCore::SVGPathSegCurvetoCubicAbs::pathSegTypeAsLetter):
9969         (WebCore::SVGPathSegCurvetoCubicRel::create):
9970         (WebCore::SVGPathSegCurvetoCubicRel::pathSegTypeAsLetter):
9971         * svg/SVGPathSegCurvetoCubicSmooth.cpp:
9972         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs):
9973         (WebCore::SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel):
9974         * svg/SVGPathSegCurvetoCubicSmooth.h:
9975         (WebCore::SVGPathSegCurvetoCubicSmooth::SVGPathSegCurvetoCubicSmooth):
9976         (WebCore::SVGPathSegCurvetoCubicSmooth::toString):
9977         (WebCore::SVGPathSegCurvetoCubicSmooth::setX):
9978         (WebCore::SVGPathSegCurvetoCubicSmooth::x):
9979         (WebCore::SVGPathSegCurvetoCubicSmooth::setY):
9980         (WebCore::SVGPathSegCurvetoCubicSmooth::y):
9981         (WebCore::SVGPathSegCurvetoCubicSmooth::setX2):
9982         (WebCore::SVGPathSegCurvetoCubicSmooth::x2):
9983         (WebCore::SVGPathSegCurvetoCubicSmooth::setY2):
9984         (WebCore::SVGPathSegCurvetoCubicSmooth::y2):
9985         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):
9986         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegType):
9987         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegTypeAsLetter):
9988         (WebCore::SVGPathSegCurvetoCubicSmoothRel::create):
9989         (WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegType):
9990         (WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegTypeAsLetter):
9991         * svg/SVGPathSegCurvetoQuadratic.cpp:
9992         (WebCore::SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs):
9993         (WebCore::SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel):
9994         * svg/SVGPathSegCurvetoQuadratic.h:
9995         (WebCore::SVGPathSegCurvetoQuadratic::SVGPathSegCurvetoQuadratic):
9996         (WebCore::SVGPathSegCurvetoQuadratic::toString):
9997         (WebCore::SVGPathSegCurvetoQuadratic::setX):
9998         (WebCore::SVGPathSegCurvetoQuadratic::x):
9999         (WebCore::SVGPathSegCurvetoQuadratic::setY):
10000         (WebCore::SVGPathSegCurvetoQuadratic::y):
10001         (WebCore::SVGPathSegCurvetoQuadratic::setX1):
10002         (WebCore::SVGPathSegCurvetoQuadratic::x1):
10003         (WebCore::SVGPathSegCurvetoQuadratic::setY1):
10004         (WebCore::SVGPathSegCurvetoQuadratic::y1):
10005         (WebCore::SVGPathSegCurvetoQuadraticAbs::create):
10006         (WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegType):
10007         (WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegTypeAsLetter):
10008         (WebCore::SVGPathSegCurvetoQuadraticRel::create):
10009         (WebCore::SVGPathSegCurvetoQuadraticRel::pathSegType):
10010         (WebCore::SVGPathSegCurvetoQuadraticRel::pathSegTypeAsLetter):
10011         * svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
10012         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs):
10013         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel):
10014         * svg/SVGPathSegCurvetoQuadraticSmooth.h:
10015         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):
10016         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::pathSegTypeAsLetter):
10017         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):
10018         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::pathSegTypeAsLetter):
10019         * svg/SVGPathSegLineto.cpp:
10020         (WebCore::SVGPathSegLinetoAbs::SVGPathSegLinetoAbs):
10021         (WebCore::SVGPathSegLinetoRel::SVGPathSegLinetoRel):
10022         * svg/SVGPathSegLineto.h:
10023         (WebCore::SVGPathSegLinetoAbs::create):
10024         (WebCore::SVGPathSegLinetoAbs::pathSegTypeAsLetter):
10025         (WebCore::SVGPathSegLinetoRel::pathSegTypeAsLetter):
10026         * svg/SVGPathSegLinetoHorizontal.cpp:
10027         (WebCore::SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs):
10028         (WebCore::SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel):
10029         * svg/SVGPathSegLinetoHorizontal.h:
10030         (WebCore::SVGPathSegLinetoHorizontal::SVGPathSegLinetoHorizontal):
10031         (WebCore::SVGPathSegLinetoHorizontal::toString):
10032         (WebCore::SVGPathSegLinetoHorizontal::setX):
10033         (WebCore::SVGPathSegLinetoHorizontal::x):
10034         (WebCore::SVGPathSegLinetoHorizontalAbs::create):
10035         (WebCore::SVGPathSegLinetoHorizontalAbs::pathSegTypeAsLetter):
10036         (WebCore::SVGPathSegLinetoHorizontalRel::create):
10037         (WebCore::SVGPathSegLinetoHorizontalRel::pathSegTypeAsLetter):
10038         * svg/SVGPathSegLinetoVertical.cpp:
10039         (WebCore::SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs):
10040         (WebCore::SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel):
10041         * svg/SVGPathSegLinetoVertical.h:
10042         (WebCore::SVGPathSegLinetoVertical::SVGPathSegLinetoVertical):
10043         (WebCore::SVGPathSegLinetoVertical::toString):
10044         (WebCore::SVGPathSegLinetoVertical::setY):
10045         (WebCore::SVGPathSegLinetoVertical::y):
10046         (WebCore::SVGPathSegLinetoVerticalAbs::create):
10047         (WebCore::SVGPathSegLinetoVerticalAbs::pathSegTypeAsLetter):
10048         (WebCore::SVGPathSegLinetoVerticalRel::create):
10049         (WebCore::SVGPathSegLinetoVerticalRel::pathSegTypeAsLetter):
10050         * svg/SVGPathSegMoveto.cpp:
10051         (WebCore::SVGPathSegMovetoAbs::SVGPathSegMovetoAbs):
10052         (WebCore::SVGPathSegMovetoRel::SVGPathSegMovetoRel):
10053         * svg/SVGPathSegMoveto.h:
10054         (WebCore::SVGPathSegMovetoAbs::create):
10055         (WebCore::SVGPathSegMovetoAbs::pathSegTypeAsLetter):
10056         (WebCore::SVGPathSegMovetoRel::create):
10057         (WebCore::SVGPathSegMovetoRel::pathSegTypeAsLetter):
10059 2008-05-22  Alp Toker  <alp@nuanti.com>
10061         GTK+/DirectFB build fix attempt.
10063         * plugins/PluginDatabase.cpp:
10064         (WebCore::PluginDatabase::isPreferredPluginDirectory):
10065         * plugins/gtk/PluginDatabaseGtk.cpp:
10066         (WebCore::PluginDatabase::isPreferredPluginDirectory):
10068 2008-05-22  Timothy Hatcher  <timothy@apple.com>
10070         Adds Focus, Exclude and Restore buttons to the Profile view
10071         Status bar. Also adds a Record button to create new profiles.
10073         <rdar://problem/5950867> JSProfiler: Allow the profiler to "Focus" a profile node.
10074         <rdar://problem/5951529> JSProfiler: Allow the profiler to "Exclude" a profile node.
10076         Reviewed by Adam Roben.
10078         * English.lproj/localizedStrings.js: Added new strings.
10079         * page/JavaScriptProfile.cpp:
10080         (WebCore::restoreAll): Call Profile::restoreAll.
10081         (WebCore::ProfileClass): Added restoreAll to the static functions.
10082         * page/inspector/Images/excludeButtons.png: Added.
10083         * page/inspector/Images/focusButtons.png: Added.
10084         * page/inspector/Images/recordButtons.png: Added.
10085         * page/inspector/Images/reloadButtons.png: Added.
10086         * page/inspector/ProfileView.js:
10087         (WebInspector.ProfileView): Create the buttons elements.
10088         (WebInspector.ProfileView.prototype.get statusBarItems): Return the three
10089         status bar buttons.
10090         (WebInspector.ProfileView.prototype.refresh): Only create ProfileDataGridNodes
10091         for ProfileNodes that are visible.
10092         (WebInspector.ProfileView.prototype.refreshShowAsPercents): Just call
10093         refresh on the children, now that they have access to the ProfileView's properties.
10094         (WebInspector.ProfileView.prototype._focusClicked): Call focus
10095         on the profile, refresh the ProfileView and show the reset button.
10096         (WebInspector.ProfileView.prototype._excludeClicked): Call exclude
10097         on the profile, refresh the ProfileView and show the reset button.
10098         (WebInspector.ProfileView.prototype._resetClicked): Call restoreAll
10099         on the profile, refresh the ProfileView and hide the reset button.
10100         (WebInspector.ProfileView.prototype._dataGridNodeSelected): Enable the 
10101         focus and exclude buttons.
10102         (WebInspector.ProfileView.prototype._dataGridNodeDeselected): Disable the
10103         focus and exclude buttons.
10104         (WebInspector.ProfileDataGridNode): Take a ProfileView, and remove the 
10105         showPercentAs* arguments.
10106         * page/inspector/ProfilesPanel.js: Add a record status bar button and
10107         th ability to have per-view status bar buttons.
10108         * page/inspector/inspector.css: New styles.
10110 2008-05-22  Mark Rowe  <mrowe@apple.com>
10112         Reviewed by Tim Hatcher.
10114         <rdar://problem/5956612> ibtool crashes during build
10116         SCDynamicStoreCreate will return null if it cannot create a dynamic store object.  We need
10117         to check for failure rather than continuing with a null store as this results in us
10118         passing a null CFRunLoopSourceRef to CFRunLoopAddSource, which promptly crashes.
10120         * platform/network/mac/NetworkStateNotifierMac.cpp:
10121         (WebCore::NetworkStateNotifier::NetworkStateNotifier): Null check SCDynamicStoreCreate and
10122         SCDynamicStoreCreateRunLoopSource as it is possible for them to fail.
10124 2008-05-22  Adam Roben  <aroben@apple.com>
10126         Add a test for calling a NodeList as a function while profiling
10128         Reviewed by Kevin McCullough.
10130         * manual-tests/inspector/profiler-test-call-nodelist-as-function.html: Added.
10132 2008-05-22  Kevin McCullough  <kmccullough@apple.com>
10134         Rubber stamped by Adam.
10136         -Added new profiler tests.
10138         * manual-tests/inspector/profiler-test-calling-the-function-that-started-the-profiler-from-another-scope.html: Added.
10139         * manual-tests/inspector/profiler-test-constructor.html: Added.
10140         * manual-tests/inspector/profiler-test-document-dot-write.html: Added.
10141         * manual-tests/inspector/profiler-test-simple-no-level-change.html: Added.
10142         * manual-tests/inspector/profiler-test-throw-exception-from-eval.html: Added.
10143         * manual-tests/inspector/profiler-test-window-dot-eval.html: Added.
10145 2008-05-22  Kevin McCullough  <kmccullough@apple.com>
10147         Reviewed by Tim.
10149         <rdar://problem/5951529> JSProfiler: Allow the profiler to "Exclude" a
10150         profile node.
10151         -Expose the 'exclude' function to the WebInspector.
10152         -Also fix a bug with 'focus' and expose whether or not a node is visible
10154         * page/JavaScriptProfile.cpp: Renamed profileClass to have a capital P.
10155         (WebCore::getTitleCallback):
10156         (WebCore::getHeadCallback):
10157         (WebCore::focus): Now correctly compares against a ProfileNodeClass
10158         instead of ProfileClass.
10159         (WebCore::exclude): Expose 'exclude' function to the WebInspector.
10160         (WebCore::ProfileClass):
10161         (WebCore::toJS):
10162         * page/JavaScriptProfileNode.cpp: Declare the ProfileNodeClass in the
10163         header so that ProfileClass can use it.
10164         (WebCore::getVisible): Expose a node's visiblity to the WebInspector.
10165         (WebCore::ProfileNodeClass):
10166         * page/JavaScriptProfileNode.h:
10168 2008-05-22  Sam Weinig  <sam@webkit.org>
10170         Reviewed by Anders Carlsson.
10172         <rdar://problem/5838772> Support cross-site XMLHttpRequest
10174         - Implement support for cross-site non-GET requests using the HTTP header
10175           Access-control mechanism.
10177         Tests: http/tests/xmlhttprequest/access-control-basic-allow-async.html
10178                http/tests/xmlhttprequest/access-control-basic-not-get-allow-async.html
10179                http/tests/xmlhttprequest/access-control-basic-not-get-allow.html
10181         * xml/XMLHttpRequest.cpp:
10182         (WebCore::XMLHttpRequest::XMLHttpRequest):
10183         (WebCore::XMLHttpRequest::send):
10184         Don't continue send if inside the method check preflight (only happens for async).
10185         
10186         (WebCore::XMLHttpRequest::crossSiteAccessRequest):
10187         Add support for non-GET requests, starting off a method check preflight.
10189         (WebCore::XMLHttpRequest::handleAsynchronousMethodCheckResult):
10190         Handler for finishing up after an asynchronous method check has completed.
10192         (WebCore::XMLHttpRequest::didFinishLoading):
10193         (WebCore::XMLHttpRequest::didFinishLoadingMethodCheck):
10194         (WebCore::XMLHttpRequest::didReceiveResponse):
10195         (WebCore::XMLHttpRequest::didReceiveResponseMethodCheck):
10196         (WebCore::XMLHttpRequest::didReceiveData):
10197         Do a limited set of access control when in the method check preflight.
10198         * xml/XMLHttpRequest.h:
10200 2008-05-22  Timothy Hatcher  <timothy@apple.com>
10202         Make sure we don't call findTreeElement with the same representedObject
10203         again, to prevent infinite recursion. Added many comments to this
10204         code so it can be understood later.
10206         https://bugs.webkit.org/show_bug.cgi?id=19164
10208         Reviewed by Adam Roben.
10210         * page/inspector/treeoutline.js:
10212 2008-05-22  Timothy Hatcher  <timothy@apple.com>
10214         Re-word the "Attach Debugger" overlay to never say "Attach". The new
10215         wording is "Start Debugging". This makes the overlay consistent with
10216         other wording used for starting the debugger. Also fixes the tooltips
10217         for the Pause on Exceptions button.
10219         Reviewed by Adam Roben and Dan Bernstein.
10221         * English.lproj/localizedStrings.js: Adds new strings.
10222         * page/inspector/ScriptsPanel.js: Changes the wording. Flips the
10223         tooltips for the Pause on Exceptions buttons so the tooltip says
10224         what will happen when the button is pressed.
10226 2008-05-22  Timothy Hatcher  <timothy@apple.com>
10228         Remove some non-functional elements from the Scripts panel
10229         so they don't confuse users why they aren't working.
10231         Reviewed by Adam Roben.
10233         * page/inspector/ScriptsPanel.js: Removes the back/forward buttons
10234         and the function menu.
10235         * page/inspector/inspector.css: Make the files menu wider since there
10236         is more room now.
10238 2008-05-22  Timothy Hatcher  <timothy@apple.com>
10240         <rdar://problem/5956403> Update the Develop menu to match the new Inspector items
10242         Reviewed by Adam Roben.
10244         * English.lproj/localizedStrings.js:
10245         * WebCore.base.exp:
10246         * page/InspectorController.cpp:
10247         (WebCore::InspectorController::InspectorController):
10248         (WebCore::InspectorController::inspect):
10249         (WebCore::InspectorController::setWindowVisible):
10250         (WebCore::InspectorController::showPanel):
10251         (WebCore::InspectorController::startUserInitiatedProfiling):
10252         (WebCore::InspectorController::stopUserInitiatedProfiling):
10253         (WebCore::InspectorController::startDebuggingAndReloadInspectedPage):
10254         (WebCore::InspectorController::stopDebugging):
10255         * page/InspectorController.h:
10256         (WebCore::InspectorController::):
10257         (WebCore::InspectorController::isRecordingUserInitiatedProfile):
10258         * page/inspector/ProfilesPanel.js:
10259         * page/inspector/ScriptsPanel.js:
10260         * page/inspector/inspector.js:
10262 2008-05-22  Josh Aas  <joshmoz@gmail.com>
10264         Reviewed by Anders.
10266         <rdar://problem/5956429> 
10267         https://bugs.webkit.org/show_bug.cgi?id=19192
10268         remove NPNVpluginEventModel, fix example plugin
10269         
10270         Remove NPNVpluginEventModel enum variable.
10271         
10272         * bridge/npapi.h:
10274 2008-05-22  Stephanie Lewis  <slewis@apple.com>
10276         Reviewed by Dan.
10278         Fix <rdar://problem/5952405>.  The unbeforeunload count cannot be cleared when it is dispatched because it is possible to be called again.  Clear it after the unload event is dispatched.
10280         Test: fast/events/onunload-clears-onbeforeunload.html
10282         * loader/FrameLoader.cpp:
10283         (WebCore::FrameLoader::stopLoading):
10284         * page/Frame.cpp:
10285         (WebCore::Frame::shouldClose):
10287 2008-05-22  Simon Hausmann  <hausmann@webkit.org>
10289         Reviewed by Oliver.
10291         Qt build fix.
10293         * bindings/js/StringSourceProvider.h: Remove text at end of
10294         preprocessor statement.
10295         * bridge/qt/qt_instance.cpp:
10296         (KJS::Bindings::QtRuntimeObjectImp::getConstructData): Replaced
10297         implementsConstruct() with getConstructData().
10298         (KJS::Bindings::QtInstance::getCallData): Replaced implementsCall with
10299         getCallData().
10300         (KJS::Bindings::QtInstance::invokeDefaultMethod): Use getCallData()
10301         instead of implementsCall().
10302         * bridge/qt/qt_instance.h:
10304 2008-05-22  Adam Roben  <aroben@apple.com>
10306         Massively speed up date-format-tofte with the debugger attached
10308         On a debug Windows build (I know, hardly a good testcase) this patch
10309         makes this test run 57.25x as fast.
10311         Reviewed by Mark Rowe.
10313         * page/inspector/ScriptsPanel.js:
10314         (WebInspector.ScriptsPanel.prototype.reset): Clear the
10315         _scriptsForURLsInFilesSelect object.
10316         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Instead
10317         of looping over all the options in the select to find the option we
10318         want, get the script object from _scriptsForURLsInFilesSelect and get
10319         the option element from the script object.
10320         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Use
10321         _scriptsForURLsInFilesSelect to cache the script objects. Store the
10322         option element for each script on the script object so we can quickly
10323         retrieve it later.
10325 2008-05-22  Adam Roben  <aroben@apple.com>
10327         Remove some dead code from ScriptsPanel.js
10329         Reviewed by Mark Rowe.
10331         * page/inspector/ScriptsPanel.js:
10333 2008-05-21  Adam Roben  <aroben@apple.com>
10335         Fix Bug 19178: Inspector should support sorting resources by latency
10337         <https://bugs.webkit.org/show_bug.cgi?id=19178>
10339         I replaced "Sort by Time" with the following sorting options:
10340           - Sort by Start Time
10341           - Sort by Response Time
10342           - Sort by End Time
10343           - Sort by Duration
10344           - Sort by Latency
10346         You can no longer sort by Size when looking at the Time graph, and you
10347         can't use any of the time-based sorting functions when looking at the
10348         Size graph.
10350         Reviewed by Tim Hatcher.
10352         * page/inspector/Resource.js:
10353         (WebInspector.Resource.prototype.get duration): Added.
10354         (WebInspector.Resource.prototype.get latency): Added.
10355         (WebInspector.Resource.CompareByStartTime): Added.
10356         (WebInspector.Resource.CompareByResponseReceivedTime): Added.
10357         (WebInspector.Resource.CompareByEndTime): Added.
10358         (WebInspector.Resource.CompareByDuration): Added.
10359         (WebInspector.Resource.CompareByLatency): Added.
10360         * page/inspector/ResourcesPanel.js:
10361         (WebInspector.ResourcesPanel):
10362           - Each graph sidebar item now holds a list of sorting options
10363           - Graph sidebar items no longer have a calculator property. This is
10364             stored on the sorting options instead, to allow each kind of
10365             sorting to have a different calculator.
10366           - The sortingSelectElement starts out empty, and is populated in
10367             _graphSelected
10368           - The sortingFunction starts out uninitialized and is set as a
10369             side-effect of _graphSelected.
10370         (WebInspector.ResourcesPanel.prototype.set calculator): Don't do
10371         anything if the calculator hasn't changed.
10372         (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Use the
10373         _lastSelectedGraphTreeElement property instead of getting the graph
10374         element from the calculator.
10375         (WebInspector.ResourcesPanel.prototype._graphSelected):
10376           - Store the tree element in the _lastSelectedGraphTreeElement
10377             property
10378           - Popuplate sortingSelectElement with the sortingOptions and select
10379             the option that was last selected
10380         (WebInspector.ResourcesPanel.prototype._changeSortingFunction): Set
10381         our calculator from the sorting option.
10382         (WebInspector.ResourceTimeCalculator): Renamed from
10383         ResourceTransferTimeCalculator. Now takes a parameter to specify
10384         whether the bars should all start at zero.
10385         (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphPercentages):
10386         Take this.startAtZero into account.
10387         (WebInspector.ResourceTimeCalculator.prototype.updateBoundries):
10388         Abstracted the lower/upper bounds of a resource into methods.
10389         (WebInspector.ResourceTimeCalculator.prototype._lowerBound): Added.
10390         (WebInspector.ResourceTimeCalculator.prototype._upperBound): Added.
10391         (WebInspector.ResourceTransferTimeCalculator): Added. This is now a
10392         subclass of ResourceTimeCalculator
10393         (WebInspector.ResourceTransferDurationCalculator): Added.
10394         (WebInspector.ResourceSidebarTreeElement.CompareByAscendingStartTime): Added.
10395         (WebInspector.ResourceSidebarTreeElement.CompareByAscendingResponseReceivedTime): Added.
10396         (WebInspector.ResourceSidebarTreeElement.CompareByAscendingEndTime): Added.
10397         (WebInspector.ResourceSidebarTreeElement.CompareByDescendingDuration): Added.
10398         (WebInspector.ResourceSidebarTreeElement.CompareByDescendingLatency): Added.
10399         (WebInspector.ResourceSidebarTreeElement.CompareByDescendingSize):
10400         Changed to call CompareBySize.
10402 2008-05-21  Adam Roben  <aroben@apple.com>
10404         Fix Bug 19173: Tool tips for Inspector debugger status bar buttons are
10405         wrong/missing
10407         <https://bugs.webkit.org/show_bug.cgi?id=19173>
10409         Reviewed by Tim Hatcher.
10411         * manual-tests/inspector/debugger-status-bar-buttons-state.html:
10412         Added.
10413         * page/inspector/ScriptsPanel.js:
10414         (WebInspector.ScriptsPanel.prototype._toggleDebugging): Call
10415         _clearInterface (which updates the buttons' tool tips) after
10416         attaching/detaching the debugger so that the buttons will reflect the
10417         new state.
10418         (WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton):
10419         Set the title of the pauseOnExceptionsButton, not the debuggingButton.
10421 2008-05-20  Adam Roben  <aroben@apple.com>
10423         Fix Bug 19153: Inspector should support console.debug
10425         <https://bugs.webkit.org/show_bug.cgi?id=19153>
10426         <rdar://problem/5950856>
10428         Reviewed by Tim Hatcher.
10430         Test: manual-tests/inspector/console-log-formatting.html
10432         * bindings/js/JSConsoleCustom.cpp:
10433         (WebCore::JSConsole::debug): Added.
10434         * manual-tests/inspector/console-log-formatting.html: Changed to test
10435         console.debug as well.
10436         * page/Console.cpp:
10437         (WebCore::Console::debug): Added. Just calls through to log().
10438         * page/Console.h:
10439         * page/Console.idl: Added debug() declaration.
10441 2008-05-21  Kevin McCullough  <kmccullough@apple.com>
10443         Reviewed by Adam.
10445         <rdar://problem/5950867> JSProfiler: Allow the profiler to "Focus" a
10446         profile node.
10447         - Expose the Profile's 'focus' ability to WebCore and the WebInspector.
10449         * page/JavaScriptProfile.cpp:
10450         (WebCore::focus):
10451         (WebCore::profileClass):
10453 2008-05-21  Timothy Hatcher  <timothy@apple.com>
10455         Remove the rest of the debug code inside DEBUG_DEBUGGER_CALLBACKS
10456         since the parts the remain aren't useful.
10458         * page/JavaScriptDebugServer.cpp:
10459         (WebCore::JavaScriptDebugServer::sourceParsed):
10461 2008-05-21  Beth Dakin  <bdakin@apple.com>
10463         Reviewed by Anders.
10465         Fix for <rdar://problem/5848161> REGRESSION (r31438?): Crash 
10466         beneath ResourceHandle::setDefersLoading while running fast/loader/
10467         simultaneous-reloads-assert.html (null CFURLConnection)
10469         * platform/network/cf/ResourceHandleCFNet.cpp:
10470         (WebCore::ResourceHandle::setDefersLoading): Added simple null-
10471         check.
10473 2008-05-21  Timothy Hatcher  <timothy@apple.com>
10475         Adds the Request and Response headers to the Resource view.
10477         <rdar://problem/5940782> REGRESSION: Resource Request and Response
10478         headers aren't shown (18451)
10480         Reviewed by Adam Roben.
10482         * English.lproj/localizedStrings.js: Added new strings.
10483         * css/view-source.css: Add comments to make sure a couple of
10484         style rules stay in sync with inspector.css.
10485         * page/inspector/Resource.js:
10486         (WebInspector.Resource.prototype.set url): Dispatch an event when
10487         this property changes.
10488         (WebInspector.Resource.prototype.set requestHeaders): Ditto.
10489         (WebInspector.Resource.prototype.set responseHeaders): Ditto.
10490         * page/inspector/ResourceView.js:
10491         (WebInspector.ResourceView): Add new elements for the headers
10492         and a headers TreeOutline. Add event listeners for resource
10493         property changes. Calls the three new refresh functions.
10494         (WebInspector.ResourceView.prototype.set headersVisible): Implemented.
10495         Toggles the headers-visible class name.
10496         (WebInspector.ResourceView.prototype._refreshURL): Update the URL
10497         tree element.
10498         (WebInspector.ResourceView.prototype._refreshRequestHeaders): Call _refreshHeaders.
10499         (WebInspector.ResourceView.prototype._refreshResponseHeaders): Ditto.
10500         (WebInspector.ResourceView.prototype._refreshHeaders): Remove the previous
10501         headers fromm the tree element. Loop throuh the headers and create new
10502         tree elements and append them.
10503         * page/inspector/ResourcesPanel.js:
10504         (WebInspector.ResourcesPanel.prototype._updateSidebarWidth): Call resize
10505         on the visible view if it is implemented.
10506         * page/inspector/SourceFrame.js:
10507         (WebInspector.SourceFrame.prototype.get autoSizesToFitContentHeight):
10508         (WebInspector.SourceFrame.prototype.set autoSizesToFitContentHeight):
10509         (WebInspector.SourceFrame.prototype.sizeToFitContentHeight):
10510         (WebInspector.SourceFrame.prototype._loaded): 
10511         (WebInspector.SourceFrame.prototype._windowResized): 
10512         * page/inspector/SourceView.js:
10513         (WebInspector.SourceView): Move the SourceFrame creation so it is
10514         available when headersVisible is set. Add a gutter element to fill
10515         the vertical space no covered by the SourceFrame now.
10516         (WebInspector.SourceView.prototype.set headersVisible): Set the
10517         SourceFrame.autoSizesToFitContentHeight when this property changes.
10518         (WebInspector.SourceView.prototype.resize): Call SourceFrame.sizeToFitContentHeight
10519         when autoSizesToFitContentHeight is true. This happens when resizing the 
10520         Resources sidebar.
10521         * page/inspector/inspector.css: Add a copy of webkit-line-gutter-backdrop
10522         and a comment to keep in sync with view-source.css. Adds other styles
10523         for the headers area of resource-view.
10525 2008-05-21  Sam Weinig  <sam@webkit.org>
10527         Reviewed by Anders Carlsson.
10529         <rdar://problem/5838772> Support cross-site XMLHttpRequest
10531         - Implement support for cross-site GET requests using the HTTP header
10532           Access-control mechanism.
10534         Tests: http/tests/xmlhttprequest/access-control-basic-allow-headers.html
10535                http/tests/xmlhttprequest/access-control-basic-allow.html
10536                http/tests/xmlhttprequest/access-control-basic-denied.html
10537                http/tests/xmlhttprequest/access-control-basic-exclude.html
10539         * xml/AccessControlList.cpp:
10540         (WebCore::AccessControlList::checkOrigin): Implement the list check algorithm.
10541         * xml/AccessControlList.h:
10543         * xml/AccessItem.cpp:
10544         (WebCore::AccessItem::AccessItem):
10545         (WebCore::AccessItem::matches):
10546         * xml/AccessItem.h:
10547         Temporarily use a SecurityOrigin as the bases of AccessItem matching. Using
10548         the isSameSchemeHostPort test of the SecurityOrigin allows for a legal subset
10549         of the AccessItem match algorithm to be used, until the complete parsing of
10550         the wildcards and optional pieces is complete. 
10552         * xml/AccessItemRule.cpp:
10553         (WebCore::matchesAny):
10554         (WebCore::AccessItemRule::allowListMatchesAny):
10555         (WebCore::AccessItemRule::excludeListMatchesAny):
10556         * xml/AccessItemRule.h:
10557         More of the implementation of the list check algorithm.  Check if any of the items
10558         in the rule match the control origin.
10560         * xml/XMLHttpRequest.cpp:
10561         (WebCore::XMLHttpRequest::XMLHttpRequest):
10562         (WebCore::XMLHttpRequest::open): Don't throw a SECURITY_ERR for cross-domain requests anymore.
10563         (WebCore::XMLHttpRequest::send): Use different paths for same origin and cross-domain requests.
10564         (WebCore::XMLHttpRequest::crossSiteAccessRequest): Temporarily only support the GET method for
10565         cross-domain requests.  
10566         (WebCore::XMLHttpRequest::loadRequestSynchronously):
10567         (WebCore::XMLHttpRequest::processSyncLoadResults):
10568         This can now throw an exception if a cross-domain request is denied by the access control
10569         (WebCore::XMLHttpRequest::didFinishLoading):
10570         Add support for cross-domain GET request.  ASSERT temporarily that the method is GET, since we
10571         should have bailed out much earlier for non-GET methods.
10572         (WebCore::XMLHttpRequest::willSendRequest):
10573         (WebCore::XMLHttpRequest::didReceiveResponse):
10574         Do the HTTP header access-control check as soon as the headers arrive.
10575         * xml/XMLHttpRequest.h:
10577 2008-05-21  Alp Toker  <alp@nuanti.com>
10579         Rubber-stamped by Maciej.
10581         Replace non-standard #pragma marks with comments to avoid compiler
10582         warnings.
10584         * page/InspectorController.cpp:
10586 === End merge of squirrelfish ===
10588 2008-05-21  Geoffrey Garen  <ggaren@apple.com>
10590         Reviewed by Tim Hatcher.
10592         Merged with trunk WebCore's new debugger.
10594         * page/InspectorController.cpp:
10595         (WebCore::currentCallFrame): Updated to use the DebuggerCallFrame API.
10596         (WebCore::InspectorController::pauseInDebugger): Updated for name change
10597         explained below.
10598         (WebCore::InspectorController::resumeDebugger): ditto
10599         (WebCore::InspectorController::didParseSource): Fixed a bug that would
10600         produce garbled text in some cases: Don't treat JS source as null-
10601         terminated UTF8; it's UTF16.
10603         * page/JavaScriptCallFrame.cpp:
10604         * page/JavaScriptCallFrame.h: Changed this class to do all of its processing
10605         through a JavaScriptCore DebuggerCallFrame. We have to copy the DebuggerCallFrame
10606         because it's a temporary.
10607         (WebCore::JavaScriptCallFrame::update): Added an API for updating a call
10608         frame during execution: this is how we handle "with" and "eval".
10610         * page/JavaScriptDebugServer.cpp: Separated "m_paused" from
10611         "m_doneProcessingDebuggerEvents", because they have different semantics:
10612         "m_paused" is the flag the debug server uses to indicate that new debugger
10613         callbacks should be ignored, because they come from the debugger's own
10614         JS code; "m_doneProcessingDebuggerEvents" is the flag the debugger UI
10615         uses to indicate that it's done processing events, and would like execution
10616         to continue. When these flags were one, the debugger would erroneously
10617         process callbacks that ocurred while unwinding from its own JS code.
10619         (WebCore::toPage): Removed some unnecessary NULL checking. Added some
10620         missing NULL checking.
10621         
10622         (WebCore::JavaScriptDebugServer::pauseIfNeeded): Changed pause tracking
10623         to track a JavaScriptCallFrame instead of an ExecState, since ExecState
10624         is no longer a unique identifier for a call frame.
10626         I removed the updateCurrentCallFrame scheme, and replaced it with
10627         individual tracking inside these callbacks:
10628         
10629         (WebCore::JavaScriptDebugServer::callEvent):
10630         (WebCore::JavaScriptDebugServer::atStatement):
10631         (WebCore::JavaScriptDebugServer::returnEvent):
10632         (WebCore::JavaScriptDebugServer::exception):
10633         
10634         The updateCurrentCallFrame scheme was just too incompatible with the
10635         squirrelfish execution model. Everything still works as before, except
10636         for eval, which no longer shows up as an independent call frame. We'll
10637         need to augment our debugger callbacks to bring back support for that.
10639         * page/inspector/ScopeChainSidebarPane.js: Updated to use the activation
10640         class's new name.
10642 2008-05-21  Maciej Stachowiak  <mjs@apple.com>
10644         Reviewed by Oliver.
10646         - write directly to the slot we used to check for override properties, when possible
10647         2.6% speedup on in-browser SunSpider
10649         * bindings/js/JSDOMWindowCustom.h:
10650         (WebCore::JSDOMWindow::customPut):
10652 2008-05-20  Maciej Stachowiak  <mjs@apple.com>
10654         Reviewed by Oliver.
10656         - inline JSDOMWindow security checks
10657         0.9% speedup to SunSpider in-browser
10659         * bindings/js/JSDOMWindowBase.cpp:
10660         * bindings/js/JSDOMWindowCustom.h:
10661         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
10662         (WebCore::JSDOMWindowBase::allowsAccessFrom):
10663         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
10664         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
10665         * bindings/js/kjs_binding.cpp:
10667 2008-05-20  Maciej Stachowiak  <mjs@apple.com>
10669         Reviewed by Adam.
10671         - use ALWAYS_INLINE on customGetOwnPropertySlot since it wasn't inlining
10672         2% speedup to SunSpider in-browser
10674         * bindings/js/JSDOMWindowCustom.h:
10675         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
10677 2008-05-20  Maciej Stachowiak  <mjs@apple.com>
10679         Reviewed by Adam.
10681         - inline JSDOMWindow's customPut and customGetOwnPropertySlot methods
10682         1.2% speedup to SunSpider in-browser
10683         
10684         The approach here is to make the code generator include a
10685         JS{classname}Custom.h header in the autogenerated implementation,
10686         which we can use to provide inline versions.
10688         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
10689         * bindings/js/JSCSSStyleDeclarationCustom.h: Added.
10690         * bindings/js/JSDOMWindowCustom.cpp:
10691         * bindings/js/JSDOMWindowCustom.h:
10692         (WebCore::asJSDOMWindow):
10693         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
10694         (WebCore::JSDOMWindow::customPut):
10695         * bindings/js/JSHTMLAppletElementCustom.cpp:
10696         * bindings/js/JSHTMLAppletElementCustom.h: Added.
10697         * bindings/js/JSHTMLEmbedElementCustom.cpp:
10698         * bindings/js/JSHTMLEmbedElementCustom.h: Added.
10699         * bindings/js/JSHTMLObjectElementCustom.cpp:
10700         * bindings/js/JSHTMLObjectElementCustom.h: Added.
10701         * bindings/js/JSHistoryCustom.cpp:
10702         * bindings/js/JSHistoryCustom.h: Added.
10703         * bindings/js/JSLocationCustom.cpp:
10704         * bindings/js/JSLocationCustom.h: Added.
10705         * bindings/js/JSStorageCustom.cpp:
10706         * bindings/js/JSStorageCustom.h: Added.
10707         * bindings/scripts/CodeGeneratorJS.pm:
10709 2008-05-19  Maciej Stachowiak  <mjs@apple.com>
10711         Reviewed by Anders.
10713         - inline asDOMWindow (using a new JSDOMWindowCustom.h header) since it is just a cast
10714         1% speedup to SunSpider in-browser
10716         * WebCore.vcproj/WebCore.vcproj:
10717         * WebCore.xcodeproj/project.pbxproj:
10718         * bindings/js/JSCustomVoidCallback.cpp:
10719         * bindings/js/JSCustomXPathNSResolver.cpp:
10720         * bindings/js/JSDOMApplicationCacheCustom.cpp:
10721         * bindings/js/JSDOMWindowBase.cpp:
10722         * bindings/js/JSDOMWindowBase.h:
10723         * bindings/js/JSDOMWindowCustom.cpp:
10724         * bindings/js/JSDOMWindowCustom.h: Added.
10725         (WebCore::asJSDOMWindow):
10726         * bindings/js/JSDatabaseCustom.cpp:
10727         * bindings/js/JSDocumentCustom.cpp:
10728         * bindings/js/JSLocationCustom.cpp:
10729         * bindings/js/JSSQLTransactionCustom.cpp:
10730         * bindings/js/JSXMLHttpRequestCustom.cpp:
10731         * page/JavaScriptDebugServer.cpp:
10733 2008-05-19  Maciej Stachowiak  <mjs@apple.com>
10735         Reviewed by Oliver.
10737         - obtain current inner window of outer window in a more efficient way
10738         1.6% speedup to SunSpider in-browser
10740         * bindings/js/JSDOMWindowBase.cpp:
10741         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
10743 2008-05-19  Maciej Stachowiak  <mjs@apple.com>
10745         Reviewed by Adam.
10747         - make impl() method for JSWindow inline
10748         0.6% speedup to SunSpider in-browser
10750         * WebCore.base.exp: Remove now-inline symbol
10751         * bindings/scripts/CodeGeneratorJS.pm: Make the codegen script inline impl()
10752         even for classes with a parent class.
10754 2008-05-17  Geoffrey Garen  <ggaren@apple.com>
10756         Reviewed by Oliver Hunt.
10758         Updated for API changes in KJS::Debugger.
10760 2008-05-13  Geoffrey Garen  <ggaren@apple.com>
10762         Reviewed by Oliver Hunt.
10764         Updated for API changes in KJS::Debugger.
10766         * page/JavaScriptDebugServer.cpp:
10767         (WebCore::JavaScriptDebugServer::callEvent):
10768         (WebCore::JavaScriptDebugServer::atStatement):
10769         (WebCore::JavaScriptDebugServer::returnEvent):
10770         (WebCore::JavaScriptDebugServer::exception):
10771         * page/JavaScriptDebugServer.h:
10773 2008-05-13  Geoffrey Garen  <ggaren@apple.com>
10775         Reviewed by Oliver Hunt.
10776         
10777         Updated JavaScriptDebugServer API to accept a SourceProvider instead
10778         of a UString, to avoid copying.
10780         * page/JavaScriptDebugServer.cpp:
10781         (WebCore::JavaScriptDebugServer::sourceParsed): Updated this function
10782         not to return a value.
10784 2008-05-10  Maciej Stachowiak  <mjs@apple.com>
10786         Build fix.
10787         
10788         - add missing forwarding header
10790         * ForwardingHeaders/kjs/SourceProvider.h: Added.
10792 2008-05-10  Maciej Stachowiak  <mjs@apple.com>
10794         Reviewed by Oliver.
10796         - WebCore part of fix for: "SQUIRRELFISH: function toString broken after calling"
10797         https://bugs.webkit.org/show_bug.cgi?id=18869
10799         * bindings/js/StringSourceProvider.h: Added. SourceProvider subclass backed by a WebCore::String.
10800         (WebCore::StringSourceProvider::create):
10801         (WebCore::StringSourceProvider::getRange):
10802         (WebCore::StringSourceProvider::data):
10803         (WebCore::StringSourceProvider::length):
10804         (WebCore::StringSourceProvider::StringSourceProvider):
10805         * bindings/js/kjs_proxy.cpp:
10806         (WebCore::KJSProxy::evaluate): Pass a StringSourceProvider to
10807         evaluate() instead of UChar* / length.
10808         * html/HTMLScriptElement.cpp:
10809         (WebCore::HTMLScriptElement::text): Modified to return the
10810         original string as-is when the script element contains only a
10811         single text node, to avoid excess memory use.
10812         
10813         * WebCore.vcproj/WebCore.vcproj: Add new file to build.
10814         * WebCore.xcodeproj/project.pbxproj: ditto
10816 2008-05-09  Oliver Hunt  <oliver@apple.com>
10818         Reviewed by Geoff.
10820         Build fixes for SquirrelFish on windows.
10822         * bindings/js/JSNavigatorCustom.cpp:
10824 2008-05-08  Geoffrey Garen  <ggaren@apple.com>
10826         Reviewed by Oliver Hunt.
10828         Fixed platform/mac/plugins/bindings-test-objc.html.
10829         
10830         I've restored -[WebScriptObject setException] and
10831         +[WebScriptObject throwException].
10832         
10833         Instead of mucking around in the JavaScript engine's execution state,
10834         throwing an exception sets a global exception string, along with the
10835         environment in which to throw it. An ObjC callback checks the global
10836         exception string and, if it's non-nil and the environment matches the
10837         current exceution environment, throws the global exception string as a
10838         JS exception.
10840         I also removed the old currentGlobalObject infrastructure: it's no longer
10841         used.
10843 2008-05-06  Oliver Hunt  <oliver@apple.com>
10845         Reviewed by Maciej.
10847         Bug 18866: SQUIRRELFISH: JS/ObjC bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18866>
10848         Bug 18867: SQUIRRELFISH: JS/NPRuntime bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18867>
10850         This fixes function binding logic for the ObjC and NPRuntime by
10851         replacing incorrect implementations of implementsCall (which is
10852         no longer virtual) with implementations of getCallData.
10854         * bindings/js/JSQuarantinedObjectWrapper.cpp:
10855         (WebCore::JSQuarantinedObjectWrapper::getCallData):
10856         * bindings/js/JSQuarantinedObjectWrapper.h:
10857         * bridge/c/c_instance.cpp:
10858         * bridge/c/c_instance.h:
10859         * bridge/objc/objc_instance.h:
10860         * bridge/objc/objc_instance.mm:
10861         * bridge/objc/objc_runtime.h:
10862         * bridge/objc/objc_runtime.mm:
10863         (ObjcFallbackObjectImp::getCallData):
10864         * bridge/runtime.h:
10865         * bridge/runtime_object.cpp:
10866         (RuntimeObjectImp::getCallData):
10867         * bridge/runtime_object.h:
10869 2008-04-30  Geoffrey Garen  <ggaren@apple.com>
10871         Build fix: supply a parameter that used to be implicit to
10872         Interpreter::evaluate.
10874 2008-04-30  Geoffrey Garen  <ggaren@apple.com>
10876         Build fix: #ifdef'd out some code that doesn't work anymore.
10878         * bindings/objc/WebScriptObject.mm:
10879         (+[WebScriptObject throwException:]):
10880         (-[WebScriptObject setException:]):
10882 2008-04-14  Gabor Loki  <loki@inf.u-szeged.hu>
10884         Reviewed by Geoffrey Garen.
10886         Bug 18489: Squirrelfish doesn't build on linux
10887         <https://bugs.webkit.org/show_bug.cgi?id=18489>
10889         * WebCore.pro: Add JavaScriptCore/VM into include path
10891 2008-04-10  Sam Weinig  <sam@webkit.org>
10893         Reviewed by Geoffrey Garen.
10895         Adjusted WebCore JS functions to the new "getConstructData" calling convention.
10897 2008-03-30  Geoffrey Garen  <ggaren@apple.com>
10899         Reviewed by Oliver Hunt.
10900         
10901         Adjusted WebCore JS functions to the new "getCallData" calling convention.
10903 === Start merge of squirrelfish ===
10905 2008-05-21  Anders Carlsson  <andersca@apple.com>
10907         Reviewed by Mitz.
10909         Add IconFetcher implementation.
10911         * WebCore.base.exp:
10912         * WebCore.xcodeproj/project.pbxproj:
10913         * html/HTMLLinkElement.h:
10914         (WebCore::HTMLLinkElement::isIcon):
10915         * loader/icon/IconFetcher.cpp: Added.
10916         (WebCore::IconLinkEntry::):
10917         (WebCore::IconLinkEntry::IconLinkEntry):
10918         (WebCore::IconLinkEntry::type):
10919         (WebCore::IconLinkEntry::url):
10920         (WebCore::IconLinkEntry::buffer):
10921         (WebCore::parseIconLink):
10922         (WebCore::IconFetcher::create):
10923         (WebCore::IconFetcher::IconFetcher):
10924         (WebCore::IconFetcher::~IconFetcher):
10925         (WebCore::IconFetcher::cancel):
10926         (WebCore::IconFetcher::createIcon):
10927         (WebCore::IconFetcher::loadEntry):
10928         (WebCore::IconFetcher::loadFailed):
10929         (WebCore::IconFetcher::didReceiveResponse):
10930         (WebCore::IconFetcher::didReceiveData):
10931         (WebCore::IconFetcher::didFinishLoading):
10932         (WebCore::IconFetcher::didFail):
10933         * loader/icon/IconFetcher.h: Added.
10934         (WebCore::IconFetcherClient::~IconFetcherClient):
10936 2008-05-21  Dan Bernstein  <mitz@apple.com>
10938         Reviewed by Dave Hyatt.
10940         - fix https://bugs.webkit.org/show_bug.cgi?id=18352
10941           <rdar://problem/5854517> crash loading malicious font
10943         * platform/graphics/mac/SimpleFontDataMac.mm:
10944         (WebCore::SimpleFontData::platformInit): In the case of a custom font,
10945         there is no NSFont to base the fallback font on, so get a font based on
10946         fallback family name alone.
10948 2008-05-21  Timothy Hatcher  <timothy@apple.com>
10950         Adds the files and line numbers to the Profile call tree.
10952         <rdar://problem/5952924> Inspector needs to show file and line number
10953         in the Profile call tree
10955         Reviewed by Geoff Garen.
10957         * page/JavaScriptProfileNode.cpp:
10958         (WebCore::getFunctionName): Fixes a JSStringRef leak.
10959         (WebCore::getURL): Call ProfileNode::url.
10960         (WebCore::getLineNumber): Call ProfileNode::lineNumber.
10961         (WebCore::ProfileNodeClass): Add the url and lineNumber properties.
10962         * page/inspector/ProfileView.js:
10963         (WebInspector.ProfileDataGridNode.prototype.createCell): Overload the
10964         DataGridNode.createCell and add the file and lineNumber to the
10965         cell if the column is the function column.
10966         * page/inspector/inspector.css: New styles for the file and line.
10968 2008-05-21  Timothy Hatcher  <timothy@apple.com>
10970         Restores logging of console calls to the STDOUT
10971         when Interpreter::shouldPrintExceptions() is true.
10973         <rdar://problem/5636442> REGRESSION: Console.log no longer logs to
10974         the system console or terminal
10976         <rdar://problem/5146079> JavaScript exception logging should print
10977         accurate file and line info when called from WebScriptObject
10979         Reviewed by Adam Roben.
10981         * bindings/js/JSCustomSQLStatementCallback.cpp:
10982         (WebCore::JSCustomSQLStatementCallback::handleEvent): Remove existing
10983         printf and check for Interpreter::shouldPrintExceptions() since there is
10984         a call to Console::addMessage.
10985         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
10986         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent): Ditto.
10987         * bindings/js/JSCustomSQLTransactionCallback.cpp:
10988         (WebCore::JSCustomSQLTransactionCallback::handleEvent): Ditto.
10989         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
10990         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): Ditto.
10991         * bindings/js/JSCustomVoidCallback.cpp:
10992         (WebCore::JSCustomVoidCallback::handleEvent): Ditto.
10993         * bindings/js/JSCustomXPathNSResolver.cpp:
10994         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): Ditto.
10995         * bindings/js/JSDOMWindowBase.cpp:
10996         (WebCore::JSDOMWindowBase::printErrorMessage): Ditto.
10997         * bindings/js/ScheduledAction.cpp:
10998         (WebCore::ScheduledAction::execute): Ditto.
10999         * bindings/js/kjs_events.cpp:
11000         (WebCore::JSAbstractEventListener::handleEvent): Ditto.
11001         * loader/FrameLoader.cpp:
11002         (WebCore::FrameLoader::shouldAllowNavigation): Ditto.
11003         * bindings/objc/WebScriptObject.mm:
11004         (WebCore::addExceptionToConsole): Added helper static function that
11005         calls Console::addMessage.
11006         (-[WebScriptObject callWebScriptMethod:withArguments:]): Call addExceptionToConsole.
11007         (-[WebScriptObject evaluateWebScript:]): Ditto.
11008         (-[WebScriptObject setValue:forKey:]): Ditto.
11009         (-[WebScriptObject valueForKey:]): Ditto.
11010         (-[WebScriptObject removeWebScriptKey:]): Ditto.
11011         (-[WebScriptObject webScriptValueAtIndex:]): Ditto.
11012         (-[WebScriptObject setWebScriptValueAtIndex:value:]): Ditto.
11013         * page/Console.cpp:
11014         (WebCore::Console::addMessage): Print the level, message,
11015         URL and line number to STDOUT.
11016         (WebCore::printToStandardOut): Helper static function that
11017         takes a prefix string, ExecState, an argument List and URL.
11018         Prints the prefix and loops through the arguments calling
11019         toString on each and printing the string. Finally printing
11020         the URL and new line.
11021         (WebCore::Console::error): Call printToStandardOut.
11022         (WebCore::Console::info): Ditto.
11023         (WebCore::Console::log): Ditto.
11024         (WebCore::Console::assertCondition): Ditto.
11025         (WebCore::Console::warn): Ditto.
11027 2008-05-20  Timothy Hatcher  <timothy@apple.com>
11029         Changes to work with the new Profiler API. The Profile is now
11030         stored by the InspectorController when Console.profileEnd is called.
11031         This solves three issues with the previous design. First, we don't
11032         keep profiles around unless the Inspector is enabled. Second, we
11033         only show Profiles initiated by the Page in it's Inspector, not every
11034         Profile for the whole process. Third, we now show Profiles in the
11035         Inspector when they are created.
11037         <rdar://problem/5951562> New profiles aren't added to the Inspector
11038         as they finish
11040         Reviewed by Kevin McCullough.
11042         * bindings/js/JSConsoleCustom.cpp:
11043         (WebCore::JSConsole::profileEnd): Added. Calls impl()->profileEnd()
11044         and passes the ExecState and arguments.
11045         * page/Console.cpp:
11046         (WebCore::Console::profile):
11047         (WebCore::Console::profileEnd): Accept the optional title argument
11048         and pass it to Profilier::stopProfiling along with the ExecState.
11049         Calls InspectorController::addProfile with the result Profile.
11050         * page/Console.h:
11051         * page/Console.idl: Made profileEnd Custom so we can get the ExecState.
11052         * page/InspectorController.cpp:
11053         (WebCore::profiles): Renamed from allProfiles. Uses the controller's
11054         profiles vector.
11055         (WebCore::InspectorController::addProfile): Appends to m_profiles.
11056         Calls addScriptProfile if the window is visible.
11057         (WebCore::InspectorController::windowScriptObjectAvailable): Renamed
11058         allProfiles to profiles.
11059         (WebCore::InspectorController::addScriptProfile): Calls addProfile on
11060         the JavaScript side.
11061         (WebCore::InspectorController::didCommitLoad): Clears m_profiles.
11062         * page/InspectorController.h:
11063         * page/inspector/ProfilesPanel.js: Populates the profiles sidebar the first
11064         time the panel is shown after a rest.
11065         * page/inspector/inspector.js: Added addProfile, calls ProfilesPanel's
11066         addProfile function.
11068 2008-05-21  Alexey Proskuryakov  <ap@webkit.org>
11070         Reviewed by Darin.
11072         https://bugs.webkit.org/show_bug.cgi?id=19169
11073         <rdar://5952342> REGRESSION: nakarte.ru searches don't work
11075         Test: http/tests/xmlhttprequest/encode-request-url.html
11077         * platform/KURL.cpp: (WebCore::KURL::init): Don't allow UTF-8 encoded data to be implicitly
11078         converted to String, as it will be encoded again by parse().
11080 2008-05-21  Ariya Hidayat  <ariya.hidayat@trolltech.com>
11082         Reviewed by Simon.
11084         For the Qt port, fix building with Qt for Embedded Linux.
11086         * WebCore.pro:
11088 2008-05-21  Ariya Hidayat  <ariya.hidayat@trolltech.com>
11090         Reviewed by Simon.
11092         For the Qt port, allow building without NPAPI plugin support.
11094         * WebCore.pro:
11095         * plugins/PluginView.h:
11097 2008-05-20  Kevin McCullough  <kmccullough@apple.com>
11099         Reviewed by Tim.
11101         Added all of my personal manual tests for the profiler.
11103         * manual-tests/inspector/profiler-test-anonymous-event-handler.html: Added.
11104         * manual-tests/inspector/profiler-test-anonymous-function-called-from-different-contexts.html: Added.
11105         * manual-tests/inspector/profiler-test-anonymous-function-calls-built-in-functions.html: Added.
11106         * manual-tests/inspector/profiler-test-anonymous-function-calls-eval.html: Added.
11107         * manual-tests/inspector/profiler-test-apply.html: Added.
11108         * manual-tests/inspector/profiler-test-built-in-function-calls-anonymous.html: Added.
11109         * manual-tests/inspector/profiler-test-built-in-function-calls-user-defined-function.html: Added.
11110         * manual-tests/inspector/profiler-test-call.html: Added.
11111         * manual-tests/inspector/profiler-test-dead-time.html: Added.
11112         * manual-tests/inspector/profiler-test-event-handler.html: Added.
11113         * manual-tests/inspector/profiler-test-execution-context-and-eval-on-same-line.html: Added.
11114         * manual-tests/inspector/profiler-test-inline-event-handler.html: Added.
11115         * manual-tests/inspector/profiler-test-many-calls-in-the-same-scope.html: Added.
11116         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-anonymous-function-calls.html: Added.
11117         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-function-calls.html: Added.
11118         * manual-tests/inspector/profiler-test-multiple-frames.html: Added.
11119         * manual-tests/inspector/profiler-test-multiple-windows.html: Added.
11120         * manual-tests/inspector/profiler-test-nested-anonymous-functon.html: Added.
11121         * manual-tests/inspector/profiler-test-nested-start-and-stop-profiler.html: Added.
11122         * manual-tests/inspector/profiler-test-no-execution-context.html: Added.
11123         * manual-tests/inspector/profiler-test-one-execution-context.html: Added.
11124         * manual-tests/inspector/profiler-test-profile-calls-in-included-file.html: Added.
11125         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Added.
11126         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location.html: Added.
11127         * manual-tests/inspector/profiler-test-start-and-stop-profiler-multiple-times.html: Added.
11128         * manual-tests/inspector/profiler-test-two-execution-contexts.html: Added.
11129         * manual-tests/inspector/profiler-test-user-defined-function-calls-built-in-functions.html: Added.
11130         * manual-tests/inspector/resources: Added.
11131         * manual-tests/inspector/resources/other-frame.html: Added.
11132         * manual-tests/inspector/resources/other-window.html: Added.
11133         * manual-tests/inspector/resources/profiler-test-JS-resources.js: Added.
11135 2008-05-20  Adam Roben  <aroben@apple.com>
11137         Use KJS::List::getSlice instead of reimplementing it
11139         Rubberstamped and suggested by Sam Weinig.
11141         * bindings/js/JSConsoleCustom.cpp:
11142         (WebCore::JSConsole::assertCondition):
11144 2008-05-20  Kevin Calhoun  <kcalhoun@apple.com>
11146         Reviewed by Darin.
11148         Fix <rdar://problem/5929010> Adopt new QTKit methods for <video> implementation
11150         If the class QTVideoRendererWebKitOnly is present use it to render video,
11151         otherwise fall back to existing use of QTMovieView/QTMovieContentView.
11153         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
11154         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
11155         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
11156         (WebCore::MediaPlayerPrivate::createQTMovie):
11157         (WebCore::QTVideoRendererClass):
11158         (WebCore::MediaPlayerPrivate::detachQTMovieView):
11159         (WebCore::MediaPlayerPrivate::createQTVideoRenderer):
11160         (WebCore::MediaPlayerPrivate::destroyQTVideoRenderer):
11161         (WebCore::MediaPlayerPrivate::setUpVideoRendering):
11162         (WebCore::MediaPlayerPrivate::tearDownVideoRendering):
11163         (WebCore::MediaPlayerPrivate::load):
11164         (WebCore::MediaPlayerPrivate::cancelLoad):
11165         (WebCore::MediaPlayerPrivate::setVisible):
11166         (WebCore::MediaPlayerPrivate::paint):
11167         (-[WebCoreMovieObserver newImageAvailable:]):
11169 2008-05-19  Adam Roben  <aroben@apple.com>
11171         Fix Bug 19134: Inspector should support console.assert
11173         <https://bugs.webkit.org/show_bug.cgi?id=19134>
11175         Reviewed by Tim Hatcher.
11177         Test: manual-tests/inspector/console-assert.html
11179         * bindings/js/JSConsoleCustom.cpp:
11180         (WebCore::JSConsole::assertCondition): Added.
11181         * bindings/scripts/CodeGeneratorJS.pm: Added parsing of the
11182         ImplementationFunction extended attribute, which allows you to
11183         override the name of the C++ function used to implement this method.
11184         * manual-tests/inspector/console-assert.html: Added.
11185         * page/Console.cpp:
11186         (WebCore::Console::assertCondition): Added.
11187         * page/Console.h:
11188         * page/Console.idl: Added assert().
11190 2008-05-20  Alice Liu  <alice.liu@apple.com>
11192         Reviewed by Brady.
11194         fix <rdar://problem/5908580> 10A58: Dictionary Panel hangs in WebCore::Cache::pruneDeadResources()
11196         * loader/Cache.cpp:
11197         (WebCore::Cache::requestUserCSSStyleSheet):
11198         Add a call to resourceAccessed() to more closely mirror what is done in requestResource()
11199         (WebCore::Cache::insertInLRUList):
11200         Assert that any resource in the LRU list has been accessed.  This is early detection of a
11201         potential hang later when pruning resources, and also agrees with the early return in 
11202         removeFromLRUList().
11204 2008-05-20  Dan Bernstein  <mitz@apple.com>
11206         Reviewed by Darin Adler.
11208         - fix https://bugs.webkit.org/show_bug.cgi?id=17655
11209           <rdar://problem/5778077> REGRESSION (3.1.1-TOT): Reproducible crash calling querySelector on viewless Document
11211         Test: fast/dom/SelectorAPI/viewless-document.html
11213         * css/CSSStyleSelector.cpp:
11214         (WebCore::CSSStyleSelector::CSSStyleSelector): Updated to initialize the
11215         selector checker.
11216         (WebCore::CSSStyleSelector::init): Removed initialization of
11217         m_collectRulesOnly, which is now part of the selector checker.
11218         (WebCore::CSSStyleSelector::matchRules): Updated for renames and data
11219         moved into the selector checker.
11220         (WebCore::CSSStyleSelector::matchRulesForList): Ditto.
11221         (WebCore::CSSStyleSelector::initForStyleResolve): Added a PseudoId
11222         argument, which is used to initialize a data member of the selector
11223         checker. Updated for renames. Removed initialization of m_isXMLDoc
11224         because this bit is now initialized only once in the selector checker's
11225         constructor.
11226         (WebCore::CSSStyleSelector::SelectorChecker::SelectorChecker): Added.
11227         (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): Changed
11228         into a SelectorChecker method.
11229         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector): Added. Used
11230         by querySelector() and querySelectorAll().
11231         (WebCore::CSSStyleSelector::canShareStyleWithElement): Updated for data
11232         moved into the selector checker.
11233         (WebCore::CSSStyleSelector::matchUARules): Ditto.
11234         (WebCore::CSSStyleSelector::styleForElement):
11235         (WebCore::CSSStyleSelector::pseudoStyleForElement): Ditto. Also removed
11236         code that set the parentStyle variable after the last place it is
11237         accessed, and changed to ensure that m_style is set early in this
11238         function.
11239         (WebCore::CSSStyleSelector::adjustRenderStyle): Updated for data moved
11240         into the selector checker.
11241         (WebCore::CSSStyleSelector::styleRulesForElement): Ditto.
11242         (WebCore::CSSStyleSelector::checkSelector): Ditto. Also changed to pass
11243         the element's style and the parent style to the selector checker, as
11244         well as the dynamic pseudo variable and the selector attributes vector.
11245         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Added
11246         arguments for the style of the base element and its parent. When the
11247         elementStyle argument is 0, the style is fetched from the element
11248         and its parent as needed. Also changed to take a reference to the
11249         dynamic pseudo ID and a pointer to the vector of attributes affecting
11250         the match.
11251         (WebCore::CSSStyleSelector::applyProperty): Updated for data moved
11252         into the selector checker.
11253         (WebCore::CSSStyleSelector::checkForGenericFamilyChange): Ditto.
11254         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): Ditto.
11255         (WebCore::CSSStyleSelector::fontSizeForKeyword): Ditto.
11256         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Ditto.
11257         (WebCore::CSSStyleSelector::SelectorChecker::allVisitedStateChanged):
11258         Changed into a SelectorChecker method.
11259         (WebCore::CSSStyleSelector::SelectorChecker::visitedStateChanged):
11260         Ditto.
11262         * css/CSSStyleSelector.h:
11263         Added a SelectorChecker class and moved data and methods used in
11264         checking selectors into it.
11265         (WebCore::CSSStyleSelector::allVisitedStateChanged): Changed to call the
11266         SelectorChecker method.
11267         (WebCore::CSSStyleSelector::visitedStateChanged): Ditto.
11268         * dom/Node.cpp:
11269         (WebCore::Node::querySelector): Changed to use a SelectorChecker instead
11270         of the document's style selector.
11271         * dom/SelectorNodeList.cpp:
11272         (WebCore::SelectorNodeList::SelectorNodeList): Ditto.
11274 2008-05-20  Timothy Hatcher  <timothy@apple.com>
11276         Implements the Profiles panel and Profile view.
11278         Reviewed by Kevin McCullough.
11280         * English.lproj/localizedStrings.js: Added new strings.
11281         * page/inspector/Images/profileIcon.png: Added.
11282         * page/inspector/Images/profilesIcon.png: Changed. New icon design
11283         that fits in with the other toolbar icons.
11284         * page/inspector/ProfileView.js:
11285         (WebInspector.ProfileView): Remove custom table elements
11286         and create a DataGrid. Sorts the profile by descending total time,
11287         since the profiles aren't sorted by default.
11288         (WebInspector.ProfileView.prototype.refresh): Clears the DataGrid
11289         and recreates all the nodes. The selection is preserved.
11290         (WebInspector.ProfileView.prototype.refreshShowAsPercents): Traverse
11291         all the children and change showTotalTimeAsPercent and showSelfTimeAsPercent
11292         to match the ProfileView values. Then call refresh on the child.
11293         (WebInspector.ProfileView.prototype._sortData): Determine the sort
11294         function to call on the head profile node. Call it and then call
11295         refresh to rebuild the DataGrid.
11296         (WebInspector.ProfileView.prototype._mouseDownInDataGrid): Return early
11297         if the event is not a double-click. When it is a double-click, determine
11298         the column that was targeted and if it was total or self toggle the
11299         show as percent property. Call refreshShowAsPercents.
11300         (WebInspector.ProfileDataGridNode): 
11301         (WebInspector.ProfileDataGridNode.prototype.get data): 
11302         (WebInspector.ProfileDataGridNode.prototype.expand): 
11303         (WebInspector.ProfileDataGridNode.prototype.collapse): 
11304         (WebInspector.ProfileDataGridNode.prototype._populate): 
11305         * page/inspector/ProfilesPanel.js:
11306         (WebInspector.ProfilesPanel): 
11307         (WebInspector.ProfilesPanel.prototype.show): Populate the sidebar
11308         with all profiles. This is a workaround until the Inspector
11309         is told about new profiles.
11310         (WebInspector.ProfilesPanel.prototype.reset): Clear the sidebar and
11311         profile views.
11312         (WebInspector.ProfilesPanel.prototype.handleKeyEvent): Pass the key
11313         event to the sidebar.
11314         (WebInspector.ProfilesPanel.prototype.addProfile): Create a
11315         ProfileSidebarTreeElement object and add it to the sidebar.
11316         (WebInspector.ProfilesPanel.prototype.showProfile): Create a ProfileView
11317         and show it.
11318         (WebInspector.ProfilesPanel.prototype.closeVisibleView): Hide the
11319         visible view.
11320         (WebInspector.ProfilesPanel.prototype._startSidebarDragging): Call
11321         WebInspector.elementDragStart.
11322         (WebInspector.ProfilesPanel.prototype._sidebarDragging): Call _updateSidebarWidth.
11323         (WebInspector.ProfilesPanel.prototype._endSidebarDragging):
11324         Call WebInspector.elementDragEnd.
11325         (WebInspector.ProfilesPanel.prototype._updateSidebarWidth): Update the
11326         sidebar width based on the passed in value.
11327         (WebInspector.ProfileSidebarTreeElement): Subclass WebInspector.SidebarTreeElement.
11328         (WebInspector.ProfileSidebarTreeElement.prototype.onselect): Call ProfilesPanel.showProfile.
11329         (WebInspector.ProfileSidebarTreeElement.prototype.get mainTitle): Return profile.title.
11330         (WebInspector.ProfileSidebarTreeElement.prototype.set mainTitle): Do nothing.
11331         (WebInspector.ProfileSidebarTreeElement.prototype.get subtitle): Ditto.
11332         (WebInspector.ProfileSidebarTreeElement.prototype.set subtitle): Ditto.
11333         * page/inspector/inspector.css: New styles for the profile sidebar
11334         item and profile data grid columns.
11335         * page/inspector/inspector.js:
11336         * page/inspector/utilities.js:
11337         (Number.secondsToString): Added a higherResolution argument
11338         that returns fractional milliseconds.
11340 2008-05-20  chris fleizach  <cfleizach@apple.com>
11342         Reviewed by Darin Adler, Alice Liu
11344         <rdar://problem/3438014> Might need accessibility solution for context menus in web pages
11345         <rdar://problem/5060458> Elements without AXActions should not return kAXErrorFailure
11347         * page/AccessibilityObject.cpp:
11348         (WebCore::AccessibilityObject::clickPoint):
11349         * page/AccessibilityObject.h:
11350         * page/mac/AccessibilityObjectWrapper.mm:
11351         (-[AccessibilityObjectWrapper accessibilityActionNames]):
11352         (-[AccessibilityObjectWrapper accessibilityPerformPressAction]):
11353         (-[AccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
11354         (-[AccessibilityObjectWrapper accessibilityShowContextMenu]):
11355         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
11357 2008-05-20  Timothy Hatcher  <timothy@apple.com>
11359         Expose the ProfileNode functionName sorting functions on
11360         JavaScriptProfileNode.
11362         Reviewed by Kevin McCullough.
11364         * page/JavaScriptProfileNode.cpp:
11365         (WebCore::sortFunctionNameDescending): Call ProfileNode.
11366         (WebCore::sortFunctionNameAscending): Ditto.
11367         (WebCore::ProfileNodeClass): Add static functions.
11369 2008-05-20  Darin Adler  <darin@apple.com>
11371         Reviewed by Mitz.
11373         - a first small step of CSS DOM refactoring -- the eventual goal is to
11374           reduce StyleBase and possibly eliminate it, since it has multiple
11375           purposes and unneccessarily ties many classes together
11377         * css/CSSCursorImageValue.cpp:
11378         (WebCore::isSVGCursorIdentifier): Mark static so it has internal linkage.
11379         (WebCore::resourceReferencedByCursorElement): Ditto.
11380         (WebCore::CSSCursorImageValue::CSSCursorImageValue): Removed unused style
11381         argument.
11382         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Removed code to
11383         check if X and Y changed before changing them -- there's no reason to do
11384         that. Removed code that depended on the internals of CSSImageValue. The
11385         new code uses only protected functions rather than going right at the
11386         fields and uing internal knowledge of the base class.
11387         * css/CSSCursorImageValue.h: Added a create function, made constructor
11388         private, removed unused style argument.
11390         * css/CSSImageValue.cpp:
11391         (WebCore::CSSImageValue::CSSImageValue): Removed unused style argument.
11392         (WebCore::CSSImageValue::cachedImageURL): Added. A protected function for
11393         use by CSSCursorImageValue that gives the URL.
11394         (WebCore::CSSImageValue::clearCachedImage): Added. A protected function for
11395         use by CSSCursorImageValue that clears the CachedImage.
11396         * css/CSSImageValue.h: Added create functions, made constructors protected
11397         and private, removed unused style argument, made data members private, added
11398         some protected functions for use by CSSCursorImageValue.
11400         * css/CSSImportRule.cpp:
11401         (WebCore::CSSImportRule::setCSSStyleSheet): Changed to call checkLoaded on
11402         the parent. This is part of preparation to move the checkLoaded function from
11403         StyleBase to StyleSheet.
11404         (WebCore::CSSImportRule::insertedIntoParent): Changed code to check the URL
11405         of the style sheet to use the href function of the style sheet rather than
11406         the baseURL function. This eliminates an O(n^2) algorithm here and reduces
11407         the use of baseURL, part of preparation to move it from StyleBase
11408         to CSSStyleSheet.
11410         * css/CSSMutableStyleDeclaration.cpp:
11411         (WebCore::CSSMutableStyleDeclaration::setImageProperty): Changed to use create
11412         function instead of a direct call to new for the CSSImageValue classes.
11413         * css/CSSParser.cpp:
11414         (WebCore::CSSParser::parseValue): Ditto.
11415         (WebCore::CSSParser::parseContent): Ditto.
11416         (WebCore::CSSParser::parseFillImage): Ditto.
11417         (WebCore::CSSParser::parseBorderImage): Ditto.
11419         * css/CSSStyleSelector.cpp: Removed unneeded include of CSSImageValue.h.
11420         * rendering/style/RenderStyle.h: Removed unneeded include of
11421         CSSCursorImageValue.h, which was causing us to rebuild the world way too often.
11423         * xml/XSLImportRule.cpp:
11424         (WebCore::XSLImportRule::setXSLStyleSheet): See change to CSSImportRule above.
11425         (WebCore::XSLImportRule::loadSheet): Ditto.
11427 2008-05-20  Kevin McCullough  <kmccullough@apple.com>
11429         Rubber stamped by Adam.
11431         -Minor fix. Should not use a reference since the original may disappear.
11433         * page/Console.cpp:
11434         (WebCore::Console::profile):
11436 2008-05-20  Kevin Ollivier  <kevino@theolliviers.com>
11438         wx build fix. userAgent should return a value.
11440         * plugins/wx/PluginViewWx.cpp:
11441         (WebCore::PluginView::userAgent):
11443 2008-05-19  Timothy Hatcher  <timothy@apple.com>
11445         Expose the ProfileNode sorting functions on JavaScriptProfileNode.
11447         Reviewed by Kevin McCullough.
11449         * page/JavaScriptProfileNode.cpp:
11450         (WebCore::sortTotalTimeDescending): Call ProfileNode.
11451         (WebCore::sortTotalTimeAscending): Ditto.
11452         (WebCore::sortSelfTimeDescending): Ditto.
11453         (WebCore::sortSelfTimeAscending): Ditto.
11454         (WebCore::sortCallsDescending): Ditto.
11455         (WebCore::sortCallsAscending): Ditto.
11456         (WebCore::ProfileNodeClass): Add static functions.
11458 2008-05-19  Timothy Hatcher  <timothy@apple.com>
11460         * page/InspectorController.cpp: Change the include for
11461         JavaScriptProfile.h to sue double quotes instead of backets.
11463 2008-05-19  Timothy Hatcher  <timothy@apple.com>
11465         Adds a DataGrid object that is used for multi-column data
11466         and can contain hierarchical content with disclosure arrows.
11467         A lot of DataGrid was copied from treeoutline.js. This change
11468         makes the database views use the DataGrid. It will later be
11469         used by the ProfileView.
11471         Reviewed by Adam Roben.
11473         * page/inspector/DataGrid.js: Added. Most copied from treeoutline.js
11474         and modified to work with table elements.
11475         * page/inspector/DatabaseQueryView.js:
11476         (WebInspector.DatabaseQueryView.prototype._queryFinished):
11477         Call DatabasesPanel.dataGridForResult and adds the inline style to
11478         the DataGrid element.
11479         * page/inspector/DatabaseTableView.js:
11480         (WebInspector.DatabaseTableView.prototype._queryFinished):
11481         Call DatabasesPanel.dataGridForResult.
11482         * page/inspector/DatabasesPanel.js:
11483         (WebInspector.DatabasesPanel.prototype._tableForResult): Removed.
11484         (WebInspector.DatabasesPanel.prototype.dataGridForResult): Added.
11485         Similar to the previous _tableForResult function, but makes a DataGrid.
11486         * page/inspector/inspector.css: Changes to the data-grid
11487         style rules.
11488         * WebCore.vcproj/WebCore.vcproj: Add DataGrid.js.
11489         * page/inspector/WebKit.qrc: Ditto.
11490         * page/inspector/inspector.html: Ditto.
11492 2008-05-19  Kevin McCullough  <kmccullough@apple.com>
11494         Reviewed by Adam.
11496         -build fix.
11498         * bindings/js/JSConsoleCustom.cpp:
11499         (WebCore::JSConsole::profile):
11500         * page/Console.cpp:
11501         (WebCore::Console::profile):
11502         * page/Console.h:
11503         * page/Console.idl:
11505 2008-05-19  Alp Toker  <alp@nuanti.com>
11507         Reviewed by Maciej.
11509         GTK+/soup fixes:
11511         Remove the fragment part of the URL since the file backend doesn't
11512         deal with it.
11514         Fix a typo in the cleanup function.
11516         * platform/network/soup/ResourceHandleSoup.cpp:
11517         (WebCore::cleanupGioOperation):
11518         (WebCore::ResourceHandle::startGio):
11520 2008-05-19  Kevin McCullough  <kmccullough@apple.com>
11522         Reviewed by Adam.
11524         <rdar://problem/5770054> JavaScript profiler (10928)
11525         - Send the executing context to the profiler so it can attribute time
11526         correctly to parent functions when calling profile() and profileEnd()
11527         while nested.
11529         * page/Console.cpp:
11530         (WebCore::Console::profile):
11531         (WebCore::Console::profileEnd):
11532         * page/Console.h:
11534 2008-05-19  Alp Toker  <alp@nuanti.com>
11536         Reviewed by Anders and Beth.
11538         http://bugs.webkit.org/show_bug.cgi?id=16495
11539         [GTK] Accessibility support with ATK/AT-SPI
11541         Initial ATK/AT-SPI accessibility support for the GTK+ port.
11543         * GNUmakefile.am:
11544         * page/AccessibilityObject.cpp:
11545         (WebCore::AccessibilityObject::AccessibilityObject):
11546         (WebCore::AccessibilityObject::detach):
11547         * page/AccessibilityObject.h:
11548         * page/gtk/AXObjectCacheAtk.cpp: Added.
11549         (WebCore::AXObjectCache::detachWrapper):
11550         (WebCore::AXObjectCache::attachWrapper):
11551         (WebCore::AXObjectCache::postNotification):
11552         (WebCore::AXObjectCache::postNotificationToElement):
11553         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
11554         * page/gtk/AccessibilityObjectWrapperAtk.cpp: Added.
11555         (WebCore::AccessibilityObject::wrapper):
11556         (WebCore::AccessibilityObject::setWrapper):
11557         * page/gtk/AccessibilityObjectWrapperAtk.h: Added.
11559 2008-05-19  Anders Carlsson  <andersca@apple.com>
11561         Reviewed by Adam.
11563         <rdar://problem/5946454>
11564         Support navigator.onLine from HTML5.
11566         Add Windows NetworkStateNotifier implementation using the IP Helper API.
11568         * WebCore.vcproj/WebCore.vcproj:
11569         * platform/network/NetworkStateNotifier.h:
11570         (WebCore::updateState):
11571         * platform/network/win/NetworkStateNotifierWin.cpp: Added.
11572         (WebCore::NetworkStateNotifier::updateState):
11573         (WebCore::NetworkStateNotifier::addressChanged):
11574         (WebCore::NetworkStateNotifier::callAddressChanged):
11575         (WebCore::NetworkStateNotifier::addrChangeCallback):
11576         (WebCore::NetworkStateNotifier::registerForAddressChange):
11577         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
11579 2008-05-19  Steve Falkenburg  <sfalken@apple.com>
11581         Disable C4273, C4565 for CSSGrammar.cpp, XPathGrammar.cpp to fix build.
11582         
11583         Reviewed by Adam Roben.
11585         * WebCore.vcproj/WebCore.vcproj:
11587 2008-05-19  Adam Roben  <aroben@apple.com>
11589         Fix Bug 19065: Resources with a space in their URL don't get
11590         error/warning bubbles
11592         <https://bugs.webkit.org/show_bug.cgi?id=19065>
11594         Reviewed by Dan Bernstein.
11596         Test: manual-tests/inspector/errors-with-space in-url.html
11598         * manual-tests/inspector/errors-with-space in-url.html: Added.
11599         * page/Console.cpp:
11600         (WebCore::Console::error):
11601         (WebCore::Console::info):
11602         (WebCore::Console::log):
11603         (WebCore::Console::warn):
11604         Pass the raw URL to the Inspector, not the pretty URL, to match the
11605         URL that was used when initially telling the Inspector about this
11606         resource. We continue to pass the pretty URL to the ChromeClient for
11607         backwards compatibility.
11609 2008-05-19  Stephanie Lewis  <slewis@apple.com>
11611         Reviewed by Darin.
11613         more fast teardown performance work, WebCore plumbing
11615         * page/Chrome.cpp:
11616         (WebCore::Chrome::disableSuddenTermination):
11617         (WebCore::Chrome::enableSuddenTermination):
11618         (WebCore::ChromeClient::disableSuddenTermination):
11619         (WebCore::ChromeClient::enableSuddenTermination):
11620         * page/Chrome.h:
11621         * page/ChromeClient.h:
11622         * page/Page.cpp:
11623         (WebCore::Page::changePendingUnloadEventCount):
11624         (WebCore::Page::changePendingBeforeUnloadEventCount):
11626 2008-05-19  Kuchhal  <kuchal@yahoo.com>
11628         Reviewed by Justin.
11630         <rdar://problem/5863412> Crash when Ctrl C is pressed after a series of specific mouse events (18506)
11632         * editing/markup.cpp:
11633         (WebCore::createMarkup): Null check.
11635 2008-05-19  Chris Fleizach  <cfleizach@apple.com>
11637         Reviewed by Beth Dakin.
11639         <rdar://problem/5912195> CrashTracer: [USER] 1 crash in Mail at -[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]
11641         * page/mac/AccessibilityObjectWrapper.mm:
11642         (visiblePositionForTextMarker):
11644 2008-05-19  Ada Chan  <adachan@apple.com>
11646         Added CookieStorageWin.h/cpp, introducing methods to get/set the current CFHTTPCookieStorageRef.
11647         When setting cookies-related attributes in CFURLRequest, make sure we get them from the
11648         current CFHTTPCookieStorageRef.  Also, set the cookie storage in CFURLRequest.
11650         Reviewed by Steve Falkenburg.
11652         * WebCore.vcproj/WebCore.vcproj:
11653         * platform/network/cf/ResourceHandleCFNet.cpp:
11654         (WebCore::makeFinalRequest):
11655         * platform/network/cf/ResourceRequestCFNet.cpp:
11656         (WebCore::ResourceRequest::doUpdatePlatformRequest):
11657         * platform/network/win/CookieJarCFNetWin.cpp:
11658         (WebCore::setCookies):
11659         (WebCore::cookies):
11660         (WebCore::cookiesEnabled):
11661         * platform/network/win/CookieStorageWin.cpp: Added.
11662         (WebCore::currentCookieStorage):
11663         (WebCore::setCurrentCookieStorage):
11664         * platform/network/win/CookieStorageWin.h: Added.
11666 2008-05-19  Alexey Proskuryakov  <ap@webkit.org>
11668         Reviewed by Darin.
11670         http://bugs.webkit.org/show_bug.cgi?id=18308
11671         SVG Encoding error with fill attribute
11673         This is caused by problems with data: URL loading. Besides what is fixed by this patch,
11674         I filed <rdar://problem/5845875> for CFNetwork.
11676         While at it, fixed a related javascript: URL issue.
11678         Tests: fast/loader/data-url-encoding-html.html
11679                fast/loader/data-url-encoding-svg.html
11680                fast/loader/javascript-url-encoding.html
11682         * platform/KURL.cpp:
11683         (WebCore::KURL::parse): Fix a FIXME, use UTF-8 instead of dropping high bytes. This fixes
11684         javascript: URL handling.
11685         (WebCore::encodeRelativeString): Like mailto: URLs, data: ones are all UTF-8. Restructured
11686         the code to not search for "#" if both parts are to be encoded as UTF-8 anyway.
11688 2008-05-19  Alexey Proskuryakov  <ap@webkit.org>
11690         Reviewed by Darin.
11692         https://bugs.webkit.org/show_bug.cgi?id=18421
11693         <rdar://problem/5857369> XMLHttpRequest does not properly encode & and < in outgoing messages
11695         Test: http/tests/xmlhttprequest/serialize-document.html
11697         * bindings/js/JSXMLHttpRequestCustom.cpp:
11698         (WebCore::JSXMLHttpRequest::send): Use createMarkup() instead of Document::toString().
11700         * dom/Attr.cpp:
11701         * dom/Attr.h:
11702         * dom/Document.cpp:
11703         * dom/Document.h:
11704         * dom/DocumentFragment.cpp:
11705         * dom/DocumentFragment.h:
11706         * dom/Element.cpp:
11707         * dom/Element.h:
11708         * dom/Entity.cpp:
11709         * dom/Entity.h:
11710         * dom/EntityReference.cpp:
11711         * dom/EntityReference.h:
11712         * dom/Node.h:
11713         * dom/Text.cpp:
11714         * dom/Text.h:
11715         * html/HTMLElement.cpp:
11716         * html/HTMLElement.h:
11717         Removed most Node::toString() methods, which were massively wrong, and only used for
11718         XMLHttpRequest::send(). The remanining ones are still used in markup.cpp, but should probably
11719         be folded into it for consistency.
11721 2008-05-19  Anders Carlsson  <andersca@apple.com>
11723         Fix Windows build.
11724         
11725         * plugins/win/PluginViewWin.cpp:
11726         (WebCore::PluginView::userAgentStatic):
11727         (WebCore::PluginView::getValueStatic):
11728         (WebCore::PluginView::getValue):
11730 2008-05-19  Chris Fleizach  <cfleizach@apple.com>
11732         Reviewed by Darin Adler.
11734         <rdar://problem/5935694> AX: crash in text marker range
11736         * page/mac/AccessibilityObjectWrapper.mm:
11737         (textMarkerRangeFromMarkers):
11739 2008-05-19  Darin Adler  <darin@apple.com>
11741         - fix WebKit build
11743         * WebCore.xcodeproj/project.pbxproj: Make CSSReflectionDirection.h "private" instead of "project".
11745 2008-05-19  chris fleizach  <cfleizach@apple.com>
11747         Reviewed by Darin Adler
11749         <rdar://problem/5700830> VO: VoiceOver should fall back to title attr if form element is not labeled
11751         * page/AccessibilityRenderObject.cpp:
11752         (WebCore::AccessibilityRenderObject::title):
11754 2008-05-19  Darin Adler  <darin@apple.com>
11756         Reviewed by Mitz.
11758         - tweak CSSReflectValue, possibly fixing the leaks seen on the buildbot
11760         * WebCore.vcproj/WebCore.vcproj: Added CSSReflectionDirection.h. 
11761         * WebCore.xcodeproj/project.pbxproj: Ditto.
11762         * css/CSSReflectionDirection.h: Added.
11764         * css/CSSComputedStyleDeclaration.cpp:
11765         (WebCore::valueForReflection): Changed to use CSSReflectValue::create.
11766         * css/CSSParser.cpp:
11767         (WebCore::CSSParser::parseReflect): Ditto.
11769         * css/CSSReflectValue.h: Added a create function. Got rid of the setter
11770         functions, which had const PassRefPtr& arguments -- those probably caused
11771         the leaks although I'm not exactly sure why. Made the contructor and all
11772         the data members private.
11774         * rendering/style/RenderStyle.h: Changed to include CSSReflectionDirection.h
11775         instead of CSSReflectValue.h so we can tweak CSSReflectValue without
11776         recompiling the world.
11778 2008-05-19  Holger Hans Peter Freyther  <zecke@selfish.org>
11780         Rubber Stamped by Simon.
11782         Enforce the WebKit Coding Style.
11784         * plugins/PluginView.cpp:
11785         (WebCore::PluginView::load):
11786         (WebCore::PluginView::setValue):
11787         * plugins/gtk/PluginViewGtk.cpp:
11788         (WebCore::PluginView::setFocus):
11789         (WebCore::PluginView::show):
11790         (WebCore::PluginView::hide):
11791         (WebCore::PluginView::attachToWindow):
11792         (WebCore::PluginView::detachFromWindow):
11793         (WebCore::PluginView::getValueStatic):
11794         (WebCore::PluginView::getValue):
11795         * plugins/qt/PluginViewQt.cpp:
11796         (WebCore::PluginView::updateWindow):
11797         (WebCore::PluginView::detachFromWindow):
11798         (WebCore::PluginView::handlePostReadFile):
11799         (WebCore::PluginView::getValueStatic):
11800         (WebCore::PluginView::getValue):
11802 2008-05-14  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
11804         Reviewed by Holger.
11806         https://bugs.webkit.org/show_bug.cgi?id=18882
11807         https://bugs.webkit.org/show_bug.cgi?id=18892
11808         Based also on work by Chris Lord.
11809         
11810         Provides support for NPAPI plugins that pass NULL as their instance
11811         info. There are two kinds:
11812         - Some call NPN_UserAgent and NPN_GetValue before a PluginView has
11813         been created. For those we provide static versions of those functions.
11814         - Others call NPN_* functions with a NULL instance inside NPP_*
11815         calls, for those we've added extra currentPluginView guards.
11817         * plugins/PluginView.cpp: Add additional currentPluginView guards and
11818         some small style changes.
11819         (WebCore::PluginView::start):
11820         (WebCore::PluginView::performRequest):
11821         (WebCore::PluginView::bindingInstance):
11822         (WebCore::PluginView::handlePost):
11823         * plugins/PluginView.h: Added static versions of NPN_UserAgent and
11824         NPN_GetValue.
11825         * plugins/gtk/PluginViewGtk.cpp: Add additional currentPluginView
11826         guards and some small style changes.
11827         (WebCore::PluginView::setNPWindowRect):
11828         (WebCore::PluginView::stop):
11829         (WebCore::PluginView::userAgentStatic): Added to deal with plugins
11830         that query this before having a PluginView.
11831         (WebCore::PluginView::getValueStatic): Added to deal with plugins
11832         that call this before we have created a PluginView.
11833         (WebCore::PluginView::getValue): Moved some code to getValueStatic.
11834         (WebCore::PluginView::init):
11835         * plugins/npapi.cpp: Call PluginView::userAgentStatic
11836         and PluginView::getValueStatic if no PluginView is
11837         present.
11838         (NPN_UserAgent):
11839         (NPN_GetValue):
11840         * plugins/qt/PluginPackageQt.cpp:
11841         (WebCore::PluginPackage::fetchInfo): Corrected split args because ignoring
11842         empty entries crashed.
11843         (WebCore::PluginPackage::load): Resolve all symbols when loading plugins
11844         to protect against XPCOM dependencies.
11845         * plugins/qt/PluginViewQt.cpp: Add additional currentPluginView guards and
11846         some small style changes.
11847         (WebCore::PluginView::updateWindow):
11848         (WebCore::PluginView::setNPWindowRect):
11849         (WebCore::PluginView::stop):
11850         (WebCore::PluginView::userAgentStatic): Added to deal with plugins
11851         that query this before having a PluginView.
11852         (WebCore::PluginView::handlePostReadFile):
11853         (WebCore::PluginView::getValueStatic): Added to deal with plugins
11854         that call this before we have created a PluginView.
11855         (WebCore::PluginView::getValue): Moved some code to getValueStatic.
11856         (WebCore::PluginView::init): m_needsXEmbed init was moved to constructor.
11858 2008-05-19  Alp Toker  <alp@nuanti.com>
11860         GTK+ build fix on Mac. Conditionalize XP_UNIX use.
11862         * plugins/gtk/PluginPackageGtk.cpp:
11863         (WebCore::PluginPackage::fetchInfo):
11864         (WebCore::PluginPackage::load):
11865         * plugins/gtk/PluginViewGtk.cpp:
11867 2008-05-18  Chris Fleizach  <cfleizach@apple.com>
11869         Reviewed by Darin Adler
11871         <rdar://problem/5942076> WebKit can no longer find URL links with VoiceOVer-U command (19100)
11873         * page/AccessibilityObject.h:
11875 2008-05-18  Darin Adler  <darin@apple.com>
11877         Reviewed by Sam.
11879         - fix <rdar://problem/5943569> crash due to stale ownerNode pointer
11881         Test: fast/dom/StyleSheet/ownerNode-lifetime.html
11883         * bindings/js/JSStyleSheetCustom.cpp:
11884         (WebCore::JSStyleSheet::mark): Added code to mark ownerNode. Includes a comment about how
11885         it would be even better to solve this in the DOM rather than just in the JavaScript binding.
11887         * css/StyleSheet.idl: Added CustomMarkFunction attribute.
11889 2008-05-18  Brady Eidson  <beidson@apple.com>
11891         Reviewed by Sam Weinig
11893         Fix for https://bugs.webkit.org/show_bug.cgi?id=19111
11894         Allow `delete storage.itemName` syntax as an alias for `storage.removeItem("itemName")`
11896         Tests: storage/domstorage/localstorage/delete-removal.html
11897                storage/domstorage/sessionstorage/delete-removal.html
11899         * bindings/js/JSStorageCustom.cpp:
11900         (WebCore::JSStorage::deleteProperty): Only do the delete for non-built in properties
11901         * storage/Storage.idl:
11903 2008-05-17  Sam Weinig  <sam@webkit.org>
11905         Reviewed by Mark Rowe.
11907         Re-factor core setRequestHeader logic into setRequestHeaderInternal.
11909         * xml/XMLHttpRequest.cpp:
11910         (WebCore::XMLHttpRequest::sameOriginRequest):
11911         (WebCore::XMLHttpRequest::setRequestHeader):
11912         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
11913         * xml/XMLHttpRequest.h:
11915 2008-05-17  Sam Weinig  <sam@webkit.org>
11917         Reviewed by Mark Rowe.
11919         Differentiate between cancelation errors and generic network error in XHR.
11921         * loader/FrameLoader.cpp:
11922         (WebCore::FrameLoader::requestFromDelegate):
11923         (WebCore::FrameLoader::cancelledError):
11924         * platform/network/ResourceErrorBase.h:
11925         (WebCore::ResourceErrorBase::setIsCancelation):
11926         (WebCore::ResourceErrorBase::isCancelation):
11927         (WebCore::ResourceErrorBase::ResourceErrorBase):
11928         Add state that differentiates between errors created by cancelation and those made
11929         by all other generic network errors as this differentiation is needed by some specs.
11931         * xml/XMLHttpRequest.cpp:
11932         (WebCore::XMLHttpRequest::open):
11933         (WebCore::XMLHttpRequest::loadRequestSynchronously):
11934         (WebCore::XMLHttpRequest::clearResponseEntityBody):
11935         (WebCore::XMLHttpRequest::genericError):
11936         (WebCore::XMLHttpRequest::networkError):
11937         (WebCore::XMLHttpRequest::abortError):
11938         (WebCore::XMLHttpRequest::didFail):
11939         * xml/XMLHttpRequest.h:
11940         * xml/XMLHttpRequestException.h:
11941         (WebCore::XMLHttpRequestException::):
11942         * xml/XMLHttpRequestException.idl:
11943         Add ABORT_ERR. This error cannot be raised with the current WebKit architecture
11944         as it requires the ability to cancel a synchronous XHR, which we cannot currently
11945         do.  It may be possible in the future though.
11947 2008-05-17  Mark Rowe  <mrowe@apple.com>
11949         Reviewed by Sam Weinig.
11951         Including wtf/Platform.h or using any of the macros it defines in headers that may be
11952         included from outside of the WebKit project causes any project using those headers to
11953         fail to build.
11955         * page/mac/WebDashboardRegion.h:
11957 2008-05-17  Sam Weinig  <sam@webkit.org>
11959         Reviewed by Brady Eidson.
11961         Re-factor send() logic a little to make adding cross-site requests easier.
11963         * xml/XMLHttpRequest.cpp:
11964         (WebCore::XMLHttpRequest::send):
11965         (WebCore::XMLHttpRequest::sameOriginRequest):
11966         (WebCore::XMLHttpRequest::loadRequestSynchronously):
11967         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
11968         * xml/XMLHttpRequest.h:
11970 2008-05-16  Anders Carlsson  <andersca@apple.com>
11972         Reviewed by Mitz.
11974         Copy appcache headers.
11975         
11976         * WebCore.vcproj/WebCore.vcproj:
11978 2008-05-16  Antti Koivisto  <antti@apple.com>
11980         Reviewed by Anders.
11981         
11982         Fix <rdar://problem/5934400> 
11983         Movie controller does not update on first load of http://www.apple.com/getamac/ads/
11984         
11985         The issue is that we execute scripts while there are still pending stylesheet loads.
11986         If the script depends on a stylesheet having been applied it may fail.
11987         
11988         This will make external script execution block on external stylesheet loads. A full
11989         fix (as discussed with Hyatt) will also need to block inline script execution.
11991         Test: http/tests/local/stylesheet-and-script-load-order-http.html
11993         * html/HTMLTokenizer.cpp:
11994         (WebCore::HTMLTokenizer::notifyFinished):
11996 2008-05-16  chris fleizach  <cfleizach@apple.com>
11998         Reviewed by Jon Honeycutt
12000         <rdar://problem/5582483> Mail compose area needs to allow AXValue to be settable
12002         * page/AccessibilityRenderObject.cpp:
12003         (WebCore::AccessibilityRenderObject::isReadOnly):
12004         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
12006 2008-05-16  Stephanie Lewis  <slewis@apple.com>
12008         Reviewed by Maciej.
12010         track onbeforeunlaod event counts. Pretty much identical to unload event tracking.
12011         Also rename methods from onunload tracking to be more clear.
12013         increment/decrement event counts when onunload and onbeforeunload events are added/removed
12014         * dom/Document.cpp:
12015         (WebCore::Document::removeHTMLWindowEventListener):
12016         (WebCore::Document::addWindowEventListener):
12017         (WebCore::Document::removeWindowEventListener):
12018         (WebCore::Document::addPendingFrameUnloadEventCount):
12019         (WebCore::Document::removePendingFrameUnloadEventCount):
12020         (WebCore::Document::addPendingFrameBeforeUnloadEventCount):
12021         (WebCore::Document::removePendingFrameBeforeUnloadEventCount):
12022         * dom/Document.h:
12023         
12024         clear onunload count after unload events are dispatched
12025         * loader/FrameLoader.cpp:
12026         (WebCore::FrameLoader::stopLoading):
12028         track onunload and onbeforeunload event counts for each frame
12029         * page/EventHandler.cpp:
12030         (WebCore::EventHandler::EventHandler):
12031         (WebCore::EventHandler::addPendingFrameUnloadEventCount):
12032         (WebCore::EventHandler::removePendingFrameUnloadEventCount):
12033         (WebCore::EventHandler::clearPendingFrameUnloadEventCount):
12034         (WebCore::EventHandler::pendingFrameBeforeUnloadEventCount):
12035         (WebCore::EventHandler::addPendingFrameBeforeUnloadEventCount):
12036         (WebCore::EventHandler::removePendingFrameBeforeUnloadEventCount):
12037         (WebCore::EventHandler::clearPendingFrameBeforeUnloadEventCount):
12038         * page/EventHandler.h:
12039         
12040         clear unbeforeunload count after unbeforeunload events are detached
12041         * page/Frame.cpp:
12042         (WebCore::Frame::shouldClose):
12044         track total event count at page level
12045         * page/Page.cpp:
12046         (WebCore::Page::Page):
12047         (WebCore::Page::changePendingUnloadEventCount):
12048         (WebCore::Page::pendingBeforeUnloadEventCount):
12049         (WebCore::Page::changePendingBeforeUnloadEventCount):
12050         * page/Page.h:
12052 2008-05-16  Anders Carlsson  <andersca@apple.com>
12054         Reviewed by Mitz.
12056         <rdar://problem/5787788>
12057         REGRESSION: fast/loader/xmlhttprequest-missing-file-exception.html fails on Windows.
12058         
12059         Replicate the Mac behavior when a sync load fails.
12060         
12061         * platform/network/cf/ResourceHandleCFNet.cpp:
12062         (WebCore::ResourceHandle::loadResourceSynchronously):
12064 2008-05-16  Anders Carlsson  <andersca@apple.com>
12066         Reviewed by Brady.
12068         Parse and set the headers on the response.
12070         * loader/appcache/ApplicationCacheStorage.cpp:
12071         (WebCore::ApplicationCacheStorage::store):
12072         (WebCore::parseHeader):
12073         (WebCore::parseHeaders):
12074         (WebCore::ApplicationCacheStorage::loadCache):
12076 2008-05-16  Timothy Hatcher  <timothy@apple.com>
12078         Adds the "this" object to the Local scope section of the
12079         Scope Variables pane.
12081         <rdar://problem/5774773> Web Inspector doesn't show the "this"
12082         object in its variables list (10438)
12084         Reviewed by Oliver Hunt.
12086         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
12087         (WebCore::JSJavaScriptCallFrame::thisObject): Returns the thisObject
12088         of the JavaScriptCallFrame impl. Returns jsNull if the impl is invalid.
12089         * page/JavaScriptCallFrame.cpp:
12090         (WebCore::JavaScriptCallFrame::thisObject): Return the thisValue from
12091         the ExecState. Return 0 if m_exec is null.
12092         * page/JavaScriptCallFrame.h:
12093         * page/JavaScriptCallFrame.idl: Add thisObject.
12094         * page/inspector/ObjectPropertiesSection.js:
12095         (WebInspector.ObjectPropertiesSection): Adds two new arguments.
12096         The ignoreHasOwnProperty tells the section to show all properties,
12097         including inherited ones. And extraProperties is an object of
12098         additional properties to show.
12099         (WebInspector.ObjectPropertiesSection.prototype): Honor the
12100         extraProperties and ignoreHasOwnProperty properties.
12101         * page/inspector/ScopeChainSidebarPane.js:
12102         (WebInspector.ScopeChainSidebarPane.prototype.update): Add a this
12103         property to an extra object that is passed to the ObjectPropertiesSection.
12104         Also pass true for ignoreHasOwnProperty since we want to show all properties.
12106 2008-05-16  Anders Carlsson  <andersca@apple.com>
12108         Reviewed by Brady.
12110         Add mimeType and textEncodingName to the resource table.
12111         
12112         * loader/appcache/ApplicationCacheStorage.cpp:
12113         (WebCore::ApplicationCacheStorage::openDatabase):
12114         (WebCore::ApplicationCacheStorage::store):
12115         (WebCore::ApplicationCacheStorage::loadCache):
12117 2008-05-16  Kevin McCullough  <kmccullough@apple.com>
12119         Reviewed by Tim.
12121         <rdar://problem/5770054> JavaScript profiler (10928)
12122         Use a Vector instead of a Deque since we don't use the extra capabilities
12123         of the Deque.
12125         * page/JavaScriptProfileNode.cpp:
12126         (WebCore::getChildren):
12127         (WebCore::toJS):
12129 2008-05-16  Anders Carlsson  <andersca@apple.com>
12131         Reviewed by Brady.
12133         Add a version table to the database.
12135         * loader/appcache/ApplicationCacheStorage.cpp:
12136         (WebCore::ApplicationCacheStorage::verifySchemaVersion):
12137         (WebCore::ApplicationCacheStorage::openDatabase):
12138         * loader/appcache/ApplicationCacheStorage.h:
12140 2008-05-16  Timothy Hatcher  <timothy@apple.com>
12142         Adds the ability to evaluate expressions in the local scope
12143         of the selected call frame.
12145         https://bugs.webkit.org/show_bug.cgi?id=19052
12147         Reviewed by Geoff Garen.
12149         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
12150         (WebCore::JSJavaScriptCallFrame::evaluate): Pass the exception
12151         from evaluate to the calling ExecState.
12152         * page/JavaScriptCallFrame.cpp:
12153         (WebCore::JavaScriptCallFrame::evaluate): Added an exception out
12154         argument. Simplified the code by calling KJS:eval directly.
12155         * page/JavaScriptCallFrame.h: Change evalutate to take an exception
12156         out argument.
12157         * page/inspector/Console.js: Check if the debugger is paused and
12158         call evaluateInSelectedCallFrame on the Scripts panel.
12159         * page/inspector/ScriptsPanel.js: Added a paused getter and
12160         evaluateInSelectedCallFrame which does the evaluation and updates
12161         the scope variables pane afterwards.
12163 2008-05-16  Timothy Hatcher  <timothy@apple.com>
12165         Fixed the bug where the Inspector node highlight would not show
12166         in the correct place for nodes in frames.
12168         <rdar://problem/5712834> Elements in iframes are highlighted incorrectly (14408)
12170         Reviewed by John Sullivan.
12172         * page/InspectorController.cpp:
12173         (WebCore::convertFromFrameToMainFrame): Helper function to convert
12174         IntRect coordinates from one frame to the main frame.
12175         (WebCore::InspectorController::drawNodeHighlight): Call the
12176         convertFromFrameToMainFrame helper for all the rects we get from
12177         the node since they are in the owner frame's coordinate space.
12179 2008-05-16  Julien Chaffraix  <jchaffraix@webkit.org>
12181         Reviewed by Eric.
12183         Preparatory work for bug 9191: JS*ElementWrapperFactory should be autogenerated
12185         Make video tags use a header guard so that make_names.pl for factory generation.
12187         - Add video tag guard in HTMLTagNames.in & give an extraDefines parameter to make_names.pl
12188         when generating HTMLNames.
12190         - Modify the different build systems to accomodate the new parameter.
12192         - Small make_names.pl clean up (mainly code generated coding style issue).
12194         * DerivedSources.make: Add HTML_FLAGS and pass it to make_names.pl
12195         if it is defined (similar to SVG) 
12197         * GNUmakefile.am: Add HTML_FEATURES & HTML_FLAGS and pass it to
12198         make_names.pl if HTML_FLAGS is defined.
12200         * WebCore.pro: Pass $${DEFINES} to make_names.pl.
12202         * dom/make_names.pl: 
12203         * html/HTMLElement.cpp:
12204         (WebCore::inlineTagList): Add ENABLE(VIDEO) guard.
12205         * html/HTMLTagNames.in: Ditto.
12207 2008-05-16  Anders Carlsson  <andersca@apple.com>
12209         Reviewed by Mitz.
12211         Fire progress events.
12212         
12213         * loader/appcache/ApplicationCacheGroup.cpp:
12214         (WebCore::ApplicationCacheGroup::startLoadingEntry):
12216 2008-05-16  Anders Carlsson  <andersca@apple.com>
12218         Reviewed by John.
12220         Handle the case where the main resource load is cancelled while the cache attempt is in progress.
12221         
12222         * loader/DocumentLoader.cpp:
12223         (WebCore::DocumentLoader::mainReceivedError):
12224         Tell the group that the main resource failed to load.
12225         
12226         * loader/appcache/ApplicationCacheGroup.cpp:
12227         (WebCore::ApplicationCacheGroup::failedLoadingMainResource):
12228         Call cacheUpdateFailed.
12229         
12230         (WebCore::ApplicationCacheGroup::cacheUpdateFailed):
12231         Stop loading if the update failed.
12232         
12233         * loader/appcache/ApplicationCacheGroup.h:
12235 2008-05-16  Chris Fleizach  <cfleizach@apple.com>
12237         Reviewed by Alice Liu
12239         <rdar://problem/5710317> REGRESSION:Selecting ranges of text should be possible using the keyboard (15310)
12241         * WebCore.base.exp:
12242         * editing/VisiblePosition.cpp:
12243         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
12244         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
12245         * page/AXObjectCache.cpp:
12246         * page/AXObjectCache.h:
12247         (WebCore::AXObjectCache::enableEnhancedUserInterfaceAccessibility):
12248         (WebCore::AXObjectCache::accessibilityEnabled):
12249         (WebCore::AXObjectCache::accessibilityEnhancedUserInterfaceEnabled):
12250         * page/AccessibilityRenderObject.cpp:
12251         (WebCore::AccessibilityRenderObject::visiblePositionRange):
12252         (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
12253         (WebCore::AccessibilityRenderObject::addChildren):
12254         (WebCore::AccessibilityRenderObject::actionVerb):
12255         * page/EventHandler.cpp:
12256         (WebCore::EventHandler::handleKeyboardSelectionMovement):
12257         (WebCore::EventHandler::defaultKeyboardEventHandler):
12258         * page/EventHandler.h:
12260 2008-05-15  Ariya Hidayat  <ariya.hidayat@trolltech.com>
12262         Reviewed by Simon.
12264         Since WebKitGtk is fully using autotools now, clean-up the .pro/.pri files
12265         from gtk-port.
12267         * WebCore.pro:
12269 2008-05-16  Simon Hausmann  <hausmann@webkit.org>
12271         Fix the Gtk build.
12273         * GNUmakefile.am: Added rendering/style to the include paths.
12275 2008-05-16  Simon Hausmann  <hausmann@webkit.org>
12277         Fix the Qt build.
12279         * WebCore.pro: Added rendering/style to the include paths
12280         * page/AXObjectCache.cpp:
12281         (WebCore::AXObjectCache::handleActiveDescendantChanged): Don't compile
12282         this method unless a17n is enabled.
12284 2008-05-15  Rob Buis  <buis@kde.org>
12286         Reviewed by Dave Hyatt.
12288         https://bugs.webkit.org/show_bug.cgi?id=17433
12289         getComputedStyle() -> clip returns empty string
12291         Make getComputedStyle return a shape value for clip
12292         if it is set.
12294         Tests: fast/css/getPropertyValue-clip.html
12296         * css/CSSComputedStyleDeclaration.cpp:
12297         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
12299 2008-05-15  Kevin Ollivier  <kevino@theolliviers.com>
12301         wx build fix. Add rendering/style to includes dir.
12303         * webcore-base.bkl:
12305 2008-05-15  Alice Liu  <alice.liu@apple.com>
12307         Reviewed by Beth Dakin.
12309         Fixed <rdar://problem/5882283> Implement ARIA aria-activedescendant
12310         Also added support for aria roles listbox and option, and aria-selected, 
12311         and aria-multiselectable for listboxes
12313         * dom/Element.cpp:
12314         (WebCore::Element::attributeChanged):
12315         * dom/Element.h:
12316         * dom/StyledElement.cpp:
12317         (WebCore::StyledElement::attributeChanged):
12318         * html/HTMLAttributeNames.in:
12319         * page/AXObjectCache.cpp:
12320         (WebCore::AXObjectCache::handleActiveDescendantChanged):
12321         * page/AXObjectCache.h:
12322         (WebCore::AXObjectCache::accessibilityEnabled):
12323         (WebCore::AXObjectCache::handleActiveDescendantChanged):
12324         * page/AccessibilityListBox.cpp:
12325         (WebCore::AccessibilityListBox::selectedChildren):
12326         (WebCore::AccessibilityListBox::visibleChildren):
12327         * page/AccessibilityListBox.h:
12328         * page/AccessibilityListBoxOption.h:
12329         (WebCore::AccessibilityListBoxOption::selectedChildren):
12330         (WebCore::AccessibilityListBoxOption::visibleChildren):
12331         * page/AccessibilityObject.cpp:
12332         * page/AccessibilityObject.h:
12333         (WebCore::AccessibilityObject::isListBox):
12334         (WebCore::AccessibilityObject::shouldFocusActiveDescendant):
12335         (WebCore::AccessibilityObject::activeDescendant):
12336         (WebCore::AccessibilityObject::handleActiveDescendantChanged):
12337         * page/AccessibilityRenderObject.cpp:
12338         (WebCore::AccessibilityRenderObject::title):
12339         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
12340         (WebCore::AccessibilityRenderObject::focusedUIElement):
12341         (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant):
12342         (WebCore::AccessibilityRenderObject::activeDescendant):
12343         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
12344         (WebCore::RoleEntry::):
12345         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
12346         (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
12347         (WebCore::AccessibilityRenderObject::selectedChildren):
12348         (WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren):
12349         (WebCore::AccessibilityRenderObject::visibleChildren):
12350         * page/AccessibilityRenderObject.h:
12351         (WebCore::AccessibilityRenderObject::isDetached):
12352         * page/mac/AccessibilityObjectWrapper.mm:
12353         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
12355 2008-05-15  Timothy Hatcher  <timothy@apple.com>
12357         Adds an error and warning count indicator at the bottom right in the
12358         Inspector's status bar.
12360         https://bugs.webkit.org/show_bug.cgi?id=18650
12362         Initial implementation by Adam Roben.
12363         Reviewed by Sam Weinig.
12365         Test: manual-tests/inspector/error-warning-count.html
12367         * English.lproj/localizedStrings.js: Added new strings.
12368         * manual-tests/inspector/error-warning-count.html: Added.
12369         * page/inspector/Console.js:
12370         (WebInspector.Console.prototype.show): Don't do anything if visible.
12371         (WebInspector.Console.prototype.hide): Don't do anything if hidden.
12372         Temporally set properties and classes to mimic the post-animation
12373         values so panels like Elements in their updateStatusBarItems call will
12374         size things to fit the final location. 
12375         * page/inspector/ElementsPanel.js:
12376         (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
12377         Account for the #error-warning-count width when sizing breadcrumbs. 
12378         * page/inspector/Resource.js:
12379         (WebInspector.Resource.prototype.set errors): Update the global error count.
12380         (WebInspector.Resource.prototype.set warnings): Update the global warning count.
12381         * page/inspector/inspector.css: Make .hidden's display property
12382         !important to ensure things really hide, and added styling for the new
12383         #error-warning-count element.
12384         * page/inspector/inspector.html: Added an #error-warning-count div
12385         in the #anchored-status-bar-items div.
12386         * page/inspector/inspector.js:
12387         (WebInspector.get errors): Added.
12388         (WebInspector.set errors): Added. Calls _updateErrorAndWarningCounts.
12389         (WebInspector.get warnings): Added.
12390         (WebInspector.set warnings): Added. Calls _updateErrorAndWarningCounts.
12391         (WebInspector._updateErrorAndWarningCounts): Added. Update the
12392         #error-warning-count div with the current error/warning count.
12393         (WebInspector.loaded): Add a click event listener to the
12394         #error-warning-count element that will show the Console. Call
12395         _updateErrorAndWarningCounts to display the initial error/warning counts.
12397 2008-05-15  Timothy Hatcher  <timothy@apple.com>
12399         Fixes a bug in the view source parsing of text within <script>,
12400         <style>, <xmp>, <textarea> and other special tags. The text was
12401         being parsed as HTML and would be syntax highlighted if a "<"
12402         was encountered.
12404         <rdar://problem/5790805> Inspector's source view missing some words,
12405         doubles others in JS source in <script> tag (17752)
12407         Reviewed by Dave Hyatt.
12409         Added test: fast/frames/viewsource-plain-text-tags.html
12411         * html/HTMLTokenizer.cpp:
12412         (WebCore::HTMLTokenizer::scriptHandler): Set scriptCodeSize and
12413         scriptCodeResync to zero before an early return in view source mode.
12414         This was causing text from a previous script tag to show up in
12415         then next style tag.
12416         (WebCore::HTMLTokenizer::parseTag): Enter an if block in view source
12417         mode even if n is null. The n is property guarded in other places
12418         and not used by view source mode. Removes a redundant null check on n.
12419         Add a new null check of n before setting scriptSrcCharset. Other code
12420         in HTMLTokenizer is already guarded for this code path. 
12422 2008-05-15  Timothy Hatcher  <timothy@apple.com>
12424         Changes the Web Inspector node highlight to be less aggressive
12425         and only highlight when hovering over the selected node in the DOM
12426         tree or breadcrumbs. You can highlight on hover for any node if
12427         you hold down the Alt/Option key while hovering.
12429         Reviewed by Kevin McCullough.
12431         * page/inspector/ElementsPanel.js:
12432         * page/inspector/inspector.js:
12434 2008-05-15  Stephanie Lewis  <slewis@apple.com>
12436         Fix windows build
12438         * loader/FrameLoader.cpp:
12439         (WebCore::FrameLoader::stopLoading):
12441 2008-05-15  Stephanie Lewis  <slewis@apple.com>
12443         Reviewed by Anders.
12444         
12445         export a symbol needed for fast teardown
12447         * WebCore.base.exp:
12449 2008-05-15  Stephanie Lewis  <slewis@apple.com>
12451         Reviewed by Anders.
12453         Keep track on pending unload event counts
12455         No change in behavior so no new tests, but I am dumping the 
12456         unload event count to track the new variable.
12458         * WebCore.base.exp:
12460         increment/decrement the count when an event is added/removed
12461         * dom/Document.cpp:
12462         (WebCore::Document::removeHTMLWindowEventListener):
12463         (WebCore::Document::addWindowEventListener):
12464         (WebCore::Document::removeWindowEventListener):
12465         (WebCore::Document::setPendingFrameUnloadEventCount):
12466         * dom/Document.h:
12468         set the count to 0 for each frame after the unload event has been dispatched
12469         * loader/FrameLoader.cpp:
12470         (WebCore::FrameLoader::stopLoading):
12472         keep track of the number of pending unload events for the eventHandler's frame
12473         * page/EventHandler.cpp:
12474         (WebCore::EventHandler::EventHandler):
12475        (WebCore::EventHandler::pendingFrameUnloadEventCount):
12476         (WebCore::EventHandler::setPendingFrameUnloadEventCount):
12477         * page/EventHandler.h:
12479         keep track of the total number of pending unload events for all of the frames
12480         * page/Page.cpp:
12481         (WebCore::Page::Page):
12482         (WebCore::Page::pendingUnloadEventCount):
12483         (WebCore::Page::setPendingUnloadEventCount):
12484         * page/Page.h:
12486 2008-05-15  Steve Falkenburg  <sfalken@apple.com>
12488         Fix build.
12490         * WebCore.vcproj/WebCore.vcproj:
12492 2008-05-15  Steve Falkenburg  <sfalken@apple.com>
12494         Fix build.
12496         * WebCore.vcproj/WebCore.vcproj:
12498 2008-05-15  Steve Falkenburg  <sfalken@apple.com>
12500         Fix build.
12502         * WebCore.vcproj/WebCore.vcproj:
12504 2008-05-15  David Kilzer  <ddkilzer@apple.com>
12506         Bug 19085: font-family: initial sets font-family differently than font: initial
12508         <https://bugs.webkit.org/show_bug.cgi?id=19085>
12509         <rdar://problem/5939391>
12511         Reviewed by David Hyatt.
12513         Test: fast/css/font-family-initial.html
12515         * css/CSSStyleSelector.cpp:
12516         (WebCore::CSSStyleSelector::applyProperty): Don't set family if first
12517         family of initial font description is empty.
12519 2008-05-15  David Hyatt  <hyatt@apple.com>
12521         Move RenderStyle into a new subdirectory, rendering/style/, in preparation for breaking it up into
12522         a bunch of smaller files.
12524         Reviewed by Dan Bernstein
12526         * GNUmakefile.am:
12527         * WebCore.pro:
12528         * WebCore.vcproj/WebCore.vcproj:
12529         * WebCore.xcodeproj/project.pbxproj:
12530         * WebCoreSources.bkl:
12531         * rendering/RenderStyle.cpp: Removed.
12532         * rendering/RenderStyle.h: Removed.
12533         * rendering/style: Added.
12534         * rendering/style/RenderStyle.cpp: Copied from rendering/RenderStyle.cpp.
12535         * rendering/style/RenderStyle.h: Copied from rendering/RenderStyle.h.
12537 2008-05-15  David Kilzer  <ddkilzer@apple.com>
12539         Fix leaks when stopping a page from loading
12541         Patch suggested by Antti.  Reviewed by Antti.
12543         * loader/DocLoader.cpp:
12544         (WebCore::DocLoader::clearPreloads): If a resource is in m_preloads but
12545         never made it to the cache, delete it to prevent it from leaking.
12547 2008-05-15  Julien Chaffraix  <jchaffraix@webkit.org>
12549         Reviewed by Darin.
12551         https://bugs.webkit.org/show_bug.cgi?id=13942
12552         ASSERTION FAILED: !attrName.contains('/') in HTMLTokenizer.cpp:132 when loading http://bamanzi.blogeden.cn/
12554         In HTML, when an attribute was null (for example when we parse '="somevalue"'
12555         (attribute forgotten or there is a space between the attribute and the '=')),
12556         the fallback was to assign the value to the attribute. However if the value was
12557         a url or did contain a '/', we would trigger the assertion.
12559         To avoid that, we check the value before assigning it now and do not assign it
12560         if it means adding a '/'.
12562         Test: fast/parser/assertion-empty-attribute.html
12564         * html/HTMLTokenizer.cpp:
12565         (WebCore::HTMLTokenizer::parseTag): Add check for '/' in value before
12566         assigning it to an attribute when the attribute is null.
12568 2008-05-15  Kevin Ollivier  <kevino@theolliviers.com>
12570         wx build fix for recent breakages. Add EventLoopWx.cpp, update the Bakefiles,
12571         and add stubs for new Plugins functions. Also move plugin functions outside of
12572         TemporaryLinkStubs.cpp so that they are more noticeable.
12574         * WebCoreSources.bkl:
12575         * platform/wx/EventLoopWx.cpp: Added.
12576         (WebCore::EventLoop::cycle):
12577         * platform/wx/TemporaryLinkStubs.cpp:
12578         * plugins/wx: Added.
12579         * plugins/wx/PluginDataWx.cpp: Added.
12580         (WebCore::PluginData::initPlugins):
12581         (WebCore::PluginData::refresh):
12582         * plugins/wx/PluginDatabaseWx.cpp: Added.
12583         (WebCore::PluginDatabase::getPluginPathsInDirectories):
12584         (WebCore::PluginDatabase::defaultPluginDirectories):
12585         (WebCore::PluginDatabase::isPreferredPluginDirectory):
12586         * plugins/wx/PluginPackageWx.cpp: Added.
12587         (WebCore::PluginPackage::determineQuirks):
12588         (WebCore::PluginPackage::fetchInfo):
12589         (WebCore::PluginPackage::load):
12590         (WebCore::PluginPackage::hash):
12591         (WebCore::PluginPackage::equal):
12592         (WebCore::PluginPackage::compareFileVersion):
12593         * plugins/wx/PluginViewWx.cpp: Added.
12594         (WebCore::PluginView::updateWindow):
12595         (WebCore::PluginView::setFocus):
12596         (WebCore::PluginView::show):
12597         (WebCore::PluginView::hide):
12598         (WebCore::PluginView::paint):
12599         (WebCore::PluginView::handleKeyboardEvent):
12600         (WebCore::PluginView::handleMouseEvent):
12601         (WebCore::PluginView::setParent):
12602         (WebCore::PluginView::setNPWindowRect):
12603         (WebCore::PluginView::attachToWindow):
12604         (WebCore::PluginView::detachFromWindow):
12605         (WebCore::PluginView::stop):
12606         (WebCore::PluginView::userAgent):
12607         (WebCore::PluginView::handlePostReadFile):
12608         (WebCore::PluginView::getValue):
12609         (WebCore::PluginView::invalidateRect):
12610         (WebCore::PluginView::invalidateRegion):
12611         (WebCore::PluginView::forceRedraw):
12612         (WebCore::PluginView::~PluginView):
12613         (WebCore::PluginView::init):
12614         * webcore-wx.bkl:
12616 2008-05-15  Adam Treat  <treat@kde.org>
12618         Reviewed by Simon.
12620         Don't try to setCompositionMode for devices that do not support PorterDuff
12622         * platform/graphics/qt/GraphicsContextQt.cpp:
12623         (WebCore::TransparencyLayer::TransparencyLayer):
12624         (WebCore::GraphicsContext::strokeRect):
12625         (WebCore::GraphicsContext::clip):
12627 2008-05-15  Adele Peterson  <adele@apple.com>
12629         Reviewed and landed by Alexey.
12631         Use TextIterator in +[NSAttributedString _web_attributedStringFromRange:].
12633         * WebCore.base.exp: Exported TextIterator methods.
12635 2008-05-15  Simon Hausmann  <hausmann@webkit.org>
12637         Fix the Qt build by adding NetworkStateNotifier.cpp to the build.
12639         * WebCore.pro:
12641 2008-05-14  Dan Bernstein  <mitz@apple.com>
12643         Reviewed by Mark Rowe.
12645         - fix <rdar://problem/5907633> Memory corruption after closing a document that uses box-reflect
12647         Test: fast/reflections/teardown-crash.html
12649         * rendering/RenderLayer.cpp:
12650         (WebCore::RenderLayer::~RenderLayer): Changed to not call removeLayers()
12651         on the reflection if the document is being destroyed, because in that
12652         case the layer tree is not being maintained.
12654 2008-05-14  Kevin McCullough  <kmccullough@apple.com>
12656         Reviewed by Tim.
12658         <rdar://problem/5770054> JavaScript profiler (10928)
12659         - Expose the new Profiler functions to the WebInspector.
12661         * page/JavaScriptProfileNode.cpp:
12662         (WebCore::getTotalPercent):
12663         (WebCore::getSelfPercent):
12664         (WebCore::ProfileNodeClass):
12666 2008-05-14  Timothy Hatcher  <timothy@apple.com>
12668         Fixes a crash in JavaScriptDebugServer::returnEvent when debugging
12669         code that contains an eval. This change makes stepping into eval
12670         code work as expected.
12672         http://bugs.webkit.org/show_bug.cgi?id=19038
12674         Reviewed by Kevin McCullough.
12676         Tested with: manual-tests/inspector/returnEvent-crash.html
12678         * manual-tests/inspector/returnEvent-crash.html: Added.
12679         * page/JavaScriptDebugServer.cpp:
12680         (WebCore::JavaScriptDebugServer::sourceParsed): Adds #ifdefed
12681         debugging code to prevent the sourceID and URL.
12682         (WebCore::updateCurrentCallFrame): Added. A helper function that
12683         is called from all 4 of the debugger hooks below. This function will
12684         update and/or create JavaScriptCallFrames to match the exec state,
12685         sourceID and lineNumber passed into it. Contains #ifdefed debugging
12686         code that was helpful while fixing this bug.
12687         (WebCore::JavaScriptDebugServer::callEvent): Call updateCurrentCallFrame
12688         before pauseIfNeeded.
12689         (WebCore::JavaScriptDebugServer::atStatement): Ditto.
12690         (WebCore::JavaScriptDebugServer::returnEvent): Ditto.
12691         (WebCore::JavaScriptDebugServer::exception): Ditto.
12693 2008-05-14  Alp Toker  <alp@nuanti.com>
12695         GTK+ build fix for r33457. Add NetworkStateNotifier.cpp to the build.
12697         * GNUmakefile.am:
12699 2008-05-14  Alp Toker  <alp@nuanti.com>
12701         GTK+ build fix. Include value.h from kjs, not JavaScriptCore.
12703         * page/JavaScriptProfile.cpp:
12704         * page/JavaScriptProfileNode.cpp:
12706 2008-05-14  Adam Roben  <aroben@apple.com>
12708         Windows release build fix
12710         * WebCore.vcproj/WebCore.vcproj: Make sure the warnings we disable on
12711         XPathGrammar.cpp are disabled for all configurations, not just
12712         Debug_Internal.
12714 2008-05-14  Kevin McCullough  <kmccullough@apple.com>
12716         Reviewed by Sam.
12718         <rdar://problem/5770054> JavaScript profiler (10928)
12719         - Rename FunctionCallProfile to ProfileNode
12721         * ForwardingHeaders/profiler/FunctionCallProfile.h: Removed.
12722         * ForwardingHeaders/profiler/ProfileNode.h: Copied from ForwardingHeaders/profiler/FunctionCallProfile.h.
12723         * GNUmakefile.am:
12724         * WebCore.pro:
12725         * WebCore.vcproj/WebCore.vcproj:
12726         * WebCore.xcodeproj/project.pbxproj:
12727         * WebCoreSources.bkl:
12728         * page/JavaScriptFunctionCallProfile.cpp: Removed.
12729         * page/JavaScriptFunctionCallProfile.h: Removed.
12730         * page/JavaScriptProfile.cpp:
12731         * page/JavaScriptProfileNode.cpp: Copied from page/JavaScriptFunctionCallProfile.cpp.
12732         (WebCore::ProfileNodeCache):
12733         (WebCore::getFunctionName):
12734         (WebCore::getTotalTime):
12735         (WebCore::getSelfTime):
12736         (WebCore::getNumberOfCalls):
12737         (WebCore::getChildren):
12738         (WebCore::finalize):
12739         (WebCore::ProfileNodeClass):
12740         (WebCore::toJS):
12741         * page/JavaScriptProfileNode.h: Copied from page/JavaScriptFunctionCallProfile.h.
12743 2008-05-13  Beth Dakin  <bdakin@apple.com>
12745         Reviewed by Brady.
12747         This patch adds support for the ARIA progressbar role and the 
12748         following ARIA states (ie HTML attributes): aria-checked, aria-
12749         level, aria-pressed, aria-valuenow, aria-valuemin, and aria-
12750         valuemax.
12752         * html/HTMLAttributeNames.in:
12753         * page/AccessibilityObject.h:
12754         (WebCore::AccessibilityObject::isProgressIndicator):
12755         (WebCore::AccessibilityObject::valueForRange):
12756         (WebCore::AccessibilityObject::maxValueForRange):
12757         (WebCore::AccessibilityObject::minValueForRange):
12758         * page/AccessibilityRenderObject.cpp:
12759         (WebCore::AccessibilityRenderObject::isProgressIndicator):
12760         (WebCore::AccessibilityRenderObject::isPressed): Check the aria-
12761         pressed attribute if this is an ARIA button.
12762         (WebCore::AccessibilityRenderObject::headingLevel): Check the aria-
12763         level attribute if this is an ARIA heading.
12764         (WebCore::AccessibilityRenderObject::intValue): Check the aria-
12765         checked attribute if this is an ARIA radio button or checkbox.
12766         (WebCore::AccessibilityRenderObject::valueForRange):
12767         (WebCore::AccessibilityRenderObject::maxValueForRange):
12768         (WebCore::AccessibilityRenderObject::minValueForRange):
12769         (WebCore::RoleEntry::):
12770         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
12771         * page/AccessibilityRenderObject.h:
12772         * page/mac/AccessibilityObjectWrapper.mm:
12773         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
12774         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
12776 2008-05-14  Kevin McCullough  <kmccullough@apple.com>
12778         Reviewed by John.
12780         -<rdar://problem/5770054> JavaScript profiler (10928)
12781         Use the FunctionCallProfile's new total and self time functions.
12783         * page/JavaScriptFunctionCallProfile.cpp:
12784         (WebCore::getTotalTime):
12785         (WebCore::getSelfTime):
12787 2008-05-14  Anders Carlsson  <andersca@apple.com>
12789         Reviewed by Adam.
12791         Don't try to store the resource data if it's empty.
12792         
12793         * loader/appcache/ApplicationCacheStorage.cpp:
12794         (WebCore::ApplicationCacheStorage::store):
12796 2008-05-14  Adam Roben  <aroben@apple.com>
12798         Windows build fix
12800         * platform/network/NetworkStateNotifier.cpp: Added a missing #include.
12801         * platform/network/NetworkStateNotifier.h:
12802         (WebCore::NetworkStateNotifier::NetworkStateNotifier): Removed 'void'
12803         return type from the constructor, and fixed the spelling of a member
12804         variable.
12806 2008-05-14  Kevin McCullough  <kmccullough@apple.com>
12808         Reviewed by Adam.
12810         <rdar://problem/5770054> JavaScript profiler (10928)
12811         - Add support for interacting with the JavaScriptCore profiler.
12813         * ForwardingHeaders/profiler/FunctionCallProfile.h: Added.
12814         * ForwardingHeaders/profiler/Profile.h: Added.
12815         * GNUmakefile.am: Add the new files to all the projects.
12816         * WebCore.pro:
12817         * WebCore.vcproj/WebCore.vcproj:
12818         * WebCore.xcodeproj/project.pbxproj:
12819         * WebCoreSources.bkl:
12820         * page/InspectorController.cpp: Add the ability to retrieve all of the
12821         profiles in JavaScript from the InspectorController.
12822         (WebCore::allProfiles):
12823         (WebCore::InspectorController::windowScriptObjectAvailable):
12824         * page/JavaScriptFunctionCallProfile.cpp: Added. Wrapper around the JSC
12825         FunctionCallProfile.
12826         (WebCore::functionCallProfileCache): This cache makes sure we don't
12827         needlessly create duplicate wrappers around the same
12828         FunctionCallProfile*.
12829         (WebCore::getFunctionName): Callback to return the name of the function.
12830         (WebCore::getTotalTime): Callback to return the total time spent in the
12831         function.
12832         (WebCore::getSelfTime): Callback to return the time spent in self (total
12833         - time in children) in the function.
12834         (WebCore::getNumberOfCalls): Callback to return the number of times this
12835         function was called.
12836         (WebCore::getChildren): Callback to return the children of this function
12837         where the children are the functions this function called.
12838         (WebCore::finalize): Cleanup.
12839         (WebCore::functionCallProfileClass): Define the JSClassRef for this
12840         object.
12841         (WebCore::toJS): Create a conversion function to make a usable JSValue
12842         to wrap the FunctionCallProfile in JSC.
12843         * page/JavaScriptFunctionCallProfile.h: Added.
12844         * page/JavaScriptProfile.cpp: Added. Wrapper around the JSC Profile.
12845         (WebCore::profileCache): This cache makes sure we don't needlessly
12846         create duplicate wrappers aroudn the same Profile*.
12847         (WebCore::getHeadCallback): Callback to return the head of the graph of
12848         the functions profiled durring this profile's run.
12849         (WebCore::finalize):
12850         (WebCore::profileClass): Define the JSClassRef for this object.
12851         (WebCore::toJS): Create a conversion function to make a usable JSValue
12852         to wrap the Profile from JSC.
12853         * page/JavaScriptProfile.h: Added.
12855 2008-05-14  David Hyatt  <hyatt@apple.com>
12857         Fix for bug https://bugs.webkit.org/show_bug.cgi?id=16130.
12859         Opacity, transforms, reflections and masks should not honor z-index unless the element is also
12860         positioned.  Always reset to auto if the element is not positioned (and then the following code will
12861         adjust auto to 0 as needed).
12863         Reviewed by Dan Bernstein
12865         * css/CSSStyleSelector.cpp:
12866         (WebCore::CSSStyleSelector::adjustRenderStyle):
12868 2008-05-14  Anders Carlsson  <andersca@apple.com>
12870         Reviewed by Brady.
12872         <rdar://problem/5931742> Support navigator.onLine from HTML5
12873         
12874         * WebCore.vcproj/WebCore.vcproj:
12875         * WebCore.xcodeproj/project.pbxproj:
12876         Add NetworkStateNotifier files.
12877         
12878         * dom/EventNames.h:
12879         Add offline and online events.
12880         
12881         * page/Navigator.cpp:
12882         (WebCore::Navigator::onLine):
12883         * page/Navigator.h:
12884         * page/Navigator.idl:
12885         Add navigator.onLine.
12886         
12887         * page/Page.cpp:
12888         (WebCore::networkStateChanged):
12889         Dispatch offline/online events to all frames.
12890         
12891         (WebCore::Page::Page):
12892         Set state change callback.
12893         
12894         * platform/network/NetworkStateNotifier.cpp: Added.
12895         * platform/network/NetworkStateNotifier.h: Added.
12897         * platform/network/mac/NetworkStateNotifierMac.cpp: Added.
12898         Mac network state notifier.
12900 2008-05-14  Adam Roben  <aroben@apple.com>
12902         Fix Bug 18888: REGRESSION (r32731): console.log always prints
12903         "undefined"
12905         <https://bugs.webkit.org/show_bug.cgi?id=18888>
12907         Reviewed by Tim Hatcher.
12909         Tested by pre-existing
12910         manual-tests/inspector/console-log-formatting.html.
12912         * page/inspector/Console.js:
12913         (WebInspector.ConsoleMessage.prototype._format): Changed to explicitly
12914         wrap Console._format instead of using bind to do it. Using bind was
12915         causing us to pass plainText in as the first parameter instead of as
12916         the second.
12918 2008-05-14  Timothy Hatcher  <timothy@apple.com>
12920         Fixes the bug where stepping out of a function would show the wrong
12921         call stack (would look like it stepped out twice.)
12923         Reviewed by Adam Roben.
12925         * page/JavaScriptDebugServer.cpp:
12926         (WebCore::JavaScriptDebugServer::returnEvent):
12927         Call pauseIfNeeded before setting m_currentCallFrame to the caller.
12929 2008-05-14  Stephanie Lewis  <slewis@apple.com>
12930    
12931         Fix 64bit build
12933         * plugins/PluginView.h:
12935 2008-05-14  David Kilzer  <ddkilzer@apple.com>
12937         REGRESSION (r26474): WebKit fails jQuery test 64 core module: text(String) subtest 1 Check escaped text (createTextNode)
12939         <https://bugs.webkit.org/show_bug.cgi?id=18976>
12940         <rdar://problem/5924793>
12942         Reviewed by Darin.
12944         Tests: fast/dom/dom-parse-serialize-expected.txt:
12945                fast/xsl/xslt-processor-expected.txt:
12946                fast/xsl/xslt-text-expected.txt:
12948         Commit r26474 removed escaping of '>' characters to '&gt;' in serialized
12949         HTML content, which broke one jQuery test.  This change restores that
12950         serialization behavior to both attributes and content for consistency.
12952         * editing/markup.cpp:
12953         (WebCore::appendAttributeValue): Escape '>' as '&gt;'.
12954         (WebCore::escapeContentText): Ditto.
12955         (WebCore::appendEscapedContent): Ditto.  This is the bug fix for the jQuery test.
12957 2008-05-14  Adam Roben  <aroben@apple.com>
12959         Fix Bug 19051: REGRESSION (r33447): Assertion in
12960         JSDebugServer::removeListener closing tab with Inspector open
12962         <https://bugs.webkit.org/show_bug.cgi?id=19051>
12964         m_inspectedPage is now cleared when the Page is destroyed, which never
12965         used to happen. Some of InspectorController's code was not prepared
12966         for this.
12968         Reviewed by Dave Hyatt.
12970         * page/InspectorController.cpp:
12971         (WebCore::InspectorController::~InspectorController): Removed a call
12972         to stopDebugging and added an assertion. Debugging should have already
12973         been stopped by this point.
12974         (WebCore::InspectorController::inspectedPageDestroyed): Moved here
12975         from the header file. Added a call to stopDebugging.
12976         (WebCore::InspectorController::enabled): Return false if our inspected
12977         Page has already been destroyed, since we can't really do much at this
12978         point anyway.
12979         (WebCore::InspectorController::didCommitLoad):
12980         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
12981         (WebCore::InspectorController::identifierForInitialRequest):
12982         (WebCore::InspectorController::startDebuggingAndReloadInspectedPage):
12983         (WebCore::InspectorController::stopDebugging):
12984         (WebCore::InspectorController::drawNodeHighlight):
12985         Assert that m_inspectedPage hasn't been cleared.
12986         * page/InspectorController.h:
12988 2008-05-14  Justin Garcia  <justin.garcia@apple.com>
12990         Reviewed by Darin.
12992         <rdar://problem/5914803> Improve performance of WebCore::Editor::setComposition
12994         * editing/Editor.cpp:
12995         (WebCore::Editor::confirmComposition): Remove the previous composition
12996         when we insert the new one, not with a separate, slower, delete operation.
12997         (WebCore::Editor::setComposition): Ditto.
12998         * editing/InsertTextCommand.cpp:
12999         (WebCore::InsertTextCommand::performTrivialReplace): Remove the selected
13000         text with a low level operation that doesn't perform a layout and insert
13001         the new text in a way that won't trigger a layout from the removal.
13002         (WebCore::InsertTextCommand::input): Call the optimized replace.
13003         * editing/InsertTextCommand.h:
13004         * editing/htmlediting.cpp:
13005         (WebCore::isTabSpanNode): Check to see if the node is a span, to avoid 
13006         the expense of getAttribute in the common case.
13007         * page/Frame.cpp:
13008         (WebCore::Frame::selectionLayoutChanged): Selection::start() and end()
13009         will already be at VisiblePosition deepEquivalents. Selection::validate()
13010         ensures this.
13012 2008-05-14  Adam Roben  <aroben@apple.com>
13014         Make the Inspector able to handle being reloaded
13016         When Reload was selected from the context menu in the Inspector, the
13017         Inspector window would close and never be openable again. Now it
13018         closes, then reopens when the page finishes loading.
13020         Reviewed by Tim Hatcher.
13022         * page/InspectorController.cpp:
13023         (WebCore::InspectorController::close): Removed code that cleared out
13024         m_page. This is now handled by pageDestroyed.
13025         * page/InspectorController.h:
13026         (WebCore::InspectorController::inspectedPageDestroyed): Added.
13027         * page/Page.cpp:
13028         (WebCore::Page::~Page): Fixed a bug and added a call to the new
13029         inspectedPageDestroyed. If we have a parent InspectorController, that
13030         means that we are the Page in the Inspector's window (i.e., we are the
13031         Inspector's UI), so when we are destroyed we should call
13032         InspectorController::pageDestroyed. We also need to call
13033         inspectedPageDestroyed on our own InspectorController so that it won't
13034         try to call into us.
13036 2008-05-14  Timothy Hatcher  <timothy@apple.com>
13038         Add pause on exception support to the Inspector debugger
13039         with a toggle buttons to enable or disable it.
13041         Reviewed by Adam Roben.
13043         * page/InspectorController.cpp:
13044         (WebCore::pauseOnExceptions): Call the InspectorController.
13045         (WebCore::setPauseOnExceptions): Ditto.
13046         (WebCore::InspectorController::windowScriptObjectAvailable): Add the new
13047         setPauseOnExceptions and pauseOnExceptions functions to the JS class.
13048         (WebCore::InspectorController::pauseOnExceptions): Call JavaScriptDebugServer.
13049         (WebCore::InspectorController::setPauseOnExceptions): Ditto.
13050         * page/InspectorController.h:
13051         * page/JavaScriptDebugServer.cpp:
13052         (WebCore::JavaScriptDebugServer::setPauseOnExceptions): Set m_pauseOnExceptions.
13053         (WebCore::JavaScriptDebugServer::exception): Check m_pauseOnExceptions
13054         and set m_pauseOnNextStatement to true before calling pauseIfNeeded.
13055         * page/JavaScriptDebugServer.h:
13056         * page/inspector/Images/pauseOnExceptionButtons.png: Added.
13057         * page/inspector/ScriptsPanel.js: Adds a status bar button that calls
13058         the new InspectorController functions.
13059         * page/inspector/inspector.css: New styles.
13061 2008-05-14  Timothy Hatcher  <timothy@apple.com>
13063         Rename the Scope Chain pane to Scope Variables. Name the global
13064         object Global. Name objects before the locals "With Block".
13065         Name colsure scopes "Closure". Name any element or document
13066         after Local, "Event Target" and "Event Document", respectfully.
13068         Reviewed by Adam Roben.
13070         * English.lproj/localizedStrings.js: Add new strings.
13071         * page/inspector/ObjectPropertiesSection.js:
13072         (WebInspector.ObjectPropertiesSection): Add a new argument that is used
13073         for the empty placeholder text.
13074         (WebInspector.ObjectPropertiesSection.prototype.onpopulate): Use the
13075         empty placeholder text.
13076         * page/inspector/ScopeChainSidebarPane.js:
13077         (WebInspector.ScopeChainSidebarPane): Rename Scope Chain to Scope Variables.
13078         (WebInspector.ScopeChainSidebarPane.prototype.update): Use the object name as
13079         the subtitle. Use "Global" for the global object title. Use "With Block" for
13080         the title of objects before the locals. Use "No Variables" for the empty
13081         placeholder text for locals.
13083 2008-05-14  Michael A. Puls II  <shadow2531@gmail.com>
13085         Reviewed by Alexey.
13087         Fix for https://bugs.webkit.org/show_bug.cgi?id=16923 
13088         Attr nodes with a value of "" should not have any childNodes
13089         
13090         In Opera, Firefox and IE, when an attribute node has a value
13091         of "", the attribute node doesn't have any childNodes. This
13092         is true in WebKit also, but not when you assign "" to the
13093         Attr's value when the existing value is non-empty.
13094         
13095         Test: fast/dom/attribute-empty-value-no-children.html
13097         * dom/Attr.cpp: (WebCore::Attr::setValue): Use createTextChild(), which only appends
13098         a child text node if the value being assigned is not empty.
13100 2008-05-14  Julien Chaffraix  <jchaffraix@webkit.org>
13102         Reviewed by Eric.
13104         GCC 4.3 build fix.
13105         Removes some compiler warnings.
13107         * dom/Document.h:
13108         (WebCore::FormElementKey::hashTableDeletedValue): GCC complained about the const keyword
13109         so remove it as it is only used inside FormElementKey.
13111         * html/HTMLSelectElement.cpp:
13112         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Correct coding style (removes
13113         a warning too).
13115         * loader/appcache/ApplicationCacheResource.cpp: Include stdio.h for gcc4.3 build.
13117         * plugins/PluginPackage.cpp:
13118         (WebCore::PluginPackage::PluginPackage): Changed initialization order in the constructor.
13119         * plugins/PluginView.cpp:
13120         (WebCore::PluginView::PluginView): Ditto.
13121         * plugins/PluginView.h:
13122         * xml/AccessControlList.cpp: Include stdio.h
13123         * xml/AccessItem.cpp: Ditto.
13124         * xml/AccessItemRule.cpp: Ditto.
13126 2008-05-14  Ariya Hidayat  <ariya.hidayat@trolltech.com>
13128         Reviewed by Simon.
13130         Qt build fix. Add JSJavaScriptCallFrameCustom.cpp to the build
13131         and implemented EventLoopQt.
13133         * WebCore.pro:
13134         * platform/qt/EventLoopQt.cpp: Added.
13136 2008-05-14  Ariya Hidayat  <ariya.hidayat@trolltech.com>
13138         Reviewed by Simon.
13140         Qt build fix. Add JavaScriptCallFrame.{idl,cpp} to the build.
13142         * WebCore.pro:
13144 2008-05-13  Dan Bernstein  <mitz@apple.com>
13146         Reviewed by John Sullivan.
13148         - Windows part of <rdar://problem/5725912> improve render quality of transformed text
13150         * platform/graphics/win/FontCGWin.cpp:
13151         (WebCore::Font::drawGlyphs): Added call to
13152         wkSetCGContextFontRenderingStyle().
13154 2008-05-13  Alp Toker  <alp@nuanti.com>
13156         GTK+ build fix. Implement EventLoopGtk.cpp.
13158         * GNUmakefile.am:
13159         * platform/gtk/EventLoopGtk.cpp: Added.
13160         (WebCore::EventLoop::cycle):
13162 2008-05-13  Alp Toker  <alp@nuanti.com>
13164         GTK+ build fix. Fix IDL filename typo and add JavaScriptCallFrame.cpp
13165         to the build.
13167         * GNUmakefile.am:
13169 2008-05-13  Matt Lilek  <webkit@mattlilek.com>
13171         Not reviewed, partial Gtk build fix.
13173         * GNUmakefile.am:
13175 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13177         Fixes a crash when stepping out in the Inspector's debugger.
13179         http://bugs.webkit.org/show_bug.cgi?id=19037
13181         Reviewed by Dan Bernstein.
13183         * page/InspectorController.cpp:
13184         (WebCore::currentCallFrame): Adds a null check of currentCallFrame,
13185         since it can be null. Also returns JSNull to better signify this.
13186         * page/inspector/ScriptsPanel.js: Updates the debugger interface
13187         when stepping so the currentCallFrame isn't accessed when not paused.
13188         Adds a _clearInterface function to remove duplicate code.
13190 2008-05-13  chris fleizach  <cfleizach@apple.com>
13192         Reviewed by Beth Dakin
13194         <rdar://problem/5932677> AX: Submit buttons aren't returning AXTitle
13196         * page/AccessibilityRenderObject.cpp:
13197         (WebCore::AccessibilityRenderObject::title):
13199 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13201         Adds an overlay window that covers the scripts panel and
13202         informs the user that they need to attach the debugger.
13203         Provides an "Attach Debugger" button below the info text.
13205         Reviewed by Dan Bernstein.
13207         * English.lproj/localizedStrings.js: New strings.
13208         * page/inspector/ScriptsPanel.js:
13209         (WebInspector.ScriptsPanel): Create the overlay elements and
13210         append to the main panel element.
13211         * page/inspector/inspector.css: New styles for the over lay elements.
13213 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13215         Fixes the assertion and crash that would happen when inspecting a element from a frame.
13216         This change makes JSInspectedObjectWrapper pass unwrapped objects around for global objects
13217         that share the same page group identifier. Also returns jsUndefined() instead of 0 to prevent
13218         crashing in release builds if the page groups don't match.
13220         Passes all the tests in: manual-tests/inspector-wrappers
13222         Reviewed by Adam Roben.
13224         * bindings/js/JSInspectedObjectWrapper.cpp:
13225         (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Return jsUndefined() instead of 0.
13226         Call allowsUnwrappedAccessFrom instead of unwrappedExecStateMatches.
13227         * bindings/js/JSQuarantinedObjectWrapper.cpp:
13228         (WebCore::JSQuarantinedObjectWrapper::allowsUnwrappedAccessFrom): Renamed from unwrappedExecStateMatches.
13229         Return true if the pageGroupIdentifier of both wrappers match.
13230         (WebCore::JSQuarantinedObjectWrapper::callAsFunction): Return jsUndefined() instead of 0.
13231         * bindings/js/JSQuarantinedObjectWrapper.h: Renamed unwrappedExecStateMatches to allowsUnwrappedAccessFrom.
13233 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13235         Fixes the hang that could happen when option-clicking to expand
13236         a disclosure triangle in the Properties pane. This change limits
13237         the recursion depth when expanding the tree elements.
13239         <rdar://problem/5847681> Safari hangs when option-clicking a
13240         disclosure triangle in the Inspector's Properties pane
13242         Reviewed by John Sullivan.
13244         * page/inspector/treeoutline.js:
13245         (TreeElement.prototype.expandRecursively): Pass an empty info object to
13246         traverseNextTreeElement to get the depthChange value. This is used to
13247         compute a current depth. If the depth exceeds the maxDepth argument, the
13248         item isn't expanded and children wont be populated when traverseNextTreeElement
13249         is called until the depth goes below the maxDepth.
13250         (TreeElement.prototype.traverseNextTreeElement): Added a new info
13251         argument that can be optionally used to return extra info like depth change.
13253 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13255         Adds info text to panes and sections in the Inspector's sidebars
13256         that would normally be empty. These help the user know why there
13257         is nothing in these sections.
13259         Reviewed by John Sullivan.
13261         * English.lproj/localizedStrings.js: Add strings.
13262         * page/inspector/BreakpointsSidebarPane.js: Adds "No Breakpoints".
13263         * page/inspector/CallStackSidebarPane.js: Adds "Not Paused".
13264         * page/inspector/ObjectPropertiesSection.js: Adds "No Properties".
13265         * page/inspector/ScopeChainSidebarPane.js: Adds "Not Paused".
13266         * page/inspector/inspector.css: Adds style rules for the info elements.
13268 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13270         Implements the rest of the Scripts panel to get the debugger
13271         mostly working. "Basic debugging seems to work."
13273         Reviewed by Geoff Garen.
13275         * English.lproj/localizedStrings.js: Adds new strings.
13276         * page/inspector/Resource.js:
13277         (WebInspector.Resource.prototype.get scripts): Returns _scripts and 
13278         creates it lazily.
13279         (WebInspector.Resource.prototype.addScript): Add the script object to the
13280         front of the _scripts array.
13281         (WebInspector.Resource.prototype.removeAllScripts): Removed all the scripts
13282         and removes the resource back-reference.
13283         (WebInspector.Resource.prototype.removeScript): Removes the script and
13284         breaks the resource back-reference.
13285         * page/inspector/ResourceView.js:
13286         (WebInspector.ResourceView): Adds a reminder comment.
13287         (WebInspector.ResourceView.prototype.get headersVisible): Returns _headersVisible. 
13288         (WebInspector.ResourceView.prototype.set headersVisible): Stubs out
13289         a setter that currently just sets _headersVisible. Has a comment that
13290         points out this needs implemented when network headers are added.
13291         * page/inspector/ResourcesPanel.js:
13292         (WebInspector.ResourcesPanel.prototype.show): Sets the headersVisible property of
13293         the visible view to true and shows it again, in case it was being shown in Scripts.
13294         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
13295         Copies the headersVisible property from the old view to the new view.
13296         (WebInspector.ResourcesPanel.prototype.showResource): Sets the headersVisible
13297         property to true before showing.
13298         * page/inspector/ScriptView.js:
13299         (WebInspector.ScriptView): Passes in _addBreakpoint for the add breakpoint delegate.
13300         (WebInspector.ScriptView.prototype._addBreakpoint): Calls ScriptsPanel's addBreakpoint
13301         for the current Script.sourceID and line.
13302         * page/inspector/ScriptsPanel.js:
13303         (WebInspector.ScriptsPanel): 
13304         (WebInspector.ScriptsPanel.prototype.show): Sets the headersVisible property of
13305         the visible view to false and shows it again, in case it was being shown in Resources.
13306         (WebInspector.ScriptsPanel.prototype.addScript): Makes a new Script object and
13307         adds it to a Resource if one is found. Registers any breakpoint that match
13308         the new Script's source URL, and sets the sourceID of the breakpoints.
13309         (WebInspector.ScriptsPanel.prototype.addBreakpoint): Adds the breakpoint to the
13310         BreakpointsSidebarPane. Also adds it to _breakpointsURLMap so it can be found
13311         later in addScript by URL. Finally adds the breakpoint to the SourceFrame that
13312         represents the resources or script.
13313         (WebInspector.ScriptsPanel.prototype.removeBreakpoint): Removes the breakpoint from
13314         the BreakpointsSidebarPane, _breakpointsURLMap and SourceFrame.
13315         (WebInspector.ScriptsPanel.prototype.debuggerPaused): Update the debugger
13316         state variables, the buttons and the CallStackSidebarPane.
13317         (WebInspector.ScriptsPanel.prototype.reset): Clears and resets debugger
13318         and interface state.
13319         (WebInspector.ScriptsPanel.prototype.get visibleView): Returns _visibleView.
13320         (WebInspector.ScriptsPanel.prototype.set visibleView): Sets _visibleView and
13321         calls hide on the old view and show on the new view.
13322         (WebInspector.ScriptsPanel.prototype.showScript): Calls _showScriptOrResource.
13323         (WebInspector.ScriptsPanel.prototype.showResource): Ditto.
13324         (WebInspector.ScriptsPanel.prototype.scriptViewForScript): Lazily creates a
13325         ScriptView for the Script and returns it. 
13326         (WebInspector.ScriptsPanel.prototype.sourceFrameForScript): Returns the SourceFrame
13327         for the Script.
13328         (WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource): Returns the
13329         SourceFrame based on the type of object passed in.
13330         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Shows the view based on
13331         the type of object passed in. If the object is a resource and there are breakpoints
13332         defined for that Resource URL, then populate the SourceFrame with the breakpoints.
13333         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Adds a script to the 
13334         files menu. If the Script is part of a resource, that resource is added.
13335         (WebInspector.ScriptsPanel.prototype._removeScriptFromFilesMenu): Remove a script from
13336         the files menu. If that script is part of a resource and it is the last script of that
13337         resource, then remove the whole resource.
13338         (WebInspector.ScriptsPanel.prototype._clearCurrentExecutionLine): Clears the execution
13339         line from the SourceFrame that is showing it.
13340         (WebInspector.ScriptsPanel.prototype._callFrameSelected): Event listener for when the
13341         call frame changes in the CallStackSidebarPane. Triggers updates to the ScopeChainSidebarPane
13342         and the visible view.
13343         (WebInspector.ScriptsPanel.prototype._changeVisibleFile): Event listener for the change state
13344         of the files select element.
13345         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons): Update more of the 
13346         buttons to reflect the current debugger state. Updates the status text too.
13347         (WebInspector.ScriptsPanel.prototype._toggleDebugging): Reset the UI and state when
13348         the debugger is attached/detached.
13349         (WebInspector.ScriptsPanel.prototype._togglePause): Call InspectorController.resumeDebugger or
13350         InspectorController.pauseInDebugger depending on the paused state.
13351         (WebInspector.ScriptsPanel.prototype._stepOverClicked): Call InspectorController.stepOverStatementInDebugger.
13352         (WebInspector.ScriptsPanel.prototype._stepIntoClicked): Call InspectorController.stepIntoStatementInDebugger.
13353         (WebInspector.ScriptsPanel.prototype._stepOutClicked): InspectorController.stepOutOfFunctionInDebugger.
13354         * page/inspector/SourceView.js:
13355         (WebInspector.SourceView): Passes in _addBreakpoint for the add breakpoint delegate.
13356         (WebInspector.SourceView.prototype._addBreakpoint): Calls ScriptsPanel's addBreakpoint
13357         for the nearest Script's sourceID and passed in line.
13358         * page/inspector/inspector.css: New style rules for the UI changes.
13359         * page/inspector/inspector.js:
13360         (WebInspector.loaded): Add the ScriptsPanel to the panels list.
13361         (WebInspector.parsedScriptSource): Call ScriptsPanel.addScript.
13362         (WebInspector.failedToParseScriptSource): Ditto.
13363         (WebInspector.pausedScript): Call ScriptsPanel.debuggerPaused.
13365 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13367         Adds implementations of the Scope Chain and Call Stack sidebar panes.
13368         These panes use the JSJavaScriptCallFrame object that will be passed
13369         to the update functions.
13371         Reviewed by Kevin McCullough.
13373         * English.lproj/localizedStrings.js: Adds new strings.
13374         * WebCore.vcproj/WebCore.vcproj: Adds new files.
13375         * page/inspector/CallStackSidebarPane.js:
13376         (WebInspector.CallStackSidebarPane.prototype.update): Walk the 
13377         caller chain of the call frame and make placards for each.
13378         (WebInspector.CallStackSidebarPane.prototype.get selectedCallFrame):
13379         Return _selectedCallFrame. 
13380         (WebInspector.CallStackSidebarPane.prototype.set selectedCallFrame):
13381         Set _selectedCallFrame and dispatch the "call frame selected" event.
13382         (WebInspector.CallStackSidebarPane.prototype._placardSelected):
13383         Set the selectedCallFrame based on the clicked placard.
13384         * page/inspector/Placard.js: Added. A user interface object that can
13385         be used to show a title and a subtitle block with a selected state.
13386         * page/inspector/ScopeChainSidebarPane.js: Added.
13387         (WebInspector.ScopeChainSidebarPane): Call the base object and set the title.
13388         (WebInspector.ScopeChainSidebarPane.prototype.update): Iterate over the
13389         call frame's scope chain and make ObjectPropertiesSections for each.
13390         * page/inspector/SidebarPane.js:
13391         (WebInspector.SidebarPane.prototype): Inherit from WebInspector.Object.
13392         * page/inspector/WebKit.qrc: Add new files.
13393         * page/inspector/inspector.css: Add placard styles.
13394         * page/inspector/inspector.html: Add new files.
13396 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13398         Fixes the bug where SourceViews would be blank if shown before
13399         the Resource finished loading.
13401         <rdar://problem/5807420> Safari's Web Inspector won't display the
13402         contents of some CSS and JS files
13404         Reviewed by Kevin McCullough.
13406         * page/inspector/Resource.js:
13407         (WebInspector.Resource.prototype.set finished): Dispatch the finished event
13408         (WebInspector.Resource.prototype): Inherit from WebInspector.Object.prototype.
13409         * page/inspector/SourceView.js:
13410         (WebInspector.SourceView): Register for the finished event on the resource.
13411         When the event fires, setup the source frame and deregister the event.
13413 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13415         Factored most of SourceView out into SourceFrame so it can be shared
13416         by the new ScriptView. Added the ScriptView class to be used for
13417         scripts that arn't Resources (like eval code.) Added a simple Script
13418         object that hold the data from the debugger parsedSource hooks. A
13419         ScriptView holds a Script object, and uses it for source data.
13421         Added breakpoint and execution line support to the SourceFrame
13422         where they are visually represented in the source.
13424         Reviewed by Kevin McCullough.
13426         * page/inspector/inspector.js:
13427         (WebInspector.performSearch): Change the caller of sourceFrameForResource
13428         to use the SourceFrame result's element property.
13429         * page/inspector/ResourcesPanel.js: Use the new SourceFrame.
13430         * page/inspector/Script.js: Added.
13431         * page/inspector/ScriptView.js: Added.
13432         * page/inspector/SourceFrame.js: Added.
13433         * page/inspector/SourceView.js: Use the new SourceFrame.
13434         * WebCore.vcproj/WebCore.vcproj: Add new files.
13435         * page/inspector/WebKit.qrc: Ditto.
13436         * page/inspector/inspector.html: Ditto.
13438 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13440         Adds a Breakpoint object and basic add/remove functions on
13441         BreakpointsSidebarPane that call the InspectorController to
13442         add/remove the breakpoint.
13444         Reviewed by Kevin McCullough.
13446         * page/inspector/Breakpoint.js:
13447         (WebInspector.Breakpoint): 
13448         (WebInspector.Breakpoint.prototype.get enabled): Return _enabled.
13449         (WebInspector.Breakpoint.prototype.set enabled): Set _enabled and
13450         dispatch the enabled/disabled event to listeners.
13451         * page/inspector/BreakpointsSidebarPane.js:
13452         (WebInspector.BreakpointsSidebarPane): Add a breakpoints array.
13453         (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
13454         Adds the breakpoint to the breakpoints array. Registers for the disabled
13455         and enabled event types. Call InspectorController.addBreakpoint if attached.
13456         (WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
13457         Removes the breakpoint from the breakpoints array. Deregisters for the disabled
13458         and enabled event types. Call InspectorController.removeBreakpoint if attached.
13459         (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
13460         Call InspectorController.addBreakpoint or InspectorController.removeBreakpoint
13461         depending on the enabled state of the breakpoint.
13462         * WebCore.vcproj/WebCore.vcproj: Add new files.
13463         * page/inspector/WebKit.qrc: Ditto.
13464         * page/inspector/inspector.html: Ditto.
13466 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13468         Make addSourceToFrame not dependent on InspectorResource so it
13469         can be used to add source of a passed in string and mime-type to
13470         a frame. Added addResourceSourceToFrame for use by SourceView.
13472         Also fixes an assertion because of an incorrect static_cast of identifiers
13473         to unsigned long long, when they can be unsigned.
13475         Reviewed by Geoff Garen.
13477         * page/InspectorController.cpp:
13478         (WebCore::addSourceToFrame): Helper function used by addSourceToFrame
13479         and addResourceSourceToFrame.
13480         (WebCore::addSourceToFrame): Generalized to take a source and mime-type string.
13481         (WebCore::addResourceSourceToFrame): Renamed from addSourceToFrame.
13482         (WebCore::getResourceDocumentNode): Fixes the static_cast to be long long.
13483         (WebCore::InspectorController::windowScriptObjectAvailable): Adds
13484         addResourceSourceToFrame to the JavaScript class.
13485         * page/inspector/SourceView.js: Use the new addResourceSourceToFrame.
13487 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13489         Add debugger related functions to the InspectorController and
13490         expose them to the JavaScript side of InspectorController.
13492         Reviewed by Geoff Garen.
13494         * page/InspectorController.cpp:
13495         (WebCore::jsStringRef): Added helper to convert a UString to a JSStringRef.
13496         (WebCore::currentCallFrame): Call InspectorController::currentCallFrame.
13497         (WebCore::pauseInDebugger): Call InspectorController::pauseInDebugger.
13498         (WebCore::resumeDebugger): Call InspectorController::resumeDebugger.
13499         (WebCore::stepOverStatementInDebugger): Call InspectorController::stepOverStatementInDebugger.
13500         (WebCore::stepIntoStatementInDebugger): Call InspectorController::stepIntoStatementInDebugger.
13501         (WebCore::stepOutOfFunctionInDebugger): Call InspectorController::stepOutOfFunctionInDebugger.
13502         (WebCore::addBreakpoint): Call InspectorController::addBreakpoint.
13503         (WebCore::removeBreakpoint): Call InspectorController::removeBreakpoint.
13504         (WebCore::InspectorController::windowScriptObjectAvailable): Add the new functions to the
13505         InspectorController JavaScript class.
13506         (WebCore::InspectorController::startDebuggingAndReloadInspectedPage): Clear breakpoints.
13507         (WebCore::InspectorController::currentCallFrame): Return the currentCallFrame from the
13508         JavaScriptDebugServer.
13509         (WebCore::InspectorController::pauseInDebugger): Call JavaScriptDebugServer's pauseOnNextStatement.
13510         (WebCore::InspectorController::resumeDebugger): Call JavaScriptDebugServer's resume.
13511         (WebCore::InspectorController::stepOverStatementInDebugger):  Call JavaScriptDebugServer's stepOverStatement.
13512         (WebCore::InspectorController::stepIntoStatementInDebugger): Call JavaScriptDebugServer's stepIntoStatement.
13513         (WebCore::InspectorController::stepOutOfFunctionInDebugger): Call JavaScriptDebugServer's stepOutOfFunction.
13514         (WebCore::InspectorController::addBreakpoint): Call JavaScriptDebugServer's addBreakpoint.
13515         (WebCore::InspectorController::removeBreakpoint): Call JavaScriptDebugServer's removeBreakpoint.
13516         (WebCore::InspectorController::didParseSource): Call into the Inspector's JavaScript.
13517         (WebCore::InspectorController::failedToParseSource): Ditto.
13518         (WebCore::InspectorController::didPause): Ditto.
13519         * page/InspectorController.h: Add new functions.
13521 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13523         Implements more debugger APIs on JavaScriptDebugServer and reduces
13524         the number of callbacks to JavaScriptDebugListeners. These changes
13525         will better facilitate debugger optimizations when SquirrelFish merges.
13527         Reviewed by Kevin McCullough.
13529         * page/InspectorController.cpp:
13530         (WebCore::InspectorController::didParseSource): Removed the ExecState.
13531         (WebCore::InspectorController::failedToParseSource): Ditto.
13532         (WebCore::InspectorController::didPause): Added.
13533         * page/InspectorController.h: Changed the JavaScriptDebugListener functions.
13534         * page/JavaScriptDebugListener.h: Removed some callbacks and added didPause.
13535         * page/JavaScriptDebugServer.cpp:
13536         (WebCore::JavaScriptDebugServer::JavaScriptDebugServer): Initialize new data members.
13537         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer): Delete all values of m_breakpoints.
13538         (WebCore::JavaScriptDebugServer::removeListener): Call resume if the last listener was removed.
13539         (WebCore::JavaScriptDebugServer::hasListenersInterestedInPage): Returns true if there are any
13540         global listeners or a listener for the page.
13541         (WebCore::JavaScriptDebugServer::addBreakpoint): Adds and entry to m_breakpoints.
13542         (WebCore::JavaScriptDebugServer::removeBreakpoint): Removes a entry in m_breakpoints.
13543         (WebCore::JavaScriptDebugServer::hasBreakpoint):  Checks if there is a breakpoint for the
13544         sourceID and line.
13545         (WebCore::JavaScriptDebugServer::clearBreakpoints): Removed all breakpoints.
13546         (WebCore::JavaScriptDebugServer::pauseOnNextStatement): Sets m_pauseOnNextStatement to true.
13547         (WebCore::JavaScriptDebugServer::resume): Sets m_paused to false.
13548         (WebCore::JavaScriptDebugServer::stepIntoStatement): Calls resume and sets
13549         m_pauseOnNextStatement to true.
13550         (WebCore::JavaScriptDebugServer::stepOverStatement): Calls resume and sets m_pauseOnExecState to
13551         the current call frame's ExecState.
13552         (WebCore::JavaScriptDebugServer::stepOutOfFunction): Calls resume and sets m_pauseOnExecState to
13553         the current call frame's caller ExecState.
13554         (WebCore::JavaScriptDebugServer::currentCallFrame): Returns m_currentCallFrame if paused.
13555         (WebCore::dispatchDidParseSource): Removed the ExecState argument.
13556         (WebCore::dispatchFailedToParseSource): Ditto.
13557         (WebCore::JavaScriptDebugServer::sourceParsed): Doesn't pass the ExecState to dispatchDidParseSource
13558         or dispatchFailedToParseSource.
13559         (WebCore::dispatchFunctionToListeners):
13560         (WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Removes all the arguments passed
13561         to the callback.
13562         (WebCore::JavaScriptDebugServer::setJavaScriptPaused): Various overloaded functions
13563         to pause parts of WebCore to prevent JavaScript execution while paused.
13564         (WebCore::JavaScriptDebugServer::pauseIfNeeded): Decides if the debugger should pause based
13565         on the passed in ExecState, source ID and line number. This checks for breakpoints, stepping, etc.
13566         Calls didPause on all the listeners and spins a EventLoop until resume is called.
13567         (WebCore::JavaScriptDebugServer::callEvent): Call pauseIfNeeded.
13568         (WebCore::JavaScriptDebugServer::atStatement): Ditto.
13569         (WebCore::JavaScriptDebugServer::returnEvent): Ditto.
13570         (WebCore::JavaScriptDebugServer::exception): Ditto.
13571         * page/JavaScriptDebugServer.h: Added new functions.
13573 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13575         Change View.show to call detach if the parentNode dosen't
13576         match before appending to the passed in parent element.
13577         This also prevents appending to the same parent element
13578         multiple times.
13580         Reviewed by John Sullivan.
13582         * page/inspector/FontView.js:
13583         (WebInspector.FontView.prototype.show): Pass the parent element to View.show.
13584         * page/inspector/ResourceView.js: Optimize the attach method to no append if
13585         there is a parentNode already.
13586         * page/inspector/SourceView.js: Ditto.
13587         * page/inspector/View.js: Call detach before appending if the parentNode
13588         doesn't match the passed in element.
13590 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13592         Optimize the panel attach method to no append if there is a
13593         parentNode already.
13595         Reviewed by Adam Roben.
13597         * page/inspector/Panel.js:
13598         (WebInspector.Panel.prototype.attach): Don't append to main-panels
13599         if the panel element already has a parentNode.
13601 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13603         Add Widget::isPluginView so the JavaScriptDebugServer can identify
13604         plugins that need to be paused during debugging. This will be used
13605         in a upcoming commit.
13607         Reviewed by Kevin McCullough.
13609         * platform/Widget.h: Add isPluginView. Return false.
13610         * plugins/PluginView.h: Add isPluginView. Return true.
13612 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13614         Adds an event loop abstraction to platform. This abstraction will be
13615         used by the JavaScriptDebugServer to implement pausing.
13617         Reviewed by Kevin McCullough.
13619         * platform/EventLoop.h: Added.
13620         (WebCore::EventLoop::EventLoop):
13621         (WebCore::EventLoop::ended): Return m_ended.
13622         * platform/mac/EventLoopMac.mm: Added.
13623         (WebCore::EventLoop::cycle): Call nextEventMatchingMask and then sendEvent.
13624         * platform/win/EventLoopWin.cpp: Added.
13625         (WebCore::EventLoop::cycle): Call GetMessage, TranslateMessage and DispatchMessage.
13626         * WebCore.xcodeproj/project.pbxproj: Add new files.
13627         * WebCore.vcproj/WebCore.vcproj: Ditto.
13629 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13631         Breaks out ObjectPropertiesSection from PropertiesSidebarPane
13632         so it can be used by the Scripts panel's Scope Chain pane.
13634         Rubber-stamped by Adam Roben.
13636         * page/inspector/ObjectPropertiesSection.js: Added.
13637         * page/inspector/PropertiesSidebarPane.js: Moved ObjectPropertiesSection
13638         to ObjectPropertiesSection.js.
13639         * WebCore.vcproj/WebCore.vcproj: Add the new file.
13640         * page/inspector/WebKit.qrc: Ditto.
13641         * page/inspector/inspector.html: Ditto.
13643 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13645         Add a helper function to the Inspector's Array prototype
13646         that will remove any identical values/objects from the array.
13648         Reviewed by Kevin McCullough.
13650         * page/inspector/utilities.js:
13651         (Array.prototype.remove): Iterate over the array and strict
13652         compare to the passed in value. If they match, splice that index
13653         out of the array. If onlyFirst is true, return after the first splice.
13655 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13657         Adds a JavaScriptCallFrame object and JavaScript binding with an IDL.
13658         This object will expose the stack to the Inspector's debugger.
13660         Reviewed by Adam Roben.
13662         * DerivedSources.make: Add JavaScriptCallFrame.
13663         * bindings/js/JSJavaScriptCallFrameCustom.cpp: Added.
13664         (WebCore::JSJavaScriptCallFrame::evaluate): Calls impl evaluate and returns the result.
13665         (WebCore::JSJavaScriptCallFrame::scopeChain): Makes an array of the ScopeChain.
13666         * page/JavaScriptCallFrame.cpp: Added.
13667         (WebCore::JavaScriptCallFrame::JavaScriptCallFrame):
13668         (WebCore::JavaScriptCallFrame::caller): Returns m_caller.
13669         (WebCore::JavaScriptCallFrame::functionName): Returns the function
13670         name from the ExecState if this is not global code or anonymous.
13671         (WebCore::JavaScriptCallFrame::evaluate): Evaluates a script string
13672         in the scope of the call frame.
13673         * page/JavaScriptCallFrame.h: Added.
13674         (WebCore::JavaScriptCallFrame::create): Call the ctor can return in a PassRefPtr.
13675         (WebCore::JavaScriptCallFrame::invalidate): Sets m_mexec to 0. This prevents a
13676         stale ExecState from being accessed after the lifetime of the ExecState.
13677         (WebCore::JavaScriptCallFrame::isValid): Checks if m_exec is 0.
13678         (WebCore::JavaScriptCallFrame::execState): Returns m_exec.
13679         (WebCore::JavaScriptCallFrame::sourceIdentifier): Returns m_sourceID.
13680         (WebCore::JavaScriptCallFrame::line): Returns m_line.
13681         (WebCore::JavaScriptCallFrame::setLine): Sets m_line.
13682         (WebCore::JavaScriptCallFrame::scopeChain): Returns by reference m_exec->scopeChain().
13683         * page/JavaScriptCallFrame.idl: Added.
13684         * WebCore.xcodeproj/project.pbxproj: Add new files.
13685         * WebCore.vcproj/WebCore.vcproj: Ditto.
13687 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13689         Add a new WebInspector.Object base class that will be used for
13690         a few objects in the Web Inspector to support listeners on any
13691         object. This will help add more abstraction to the Inspector.
13693         Reviewed by Adam Roben.
13695         * page/inspector/Object.js: Added.
13696         (WebInspector.Object): Does nothing.
13697         (WebInspector.Object.prototype.addEventListener): Adds the listener to
13698         the _listeners map by type. Supports a this object argument, for easy
13699         addition of listeners without the need for bind.
13700         (WebInspector.Object.prototype.removeEventListener): Remove the listener
13701         from the _listeners map. If the listener is null and the thisObject was
13702         passed, remove any listener for that thisObject.
13703         (WebInspector.Object.prototype.dispatchEventToListeners): Sends an event
13704         for a type to all listeners for that type. Mimics some of the DOMEvent
13705         methods and properties for the event object passed to the listeners.
13706         * WebCore.vcproj/WebCore.vcproj: Add new files.
13707         * page/inspector/WebKit.qrc: Ditto.
13708         * page/inspector/inspector.html: Ditto.
13710 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13712         Update the view source CSS to better match the new Inspector mock-ups.
13714         Reviewed by Kevin McCullough.
13716         * css/view-source.css:
13718 2008-05-13  John Sullivan  <sullivan@apple.com>
13720         Reviewed by Dan Bernstein and Kevin Decker
13721         
13722         - fixed <rdar://problem/5879597> reproducible crash in HTMLSelectElement::typeAheadFind
13724         Test: fast/forms/select-type-ahead-list-box-no-selection.html
13726         * html/HTMLSelectElement.cpp:
13727         (WebCore::HTMLSelectElement::typeAheadFind):
13728         When there's no initially-selected element, we were accessing index -1. Check for this
13729         case and start at 0.
13731 2008-05-13  Sam Weinig  <sam@webkit.org>
13733         Reviewed by Dan Bernstein.
13735         Small cleanup to XMLHttpRequest in preparation for Access Control changes.
13737         * xml/XMLHttpRequest.cpp:
13738         (WebCore::XMLHttpRequest::XMLHttpRequest):
13739         (WebCore::XMLHttpRequest::~XMLHttpRequest):
13740         (WebCore::XMLHttpRequest::open):
13741         (WebCore::XMLHttpRequest::send):
13742         (WebCore::XMLHttpRequest::internalAbort):
13743         (WebCore::XMLHttpRequest::processSyncLoadResults):
13744         (WebCore::XMLHttpRequest::didFinishLoading):
13745         (WebCore::XMLHttpRequest::didReceiveResponse):
13746         (WebCore::XMLHttpRequest::didReceiveData):
13747         * xml/XMLHttpRequest.h:
13749 2008-05-13  chris fleizach  <cfleizach@apple.com>
13751         Beth Dakin
13753         <rdar://problem/5701210> VO: If image is missing, VoiceOver does not speak the alternative text.
13755         * page/AccessibilityRenderObject.cpp:
13756         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
13758 2008-05-13  chris fleizach  <cfleizach@apple.com>
13760         Beth Dakin
13762         <rdar://problem/5908446> AX: webkit needs to return blockquote information for all AX objects, not just in AXTextMarker info
13764         * page/mac/AccessibilityObjectWrapper.mm:
13765         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
13766         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
13768 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
13770         Reviewed by John Sullivan.
13772         <rdar://problem/4852077> REGRESSION: The content of the HTML file which is saved as Thai
13773         (ISO 8859-11) disappear.
13775         <rdar://problem/5842597> Thai ISO-8859-11 should be upgraded to Windows-874
13777         Test: fast/encoding/char-decoding.html
13779         * platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
13780         Register ISO-8859-11, which doesn't have a standard IANA name, despite following
13781         the usual 8859 naming scheme. Also, made TIS-620 map to windows-874-2000 explicitly.
13783 2008-05-13  chris fleizach  <cfleizach@apple.com>
13785         Reviewed by Beth Dakin
13787         <rdar://problem/5471973> Some AXLinks are not getting AXTitles though there is title text
13789         * page/AccessibilityRenderObject.cpp:
13790         (WebCore::AccessibilityRenderObject::title):
13792 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
13794         Reviewed by Eric Seidel.
13796         https://bugs.webkit.org/show_bug.cgi?id=18681
13797         <rdar://problem/5888130> WebKit should not remove BOM characters from content.
13799         We were only trying to match Firefox, and it doesn't do this any more.
13801         Tests: fast/encoding/bom-in-content.html
13802                fast/encoding/bom-in-content-utf16.html
13804         * platform/text/TextDecoder.cpp: (WebCore::TextDecoder::checkForBOM): Skip the BOM if it's
13805         at the start of input stream.
13807         * platform/text/TextCodec.cpp:
13808         * platform/text/TextCodec.h:
13809         * platform/text/TextCodecICU.cpp:
13810         (WebCore::TextCodecICU::decode):
13811         * platform/text/TextCodecUTF16.cpp:
13812         (WebCore::TextCodecUTF16::decode):
13813         * platform/text/mac/TextCodecMac.cpp:
13814         (WebCore::TextCodecMac::decode):
13815         Don't remove the BOM.
13817 2008-05-13  Anders Carlsson  <andersca@apple.com>
13819         Reviewed by Darin.
13821         Don't crash when a document loader is destroyed while an initial caching attempt
13822         is in progress.
13824         * loader/appcache/ApplicationCacheGroup.cpp:
13825         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
13826         Stop loading.
13827         
13828         (WebCore::ApplicationCacheGroup::stopLoading):
13829         New method that stops a cache update.
13830         
13831         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
13832         Delete ourselves here.
13833         
13834         * loader/appcache/ApplicationCacheGroup.h:
13836 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
13838         Reviewed by Darin.
13840         <rdar://problem/5841351> Turkish ISO 8859-9 encoding should be treated as windows-1254
13842         Match IE and upgrade ISO-8859-9 to windows-1254, which is its strict superset.
13844         Test: fast/encoding/char-decoding.html
13846         * platform/text/TextCodecICU.cpp:
13847         (WebCore::TextCodecICU::registerExtendedEncodingNames): Register the standard name
13848         unconditionally. Previously, we registered windows-949-2000 as a special case that lacked 
13849         an IANA standard name, and got away with not registering GBK because it happened
13850         to be reported by ICU normally earlier than any encoding upgraded to it.
13852 2008-05-13  Tor Arne Vestbø  <tavestbo@trolltech.com>
13854         Reviewed by Simon
13856         Fix QtWebKit build on Qt embedded.
13858         * WebCore.pro:
13859         * platform/FileSystem.h:
13860         * platform/qt/FileSystemQt.cpp:
13862 2008-05-13  Ariya Hidayat  <ariya.hidayat@trolltech.com>
13864         Reviewed by Simon.
13866         For Gtk/X11 and Qt/X11, use a more extensive plug-ins scan directories set
13868         * plugins/PluginDatabase.cpp:
13869         (WebCore::addMozillaPluginDirectories):
13870         (WebCore::PluginDatabase::isPreferredPluginDirectory):
13872 2008-05-12  Adam Roben  <aroben@apple.com>
13874         Turn on warnings as errors in WebCore.vcproj
13876         Rubberstamped by Anders Carlsson.
13878         * WebCore.vcproj/WebCore.vcproj: Also let VS reformat the file as it
13879         saw fit. The important part is the removal of the WarnAsError="false"
13880         lines.
13882 2008-05-12  Adam Roben  <aroben@apple.com>
13884         Fix a MSVC warning in PluginViewWin
13886         Reviewed by Anders Carlsson.
13888         Test: http/tests/plugins/post-url-file.html
13890         * plugins/win/PluginViewWin.cpp:
13891         (WebCore::PluginView::handlePostReadFile): Added a missing return
13892         statement.
13894 2008-05-12  Adam Roben  <aroben@apple.com>
13896         Fix a MSVC warning in GetEOTHeader
13898         Reviewed by Dan Bernstein.
13900         * platform/graphics/win/GetEOTHeader.cpp:
13901         (WebCore::getEOTHeader): MSVC complains that having a 0-sized array in
13902         a struct is a non-standard extension. I've replaced the 0-sized arrays
13903         with arrays of 1 element, and replaced sizeof(structType) with
13904         offsetof(structType, arrayMember).
13906 2008-05-09  Adam Roben  <aroben@apple.com>
13908         Fix a MSVC warning in TextCodecICU
13910         Reviewed by John Sullivan and Dan Bernstein.
13912         * platform/text/TextCodecICU.cpp:
13913         (WebCore::ErrorCallbackSetter::~ErrorCallbackSetter):
13914         UCNV_SUB_STOP_ON_ILLEGAL is a string literal, so using == with it
13915         doesn't really do what we want. Use strcmp instead. It's OK to pass an
13916         unknown value to strcmp here since 1) UCNV_SUB_STOP_ON_ILLEGAL is only
13917         a single character long so we're not going to ready more than 2 bytes
13918         from oldContext, and 2) we're inside an ASSERT which will cause a
13919         crash anyway if it fails.
13921 2008-05-09  Adam Roben  <aroben@apple.com>
13923         Fix a MSVC warning in CSSComputedStyleDeclaration
13925         Reviewed by Geoff Garen.
13927         * css/CSSComputedStyleDeclaration.cpp:
13928         (WebCore::valueForRepeatRule): Removed some unreachable code.
13930 2008-05-09  Adam Roben  <aroben@apple.com>
13932         Fix a MSVC warning in InlineTextBox
13934         Reviewed by Dan Bernstein.
13936         * rendering/InlineTextBox.cpp:
13937         (WebCore::InlineTextBox::paint): Initialize some variables that MSVC
13938         isn't smart enough to figure out will always be initialized in the
13939         cases where they are used.
13941 2008-05-09  Adam Roben  <aroben@apple.com>
13943         Fix a MSVC warning in Position
13945         Reviewed by Darin Adler.
13947         * dom/Position.cpp:
13948         (WebCore::Position::getInlineBoxAndOffset): Use parentheses to make
13949         the precedence of our expressions explicit.
13951 2008-05-09  Adam Roben  <aroben@apple.com>
13953         Fix a MSVC warning in String
13955         Reviewed by Geoff Garen.
13957         * platform/text/String.cpp:
13958         (WebCore::toIntegralType): Disable a bogus warning about using unary -
13959         on an unsigned value. MSVC isn't smart enough to figure out that
13960         isNegative will always be false when value is unsigned.
13962 2008-05-09  Adam Roben  <aroben@apple.com>
13964         Fix a MSVC warning in XMLHttpRequest
13966         Reviewed by Geoff Garen.
13968         * xml/XMLHttpRequest.cpp:
13969         (WebCore::XMLHttpRequest::XMLHttpRequest): Added static_cast<unsigned
13970         long>.
13972 2008-05-12  Anders Carlsson  <andersca@apple.com>
13974         Reviewed by Adam.
13976         Handle the case when a resource with the same URL as the manifest is listed in the manifest.
13978         * loader/appcache/ApplicationCacheGroup.cpp:
13979         (WebCore::ApplicationCacheGroup::addEntry):
13981 2008-05-12  Sam Weinig  <sam@webkit.org>
13983         Reviewed by Dan Bernstein.
13985         Add parsing of AccessControlHeader and AccessItemRule.
13987         * xml/AccessControlList.cpp:
13988         (WebCore::AccessControlList::parseAccessControlHeader): When multiple http headers are sent
13989         in the response, the engine will concatenate them with commas separating the rules.  This simply
13990         reverses that process by splitting on the commas.
13991         (WebCore::AccessControlList::show):
13992         * xml/AccessControlList.h:
13993         * xml/AccessItem.cpp:
13994         (WebCore::AccessItem::AccessItem):
13995         (WebCore::AccessItem::show):
13996         * xml/AccessItem.h:
13997         (WebCore::AccessItem::isValid):
13998         * xml/AccessItemRule.cpp:
13999         (WebCore::skipLWS):
14000         (WebCore::AccessItemRule::parseAccessItemRule): Parse the rule according to the BNF provided by
14001         the Access Control spec.
14002         (WebCore::AccessItemRule::parsePatternList):
14003         (WebCore::AccessItemRule::invalidate):
14004         (WebCore::AccessItemRule::show):
14005         * xml/AccessItemRule.h:
14007 2008-05-12  David Kilzer  <ddkilzer@apple.com>
14009         Fix logic error in DocLoader::clearPreloads()
14011         Reviewed by Antti.
14013         * loader/DocLoader.cpp:
14014         (WebCore::DocLoader::clearPreloads): Be sure to decrease the preload count for
14015         the cached resource before trying to remove it from the cache.  A non-zero
14016         preload count can prevent the resource from being removed from the cache.
14018 2008-05-12  Anders Carlsson  <andersca@apple.com>
14020         Reviewed by Adam.
14022         Handle empty manifest files without crashing.
14023         
14024         * loader/appcache/ApplicationCacheGroup.cpp:
14025         (WebCore::ApplicationCacheGroup::startLoadingEntry):
14027 2008-05-12  Alp Toker  <alp@nuanti.com>
14029         GTK+ build fix for breakage in r33056. Include limits.h for INT_MAX.
14031         * platform/graphics/FontCache.h:
14033 2008-05-12  Anders Carlsson  <andersca@apple.com>
14035         Reviewed by Adam.
14037         Add user agent to requests when loading/updating the cache.
14038     
14039         * loader/FrameLoader.h:
14040         * loader/appcache/ApplicationCacheGroup.cpp:
14041         (WebCore::ApplicationCacheGroup::update):
14042         (WebCore::ApplicationCacheGroup::startLoadingEntry):
14044 2008-05-12  Anders Carlsson  <andersca@apple.com>
14046         Reviewed by Adam.
14048         Make it possible to perform synchronous loads from the application cache.
14049         
14050         * loader/DocumentLoader.cpp:
14051         (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
14052         Factor out code from scheduleApplicationCacheLoad in its own method.
14053         
14054         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
14055         Call shouldLoadResourceFromApplicationCache here instead.
14056         
14057         * loader/DocumentLoader.h:
14058         
14059         * loader/FrameLoader.cpp:
14060         (WebCore::FrameLoader::loadResourceSynchronously):
14061         Call shouldLoadResourceFromApplicationCache.
14063 2008-05-12  Dan Bernstein  <mitz@apple.com>
14065         Reviewed by Ada Chan and Sam Weinig.
14067         - WebCore changes for https://bugs.webkit.org/show_bug.cgi?id=17097
14068           <rdar://problem/5715471> CGFontRefs (and HFONTs on Windows) leak because FontCache grows without bound
14070         Added a way for clients to let the cache know that they no longer need
14071         font data, which lets the cache release it. Changed clients to track
14072         most of the font data they get from the cache so that they can later
14073         release it. Some instances of font data -- namely, those used for system
14074         font fallback -- are still not tracked and will therefore remain in the
14075         cache indefinitely.
14077         * WebCore.base.exp: Added exports for WebCoreStatistics in WebKit.
14079         * platform/graphics/Font.cpp:
14080         (WebCore::Font::Font): Changed to use FontFallbackList::create().
14081         (WebCore::Font::update): Ditto.
14083         * platform/graphics/FontCache.cpp:
14084         (WebCore::FontCache::getCachedFontData): Added code to track the number
14085         of times a SimpleFontData instance has been requested from the cache,
14086         remove requested instances from the inactive list, and purge inactive
14087         font data if the inactive list has grown above its maximum allowed size.
14088         (WebCore::FontCache::releaseFontData): Added. Called by clients to let
14089         the cache know that they no longer need the font data. Adds the font
14090         data to the inactive list if the last client has released it.
14091         (WebCore::FontCache::purgeInactiveFontData): Added. Removes inactive
14092         font data from the cache (and the inactive list).
14093         (WebCore::FontCache::fontDataCount): Added to provide statistics.
14094         (WebCore::FontCache::inactiveFontDataCount): Ditto.
14096         * platform/graphics/FontCache.h:
14098         * platform/graphics/FontData.h:
14099         (WebCore::FontData::FontData): Added a member variable to store the
14100         highest glyph page tree level in which there is a node for this FontData.
14101         This is used to limit the depth of the search when pruning glyph page
14102         trees.
14103         (WebCore::FontData::setMaxGlyphPageTreeLevel): Added this accessor.
14104         (WebCore::FontData::maxGlyphPageTreeLevel): Ditto.
14106         * platform/graphics/FontFallbackList.cpp:
14107         (WebCore::FontFallbackList::FontFallbackList): Changed to start with a
14108         refcount of 1.
14109         (WebCore::FontFallbackList::invalidate): Added a call to
14110         releaseFontData().
14111         (WebCore::FontFallbackList::releaseFontData): Added. Lets the font cache
14112         know that we no longer need the FontData in our font list.
14113         (WebCore::FontFallbackList::fontDataAt): Changed to record in the font
14114         list whether the font data is a custom font data or not.
14115         (WebCore::FontFallbackList::setPlatformFont): Ditto.
14117         * platform/graphics/FontFallbackList.h:
14118         (WebCore::FontFallbackList::create): Added and made the constructor
14119         private.
14120         (WebCore::FontFallbackList::~FontFallbackList): Added a call to
14121         releaseFontData().
14123         * platform/graphics/GlyphPageTreeNode.cpp:
14124         (WebCore::GlyphPageTreeNode::treeGlyphPageCount): Added to provide
14125         statistics.
14126         (WebCore::GlyphPageTreeNode::pageCount): Ditto.
14128         (WebCore::GlyphPageTreeNode::pruneTreeFontData): Added.
14129         (WebCore::GlyphPageTreeNode::getChild): Added code to update the font
14130         data's maximum glyph page tree level.
14131         (WebCore::GlyphPageTreeNode::pruneFontData): Added.
14133         * platform/graphics/GlyphPageTreeNode.h:
14135         * platform/graphics/SimpleFontData.cpp:
14136         (WebCore::SimpleFontData::~SimpleFontData): Added code to let the font
14137         cache know that we no longer need the small caps font data and to prune
14138         the glyph page trees.
14140 2008-05-12  Anders Carlsson  <andersca@apple.com>
14142         Reviewed by Alexey.
14144         Add ApplicationCacheStorage::empty() method which will empty
14145         the application cache database.
14146         
14147         * WebCore.base.exp:
14148         * loader/appcache/ApplicationCache.cpp:
14149         (WebCore::ApplicationCache::clearStorageID):
14150         * loader/appcache/ApplicationCache.h:
14151         * loader/appcache/ApplicationCacheGroup.cpp:
14152         (WebCore::ApplicationCacheGroup::clearStorageID):
14153         * loader/appcache/ApplicationCacheGroup.h:
14154         * loader/appcache/ApplicationCacheResource.h:
14155         (WebCore::ApplicationCacheResource::clearStorageID):
14156         * loader/appcache/ApplicationCacheStorage.cpp:
14157         (WebCore::ApplicationCacheStorage::empty):
14158         * loader/appcache/ApplicationCacheStorage.h:
14160 2008-05-12  Anders Carlsson  <andersca@apple.com>
14162         Reviewed by John.
14164         Don't throw an exception if the string passed in is an invalid URL.
14165         
14166         * loader/appcache/DOMApplicationCache.cpp:
14167         (WebCore::DOMApplicationCache::remove):
14169 2008-05-12  Anders Carlsson  <andersca@apple.com>
14171         Reviewed by Mitz.
14173         Add the variable enums for getting the input vtables.
14174         
14175         * bridge/npapi.h:
14177 2008-05-12  Adam Roben  <aroben@apple.com>
14179         Windows build fix
14181         * WebCorePrefix.cpp: Touched this so that it will rebuild now that
14182         ENABLE_CROSS_DOCUMENT_MESSAGING has been removed.
14184 2008-05-12  Alexey Proskuryakov  <ap@webkit.org>
14186         Roll out recent  threading changes (r32807, r32810, r32819, r32822) to simplify
14187         SquirrelFish merging.
14189         * bindings/js/GCController.cpp:
14190         (WebCore::collect):
14191         (WebCore::GCController::gcTimerFired):
14192         (WebCore::GCController::garbageCollectNow):
14193         * bindings/js/JSAudioConstructor.cpp:
14194         (WebCore::JSAudioConstructor::JSAudioConstructor):
14195         * bindings/js/JSCSSRuleCustom.cpp:
14196         (WebCore::toJS):
14197         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
14198         (WebCore::JSCSSStyleDeclaration::nameGetter):
14199         * bindings/js/JSCSSValueCustom.cpp:
14200         (WebCore::toJS):
14201         * bindings/js/JSCanvasPixelArrayCustom.cpp:
14202         (WebCore::JSCanvasPixelArray::indexGetter):
14203         (WebCore::toJS):
14204         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
14205         (WebCore::toJS):
14206         * bindings/js/JSClipboardCustom.cpp:
14207         (WebCore::JSClipboard::types):
14208         (WebCore::JSClipboard::getData):
14209         * bindings/js/JSCustomXPathNSResolver.cpp:
14210         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
14211         * bindings/js/JSDOMApplicationCacheCustom.cpp:
14212         (WebCore::JSDOMApplicationCache::addEventListener):
14213         (WebCore::JSDOMApplicationCache::removeEventListener):
14214         (WebCore::JSDOMApplicationCache::setOnchecking):
14215         (WebCore::JSDOMApplicationCache::setOnerror):
14216         (WebCore::JSDOMApplicationCache::setOnnoupdate):
14217         (WebCore::JSDOMApplicationCache::setOndownloading):
14218         (WebCore::JSDOMApplicationCache::setOnprogress):
14219         (WebCore::JSDOMApplicationCache::setOnupdateready):
14220         (WebCore::JSDOMApplicationCache::setOncached):
14221         * bindings/js/JSDOMWindowBase.cpp:
14222         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
14223         (WebCore::JSDOMWindowBase::getValueProperty):
14224         (WebCore::JSDOMWindowBase::setListener):
14225         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
14226         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
14227         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
14228         (WebCore::windowProtoFuncAToB):
14229         (WebCore::windowProtoFuncBToA):
14230         (WebCore::windowProtoFuncSetTimeout):
14231         (WebCore::windowProtoFuncSetInterval):
14232         (WebCore::windowProtoFuncAddEventListener):
14233         * bindings/js/JSDOMWindowBase.h:
14234         * bindings/js/JSDOMWindowShell.cpp:
14235         * bindings/js/JSDOMWindowShell.h:
14236         * bindings/js/JSDocumentCustom.cpp:
14237         (WebCore::toJS):
14238         * bindings/js/JSEventCustom.cpp:
14239         (WebCore::toJS):
14240         * bindings/js/JSEventTargetBase.cpp:
14241         (WebCore::jsEventTargetAddEventListener):
14242         * bindings/js/JSEventTargetBase.h:
14243         (WebCore::JSEventTargetPrototype::self):
14244         * bindings/js/JSEventTargetNode.cpp:
14245         (WebCore::JSEventTargetNode::setListener):
14246         * bindings/js/JSHTMLCollectionCustom.cpp:
14247         (WebCore::getNamedItems):
14248         (WebCore::toJS):
14249         * bindings/js/JSHTMLElementWrapperFactory.cpp:
14250         (WebCore::createJSHTMLWrapper):
14251         * bindings/js/JSHTMLFormElementCustom.cpp:
14252         (WebCore::JSHTMLFormElement::nameGetter):
14253         * bindings/js/JSHTMLInputElementBase.cpp:
14254         (WebCore::JSHTMLInputElementBase::getValueProperty):
14255         * bindings/js/JSHTMLOptionElementConstructor.cpp:
14256         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
14257         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
14258         (WebCore::JSHTMLOptionsCollection::length):
14259         * bindings/js/JSInspectedObjectWrapper.cpp:
14260         (WebCore::JSInspectedObjectWrapper::wrap):
14261         * bindings/js/JSInspectorCallbackWrapper.cpp:
14262         (WebCore::JSInspectorCallbackWrapper::wrap):
14263         * bindings/js/JSLocationCustom.cpp:
14264         (WebCore::JSLocation::toString):
14265         * bindings/js/JSNamedNodesCollection.cpp:
14266         (WebCore::JSNamedNodesCollection::lengthGetter):
14267         * bindings/js/JSNavigatorCustom.cpp:
14268         (WebCore::JSNavigator::appVersion):
14269         * bindings/js/JSNodeCustom.cpp:
14270         (WebCore::toJS):
14271         * bindings/js/JSNodeFilterCustom.cpp:
14272         (WebCore::JSNodeFilter::acceptNode):
14273         * bindings/js/JSRGBColor.cpp:
14274         (WebCore::getJSRGBColor):
14275         * bindings/js/JSSQLResultSetRowListCustom.cpp:
14276         (WebCore::JSSQLResultSetRowList::item):
14277         * bindings/js/JSSVGElementWrapperFactory.cpp:
14278         (WebCore::createJSSVGWrapper):
14279         * bindings/js/JSSVGLazyEventListener.cpp:
14280         (WebCore::JSSVGLazyEventListener::eventParameterName):
14281         * bindings/js/JSStorageCustom.cpp:
14282         (WebCore::JSStorage::nameGetter):
14283         * bindings/js/JSStyleSheetCustom.cpp:
14284         (WebCore::toJS):
14285         * bindings/js/JSXMLHttpRequestConstructor.cpp:
14286         (WebCore::JSXMLHttpRequestConstructor::construct):
14287         * bindings/js/JSXMLHttpRequestCustom.cpp:
14288         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
14289         (WebCore::JSXMLHttpRequest::setOnload):
14290         (WebCore::JSXMLHttpRequest::setOnprogress):
14291         (WebCore::JSXMLHttpRequest::getResponseHeader):
14292         (WebCore::JSXMLHttpRequest::addEventListener):
14293         (WebCore::JSXMLHttpRequest::removeEventListener):
14294         * bindings/js/JSXSLTProcessorConstructor.cpp:
14295         (WebCore::JSXSLTProcessorConstructor::construct):
14296         * bindings/js/JSXSLTProcessorCustom.cpp:
14297         (WebCore::JSXSLTProcessor::getParameter):
14298         * bindings/js/kjs_binding.cpp:
14299         (WebCore::jsStringOrNull):
14300         (WebCore::jsOwnedStringOrNull):
14301         (WebCore::jsStringOrUndefined):
14302         (WebCore::jsStringOrFalse):
14303         (WebCore::nonCachingStaticFunctionGetter):
14304         (WebCore::objectToStringFunctionGetter):
14305         * bindings/js/kjs_binding.h:
14306         (WebCore::DOMObject::DOMObject):
14307         (WebCore::cacheDOMObject):
14308         (WebCore::cacheSVGDOMObject):
14309         * bindings/js/kjs_events.cpp:
14310         (WebCore::JSLazyEventListener::eventParameterName):
14311         (WebCore::JSLazyEventListener::parseCode):
14312         * bindings/js/kjs_html.cpp:
14313         (WebCore::getRuntimeObject):
14314         * bindings/scripts/CodeGeneratorJS.pm:
14315         * bridge/c/c_instance.cpp:
14316         (KJS::Bindings::CInstance::defaultValue):
14317         (KJS::Bindings::CInstance::stringValue):
14318         (KJS::Bindings::CInstance::numberValue):
14319         (KJS::Bindings::CInstance::valueOf):
14320         * bridge/c/c_instance.h:
14321         * bridge/c/c_utility.cpp:
14322         (KJS::Bindings::convertNPVariantToValue):
14323         * bridge/jni/jni_instance.cpp:
14324         (JavaInstance::stringValue):
14325         (JavaInstance::numberValue):
14326         (JavaInstance::invokeMethod):
14327         (JavaInstance::defaultValue):
14328         (JavaInstance::valueOf):
14329         * bridge/jni/jni_instance.h:
14330         * bridge/jni/jni_jsobject.h:
14331         * bridge/jni/jni_jsobject.mm:
14332         (JavaJSObject::call):
14333         (JavaJSObject::setMember):
14334         (JavaJSObject::setSlot):
14335         (JavaJSObject::convertJObjectToValue):
14336         (JavaJSObject::getListFromJArray):
14337         * bridge/jni/jni_objc.mm:
14338         (KJS::Bindings::dispatchJNICall):
14339         * bridge/jni/jni_runtime.cpp:
14340         (JavaArray::convertJObjectToArray):
14341         (JavaField::dispatchValueFromInstance):
14342         (JavaField::valueFromInstance):
14343         (JavaField::dispatchSetValueToInstance):
14344         (JavaArray::valueAt):
14345         * bridge/jni/jni_utility.h:
14346         * bridge/objc/objc_class.mm:
14347         (KJS::Bindings::ObjcClass::fallbackObject):
14348         * bridge/objc/objc_instance.h:
14349         * bridge/objc/objc_instance.mm:
14350         (ObjcInstance::defaultValue):
14351         (ObjcInstance::stringValue):
14352         (ObjcInstance::numberValue):
14353         (ObjcInstance::valueOf):
14354         * bridge/objc/objc_utility.h:
14355         * bridge/objc/objc_utility.mm:
14356         (KJS::Bindings::convertNSStringToString):
14357         (KJS::Bindings::convertObjcValueToValue):
14358         * bridge/qt/qt_class.cpp:
14359         (KJS::Bindings::QtClass::fallbackObject):
14360         * bridge/qt/qt_instance.cpp:
14361         (KJS::Bindings::QtRuntimeObjectImp::construct):
14362         (KJS::Bindings::QtInstance::getRuntimeObject):
14363         (KJS::Bindings::QtInstance::invokeDefaultMethod):
14364         (KJS::Bindings::QtInstance::defaultValue):
14365         (KJS::Bindings::QtInstance::stringValue):
14366         (KJS::Bindings::QtInstance::numberValue):
14367         (KJS::Bindings::QtInstance::valueOf):
14368         * bridge/qt/qt_instance.h:
14369         * bridge/qt/qt_runtime.cpp:
14370         (KJS::Bindings::convertValueToQVariant):
14371         (KJS::Bindings::convertQVariantToValue):
14372         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
14373         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
14374         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
14375         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
14376         (KJS::Bindings::QtConnectionObject::execute):
14377         * bridge/runtime.cpp:
14378         (KJS::Bindings::Instance::createRuntimeObject):
14379         * bridge/runtime.h:
14380         (KJS::Bindings::Instance::valueOf):
14381         * bridge/runtime_array.cpp:
14382         (RuntimeArray::lengthGetter):
14383         * bridge/runtime_method.cpp:
14384         (RuntimeMethod::lengthGetter):
14385         * bridge/runtime_object.cpp:
14386         (RuntimeObjectImp::RuntimeObjectImp):
14387         (RuntimeObjectImp::methodGetter):
14388         (RuntimeObjectImp::defaultValue):
14389         * xml/XMLHttpRequest.cpp:
14390         (WebCore::XMLHttpRequest::dropProtection):
14392 2008-05-11  Robin Dunn  <robin@alldunn.com>
14394         Reviewed by Kevin Ollivier.
14396         Since wx popup menus dismiss themselves when an item is selected we need to
14397         call hidePopup so webkit's internal state is correct.
14398         
14399         https://bugs.webkit.org/show_bug.cgi?id=19000
14401         * platform/wx/PopupMenuWx.cpp:
14402         (WebCore::PopupMenu::OnMenuItemSelected):
14403         (WebCore::PopupMenu::hide):
14405 2008-05-11  Sam Weinig  <sam@webkit.org>
14407         Reviewed by Mark Rowe.
14409         Move some generic parsing functions into a new ParserUtilities header so that
14410         they can be used for non-SVG builds too.
14412         * WebCore.vcproj/WebCore.vcproj:
14413         * WebCore.xcodeproj/project.pbxproj:
14414         * platform/text/ParserUtilities.h: Added.
14415         (WebCore::skipString):
14416         * svg/SVGParserUtilities.h:
14417         (WebCore::isWhitespace):
14418         (WebCore::skipOptionalSpaces):
14419         (WebCore::skipOptionalSpacesOrDelimiter):
14421 2008-05-11  Sam Weinig  <sam@webkit.org>
14423         Reviewed by Dan Bernstein.
14425         Add scaffolding for the implementation of Access Control for Cross-site Requests. 
14427         * GNUmakefile.am:
14428         * WebCore.pro:
14429         * WebCore.vcproj/WebCore.vcproj:
14430         * WebCore.xcodeproj/project.pbxproj:
14431         * WebCoreSources.bkl:
14432         * xml/AccessControlList.cpp: Added.
14433         (WebCore::AccessControlList::AccessControlList):
14434         (WebCore::AccessControlList::~AccessControlList):
14435         (WebCore::AccessControlList::parseAccessControlHeader):
14436         (WebCore::AccessControlList::checkOrigin):
14437         * xml/AccessControlList.h: Added.
14438         * xml/AccessItem.cpp: Added.
14439         (WebCore::AccessItem::AccessItem):
14440         (WebCore::AccessItem::parseAccessItem):
14441         (WebCore::AccessItem::matches):
14442         * xml/AccessItem.h: Added.
14443         * xml/AccessItemRule.cpp: Added.
14444         (WebCore::AccessItemRule::AccessItemRule):
14445         (WebCore::AccessItemRule::parseAccessItemRule):
14446         * xml/AccessItemRule.h: Added.
14448 2008-05-11  Julien Chaffraix  <jchaffraix@webkit.org>
14450         Debug build fix.
14452         * loader/appcache/ApplicationCache.cpp: Include stdio.h
14453         as we are using printf in ApplicationCache::dump().
14455 2008-05-10  Dan Bernstein  <mitz@apple.com>
14457         Reviewed by Jessica Kahn.
14459         - add a copy assignment operator to FontPlatformData on Mac to properly
14460           retain the m_font data member.
14462         * platform/graphics/mac/FontPlatformData.h:
14463         * platform/graphics/mac/FontPlatformDataMac.mm:
14464         (WebCore::FontPlatformData::FontPlatformData):
14465         (WebCore::~FontPlatformData):
14466         (WebCore::FontPlatformData::operator=):
14467         (WebCore::FontPlatformData::setFont):
14469 2008-05-10  Adele Peterson  <adele@apple.com>
14471         Reviewed by Tim Hatcher.
14473         Fix crash for WebKit clients that don't set a group name for the WebView/Page.
14475         * page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): Instead of adding the Page directly to the group,
14476           call the addPage method, since it does extra work initializing m_localStorage.
14478 2008-05-09  Sam Weinig  <sam@webkit.org>
14480         Reviewed by Mark Rowe.
14482         Fix for https://bugs.webkit.org/show_bug.cgi?id=18958
14483         NULL pointer dereference in NamedAttrMap::setNamedItem
14485         Test: fast/dom/NamedNodeMap-setNamedItem-crash.html
14487         * dom/NamedAttrMap.cpp:
14488         (WebCore::NamedAttrMap::setNamedItem): Null check the argument.
14490 2008-05-09  Kevin McCullough  <kmccullough@apple.com>
14492         Build fix.
14494         * page/Console.cpp:
14495         (WebCore::Console::profile):
14497 2008-05-09  Sam Weinig  <sam@webkit.org>
14499         Rubber-stamped by Mark Rowe.
14501         Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.
14503         * Configurations/WebCore.xcconfig:
14504         * WebCore.vcproj/WebCore.vcproj:
14505         * WebCore.vcproj/build-generated-files.sh:
14506         * bindings/js/JSDOMWindowCustom.cpp:
14507         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
14508         (WebCore::JSDOMWindow::postMessage):
14509         * bindings/js/JSEventCustom.cpp:
14510         (WebCore::toJS):
14511         * bindings/objc/DOMEvents.mm:
14512         (+[DOMEvent _wrapEvent:WebCore::]):
14513         * dom/Document.cpp:
14514         (WebCore::Document::createEvent):
14515         * dom/Event.cpp:
14516         (WebCore::Event::isMessageEvent):
14517         * dom/Event.h:
14518         * dom/MessageEvent.cpp:
14519         * dom/MessageEvent.h:
14520         * dom/MessageEvent.idl:
14521         * page/DOMWindow.cpp:
14522         (WebCore::DOMWindow::postMessageTimerFired):
14523         * page/DOMWindow.h:
14524         * page/DOMWindow.idl:
14526 2008-05-09  Adam Barth  <abarth-webkit@adambarth.com>
14528         Reviewed by Sam Weinig.
14530         https://bugs.webkit.org/show_bug.cgi?id=18771
14532         Make postMessage generate an event on the window instead of the
14533         document.
14535         Test: http/tests/messaging/cross-domain-message-event-dispatch.html
14537         * dom/EventTargetNode.cpp:
14538         (WebCore::EventTargetNode::dispatchWindowEvent):
14539         * dom/EventTargetNode.h:
14540         * page/DOMWindow.cpp:
14541         (WebCore::DOMWindow::postMessageTimerFired):
14543 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
14545         Reviewed by Simon.
14547         Replaced all instances of qDebug() with LOG(Media, ...)
14548         in MediaPlayerPrivatePhonon.
14550         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
14551         (WebCore::MediaPlayerPrivate::updateStates):
14553 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
14555         Reviewed by Simon
14557         Fix the Qt/Mac build.
14559         * platform/qt/FileSystemQt.cpp:
14561 2008-05-08  Sam Weinig  <sam@webkit.org>
14563         Reviewed by Anders Carlsson.
14565         Rename the XMLHttpRequestState enum values to match the spec.
14567         * xml/XMLHttpRequest.cpp:
14568         (WebCore::XMLHttpRequest::responseXML):
14569         (WebCore::XMLHttpRequest::XMLHttpRequest):
14570         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
14571         (WebCore::XMLHttpRequest::open):
14572         (WebCore::XMLHttpRequest::send):
14573         (WebCore::XMLHttpRequest::abort):
14574         (WebCore::XMLHttpRequest::setRequestHeader):
14575         (WebCore::XMLHttpRequest::getAllResponseHeaders):
14576         (WebCore::XMLHttpRequest::getResponseHeader):
14577         (WebCore::XMLHttpRequest::status):
14578         (WebCore::XMLHttpRequest::statusText):
14579         (WebCore::XMLHttpRequest::processSyncLoadResults):
14580         (WebCore::XMLHttpRequest::didFinishLoading):
14581         (WebCore::XMLHttpRequest::didReceiveData):
14582         * xml/XMLHttpRequest.h:
14584 2008-05-08  Dan Bernstein  <mitz@apple.com>
14586         Reviewed by Mark Rowe.
14588         - fix https://bugs.webkit.org/show_bug.cgi?id=18818
14589           <rdar://problem/5901544> REGRESSION (3.1.1-TOT): Character order (float:left ordered after the first letter)
14591         Test: fast/css/first-letter-float-after-float.html
14593         * rendering/RenderBlock.cpp:
14594         (WebCore::RenderBlock::updateFirstLetter): Changed to add the first
14595         letter container right before the rest of the text it is taken from,
14596         instead of at the beginning of the block.
14598 2008-05-08  Chris Fleizach  <cfleizach@apple.com>
14600         Reviewed by Darin Adler.
14602         <rdar://problem/5921046> AX: list box options have wrong AXPosition
14604         * page/AccessibilityObject.cpp:
14605         (WebCore::AccessibilityObject::documentFrameView):
14606         * page/AccessibilityObject.h:
14608 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
14610         Reviewed by Eric.
14612         Bug 18916: make_names.pl --factory needs to support custom c++ guard
14614         Add --guardFactoryWith to handle the cpp guard around generated factories.
14616         * DerivedSources.make: Set the guardFactoryWith variable for SVG factory.
14617         * GNUmakefile.am: Ditto.
14618         * WebCore.pro: Ditto.
14619         * dom/make_names.pl: Add guardFactoryWith option.
14621 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
14623         Reviewed by Adam Roben.
14625         wx & Gtk build fix.
14627         Should also fix the cURL backend for the Windows port.
14629         * WebCore.vcproj/WebCore.vcproj: Add FormDataStreamCurl information.
14630         * platform/network/curl/FormDataStreamCurl.h: Include stdio.h which
14631         fixes the build on some machine.
14633         * webcore-wx.bkl: Add FormDataStreamCurl.cpp.
14635 2008-05-08  Timothy Hatcher  <timothy@apple.com>
14637         Fixes the bug where the Web Inspector could not
14638         find any localization strings.
14640         Reviewed by Mark Rowe.
14642         * WebCore.xcodeproj/project.pbxproj: Add the localizedStrings.js
14643         file to the WebCore Copy Resources phase. Also removes an idl from
14644         the Copy Resources phase.
14646 2008-05-08  Dan Bernstein  <mitz@apple.com>
14648         Reviewed by Adam Roben.
14650         - fix <rdar://problem/5697957> "No recent searches" label in a narrow search field's history popup is truncated
14652         * platform/win/PopupMenuWin.cpp:
14653         (WebCore::PopupMenu::calculatePositionAndSize): Changed to use a bold
14654         font for measuring labels.
14656 2008-05-08  Dan Bernstein  <mitz@apple.com>
14658         Reviewed by Geoffrey Garen.
14660         - cross-platform fix for http://bugs.webkit.org/show_bug.cgi?id=17590 
14661           ASSERTION FAILED: subject in jsRegExpExecute()
14663         * page/Frame.cpp:
14664         (WebCore::Frame::matchLabelsAgainstElement):
14666 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
14668         Reviewed by Simon.
14670         Simple ImageBuffer::image implementation.
14672         In contrast to cg and cairo we do not use a special BitmapImage because
14673         the ownership of the FrameData inside the BitmapImage is a bit backward
14674         (actually owned by the ImageDecoderQt...). Further work is needed for image
14675         and pixmap handling in the qt port...
14677         * WebCore.pro:
14678         * platform/graphics/ImageBuffer.h:
14679         * platform/graphics/qt/ImageBufferQt.cpp:
14680         (WebCore::ImageBuffer::image):
14681         * platform/graphics/qt/ImageQt.cpp:
14682         * platform/graphics/qt/StillImageQt.cpp: Added.
14683         (WebCore::StillImage::StillImage):
14684         (WebCore::StillImage::size):
14685         (WebCore::StillImage::getPixmap):
14686         (WebCore::StillImage::draw):
14687         * platform/graphics/qt/StillImageQt.h: Added.
14689 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
14691         Reviewed by Simon.
14693         Update the WebKit.qrc of the inspector to be functional again
14695         * page/inspector/WebKit.qrc:
14697 2008-05-08  Tor Arne Vestbø  <tavestbo@trolltech.com>
14699         Reviewed by Simon
14701         Fix the Qt/Mac build.
14703         * platform/FileSystem.h:
14705 2008-05-08  Ariya Hidayat  <ariya.hidayat@trolltech.com>
14707         Reviewed by Simon.
14709         Use native Windows library handling (instead of QLibrary) 
14710         for Qt/Win32's PlatformModule.
14712         * platform/FileSystem.h:
14713         (WebCore::PlatformModuleVersion::PlatformModuleVersion):
14714         * platform/qt/FileSystemQt.cpp:
14715         (WebCore::unloadModule):
14717 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
14719         Reviewed and found by Holger.
14721         Include .css in the list of extensions for text/css. Fixes
14722         fast/loader/local-css-allowed-in-strict-mode.html.
14724         * platform/qt/MIMETypeRegistryQt.cpp:
14726 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
14728         Fix the Qt and Wx build when compiling without offline app support.
14730         * loader/FrameLoader.cpp:
14731         (WebCore::FrameLoader::canCachePage):
14733 2008-05-07  Sam Weinig  <sam@webkit.org>
14735         Reviewed by Adele Peterson
14737         Update MessageEvent to match the latest version of the HTML5 spec,
14738         adding the lastEventId attribute.
14740         * dom/MessageEvent.cpp:
14741         (WebCore::MessageEvent::MessageEvent):
14742         (WebCore::MessageEvent::initMessageEvent):
14743         * dom/MessageEvent.h:
14744         (WebCore::MessageEvent::lastEventId):
14745         * dom/MessageEvent.idl:
14746         * page/DOMWindow.cpp:
14747         (WebCore::DOMWindow::postMessage):
14749 2008-05-07  Stephanie Lewis <slewis@apple.com>
14751         Reviewed by Maciej.
14753         remove non-functioning code.  If onunload should be fired from these nodes then
14754         a WindowEventListener needs to be set.  However, Firefox and IE also do not
14755         fire onunload events for these cases.
14757         Test: fast/events/onunload-not-on-body.html 
14758         
14759         * html/HTMLFrameElementBase.cpp:
14760         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
14761         * html/HTMLObjectElement.cpp
14762         (WebCore::HTMLObjectElement::parseMappedAttribute):
14764 2008-05-07  Dan Bernstein  <mitz@apple.com>
14766         Reviewed by John Sullivan.
14768         - fix https://bugs.webkit.org/show_bug.cgi?id=18909
14769           <rdar://problem/5914165> REGRESSION (r31872-r31878): Viewed photos not closing completely at indycar.com
14771         Test: fast/dynamic/positioned-movement-with-positioned-children.html
14773         * rendering/RenderBlock.cpp:
14774         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Cover the case of
14775         a positioned object that has only moved and has only positioned children
14776         that have changed.
14777         * rendering/RenderObject.h:
14778         (WebCore::RenderObject::needsPositionedMovementLayout): Added this
14779         accessor.
14781 2008-05-07  Anders Carlsson  <andersca@apple.com>
14783         Reviewed by John.
14785         When no document loaders are associated with an application cache group,
14786         release the reference to the newest cache group. This prevents reference cycles.
14787         
14788         * loader/appcache/ApplicationCacheGroup.cpp:
14789         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
14790         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
14791         (WebCore::ApplicationCacheGroup::cacheDestroyed):
14792         * loader/appcache/ApplicationCacheGroup.h:
14793         
14794         * loader/appcache/ApplicationCacheStorage.cpp:
14795         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
14796         Return early if the datbase wasn't open.
14797         
14798         (WebCore::ApplicationCacheStorage::loadCache):
14799         Add error.
14801 2008-05-07  Anders Carlsson  <andersca@apple.com>
14803         Reviewed by Adam.
14805         Don't put pages with an application cache in the BF cache.
14806         
14807         * loader/FrameLoader.cpp:
14808         (WebCore::FrameLoader::canCachePage):
14810 2008-05-07  Justin Garcia  <justin.garcia@apple.com>
14812         Reviewed by John Sullivan.
14814         <rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply
14815         
14816         When a single tab or series of tabs was copied, we weren't putting them into a 
14817         tab span.  On Paste, we would be given a text node with a single tab or series
14818         of tabs in it, and we would crash when inserting it at the start of a block
14819         (where that kind of text becomes completely unrendered).
14821         * editing/ReplaceSelectionCommand.cpp:
14822         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Clean
14823         up correctly and early return if we removed everything that was inserted.
14824         * editing/markup.cpp:
14825         (WebCore::createMarkup):  Include the tab span when the only thing copied
14826         was a tab or a series of tabs.
14828 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
14830         Reviewed by Adam Roben.
14832         wx & Gtk build fix.
14834         * platform/network/curl/FormDataStreamCurl.cpp: Added stdint.h include. We need to define
14835         __STDC_LIMIT_MACROS to have SIZE_MAX exported.
14836         * platform/network/curl/FormDataStreamCurl.h: Removed cstdint include (replaced by stdint.h)
14837         as it is not present on the build bots.
14838         * plugins/gtk/PluginDatabaseGtk.cpp: Added missing #endif.
14840 2008-05-07  David Kilzer  <ddkilzer@apple.com>
14842         Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
14843         <https://bugs.webkit.org/show_bug.cgi?id=18900>
14844         <rdar://problem/5912383>
14846         Original patch by Aaron Golden and Tim Omernick.  Reviewed by Adele.
14848         Test: fast/forms/textfield-to-password-on-focus.html
14850         * html/HTMLInputElement.cpp:
14851         (WebCore::HTMLInputElement::setInputType): If the current node has
14852         focus, call updateFocusAppearance() to make sure its state is correct
14853         after changing its type.
14855 2008-05-07  Chris Fleizach  <cfleizach@apple.com>
14857         Reviewed by Alice Liu
14859         <rdar://problem/4867889> REGRESSION: "Choose File.." buttons are exposed as AXGroup instead of AXButton
14861         * page/AccessibilityObject.h:
14862         (WebCore::AccessibilityObject::isFileUploadButton):
14863         * page/AccessibilityRenderObject.cpp:
14864         (WebCore::AccessibilityRenderObject::isFileUploadButton):
14865         (WebCore::AccessibilityRenderObject::actionElement):
14866         (WebCore::AccessibilityRenderObject::textUnderElement):
14867         (WebCore::AccessibilityRenderObject::stringValue):
14868         (WebCore::AccessibilityRenderObject::roleValue):
14869         * page/AccessibilityRenderObject.h:
14870         * rendering/RenderFileUploadControl.cpp:
14871         (WebCore::RenderFileUploadControl::buttonValue):
14872         (WebCore::RenderFileUploadControl::fileTextValue):
14873         * rendering/RenderFileUploadControl.h:
14875 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
14877         Reviewed by Eric.
14879         Bug 17971: [Curl] FormData processing should be moved to its own class
14881         Move FormData treatment into FormDataStream. The aim is to have FormDataStream behave like a stream that cURL
14882         could manipulate.
14884         First step into having complete file uploading facility in cURL.
14886         No test case as it is only code refactoring.
14888         * GNUmakefile.am: Add FormDataStreamCurl.cpp
14889         * platform/network/ResourceHandleInternal.h: Move code to FormStreamDataCurl.h
14890         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
14891         * platform/network/curl/FormDataStreamCurl.cpp: Added.
14892         (WebCore::FormDataStream::~FormDataStream):
14893         (WebCore::FormDataStream::read):
14894         * platform/network/curl/FormDataStreamCurl.h: Added.
14895         (WebCore::FormDataStream::FormDataStream):
14896         * platform/network/curl/ResourceHandleCurl.cpp:
14897         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
14898         * platform/network/curl/ResourceHandleManager.cpp:
14899         (WebCore::readCallback): Move code to FormDataStreamCurl.cpp
14901 2008-05-07  Adam Treat  <treat@kde.org>
14903         Reviewed by Simon.
14905         https://bugs.webkit.org/show_bug.cgi?id=18898
14907         Fixed wrong transform being used for creating the pixmap for a new
14908         transparency layer. This fixes the popup menus on dell.com.
14910         * platform/graphics/qt/GraphicsContextQt.cpp:
14911         (WebCore::GraphicsContext::beginTransparencyLayer):
14913 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
14915         Reviewed by Simon.
14917         Share the plug-in directories between Gtk and Qt/X11 port.
14919         * platform/qt/FileSystemQt.cpp:
14920         (WebCore::homeDirectoryPath): Implement it for Qt.
14921         * plugins/PluginDatabase.cpp:
14922         (WebCore::addMozillaPluginDirectories): Shared code.
14923         (WebCore::PluginDatabase::defaultPluginDirectories):
14924         (WebCore::PluginDatabase::isPreferredPluginDirectory): Shared code.
14925         * plugins/gtk/PluginDatabaseGtk.cpp:
14926         (WebCore::PluginDatabase::isPreferredPluginDirectory): Refactored.
14927         * plugins/qt/PluginDatabaseQt.cpp: Refactored.
14929 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
14931         Reviewed by Simon
14933         Fix build issues on Mac and refeactor the .pro file a bit.
14935         * WebCore.pro:
14936         * platform/qt/TemporaryLinkStubs.cpp:
14937         (PluginPackage::fetchInfo):
14939 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
14941         Reviewed by Simon
14943         Draw scrollview corners (between scrollbars) using the Qt style.
14945         https://bugs.webkit.org/show_bug.cgi?id=18894
14947         * platform/qt/ScrollViewQt.cpp:
14948         (WebCore::drawScrollbarCorner):
14949         (WebCore::ScrollView::paint):
14951 2008-05-07  Simon Hausmann  <hausmann@webkit.org>
14953         Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
14954         the build.
14956         * WebCore.pro:
14958 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
14960         Rubber-stamped by Holger.
14962         Fix building without storage support.
14964         * page/PageGroup.cpp:
14965         (WebCore::PageGroup::closeLocalStorage): proper #if
14967 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
14969         Rubber-stamped by Oliver Hunt.
14971         Fix building without accessibility.
14973         * page/AXObjectCache.cpp:
14974         (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
14976 2008-05-06  Dan Bernstein  <mitz@apple.com>
14978         Reviewed by Darin Adler.
14980         - fix <rdar://problem/5914544> Crash in layoutInlineChildren()
14982         Test: fast/block/float/float-on-zero-height-line.html
14984         * rendering/RenderBlock.cpp:
14985         (WebCore::RenderBlock::markLinesDirtyInVerticalRange):
14987 2008-05-06  Alice Liu  <alice.liu@apple.com>
14989         Reviewed by Adele Peterson and John Sullivan.
14991         changes needed to build on Windows after r32911 and r32927
14993         * WebCore.vcproj/WebCore.vcproj:
14994         * page/AXObjectCache.cpp:
14995         (WebCore::AXObjectCache::selectedChildrenChanged):
14996         * page/AccessibilityObject.h:
14997         (WebCore::AccessibilityObject::document):
14998         (WebCore::AccessibilityObject::topDocumentFrameView):
14999         (WebCore::AccessibilityObject::documentFrameView):
15000         * page/AccessibilityRenderObject.cpp:
15001         (WebCore::AccessibilityRenderObject::document):
15002         (WebCore::AccessibilityRenderObject::topDocumentFrameView):
15003         (WebCore::AccessibilityRenderObject::documentFrameView):
15004         * page/AccessibilityRenderObject.h:
15005         * page/mac/AXObjectCacheMac.mm:
15006         * page/mac/AccessibilityObjectWrapper.mm:
15007         (-[AccessibilityObjectWrapper position]):
15008         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
15010 2008-05-06  Brady Eidson  <beidson@apple.com>
15012         Reviewed by Sam Weinig
15014         Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
15015         1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
15016         2 - Pending sync timers all need to be cancelled.
15018         * storage/LocalStorage.cpp:
15019         (WebCore::LocalStorage::storageArea):
15020         (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
15021           thread termination.
15022         * storage/LocalStorage.h:  Change the map to be of LocalStorageAreas instead of StorageAreas
15024         * storage/LocalStorageArea.cpp:
15025         (WebCore::LocalStorageArea::LocalStorageArea):
15026         (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
15027           in release builds.
15028         (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the
15029           "final sync scheduled" flag
15030         (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled
15031         (WebCore::LocalStorageArea::scheduleClear): Ditto
15032         * storage/LocalStorageArea.h:
15034 2008-05-06  Kevin Ollivier  <kevino@theolliviers.com>
15036         wx build fix. Adding files added in  r32925 to the bakefiles.
15038         * WebCoreSources.bkl:
15040 2008-05-06  Alp Toker  <alp@nuanti.com>
15042         GTK+ build fix. Add empty stub to keep non-accessible ports building.
15044         * page/AXObjectCache.h:
15045         (WebCore::AXObjectCache::selectedChildrenChanged):
15047 2008-05-06  Beth Dakin  <bdakin@apple.com>
15049         Reviewed by Darin.
15051         Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and 
15052         'aria-describedby' attributes.
15054         * html/HTMLAttributeNames.in: Added new attributes. Added both the 
15055         British spelling (since that is what is specified in the spec), and 
15056         the American spelling (since the bug filer and I are two Americans 
15057         who keep spelling it the American way by accident). 
15058         * page/AccessibilityObject.cpp: Added empty wrappers. These 
15059         functions can't do anything meaningful without a renderer.
15060         (WebCore::AccessibilityObject::ariaAccessiblityName):
15061         (WebCore::AccessibilityObject::ariaLabeledByAttribute):
15062         (WebCore::AccessibilityObject::ariaDescribedByAttribute):
15063         * page/AccessibilityObject.h:
15065         Here is where the real work is done.
15066         * page/AccessibilityRenderObject.h:
15067         * page/AccessibilityRenderObject.cpp:
15068         (WebCore::accessibleNameForNode): Takes a node and finds its 
15069         contribution to the accessible name, as defined by the Mozilla ARIA 
15070         Implementer's Guide. 
15071         (WebCore::AccessibilityRenderObject::ariaAccessiblityName): Takes a 
15072         string of space-separated IDs, fetches the corresponding element 
15073         for each ID, and concatenates an accessible name based on the 
15074         elements.
15075         (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute): 
15076         Retrieve the labeledby attribute and send its contents to 
15077         ariaAccessibilityName().
15078         (WebCore::AccessibilityRenderObject::title): Return the ARIA 
15079         labeledby value if one exists.
15080         (WebCore::AccessibilityRenderObject::ariaDescribedByAttribute): 
15081         Retrieve the describedby attribute and send its contents to 
15082         ariaAccessibilityName().
15083         (WebCore::AccessibilityRenderObject::accessibilityDescription): 
15084         Return the ARIA describedby attribute if one exists. 
15086         These are two bugs I spotted. 
15087         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Don't 
15088         ignore anything with an ARIA role.
15089         (WebCore::AccessibilityRenderObject::roleValue): Button tags maps 
15090         to ButtonRole.
15092 2008-05-06  Anders Carlsson  <andersca@apple.com>
15094         Reviewed by Brady.
15096         Support reading back app caches from the database.
15097     
15098         * loader/appcache/ApplicationCache.cpp:
15099         (WebCore::ApplicationCache::ApplicationCache):
15100         Initialize m_storageID to 0.
15101         
15102         * loader/appcache/ApplicationCacheGroup.cpp:
15103         (WebCore::ApplicationCacheGroup::cacheDestroyed):
15104         If the cache being destroyed is not the newest cache, it should no longer be 
15105         stored in the database. Remove it.
15106         
15107         (WebCore::ApplicationCacheGroup::setNewestCache):
15108         Don't store the cache here.
15109         
15110         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
15111         Store it here instead.
15112         
15113         * loader/appcache/ApplicationCacheStorage.cpp:
15114         (WebCore::ApplicationCacheStorage::loadCacheGroup):
15115         New method that loads a cache group with a given manifest URL (or returns 0 if the load fails).
15116         
15117         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
15118         Search for the group in the database.
15119         
15120         (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
15121         New method that loads the host hashes from the database.
15122         
15123         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
15124         Search in the database for a cache that contains the resource.
15125         
15126         (WebCore::ApplicationCacheStorage::loadCache):
15127         New method that loads a cache with a given ID.
15128         
15129         (WebCore::ApplicationCacheStorage::remove):
15130         New method that removes a cache.
15131         
15132         * loader/appcache/ApplicationCacheStorage.h:
15133         Add definitions.
15135 2008-05-06  Alp Toker  <alp@nuanti.com>
15137         Partial GTK+ build fix. Add files from r32925 to the build and replace
15138         'nil' return with 0.
15140         * GNUmakefile.am:
15141         * page/AccessibilityListBoxOption.cpp:
15142         (WebCore::AccessibilityListBoxOption::parentObject):
15144 2008-05-06  Brady Eidson  <beidson@apple.com>
15146         Reviewed by Anders
15148         Make LocalStorage persistent using a SQLite database.
15150         There's a few things going on here.  Whenever an item is changed, we add it to a set of
15151         "items to be sync'ed."  Instead of immediately scheduling the sync'ing on the background
15152         thread, we set a "sync timer" instead.  This is to shield against a series of rapid changes
15153         to avoid thread churn.
15155         When the sync timer fires, we move the "items to be sync'ed" set to a background thread set
15156         and schedule the sync task which is where the items are actually committed to disk.
15158         Current design for reading items back in from disk is to be as aggressive as possible.
15159         When a page first accesses it's LocalStorage area, we begin to import all items in from disk so
15160         they are immediately available.  A future enhancement will be to being this pre-fetching the
15161         moment we start loading a page when we know that page has LocalStorage.
15163         * storage/LocalStorageArea.cpp:
15164         (WebCore::LocalStorageArea::LocalStorageArea):
15165         (WebCore::LocalStorageArea::length): Return the length, or wait for the import to complete then return it.
15166         (WebCore::LocalStorageArea::key): Return the key, or wait for the import to complete then return it.
15167         (WebCore::LocalStorageArea::getItem): Return the item, or wait for the import to complete then return it.
15168         (WebCore::LocalStorageArea::setItem): Set the item, or hold the import lock and set it.  The second case is
15169           because if the item is set while the import is still in progress, the new value should override whatever
15170           the imported value is.
15171         (WebCore::LocalStorageArea::removeItem): Remove the item, or hold the import lock and remove it.  See the 
15172           explanation for setItem()
15173         (WebCore::LocalStorageArea::contains): Return whether or not the item is contained.  Do the same dance with
15174           the import flag, import lock, and import condition that the above methods do.
15176         (WebCore::LocalStorageArea::itemChanged): Schedule the item for sync'ing
15177         (WebCore::LocalStorageArea::itemRemoved): Schedule the removal of the item for sync'ing
15178         (WebCore::LocalStorageArea::areaCleared): Schedule the clear for sync'ing, and clear all previously 
15179           scheduled items.
15181         (WebCore::LocalStorageArea::scheduleItemForSync): Add an item to the sync set.
15182         (WebCore::LocalStorageArea::scheduleClear): Set a bool flag denoting "All items removed."  If any
15183           items are later set before the actual removal takes place, they will be written *after* the removal.
15184         (WebCore::LocalStorageArea::syncTimerFired): Move the current sync-set to the background thread sync set, then 
15185           schedule a sync task.  Also transfer the "items cleared" flag to the "background thread items cleared" flag
15186         (WebCore::LocalStorageArea::performImport): Import all items from disk, then signal the import complete.
15187         (WebCore::LocalStorageArea::markImported): Set the imported flag and signal the import complete
15188         (WebCore::LocalStorageArea::performSync): If the clear flag is set then drop all items.  Then update or delete 
15189           each item waiting to be sync'ed
15190         * storage/LocalStorageArea.h:
15192 2008-05-06  Brady Eidson  <beidson@apple.com>
15194         Rubberstamped by Mitz Pettel RTL
15196         * storage/LocalStorage.cpp:
15197         (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
15199 2008-05-06  Brady Eidson  <beidson@apple.com>
15201         Reviewed by Darin, Sam Weinig, and Anders
15203         Preparation for upcoming work making LocalStorage persistent.
15205         The final step before code that actually does storage and retrieval of LocalStorage items.
15207         The LocalStorage set is responsible for controlling the path and filenames that individual
15208         LocalStorageAreas will use for their persistent store.  This adds the ability to return that
15209         filename.
15211         Also, add the scheduling methods that LocalStorageArea will use for importing and syncing 
15212         it's persistent items.
15214         * storage/LocalStorage.cpp:
15215         (WebCore::LocalStorage::storageArea):  Add some comments re: the future direction of this
15216           method once we actually do quota tracking.
15217         (WebCore::LocalStorage::fullDatabaseFilename):
15218         (WebCore::LocalStorage::scheduleImport):
15219         (WebCore::LocalStorage::scheduleSync):
15220         * storage/LocalStorage.h:
15222 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
15224         Reviewed by Beth Dakin.
15226         rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
15228         * WebCore.xcodeproj/project.pbxproj:
15229         * html/HTMLOptGroupElement.cpp:
15230         (WebCore::HTMLOptGroupElement::ownerSelectElement):
15231         (WebCore::HTMLOptGroupElement::accessKeyAction):
15232         * html/HTMLOptGroupElement.h:
15233         * html/HTMLOptionElement.cpp:
15234         (WebCore::HTMLOptionElement::accessKeyAction):
15235         (WebCore::HTMLOptionElement::index):
15236         (WebCore::HTMLOptionElement::setSelected):
15237         (WebCore::HTMLOptionElement::childrenChanged):
15238         (WebCore::HTMLOptionElement::ownerSelectElement):
15239         (WebCore::HTMLOptionElement::insertedIntoDocument):
15240         * html/HTMLOptionElement.h:
15241         * html/HTMLSelectElement.cpp:
15242         (WebCore::HTMLSelectElement::childrenChanged):
15243         (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
15244         * html/HTMLSelectElement.h:
15245         * page/AXObjectCache.cpp:
15246         (WebCore::AXObjectCache::get):
15247         * page/AccessibilityListBox.cpp: Added.
15248         (WebCore::AccessibilityListBox::AccessibilityListBox):
15249         (WebCore::AccessibilityListBox::~AccessibilityListBox):
15250         (WebCore::AccessibilityListBox::create):
15251         (WebCore::AccessibilityListBox::addChildren):
15252         (WebCore::AccessibilityListBox::selectedChildren):
15253         (WebCore::AccessibilityListBox::visibleChildren):
15254         (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
15255         (WebCore::AccessibilityListBox::doAccessibilityHitTest):
15256         * page/AccessibilityListBox.h: Added.
15257         (WebCore::AccessibilityListBox::accessibilityShouldUseUniqueId):
15258         (WebCore::AccessibilityListBox::isListBox):
15259         (WebCore::AccessibilityListBox::canSetFocusAttribute):
15260         (WebCore::AccessibilityListBox::roleValue):
15261         (WebCore::AccessibilityListBox::accessibilityIsIgnored):
15262         * page/AccessibilityListBoxOption.cpp: Added.
15263         (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
15264         (WebCore::AccessibilityListBoxOption::~AccessibilityListBoxOption):
15265         (WebCore::AccessibilityListBoxOption::create):
15266         (WebCore::AccessibilityListBoxOption::isEnabled):
15267         (WebCore::AccessibilityListBoxOption::isSelected):
15268         (WebCore::AccessibilityListBoxOption::elementRect):
15269         (WebCore::AccessibilityListBoxOption::title):
15270         (WebCore::AccessibilityListBoxOption::size):
15271         (WebCore::AccessibilityListBoxOption::actionElement):
15272         (WebCore::AccessibilityListBoxOption::parentObject):
15273         (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
15274         (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
15275         * page/AccessibilityListBoxOption.h: Added.
15276         (WebCore::AccessibilityListBoxOption::setHTMLElement):
15277         (WebCore::AccessibilityListBoxOption::roleValue):
15278         (WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
15279         (WebCore::AccessibilityListBoxOption::isListBoxOption):
15280         * page/AccessibilityObject.h:
15281         (WebCore::AccessibilityObject::isListBox):
15282         * page/AccessibilityRenderObject.cpp:
15283         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
15284         * page/mac/AccessibilityObjectWrapper.mm:
15285         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
15286         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
15287         * rendering/RenderListBox.cpp:
15288         (WebCore::RenderListBox::selectionChanged):
15289         * rendering/RenderListBox.h:
15291 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
15293         Reviewed by Beth Dakin.
15295          <rdar://problem/5455287> AXWebArea should include AXURL
15297         * page/AccessibilityRenderObject.cpp:
15298         (WebCore::AccessibilityRenderObject::url):
15299         * page/mac/AccessibilityObjectWrapper.mm:
15300         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
15302 2008-05-06  Alice Liu  <alice.liu@apple.com>
15304         Rubber-stamped by Beth
15305         
15306         stab-in-the-dark attempt at fixing non-mac builds.
15308         * GNUmakefile.am:
15309         * WebCore.pro:
15310         * WebCore.vcproj/WebCore.vcproj:
15311         * WebCoreSources.bkl:
15313 2008-05-06  Anders Carlsson  <andersca@apple.com>
15315         Reviewed by Adam.
15317         Only use the toplevel application cache when loading subframes.
15319         * loader/MainResourceLoader.cpp:
15320         (WebCore::MainResourceLoader::load):
15322 2008-05-06  Adam Barth  <abarth-webkit@adambarth.com>
15324         Reviewed by Sam Weinig.
15326         https://bugs.webkit.org/show_bug.cgi?id=18725
15327         Implement asynchronous postMessage.
15328         MessageEvent no longer bubbles as per r1237 in the HTML 5 working draft.
15330         Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
15332         Test: http/tests/security/postMessage/delivery-order.html
15334         * dom/MessageEvent.cpp:
15335         (WebCore::MessageEvent::MessageEvent):
15336         * page/DOMWindow.cpp:
15337         (WebCore::PostMessageTimer::PostMessageTimer):
15338         (WebCore::PostMessageTimer::event):
15339         (WebCore::PostMessageTimer::targetOrigin):
15340         (WebCore::PostMessageTimer::fired):
15341         (WebCore::DOMWindow::postMessage):
15342         (WebCore::DOMWindow::postMessageTimerFired):
15343         * page/DOMWindow.h:
15344         * page/DOMWindow.idl:
15345         
15346 2008-05-06  Anders Carlsson  <andersca@apple.com>
15348         Reviewed by Brady.
15350         Store cache to the database.
15352         * loader/appcache/ApplicationCache.cpp:
15353         (WebCore::ApplicationCache::addResource):
15354         If the cache has been saved to disk, save the resource as well.
15355         
15356         * loader/appcache/ApplicationCache.h:
15357         (WebCore::ApplicationCache::onlineWhitelist):
15358         New method which returns the online whitelist.
15360         (WebCore::ApplicationCache::setStorageId):
15361         (WebCore::ApplicationCache::storageId):
15362         Setter/getter for the application cache storage ID.
15364         * loader/appcache/ApplicationCacheGroup.cpp:
15365         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
15366         Save the cache/group to disk.
15367         
15368         * loader/appcache/ApplicationCacheGroup.h:
15369         (WebCore::ApplicationCacheGroup::setStorageID):
15370         (WebCore::ApplicationCacheGroup::storageID):
15371         Setter/getter for the application cache group storage ID.
15372         
15373         * loader/appcache/ApplicationCacheResource.cpp:
15374         (WebCore::ApplicationCacheResource::addType):
15375         We can't add a new type if the resource has been saved to disk.
15376         
15377         * loader/appcache/ApplicationCacheResource.h:
15378         (WebCore::ApplicationCacheResource::setStorageID):
15379         (WebCore::ApplicationCacheResource::storageID):
15380         Setter/getter for the application cache resource storage ID.
15382         * loader/appcache/ApplicationCacheStorage.cpp:
15383         * loader/appcache/ApplicationCacheStorage.cpp:
15384         (WebCore::ApplicationCacheStorage::executeSQLCommand):
15385         New method for executing SQL and logging any errors.
15386         
15387         (WebCore::ApplicationCacheStorage::openDatabase):
15388         Create new tables.
15389         
15390         (WebCore::ApplicationCacheStorage::executeStatement):
15391         New method for executing an SQL statement and logging any errors.
15392         
15393         (WebCore::ApplicationCacheStorage::store):
15394         New methods for storing a cache group, cache and cache resource to the store.
15396         (WebCore::ApplicationCacheStorage::storeNewestCache):
15397         New method which stores the newest cache and updates the newest cache field in the cache group.
15398         
15399         * loader/appcache/ApplicationCacheStorage.h:
15400         Add new methods.
15401         
15402         * platform/sql/SQLiteStatement.h:
15403         (WebCore::SQLiteStatement::query):
15404         Getter for the SQL query.
15406 2008-05-06  Brady Eidson  <beidson@apple.com>
15408         Reviewed by Darin Adler
15410         Preparation for upcoming work making LocalStorage persistent.
15412         Writing persistent values for LocalStorage will take place on a background thread.
15413         Here is that background thread, as well as most of the hooks that will be utilized to
15414         make the whole song and dance work.
15416         The thread itself is very simple and MessageQueue based.  LocalStorageTasks are what 
15417         mark the work that needs to be done and come in 5 flavors:  Import and Sync a LocalStorage set,
15418         Import and Sync a LocalStorageArea, and terminate the thread.
15420         This patch accomplished 2 things:
15421         
15422         1 - Each PageGroup has its own LocalStorage set.  Upon its creation its LocalStorageThread is 
15423             created and started.
15425         2 - At application shutdown, each thread is synchronously terminated.
15427         What happens between steps 1 and 2 will come later.
15429         * GNUmakefile.am:
15430         * WebCore.pro:
15431         * WebCore.vcproj/WebCore.vcproj:
15432         * WebCore.xcodeproj/project.pbxproj:
15433         * WebCoreSources.bkl:
15435         * storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each
15436           method is meant to be called from.
15437         (WebCore::LocalStorage::LocalStorage):
15438         (WebCore::LocalStorage::storageArea):
15439         (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas
15440         (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas
15441         (WebCore::LocalStorage::close): Synchronously terminate the thread.
15442         * storage/LocalStorage.h:
15444         * storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each
15445           method is meant to be called from.
15446         (WebCore::LocalStorageArea::itemChanged):
15447         (WebCore::LocalStorageArea::itemRemoved):
15448         (WebCore::LocalStorageArea::areaCleared):
15449         (WebCore::LocalStorageArea::dispatchStorageEvent):
15450         (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this 
15451           LocalStorageArea to prime the page before the items are needed
15452         (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
15453         * storage/LocalStorageArea.h:
15455         * storage/LocalStorageTask.cpp: Added.
15456         (WebCore::LocalStorageTask::LocalStorageTask):
15457         (WebCore::LocalStorageTask::performTask):
15458         * storage/LocalStorageTask.h: Added.
15459         (WebCore::LocalStorageTask::):
15460         (WebCore::LocalStorageTask::createImport):
15461         (WebCore::LocalStorageTask::createSync):
15462         (WebCore::LocalStorageTask::createTerminate):
15464         * storage/LocalStorageThread.cpp: Added.
15465         (WebCore::LocalStorageThread::create):
15466         (WebCore::LocalStorageThread::LocalStorageThread):
15467         (WebCore::LocalStorageThread::start):
15468         (WebCore::LocalStorageThread::localStorageThreadStart):
15469         (WebCore::LocalStorageThread::localStorageThread):
15470         (WebCore::LocalStorageThread::scheduleImport):
15471         (WebCore::LocalStorageThread::scheduleSync):
15472         (WebCore::LocalStorageThread::terminate): 
15473         (WebCore::LocalStorageThread::performTerminate):
15474         * storage/LocalStorageThread.h: Added.
15476 2008-05-06  Anders Carlsson  <andersca@apple.com>
15478         Reviewed by Darin.
15480         Add NPN_PopUpContextMenu.
15481         
15482         * bridge/npapi.h:
15483         * plugins/npfunctions.h:
15485 2008-05-06  Alp Toker  <alp@nuanti.com>
15487         GTK+ build fix. Add file from r32911 to the build.
15489         * GNUmakefile.am:
15491 2008-05-06  Gwenole Beauchesne  <gbeauchesne@splitted-desktop.org>
15493         Reviewed by Alp Toker.
15495         http://bugs.webkit.org/show_bug.cgi?id=18906
15496         [GTK] Fix varargs terminator in g_build_filename()
15498         * plugins/gtk/PluginDatabaseGtk.cpp:
15499         (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs
15500         terminator.
15502 2008-05-06  Kevin McCullough  <kmccullough@apple.com>
15504         - Forgot to update localized Strings from previous checkin.
15506         * English.lproj/localizedStrings.js:
15508 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
15510         Reviewed by Beth Dakin
15512         <rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
15513         <rdar://problem/5895634> AX: AccessibilityObjectWrapper is being leaked all over the place
15514         <rdar://problem/5893907> CrashTracer: [REGRESSION] 44 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityObject::clearChildren + 9
15515         
15516         Initial prep work to support accessibility objects that do not have renderers. 
15518         * WebCore.xcodeproj/project.pbxproj:
15519         * page/AXObjectCache.cpp:
15520         (WebCore::AXObjectCache::~AXObjectCache):
15521         (WebCore::AXObjectCache::get):
15522         (WebCore::AXObjectCache::remove):
15523         (WebCore::AXObjectCache::getAXID):
15524         (WebCore::AXObjectCache::removeAXID):
15525         (WebCore::AXObjectCache::childrenChanged):
15526         * page/AXObjectCache.h:
15527         (WebCore::AXObjectCache::isIDinUse):
15528         * page/AccessibilityObject.cpp:
15529         (WebCore::AccessibilityObject::AccessibilityObject):
15530         (WebCore::AccessibilityObject::create):
15531         (WebCore::AccessibilityObject::detach):
15532         (WebCore::AccessibilityObject::firstChild):
15533         (WebCore::AccessibilityObject::lastChild):
15534         (WebCore::AccessibilityObject::previousSibling):
15535         (WebCore::AccessibilityObject::nextSibling):
15536         (WebCore::AccessibilityObject::parentObject):
15537         (WebCore::AccessibilityObject::layoutCount):
15538         (WebCore::AccessibilityObject::text):
15539         (WebCore::AccessibilityObject::helpText):
15540         (WebCore::AccessibilityObject::textUnderElement):
15541         (WebCore::AccessibilityObject::isARIAInput):
15542         (WebCore::AccessibilityObject::isARIAControl):
15543         (WebCore::AccessibilityObject::intValue):
15544         (WebCore::AccessibilityObject::stringValue):
15545         (WebCore::AccessibilityObject::title):
15546         (WebCore::AccessibilityObject::accessibilityDescription):
15547         (WebCore::AccessibilityObject::boundingBoxRect):
15548         (WebCore::AccessibilityObject::elementRect):
15549         (WebCore::AccessibilityObject::size):
15550         (WebCore::AccessibilityObject::linkedUIElement):
15551         (WebCore::AccessibilityObject::textLength):
15552         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
15553         (WebCore::AccessibilityObject::selectedText):
15554         (WebCore::AccessibilityObject::accessKey):
15555         (WebCore::AccessibilityObject::selection):
15556         (WebCore::AccessibilityObject::selectedTextRange):
15557         (WebCore::AccessibilityObject::setSelectedTextRange):
15558         (WebCore::AccessibilityObject::url):
15559         (WebCore::AccessibilityObject::setFocused):
15560         (WebCore::AccessibilityObject::setValue):
15561         (WebCore::AccessibilityObject::axObjectCache):
15562         (WebCore::AccessibilityObject::getDocumentLinks):
15563         (WebCore::AccessibilityObject::widget):
15564         (WebCore::AccessibilityObject::widgetForAttachmentView):
15565         (WebCore::AccessibilityObject::anchorElement):
15566         (WebCore::AccessibilityObject::actionElement):
15567         (WebCore::AccessibilityObject::visiblePositionRange):
15568         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
15569         (WebCore::AccessibilityObject::visiblePositionForIndex):
15570         (WebCore::AccessibilityObject::indexForVisiblePosition):
15571         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
15572         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
15573         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
15574         (WebCore::AccessibilityObject::textMarkerForIndex):
15575         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
15576         (WebCore::AccessibilityObject::indexForTextMarker):
15577         (WebCore::AccessibilityObject::doAXRangeForLine):
15578         (WebCore::AccessibilityObject::doAXRangeForPosition):
15579         (WebCore::AccessibilityObject::doAXRangeForIndex):
15580         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
15581         (WebCore::AccessibilityObject::doAXStringForRange):
15582         (WebCore::AccessibilityObject::doAXBoundsForRange):
15583         (WebCore::AccessibilityObject::doAccessibilityHitTest):
15584         (WebCore::AccessibilityObject::focusedUIElement):
15585         (WebCore::AccessibilityObject::observableObject):
15586         (WebCore::AccessibilityObject::roleValue):
15587         (WebCore::AccessibilityObject::ariaRoleAttribute):
15588         (WebCore::AccessibilityObject::childrenChanged):
15589         (WebCore::AccessibilityObject::addChildren):
15590         (WebCore::AccessibilityObject::removeAXObjectID):
15591         * page/AccessibilityObject.h:
15592         (WebCore::PlainTextRange::PlainTextRange):
15593         (WebCore::PlainTextRange::isNull):
15594         (WebCore::AccessibilityObject::isAccessibilityRenderObject):
15595         (WebCore::AccessibilityObject::isAnchor):
15596         (WebCore::AccessibilityObject::isAttachment):
15597         (WebCore::AccessibilityObject::isHeading):
15598         (WebCore::AccessibilityObject::isLink):
15599         (WebCore::AccessibilityObject::isImage):
15600         (WebCore::AccessibilityObject::isNativeImage):
15601         (WebCore::AccessibilityObject::isImageButton):
15602         (WebCore::AccessibilityObject::isPasswordField):
15603         (WebCore::AccessibilityObject::isTextControl):
15604         (WebCore::AccessibilityObject::isNativeTextControl):
15605         (WebCore::AccessibilityObject::isWebArea):
15606         (WebCore::AccessibilityObject::isCheckboxOrRadio):
15607         (WebCore::AccessibilityObject::isChecked):
15608         (WebCore::AccessibilityObject::isEnabled):
15609         (WebCore::AccessibilityObject::isSelected):
15610         (WebCore::AccessibilityObject::isFocused):
15611         (WebCore::AccessibilityObject::isHovered):
15612         (WebCore::AccessibilityObject::isIndeterminate):
15613         (WebCore::AccessibilityObject::isLoaded):
15614         (WebCore::AccessibilityObject::isMultiSelect):
15615         (WebCore::AccessibilityObject::isOffScreen):
15616         (WebCore::AccessibilityObject::isPressed):
15617         (WebCore::AccessibilityObject::isReadOnly):
15618         (WebCore::AccessibilityObject::isVisited):
15619         (WebCore::AccessibilityObject::canSetFocusAttribute):
15620         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
15621         (WebCore::AccessibilityObject::canSetValueAttribute):
15622         (WebCore::AccessibilityObject::hasIntValue):
15623         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
15624         (WebCore::AccessibilityObject::accessibilityIsIgnored):
15625         (WebCore::AccessibilityObject::children):
15626         (WebCore::AccessibilityObject::hasChildren):
15627         (WebCore::AccessibilityObject::setWrapper):
15628         (WebCore::AccessibilityObject::isDetached):
15629         * page/AccessibilityRenderObject.cpp: Added.
15630         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
15631         (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
15632         (WebCore::AccessibilityRenderObject::create):
15633         (WebCore::AccessibilityRenderObject::detach):
15634         (WebCore::AccessibilityRenderObject::firstChild):
15635         (WebCore::AccessibilityRenderObject::lastChild):
15636         (WebCore::AccessibilityRenderObject::previousSibling):
15637         (WebCore::AccessibilityRenderObject::nextSibling):
15638         (WebCore::AccessibilityRenderObject::parentObject):
15639         (WebCore::AccessibilityRenderObject::isWebArea):
15640         (WebCore::AccessibilityRenderObject::isImageButton):
15641         (WebCore::AccessibilityRenderObject::isAnchor):
15642         (WebCore::AccessibilityRenderObject::isNativeTextControl):
15643         (WebCore::AccessibilityRenderObject::isTextControl):
15644         (WebCore::AccessibilityRenderObject::isNativeImage):
15645         (WebCore::AccessibilityRenderObject::isImage):
15646         (WebCore::AccessibilityRenderObject::isAttachment):
15647         (WebCore::AccessibilityRenderObject::isPasswordField):
15648         (WebCore::AccessibilityRenderObject::isCheckboxOrRadio):
15649         (WebCore::AccessibilityRenderObject::isPressed):
15650         (WebCore::AccessibilityRenderObject::isIndeterminate):
15651         (WebCore::AccessibilityRenderObject::isChecked):
15652         (WebCore::AccessibilityRenderObject::isHovered):
15653         (WebCore::AccessibilityRenderObject::isMultiSelect):
15654         (WebCore::AccessibilityRenderObject::isReadOnly):
15655         (WebCore::AccessibilityRenderObject::isOffScreen):
15656         (WebCore::AccessibilityRenderObject::headingLevel):
15657         (WebCore::AccessibilityRenderObject::isHeading):
15658         (WebCore::AccessibilityRenderObject::isLink):
15659         (WebCore::AccessibilityRenderObject::anchorElement):
15660         (WebCore::AccessibilityRenderObject::actionElement):
15661         (WebCore::AccessibilityRenderObject::mouseButtonListener):
15662         (WebCore::AccessibilityRenderObject::helpText):
15663         (WebCore::AccessibilityRenderObject::textUnderElement):
15664         (WebCore::AccessibilityRenderObject::hasIntValue):
15665         (WebCore::AccessibilityRenderObject::intValue):
15666         (WebCore::AccessibilityRenderObject::stringValue):
15667         (WebCore::labelForElement):
15668         (WebCore::AccessibilityRenderObject::title):
15669         (WebCore::AccessibilityRenderObject::accessibilityDescription):
15670         (WebCore::AccessibilityRenderObject::boundingBoxRect):
15671         (WebCore::AccessibilityRenderObject::elementRect):
15672         (WebCore::AccessibilityRenderObject::size):
15673         (WebCore::AccessibilityRenderObject::linkedUIElement):
15674         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
15675         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
15676         (WebCore::AccessibilityRenderObject::isLoaded):
15677         (WebCore::AccessibilityRenderObject::layoutCount):
15678         (WebCore::AccessibilityRenderObject::text):
15679         (WebCore::AccessibilityRenderObject::textLength):
15680         (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
15681         (WebCore::AccessibilityRenderObject::selectedText):
15682         (WebCore::AccessibilityRenderObject::accessKey):
15683         (WebCore::AccessibilityRenderObject::selection):
15684         (WebCore::AccessibilityRenderObject::selectedTextRange):
15685         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
15686         (WebCore::AccessibilityRenderObject::url):
15687         (WebCore::AccessibilityRenderObject::isVisited):
15688         (WebCore::AccessibilityRenderObject::isSelected):
15689         (WebCore::AccessibilityRenderObject::isFocused):
15690         (WebCore::AccessibilityRenderObject::setFocused):
15691         (WebCore::AccessibilityRenderObject::setValue):
15692         (WebCore::AccessibilityRenderObject::isEnabled):
15693         (WebCore::AccessibilityRenderObject::topRenderer):
15694         (WebCore::AccessibilityRenderObject::widget):
15695         (WebCore::AccessibilityRenderObject::axObjectCache):
15696         (WebCore::AccessibilityRenderObject::getDocumentLinks):
15697         (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
15698         (WebCore::AccessibilityRenderObject::frameViewIfRenderView):
15699         (WebCore::AccessibilityRenderObject::visiblePositionRange):
15700         (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
15701         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
15702         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
15703         (WebCore::AccessibilityRenderObject::doAXBoundsForTextMarkerRange):
15704         (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
15705         (WebCore::AccessibilityRenderObject::doAXTextMarkerForPosition):
15706         (WebCore::AccessibilityRenderObject::textMarkerForIndex):
15707         (WebCore::AccessibilityRenderObject::indexForTextMarker):
15708         (WebCore::AccessibilityRenderObject::doAXRangeForLine):
15709         (WebCore::AccessibilityRenderObject::doAXRangeForIndex):
15710         (WebCore::AccessibilityRenderObject::doAXStringForRange):
15711         (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
15712         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
15713         (WebCore::AccessibilityRenderObject::focusedUIElement):
15714         (WebCore::AccessibilityRenderObject::observableObject):
15715         (WebCore::createARIARoleMap):
15716         (WebCore::RoleEntry::):
15717         (WebCore::ariaRoleToWebCoreRole):
15718         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
15719         (WebCore::AccessibilityRenderObject::roleValue):
15720         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
15721         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
15722         (WebCore::AccessibilityRenderObject::canSetTextRangeAttributes):
15723         (WebCore::AccessibilityRenderObject::childrenChanged):
15724         (WebCore::AccessibilityRenderObject::children):
15725         (WebCore::AccessibilityRenderObject::addChildren):
15726         (WebCore::AccessibilityRenderObject::removeAXObjectID):
15727         (WebCore::AccessibilityRenderObject::actionVerb):
15728         * page/AccessibilityRenderObject.h: Added.
15729         (WebCore::AccessibilityRenderObject::isAccessibilityRenderObject):
15730         (WebCore::AccessibilityRenderObject::areaElement):
15731         (WebCore::AccessibilityRenderObject::setRenderer):
15732         (WebCore::AccessibilityRenderObject::renderer):
15733         (WebCore::AccessibilityRenderObject::setRenderObject):
15734         (WebCore::AccessibilityRenderObject::isDetached):
15735         * page/mac/AXObjectCacheMac.mm:
15736         (WebCore::AXObjectCache::detachWrapper):
15737         (WebCore::AXObjectCache::selectedChildrenChanged):
15738         (WebCore::AXObjectCache::postNotification):
15739         * page/mac/AccessibilityObjectWrapper.mm:
15740         (textMarkerForVisiblePosition):
15741         (CreateCGColorIfDifferent):
15742         (AXAttributeStringSetHeadingLevel):
15743         (AXLinkElementForNode):
15744         (AXAttributeStringSetElement):
15745         (AXAttributedStringAppendText):
15746         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
15747         (-[AccessibilityObjectWrapper documentFrameView:]):
15748         (-[AccessibilityObjectWrapper position]):
15749         (RoleEntry::):
15750         (-[AccessibilityObjectWrapper roleDescription]):
15751         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
15752         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
15753         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
15754         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
15755         (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
15756         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
15757         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
15759 2008-05-06  Jonathan Haas  <myrdred@gmail.com>
15761         Reviewed by Rob Buis.
15763         https://bugs.webkit.org/show_bug.cgi?id=18859\
15764         Prevented SVGRootInlineBox from static_casting a
15765         node to a class it doesn't inherit
15766         
15767         * rendering/SVGRootInlineBox.cpp:
15768         (WebCore::SVGRootInlineBox::buildTextChunks):
15770 2008-05-06  Brady Eidson  <beidson@apple.com>
15772         Reviewed by Darin Adler
15774         Preparation for upcoming work making LocalStorage persistent.
15776         When the application terminates, all pending local storage writes need to be
15777         sync'ed out to disk.
15778         This works n combination with platform specific code in WebKit that calls it.
15780         * WebCore.base.exp:
15782         * page/PageGroup.cpp:
15783         (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
15784         * page/PageGroup.h:
15786         * storage/LocalStorage.cpp:
15787         (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the
15788           local storage thread in the future.
15789         * storage/LocalStorage.h:
15791 2008-05-06  Brady Eidson  <beidson@apple.com>
15793         Rubberstamped by David Kilzer
15795         * WebCore.base.exp:  Sort this mess!
15797 2008-05-05  Mark Rowe  <mrowe@apple.com>
15799         Reviewed by Dan Bernstein.
15801         Fix 60 crashes seen on the buildbots that were misreported as hangs.
15803         * dom/Document.cpp:
15804         (WebCore::Document::detachNodeIterator): Null-check page() before dereferencing it.
15805         (WebCore::Document::nodeWillBeRemoved): Ditto.
15806         (WebCore::Document::textInserted): Ditto.
15807         (WebCore::Document::textNodesMerged): Ditto.
15808         (WebCore::Document::textRemoved): Ditto.
15810 2008-05-05  Brady Eidson  <beidson@apple.com>
15812         Reviewed by Mitz Pettel RTL
15814         Preparation for upcoming work making LocalStorage persistent.
15816         The other half of the StorageMap::importItem() addition.
15818         * storage/StorageArea.cpp:
15819         (WebCore::StorageArea::importItem):
15820         * storage/StorageArea.h:
15822 2008-05-05  Brady Eidson  <beidson@apple.com>
15824         Reviewed by Mitz Pettel RTL
15826         Preparation for upcoming work making LocalStorage persistent.
15828         - Create the LocalStorage object for a PageGroup the moment the first Page is added to it
15829           The Settings of the first Page define what persistent path the LocalStorage will use
15830         - Add a Frame argument for the LocalStorageArea request - this will allow a client object
15831           to be queried before the LocalStorageArea is established
15833         * page/DOMWindow.cpp:
15834         (WebCore::DOMWindow::localStorage):
15836         * page/PageGroup.cpp:
15837         (WebCore::PageGroup::addPage):
15838         (WebCore::PageGroup::localStorage):
15840         * storage/LocalStorage.cpp:
15841         (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument.  Deep copy
15842           the path as it will be used from another thread.
15843         (WebCore::LocalStorage::storageArea):
15844         * storage/LocalStorage.h:
15845         (WebCore::LocalStorage::create):
15847 2008-05-05  Brady Eidson  <beidson@apple.com>
15849         Reviewed by Mitz Pettel RTL
15851         Preparation for upcoming work making LocalStorage persistent.
15853         StorageMaps normally have copy-on-write semantics to help support SessionStorage.
15854         For LocalStorage, we never want this behavior.  When we forcefully import items into 
15855         a StorageMap from the LocalStorage background thread, this new import method will be used.
15857         * storage/StorageMap.cpp:
15858         (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
15859           about copy-on-write.
15860         * storage/StorageMap.h:
15862 2008-05-05  Kevin McCullough  <kmccullough@apple.com>
15864         Reviewed by Tim.
15866         -<rdar://problem/5770054> JavaScript profiler (10928)
15867         -Begininings of a UI for the Profiler in the WebInspector.
15869         * English.lproj/InspectorLocalizedStrings.js: Add new strings to be
15870         localized.
15871         * page/inspector/DatabasesPanel.js: Changed the name of the Databae's
15872         results table to be more generic as it is now also used by the profiler.
15873         * page/inspector/Images/glossySelected.png: Added.
15874         * page/inspector/Images/profilesIcon.png: Added.
15875         * page/inspector/Images/treeUpTriangleBlack.png: Added.
15876         * page/inspector/Images/treeUpTriangleWhite.png: Added.
15877         * page/inspector/ProfileView.js: Added. Sets up the header of the table.
15878         * page/inspector/ProfilesPanel.js: Added.
15879         * page/inspector/ProfilesPanel.js: Added. Sets up the containers of the
15880         profiler's content.
15881         * page/inspector/inspector.css: Change database-result-table to be more
15882         generic as well as add the styles needed by the profiler.
15883         * page/inspector/inspector.html: Add profiler support.
15885 2008-05-05  Brady Eidson  <beidson@apple.com>
15887         Change by Darin, reviewed by Brady
15889         Small efficiency improvement Darin just spotted
15891         * storage/StorageMap.cpp:
15892         (WebCore::StorageMap::setItem):
15894 2008-05-05  Antti Koivisto  <antti@apple.com>
15896         Reviewed by Anders.
15898         Fix https://bugs.webkit.org/show_bug.cgi?id=18899
15899         Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup
15901         * loader/loader.cpp:
15902         (WebCore::Loader::Loader):
15904 2008-05-05  Brady Eidson  <beidson@apple.com>
15906         Reviewed by Sam Weinig
15908         Fix a bug in StorageMap iterator tracking where the iterator was not successfully
15909         invalidated at an appropriate time.
15911         * storage/StorageMap.cpp:
15912         (WebCore::StorageMap::setItem): ALWAYS invalidate it here
15914 2008-05-05  Justin Garcia  <justin.garcia@apple.com>
15916         Reviewed by Darin.
15918         <rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end
15919         
15920         Disable Range mutation on document modifications in Tiger and Leopard Mail,
15921         since they do their own mutation which interferes with ours.
15923         * WebCore.base.exp:
15924         * dom/Document.cpp:
15925         (WebCore::Document::nodeChildrenChanged):
15926         (WebCore::Document::nodeWillBeRemoved):
15927         (WebCore::Document::textInserted):
15928         (WebCore::Document::textRemoved):
15929         (WebCore::Document::textNodesMerged):
15930         (WebCore::Document::textNodeSplit):
15931         * page/Settings.cpp:
15932         (WebCore::Settings::Settings):
15933         (WebCore::Settings::disableRangeMutationForOldAppleMail):
15934         * page/Settings.h:
15935         (WebCore::Settings::rangeMutationDisabledForOldAppleMail):
15937 2008-05-05  Sam Weinig  <sam@webkit.org>
15939         Reviewed by Tim Hatcher.
15941         Make the Inspector's localizable strings file match the format used by Dashboard widgets.
15943         * English.lproj/InspectorLocalizedStrings.js: Removed.
15944         * English.lproj/localizedStrings.js: Added.
15945         * WebCore.vcproj/WebCore.vcproj:
15946         * WebCore.xcodeproj/project.pbxproj:
15947         * page/inspector/inspector.js:
15949 2008-05-05  Steve Falkenburg  <sfalken@apple.com>
15951         Add support for default button appearance.
15952         Add WebCore setting for app chrome mode.
15953         
15954         Reviewed by Dave Hyatt.
15956         * css/CSSPrimitiveValueMappings.h:
15957         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
15958         * css/CSSValueKeywords.in: Added default-button value keyword.
15959         * page/Settings.cpp:
15960         (WebCore::Settings::Settings):
15961         (WebCore::Settings::setApplicationChromeMode):
15962         * page/Settings.h:
15963         (WebCore::Settings::inApplicationChromeMode):
15964         * rendering/RenderButton.cpp:
15965         (WebCore::RenderButton::RenderButton):
15966         (WebCore::RenderButton::setStyle):
15967         (WebCore::RenderButton::timerFired):
15968         * rendering/RenderButton.h:
15969         * rendering/RenderStyle.h:
15970         * rendering/RenderTheme.cpp:
15971         (WebCore::RenderTheme::adjustStyle):
15972         (WebCore::RenderTheme::paint):
15973         (WebCore::RenderTheme::paintBorderOnly):
15974         (WebCore::RenderTheme::paintDecorations):
15975         (WebCore::RenderTheme::isControlStyled):
15976         (WebCore::RenderTheme::isDefault):
15977         * rendering/RenderTheme.h:
15978         * rendering/RenderThemeSafari.cpp:
15979         (WebCore::RenderThemeSafari::determineState):
15980         (WebCore::RenderThemeSafari::adjustRepaintRect):
15981         (WebCore::RenderThemeSafari::adjustButtonStyle):
15982         * rendering/RenderThemeWin.cpp:
15983         (WebCore::RenderThemeWin::supportsFocus):
15985 2008-05-05  Alexey Proskuryakov  <ap@webkit.org>
15987         Reviewed by Darin.
15989         https://bugs.webkit.org/show_bug.cgi?id=11947
15990         nbsps should be converted to entities in innerHTML
15992         https://bugs.webkit.org/show_bug.cgi?id=18769
15993         replacing &nbsp; with spaces using regexp creates inconsistent result
15995         Tests: fast/dom/innerHTML-nbsp.html
15996                fast/dom/innerHTML-escaping-attribute.html
15998         * editing/markup.cpp:
15999         (WebCore::appendAttributeValue):
16000         (WebCore::escapeContentText):
16001         (WebCore::appendEscapedContent):
16002         Added U+00a0/nbsp to the list of characters to escape.
16004 2008-05-05  David Hyatt  <hyatt@apple.com>
16006         Fix for https://bugs.webkit.org/show_bug.cgi?id=18821.  Fix some bugs in both get/PutImageData of <canvas>.
16008         Reviewed by Eric
16010         New tests added in fast/canvas/
16012         * platform/graphics/cg/ImageBufferCG.cpp:
16013         (WebCore::ImageBuffer::getImageData):
16014         (WebCore::ImageBuffer::putImageData):
16016 2008-05-05  Dan Bernstein  <mitz@apple.com>
16018         Reviewed by Dave Hyatt.
16020         - fix https://bugs.webkit.org/show_bug.cgi?id=18809
16021           Forms with block level generated content and absolutely positioned labels break inline layout (fixed on reflow)
16023         Test: fast/block/basic/adding-near-anonymous-block.html
16025         * rendering/RenderBlock.cpp:
16026         (WebCore::RenderBlock::addChildToFlow): When adding a floating or
16027         positioned object, if it follows an anonymous block, put it
16028         inside the anonymous block. When adding an inline, check if it comes
16029         after an anonymous block and put it in the anonymous block.
16031 2008-05-05  Antti Koivisto  <antti@apple.com>
16033         Reviewed by Darin.
16035         Speculative fix for <rdar://problem/5906790> 
16036         Crash in Loader::servePendingRequests() due to hash table being modified during iteration
16037         
16038         I don't know how to reproduce this. It would require the load to fail (or succeed)
16039         synchronously, something that should not usually happen.
16041         * loader/loader.cpp:
16042         (WebCore::Loader::Loader):
16043         (WebCore::Loader::load):
16044         (WebCore::Loader::servePendingRequests):
16045         (WebCore::Loader::cancelRequests):
16046         (WebCore::Loader::Host::Host):
16047         * loader/loader.h:
16048         (WebCore::Loader::Host::name):
16050 2008-05-05  Ariya Hidayat  <ariya.hidayat@trolltech.com>
16052         Reviewed by Simon.
16054         Disable SVG As Image support in the Qt port again, as it
16055         requires more work. Right now the chrome client is
16056         assumed to be a ChromeClientQt, which the SVG Image support
16057         changes.
16059         * WebCore.pro:
16061 2008-05-02  Antti Koivisto  <antti@apple.com>
16063         Reviewed by Mitz.
16065         Fix <rdar://problem/5840475>
16066         CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject
16067         
16068         Non-block objects can have transforms so containingBlock() could end up returning null. 
16069         RenderObject::container() needs to match.
16071         Test: fast/transforms/container-transform-crash.html
16073         * rendering/RenderObject.cpp:
16074         (WebCore::RenderObject::containingBlock):
16075         (WebCore::RenderObject::container):
16077 2008-05-04  Sam Weinig  <sam@webkit.org>
16079         Roll out r32851.  It broke tiger builds.
16081         * bindings/objc/DOMUtility.mm:
16082         (KJS::createDOMWrapper):
16083         (WebCore::createDOMWrapper):
16085 2008-05-04  Dan Bernstein  <mitz@apple.com>
16087         Reviewed by Sam Weinig.
16089         - fix https://bugs.webkit.org/show_bug.cgi?id=18879
16090           <rdar://problem/5909481> Reproducible crash when removing a gradient
16092         Test: fast/gradients/crash-on-remove.html
16094         * css/CSSImageGeneratorValue.cpp:
16095         (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
16096         (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the
16097         value.
16098         (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref()
16099         the value.
16101 2008-05-03  Sam Weinig  <sam@webkit.org>
16103         Reviewed by Mark Rowe.
16105         Move createDOMWrapper(JSObject* object) out of the KJS namespace and into
16106         the WebCore namespace now that the required compilers don't freak out about
16107         this anymore.
16109         * bindings/objc/DOMUtility.mm:
16110         (WebCore::createDOMWrapper):
16112 2008-05-03  Rob Buis  <buis@kde.org>
16114         Reviewed by Sam.
16116         https://bugs.webkit.org/show_bug.cgi?id=18652
16117         onchange events don't seem to fire for input[type=range] controls.
16119         Fire changeEvent when clicking the slider outside the current
16120         thumb position.
16122         * rendering/RenderSlider.cpp:
16123         (WebCore::RenderSlider::setValueForPosition):
16125 2008-05-03  Sam Weinig  <sam@webkit.org>
16127         Reviewed by Mark Rowe.
16129         Remove unused enums from JSDOMWindowBase.
16131         * bindings/js/JSDOMWindowBase.h:
16132         (WebCore::JSDOMWindowBase::):
16134 2008-05-03  Sam Weinig  <sam@webkit.org>
16136         Real build fix.
16138         * WebCore.xcodeproj/project.pbxproj:
16140 2008-05-03  Sam Weinig  <sam@webkit.org>
16142         Build fix.
16144         * bindings/js/kjs_events.cpp:
16145         (WebCore::JSAbstractEventListener::handleEvent):
16147 2008-05-03  Sam Weinig  <sam@webkit.org>
16149         Rubber-stamped by Geoffrey Garen.
16151         Rename JSDOMWindowWrapper to JSDOMWindowShell.
16153 2008-05-01  Rob Buis  <buis@kde.org>
16155         Reviewed by Eric.
16157         https://bugs.webkit.org/show_bug.cgi?id=18568
16158         background: currentColor fails
16160         Implement currentColor from CSS3 color module.
16162         Tests: fast/css/background-currentcolor.html
16164         * css/CSSParser.cpp:
16165         (WebCore::CSSParser::parseValue):
16166         (WebCore::CSSParser::parseBackgroundColor):
16167         * css/CSSStyleSelector.cpp:
16168         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
16169         * css/CSSValueKeywords.in:
16170         * css/SVGCSSValueKeywords.in:
16172 2008-05-02  Anders Carlsson  <andersca@apple.com>
16174         Reviewed by Mark.
16176         Turns out calling locationInWindow on keyboard events will not throw an exception,
16177         but the point returned is completely bogus, so remove coordinates from the keyboard event struct.
16178         
16179         * bridge/npapi.h:
16180         (_NPCocoaEvent::):
16182 2008-05-02  Benjamin Otte  <otte@gnome.org>
16184         Reviewed by Alp Toker.
16186         http://bugs.webkit.org/show_bug.cgi?id=18856
16187         [GTK] variable initialization missing
16189         Not initializing the m_needsXEmbed variable could have very funny
16190         results. Most often those results would be crashes.
16192         * plugins/PluginView.cpp:
16193         (WebCore::PluginView::PluginView):
16195 2008-05-02  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
16197         Reviewed by Eric.
16199         https://bugs.webkit.org/show_bug.cgi?id=18811
16200         Enable dashboard and offline web apps in autotools
16202         * GNUmakefile.am:
16204 2008-05-02  Anders Carlsson  <andersca@apple.com>
16206         Reviewed by Sam.
16208         Name the event union so it will work in plain C.
16210         * bridge/npapi.h:
16211         (_NPCocoaEvent::):
16213 2008-05-02  Dan Bernstein  <mitz@apple.com>
16215         Reviewed by John Sullivan.
16217         - render text shadows with zero offset, as the shadow can be seen behind
16218           the text if the text is translucent
16220         Test: fast/text/shadow-no-blur.html
16222         * platform/graphics/mac/FontMac.mm:
16223         (WebCore::Font::drawComplexText): Removed the isEmpty() condition on the
16224         shadow offset. Since isEmpty() is also true for sizes that have one or
16225         more non-positive components, this also ensures that subpixel
16226         antialiasing of the text is maintained with shadows in all directions.
16227         (WebCore::Font::drawGlyphs): Ditto.
16228         * platform/graphics/win/FontCGWin.cpp:
16229         (WebCore::Font::drawGlyphs): Ditto.
16231 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
16233         Reviewed by Simon.
16235         Build the Qt port with SVG Use and As Image support.
16237         * WebCore.pro:
16239 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
16241         Reviewed by Simon.
16243         Fixed potential crash on SVG animation (added more checks to the assert).
16245         * svg/SVGUseElement.cpp:
16246         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
16248 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
16250         Rubber-stamped by John Sullivan.
16252         Fix a debug-only crash in layout tests.
16254         * loader/CachedResource.cpp:
16255         (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
16257 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
16259         Fix the Qt build on Windows when Phonon is enabled for Audio/Video support
16261         * WebCore.pro: Don't use QT += phonon as it prepends the phonon
16262         includes to the include paths. Instead add it manually and make sure
16263         phonon comes last, to avoid the conflict of phonon's path.h with
16264         WebCore's Path.h on case-insensitive filesystems.
16266 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
16268         Fix the Qt build. Add ExecState where necessary.
16270         * bridge/qt/qt_class.cpp:
16271         (KJS::Bindings::QtClass::fallbackObject):
16272         * bridge/qt/qt_instance.cpp:
16273         (KJS::Bindings::QtRuntimeObjectImp::construct):
16274         (KJS::Bindings::QtInstance::getRuntimeObject):
16275         (KJS::Bindings::QtInstance::invokeDefaultMethod):
16276         (KJS::Bindings::QtInstance::defaultValue):
16277         (KJS::Bindings::QtInstance::stringValue):
16278         * bridge/qt/qt_instance.h:
16279         (KJS::Bindings::QtInstance::getObject):
16280         * bridge/qt/qt_runtime.cpp:
16281         (KJS::Bindings::convertValueToQVariant):
16282         (KJS::Bindings::convertQVariantToValue):
16283         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
16284         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
16285         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
16286         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
16287         (KJS::Bindings::QtConnectionObject::execute):
16288         * bridge/runtime.cpp:
16289         (KJS::Bindings::Instance::createRuntimeObject):
16291 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
16293         Fix the Qt/Win build.
16295         * WebCore.pro:
16296         * platform/qt/TemporaryLinkStubs.cpp:
16297         (PluginDatabase::getPluginPathsInDirectories):
16298         (PluginDatabase::defaultPluginDirectories):
16299         (PluginDatabase::isPreferredPluginDirectory):
16300         (PluginView::setNPWindowRect):
16301         (PluginView::userAgent):
16302         (PluginView::invalidateRect):
16303         (PluginView::invalidateRegion):
16304         (PluginView::forceRedraw):
16305         (PluginView::setFocus):
16306         (PluginView::show):
16307         (PluginView::hide):
16308         (PluginView::paint):
16309         (PluginView::setParent):
16310         (PluginView::attachToWindow):
16311         (PluginView::detachFromWindow):
16312         (PluginView::updateWindow):
16313         (PluginView::handleKeyboardEvent):
16314         (PluginView::handleMouseEvent):
16315         (PluginView::handlePostReadFile):
16316         (PluginView::getValue):
16317         * plugins/qt/PluginPackageQt.cpp:
16318         (WebCore::PluginPackage::load):
16320 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
16322         Reviewed by Geoffrey Garen.
16324         https://bugs.webkit.org/show_bug.cgi?id=18826
16325         Make JavaScript heap per-thread
16327         This is mostly adaptation for JSC changes. The most prominent one is that JSObject
16328         allocator now takes ExecState, e.g. "new (exec) JSXMLHttpRequestConstructor(...)". It is
16329         OK to pass either the current or global one, whichever is faster to get hold of, as both
16330         have the same reference to a per-thread JS heap.
16332         * bindings/scripts/CodeGeneratorJS.pm: Pass ExecState to functions that now need it.
16333         JSDOMWindow, JSDOMWindowPrototype and JSDOMWindowWrapper are special, because they are
16334         constructed before any ExecState comes into existence, so they use Heap::threadHeap()
16335         directly for allocation.
16337         * bindings/js/JSDOMWindowWrapper.cpp:
16338         (WebCore::JSDOMWindowWrapper::operator new):
16339         * bindings/js/JSDOMWindowWrapper.h:
16340         Added a custom operator new to use per-thread heap when there's no ExecState around.
16342         * bindings/js/JSAudioConstructor.cpp:
16343         (WebCore::JSAudioConstructor::JSAudioConstructor):
16344         * bindings/js/JSCSSRuleCustom.cpp:
16345         (WebCore::toJS):
16346         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
16347         (WebCore::JSCSSStyleDeclaration::nameGetter):
16348         * bindings/js/JSCSSValueCustom.cpp:
16349         (WebCore::toJS):
16350         * bindings/js/JSCanvasPixelArrayCustom.cpp:
16351         (WebCore::JSCanvasPixelArray::indexGetter):
16352         (WebCore::toJS):
16353         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
16354         (WebCore::toJS):
16355         * bindings/js/JSClipboardCustom.cpp:
16356         (WebCore::JSClipboard::types):
16357         (WebCore::JSClipboard::getData):
16358         * bindings/js/JSCustomXPathNSResolver.cpp:
16359         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
16360         * bindings/js/JSDOMApplicationCacheCustom.cpp:
16361         (WebCore::JSDOMApplicationCache::addEventListener):
16362         (WebCore::JSDOMApplicationCache::removeEventListener):
16363         (WebCore::JSDOMApplicationCache::setOnchecking):
16364         (WebCore::JSDOMApplicationCache::setOnerror):
16365         (WebCore::JSDOMApplicationCache::setOnnoupdate):
16366         (WebCore::JSDOMApplicationCache::setOndownloading):
16367         (WebCore::JSDOMApplicationCache::setOnprogress):
16368         (WebCore::JSDOMApplicationCache::setOnupdateready):
16369         (WebCore::JSDOMApplicationCache::setOncached):
16370         * bindings/js/JSDOMWindowBase.cpp:
16371         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
16372         (WebCore::JSDOMWindowBase::getValueProperty):
16373         (WebCore::JSDOMWindowBase::setListener):
16374         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
16375         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
16376         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
16377         (WebCore::windowProtoFuncAToB):
16378         (WebCore::windowProtoFuncBToA):
16379         (WebCore::windowProtoFuncSetTimeout):
16380         (WebCore::windowProtoFuncSetInterval):
16381         (WebCore::windowProtoFuncAddEventListener):
16382         * bindings/js/JSDOMWindowBase.h:
16383         * bindings/js/JSDocumentCustom.cpp:
16384         (WebCore::toJS):
16385         * bindings/js/JSEventCustom.cpp:
16386         (WebCore::toJS):
16387         * bindings/js/JSEventTargetBase.cpp:
16388         (WebCore::jsEventTargetAddEventListener):
16389         * bindings/js/JSEventTargetBase.h:
16390         (WebCore::JSEventTargetPrototype::self):
16391         * bindings/js/JSEventTargetNode.cpp:
16392         (WebCore::JSEventTargetNode::setListener):
16393         * bindings/js/JSHTMLCollectionCustom.cpp:
16394         (WebCore::getNamedItems):
16395         (WebCore::toJS):
16396         * bindings/js/JSHTMLElementWrapperFactory.cpp:
16397         (WebCore::createJSHTMLWrapper):
16398         * bindings/js/JSHTMLFormElementCustom.cpp:
16399         (WebCore::JSHTMLFormElement::nameGetter):
16400         * bindings/js/JSHTMLInputElementBase.cpp:
16401         (WebCore::JSHTMLInputElementBase::getValueProperty):
16402         * bindings/js/JSHTMLOptionElementConstructor.cpp:
16403         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
16404         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
16405         (WebCore::JSHTMLOptionsCollection::length):
16406         * bindings/js/JSInspectedObjectWrapper.cpp:
16407         (WebCore::JSInspectedObjectWrapper::wrap):
16408         * bindings/js/JSInspectorCallbackWrapper.cpp:
16409         (WebCore::JSInspectorCallbackWrapper::wrap):
16410         * bindings/js/JSLocationCustom.cpp:
16411         (WebCore::JSLocation::toString):
16412         * bindings/js/JSNamedNodesCollection.cpp:
16413         (WebCore::JSNamedNodesCollection::lengthGetter):
16414         * bindings/js/JSNavigatorCustom.cpp:
16415         (WebCore::JSNavigator::appVersion):
16416         * bindings/js/JSNodeCustom.cpp:
16417         (WebCore::toJS):
16418         * bindings/js/JSNodeFilterCustom.cpp:
16419         (WebCore::JSNodeFilter::acceptNode):
16420         * bindings/js/JSRGBColor.cpp:
16421         (WebCore::getJSRGBColor):
16422         * bindings/js/JSSQLResultSetRowListCustom.cpp:
16423         (WebCore::JSSQLResultSetRowList::item):
16424         * bindings/js/JSSVGElementWrapperFactory.cpp:
16425         (WebCore::createJSSVGWrapper):
16426         * bindings/js/JSSVGLazyEventListener.cpp:
16427         (WebCore::JSSVGLazyEventListener::eventParameterName):
16428         * bindings/js/JSStorageCustom.cpp:
16429         (WebCore::JSStorage::nameGetter):
16430         * bindings/js/JSStyleSheetCustom.cpp:
16431         (WebCore::toJS):
16432         * bindings/js/JSXMLHttpRequestConstructor.cpp:
16433         (WebCore::JSXMLHttpRequestConstructor::construct):
16434         * bindings/js/JSXMLHttpRequestCustom.cpp:
16435         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
16436         (WebCore::JSXMLHttpRequest::setOnload):
16437         (WebCore::JSXMLHttpRequest::setOnprogress):
16438         (WebCore::JSXMLHttpRequest::getResponseHeader):
16439         (WebCore::JSXMLHttpRequest::addEventListener):
16440         (WebCore::JSXMLHttpRequest::removeEventListener):
16441         * bindings/js/JSXSLTProcessor.cpp:
16442         (WebCore::jsXSLTProcessorPrototypeFunctionGetParameter):
16443         (WebCore::JSXSLTProcessorConstructor::construct):
16444         * bindings/js/kjs_binding.cpp:
16445         (WebCore::jsStringOrNull):
16446         (WebCore::jsOwnedStringOrNull):
16447         (WebCore::jsStringOrUndefined):
16448         (WebCore::jsStringOrFalse):
16449         (WebCore::nonCachingStaticFunctionGetter):
16450         (WebCore::objectToStringFunctionGetter):
16451         * bindings/js/kjs_binding.h:
16452         (WebCore::DOMObject::DOMObject):
16453         (WebCore::cacheDOMObject):
16454         (WebCore::cacheSVGDOMObject):
16455         * bindings/js/kjs_events.cpp:
16456         (WebCore::JSLazyEventListener::eventParameterName):
16457         (WebCore::JSLazyEventListener::parseCode):
16458         * bindings/js/kjs_html.cpp:
16459         (WebCore::getRuntimeObject):
16460         * bridge/c/c_instance.cpp:
16461         (KJS::Bindings::CInstance::defaultValue):
16462         (KJS::Bindings::CInstance::stringValue):
16463         (KJS::Bindings::CInstance::numberValue):
16464         (KJS::Bindings::CInstance::valueOf):
16465         * bridge/c/c_instance.h:
16466         * bridge/c/c_utility.cpp:
16467         (KJS::Bindings::convertNPVariantToValue):
16468         * bridge/jni/jni_instance.cpp:
16469         (JavaInstance::stringValue):
16470         (JavaInstance::numberValue):
16471         (JavaInstance::invokeMethod):
16472         (JavaInstance::defaultValue):
16473         (JavaInstance::valueOf):
16474         * bridge/jni/jni_instance.h:
16475         * bridge/jni/jni_jsobject.h:
16476         * bridge/jni/jni_jsobject.mm:
16477         (JavaJSObject::call):
16478         (JavaJSObject::setMember):
16479         (JavaJSObject::setSlot):
16480         (JavaJSObject::convertJObjectToValue):
16481         (JavaJSObject::getListFromJArray):
16482         * bridge/jni/jni_objc.mm:
16483         (KJS::Bindings::dispatchJNICall):
16484         * bridge/jni/jni_runtime.cpp:
16485         (JavaArray::convertJObjectToArray):
16486         (JavaField::dispatchValueFromInstance):
16487         (JavaField::valueFromInstance):
16488         (JavaField::dispatchSetValueToInstance):
16489         (JavaArray::valueAt):
16490         * bridge/jni/jni_utility.h:
16491         * bridge/objc/objc_class.mm:
16492         (KJS::Bindings::ObjcClass::fallbackObject):
16493         * bridge/objc/objc_instance.h:
16494         * bridge/objc/objc_instance.mm:
16495         (ObjcInstance::defaultValue):
16496         (ObjcInstance::stringValue):
16497         (ObjcInstance::numberValue):
16498         (ObjcInstance::valueOf):
16499         * bridge/objc/objc_utility.h:
16500         * bridge/objc/objc_utility.mm:
16501         (KJS::Bindings::convertNSStringToString):
16502         (KJS::Bindings::convertObjcValueToValue):
16503         * bridge/runtime.cpp:
16504         (KJS::Bindings::Instance::createRuntimeObject):
16505         * bridge/runtime.h:
16506         (KJS::Bindings::Instance::valueOf):
16507         * bridge/runtime_array.cpp:
16508         (RuntimeArray::lengthGetter):
16509         * bridge/runtime_method.cpp:
16510         (RuntimeMethod::lengthGetter):
16511         * bridge/runtime_object.cpp:
16512         (RuntimeObjectImp::RuntimeObjectImp):
16513         (RuntimeObjectImp::methodGetter):
16514         (RuntimeObjectImp::defaultValue):
16515         * xml/XMLHttpRequest.cpp:
16516         (WebCore::XMLHttpRequest::dropProtection):
16517         * bindings/js/GCController.cpp:
16518         (WebCore::GCController::gcTimerFired):
16519         (WebCore::GCController::garbageCollectNow):
16520         Adapted to JSC changes. Pass ExecState to functions that now need it. Removed
16521         collectOnMainThreadOnly, as this is the only way to collect now. Replaced calls to static
16522         Collector methods with calls to per-thread Heap ones.
16524 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
16526         Reviewed by Simon.
16528         Build the Qt port with SVG Animation support.
16530         * WebCore.pro:
16532 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
16534         Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
16535         with different signatures.
16537         * plugins/npfunctions.h:
16539 2008-05-01  Robin Dunn  <robin@alldunn.com>
16541         Reviewed by Kevin Ollivier.
16543         Explicitly set the pen style in wx port to keep pen style changes from 
16544         affecting URL underline or text field drawing.
16545         
16546         https://bugs.webkit.org/show_bug.cgi?id=18775
16548         * platform/graphics/wx/GraphicsContextWx.cpp:
16549         (WebCore::GraphicsContext::fillRect):
16550         (WebCore::GraphicsContext::drawLineForText):
16551         * platform/wx/RenderThemeWx.cpp:
16552         (WebCore::RenderThemeWx::paintTextField):
16554 2008-05-01  Robin Dunn  <robin@alldunn.com>
16556         Reviewed by Kevin Ollivier.
16558         Implement popup menu support for wx port.
16559         
16560         https://bugs.webkit.org/show_bug.cgi?id=18776
16562         * platform/PopupMenu.h:
16563         * platform/wx/PopupMenuWx.cpp: Added.
16564         (WebCore::PopupMenu::PopupMenu):
16565         (WebCore::PopupMenu::~PopupMenu):
16566         (WebCore::PopupMenu::show):
16567         (WebCore::PopupMenu::OnMenuItemSelected):
16568         (WebCore::PopupMenu::hide):
16569         (WebCore::PopupMenu::updateFromElement):
16570         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
16571         * platform/wx/TemporaryLinkStubs.cpp:
16572         * webcore-wx.bkl:
16574 2008-05-01  Kevin Ollivier  <kevino@theolliviers.com>
16576         Reviewed by Eric Seidel.
16578         Make sure we properly set the button for all mouse events,
16579         not just mouse down, set the click count to 0
16580         for non-click events, and finally set the timestamp.
16581         
16582         https://bugs.webkit.org/show_bug.cgi?id=18464
16584         * platform/wx/MouseEventWx.cpp:
16585         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
16587 2008-05-01  Sam Weinig  <sam@webkit.org>
16589         Reviewed by Mark Rowe (in his infinite wisdom).
16591         Auto-generate the JSXSLTProcessor binding.
16593         * DerivedSources.make:
16594         * GNUmakefile.am:
16595         * WebCore.pro:
16596         * WebCore.vcproj/WebCore.vcproj:
16597         * WebCore.xcodeproj/project.pbxproj:
16598         * WebCoreSources.bkl:
16599         * bindings/js/JSDOMWindowBase.cpp:
16600         (WebCore::JSDOMWindowBase::getValueProperty):
16601         * bindings/js/JSDOMWindowBase.h:
16602         (WebCore::JSDOMWindowBase::):
16603         * bindings/js/JSXSLTProcessor.cpp: Removed.
16604         * bindings/js/JSXSLTProcessor.h: Removed.
16605         * xml/XSLTProcessor.h:
16607 2008-05-01  Sam Weinig  <sam@webkit.org>
16609         Reviewed by Geoffrey Garen.
16611         Fixes:
16612           - https://bugs.webkit.org/show_bug.cgi?id=17249
16613             Incorrect lexical scope after navigation leads to UXSS
16614             <rdar://problem/5738497>
16616           - https://bugs.webkit.org/show_bug.cgi?id=16824
16617             Script authorization should follow lexical (not dynamic) scope
16618             <rdar://problem/5683032>
16620         This patch changes us to perform same-origin checks based on the lexical global object) 
16621         rather than dynamic global object, which is now possible we don't re-use the window on 
16622         navigations, but rather switch in a new one and re-use the outer shell.  This is both
16623         more secure and conforms with the HTML5 specification.  Now that all the checks are
16624         done based on the lexical global object, we can remove the SecurityOrigin::Reason
16625         concept, as it was only around to work around an ebay.com bug that required the check to
16626         be done that way.
16628         An important thing to note is that we currently implement a stricter than necessary policy
16629         and perform the same-origin check based on the currently active global object to avoid leaking
16630         the document in cases when the target frame is navigated before access.  This will be fixed in
16631         an upcoming patch.
16633         * bindings/js/JSDOMWindowBase.cpp:
16634         (WebCore::JSDOMWindowBase::allowsAccessFrom):
16635         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
16636         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
16637         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
16638         (WebCore::JSDOMWindowBase::printErrorMessage):
16639         (WebCore::asJSDOMWindow):
16640         * bindings/js/JSDOMWindowBase.h:
16641         * html/CanvasRenderingContext2D.cpp:
16642         (WebCore::CanvasRenderingContext2D::checkOrigin):
16643         (WebCore::CanvasRenderingContext2D::createPattern):
16644         * loader/FrameLoader.cpp:
16645         (WebCore::FrameLoader::begin):
16646         (WebCore::FrameLoader::write):
16647         (WebCore::FrameLoader::setOpener):
16648         (WebCore::FrameLoader::shouldAllowNavigation):
16649         * page/DOMWindow.h:
16650         (WebCore::DOMWindow::setSecurityOrigin):
16651         (WebCore::DOMWindow::securityOrigin):
16652         (WebCore::DOMWindow::setURL):
16653         (WebCore::DOMWindow::url):
16654         * platform/SecurityOrigin.cpp:
16655         (WebCore::SecurityOrigin::canAccess):
16656         (WebCore::SecurityOrigin::isSecureTransitionTo):
16657         * platform/SecurityOrigin.h:
16659 2008-05-01  Anders Carlsson  <andersca@apple.com>
16661         Reviewed by Mark.
16663         Enable 64-bit NPAPI plugins.
16664         
16665         * WebCore.xcodeproj/project.pbxproj:
16666         Don't remove NPAPI related symbols from the 64-bit .exp file.
16667         
16668         * bridge/npruntime.h:
16669         Remove now unnecessary #error.
16671 2008-05-01  Maciej Stachowiak  <mjs@apple.com>
16673         Reviewed by Oliver (a while ago)
16675         - just a wee bit more bindings speedup
16676         
16677         Store the per-document Node --> JS wrapper cache in the document
16678         instead of an external hashtable.
16680         * bindings/js/kjs_binding.cpp:
16681         (WebCore::ScriptInterpreter::getDOMNodeForDocument):
16682         (WebCore::ScriptInterpreter::forgetDOMNodeForDocument):
16683         (WebCore::ScriptInterpreter::putDOMNodeForDocument):
16684         (WebCore::ScriptInterpreter::forgetAllDOMNodesForDocument):
16685         (WebCore::ScriptInterpreter::markDOMNodesForDocument):
16686         * dom/Document.h:
16687         (WebCore::Document::wrapperCache):
16689 2008-05-01  Anders Carlsson  <andersca@apple.com>
16691         Reviewed by Tim.
16693         Remove duplicate npfunctions.h header from WebKit.
16694         
16695         * WebCore.xcodeproj/project.pbxproj:
16696         Add npfunctions.h and set its role to private.
16697         
16698         * plugins/npfunctions.h:
16699         Merge Mac specific changes.
16701 2008-05-01  Sam Weinig  <sam@webkit.org>
16703         Reviewed by Geoffrey Garen.
16705         Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
16706         cast.
16708         * bindings/js/JSCustomVoidCallback.cpp:
16709         (WebCore::toVoidCallback):
16710         * bindings/js/JSCustomXPathNSResolver.cpp:
16711         (WebCore::JSCustomXPathNSResolver::create):
16712         * bindings/js/JSDOMApplicationCacheCustom.cpp:
16713         (WebCore::JSDOMApplicationCache::add):
16714         (WebCore::JSDOMApplicationCache::remove):
16715         * bindings/js/JSDOMWindowBase.cpp:
16716         (WebCore::allowPopUp):
16717         (WebCore::createWindow):
16718         (WebCore::windowProtoFuncOpen):
16719         (WebCore::asJSDOMWindow):
16720         * bindings/js/JSDOMWindowBase.h:
16721         * bindings/js/JSDOMWindowCustom.cpp:
16722         (WebCore::JSDOMWindow::setLocation):
16723         (WebCore::JSDOMWindow::postMessage):
16724         * bindings/js/JSDatabaseCustom.cpp:
16725         (WebCore::JSDatabase::changeVersion):
16726         (WebCore::JSDatabase::transaction):
16727         * bindings/js/JSDocumentCustom.cpp:
16728         (WebCore::JSDocument::setLocation):
16729         * bindings/js/JSLocationCustom.cpp:
16730         (WebCore::navigateIfAllowed):
16731         (WebCore::JSLocation::setHref):
16732         (WebCore::JSLocation::replace):
16733         (WebCore::JSLocation::reload):
16734         (WebCore::JSLocation::assign):
16735         * bindings/js/JSSQLTransactionCustom.cpp:
16736         (WebCore::JSSQLTransaction::executeSql):
16737         * bindings/js/JSXMLHttpRequestCustom.cpp:
16738         (WebCore::JSXMLHttpRequest::open):
16739         * page/JavaScriptDebugServer.cpp:
16740         (WebCore::toPage):
16742 2008-05-01  Anatoli Papirovski  <apapirovski@mac.com>
16744         Reviewed by Dave Hyatt.
16746         - fix https://bugs.webkit.org/show_bug.cgi?id=18347
16747           Absolutely positioned image percentage width does not respect container's padding
16749         Test: fast/replaced/absolute-position-percentage-width.html
16751         * rendering/RenderBox.cpp:
16752         (WebCore::RenderBox::calcReplacedWidthUsing):
16754 2008-05-01  Dan Bernstein  <mitz@apple.com>
16756         - Windows build fix
16758         * platform/graphics/win/FontCGWin.cpp:
16759         (WebCore::Font::drawGlyphs):
16761 2008-05-01  Dan Bernstein  <mitz@apple.com>
16763         Reviewed by Darin Adler.
16765         - make synthetic bold and synthetic italics work in GDI text
16766         - account for synthetic bold in complex text on Windows
16768         * platform/graphics/win/FontCGWin.cpp:
16769         (WebCore::Font::drawGlyphs): Adjusted the text rectangle's x coordinates
16770         to fit italics. Added a skew transform for synthetic italics and a
16771         second paint pass for synthetic bold.
16772         * platform/graphics/win/SimpleFontDataWin.cpp:
16773         (WebCore::SimpleFontData::widthForGDIGlyph): Added the synthetic bold
16774         offset.
16775         * platform/graphics/win/UniscribeController.cpp:
16776         (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic
16777         bold offset.
16779 2008-05-01  Alp Toker  <alp@nuanti.com>
16781         Qt/Win build fix attempt following plugin changes. Add missing return
16782         statements.
16784         Also fixes some newly introduced coding style issues in the Qt port.
16786         * platform/qt/FileSystemQt.cpp:
16787         (WebCore::openTemporaryFile):
16788         (WebCore::closeFile):
16789         (WebCore::writeToFile):
16790         (WebCore::unloadModule):
16792 2008-05-01  Anders Carlsson  <andersca@apple.com>
16794         Reviewed by Adam.
16796         Export methods needed to subclass Widget.  (See r32770.)
16798         * WebCore.base.exp:
16800 2008-05-01  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
16802         Reviewed by Alp Toker.
16803         Qt parts OK'ed by Simon Hausmann.
16805         https://bugs.webkit.org/show_bug.cgi?id=14750
16806         Added support for NPAPI plugins on Gtk and Qt-x11 ports.
16808         * GNUmakefile.am: Added Gtk plugin files.
16809         * WebCore.pro: Added Qt plugins files, defined XP_UNIX and
16810         ENABLE_NETSCAPE_PLUGIN_API
16811         * bridge/npruntime_internal.h: Additional undefs that conflict
16812         with Qt headers.
16813         * page/gtk/FrameGtk.cpp: Create js bindings for PluginView.
16814         (WebCore::Frame::createScriptInstanceForWidget):
16815         * page/qt/FrameQt.cpp: Create js bindings for PluginView.
16816         (WebCore::Frame::createScriptInstanceForWidget):
16817         (WebCore::Frame::clearPlatformScriptObjects):
16818         (WebCore::Frame::disconnectPlatformScriptObjects):
16819         * platform/FileSystem.h: Qt FileSystem implementation.
16820         * platform/Widget.h: Members to differentiate between Qt plugins and
16821         NPAPI ones.
16822         * platform/gtk/ScrollViewGtk.cpp:
16823         (WebCore::ScrollView::addChild): Set containing window before calling setParent.
16824         * platform/gtk/TemporaryLinkStubs.cpp: Removed implemented functions.
16825         (PluginView::invalidateRegion):
16826         * platform/qt/FileSystemQt.cpp: Implemented functions necessary for
16827         NPAPI plugins.
16828         (WebCore::openTemporaryFile):
16829         (WebCore::closeFile):
16830         (WebCore::writeToFile):
16831         (WebCore::unloadModule): Delete module if unloaded.
16832         * platform/qt/TemporaryLinkStubs.cpp: Removed implemented functions.
16833         * platform/qt/WidgetQt.cpp: Differentiate between Qt plugins and
16834         NPAPI ones.
16835         (WebCore::WidgetPrivate::WidgetPrivate):
16836         (WebCore::Widget::isNPAPIPlugin):
16837         (WebCore::Widget::setIsNPAPIPlugin):
16838         * plugins/PluginPackage.cpp:
16839         (WebCore::PluginPackage::~PluginPackage): Unload the module before
16840         destruction.
16841         (WebCore::PluginPackage::compare): Moved here as it's platform
16842         independent.
16843         * plugins/PluginView.cpp: Moved platform-independent functions here.
16844         (WebCore::PluginView::PluginView): Initialize m_npWindow.ws_info on
16845         Unix platforms.
16846         (WebCore::PluginView::freeStringArray):
16847         (WebCore::startsWithBlankLine):
16848         (WebCore::locationAfterFirstBlankLine):
16849         (WebCore::findEOL):
16850         (WebCore::capitalizeRFC822HeaderFieldName):
16851         (WebCore::parseRFC822HeaderFields):
16852         (WebCore::PluginView::handlePost):
16853         * plugins/PluginView.h: Moved platform-independent functions here.
16854         Added member to signal plugin needs XEmbed extension.
16855         * plugins/gtk/PluginDataGtk.cpp: Added.
16856         (WebCore::PluginData::initPlugins):
16857         (WebCore::PluginData::refresh):
16858         * plugins/gtk/PluginDatabaseGtk.cpp:
16859         (WebCore::PluginDatabase::defaultPluginDirectories):
16860         (WebCore::PluginDatabase::isPreferredPluginDirectory):
16861         * plugins/gtk/PluginPackageGtk.cpp: Added.
16862         (WebCore::PluginPackage::determineQuirks):
16863         (WebCore::PluginPackage::fetchInfo):
16864         (WebCore::PluginPackage::load):
16865         (WebCore::PluginPackage::hash):
16866         (WebCore::PluginPackage::equal):
16867         (WebCore::PluginPackage::compareFileVersion):
16868         * plugins/gtk/PluginViewGtk.cpp: Added.
16869         (WebCore::PluginView::updateWindow):
16870         (WebCore::PluginView::setFocus):
16871         (WebCore::PluginView::show):
16872         (WebCore::PluginView::hide):
16873         (WebCore::PluginView::paint):
16874         (WebCore::PluginView::handleKeyboardEvent):
16875         (WebCore::PluginView::handleMouseEvent):
16876         (WebCore::PluginView::setParent):
16877         (WebCore::PluginView::setNPWindowRect):
16878         (WebCore::PluginView::attachToWindow):
16879         (WebCore::PluginView::detachFromWindow):
16880         (WebCore::PluginView::stop):
16881         (WebCore::PluginView::userAgent):
16882         (WebCore::PluginView::handlePostReadFile):
16883         (WebCore::PluginView::getValue):
16884         (WebCore::PluginView::invalidateRect):
16885         (WebCore::PluginView::forceRedraw):
16886         (WebCore::PluginView::~PluginView):
16887         (WebCore::plug_removed_cb): Added callback to handle plug removal.
16888         (WebCore::PluginView::init):
16889         * plugins/gtk/xembed.h: Added.
16890         * plugins/npapi.cpp:
16891         (NPN_GetValue): Return error if no view present.
16892         * plugins/qt/PluginDataQt.cpp:
16893         (WebCore::PluginData::initPlugins):
16894         (WebCore::PluginData::refresh):
16895         * plugins/qt/PluginDatabaseQt.cpp: Added.
16896         (WebCore::PluginDatabase::getPluginPathsInDirectories):
16897         (WebCore::addQtWebKitPluginDirectories):
16898         (WebCore::addMozillaPluginDirectories):
16899         (WebCore::PluginDatabase::defaultPluginDirectories):
16900         (WebCore::PluginDatabase::isPreferredPluginDirectory):
16901         * plugins/qt/PluginPackageQt.cpp: Added.
16902         (WebCore::PluginPackage::determineQuirks):
16903         (WebCore::PluginPackage::fetchInfo):
16904         (WebCore::PluginPackage::load):
16905         (WebCore::PluginPackage::hash):
16906         (WebCore::PluginPackage::equal):
16907         (WebCore::PluginPackage::compareFileVersion):
16908         * plugins/qt/PluginViewQt.cpp: Added.
16909         (WebCore::PluginView::updateWindow):
16910         (WebCore::PluginView::setFocus):
16911         (WebCore::PluginView::show):
16912         (WebCore::PluginView::hide):
16913         (WebCore::PluginView::paint):
16914         (WebCore::PluginView::handleKeyboardEvent):
16915         (WebCore::PluginView::handleMouseEvent):
16916         (WebCore::PluginView::setParent):
16917         (WebCore::PluginView::setNPWindowRect):
16918         (WebCore::PluginView::attachToWindow):
16919         (WebCore::PluginView::detachFromWindow):
16920         (WebCore::PluginView::stop):
16921         (WebCore::PluginView::userAgent):
16922         (WebCore::PluginView::handlePostReadFile):
16923         (WebCore::PluginView::getValue):
16924         (WebCore::PluginView::invalidateRect):
16925         (WebCore::PluginView::invalidateRegion):
16926         (WebCore::PluginView::forceRedraw):
16927         (WebCore::PluginView::~PluginView):
16928         (WebCore::PluginView::init):
16929         * plugins/win/PluginPackageWin.cpp: Moved platform-independent code
16930         to plugins/PluginPackage.cpp
16931         * plugins/win/PluginViewWin.cpp: Moved platform-independent code to
16932         plugins/PluginView.cpp
16933         (WebCore::PluginView::stop):
16934         (WebCore::PluginView::handlePostReadFile):
16935         (WebCore::PluginView::getValue): Moved this function to each platform.
16937 2008-05-01  Sam Weinig  <sam@webkit.org>
16939         Fix build.
16941         * ForwardingHeaders/wtf/StrHash.h: Added.
16943 2008-05-01  Anders Carlsson  <andersca@apple.com>
16945         Reviewed by Darin.
16947         Move management of cache groups to ApplicationCacheStorage. Also,
16948         application caches now start out with a null group and will have their group set
16949         when the cache has finished loading. 
16951         * loader/appcache/ApplicationCache.cpp:
16952         (WebCore::ApplicationCache::ApplicationCache):
16953         Initialize m_group to 0.
16954         
16955         (WebCore::ApplicationCache::~ApplicationCache):
16956         Null check the group.
16957         
16958         (WebCore::ApplicationCache::setGroup):
16959         New method for setting the group.
16960         
16961         * loader/appcache/ApplicationCache.h:        
16962         (WebCore::ApplicationCache::create):
16963         Remove the group argument.
16964         
16965         * loader/appcache/ApplicationCacheGroup.cpp:
16966         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
16967         Let the storage know that the cache group has been destroyed.
16968         
16969         (WebCore::ApplicationCacheGroup::cacheForMainRequest):
16970         Call into the storage.
16971         
16972         (WebCore::ApplicationCacheGroup::selectCache):
16973         Call into the storage.
16974         
16975         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
16976         When there are no document loaders associated with the cache group,
16977         set the newest cache to 0.
16978         
16979         (WebCore::ApplicationCacheGroup::cacheDestroyed):
16980         Delete the group if there are no associated caches.
16981         
16982         (WebCore::ApplicationCacheGroup::setNewestCache):
16983         New method that will set the newest cache and associate the group with the cache.
16984         
16985         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
16986         Call setNewestCache instead.
16987         
16988         * loader/appcache/ApplicationCacheStorage.cpp:
16989         (WebCore::urlHostHash):
16990         Move host hash method here.
16991         
16992         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
16993         New method that finds a cache group with a given manifest URL or creates a new one.
16995         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
16996         New method that returns a cache group for a given URL.
16997         
16998         (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
16999         When the cache group has been destroyed, remove it from the hash map.
17000         
17001         * loader/appcache/ApplicationCacheStorage.h:
17002         Add new methods.I b
17004 2008-05-01  Dan Winship  <danw@gnome.org>
17006         Reviewed by Alp Toker.
17008         http://bugs.webkit.org/show_bug.cgi?id=18490
17009         Add mostly-working file: support and mostly-broken ftp: support to
17010         the soup backend.
17012         * platform/network/soup/ResourceHandleSoup.cpp (start): after
17013         doing basic checks, delegate to one of three submethods
17014         (startData): handles data: URLs
17015         (startHttp): handles http: and https: URLs, via libsoup
17016         (startGio, etc): handles file: and ftp: URLs, via gio. Lots of
17017         FIXMEs detailing the parts that don't fully work yet.
17019         * platform/network/ResourceHandle.h:
17020         * platform/network/ResourceHandleInternal.h: add new member
17021         variables for gio-based loading
17023 2008-05-01  Alp Toker  <alp@nuanti.com>
17025         Rubber-stamped by Anders.
17027         GTK+ build fix for changes in r32752. Use int32, not int32_t types in
17028         npapi.h.
17030         Additional fix to use same signedness in npapi.h and Mac for the
17031         interval parameter.
17033         * bridge/npapi.h:
17035 2008-04-30  Anders Carlsson  <andersca@apple.com>
17037         Reviewed by Adam.
17039         Add new Cocoa event model type declarations.
17040         
17041         * bridge/npapi.h:
17043 2008-04-30  Beth Dakin  <bdakin@apple.com>
17045         Reviewed by Sam Weinig.
17047         This patch does three things:
17048         1. Adds support for the "img" ARIA role
17049         2. Switches over to a HashMap for converting ARIA role attributes 
17050         to WebCore's AccessibilityRole type. 
17051         3. Fixes a crash in the new ARIA code that I ran into while 
17052         browsing with VoiceOver enabled.
17054         * page/AccessibilityObject.cpp:
17055         (WebCore::AccessibilityObject::headingLevel): This is the crash 
17056         fix. Make sure the node's renderer is not null before looking up 
17057         its corresponding AccessibilityObject in the cache.
17058         (WebCore::AccessibilityObject::accessibilityIsIgnored): Account for 
17059         ARIA images.
17060         (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to 
17061         the Map.
17062         (WebCore::RoleEntry::): Same.
17063         (WebCore::ariaRoleToWebCoreRole): Same.
17064         (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
17066 2008-04-30  Rob Buis  <buis@kde.org>
17068         Reviewed by Nikolas.
17070         https://bugs.webkit.org/show_bug.cgi?id=16447
17071         onload called too many times for <svg:image>
17072         https://bugs.webkit.org/show_bug.cgi?id=12282
17073         SVG wastes time in malloc to send loadEvents to non-existent listeners
17075         Postpone load event dispatching for image when externalResourcesRequired
17076         is true, delaying parents but not siblings, and make sure the load event
17077         is sent once for image in all cases.
17079         * svg/SVGElement.cpp:
17080         (WebCore::hasLoadListener):
17081         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
17082         * svg/SVGImageElement.cpp:
17083         (WebCore::SVGImageElement::haveLoadedRequiredResources):
17084         * svg/SVGImageLoader.cpp:
17085         (WebCore::SVGImageLoader::dispatchLoadEvent):
17087 2008-04-30  David Hyatt  <hyatt@apple.com>
17089         Fix crashes when dynamically removing <video> elements with layers that establish stacking contexts.  This
17090         won't typically crash release builds because of arena recycling.
17092         Reviewed by Dan Bernstein
17093         
17094         * rendering/RenderLayer.cpp:
17095         (WebCore::RenderLayer::~RenderLayer):
17096         Make sure to remove the reflection's child layer from its parent.
17098         * rendering/RenderMedia.cpp:
17099         (WebCore::RenderMedia::~RenderMedia):
17100         (WebCore::RenderMedia::destroy):
17101         (WebCore::RenderMedia::removeChild):
17102         * rendering/RenderMedia.h:
17103         Adjust the teardown of RenderMedia so that it does all of its teardown inside destroy() (this makes it more
17104         like other renderers and doesn't leave you staring at a trashed layer hierarchy in the RenderMedia
17105         destructor).
17107 2008-04-30  Rémi Zara  <remi_zara@mac.com>
17109         Reviewed by Dave Hyatt.
17111         fix https://bugs.webkit.org/show_bug.cgi?id=18618
17112         <rdar://problem/5876063> REGRESSION (r31823-r31847): Patterns are upside down
17114         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
17115         (WebCore::patternCallback): flip the y axis when drawing the tile
17117 2008-04-30  Timothy Hatcher  <timothy@apple.com>
17119         Fixes an undefined type exception that fires when adding a resource to the inspector
17120         that has a MIME type warning.
17122         Reviewed by Adam Roben.
17124         * page/inspector/Resource.js:
17125         (WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
17126         WebInspector.consolePanel.
17127         (WebInspector.Resource.prototype._checkWarning): Ditto.
17129 2008-04-30  Timothy Hatcher  <timothy@apple.com>
17131         Fixes the bug where the selected resource would be deselected after
17132         changing the sort order in the Resources panel.
17134         Reviewed by Dan Bernstein.
17136         * page/inspector/ResourcesPanel.js:
17137         (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded):
17138         Rememebr if the tree element that we are sorting was selected, so
17139         the selection can be restored after it is re-inserted. The onSelect
17140         is suppressed since we don't need to show the resource again.
17142 2008-04-29  Timothy Hatcher  <timothy@apple.com>
17144         Fixes the regression where error bubbles in source views always show
17145         "undefined" for the content because the message property on
17146         ConsoleMessage was removed. Adds support for a plain text formated
17147         message that is stored in the message proeprty.
17149         Reviewed by Adam Roben.
17151         * page/inspector/Console.js:
17152         (WebInspector.Console.prototype._format): Add a plainText argument that is passed to
17153         the formatters.
17154         (WebInspector.Console.prototype._formatvalue): Add a plainText argument, and a comment
17155         about needing to honor it if the textContent of the output doesn't make sense.
17156         (WebInspector.Console.prototype._formatvalue): Ditto.
17157         (WebInspector.Console.prototype._formatstring): Ditto.
17158         (WebInspector.Console.prototype._formatregexp): Ditto.
17159         (WebInspector.Console.prototype._formatarray): Ditto.
17160         (WebInspector.Console.prototype._formatnode): Ditto.
17161         (WebInspector.Console.prototype._formatobject): Ditto.
17162         (WebInspector.Console.prototype._formaterror): Ditto.
17163         (WebInspector.ConsoleMessage): Call _format passing true for plainText. Get the 
17164         textContnet of the result and assign to the message proeprty. This property is 
17165         referenced from the SourceView.
17166         (WebInspector.ConsoleMessage.prototype._format): Add a plainText argument. Build the 
17167         result element as a local and return it, instead of using formatedMessage directly.
17169 2008-04-30  Timothy Hatcher  <timothy@apple.com>
17171         Adds a helper function to convert a JSValueRef to a String.
17173         Reviewed by Adam Roben.
17175         * page/InspectorController.cpp:
17176         (WebCore::toString): Converts a JSValueRef to a String.
17177         (WebCore::search): Use toString.
17178         (WebCore::InspectorController::handleException): Ditto.
17180 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
17182         Reviewed by Simon.
17183         
17184         Build the Qt port with SVG Foreign Object support.
17186         * WebCore.pro:
17188 2008-04-30  Simon Hausmann  <hausmann@webkit.org>
17190         Reviewed by Holger.
17192         Fix null pointer deference triggered by
17193         LayoutTests/fast/loader/cancel-load-during-port-block-timer.html
17195         * platform/network/qt/ResourceHandleQt.cpp:
17196         (WebCore::ResourceHandle::cancel): Check m_job before dereferencing.
17198 2008-04-29  David Hyatt  <hyatt@apple.com>
17200         Improve the performance of masks by adding code to set more precise clips on the transparency layers
17201         used to paint the content under the mask, and then also avoid creating transparency layers for the masks
17202         themselves in common cases.
17204         Reviewed by Dan Bernstein
17206         * platform/graphics/GraphicsContext.cpp:
17207         (WebCore::GraphicsContext::drawTiledImage):
17208         Fix a bug in drawTiledImage where the composite mode got lost in the double stretch case for nine piece
17209         images.
17211         * rendering/InlineFlowBox.cpp:
17212         (WebCore::InlineFlowBox::paintFillLayers):
17213         (WebCore::InlineFlowBox::paintFillLayer):
17214         (WebCore::InlineFlowBox::paintMask):
17215         Optimize to only push a transparency layer for the mask if multiple images are combining.  Add a new
17216         composite operator argument for use when painting fill layers to do direct destination-in compositing while
17217         painting images.
17220         * rendering/InlineFlowBox.h:
17221         * rendering/RenderBox.cpp:
17222         (WebCore::RenderBox::paintMask):
17223         (WebCore::RenderBox::paintMaskImages):
17224         Optimize to only push a transparency layer for the mask if multiple images are combining.
17226         (WebCore::RenderBox::maskClipRect):
17227         A new method that attempts to compute a precise clip rect for the mask images.
17229         (WebCore::RenderBox::paintFillLayers):
17230         (WebCore::RenderBox::paintFillLayer):
17231         (WebCore::RenderBox::paintFillLayerExtended):
17232         * rendering/RenderBox.h:
17233         Added the composite operator argument to the paintFillLayer methods.
17235         * rendering/RenderFieldset.cpp:
17236         (WebCore::RenderFieldset::paintMask):
17237         Call the new base class paintMaskImages method for optimized mask painting.
17239         * rendering/RenderLayer.cpp:
17240         (WebCore::transparencyClipBox):
17241         Fix a coordinate space issue with transparencyClipBox when masks were used.  The border box was in the
17242         wrong coordinate space.  Moved the code into the layer's boundingBox() method instead.
17244         (WebCore::RenderLayer::paintLayer):
17245         Removed the code that always pushed a transparency layer before painting masks.
17247         (WebCore::RenderLayer::boundingBox):
17248         Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.
17250         * rendering/RenderObject.cpp:
17251         (WebCore::RenderObject::paintNinePieceImage):
17252         Added a composite operator argument for direct destination-in painting of nine piece images.
17254         * rendering/RenderObject.h:
17255         (WebCore::RenderObject::maskClipRect):
17256         (WebCore::RenderObject::paintFillLayerExtended):
17257         Base class stubs for RenderBox-implemented methods.
17259         * rendering/RenderTable.cpp:
17260         (WebCore::RenderTable::paintMask):
17261         * rendering/RenderTableCell.cpp:
17262         (WebCore::RenderTableCell::paintMask):
17263         Modified to call the new paintMaskImages function.
17265         * svg/graphics/SVGImage.cpp:
17266         (WebCore::SVGImage::draw):
17267         SVG images now respect composite modes by pushing a transparency layer when the composite mode
17268         is anything other than source-over.
17270 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
17272         Rubber-stamped by Rob Buis.
17274         Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled
17276         * svg/SVGUseElement.cpp:
17277         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
17279 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
17281         Rubber-stamped by Rob Buis.
17283         Fixed compile, due to API change in XMLSerializer
17285         * svg/SVGUseElement.cpp:
17286         (WebCore::SVGUseElement::buildPendingResource):
17288 2008-04-30  Rob Buis  <buis@kde.org>
17290         Reviewed by Eric.
17292         https://bugs.webkit.org/show_bug.cgi?id=11939
17293         Quirksmode: Ignores media types in stylesheet PIs
17295         Transfer the xml-stylesheet pseudo attribute media to the css
17296         stylesheet created from the ProcessingInstruction.
17298         Tests: fast/css/xml-stylesheet-media-processing.xhtml
17300         * css/StyleSheet.cpp:
17301         (WebCore::StyleSheet::setMedia):
17302         * css/StyleSheet.h:
17303         * dom/ProcessingInstruction.cpp:
17304         (WebCore::ProcessingInstruction::checkStyleSheet):
17305         (WebCore::ProcessingInstruction::setCSSStyleSheet):
17306         * dom/ProcessingInstruction.h:
17308 2008-04-29  David D. Kilzer  <ddkilzer@apple.com>
17310         BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()
17312         On the buildbot, this is a fatal error:
17314         ld: symbols names listed in -exported_symbols_list: WebKitBuild/Release/DerivedSources/WebCore/WebCore.exp not in linked objects
17315         __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv
17316         /usr/bin/libtool: internal link edit command failed
17318         Newer dev tools only produce a warning:
17320         ld warning: cannot export hidden symbol __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o
17322         * WebCore.base.exp: Remove hidden symbol from export list.
17324 2008-04-29  David Kilzer  <ddkilzer@apple.com>
17326         Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
17328         * dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
17330 2008-04-29  David Kilzer  <ddkilzer@apple.com>
17332         BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
17334         * DerivedSources.make: Removed duplication of targets for
17335         generating CSSPropertyNames.h and CSSValueKeywords.h.
17336         * GNUmakefile.am: Ditto.  Added support for ENABLE_DASHBOARD_SUPPORT.
17337         * WebCore.pro: Added support for ENABLE_DASHBOARD_SUPPORT.
17338         Made both SVG and non-SVG variables of GENERATOR 6-A use new
17339         DASHBOARDSUPPORTCSSPROPERTIES variable.
17341 2008-04-29  Ada Chan  <adachan@apple.com>
17343         Added missing return.        
17345         * platform/win/COMPtr.h:
17346         (WTF::):
17348 2008-04-29  Alp Toker  <alp@nuanti.com>
17350         GTK+ build fix attempt following breakage in r32700 which
17351         conditionalised dashboard support.
17353         * GNUmakefile.am:
17355 2008-04-29  Adam Roben  <aroben@apple.com>
17357         Restore the beloved COMPtr::operator&
17359         * platform/win/COMPtr.h: Removed the HashTableDeletedValueType
17360         constructor and isHashTableDeletedValue and hashTableDeletedValue
17361         functions.
17362         (WTF::): Changed constructDeletedValue to play nicely with
17363         COMPtr::operator&.
17365 2008-04-29  Adam Roben  <aroben@apple.com>
17367         Fix assertion on launch on Windows
17369         * platform/graphics/win/FontPlatformData.h: Pass
17370         WTF::HashTableDeletedValue to the m_font constructor instead of a
17371         bogus -1 value. This is needed because m_font is a RefPtr.
17373 2008-04-29  Greg Bolsinga  <bolsinga@apple.com>
17375         Reviewed by Darin.
17377         Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)
17379         * DerivedSources.make:
17380         * WebCore.DashboardSupport.exp: Added.
17381         * WebCore.base.exp:
17382         * WebCore.xcodeproj/project.pbxproj:
17383         * bindings/js/JSDOMWindowCustom.cpp:
17384         (WebCore::JSDOMWindow::setLocation):
17385         * css/CSSComputedStyleDeclaration.cpp:
17386         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
17387         * css/CSSParser.cpp:
17388         (WebCore::CSSParser::parseValue):
17389         * css/CSSPrimitiveValue.cpp:
17390         (WebCore::CSSPrimitiveValue::cleanup):
17391         (WebCore::CSSPrimitiveValue::cssText):
17392         * css/CSSPropertyNames.in:
17393         * css/CSSStyleSelector.cpp:
17394         (WebCore::CSSStyleSelector::applyProperty):
17395         * css/DashboardRegion.h:
17396         * css/DashboardSupportCSSPropertyNames.in: Added.
17397         * dom/DOMImplementation.cpp:
17398         (WebCore::DOMImplementation::createDocument):
17399         * dom/Document.cpp:
17400         (WebCore::Document::Document):
17401         (WebCore::Document::importNode):
17402         * dom/Document.h:
17403         * html/CanvasRenderingContext2D.cpp:
17404         (WebCore::CanvasRenderingContext2D::fill):
17405         (WebCore::CanvasRenderingContext2D::stroke):
17406         (WebCore::CanvasRenderingContext2D::clip):
17407         * html/CanvasRenderingContext2D.h:
17408         * html/HTMLCanvasElement.cpp:
17409         * html/HTMLCanvasElement.h:
17410         * page/Chrome.cpp:
17411         * page/ChromeClient.h:
17412         * page/Frame.cpp:
17413         (WebCore::Frame::paint):
17414         * page/Frame.h:
17415         * page/FrameView.cpp:
17416         (WebCore::FrameView::layout):
17417         * page/FrameView.h:
17418         * page/Settings.cpp:
17419         (WebCore::Settings::Settings):
17420         * page/Settings.h:
17421         * page/mac/EventHandlerMac.mm:
17422         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
17423         * page/mac/FrameMac.mm:
17424         * page/mac/WebDashboardRegion.h:
17425         * page/mac/WebDashboardRegion.m:
17426         * rendering/RenderLayer.cpp:
17427         (WebCore::RenderLayer::scrollToOffset):
17428         (WebCore::RenderLayer::setHasHorizontalScrollbar):
17429         (WebCore::RenderLayer::setHasVerticalScrollbar):
17430         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
17431         * rendering/RenderObject.cpp:
17432         (WebCore::RenderObject::setStyle):
17433         * rendering/RenderObject.h:
17434         * rendering/RenderStyle.cpp:
17435         (WebCore::StyleRareNonInheritedData::operator==):
17436         (WebCore::RenderStyle::diff):
17437         * rendering/RenderStyle.h:
17438         * xml/XMLHttpRequest.cpp:
17439         (WebCore::XMLHttpRequest::send):
17440         (WebCore::XMLHttpRequest::setRequestHeader):
17442 2008-04-29  Adam Roben  <aroben@apple.com>
17444         Windows build fix
17446         This removes COMPtr::operator&, which didn't jive with HashTable. It
17447         is replaced by COMPtr::adoptionPointer.
17449         Discussed with Darin Adler and Anders Carlsson.
17451         * platform/win/COMPtr.h: Replaced operator& with adoptionPointer.
17453 2008-04-29  David Hyatt  <hyatt@apple.com>
17455         Implement the new box-reflect property in CSS.  This property enables real-time reflections on
17456         objects (yes you can reflect <video>!).
17458         Reviewed by Dan Bernstein
17460         Test cases added in fast/reflections/
17462         * GNUmakefile.am:
17463         * WebCore.pro:
17464         * WebCore.xcodeproj/project.pbxproj:
17465         * WebCoreSources.bkl:
17466         * css/CSSComputedStyleDeclaration.cpp:
17467         (WebCore::valueForReflection):
17468         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
17469         * css/CSSParser.cpp:
17470         (WebCore::CSSParser::parseValue):
17471         (WebCore::CSSParser::parseReflect):
17472         (WebCore::BorderImageParseContext::commitBorderImage):
17473         (WebCore::CSSParser::parseBorderImage):
17474         (WebCore::parseGradientColorStop):
17475         (WebCore::CSSParser::parseTransform):
17476         * css/CSSParser.h:
17477         * css/CSSPropertyNames.in:
17478         * css/CSSReflectValue.cpp: Added.
17479         (WebCore::CSSReflectValue::cssText):
17480         * css/CSSReflectValue.h: Added.
17481         (WebCore::CSSReflectValue::CSSReflectValue):
17482         (WebCore::CSSReflectValue::direction):
17483         (WebCore::CSSReflectValue::offset):
17484         (WebCore::CSSReflectValue::mask):
17485         (WebCore::CSSReflectValue::setDirection):
17486         (WebCore::CSSReflectValue::setOffset):
17487         (WebCore::CSSReflectValue::setMask):
17488         * css/CSSStyleSelector.cpp:
17489         (WebCore::CSSStyleSelector::adjustRenderStyle):
17490         (WebCore::CSSStyleSelector::applyProperty):
17491         (WebCore::CSSStyleSelector::mapNinePieceImage):
17492         * css/CSSStyleSelector.h:
17493         * rendering/InlineFlowBox.cpp:
17494         (WebCore::InlineFlowBox::placeBoxesVertically):
17495         (WebCore::InlineFlowBox::paintMask):
17496         * rendering/Length.h:
17497         (WebCore::Length::calcFloatValue):
17498         * rendering/RenderBlock.cpp:
17499         (WebCore::RenderBlock::overflowHeight):
17500         (WebCore::RenderBlock::overflowWidth):
17501         (WebCore::RenderBlock::overflowLeft):
17502         (WebCore::RenderBlock::overflowTop):
17503         (WebCore::RenderBlock::overflowRect):
17504         (WebCore::RenderBlock::layoutBlock):
17505         * rendering/RenderBox.cpp:
17506         (WebCore::RenderBox::setStyle):
17507         (WebCore::RenderBox::paintMask):
17508         (WebCore::RenderBox::imageChanged):
17509         (WebCore::RenderBox::computeAbsoluteRepaintRect):
17510         * rendering/RenderFlexibleBox.cpp:
17511         (WebCore::RenderFlexibleBox::layoutBlock):
17512         * rendering/RenderLayer.cpp:
17513         (WebCore::RenderLayer::RenderLayer):
17514         (WebCore::RenderLayer::~RenderLayer):
17515         (WebCore::RenderLayer::updateLayerPositions):
17516         (WebCore::RenderLayer::enclosingPositionedAncestor):
17517         (WebCore::RenderLayer::enclosingTransformedAncestor):
17518         (WebCore::RenderLayer::isTransparent):
17519         (WebCore::transparencyClipBox):
17520         (WebCore::RenderLayer::operator delete):
17521         (WebCore::RenderLayer::destroy):
17522         (WebCore::RenderLayer::removeOnlyThisLayer):
17523         (WebCore::RenderLayer::insertOnlyThisLayer):
17524         (WebCore::RenderLayer::paintLayer):
17525         (WebCore::RenderLayer::updateZOrderLists):
17526         (WebCore::RenderLayer::updateOverflowList):
17527         (WebCore::RenderLayer::collectLayers):
17528         (WebCore::RenderLayer::shouldBeOverflowOnly):
17529         (WebCore::RenderLayer::styleChanged):
17530         (WebCore::RenderLayer::reflectionLayer):
17531         (WebCore::RenderLayer::createReflection):
17532         (WebCore::RenderLayer::updateReflectionStyle):
17533         * rendering/RenderLayer.h:
17534         (WebCore::RenderLayer::hasReflection):
17535         (WebCore::RenderLayer::reflection):
17536         (WebCore::RenderLayer::paintingInsideReflection):
17537         * rendering/RenderObject.cpp:
17538         (WebCore::RenderObject::RenderObject):
17539         (WebCore::RenderObject::requiresLayer):
17540         (WebCore::RenderObject::setStyle):
17541         (WebCore::RenderObject::updateImage):
17542         (WebCore::RenderObject::reflectionBox):
17543         (WebCore::RenderObject::reflectionOffset):
17544         * rendering/RenderObject.h:
17545         (WebCore::RenderObject::hasTransform):
17546         (WebCore::RenderObject::setHasReflection):
17547         (WebCore::RenderObject::hasReflection):
17548         * rendering/RenderReplica.cpp: Added.
17549         (WebCore::RenderReplica::RenderReplica):
17550         (WebCore::RenderReplica::~RenderReplica):
17551         (WebCore::RenderReplica::layout):
17552         (WebCore::RenderReplica::calcPrefWidths):
17553         (WebCore::RenderReplica::paint):
17554         * rendering/RenderReplica.h: Added.
17555         (WebCore::RenderReplica::renderName):
17556         (WebCore::RenderReplica::requiresLayer):
17557         * rendering/RenderStyle.cpp:
17558         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
17559         (WebCore::StyleRareNonInheritedData::operator==):
17560         (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent):
17561         (WebCore::RenderStyle::diff):
17562         (WebCore::RenderStyle::applyTransform):
17563         * rendering/RenderStyle.h:
17564         (WebCore::TranslateTransformOperation::apply):
17565         (WebCore::StyleReflection::StyleReflection):
17566         (WebCore::StyleReflection::operator==):
17567         (WebCore::StyleReflection::operator!=):
17568         (WebCore::StyleReflection::direction):
17569         (WebCore::StyleReflection::offset):
17570         (WebCore::StyleReflection::mask):
17571         (WebCore::StyleReflection::setDirection):
17572         (WebCore::StyleReflection::setOffset):
17573         (WebCore::StyleReflection::setMask):
17574         (WebCore::RenderStyle::boxReflect):
17575         (WebCore::RenderStyle::setBoxReflect):
17576         (WebCore::RenderStyle::initialBoxReflect):
17577         * rendering/RenderTable.cpp:
17578         (WebCore::RenderTable::layout):
17579         (WebCore::RenderTable::paintMask):
17580         * rendering/RenderTableCell.cpp:
17581         (WebCore::RenderTableCell::requiresLayer):
17582         (WebCore::RenderTableCell::paintMask):
17584 2008-04-29  Beth Dakin  <bdakin@apple.com>
17586         Reviewed by Alice.
17588         Initial implementation of the following ARIA roles: button, 
17589         checkbox, heading, link, radio, textbox.
17591         * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
17593         * page/AccessibilityObject.cpp:
17594          When an ARIA role is set, the role overrides whatever the actual 
17595 element is when the element reports itself to the screen reader. So all of these isBlah functions report based on their roleValue now.
17596         (WebCore::AccessibilityObject::isWebArea):
17597         (WebCore::AccessibilityObject::isImageButton):
17598         (WebCore::AccessibilityObject::isAnchor):
17599         (WebCore::AccessibilityObject::isTextControl):
17600         (WebCore::AccessibilityObject::isImage):
17601         (WebCore::AccessibilityObject::isAttachment):
17602         (WebCore::AccessibilityObject::isPasswordField):
17603         (WebCore::AccessibilityObject::isCheckboxOrRadio):
17604         (WebCore::AccessibilityObject::isHeading):
17605         (WebCore::AccessibilityObject::isLink):
17607         Check for ARIA information:
17608         (WebCore::AccessibilityObject::headingLevel):
17609         (WebCore::AccessibilityObject::anchorElement):
17610         (WebCore::AccessibilityObject::actionElement):
17611         (WebCore::AccessibilityObject::hasIntValue):
17612         (WebCore::AccessibilityObject::intValue):
17613         (WebCore::AccessibilityObject::stringValue):
17614         (WebCore::AccessibilityObject::title):
17615         (WebCore::AccessibilityObject::accessibilityIsIgnored):
17616         (WebCore::AccessibilityObject::roleValue):
17618         There are a few places in the code where it is important to identify the difference between ARIA and non-ARIA.
17619         (WebCore::AccessibilityObject::isNativeImage):
17620         (WebCore::AccessibilityObject::isNativeTextControl):
17621         (WebCore::isARIAInput):
17622         (WebCore::isARIAControl):
17624         A lot of spots in the code used to cast to RenderTextControl to get information about the text inside the element. Now that non-native text controls can run this code with the ARIA role 'textbox', it needs to be as general as possible. 
17625         (WebCore::AccessibilityObject::text): Still calls into 
17626         RenderTextControl's text() for native text controls. Uses Element's 
17627         innerText() for ARIA textboxes.
17628         (WebCore::AccessibilityObject::textLength): Call 
17629         AccessibilityObject's text() instead of RenderTextControl's.
17630         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
17631         (WebCore::AccessibilityObject::selectedText):
17632         (WebCore::AccessibilityObject::selectedTextRange):
17633         (WebCore::AccessibilityObject::selectionStart):
17634         (WebCore::AccessibilityObject::selectionEnd):
17635         (WebCore::AccessibilityObject::setSelectedTextRange):
17636         (WebCore::AccessibilityObject::setValue):
17637         (WebCore::AccessibilityObject::visiblePositionForIndex):
17638         (WebCore::AccessibilityObject::indexForVisiblePosition):
17639         (WebCore::AccessibilityObject::textMarkerRangeForRange):
17640         (WebCore::AccessibilityObject::textMarkerForIndex):
17641         (WebCore::AccessibilityObject::indexForTextMarker):
17642         (WebCore::AccessibilityObject::doAXRangeForLine):
17643         (WebCore::AccessibilityObject::doAXRangeForIndex):
17644         (WebCore::AccessibilityObject::doAXStringForRange):
17645         (WebCore::AccessibilityObject::doAXBoundsForRange):
17646         
17647         Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
17648         (WebCore::AccessibilityObject::ariaRoleAttribute):
17649         
17650         Added several new functions. Most of them existed before but were static, or have been added to reduce the dependency on RenderTextControl for a lot of the text functionality.
17651         * page/AccessibilityObject.h:
17653         Eliminated dependency on RenderTextControl cast. The information is generalized now and available directly through the AccessibilityObject.
17654         * page/mac/AccessibilityObjectWrapper.mm:
17655         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
17656         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
17658 2008-04-29  Timothy Hatcher  <timothy@apple.com>
17660         Make the exceptions that the InspectorController catches log the
17661         original file and line number, if present on the exception object.
17663         Reviewed by Adam Roben.
17665         * page/InspectorController.cpp:
17666         (WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
17667         (WebCore::InspectorController::~InspectorController): Ditto.
17668         (WebCore::InspectorController::scriptObjectReady): Ditto.
17669         (WebCore::InspectorController::addScriptResource): Ditto.
17670         (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
17671         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
17672         (WebCore::InspectorController::updateScriptResource): Ditto.
17673         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
17674         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
17675         (WebCore::InspectorController::handleException): Take a context. Pull the line
17676         and sourceURL properties off the exception if it is an object.
17677         * page/InspectorController.h: Change handleException to take a context.
17679 2008-04-29  Timothy Hatcher  <timothy@apple.com>
17681         Fixes a regression where the Page's debugger would not be reattached
17682         when a new JSDOMWindow is created.
17684         Reviewed by Sam Weinig.
17686         * bindings/js/kjs_proxy.cpp:
17687         (WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.
17688         * history/CachedPage.cpp:
17689         (WebCore::CachedPage::restore): For the case where the CachedPage doesn't
17690         contain a window, reattach the debugger to the new JSDOMWindow by calling
17691         proxy->attachDebugger. Also restore the setPageGroupIdentifier.
17693 2008-04-29  Anatoli Papirovski  <apapirovski@mac.com>
17695         Reviewed by Darin Adler.
17697         Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
17698         Fixed RGB and RGBA parsing to ignore the declaration when the value is not
17699         "either three integer values or three percentage values."
17701         * css/CSSParser.cpp:
17702         (WebCore::CSSParser::parseColorParameters):
17704 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
17706         Reviewed by Simon.
17708         Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
17710         Ben found this crash in the demo browser.
17712         In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
17714         case PolicyDownload:
17715         frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
17716         receivedError(interruptionForPolicyChangeError());
17718         We are in a policy check, the download() call will call setHtml, which will start loading
17719         the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
17720         which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
17721         will use the m_frame->loader() but it is gone. Do not call into receivedError and
17722         interruptionForPolicyChangeError if we are gone anyway...
17724         * loader/MainResourceLoader.cpp:
17725         (WebCore::MainResourceLoader::continueAfterContentPolicy):
17727 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
17729         Reviewed by Simon.
17731         Rely on auto-boxing of C++ for the QCursor c'tor
17733         * platform/qt/CursorQt.cpp:
17735 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
17737         Reviewed by Simon.
17739         Add the remaining cursors that defaulted to PointerCursor
17741         * Resources/WebKitResources.qrc:
17742         * platform/qt/CursorQt.cpp:
17743         (WebCore::verticalTextCursor):
17744         (WebCore::cellCursor):
17745         (WebCore::contextMenuCursor):
17746         (WebCore::copyCursor):
17747         (WebCore::progressCursor):
17748         (WebCore::aliasCursor):
17750 2008-04-29  Alice Liu  <alice.liu@apple.com>
17752         Reviewed by Beth Dakin.
17754         Comply with HTML5 spec about parsing tabindex property according to
17755         integer parsing rules
17757         Test: fast/parser/tabindex-parsing.html
17759         * html/HTMLElement.cpp:
17760         (WebCore::HTMLElement::parseMappedAttribute):
17762 2008-04-29  Tor Arne Vestbø  <tavestbo@trolltech.com>
17764         Reviewed by Simon.
17766         Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.
17768         https://bugs.webkit.org/show_bug.cgi?id=18482
17770         We need to repaint scrollbars after a geometry change, and also make sure
17771         the computed clipping rect for the corners between scrollbars is propagated
17772         to the chrome client without beeing intersected by the visible content rect
17773         of the frame.
17775         * platform/ScrollView.h:
17776         * platform/qt/ScrollViewQt.cpp:
17777         (WebCore::ScrollView::geometryChanged):
17778         (WebCore::ScrollView::suppressScrollbars):
17779         (WebCore::ScrollView::invalidateScrollbars):
17781 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
17783         Reviewed by Simon.
17785         Calling QWebView::setCursor will override the WebCore Cursor.
17786         Calling QWebView::setCursor will override the WebCore Cursor using
17787         QWidget::unsetCursor will revert to the WebCore Cursor.
17789         For detecting the unset we have to compare the shape of the
17790         cursor to the default arrow. Qt::WA_SetCursor can not be used
17791         as it is set unconditionally but conditionally removed.
17793         Calling QWidget::setCursor will immediately send the CursorChange
17794         event. We listen to this event to decide if we currently use a
17795         WebCore cursor, got a cursor from outside, or revert to the default.
17797         This should be race free and work reliable, the manual test for this
17798         is WebCore/manual-tests/cursor.html
17800         * platform/qt/WidgetQt.cpp:
17801         (WebCore::Widget::setCursor):
17803 2008-04-28  Dan Bernstein  <mitz@apple.com>
17805         Reviewed by Maciej Stachowiak.
17807         - fix https://bugs.webkit.org/show_bug.cgi?id=18795
17808           REGRESSION (r32660): Text heavier with text-shadow
17810         * rendering/InlineTextBox.cpp:
17811         (WebCore::paintTextWithShadows): The loop was doing one extra pass
17812         without shadow even in cases where the last pass with a shadow was
17813         painting the text at the right position (rather than outside the clip).
17814         Fixed that. The only case where a separate pass without shadow is needed
17815         is when there is text-stroke, since in that case all shadow passes
17816         paint the text outside the clip.
17818 2008-04-28  Brady Eidson <beidson@apple.com>
17820         Reviewed by Sam Weinig
17822         Add Storage.clear(), per updates to HTML5
17824         Tests: storage/domstorage/localstorage/clear.html
17825                storage/domstorage/sessionstorage/clear.html
17827         * storage/LocalStorageArea.cpp:
17828         (WebCore::LocalStorageArea::areaCleared):
17829         * storage/LocalStorageArea.h:
17831         * storage/SessionStorageArea.cpp:
17832         (WebCore::SessionStorageArea::areaCleared):
17833         * storage/SessionStorageArea.h:
17835         * storage/Storage.cpp:
17836         (WebCore::Storage::clear):
17837         * storage/Storage.h:
17838         * storage/Storage.idl:
17840         * storage/StorageArea.cpp:
17841         (WebCore::StorageArea::internalClear):
17842         * storage/StorageArea.h:
17843         (WebCore::StorageArea::clear):
17845 2008-04-28  Adele Peterson  <adele@apple.com>
17847         Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.
17849         WebCore part of fix for <rdar://problem/3709505>
17850         Safari should have a way to upload bundles from the file upload control (as zip)
17852         * WebCore.base.exp: Added symbols.
17854         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Ask the application if a file will need to be replaced before it's uploaded.
17855           It will also give the replacement filename which is used to determine the correct mime-type and to construct the correct header.
17857         * loader/FrameLoader.cpp:
17858         (WebCore::FrameLoader::submitForm): Asks the application to generate any files for the form data before a form submission starts.
17859         (WebCore::FrameLoader::loadItem): ditto.
17860         * loader/ResourceLoader.cpp:
17861         (WebCore::ResourceLoader::didReceiveResponse): Tells the FormData from the request to remove any generated files if it needs to.
17862         (WebCore::ResourceLoader::didCancel): ditto.
17863         (WebCore::ResourceLoader::didFail): ditto.
17865         * platform/network/FormData.cpp:
17866         (WebCore::FormData::FormData): Initializes m_hasGeneratedFiles, which keeps track of whether there are files that will need to be removed.
17867         (WebCore::FormData::~FormData): Added.  Assert that there are no files that need to be removed, but if there are, release builds will still remove them here.
17868         (WebCore::FormData::appendFile): Passes along a shouldGenerateFile flag to the FormDataElement.
17869         (WebCore::FormData::generateFiles): Added. Iterates through the FormDataElements, and using the ChromeClient pointer, asks the application to
17870          create any compressed files so the FormDataElements can store the paths.
17871         (WebCore::FormData::removeGeneratedFilesIfNeeded): Added.  Removes generated files and their directories (if empty).
17872         * platform/network/FormData.h:
17873         (WebCore::FormDataElement::FormDataElement): Added a boolean to track whether the file will need to be generated,
17874          and a string to hold the path of the generated file.
17876         * platform/network/mac/FormDataStreamMac.mm:
17877         (WebCore::advanceCurrentStream): Uses the generated file path instead of the original file path when streaming the file.
17878         (WebCore::setHTTPBody): Uses the generated file path when determining the size of the file to be uploaded.
17880         * platform/FileSystem.h: Added directoryName.
17881         * platform/posix/FileSystemPOSIX.cpp: (WebCore::directoryName): Added.
17882         * platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): Added empty implementation.
17883         * platform/qt/FileSystemQt.cpp: (WebCore::directoryName): ditto.
17884         * platform/win/FileSystemWin.cpp: (WebCore::directoryName): ditto.
17885         * platform/wx/FileSystemWx.cpp: (WebCore::directoryName): ditto.
17887         Added new ChromeClient methods to give the application control over the file compression for uploading.
17888         * page/Chrome.cpp:
17889         (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation.
17890         (WebCore::ChromeClient::generateReplacementFile): ditto.
17891         * page/ChromeClient.h:
17893 2008-04-28  Anders Carlsson  <andersca@apple.com>
17895         Reviewed by Sam, Mark, Adele and Darin.
17897         Add a (currently not called) method for opening the application cache database.
17898         
17899         * WebCore.base.exp:
17900         * loader/appcache/ApplicationCacheStorage.cpp:
17901         (WebCore::ApplicationCacheStorage::setCacheDirectory):
17902         (WebCore::ApplicationCacheStorage::openDatabase):
17903         * loader/appcache/ApplicationCacheStorage.h:
17905 2008-04-28  Alice Liu  <alice.liu@apple.com>
17907         Reviewed by Darin.
17909         Fix <rdar://problem/4911289> Add tabindex property to all children 
17910         of HTMLElement (7138)
17911         http://bugs.webkit.org/show_bug.cgi?id=7138
17913         Test: fast/events/tabindex-focus-blur-all.html
17915         * WebCore.xcodeproj/project.pbxproj:
17916         * bindings/objc/DOMPrivate.h:
17917         -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no
17918          longer needed
17920         * bindings/objc/PublicDOMInterfaces.h:
17921         -Moving focus, blur, tabindex to HTMLElement from its descendants.
17923         * dom/Node.cpp:
17924         (WebCore::Node::Node):
17925         (WebCore::Node::isFocusable):
17926         (WebCore::Node::isKeyboardFocusable):
17927         -The concept of being focusable now needs to account for tabindex
17928         attribute.
17930         * dom/Node.h:
17931         -Need to use a bit to keep track of whether tabindex was explicitly set
17932          to 0 or was just initialized to 0.
17933         (WebCore::Node::tabIndex):
17934         -Make this virtual so that Anchors and GenericFormElements can determine
17935          tabindex without accounting for focusability
17936         (WebCore::Node::setTabIndexExplicitly):
17937         -Renamed setTabIndex() to setTabIndexExplicitly() so as not to hide
17938          behind and/or be confused for HTMLElement::setTabIndex
17940         * html/HTMLAnchorElement.cpp:
17941         * html/HTMLAnchorElement.h:
17942         (WebCore::HTMLAnchorElement::tabIndex):
17943         * html/HTMLGenericFormElement.cpp:
17944         * html/HTMLGenericFormElement.h:
17945         (WebCore::HTMLGenericFormElement::tabIndex):
17946         -Anchors and form elements are normally focusable, and need to avert the
17947          check for focusability in HTMLElement::tabIndex
17948          because tabIndex could be queried before a first layout happens.
17950         * html/HTMLElement.cpp:
17951         (WebCore::HTMLElement::parseMappedAttribute):
17952         -Function Node::setTabIndex changed to Node::setTabIndexExplicitly
17953         (WebCore::HTMLElement::isFocusable):
17954         -The concept of being focusable now needs to account for tabindex
17955          attribute.
17956         (WebCore::HTMLElement::tabIndex):
17957         -HTML5 specifies that querying tabindex for elements that aren't
17958          focusable shall return -1
17959         (WebCore::HTMLElement::setTabIndex):
17960         -New default implementation
17961         * html/HTMLElement.h:
17963         * html/HTMLLegendElement.cpp:
17964         (WebCore::HTMLLegendElement::focus):
17965         -Now with HTML5's enhanced specification of tabindex, legend elements
17966          themselves shall focus (if they should), and not the first form element 
17967          they encapsulate.  This matches Firefox behavior.  HTMLLabelElements
17968          still forward focus to the encapsulated element.  This also matches
17969          other browsers. 
17971         * html/HTMLAreaElement.cpp:
17972         (WebCore::HTMLAreaElement::isFocusable):
17973         * html/HTMLAreaElement.h:
17974         -HTMLAreaElement isn't subject to the same focusability requirements as
17975          its parent, HTMLAnchorElement. Default HTMLElement implementation is
17976          desired.  
17978         * html/HTMLFieldSetElement.cpp:
17979         (WebCore::HTMLFieldSetElement::isFocusable):
17980         * html/HTMLLegendElement.cpp:
17981         (WebCore::HTMLLegendElement::isFocusable):
17982         * html/HTMLOptGroupElement.cpp:
17983         (WebCore::HTMLOptGroupElement::isFocusable):
17984         * html/HTMLOptionElement.cpp:
17985         (WebCore::HTMLOptionElement::isFocusable):
17986         -These elements aren't subject to the same focusability requirements as
17987          their parent, HTMLGenericFormElement. Default HTMLElement 
17988          implementation is desired.  
17990         * html/HTMLAnchorElement.idl:
17991         * html/HTMLAreaElement.idl:
17992         * html/HTMLButtonElement.idl:
17993         * html/HTMLElement.idl:
17994         * html/HTMLInputElement.idl:
17995         * html/HTMLLabelElement.idl:
17996         * html/HTMLLegendElement.idl:
17997         * html/HTMLObjectElement.idl:
17998         * html/HTMLSelectElement.idl:
17999         * html/HTMLTextAreaElement.idl:
18000         -Moving tabindex attribute, focus and blur methods from descendants of
18001          HTMLElement to HTMLElement
18003 2008-04-28  Dan Bernstein  <mitz@apple.com>
18005         Reviewed by Dave Hyatt.
18007         - support multiple box- and text-shadows
18009         Tests: fast/css/shadow-multiple.html
18010                fast/repaint/shadow-multiple-horizontal.html
18011                fast/repaint/shadow-multiple-strict-horizontal.html
18012                fast/repaint/shadow-multiple-strict-vertical.html
18013                fast/repaint/shadow-multiple-vertical.html
18015         * css/CSSComputedStyleDeclaration.cpp:
18016         (WebCore::valueForShadow): Changed to account for reversing the order
18017         of the shadow values in the ShadowData list.
18019         * css/CSSValueList.cpp:
18020         (WebCore::CSSValueList::prepend): Added.
18021         * css/CSSValueList.h:
18023         * rendering/InlineFlowBox.cpp:
18024         (WebCore::InlineFlowBox::placeBoxesHorizontally): Changed to account for
18025         all shadows in overflow calculation.
18026         (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
18027         (WebCore::InlineFlowBox::paint): Changed to account for all shadows
18028         when testing for intersection with the damage rect.
18029         (WebCore::InlineFlowBox::paintTextDecorations): Changed to paint all
18030         shadows.
18032         * rendering/InlineTextBox.cpp:
18033         (WebCore::paintTextWithShadows): Factored out from paint() and changed
18034         to paint all shadows.
18035         (WebCore::InlineTextBox::paint): Moved the text painting code out to
18036         paintTextWithShadows(). Changed to not paint shadows for markers and
18037         composition underlines and in "force black text" mode.
18038         (WebCore::InlineTextBox::paintSelection):
18039         (WebCore::InlineTextBox::paintCompositionBackground):
18040         (WebCore::InlineTextBox::paintDecoration): Changed to paint all shadows.
18041         * rendering/InlineTextBox.h: Changed some public methods to private
18042         or protected.
18044         * rendering/RenderBlock.cpp:
18045         (WebCore::RenderBlock::overflowHeight): Changed to account for all
18046         shadows.
18047         (WebCore::RenderBlock::overflowWidth): Ditto.
18048         (WebCore::RenderBlock::overflowLeft): Ditto.
18049         (WebCore::RenderBlock::overflowTop): Ditto.
18050         (WebCore::RenderBlock::overflowRect): Ditto.
18051         (WebCore::RenderBlock::layoutBlock): Ditto.
18053         * rendering/RenderFlexibleBox.cpp:
18054         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
18056         * rendering/RenderLayer.cpp:
18057         (WebCore::RenderLayer::calculateRects): Ditto.
18059         * rendering/RenderObject.cpp:
18060         (WebCore::RenderObject::paintBoxShadow): Changed to paint all shadows.
18061         Changed to avoid clipping out the box if it has a fully opaque
18062         background.
18063         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Changed to account
18064         for all shadows.
18065         (WebCore::RenderObject::selectionForegroundColor): Cleaned up.
18066         (WebCore::RenderObject::adjustRectForOutlineAndShadow): Changed to
18067         account for all shadows.
18069         * rendering/RenderReplaced.cpp:
18070         (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Ditto.
18072         * rendering/RenderStyle.cpp:
18073         (WebCore::RenderStyle::setTextShadow): Changed to prepend when adding
18074         so that the stacking order of shadows when painting will be "first o
18075         top".
18076         (WebCore::RenderStyle::setBoxShadow): Ditto.
18078         * rendering/RenderTable.cpp:
18079         (WebCore::RenderTable::layout): Changed to account for all shadows.
18081 2008-04-28  Adam Roben  <aroben@apple.com>
18083         Fix some more Windows build errors in COMPtr
18085         * platform/win/COMPtr.h:
18086         (WTF::): Define DefaultHash<COMPtr<P> > by using PtrHash<COMPtr<P> >,
18087         which is just a copy of PtrHash<RefPtr<P> >.
18089 2008-04-28  Adam Roben  <aroben@apple.com>
18091         Fix some Windows build errors in COMPtr
18093         * platform/win/COMPtr.h: Explicitly name the WTF namespace when using
18094         HashTableDeletedValueType.
18096 2008-04-28  Adam Roben  <aroben@apple.com>
18098         Fix some Windows build errors in FontPlatfomrData
18100         * platform/graphics/win/FontPlatformData.h: Removed the Deleted
18101         constructor and replaced it with a HashTableDeletedValueType
18102         constructor. Also added isHashTableDeletedValue() and
18103         hashTableDeletedFontValue().
18105 2008-04-28  David Hyatt  <hyatt@apple.com>
18107         https://bugs.webkit.org/show_bug.cgi?id=18780
18109         Canvas can't draw itself into its own buffer.  Make sure the dirtying call comes after the image()
18110         has been accessed.  Technically willDraw should be renamed to didDraw and all calls should be moved
18111         to after draws have occurred (since if the draw op itself wants to reference the image it shouldn't get
18112         a dirty copy either), but I'll take that up with olliej when he wakes up. :)
18114         Reviewed by Dan Bernstein
18116         Added fast/canvas/canvasDrawsIntoSelf.html
18118         * html/CanvasRenderingContext2D.cpp:
18119         (WebCore::CanvasRenderingContext2D::drawImage):
18121 2008-04-28  Alexey Proskuryakov  <ap@webkit.org>
18123         Reviewed by Geoff Garen.
18125         <rdar://problem/5825192> Replace use of Gestalt with BSD sysctl
18127         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
18128         (WebCore::MediaPlayerPrivate::isAvailable): There is no need to check QuickTime version post-Tiger,
18129         as it will never be below 7.3 again. This change may make library loading happen earlier in
18130         some cases, hopefully, that's not a big deal.
18132 2008-04-25  Alexey Proskuryakov  <ap@webkit.org>
18134         Reviewed by Darin.
18136         Fix run-webkit-tests --threading
18137         and provisionally fix <https://bugs.webkit.org/show_bug.cgi?id=18661>
18138         Proxy server issue in Sunday's Nightly
18140         Adjusted for JavaScriptCore changes: added a new member to ClassInfo objects, turned
18141         ClassInfo::propHashTable into a function, made getPropertyAttributes() take an ExecState pointer.
18143         * bindings/js/JSAudioConstructor.cpp:
18144         * bindings/js/JSDOMWindowBase.cpp:
18145         * bindings/js/JSDOMWindowCustom.cpp:
18146         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
18147         * bindings/js/JSDOMWindowWrapper.cpp:
18148         (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
18149         * bindings/js/JSDOMWindowWrapper.h:
18150         * bindings/js/JSEventTargetBase.h:
18151         (WebCore::JSEventTargetPrototype::classInfo):
18152         * bindings/js/JSHTMLInputElementBase.cpp:
18153         * bindings/js/JSHTMLOptionElementConstructor.cpp:
18154         * bindings/js/JSHistoryCustom.cpp:
18155         (WebCore::JSHistory::customGetOwnPropertySlot):
18156         * bindings/js/JSImageConstructor.cpp:
18157         * bindings/js/JSInspectedObjectWrapper.cpp:
18158         * bindings/js/JSInspectorCallbackWrapper.cpp:
18159         * bindings/js/JSLocationCustom.cpp:
18160         (WebCore::JSLocation::customGetOwnPropertySlot):
18161         (WebCore::JSLocation::customPut):
18162         * bindings/js/JSNamedNodesCollection.cpp:
18163         * bindings/js/JSQuarantinedObjectWrapper.cpp:
18164         * bindings/js/JSRGBColor.cpp:
18165         * bindings/js/JSStorageCustom.cpp:
18166         (WebCore::JSStorage::customPut):
18167         * bindings/js/JSXMLHttpRequestConstructor.cpp:
18168         * bindings/js/JSXSLTProcessor.cpp:
18169         * bindings/scripts/CodeGeneratorJS.pm:
18170         * bridge/objc/objc_runtime.mm:
18171         * bridge/runtime_array.cpp:
18172         * bridge/runtime_object.cpp:
18174 2008-04-28  David Hyatt  <hyatt@apple.com>
18176         https://bugs.webkit.org/show_bug.cgi?id=18779
18178         The arguments in drawImage were reversed when I switched away from the image buffer method.
18180         Reviewed by Tim Hatcher
18182         Added fast/canvas/drawImage.html
18184         * html/CanvasRenderingContext2D.cpp:
18185         (WebCore::CanvasRenderingContext2D::drawImage):
18187 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
18189         Reviewed by Simon.
18191         Fix the crash on http://www.orad.pl. We called end too early.
18193         1. we need a ::write that will pause the parser due a pending
18194         script
18195         2. we need a second write to queue data (tricky part)
18196         3. we need to get a finish call (document loaded)
18197         4. we resume the script and parse, schedule loading of a new script
18198         and have called end
18199         5. we resume the new script and we get a crash
18201         This bug is hard to trigger, e.g. if the web server is only allowing
18202         one connection per client/IP. This is why we need to sleep in the scripts. We
18203         want to make sure that the page is first fully received before serving the
18204         scripts.
18206         Test: http/tests/misc/xmltokenizer-do-not-crash.pl
18208         * dom/XMLTokenizer.cpp:
18210 2008-04-28  Ariya Hidayat  <ahidayat@trolltech.com>
18212         Reviewed by Simon.
18214         Fix rounded corner on combo box with CSS border
18216         * platform/qt/RenderThemeQt.cpp:
18217         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
18219 2008-04-28  Ariya Hidayat  <ahidayat@trolltech.com>
18221         Reviewed by Simon.
18223         Fix CSS border does not show up for combo boxes
18225         Do not clear the border when painting the combo box for 'select' form element
18227         * platform/qt/RenderThemeQt.cpp:
18229 2008-04-28  Olivier Goffart  <ogoffart@trolltech.com>
18231         Reviewed by Simon.
18233         Avoid comparing to 0 in qFuzzyCompare for increased
18234         numeric stability.
18236         * platform/graphics/qt/PathQt.cpp:
18237         (WebCore::Path::addArc):
18239 2008-04-28  Benjamin Meyer  <bmeyer@trolltech.com>
18241         Reviewed by Simon.
18243         Fixes: Pages returning 404 with content are not displayed.
18245         A web page that returns 404 can still have content.
18247         * platform/network/qt/QNetworkReplyHandler.cpp:
18248         (WebCore::QNetworkReplyHandler::finish):
18250 2008-04-28  Paul Olav Tvete  <paul@trolltech.com>
18252         Reviewed by Simon.
18254         Fix compiler warning; Avoid the implicity QString(const char *)
18255         constructor
18257         * platform/qt/RenderThemeQt.cpp:
18258         (WebCore::RenderThemeQt::fallbackStyle):
18260 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
18262         Reviewed by Simon.
18264         Prevent middle-click from triggering open URL from clipboard when the event has already been accepted.
18266         * platform/qt/PlatformScrollBarQt.cpp:
18267         (WebCore::PlatformScrollbar::handleMousePressEvent):
18269 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
18271         Reviewed by Simon.
18273         Fix scrollbar behavior in QtWebKit to match QScrollBar.
18275         Right click context menu is now supported, along with
18276         middle click to center slider thumb over mouse cursor.
18278         * platform/qt/PlatformScrollBar.h:
18279         * platform/qt/PlatformScrollBarQt.cpp:
18280         (tr):
18281         (WebCore::PlatformScrollbar::pixelPosToRangeValue):
18282         (WebCore::PlatformScrollbar::handleMousePressEvent):
18283         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
18284         (WebCore::PlatformScrollbar::handleContextMenuEvent):
18286 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
18288         Reviewed by Simon.
18290         Implemented channel-based logging for QtWebKit.
18292         Comma-separated log channels are read from the QT_WEBKIT_LOG environment variable.
18293         Warnings for notImplemented() is still output by default, but can be disabled
18294         by setting DISABLE_NI_WARNINGS=1.
18296         * WebCore.pro:
18297         * platform/NotImplemented.h:
18298         * platform/qt/LoggingQt.cpp: Added.
18299         (WebCore::getChannelFromName):
18300         (WebCore::InitializeLoggingChannelsIfNecessary):
18302 2008-04-28  Simon Hausmann  <shausman@trolltech.com>
18304         Reviewed by Holger.
18306         Fixes: Popups/Context menu in WebKit appearing at the wrong location when embedded in the graphics view or using multiple screens
18308         Give the popups the right parent widget and the right coordinates relative within the parent.
18310         * platform/qt/PopupMenuQt.cpp:
18311         (WebCore::PopupMenu::show):
18313 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
18315         Reviewed by Simon.
18317         Fixes: Tabbing to a checkbox/button doesn't work on Win/X11
18319         Respect platform settings for tabbing to all controls.
18321         * page/qt/EventHandlerQt.cpp:
18323 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
18325         Reviewed by Simon.
18327         First part of the fix for tabbing to a checkbox/button doesn't work on Win/X11
18329         Draw controls instead of pimitive elements, to get focus rects for free.
18331         * platform/qt/RenderThemeQt.cpp:
18332         (WebCore::RenderThemeQt::paintButton):
18334 2008-04-28  Lincoln Ramsay  <lincoln.ramsay@trolltech.com>
18336         Reviewed by Simon.
18338         Compile when QT_NO_CLIPBOARD is defined.
18340         * platform/qt/ClipboardQt.cpp:
18341         (WebCore::ClipboardQt::ClipboardQt):
18342         (WebCore::ClipboardQt::clearData):
18343         (WebCore::ClipboardQt::clearAllData):
18344         (WebCore::ClipboardQt::setData):
18345         (WebCore::ClipboardQt::declareAndWriteDragImage):
18346         (WebCore::ClipboardQt::writeURL):
18347         (WebCore::ClipboardQt::writeRange):
18348         * platform/qt/PasteboardQt.cpp:
18349         (WebCore::Pasteboard::writeSelection):
18350         (WebCore::Pasteboard::plainText):
18351         (WebCore::Pasteboard::documentFragment):
18352         (WebCore::Pasteboard::writeURL):
18353         (WebCore::Pasteboard::writeImage):
18355 2008-04-28  Ariya Hidayat  <ariya.hidayat@trolltech.com>
18357         Reviewed by Simon.
18359         Draw the arrow button on the styled combo box using the fallback ("Windows") style
18361         * platform/qt/RenderThemeQt.cpp:
18362         (WebCore::RenderThemeQt::RenderThemeQt):
18363         (WebCore::RenderThemeQt::~RenderThemeQt):
18364         (WebCore::RenderThemeQt::fallbackStyle):
18365         (WebCore::RenderThemeQt::paintMenuListButton):
18366         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
18367         * platform/qt/RenderThemeQt.h:
18369 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
18371         Reviewed by Holger.
18373         Fix positioning of native widgets (plugins).
18375         Correctly convert the coordinates of the Widget in Widget::setFrameGeometry()
18376         to be relative to the containing toplevel QWidget using convertToContainingWindow().
18378         Note: convertToContainingWindow() takes child coordinates.
18380         * platform/qt/WidgetQt.cpp:
18381         (WebCore::Widget::frameGeometry):
18382         (WebCore::Widget::setFrameGeometry):
18384 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
18386         Reviewed by Simon.
18388         plugins: fix scrolling issues
18390         When scrolling you can see artefacts that remain on the screen, they
18391         seem to originate from the backingstore handling. I'm not entirely sure
18392         where they come from, my workarounds involved a
18393         data->m_widget->parentWidget()->update() call in Widget::geometryChanged or
18394         handling widgets with a native QWidget embedded like web pages with a
18395         static background. This needs more investigations, I think the ScrollView
18396         change is cleaner than the brute force in Widget::geometryChanged
18398         Focus handling seems to be broken as well and needs further work, we don't
18399         clip plugin QWidgets and they can draw out of their bounds, e.g. on the ScrollBar,
18400         the z-order is likely not honored as well.
18402         * platform/ScrollView.h:
18403         * platform/qt/ScrollViewQt.cpp:
18404         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
18405         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
18406         (WebCore::ScrollView::addChild):
18407         (WebCore::ScrollView::removeChild):
18408         (WebCore::ScrollView::incrementNativeWidgetCount):
18409         (WebCore::ScrollView::decrementNativeWidgetCount):
18410         (WebCore::ScrollView::hasNativeWidgets):
18412 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
18414         Reviewed by Simon.
18416         Add manual test to test placement of QWidgets in iframe's
18418         * manual-tests/qt/main.html: Added.
18419         * manual-tests/qt/qtplugin.html: Added.
18421 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
18423         Fix the build with ENABLE_DATABASE=0 (Qt/Windows) by including
18424         SecurityOrigin.h. It's used in the file and also implicitly included
18425         through the database headers.
18427         * page/DOMWindow.cpp:
18429 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
18431         Prospective Wx build fix.
18433         * platform/graphics/wx/FontPlatformData.h:
18435 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
18437         Reviewed by Alp.
18439         Gtk build fix, similar to the changes done in r32609.
18441         * platform/graphics/gtk/FontPlatformData.h:
18442         (WebCore::FontPlatformData::FontPlatformData):
18443         (WebCore::FontPlatformData::isHashTableDeletedValue):
18444         (WebCore::FontPlatformData::hashTableDeletedFontValue):
18446 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
18448         Prospective build fix. After r32609 it seems the workaround here
18449         is not needed anymore. With gcc 4.2/4.3 before 32609 the workaround
18450         is needed for compilation, after 32609 compilation only succeeds
18451         without the workaround.
18453         * plugins/PluginPackage.h: Removed workaround of extra StorageTraits
18454         specification for the custom hash function of PluginPackage used in
18455         PluginSet.
18457 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
18459         Reviewed by Simon.
18461         https://bugs.webkit.org/show_bug.cgi?id=18713
18463         Fix scrollbar painting issues in QtWebKit.
18465         Hovering and click-draging outside of the scrollbar would
18466         produce unexpected and inconcistent results. We also didn't
18467         pass on leave-events to the underlying WebKit code, which
18468         was nessecary to implement the paint fix.
18470         * platform/qt/PlatformScrollBarQt.cpp:
18471         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
18472         (WebCore::PlatformScrollbar::handleMouseOutEvent):
18473         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
18475 2008-04-27  Oliver Hunt  <oliver@apple.com>
18477         Reviewed by Maciej.
18479         Bug 17173: HTML5 Canvas API requires us to ignore certain operations
18480         <https://bugs.webkit.org/show_bug.cgi?id=17173>
18482         This fixes the semantics of a number of Canvas functions to match
18483         the new HTML5 non-throwing semantics.
18485         Test: fast/canvas/canvas-path-with-inf-nan-dimensions.html
18487         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
18488         (WebCore::JSCanvasRenderingContext2D::strokeRect):
18489         * html/CanvasRenderingContext2D.cpp:
18490         (WebCore::CanvasRenderingContext2D::moveTo):
18491         (WebCore::CanvasRenderingContext2D::lineTo):
18492         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
18493         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
18494         (WebCore::CanvasRenderingContext2D::arcTo):
18495         (WebCore::CanvasRenderingContext2D::arc):
18496         (WebCore::validateRectForCanvas):
18497         (WebCore::CanvasRenderingContext2D::rect):
18498         (WebCore::CanvasRenderingContext2D::clearRect):
18499         (WebCore::CanvasRenderingContext2D::fillRect):
18500         (WebCore::CanvasRenderingContext2D::strokeRect):
18501         * html/CanvasRenderingContext2D.h:
18502         * html/CanvasRenderingContext2D.idl:
18504 2008-04-27  Rob Buis  <buis@kde.org>
18506         Reviewed by Adele.
18508         https://bugs.webkit.org/show_bug.cgi?id=18652
18509         onchange events don't seem to fire for input[type=range] controls.
18511         Fire changeEvent when dragging the slider.
18513         Test: fast/forms/slider-onchange-event.html
18515         * rendering/RenderSlider.cpp:
18516         (WebCore::RenderSlider::valueChanged):
18518 2008-04-25  Darin Adler  <darin@apple.com>
18520         Reviewed by Maciej.
18522         - update for compatibility with HashTable that no longer has optimization to share
18523           implementation between hash tables with integers, pointers, RefPtr, and String
18524           objects as keys
18526         * bindings/js/JSSVGPODTypeWrapper.h:
18527         (WebCore::PODTypeReadWriteHashInfo::PODTypeReadWriteHashInfo): Added constructor
18528         for HashTableDeletedValue.
18529         (WebCore::PODTypeReadWriteHashInfo::isHashTableDeletedValue): Added.
18530         (WebCore::PODTypeReadWriteHashInfoTraits::constructDeletedValue): Added.
18531         (WebCore::PODTypeReadWriteHashInfoTraits::isDeletedValue): Added.
18533         * dom/Document.cpp: Made changedDocuments internal to the file rather than a
18534         static data member of Document.
18535         (WebCore::FormElementKey::ref): Removed unneeded check for deleted value -- this
18536         will never be called on a deleted element.
18537         (WebCore::FormElementKey::deref): Ditto.
18539         * dom/Document.h: Added HashTableDeletedValue constructor and isHashTableDeletedValue
18540         to FormElementKey. Changed FormElementKeyHashTraits to use construct/isDeletedValue.
18541         Got rid of the changedDocuments data member. Changed iconURL to be an inline that
18542         returns a const String&.
18544         * dom/StyledElement.cpp: Changed MappedAttributeKeyTraits to use
18545         construct/isDeletedValue.
18547         * page/mac/AXObjectCacheMac.mm:
18548         (WebCore::AXObjectCache::getAXID): Call isDeletedValue instead of deletedValue.
18550         * platform/SecurityOriginHash.h: Added overload so that SecurityOriginHash can work
18551         with raw pointers as well as RefPt (helpful with the new RefPtrHashMap). Eliminated
18552         SecurityOriginTraits, since we can now use the default traits. Changed the value of
18553         safeToCompareToEmptyOrDeleted to false, since it's not safe to compare a deleted
18554         value using this hash function. I don't think it was safe before either; I'm not sure
18555         why it didn't cause a problem before.
18557         * platform/cf/SchedulePair.h: Removed SchedulePairTraits -- custom traits are no
18558         longer needed.
18560         * platform/graphics/FontCache.cpp:
18561         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Added constructor
18562         for HashTableDeletedValue.
18563         (WebCore::FontPlatformDataCacheKey::isHashTableDeletedValue): Added.
18564         (WebCore::FontPlatformDataCacheKey::hashTableDeletedSize): Added.
18565         (WebCore::FontPlatformDataCacheKeyTraits::constructDeletedValue): Added.
18566         (WebCore::FontPlatformDataCacheKeyTraits::isDeletedValue): Added.
18567         (WebCore::FontDataCacheKeyTraits::constructDeletedValue): Added.
18568         (WebCore::FontDataCacheKeyTraits::isDeletedValue): Added.
18570         * platform/graphics/IntSizeHash.h: Changed HashTraits<IntSize> to use
18571         construct/isDeletedValue.
18573         * platform/graphics/mac/FontPlatformData.h:
18574         (WebCore::FontPlatformData::FontPlatformData): Added constructor for
18575         HashTableDeletedValue.
18576         (WebCore::FontPlatformData::isHashTableDeletedValue): Added.
18577         (WebCore::FontPlatformData::hashTableDeletedFontValue): Added.
18579         * platform/text/PlatformString.h:
18580         (WebCore::String::swap): Added. Avoids any refcount churn when swapping two strings.
18581         (WebCore::String::String): Added constructor for HashTableDeletedValue.
18582         (WebCore::String::isHashTableDeletedValue): Added.
18583         (WebCore::swap): Added. Avoids any refcount churn when swapping two strings.
18585         * platform/text/StringHash.h: Changed specialization of HashTraits for
18586         WebCore::String to use the deleted value now defined in that class and removed
18587         the code to do ref/deref. Removed HashKeyStorageTraits specializations.
18588         
18589         * platform/win/COMPtr.h: Changed specialization of HashTraits for
18590         COMPtr to use the deleted value now defined in that class and removed
18591         the code to do ref/deref. Removed HashKeyStorageTraits specializations.
18592         (COMPtr::COMPtr): Added constructor for HashTableDeletedValue.
18593         (COMPtr::isHashTableDeletedValue): Added.
18594         (COMPtr::query): Removed inline keyword not needed since functions defined in the
18595         class definition are automatically marked inline.
18596         (COMPtr::hashTableDeletedValue): Added.
18598         * storage/DatabaseTracker.h: Removed now-unneeded SecurityOriginTraits.
18599         * storage/LocalStorage.h: Ditto.
18600         * storage/OriginQuotaManager.h: Ditto.
18601         * storage/SessionStorage.h: Ditto.
18603         * svg/SVGAnimatedTemplate.h:
18604         (WebCore::SVGAnimatedTypeWrapperKey::SVGAnimatedTypeWrapperKey): Added constructor
18605         for HashTableDeletedValue.
18606         (WebCore::SVGAnimatedTypeWrapperKey::isHashTableDeletedValue): Added.
18607         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::constructDeletedValue): Added.
18608         (WebCore::SVGAnimatedTypeWrapperKeyHashTraits::isDeletedValue): Added.
18610 2008-04-27  Mark Rowe  <mrowe@apple.com>
18612         Reviewed by Tim Hatcher.
18614         Initialize the extra member of the xmlEntity struct when using libxml2 >= 2.6.27.
18616         * dom/XMLTokenizer.cpp:
18618 2008-04-27  Dan Bernstein  <mitz@apple.com>
18620         Reviewed by Darin Adler.
18622         - fix https://bugs.webkit.org/show_bug.cgi?id=3729
18623           <rdar://problem/4036353> REGRESSION: arrow keys move insertion bar backwards in RTL text
18625         Test: editing/selection/move-left-right.html
18627         * editing/SelectionController.cpp:
18628         (WebCore::SelectionController::modifyMovingRight): Added. Currently
18629         implemented for character granularity, all other being treated as
18630         "forward".
18631         (WebCore::SelectionController::modifyMovingForward): Renamed
18632         modifyMovingRightForward() to this.
18633         (WebCore::SelectionController::modifyMovingLeft): Added. Currently
18634         implemented for character granularity, all other being treated as
18635         "backward".
18636         (WebCore::SelectionController::modifyMovingBackward): Renamed
18637         modifyMovingLeftBackward() to this.
18638         (WebCore::SelectionController::modify): Changed to call either the
18639         visual (left/right) or logical (backward/forward) methods depending on
18640         the 'dir' argument for moves.
18641         * editing/SelectionController.h:
18642         * editing/VisiblePosition.cpp:
18643         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate): Added.
18644         (WebCore::VisiblePosition::left): Added.
18645         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate): Added.
18646         (WebCore::VisiblePosition::right): Added.
18647         * editing/VisiblePosition.h:
18649 2008-04-27  Sam Weinig  <sam@webkit.org>
18651         Reviewed by Maciej Stachowiak.
18653         Fix for <rdar://problem/5893385> Need to provide access to the CanvasRenderingContext2D prototype
18654         Add a JS constructor for CanvasRenderingContext2D.
18656         * html/CanvasRenderingContext2D.idl:
18657         * page/DOMWindow.idl:
18659 2008-04-26  Adam Barth  <hk9565@gmail.com>
18661         Reviewed by Adam Roben and Sam Weinig.
18663         Fixes bug http://bugs.webkit.org/show_bug.cgi?id=17331
18664         Fixes bug http://bugs.webkit.org/show_bug.cgi?id=16848
18665         
18666         Updates postMessage implementation to match HTML 5 specification:
18667         1) Adds origin parameter to postMessage.
18668         2) Removes domain and uri attributes of MessageEvent in favor of
18669            origin attribute.
18671         In order to do this correctly, we need to distinguish between hosts and domains
18672         in the SecurityOrigin class. There are now three ways to compare security origins:
18673         1) isSameSchemeHostPort compares scheme, host, and port, and is used for postMessage
18674         2) equal compares all aspects of the security origin, and is used for hash keys
18675         3) canAccess understands the semantics of schemes such as file:// and data:// URLs,
18676            and should be used for scripting access checks.
18678         Changed SecurityOrigin::toString() to generate identifiers that are suitable for 
18679         being used as a MessageEvent's origin property. In the future, they could be used 
18680         as database string identifiers as well. Re-used KURL parser to parse serialized 
18681         SecurityOrigins.
18683         Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
18684         
18685         Tests: http/tests/security/postMessage/invalid-origin-throws-exception.html
18686                http/tests/security/postMessage/javascript-page-still-sends-origin.html
18687                http/tests/security/postMessage/origin-unaffected-by-base-tag.html
18688                http/tests/security/postMessage/origin-unaffected-by-document-domain.html
18689                http/tests/security/postMessage/target-origin.html
18691         * WebCore.base.exp:
18692         * bindings/js/JSDOMWindowCustom.cpp:
18693         (WebCore::JSDOMWindow::postMessage):
18694         * dom/Document.cpp:
18695         (WebCore::Document::domain):
18696         * dom/MessageEvent.cpp:
18697         (WebCore::MessageEvent::MessageEvent):
18698         (WebCore::MessageEvent::initMessageEvent):
18699         * dom/MessageEvent.h:
18700         (WebCore::MessageEvent::origin):
18701         * dom/MessageEvent.idl:
18702         * html/CanvasRenderingContext2D.cpp:
18703         (WebCore::CanvasRenderingContext2D::checkOrigin):
18704         (WebCore::CanvasRenderingContext2D::createPattern):
18705         * page/DOMWindow.cpp:
18706         (WebCore::DOMWindow::postMessage):
18707         * page/DOMWindow.h:
18708         * page/DOMWindow.idl:
18709         * platform/SecurityOrigin.cpp:
18710         (WebCore::SecurityOrigin::SecurityOrigin):
18711         (WebCore::SecurityOrigin::create):
18712         (WebCore::SecurityOrigin::createForFrame):
18713         (WebCore::SecurityOrigin::copy):
18714         (WebCore::SecurityOrigin::setDomainFromDOM):
18715         (WebCore::SecurityOrigin::canAccess):
18716         (WebCore::SecurityOrigin::isSecureTransitionTo):
18717         (WebCore::SecurityOrigin::toString):
18718         (WebCore::SecurityOrigin::createFromString):
18719         (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
18720         (WebCore::SecurityOrigin::databaseIdentifier):
18721         (WebCore::SecurityOrigin::equal):
18722         (WebCore::SecurityOrigin::isSameSchemeHostPort):
18723         * platform/SecurityOrigin.h:
18724         (WebCore::SecurityOrigin::host):
18725         (WebCore::SecurityOrigin::domain):
18726         * platform/SecurityOriginHash.h:
18727         (WebCore::SecurityOriginTraits::deletedValue):
18728         * storage/DatabaseTracker.cpp:
18729         (WebCore::DatabaseTracker::hasEntryForDatabase):
18730         (WebCore::DatabaseTracker::originPath):
18731         (WebCore::DatabaseTracker::fullPathForDatabase):
18732         (WebCore::DatabaseTracker::populateOrigins):
18733         (WebCore::DatabaseTracker::databaseNamesForOrigin):
18734         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
18735         (WebCore::DatabaseTracker::setDatabaseDetails):
18736         (WebCore::DatabaseTracker::setQuota):
18737         (WebCore::DatabaseTracker::addDatabase):
18738         (WebCore::DatabaseTracker::deleteOrigin):
18739         (WebCore::DatabaseTracker::deleteDatabase):
18741 2008-04-26  Kevin Ollivier  <kevino@theolliviers.com>
18743         wx build fix. Add the AX*ActionVerb functions to the wx build.
18744         
18745         * platform/wx/LocalizedStringsWx.cpp:
18746         (WebCore::AXButtonActionVerb):
18747         (WebCore::AXRadioButtonActionVerb):
18748         (WebCore::AXTextFieldActionVerb):
18749         (WebCore::AXCheckedCheckBoxActionVerb):
18750         (WebCore::AXUncheckedCheckBoxActionVerb):
18751         (WebCore::AXLinkActionVerb):
18753 2008-04-26  Robin Dunn  <robin@alldunn.com>
18755         Reviewed by Kevin Ollivier.
18757         wx build fix. Add needed wx includes for compilation.
18759         https://bugs.webkit.org/show_bug.cgi?id=18758
18761         * platform/wx/FileSystemWx.cpp:
18763 2008-04-26  Anatoli Papirovski  <apapirovski@mac.com>
18765         Reviewed by Dave Hyatt.
18767         Fix for https://bugs.webkit.org/show_bug.cgi?id=18583
18768         WebKit should ignore declarations with a negative value for
18769         line-height and font-size, including in the shorthand font form.
18771         Tests: fast/css/font-size-negative.html
18772                fast/css/line-height-negative.html
18774         * css/CSSParser.cpp:
18775         (WebCore::CSSParser::parseValue):
18776         (WebCore::CSSParser::parseFont):
18778 2008-04-25  Anders Carlsson  <andersca@apple.com>
18780         Reviewed by Sam.
18782         Add empty ApplicationCacheStorage class.
18783         
18784         * WebCore.vcproj/WebCore.vcproj:
18785         * WebCore.xcodeproj/project.pbxproj:
18786         * loader/appcache/ApplicationCacheStorage.cpp: Added.
18787         (WebCore::cacheStorage):
18788         * loader/appcache/ApplicationCacheStorage.h: Added.
18790 2008-04-24  Sam Weinig  <sam@webkit.org>
18792         Reviewed by Geoffrey Garen.
18794         Replace the JSDOMWindow with a new one instead of clearing it.
18796         * bindings/js/JSDOMWindowBase.cpp:
18797         (WebCore::JSDOMWindowBase::clear):
18798         Don't reset the window.
18800         * bindings/js/kjs_proxy.cpp:
18801         (WebCore::KJSProxy::clear):
18802         Replace the current JSDOMWindow stored in the wrapper window
18803         with a new one.
18805         * history/CachedPage.cpp:
18806         (WebCore::CachedPage::CachedPage):
18807         (WebCore::CachedPage::restore):
18808         (WebCore::CachedPage::clear):
18809         * history/CachedPage.h:
18810         Instead of storing the builtins, properties and localstorage in
18811         special holding structs, store the entire JSDOMWindow.
18813         For the case of a page that has no JSDOMWindow before it's first
18814         navigation, has one created while it is in the cache and is then
18815         navigated back, create a new JSDOMWindow to keep the assumption
18816         in JSDOMWindowWrapper that it always has the correct window.
18818         * loader/FrameLoader.cpp:
18819         (WebCore::FrameLoader::clear):
18820         We must clear the DOMWindow first, so that we create a new JSDOMWindow,
18821         it gets a new one.
18823         * page/Frame.cpp:
18824         (WebCore::Frame::clearDOMWindow):
18825         Null out the domWindow so that on the next access, a new one is
18826         created.
18828 2008-04-25  Sam Weinig  <sam@webkit.org>
18830         Reviewed by Mark Rowe.
18832         The EventListeners need to operate and store JSDOMWindows, not JSDOMWrapperWindows.
18834         * bindings/js/JSDOMWindowBase.cpp:
18835         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
18836         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
18837         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
18838         * bindings/js/JSSVGLazyEventListener.cpp:
18839         (WebCore::JSSVGLazyEventListener::JSSVGLazyEventListener):
18840         * bindings/js/JSSVGLazyEventListener.h:
18841         * bindings/js/kjs_events.cpp:
18842         (WebCore::JSAbstractEventListener::handleEvent):
18843         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
18844         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
18845         (WebCore::JSUnprotectedEventListener::window):
18846         (WebCore::JSUnprotectedEventListener::clearWindow):
18847         (WebCore::JSEventListener::JSEventListener):
18848         (WebCore::JSEventListener::~JSEventListener):
18849         (WebCore::JSEventListener::window):
18850         (WebCore::JSEventListener::clearWindow):
18851         (WebCore::JSLazyEventListener::JSLazyEventListener):
18852         (WebCore::JSLazyEventListener::parseCode):
18853         * bindings/js/kjs_events.h:
18854         * bindings/js/kjs_proxy.cpp:
18855         (WebCore::KJSProxy::createHTMLEventHandler):
18856         (WebCore::KJSProxy::createSVGEventHandler):
18858 2008-04-25  Mark Rowe  <mrowe@apple.com>
18860         Rubber-stamped by Sam Weinig.
18862         Add some content to an empty ICU header file to prevent verification errors.
18864         * icu/unicode/utf_old.h:
18866 2008-04-25  Anders Carlsson  <andersca@apple.com>
18868         Fix tyop.
18869         
18870         * loader/DocumentLoader.cpp:
18871         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
18873 2008-04-25  Anders Carlsson  <andersca@apple.com>
18875         Reviewed by Sam.
18877         Add and honor offlineWebApplicationCacheEnabled setting.
18878         
18879         * WebCore.base.exp:
18880         * loader/DocumentLoader.cpp:
18881         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
18882         * loader/MainResourceLoader.cpp:
18883         (WebCore::MainResourceLoader::load):
18884         * loader/appcache/ApplicationCacheGroup.cpp:
18885         (WebCore::ApplicationCacheGroup::selectCache):
18886         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
18887         * page/Settings.cpp:
18888         (WebCore::Settings::Settings):
18889         (WebCore::Settings::setOfflineWebApplicationCacheEnabled):
18890         * page/Settings.h:
18891         (WebCore::Settings::offlineWebApplicationCacheEnabled):
18893 2008-04-25  Anders Carlsson  <andersca@apple.com>
18895         Reviewed by Adam.
18897         <rdar://problem/5629139>
18898         PluginInfoStoreWin needs to implement pluginNameForMIMEType().
18899         
18900         * plugins/PluginInfoStore.cpp:
18901         (WebCore::PluginInfoStore::pluginNameForMIMEType):
18903 2008-04-25  Tor Arne Vestbø  <tavestbo@trolltech.com>
18905         Reviewed by Simon.
18907         Respect antialiasing hint when drawing focus rects.
18909         * platform/graphics/qt/GraphicsContextQt.cpp:
18910         (WebCore::GraphicsContext::drawFocusRing):
18912 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
18914         Reviewed by Simon.
18916         networking: Use Qt::QueuedConnection in QNetworkReplyHandler
18918         Make sure we leave the networking backend before calling
18919         into WebCore. Otheriwse we might return to the networking
18920         backend when it is already deleted.
18922         * platform/network/qt/QNetworkReplyHandler.cpp:
18923         (WebCore::FormDataIODevice::setParent):
18924         (WebCore::QNetworkReplyHandler::start):
18926 2008-04-25  Tor Arne Vestbø  <tavestbo@trolltech.com>
18928         Reviewed by Simon.
18930         Fix propagation of mouse double click events.
18932         Treat a mouse double click as a regular mouse press with just a different click count.
18934         * platform/qt/PlatformMouseEventQt.cpp:
18935         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
18937 2008-04-25  Tor Arne Vestbø  <tavestbo@trolltech.com>
18939         Reviewed by Simon.
18941         Fixes: Fix strange button sizes (push, radio, and check) in QtWebKit.
18943         We now use pixel metrics instead of fixed sizes for the
18944         button margins, or if the style supports layout rects we
18945         use the delta between the content rect and the layout rect.
18947         In adition we compensate for the difference between the size
18948         for content and the actual layout rect (if supported) by
18949         reporting back the layout rect to WebKit for page layout,
18950         and then inflating the rect we actually paint to.
18952         * platform/qt/RenderThemeQt.cpp:
18953         (WebCore::StylePainter::StylePainter):
18954         (WebCore::StylePainter::~StylePainter):
18955         (WebCore::RenderThemeQt::RenderThemeQt):
18956         (WebCore::inflateButtonRect):
18957         (WebCore::RenderThemeQt::adjustRepaintRect):
18958         (WebCore::RenderThemeQt::isControlStyled):
18959         (WebCore::computeSizeBasedOnStyle):
18960         (WebCore::RenderThemeQt::setCheckboxSize):
18961         (WebCore::RenderThemeQt::paintCheckbox):
18962         (WebCore::RenderThemeQt::setRadioSize):
18963         (WebCore::RenderThemeQt::adjustButtonStyle):
18964         (WebCore::RenderThemeQt::setButtonSize):
18965         (WebCore::RenderThemeQt::setButtonPadding):
18966         (WebCore::RenderThemeQt::paintButton):
18967         (WebCore::RenderThemeQt::adjustMenuListStyle):
18968         (WebCore::RenderThemeQt::setPopupPadding):
18969         (WebCore::RenderThemeQt::paintMenuList):
18970         * platform/qt/RenderThemeQt.h:
18972 2008-04-25  Benjamin Meyer  <bmeyer@trolltech.com>
18974         Reviewed by Holger.
18976         Fixes: Valgrind warnings about uninitilized variables used in jumps
18978         * rendering/RenderText.cpp:
18979         (WebCore::RenderText::trimmedPrefWidths):
18981 2008-04-25  Warwick Allison  <warwick@trolltech.com>
18983         Reviewed by Simon.
18985         Added simple getter function to PlatformScrollBar to return the
18986         maximum value. Needed in the WebKit/qt API.
18988         * platform/qt/PlatformScrollBar.h:
18990 2008-04-25  Benjamin Meyer  <bmeyer@trolltech.com>
18992         Reviewed by Holger, Simon.
18994         Implement NoDrop, ZoomIn, and ZoomOut cursors
18996         * Resources/WebKitResources.qrc:
18997         * platform/qt/CursorQt.cpp:
18998         (WebCore::noDropCursor):
18999         (WebCore::notAllowedCursor):
19000         (WebCore::zoomInCursor):
19001         (WebCore::zoomOutCursor):
19003 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
19005         Reviewed by Simon.
19007         Handle the ListboxAppearance as 'TextField' as well. We are mainly interested in the background.
19009         RenderBox will call us to paint the outline/background, it is handled the same as a
19010         TextAreaAppearance in RenderTheme, handle it the same in the RenderThemeQt
19012         * platform/qt/RenderThemeQt.cpp:
19013         (WebCore::RenderThemeQt::paintTextField):
19015 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
19017         Reviewed by Simon.
19019         No reason to exit the application when we can not paint something. Replace the Q_ASSERT
19020         with a runtime check. Return true to indicate that we did not handle the painting
19021         of this element.
19023         * platform/qt/RenderThemeQt.cpp:
19024         (WebCore::RenderThemeQt::paintTextField):
19026 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
19028         Reviewed by Simon.
19030         Correct the comment. We are in painTextField and don't paint a button.
19032         * platform/qt/RenderThemeQt.cpp:
19033         (WebCore::RenderThemeQt::paintTextField):
19035 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
19037         Reviewed by Simon.
19039         Allow ListboxAppearance to take focus as well. Stolen from Tor Arne
19041         * platform/qt/RenderThemeQt.cpp:
19042         (WebCore::RenderThemeQt::supportsFocus):
19044 2008-04-25  Simon Hausmann  <hausmann@webkit.org>
19046         Reviewed by Holger.
19048         Remove debug output.
19050         * platform/network/qt/ResourceHandleQt.cpp:
19051         (WebCore::ResourceHandle::loadResourceSynchronously):
19053 2008-04-25  Holger Hans Peter Freyther  <zecke@selfish.org>
19055         Reviewed by Simon.
19057         Change the string for searchableIndexIntroduction() to match the mac
19058         and pass http/tests/misc/isindex-formdata.html
19060         * platform/qt/Localizations.cpp:
19062 2008-04-25  Simon Hausmann  <hausmann@webkit.org>
19064         Reviewed by Holger.
19066         When we encounter a new/unknown HTTP request type report it back to WebCore as loading error.
19068         * platform/network/qt/QNetworkReplyHandler.cpp:
19069         (WebCore::QNetworkReplyHandler::start):
19071 2008-04-25  Benjamin Meyer  <bmeyer@trolltech.com>
19073         Reviewed by Simon.
19075         Fix crash in the networking layer.
19077         Set the m_reply to null right after calling deleteLater().
19079         * platform/network/qt/QNetworkReplyHandler.cpp:
19080         (WebCore::QNetworkReplyHandler::finish):
19082 2008-04-24  Mark Rowe  <mrowe@apple.com>
19084         Rubber-stamped by Oliver Hunt.
19086         * WebCore.base.exp: Remove two symbols from the export list that don't need to be exported.
19088 2008-04-24  Dan Bernstein  <mitz@apple.com>
19090         Reviewed by Dave Hyatt.
19092         - fix https://bugs.webkit.org/show_bug.cgi?id=18722
19093           <rdar://problem/5888360> REGRESSION (3.1 -> TOT): Webkit Nightly Build crashes when visiting i has a hotdog
19095         Test: fast/dynamic/float-remove-above-line.html
19097         * rendering/bidi.cpp:
19098         (WebCore::RenderBlock::layoutInlineChildren): Avoid adding floats that
19099         do not intrude into the line to its floats vector. When such floats go
19100         away, they do not dirty the line (because they do not intersect with it)
19101         and having it keep them in its floats vector is what caused the crash.
19103 2008-04-24  Justin Garcia  <justin.garcia@apple.com>
19105         Reviewed by John Sullivan.
19106         
19107         It is possible, despite our safeguards, for createMarkup to iterate past the end of the Range
19108         that is passed to it.  Added a null check to prevent crashes in this situation (we won't crash but
19109         we will create too much markup), and added an ASSERT to hopefully catch the scenario in a debugger 
19110         and help us understand what's going on.
19112         * editing/markup.cpp:
19113         (WebCore::createMarkup):
19115 2008-04-24  Mark Rowe  <mrowe@apple.com>
19117         Reviewed by Sam Weinig.
19119         Remove code for calculating the glyph cache size.
19121         * WebCore.base.exp: Remove unused symbol.
19122         * platform/graphics/mac/FontCacheMac.mm: Remove code that is unused now that we do not compute the glyph cache size.
19123         * platform/mac/WebCoreSystemInterface.h: Remove unused symbol.
19124         * platform/mac/WebCoreSystemInterface.mm: Ditto.
19126 2008-04-24  Mark Rowe  <mrowe@apple.com>
19128         Reviewed by Sam Weinig.
19130         Add a definition of BUILDING_ON_LEOPARD to complement BUILDING_ON_TIGER.
19132         * WebCorePrefix.h:
19134 2008-04-24  Cameron McCormack  <cam@mcc.id.au>
19136         Reviewed by Maciej Stachowiak.
19138         Ensure that changes to rx="" and ry="" attributes on an SVG <rect>
19139         element cause a relayout.
19141         Test: svg/dom/SVGRectElement/rect-modify-rx.svg
19143         * svg/SVGRectElement.cpp:
19144         (WebCore::SVGRectElement::svgAttributeChanged): Call needsLayout()
19145         when the attribute is rx or ry.
19146         (WebCore::SVGRectElement::hasRelativeValues): Return true when the
19147         attribute is rx or ry, since they also can have relative values.
19149 2008-04-24  Adam Barth  <hk9565@gmail.com>
19151         Reviewed by Sam Weinig.
19153         Update the XMLHttpRequest header black list to match the spec.
19155         * xml/XMLHttpRequest.cpp:
19156         (WebCore::isSafeRequestHeader):
19158 2008-04-22  Feng Qian  <ian.eng.webkit@gmail.com>
19160         Reviewed by Geoff Garen.
19162         Fix https://bugs.webkit.org/show_bug.cgi?id=18677
19163         Bug 18677: Synchronous event dispatch confuses the popup blocker into incorrectly blocking chat popups in gmail.com.
19165         Test: fast/events/nested-window-event.html
19167         * bindings/js/kjs_events.cpp:
19168         (WebCore::JSAbstractEventListener::handleEvent): Save and restore the current event around the event dispatch.
19170 2008-04-24  Brady Eidson  <beidson@apple.com>
19172         Reviewed by Teh Mitzpettel
19174         Make it so PageGroups know what their own name is.
19176         * WebCore.base.exp:
19178         * page/Page.cpp:
19179         (WebCore::Page::setGroupName):
19180         (WebCore::Page::groupName):
19181         * page/Page.h:
19183         * page/PageGroup.cpp: Move the PageGroupMap into the PageGroup class.
19184         (WebCore::PageGroup::PageGroup): Added a c'tor that takes the group name as an argument instead of
19185           the initial Page.
19186         (WebCore::PageGroup::pageGroup): Handles creating and mapping names to groups
19187         * page/PageGroup.h:
19188         (WebCore::PageGroup::name):
19190 2008-04-24  Adele Peterson  <adele@apple.com>
19192         Reviewed by Darin.
19194         Consolidate two versions of pathGetFileName.
19196         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Call FileSystem.h version of pathGetFileName and removed the static helper function.
19197         * platform/posix/FileSystemPOSIX.cpp: (WebCore::pathGetFileName): Moved general case from HTMLFormElement version here.
19198           If other platforms relied on that default they should implement this function for their platform specific version of FileSystem.cpp
19199         * platform/win/FileSystemWin.cpp: (WebCore::pathGetFileName): Moved win implementation from HTMLFormElement here.
19200         * platform/wx/FileSystemWx.cpp: (WebCore::pathGetFileName): Moved wx implementation from HTMLFormElement here.
19202 2008-04-24  Anders Carlsson  <andersca@apple.com>
19204         Windows build fix.
19205         
19206         * html/HTMLFormElement.cpp:
19207         (WebCore::pathGetFilename):
19209 2008-04-24  Anders Carlsson  <andersca@apple.com>
19211         Don't crash when the string is empty.
19212         
19213         * html/HTMLMediaElement.cpp:
19214         (WebCore::parseTimeOffset):
19216 2008-04-24  Dan Bernstein  <mitz@apple.com>
19218         Reviewed by Darin Adler.
19220         - preparation for https://bugs.webkit.org/show_bug.cgi?id=3729
19221           <rdar://problem/4036353> REGRESSION: arrow keys move insertion bar backwards in RTL text
19223         The three main changes in this patch are:
19225         1) Making all inline boxes know their bidi level, instead of just text
19226            boxes knowing whether their bidi level is odd or even. This is
19227            required for the next change.
19229         2) Replacing RenderObject::inlineBox() with
19230            Position::getInlineBoxAndOffset() in recognition of the fact that the
19231            inline box containing the primary caret for a position in a given
19232            node may belong to a different node's renderer.
19234         3) Changing RenderObject::caretRect() to take an InlineBox parameter,
19235            and changing callers to call VisiblePosition::caretRect(), which
19236            locates the inline box, then calls caretRect() on the renderer for
19237            that box. This, combined with the previous change, ensures that the
19238            primary caret is rendered at the right place for positions that
19239            lie on a directionality boundary.
19241         Test: platform/mac/editing/input/caret-primary-bidi.html
19243         * WebCore.base.exp: Added the VisiblePosition(Node*, int, EAffinity)
19244         constructor and VisiblePosition::caretRect(), and sorted.
19246         * dom/Position.cpp:
19247         (WebCore::nextRenderedEditable): Adjusted for the removal of
19248         RenderObject::inlineBox().
19249         (WebCore::previousRenderedEditable): Ditto.
19250         (WebCore::Position::rendersInDifferentPosition): Ditto.
19251         (WebCore::Position::getInlineBoxAndOffset): Added. Gets the inline box
19252         and the offset within that box at which the primary caret for this
19253         position should render.
19255         * dom/Position.h:
19257         * editing/DeleteSelectionCommand.cpp:
19258         (WebCore::DeleteSelectionCommand::mergeParagraphs): Changed to call
19259         VisiblePosition::caretRect() instead of calling the RenderObject method.
19261         * editing/SelectionController.cpp:
19262         (WebCore::caretY): Ditto.
19263         (WebCore::SelectionController::xPosForVerticalArrowNavigation): Ditto.
19264         (WebCore::SelectionController::layout): Ditto.
19266         * editing/VisiblePosition.cpp:
19267         (WebCore::VisiblePosition::caretRect): Changed to call
19268         getInlineBoxAndOffset() to get the correct inline box and call the
19269         renderer for that box.
19271         * editing/VisiblePosition.h:
19272         (WebCore::VisiblePosition::getInlineBoxAndOffset): Added convenience
19273         methods for getting the inline box and caret offset for a visible
19274         position, accounting for its affinity.
19276         * editing/visible_units.cpp:
19277         (WebCore::rootBoxForLine): Changed to use getInlineBoxAndOffset()
19278         instead of RenderObject::inlineBox().
19279         (WebCore::startPositionForLine):
19280         (WebCore::endPositionForLine):
19281         (WebCore::previousLinePosition): Ditto.
19282         (WebCore::nextLinePosition): Ditto.
19284         * page/AccessibilityObject.cpp:
19285         (WebCore::updateAXLineStartForVisiblePosition): Ditto.
19287         * page/Frame.cpp:
19288         (WebCore::Frame::firstRectForRange): Ditto.
19290         * rendering/InlineBox.cpp:
19291         (WebCore::InlineBox::caretMinOffset): Changed to forward to the
19292         renderer.
19293         (WebCore::InlineBox::caretMaxOffset): Ditto.
19294         * rendering/InlineBox.h: Replaced the m_reversed bit, intended for use
19295         in InlineTextBox only, with six bits of the bidi level of the box,
19296         intended for use in all leaf inline boxes.
19297         (WebCore::InlineBox::InlineBox): Added missing initializer for
19298         m_dirOverride and initialized the bidi level.
19299         (WebCore::InlineBox::bidiLevel): Added this accessor.
19300         (WebCore::InlineBox::setBidiLevel): Ditto.
19301         (WebCore::InlineBox::direction): Ditto.
19302         (WebCore::InlineBox::caretLeftmostOffset): Added this convenience
19303         method.
19304         (WebCore::InlineBox::caretRightmostOffset): Ditto.
19306         * rendering/InlineTextBox.cpp: Replaced all references to m_reversed
19307         with checking of direction().
19308         (WebCore::InlineTextBox::selectionRect):
19309         (WebCore::InlineTextBox::placeEllipsisBox):
19310         (WebCore::InlineTextBox::paint):
19311         (WebCore::InlineTextBox::paintSelection):
19312         (WebCore::InlineTextBox::paintCompositionBackground):
19313         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
19314         (WebCore::InlineTextBox::paintTextMatchMarker):
19315         (WebCore::InlineTextBox::textPos):
19316         (WebCore::InlineTextBox::offsetForPosition):
19317         (WebCore::InlineTextBox::positionForOffset):
19319         * rendering/RenderBR.cpp: Removed inlineBox().
19320         * rendering/RenderBR.h: Ditto.
19322         * rendering/RenderBox.cpp:
19323         (WebCore::RenderBox::caretRect): Changed to take an inline box and
19324         account for the direction of the box (or the renderer) in positioning
19325         the caret: in right-to-left boxes, the "before" position is to the right
19326         while "after" is to the left.
19327         * rendering/RenderBox.h:
19329         * rendering/RenderFlow.cpp:
19330         (WebCore::RenderFlow::caretRect): Updated the signature.
19331         * rendering/RenderFlow.h:
19333         * rendering/RenderObject.cpp:
19334         (WebCore::RenderObject::caretRect): Updated the signature.
19335         (WebCore::RenderObject::caretMaxOffset): Changed to return the child
19336         node count (or 1 if there are no children) for replaced elements, such
19337         as <select>s.
19338         * rendering/RenderObject.h:
19340         * rendering/RenderReplaced.cpp: Removed caretMinOffset() and
19341         caretMaxOffset() because the base class implementation does the right
19342         thing for replaced objects now.
19343         * rendering/RenderReplaced.h:
19345         * rendering/RenderSVGInlineText.cpp:
19346         (WebCore::RenderSVGInlineText::caretRect): Updated the signature.
19347         (WebCore::RenderSVGInlineText::positionForCoordinates): Updated for
19348         the change from m_reversed to direction().
19349         * rendering/RenderSVGInlineText.h:
19351         * rendering/RenderText.cpp:
19352         (WebCore::RenderText::caretRect): Changed to take an inline box and
19353         removed the code that used to find the inline for the given position.
19354         Changed use of m_reversed to use direction().
19355         (WebCore::RenderText::position): Changed use of m_reversed to use
19356         direction().
19357         * rendering/RenderText.h:
19359         * rendering/RenderTextControl.cpp:
19360         (WebCore::RenderTextControl::textWithHardLineBreaks): Adjusted for the
19361         removal of RenderObject::inlineBox().
19363         * rendering/RenderTreeAsText.cpp:
19364         (WebCore::writeTextRun): Changed to use direction() instead of
19365         m_reversed.
19367         * rendering/SVGInlineTextBox.cpp: Ditto.
19368         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
19369         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
19370         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
19372         * rendering/SVGRenderTreeAsText.cpp: Ditto.
19373         (WebCore::writeSVGInlineTextBox):
19375         * rendering/SVGRootInlineBox.cpp: Ditto.
19376         (WebCore::svgTextRunForInlineTextBox):
19377         (WebCore::cummulatedWidthOrHeightOfTextChunk):
19378         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
19380         * rendering/bidi.cpp:
19381         (WebCore::RenderBlock::constructLine): Made this function set the
19382         bidi level on all leaf boxes.
19384         * svg/SVGTextContentElement.cpp: Changed to use direction() instead of
19385         m_reversed.
19386         (WebCore::cumulativeCharacterRangeLength):
19387         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
19389 2008-04-24  Sam Weinig  <sam@webkit.org>
19391         Fix the world.
19393         * bindings/js/kjs_proxy.cpp:
19394         (WebCore::KJSProxy::clear):
19396 2008-04-24  Darin Adler  <darin@apple.com>
19398         Reviewed by Geoff.
19400         - fix crash in regression test where we'd ask a frame for a user agent string
19401           after the WebView was already closed
19403         * loader/FrameLoader.cpp:
19404         (WebCore::FrameLoader::scheduleHTTPRedirection): Quietly do nothing if this is
19405         called on a frame that's already detached from its page.
19406         (WebCore::FrameLoader::scheduleLocationChange): Ditto.
19407         (WebCore::FrameLoader::scheduleRefresh): Ditto.
19408         (WebCore::FrameLoader::scheduleHistoryNavigation): Ditto.
19409         (WebCore::FrameLoader::redirectionTimerFired): Assert that this is never called
19410         for a frame that's already detached from its page.
19411         (WebCore::FrameLoader::scheduleRedirection): Ditto.
19412         (WebCore::FrameLoader::startRedirectionTimer): Ditto.
19414 2008-04-23  Timothy Hatcher  <timothy@apple.com>
19416         Add a new callFunction helper function to remove duplicate code
19417         for calling JavaScript functions with arguments.
19419         Reviewed by Darin Adler.
19421         * page/InspectorController.cpp:
19422         (WebCore::InspectorController::callSimpleFunction): Call callFunction.
19423         (WebCore::InspectorController::callFunction): Extended version of the original
19424         callSimpleFunction, with script function arguments and an exception argument.
19425         (WebCore::InspectorController::focusNode): Use callFunction.
19426         (WebCore::InspectorController::addScriptResource): Ditto.
19427         (WebCore::InspectorController::removeScriptResource): Ditto.
19428         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
19429         (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
19430         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
19431         * page/InspectorController.h: Add callFunction.
19433 2008-04-24  Anders Carlsson  <andersca@apple.com>
19435         Reviewed by Sam.
19437         Change some String arguments to be const references instead.
19438         
19439         * css/CSSRule.cpp:
19440         (WebCore::CSSRule::setCssText):
19441         * css/CSSRule.h:
19442         * html/HTMLFormElement.cpp:
19443         (WebCore::pathGetFilename):
19444         * html/HTMLMediaElement.cpp:
19445         (WebCore::parseTimeOffset):
19446         * page/EditorClient.h:
19447         * platform/SecurityOrigin.cpp:
19448         (WebCore::isDefaultPortForProtocol):
19449         * platform/graphics/MediaPlayer.cpp:
19450         (WebCore::MediaPlayer::load):
19451         * platform/graphics/MediaPlayer.h:
19452         * rendering/MediaControlElements.cpp:
19453         (WebCore::MediaControlInputElement::MediaControlInputElement):
19454         * rendering/MediaControlElements.h:
19455         * svg/animation/SVGSMILElement.cpp:
19456         (WebCore::SVGSMILElement::Condition::Condition):
19457         * svg/animation/SVGSMILElement.h:
19458         * svg/graphics/SVGImageEmptyClients.h:
19459         (WebCore::SVGEmptyEditorClient::shouldInsertText):
19460         * xml/XSLTProcessor.cpp:
19461         (WebCore::createFragmentFromSource):
19463 2008-04-24  Justin Garcia  <justin.garcia@apple.com>
19465         Reviewed by Darin Adler.
19467         <rdar://problem/5604313> FormatBlock to apply an h1 also inserts a style span around the first letter (16004)
19468         
19469         * editing/TextIterator.cpp:
19470         (WebCore::TextIterator::advance): We emit an extra newline when leaving a
19471         block element that has atypical margin/padding. When we emit the extra newline, 
19472         it needs to be positioned after that block's contents, not after the block. 
19473         This is how we position the first newline, too, since the range for emitted newlines 
19474         should start where the line break begins visually.
19476 2008-04-24  Anders Carlsson  <andersca@apple.com>
19478         Reviewed by Adam.
19480         Only avoid implicit entries when doing the initial caching.
19481         
19482         * loader/appcache/ApplicationCacheGroup.cpp:
19483         (WebCore::ApplicationCacheGroup::didReceiveResponse):
19484         (WebCore::ApplicationCacheGroup::startLoadingEntry):
19486 2008-04-24  Kevin McCullough  <kmccullough@apple.com>
19488         Reviewed by Adam and Sam.
19490         -<rdar://problem/5770054> JavaScript profiler (10928)
19491         -Only profile the page group that starts profiling to avoid profiling
19492         tools that shouldn't be profiled unless explicitly requested to.
19494         * bindings/js/kjs_proxy.cpp: When a new global object is created set its
19495         page group identifier.
19496         (WebCore::KJSProxy::clear):
19497         (WebCore::KJSProxy::initScript):
19498         * page/Console.cpp: When calling console.profile set the identifier of
19499         the page group being profiled.
19500         (WebCore::Console::profile):
19501         * page/PageGroup.cpp: Implement unique identifiers.
19502         (WebCore::getUniqueIdentifier):
19503         (WebCore::PageGroup::PageGroup):
19504         * page/PageGroup.h: Ditto.
19505         (WebCore::PageGroup::identifier):
19507 2008-04-24  John Sullivan  <sullivan@apple.com>
19509         Mac buid fix
19511         * page/mac/WebCoreViewFactory.h:
19512         add declarations of six new AX methods that were added to LocalizedStrings.h
19513         
19514         * platform/mac/LocalizedStringsMac.mm:
19515         (WebCore::AXButtonActionVerb):
19516         implement by calling through to WebCoreViewFactory as we do with the other functions here
19517         (WebCore::AXRadioButtonActionVerb):
19518         ditto
19519         (WebCore::AXTextFieldActionVerb):
19520         ditto
19521         (WebCore::AXCheckedCheckBoxActionVerb):
19522         ditto
19523         (WebCore::AXUncheckedCheckBoxActionVerb):
19524         ditto
19525         (WebCore::AXLinkActionVerb):
19526         ditto
19528 2008-04-24  Simon Hausmann  <hausmann@webkit.org>
19530         Rubber-stamped by Lars
19532         Fix text rendering in -reverse mode on Qt/Mac.
19534         For Font::width() don't use a plain QFontMetrics object but also the properly
19535         setup QTextLayout that has the RTL/LTR force flags set.
19537         * platform/graphics/qt/FontQt.cpp:
19538         (WebCore::Font::width):
19540 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
19542         Reviewed by Simon.
19544         Don't do anti-aliasing for arcs, lines and rects, but continue to anti-alias
19545         all drawing primitives in the HTML Canvas element.
19547         This speeds up drawing of dashed outlines significantly.
19549         Also preserve the anti-aliasing renderhint for transparency layers and
19550         get rid of the mostly unused device pointer.
19552         * platform/graphics/qt/GraphicsContextQt.cpp:
19553         (WebCore::TransparencyLayer::TransparencyLayer):
19554         (WebCore::GraphicsContextPlatformPrivate::p):
19555         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
19556         (WebCore::GraphicsContext::beginTransparencyLayer):
19557         (WebCore::GraphicsContext::drawRect):
19558         (WebCore::GraphicsContext::drawLine):
19559         (WebCore::GraphicsContext::strokeArc):
19561 2008-04-24  Paul Olav Tvete <paul@trolltech.com>
19563         Reviewed by Simon.
19565         Fix various compiler warnings related to QString(const char *)
19566         construction by using QLatin1String.
19568         * bridge/qt/qt_instance.cpp:
19569         (KJS::Bindings::QtField::valueFromInstance):
19570         (KJS::Bindings::QtField::setValueToInstance):
19571         * dom/XMLTokenizer.cpp:
19572         * platform/graphics/qt/PathQt.cpp:
19573         (WebCore::Path::debugString):
19575 2008-04-24  Morten Johan Sørvig  <msorvig@trolltech.com>
19577         Reviewed by Simon.
19579         Work around QMacStyle bug in repainting the vertical scrollbar.
19581         We draw the scrollbar using HITheme but somehow the translation and the
19582         clipping we previously set using ClipCGContextToRegion is ignored. Drawing
19583         without the translation fixes the clip.
19585         * platform/qt/PlatformScrollBarQt.cpp:
19586         (WebCore::PlatformScrollbar::paint):
19588 2008-04-24  Holger Hans Peter Freyther  <zecke@selfish.org>
19590         Reviewed by Simon.
19592         * Set an expiration date for local files as we do not know what will happen
19593         to these files (in contrast to a http server with max-age and other headers)
19594         * Remember the time when we started the job and use that for the expiration date
19595         * QNetworkManager does not handle expiration at all, we might want to set the
19596         expiration for all downloads but this will be a performance nightmare.
19598         * platform/network/qt/QNetworkReplyHandler.cpp:
19599         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
19600         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
19601         (WebCore::QNetworkReplyHandler::start):
19602         * platform/network/qt/QNetworkReplyHandler.h:
19604 2008-04-24  Simon Hausmann  <hausmann@webkit.org>
19606         Fix the Gtk and Qt builds.
19608         Added missing localization stubs for accessibility.
19610         * platform/gtk/LocalizedStringsGtk.cpp:
19611         (WebCore::AXButtonActionVerb):
19612         (WebCore::AXRadioButtonActionVerb):
19613         (WebCore::AXTextFieldActionVerb):
19614         (WebCore::AXCheckedCheckBoxActionVerb):
19615         (WebCore::AXUncheckedCheckBoxActionVerb):
19616         (WebCore::AXLinkActionVerb):
19617         * platform/qt/Localizations.cpp:
19618         (WebCore::AXButtonActionVerb):
19619         (WebCore::AXRadioButtonActionVerb):
19620         (WebCore::AXTextFieldActionVerb):
19621         (WebCore::AXCheckedCheckBoxActionVerb):
19622         (WebCore::AXUncheckedCheckBoxActionVerb):
19623         (WebCore::AXLinkActionVerb):
19625 2008-04-24  Olivier Goffart  <ogoffart@trolltech.com>
19627         Reviewed by Simon
19629         Fix various compiler warnings in the Qt port.
19631         * platform/graphics/qt/ImageQt.cpp:
19632         (loadResourcePixmap):
19633         * platform/qt/CookieJarQt.cpp:
19634         (WebCore::cookies):
19635         * platform/qt/ScrollViewQt.cpp:
19636         (WebCore::ScrollView::wheelEvent):
19637         * plugins/qt/PluginDataQt.cpp:
19638         (WebCore::PluginData::initPlugins):
19640 2008-04-24  Andre Poenitz  <andre.poenitz@trolltech.com>
19642         Reviewed by Simon.
19644         Removed spurious QHideEvent forward declaration.
19646         * platform/qt/QWebPopup.h:
19648 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
19650         Reviewed by Simon.
19652         Render text areas using Qt (ensures proper style).
19654         * platform/qt/RenderThemeQt.cpp:
19655         (WebCore::RenderThemeQt::paintTextField):
19656         (WebCore::RenderThemeQt::adjustTextFieldStyle):
19657         (WebCore::RenderThemeQt::paintTextArea):
19658         (WebCore::RenderThemeQt::supportsFocus):
19659         * platform/qt/RenderThemeQt.h:
19661 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
19663         Reviewed by Simon.
19665         Make mouse wheel events over scrollbars behave the same as in Qt, i.e. both
19666         horizontal and vertical wheel events will scroll the view in the orientation
19667         of the scrollbar underneath the cursor.
19669         * platform/qt/ScrollViewQt.cpp:
19670         (WebCore::ScrollView::paint):
19671         (WebCore::ScrollView::wheelEvent):
19673 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
19675         Reviewed by Brady.
19677         * page/AccessibilityObject.cpp:
19678         (WebCore::AccessibilityObject::press): Return false if this object
19679         doesn't have an action element associated with it.
19680         * page/AccessibilityObject.h: Added a performDefaultAction() method,
19681         which just calls press(). Marked press() const and changed its return
19682         type to bool.
19684 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
19686         Reviewed by Adam.
19688         Don't allow a hit test to return an AccessibilityObject that should be
19689         ignored.
19691         * page/AccessibilityObject.cpp:
19692         (WebCore::AccessibilityObject::doAccessibilityHitTest): If this result
19693         object's accessibility is ignored, return the parent unignored object.
19695 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
19697         Reviewed by Adam.
19699         Fix a crash when performing a hit test on an AccessibilityObject with
19700         no layer (e.g., an AccessibilityObject for a RenderText object).
19702         * page/AccessibilityObject.cpp:
19703         (WebCore::AccessibilityObject::doAccessibilityHitTest): Added a null
19704         check for layer. Removed a null check for m_renderer, which shouldn't
19705         occur.
19707 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
19709         * page/AccessibilityObject.cpp:
19710         (WebCore::AccessibilityObject::boundingBoxRect): Added FIXME about this
19711         method not working correctly for objects with CSS transforms applied.
19713 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
19715         Reviewed by Adam.
19717         Implement contentsToScreen() and screenToContents() on Windows.
19719         * platform/ScrollView.h: Make these declarations conditional on
19720         HAVE(ACCESSIBILITY) instead of PLATFORM(MAC).
19721         * platform/win/ScrollViewWin.cpp:
19722         (WebCore::ScrollView::contentsToScreen): Translate from coordinates
19723         relative to the ScrollView to coordinates relative to the screen. Do
19724         this by getting the offset of the ScrollView in screen coordinates and
19725         moving the rect by this amount.
19726         (WebCore::ScrollView::screenToContents): Translate from coordinates
19727         relative to the screen to coordinates relative to the ScrollView.
19729 2008-04-23  Jon Honeycutt  <jhoneycutt@apple.com>
19731         Reviewed by Oliver.
19733         Add a method to get a localized, human-readable string stating this
19734         object's default action, e.g., a button's default action is "press."
19736         * page/AccessibilityObject.cpp:
19737         (WebCore::AccessibilityObject::actionVerb): Added.
19738         * page/AccessibilityObject.h: Added declaration for actionVerb().
19739         * platform/LocalizedStrings.h: Added declarations for:
19740             AXButtonActionVerb()
19741             AXRadioButtonActionVerb()
19742             AXTextFieldActionVerb()
19743             AXCheckedCheckBoxActionVerb()
19744             AXUncheckedCheckBoxActionVerb()
19745             AXLinkActionVerb()
19747 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
19749         Reviewed by Simon.
19751         Cleaned up copyright headers in the Qt port (removed misplaced class
19752         descriptions and fixed inconsistent whitespace and indentation).
19754         * platform/graphics/qt/FontQt.cpp:
19755         * platform/qt/WheelEventQt.cpp:
19757 2008-04-24  Tor Arne Vestbø  <tavestbo@trolltech.com>
19759         Reviewed by Simon.
19761         Disable vanlilla focus rings since Qt provides this as part of the style.
19763         * platform/qt/RenderThemeQt.cpp:
19765 2008-04-24  George Staikos  <george@staikos.net>
19767         Reviewed by Simon.
19769         This optimization in BitmapImage::drawPattern for the identity
19770         transform is bogus and causes incorrect results on sites like youtube.
19772         * platform/graphics/qt/ImageQt.cpp:
19773         (WebCore::BitmapImage::drawPattern):
19775 2008-04-23  Brady Eidson  <beidson@apple.com>
19777         Reviewed by Jon Honeycutt
19779         Preparing for making LocalStorageAreas persistent.
19781         Since LocalStorageAreas will need to do a lot of additional work for each of the basic
19782         operations a Storage object supports, this patch makes the API entry points virtual so
19783         LocalStorageArea can override them.  The behavior for both Local and Session StorageAreas
19784         is unchanged with this patch, but LocalStorageArea will override them in the future.
19786         * storage/StorageArea.cpp: Rename the implementations to internalFoo
19787         (WebCore::StorageArea::internalLength):
19788         (WebCore::StorageArea::internalKey):
19789         (WebCore::StorageArea::internalGetItem):
19790         (WebCore::StorageArea::internalSetItem):
19791         (WebCore::StorageArea::internalRemoveItem):
19792         (WebCore::StorageArea::internalContains):
19794         * storage/StorageArea.h: Call internalFoo variants
19795         (WebCore::StorageArea::length):
19796         (WebCore::StorageArea::key):
19797         (WebCore::StorageArea::getItem):
19798         (WebCore::StorageArea::setItem):
19799         (WebCore::StorageArea::removeItem):
19800         (WebCore::StorageArea::contains):
19802 2008-04-23  David Hyatt  <hyatt@apple.com>
19804         Implement getComputedStyle for border-image.
19806         Reviewed by Dan Bernstein
19808         Added fast/css/getComputedStyle-border-image.html
19810         * css/CSSComputedStyleDeclaration.cpp:
19811         (WebCore::valueForRepeatRule):
19812         (WebCore::valueForNinePieceImage):
19813         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
19815 2008-04-22  Darin Adler  <darin@apple.com>
19817         Reviewed by Anders.
19819         - simplify use of HashTraits to prepare for some upcoming hash table changes
19821         * page/AXObjectCache.h: Removed uneeded AXIDHashTraits, which are no different
19822         from the default hash traits for unsigned.
19823         * page/mac/AXObjectCacheMac.mm:
19824         (WebCore::AXObjectCache::removeAXID): Remove assertion that's already done
19825         by HashTable that the value is not the deleted value.
19827         * platform/graphics/StringTruncator.cpp: Removed unneeded include.
19828         * svg/SVGFontFaceElement.cpp: Removed unneeded include.
19830 2008-04-23  Kevin Ollivier  <kevino@theolliviers.com>
19832         wx build fixes. Changing BackgroundLayer -> FillLayer and adding
19833         Frame::disconnectPlatformScriptObjects().
19835         * platform/wx/RenderThemeWx.cpp:
19836         (WebCore::RenderThemeWx::isControlStyled):
19837         * platform/wx/TemporaryLinkStubs.cpp:
19838         (Frame::disconnectPlatformScriptObjects):
19840 2008-04-23  David Hyatt  <hyatt@apple.com>
19842         Add support for mask-box-image (similar to border-image).  This property enables a single image
19843         to overlay the entire mask area (with nine-piece slicing rules similar to border image).
19845         Reviewed by Dan Bernstein
19847         Added inline-mask-overlay.html, block-mask-overlay.html
19849         * css/CSSComputedStyleDeclaration.cpp:
19850         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
19851         * css/CSSParser.cpp:
19852         (WebCore::CSSParser::parseValue):
19853         (WebCore::CSSParser::parseBorderImage):
19854         * css/CSSPropertyNames.in:
19855         * css/CSSStyleSelector.cpp:
19856         (WebCore::CSSStyleSelector::applyProperty):
19857         * rendering/InlineFlowBox.cpp:
19858         (WebCore::InlineFlowBox::paintMask):
19859         * rendering/RenderBox.cpp:
19860         (WebCore::RenderBox::paintMask):
19861         * rendering/RenderFlow.cpp:
19862         (WebCore::RenderFlow::paintLines):
19863         * rendering/RenderObject.cpp:
19864         (WebCore::RenderObject::paintNinePieceImage):
19865         (WebCore::RenderObject::paintBorder):
19866         * rendering/RenderObject.h:
19867         * rendering/RenderStyle.cpp:
19868         (WebCore::NinePieceImage::operator==):
19869         * rendering/RenderStyle.h:
19870         (WebCore::NinePieceImage::m_verticalRule):
19871         (WebCore::NinePieceImage::horizontalRule):
19872         (WebCore::NinePieceImage::verticalRule):
19873         (WebCore::RenderStyle::borderImage):
19874         (WebCore::RenderStyle::maskOverlayImage):
19875         (WebCore::RenderStyle::hasMask):
19876         (WebCore::RenderStyle::resetBorderImage):
19877         (WebCore::RenderStyle::setBorderImage):
19878         (WebCore::RenderStyle::setMaskOverlayImage):
19879         (WebCore::RenderStyle::initialNinePieceImage):
19880         * rendering/RenderTable.cpp:
19881         (WebCore::RenderTable::paintMask):
19882         * rendering/RenderTableCell.cpp:
19883         (WebCore::RenderTableCell::paintMask):
19885 2008-04-23  Justin Garcia  <justin.garcia@apple.com>
19887         Reviewed by Darin Adler.
19889         <rdar://problem/5825350> OWA: Caret disappears when navigating with arrows keys in contenteditable div
19891         * editing/htmlediting.cpp:
19892         (WebCore::firstEditablePositionAfterPositionInRoot): Return a null VisiblePosition if
19893         this function moves out of highestRoot.  Re-wrote so as to not duplicate code inside
19894         and outside of the while loop.
19895         (WebCore::lastEditablePositionBeforePositionInRoot): Ditto.
19897 2008-04-23  Daniel Zucker  <zucker@wake3.com>
19899         Reviewed by Adam Roben.
19901         Fix build errors needed to compile Curl in Cairo build.  Add stubs for
19902         didReceiveAuthenticationChallenge, receivedCredential,
19903         receivedRequestToContinueWithoutCredential, and receivedCancellation.
19904         <https://bugs.webkit.org/show_bug.cgi?id=18468>
19906         * platform/network/ResourceHandle.h:  
19907         * platform/network/curl/ResourceHandleCurl.cpp:
19908         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
19909         (WebCore::ResourceHandle::receivedCredential):
19910         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
19911         (WebCore::ResourceHandle::receivedCancellation):
19913 2008-04-23  Dan Bernstein  <mitz@apple.com>
19915         Reviewed by Darin Adler.
19917         - fix a bug where moving forward in bidirectional text skips over the
19918           position after the end of the line
19920         Test: editing/selection/move-past-trailing-space.html
19922         * dom/Position.cpp:
19923         (WebCore::Position::upstream): Changed the logic for identifying when a
19924         position is after the last character of a text box of a text node that
19925         continues on the next line, to make it work correctly when boxes are not
19926         laid out in logical order.
19927         (WebCore::Position::downstream): Ditto.
19929 2008-04-23  Brad Hughes  <bhughes@trolltech.com>
19931         Reviewed by Simon.
19933         Fix release build with the intel compiler
19935         Intel compiler can't compile qtwebkit with -O2 or -O1, so we're left with -O0
19937         * WebCore.pro:
19939 2008-04-22  Dan Bernstein  <mitz@apple.com>
19941         Reviewed by Anders Carlsson.
19943         - remove unused calls to Position::upstream()
19945         * editing/InsertLineBreakCommand.cpp:
19946         (WebCore::InsertLineBreakCommand::insertNodeAfterPosition):
19947         (WebCore::InsertLineBreakCommand::insertNodeBeforePosition):
19949 2008-04-22  Jon Honeycutt  <jhoneycutt@apple.com>
19951         Reviewed by Sam.
19953         Add a method to query which modifier keys the platform uses for access
19954         key actions.
19956         * page/EventHandler.cpp:
19957         (WebCore::EventHandler::handleAccessKey): Bitwise and the event's
19958         modifier keys with the platform's access key modifier mask to determine
19959         whether this event can perform an access key action.
19960         * page/EventHandler.h: Added s_accessKeyModifiers, a platform-defined
19961         mask of modifier keys used for access key actions, and a getter.
19962         * page/mac/EventHandlerMac.mm: Use PlatformKeyboardEvent::CtrlKey for
19963         access key actions.
19964         * page/qt/EventHandlerQt.cpp: Same.
19965         * page/gtk/EventHandlerGtk.cpp: Use AltKey.
19966         * page/win/EventHandlerWin.cpp: Same.
19967         * page/wx/EventHandlerWx.cpp: Same.
19968         * platform/PlatformKeyboardEvent.h: Added an enum, ModifierKey.
19969         (WebCore::PlatformKeyboardEvent::):
19970         (WebCore::PlatformKeyboardEvent::modifiers): Return which modifier keys
19971         were active, a combination of ModifierKey values.
19973 2008-04-22  Sam Weinig  <sam@webkit.org>
19975         Reviewed by Maciej Stachowiak.
19977         Make the KJSProxy and FrameLoader member variables instead of pointers
19978         in FramePrivate in a bid to do a little clean up before the last of the
19979         split window patches.  Also, make the KJSProxy not lazily created, as the
19980         real benefit comes from lazily creating the JSDOMWindowWrapper, which we
19981         still do.
19983         * page/Frame.cpp:
19984         (WebCore::Frame::~Frame):
19985         (WebCore::Frame::init):
19986         (WebCore::Frame::loader):
19987         (WebCore::Frame::scriptProxy):
19988         (WebCore::Frame::document):
19989         (WebCore::Frame::setDocument):
19990         (WebCore::Frame::clearScriptProxy):
19991         (WebCore::Frame::pageDestroyed):
19992         (WebCore::FramePrivate::FramePrivate):
19993         (WebCore::FramePrivate::~FramePrivate):
19994         * page/FramePrivate.h:
19996 2008-04-22  Anatoli Papirovski  <apapirovski@mac.com>
19998         Reviewed by Dan Bernstein.
20000         - fix https://bugs.webkit.org/show_bug.cgi?id=18584
20001         border-color, outline-color, column-color, -webkit-text-stroke-color,
20002         and -webkit-text-fill-color inheritance to correctly use parent's color
20003         if the parent's corresponding (border, outline, etc.)-color property
20004         wasn't set.
20006         Test: fast/borders/border-color-inherit.html
20008         * css/CSSStyleSelector.cpp:
20009         (WebCore::CSSStyleSelector::applyProperty):
20011 2008-04-22  Alp Toker  <alp@nuanti.com>
20013         Rubber-stamped by Dave Hyatt.
20015         Move GraphicsContext::clipToImageBuffer() notImplemented() stub to
20016         GraphicsContextCairo.
20018         * platform/graphics/GraphicsContext.cpp:
20019         * platform/graphics/cairo/GraphicsContextCairo.cpp:
20020         (WebCore::GraphicsContext::clipToImageBuffer):
20022 2008-04-22  David Hyatt  <hyatt@apple.com>
20024         Add support for mask-composite to match background-composite.
20026         Reviewed by Sam Weinig
20028         Added fast/backgrounds/mask-composite.html
20030         * css/CSSComputedStyleDeclaration.cpp:
20031         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
20032         * css/CSSParser.cpp:
20033         (WebCore::CSSParser::parseValue):
20034         (WebCore::CSSParser::parseFillProperty):
20035         * css/CSSPropertyNames.in:
20036         * css/CSSStyleSelector.cpp:
20037         (WebCore::CSSStyleSelector::applyProperty):
20038         * rendering/InlineFlowBox.cpp:
20039         (WebCore::InlineFlowBox::paintMask):
20041 2008-04-22  David Hyatt  <hyatt@apple.com>
20043         Fix for bug 18688, background-color stopped painting on inlines.  Fix a virtual function
20044         misnaming that led to the derived class not getting called properly.
20046         Reviewed by Mark Rowe
20048         * ChangeLog:
20049         * rendering/InlineFlowBox.cpp:
20050         (WebCore::InlineFlowBox::paintFillLayer):
20051         * rendering/RenderObject.h:
20052         (WebCore::RenderObject::paintFillLayerExtended):
20054 2008-04-22  Brady Eidson  <beidson@apple.com>
20056         Reviewed by Sam Weinig
20058         <rdar://problem/5733282> and https://bugs.webkit.org/show_bug.cgi?id=18680
20059         Always loads default shortcut icon URL when an external <script> is referenced before the icon URL is set.
20061         * dom/Document.cpp:
20062         (WebCore::Document::implicitClose): Call FrameLoader->startIconLoader() here, when the document is
20063           finished parsing.
20065         * loader/FrameLoader.cpp:
20066         (WebCore::FrameLoader::endIfNotLoadingMainResource):  Don't start the icon load here, when the
20067           document is finished parsing.  This was often too early, as document parsing may be blocked
20068           on an external script and therefore the correct iconURL is not set yet.
20069           The isLoadingFromCachedPage() check was when we started the icon load based on *loading* instead parsing,
20070           and is now irrelevant.
20071         * loader/FrameLoader.h:  Make startIconLoader() public
20073 2008-04-22  Antti Koivisto  <antti@apple.com>
20075         Reviewed by Oliver.
20077         Support keyPoints attribute of <animateMotion>.
20078         
20079         Tested by SVG test suite test
20080         animate-elem-33-t.svg
20082         * svg/SVGAnimateMotionElement.cpp:
20083         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
20084         * svg/SVGAnimationElement.cpp:
20085         (WebCore::parseKeyTimes):
20086         (WebCore::SVGAnimationElement::parseMappedAttribute):
20087         (WebCore::SVGAnimationElement::calculatePercentForSpline):
20088         (WebCore::SVGAnimationElement::calculatePercentFromKeyPoints):
20089         (WebCore::SVGAnimationElement::currentValuesFromKeyPoints):
20090         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
20091         (WebCore::SVGAnimationElement::startedActiveInterval):
20092         (WebCore::SVGAnimationElement::updateAnimation):
20093         * svg/SVGAnimationElement.h:
20095 2008-04-22  Holger Hans Peter Freyther  <zecke@selfish.org>
20097         Unreviewed build fix.
20099         Update WebKit.qrc to catch up with the addition and removal of images
20100         from page/inspector/Images in recent commits.
20102         * page/inspector/WebKit.qrc:
20104 2008-04-22  David Hyatt  <hyatt@apple.com>
20106         Fix for <rdar://5589634>.
20108         Implement CSS alpha masks.  The syntax is very similar to that used for backgrounds.  Multiple mask images
20109         can be specified, and each one can be tiled, positioned, etc.  The following new properties have been
20110         added (all of which are analogous to their background-* counterparts).
20112         mask, mask-image, mask-clip, mask-origin, mask-repeat, mask-attachment, mask-position
20114         The alpha values in the final composite image are used to determine how the mask applies (alpha of 1 = show,
20115         alpha of 0 = don't show).
20117         SVG images and CSS gradients can also be used as masks.
20119         Reviewed by Dan
20121         Added fast/backgrounds/repeat/mask-negative-offset-repeat.html, fast/backgrounds/svg-as-mask.html
20123         * css/CSSMutableStyleDeclaration.cpp:
20124         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
20125         (WebCore::initShorthandMap):
20126         * css/CSSParser.cpp:
20127         (WebCore::CSSParser::parseFillProperty):
20128         (WebCore::CSSParser::parseTransformOrigin):
20129         * css/CSSStyleSelector.cpp:
20130         (WebCore::CSSStyleSelector::adjustRenderStyle):
20131         (WebCore::CSSStyleSelector::applyProperty):
20132         * rendering/InlineFlowBox.cpp:
20133         (WebCore::InlineFlowBox::paint):
20134         (WebCore::InlineFlowBox::paintFillLayers):
20135         (WebCore::InlineFlowBox::paintFillLayer):
20136         (WebCore::InlineFlowBox::paintBoxDecorations):
20137         (WebCore::InlineFlowBox::paintMask):
20138         * rendering/InlineFlowBox.h:
20139         * rendering/RenderBlock.cpp:
20140         (WebCore::RenderBlock::paint):
20141         (WebCore::RenderBlock::paintObject):
20142         * rendering/RenderBox.cpp:
20143         (WebCore::RenderBox::paintRootBoxDecorations):
20144         (WebCore::RenderBox::paintBoxDecorations):
20145         (WebCore::RenderBox::paintMask):
20146         (WebCore::RenderBox::paintFillLayers):
20147         (WebCore::RenderBox::paintFillLayer):
20148         (WebCore::RenderBox::paintFillLayerExtended):
20149         * rendering/RenderBox.h:
20150         * rendering/RenderFieldset.cpp:
20151         (WebCore::RenderFieldset::paintBoxDecorations):
20152         (WebCore::RenderFieldset::paintMask):
20153         * rendering/RenderFieldset.h:
20154         * rendering/RenderInline.cpp:
20155         (WebCore::RenderInline::requiresLayer):
20156         * rendering/RenderLayer.cpp:
20157         (WebCore::RenderLayer::isTransparent):
20158         (WebCore::RenderLayer::paintLayer):
20159         * rendering/RenderObject.cpp:
20160         (WebCore::RenderObject::requiresLayer):
20161         (WebCore::mustRepaintFillLayers):
20162         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
20163         (WebCore::RenderObject::setStyle):
20164         (WebCore::RenderObject::updateFillImages):
20165         * rendering/RenderObject.h:
20166         (WebCore::RenderObject::hasMask):
20167         (WebCore::RenderObject::paintMask):
20168         (WebCore::RenderObject::paintFillExtended):
20169         * rendering/RenderReplaced.cpp:
20170         (WebCore::RenderReplaced::paint):
20171         * rendering/RenderStyle.cpp:
20172         (WebCore::FillLayer::FillLayer):
20173         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
20174         * rendering/RenderStyle.h:
20175         (WebCore::FillLayer::initialFillComposite):
20176         (WebCore::FillLayer::initialFillSize):
20177         (WebCore::FillLayer::FillLayer):
20178         (WebCore::RenderStyle::hasMask):
20179         * rendering/RenderTable.cpp:
20180         (WebCore::RenderTable::paint):
20181         (WebCore::RenderTable::paintBoxDecorations):
20182         (WebCore::RenderTable::paintMask):
20183         * rendering/RenderTable.h:
20184         * rendering/RenderTableCell.cpp:
20185         (WebCore::RenderTableCell::requiresLayer):
20186         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
20187         (WebCore::RenderTableCell::paintMask):
20188         * rendering/RenderTableCell.h:
20189         * rendering/RenderWidget.cpp:
20190         (WebCore::RenderWidget::paint):
20191         * svg/graphics/SVGImage.cpp:
20192         (WebCore::SVGImage::draw):
20193         (WebCore::SVGImage::dataChanged):
20195 2008-04-22  Sam Weinig  <sam@webkit.org>
20197         Reviewed by Geoffrey Garen.
20199         Make DOMAbstractView have a weak reference to the Frame instead of ref'ing
20200         the DOMWindow.
20202         To ensure that the WindowScriptObject (which is a DOMAbstractView) stays valid
20203         after a navigation once the split window is completed, the DOMAbstractView must
20204         wrap the Frame instead of a DOMWindow since the DOMWindow will change.
20206         * WebCore.xcodeproj/project.pbxproj:
20207         * bindings/objc/DOMAbstractView.mm: Added.
20208         (-[DOMAbstractView dealloc]):
20209         (-[DOMAbstractView finalize]):
20210         (-[DOMAbstractView document]):
20211         (-[DOMAbstractView _disconnectFrame]):
20212         (-[DOMAbstractView WebCore::]):
20213         (-[DOMAbstractView _initWithFrame:WebCore::]):
20214         (+[DOMAbstractView _wrapAbstractView:WebCore::]):
20215         Add custom implementation to implement weak reference semantics.
20217         * bindings/objc/DOMAbstractViewFrame.h: Added.
20218         Declare the [DOMAbstractView _disconectFrame] selector.
20219         * bindings/objc/DOMInternal.h:
20220         Remove DOMRGBColor Internal category since it is now generated.
20222         * bindings/objc/DOMUtility.mm:
20223         (KJS::createDOMWrapper):
20224         Don't ever create a DOMAbstractView from a JSDOMWindow, only from JSDOMWindowWrapper.
20226         * bindings/scripts/CodeGeneratorObjC.pm:
20227         Generate internal header for IDLs that want custom implementations.
20229         * css/RGBColor.idl:
20230         Make this a PODType as it really is in the implementation.
20232         * page/AbstractView.idl:
20233         This now needs a custom objective-c binding implementation.
20235         * page/Frame.cpp:
20236         (WebCore::Frame::~Frame):
20237         disconnect the weak frame reference in the WindowScriptObject.
20239         * page/Frame.h:
20240         * page/gtk/FrameGtk.cpp:
20241         (WebCore::Frame::disconnectPlatformScriptObjects): Dummy implementation.
20242         * page/mac/FrameMac.mm:
20243         (WebCore::Frame::windowScriptObject): ASSERT that the windowScriptObject is a DOMAbstractView.
20244         (WebCore::Frame::disconnectPlatformScriptObjects): Disconnect the frame pointer from the windowScriptObject.
20245         * page/qt/FrameQt.cpp:
20246         (WebCore::Frame::disconnectPlatformScriptObjects): Dummy implementation.
20247         * page/win/FrameWin.cpp:
20248         (WebCore::Frame::disconnectPlatformScriptObjects): Ditto.
20250 2008-04-22  Dan Bernstein  <mitz@apple.com>
20252         Reviewed by Sam Weinig.
20254         - preparation for https://bugs.webkit.org/show_bug.cgi?id=3729
20255           <rdar://problem/4036353> REGRESSION: arrow keys move insertion bar backwards in RTL text
20257         * rendering/bidi.cpp:
20258         (WebCore::RenderBlock::layoutInlineChildren): Make sure to give the
20259         trailing white space a bidi level consistent with its position.
20261 2008-04-22  Timothy Hatcher  <timothy@apple.com>
20263         Remove many unused Web Inspector images.
20265         Rubber-stamped by Adam Roben and Sam Weinig.
20267         * page/inspector/Images/attachedShadow.png: Removed.
20268         * page/inspector/Images/backNormal.png: Removed.
20269         * page/inspector/Images/bottomShadow.png: Removed.
20270         * page/inspector/Images/breadcrumbBackground.png: Removed.
20271         * page/inspector/Images/console.png: Removed.
20272         * page/inspector/Images/databaseBrowserViewNormal.png: Removed.
20273         * page/inspector/Images/databaseBrowserViewNormalSelected.png: Removed.
20274         * page/inspector/Images/databaseBrowserViewSmall.png: Removed.
20275         * page/inspector/Images/databaseBrowserViewSmallSelected.png: Removed.
20276         * page/inspector/Images/databaseQueryViewNormal.png: Removed.
20277         * page/inspector/Images/databaseQueryViewNormalSelected.png: Removed.
20278         * page/inspector/Images/databaseQueryViewSmall.png: Removed.
20279         * page/inspector/Images/databaseQueryViewSmallSelected.png: Removed.
20280         * page/inspector/Images/disclosureDownPressed.png: Removed.
20281         * page/inspector/Images/disclosureRightDown.png: Removed.
20282         * page/inspector/Images/disclosureRightPressed.png: Removed.
20283         * page/inspector/Images/document.png: Removed.
20284         * page/inspector/Images/domViewNormal.png: Removed.
20285         * page/inspector/Images/domViewNormalSelected.png: Removed.
20286         * page/inspector/Images/domViewSmall.png: Removed.
20287         * page/inspector/Images/domViewSmallSelected.png: Removed.
20288         * page/inspector/Images/downTriangle.png: Removed.
20289         * page/inspector/Images/folder.png: Removed.
20290         * page/inspector/Images/forwardNormal.png: Removed.
20291         * page/inspector/Images/gradient.png: Removed.
20292         * page/inspector/Images/gradientHighlight.png: Removed.
20293         * page/inspector/Images/gradientHighlightBottom.png: Removed.
20294         * page/inspector/Images/hideStatusWidget.png: Removed.
20295         * page/inspector/Images/hideStatusWidgetPressed.png: Removed.
20296         * page/inspector/Images/network.png: Removed.
20297         * page/inspector/Images/plainDocument.png: Removed.
20298         * page/inspector/Images/popupArrows.png: Removed.
20299         * page/inspector/Images/popupArrowsBlack.png: Removed.
20300         * page/inspector/Images/reload.png: Removed.
20301         * page/inspector/Images/rightTriangle.png: Removed.
20302         * page/inspector/Images/showStatusWidget.png: Removed.
20303         * page/inspector/Images/showStatusWidgetPressed.png: Removed.
20304         * page/inspector/Images/sidbarItemBackground.png: Removed.
20305         * page/inspector/Images/sidebarActionWidget.png: Removed.
20306         * page/inspector/Images/sidebarActionWidgetPressed.png: Removed.
20307         * page/inspector/Images/sidebarAttachWidget.png: Removed.
20308         * page/inspector/Images/sidebarAttachWidgetPressed.png: Removed.
20309         * page/inspector/Images/sidebarDetachWidget.png: Removed.
20310         * page/inspector/Images/sidebarDetachWidgetPressed.png: Removed.
20311         * page/inspector/Images/sidebarResizeWidget.png: Removed.
20312         * page/inspector/Images/sidebarStatusAreaBackground.png: Removed.
20313         * page/inspector/Images/sourceViewNormal.png: Removed.
20314         * page/inspector/Images/sourceViewNormalSelected.png: Removed.
20315         * page/inspector/Images/sourceViewSmall.png: Removed.
20316         * page/inspector/Images/sourceViewSmallSelected.png: Removed.
20317         * page/inspector/Images/tab.png: Removed.
20318         * page/inspector/Images/tabSelected.png: Removed.
20319         * page/inspector/Images/toggleDown.png: Removed.
20320         * page/inspector/Images/toggleUp.png: Removed.
20321         * page/inspector/Images/toolbarButtonNormal.png: Removed.
20322         * page/inspector/Images/toolbarButtonNormalInactive.png: Removed.
20323         * page/inspector/Images/toolbarButtonNormalPressed.png: Removed.
20324         * page/inspector/Images/toolbarButtonNormalSelected.png: Removed.
20325         * page/inspector/Images/toolbarButtonNormalSelectedInactive.png: Removed.
20326         * page/inspector/Images/toolbarButtonSmall.png: Removed.
20327         * page/inspector/Images/toolbarButtonSmallInactive.png: Removed.
20328         * page/inspector/Images/toolbarButtonSmallPressed.png: Removed.
20329         * page/inspector/Images/toolbarButtonSmallSelected.png: Removed.
20330         * page/inspector/Images/toolbarButtonSmallSelectedInactive.png: Removed.
20331         * page/inspector/Images/toolbarPopupButtonNormal.png: Removed.
20332         * page/inspector/Images/toolbarPopupButtonNormalInactive.png: Removed.
20333         * page/inspector/Images/toolbarPopupButtonNormalPressed.png: Removed.
20334         * page/inspector/Images/toolbarPopupButtonSmall.png: Removed.
20335         * page/inspector/Images/toolbarPopupButtonSmallInactive.png: Removed.
20336         * page/inspector/Images/toolbarPopupButtonSmallPressed.png: Removed.
20337         * page/inspector/Images/toolbarSplitButtonDividerNormal.png: Removed.
20338         * page/inspector/Images/toolbarSplitButtonDividerNormalInactive.png: Removed.
20339         * page/inspector/Images/toolbarSplitButtonDividerSmall.png: Removed.
20340         * page/inspector/Images/toolbarSplitButtonDividerSmallInactive.png: Removed.
20341         * page/inspector/Images/treeLeftTriangleBlack.png: Removed.
20343 2008-04-22  Anders Carlsson  <andersca@apple.com>
20345         Reviewed by Darin.
20347         Add NPN_Construct and NPN_PluginThreadAsyncCall declarations.
20349         * bridge/npapi.h:
20350         * bridge/npruntime.h:
20351         * plugins/npfunctions.h:
20353 2008-04-22  Alice Liu  <alice.liu@apple.com>
20355         Reviewed by John Sullivan and Adam Roben.
20357         Test: fast/events/tabindex-focus-chain.html
20359         * dom/Document.cpp:
20360         (WebCore::Document::nextFocusableNode):
20361         (WebCore::Document::previousFocusableNode):
20362         If the focused node has been removed from the normal tabbing order,
20363         advancing focus from this node should advance to the next focusable
20364         node in tree order, and not start over at the beginning of the focus
20365         chain. 
20367 2008-04-22  Timothy Hatcher  <timothy@apple.com>
20369         Adds a debugger toggle button to the scripts status bar that will start
20370         and stop debugging of the inspected page.
20372         Reviewed by Adam Roben.
20374         * English.lproj/InspectorLocalizedStrings.js: Adds the two new tooltip strings.
20375         * page/InspectorController.cpp:
20376         (WebCore::debuggerAttached): Call InspectorController::debuggerAttached.
20377         (WebCore::InspectorController::InspectorController): Initialize
20378         m_debuggerAttached to false.
20379         (WebCore::InspectorController::windowScriptObjectAvailable): Add the debuggerAttached
20380         property to the InspectorController class.
20381         (WebCore::InspectorController::startDebuggingAndReloadInspectedPage):
20382         Set m_debuggerAttached to true.
20383         (WebCore::InspectorController::stopDebugging): Set m_debuggerAttached to false.
20384         * page/InspectorController.h:
20385         * page/inspector/Images/debuggingButtons.png: Added.
20386         * page/inspector/ScriptsPanel.js:
20387         (WebInspector.ScriptsPanel): Disable the pause button. Create the debugging
20388         button and setup the id, className and event listener. Call reset.
20389         (WebInspector.ScriptsPanel.prototype.get statusBarItems): Return an array
20390         (WebInspector.ScriptsPanel.prototype.reset): Call _updateDebuggerButtons.
20391         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons): Adjust the title of
20392         the debugging button to match what will happen when clicked. Change the style class,
20393         and toggle the disabled state of the pause button.
20394         (WebInspector.ScriptsPanel.prototype._toggleDebugging): Start or stop debugging
20395         depending on InspectorController.debuggerAttached().
20396         * page/inspector/inspector.css: Added style rules for the debugger button.
20398 2008-04-21  Adam Roben  <aroben@apple.com>
20400         Change PlatformWheelEvent to use GET_WHEEL_DELTA_WPARAM
20402         Reviewed by Dan Bernstein.
20404         * platform/win/WheelEventWin.cpp:
20405         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Use
20406         GET_WHEEL_DELTA_WPARAM, which is documented way of getting the wheel
20407         delta (it is equivalent to what we were previously doing, however).
20409 2008-04-22  Simon Hausmann  <hausmann@webkit.org>
20411         Qt build fix.
20413         Adjust the Qt resource file to removed image files.
20415         * page/inspector/WebKit.qrc:
20417 2008-04-21  Timothy Hatcher  <timothy@apple.com>
20419         Use CSS gradients to replace many image files in the Web Inspector.
20421         Rubber-stamped by Adam Roben.
20423         * page/inspector/Images/alternateTableRows.png: Removed.
20424         * page/inspector/Images/darkShadow.png: Removed.
20425         * page/inspector/Images/paneHeader.png: Removed.
20426         * page/inspector/Images/paneHeaderActive.png: Removed.
20427         * page/inspector/Images/sidebarSelection.png: Removed.
20428         * page/inspector/Images/sidebarSelectionBackground.png: Removed.
20429         * page/inspector/Images/sidebarSelectionBackgroundFocused.png: Removed.
20430         * page/inspector/Images/sidebarSelectionBackgroundInactive.png: Removed.
20431         * page/inspector/Images/sidebarSelectionBlurred.png: Removed.
20432         * page/inspector/Images/sidebarSelectionBlurredTall.png: Removed.
20433         * page/inspector/Images/sidebarSelectionGray.png: Removed.
20434         * page/inspector/Images/sidebarSelectionGrayTall.png: Removed.
20435         * page/inspector/Images/sidebarSelectionTall.png: Removed.
20436         * page/inspector/Images/sidebarSmallSelectionBackground.png: Removed.
20437         * page/inspector/Images/sidebarSmallSelectionBackgroundFocused.png: Removed.
20438         * page/inspector/Images/sidebarSmallSelectionBackgroundInactive.png: Removed.
20439         * page/inspector/Images/toolbarBackground.png: Removed.
20440         * page/inspector/Images/toolbarBackgroundInactive.png: Removed.
20441         * page/inspector/inspector.css:
20443 2008-04-22  Andre Poenitz  <andre.poenitz@trolltech.com>
20445         Reviewed by Simon.
20447         Remove compiler warnings on string literals used to construct QStrings
20448         in webkit.
20450         * bridge/qt/qt_instance.cpp:
20451         (KJS::Bindings::QtField::valueFromInstance):
20452         (KJS::Bindings::QtField::setValueToInstance):
20453         * bridge/qt/qt_runtime.cpp:
20454         (KJS::Bindings::convertValueToQVariant):
20455         (KJS::Bindings::QtRuntimeConnectionMethod::callAsFunction):
20457 2008-04-22  Tor Arne Vestbø  <tavestbo@trolltech.com>
20459         Reviewed by Simon.
20461         Fall back to last path component for suggested filename if the HTTP content disposition is not set.
20463         * platform/network/qt/QNetworkReplyHandler.cpp:
20464         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
20466 2008-04-22  Tor Arne Vestbø  <tavestbo@trolltech.com>
20468         Reviewed by Simon.
20470         Implemented the generation of the title string for images.
20472         * platform/qt/Localizations.cpp:
20474 2008-04-22  Simon Hausmann  <hausmann@webkit.org>
20476         Qt build fix.
20478         * platform/qt/RenderThemeQt.cpp: Adjust isControlStyled signature to
20479         the signature in the base class.
20480         * platform/qt/RenderThemeQt.h: Ditto.
20482 2008-04-19  Jon Honeycutt  <jhoneycutt@apple.com>
20484         Reviewed by Darin.
20486         Add a method to get the AccessibilityObject's access key,
20488         * page/AccessibilityObject.cpp:
20489         (WebCore::AccessibilityObject::accessKey): Added; returns the object's
20490         access key attribute.
20491         * page/AccessibilityObject.h: Added declaration for accessKey().
20493 2008-04-21  Sam Weinig  <sam@webkit.org>
20495         Reviewed by Anders Carlsson.
20497         Fix numerous crashing tests.
20499         * html/HTMLHtmlElement.cpp:
20500         (WebCore::HTMLHtmlElement::insertedIntoDocument): Null check document->frame().
20502 2008-04-21  Dan Bernstein  <mitz@apple.com>
20504         Reviewed by Darin Adler.
20506         Tests: fast/media/implicit-media-all.html
20507                fast/media/monochrome.html
20509         - allow implicit "all" media in media queries
20510         - use a value of 0 for the monochrome media feature on color displays
20512         * css/CSSGrammar.y:
20513         * css/CSSParser.cpp:
20514         (WebCore::CSSParser::createFloatingMediaQuery):
20515         * css/CSSParser.h:
20516         * css/MediaQueryEvaluator.cpp:
20517         (WebCore::monochromeMediaFeatureEval):
20519 2008-04-21  Brady Eidson  <beidson@apple.com>
20521         Rockingly reviewed by Adele
20523         Small StorageArea cleanups
20525         * storage/SessionStorageArea.cpp:
20526         (WebCore::SessionStorageArea::copy): Pass "this" instead of the StorageMap belonging to this
20527         (WebCore::SessionStorageArea::SessionStorageArea):
20528         * storage/SessionStorageArea.h:
20530         * storage/StorageArea.cpp:  Changed to not expose the StorageMap at all - it's dangerous to expose
20531           it since we rely explicitly on its ref-count
20532         (WebCore::StorageArea::StorageArea): Take another StorageArea as the c'tor argument and get the 
20533           StorageMap from that.
20534         (WebCore::StorageArea::setItem):  The previous comment/code here was bogus.  All JS objects passed in
20535           to this API are stringified, so there's no such thing as "null" for setItem()
20536         * storage/StorageArea.h:
20538 2008-04-21  Justin Garcia  <justin.garcia@apple.com>
20540         Reviewed by John Sullivan.
20542         <rdar://problem/5803706> Pressing return at the end of a header doesn't break out of header (17460)
20543         
20544         If we're doing InsertParagraphSeparator at the end of a header element, do not clone it.
20545         Renamed m_useDefaultParagraphElement to m_mustUseDefaultParagraphElement, since now,
20546         when it is false, that does not necessarily mean that a default paragraph element
20547         will not be used.  Callers that passed false for this argument are OK with this.
20549         * editing/InsertParagraphSeparatorCommand.cpp:
20550         (WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand): 
20551         (WebCore::InsertParagraphSeparatorCommand::shouldUseDefaultParagraphElement):
20552         (WebCore::InsertParagraphSeparatorCommand::doApply):
20553         * editing/InsertParagraphSeparatorCommand.h:
20555 2008-04-21  Anders Carlsson  <andersca@apple.com>
20557         Reviewed by Adam.
20559         Perform cache selection. If a main resource has a URL that exists in a cache, load it from there.
20560         
20561         * html/HTMLAttributeNames.in:
20562         Add manifest attribute.
20563         
20564         * html/HTMLHtmlElement.cpp:
20565         (WebCore::HTMLHtmlElement::insertedIntoDocument):
20566         * html/HTMLHtmlElement.h:
20567         Perform cache selection.
20568         
20569         * loader/MainResourceLoader.cpp:
20570         (WebCore::MainResourceLoader::load):
20571         * loader/appcache/ApplicationCacheGroup.cpp:
20572         (WebCore::cacheHostSet):
20573         (WebCore::urlHostHash):
20574         (WebCore::ApplicationCacheGroup::cacheForRequest):
20575         (WebCore::ApplicationCacheGroup::selectCache):
20576         * loader/appcache/ApplicationCacheGroup.h:
20577         * platform/KURL.h:
20578         (WebCore::KURL::hostStart):
20579         (WebCore::KURL::hostEnd):
20581 2008-04-21  Mike Belshe  <mike@belshe.com>
20583         Reviewed by eseidel and darin.  Landed by eseidel.
20585         Fix broken optimization in createStrippingNullCharacters.
20587         * platform/text/StringImpl.cpp:
20588         (WebCore::StringImpl::createStrippingNullCharacters):
20590 2008-04-21  David Hyatt  <hyatt@apple.com>
20592         Make the back end parsing of background properties generic.  Rename all the parsing functions from
20593         background -> fill.
20595         Add a new set of properties for doing masks.  The code is now refactored so that the mask properties
20596         and the background properties share parsing routines.
20598         Reviewed by Dan
20600         * css/CSSComputedStyleDeclaration.cpp:
20601         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
20602         * css/CSSParser.cpp:
20603         (WebCore::CSSParser::parseValue):
20604         (WebCore::CSSParser::addFillValue):
20605         (WebCore::CSSParser::parseFillShorthand):
20606         (WebCore::CSSParser::parseFillImage):
20607         (WebCore::CSSParser::parseFillPositionXY):
20608         (WebCore::CSSParser::parseFillPosition):
20609         (WebCore::CSSParser::parseFillSize):
20610         (WebCore::CSSParser::parseFillProperty):
20611         (WebCore::CSSParser::parseTransformOrigin):
20612         * css/CSSParser.h:
20613         * css/CSSPropertyNames.in:
20614         * css/CSSStyleSelector.cpp:
20615         (WebCore::CSSStyleSelector::CSSStyleSelector):
20616         (WebCore::CSSStyleSelector::mapFillAttachment):
20617         (WebCore::CSSStyleSelector::mapFillClip):
20618         (WebCore::CSSStyleSelector::mapFillComposite):
20619         (WebCore::CSSStyleSelector::mapFillOrigin):
20620         (WebCore::CSSStyleSelector::mapFillImage):
20621         (WebCore::CSSStyleSelector::mapFillRepeat):
20622         (WebCore::CSSStyleSelector::mapFillSize):
20623         (WebCore::CSSStyleSelector::mapFillXPosition):
20624         (WebCore::CSSStyleSelector::mapFillYPosition):
20625         * rendering/RenderStyle.cpp:
20626         (WebCore::FillLayer::FillLayer):
20627         (WebCore::FillLayer::operator=):
20628         (WebCore::FillLayer::operator==):
20629         (WebCore::StyleBackgroundData::StyleBackgroundData):
20630         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
20631         (WebCore::StyleRareNonInheritedData::operator==):
20632         (WebCore::RenderStyle::diff):
20633         * rendering/RenderStyle.h:
20634         (WebCore::LengthSize::LengthSize):
20635         (WebCore::FillLayer::type):
20636         (WebCore::FillLayer::initialFillAttachment):
20637         (WebCore::FillLayer::initialFillClip):
20638         (WebCore::FillLayer::initialFillOrigin):
20639         (WebCore::FillLayer::initialFillRepeat):
20640         (WebCore::FillLayer::initialFillComposite):
20641         (WebCore::FillLayer::initialFillSize):
20642         (WebCore::FillLayer::initialFillXPosition):
20643         (WebCore::FillLayer::initialFillYPosition):
20644         (WebCore::FillLayer::initialFillImage):
20645         (WebCore::RenderStyle::maskImage):
20646         (WebCore::RenderStyle::maskRepeat):
20647         (WebCore::RenderStyle::maskComposite):
20648         (WebCore::RenderStyle::maskAttachment):
20649         (WebCore::RenderStyle::maskClip):
20650         (WebCore::RenderStyle::maskOrigin):
20651         (WebCore::RenderStyle::maskXPosition):
20652         (WebCore::RenderStyle::maskYPosition):
20653         (WebCore::RenderStyle::maskSize):
20654         (WebCore::RenderStyle::accessMaskLayers):
20655         (WebCore::RenderStyle::maskLayers):
20656         (WebCore::RenderStyle::clearBackgroundLayers):
20657         (WebCore::RenderStyle::clearMaskLayers):
20658         (WebCore::RenderStyle::inheritMaskLayers):
20660 2008-04-21  Timothy Hatcher  <timothy@apple.com>
20662         Fixes the issue were a Database view could still be visible after navigating to a new page.
20664         Reviewed by Darin Adler.
20666         * page/inspector/DatabasesPanel.js:
20667         (WebInspector.DatabasesPanel.prototype.reset): Delete the _tableViews and _queryView properties
20668         from all databases. Remove all the children from databaseViews.
20670 2008-04-21  Timothy Hatcher  <timothy@apple.com>
20672         Adds the ability to enter multi-line commands in the console by holding the
20673         alt/option key when pressing enter/return.
20675         https://bugs.webkit.org/show_bug.cgi?id=18454
20677         Reviewed by Darin Adler.
20679         * page/inspector/Console.js:
20680         (WebInspector.Console.prototype._enterKeyPressed): Return early if the
20681         alt/option key is held when enter is pressed.
20682         * page/inspector/inspector.css:
20683         (.console-message-text): Added. Set white-space: pre-wrap.
20685 2008-04-21  Timothy Hatcher  <timothy@apple.com>
20687         Fixes the bug where the Database table names do not update when
20688         running the CREATE TABLE or DROP TABLE queries. Also makes the
20689         table names update every time the database is collapsed and expanded.
20691         https://bugs.webkit.org/show_bug.cgi?id=18453
20693         Reviewed by Darin Adler.
20695         * page/inspector/DatabasesPanel.js:
20696         (WebInspector.DatabasesPanel.prototype.updateDatabaseTables):
20697         Set shouldRefreshChildren to true on the Database's tree element.
20698         The refreshChildren property was renamed to shouldRefreshChildren.
20699         (WebInspector.DatabaseSidebarTreeElement.prototype.oncollapse):
20700         Request a refresh after every collapse so the next expand will
20701         have an updated table list.
20703 2008-04-21  Timothy Hatcher  <timothy@apple.com>
20705         Adds INDEX to the list of completion words for the Databases query view.
20707         https://bugs.webkit.org/show_bug.cgi?id=18452
20709         Reviewed by Darin Adler.
20711         * page/inspector/DatabaseQueryView.js:
20712         (WebInspector.DatabaseQueryView.prototype.completions): Split up "CREATE TABLE "
20713         and "DROP TABLE " into "CREATE ", "DROP ", "TABLE ". And added "INDEX ".
20715 2008-04-21  Timothy Hatcher  <timothy@apple.com>
20717         Adds the UI portions of the Scripts panel to the Web Inspector.
20718         The Scripts panel has not been added to the toolbar yet.
20720         https://bugs.webkit.org/show_bug.cgi?id=18601
20722         Reviewed by Adam Roben.
20724         * English.lproj/InspectorLocalizedStrings.js: Changed "Show inherited properties"
20725         to "Show inherited". Adds new strings for the Scripts' panel tooltips.
20726         * page/inspector/BreakpointsSidebarPane.js: Added.
20727         * page/inspector/CallStackSidebarPane.js: Added.
20728         * page/inspector/Images/back.png: Added.
20729         * page/inspector/Images/debuggerContinue.png: Added.
20730         * page/inspector/Images/debuggerPause.png: Added.
20731         * page/inspector/Images/debuggerStepInto.png: Added.
20732         * page/inspector/Images/debuggerStepOut.png: Added.
20733         * page/inspector/Images/debuggerStepOver.png: Added.
20734         * page/inspector/Images/forward.png: Added.
20735         * page/inspector/Images/statusbarResizerHorizontal.png: Added.
20736         * page/inspector/PropertiesSection.js:
20737         (WebInspector.PropertiesSection): Flip the order the subtile is appended
20738         so it can float right in the CSS.
20739         * page/inspector/ScriptsPanel.js: Added.
20740         * page/inspector/StylesSidebarPane.js:
20741         (WebInspector.StylePropertiesSection): Changed "Show inherited properties"
20742         to "Show inherited".
20743         * page/inspector/inspector.css: Added new CSS rules for the Scripts panel. 
20744         Also changes the look of the section to match the mockup, this affects
20745         Styles and Properties in Elements.
20746         * page/inspector/inspector.html: Import new files.
20747         * page/inspector/inspector.js:
20748         (Preferences.minScriptsSidebarWidth): Added.
20750 2008-04-21  Kevin McCullough  <kmccullough@apple.com>
20752         Reviewed by Adam.
20754         <rdar://problem/5770054> JavaScript profiler (10928)
20755         Took out debugging printing since we really want to hook into the
20756         inspector and not to print to the terminal.
20758         * page/Console.cpp:
20759         (WebCore::Console::profileEnd):
20761 2008-04-21  Sam Weinig  <sam@webkit.org>
20763         Reviewed by Alexey Proskuryakov.
20765         Fix up XMLHttpRequestProgressEvent.
20767         * bindings/js/JSEventCustom.cpp:
20768         (WebCore::toJS):
20769         * xml/XMLHttpRequestProgressEvent.cpp:
20770         * xml/XMLHttpRequestProgressEvent.h:
20772 2008-04-21  Adam Roben  <aroben@apple.com>
20774         Fix Bug 18615: Crash in PluginPackage::hash
20776         <https://bugs.webkit.org/show_bug.cgi?id=18615>
20778         Reviewed by Anders Carlsson.
20780         * plugins/PluginDatabase.cpp:
20781         (WebCore::PluginDatabase::refresh): Don't pass a null PluginPackage*
20782         to add().
20784 2008-04-21  Anders Carlsson  <andersca@apple.com>
20786         Reviewed by Adam.
20788         Add cache group implementation.
20790         * loader/DocumentLoader.cpp:
20791         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
20792         * loader/appcache/ApplicationCache.cpp:
20793         (WebCore::ApplicationCache::requestIsHTTPOrHTTPSGet):
20794         (WebCore::ApplicationCache::resourceForRequest):
20795         * loader/appcache/ApplicationCache.h:
20796         * loader/appcache/ApplicationCacheGroup.cpp:
20797         (WebCore::cacheGroupMap):
20798         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
20799         (WebCore::ApplicationCacheGroup::selectCache):
20800         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
20801         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
20802         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
20803         (WebCore::ApplicationCacheGroup::cacheDestroyed):
20804         (WebCore::ApplicationCacheGroup::update):
20805         (WebCore::ApplicationCacheGroup::didReceiveResponse):
20806         (WebCore::ApplicationCacheGroup::didReceiveData):
20807         (WebCore::ApplicationCacheGroup::didFinishLoading):
20808         (WebCore::ApplicationCacheGroup::didFail):
20809         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
20810         (WebCore::ApplicationCacheGroup::didReceiveManifestData):
20811         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
20812         (WebCore::ApplicationCacheGroup::cacheUpdateFailed):
20813         (WebCore::ApplicationCacheGroup::didFailToLoadManifest):
20814         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
20815         (WebCore::ApplicationCacheGroup::startLoadingEntry):
20816         (WebCore::ApplicationCacheGroup::addEntry):
20817         (WebCore::ApplicationCacheGroup::associateDocumentLoaderWithCache):
20818         (WebCore::ApplicationCacheGroup::callListenersOnAssociatedDocuments):
20819         (WebCore::ApplicationCacheGroup::callListeners):
20820         * loader/appcache/ApplicationCacheGroup.h:
20821         (WebCore::ApplicationCacheGroup::status):
20822         (WebCore::ApplicationCacheGroup::newestCache):
20823         * platform/KURL.h:
20824         (WebCore::KURL::hostStart):
20825         (WebCore::KURL::hostEnd):
20827 2008-04-21  David Hyatt  <hyatt@apple.com>
20829         Rename BackgroundLayer -> FillLayer in preparation for it being used for other types of fills.
20831         Reviewed by Dan
20833         * css/CSSComputedStyleDeclaration.cpp:
20834         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
20835         * css/CSSPrimitiveValueMappings.h:
20836         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
20837         (WebCore::CSSPrimitiveValue::operator EFillBox):
20838         (WebCore::CSSPrimitiveValue::operator EFillRepeat):
20839         * css/CSSStyleSelector.cpp:
20840         (WebCore::CSSStyleSelector::applyProperty):
20841         (WebCore::CSSStyleSelector::mapFillAttachment):
20842         (WebCore::CSSStyleSelector::mapFillClip):
20843         (WebCore::CSSStyleSelector::mapFillComposite):
20844         (WebCore::CSSStyleSelector::mapFillOrigin):
20845         (WebCore::CSSStyleSelector::mapFillImage):
20846         (WebCore::CSSStyleSelector::mapFillRepeat):
20847         (WebCore::CSSStyleSelector::mapFillSize):
20848         (WebCore::CSSStyleSelector::mapFillXPosition):
20849         (WebCore::CSSStyleSelector::mapFillYPosition):
20850         (WebCore::CSSStyleSelector::mapTransitionDuration):
20851         (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
20852         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
20853         (WebCore::CSSStyleSelector::mapTransitionProperty):
20854         * css/CSSStyleSelector.h:
20855         * page/AnimationController.cpp:
20856         (WebCore::ImplicitAnimation::ImplicitAnimation):
20857         (WebCore::CompositeImplicitAnimation::animate):
20858         * rendering/InlineFlowBox.cpp:
20859         (WebCore::InlineFlowBox::paintBackgrounds):
20860         (WebCore::InlineFlowBox::paintBackground):
20861         * rendering/InlineFlowBox.h:
20862         * rendering/RenderBox.cpp:
20863         (WebCore::RenderBox::paintRootBoxDecorations):
20864         (WebCore::RenderBox::paintBackgrounds):
20865         (WebCore::RenderBox::paintBackground):
20866         (WebCore::RenderBox::calculateBackgroundSize):
20867         (WebCore::RenderBox::imageChanged):
20868         (WebCore::RenderBox::calculateBackgroundImageGeometry):
20869         (WebCore::RenderBox::paintBackgroundExtended):
20870         * rendering/RenderBox.h:
20871         * rendering/RenderObject.cpp:
20872         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
20873         (WebCore::RenderObject::updateBackgroundImages):
20874         (WebCore::RenderObject::arenaDelete):
20875         * rendering/RenderObject.h:
20876         (WebCore::RenderObject::paintBackgroundExtended):
20877         * rendering/RenderStyle.cpp:
20878         (WebCore::FillLayer::FillLayer):
20879         (WebCore::FillLayer::~FillLayer):
20880         (WebCore::FillLayer::operator=):
20881         (WebCore::FillLayer::operator==):
20882         (WebCore::FillLayer::fillUnsetProperties):
20883         (WebCore::FillLayer::cullEmptyLayers):
20884         (WebCore::Transition::fillUnsetProperties):
20885         * rendering/RenderStyle.h:
20886         (WebCore::FillLayer::image):
20887         (WebCore::FillLayer::xPosition):
20888         (WebCore::FillLayer::yPosition):
20889         (WebCore::FillLayer::attachment):
20890         (WebCore::FillLayer::clip):
20891         (WebCore::FillLayer::origin):
20892         (WebCore::FillLayer::repeat):
20893         (WebCore::FillLayer::composite):
20894         (WebCore::FillLayer::size):
20895         (WebCore::FillLayer::next):
20896         (WebCore::FillLayer::isImageSet):
20897         (WebCore::FillLayer::isXPositionSet):
20898         (WebCore::FillLayer::isYPositionSet):
20899         (WebCore::FillLayer::isAttachmentSet):
20900         (WebCore::FillLayer::isClipSet):
20901         (WebCore::FillLayer::isOriginSet):
20902         (WebCore::FillLayer::isRepeatSet):
20903         (WebCore::FillLayer::isCompositeSet):
20904         (WebCore::FillLayer::isSizeSet):
20905         (WebCore::FillLayer::setImage):
20906         (WebCore::FillLayer::setXPosition):
20907         (WebCore::FillLayer::setYPosition):
20908         (WebCore::FillLayer::setAttachment):
20909         (WebCore::FillLayer::setClip):
20910         (WebCore::FillLayer::setOrigin):
20911         (WebCore::FillLayer::setRepeat):
20912         (WebCore::FillLayer::setComposite):
20913         (WebCore::FillLayer::setSize):
20914         (WebCore::FillLayer::clearImage):
20915         (WebCore::FillLayer::clearXPosition):
20916         (WebCore::FillLayer::clearYPosition):
20917         (WebCore::FillLayer::clearAttachment):
20918         (WebCore::FillLayer::clearClip):
20919         (WebCore::FillLayer::clearOrigin):
20920         (WebCore::FillLayer::clearRepeat):
20921         (WebCore::FillLayer::clearComposite):
20922         (WebCore::FillLayer::clearSize):
20923         (WebCore::FillLayer::setNext):
20924         (WebCore::FillLayer::operator!=):
20925         (WebCore::FillLayer::hasFixedImage):
20926         (WebCore::Transition::isDurationSet):
20927         (WebCore::Transition::isRepeatCountSet):
20928         (WebCore::Transition::isTimingFunctionSet):
20929         (WebCore::Transition::isPropertySet):
20930         (WebCore::Transition::clearDuration):
20931         (WebCore::Transition::clearRepeatCount):
20932         (WebCore::Transition::clearTimingFunction):
20933         (WebCore::Transition::clearProperty):
20934         (WebCore::Transition::duration):
20935         (WebCore::Transition::repeatCount):
20936         (WebCore::Transition::timingFunction):
20937         (WebCore::Transition::property):
20938         (WebCore::Transition::setDuration):
20939         (WebCore::Transition::setRepeatCount):
20940         (WebCore::Transition::setTimingFunction):
20941         (WebCore::Transition::setProperty):
20942         (WebCore::RenderStyle::NonInheritedFlags::operator==):
20943         (WebCore::RenderStyle::setBitDefaults):
20944         (WebCore::RenderStyle::backgroundRepeat):
20945         (WebCore::RenderStyle::backgroundComposite):
20946         (WebCore::RenderStyle::backgroundAttachment):
20947         (WebCore::RenderStyle::backgroundClip):
20948         (WebCore::RenderStyle::backgroundOrigin):
20949         (WebCore::RenderStyle::backgroundSize):
20950         (WebCore::RenderStyle::accessBackgroundLayers):
20951         (WebCore::RenderStyle::backgroundLayers):
20952         (WebCore::RenderStyle::clearBackgroundLayers):
20953         (WebCore::RenderStyle::inheritBackgroundLayers):
20954         (WebCore::RenderStyle::initialFillAttachment):
20955         (WebCore::RenderStyle::initialFillClip):
20956         (WebCore::RenderStyle::initialFillOrigin):
20957         (WebCore::RenderStyle::initialFillRepeat):
20958         (WebCore::RenderStyle::initialFillComposite):
20959         (WebCore::RenderStyle::initialFillSize):
20960         (WebCore::RenderStyle::initialFillXPosition):
20961         (WebCore::RenderStyle::initialFillYPosition):
20962         (WebCore::RenderStyle::initialFillImage):
20963         (WebCore::RenderStyle::initialWhiteSpace):
20964         (WebCore::RenderStyle::initialColor):
20965         * rendering/RenderTableCell.cpp:
20966         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
20967         * rendering/RenderTheme.cpp:
20968         (WebCore::RenderTheme::adjustStyle):
20969         (WebCore::RenderTheme::isControlStyled):
20970         * rendering/RenderTheme.h:
20971         * rendering/RenderThemeMac.h:
20972         * rendering/RenderThemeMac.mm:
20973         (WebCore::RenderThemeMac::isControlStyled):
20975 2008-04-21  Julien Chaffraix  <jchaffraix@webkit.org>
20977         Rubber-stamped by Ap.
20979         Add 2 explicit casts.
20980         Fixes built on 64-bit machines (64-bit to 32-bit conversion warning).
20982         * xml/XMLHttpRequest.cpp:
20983         (WebCore::XMLHttpRequest::dispatchProgressEvent):
20985 2008-04-21  Anders Carlsson  <andersca@apple.com>
20987         Reviewed by Adam.
20989         Make it possible to load resources from the cache. 
20990         (Currently no documents are ever associated with a cache though.)
20991         
20992         * loader/DocumentLoader.cpp:
20993         (WebCore::DocumentLoader::setPrimaryLoadComplete):
20994         (WebCore::DocumentLoader::mainResourceApplicationCache):
20995         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
20996         * loader/DocumentLoader.h:
20997         * loader/MainResourceLoader.cpp:
20998         (WebCore::MainResourceLoader::didFinishLoading):
20999         (WebCore::MainResourceLoader::load):
21000         * loader/MainResourceLoader.h:
21001         (WebCore::MainResourceLoader::applicationCache):
21002         * loader/ResourceLoader.cpp:
21003         (WebCore::ResourceLoader::ResourceLoader):
21004         (WebCore::ResourceLoader::load):
21005         * loader/ResourceLoader.h:
21006         * loader/appcache/ApplicationCacheGroup.h:
21007         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
21009 2008-04-21  MorganL  <morganl.webkit@yahoo.com>
21011         Reviewed by eseidel.  Landed by eseidel.
21013         Add FrameLoader::policyDocumentLoader, and change
21014         provisionalDocumentLoader to have a const signature to be
21015         consistent with documentLoader and activeDocumentLoader.
21017         * WebCore.base.exp:
21018         * WebCore.order:
21019         * loader/FrameLoader.cpp:
21020         (WebCore::FrameLoader::policyDocumentLoader):
21021         (WebCore::FrameLoader::provisionalDocumentLoader):
21022         * loader/FrameLoader.h:
21024 2008-04-21  Julien Chaffraix  <jchaffraix@webkit.org>
21026         Not reviewed, add missing files in my previous commit.
21028         Test: http/tests/xmlhttprequest/infoOnProgressEvent.html
21030         * xml/XMLHttpRequestProgressEvent.cpp: Added.
21031         (WebCore::XMLHttpRequestProgressEvent::XMLHttpRequestProgressEvent):
21032         (WebCore::XMLHttpRequestProgressEvent::position):
21033         (WebCore::XMLHttpRequestProgressEvent::totalSize):
21034         * xml/XMLHttpRequestProgressEvent.h: Added.
21035         (WebCore::XMLHttpRequestProgressEvent::isXMLHttpRequestProgressEvent):
21036         (WebCore::XMLHttpRequestProgressEvent::isProgressEvent):
21037         (WebCore::XMLHttpRequestProgressEvent::lengthComputable):
21038         (WebCore::XMLHttpRequestProgressEvent::loaded):
21039         (WebCore::XMLHttpRequestProgressEvent::total):
21040         * xml/XMLHttpRequestProgressEvent.idl: Added.
21042 2008-04-21  Julien Chaffraix  <jchaffraix@webkit.org>
21044         Reviewed by Ap.
21046         Bug 13596: Implement .onprogress handler on XMLHttpRequest objects to support
21047         progressive download content length information.
21049         - Add the onprogress attribute to XMLHttpRequest and the necessary bindings.
21051         - We use a custom event XMLHttpRequestProgressEvent that is derived from ProgressEvent
21052          (as specified by the XHR2 specification) but also implement LSProgressEvent interface
21053          (to be compliant with Firefox event).
21055         Test: http/tests/xmlhttprequest/infoOnProgressEvent.html
21057         * DerivedSources.make:
21058         * GNUmakefile.am:
21059         * WebCore.pro:
21060         * WebCore.vcproj/WebCore.vcproj:
21061         * WebCore.xcodeproj/project.pbxproj:
21062         * WebCoreSources.bkl:
21063         * bindings/js/JSEventCustom.cpp:
21064         (WebCore::toJS):
21065         * bindings/js/JSXMLHttpRequestCustom.cpp:
21066         (WebCore::JSXMLHttpRequest::mark):
21067         (WebCore::JSXMLHttpRequest::onprogress):
21068         (WebCore::JSXMLHttpRequest::setOnprogress):
21069         * dom/Event.cpp:
21070         (WebCore::Event::isXMLHttpRequestProgressEvent):
21071         * dom/Event.h:
21072         * dom/ProgressEvent.h: Replaced 'private' by 'protected' to enable derivation.
21073         * xml/XMLHttpRequest.cpp:
21074         (WebCore::XMLHttpRequest::onProgressListener): onprogress getter.
21075         (WebCore::XMLHttpRequest::setOnProgressListener): onprogress setter.
21076         (WebCore::XMLHttpRequest::XMLHttpRequest): initialize m_receivedLength.
21077         (WebCore::XMLHttpRequest::internalAbort): reset m_receivedLength on abort.
21078         (WebCore::XMLHttpRequest::didReceiveData): add updateAndDispatchOnProgress call.
21079         (WebCore::XMLHttpRequest::updateAndDispatchOnProgress):
21080         (WebCore::XMLHttpRequest::dispatchProgressEvent):
21081         * xml/XMLHttpRequest.h:
21082         * xml/XMLHttpRequest.idl: Add onprogress event handler.
21083         * xml/XMLHttpRequestProgressEvent.cpp: Added.
21084         (WebCore::XMLHttpRequestProgressEvent::XMLHttpRequestProgressEvent):
21085         (WebCore::XMLHttpRequestProgressEvent::position):
21086         (WebCore::XMLHttpRequestProgressEvent::totalSize):
21087         The two previous methods are used for Firefox compatibility and map to the
21088         same value as the ProgressEvent methods (but they are deprecated and display
21090         * xml/XMLHttpRequestProgressEvent.h: Added.
21091         (WebCore::XMLHttpRequestProgressEvent::isXMLHttpRequestProgressEvent):
21092         (WebCore::XMLHttpRequestProgressEvent::isProgressEvent):
21093         (WebCore::XMLHttpRequestProgressEvent::lengthComputable):
21094         (WebCore::XMLHttpRequestProgressEvent::loaded):
21095         (WebCore::XMLHttpRequestProgressEvent::total):
21096         * xml/XMLHttpRequestProgressEvent.idl: Added.
21098 2008-04-21  Michael Goddard  <michael.goddard@trolltech.com>
21100         Reviewed by Simon.
21102         Better handle Qt binding object lifetime in JS.
21103         Add explicit marking of JS objects created for Qt
21104         bindings, and remove the gcProtect calls.
21106         * bridge/qt/qt_class.cpp:
21107         (KJS::Bindings::QtClass::fallbackObject):
21108         * bridge/qt/qt_instance.cpp:
21109         (KJS::Bindings::QtRuntimeObjectImp::mark):
21110         (KJS::Bindings::QtInstance::~QtInstance):
21111         (KJS::Bindings::QtInstance::mark):
21112         (KJS::Bindings::QtInstance::invokeDefaultMethod):
21113         (KJS::Bindings::QtField::valueFromInstance):
21114         * bridge/qt/qt_instance.h:
21116 2008-04-21  Michael Goddard  <michael.goddard@trolltech.com>
21118         Reviewed by Simon.
21120         Add better support for RuntimeArray type conversions.
21121         It seems that RuntimeArray claims to inherit ArrayInstance
21122         (in the JS sense), but the C++ class doesn't, so properly
21123         access RuntimeArrays.  Also, properly support turning
21124         a JS object into a QVariantMap, since we support the
21125         reverse.
21127         * bridge/qt/qt_runtime.cpp:
21128         (KJS::Bindings::):
21129         (KJS::Bindings::operator<<):
21130         (KJS::Bindings::valueRealType):
21131         (KJS::Bindings::convertValueToQVariant):
21132         (KJS::Bindings::convertQVariantToValue):
21134 2008-04-21  Simon Hausmann  <hausmann@webkit.org>
21136         Reviewed by Holger.
21138         Fix painting of text fields in the CleanLooks style.
21140         The CleanLooks style calls painter->drawRect() and expects a painter
21141         that has no brush set. This is a fairly common assumption and therefore
21142         we now always set the brush to NoBrush before calling a style. This
21143         is done by centralizing the painter setup code into StylePainter
21144         and restore the old brush in the StylePainter destructor.
21146         In addition for textfields it is not necessary anymore to draw
21147         PE_FrameLineEdit as we set the lineWidth in the style option correctly
21148         and it's the style responsibility (QCommonStyle usually) to draw
21149         PE_FrameLineEdit.
21151         * platform/qt/RenderThemeQt.cpp:
21152         (WebCore::RenderThemeQt::paintButton):
21153         (WebCore::RenderThemeQt::paintTextField):
21154         (WebCore::RenderThemeQt::paintMenuList):
21155         (WebCore::StylePainter::StylePainter):
21156         (WebCore::StylePainter::~StylePainter):
21157         * platform/qt/RenderThemeQt.h:
21158         (WebCore::StylePainter::isValid):
21159         (WebCore::StylePainter::drawPrimitive):
21160         (WebCore::StylePainter::drawControl):
21161         (WebCore::StylePainter::drawComplexControl):
21163 2008-04-21  Olivier Goffart  <ogoffart@trolltech.com>
21165         Reviewed by Simon.
21167         Fixes copy and paste of international characters.
21169         When exporting HTML to the clipboard we need meta tags for now that confirm the
21170         conversion to utf-8 done inside QClipboard.
21172         * platform/qt/PasteboardQt.cpp:
21173         (WebCore::Pasteboard::writeSelection):
21175 2008-04-21  Olivier Goffart  <ogoffart@trolltech.com>
21177         Reviewed by Simon.
21179         Fixes: Copying on X11 doesn't always work in webkit
21181         Calling QClipboard::clear right before QClipboard::setData create a race condition with klipper. So don't call QClipboard::clear since it's not required.
21183         * platform/qt/PasteboardQt.cpp:
21185 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
21187         Reviewed by Simon.
21189         * Assume that our lineedit has a frame. This is needed for the motif style
21191         * platform/qt/RenderThemeQt.cpp:
21192         (WebCore::RenderThemeQt::paintTextField):
21194 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
21196         Reviewed by Simon.
21198         * Follow the windows render theme when determining whether to style
21199         listboxes or not.
21201         * platform/qt/RenderThemeQt.cpp:
21202         (WebCore::RenderThemeQt::isControlStyled):
21204 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
21206         Reviewed by Simon.
21208         * Try to bring the notImplemented implementations closer together. This will
21209         print each unimplemted method name only once.
21211         * We might want to change wtf/Assertions.cpp to use qDebug
21213         * platform/NotImplemented.h:
21215 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
21217         Reviewed by Simon.
21219         * Remove the special Qt ctor of BitmapImage as it did not work. The Bitmap returned
21220         0 as width and after intialising drawing would fail. BitmapImage relies on a proper
21221         ImageSource.
21222         * Instead of adding more special cases to BitmapImage create a new class called StillImage
21223         which is getting one QPixmap and is implementing Image::draw and Image::size. This is
21224         working well for the images created using Image::loadPlatformResource.
21226         * platform/graphics/BitmapImage.h:
21227         * platform/graphics/qt/ImageQt.cpp:
21228         (WebCore::BitmapImage::initPlatformData):
21229         (WebCore::BitmapImage::getPixmap):
21230         (WebCore::StillImage::StillImage):
21231         (WebCore::StillImage::size):
21232         (WebCore::StillImage::getPixmap):
21233         (WebCore::StillImage::draw):
21235 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
21237         Reviewed by Simon.
21239         * Package the Resources into a qrc
21241         * Resources/WebKitResources.qrc: Added.
21242         * WebCore.pro:
21244 2008-04-21  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
21246         Reviewed by Simon.
21248         * Make sure every resource is available als png as well.
21250         * Resources/deleteButton.png: Added.
21251         * Resources/deleteButtonPressed.png: Added.
21252         * Resources/missingImage.png: Added.
21253         * Resources/nullPlugin.png: Copied from WebKit/win/WebKit.vcproj/nullplugin.png.
21254         * Resources/textAreaResizeCorner.png: Added.
21255         * Resources/urlIcon.png: Copied from WebKit/win/WebKit.vcproj/urlIcon.png.
21257 2008-04-20  Sriram Neelakandan  <sriram.neelakandan@gmail.com>
21259         Reviewed by Alp Toker.
21261         Implement FileSystemGtk's getFileModificationTime() with GLib.
21263         * platform/gtk/FileSystemGtk.cpp:
21264         (WebCore::getFileModificationTime):
21266 2008-04-20  Christian Persch  <chpe@gnome.org>
21268         Reviewed by Alp Toker.
21270         Bundle GTK+ Xt compatibility code from Mozilla. These files are used
21271         by all currently proposed GTK+ plugin patches and will make the
21272         proposed patches smaller and easier to review.
21274         These files should be kept as close to the upstream versions as
21275         possible so fixes can be shared between projects and to ensure
21276         compatibility with the reference implementation.
21278         * plugins/gtk/gtk2xtbin.c: Added.
21279         (xt_event_prepare):
21280         (xt_event_check):
21281         (xt_event_dispatch):
21282         (xt_event_polling_timer_callback):
21283         (gtk_xtbin_get_type):
21284         (gtk_xtbin_class_init):
21285         (gtk_xtbin_init):
21286         (gtk_xtbin_realize):
21287         (gtk_xtbin_new):
21288         (gtk_xtbin_set_position):
21289         (gtk_xtbin_resize):
21290         (gtk_xtbin_unrealize):
21291         (gtk_xtbin_destroy):
21292         (xt_client_init):
21293         (xt_client_create):
21294         (xt_client_unrealize):
21295         (xt_client_destroy):
21296         (xt_client_set_info):
21297         (xt_client_handle_xembed_message):
21298         (xt_client_event_handler):
21299         (send_xembed_message):
21300         (error_handler):
21301         (trap_errors):
21302         (untrap_error):
21303         (xt_client_focus_listener):
21304         (xt_add_focus_listener):
21305         (xt_remove_focus_listener):
21306         (xt_add_focus_listener_tree):
21307         * plugins/gtk/gtk2xtbin.h: Added.
21309 2008-04-20  Dirk Schulze  <vbs85@gmx.de>
21311         Reviewed by Alp Toker.
21313         http://bugs.webkit.org/show_bug.cgi?id=15449
21314         [CAIRO] SVG gradients do not work properly
21316         Fixed SVG-gradients in Cairo.
21318         * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp:
21319         (WebCore::SVGPaintServerGradient::setup):
21321 2008-04-20  Simon Hausmann  <hausmann@webkit.org>
21323         Reviewed by Alp Toker.
21325         http://bugs.webkit.org/show_bug.cgi?id=18578
21326         Share the printing code between the Gtk and the Qt port
21328         Share the printing code between the Gtk and the Qt port
21329         and added printing to the Qt WebKit API.
21331         * GNUmakefile.am:
21332         * WebCore.pro:
21333         * page/PrintContext.cpp: Added.
21334         (WebCore::PrintContext::PrintContext):
21335         (WebCore::PrintContext::~PrintContext):
21336         (WebCore::PrintContext::pageCount):
21337         (WebCore::PrintContext::computePageRects):
21338         (WebCore::PrintContext::begin):
21339         (WebCore::PrintContext::spoolPage):
21340         * page/PrintContext.h: Added.
21342 2008-04-19  Alp Toker  <alp@nuanti.com>
21344         Reviewed by Mark Rowe.
21346         Complete the Cairo (CSS) gradient implementation.
21348         * platform/graphics/Gradient.h:
21349         * platform/graphics/cairo/GradientCairo.cpp:
21350         (WebCore::Gradient::platformDestroy):
21351         (WebCore::Gradient::fill):
21353 2008-04-19  Alp Toker  <alp@nuanti.com>
21355         Reviewed by Dave Hyatt.
21357         Restore Cairo canvas support following the recent changes in
21358         BitmapImage and ImageBuffer integrating canvas with CSS. Some
21359         drawing regressions remain unfixed.
21361         * platform/graphics/BitmapImage.h:
21362         * platform/graphics/ImageBuffer.h:
21363         * platform/graphics/cairo/ImageBufferCairo.cpp:
21364         (WebCore::ImageBuffer::image):
21365         * platform/graphics/cairo/ImageCairo.cpp:
21366         (WebCore::BitmapImage::BitmapImage):
21367         (WebCore::BitmapImage::draw):
21368         * platform/graphics/cairo/ImageSourceCairo.cpp:
21369         (WebCore::ImageSource::createFrameAtIndex):
21371 2008-04-19  Dan Bernstein  <mitz@apple.com>
21373         Reviewed by Dave Hyatt.
21375         - fix additional cases of https://bugs.webkit.org/show_bug.cgi?id=17921
21376           namely cases where the trailing white space is already in a separate
21377           run but still needs to be re-ordered.
21379         Test: fast/text/trailing-white-space-2.html
21381         * platform/text/BidiResolver.h:
21382         (WebCore::::moveRunToEnd):
21383         (WebCore::::moveRunToBeginning):
21384         * rendering/bidi.cpp:
21385         (WebCore::RenderBlock::layoutInlineChildren):
21387 2008-04-19  Alp Toker  <alp@nuanti.com>
21389         Reviewed by Nikolas.
21391         Add text shadow support for simple text in FontCairo.
21393         * platform/graphics/cairo/FontCairo.cpp:
21394         (WebCore::Font::drawGlyphs):
21396 2008-04-19  David Hyatt  <hyatt@apple.com>
21398         Fix a minor typo in CSSGradientValue's cssText() method.
21400         Reviewed by olliej
21402         * css/CSSGradientValue.cpp:
21403         (WebCore::CSSGradientValue::cssText):
21405 2008-04-19  Brady Eidson  <beidson@apple.com>
21407         Reviewed by Tim Hatcher
21409         Add LocalStorageDatabasePath to the settings for the location of persistent local storage.
21411         * WebCore.base.exp:
21413         * page/Settings.cpp:
21414         (WebCore::Settings::setLocalStorageDatabasePath):
21415         * page/Settings.h:
21416         (WebCore::Settings::localStorageDatabasePath):
21418 2008-04-18 Jan  Michael Alonzo  <jmalonzo@unpluggable.com>
21420         Reviewed by Alp Toker.
21422         http://bugs.webkit.org/show_bug.cgi?id=16620
21423         [GTK] Autotools make dist and make check support
21425         Cleanups.
21427         * GNUmakefile.am:
21429 2008-04-18  Jon Honeycutt  <jhoneycutt@apple.com>
21431         Reviewed by Ollie.
21433         Change when AccessibilityObject children are added.
21435         Children are now added when children() is called if the children vector
21436         is not up to date. This removes the need for addChildren() and
21437         hasChildren() to be called from outside of AccessibilityObject.
21439         * page/AccessibilityObject.cpp:
21440         (WebCore::AccessibilityObject::AccessibilityObject): Initialize
21441         m_haveChildren to false.
21442         (WebCore::AccessibilityObject::clearChildren): Set m_haveChildren to
21443         false.
21444         (WebCore::AccessibilityObject::children): If m_haveChildren is false,
21445         call addChildren().
21446         (WebCore::AccessibilityObject::addChildren): Set m_haveChildren to true.
21447         * page/AccessibilityObject.h: Removed hasChildren(). Made addChildren()
21448         private and const. Added m_haveChildren. Made m_children mutable so
21449         children() could modify it.
21450         * page/mac/AccessibilityObjectWrapper.mm:
21451         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]): Don't
21452         call hasChildren() or addChildren().
21454 2008-04-18  Marco Barisione  <marco.barisione@collabora.co.uk>
21456         Reviewed by Alexey.
21458         http://bugs.webkit.org/show_bug.cgi?id=18357
21459         [GTK] Enter on buttons doesn't work
21461         * platform/gtk/KeyEventGtk.cpp:
21462         (WebCore::singleCharacterString): Set the text of a keyboard event for
21463         GDK_ISO_Enter, GDK_KP_Enter, GDK_Return to "\r" instead of an empty
21464         string.
21466 2008-04-18  Marco Barisione  <marco@barisione.org>
21468         Reviewed by Alp Toker.
21470         https://bugs.webkit.org/show_bug.cgi?id=18576
21471         [GTK] windowsKeyCodeForKeyEvent doesn't handle GDK_ISO_Enter and
21472         GDK_KP_Enter
21474         * platform/gtk/KeyEventGtk.cpp:
21475         (WebCore::windowsKeyCodeForKeyEvent): handle GDK_ISO_Enter and
21476         GDK_KP_Enter in windowsKeyCodeForKeyEvent.
21478 2008-04-18  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
21480         Reviewed by Mark Rowe.
21482         Gtk build fix.  Profiler.h does not live inside the kjs directory of JavaScriptCore
21483         so it doesn't make sense to include it as kjs/Profiler.h from WebCore.
21485         * ForwardingHeaders/profiler/Profiler.h: Renamed from WebCore/ForwardingHeaders/kjs/Profiler.h.
21486         * page/Console.cpp:
21488 2008-04-18  Antti Koivisto  <antti@apple.com>
21490         Reviewed by Oliver.
21492         Implement path animation for <animateMotion>.
21493         
21494         SVG test suite tests
21495         animate-elem-07-t.svg
21496         animate-elem-08-t.svg
21497         animate-elem-24-t.svg
21498         animate-elem-30-t.svg
21500         * svg/SVGAnimateMotionElement.cpp:
21501         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
21502         (WebCore::SVGAnimateMotionElement::hasValidTarget):
21503         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
21504         (WebCore::SVGAnimateMotionElement::rotateMode):
21505         (WebCore::SVGAnimateMotionElement::animationPath):
21506         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
21507         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
21508         * svg/SVGAnimateMotionElement.h:
21509         (WebCore::SVGAnimateMotionElement::):
21510         * svg/SVGAnimationElement.cpp:
21511         (WebCore::SVGAnimationElement::animationMode):
21512         (WebCore::SVGAnimationElement::startedActiveInterval):
21513         * svg/SVGAnimationElement.h:
21514         (WebCore::SVGAnimationElement::):
21515         (WebCore::SVGAnimationElement::calculateDistance):
21516         (WebCore::SVGAnimationElement::animationPath):
21518 2008-04-11  Mark Rowe  <mrowe@apple.com>
21520         Rubber-stamped by Antti Koivisto.
21522         Silence GCC 4.3 warnings by removing extraneous consts.
21524         * platform/graphics/Font.h:
21525         * platform/network/ResourceRequestBase.cpp:
21526         * platform/network/ResourceRequestBase.h:
21528 2008-04-18  Brady Eidson  <beidson@apple.com>
21530         Rubberstamped by Mark Rowe
21532         Roll out http://trac.webkit.org/projects/webkit/changeset/32204 as it was an incorrect build fix.
21533         The feature in question was NOT database support.
21535         The proper build fix was later applied by Mark in http://trac.webkit.org/projects/webkit/changeset/32225
21537         * page/PageGroup.cpp:
21538         (WebCore::PageGroup::localStorage):
21540 2008-04-18  Brady Eidson  <beidson@apple.com>
21542         Reviewed by Darin and Sam
21544         Don't forget PageGroups when their last Page goes away, as this hurts visited links and anything
21545         else that will be per-PageGroup in the future (such as LocalStorage).
21547         This also fixes a leak, since PageGroups are ref-counted and therefore clearing the raw pointer out
21548         of the PageGroups map without manual deletion leaked it!
21550         * page/Page.cpp:
21551         (WebCore::Page::setGroupName):
21553 2008-04-18  Dan Bernstein  <mitz@apple.com>
21555         Reviewed by Brady Eidson.
21557         - fix <rdar://problem/5872671> REGRESSION (3.1.1-TOT): Repro crash going to Ortega Park home page
21559         Test: fast/dynamic/5872671.html
21561         * rendering/bidi.cpp:
21562         (WebCore::RenderBlock::layoutInlineChildren): Added a missing null
21563         check.
21565 2008-04-18  Sam Weinig  <sam@webkit.org>
21567         Rubber-stamped by Mark Rowe.
21569         responseText and responseXML don't throw exceptions so they don't need an ExceptionCode parameter.
21571         * bindings/js/JSXMLHttpRequestCustom.cpp:
21572         * xml/XMLHttpRequest.cpp:
21573         (WebCore::XMLHttpRequest::responseText):
21574         (WebCore::XMLHttpRequest::responseXML):
21575         * xml/XMLHttpRequest.h:
21576         * xml/XMLHttpRequest.idl:
21578 2008-04-18  Kevin McCullough  <kmccullough@apple.com>
21580         Reviewed by Sam.
21582         - Build fix.
21584         * page/Console.cpp:
21585         (WebCore::Console::profile):
21586         * page/Console.h:
21587         * page/Console.idl:
21589 2008-04-18  Eric Seidel  <eric@webkit.org>
21591         Reviewed by darin.
21593         Fix probable crasher caused by invalid static_cast
21594         https://bugs.webkit.org/show_bug.cgi?id=18585
21596         * page/Frame.cpp:
21597         (WebCore::Frame::contentRenderer):
21598         (WebCore::Frame::ownerRenderer):
21599         * rendering/RenderObject.h: sort the "is*" functions
21600         (WebCore::RenderObject::isApplet):
21601         (WebCore::RenderObject::isBR):
21602         (WebCore::RenderObject::isBlockFlow):
21603         (WebCore::RenderObject::isCounter):
21604         (WebCore::RenderObject::isFrame):
21605         (WebCore::RenderObject::isFrameSet):
21606         (WebCore::RenderObject::isImage):
21607         (WebCore::RenderObject::isInlineBlockOrInlineTable):
21608         (WebCore::RenderObject::isInlineFlow):
21609         (WebCore::RenderObject::isListBox):
21610         (WebCore::RenderObject::isListItem):
21611         (WebCore::RenderObject::isListMarker):
21612         (WebCore::RenderObject::isMedia):
21613         (WebCore::RenderObject::isMenuList):
21614         (WebCore::RenderObject::isRenderBlock):
21615         (WebCore::RenderObject::isRenderImage):
21616         (WebCore::RenderObject::isRenderInline):
21617         (WebCore::RenderObject::isRenderPart):
21618         (WebCore::RenderObject::isRenderView):
21619         (WebCore::RenderObject::isSlider):
21620         (WebCore::RenderObject::isTable):
21621         (WebCore::RenderObject::isTableCell):
21622         (WebCore::RenderObject::isTableCol):
21623         (WebCore::RenderObject::isTableRow):
21624         (WebCore::RenderObject::isTableSection):
21625         (WebCore::RenderObject::isTextArea):
21626         * rendering/RenderPart.h:
21628 2008-04-17  Eric Seidel  <eric@webkit.org>
21630         Reviewed by beth.
21632         Rename Frame::renderer() to contentRenderer() and fix uses.
21634         * WebCore.base.exp:
21635         * editing/Editor.cpp:
21636         (WebCore::Editor::respondToChangedContents):
21637         * loader/FrameLoader.cpp:
21638         (WebCore::FrameLoader::gotoAnchor):
21639         * page/DragController.cpp:
21640         (WebCore::DragController::canProcessDrag):
21641         (WebCore::DragController::mayStartDragAtEventLocation):
21642         (WebCore::DragController::startDrag):
21643         * page/EventHandler.cpp:
21644         (WebCore::EventHandler::eventMayStartDrag):
21645         (WebCore::EventHandler::updateSelectionForMouseDrag):
21646         (WebCore::EventHandler::hitTestResultAtPoint):
21647         (WebCore::EventHandler::hoverTimerFired):
21648         (WebCore::EventHandler::handleDrag):
21649         * page/Frame.cpp:
21650         (WebCore::Frame::selectionLayoutChanged):
21651         (WebCore::Frame::contentRenderer):
21652         (WebCore::Frame::paint):
21653         (WebCore::Frame::markAllMatchesForText):
21654         (WebCore::Frame::documentAtPoint):
21655         * page/Frame.h:
21656         * page/FrameView.cpp:
21657         (WebCore::FrameView::~FrameView):
21658         (WebCore::FrameView::adjustViewSize):
21659         (WebCore::FrameView::layout):
21660         (WebCore::FrameView::scheduleRelayoutOfSubtree):
21661         (WebCore::FrameView::needsLayout):
21662         (WebCore::FrameView::setNeedsLayout):
21663         (WebCore::FrameView::updateControlTints):
21664         * rendering/RenderTreeAsText.cpp:
21665         (WebCore::write):
21666         * svg/graphics/SVGImage.cpp:
21667         (WebCore::SVGImage::nativeImageForCurrentFrame):
21669 2008-04-18  Antti Koivisto  <antti@apple.com>
21671         Reviewed by Oliver.
21673         https://bugs.webkit.org/show_bug.cgi?id=18551
21674         REGRESSION (r31801?): Crash in ContainerNode::removedFromDocument on many SVG tests
21675         
21676         Fix for test svg/W3C-SVG-1.1/animate-elem-62-t.svg which was still
21677         crashing under guard malloc after the previous fix.
21678         
21679         If the event base element was a parent of the current element, dereffing it during 
21680         removedFromDocument() would cause problems. Avoid this by not holding ref pointer
21681         to the event base but instead checking from the ref count of the event listener whether
21682         it is still alive and in need for unregistering.
21683         
21684         This shold not be a problem for syncbase pointers since those are always animation elements
21685         and leaf nodes.
21687         * svg/animation/SVGSMILElement.cpp:
21688         (WebCore::ConditionEventListener::ConditionEventListener):
21689         (WebCore::ConditionEventListener::unregister):
21690         (WebCore::ConditionEventListener::handleEvent):
21691         (WebCore::SVGSMILElement::connectConditions):
21692         (WebCore::SVGSMILElement::disconnectConditions):
21693         (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
21694         * svg/animation/SVGSMILElement.h:
21696 2008-04-18  Kevin McCullough  <kmccullough@apple.com>
21698         Reviewed by Sam and Adam.
21700         -<rdar://problem/5770054> JavaScript profiler (10928)
21701         - Added support for console.profile() and console.profileEnd().
21703         * ForwardingHeaders/kjs/FunctionCallProfile.h: Added.
21704         * ForwardingHeaders/kjs/Profiler.h: Added.
21705         * page/Console.cpp:
21706         (WebCore::Console::profile):
21707         (WebCore::Console::profileEnd):
21708         * page/Console.h:
21709         * page/Console.idl:
21711 2008-04-18  Kevin Ollivier  <kevino@theolliviers.com>
21713         wx build fix. Add the new loader/appcache files.
21715         * WebCoreSources.bkl:
21717 2008-04-18  Dan Bernstein  <mitz@apple.com>
21719         Reviewed by Darin Adler.
21721         - fix https://bugs.webkit.org/show_bug.cgi?id=17921
21722           Extra white space at the end of right-aligned or justified text with -webkit-line-break: after-white-space
21724         Test: fast/text/trailing-white-space.html
21726         Made trailing white space on the line always behave like it has the base
21727         bidi level of the block, meaning it will always go on the right (left)
21728         of the line in a left-to-right (right-to-left) block. Made the trailing
21729         white space vanish when it is next to a margin that the text should
21730         be touching, and made its width not count when computing the center
21731         point for center alignment.
21733         * platform/text/BidiResolver.h:
21734         (WebCore::::prependRun): Added.
21735         * rendering/RenderBlock.h:
21736         * rendering/bidi.cpp:
21737         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed the
21738         logicallyLastRun parameter to an optional trailingSpaceRun and changed
21739         the alignment logic to implement the above rules.
21740         (WebCore::RenderBlock::layoutInlineChildren): Added code to identify
21741         when there is trailing white space that needs to be split into its own
21742         run and optionally re-ordered.
21743         (WebCore::RenderBlock::findNextLineBreak): Removed code that split some
21744         trailing space into a separate run in one special case.
21746 2008-04-10  Mark Rowe  <mrowe@apple.com>
21748         Rubber-stamped by Brady Eidson.
21750         Fix builds that do not have DOM storage enabled.
21752         * page/DOMWindow.cpp:
21753         * page/Page.cpp:
21754         * page/PageGroup.cpp:
21755         * page/PageGroup.h:
21757 2008-04-18  Timothy Hatcher  <timothy@apple.com>
21759         Fixes the regression where style rules in the Inspector always show "inline stylesheet"
21760         for the source of the rule and not the URL or other sources.
21762         https://bugs.webkit.org/show_bug.cgi?id=18592
21764         Reviewed by Dan Bernstein.
21766         * page/inspector/StylesSidebarPane.js:
21767         (WebInspector.StylesSidebarPane.prototype.update): Add parentStyleSheet to the anonymous obejct
21768         that we make for each matched rule. The parentStyleSheet property is used later to make the subtitle.
21770 2008-04-18  Dean Jackson <dino@apple.com>
21772         Fixed marquee suspension on wrong document. Passes current
21773         document into Frame::clearTimers.
21775         Reviewed by hyatt.
21777         * history/CachedPage.cpp:
21778         (WebCore::CachedPage::clear):
21779         * page/Frame.cpp:
21780         (WebCore::Frame::clearTimers):
21781         * page/Frame.h:
21783 2008-04-18  Dean Jackson <dino@apple.com>
21785         Add 'ease' timing function to transitions and
21786         make it the default. See latest specification proposal at:
21787         http://webkit.org/specs/CSSVisualEffects/CSSTransitions.html
21789         Reviewed by hyatt.
21791         NOTE: still working on a way to test animating/transitioning content
21793         * css/CSSParser.cpp:
21794         (WebCore::CSSParser::parseTransitionTimingFunction):
21795         * css/CSSStyleSelector.cpp:
21796         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
21797         * css/CSSValueKeywords.in:
21799 2008-04-18  Adam Roben  <aroben@apple.com>
21801         Change JavaScriptDebugListener to use KJS::UString instead of
21802         WebCore::String
21804         This should reduce the number of string allocations performed while
21805         debugging.
21807         Reviewed by Tim Hatcher.
21809         * page/InspectorController.cpp: Updated JavaScriptDebugListener
21810         functions.
21811         * page/InspectorController.h: Ditto.
21812         * page/JavaScriptDebugListener.h: Changed to use KJS::UString instead
21813         of WebCore::String.
21814         * page/JavaScriptDebugServer.cpp: Ditto.
21815         * platform/win/BString.cpp:
21816         (WebCore::BString::BString): Added a constructor that takes a
21817         KJS::UString.
21818         * platform/win/BString.h:
21820 2008-04-18  Adam Roben  <aroben@apple.com>
21822         Mac build fix
21824         * WebCore.xcodeproj/project.pbxproj: Mark JavaScriptDebugListener.h
21825         private.
21827 2008-04-18  Adam Roben  <aroben@apple.com>
21829         Make InspectorController a JavaScriptDebugListener
21831         I added two new functions to the InspectorController JS object:
21832         reloadInspectedPageAndStartDebugging and stopDebugging. These control
21833         when the InspectorController adds/removes itself to/from the
21834         JavaScriptDebugServer.
21836         Reviewed by Tim Hatcher.
21838         * page/InspectorController.cpp:
21839         (WebCore::reloadInspectedPageAndStartDebugging): Added. Just calls
21840         through to InspectorController.
21841         (WebCore::stopDebugging): Ditto.
21842         (WebCore::InspectorController::~InspectorController): Make sure we
21843         stop debugging before we are destroyed so the JavaScriptDebugServer
21844         won't be left with a stale pointer.
21845         (WebCore::InspectorController::windowScriptObjectAvailable): Added two
21846         new functions to our JS object.
21847         (WebCore::InspectorController::closeWindow): Stop debugging when the
21848         window closes.
21849         (WebCore::InspectorController::reloadInspectedPageAndStartDebugging):
21850         Added.
21851         (WebCore::InspectorController::stopDebugging): Added.
21853         (WebCore::InspectorController::didParseSource):
21854         (WebCore::InspectorController::failedToParseSource):
21855         (WebCore::InspectorController::didEnterCallFrame):
21856         (WebCore::InspectorController::willExecuteStatement):
21857         (WebCore::InspectorController::willLeaveCallFrame):
21858         Added empty implementations of the JavaScriptDebugListener functions.
21860         * page/InspectorController.h:
21862 2008-04-17  Adam Roben  <aroben@apple.com>
21864         Rename ExecState* instances from state to exec
21866         Requested by Darin Adler and Sam Weinig.
21868         * bindings/js/JSConsoleCustom.cpp:
21870 2008-04-17  Adam Roben  <aroben@apple.com>
21872         Clean up InspectorController's use of JSStringRef
21874         All JSStringRef creation now happens through a helper function,
21875         jsStringRef, which takes either a const char* or a const String& and
21876         returns a JSRetainPtr<JSStringRef>.
21878         Reviewed by Mitz Pettel.
21880         * page/InspectorController.cpp:
21881         Added jsStringRef and converted all callers to
21882         JSStringCreateWithUTF8CString or JSStringCreateWithCharacters to use
21883         it.
21885 2008-04-17  Adam Roben  <aroben@apple.com>
21887         Add wrappers around InspectorClient::{show,close}Window
21889         This will let us perform actions when the window is actually
21890         showing/closing (InspectorController::show doesn't always directly
21891         show the window).
21893         Reviewed by Tim Hatcher.
21895         * page/InspectorController.cpp:
21896         (WebCore::InspectorController::scriptObjectReady): Call showWindow()
21897         instead of m_client->showWindow().
21898         (WebCore::InspectorController::show): Ditto.
21899         (WebCore::InspectorController::close): Ditto for closeWindow().
21900         (WebCore::InspectorController::showWindow):
21901         (WebCore::InspectorController::closeWindow):
21902         * page/InspectorController.h:
21904 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
21906         Reviewed by Holger.
21908         Adapt to the API changes in WebKit/qt/
21910         * platform/graphics/qt/ImageQt.cpp:
21911         (loadResourcePixmap):
21913 2008-04-18  Ariya Hidayat  <ariya.hidayat@trolltech.com>
21915         Reviewed by Adam Roben.
21917         https://bugs.webkit.org/show_bug.cgi?id=18477
21919         No resize indication is shown when moving/hovering over the frame
21920         border/splitter.
21922         * page/EventHandler.cpp:
21923         (WebCore::EventHandler::selectCursor):
21925 2008-04-18  Adam Roben  <aroben@apple.com>
21927         Windows build fix
21929         Same as before, but for fabs/fabsf.
21931         * svg/SVGAnimateTransformElement.cpp:
21932         (WebCore::SVGAnimateTransformElement::calculateDistance): Changed to
21933         use fabsf and removed narrowPrecisionToFloat.
21935 2008-04-18  Adam Roben  <aroben@apple.com>
21937         Windows build fix
21939         In MSVC, sqrt() has three overloads: float, double, and long
21940         double. In GCC, sqrt() is only for doubles. Both MSVC and GCC have
21941         sqrtf() to operate explicitly on floats.
21943         * svg/SVGAnimateMotionElement.cpp:
21944         (WebCore::SVGAnimateMotionElement::calculateDistance): Changed to use
21945         sqrtf and removed narrowPrecisionToFloat.
21946         * svg/SVGAnimateTransformElement.cpp:
21947         (WebCore::SVGAnimateTransformElement::calculateDistance): Ditto.
21949 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
21951         Fix the build without Database support (fixes the Qt/win build).
21953         * page/PageGroup.cpp:
21954         (WebCore::PageGroup::localStorage):
21956 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
21958         Fix the Gtk build on the build bot.
21960         * GNUmakefile.am: Back out the previous LocalStorage, etc. additions
21961         as they're already listed in another sources group that wasn't used
21962         due to a local configure error.
21964 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
21966         Prospective wx build fix.
21968         * webcore-base.bkl: Add loader/appcache to include paths.
21970 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
21972         Build fix. Back out previous #include fix for PageGroup.h as it broke
21973         the Mac build due to forwarding headers.
21975         * page/PageGroup.h:
21977 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
21979         Build fix for Qt and gcc 4.3.
21981         * WebCore.pro: Added missing files and include paths, re-ordered
21982         the storage/ include path to avoid conflict of storage/LocalStorage.h
21983         with kjs/LocalStorage.h
21984         * page/PageGroup.h: Include LocalStorage.h instead of forward
21985         declaration to fix compilation with gcc 4.3.
21987 2008-04-18  Simon Hausmann  <hausmann@webkit.org>
21989         Build fix for Gtk and gcc 4.3.
21991         * GNUmakefile.am: Added missing files and include paths.
21992         * storage/LocalStorage.h: Include LocalStorageArea.h instead of
21993         forward declaring it due to the HashMap use where gcc 4.3 needs to
21994         see the class.
21996 2008-04-17  Antti Koivisto  <antti@apple.com>
21998         Reviewed by Oliver.
21999         
22000         https://bugs.webkit.org/show_bug.cgi?id=18573
22002         Implement supplemental transforms and use them for <animateMotion> instead of the transform list.
22003         This will allow <animateTransform> and <animateMotion> combine properly.
22005         * svg/SVGAnimateMotionElement.cpp:
22006         (WebCore::SVGAnimateMotionElement::resetToBaseValue):
22007         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
22008         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
22009         * svg/SVGElement.h:
22010         (WebCore::SVGElement::supplementalTransform):
22011         * svg/SVGStyledTransformableElement.cpp:
22012         (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
22013         * svg/SVGStyledTransformableElement.h:
22014         (WebCore::SVGStyledTransformableElement::supplementalTransform):
22015         * svg/SVGTextElement.cpp:
22016         (WebCore::SVGTextElement::animatedLocalTransform):
22017         * svg/SVGTextElement.h:
22018         (WebCore::SVGTextElement::supplementalTransform):
22020 2008-04-17  Antti Koivisto  <antti@apple.com>
22022         Reviewed by Oliver.
22024         Implement calcMode=paced.
22025         
22026         Tested by SVG testsuite tests
22027         animate-elem-11-t.svg
22028         animate-elem-15-t.svg
22029         animate-elem-82-t.svg
22031         * svg/SVGAnimateElement.cpp:
22032         (WebCore::SVGAnimateElement::calculateDistance):
22033         * svg/SVGAnimateElement.h:
22034         * svg/SVGAnimateMotionElement.cpp:
22035         (WebCore::SVGAnimateMotionElement::calculateDistance):
22036         * svg/SVGAnimateMotionElement.h:
22037         * svg/SVGAnimateTransformElement.cpp:
22038         (WebCore::SVGAnimateTransformElement::calculateDistance):
22039         * svg/SVGAnimateTransformElement.h:
22040         * svg/SVGAnimationElement.cpp:
22041         (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
22042         (WebCore::SVGAnimationElement::startedActiveInterval):
22043         * svg/SVGAnimationElement.h:
22044         (WebCore::SVGAnimationElement::calculateDistance):
22046 2008-04-17  David Hyatt  <hyatt@apple.com>
22048         Fix a leak in ImageBuffer's clearImage method.
22050         Reviewed by olliej
22052         * platform/graphics/ImageBuffer.h:
22053         (WebCore::ImageBuffer::clearImage):
22055 2008-04-17  Antti Koivisto  <antti@apple.com>
22057         Reviewed by Eric.
22058         
22059         https://bugs.webkit.org/show_bug.cgi?id=12438
22061         More SVG animation:
22062         
22063         - Make multiple additive animations work
22064         - Support animating <use> instance trees
22066         * svg/SVGAnimateColorElement.cpp:
22067         (WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
22068         * svg/SVGAnimateColorElement.h:
22069         
22070         Made this AnimateElement subclass. All functionality is now provided by AnimateElement.
22071         
22072         * svg/SVGAnimateElement.cpp:
22073         (WebCore::SVGAnimateElement::determinePropertyType):
22074         (WebCore::SVGAnimateElement::calculateAnimatedValue):
22075         (WebCore::SVGAnimateElement::calculateFromAndToValues):
22076         (WebCore::SVGAnimateElement::calculateFromAndByValues):
22077         (WebCore::SVGAnimateElement::resetToBaseValue):
22078         (WebCore::SVGAnimateElement::applyResultsToTarget):
22079         * svg/SVGAnimateElement.h:
22080         * svg/SVGAnimateMotionElement.cpp:
22081         (WebCore::SVGAnimateMotionElement::resetToBaseValue):
22082         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
22083         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
22084         * svg/SVGAnimateMotionElement.h:
22085         * svg/SVGAnimateTransformElement.cpp:
22086         (WebCore::SVGAnimateTransformElement::resetToBaseValue):
22087         (WebCore::SVGAnimateTransformElement::calculateAnimatedValue):
22088         (WebCore::SVGAnimateTransformElement::calculateFromAndByValues):
22089         (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
22090         * svg/SVGAnimateTransformElement.h:
22091         
22092         Switch to new model where
22093         - resetToBaseValue() resets the animated value back to the base value
22094         - calculateAnimatedValue() computes the value and adds it to the element used for accumulation
22095         - applyResultsToTarget() sets the computed value the target element
22096         
22097         * svg/SVGAnimationElement.cpp:
22098         (WebCore::SVGAnimationElement::fromValue):
22099         (WebCore::SVGAnimationElement::attributeIsCSS):
22100         (WebCore::SVGAnimationElement::targetAttributeIsCSS):
22101         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
22102         
22103         Update instances too.
22104         
22105         (WebCore::SVGAnimationElement::startedActiveInterval):
22106         (WebCore::SVGAnimationElement::updateAnimation):
22107         (WebCore::SVGAnimationElement::endedActiveInterval):
22108         * svg/SVGAnimationElement.h:
22109         * svg/SVGSVGElement.cpp:
22110         (WebCore::SVGSVGElement::SVGSVGElement):
22111         * svg/SVGSetElement.cpp:
22112         (WebCore::SVGSetElement::SVGSetElement):
22113         * svg/SVGSetElement.h:
22114         
22115         Made this AnimateElement subclass. All functionality is now provided by AnimateElement.
22116         
22117         * svg/animation/SMILTimeContainer.cpp:
22118         (WebCore::SMILTimeContainer::SMILTimeContainer):
22119         (WebCore::SMILTimeContainer::unschedule):
22120         (WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
22121         (WebCore::PriorityCompare::PriorityCompare):
22122         (WebCore::PriorityCompare::operator()):
22123         (WebCore::SMILTimeContainer::sortByPriority):
22124         (WebCore::applyOrderSortFunction):
22125         (WebCore::sortByApplyOrder):
22126         (WebCore::SMILTimeContainer::baseValueFor):
22127         (WebCore::SMILTimeContainer::updateAnimations):
22128         * svg/animation/SMILTimeContainer.h:
22129         (WebCore::SMILTimeContainer::create):
22130         (WebCore::SMILTimeContainer::setDocumentOrderIndexesDirty):
22131         
22132         Do additive animation with the following steps
22133         - sort active animations based on their priority (begin time, document order).
22134         - if not yet saved for each (element, attribute) pair save the base value.
22135         - lowest priority animation for each (element, attribute) acts as the result element.
22136         - animation results are resolved in priority order and results are accumulated to the result element.
22137         - after all active animations have been processed the values in result elements are applied to the target elements.
22138         
22139         * svg/animation/SVGSMILElement.cpp:
22140         (WebCore::SVGSMILElement::SVGSMILElement):
22141         (WebCore::SVGSMILElement::insertedIntoDocument):
22142         
22143         Invalidate document order index.
22144         
22145         (WebCore::SVGSMILElement::attributeName):
22146         (WebCore::SVGSMILElement::isInactive):
22147         (WebCore::SVGSMILElement::isFrozen):
22148         (WebCore::SVGSMILElement::beginListChanged):
22149         (WebCore::SVGSMILElement::determineActiveState):
22150         (WebCore::SVGSMILElement::isContributing):
22151         (WebCore::SVGSMILElement::progress):
22152         
22153         Take care that animations in frozen state still contribute to the total. Since we now build the result starting
22154         from the base value, fill="replace" works magically simply by not contributing anything.
22155         
22156         * svg/animation/SVGSMILElement.h:
22157         (WebCore::SVGSMILElement::previousIntervalBegin):
22158         (WebCore::SVGSMILElement::documentOrderIndex):
22159         (WebCore::SVGSMILElement::setDocumentOrderIndex):
22161 2008-04-17  Jon Honeycutt  <jhoneycutt@apple.com>
22163         Reviewed by Darin, Alice.
22165         Implement AXObjectCache::detachWrapper() on Windows.
22167         * page/win/AXObjectCacheWin.cpp:
22168         (WebCore::AXObjectCache::detachWrapper): If this object has a wrapper,
22169         call its detach() method.
22171 2008-04-17  Jon Honeycutt  <jhoneycutt@apple.com>
22173         Reviewed by mrowe.
22175         Define HAVE_ACCESSIBILITY in a way that WebKit and WebCore can see it.
22177         * config.h: Remove HAVE_ACCESSIBILITY.
22178         * page/AccessibilityObject.h: Include wtf/Platform.h to pick up
22179         HAVE_ACCESSIBILITY.
22181 2008-04-17  Jon Honeycutt  <jhoneycutt@apple.com>
22183         Reviewed by aliu.
22185         * page/AccessibilityObject.cpp:
22186         (WebCore::AccessibilityObject::layoutCount): Check isRenderView() before
22187         casting to RenderView.
22189 2008-04-17  Antti Koivisto  <antti@apple.com>
22191         Reviewed by Oliver.
22192         
22193         Fix https://bugs.webkit.org/show_bug.cgi?id=18551
22194         Bug 18551: REGRESSION (r31801?): Crash in ContainerNode::removedFromDocument on many SVG tests under guard malloc
22195         
22196         Freeing a RefPtr that is the last ref to the parent from removedFromDocument() is a bad idea.
22198         Caching the target element is too dangerous, let's simply not do it. Getting it is very cheap anyway.
22200         * svg/animation/SVGSMILElement.cpp:
22201         (WebCore::SVGSMILElement::removedFromDocument):
22202         (WebCore::SVGSMILElement::attributeChanged):
22203         (WebCore::SVGSMILElement::targetElement):
22204         * svg/animation/SVGSMILElement.h:
22206 2008-04-17  Sam Weinig  <sam@webkit.org>
22208         Reviewed by Anders Carlsson.
22210         Autogenerate the XMLHttpRequest javascript binding.
22212         * GNUmakefile.am:
22213         * WebCore.pro:
22214         * WebCore.vcproj/WebCore.vcproj:
22215         * WebCoreSources.bkl:
22216         * DerivedSources.make:
22217         * WebCore.xcodeproj/project.pbxproj:
22218         * bindings/js/JSDOMWindowBase.cpp:
22219         * bindings/js/JSXMLHttpRequest.cpp: Removed.
22220         * bindings/js/JSXMLHttpRequest.h: Removed.
22221         * bindings/js/JSXMLHttpRequestConstructor.cpp: Added.
22222         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
22223         (WebCore::JSXMLHttpRequestConstructor::implementsConstruct):
22224         (WebCore::JSXMLHttpRequestConstructor::construct):
22225         * bindings/js/JSXMLHttpRequestConstructor.h: Added.
22226         (WebCore::JSXMLHttpRequestConstructor::classInfo):
22227         * bindings/js/JSXMLHttpRequestCustom.cpp: Added.
22228         (WebCore::JSXMLHttpRequest::mark):
22229         (WebCore::JSXMLHttpRequest::onreadystatechange):
22230         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
22231         (WebCore::JSXMLHttpRequest::onload):
22232         (WebCore::JSXMLHttpRequest::setOnload):
22233         (WebCore::JSXMLHttpRequest::responseXML):
22234         (WebCore::JSXMLHttpRequest::open):
22235         (WebCore::JSXMLHttpRequest::setRequestHeader):
22236         (WebCore::JSXMLHttpRequest::send):
22237         (WebCore::JSXMLHttpRequest::getResponseHeader):
22238         (WebCore::JSXMLHttpRequest::overrideMimeType):
22239         (WebCore::JSXMLHttpRequest::addEventListener):
22240         (WebCore::JSXMLHttpRequest::removeEventListener):
22241         (WebCore::JSXMLHttpRequest::dispatchEvent):
22242         * xml/XMLHttpRequest.cpp:
22243         (WebCore::XMLHttpRequest::readyState):
22244         (WebCore::XMLHttpRequest::responseText):
22245         * xml/XMLHttpRequest.h:
22246         * xml/XMLHttpRequest.idl: Added.
22248 2008-04-17  Brady Eidson  <beidson@apple.com>
22250         Reviewed by Anders
22252         The SessionStorage for a Page has to be copied every time a new Page is created.
22254         I thought I had the right choke point for creating new Pages at FrameLoader::createWindow(),
22255         but it just so happens there was another - in the ContextMenuController.
22257         The *real* choke point for this, then, is in the Chrome itself.
22259         * loader/FrameLoader.cpp:
22260         (WebCore::FrameLoader::createWindow): Don't do the SessionStorage copy here...
22262         * page/Chrome.cpp:
22263         (WebCore::Chrome::createWindow): Do it here, instead!
22265 2008-04-17  Alice Liu  <alice.liu@apple.com>
22267         Reviewed by Jon Honeycutt.
22269         Added some asserts to catch undesirable usage of setWrapper and addChildren.
22270         * page/AccessibilityObject.cpp:
22271         (WebCore::AccessibilityObject::addChildren):
22272         * page/AccessibilityObject.h:
22273         (WebCore::AccessibilityObject::setWrapper):
22275 2008-04-17  Brady Eidson  <beidson@apple.com>
22277         Reviewed by the Mitzpettel
22279         Before things get much more intertwined, move away from a global LocalStorage model
22280         to a per-PageGroup LocalStorage model.
22282         * page/DOMWindow.cpp:
22283         (WebCore::DOMWindow::localStorage): Get it from the current PageGroup, not the global
22284           LocalStorage (which doesn't exist anymore).
22286         * page/Page.cpp:
22287         * page/PageGroup.cpp:
22288         (WebCore::PageGroup::localStorage): Create a LocalStorage object on demand.
22289         * page/PageGroup.h:
22291         * storage/LocalStorage.cpp:
22292         (WebCore::LocalStorage::LocalStorage): Hold a back pointer to the owning PageGroup.
22293         (WebCore::LocalStorage::storageArea):
22294         * storage/LocalStorage.h:
22295         (WebCore::LocalStorage::create):
22297         * storage/LocalStorageArea.cpp:
22298         (WebCore::LocalStorageArea::LocalStorageArea): Hold a back pointer to the owning LocalStorage.
22299         * storage/LocalStorageArea.h:
22300         (WebCore::LocalStorageArea::create):
22302 2008-04-17  Anders Carlsson  <andersca@apple.com>
22304         Fix indentation.
22305         
22306         * loader/DocumentLoader.cpp:
22307         (WebCore::DocumentLoader::scheduleArchiveLoad):
22309 2008-04-17  Anders Carlsson  <andersca@apple.com>
22311         Reviewed by Brady.
22313         When in the web archive debug mode, don't call didFail immediately. Instead,
22314         add the loader to the substitute resource map, but with a null resource, which
22315         indicates to substituteResourceDeliveryTimerFired that the load should fail.
22316         
22317         * loader/DocumentLoader.cpp:
22318         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
22319         (WebCore::DocumentLoader::scheduleArchiveLoad):
22320         * loader/ResourceLoader.cpp:
22321         (WebCore::ResourceLoader::load):
22323 2008-04-17  Anders Carlsson  <andersca@apple.com>
22325         Reviewed by Sam.
22327         Add JS bindings for the DOMApplicationCache object.
22328         
22329         * bindings/js/JSDOMApplicationCacheCustom.cpp:
22330         (WebCore::JSDOMApplicationCache::add):
22331         (WebCore::JSDOMApplicationCache::remove):
22332         (WebCore::JSDOMApplicationCache::addEventListener):
22333         (WebCore::JSDOMApplicationCache::removeEventListener):
22334         (WebCore::JSDOMApplicationCache::dispatchEvent):
22335         (WebCore::JSDOMApplicationCache::setOnchecking):
22336         (WebCore::JSDOMApplicationCache::onchecking):
22337         (WebCore::JSDOMApplicationCache::setOnerror):
22338         (WebCore::JSDOMApplicationCache::onerror):
22339         (WebCore::JSDOMApplicationCache::setOnnoupdate):
22340         (WebCore::JSDOMApplicationCache::onnoupdate):
22341         (WebCore::JSDOMApplicationCache::setOndownloading):
22342         (WebCore::JSDOMApplicationCache::ondownloading):
22343         (WebCore::JSDOMApplicationCache::setOnprogress):
22344         (WebCore::JSDOMApplicationCache::onprogress):
22345         (WebCore::JSDOMApplicationCache::setOnupdateready):
22346         (WebCore::JSDOMApplicationCache::onupdateready):
22347         (WebCore::JSDOMApplicationCache::setOncached):
22348         (WebCore::JSDOMApplicationCache::oncached):
22349         (WebCore::JSDOMApplicationCache::mark):
22350         * bindings/js/JSDOMWindowCustom.cpp:
22351         (WebCore::JSDOMWindow::mark):
22352         * bindings/js/JSEventTargetBase.cpp:
22353         (WebCore::toJS):
22354         * loader/appcache/DOMApplicationCache.idl:
22355         * page/DOMWindow.idl:
22357 2008-04-17 Eric Carlson  <eric.carlson@apple.com> 
22359         Reviewed by Adele. 
22361         Fix for <rdar://problem/5861642> QTMovieWin returns uninitialized values
22363         * platform/graphics/win/QTMovieWin.cpp:
22364         (QTMovieWin::rate):
22365         (QTMovieWin::setRate):
22366         (QTMovieWin::setVolume):
22367         (QTMovieWin::getNaturalSize):
22369 2008-04-17  Marco Barisione  <marco.barisione@collabora.co.uk>
22371         Reviewed by Alp Toker.
22373         http://bugs.webkit.org/show_bug.cgi?id=18335
22374         Pango font backend unable to display japanese properly
22376         Different fonts can have different glyph indices, so we need to pass
22377         the right font when retrieving a glyph index.
22379         * platform/graphics/gtk/GlyphPageTreeNodePango.cpp:
22380         (WebCore::pango_font_get_glyph): Temporarily override the font in the
22381         PangoAnalysis passed to pango_shape.
22383 2008-04-17  Anders Carlsson  <andersca@apple.com>
22385         According to Sam and David, it's "topLevel", not "toplevel".
22386         
22387         * loader/DocumentLoader.cpp:
22388         (WebCore::DocumentLoader::topLevelApplicationCache):
22389         * loader/DocumentLoader.h:
22390         * loader/appcache/DOMApplicationCache.cpp:
22391         (WebCore::DOMApplicationCache::associatedCache):
22393 2008-04-17  Anders Carlsson  <andersca@apple.com>
22395         Reviewed by Sam.
22397         Add DOMApplicationCache implementation.
22398         
22399         * dom/EventNames.h:
22400         Add new event names.
22401         
22402         * dom/EventTarget.cpp:
22403         (WebCore::EventTarget::toDOMApplicationCache):
22404         * dom/EventTarget.h:
22405         Add EventTarget conversion method.
22406         
22407         * loader/appcache/ApplicationCacheGroup.h:
22408         (WebCore::ApplicationCacheGroup::):
22409         (WebCore::ApplicationCacheGroup::status):
22410         (WebCore::ApplicationCacheGroup::update):
22411         (WebCore::ApplicationCacheGroup::newestCache):
22412         Add more stubs.
22413         
22414         * loader/appcache/DOMApplicationCache.cpp:
22415         * loader/appcache/DOMApplicationCache.h:
22417         * page/DOMWindow.cpp:
22418         (WebCore::DOMWindow::clear):
22419         (WebCore::DOMWindow::applicationCache):
22420         * page/DOMWindow.h:
22421         (WebCore::DOMWindow::optionalApplicationCache):
22422         Add ApplicationCache member.
22423         
22424 2008-04-17  Anders Carlsson  <andersca@apple.com>
22426         Build fix.
22428         * WebCore.vcproj/WebCore.vcproj:
22430 2008-04-17  Dean Jackson  <dino@apple.com>
22432         Reviewed by Hyatt.
22434         Fix for <rdar://problem/5849968> translate method should have Y=0 when only X is present
22436         Test: fast/css/transform-default-parameter.html
22438         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):
22439         translate function with only X parameter now leaves the Y parameter as zero.
22441 2008-04-17  Anders Carlsson  <andersca@apple.com>
22443         Reviewed by Sam.
22444         
22445         Add plumbing for associating document loaders with application caches.
22446         
22447         * loader/DocumentLoader.cpp:
22448         (WebCore::DocumentLoader::DocumentLoader):
22449         (WebCore::DocumentLoader::~DocumentLoader):
22450         (WebCore::DocumentLoader::originalURL):
22451         (WebCore::DocumentLoader::requestURL):
22452         (WebCore::DocumentLoader::responseURL):
22453         (WebCore::DocumentLoader::responseMIMEType):
22454         (WebCore::DocumentLoader::setCandidateApplicationCacheGroup):
22455         (WebCore::DocumentLoader::setApplicationCache):
22456         (WebCore::DocumentLoader::toplevelApplicationCache):
22457         * loader/DocumentLoader.h:
22458         (WebCore::DocumentLoader::candidateApplicationCacheGroup):
22459         (WebCore::DocumentLoader::applicationCache):
22460         * loader/appcache/ApplicationCacheGroup.h:
22461         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
22463 2008-04-17  Adam Roben  <aroben@apple.com>
22465         Fix Bug 18544: REGRESSION (r31951): Two fast/xsl tests crash
22467         <https://bugs.webkit.org/show_bug.cgi?id=18544>
22469         r31951 changed XSLTProcessor::parseErrorFunc to expect a Console* as
22470         the context parameter. The caller in XSLTProcessor was changed, but
22471         the one in XSLStyleSheet was missed.
22473         Reviewed by Alexey Proskuryakov.
22475         * xml/XSLStyleSheet.cpp:
22476         (WebCore::XSLStyleSheet::parseString): Pass the Console as the context
22477         to parseErrorFunc.
22479 2008-04-17  Adam Roben  <aroben@apple.com>
22481         Windows build fix after r31981
22483         * dom/Document.idl: Omit getCSSCanvasContext from the COM bindings.
22485 2008-04-17  Ariya Hidayat  <ariya.hidayat@trolltech.com>
22487         Reviewed by Simon.
22489         Implemented getFileModificationTime and pathGetFileName for the Qt port.
22491         * platform/qt/FileSystemQt.cpp:
22492         (WebCore::getFileModificationTime):
22494 2008-04-17  Mark Rowe  <mrowe@apple.com>
22496         Fix the non-Mac builds that I broke with my Mac build fix.
22498         * css/CSSMutableStyleDeclaration.cpp:
22499         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Explicitly use the size_t version of max
22500         to avoid making assumptions about sizeof(size_t).
22502 2008-04-17  Mark Rowe  <mrowe@apple.com>
22504         Rubber-stamped by Dan Bernstein.
22506         Fix the Mac build.
22508         * css/CSSMutableStyleDeclaration.cpp:
22509         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue): Update to use size_t in place of unsigned.
22510         * dom/NamedNodeMap.h: Ditto.
22511         * page/AccessibilityObject.h: Forward-declare AccessibilityObjectWrapper in the non-Objective-C case too.
22513 2008-04-16  Jon Honeycutt  <jhoneycutt@apple.com>
22515         Reviewed by Darin.
22517         Use size_t instead of unsigned where appropriate.
22519         * css/CSSValueList.h:
22520         * dom/NamedAttrMap.h:
22521         * rendering/RenderStyle.h:
22523 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
22525         Reviewed by Darin.
22527         Add some methods to check AccessibilityObject state.
22529         * page/AccessibilityObject.cpp:
22530         (WebCore::AccessibilityObject::AccessibilityObject): Assert that the
22531         passed renderer is not null.
22532         (WebCore::AccessibilityObject::isPasswordField): Refactored to use early
22533         return.
22534         (WebCore::AccessibilityObject::isPressed): Return true if this is a
22535         button in the pressed state.
22536         (WebCore::AccessibilityObject::isIndeterminate): Return true if this is
22537         a tri-state checkbox in the indeterminate state.
22538         (WebCore::AccessibilityObject::isChecked): True if this is a radio
22539         button or checkbox in the checked state.
22540         (WebCore::AccessibilityObject::isHovered): True if object is currently
22541         under the mouse cursor.
22542         (WebCore::AccessibilityObject::isMultiSelect): True if this is a select
22543         element capable of multi-select.
22544         (WebCore::AccessibilityObject::isReadOnly): False if this object has
22545         editable content.
22546         (WebCore::AccessibilityObject::isOffScreen): True if this object is not
22547         in the visible portion of the view.
22548         * page/AccessibilityObject.h: Grouped methods into is-state and is-kind.
22550 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
22552         Reviewed by Darin.
22554         Add AccessibilityObjectWrapper to Windows.
22556         * WebCore.vcproj/WebCore.vcproj: Add AccessibilityObjectWrapperWin.h
22557         * page/AccessibilityObject.h: Include COMPtr.h,
22558         AccessibilityObjectWrapperWin.h on Windows. Define wrapper() and
22559         setWrapper() if accessibility is present. Add an m_wrapper on Windows.
22560         * page/AccessibilityObject.cpp:
22561         (WebCore::AccessibilityObject::detach): Clear m_wrapper if
22562         accessibility is present.
22563         * page/win/AccessibilityObjectWrapperWin.h: Added; defines a wrapper for
22564         AccessibilityObjects on Windows.
22565         (WebCore::AccessibilityObjectWrapper::attached): Return true if attached
22566         to an object.
22567         (WebCore::AccessibilityObjectWrapper::accessibilityObject): Return the
22568         wrapped object.
22569         (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):
22571 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
22573         Reviewed by Darin.
22575         Add AXObjectCache to Windows.
22577         * WebCore.vcproj/WebCore.vcproj: Add AXObjectCacheWin.cpp.
22578         * page/AXObjectCache.h: Add handleFocusedUIElementChanged definition to
22579         non-Mac platforms, and added stub for it. Replace PLATFORM(MAC)
22580         conditional with HAVE(ACCESSIBILITY) for stubs.
22581         (WebCore::AXObjectCache::enableAccessibility):
22582         (WebCore::AXObjectCache::accessibilityEnabled):
22583         * page/win/AXObjectCacheWin.cpp: Added; contains stubs for the methods
22584         below.
22585         (WebCore::AXObjectCache::detachWrapper):
22586         (WebCore::AXObjectCache::attachWrapper):
22587         (WebCore::AXObjectCache::postNotification):
22588         (WebCore::AXObjectCache::postNotificationToElement):
22589         * config.h: Define HAVE_ACCESSIBILITY on Mac and Windows.
22591 2008-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
22593         Reviewed by Darin.
22595         * WebCore.vcproj/WebCore.vcproj: Fix path to AXObjectCache.h.
22597 2008-04-16  Brady Eidson  <beidson@apple.com>
22599         Reviewed by Darin Adler
22601         Merge the StorageAreaClient into the StorageArea class itself as pure virtual methods.
22602         Add "LocalStorageArea" and "SessionStorageArea" implementations, and have SessionStorage
22603         and LocalStorage instantiate the appropriate type of StorageArea object.
22605         This purpose of this change is because while adding the persistent store to LocalStorage,
22606         it became obvious that the client approach wasn't scaling well.  Additionally, a StorageArea
22607         backing a local storage area required vastly different data members compared to one backing
22608         a session storage area.
22610         This will be much cleaner going forward.
22612         * GNUmakefile.am:
22613         * WebCore.pro:
22614         * WebCore.vcproj/WebCore.vcproj:
22615         * WebCore.xcodeproj/project.pbxproj:
22616         * WebCoreSources.bkl:
22618         * storage/LocalStorage.cpp:
22619         (WebCore::LocalStorage::storageArea):
22620         * storage/LocalStorage.h:
22622         * storage/LocalStorageArea.cpp: Added.
22623         (WebCore::LocalStorageArea::LocalStorageArea):
22624         (WebCore::LocalStorageArea::itemChanged):
22625         (WebCore::LocalStorageArea::itemRemoved):
22626         (WebCore::LocalStorageArea::dispatchStorageEvent):
22627         * storage/LocalStorageArea.h: Added.
22628         (WebCore::LocalStorageArea::create):
22630         * storage/SessionStorage.cpp:
22631         (WebCore::SessionStorage::copy):
22632         (WebCore::SessionStorage::storageArea):
22633         * storage/SessionStorage.h:
22635         * storage/SessionStorageArea.cpp: Added.
22636         (WebCore::SessionStorageArea::copy):
22637         (WebCore::SessionStorageArea::SessionStorageArea):
22638         (WebCore::SessionStorageArea::itemChanged):
22639         (WebCore::SessionStorageArea::itemRemoved):
22640         (WebCore::SessionStorageArea::dispatchStorageEvent):
22641         * storage/SessionStorageArea.h: Added.
22642         (WebCore::SessionStorageArea::create):
22643         (WebCore::SessionStorageArea::page):
22645         * storage/StorageArea.cpp:
22646         (WebCore::StorageArea::StorageArea):
22647         (WebCore::StorageArea::setItem):
22648         (WebCore::StorageArea::removeItem):
22649         (WebCore::StorageArea::storageMap):
22650         * storage/StorageArea.h:
22652         * storage/StorageAreaClient.h: Removed.
22654 2008-04-16  David Hyatt  <hyatt@apple.com>
22656         Add support for the ability to draw directly into CSS images using CanvasRenderingContext2D.
22658         Reviewed by olliej
22660         Added fast/canvas/canvas-bg.html
22662         * GNUmakefile.am:
22663         * WebCore.pro:
22664         * WebCore.vcproj/WebCore.vcproj:
22665         * WebCore.xcodeproj/project.pbxproj:
22666         * WebCoreSources.bkl:
22667         * css/CSSCanvasValue.cpp: Added.
22668         (WebCore::CSSCanvasValue::~CSSCanvasValue):
22669         (WebCore::CSSCanvasValue::cssText):
22670         (WebCore::CSSCanvasValue::canvasChanged):
22671         (WebCore::CSSCanvasValue::canvasResized):
22672         (WebCore::CSSCanvasValue::fixedSize):
22673         (WebCore::CSSCanvasValue::element):
22674         (WebCore::CSSCanvasValue::image):
22675         * css/CSSCanvasValue.h: Added.
22676         (WebCore::CSSCanvasValue::CSSCanvasValue):
22677         (WebCore::CSSCanvasValue::isFixedSize):
22678         (WebCore::CSSCanvasValue::setName):
22679         * css/CSSGradientValue.cpp:
22680         * css/CSSGradientValue.h:
22681         * css/CSSImageGeneratorValue.cpp:
22682         (WebCore::CSSImageGeneratorValue::generatedImage):
22683         * css/CSSImageGeneratorValue.h:
22684         (WebCore::CSSImageGeneratorValue::isFixedSize):
22685         (WebCore::CSSImageGeneratorValue::fixedSize):
22686         * css/CSSParser.cpp:
22687         (WebCore::CSSParser::parseContent):
22688         (WebCore::CSSParser::parseBackgroundImage):
22689         (WebCore::CSSParser::parseBorderImage):
22690         (WebCore::CSSParser::parseCanvas):
22691         * css/CSSParser.h:
22692         * dom/Document.cpp:
22693         (WebCore::Document::getCSSCanvasContext):
22694         (WebCore::Document::getCSSCanvasElement):
22695         * dom/Document.h:
22696         * dom/Document.idl:
22697         * html/HTMLCanvasElement.cpp:
22698         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
22699         (WebCore::HTMLCanvasElement::reset):
22700         * html/HTMLCanvasElement.h:
22701         (WebCore::HTMLCanvasElement::setSize):
22702         * rendering/RenderBox.cpp:
22703         (WebCore::RenderBox::calculateBackgroundSize):
22704         (WebCore::RenderBox::imageChanged):
22705         * rendering/RenderBox.h:
22706         * rendering/RenderImage.cpp:
22707         (WebCore::RenderImage::imageChanged):
22708         * rendering/RenderImage.h:
22709         (WebCore::RenderImage::imagePtr):
22710         (WebCore::RenderImage::intrinsicSizeChanged):
22711         * rendering/RenderImageGeneratedContent.h:
22712         (WebCore::RenderImageGeneratedContent::imageSize):
22713         (WebCore::RenderImageGeneratedContent::imagePtr):
22714         * rendering/RenderListMarker.cpp:
22715         (WebCore::RenderListMarker::layout):
22716         (WebCore::RenderListMarker::imageChanged):
22717         (WebCore::RenderListMarker::calcPrefWidths):
22718         (WebCore::RenderListMarker::getRelativeMarkerRect):
22719         * rendering/RenderListMarker.h:
22720         * rendering/RenderObject.cpp:
22721         (WebCore::RenderObject::paintBorderImage):
22722         (WebCore::RenderObject::imageChanged):
22723         * rendering/RenderObject.h:
22724         (WebCore::RenderObject::imageChanged):
22725         * rendering/RenderSVGImage.cpp:
22726         (WebCore::RenderSVGImage::imageChanged):
22727         * rendering/RenderSVGImage.h:
22728         * rendering/RenderStyle.cpp:
22729         (WebCore::StyleCachedImage::imageSize):
22730         (WebCore::StyleGeneratedImage::imageSize):
22731         * rendering/RenderStyle.h:
22732         (WebCore::StyleCachedImage::data):
22733         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
22734         (WebCore::StyleGeneratedImage::data):
22735         (WebCore::StyleGeneratedImage::imageHasRelativeWidth):
22736         (WebCore::StyleGeneratedImage::imageHasRelativeHeight):
22737         (WebCore::StyleGeneratedImage::usesImageContainerSize):
22738         * rendering/RenderTableCol.cpp:
22739         (WebCore::RenderTableCol::imageChanged):
22740         * rendering/RenderTableCol.h:
22741         * rendering/RenderTableRow.cpp:
22742         (WebCore::RenderTableRow::imageChanged):
22743         * rendering/RenderTableRow.h:
22744         * rendering/RenderTableSection.cpp:
22745         (WebCore::RenderTableSection::imageChanged):
22746         * rendering/RenderTableSection.h:
22748 2008-04-16  Anders Carlsson  <andersca@apple.com>
22750         Reviewed by Darin.
22752         Add manifest parser.
22754         * loader/appcache/ManifestParser.cpp:
22755         (WebCore::parseManifest):
22756         * loader/appcache/ManifestParser.h:
22757         * platform/text/CharacterNames.h:
22759 2008-04-16  Darin Adler  <darin@apple.com>
22761         Reviewed by Mitz.
22763         - fix <rdar://problem/5858617> REGRESSION (r21452-Safari 3.1):
22764           Safari does not find words containing ÃŸ (German letter sharp-s)
22766         Test: fast/text/find-case-folding.html
22768         * platform/text/StringImpl.cpp:
22769         (WebCore::StringImpl::foldCase):
22770         Pass the folded length to foldCase rather than the original string length.
22771         Without this, we get an error code every time.
22773 2008-04-16  Anders Carlsson  <andersca@apple.com>
22775         Fix build.
22776         
22777         * loader/appcache/ApplicationCache.cpp:
22778         (WebCore::ApplicationCache::ApplicationCache):
22779         (WebCore::ApplicationCache::setManifestResource):
22780         (WebCore::ApplicationCache::addResource):
22782 2008-04-16  Anders Carlsson  <andersca@apple.com>
22784         Reviewed by Darin.
22786         Add new protocolHostAndPortAreEqual function.
22787         
22788         * platform/KURL.cpp:
22789         (WebCore::KURL::host):
22790         (WebCore::KURL::setHost):
22791         (WebCore::KURL::setHostAndPort):
22792         (WebCore::protocolHostAndPortAreEqual):
22793         * platform/KURL.h:
22794         (WebCore::KURL::hostStart):
22796 2008-04-16  Anders Carlsson  <andersca@apple.com>
22798         Reviewed by Sam.
22799         
22800         Fix some style nits.
22801         
22802         * loader/appcache/ApplicationCache.cpp:
22803         (WebCore::ApplicationCache::ApplicationCache):
22804         (WebCore::ApplicationCache::setManifestResource):
22805         (WebCore::ApplicationCache::addResource):
22806         (WebCore::ApplicationCache::removeResource):
22807         (WebCore::ApplicationCache::dump):
22808         * loader/appcache/ApplicationCacheGroup.h:
22810 2008-04-16  Anders Carlsson  <andersca@apple.com>
22812         Reviewed by Brady and Sam.
22814         Add ApplicationCache implementation. Stub out ApplicationCacheGroup methods
22815         needed by ApplicationCache.
22816         
22817         * loader/appcache/ApplicationCache.cpp:
22818         (WebCore::ApplicationCache::ApplicationCache):
22819         (WebCore::ApplicationCache::~ApplicationCache):
22820         (WebCore::ApplicationCache::setManifestResource):
22821         (WebCore::ApplicationCache::addResource):
22822         (WebCore::ApplicationCache::removeResource):
22823         (WebCore::ApplicationCache::resourceForURL):
22824         (WebCore::ApplicationCache::resourceForRequest):
22825         (WebCore::ApplicationCache::numDynamicEntries):
22826         (WebCore::ApplicationCache::dynamicEntry):
22827         (WebCore::ApplicationCache::addDynamicEntry):
22828         (WebCore::ApplicationCache::removeDynamicEntry):
22829         (WebCore::ApplicationCache::setOnlineWhitelist):
22830         (WebCore::ApplicationCache::isURLInOnlineWhitelist):
22831         (WebCore::ApplicationCache::dump):
22832         * loader/appcache/ApplicationCache.h:
22833         (WebCore::ApplicationCache::create):
22834         (WebCore::ApplicationCache::manifestResource):
22835         (WebCore::ApplicationCache::group):
22836         (WebCore::ApplicationCache::begin):
22837         (WebCore::ApplicationCache::end):
22838         * loader/appcache/ApplicationCacheGroup.h:
22839         (WebCore::ApplicationCacheGroup::manifestURL):
22840         (WebCore::ApplicationCacheGroup::cacheDestroyed):
22842 2008-04-16  Adam Roben  <aroben@apple.com>
22844         Fix Bug 18505: REGRESSION: Search is disabled and not functional
22846         <https://bugs.webkit.org/show_bug.cgi?id=18505>
22848         Reviewed by Tim Hatcher.
22850         * page/inspector/ResourcesPanel.js:
22851         (WebInspector.ResourcesPanel.sourceFrameForResource): Added.
22852         * page/inspector/inspector.css: Added back rules for the search field
22853         that were removed in r31736.
22854         * page/inspector/inspector.html:
22855           - Removed the disabled attribute from the search field
22856           - Added back the #searchResults and #searchResultsResizer divs which
22857             were removed in r31736
22858         * page/inspector/inspector.js:
22859         (WebInspector.set showingSearchResults): Updated for class rename
22860         panels -> main-panels.
22861         (WebInspector.loaded): Added back the mousedown event listener for the
22862         search results resizer that was removed in r31736.
22863         (WebInspector.searchResultsResizerDrag): Updated for class rename
22864         panels -> main-panels.
22865         (WebInspector.performSearch):
22866           - Changed to use sourceFrameForResource
22867           - Changed to use showResource
22868           - Changed to save/restore the focused element around the setting of
22869             the current panel
22870           - Changed to get the source document from the match range instead of
22871             by crawling back up to the source view
22872           - Changed to bind the onselect handlers to this so that we can
22873             access the Elements/Resources panels
22875 2008-04-16  Brady Eidson  <beidson@apple.com>
22877         Reviewed by Sam Weinig
22879         Changing ThreadSafeShared to start with a ref count of 1, so updating all users to
22880         adoptRef() that initial reference.
22882         * bindings/js/JSCustomSQLStatementCallback.h:
22883         (WebCore::JSCustomSQLStatementCallback::create):
22884         * bindings/js/JSCustomSQLStatementErrorCallback.h:
22885         (WebCore::JSCustomSQLStatementErrorCallback::create):
22886         * bindings/js/JSCustomSQLTransactionCallback.h:
22887         (WebCore::JSCustomSQLTransactionCallback::create):
22888         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
22889         (WebCore::JSCustomSQLTransactionErrorCallback::create):
22891         * bindings/js/JSDatabaseCustom.cpp:
22892         (WebCore::JSDatabase::changeVersion):
22893         (WebCore::JSDatabase::transaction):
22895         * bindings/js/JSSQLTransactionCustom.cpp:
22896         (WebCore::JSSQLTransaction::executeSql):
22898         * dom/Document.cpp:
22899         (WebCore::Document::databaseThread):
22901         * platform/SecurityOrigin.cpp:
22902         (WebCore::SecurityOrigin::create):
22904         * platform/sql/SQLiteAuthorizer.h:
22905         (WebCore::SQLiteAuthorizer::create):
22906         (WebCore::SQLiteAuthorizer::SQLiteAuthorizer):
22908         * storage/ChangeVersionWrapper.cpp:
22909         (WebCore::ChangeVersionWrapper::performPreflight):
22910         (WebCore::ChangeVersionWrapper::performPostflight):
22911         * storage/ChangeVersionWrapper.h:
22912         (WebCore::ChangeVersionWrapper::create):
22914         * storage/Database.cpp:
22915         (WebCore::Database::openAndVerifyVersion):
22916         (WebCore::Database::markAsDeletedAndClose):
22917         (WebCore::Database::changeVersion):
22918         (WebCore::Database::transaction):
22919         (WebCore::Database::scheduleTransaction):
22920         (WebCore::Database::scheduleTransactionStep):
22921         (WebCore::Database::tableNames):
22923         * storage/DatabaseAuthorizer.h:
22924         (WebCore::DatabaseAuthorizer::create):
22926         * storage/DatabaseTask.h:
22927         (WebCore::DatabaseOpenTask::create):
22928         (WebCore::DatabaseCloseTask::create):
22929         (WebCore::DatabaseTransactionTask::create):
22930         (WebCore::DatabaseTableNamesTask::create):
22932         * storage/DatabaseThread.cpp:
22933         (WebCore::DatabaseThread::scheduleTask): Change to take a PassRefPtr instead of raw
22934         (WebCore::DatabaseThread::scheduleImmediateTask): Ditto
22935         * storage/DatabaseThread.h:
22936         (WebCore::DatabaseThread::create):
22938         * storage/SQLError.h:
22939         (WebCore::SQLError::create):
22940         (WebCore::SQLError::SQLError):
22942         * storage/SQLResultSet.h:
22943         (WebCore::SQLResultSet::create):
22945         * storage/SQLStatement.cpp:
22946         (WebCore::SQLStatement::create):
22947         (WebCore::SQLStatement::execute):
22948         (WebCore::SQLStatement::setDatabaseDeletedError):
22949         (WebCore::SQLStatement::setVersionMismatchedError):
22950         (WebCore::SQLStatement::setFailureDueToQuota):
22951         * storage/SQLStatement.h:
22953         * storage/SQLTransaction.cpp:
22954         (WebCore::SQLTransaction::create):
22955         (WebCore::SQLTransaction::executeSQL):
22956         (WebCore::SQLTransaction::openTransactionAndPreflight):
22957         (WebCore::SQLTransaction::deliverTransactionCallback):
22958         (WebCore::SQLTransaction::handleCurrentStatementError):
22959         (WebCore::SQLTransaction::deliverStatementCallback):
22960         (WebCore::SQLTransaction::postflightAndCommit):
22961         * storage/SQLTransaction.h:
22963 2008-04-16  Anders Carlsson  <andersca@apple.com>
22965         Reviewed by Adam and Brady.
22966         
22967         Add implementation of ApplicationCacheResource.
22968         
22969         * loader/appcache/ApplicationCacheResource.cpp:
22970         (WebCore::ApplicationCacheResource::ApplicationCacheResource):
22971         (WebCore::ApplicationCacheResource::dumpType):
22972         * loader/appcache/ApplicationCacheResource.h:
22973         (WebCore::ApplicationCacheResource::):
22974         (WebCore::ApplicationCacheResource::create):
22975         (WebCore::ApplicationCacheResource::type):
22976         (WebCore::ApplicationCacheResource::addType):
22978 2008-04-16  Timothy Hatcher  <timothy@apple.com>
22980         Fixes an issue where the source for a resource that had errors would
22981         not be shown because the view was created before the resource load
22982         finished. The right view is now created, even if the resource isn't 
22983         finished. The SourceView just makes sure to not load the source until
22984         the resource is finished. Only if the category changes, does the view
22985         need to be recreated.
22987         Reviewed by Adam Roben.
22989         * page/inspector/Resource.js:
22990         (WebInspector.Resource.prototype.set category): Call recreateViewForResourceIfNeeded.
22991         * page/inspector/ResourcesPanel.js:
22992         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
22993         Added. Tries to make a new view, if the view is the same prototype of the
22994         previous view, return early. If they differ, close and detach the old view
22995         and associate the resource with the new view. Calling updateErrorsAndWarnings
22996         is needed, because the errors and warnings that might have been added to the
22997         previous view will be lost, so make the tree element match.
22998         (WebInspector.Resource.prototype._createResourceView): Always create a view
22999         that matches the resource category. Ignore the loading and failed status.
23000         * page/inspector/SourceView.js:
23001         (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Don't setup the
23002         frame if the resource hasn't finished or if the load failed.
23004 2008-04-16  Timothy Hatcher  <timothy@apple.com>
23006         Adds a console formatter for Error objects. So typing a expression in the
23007         console that ends in an exception will print meaningful info. Also calling
23008         console.{log,error,warn,info} with an error object will output nicely.
23010         Reviewed by Adam Roben.
23012         * page/inspector/Console.js:
23013         (WebInspector.Console.prototype._formaterror): Added. Formats an error
23014         object by showing it like other exceptions, with a clickable file URL.
23016 2008-04-16  Timothy Hatcher  <timothy@apple.com>
23018         Refactors code that updates the errors and warnings count in the
23019         resources sidebar so other functions can easily trigger updates.
23021         Reviewed by Adam Roben.
23023         * page/inspector/ResourcesPanel.js:
23024         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Call updateErrorsAndWarnings.
23025         Removes code that updates the bubbleText and class names.
23026         (WebInspector.ResourcesPanel.prototype.clearMessages): Ditto.
23027         (WebInspector.ResourceSidebarTreeElement.prototype.updateErrorsAndWarnings):
23028         Added. Updates the bubbleText and adds or removes the class names
23029         depending on if the values are zero.
23031 2008-04-16  Antti Koivisto  <antti@apple.com>
23033         Reviewed by Alexey.
23034         
23035         Fix <rdar://problem/5863728>
23036         REGRESSION: Garbage character shown in temperatures in the Weather widget (encoding issue with degree symbol)
23037         
23038         Parse the encoding attribute in PreloadScanner.
23040         Test: fast/encoding/script-preload-encoding.html
23042         * html/PreloadScanner.cpp:
23043         (WebCore::PreloadScanner::processAttribute):
23044         (WebCore::PreloadScanner::emitTag):
23045         (WebCore::PreloadScanner::emitCSSRule):
23046         * html/PreloadScanner.h:
23047         * loader/DocLoader.cpp:
23048         (WebCore::DocLoader::preload):
23049         * loader/DocLoader.h:
23051 2008-04-16  Anders Carlsson  <andersca@apple.com>
23053         Reviewed by Adam.
23055         Generate the DOMApplicationCache JS wrapper, add JSDOMApplicationCacheCustom.cpp and 
23056         fix typos in the #if line.
23057         
23058         * DerivedSources.make:
23059         * WebCore.vcproj/WebCore.vcproj:
23060         * WebCore.xcodeproj/project.pbxproj:
23061         * bindings/js/JSDOMApplicationCacheCustom.cpp: Added.
23062         * loader/appcache/ApplicationCache.cpp:
23063         * loader/appcache/ApplicationCache.h:
23064         * loader/appcache/ApplicationCacheGroup.cpp:
23065         * loader/appcache/ApplicationCacheGroup.h:
23066         * loader/appcache/ApplicationCacheResource.cpp:
23067         * loader/appcache/ApplicationCacheResource.h:
23068         * loader/appcache/DOMApplicationCache.cpp:
23069         * loader/appcache/DOMApplicationCache.h:
23070         * loader/appcache/DOMApplicationCache.idl:
23071         * loader/appcache/ManifestParser.cpp:
23072         * loader/appcache/ManifestParser.h:
23074 2008-04-16  Sam Weinig  <sam@webkit.org>
23076         Reviewed by Geoffrey Garen.
23078         - To keep the behavior of the WebKit and JavaScriptCore API's the same,
23079           we need to hide the fact that the global object and the window object
23080           are no longer the same thing, and the the global object now changes on
23081           navigations.  To do this, only the wrapper should ever be exposed.  This
23082           fixes the two remaining spots where the internal global object is exposed,
23083           the windowScriptObject returned from [WebFrame windowObject] and the object
23084           return by calling JSContextGetGlobalObject on [WebFrame globalContext]
23086         * bindings/js/JSDOMWindowWrapper.cpp:
23087         (WebCore::JSDOMWindowWrapper::putWithAttributes):
23088         * bindings/js/JSDOMWindowWrapper.h:
23089         Forward this new method so that JSObjectSetProperty doesn't set properties on the 
23090         wrapper.
23092         * page/mac/FrameMac.mm:
23093         (WebCore::Frame::windowScriptObject):
23094         Return the wrapper instead of the global object.
23096 2008-04-16  David Hyatt  <hyatt@apple.com>
23098         Eliminate the paintBuffer and drawImage(ImageBuffer*) methods from GraphicsContext* in favor of just
23099         snagging an Image* from the ImageBuffer and drawing that instead.
23101         Enhance canvas with a CanvasObserver so that notifications of dirtying or resizing can be tracked by
23102         a consumer.
23104         Reviewed by olliej
23106         * html/CanvasRenderingContext2D.cpp:
23107         (WebCore::CanvasRenderingContext2D::drawImage):
23108         * html/HTMLCanvasElement.cpp:
23109         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
23110         (WebCore::HTMLCanvasElement::willDraw):
23111         (WebCore::HTMLCanvasElement::reset):
23112         (WebCore::HTMLCanvasElement::paint):
23113         * html/HTMLCanvasElement.h:
23114         (WebCore::CanvasObserver::~CanvasObserver):
23115         (WebCore::HTMLCanvasElement::setSize):
23116         (WebCore::HTMLCanvasElement::setObserver):
23117         * platform/graphics/GraphicsContext.cpp:
23118         (WebCore::GraphicsContext::drawImage):
23119         (WebCore::GraphicsContext::drawTiledImage):
23120         * platform/graphics/GraphicsContext.h:
23121         * platform/graphics/ImageBuffer.h:
23122         (WebCore::ImageBuffer::clearImage):
23123         * platform/graphics/cairo/GraphicsContextCairo.cpp:
23124         * platform/graphics/cg/GraphicsContextCG.cpp:
23125         * platform/graphics/cg/ImageCG.cpp:
23126         (WebCore::BitmapImage::draw):
23127         (WebCore::Image::drawPattern):
23128         * platform/graphics/cg/ImageSourceCG.cpp:
23129         (WebCore::ImageSource::createFrameAtIndex):
23130         * platform/graphics/qt/GraphicsContextQt.cpp:
23131         * platform/graphics/wx/GraphicsContextWx.cpp:
23133 2008-04-16  Steve Falkenburg  <sfalken@apple.com>
23135         Improve timer latency/resolution.
23136                 
23137         The primary timing mechanism is now CreateTimerQueueTimer, with a PostMessage from
23138         the callback proc.  This event will be delivered sooner than if we used SetTimer(),
23139         since it is higher priority than other messages.
23140         
23141         If there is an input message pending, we'll use we SetTimer() based timers to avoid
23142         starving user input.
23144         Don't call PostMessage immediately on all timers < 10ms.  Only call immediately if
23145         timer is already expired.  This avoids the case where no timers would be processed,
23146         causing the timer to be re-posted via the slower SetTimer method.
23148         Don't call PostMessage immediately if there's a pending WM_PAINT, since
23149         we don't want to starve all paints when bombarded with a continuous stream of low
23150         duration timers.
23152         Removed reentrancy check, since we're now looking for specific starvation cases,
23153         and will typically defer non-expired timers through CreateTimerQueueTimer.
23155         The reason Windows wouldn't starve paints in favor of timers with the old code:
23156         When we went to reset the timer when it fired, the timer reset code treated this as a
23157         reentrant timer, causing us to hit the slow SetTimer code rather than calling PostMessage,
23158         even for timers expiring in < 10ms. Â I corrected that, exposing the paint starvation problem.
23160         Use timeBeginPeriod/timeEndPeriod to improve resolution of system timers.
23161         Limit this resolution change to within 20ms of the last high resolution timer request.
23162                         
23163         Corrected GetQueueStatus to check for specific input (and paint) messages rather than
23164         checking QS_ALLINPUT.  Contrary to its name, QS_ALLINPUT actually indicates interest
23165         in ALL queued messages, not just input messages.
23166         
23167         Fix SetTimer/KillTimer calls to pass our window handle.
23169         Reviewed by Brady.
23171         * platform/win/SharedTimerWin.cpp:
23172         (WebCore::TimerWindowWndProc):
23173         (WebCore::queueTimerProc):
23174         (WebCore::setSharedTimerFireTime):
23175         (WebCore::stopSharedTimer):
23177 2008-04-16  Adam Roben  <aroben@apple.com>
23179         Fix console-log-formatting to truly test formatting an undefined value
23181         Exceptions thrown by the test will also now be shown as errors.
23183         Reviewed by Tim Hatcher.
23185         * manual-tests/inspector/console-log-formatting.html:
23186         (test): Use console.error to report exceptions.
23187         (runTests): Use window.noSuchVariable instead of just noSuchVariable
23188         to avoid an exception.
23190 2008-04-16  Anatoli Papirovski  <apapirovski@mac.com>
23192         Reviewed by David.
23194         Optimized the calculation of background-size.
23196         * rendering/RenderBox.cpp:
23197         (WebCore::RenderBox::calculateBackgroundSize):
23199 2008-04-16  Adam Roben  <aroben@apple.com>
23201         Fix Bug 17228: console.{log,warn,info,error} should support format
23202         strings, variable arguments
23204         <https://bugs.webkit.org/show_bug.cgi?id=17228>
23205         <rdar://problem/5732828>
23207         Reviewed by Tim Hatcher.
23209         Test: manual-tests/inspector/console-log-formatting.html
23211         * page/inspector/Console.js:
23212         (WebInspector.ConsoleMessage): Pass any extra arguments down to
23213         _format.
23214         (WebInspector.ConsoleMessage._format): This method constructs
23215         this.formattedMessage. We treat the first parameter as a format
23216         string. Any parameters that have not been used after substituting into
23217         the format string are concatenated together, separated by spaces.
23218         (WebInspector.ConsoleMessage.toMessageElement): Updated to use
23219         this.formattedMessage.
23220         (WebInspector.ConsoleMessage.toString): Ditto.
23222 2008-04-15  Adam Roben  <aroben@apple.com>
23224         Make String.format return an array of unused substitutions
23226         String.format now returns an object with two properties:
23227         formattedResult and unusedSubstitutions.
23229         Reviewed by Tim Hatcher.
23231         * page/inspector/utilities.js:
23232         (String.vsprintf): Updated for changes to String.format. We throw away
23233         the array of unused substitutions.
23234         (String.format): Changed to keep track of which substitutions are used
23235         when formatting. We then return both the formatted result and the
23236         array of unused substitutions.
23238 2008-04-15  Adam Roben  <aroben@apple.com>
23240         Generalize String.format some more
23242         String.format now takes an initial value and an append function which
23243         it uses to build the result. Each time a token is processed,
23244         append(valueSoFar, newValue) is called.
23246         Reviewed by Tim Hatcher.
23248         * page/inspector/utilities.js:
23249         (String.vsprintf): Pass the empty string for the initial value, and
23250         a function that concatenates two strings as the append function.
23251         (String.format): Use initialValue and append to build the result
23252         instead of only working with strings.
23254 2008-04-15  Adam Roben  <aroben@apple.com>
23256         Add String.format
23258         String.format is a more generic form of String.vsprintf that takes a
23259         set of formatter functions, one for each supported format specifier.
23260         Each formatter function is passed the relevant token and substitution
23261         value, and returns the formatted result.
23263         Reviewed by Tim Hatcher.
23265         * page/inspector/utilities.js:
23266         (String.standardFormatters): Added.
23267         (String.vsprintf): Changed to call through to String.format.
23268         (String.format): Added. Most of the code came from String.vsprintf,
23269         except that we use the passed-in formatters to format the
23270         substitutions rather than hard-coding how to handle each format
23271         specifier.
23273 2008-04-15  Adam Roben  <aroben@apple.com>
23275         Refactor String.vsprintf to separate tokenizing and substituting
23277         This will eventually be useful for the various console methods that
23278         take a format string.
23280         Reviewed by Tim Hatcher.
23282         * page/inspector/utilities.js:
23283         (String.tokenizeFormatString): Added. This uses the format parsing
23284         code from String.vsprintf but just returns an array of "string" and
23285         "specifier" tokens.
23286         (String.vsprintf): Now calls String.tokenizeFormatString and processes
23287         the tokens one at a time.
23289 2008-04-15  Adam Roben  <aroben@apple.com>
23291         Pass all arguments to console.{log,warn,info,error} into the Inspector's JS
23293         Part of Bug 17228: console.{log,warn,info,error} should support format
23294         strings, variable arguments
23295         <http://bugs.webkit.org/show_bug.cgi?id=17228>
23296         <rdar://problem/5732828>
23298         We don't use the extra arguments yet.
23300         Reviewed by Tim Hatcher.
23302         * page/Console.cpp:
23303         (WebCore::Console::error): Pass the arguments list to
23304         InspectorController.
23305         (WebCore::Console::info): Ditto.
23306         (WebCore::Console::log): Ditto.
23307         (WebCore::Console::warn): Ditto.
23308         * page/InspectorController.cpp:
23309         (WebCore::ConsoleMessage::ConsoleMessage): Added a new constructor
23310         that takes an ExecState and a List instead of a String. We wrap and
23311         store the JSValues from the List in a Vector<ProtectedPtr<JSValue> >.
23312         (WebCore::InspectorController::addMessageToConsole): Added an overload
23313         that takes an ExecState and a List.
23314         (WebCore::InspectorController::addConsoleMessage): Moved code here
23315         from addMessageToConsole. Both overloads of addMessageToConsole now
23316         call this helper method.
23317         (WebCore::InspectorController::addScriptConsoleMessage): Updated for
23318         the new parameter order of WebInspector.ConsoleMessage. If the
23319         ConsoleMessage has a non-empty wrappedArguments Vector, we use that
23320         instead of the ConsoleMessage's message String.
23321         * page/InspectorController.h:
23322         * page/inspector/Console.js:
23323         (WebInspector.ConsoleMessage): Removed the explicit message parameter.
23324         We now get the message from the unnamed 5th parameter.
23325         * page/inspector/Resource.js: Updated for the change to
23326         WebInspector.ConsoleMessage's parameter order.
23328 2008-04-15  Adam Roben  <aroben@apple.com>
23330         Change calls to Chrome::addMessageToConsole to use Console::addMessage
23332         Part of Bug 17228: console.{log,warn,info,error} should support format
23333         strings, variable arguments
23334         <http://bugs.webkit.org/show_bug.cgi?id=17228>
23335         <rdar://problem/5732828>
23337         Console now takes care of calling ChromeClient::addMessageToConsole
23338         for the appropriate messages (i.e., just messages from JavaScript). If
23339         you ever want to add a message to the console, Console is the place to
23340         do it.
23342         Reviewed by Darin Adler.
23344         * WebCore.xcodeproj/project.pbxproj: Mark Console.h Private.
23345         * page/Chrome.cpp: Removed addMessageToConsole
23346         * page/Chrome.h: Moved MessageSource/MessageLevel to Console.h.
23347         * page/Console.cpp:
23348         (WebCore::Console::addMessage): Added. Calls
23349         ChromeClient::addMessageToConsole for JS messages, and calls
23350         InspectorController::addMessageToConsole for all messages.
23351         (WebCore::Console::error): Changed to call directly to
23352         InspectorController in addition to ChromeClient.
23353         (WebCore::Console::info): Ditto.
23354         (WebCore::Console::log): Ditto.
23355         (WebCore::Console::warn): Ditto.
23356         * page/Console.h: Added MessageSource/MessageLevel enums from Chrome.h.
23358 2008-04-15  Adam Roben  <aroben@apple.com>
23360         Pass JSConsole's arguments unmodified to Console
23362         Part of Bug 17228: console.{log,warn,info,error} should support format
23363         strings, variable arguments
23364         <http://bugs.webkit.org/show_bug.cgi?id=17228>
23365         <rdar://problem/5732828>
23367         All of JSConsole's methods are now custom, so that we can pass the
23368         arguments unmodified to Console. Console now handles calling
23369         toString() on the first argument. Later it will pass the arguments off
23370         to InspectorController.
23372         There should be no behavioral changes caused by this patch.
23374         Reviewed by Darin Adler.
23376         * ForwardingHeaders/kjs/list.h: Added.
23377         * GNUmakefile.am: Added JSConsoleCustom.cpp to the project.
23378         * WebCore.pro: Ditto.
23379         * WebCore.vcproj/WebCore.vcproj: Ditto.
23380         * WebCore.xcodeproj/project.pbxproj: Ditto.
23381         * WebCoreSources.bkl: Ditto.
23382         * bindings/js/JSConsoleCustom.cpp: Added.
23383         (WebCore::JSConsole::error):
23384         (WebCore::JSConsole::info):
23385         (WebCore::JSConsole::log):
23386         (WebCore::JSConsole::warn):
23387         * page/Console.cpp: Changed all methods to take an ExecState* and a
23388         const List&. The first item in the List is toString()ed and passed to
23389         Chrome.
23390         (WebCore::Console::error):
23391         (WebCore::Console::info):
23392         (WebCore::Console::log):
23393         (WebCore::Console::warn):
23394         * page/Console.h:
23395         * page/Console.idl:
23397 2008-04-16  Sam Weinig  <sam@webkit.org>
23399         Reviewed by Darin Adler.
23401         Rename kjs_strtod to KJS::strtod.
23403         * platform/text/String.cpp:
23404         (WebCore::charactersToDouble):
23406 2008-04-16  Alexey Proskuryakov  <ap@webkit.org>
23408         Reviewed by Adam.
23410         http://bugs.webkit.org/show_bug.cgi?id=18259
23411         XML+XSLT pages in iframe contains document.location of a parent window
23413         Test: fast/xsl/subframe-location.html
23415         * xml/XSLTProcessor.cpp:
23416         (WebCore::XSLTProcessor::createDocumentFromSource): Set resulting document URL before opening
23417         it, so that the document loader picks a correct URL, too.
23419 2008-04-16  Dan Bernstein  <mitz@apple.com>
23421         Rubber-stamped by John Sullivan.
23423         - remove unreachable code which was added in r8802
23425         * rendering/RenderText.cpp:
23426         (WebCore::RenderText::caretRect):
23428 2008-04-15  Timothy Hatcher  <timothy@apple.com>
23430         Adds a script resource icon. Update the CSS icon to better match the script icon.
23432         https://bugs.webkit.org/show_bug.cgi?id=18499
23434         Rubber-stamped by Adele Peterson.
23436         * page/inspector/Images/resourceCSSIcon.png: Updated.
23437         * page/inspector/Images/resourceJSIcon.png: Added.
23438         * page/inspector/inspector.css: Changed the script icon rule to reference the new image.
23440 2008-04-16  Eric Seidel  <eric@webkit.org>
23442         Reviewed by hyatt.
23444         Fix leaky ImageBuffer code.
23446         * platform/graphics/GeneratedImage.cpp:
23447         (WebCore::GeneratedImage::drawPattern):
23448         * platform/graphics/ImageBuffer.h:
23449         * platform/graphics/cg/ImageBufferCG.cpp:
23450         (WebCore::ImageBuffer::image):
23452 2008-04-15  Justin Garcia  <justin.garcia@apple.com>
23454         Reviewed by Oliver.
23456         <rdar://problem/5665299> REGRESSION (r27369): Paste text into a contenteditable div creates a contenteditable div for each line (16661)
23458         * editing/markup.cpp:
23459         (WebCore::createFragmentFromText): Don't use clones of the enclosing block to hold
23460         paragraphs if the enclosing block is the root editable element.
23462 2008-04-15  Mark Rowe  <mrowe@apple.com>
23464         Reviewed by Jon Honeycutt.
23466         Don't treat the misnamed NSAccessibilitySortButtonRole as an accessibility role.  It is really
23467         a subrole of NSAccessibilityButtonRole.  As it is not used inside WebCore there is no change in
23468         behaviour as a result of doing this.  This fixes <rdar://problem/5866444>.
23470         * page/AccessibilityObject.cpp:
23471         (WebCore::AccessibilityObject::canSetFocusAttribute): Remove SortButtonRole as it is unused.
23472         * page/AccessibilityObject.h: Ditto.
23473         * page/mac/AccessibilityObjectWrapper.mm:
23474         (RoleEntry::):
23476 2008-04-15  Anders Carlsson  <andersca@apple.com>
23478         Fix leaks seen on bot.
23479         
23480         * loader/SubstituteResource.h:
23481         (WebCore::SubstituteResource::~SubstituteResource):
23482         Add a virtual destructor.
23484 2008-04-15  Brady Eidson  <beidson@apple.com>
23486         Reviewed by Anders Carlsson
23488         Fix for <rdar://problem/5820819> - Crash sometime occurs when interrupting a load.
23490         Each SubresourceLoader has a client.  That client is often a Loader::Host object.  
23491         The Loader/Host/CachedResource system predates our ref-counting and ownership models, and therefore manages
23492         object lifetime manually.
23494         The cause of this crash was that we would sometimes call "didFail()" on a Host object twice - Once when 
23495         beginning the new navigation, and once when the new navigation is committed.
23497         The problem is after the first time Host::didFail() gets called, the Host is almost always deleted shortly 
23498         thereafter.  But the SubresourceLoader had a dangling pointer to the Host which is now invalid.
23500         I explored a few options to fix this bug.  The one that was most obviously "clean" was to call cancel() on
23501         the SubresourceLoader itself, which would end up calling Host::didFail() and doing the appropriate cache
23502         cleanup.
23504         This problem with that approach was that it had other side effects - when you cut off a load that had already
23505         partially displayed in the WebView, images that hadn't finished loading would be invalidated and immediately
23506         turn into broken image icons.  This was visually jarring and pretty unacceptable. 
23508         So I decided to follow a much simpler approach, which was to have the Host clear the client pointer from each
23509         SubresourceLoader before it forgets about it.  This leaves things the same visually and fixes the crash.
23511         Note that the layout test for this - if possible - will require other enhancements to DRT including possibly 
23512         adding support for window.stop(). That task is non-trivial, and is documented in <rdar://problem/5061826> 
23514         * loader/SubresourceLoader.h:
23515         (WebCore::SubresourceLoader::clearClient): Add a method to clear the SubresourceLoaderClient.  This is 
23516           perfectly safe to do on an in-flight SubresourceLoader as they are already designed to be client-less,
23517           and already null-check the client before calling it.
23519         * loader/loader.cpp:
23520         (WebCore::Loader::Host::didFail): The SubresourceLoader itself might not be finished loading and might decide 
23521           to call into its client later.  Since the client has no guaranteed lifetime and is liable to be deleted 
23522           after didFail() is called, call clearClient() on the SubresourceLoader so such an invalid call can't happen.
23524 2008-04-15  Anders Carlsson  <andersca@apple.com>
23526         Reviewed by Adam.
23528         Add empty files for the application cache.
23529         
23530         * Configurations/WebCore.xcconfig:
23531         * WebCore.vcproj/WebCore.vcproj:
23532         * WebCore.vcproj/build-generated-files.sh:
23533         Add ENABLE_OFFLINE_WEB_APPLICATIONS to FEATURE_DEFINES.
23534         
23535         * WebCore.xcodeproj/project.pbxproj:
23536         * loader/appcache: Added.
23537         * loader/appcache/ApplicationCache.cpp: Added.
23538         * loader/appcache/ApplicationCache.h: Added.
23539         * loader/appcache/ApplicationCacheGroup.cpp: Added.
23540         * loader/appcache/ApplicationCacheGroup.h: Added.
23541         * loader/appcache/ApplicationCacheResource.cpp: Added.
23542         * loader/appcache/ApplicationCacheResource.h: Added.
23543         * loader/appcache/DOMApplicationCache.cpp: Added.
23544         * loader/appcache/DOMApplicationCache.h: Added.
23545         * loader/appcache/DOMApplicationCache.idl: Added.
23546         * loader/appcache/ManifestParser.cpp: Added.
23547         * loader/appcache/ManifestParser.h: Added.
23549 2008-04-15  Kevin McCullough  <kmccullough@apple.com>
23551         Reviewed by Tim.
23553         - <rdar://problem/5792587> AJAX (XMLHttpRequest) support for the Inspector (17776)
23554         - Add XMLHttpRequest support to the inspector.
23556         * English.lproj/InspectorLocalizedStrings.js: Specify capitalization
23557         instead of using text-transform because XHR must capitalize all the letters.
23558         * page/inspector/Resource.js: Assume XHRs are textType even though this
23559         may not always be true.
23560         Also add the XHR category and let all mime types be consistent with it.
23561         * page/inspector/ResourcesPanel.js: Set the XHR category color.
23562         * page/inspector/inspector.css: Make XHRs yellow and fonts red because
23563         XHRs are more common than fonts and yellow next to orange (scripts) is
23564         not as harsh on the eyes as red next to orange.
23565         * page/inspector/inspector.js: Specify capitalization again.
23567 2008-04-15  David Hyatt  <hyatt@apple.com>
23569         Fix the zoom property so that it works properly with font-size.
23571         Reviewed by John Sullivan
23573         Added fast/css/zoom-font-size.html
23575         * css/CSSStyleSelector.cpp:
23576         (WebCore::CSSStyleSelector::updateFont):
23577         (WebCore::CSSStyleSelector::applyProperty):
23578         (WebCore::CSSStyleSelector::checkForZoomChange):
23579         * css/CSSStyleSelector.h:
23581 2008-04-15  Timothy Hatcher  <timothy@apple.com>
23583         Fixes the bug where a resource view could still be shown after the inspected
23584         page navigates to another page.
23586         https://bugs.webkit.org/show_bug.cgi?id=18517
23588         Reviewed by Adam Roben.
23590         * page/inspector/ResourcesPanel.js:
23591         (WebInspector.ResourcesPanel.prototype.reset): Close the visible resource.
23592         Iterate over all the resources and zero errors and warnings and delete the
23593         resource view and tree element. Removes all children of resourceViews. Passes
23594         true to _updateGraphDividersIfNeeded to force an immediate update.
23595         (WebInspector.ResourcesPanel.prototype.removeResource): Added. Closes
23596         the resource view if it is visible. Removes the resource from the _resources
23597         array. Removes the tree element from the outline tree. Zeros out the errors
23598         and warnings properties. Deletes the tree element and resource view properties.
23599         (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Null check
23600         this._calculator for times when reset is called before the calculator is set.
23601         * page/inspector/inspector.js:
23602         (WebInspector.removeResource): Call ResourcesPanel.removeResource.
23604 2008-04-15  Anders Carlsson  <andersca@apple.com>
23606         Reviewed by Adam.
23608         Rename "archive" to "substitute" in a couple of places.
23609         
23610         * loader/DocumentLoader.cpp:
23611         (WebCore::DocumentLoader::DocumentLoader):
23612         (WebCore::DocumentLoader::clearArchiveResources):
23613         (WebCore::DocumentLoader::deliverSubstituteResourcesAfterDelay):
23614         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
23615         (WebCore::DocumentLoader::isSubstituteLoadPending):
23616         (WebCore::DocumentLoader::cancelPendingSubstituteLoad):
23617         (WebCore::DocumentLoader::scheduleArchiveLoad):
23618         (WebCore::DocumentLoader::setDefersLoading):
23619         * loader/DocumentLoader.h:
23620         * loader/ResourceLoader.cpp:
23621         (WebCore::ResourceLoader::load):
23622         (WebCore::ResourceLoader::didCancel):
23624 2008-04-15  Anders Carlsson  <andersca@apple.com>
23626         Reviewed by Adam.
23628         Move the URL, response and data to SubstituteResource.
23629         
23630         * loader/SubstituteResource.h:
23631         (WebCore::SubstituteResource::url):
23632         (WebCore::SubstituteResource::response):
23633         (WebCore::SubstituteResource::data):
23634         (WebCore::SubstituteResource::SubstituteResource):
23635         * loader/archive/ArchiveResource.cpp:
23636         (WebCore::ArchiveResource::ArchiveResource):
23637         * loader/archive/ArchiveResource.h:
23638         (WebCore::ArchiveResource::frameName):
23640 2008-04-15  David Hyatt  <hyatt@apple.com>
23642         https://bugs.webkit.org/show_bug.cgi?id=18467
23644         Make sure to ignore zoom:0.  That is not supposed to actually do anything.  It's a hack in IE
23645         to cause an element to set "hasLayout."
23647         Reviewed by Anders
23649         Added fast/css/zoom-property-parsing.html
23651         * css/CSSParser.cpp:
23652         (WebCore::CSSParser::parseValue):
23653         * css/CSSStyleSelector.cpp:
23654         (WebCore::CSSStyleSelector::applyProperty):
23656 2008-04-15  Anders Carlsson  <andersca@apple.com>
23658         Reviewed by Adam.
23660         Add a (currently empty) SubstituteResource class and make ArchiveResource inherit from it.
23661         
23662         * WebCore.vcproj/WebCore.vcproj:
23663         * WebCore.xcodeproj/project.pbxproj:
23664         * loader/SubstituteResource.h: Added.
23665         * loader/archive/ArchiveResource.h:
23667 2008-04-15  Antti Koivisto  <antti@apple.com>
23669         Reviewed by Geoff.
23671         Fix <rdar://problem/5862921>
23672         REGRESSION: Leak in SVGSVGElement::SVGSVGElement
23673         
23674         In these strange days RefCounted starts with count of one.
23676         * svg/SVGSVGElement.cpp:
23677         (WebCore::SVGSVGElement::SVGSVGElement):
23678         * svg/animation/SMILTimeContainer.h:
23679         (WebCore::SMILTimeContainer::create):
23681 2008-04-15  Anatoli Papirovski  <apapirovski@mac.com>
23683         Reviewed by hyatt
23685         [CSS1, CSS3] Fixed the background-origin calculation for root elements
23686         (background-size and background-position are affected), r10794
23687         [CSS3] Fixed the background-size transformation where width is specified in percentage and height is left to auto
23689         Test: fast/backgrounds/background-origin-root-element.html
23691         * rendering/RenderBox.cpp:
23692         (WebCore::RenderBox::calculateBackgroundSize):
23693         (WebCore::RenderBox::calculateBackgroundImageGeometry):
23695 2008-04-15  Timothy Hatcher  <timothy@apple.com>
23697         Fixes the regression where the error and warning counts did not show up in the Resources
23698         sidebar next to resources.
23700         https://bugs.webkit.org/show_bug.cgi?id=18494
23702         Reviewed by Adam Roben.
23704         * page/inspector/ResourcesPanel.js:
23705         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Increment errors or warnings
23706         on the resource. Set the bubbleText to the total of the errors and warnings. Add a error
23707         or warning class to the bubble.
23708         (WebInspector.ResourcesPanel.prototype.clearMessages): Zero out the errors and warnings
23709         properties on each resource. Set the bubbleText back to an empty string.
23710         * page/inspector/SidebarTreeElement.js:
23711         (WebInspector.SidebarTreeElement): Create a statusElement.
23712         (WebInspector.SidebarTreeElement.prototype.get bubbleText): Return _bubbleText.
23713         (WebInspector.SidebarTreeElement.prototype.set bubbleText): Create bubbleElement if needed.
23714         Assign the value to _bubbleText and bubbleElement.textContent.
23715         (WebInspector.SidebarTreeElement.prototype.onattach): Append statusElement to _listItemNode.
23716         * page/inspector/inspector.css: Style rules for bubbles and status elements.
23718 2008-04-15  Timothy Hatcher  <timothy@apple.com>
23720         Fixes the regression where error and warning bubbles would not be added
23721         to the source view of a resource.
23723         https://bugs.webkit.org/show_bug.cgi?id=18495
23725         Reviewed by Adam Roben.
23727         * css/view-source.css:
23728         (.webkit-html-message-bubble): Add a min-height to make sure the border-radius
23729         has enough room to apply.
23730         * page/inspector/Console.js:
23731         (WebInspector.Console.prototype.addMessage): Removed code that added messages
23732         to resource panels and incremented error and warning counts on resources.
23733         Now just call ResourcesPanel.addMessageToResource after assigning the resource
23734         to the console message.
23735         (WebInspector.Console.prototype.clearMessages): Removed code that cleared error
23736         and warning counts from resources an call ResourcesPanel.clearMessages.
23737         * page/inspector/ResourcesPanel.js:
23738         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Call addMessage
23739         on the resource's view, if it is implemented.
23740         (WebInspector.ResourcesPanel.prototype.clearMessages): Call clearMessages
23741         on all the resource views for the ones that implement it.
23742         (WebInspector.ResourcesPanel.prototype.refreshResource): Call _resourceView
23743         to make the resource's view if needed. Use a local view variable.
23744         (WebInspector.ResourcesPanel.prototype._resourceView): Added helper function
23745         to create a resource view if needed.
23746         * page/inspector/SourceView.js:
23747         (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded): Delete the 
23748         _frameNeedsSetup property at the beginning to prevent recursion. Get the
23749         length of the messages array when assigning the local length variable.
23750         (WebInspector.SourceView.prototype.addMessage): Renamed from addMessageToSource.
23751         (WebInspector.SourceView.prototype.clearMessages): Added. Clear all the message
23752         bubbles that might be sprinkled in the source. Also clears the messages array.
23753         (WebInspector.SourceView.prototype._addMessageToSource): Create the image
23754         element in the Inspector's document so we can use relative image URLs. Then
23755         adopt the image element into the frame's document.
23757 2008-04-15  Brady Eidson  <beidson@apple.com>
23759         Reviewed by Anders
23761         Hook up event dispatching for window.localStorage changes.
23763         Tests: storage/domstorage/localstorage/enumerate-storage.html
23764                storage/domstorage/localstorage/iframe-events.html
23765                storage/domstorage/localstorage/index-get-and-set.html
23766                storage/domstorage/localstorage/onstorage-attribute-markup.html
23767                storage/domstorage/localstorage/onstorage-attribute-setattribute.html
23768                storage/domstorage/localstorage/simple-events.html
23769                storage/domstorage/localstorage/simple-usage.html
23770                storage/domstorage/localstorage/window-open.html
23772         * storage/LocalStorage.cpp:
23773         (WebCore::LocalStorage::dispatchStorageEvent): Walk every Page in the PageGroup, adding
23774           each Frame that matches the storage area's security origin to a Vector.  Then dispatch
23775           the StorageEvent to each Frame in the Vector
23777         * storage/SessionStorage.cpp:
23778         (WebCore::SessionStorage::dispatchStorageEvent): Adopt the technique used in LocalStorage,
23779           which is to only add the Frames to the Vector if their security origin matches
23781 2008-04-15  Olivier Goffart  <ogoffart@trolltech.com>
23783         Reviewed by Simon.
23785         Fixes: copy to clipboard when selecting, and paste when clicking with the middle button
23787         * platform/Pasteboard.h: Added Qt-specific selection mode
23788         * platform/qt/PasteboardQt.cpp: Choose the clipboard or the selecton
23789         according to the selection mode
23790         (WebCore::Pasteboard::writeSelection):
23791         (WebCore::Pasteboard::plainText):
23792         (WebCore::Pasteboard::documentFragment):
23793         (WebCore::Pasteboard::writeURL):
23794         (WebCore::Pasteboard::clear):
23795         (WebCore::Pasteboard::isSelectionMode):
23797 2008-04-15  Andre Poenitz  <andre.poenitz@trolltech.com>
23799         Reviewed by Simon.
23801         Fix compilation with Qt namespaces
23803         Qt can be configured to have all of its classes inside a specified namespaces.
23804         This is for example used in plugin/component environments like Eclipse.
23806         This change makes it possible to let the Qt port compile against a namespaced
23807         Qt by the use of macros Qt provides to properly forward declare Qt classes in
23808         the namespace.
23810         * WebCore.pro:
23811         * bridge/qt/qt_class.h:
23812         * bridge/qt/qt_instance.h:
23813         * html/HTMLCanvasElement.h:
23814         * platform/DragData.h:
23815         * platform/DragImage.h:
23816         * platform/KURL.h:
23817         * platform/PlatformKeyboardEvent.h:
23818         * platform/PlatformMouseEvent.h:
23819         * platform/PlatformWheelEvent.h:
23820         * platform/Widget.h:
23821         * platform/graphics/Color.h:
23822         * platform/graphics/FloatPoint.h:
23823         * platform/graphics/FloatRect.h:
23824         * platform/graphics/Gradient.h:
23825         * platform/graphics/GraphicsContext.h:
23826         * platform/graphics/ImageBuffer.h:
23827         * platform/graphics/ImageSource.h:
23828         * platform/graphics/IntPoint.h:
23829         * platform/graphics/IntRect.h:
23830         * platform/graphics/IntSize.h:
23831         * platform/graphics/Path.h:
23832         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
23833         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
23834         * platform/network/qt/QNetworkReplyHandler.h:
23835         * platform/network/qt/ResourceRequest.h:
23836         * platform/qt/ClipboardQt.h:
23837         * platform/qt/RenderThemeQt.h:
23838         * platform/text/PlatformString.h:
23839         * platform/text/qt/TextCodecQt.h:
23840         * svg/graphics/SVGPaintServer.h:
23841         * svg/graphics/SVGPaintServerGradient.h:
23843 2008-04-14  Brady Eidson  <beidson@apple.com>
23845         Reviewed by Anders
23847         Lay the underpinnings for LocalStorage.
23849         For now, this just exposes window.localStorage to the dom which returns an in-memory Storage object, much
23850         like SessionStorage.  The primary difference at this point is that the object returned is shared globally,
23851         and isn't copied for new top-level browsing contexts like SessionStorage.
23853         Later, I'll add proper event dispatch and a persistent storage backing.
23855         * GNUmakefile.am:
23856         * WebCore.base.exp:
23857         * WebCore.pro:
23858         * WebCore.vcproj/WebCore.vcproj:
23859         * WebCore.xcodeproj/project.pbxproj:
23860         * WebCoreSources.bkl:
23862         * bindings/js/JSDOMWindowCustom.cpp:
23863         (WebCore::JSDOMWindow::mark): Mark the optionalLocalStorage
23865         * page/DOMWindow.cpp:
23866         (WebCore::DOMWindow::clear):
23867         (WebCore::DOMWindow::localStorage):
23868         * page/DOMWindow.h:
23869         (WebCore::DOMWindow::optionalLocalStorage):
23871         * storage/LocalStorage.cpp: Added.
23872         (WebCore::LocalStorage::sharedLocalStorage):
23873         (WebCore::LocalStorage::LocalStorage):
23874         (WebCore::LocalStorage::storageArea):
23875         (WebCore::LocalStorage::itemChanged):
23876         (WebCore::LocalStorage::itemRemoved):
23877         (WebCore::LocalStorage::dispatchStorageEvent):
23878         * storage/LocalStorage.h: Added.
23880         * storage/SessionStorage.cpp: Refactor to use the client interface for event dispatching for sessionStorage objects
23881         (WebCore::SessionStorage::SessionStorage):
23882         (WebCore::SessionStorage::copy):
23883         (WebCore::SessionStorage::storageArea):
23884         (WebCore::SessionStorage::itemChanged):
23885         (WebCore::SessionStorage::itemRemoved):
23886         (WebCore::SessionStorage::dispatchStorageEvent):
23887         * storage/SessionStorage.h:
23889         * storage/StorageArea.cpp: Add a client parameter, and call to the client when an item is changed or removed.
23890         (WebCore::StorageArea::create):
23891         (WebCore::StorageArea::StorageArea):
23892         (WebCore::StorageArea::copy):
23893         (WebCore::StorageArea::setItem):
23894         (WebCore::StorageArea::removeItem):
23895         (WebCore::StorageArea::setClient):
23896         * storage/StorageArea.h:
23897         (WebCore::StorageArea::page):
23898         (WebCore::StorageArea::securityOrigin):
23900         * storage/StorageAreaClient.h: Added.  Break out "itemChanged" and "itemRemoved" to a StorageAreaClient
23901           This way, both SessionStorage and LocalStorage areas can have different behavior on changes with
23902           that behavior managed from a central location.
23903         (WebCore::StorageAreaClient::~StorageAreaClient):
23904         (WebCore::StorageAreaClient::StorageAreaClient):
23905         (WebCore::StorageAreaClient::itemChanged):
23906         (WebCore::StorageAreaClient::itemRemoved):
23908 2008-04-14  Brady Eidson  <beidson@apple.com>
23910         Reviewed by Anders
23912         Add a hidden pref to debug WebArchive loading.  With this pref on, when loading a WebArchive,
23913         if the resource isn't in the ArchiveResourceCollection, the loader will not fall back to the 
23914         network and will instead fail the load with a "cannot show URL" error.
23916         * loader/ResourceLoader.cpp:
23917         (WebCore::ResourceLoader::load): Do the check here.
23919         * page/Settings.cpp:
23920         (WebCore::Settings::Settings):
23921         (WebCore::Settings::setWebArchiveDebugModeEnabled):
23922         * page/Settings.h:
23923         (WebCore::Settings::webArchiveDebugModeEnabled):
23925 2008-04-14  Antti Koivisto  <antti@apple.com>
23927         Reviewed by Eric.
23929         Some preparations for additive animations and animations in <use>.
23930         - Disallow animation elements in instance trees.
23931         - Fix buggy SVGUseElement::removeDisallowedElementsFromSubtree(), make it 
23932           public and static
23933         - Invoke it from SVGElementInstance::updateInstance() to clean up the instance tree
23934           there as well.
23935         - Add mechanism for blocking instance updates when an animation changes
23936           the referenced tree.
23937         
23938         The added assert in SVGSMILElement::insertedIntoDocument() verifies the fixes
23939         with the existing test cases.
23941         * svg/SVGAElement.cpp:
23942         (WebCore::SVGAElement::defaultEventHandler):
23943         * svg/SVGElementInstance.cpp:
23944         (WebCore::SVGElementInstance::updateInstance):
23945         * svg/SVGStyledElement.cpp:
23946         (WebCore::SVGStyledElement::updateElementInstance):
23947         (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
23948         * svg/SVGStyledElement.h:
23949         * svg/SVGUseElement.cpp:
23950         (WebCore::isDisallowedElement):
23951         (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree):
23952         * svg/SVGUseElement.h:
23953         * svg/animation/SVGSMILElement.cpp:
23954         (WebCore::SVGSMILElement::insertedIntoDocument):
23955         (WebCore::SVGSMILElement::isSMILElement):
23956         (WebCore::SVGSMILElement::connectConditions):
23957         (WebCore::SVGSMILElement::disconnectConditions):
23958         * svg/animation/SVGSMILElement.h:
23960 2008-04-14  Adam Roben  <aroben@apple.com>
23962         Don't let the inspected page overwrite properties of JS objects in the
23963         Inspector
23965         <https://bugs.webkit.org/show_bug.cgi?id=16011>
23966         <rdar://problem/5604409>
23968         <https://bugs.webkit.org/show_bug.cgi?id=16837>
23969         <rdar://problem/5813850>
23971         Reviewed by Sam Weinig and Geoff Garen.
23973         Tests (contributed by Adam Barth and Collin Jackson):
23974         manual-tests/inspector-wrappers
23976         * GNUmakefile.am:
23977         * WebCore.pro:
23978         * WebCore.vcproj/WebCore.vcproj:
23979         * WebCore.xcodeproj/project.pbxproj:
23980         * WebCoreSources.bkl:
23981         Added new files to the projects.
23983         * bindings/js/JSQuarantinedObjectWrapper.cpp: Added.
23984         (WebCore::JSQuarantinedObjectWrapper::asWrapper): Converts a JSValue
23985         into a JSQuarantinedObjectWrapper, if the JSValue is in fact a
23986         JSQuarantinedObjectWrapper.
23987         (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter): Callback to
23988         be used with PropertySlot.
23989         (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper):
23990         Hold onto the object we're wrapping and its global object. Pass the
23991         wrapped prototype up to the JSObject constructor.
23992         (WebCore::JSQuarantinedObjectWrapper::~JSQuarantinedObjectWrapper):
23993         (WebCore::JSQuarantinedObjectWrapper::unwrappedExecStateMatches):
23994         Returns true if our underlying object originated from the same global
23995         object as the passed-in ExecState.
23996         (WebCore::JSQuarantinedObjectWrapper::unwrappedExecState):
23997         (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState):
23998         Wraps and moves an exception from our underlying ExecState to the
23999         passed-in one.
24000         (WebCore::JSQuarantinedObjectWrapper::mark): Marks ourselves and the
24001         objects we're holding references to.
24003         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
24004         (WebCore::JSQuarantinedObjectWrapper::put):
24005         (WebCore::JSQuarantinedObjectWrapper::deleteProperty):
24006         (WebCore::JSQuarantinedObjectWrapper::implementsConstruct):
24007         (WebCore::JSQuarantinedObjectWrapper::construct):
24008         (WebCore::JSQuarantinedObjectWrapper::implementsHasInstance):
24009         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
24010         (WebCore::JSQuarantinedObjectWrapper::implementsCall):
24011         (WebCore::JSQuarantinedObjectWrapper::callAsFunction):
24012         (WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
24013         JSObject overrides. These each check the appropriate permission before
24014         allowing the call to proceed. We wrap all outgoing values using
24015         m_wrapOutgoingValue, and we prepare all incoming values with the
24016         virtual prepareIncomingValue function. If an exception is raised when
24017         calling the underlying object, we transfer the exception in wrapped
24018         form to the passed-in ExecState.
24020         * bindings/js/JSQuarantinedObjectWrapper.h: Added.
24021         (WebCore::JSQuarantinedObjectWrapper::unwrappedObject):
24022         (WebCore::JSQuarantinedObjectWrapper::className): We return the
24023         underlying object's class name so that we can successfully masquerade
24024         as that underlying object when, e.g., Object.prototype.toString is
24025         called on us.
24026         (WebCore::JSQuarantinedObjectWrapper::classInfo):
24028         (WebCore::JSQuarantinedObjectWrapper::allowsGetProperty):
24029         (WebCore::JSQuarantinedObjectWrapper::allowsSetProperty):
24030         (WebCore::JSQuarantinedObjectWrapper::allowsDeleteProperty):
24031         (WebCore::JSQuarantinedObjectWrapper::allowsConstruct):
24032         (WebCore::JSQuarantinedObjectWrapper::allowsHasInstance):
24033         (WebCore::JSQuarantinedObjectWrapper::allowsCallAsFunction):
24034         (WebCore::JSQuarantinedObjectWrapper::allowsGetPropertyNames):
24035         These virtual methods let subclasses define the allowed operations on
24036         the wrapped object. By default all operations are disabled.
24038         * bindings/js/JSInspectedObjectWrapper.cpp: Added. This subclass of
24039         JSQuarantinedObjectWrapper is used to wrap objects from the inspected
24040         page being passed to the Inspector.
24041         (WebCore::wrappers):
24042         (WebCore::JSInspectedObjectWrapper::wrap): Wraps the passed-in object
24043         if needed and returns the wrapper. If this object has been wrapped
24044         previously we'll return the old wrapper rather than make a new one.
24045         (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper): Add
24046         ourselves to the wrapper map.
24047         (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper): Remove
24048         ourselves from the wrapper map.
24049         (WebCore::JSInspectedObjectWrapper::prepareIncomingValue): Ensure that
24050         any objects passed to the inspected object are either wrappers around
24051         objects from the inspected page (in which case we unwrap them so that
24052         the inspected page never sees the wrapper), or wrapped callbacks from
24053         the Inspector.
24054         * bindings/js/JSInspectedObjectWrapper.h: Added.
24055         (WebCore::JSInspectedObjectWrapper::classInfo):
24056         (WebCore::JSInspectedObjectWrapper::allowsGetProperty):
24057         (WebCore::JSInspectedObjectWrapper::allowsSetProperty):
24058         (WebCore::JSInspectedObjectWrapper::allowsDeleteProperty):
24059         (WebCore::JSInspectedObjectWrapper::allowsConstruct):
24060         (WebCore::JSInspectedObjectWrapper::allowsHasInstance):
24061         (WebCore::JSInspectedObjectWrapper::allowsCallAsFunction):
24062         (WebCore::JSInspectedObjectWrapper::allowsGetPropertyNames):
24063         These all return true so that the Inspector can use objects from the
24064         inspected page however it needs.
24065         (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue): Wrap all
24066         outgoing values as JSInspectedObjectWrappers.
24068         * bindings/js/JSInspectorCallbackWrapper.cpp: Added. This subclass of
24069         JSQuarantinedObjectWrapper is used to wrap callbacks that the
24070         Inspector passes to the inspected page (e.g., for event listeners or
24071         client-side storage callbacks).
24072         (WebCore::wrappers):
24073         (WebCore::JSInspectorCallbackWrapper::wrap): Wraps the passed-in
24074         object if needed and returns the wrapper. If this object has been
24075         wrapped previously we'll return the old wrapper rather than make a new
24076         one.
24077         (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper): Add
24078         ourselves to the wrapper map.
24079         (WebCore::JSInspectorCallbackWrapper::~JSInspectorCallbackWrapper):
24080         Remove ourselves from the wrapper map.
24081         (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue): Ensure
24082         that values passed from the inspected page to an Inspector callback
24083         are wrapped in JSInspectedObjectWrappers. We also allow the inspected
24084         page to pass ourselves in (which will happen in the case of a
24085         client-side storage callback, where the callback itself is passed as
24086         the `this` object). In this case we unwrap ourselves so that the
24087         Inspector doesn't have to deal with the wrapper.
24088         * bindings/js/JSInspectorCallbackWrapper.h: Added.
24089         (WebCore::JSInspectorCallbackWrapper::classInfo):
24090         (WebCore::JSInspectorCallbackWrapper::allowsCallAsFunction):
24091         This is the only allowed operation on a JSInspectorCallbackWrapper.
24092         (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue): Wrap all
24093         outgoing values as JSInspectorCallbackWrappers.
24095         * page/InspectorController.cpp:
24096         (WebCore::getResourceDocumentNode): Wrap the Document before passing
24097         it to the Inspector.
24098         (WebCore::highlightDOMNode): Unwrap the Node that the Inspector passed
24099         to us.
24100         (WebCore::databaseTableNames): Unwrap the Database that the Inspector
24101         passed to us.
24102         (WebCore::inspectedWindow): Wrap the Window before passing it to the
24103         Inspector.
24104         (WebCore::InspectorController::focusNode): Wrap the Node before
24105         passing it to the Inspector.
24106         (WebCore::wrapCallback): Wraps the passed-in callback in a
24107         JSInspectorCallbackWrapper.
24108         (WebCore::InspectorController::addDatabaseScriptResource): Wrap the
24109         Database beore pasing it to the Inspector.
24110         (WebCore::InspectorController::windowScriptObjectAvailable): Add the
24111         new wrapCallback function to the InspectorController JS object.
24113         * page/inspector/ElementsPanel.js:
24114         (WebInspector.ElementsPanel.reset): Wrap the contentLoaded callback.
24116         * page/inspector/DatabaseQueryView.js:
24117         (WebInspector.DatabaseQueryView._enterKeyPressed):
24118         * page/inspector/DatabaseTableView.js:
24119         (WebInspector.DatabaseTableView.update):
24120         Pass null instead of an empty array to executeSql since we're no
24121         longer allowed to pass any unwrapped objects to the inspected page.
24122         We now wrap all callbacks being passed to the inspected page using
24123         InspectorController.wrapCallback.
24125 2008-04-14  Adam Roben  <aroben@apple.com>
24127         Use prototypes/constructors from the inspected page when operating on
24128         objects from the inspected page
24130         Reviewed by Tim Hatcher.
24132         * page/inspector/Console.js:
24133         (WebInspector.ConsolePanel._format): Use the Node constructor from the
24134         inspected Window with the instanceof operator.
24135         * page/inspector/ElementsPanel.js:
24136         (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Use the
24137         Element prototype from the inspected Window instead of the Element
24138         prototype from this Window.
24139         * page/inspector/inspector.js:
24140         (WebInspector.performSearch): Ditto for Document prototype.
24141         * page/inspector/utilities.js:
24142         (Object.type): Now takes an optional Window parameter that is used to
24143         find the built-in constructors.
24145 2008-04-14  Adam Roben  <aroben@apple.com>
24147         Don't store objects from the Inspector on CSSStyleRules from the
24148         inspected page
24150         Reviewed by Tim Hatcher.
24152         * page/inspector/StylesSidebarPane.js:
24153         (WebInspector.StylesSidebarPane.update): Don't store raw CSSStyleRules
24154         from the inspected page in the styleRules array. Instead, always use a
24155         wrapper object. This will keep us from setting Inspector objects as
24156         properties of inspected objects.
24158 2008-04-14  Timothy Hatcher  <timothy@apple.com>
24160         Fixes a regression where clicking a resource URL in the Console would not
24161         show the resource in the Resources panel.
24163         https://bugs.webkit.org/show_bug.cgi?id=18493
24165         Reviewed by Adam Roben.
24167         * page/inspector/Console.js:
24168         (WebInspector.Console.prototype._messagesClicked): Removed console-message-url
24169         handling to show resources. This is now handled by WebInspector.showResourceForURL.
24170         (WebInspector.ConsoleMessage.prototype.toMessageElement): Add the webkit-html-resource-link
24171         class name to the URL anchor. Also add the line number as a property to the anchor.
24172         * page/inspector/ResourcesPanel.js:
24173         (WebInspector.ResourcesPanel): Add a reference to the tree element to each calculator.
24174         (WebInspector.ResourcesPanel.prototype.showResource): Select and reveal the resource in
24175         the sidebar. Call showLine on the resource view if it is implemented.
24176         (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Select the current calculator's
24177         tree element in the sidebar.
24178         (WebInspector.ResourcesPanel.prototype._graphSelected): Call closeVisibleResource after
24179         the calculator changes since closeVisibleResource uses the calculator.
24180         * page/inspector/SourceView.js:
24181         (WebInspector.SourceView.prototype.sourceRow): Early return if the line is null/zero.
24182         (WebInspector.SourceView.prototype.showLine):  Renamed from showSourceLine.
24183         * page/inspector/inspector.css:
24184         (body.console-visible #main-panels): Made the bottom 24px to match
24185         the height of #main-status-bar.
24186         (.console-message-url): Make the color important so it wins over
24187         the .webkit-html-resource-link rule.
24188         (.resource-view .resource-view-content): Made more generic from .image
24189         so all resource views get sized correctly.
24190         (.resource-view.image .resource-view-content): Removed.
24191         * page/inspector/inspector.js:
24192         (WebInspector.documentClick): Pass the line number from the anchor to
24193         WebInspector.showResourceForURL.
24194         (WebInspector.showResourceForURL): Add line number support. Pass the line
24195         to ResourcesPanel.showResource.
24196         (WebInspector.addMainEventListeners): Use bind for the event listeners.
24198 2008-04-14  Xan Lopez  <xan@gnome.org>
24200         Reviewed by Alp Toker.
24202         http://bugs.webkit.org/show_bug.cgi?id=17917
24203         Bug 17917: Cookie support for HTTP soup backend
24205         Initial implementation of cookies for the http soup backend.
24207         Moved CookieJarGtk to CookieJarSoup in network/soup and left the original
24208         one as CookieJarCurl in network/curl.
24210         * GNUmakefile.am:
24211         * platform/CookieJar.h:
24212         * platform/network/curl/CookieJarCurl.cpp: Renamed from WebCore/platform/gtk/CookieJarGtk.cpp.
24213         (WebCore::setCookies):
24214         (WebCore::cookies):
24215         * platform/network/soup/CookieJarSoup.cpp: Added.
24216         (WebCore::getCookieJar):
24217         (WebCore::setCookies):
24218         (WebCore::cookies):
24219         * platform/network/soup/ResourceHandleSoup.cpp:
24220         (WebCore::ResourceHandle::start):
24222 2008-04-14  Holger Freyther  <zecke@selfish.org>
24224         Reviewed by Alp Toker.
24226         https://bugs.webkit.org/show_bug.cgi?id=18411
24227         Enable Page caching and create FrameViews on the fly
24229         Create the FrameView on the fly and cache pages
24231         - Keep a copy of the GtkAdjustment to be able to reuse it for the
24232           FrameViews
24233         - Do not initially create a FrameView and update the WebKit code to
24234           cope with not having a view.
24235         - Cache seven pages by default.
24237         * platform/gtk/ScrollViewGtk.cpp:
24238         (WebCore::ScrollView::setGtkAdjustments):
24240 2008-04-14  David Hyatt  <hyatt@apple.com>
24242         Add a new optimized layout path for positioned objects that move.  Also avoid always marking the <html>
24243         object for layout when it has a percentage height, since the RenderView already does that when its size
24244         changes.
24246         Reviewed by mjs
24248         * rendering/RenderBlock.cpp:
24249         (WebCore::RenderBlock::layoutBlockChildren):
24250         (WebCore::RenderBlock::layoutPositionedObjects):
24251         * rendering/RenderBox.h:
24252         (WebCore::RenderBox::layoutDoingPositionedMovementOnly):
24253         * rendering/RenderObject.cpp:
24254         (WebCore::RenderObject::RenderObject):
24255         (WebCore::RenderObject::setNeedsLayout):
24256         (WebCore::RenderObject::setChildNeedsLayout):
24257         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
24258         (WebCore::RenderObject::setStyle):
24259         * rendering/RenderObject.h:
24260         (WebCore::RenderObject::needsLayout):
24261         (WebCore::RenderObject::needsPositionedMovementLayoutOnly):
24262         (WebCore::RenderObject::layoutDoingPositionedMovementOnly):
24263         * rendering/RenderStyle.cpp:
24264         (WebCore::positionedObjectMoved):
24265         (WebCore::RenderStyle::diff):
24266         * rendering/RenderStyle.h:
24267         (WebCore::RenderStyle::):
24269 2008-04-14  David Hyatt  <hyatt@apple.com>
24271         Add support for gradients in the CSS content property.
24273         Reviewed by olliej
24275         Added fast/gradients/generated-gradients.html
24277         * GNUmakefile.am:
24278         * WebCore.pro:
24279         * WebCore.vcproj/WebCore.vcproj:
24280         * WebCore.xcodeproj/project.pbxproj:
24281         * WebCoreSources.bkl:
24282         * css/CSSParser.cpp:
24283         (WebCore::CSSParser::parseContent):
24284         * css/CSSStyleSelector.cpp:
24285         (WebCore::CSSStyleSelector::applyProperty):
24286         (WebCore::CSSStyleSelector::styleImage):
24287         (WebCore::CSSStyleSelector::mapBackgroundImage):
24288         * css/CSSStyleSelector.h:
24289         * html/HTMLImageElement.cpp:
24290         (WebCore::HTMLImageElement::attach):
24291         * rendering/RenderContainer.cpp:
24292         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
24293         * rendering/RenderImage.cpp:
24294         (WebCore::RenderImage::RenderImage):
24295         (WebCore::RenderImage::setCachedImage):
24296         (WebCore::RenderImage::paintReplaced):
24297         (WebCore::RenderImage::calcReplacedWidth):
24298         (WebCore::RenderImage::calcReplacedHeight):
24299         (WebCore::RenderImage::calcAspectRatioWidth):
24300         (WebCore::RenderImage::calcAspectRatioHeight):
24301         * rendering/RenderImage.h:
24302         (WebCore::RenderImage::hasImage):
24303         (WebCore::RenderImage::image):
24304         (WebCore::RenderImage::errorOccurred):
24305         (WebCore::RenderImage::usesImageContainerSize):
24306         (WebCore::RenderImage::setImageContainerSize):
24307         (WebCore::RenderImage::imageHasRelativeWidth):
24308         (WebCore::RenderImage::imageHasRelativeHeight):
24309         (WebCore::RenderImage::imageSize):
24310         * rendering/RenderImageGeneratedContent.cpp: Added.
24311         (WebCore::RenderImageGeneratedContent::RenderImageGeneratedContent):
24312         (WebCore::RenderImageGeneratedContent::~RenderImageGeneratedContent):
24313         (WebCore::RenderImageGeneratedContent::setStyleImage):
24314         * rendering/RenderImageGeneratedContent.h: Added.
24315         (WebCore::RenderImageGeneratedContent::hasImage):
24316         (WebCore::RenderImageGeneratedContent::image):
24317         (WebCore::RenderImageGeneratedContent::errorOccurred):
24318         (WebCore::RenderImageGeneratedContent::usesImageContainerSize):
24319         (WebCore::RenderImageGeneratedContent::setImageContainerSize):
24320         (WebCore::RenderImageGeneratedContent::imageHasRelativeWidth):
24321         (WebCore::RenderImageGeneratedContent::imageHasRelativeHeight):
24322         (WebCore::RenderImageGeneratedContent::imageSize):
24323         * rendering/RenderObject.cpp:
24324         (WebCore::RenderObject::createObject):
24325         * rendering/RenderStyle.cpp:
24326         (WebCore::StyleCachedImage::imageHasRelativeWidth):
24327         (WebCore::StyleCachedImage::imageHasRelativeHeight):
24328         (WebCore::StyleCachedImage::usesImageContainerSize):
24329         (WebCore::RenderStyle::contentDataEquivalent):
24330         (WebCore::RenderStyle::setContent):
24331         (WebCore::ContentData::clear):
24332         * rendering/RenderStyle.h:
24333         (WebCore::StyleGeneratedImage::imageHasRelativeWidth):
24334         (WebCore::StyleGeneratedImage::imageHasRelativeHeight):
24335         (WebCore::StyleGeneratedImage::usesImageContainerSize):
24336         (WebCore::BackgroundLayer::setBackgroundImage):
24337         (WebCore::ContentData::):
24338         (WebCore::RenderStyle::setListStyleImage):
24340 2008-04-14  Brady Eidson  <beidson@apple.com>
24342         Reviewed by Sam, but Anders too, and he was more thorough in his review
24343         and thats the only reason Sam beat him
24345         Swap the Page and SecurityOrigin arguments when creating a StorageArea.
24347         SecurityOrigin is really the primary identifying characteristic of a StorageArea,
24348         and StorageAreas that represent LocalStorage won't have an owner Page.
24350         * storage/SessionStorage.cpp:
24351         (WebCore::SessionStorage::copy):
24352         (WebCore::SessionStorage::storageArea):
24354         * storage/StorageArea.cpp:
24355         (WebCore::StorageArea::create):
24356         (WebCore::StorageArea::StorageArea):
24357         (WebCore::StorageArea::copy):
24358         (WebCore::StorageArea::dispatchStorageEvent): Null check m_page here, as in the future
24359           it might be null
24360         * storage/StorageArea.h:
24362 2008-04-14  Timothy Hatcher  <timothy@apple.com>
24364         Add support for changing the sort order of the resources. The two sorting
24365         methods supported current are Time and Size.
24367         Reviewed by Adam Roben.
24369         * page/inspector/Images/statusbarMenuButton.png: Added.
24370         * page/inspector/Images/statusbarMenuButtonSelected.png: Added.
24371         * page/inspector/ResourcesPanel.js:
24372         (WebInspector.ResourcesPanel): Create the status bar menu button and
24373         setup the event listener to call _changeSortingFunction. Each option in
24374         the select references a sorting function.
24375         (WebInspector.ResourcesPanel.get statusBarItems): Add the sorting menu to the
24376         items returned.
24377         (WebInspector.ResourcesPanel._changeSortingFunction): Set the sorting function
24378         to the selected option's function in the sorting menu.
24379         * page/inspector/inspector.css: Added CSS rules for select elements in status bars.
24381 2008-04-14  Timothy Hatcher  <timothy@apple.com>
24383         Add support for toggling between small and large resource rows
24384         in the Resources panel.
24386         Reviewed by Adam Roben.
24388         * English.lproj/InspectorLocalizedStrings.js: Added new tooltip string.
24389         * page/inspector/Images/largerResourcesButtons.png: Added.
24390         * page/inspector/Images/resourceDocumentIconSmall.png: Added.
24391         * page/inspector/Images/resourcePlainIconSmall.png: Added.
24392         * page/inspector/ResourcesPanel.js:
24393         (WebInspector.ResourcesPanel): Create the status bar button and
24394         setup the event listener to call _toggleLargerResources.
24395         (WebInspector.ResourcesPanel.get statusBarItems): Return the status bar button.
24396         (WebInspector.ResourcesPanel._toggleLargerResources): Toggle the class names
24397         for the resources children list and the status bar button.
24398         * page/inspector/inspector.css: New style rules for small resources
24399         and the status bar item.
24401 2008-04-14  Chris Fleizach  <cfleizach@apple.com>
24403         Reviewed by Darin Adler
24405         <rdar://problem/5854572> REGRESSION: AXPosition seems to be flipped in nightly build
24406         AX was using the wrong method to determine the view to use to create the screen position 
24408         * page/AccessibilityObject.cpp:
24409         (WebCore::AccessibilityObject::documentFrameView):
24410         * page/mac/AccessibilityObjectWrapper.mm:
24411         (-[AccessibilityObjectWrapper position]):
24413 2008-04-14  David Smith  <catfish.man@gmail.com>
24415         Reviewed by Timothy Hatcher.
24416         
24417         - Fix https://bugs.webkit.org/show_bug.cgi?id=14258
24418         Response time vs. download time should be shown in the network profile
24420         * page/inspector/Resource.js: Change the sorting function to sort by response received time.
24421         * page/inspector/ResourcesPanel.js: Hook up the existing infrastructure to two bars instead of one; one for the total time, one for the time post-response.
24422         * page/inspector/inspector.css: Add a new rule to make the waiting bar have a lower opacity, and change the total bar opacity to handle the overlap
24424 2008-04-14  Julien Chaffraix  <jchaffraix@webkit.org>
24426         Reviewed by Ap.
24428         Bug 17403: WebKit Creates Invalid Xhtml Links with Ajax
24429         http://bugs.webkit.org/show_bug.cgi?id=17403
24431         The previous code had callbacks for the normal parsing (full document) and fragment parsing.
24432         The difference was induced by the method we were using which did not accept a xmlParserCtxt.
24433         The code has been refactored to allow us to share the callbacks between the different cases.
24434         A drawback is that we have to use xmlParseContent which is an internal libxml method and thus
24435         some internal intialization is done in WebCore.
24437         Test: fast/parser/ampersand-escaped-parseXMLFragment.xhtml
24439         * dom/XMLTokenizer.cpp:
24440         (WebCore::createStringParser): Moved didInit in the global scope as it is shared by the
24441         2 create methods.
24443         (WebCore::createMemoryParser): Create a memory parser similar to the previous code.
24444         Initialize the xmlParserContext to call xmlParseContent in parseXMLDocumentFragment.
24446         (WebCore::XMLTokenizer::initializeParserContext): Check m_parsingFragment to know
24447         which create method to call.
24449         * dom/XMLTokenizer.h: Added parseXMLDocumentFragment as a friend of XMLTokenizer.
24451 2008-04-14  Rob Buis  <buis@kde.org>
24453         Reviewed by Eric.
24455         http://bugs.webkit.org/show_bug.cgi?id=18230
24456         tspan in link not working
24458         Implement SVG Errata: "The 'a' element may contain any
24459         element that its parent may contain, except itself."
24461         * svg/SVGAElement.cpp:
24462         (WebCore::SVGAElement::childShouldCreateRenderer):
24464 2008-04-13  David Hyatt  <hyatt@apple.com>
24466         Fix for bug 18466, WebKit exhibits slow performance on Opera DHTML benchmark.  Improve layout's rect
24467         invalidation code to only invalidate a single unioned rect once enough individual little rects have
24468         been detected.
24470         Reviewed by olliej
24472         * page/FrameView.cpp:
24473         (WebCore::FrameViewPrivate::reset):
24474         (WebCore::FrameView::layout):
24475         (WebCore::FrameView::repaintRectangle):
24476         (WebCore::FrameView::beginDeferredRepaints):
24477         (WebCore::FrameView::endDeferredRepaints):
24478         * page/FrameView.h:
24480 2008-04-13  Eric Seidel  <eric@webkit.org>
24482         Reviewed by Oliver.
24484         Fix spelling error in function name, no test case.
24486         * svg/SVGTextContentElement.cpp:
24487         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
24489 2008-04-13  Eric Seidel  <eric@webkit.org>
24491         Reviewed by Oliver.
24493         Build fix for +SVG_ANIMATION -SVG_FOREIGN_OBJECT build, no tests.
24495         * svg/SVGAnimateMotionElement.cpp:
24496         (WebCore::SVGAnimateMotionElement::hasValidTarget):
24498 2008-04-13  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
24500         Reviewed by Oliver Hunt.
24502         http://bugs.webkit.org/show_bug.cgi?id=18239
24503         [Gtk] Build breaks if SVG is enabled but SVG Fonts disabled
24505         * svg/SVGAltGlyphElement.idl: Add SVG_FONTS in Conditional
24507 2008-04-13  Julien Chaffraix  <jchaffraix@webkit.org>
24509         Reviewed by David.
24511         More SVG filters build fix.
24513         * svg/graphics/filters/SVGFEImage.cpp:
24514         (WebCore::SVGFEImage::~SVGFEImage):
24515         (WebCore::SVGFEImage::setCachedImage):
24517 2008-04-13  David Hyatt  <hyatt@apple.com>
24519         Fix build bustage on the filters SVG code path (not built by default).
24521         * svg/SVGFEImageElement.cpp:
24522         (WebCore::SVGFEImageElement::~SVGFEImageElement):
24523         (WebCore::SVGFEImageElement::parseMappedAttribute):
24525 2008-04-13  Dan Winship  <danw@gnome.org>
24527         Reviewed by Alp Toker.
24529         http://bugs.webkit.org/show_bug.cgi?id=18391
24530         return body data incrementally from libsoup backend
24532         Fix libsoup backend to pass data to the loader incrementally
24533         rather than all at once at the end.
24535         * platform/network/soup/ResourceHandleSoup.cpp
24536         (ResourceHandle::start): connect to "got-headers" and "got-chunk"
24537         signals on the message
24538         (gotHeadersCallback): call client->didReceiveResponse() from here
24539         (gotChunkCallback): call client->didReceiveData() from here
24540         (finishedCallback): renamed from dataCallback. mostly just calls
24541         client->didFinishLoading() now.
24543 2008-04-13  Dan Bernstein  <mitz@apple.com>
24545         Reviewed by Jessica Kahn.
24547         - remove duplicate condition in canHaveChildrenForEditing()
24549         * editing/htmlediting.cpp:
24550         (WebCore::canHaveChildrenForEditing):
24552 2008-04-13  Dan Bernstein  <mitz@apple.com>
24554         Reviewed by Darin Adler.
24556         - fix http://bugs.webkit.org/show_bug.cgi?id=18307
24557           <rdar://problem/5842546> REGRESSION (r31620): Incorrect Hiragino Kaku Gothic, font-weight:500
24559         Test: fast/css/font-weight-1.html
24561         * platform/graphics/mac/FontCacheMac.mm:
24562         (WebCore::toAppKitFontWeight): Adjusted the mapping to cover the AppKit
24563         weight range from 2 to 12, because AppKit weight 1 never occurs. The
24564         new mapping matches font-weight: n00 to ISO weight Wn.
24565         * platform/mac/WebFontCache.mm:
24566         (betterChoice): Changed the midpoint used when deciding between two
24567         candidates that deviate from the desired weight by the same amount.
24569 2008-04-12  David Hyatt  <hyatt@apple.com>
24571         Memory management cleanup for the new StyleCachedImage and StyleGeneratedImage classes.  Make the back end
24572         values hold refptrs to cached front end values.  This will avoid malloc churn as RenderStyles get
24573         re-resolved.
24575         Reviewed by olliej
24577         * css/CSSCursorImageValue.cpp:
24578         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
24579         (WebCore::CSSCursorImageValue::cachedImage):
24580         * css/CSSCursorImageValue.h:
24581         * css/CSSImageGeneratorValue.cpp:
24582         (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
24583         (WebCore::CSSImageGeneratorValue::generatedImage):
24584         * css/CSSImageGeneratorValue.h:
24585         * css/CSSImageValue.cpp:
24586         (WebCore::CSSImageValue::CSSImageValue):
24587         (WebCore::CSSImageValue::~CSSImageValue):
24588         (WebCore::CSSImageValue::cachedImage):
24589         * css/CSSImageValue.h:
24590         * css/CSSStyleSelector.cpp:
24591         (WebCore::CSSStyleSelector::applyProperty):
24592         (WebCore::CSSStyleSelector::createStyleImage):
24593         * css/CSSStyleSelector.h:
24594         * rendering/RenderStyle.h:
24595         (WebCore::StyleCachedImage::cachedImage):
24596         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
24597         (WebCore::StyleGeneratedImage::data):
24599 2008-04-12  Julien Chaffraix  <jchaffraix@webkit.org>
24601         Not reviewed, Qt build fix.
24603         * dom/XMLTokenizer.cpp:
24604        (WebCore::XMLTokenizer::parseEndElement):
24605         * platform/graphics/qt/GraphicsContextQt.cpp:
24606         (WebCore::GraphicsContext::clip):
24607         * platform/qt/ClipboardQt.cpp:
24608         (WebCore::ClipboardQt::setDragImage):
24610 2008-04-12  David Hyatt  <hyatt@apple.com>
24612         Add support for list-style-image gradients.  Also improve the image comparisons between two RenderStyles        
24613         to not mistakenly believe that images have changed.
24615         Reviewed by olliej
24617         Added fast/gradients/list-item-gradient.html
24619         * css/CSSComputedStyleDeclaration.cpp:
24620         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
24621         * css/CSSParser.cpp:
24622         (WebCore::CSSParser::parseValue):
24623         * css/CSSStyleSelector.cpp:
24624         (WebCore::CSSStyleSelector::applyProperty):
24625         (WebCore::CSSStyleSelector::createStyleImage):
24626         * rendering/RenderListMarker.cpp:
24627         (WebCore::RenderListMarker::RenderListMarker):
24628         (WebCore::RenderListMarker::paint):
24629         (WebCore::RenderListMarker::imageChanged):
24630         (WebCore::RenderListMarker::calcPrefWidths):
24631         * rendering/RenderListMarker.h:
24632         * rendering/RenderStyle.cpp:
24633         (WebCore::imagesEquivalent):
24634         (WebCore::BorderImage::operator==):
24635         (WebCore::StyleCachedImage::errorOccurred):
24636         (WebCore::BackgroundLayer::operator==):
24637         (WebCore::StyleInheritedData::StyleInheritedData):
24638         (WebCore::cursorDataEquivalent):
24639         (WebCore::StyleInheritedData::operator==):
24640         (WebCore::RenderStyle::diff):
24641         * rendering/RenderStyle.h:
24642         (WebCore::StyleImage::errorOccurred):
24643         (WebCore::RenderStyle::listStyleImage):
24644         (WebCore::RenderStyle::setListStyleImage):
24645         (WebCore::RenderStyle::initialListStyleImage):
24647 2008-04-12  Dan Bernstein  <mitz@apple.com>
24649         - Windows build fix
24651         * platform/win/ClipboardWin.cpp:
24652         (WebCore::ClipboardWin::setDragImage):
24654 2008-04-12  Kevin Ollivier  <kevino@theolliviers.com>
24656         wx build fix. Update clip to take a FloatRect.
24658         * platform/graphics/wx/GraphicsContextWx.cpp:
24659         (WebCore::GraphicsContext::clip):
24661 2008-04-12  David Hyatt  <hyatt@apple.com>
24663         Add gradient support to border-image (even though it's mostly just weird).
24665         Reviewed by Dan
24667         Added fast/gradients/border-image-gradient.html
24668               fast/gradients/border-image-gradient-sides-and-corners.html
24670         * css/CSSBorderImageValue.h:
24671         (WebCore::CSSBorderImageValue::imageValue):
24672         * css/CSSStyleSelector.cpp:
24673         (WebCore::CSSStyleSelector::applyProperty):
24674         * platform/graphics/GeneratedImage.cpp:
24675         (WebCore::GeneratedImage::draw):
24676         * rendering/InlineFlowBox.cpp:
24677         (WebCore::InlineFlowBox::paintBoxDecorations):
24678         * rendering/RenderBox.cpp:
24679         (WebCore::RenderBox::imageChanged):
24680         * rendering/RenderObject.cpp:
24681         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
24682         (WebCore::RenderObject::paintBorderImage):
24683         (WebCore::RenderObject::paintBorder):
24684         (WebCore::RenderObject::updateBackgroundImages):
24685         (WebCore::RenderObject::arenaDelete):
24686         * rendering/RenderStyle.cpp:
24687         (WebCore::StyleCachedImage::isLoaded):
24688         * rendering/RenderStyle.h:
24689         (WebCore::StyleImage::isLoaded):
24690         (WebCore::BorderImage::image):
24692 2008-04-11  Dan Bernstein  <mitz@apple.com>
24694         Reviewed by Dave Hyatt.
24696         - fix a regression from r31324 which caused most Arabic text to render
24697           as missing glyphs
24699         Test: svg/W3C-SVG-1.1/fonts-glyph-02-t.svg
24701         * svg/SVGFont.cpp:
24702         (WebCore::SVGTextRunWalker::walk): Changed to always process characters
24703         in logical order and therefore dispatch the callbacks with a logically-
24704         ordered glyph stream. Changed the call to isCompatibleGlyph() to check
24705         for compatibility only with the range of characters the candidate glyph
24706         is derived from rather than with the entire lookup range. Changed to
24707         mark the <missing-glyph> glyph identifier as valid, to facilitate the
24708         use of invalid glyph identifiers to mark font fallback.
24709         (WebCore::drawTextUsingSVGFontCallback): Changed to only append the
24710         glyph identifier to a vector.
24711         (WebCore::drawTextMissingGlyphCallback): Changed to only append the
24712         character to a vector and append an invalid glyph identifier to the
24713         glyph vector.
24714         (WebCore::Font::drawTextUsingSVGFont): Moved the drawing from the
24715         callbacks into this function, iterating over the glyph and fallback
24716         characters vector in visual order.
24718 2008-04-11  Dirk Schulze <vbs85@gmx.de>
24720         Reviewed by eseidel.
24722         Attempt to fix Cairo build.
24724         * platform/graphics/cairo/GraphicsContextCairo.cpp:
24725         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
24727 2008-04-11  David Hyatt  <hyatt@apple.com>
24729         Rename CachedResource's ref/deref methods to addClient/removeClient.  This matches the new
24730         StyleImage class and is a more accurate description of what those methods really do.
24732         Reviewed by olliej
24734         * WebCore.base.exp:
24735         * css/CSSCursorImageValue.cpp:
24736         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
24737         * css/CSSFontFaceSource.cpp:
24738         (WebCore::CSSFontFaceSource::CSSFontFaceSource):
24739         (WebCore::CSSFontFaceSource::~CSSFontFaceSource):
24740         * css/CSSImageValue.cpp:
24741         (WebCore::CSSImageValue::~CSSImageValue):
24742         (WebCore::CSSImageValue::image):
24743         * css/CSSImportRule.cpp:
24744         (WebCore::CSSImportRule::~CSSImportRule):
24745         (WebCore::CSSImportRule::insertedIntoParent):
24746         * dom/ProcessingInstruction.cpp:
24747         (WebCore::ProcessingInstruction::~ProcessingInstruction):
24748         (WebCore::ProcessingInstruction::checkStyleSheet):
24749         (WebCore::ProcessingInstruction::parseStyleSheet):
24750         * dom/XMLTokenizer.cpp:
24751         (WebCore::XMLTokenizer::~XMLTokenizer):
24752         (WebCore::XMLTokenizer::endElementNs):
24753         (WebCore::XMLTokenizer::notifyFinished):
24754         * html/CanvasPattern.cpp:
24755         (WebCore::CanvasPattern::CanvasPattern):
24756         (WebCore::CanvasPattern::~CanvasPattern):
24757         * html/HTMLImageLoader.cpp:
24758         (WebCore::HTMLImageLoader::~HTMLImageLoader):
24759         (WebCore::HTMLImageLoader::setImage):
24760         (WebCore::HTMLImageLoader::updateFromElement):
24761         * html/HTMLLinkElement.cpp:
24762         (WebCore::HTMLLinkElement::~HTMLLinkElement):
24763         (WebCore::HTMLLinkElement::process):
24764         * html/HTMLScriptElement.cpp:
24765         (WebCore::HTMLScriptElement::~HTMLScriptElement):
24766         (WebCore::HTMLScriptElement::parseMappedAttribute):
24767         (WebCore::HTMLScriptElement::insertedIntoDocument):
24768         (WebCore::HTMLScriptElement::removedFromDocument):
24769         (WebCore::HTMLScriptElement::notifyFinished):
24770         * html/HTMLTokenizer.cpp:
24771         (WebCore::HTMLTokenizer::reset):
24772         (WebCore::HTMLTokenizer::scriptHandler):
24773         (WebCore::HTMLTokenizer::notifyFinished):
24774         * loader/CachedCSSStyleSheet.cpp:
24775         (WebCore::CachedCSSStyleSheet::addClient):
24776         * loader/CachedCSSStyleSheet.h:
24777         * loader/CachedFont.cpp:
24778         (WebCore::CachedFont::addClient):
24779         * loader/CachedFont.h:
24780         * loader/CachedImage.cpp:
24781         (WebCore::CachedImage::addClient):
24782         * loader/CachedImage.h:
24783         * loader/CachedResource.cpp:
24784         (WebCore::CachedResource::addClient):
24785         (WebCore::CachedResource::removeClient):
24786         * loader/CachedResource.h:
24787         * loader/CachedScript.cpp:
24788         (WebCore::CachedScript::addClient):
24789         * loader/CachedScript.h:
24790         * loader/CachedXBLDocument.h:
24791         * loader/CachedXSLStyleSheet.cpp:
24792         (WebCore::CachedXSLStyleSheet::addClient):
24793         * loader/CachedXSLStyleSheet.h:
24794         * loader/mac/UserStyleSheetLoader.cpp:
24795         (UserStyleSheetLoader::UserStyleSheetLoader):
24796         (UserStyleSheetLoader::~UserStyleSheetLoader):
24797         * platform/mac/ClipboardMac.mm:
24798         (WebCore::ClipboardMac::setDragImage):
24799         * rendering/RenderImage.cpp:
24800         (WebCore::RenderImage::~RenderImage):
24801         (WebCore::RenderImage::setCachedImage):
24802         * rendering/RenderListMarker.cpp:
24803         (WebCore::RenderListMarker::~RenderListMarker):
24804         (WebCore::RenderListMarker::setStyle):
24805         * rendering/RenderObject.cpp:
24806         (WebCore::RenderObject::updateBackgroundImages):
24807         (WebCore::RenderObject::arenaDelete):
24808         * rendering/RenderStyle.cpp:
24809         (WebCore::StyleCachedImage::addClient):
24810         (WebCore::StyleCachedImage::removeClient):
24811         * svg/SVGImageLoader.cpp:
24812         (WebCore::SVGImageLoader::updateFromElement):
24813         * xml/XSLImportRule.cpp:
24814         (WebCore::XSLImportRule::~XSLImportRule):
24815         (WebCore::XSLImportRule::loadSheet):
24817 2008-04-11  David Hyatt  <hyatt@apple.com>
24819         This patch adds support for CSS gradients as background images.  RenderStyles now hold a StyleImage
24820         RefPtr, which is a wrapper for two types of images: CachedImages (loaded from URLs) and generated images
24821         (patterns created on the fly such as gradients).
24823         All of the features of <canvas> are supported: gradients can be linear or radial, have multiple stops, and
24824         can specify their points as percentages (for reusable gradients across different box sizes).
24826         Reviewed by olliej
24828         Added fast/gradients/simple-gradients.html
24830         * WebCore.xcodeproj/project.pbxproj:
24831         * css/CSSBorderImageValue.cpp:
24832         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
24833         * css/CSSBorderImageValue.h:
24834         (WebCore::CSSBorderImageValue::imageValue):
24835         (WebCore::CSSBorderImageValue::generatorValue):
24836         * css/CSSComputedStyleDeclaration.cpp:
24837         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
24838         * css/CSSGradientValue.cpp: Added.
24839         (WebCore::CSSGradientValue::cssText):
24840         (WebCore::CSSGradientValue::createGradient):
24841         (WebCore::CSSGradientValue::image):
24842         (WebCore::compareStops):
24843         (WebCore::CSSGradientValue::sortStopsIfNeeded):
24844         (WebCore::CSSGradientValue::resolvePoint):
24845         (WebCore::CSSGradientValue::resolveRadius):
24846         * css/CSSGradientValue.h: Added.
24847         (WebCore::CSSGradientColorStop::CSSGradientColorStop):
24848         (WebCore::CSSGradientValue::CSSGradientValue):
24849         (WebCore::CSSGradientValue::type):
24850         (WebCore::CSSGradientValue::setType):
24851         (WebCore::CSSGradientValue::setFirstX):
24852         (WebCore::CSSGradientValue::setFirstY):
24853         (WebCore::CSSGradientValue::setSecondX):
24854         (WebCore::CSSGradientValue::setSecondY):
24855         (WebCore::CSSGradientValue::setFirstRadius):
24856         (WebCore::CSSGradientValue::setSecondRadius):
24857         (WebCore::CSSGradientValue::addStop):
24858         * css/CSSImageGeneratorValue.cpp: Added.
24859         (WebCore::CSSImageGeneratorValue::~CSSImageGeneratorValue):
24860         (WebCore::CSSImageGeneratorValue::addClient):
24861         (WebCore::CSSImageGeneratorValue::removeClient):
24862         (WebCore::CSSImageGeneratorValue::getImage):
24863         (WebCore::CSSImageGeneratorValue::putImage):
24864         * css/CSSImageGeneratorValue.h: Added.
24865         (WebCore::CSSImageGeneratorValue::isImageGeneratorValue):
24866         * css/CSSImageValue.h:
24867         (WebCore::CSSImageValue::isImageValue):
24868         * css/CSSParser.cpp:
24869         (WebCore::CSSParser::parseBackgroundImage):
24870         (WebCore::BorderImageParseContext::commitImage):
24871         (WebCore::CSSParser::parseBorderImage):
24872         (WebCore::parseGradientPoint):
24873         (WebCore::parseGradientColorStop):
24874         (WebCore::CSSParser::parseGradient):
24875         * css/CSSParser.h:
24876         * css/CSSStyleSelector.cpp:
24877         (WebCore::CSSStyleSelector::applyProperty):
24878         (WebCore::CSSStyleSelector::createStyleImage):
24879         (WebCore::CSSStyleSelector::mapBackgroundImage):
24880         * css/CSSStyleSelector.h:
24881         * css/CSSValue.h:
24882         (WebCore::CSSValue::isImageValue):
24883         (WebCore::CSSValue::isImageGeneratorValue):
24884         * html/CanvasRenderingContext2D.cpp:
24885         (WebCore::CanvasRenderingContext2D::isPointInPath):
24886         * platform/graphics/BitmapImage.cpp:
24887         (WebCore::BitmapImage::BitmapImage):
24888         (WebCore::BitmapImage::dataChanged):
24889         (WebCore::BitmapImage::frameCount):
24890         * platform/graphics/BitmapImage.h:
24891         * platform/graphics/GraphicsContext.cpp:
24892         (WebCore::GraphicsContext::clipToImageBuffer):
24893         * platform/graphics/GraphicsContext.h:
24894         * platform/graphics/ImageBuffer.h:
24895         (WebCore::ImageBuffer::cgImage):
24896         (WebCore::ImageBuffer::image):
24897         * platform/graphics/cg/GraphicsContextCG.cpp:
24898         (WebCore::GraphicsContext::clipToImageBuffer):
24899         (WebCore::GraphicsContext::paintBuffer):
24900         (WebCore::GraphicsContext::drawImage):
24901         * platform/graphics/cg/ImageBufferCG.cpp:
24902         (WebCore::ImageBuffer::create):
24903         (WebCore::ImageBuffer::ImageBuffer):
24904         (WebCore::ImageBuffer::~ImageBuffer):
24905         (WebCore::ImageBuffer::image):
24906         (WebCore::ImageBuffer::getImageData):
24907         (WebCore::ImageBuffer::putImageData):
24908         (WebCore::ImageBuffer::toDataURL):
24909         * platform/graphics/cg/ImageCG.cpp:
24910         (WebCore::BitmapImage::BitmapImage):
24911         (WebCore::BitmapImage::draw):
24912         (WebCore::Image::drawPattern):
24913         * platform/graphics/qt/ImageQt.cpp:
24914         (WebCore::BitmapImage::BitmapImage):
24915         * rendering/InlineFlowBox.cpp:
24916         (WebCore::InlineFlowBox::paintBackground):
24917         * rendering/RenderBox.cpp:
24918         (WebCore::RenderBox::calculateBackgroundSize):
24919         (WebCore::RenderBox::imageChanged):
24920         (WebCore::RenderBox::paintBackgroundExtended):
24921         * rendering/RenderObject.cpp:
24922         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
24923         (WebCore::RenderObject::updateBackgroundImages):
24924         (WebCore::RenderObject::arenaDelete):
24925         * rendering/RenderStyle.cpp:
24926         (WebCore::StyleCachedImage::cssValue):
24927         (WebCore::StyleCachedImage::canRender):
24928         (WebCore::StyleCachedImage::imageSize):
24929         (WebCore::StyleCachedImage::setImageContainerSize):
24930         (WebCore::StyleCachedImage::addClient):
24931         (WebCore::StyleCachedImage::removeClient):
24932         (WebCore::StyleCachedImage::image):
24933         (WebCore::StyleGeneratedImage::cssValue):
24934         (WebCore::StyleGeneratedImage::imageSize):
24935         (WebCore::StyleGeneratedImage::setImageContainerSize):
24936         (WebCore::StyleGeneratedImage::addClient):
24937         (WebCore::StyleGeneratedImage::removeClient):
24938         (WebCore::StyleGeneratedImage::image):
24939         * rendering/RenderStyle.h:
24940         (WebCore::StyleImage::StyleImage):
24941         (WebCore::StyleImage::~StyleImage):
24942         (WebCore::StyleImage::operator==):
24943         (WebCore::StyleImage::canRender):
24944         (WebCore::StyleImage::isCachedImage):
24945         (WebCore::StyleImage::isGeneratedImage):
24946         (WebCore::StyleCachedImage::StyleCachedImage):
24947         (WebCore::StyleCachedImage::data):
24948         (WebCore::StyleCachedImage::isCachedImage):
24949         (WebCore::StyleGeneratedImage::StyleGeneratedImage):
24950         (WebCore::StyleGeneratedImage::data):
24951         (WebCore::StyleGeneratedImage::isGeneratedImage):
24952         (WebCore::BackgroundLayer::backgroundImage):
24953         (WebCore::BackgroundLayer::setBackgroundImage):
24954         (WebCore::BackgroundLayer::containsImage):
24955         (WebCore::RenderStyle::backgroundImage):
24956         (WebCore::RenderStyle::initialBackgroundImage):
24957         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
24958         (WebCore::SVGPaintServerGradient::teardown):
24959         * svg/graphics/cg/SVGResourceMaskerCg.mm:
24960         (WebCore::SVGResourceMasker::applyMask):
24962 2008-04-11  Dan Bernstein  <mitz@apple.com>
24964         Reviewed by Oliver Hunt.
24966         - add SVGGlyphMap.h to project files
24968         * WebCore.vcproj/WebCore.vcproj:
24969         * WebCore.xcodeproj/project.pbxproj:
24971 2008-04-11  Anders Carlsson  <andersca@apple.com>
24973         Fix release build.
24974         
24975         * WebCore.base.exp:
24976         
24977         * loader/archive/ArchiveResource.h:
24978         (WebCore::ArchiveResource::response):
24979         This should be const.
24981 2008-04-11  Antti Koivisto  <antti@apple.com>
24983         Try to fix Qt build.
24985         * svg/animation/SMILTime.cpp:
24987 2008-04-11  Anders Carlsson  <andersca@apple.com>
24989         Reviewed by Brady.
24991         Don't create the ArchiveResource response lazily.
24992         
24993         * loader/archive/ArchiveResource.cpp:
24994         (WebCore::ArchiveResource::ArchiveResource):
24995         * loader/archive/ArchiveResource.h:
24996         (WebCore::ArchiveResource::response):
24998 2008-04-11  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
25000         Reviewed by Mark Rowe.
25002         Added missing '\' in the svg include path
25004         * GNUmakefile.am:
25006 2008-04-11  Antti Koivisto  <antti@apple.com>
25008         Another attempted Qt build fix.
25010         * WebCore.pro:
25012 2008-04-11  Antti Koivisto  <antti@apple.com>
25014         Reviewed by Oliver.
25016         Fix build when SVG is enabled but SVG_ANIMATION is not.
25018         * ChangeLog:
25019         * bindings/js/JSSVGElementWrapperFactory.cpp:
25020         * bindings/objc/DOM.mm:
25021         (WebCore::createElementClassMap):
25022         * svg/SVGAElement.cpp:
25023         (WebCore::SVGAElement::defaultEventHandler):
25024         * svg/SVGAnimateColorElement.cpp:
25025         * svg/SVGAnimateColorElement.h:
25026         * svg/SVGAnimateColorElement.idl:
25027         * svg/SVGAnimateMotionElement.h:
25028         * svg/SVGAnimationElement.cpp:
25029         (WebCore::SVGAnimationElement::animationMode):
25030         * svg/SVGAnimationElement.h:
25031         * svg/SVGAnimationElement.idl:
25032         * svg/SVGSetElement.cpp:
25033         * svg/SVGSetElement.h:
25034         * svg/SVGSetElement.idl:
25035         * svg/animation/SMILTimeContainer.cpp:
25036         (WebCore::SMILTimeContainer::begin):
25037         (WebCore::SMILTimeContainer::pause):
25038         (WebCore::SMILTimeContainer::resume):
25039         (WebCore::SMILTimeContainer::elapsed):
25040         (WebCore::SMILTimeContainer::isPaused):
25041         (WebCore::SMILTimeContainer::timerFired):
25042         * svg/animation/SMILTimeContainer.h:
25043         * svg/animation/SVGSMILElement.cpp:
25044         * svg/animation/SVGSMILElement.h:
25045         * svg/svgtags.in:
25047 2008-04-11  Anders Carlsson  <andersca@apple.com>
25049         Reviewed by Brady.
25051         Move archive loading from FrameLoader to DocumentLoader.
25052         
25053         * loader/DocumentLoader.cpp:
25054         (WebCore::DocumentLoader::DocumentLoader):
25055         (WebCore::DocumentLoader::clearArchiveResources):
25056         (WebCore::DocumentLoader::deliverArchivedResourcesAfterDelay):
25057         (WebCore::DocumentLoader::archiveResourceDeliveryTimerFired):
25058         (WebCore::DocumentLoader::isArchiveLoadPending):
25059         (WebCore::DocumentLoader::cancelPendingArchiveLoad):
25060         (WebCore::DocumentLoader::scheduleArchiveLoad):
25061         (WebCore::DocumentLoader::setDefersLoading):
25062         * loader/DocumentLoader.h:
25063         * loader/FrameLoader.cpp:
25064         (WebCore::FrameLoader::FrameLoader):
25065         (WebCore::FrameLoader::setDefersLoading):
25066         (WebCore::FrameLoader::stopAllLoaders):
25067         * loader/FrameLoader.h:
25068         * loader/ResourceLoader.cpp:
25069         (WebCore::ResourceLoader::load):
25070         (WebCore::ResourceLoader::didCancel):
25072 2008-04-11  Timothy Hatcher  <timothy@apple.com>
25074         Fixes the regression where the DOM tree does not update when navigating
25075         to another page with the Inspector open.
25077         https://bugs.webkit.org/show_bug.cgi?id=18418
25079         Reviewed by Adam Roben.
25081         * page/inspector/ElementsPanel.js:
25082         (WebInspector.ElementsPanel.prototype.reset): If the inspected document does not have a
25083         firstChild yet, add an event listener for DOMContentLoaded. The event listener just sets
25084         a proeprty that a polling functions looks for then triggers the reset.
25085         (WebInspector.ElementsPanel.prototype._focusedNodeChanged): Always call updateStyles with
25086         forceUpdate as true. This makes sure the Styles pane clears when there isn't a focused node.
25088 2008-04-11  Dan Bernstein  <mitz@apple.com>
25090         Reviewed by Timothy Hatcher.
25092         - fix http://bugs.webkit.org/show_bug.cgi?id=18412
25093           Inspector truncates text when editing a CSS property
25095         * page/inspector/inspector.css:
25097 2008-04-11  Antti Koivisto  <antti@apple.com>
25099         Try to fix Qt build by including some headers.
25101         * ChangeLog:
25102         * platform/graphics/UnitBezier.h:
25103         * svg/SVGAnimationElement.cpp:
25104         * svg/animation/SMILTime.h:
25105         * svg/animation/SVGSMILElement.cpp:
25107 2008-04-11  Antti Koivisto  <antti@apple.com>
25109         Try to fix Windows build by switching to std::sort().
25111         * svg/animation/SVGSMILElement.cpp:
25112         (WebCore::sortTimeList):
25114 2008-04-11  Rob Buis  <buis@kde.org>
25116         Reviewed by Eric.
25118         http://bugs.webkit.org/show_bug.cgi?id=18340
25119         Elements with display="none" in a <clipPath> still contribute to clipping path
25121         Skip elements in clip-path container that have display=none specified.
25123         * svg/SVGClipPathElement.cpp:
25124         (WebCore::SVGClipPathElement::canvasResource):
25126 2008-04-10  Antti Koivisto  <antti@apple.com>
25128         Reviewed by Eric.
25130         Redo the SVG animation support.
25131         
25132         It does
25133         - Full SMIL interval timing model including syncbase and event base timing (the hard part).
25134         - CSS and XML attribute animation.
25135         - Linear, discrete and spline calcModes.
25136         - Values animation with keyTimes and keySplines.
25137         - Link activated animations.
25138         - Pretty good support for <animate> and <set> animations
25139         - Basic support for <animateColor>, <animateMotion> and <animateTransform>.
25141         This passes some 35 of the 56 tests in W3C SVG animation test suite, a bunch more
25142         with some subtest failures.
25144         What is still missing
25145         - Additive animation with multiple animations operating on the same property. This is a
25146           major architectural feature in animation code. It shouldn't be too hard to add.
25147         - Only <animate> implements accumulate.
25148         - <animateMotion> does not do paths, keypoints, rotate.
25149         - <animateTransform> does not work correctly in all cases
25150         - calcMode paced is missing.
25151         - repeat, beginEvent, endEvent are missing.
25152         - accesskey() is missing.
25153         - JS does not see correct values for baseVal/animVal, changing values that are being
25154           animted for a script produces wrong results. This problem needs to be solved outside
25155           the animation code.
25156         - Some other stuff I forgot or do not know about.
25158         * GNUmakefile.am:
25159         * WebCore.pro:
25160         * WebCore.vcproj/WebCore.vcproj:
25161         * WebCore.xcodeproj/project.pbxproj:
25162         * dom/Document.cpp:
25163         * history/CachedPage.cpp:
25164         (WebCore::CachedPage::CachedPage):
25165         
25166         Use cache notification mechanism to start/stop animations.
25168         * svg/SVGAElement.cpp:
25169         (WebCore::SVGAElement::defaultEventHandler):
25170         
25171         Start target animation on link activation.
25172         
25173         * svg/SVGAnimateColorElement.cpp:
25174         (WebCore::SVGAnimateColorElement::applyAnimatedValueToElement):
25175         (WebCore::SVGAnimateColorElement::updateAnimatedValue):
25176         (WebCore::SVGAnimateColorElement::calculateFromAndToValues):
25177         (WebCore::SVGAnimateColorElement::calculateFromAndByValues):
25178         * svg/SVGAnimateColorElement.h:
25179         * svg/SVGAnimateElement.cpp:
25180         (WebCore::SVGAnimateElement::SVGAnimateElement):
25181         (WebCore::parseNumberValueAndUnit):
25182         (WebCore::SVGAnimateElement::applyAnimatedValueToElement):
25183         (WebCore::SVGAnimateElement::updateAnimatedValue):
25184         (WebCore::isColorAttribute):
25185         (WebCore::SVGAnimateElement::calculateFromAndToValues):
25186         (WebCore::SVGAnimateElement::calculateFromAndByValues):
25187         * svg/SVGAnimateElement.h:
25188         (WebCore::SVGAnimateElement::):
25189         * svg/SVGAnimateMotionElement.cpp:
25190         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
25191         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
25192         (WebCore::SVGAnimateMotionElement::updateAnimatedValue):
25193         (WebCore::parsePoint):
25194         (WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
25195         (WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
25196         (WebCore::SVGAnimateMotionElement::applyAnimatedValueToElement):
25197         (WebCore::SVGAnimateMotionElement::startedActiveInterval):
25198         * svg/SVGAnimateMotionElement.h:
25199         * svg/SVGAnimateTransformElement.cpp:
25200         (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
25201         (WebCore::SVGAnimateTransformElement::hasValidTarget):
25202         (WebCore::SVGAnimateTransformElement::updateAnimatedValue):
25203         (WebCore::transformListFor):
25204         (WebCore::SVGAnimateTransformElement::applyAnimatedValueToElement):
25205         (WebCore::SVGAnimateTransformElement::calculateFromAndToValues):
25206         (WebCore::SVGAnimateTransformElement::calculateFromAndByValues):
25207         (WebCore::SVGAnimateTransformElement::startedActiveInterval):
25208         (WebCore::SVGAnimateTransformElement::parseTransformValue):
25209         * svg/SVGAnimateTransformElement.h:
25210         
25211         Concrete anmation element classes.
25212         
25213         * svg/SVGAnimationElement.cpp:
25214         (WebCore::SVGAnimationElement::SVGAnimationElement):
25215         (WebCore::SVGAnimationElement::~SVGAnimationElement):
25216         (WebCore::parseKeyTimes):
25217         (WebCore::parseKeySplines):
25218         (WebCore::SVGAnimationElement::parseMappedAttribute):
25219         (WebCore::SVGAnimationElement::attributeChanged):
25220         (WebCore::SVGAnimationElement::getStartTime):
25221         (WebCore::SVGAnimationElement::getCurrentTime):
25222         (WebCore::SVGAnimationElement::getSimpleDuration):
25223         (WebCore::SVGAnimationElement::beginElement):
25224         (WebCore::SVGAnimationElement::beginElementAt):
25225         (WebCore::SVGAnimationElement::endElement):
25226         (WebCore::SVGAnimationElement::endElementAt):
25227         (WebCore::SVGAnimationElement::animationMode):
25228         (WebCore::SVGAnimationElement::calcMode):
25229         (WebCore::SVGAnimationElement::attributeType):
25230         (WebCore::SVGAnimationElement::toValue):
25231         (WebCore::SVGAnimationElement::byValue):
25232         (WebCore::SVGAnimationElement::fromValue):
25233         (WebCore::SVGAnimationElement::attributeName):
25234         (WebCore::SVGAnimationElement::isAdditive):
25235         (WebCore::SVGAnimationElement::isAccumulated):
25236         (WebCore::SVGAnimationElement::hasValidTarget):
25237         (WebCore::SVGAnimationElement::targetAttributeIsCSS):
25238         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
25239         (WebCore::SVGAnimationElement::targetAttributeBaseValue):
25240         (WebCore::solveEpsilon):
25241         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
25242         (WebCore::SVGAnimationElement::startedActiveInterval):
25243         (WebCore::SVGAnimationElement::applyAnimation):
25244         (WebCore::SVGAnimationElement::unapplyAnimation):
25245         (WebCore::SVGAnimationElement::endedActiveInterval):
25246         * svg/SVGAnimationElement.h:
25247         (WebCore::SVGAnimationElement::):
25248         
25249         This is pretty much a complete rewrite of the SVGAnimationElement. Timing related functionality
25250         was refactored to SMILTimingElement class that this class now inherits.
25251         
25252         * svg/SVGDocumentExtensions.cpp:
25253         (WebCore::SVGDocumentExtensions::startAnimations):
25254         * svg/SVGElement.cpp:
25255         (WebCore::SVGElement::ownerSVGElement):
25256         * svg/SVGSVGElement.cpp:
25257         
25258         We need to reach the <svg> element from <use> too so go out from the shadow tree.
25259         
25260         (WebCore::SVGSVGElement::SVGSVGElement):
25261         (WebCore::SVGSVGElement::~SVGSVGElement):
25262         (WebCore::SVGSVGElement::pauseAnimations):
25263         (WebCore::SVGSVGElement::unpauseAnimations):
25264         (WebCore::SVGSVGElement::animationsPaused):
25265         (WebCore::SVGSVGElement::getCurrentTime):
25266         (WebCore::SVGSVGElement::willSaveToCache):
25267         (WebCore::SVGSVGElement::willRestoreFromCache):
25268         * svg/SVGSVGElement.h:
25269         (WebCore::SVGSVGElement::timeContainer):
25270         * svg/SVGSetElement.cpp:
25271         (WebCore::SVGSetElement::applyAnimatedValueToElement):
25272         (WebCore::SVGSetElement::calculateFromAndToValues):
25273         (WebCore::SVGSetElement::calculateFromAndByValues):
25274         (WebCore::SVGSetElement::updateAnimatedValue):
25275         * svg/SVGSetElement.h:
25276         
25277         Concrete anmation element classes.
25278         
25279         * svg/SVGTimer.cpp: Removed.
25280         * svg/SVGTimer.h: Removed.
25281         * svg/SVGUseElement.cpp:
25282         (WebCore::SVGUseElement::removedFromDocument):
25283         * svg/TimeScheduler.cpp: Removed.
25284         * svg/TimeScheduler.h: Removed.
25285         
25286         Replaced these with SMILTimeContainer class.
25287         
25288         * svg/animation: Added.
25289         * svg/animation/SMILTime.cpp: Added.
25290         (WebCore::operator+):
25291         (WebCore::operator-):
25292         (WebCore::operator*):
25293         * svg/animation/SMILTime.h: Added.
25294         (WebCore::SMILTime::SMILTime):
25295         (WebCore::SMILTime::unresolved):
25296         (WebCore::SMILTime::indefinite):
25297         (WebCore::SMILTime::operator=):
25298         (WebCore::SMILTime::value):
25299         (WebCore::SMILTime::isFinite):
25300         (WebCore::SMILTime::isIndefinite):
25301         (WebCore::SMILTime::isUnresolved):
25302         (WebCore::operator==):
25303         (WebCore::operator!=):
25304         (WebCore::operator>):
25305         (WebCore::operator<):
25306         (WebCore::operator>=):
25307         (WebCore::operator<=):
25308         (WebCore::max):
25309         (WebCore::min):
25310         
25311         A floating point number with special values "indefinite" and "unresolved". Defines math for those.
25312         
25313         * svg/animation/SMILTimeContainer.cpp: Added.
25314         (WebCore::SMILTimeContainer::SMILTimeContainer):
25315         (WebCore::SMILTimeContainer::schedule):
25316         (WebCore::SMILTimeContainer::unschedule):
25317         (WebCore::SMILTimeContainer::elapsed):
25318         (WebCore::SMILTimeContainer::isActive):
25319         (WebCore::SMILTimeContainer::isPaused):
25320         (WebCore::SMILTimeContainer::begin):
25321         (WebCore::SMILTimeContainer::pause):
25322         (WebCore::SMILTimeContainer::resume):
25323         (WebCore::SMILTimeContainer::startTimer):
25324         (WebCore::SMILTimeContainer::timerFired):
25325         (WebCore::SMILTimeContainer::updateAnimations):
25326         * svg/animation/SMILTimeContainer.h: Added.
25327         
25328         Manages the clock and time line for active animations in a document.
25329         
25330         * svg/animation/SVGSMILElement.cpp: Added.
25331         (WebCore::ConditionEventListener::ConditionEventListener):
25332         (WebCore::ConditionEventListener::handleEvent):
25333         (WebCore::SVGSMILElement::Condition::Condition):
25334         (WebCore::SVGSMILElement::SVGSMILElement):
25335         (WebCore::SVGSMILElement::~SVGSMILElement):
25336         (WebCore::SVGSMILElement::insertedIntoDocument):
25337         (WebCore::SVGSMILElement::removedFromDocument):
25338         (WebCore::SVGSMILElement::finishParsingChildren):
25339         (WebCore::SVGSMILElement::parseOffsetValue):
25340         (WebCore::SVGSMILElement::parseClockValue):
25341         (WebCore::smilTimeSortFunction):
25342         (WebCore::sortTimeList):
25343         (WebCore::SVGSMILElement::parseCondition):
25344         (WebCore::SVGSMILElement::isTimingElement):
25345         (WebCore::SVGSMILElement::parseBeginOrEnd):
25346         (WebCore::SVGSMILElement::parseMappedAttribute):
25347         (WebCore::SVGSMILElement::attributeChanged):
25348         (WebCore::SVGSMILElement::connectConditions):
25349         (WebCore::SVGSMILElement::disconnectConditions):
25350         (WebCore::SVGSMILElement::reschedule):
25351         (WebCore::SVGSMILElement::targetElement):
25352         (WebCore::SVGSMILElement::elapsed):
25353         (WebCore::SVGSMILElement::restart):
25354         (WebCore::SVGSMILElement::fill):
25355         (WebCore::SVGSMILElement::xlinkHref):
25356         (WebCore::SVGSMILElement::dur):
25357         (WebCore::SVGSMILElement::repeatDur):
25358         (WebCore::SVGSMILElement::repeatCount):
25359         (WebCore::SVGSMILElement::maxValue):
25360         (WebCore::SVGSMILElement::minValue):
25361         (WebCore::SVGSMILElement::simpleDuration):
25362         (WebCore::SVGSMILElement::addBeginTime):
25363         (WebCore::SVGSMILElement::addEndTime):
25364         (WebCore::SVGSMILElement::findInstanceTime):
25365         (WebCore::SVGSMILElement::repeatingDuration):
25366         (WebCore::SVGSMILElement::resolveActiveEnd):
25367         (WebCore::SVGSMILElement::resolveInterval):
25368         (WebCore::SVGSMILElement::resolveFirstInterval):
25369         (WebCore::SVGSMILElement::resolveNextInterval):
25370         (WebCore::SVGSMILElement::nextProgressTime):
25371         (WebCore::SVGSMILElement::beginListChanged):
25372         (WebCore::SVGSMILElement::endListChanged):
25373         (WebCore::SVGSMILElement::checkRestart):
25374         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
25375         (WebCore::SVGSMILElement::calculateNextProgressTime):
25376         (WebCore::SVGSMILElement::determineActiveState):
25377         (WebCore::SVGSMILElement::progress):
25378         (WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
25379         (WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):
25380         (WebCore::SVGSMILElement::addTimeDependent):
25381         (WebCore::SVGSMILElement::removeTimeDependent):
25382         (WebCore::SVGSMILElement::handleConditionEvent):
25383         (WebCore::SVGSMILElement::beginByLinkActivation):
25384         * svg/animation/SVGSMILElement.h: Added.
25385         (WebCore::SVGSMILElement::timeContainer):
25386         (WebCore::SVGSMILElement::):
25387         (WebCore::SVGSMILElement::intervalBegin):
25388         (WebCore::SVGSMILElement::intervalEnd):
25389         (WebCore::SVGSMILElement::Condition::):
25390         
25391             This abstract class implements the SMIL timing model. As an output it produces calls
25392             to these virtual functions:
25393         
25394             virtual void startedActiveInterval() = 0;
25395             virtual void applyAnimation(float percent, unsigned repeat) = 0;
25396             virtual void unapplyAnimation() = 0;
25397             virtual void endedActiveInterval() = 0;
25399 2008-04-10  Antti Koivisto  <antti@apple.com>
25401         Reviewed by Eric.
25403         Move CurveData out from AnimationController.cpp and rename
25404         it to UnitBezier. This makes it possible to reuse this nice class from the 
25405         SVG animation code.
25407         * WebCore.vcproj/WebCore.vcproj:
25408         * WebCore.xcodeproj/project.pbxproj:
25409         * page/AnimationController.cpp:
25410         (WebCore::solveCubicBezierFunction):
25411         * platform/graphics/UnitBezier.h: Added.
25412         (WebCore::UnitBezier::UnitBezier):
25413         (WebCore::UnitBezier::sampleCurveX):
25414         (WebCore::UnitBezier::sampleCurveY):
25415         (WebCore::UnitBezier::sampleCurveDerivativeX):
25416         (WebCore::UnitBezier::solveCurveX):
25417         (WebCore::UnitBezier::solve):
25419 2008-04-10  Brady Eidson  <beidson@apple.com>
25421         Reviewed by Sam Weinig
25423         The name "OriginStorage" never felt right to a few of us.  The HTML5 spec refers to our 
25424         concept of "OriginStorage" as a "storage area", which makes more sense here.
25426         This patch is basically:
25427         s/OriginStorage/StorageArea/
25429         * GNUmakefile.am:
25430         * WebCore.pro:
25431         * WebCore.vcproj/WebCore.vcproj:
25432         * WebCore.xcodeproj/project.pbxproj:
25433         * WebCoreSources.bkl:
25435         * loader/FrameLoader.cpp:
25437         * page/DOMWindow.cpp:
25438         (WebCore::DOMWindow::sessionStorage):
25439         * page/Page.cpp:
25441         * storage/OriginStorage.cpp: Removed.
25442         * storage/OriginStorage.h: Removed.
25444         * storage/SessionStorage.cpp:
25445         (WebCore::SessionStorage::copy):
25446         (WebCore::SessionStorage::storageArea):
25447         * storage/SessionStorage.h:
25449         * storage/Storage.cpp:
25450         (WebCore::Storage::create):
25451         (WebCore::Storage::Storage):
25452         (WebCore::Storage::length):
25453         (WebCore::Storage::key):
25454         (WebCore::Storage::getItem):
25455         (WebCore::Storage::setItem):
25456         (WebCore::Storage::removeItem):
25457         (WebCore::Storage::contains):
25458         * storage/Storage.h:
25460         * storage/StorageArea.cpp: Copied from storage/OriginStorage.cpp.
25461         (WebCore::StorageArea::create):
25462         (WebCore::StorageArea::StorageArea):
25463         (WebCore::StorageArea::~StorageArea):
25464         (WebCore::StorageArea::copy):
25465         (WebCore::StorageArea::length):
25466         (WebCore::StorageArea::key):
25467         (WebCore::StorageArea::getItem):
25468         (WebCore::StorageArea::setItem):
25469         (WebCore::StorageArea::removeItem):
25470         (WebCore::StorageArea::contains):
25471         (WebCore::StorageArea::dispatchStorageEvent):
25472         * storage/StorageArea.h: Copied from storage/OriginStorage.h.
25474 2008-04-10  Xan Lopez  <xan@gnome.org>
25476         Reviewed by Alp Toker.
25478         http://bugs.webkit.org/show_bug.cgi?id=18342
25479         Bug #18342 - Add logging to HTTP soup backend
25480         
25481         Add soup logging facilities to HTTP soup backend.
25482         Enable defining WEBKIT_SOUP_LOGGING, with values from
25483         0 to 3 for more verbosity.
25484         
25485         * platform/network/soup/ResourceHandleSoup.cpp:
25486         (WebCore::ResourceHandle::start):
25488 2008-04-10  Timothy Hatcher  <timothy@apple.com>
25490         Fixes floating point precision in the Resources graph labels by using String.sprintf to
25491         format the values. Also makes the image view use Number.bytesToString when showing the file
25492         size. Makes Number.bytesToString and Number.secondsToString take an optional formatter function
25493         so the Inspector can pass WebInspector.UIString, so the format strings can be localized.
25495         https://bugs.webkit.org/show_bug.cgi?id=18381
25496         https://bugs.webkit.org/show_bug.cgi?id=14333
25498         Reviewed by Adam Roben.
25500         * English.lproj/InspectorLocalizedStrings.js: Added the new strings.
25501         * page/inspector/ImageView.js:
25502         (WebInspector.ImageView): Use Number.bytesToString to format this.resource.contentLength.
25503         * page/inspector/ResourcesPanel.js:
25504         (WebInspector.ResourceTransferTimeCalculator.prototype.formatValue): Pass WebInspector.UIString
25505         to Number.secondsToString.
25506         (WebInspector.ResourceTransferSizeCalculator.prototype.formatValue): Pass WebInspector.UIString
25507         to Number.bytesToString.
25508         * page/inspector/utilities.js:
25509         (Number.secondsToString): Added a formatterFunction argument. Use the formatter and format strings
25510         to control the number precision.
25511         (Number.bytesToString): Ditto.
25513 2008-04-010  Alice Liu  <alice.liu@apple.com>
25515         Reviewed by Dan Bernstein.
25517         Fixed <rdar://5815856> CrashTracer: [USER] 8384 crashes in WebCore::Widget::getView const + 6
25519         Test: fast/events/mouseout-dead-subframe.html
25521         * page/EventHandler.cpp:
25522         dispatching a mouse event can change the document structure, necessitating
25523         a check for whether we still want to pass the event to the pre-determined subframe 
25524         (WebCore::EventHandler::handleMouseMoveEvent):
25526 2008-04-10  Antti Koivisto  <antti@apple.com>
25528         Reviewed by Eric.
25530         Fix scale transform. This will be tested by the animation test suite when
25531         SVG animation support lands.
25533         * svg/SVGTransformDistance.cpp:
25534         (WebCore::SVGTransformDistance::SVGTransformDistance):
25536 2008-04-10  David Hyatt  <hyatt@apple.com>
25538         Add a gradient fillRect method to GraphicsContext.  This is implemented only in the CG port.  I stubbed
25539         out a method in GraphicsContext.cpp with notImplemented().  Other platforms will need to add their own
25540         gradient fill methods.
25542         Reviewed by aroben
25544         * platform/graphics/GraphicsContext.cpp:
25545         (WebCore::GraphicsContext::fillRect):
25546         * platform/graphics/GraphicsContext.h:
25547         * platform/graphics/cg/GraphicsContextCG.cpp:
25548         (WebCore::GraphicsContext::fillRect):
25550 2008-04-10  David Hyatt  <hyatt@apple.com>
25552         Gradient improvements.  Support for adding color stops by Color and not just by String.  Add the ability to mark
25553         stops as already being sorted.
25555         Reviewed by aroben
25557         * platform/graphics/Gradient.cpp:
25558         (WebCore::Gradient::addColorStop):
25559         * platform/graphics/Gradient.h:
25560         (WebCore::Gradient::setStopsSorted):
25562 2008-04-10  Timothy Hatcher  <timothy@apple.com>
25564         Fixes the build where some wtf headers would not be copied due
25565         to a bug in some older versions of Xcode.
25567         Rubber-stamped by Adam Roben.
25569         * WebCore.xcodeproj/project.pbxproj: Adds a new script phase to handle
25570         the copying of the icu and ForwardingHeaders folder to WebCore's PrivateHeaders.
25571         Removes the old copy files phase and the icu and ForwardingHeaders folder references.
25573 2008-04-09  Brady Eidson  <beidson@apple.com>
25575         Reviewed by Mitz Pettel
25577         Add the "onstorage" attribute for the body element to provide easy setup of StorageEvent handling.
25579         Tests: storage/domstorage/sessionstorage/onstorage-attribute-markup.html
25580                storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html
25582         * html/HTMLAttributeNames.in: Added "onstorage"
25583         * html/HTMLBodyElement.cpp:
25584         (WebCore::HTMLBodyElement::parseMappedAttribute): Handle this attribute on the body element *only*
25585           because that's where the HTML5 spec says StorageEvents go.  This might change in the future
25587 2008-04-09  Antti Koivisto  <antti@apple.com>
25589         Reviewed by Mitz.
25591         Remove a less-than-critical bit from Node and replace it with a hash. Those bits are valuable!
25593         Also moved setting of the guard to dispatchSimulatedClick for better consistency. 
25594         No one else calls dispatchSimulatedMouseEvent() currently and this is really a click() specific behavior.
25596         * dom/EventTargetNode.cpp:
25597         (WebCore::EventTargetNode::dispatchSimulatedMouseEvent):
25598         (WebCore::EventTargetNode::dispatchSimulatedClick):
25599         * dom/Node.cpp:
25600         (WebCore::Node::Node):
25601         * dom/Node.h:
25603 2008-04-09  Sam Weinig  <sam@webkit.org>
25605         Reviewed by Geoffrey Garen.
25607         Fix for https://bugs.webkit.org/show_bug.cgi?id=18389
25608         Crash in JSDOMWindowWrapper::mark loading digg.com
25610         - Add a null check to JSDOMWindowWrapper::mark for the case when the collector
25611           runs during its allocation.
25612         - Cleans up the creation of the window to be a little more straight forward.
25614         * bindings/js/JSDOMWindowBase.cpp:
25615         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
25616         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
25617         (WebCore::JSDOMWindowBase::clear):
25618         (WebCore::JSDOMWindowBase::wrapper):
25619         * bindings/js/JSDOMWindowBase.h:
25620         * bindings/js/JSDOMWindowWrapper.cpp:
25621         (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper):
25622         (WebCore::JSDOMWindowWrapper::mark):
25623         * bindings/js/JSDOMWindowWrapper.h:
25624         * bindings/js/kjs_proxy.cpp:
25625         (WebCore::KJSProxy::initScript):
25626         * bindings/scripts/CodeGeneratorJS.pm:
25628 2008-04-09  Brady Eidson  <beidson@apple.com>
25630         Rubberstamped by Mitzpettel
25632         Added HTMLAttributeNames.in and HTMLTagNames.in to the xcodeproj for easy editing, 
25633         and sorted the html group
25635         * WebCore.xcodeproj/project.pbxproj:
25637 2008-04-09  Brent Fulgham  <bfulgham@gmail.com>
25639         Reviewed by Mitz.
25641         Correct build regression in Windows (Cairo) build due to changes
25642         in FontDescription.h signature.  (see http://bugs.webkit.org/show_bug.cgi?id=18394)
25644         * rendering/RenderThemeWin.cpp:  Change for new font methods.
25645         (WebCore::RenderThemeWin::systemFont):
25647 2008-04-09  Brady Eidson  <beidson@apple.com>
25649         Reviewed by Sam Weinig
25651         When enumerating a Storage object, the Storage built-ins should not be included, but the 
25652         prototype chain SHOULD be included.
25654         * bindings/js/JSStorageCustom.cpp:
25655         (WebCore::JSStorage::customGetPropertyNames): Return false so the prototype chain is walked
25657         * storage/Storage.idl: Mark all built-ins as "DontEnum"
25659 2008-04-09  Brady Eidson  <beidson@apple.com>
25661         Reviewed by Adam Roben
25663         Per the HTML5 spec, enumerating a Storage object should walk the keys in the storage area, 
25664         and should not return the built-in properties.
25666         Test: storage/domstorage/sessionstorage/enumerate-storage.html
25668         * bindings/js/JSLocationCustom.cpp:
25669         (WebCore::JSLocation::customGetPropertyNames): Removed the name from an unused parameter
25671         * bindings/js/JSStorageCustom.cpp:
25672         (WebCore::JSStorage::customGetPropertyNames): Copy all of the keys into the property names array
25674         * storage/Storage.idl: Add CustomGetPropertyNames
25676 2008-04-09  Timothy Hatcher  <timothy@apple.com>
25678         Fixes the regression where resource time/size pills do not
25679         update during a load in the Inspector.
25681         http://bugs.webkit.org/show_bug.cgi?id=18374
25683         Reviewed by John Sullivan.
25685         * page/inspector/ResourcesPanel.js:
25686         (ResourcesPanel.prototype.show): Remove an unneeded call to _updateGraphBars,
25687         since _updateSidebarWidth already calls _updateGraphBars.
25688         (ResourcesPanel.prototype.addResource): Call updateGraphSideWidth.
25689         (ResourcesPanel.prototype._updateGraphBars): Ditto.
25690         (ResourceSidebarTreeElement.prototype.updateGraphSideWidth): Update the
25691         style for graphSideElement with the passed in width.
25693 2008-04-09  Antti Koivisto  <antti@apple.com>
25695         Reviewed by Mitz.
25697         Avoid unnecessary calls to virtual updateStyleAttributeIfNeeded() method.
25698         - do the the checking in call sites instead of inside the function
25699         - rename to updateStyleAttribute()
25700         - use namedAttrMap directly (for getting id attribute) in insertedIntoDocument/removedFromDocument 
25701           to avoid calling attributes() which may trigger style attribute update.
25702         
25703         * dom/Element.cpp:
25704         (WebCore::Element::attributes):
25705         (WebCore::Element::getAttribute):
25706         (WebCore::Element::hasAttributes):
25707         (WebCore::Element::insertedIntoDocument):
25708         (WebCore::Element::removedFromDocument):
25709         * dom/Element.h:
25710         (WebCore::Element::updateStyleAttribute):
25711         * dom/NamedAttrMap.cpp:
25712         (WebCore::NamedAttrMap::addAttribute):
25713         * dom/StyledElement.cpp:
25714         (WebCore::StyledElement::updateStyleAttribute):
25715         * dom/StyledElement.h:
25717 2008-04-09  Timothy Hatcher  <timothy@apple.com>
25719         A more complete fix for: can't drag the Web Inspector when grabbing
25720         in the toolbar area. Makes dragging under the search field in the
25721         empty space work again.
25723         http://bugs.webkit.org/show_bug.cgi?id=18373
25725         Reviewed by Adam Roben.
25727         * page/inspector/inspector.js:
25728         (WebInspector.toolbarDragStart): Prevent dragging if the event target
25729         is a toggleable toolbar item. Allow dragging when the target is a
25730         normal toolbar item.
25732 2008-04-08  Sam Weinig  <sam@webkit.org>
25734         Reviewed by Timothy Hatcher.
25736         Fix for http://bugs.webkit.org/show_bug.cgi?id=18373
25737         REGRESSION: Can't drag the Web Inspector when grabbing in the toolbar area
25739         * page/inspector/inspector.css:
25741 2008-04-08  Christian Persch  <chpe@gnome.org>
25743         Reviewed by Alp Toker.
25745         http://bugs.webkit.org/show_bug.cgi?id=18360
25746         "missing sentinel" warnings in PluginDatabaseGtk.cpp
25748         Use NULL, not 0 as sentinel in varargs calls.
25750         * plugins/gtk/PluginDatabaseGtk.cpp:
25751         (WebCore::PluginDatabase::getPluginPathsInDirectories):
25752         (WebCore::PluginDatabase::defaultPluginDirectories):
25754 2008-04-04  Sam Weinig  <sam@webkit.org>
25756         Reviewed by Geoffrey Garen.
25758         First step in implementing the "split window"
25760         - This patch takes the first step in changing the window navigation model
25761           from clearing the window properties on navigation, to replacing
25762           an inner window.  This is necessary to safely perform security checks
25763           using the lexical global object.
25765           This first step adds a new class called JSDOMWindowWrapper, which wraps
25766           the real window object.  All JS calls that would go to the window object
25767           now go to it, which it forwards to the current inner window.  To accomplish
25768           this, the wrapper window is used as the ThisValue wherever the window was used
25769           before.
25771         * WebCore.base.exp:
25772         * WebCore.xcodeproj/project.pbxproj:
25773         * bindings/js/JSDOMWindowBase.cpp:
25774         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
25775         (WebCore::JSDOMWindowBase::clear): Reset the wrapper windows prototype too.
25776         (WebCore::JSDOMWindowBase::toThisObject):
25777         (WebCore::JSDOMWindowBase::wrapper):
25778         (WebCore::windowProtoFuncAToB):
25779         (WebCore::windowProtoFuncBToA):
25780         (WebCore::windowProtoFuncOpen):
25781         (WebCore::windowProtoFuncSetTimeout):
25782         (WebCore::windowProtoFuncClearTimeout):
25783         (WebCore::windowProtoFuncSetInterval):
25784         (WebCore::windowProtoFuncAddEventListener):
25785         (WebCore::windowProtoFuncRemoveEventListener):
25786         (WebCore::windowProtoFuncShowModalDialog):
25787         (WebCore::windowProtoFuncNotImplemented):
25788         (WebCore::toJS):
25789         * bindings/js/JSDOMWindowBase.h:
25790         Fix to expect the wrapper as the thisObj.
25791         * bindings/js/JSDOMWindowCustom.cpp:
25792         (WebCore::JSDOMWindow::postMessage):
25793         (WebCore::toDOMWindow):
25794         * bindings/js/JSDOMWindowWrapper.cpp: Added.
25795         (WebCore::JSDOMWindowWrapper::JSDOMWindowWrapper):
25796         (WebCore::JSDOMWindowWrapper::~JSDOMWindowWrapper):
25797         (WebCore::JSDOMWindowWrapper::mark):
25798         (WebCore::JSDOMWindowWrapper::className):
25799         (WebCore::JSDOMWindowWrapper::getOwnPropertySlot):
25800         (WebCore::JSDOMWindowWrapper::put):
25801         (WebCore::JSDOMWindowWrapper::deleteProperty):
25802         (WebCore::JSDOMWindowWrapper::getPropertyNames):
25803         (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
25804         (WebCore::JSDOMWindowWrapper::defineGetter):
25805         (WebCore::JSDOMWindowWrapper::defineSetter):
25806         (WebCore::JSDOMWindowWrapper::lookupGetter):
25807         (WebCore::JSDOMWindowWrapper::lookupSetter):
25808         (WebCore::JSDOMWindowWrapper::toGlobalObject):
25809         (WebCore::JSDOMWindowWrapper::impl):
25810         (WebCore::JSDOMWindowWrapper::disconnectFrame):
25811         (WebCore::JSDOMWindowWrapper::clear):
25812         (WebCore::toJS):
25813         * bindings/js/JSDOMWindowWrapper.h: Added.
25814         (WebCore::JSDOMWindowWrapper::innerWindow):
25815         (WebCore::JSDOMWindowWrapper::setInnerWindow):
25816         (WebCore::JSDOMWindowWrapper::classInfo):
25817         Forward methods to the innerWindow.
25818         * bindings/js/JSHTMLDocumentCustom.cpp:
25819         (WebCore::JSHTMLDocument::open):
25820         * bindings/js/ScheduledAction.cpp:
25821         (WebCore::ScheduledAction::execute):
25822         * bindings/js/kjs_events.cpp:
25823         (WebCore::JSAbstractEventListener::handleEvent):
25824         * bindings/js/kjs_proxy.cpp:
25825         (WebCore::KJSProxy::~KJSProxy):
25826         (WebCore::KJSProxy::evaluate):
25827         (WebCore::KJSProxy::clear):
25828         (WebCore::KJSProxy::initScript):
25829         (WebCore::KJSProxy::clearDocumentWrapper):
25830         (WebCore::KJSProxy::processingUserGesture):
25831         (WebCore::KJSProxy::attachDebugger):
25832         * bindings/js/kjs_proxy.h:
25833         (WebCore::KJSProxy::haveWindowWrapper):
25834         (WebCore::KJSProxy::windowWrapper):
25835         (WebCore::KJSProxy::globalObject):
25836         (WebCore::KJSProxy::initScriptIfNeeded):
25837         Hold onto the wrapper window instead of global object.  As a convenience,
25838         keep the globalObject() as a forward to the inner window.
25839         * bindings/objc/DOMUtility.mm:
25840         (KJS::createDOMWrapper):
25841         * bindings/scripts/CodeGeneratorJS.pm:
25842         * dom/Document.cpp:
25843         (WebCore::Document::domWindow):
25844         * dom/Document.h:
25845         (WebCore::Document::defaultView):
25846         * loader/FrameLoader.cpp:
25847         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
25848         * page/DOMWindow.idl:
25849         * page/Frame.cpp:
25850         (WebCore::Frame::~Frame):
25851         (WebCore::Frame::pageDestroyed):
25853 2008-04-08  Brady Eidson  <beidson@apple.com>
25855         Encourage Windows to rebuild - AGAIN...
25857         * WebCore.vcproj/build-generated-files.sh:
25858         * bindings/scripts/CodeGenerator.pm:
25859         * bindings/scripts/CodeGeneratorJS.pm:
25860         * config.h:
25862 2008-04-08  Brady Eidson  <beidson@apple.com>
25864         OMG release builds didn't have this flag Windows build bots I'm so 
25865         sorry will you ever forgive me?
25867         (Found by Stephanie, rubberstamped and landed by Brady)
25869         * WebCore.vcproj/WebCore.vcproj: Add ENABLE_DOM_STORAGE for release builds
25871 2008-04-08  Timothy Hatcher  <timothy@apple.com>
25873         Fixes a crash in KJS::JSValue::toObject when closing
25874         Safari with Inspector open.
25876         http://bugs.webkit.org/show_bug.cgi?id=18371
25878         Reviewed by Adam Roben.
25880         * page/InspectorController.cpp:
25881         (WebCore::inspectedWindow): NULL check the result of toJSDOMWindow.
25882         Return JSNull if JSDOMWindow is 0.
25883         * page/inspector/ElementsPanel.js:
25884         (ElementsPanel.prototype.reset): NULL check the result of
25885         InspectorController.inspectedWindow.
25887 2008-04-08  Adam Roben  <aroben@apple.com>
25889         Wx build fix
25891         * webcore-wx.bkl: Removed entry for non-existent file.
25893 2008-04-08  Adam Roben  <aroben@apple.com>
25895         qmake build fixes
25897         * WebCore.pro: Removed entries for non-existent files.
25899 2008-04-08  Brady Eidson  <beidson@apple.com>
25901         Rubberstamped by Adam Roben
25902         
25903         Touch some files to *strongly* encourage Windows to rebuilt with DOM_STORAGE enabled
25905         * WebCore.vcproj/build-generated-files.sh:
25906         * bindings/scripts/CodeGenerator.pm:
25907         * config.h:
25909 2008-04-08  Timothy Hatcher  <timothy@apple.com>
25911         Implements the majority of the Inspector UI refresh as shown at:
25912         http://trac.webkit.org/projects/webkit/wiki/ProposedWebInspectorUIRefresh
25914         http://bugs.webkit.org/show_bug.cgi?id=17773
25916         A few areas that have not been re-implemented with the new UI are:
25917         * Search and search results.
25918         * Request and response headers in the Resources panel.
25919         * Changing the sorting, grouping or toggling small rows in Resources.
25920         * Image and font previews in the icon of resources.
25922         Reviewed by Adam Roben.
25924         * English.lproj/InspectorLocalizedStrings.js: Updated to match actual strings.
25925         * WebCore.vcproj/WebCore.vcproj: Added new files.
25926         * page/InspectorController.cpp:
25927         (WebCore::InspectorController::setWindowVisible): Call resetScriptObjects()
25928         instead of individual clear functions.
25929         (WebCore::InspectorController::populateScriptObjects): Renamed from
25930         populateScriptResources.
25931         (WebCore::InspectorController::addDatabaseScriptResource): Call
25932         addDatabase instead of addResource.
25933         (WebCore::InspectorController::removeDatabaseScriptResource): Call
25934         removeDatabase instead of removeResource.
25935         (WebCore::InspectorController::resetScriptObjects): Renamed from
25936         clearScriptResources.
25937         (WebCore::InspectorController::didCommitLoad): Call resetScriptObjects()
25938         instead of individual clear functions.
25939         * page/InspectorController.h: Rename functions.
25940         * page/inspector/Console.js: Changed the object name to Console from
25941         ConsolePanel. Made it inherit the prototype from View. Added code
25942         to animate in and out.
25943         * page/inspector/Database.js: Removed title updating and Resource
25944         pseudo-subclassing. Made more of a Model object that just encapsulates
25945         data. Add a getter for table names.
25946         * page/inspector/DatabaseQueryView.js: Added. Implements the view seen
25947         when selecting a Database in the DatabasesPanel. Implemented as an
25948         interactive console-like area.
25949         * page/inspector/DatabaseTableView.js: Added. Implements the view seen
25950         when selecting a Database Table in the DatabasesPanel. Matches the old
25951         Browse view of Database panels.
25952         * page/inspector/DatabasesPanel.js: Changed the object name to DatabasesPanel
25953         from DatabasePanel. Implements a panel that shows a sidebar of Databases
25954         and Database Tables.
25955         * page/inspector/ElementsPanel.js:  Changed the object name to ElementsPanel
25956         from DocumentPanel. Implements the DOM tree that shows the DOM rooted at the
25957         main resource.
25958         * page/inspector/FontView.js: Use this.contentElement instead of this.element.
25959         * page/inspector/ImageView.js: Ditto.
25960         * page/inspector/Images/clearConsoleButtons.png: Added.
25961         * page/inspector/Images/consoleButtons.png: Added.
25962         * page/inspector/Images/darkShadow.png: Flipped.
25963         * page/inspector/Images/database.png: Modified to be 32x32.
25964         * page/inspector/Images/databaseTable.png: Added.
25965         * page/inspector/Images/databasesIcon.png: Added.
25966         * page/inspector/Images/disclosureTriangleSmallDown.png: Added.
25967         * page/inspector/Images/disclosureTriangleSmallDownBlack.png: Added.
25968         * page/inspector/Images/disclosureTriangleSmallDownWhite.png: Added.
25969         * page/inspector/Images/disclosureTriangleSmallRight.png: Added.
25970         * page/inspector/Images/disclosureTriangleSmallRightBlack.png: Added.
25971         * page/inspector/Images/disclosureTriangleSmallRightDown.png: Added.
25972         * page/inspector/Images/disclosureTriangleSmallRightDownBlack.png: Added.
25973         * page/inspector/Images/disclosureTriangleSmallRightDownWhite.png: Added.
25974         * page/inspector/Images/disclosureTriangleSmallRightWhite.png: Added.
25975         * page/inspector/Images/dockButtons.png: Added.
25976         * page/inspector/Images/elementsIcon.png: Added.
25977         * page/inspector/Images/gradientHighlightBottom.png:
25978         * page/inspector/Images/resourceCSSIcon.png: Added.
25979         * page/inspector/Images/resourceDocumentIcon.png: Added.
25980         * page/inspector/Images/resourcePlainIcon.png: Added.
25981         * page/inspector/Images/resourcesIcon.png: Added.
25982         * page/inspector/Images/resourcesSizeGraphIcon.png: Added.
25983         * page/inspector/Images/resourcesTimeGraphIcon.png: Added.
25984         * page/inspector/Images/scriptsIcon.png: Added.
25985         * page/inspector/Images/segment.png: Modified to fit the taller status bar.
25986         * page/inspector/Images/segmentEnd.png: Ditto.
25987         * page/inspector/Images/segmentHover.png: Ditto.
25988         * page/inspector/Images/segmentHoverEnd.png: Ditto.
25989         * page/inspector/Images/segmentSelected.png: Ditto.
25990         * page/inspector/Images/segmentSelectedEnd.png: Ditto.
25991         * page/inspector/Images/sidebarSelectionBackground.png: Added.
25992         * page/inspector/Images/sidebarSelectionBackgroundFocused.png: Added.
25993         * page/inspector/Images/sidebarSelectionBackgroundInactive.png: Added.
25994         * page/inspector/Images/sidebarSmallSelectionBackground.png: Added.
25995         * page/inspector/Images/sidebarSmallSelectionBackgroundFocused.png: Added.
25996         * page/inspector/Images/sidebarSmallSelectionBackgroundInactive.png: Added.
25997         * page/inspector/Images/statusbarBackground.png: Added.
25998         * page/inspector/Images/statusbarBottomBackground.png: Added.
25999         * page/inspector/Images/statusbarButtons.png: Added.
26000         * page/inspector/Images/statusbarResizerVertical.png: Added.
26001         * page/inspector/Images/toolbarItemSelected.png: Added.
26002         * page/inspector/Panel.js: Added support for toolbar items and status bar items.
26003         Inherits from the View prototype.
26004         * page/inspector/Resource.js: Removed title updating and the ResourceTreeElement.
26005         Made more of a Model object that just encapsulates data.
26006         * page/inspector/ResourceCategory.js: Removed the ResourceCategoryTreeElement.
26007         Made more of a Model object that just encapsulates data.
26008         * page/inspector/ResourceView.js: A simple base object for Resource views
26009         shown in ResourcesPanel. Inherits from the View prototype.
26010         * page/inspector/ResourcesPanel.js: Changed the object name to ResourcesPanel
26011         from NetworkPanel. Implements the timeline graph, size graph and resource
26012         viewing by using ResourceViews.
26013         * page/inspector/SidebarTreeElement.js: Added. Inherits from TreeElement and implements
26014         a section element and a regular element that has an icon, title and optional subtitle.
26015         * page/inspector/SourceView.js: Use this.contentElement instead of this.element.
26016         * page/inspector/StylesSidebarPane.js: Null check WebInspector.mainResource.
26017         * page/inspector/View.js: Added. A simple object to manage showing and hiding an element.
26018         * page/inspector/WebKit.qrc: Added new files.
26019         * page/inspector/inspector.css: New and changed style rules to support the new UI.
26020         * page/inspector/inspector.html: New and changed HTML for the UI. The search field
26021         is disabled until search is reimplemented.
26022         * page/inspector/inspector.js: Removed code related to the sidebar and back-forward lists.
26023         Also removed code related to navigation to panels. Added code to instantiate the new
26024         panels and setup the toolbar.
26026 2008-04-08  Dan Bernstein  <mitz@apple.com>
26028         Reviewed by Antti Koivisto.
26030         - fix a regression from r31313 which made the inspector highlight and
26031           yellow find highlight for table cells with extra top appear in the
26032           wrong position
26034         * rendering/LayoutState.cpp:
26035         (WebCore::LayoutState::LayoutState): Changed absolutePosition() to
26036         absolutePositionForContent(), to get the right position for children of
26037         table cells. This is the correct fix for this part of r31313.
26038         * rendering/RenderBox.cpp:
26039         (WebCore::RenderBox::absolutePosition): Reverted the change from r31313
26040         by changing absolutePosition() to absolutePositionForContent() here too.
26041         * rendering/RenderObject.h:
26042         (WebCore::RenderObject::absolutePositionForContent): Changed to return
26043         the result from absolutePosition().
26044         * rendering/RenderTableCell.cpp:
26045         (WebCore::RenderTableCell::absoluteClippedOverflowRect): Turned the
26046         "else" case into an early return.
26047         (WebCore::RenderTableCell::absolutePosition): Reverted the change from
26048         r31313.
26050 2008-04-08  Dan Bernstein  <mitz@apple.com>
26052         Reviewed by Antti Koivisto.
26054         - fix http://bugs.webkit.org/show_bug.cgi?id=18172
26055           REGRESSION (r31114-31132): Page renders structured almost horizontally (at flickr.com)
26057         Test: fast/block/float/br-with-clear-2.html
26059         * rendering/bidi.cpp:
26060         (WebCore::RenderBlock::layoutInlineChildren): The existing code for
26061         handling a float-clearing <br> in incremental layout had several bugs in
26062         it: it only applied when the <br> was on the last line of the block; it
26063         assumed that the <br> was always the rightmost box on the line (which is
26064         false in right-to-left runs); and in some places it looked at the last
26065         child of the block instead of the last box on the line. Fixed these
26066         bugs.
26068 2008-04-08  Adam Roben  <aroben@apple.com>
26070         Mac build fix
26072         * WebCore.xcodeproj/project.pbxproj: Removed MainThread* files which
26073         were moved to WTF.
26075 2008-04-08  Timothy Hatcher  <timothy@apple.com>
26077         Change WebInspector.elementDragStart and WebInspector.elementDragEnd to have more
26078         state, so calling elementDragEnd does not need the listener functions. Also makes
26079         calling elementDragStart again without elementDragEnd work correctly.
26081         Reviewed by Adam Roben.
26083         * page/inspector/ElementsPanel.js:
26084         (DocumentPanel.prototype.rightSidebarResizerDragStart): Just call WebInspector.elementDragStart.
26085         Removed code that stored away the listeners now that elementDragStart does it.
26086         (DocumentPanel.prototype.rightSidebarResizerDragEnd): Just call WebInspector.elementDragEnd.
26087         Removed code that deleted listeners properties now that elementDragEnd does it.
26088         * page/inspector/inspector.js:
26089         (WebInspector.sidebarResizerDragEnd): Pass less arguments to elementDragEnd.
26090         (WebInspector.searchResultsResizerDragEnd): Ditto.
26091         (WebInspector.elementDragStart): Store the listeners as private properties on WebInspector.
26092         If the properties are already defined, call elementDragEnd first.
26093         (WebInspector.elementDragEnd): Remove the event listeners using the stored properties.
26094         Delete the private listener properties.
26096 2008-04-08  Adam Roben  <aroben@apple.com>
26098         Build fix
26100         * ForwardingHeaders/wtf/MainThread.h: Added. Forgot to commit this.
26102 2008-04-08  Adam Roben  <aroben@apple.com>
26104         Move callOnMainThread to WTF
26106         Reviewed by Alexey Proskuryakov.
26108         * GNUmakefile.am:
26109         * WebCore.pro:
26110         * WebCore.vcproj/WebCore.vcproj:
26111         * WebCoreSources.bkl:
26112         Removed MainThread files.
26114         * bindings/js/JSCustomSQLTransactionCallback.cpp:
26115         * loader/icon/IconDatabase.cpp:
26116         (WebCore::iconDatabase):
26117         * storage/Database.cpp:
26118         (WebCore::Database::Database):
26119         * storage/DatabaseTracker.cpp:
26120         Updated #includes and replaced calls to
26121         WebCore::initializeThreadingAndMainThread with calls to
26122         KJS::initializeThreading.
26124         * platform/MainThread.cpp: Removed.
26125         * platform/MainThread.h: Removed.
26126         * platform/gtk/MainThreadGtk.cpp: Removed.
26127         * platform/mac/MainThreadMac.mm: Removed.
26128         * platform/qt/MainThreadQt.cpp: Removed.
26129         * platform/win/MainThreadWin.cpp: Removed.
26130         * platform/wx/MainThreadWx.cpp: Removed.
26132 2008-04-07  Timothy Hatcher  <timothy@apple.com>
26134         Makes the Network timeline graph resource sizes on the bar graph
26135         when Transfer Size is selected.
26137         http://bugs.webkit.org/show_bug.cgi?id=18351
26139         Reviewed by Adam Roben.
26141         * page/inspector/Resource.js:
26142         (WebInspector.Resource.CompareByTime): Array sorting function for time.
26143         Copied from WebInspector.NetworkPanel.timelineEntryCompare.
26145         * page/inspector/ResourcesPanel.js:
26146         (WebInspector.NetworkPanel): Set the selectedIndex of graphModeSelectElement to
26147         make Transfer Time the default graph.
26148         (WebInspector.NetworkPanel.prototype.changeGraphMode): Call calculator.reset,
26149         _refreshAllResources and _updateGraphDividersIfNeeded.
26150         (WebInspector.NetworkPanel.prototype.get totalDuration): Removed.
26151         (WebInspector.NetworkPanel.prototype._updateGraphBoundriesIfNeeded): Removed boundary
26152         checking code and just call calculator.updateBoundries.
26153         (WebInspector.NetworkPanel.prototype._updateGraphDividersIfNeeded): Add a force argument.
26154         Use calculator.boundarySpan when computing the slice. If the slice is NaN, don't make a label.
26155         Ask the calculator to format the label values for each slice.
26156         (WebInspector.NetworkPanel.prototype.clearTimeline): Call calculator.reset.
26157         (WebInspector.NetworkPanel.timelineEntryCompare): Call WebInspector.Resource.CompareByTime.
26159         (WebInspector.NetworkTimelineEntry.prototype.refresh): Ask the panel's calculator to compute
26160         bar graph percentages for a resource. Use those percentages to change the bar style.
26162         (WebInspector.ResourceCalculator): Renamed from WebInspector.TimelineValueCalculator.
26163         (WebInspector.ResourceCalculator.prototype.computeSummaryValues): Changed the Array.forEach
26164         to a normal for loop. Work with resources instead of TimelineEntries.
26165         (WebInspector.ResourceCalculator.prototype.computeBarGraphPercentages): Return basic bar graph
26166         percents with start always being zero.
26167         (WebInspector.ResourceCalculator.prototype.get boundarySpan): Return the difference between
26168         maximumBoundary and minimumBoundary.
26169         (WebInspector.ResourceCalculator.prototype.updateBoundries): Update maximumBoundary based on _value.
26170         The minimumBoundary is always zero.
26171         (WebInspector.ResourceCalculator.prototype.reset): Delete maximumBoundary and minimumBoundary.
26172         (WebInspector.ResourceCalculator.prototype._value): Takes a Resource instead of TimelineEntry.
26174         (WebInspector.ResourceTransferTimeCalculator): Renamed from TransferTimeCalculator.
26175         (WebInspector.ResourceTransferTimeCalculator.prototype.computeSummaryValues): Work with resources
26176         instead of entries. Changed the Array.forEach to a normal for loop.
26177         (WebInspector.ResourceTransferTimeCalculator.prototype.computeBarGraphPercentages): Return percents
26178         just like WebInspector.NetworkTimelineEntry.prototype.refresh was doing before.
26179         (WebInspector.ResourceTransferTimeCalculator.prototype.updateBoundries): Update minimumBoundary and
26180         maximumBoundary just like the checks WebInspector.NetworkPanel.prototype._updateGraphBoundriesIfNeeded was doing.
26182         (WebInspector.ResourceTransferSizeCalculator): Renamed from TransferSizeCalculator.
26183         (WebInspector.ResourceTransferSizeCalculator.prototype._value): Takes a Resource instead of TimelineEntry.
26185 2008-04-08  Rob Buis  <buis@kde.org>
26187         Fix the SVG build.
26189         * svg/SVGFEFloodElement.cpp:
26190         (WebCore::SVGFEFloodElement::filterEffect):
26192 2008-04-08  Alice Liu  <alice.liu@apple.com>
26194         Reviewed by Dan Bernstein.
26195         
26196         fixed http://bugs.webkit.org/show_bug.cgi?id=18329
26197         REGRESSION: Assertion failure in -[WebViewFactory endOfTextMarkerRange:] 
26198         when invoking the Dictionary pop-up
26200         * page/mac/AccessibilityObjectWrapper.mm:
26201         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
26202         In the section of code where WebCore-equivalents of mac-specific types are
26203         prepared, some functions weren't meant to operate on the default initialized
26204         values.  Checking for nil in certain places will better maintain the original
26205         pre-refactoring code path. 
26207 2008-04-08  Dan Bernstein  <mitz@apple.com>
26209         Reviewed by Maciej Stachowiak.
26211         - fix most of the Windows layout test regressions from the font-weight patch
26213         * platform/graphics/win/FontCacheWin.cpp:
26214         (WebCore::matchImprovingEnumProc): Changed to be symmetric with respect
26215         to italics: always prefer (reject) a candidate that changes the italics
26216         trait to (from) the desired value.
26217         (WebCore::createGDIFont): Added code to set more members of the LOGFONT
26218         structure before creating the font.
26220 2008-04-07  Rob Buis  <buis@kde.org>
26222         Reviewed by Ollie.
26224         http://bugs.webkit.org/show_bug.cgi?id=18354
26225         feFlood in attribute should be removed according to SVG 1.1 Errata
26227         Remove the in attribute from SVGFEFlood DOM.
26229         * svg/SVGFEFloodElement.cpp:
26230         (WebCore::SVGFEFloodElement::parseMappedAttribute):
26231         * svg/SVGFEFloodElement.h:
26232         * svg/SVGFEFloodElement.idl:
26234 2008-04-07  Brady Eidson  <beidson@apple.com>
26236         Touch JSStorageCustom.cpp to try to FORCE a recompile on bots that haven't gotten the message
26238         * bindings/js/JSStorageCustom.cpp:
26239         (WebCore::JSStorage::customPut):
26241 2008-04-07  Brady Eidson  <beidson@apple.com>
26243         Reviewed by John Honeycutt
26245         ENABLE_DOM_STORAGE for Windows
26247         * WebCore.vcproj/WebCore.vcproj:
26248         * WebCore.vcproj/build-generated-files.sh:
26250 2008-04-07  Brady Eidson  <beidson@apple.com>
26252         Fix build for builds without DOM_STORAGE enabled
26254         * dom/EventTargetNode.cpp:
26255         (WebCore::EventTargetNode::dispatchStorageEvent):
26256         * dom/EventTargetNode.h:
26258 2008-04-07  Alice Liu  <alice.liu@apple.com>
26260         Reviewed by Beth Dakin.
26262         * WebCore.vcproj/WebCore.vcproj:
26263             Added a few cross-platform accessibility source files
26264             
26265         * WebCore.xcodeproj/project.pbxproj:
26266             Added AXObjectCache.cpp
26267             
26268         * page/AXObjectCache.cpp: Added.
26269             These were made cross-platform:
26270         (WebCore::AXObjectCache::~AXObjectCache):
26271         (WebCore::AXObjectCache::get):
26272         (WebCore::AXObjectCache::remove):
26273         (WebCore::AXObjectCache::childrenChanged):
26274         
26275         * page/AXObjectCache.h:
26276             These were made platform-specific
26277         (WebCore::AXObjectCache::isIDinUse):
26278         (WebCore::AXObjectCache::detachWrapper):
26279         (WebCore::AXObjectCache::attachWrapper):
26280         (WebCore::AXObjectCache::postNotificationToElement):
26281         
26282         * page/AccessibilityObject.cpp:
26283         (WebCore::AccessibilityObject::detach):
26284             Since only the mac has a wrapper for now, so temporarily 
26285             wrapping this line in #if PLATFORM(MAC)
26286             
26287         (WebCore::AccessibilityObject::removeAXObjectID):
26288             Since only the mac has uses Accessibility Object IDs,
26289             wrap this line in #if PLATFORM(MAC)
26290             
26291         * page/mac/AXObjectCacheMac.mm:
26292             Detaching and attaching the wrapper is platform-specific 
26293             since each wrapper class is platform-specific.
26294         (WebCore::AXObjectCache::detachWrapper):
26295         (WebCore::AXObjectCache::attachWrapper):        
26297 2008-04-07  Brady Eidson  <beidson@apple.com>
26299         Lovingly reviewed by Sam Weinig
26301         <rdar://problem/5797684> - HTML5 SessionStorage and underpinnings for LocalStorage
26303         Tests: storage/domstorage/sessionstorage/iframe-events.html
26304                storage/domstorage/sessionstorage/index-get-and-set.html
26305                storage/domstorage/sessionstorage/simple-events.html
26306                storage/domstorage/sessionstorage/simple-usage.html
26307                storage/domstorage/sessionstorage/window-open.html
26308                storage/domstorage/window-attributes-exist.html
26310         * Configurations/WebCore.xcconfig: Define to enable DOM_STORAGE
26312         * bindings/js/JSDOMWindowCustom.cpp:
26313         (WebCore::JSDOMWindow::mark): Add optionalSessionStorage case
26315         * bindings/js/JSEventCustom.cpp:
26316         (WebCore::toJS): Add StorageEvent case
26318         * bindings/js/JSStorageCustom.cpp:
26319         (WebCore::JSStorage::canGetItemsForName):
26320         (WebCore::JSStorage::nameGetter): If the property doesn't exist on the object, call through to getItem()
26321         (WebCore::JSStorage::customPut): If the property doesn't exist on the object, call through to setItem()
26323         * dom/Event.cpp:
26324         (WebCore::Event::isStorageEvent):
26325         * dom/Event.h:
26327         * dom/EventNames.h: Add "storage"
26329         * dom/EventTargetNode.cpp:
26330         (WebCore::EventTargetNode::dispatchStorageEvent):
26331         * dom/EventTargetNode.h:
26333         * loader/FrameLoader.cpp:
26334         (WebCore::FrameLoader::createWindow): After a new page has been created, set its SessionStorage object
26335           to a copy of the previous Page's
26337         * page/DOMWindow.cpp:
26338         (WebCore::DOMWindow::sessionStorage): Accessor to pull the appropriate OriginStorage out of the Page's
26339           SessionStorage.
26340         (WebCore::DOMWindow::localStorage): To be filled in later
26341         * page/DOMWindow.h:
26342         (WebCore::DOMWindow::optionalSessionStorage): Return the session Storage object for this window to mark, 
26343           if any exists
26344         * page/DOMWindow.idl:
26346         * page/Page.cpp:
26347         (WebCore::Page::sessionStorage):  Create and/or return the SessionStorage for this Page.
26348         (WebCore::Page::setSessionStorage): Set the SessionStorage for this Page - used in FrameLoader after a
26349           Window.open();
26350         * page/Page.h:
26352         * storage/OriginStorage.cpp: Intermediate layer between individual Storage objects, and shared StorageMap 
26353           objects.  There is one OriginStorage object per SecurityOrigin in each "unique set of storage areas", such
26354           as the SessionStorage.  This layer forwards DOM-level calls down to the backing StorageMap, handles 
26355           copy-on-write along with the StorageMap, fires StorageEvents to the DOM when a value is changed, and will
26356           eventually handle quota enforcement.
26357         (WebCore::OriginStorage::create):
26358         (WebCore::OriginStorage::OriginStorage):
26359         (WebCore::OriginStorage::~OriginStorage):
26360         (WebCore::OriginStorage::copy):
26361         (WebCore::OriginStorage::length):
26362         (WebCore::OriginStorage::key):
26363         (WebCore::OriginStorage::getItem):
26364         (WebCore::OriginStorage::setItem):
26365         (WebCore::OriginStorage::removeItem):
26366         (WebCore::OriginStorage::contains):
26367         (WebCore::OriginStorage::dispatchStorageEvent):
26368         * storage/OriginStorage.h:
26370         * storage/SessionStorage.cpp: From the HTML5 spec:
26371           "Each top-level browsing context has a unique set of session storage areas, one for each origin."
26372           This object represents that "unique set of session storage areas", and creates or returns the Storage
26373           object for the requested SecurityOrigin
26374         (WebCore::SessionStorage::create):
26375         (WebCore::SessionStorage::SessionStorage):
26376         (WebCore::SessionStorage::copy):
26377         (WebCore::SessionStorage::originStorage):
26378         * storage/SessionStorage.h:
26379         (WebCore::SessionStorage::page):
26381         * storage/Storage.cpp: Representation of the DOM-level object, wrapped by JSStorage.  There is a unique
26382           Storage object per Window (per-Frame) that wraps a specific shared OriginStorage object.
26383         (WebCore::Storage::create):
26384         (WebCore::Storage::Storage):
26385         (WebCore::Storage::length):
26386         (WebCore::Storage::key):
26387         (WebCore::Storage::getItem):
26388         (WebCore::Storage::setItem):
26389         (WebCore::Storage::removeItem):
26390         (WebCore::Storage::contains):
26391         * storage/Storage.h:
26392         * storage/Storage.idl:
26394         * storage/StorageEvent.cpp:
26395         (WebCore::StorageEvent::StorageEvent):
26396         (WebCore::StorageEvent::initStorageEvent):
26397         * storage/StorageEvent.h:
26398         (WebCore::StorageEvent::isStorageEvent):
26400         * storage/StorageMap.cpp: The physical map of key/value pairs that is shared between OriginStorage objects, 
26401           and implements copy-on-write semantics whenever a value is changed
26402         (WebCore::StorageMap::create):
26403         (WebCore::StorageMap::StorageMap):
26404         (WebCore::StorageMap::copy):
26405         (WebCore::StorageMap::invalidateIterator): Used to support the key(unsigned i) part of the API
26406         (WebCore::StorageMap::setIteratorToIndex): Ditto
26407         (WebCore::StorageMap::length):
26408         (WebCore::StorageMap::key):
26409         (WebCore::StorageMap::getItem):
26410         (WebCore::StorageMap::setItem):
26411         (WebCore::StorageMap::removeItem):
26412         (WebCore::StorageMap::contains):
26413         * storage/StorageMap.h:
26415 2008-04-07  Timothy Hatcher  <timothy@apple.com>
26417         Renamed various functions that are internal to the Console
26418         object to have an underscore prefix.
26420         Rubber-stamped by Adam Roben.
26422         * page/inspector/Console.js:
26424 2008-04-07  Timothy Hatcher  <timothy@apple.com>
26426         Renamed various functions and properties that are internal
26427         to an object to have an underscore prefix.
26429         Rubber-stamped by Adam Roben.
26431         * page/inspector/Resource.js:
26432         * page/inspector/ResourcesPanel.js:
26434 2008-04-07  Timothy Hatcher  <timothy@apple.com>
26436         Fixes coding style for two utility getters.
26438         * page/inspector/utilities.js: Fix coding style for the
26439         totalOffsetLeft and totalOffsetTop getters.
26441 2008-04-07  Dan Bernstein  <mitz@apple.com>
26443         Reviewed by Dave Hyatt.
26445         - fix http://bugs.webkit.org/show_bug.cgi?id=18311
26446           <rdar://problem/5842980> REGRESSION (r31620): Font variants (e.g. Helvetica Neue *Light*) don't render correctly
26448         * platform/mac/WebFontCache.mm:
26449         (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Changed to
26450         match by family name first, and only if that fails, look for a match by
26451         full (PostScript) name. Reverted the full name-based match logic to only
26452         distinguish between the broad categories of "bold" and "not bold".
26454 2008-04-07  Timothy Hatcher  <timothy@apple.com>
26456         When the WebInspector.currentFocusElement changes, move the caret
26457         selection to be inside the focused element. This makes sure the
26458         caret moves in and out of the console when the focus changes.
26460         Reviewed by Adam Roben.
26462         * page/inspector/TextPrompt.js:
26463         (TextPrompt.prototype.isCaretInsidePrompt): Just call isInsertionCaretInside.
26464         * page/inspector/inspector.js: 
26465         (WebInspector.set currentFocusElement): Make a caret selection inside
26466         the focused element if there isn't a range selection and there isn't
26467         already a caret selection inside.
26468         * page/inspector/utilities.js:
26469         (Element.prototype.isInsertionCaretInside): Added. Tests if the
26470         selection is collapsed and is inside the element.
26472 2008-04-07  Brady Eidson  <beidson@apple.com>
26474         Reviewed by Tim Hatcher
26476         Add 1 more empty file for upcoming work, as a separate step, to keep all build-systems working
26478         * GNUmakefile.am:
26479         * WebCore.pro:
26480         * WebCore.vcproj/WebCore.vcproj:
26481         * WebCore.xcodeproj/project.pbxproj:
26482         * WebCoreSources.bkl:
26484         * bindings/js/JSStorageCustom.cpp: Added.
26486 2008-04-07  Alexey Proskuryakov  <ap@webkit.org>
26488         Reviewed by Dan Bernstein.
26490         <rdar://problem/5574946> Inline frame ISO-8859-1 even though parent character set is UTF-8
26492         Test: fast/loader/inherit-charset-to-empty-frame.html
26494         * loader/FrameLoader.cpp:
26495         (WebCore::FrameLoader::write): Treat an empty m_encoding the same as null one.
26497 2008-04-07  Timothy Hatcher  <timothy@apple.com>
26499         Rename some Inspector panel objects to facilitate the up-coming
26500         UI refresh changes.
26502         Reviewed by Adam Roben.
26504         * page/inspector/DatabasesPanel.js: Renamed ResourcePanel to ResourceView.
26505         * page/inspector/ElementsPanel.js: Renamed SourcePanel to SourceView.
26506         * page/inspector/FontView.js: Renamed FontPanel to FontView.
26507         * page/inspector/ImageView.js: Renamed ImagePanel to ImageView.
26508         * page/inspector/Resource.js: Instantiate the new "View" named objects.
26509         * page/inspector/ResourceView.js: Renamed ResourcePanel to ResourceView.
26510         * page/inspector/SourceView.js: Renamed SourcePanel to SourceView.
26512 2008-04-07  Timothy Hatcher  <timothy@apple.com>
26514         Fix an exception and remove code that was missed when TextPrompt
26515         was added. This makes the Console work again.
26516         
26517         Reviewed by Adam Roben.
26518         
26519         * page/inspector/Console.js: Removed code that used non-existent
26520         properties.
26522 2008-04-07  Timothy Hatcher  <timothy@apple.com>
26524         Remove the workaround for bug 11399 now that it is fixed.
26526         Reviewed by Adam Roben.
26528         * page/inspector/Console.js: Removed the 'with' statement
26529         around the eval and call eval directly on the inspected window.
26531 2008-04-07  Luca Bruno  <lethalman88@gmail.com>
26533         Reviewed by Alp Toker.
26535         http://bugs.webkit.org/show_bug.cgi?id=18297
26536         Bug #18297 - Acid2/Acid3 -tests don't load load with soup.
26538         Fixes in the libsoup backend: data url parsing, acid tests, redirects,
26539         response headers handling and re-entrancy issues on job cancellation.
26540         Thanks to Dan Winship for libsoup hints.
26542         * platform/network/ResourceHandleInternal.h:
26543         (WebCore::ResourceHandleInternal::ResourceHandleInternal): add m_cancelled and remove unuseful m_session
26544         * platform/network/soup/ResourceHandleSoup.cpp:
26545         (WebCore::restartedCallback): added to route redirects to webkit
26546         (WebCore::dataCallback): add response headers, some checks and fix re-entrancy
26547         (WebCore::parseDataUrl): be an idle callback for the main loop
26548         (WebCore::ResourceHandle::start):
26549         (WebCore::ResourceHandle::cancel): fixed re-entrancy
26551 2008-04-07  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
26553         Build fix, rubber-stamped and landed by ap.
26555         * GNUmakefile.am: Fix dom_storage conditional and typo: ENABLE_DOM_STORAG
26557 2008-04-07  Brady Eidson  <beidson@apple.com>
26559         Whoops, idls don't go in the vcproj!
26561         * WebCore.vcproj/WebCore.vcproj:
26563 2008-04-06  Brady Eidson <beidson@apple.com>
26565         Attempt to tickle Windows build into accepting this idl
26567         * storage/StorageEvent.idl:
26569 2008-04-06  Brady Eidson <beidson@apple.com>
26571         Reviewed by Sam
26573         HTML5 Session and Local Storage
26575         Land a bunch of empty files and interfaces to keep things building while 
26576         I finish off the rest of the implementation of SessionStorage
26578         * DerivedSources.make:
26579         * GNUmakefile.am:
26580         * WebCore.pro:
26581         * WebCore.vcproj/WebCore.vcproj:
26582         * WebCore.xcodeproj/project.pbxproj:
26583         * WebCoreSources.bkl:
26585         * storage/OriginStorage.cpp: Added.
26586         * storage/OriginStorage.h: Added.
26588         * storage/SessionStorage.cpp: Added.
26589         * storage/SessionStorage.h: Added.
26591         * storage/Storage.cpp: Added.
26592         (WebCore::Storage::length):
26593         (WebCore::Storage::key):
26594         (WebCore::Storage::getItem):
26595         (WebCore::Storage::setItem):
26596         (WebCore::Storage::removeItem):
26597         * storage/Storage.h: Added.
26598         * storage/Storage.idl: Added.
26600         * storage/StorageEvent.cpp: Added.
26601         * storage/StorageEvent.h: Added.
26602         (WebCore::StorageEvent::key):
26603         (WebCore::StorageEvent::oldValue):
26604         (WebCore::StorageEvent::newValue):
26605         (WebCore::StorageEvent::uri):
26606         (WebCore::StorageEvent::source):
26607         (WebCore::StorageEvent::initStorageEvent):
26608         * storage/StorageEvent.idl: Added.
26610         * storage/StorageMap.cpp: Added.
26611         * storage/StorageMap.h: Added.
26613 2008-04-05  Kevin Ollivier  <kevino@theolliviers.com>
26615         Reviewed by Mark Rowe.
26617         Add CSS to the MIMETypeRegistry, which ensures CSS files get
26618         the right MIMEType when loaded from disk.
26620         * platform/gtk/MIMETypeRegistryGtk.cpp:
26621         * platform/wx/MimeTypeRegistryWx.cpp:
26623 2008-04-05  Rob Buis  <buis@kde.org>
26625         Reviewed by Eric.
26627         http://bugs.webkit.org/show_bug.cgi?id=17129
26628         Incorrect style resolution in CSS styled SVG, with multiple style sheets
26630         Fix the style resolution on the svg by ensuring xml-stylesheet pseudo
26631         attributes title and alternate are transferred to the stylesheet
26632         created from the ProcessingInstruction.
26634         * dom/ProcessingInstruction.cpp:
26635         (WebCore::ProcessingInstruction::ProcessingInstruction):
26636         (WebCore::ProcessingInstruction::checkStyleSheet):
26637         (WebCore::ProcessingInstruction::setCSSStyleSheet):
26638         * dom/ProcessingInstruction.h:
26640 2008-04-05  Dan Bernstein  <mitz@apple.com>
26642         Reviewed by Darin Adler.
26644         - fix <rdar://problem/5843719> Excessive repainting of cells in tables with non-auto height
26646         Test: fast/repaint/table-two-pass-layout-overpaint.html
26648         * rendering/RenderTable.cpp:
26649         (WebCore::RenderTable::layout): Changed the first pass over the sections
26650         to only call calcRowHeight() and recalcOuterBorder() but not
26651         layoutRows(), because the section's final height is unknown yet.
26652         Removed caching of m_height before the call to calcHeight(), because
26653         for non-positioned tables, calcHeight() only calculates the vertical
26654         margins and does not change m_height.
26655         Added a second pass over the sections, after the table height is known,
26656         to call layoutRows() on each section, with additional height if needed.
26657         Did minimal cleanup including caching the value of collapseBorders() in
26658         a local variable and changing a while loop into a for loop.
26659         * rendering/RenderTableSection.cpp:
26660         (WebCore::RenderTableSection::calcRowHeight): Changed to return the
26661         height of the section based on row height calculations.
26662         (WebCore::RenderTableSection::layoutRows): Removed a call to
26663         recalcOuterBorder(), which is now done by RenderTable::layout().
26664         * rendering/RenderTableSection.h: Changed calcRowHeight() to have a
26665         return value.
26667 2008-04-05  Simon Hausmann  <shausman@trolltech.com>
26669         Reviewed by Holger.
26671         Fixes: Disable "unimplemented" warnings when building WebKit inside Qt.
26673         * WebCore.pro:
26674         * platform/NotImplemented.h:
26676 2008-04-05  Simon Hausmann  <hausmann@webkit.org>
26678         Rubber-stamped by Holger
26680         Revert "* Load images incrementally. This will show warnings on the console"
26681         This rolls out -r29739.
26683         This unfortunately caused some crashes and drawing errors. Backing out for now.
26685         * platform/graphics/qt/ImageDecoderQt.cpp:
26686         (WebCore::ImageDecoderQt::setData):
26688 2008-04-04  Kevin Ollivier  <kevino@theolliviers.com>
26690         Add GradientWx.cpp to the wx build process. 
26692         * webcore-wx.bkl:
26694 2008-04-04  Dan Bernstein  <mitz@apple.com>
26696         Reviewed by Sam Weinig.
26698         - speed up CSSFontSelector::getFontData()
26700         * css/CSSFontSelector.cpp:
26701         (WebCore::fontDataForGenericFamily): Factored out of getFontData().
26702         (WebCore::CSSFontSelector::getFontData): Changed to call
26703         fontDataForGenericFamily() directly if the map is empty.
26705 2008-04-04  Jon Honeycutt  <jhoneycutt@apple.com>
26707         Reviewed by Oliver.
26709         Replace AccessibilityObject::isRenderImage() with a virtual
26710         RenderObject::isRenderImage().
26712         * page/AccessibilityObject.cpp:
26713         (WebCore::AccessibilityObject::accessibilityIsIgnored):
26714         (WebCore::AccessibilityObject::addChildren):
26715         * page/AccessibilityObject.h:
26716         (WebCore::AccessibilityObject::isDetached):
26717         * rendering/RenderImage.h:
26718         (WebCore::RenderImage::isRenderImage):
26719         * rendering/RenderObject.h:
26720         (WebCore::RenderObject::isRenderImage):
26722 2008-04-04  Dan Bernstein  <mitz@apple.com>
26724         - try to fix the wx build
26726         * platform/graphics/wx/FontPlatformDataWx.cpp:
26727         (WebCore::fontWeightToWxFontWeight):
26728         (WebCore::FontPlatformData::FontPlatformData):
26730 2008-04-04  Jon Honeycutt  <jhoneycutt@apple.com>
26732         Reviewed by Beth.
26734         Some more clean-up of AccessibilityObject:
26735         - Rearranged/grouped methods.
26736         - Marked many methods const.
26737         - Changed many methods to take args by const ref instead of by val.
26738         - Made headingLevel() static.
26739         - Renamed detached() to isDetached(), loaded() to isLoaded(),
26740           documentLinks to getDocumentLinks().
26741         - Made clearChildren(), removeAXObjectID(), isDetached() private.
26742         - Added notImplemented() calls for unimplemented methods.
26743         - Replaced stringForReplacedNode method with static function.
26745         * page/AccessibilityObject.cpp:
26746         (WebCore::AccessibilityObject::~AccessibilityObject):
26747         (WebCore::AccessibilityObject::firstChild):
26748         (WebCore::AccessibilityObject::lastChild):
26749         (WebCore::AccessibilityObject::previousSibling):
26750         (WebCore::AccessibilityObject::nextSibling):
26751         (WebCore::AccessibilityObject::parentObject):
26752         (WebCore::AccessibilityObject::parentObjectUnignored):
26753         (WebCore::AccessibilityObject::headingLevel):
26754         (WebCore::AccessibilityObject::anchorElement):
26755         (WebCore::AccessibilityObject::actionElement):
26756         (WebCore::AccessibilityObject::mouseButtonListener):
26757         (WebCore::AccessibilityObject::helpText):
26758         (WebCore::AccessibilityObject::textUnderElement):
26759         (WebCore::AccessibilityObject::hasIntValue):
26760         (WebCore::AccessibilityObject::intValue):
26761         (WebCore::AccessibilityObject::stringValue):
26762         (WebCore::AccessibilityObject::title):
26763         (WebCore::AccessibilityObject::accessibilityDescription):
26764         (WebCore::AccessibilityObject::boundingBoxRect):
26765         (WebCore::AccessibilityObject::size):
26766         (WebCore::AccessibilityObject::linkedUIElement):
26767         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
26768         (WebCore::AccessibilityObject::accessibilityIsIgnored):
26769         (WebCore::AccessibilityObject::isLoaded):
26770         (WebCore::AccessibilityObject::layoutCount):
26771         (WebCore::AccessibilityObject::textLength):
26772         (WebCore::AccessibilityObject::selectedText):
26773         (WebCore::AccessibilityObject::selection):
26774         (WebCore::AccessibilityObject::selectedTextRange):
26775         (WebCore::AccessibilityObject::setSelectedText):
26776         (WebCore::AccessibilityObject::setSelectedTextRange):
26777         (WebCore::AccessibilityObject::makeRangeVisible):
26778         (WebCore::AccessibilityObject::url):
26779         (WebCore::AccessibilityObject::isVisited):
26780         (WebCore::AccessibilityObject::isFocused):
26781         (WebCore::AccessibilityObject::setValue):
26782         (WebCore::AccessibilityObject::isEnabled):
26783         (WebCore::AccessibilityObject::topRenderer):
26784         (WebCore::AccessibilityObject::textControl):
26785         (WebCore::AccessibilityObject::widget):
26786         (WebCore::AccessibilityObject::axObjectCache):
26787         (WebCore::AccessibilityObject::getDocumentLinks):
26788         (WebCore::AccessibilityObject::documentFrameView):
26789         (WebCore::AccessibilityObject::widgetForAttachmentView):
26790         (WebCore::AccessibilityObject::frameViewIfRenderView):
26791         (WebCore::AccessibilityObject::visiblePositionRange):
26792         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
26793         (WebCore::AccessibilityObject::doAXTextMarkerRangeForUnorderedTextMarkers):
26794         (WebCore::AccessibilityObject::doAXLeftWordTextMarkerRangeForTextMarker):
26795         (WebCore::AccessibilityObject::doAXRightWordTextMarkerRangeForTextMarker):
26796         (WebCore::AccessibilityObject::doAXLeftLineTextMarkerRangeForTextMarker):
26797         (WebCore::AccessibilityObject::doAXRightLineTextMarkerRangeForTextMarker):
26798         (WebCore::AccessibilityObject::doAXSentenceTextMarkerRangeForTextMarker):
26799         (WebCore::AccessibilityObject::doAXParagraphTextMarkerRangeForTextMarker):
26800         (WebCore::AccessibilityObject::doAXStyleTextMarkerRangeForTextMarker):
26801         (WebCore::AccessibilityObject::textMarkerRangeForRange):
26802         (WebCore::stringForReplacedNode):
26803         (WebCore::AccessibilityObject::doAXStringForTextMarkerRange):
26804         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
26805         (WebCore::AccessibilityObject::doAXLengthForTextMarkerRange):
26806         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
26807         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
26808         (WebCore::AccessibilityObject::doAXNextTextMarkerForTextMarker):
26809         (WebCore::AccessibilityObject::doAXPreviousTextMarkerForTextMarker):
26810         (WebCore::AccessibilityObject::doAXNextWordEndTextMarkerForTextMarker):
26811         (WebCore::AccessibilityObject::doAXPreviousWordStartTextMarkerForTextMarker):
26812         (WebCore::AccessibilityObject::doAXNextLineEndTextMarkerForTextMarker):
26813         (WebCore::AccessibilityObject::doAXPreviousLineStartTextMarkerForTextMarker):
26814         (WebCore::AccessibilityObject::doAXNextSentenceEndTextMarkerForTextMarker):
26815         (WebCore::AccessibilityObject::doAXPreviousSentenceStartTextMarkerForTextMarker):
26816         (WebCore::AccessibilityObject::doAXNextParagraphEndTextMarkerForTextMarker):
26817         (WebCore::AccessibilityObject::doAXPreviousParagraphStartTextMarkerForTextMarker):
26818         (WebCore::AccessibilityObject::textMarkerForIndex):
26819         (WebCore::AccessibilityObject::doAXUIElementForTextMarker):
26820         (WebCore::AccessibilityObject::doAXLineForTextMarker):
26821         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
26822         (WebCore::AccessibilityObject::indexForTextMarker):
26823         (WebCore::AccessibilityObject::doAXRangeForLine):
26824         (WebCore::AccessibilityObject::doAXRangeForPosition):
26825         (WebCore::AccessibilityObject::doAXRangeForIndex):
26826         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
26827         (WebCore::AccessibilityObject::doAXStringForRange):
26828         (WebCore::AccessibilityObject::doAXBoundsForRange):
26829         (WebCore::AccessibilityObject::doAccessibilityHitTest):
26830         (WebCore::AccessibilityObject::focusedUIElement):
26831         (WebCore::AccessibilityObject::observableObject):
26832         (WebCore::AccessibilityObject::roleValue):
26833         (WebCore::AccessibilityObject::canSetFocusAttribute):
26834         (WebCore::AccessibilityObject::canSetValueAttribute):
26835         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
26836         (WebCore::AccessibilityObject::hasChildren):
26837         (WebCore::AccessibilityObject::axObjectID):
26838         * page/AccessibilityObject.h:
26839         (WebCore::VisiblePositionRange::VisiblePositionRange):
26840         (WebCore::AccessibilityObject::PlainTextRange::PlainTextRange):
26841         (WebCore::AccessibilityObject::areaElement):
26842         (WebCore::AccessibilityObject::renderer):
26843         (WebCore::AccessibilityObject::children):
26844         (WebCore::AccessibilityObject::wrapper):
26845         (WebCore::AccessibilityObject::isDetached):
26846         * page/mac/AccessibilityObjectWrapper.mm:
26847         (AXAttributeStringSetHeadingLevel):
26848         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
26850 2008-04-04  Timothy Hatcher  <timothy@apple.com>
26852         Restore the user entered text when clearing the auto-completion.
26853         This is important when the user typed text that is a different
26854         case than the completion. This has no affect on the Console, since
26855         it matches completions case-sensitively. This is used in the up-coming
26856         Database Query view for words like "SELECT" and "INSERT".
26858         Reviewed by Adam Roben.
26860         * page/inspector/TextPrompt.js:
26861         (WebInspector.TextPrompt.prototype.clearAutoComplete): Restore the user typed
26862         text in the original DOM range that complete() saved away.
26863         (WebInspector.TextPrompt.prototype.complete): Store away the fullWordRange
26864         and it's text content so clearAutoComplete can restore it.
26866 2008-04-04  Timothy Hatcher  <timothy@apple.com>
26868         Don't trim whitespace when looking for the current match, this prevents
26869         tabbing through matches in the up-coming Database Query view.
26871         Reviewed by Adam Roben.
26873         * page/inspector/TextPrompt.js: Removed a trimTrailingWhitespace() call.
26875 2008-04-04  Timothy Hatcher  <timothy@apple.com>
26877         Factor out the Console text completion and command history into
26878         a new TextPrompt object. This TextPrompt object will be used later
26879         other parts of the Inspector that need text completion and history.
26880         Not functionality changed, just moved code around.
26882         Reviewed by Adam Roben.
26884         * WebCore.vcproj/WebCore.vcproj: Add TextPrompt.js.
26885         * page/inspector/Console.js: Call the new prompt object and
26886           delete all the code that moved.
26887         * page/inspector/TextPrompt.js: Added. Moved code from Console.js.
26888         * page/inspector/WebKit.qrc: Add TextPrompt.js.
26889         * page/inspector/inspector.html: Add TextPrompt.js.
26891 2008-04-04  Timothy Hatcher  <timothy@apple.com>
26893         Makes setting shouldRefreshChildren on a TreeElement perform the refresh
26894         immediately if the element is already expanded.
26896         Reviewed by Adam Roben.
26898         * page/inspector/treeoutline.js:
26899         (TreeElement.prototype.get shouldRefreshChildren): Return this._shouldRefreshChildren.
26900         (TreeElement.prototype.set shouldRefreshChildren): If changing to true, and
26901         already expanded,
26902         call expand again to trigger the refresh. Sets this._shouldRefreshChildren.
26903         (TreeElement.prototype._attach): Check for this._shouldRefreshChildren.
26904         (TreeElement.prototype.expand): Ditto.
26906 2008-04-04  Jon Honeycutt  <jhoneycutt@apple.com>
26908         Reviewed by Beth.
26910         Some clean up of AccessibilityObject:
26911         - Use existing isImage() in more places.
26912         - Use existing isTextControl() in more places.
26913         - Added isRenderImage(). Check this before casting to RenderImage,
26914           since other, non-RenderImage derived RenderObjects (e.g.
26915           RenderListMarker) can return true for isImage().
26916         - Fix two copy/paste errors with improper semicolons.
26918         * page/AccessibilityObject.cpp:
26919         (WebCore::AccessibilityObject::isImageButton): Use isImage().
26920         (WebCore::AccessibilityObject::isRenderImage): Added.
26921         (WebCore::AccessibilityObject::isAnchor): Use isImage().
26922         (WebCore::AccessibilityObject::isAttachment): Same.
26923         (WebCore::AccessibilityObject::accessibilityDescription): Same.
26924         (WebCore::AccessibilityObject::accessibilityIsIgnored): Use
26925         isRenderImage() instead of isImage().
26926         (WebCore::AccessibilityObject::url): Use isImage().
26927         (WebCore::AccessibilityObject::textControl): Remove improper semicolon, 
26928         and use isTextControl().
26929         (WebCore::AccessibilityObject::textMarkerForIndex): Same.
26930         (WebCore::AccessibilityObject::indexForTextMarker): Use isTextControl().
26931         (WebCore::AccessibilityObject::doAXRangeForLine): Same.
26932         (WebCore::AccessibilityObject::doAXRangeForIndex): Same
26933         (WebCore::AccessibilityObject::doAXStringForRange): Same.
26934         (WebCore::AccessibilityObject::roleValue):  Use isImage().
26935         (WebCore::AccessibilityObject::addChildren): Use isRenderImage().
26936         * page/AccessibilityObject.h:
26938 2008-04-04  Timothy Hatcher  <timothy@apple.com>
26940         Fixes a null exception when hovering in some areas of the DOM tree.
26942         Reviewed by Adam Roben.
26944         * page/inspector/treeoutline.js:
26945         (TreeOutline.prototype.treeElementFromPoint): Check listNode for null/undefined
26946         before accessing any properties. Return null if listNode is null.
26948 2008-04-04  Timothy Hatcher  <timothy@apple.com>
26950         Changing WebInspector.currentFocusElement to/from an input element
26951         does not change the actual focus of that input element. You see this
26952         in the search field.
26954         Reviewed by Adam Roben.
26956         * page/inspector/inspector.js:
26957         (WebInspector.set currentFocusElement): Call blur and focus if the
26958         node implements them.
26960 2008-04-04  David Hyatt  <hyatt@apple.com>
26962         Improve the background size heuristic for SVGs used as background images with no intrinsic size specified.
26963         Treat them as having a background-size of 100%.  This means their maximal size will be the box established
26964         by background-origin.
26966         Reviewed by Beth
26968         * rendering/RenderBox.cpp:
26969         (WebCore::RenderBox::calculateBackgroundSize):
26971 2008-04-04  Timothy Hatcher  <timothy@apple.com>
26973         Correctly show DOCTYPE in the breadcrumbs and match the CSS rules
26974         from view-source.css for the DOCTYPE in the DOM tree.
26976         Reviewed by Adam Roben.
26978         * css/view-source.css: Add and correct comments about keeping
26979         in-sync with inspector.css.
26980         * page/inspector/ElementsPanel.js:
26981         (WebInspector.DocumentPanel.prototype.updateBreadcrumb):
26982         Add a case for Node.DOCUMENT_TYPE_NODE.
26983         * page/inspector/inspector.css: Add a rule for .webkit-html-doctype.
26984         * page/inspector/utilities.js:
26985         (nodeTitleInfo): Use the webkit-html-doctype class for nodes
26986         with Node.DOCUMENT_TYPE_NODE.
26988 2008-04-04  Dan Bernstein  <mitz@apple.com>
26990         - try to fix the Tiger build
26992         * icu/unicode/uscript.h: Copied from WebKit/mac/icu/unicode/uscript.h.
26994 2008-04-04  Adam Roben  <aroben@apple.com>
26996         Copy icu/ to PrivateHeaders for WebKit's benefit
26998         Rubberstamped by Tim Hatcher.
27000         * WebCore.xcodeproj/project.pbxproj: Renamed the Copy Forwarding
27001         Headers build phase to Copy Forwarding and ICU Headers, and added the
27002         icu/ directory to it.
27004 2008-04-04  Adam Roben  <aroben@apple.com>
27006         Fix <rdar://problem/5804776> Would like to use WebCore's
27007         ForwardingHeaders in WebKit without manually creating copies
27009         Patch by Tim Hatcher, typed by me.
27011         * WebCore.xcodeproj/project.pbxproj: Added a new build phase, Copy
27012         Forwarding Headers, that copies the ForwardingHeaders directory to
27013         WebCore's PrivateHeaders directory.
27015 2008-04-04  Ada Chan  <adachan@apple.com>
27017         Changed the signature of imageTitleForFilename so we can pass in the width
27018         and height as integers.
27020         Reviewed by Dan.
27022         * page/mac/WebCoreViewFactory.h:
27023         * platform/mac/LocalizedStringsMac.mm:
27024         (WebCore::imageTitle):
27026 2008-04-03  Dan Bernstein  <mitz@apple.com>
27028         - Windows build fix
27030         * platform/graphics/win/FontCacheWin.cpp:
27031         (WebCore::matchImprovingEnumProc):
27033 2008-04-03  Kevin Ollivier  <kevino@theolliviers.com>
27035         Fix PlatformGradient so that it's a pointer on all platforms.
27037         * platform/graphics/Gradient.h:
27039 2008-04-03  Dan Bernstein  <mitz@apple.com>
27041         - 64-bit build fix
27043         * platform/mac/WebFontCache.mm:
27044         (+[WebFontCache internalFontWithFamily:traits:weight:size:]):
27046 2008-04-03  Kevin Ollivier  <kevino@theolliviers.com>
27048         wx build fix. Add stubs for gradient class platform functions.
27050         * platform/graphics/wx/GradientWx.cpp: Added.
27051         (WebCore::Gradient::platformDestroy):
27052         (WebCore::Gradient::platformGradient):
27054 2008-04-03  Kevin Ollivier  <kevino@theolliviers.com>
27056         Reviewed by Dan Bernstein.
27058         Refactor Gradient.h to have the same API on platforms 
27059         without a gradient class.
27061         * platform/graphics/Gradient.h:
27063 2008-04-03  Dan Bernstein  <mitz@apple.com>
27065         - Qt build fix
27067         * platform/graphics/qt/FontQt.cpp:
27068         (WebCore::Font::Font):
27070 2008-04-03  Dan Bernstein  <mitz@apple.com>
27072         - Tiger build fix
27074         * platform/mac/WebFontCache.mm:
27075         * rendering/RenderThemeMac.mm:
27077 2008-04-03  Dan Bernstein  <mitz@apple.com>
27079         - Gtk build fix
27081         * platform/graphics/gtk/FontPlatformData.h:
27082         (WebCore::FontPlatformData::size):
27083         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
27084         (WebCore::FontPlatformData::FontPlatformData):
27085         * platform/graphics/gtk/FontPlatformDataPango.cpp:
27086         (WebCore::FontPlatformData::FontPlatformData):
27088 2008-04-03  Dan Bernstein  <mitz@apple.com>
27090         - project file updates in preparation for build fixes
27092         * GNUmakefile.am:
27093         * WebCore.pro:
27094         * WebCoreSources.bkl:
27096 2008-04-03  Nicholas Shanks  <webkit@nickshanks.com>
27098         Updated by Dan Bernstein. Reviewed by Dave Hyatt.
27100         - WebCore part of fixing http://bugs.webkit.org/show_bug.cgi?id=6484
27101           font-weight does not properly support graded weights
27103         Tests to come: <http://bugs.webkit.org/show_bug.cgi?id=18306>
27105         Build fixes for platforms other than Mac and Windows to come.
27107         * WebCore.vcproj/WebCore.vcproj: Added FontDescription.cpp.
27109         * WebCore.xcodeproj/project.pbxproj: Ditto.
27111         * css/CSSComputedStyleDeclaration.cpp:
27112         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed to
27113         return additional weight value keywords 100, 200, 300, 500, 600, 800
27114         and 900.
27116         * css/CSSFontSelector.cpp:
27117         (WebCore::hashForFont): Changed the bold parameter into a weight
27118         parameter and added the weight to the string to be hashed.
27119         (WebCore::CSSFontSelector::addFontFaceRule): Changed to apply all CSS
27120         weight values to the font description.
27121         (WebCore::CSSFontSelector::getFontData): Updated the fallback logic to
27122         go through all weights equal or lighter from the desired weight. For
27123         SVG, to also consider heavier weights.
27125         * css/CSSParser.cpp:
27126         (WebCore::CSSParser::parseValue): Cleaned up parsing of the font-weight
27127         property.
27129         * css/CSSStyleSelector.cpp:
27130         (WebCore::CSSStyleSelector::applyProperty): Changed to apply all CSS
27131         weight values to the font description.
27133         * platform/graphics/Font.h:
27134         (WebCore::Font::weight): Updated for the change to
27135         FontDescription::weight().
27137         * platform/graphics/FontCache.cpp:
27138         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Replaced
27139         the bold component of the key with a weight component.
27140         (WebCore::FontPlatformDataCacheKey::operator==): Updated for the above.
27141         (WebCore::computeHash): Ditto.
27142         (WebCore::FontPlatformDataCacheKeyTraits::deletedValue): Removed
27143         unnecessary parameters.
27144         (WebCore::FontPlatformDataCacheKeyTraits::emptyValue): Ditto.
27145         (WebCore::FontCache::getCachedFontPlatformData): Updated for the change
27146         in FontPlatformDataCacheKey.
27148         * platform/graphics/FontDescription.cpp: Added.
27149         (WebCore::FontDescription::lighterWeight): Added. Returns a lighter CSS
27150         font-weight value if there is one, or the lightest value.
27151         (WebCore::FontDescription::bolderWeight): Added. Returns a heavier CSS
27152         font-weight value if there is one, or the heaviest value.
27154         * platform/graphics/FontDescription.h:
27155         (WebCore::FontWeight): Added this enumeration.
27156         (WebCore::FontDescription::FontDescription):
27157         (WebCore::FontDescription::bold): Removed.
27158         (WebCore::FontDescription::weight): Changed to return a FontWeight.
27159         (WebCore::FontDescription::setBold): Removed.
27160         (WebCore::FontDescription::setWeight): Changed to take a FontWeight.
27162         * platform/graphics/mac/FontCacheMac.mm:
27163         (WebCore::toAppKitFontWeight): Added. Maps a FontWeight to the AppKit
27164         font weight scale of 0-15.
27165         (WebCore::isAppKitFontWeightBold): Added.
27166         (WebCore::FontCache::getFontDataForCharacters): Changed to use a weight
27167         instead of the bold trait for custom fonts, and to decide whether to
27168         synthesize bold based on the weights rather than the bold trait.
27169         (WebCore::FontCache::fontExists): Updated for the change in
27170         WebFontCache .
27171         (WebCore::FontCache::createFontPlatformData): Ditto. Also changed to
27172         decide whether to synthesize bold based on the weights rather than on
27173         the bold trait.
27175         * platform/graphics/win/FontCacheWin.cpp:
27176         (WebCore::toGDIFontWeight): Added. Maps a FontWeight to a GDI font
27177         weight constant.
27178         (WebCore::isGDIFontWeightBold): Added.
27179         (WebCore::adjustedGDIFontWeight): Added.
27180         (WebCore::MatchImprovingProcData::MatchImprovingProcData): Added this
27181         data structure for use by the following callback.
27182         (WebCore::matchImprovingEnumProc): Added. The logic of this method is a
27183         simplification of the betterChoice() predicate in WebFontCache.mm, which
27184         considers only the italic trait and the weight.
27185         (WebCore::createGDIFont): Added. Similarly to
27186         +[WebFontCache fontWithFamily:traits:weight:size:], this function
27187         finds the closest match in the family for the desired italic bit and
27188         weight.
27189         (WebCore::FontCache::fontExists): Changed to call createGDIFont().
27190         (WebCore::FontCache::createFontPlatformData): Ditto. Also changed to
27191         compute the synthetic bold and synthetic italic flags based on weights
27192         and italic bits and pass them to the FontPlatformData constructor.
27194         * platform/graphics/win/FontPlatformDataWin.cpp:
27195         (WebCore::FontPlatformData::FontPlatformData): Changed the bold and
27196         oblique parameters to mean whether these should be synthesized and
27197         removed the font enumeration code that used to decide that.
27199         * platform/graphics/win/SimpleFontDataWin.cpp:
27200         (WebCore::SimpleFontData::smallCapsFontData): Changed to pass the
27201         synthetic bold and oblique flags from the full-size FontPlatformData to
27202         the FontPlatformData constructor for the small caps font.
27204         * platform/mac/WebCoreTextRenderer.h:
27205         * platform/mac/WebCoreTextRenderer.mm:
27206         (WebCoreFindFont): Added a weight parameter, which is passed to
27207         +[WebFontCache fontWithFamily:traits:weight:size:].
27209         * platform/mac/WebFontCache.h:
27210         * platform/mac/WebFontCache.mm:
27211         (acceptableChoice):
27212         (betterChoice): Changed to ignore the bold trait. Changed the logic for
27213         deciding based on weights to prefer the font whose weight is closer to
27214         the desired one, or, if both candidates' weights are the same distance
27215         from the desired weight, the one that is more "off-center". 
27216         (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Changed to
27217         check for weight when matching by full name. Changed to pass
27218         the actual desired weight instead of the constant 5 to
27219         acceptableChoice() and betterChoice(). Changed to use weights to decide
27220         whether to synthesize bold.
27221         (+[WebFontCache fontWithFamily:traits:weight:size:]): Added a weight
27222         parameter, which is passed to the internal method.
27224         * platform/win/PopupMenuWin.cpp:
27225         (WebCore::PopupMenu::paint): Updated for the change to FontDescription.
27227         * rendering/RenderListBox.cpp:
27228         (WebCore::RenderListBox::updateFromElement): Ditto.
27229         (WebCore::RenderListBox::paintItemForeground): Ditto.
27231         * rendering/RenderThemeMac.mm:
27232         (WebCore::toFontWeight): Added. Maps the AppKit font weight range of
27233         0-15 to the FontWeight range.
27234         (WebCore::RenderThemeMac::systemFont): Updated for the change to
27235         FontDescription.
27237         * rendering/RenderThemeSafari.cpp:
27238         (WebCore::RenderThemeSafari::systemFont): Ditto.
27240 2008-04-03  Dan Bernstein  <mitz@apple.com>
27242         - another Gtk build fix attempt
27244         * platform/graphics/cairo/GradientCairo.cpp:
27245         (WebCore::Gradient::platformDestroy):
27247 2008-04-03  Dan Bernstein  <mitz@apple.com>
27249         - attempted Gtk build fix
27251         * GNUmakefile.am:
27253 2008-04-03  Dan Bernstein  <mitz@apple.com>
27255         - attempted Qt build fix
27257         * platform/graphics/qt/GradientQt.cpp:
27258         (WebCore::Gradient::platformDestroy):
27260 2008-04-03  Dan Bernstein  <mitz@apple.com>
27262         - attempted Gtk build fix
27264         * html/CanvasRenderingContext2D.cpp:
27265         (WebCore::CanvasRenderingContext2D::stroke):
27267 2008-04-03  Dan Bernstein  <mitz@apple.com>
27269         - attempted Qt build fix
27271         * html/CanvasRenderingContext2D.cpp:
27272         (WebCore::CanvasRenderingContext2D::stroke):
27274 2008-04-03  Beth Dakin  <bdakin@apple.com>
27276         Reviewed by Alice.
27278         Build fix for non-Macs.
27280         * page/AXObjectCache.h:
27281         (WebCore::AXObjectCache::isIDinUse):
27283 2008-04-03  Brent Fulgham  <bfulgham@gmail.com>
27285         Reviewed by Darin.
27287         Correct build error due to incomplete merging of changes to project
27288         files from Issue 17985.  This small project file patch corrects
27289         the build issue (see http://bugs.webkit.org/show_bug.cgi?id=18195).
27291         * WebCore.vcproj/WebCore.vcproj:
27293 2008-04-02  Beth Dakin  <bdakin@apple.com>
27295         Reviewed by Hyatt.
27297         This patch eliminates AccessibilityObjectMac. All of the platform-
27298         specific code is now in AccessibilityObjectWrapper.
27300         * WebCore.xcodeproj/project.pbxproj:
27301         * dom/Element.h:
27302         (WebCore::Element::isPasswordField):
27303         * html/HTMLInputElement.h:
27304         (WebCore::HTMLInputElement::isPasswordField):
27305         * page/AXObjectCache.h:
27306         (WebCore::AXObjectCache::isIDinUse):
27307         * page/AccessibilityObject.cpp:
27308         (WebCore::AccessibilityObject::isPasswordField):
27309         (WebCore::AccessibilityObject::press):
27310         (WebCore::AccessibilityObject::widgetForAttachmentView):
27311         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
27312         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
27313         * page/AccessibilityObject.h:
27314         (WebCore::AccessibilityObject::areaElement):
27315         (WebCore::AccessibilityObject::setWrapper):
27316         * page/mac/AXObjectCacheMac.mm:
27317         * page/mac/AccessibilityObjectMac.mm: Removed.
27318         * page/mac/AccessibilityObjectWrapper.h:
27319         * page/mac/AccessibilityObjectWrapper.mm:
27320         (-[AccessibilityObjectWrapper attachmentView]):
27321         (textMarkerForVisiblePosition):
27322         (visiblePositionForTextMarker):
27323         (visiblePositionForStartOfTextMarkerRange):
27324         (visiblePositionForEndOfTextMarkerRange):
27325         (textMarkerRangeFromMarkers):
27326         (AXAttributeStringSetFont):
27327         (CreateCGColorIfDifferent):
27328         (AXAttributeStringSetColor):
27329         (AXAttributeStringSetNumber):
27330         (AXAttributeStringSetStyle):
27331         (blockquoteLevel):
27332         (AXAttributeStringSetBlockquoteLevel):
27333         (AXAttributeStringSetSpelling):
27334         (AXAttributeStringSetHeadingLevel):
27335         (AXLinkElementForNode):
27336         (AXAttributeStringSetElement):
27337         (AXAttributedStringAppendText):
27338         (nsStringForReplacedNode):
27339         (-[AccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
27340         (textMarkerRangeFromVisiblePositions):
27341         (-[AccessibilityObjectWrapper accessibilityActionNames]):
27342         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
27343         (-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
27344         (-[AccessibilityObjectWrapper textMarkerRangeForSelection]):
27345         (-[AccessibilityObjectWrapper position]):
27346         (createAccessibilityRoleMap):
27347         (RoleEntry::):
27348         (roleValueToNSString):
27349         (-[AccessibilityObjectWrapper role]):
27350         (-[AccessibilityObjectWrapper subrole]):
27351         (-[AccessibilityObjectWrapper roleDescription]):
27352         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
27353         (-[AccessibilityObjectWrapper accessibilityIsIgnored]):
27354         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
27355         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
27356         (-[AccessibilityObjectWrapper doAXRTFForRange:]):
27357         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
27358         (-[AccessibilityObjectWrapper accessibilityShouldUseUniqueId]):
27359         * platform/ScrollView.h:
27360         * platform/mac/ScrollViewMac.mm:
27361         (WebCore::ScrollView::viewRectToScreen):
27362         (WebCore::ScrollView::absolutePointToView):
27364 2008-04-03  David Hyatt  <hyatt@apple.com>
27366         Create a new cross-platform Gradient abstraction and make CanvasGradient wrap it.  This first
27367         step just cleans up CanvasGradient.  The code that calls it remains ifdef'd however.
27369         Reviewed by olliej
27371         * WebCore.pro:
27372         * WebCore.vcproj/WebCore.vcproj:
27373         * WebCore.xcodeproj/project.pbxproj:
27374         * WebCoreSources.bkl:
27375         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
27376         (WebCore::toJS):
27377         * html/CanvasGradient.cpp:
27378         (WebCore::CanvasGradient::CanvasGradient):
27379         * html/CanvasGradient.h:
27380         (WebCore::CanvasGradient::gradient):
27381         (WebCore::CanvasGradient::addColorStop):
27382         (WebCore::CanvasGradient::getColor):
27383         * html/CanvasRenderingContext2D.cpp:
27384         (WebCore::CanvasRenderingContext2D::fill):
27385         (WebCore::CanvasRenderingContext2D::stroke):
27386         (WebCore::CanvasRenderingContext2D::fillRect):
27387         * html/CanvasStyle.h:
27388         (WebCore::CanvasStyle::canvasGradient):
27389         * platform/graphics/Gradient.cpp: Added.
27390         (WebCore::Gradient::Gradient):
27391         (WebCore::Gradient::~Gradient):
27392         (WebCore::Gradient::addColorStop):
27393         (WebCore::compareStops):
27394         (WebCore::Gradient::getColor):
27395         (WebCore::Gradient::findStop):
27396         * platform/graphics/Gradient.h: Added.
27397         (WebCore::Gradient::ColorStop::ColorStop):
27398         (WebCore::Gradient::platformInit):
27399         * platform/graphics/cairo/GradientCairo.cpp: Added.
27400         (WebCore::Gradient::platformDestroy):
27401         (WebCore::Gradient::platformGradient):
27402         * platform/graphics/cg/GradientCG.cpp: Added.
27403         (WebCore::Gradient::platformDestroy):
27404         (WebCore::gradientCallback):
27405         (WebCore::Gradient::platformGradient):
27406         * platform/graphics/qt/GradientQt.cpp: Added.
27407         (WebCore::Gradient::platformDestroy):
27408         (WebCore::Gradient::platformGradient):
27410 2008-04-03  Simon Hausmann  <hausmann@webkit.org>
27412         Reviewed by Mark Rowe.
27414         Roll out r31599 and r31605 again after discussion with Mark Rowe.
27416         * history/HistoryItem.cpp:
27417         * loader/FrameLoader.cpp:
27418         (WebCore::FrameLoader::startIconLoader):
27419         * loader/icon/IconDatabase.cpp:
27420         (WebCore::IconDatabase::iconForPageURL):
27421         (WebCore::IconDatabase::readIconForPageURLFromDisk):
27422         * loader/icon/IconDatabase.h:
27423         * loader/icon/IconDatabaseNone.cpp:
27425 2008-04-03  David Hyatt  <hyatt@apple.com>
27427         Fix for bug 18194, resizable text fields get messed up when resizing in the presence of zoom.
27429         Reviewed by adele
27431         * rendering/RenderLayer.cpp:
27432         (WebCore::RenderLayer::resize):
27434 2008-04-03  Oliver Hunt  <oliver@apple.com>
27436         Rollout r31566 as there were a few issues i missed during review (thanks to antti for pointing them out)
27438         * dom/Element.h:
27439         * dom/NamedAttrMap.h:
27440         * rendering/SVGRootInlineBox.cpp:
27441         (WebCore::SVGRootInlineBox::buildLayoutInformation):
27442         (WebCore::SVGRootInlineBox::buildTextChunks):
27443         * svg/SVGAElement.h:
27444         (WebCore::SVGAElement::contextElement):
27445         * svg/SVGAltGlyphElement.h:
27446         (WebCore::SVGAltGlyphElement::contextElement):
27447         * svg/SVGAnimateColorElement.h:
27448         * svg/SVGAnimateElement.h:
27449         * svg/SVGAnimateMotionElement.h:
27450         * svg/SVGAnimateTransformElement.h:
27451         * svg/SVGAnimatedTemplate.h:
27452         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
27453         (WebCore::lookupOrCreateWrapper):
27454         * svg/SVGAnimationElement.h:
27455         * svg/SVGCircleElement.h:
27456         (WebCore::SVGCircleElement::contextElement):
27457         * svg/SVGClipPathElement.h:
27458         (WebCore::SVGClipPathElement::contextElement):
27459         * svg/SVGComponentTransferFunctionElement.cpp:
27460         * svg/SVGComponentTransferFunctionElement.h:
27461         * svg/SVGCursorElement.cpp:
27462         (WebCore::SVGCursorElement::SVGCursorElement):
27463         * svg/SVGCursorElement.h:
27464         (WebCore::SVGCursorElement::contextElement):
27465         * svg/SVGDefsElement.h:
27466         (WebCore::SVGDefsElement::contextElement):
27467         * svg/SVGElement.cpp:
27468         * svg/SVGElement.h:
27469         (WebCore::SVGElement::svgAttributeChanged):
27470         * svg/SVGEllipseElement.cpp:
27471         (WebCore::SVGEllipseElement::SVGEllipseElement):
27472         * svg/SVGEllipseElement.h:
27473         (WebCore::SVGEllipseElement::contextElement):
27474         * svg/SVGExternalResourcesRequired.h:
27475         * svg/SVGFEBlendElement.h:
27476         * svg/SVGFEColorMatrixElement.cpp:
27477         * svg/SVGFEColorMatrixElement.h:
27478         * svg/SVGFEComponentTransferElement.h:
27479         * svg/SVGFECompositeElement.h:
27480         * svg/SVGFEDiffuseLightingElement.h:
27481         * svg/SVGFEDisplacementMapElement.h:
27482         * svg/SVGFEFloodElement.h:
27483         * svg/SVGFEGaussianBlurElement.h:
27484         * svg/SVGFEImageElement.cpp:
27485         * svg/SVGFEImageElement.h:
27486         (WebCore::SVGFEImageElement::contextElement):
27487         * svg/SVGFELightElement.h:
27488         * svg/SVGFEMergeElement.h:
27489         * svg/SVGFEMergeNodeElement.h:
27490         * svg/SVGFEOffsetElement.h:
27491         * svg/SVGFESpecularLightingElement.h:
27492         * svg/SVGFETileElement.h:
27493         * svg/SVGFETurbulenceElement.h:
27494         * svg/SVGFilterElement.cpp:
27495         (WebCore::SVGFilterElement::SVGFilterElement):
27496         * svg/SVGFilterElement.h:
27497         (WebCore::SVGFilterElement::contextElement):
27498         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
27499         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
27500         * svg/SVGFilterPrimitiveStandardAttributes.h:
27501         * svg/SVGFitToViewBox.cpp:
27502         * svg/SVGFitToViewBox.h:
27503         * svg/SVGFontElement.h:
27504         * svg/SVGForeignObjectElement.cpp:
27505         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
27506         * svg/SVGForeignObjectElement.h:
27507         (WebCore::SVGForeignObjectElement::contextElement):
27508         * svg/SVGGElement.h:
27509         (WebCore::SVGGElement::contextElement):
27510         * svg/SVGGradientElement.cpp:
27511         * svg/SVGGradientElement.h:
27512         * svg/SVGImageElement.cpp:
27513         (WebCore::SVGImageElement::SVGImageElement):
27514         * svg/SVGImageElement.h:
27515         (WebCore::SVGImageElement::contextElement):
27516         * svg/SVGLength.cpp:
27517         * svg/SVGLength.h:
27518         * svg/SVGLengthList.cpp:
27519         * svg/SVGLengthList.h:
27520         * svg/SVGLineElement.cpp:
27521         (WebCore::SVGLineElement::SVGLineElement):
27522         * svg/SVGLineElement.h:
27523         (WebCore::SVGLineElement::contextElement):
27524         * svg/SVGLinearGradientElement.cpp:
27525         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
27526         (WebCore::SVGLinearGradientElement::collectGradientProperties):
27527         * svg/SVGLinearGradientElement.h:
27528         * svg/SVGMPathElement.h:
27529         * svg/SVGMarkerElement.cpp:
27530         (WebCore::SVGMarkerElement::SVGMarkerElement):
27531         * svg/SVGMarkerElement.h:
27532         (WebCore::SVGMarkerElement::contextElement):
27533         * svg/SVGMaskElement.cpp:
27534         (WebCore::SVGMaskElement::SVGMaskElement):
27535         * svg/SVGMaskElement.h:
27536         * svg/SVGNumberList.cpp:
27537         * svg/SVGNumberList.h:
27538         * svg/SVGPathElement.h:
27539         (WebCore::SVGPathElement::contextElement):
27540         * svg/SVGPatternElement.cpp:
27541         (WebCore::SVGPatternElement::SVGPatternElement):
27542         (WebCore::SVGPatternElement::collectPatternProperties):
27543         * svg/SVGPatternElement.h:
27544         * svg/SVGPolyElement.h:
27545         (WebCore::SVGPolyElement::contextElement):
27546         * svg/SVGPreserveAspectRatio.cpp:
27547         * svg/SVGPreserveAspectRatio.h:
27548         * svg/SVGRadialGradientElement.cpp:
27549         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
27550         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
27551         (WebCore::SVGRadialGradientElement::collectGradientProperties):
27552         * svg/SVGRadialGradientElement.h:
27553         * svg/SVGRectElement.cpp:
27554         (WebCore::SVGRectElement::SVGRectElement):
27555         * svg/SVGRectElement.h:
27556         (WebCore::SVGRectElement::contextElement):
27557         * svg/SVGSVGElement.cpp:
27558         (WebCore::SVGSVGElement::SVGSVGElement):
27559         (WebCore::SVGSVGElement::currentView):
27560         * svg/SVGSVGElement.h:
27561         * svg/SVGScriptElement.h:
27562         (WebCore::SVGScriptElement::contextElement):
27563         * svg/SVGSetElement.h:
27564         * svg/SVGStyledElement.h:
27565         * svg/SVGStyledTransformableElement.cpp:
27566         * svg/SVGStyledTransformableElement.h:
27567         * svg/SVGSwitchElement.h:
27568         (WebCore::SVGSwitchElement::contextElement):
27569         * svg/SVGSymbolElement.h:
27570         (WebCore::SVGSymbolElement::contextElement):
27571         * svg/SVGTRefElement.h:
27572         (WebCore::SVGTRefElement::contextElement):
27573         * svg/SVGTSpanElement.h:
27574         * svg/SVGTextContentElement.cpp:
27575         (WebCore::SVGTextContentElement::SVGTextContentElement):
27576         * svg/SVGTextContentElement.h:
27577         * svg/SVGTextElement.cpp:
27578         * svg/SVGTextElement.h:
27579         (WebCore::SVGTextElement::contextElement):
27580         * svg/SVGTextPathElement.cpp:
27581         (WebCore::SVGTextPathElement::SVGTextPathElement):
27582         * svg/SVGTextPathElement.h:
27583         (WebCore::SVGTextPathElement::contextElement):
27584         * svg/SVGTextPositioningElement.cpp:
27585         * svg/SVGTextPositioningElement.h:
27586         * svg/SVGTransformList.cpp:
27587         * svg/SVGTransformList.h:
27588         * svg/SVGURIReference.h:
27589         * svg/SVGUseElement.cpp:
27590         (WebCore::SVGUseElement::SVGUseElement):
27591         * svg/SVGUseElement.h:
27592         (WebCore::SVGUseElement::contextElement):
27593         * svg/SVGViewElement.h:
27594         (WebCore::SVGViewElement::contextElement):
27595         * svg/SVGViewSpec.cpp:
27596         * svg/SVGViewSpec.h:
27598 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
27600         Reviewed by Simon.
27602         * Change IconDatabase::iconForPageURL to return more information. E.g. if
27603         an image has been found, or if the loading of an image has been scheduled.
27604         * Update FrameLoader to use another method to trigger reading from disk
27605         * Update the QWebFrame and QWebSettings
27607         * history/HistoryItem.cpp:
27608         * loader/FrameLoader.cpp:
27609         * loader/icon/IconDatabase.cpp:
27610         (WebCore::IconDatabase::iconForPageURL):
27611         (WebCore::IconDatabase::readIconForPageURLFromDisk):
27612         (WebCore::IconDatabase::iconURLForPageURL):
27613         (WebCore::IconDatabase::defaultIcon):
27614         * loader/icon/IconDatabase.h:
27616 2008-04-03  Dan Bernstein  <mitz@apple.com>
27618         - Mac build fix
27620         * WebCore.base.exp:
27622 2008-04-03  Simon Hausmann  <hausmann@webkit.org>
27624         Fix the build when building without icondatabase.
27626         * loader/icon/IconDatabaseNone.cpp: Fix the function signature, no
27627         bool cache anymore.
27629 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
27631         Reviewed by Simon.
27633         * Remove the unused 'cache' parameter
27635         * loader/icon/IconDatabase.cpp:
27636         (WebCore::IconDatabase::iconForPageURL):
27637         * loader/icon/IconDatabase.h:
27639 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
27641         Reviewed by Simon.
27643         * Add WebCore/loader/icon to the DEPENDPATH as well
27645         * WebCore.pro:
27647 2008-04-02  Brady Eidson  <beidson@apple.com>
27649         Reviewed by Mitz Pettel
27651         <rdar://problem/5838347> and http://bugs.webkit.org/show_bug.cgi?id=11839
27652         Webarchive fails to save CSS files in @import statements
27654         * css/CSSStyleSheet.cpp:
27655         (WebCore::CSSStyleSheet::addSubresourceURLStrings): Recursively add the URL each @import rule under the current style sheet.
27656         * css/CSSStyleSheet.h:
27657         * css/StyleSheet.h:
27658         (WebCore::StyleSheet::addSubresourceURLStrings):
27660         * html/HTMLLinkElement.cpp:
27661         (WebCore::HTMLLinkElement::getSubresourceAttributeStrings): Add the linked URL as well as all @import
27662           rules rooted at the linked stylesheet.
27664         * html/HTMLStyleElement.cpp:
27665         (WebCore::HTMLStyleElement::getSubresourceAttributeStrings): Walk all @import rules rooted at this
27666           stylesheet to add to the list.
27667         * html/HTMLStyleElement.h:
27669 2008-04-02  Mark Rowe  <mrowe@apple.com>
27671         Reviewed by Oliver Hunt.
27673         Ensure that debug symbols are generated for x86_64 and ppc64 builds.
27675         * Configurations/Base.xcconfig:
27677 2008-04-02  Christian Persch  <chpe@gnome.org>
27679         Reviewed by Alp Toker.
27681         GTK+/Pango font backend build fix.
27683         * platform/graphics/gtk/FontCustomPlatformDataPango.cpp:
27684         (WebCore::FontCustomPlatformData::fontPlatformData):
27686 2008-04-02  Eric Seidel  <eric@webkit.org>
27688         No review, build fix only.
27690         Speculative build fix for no-svg build.
27691         Use #if ENABLE(SVG) instead of #if ENABLE_SVG
27693         * css/CSSMutableStyleDeclaration.cpp:
27694         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
27696 2008-04-02  Adam Roben  <aroben@apple.com>
27698         Rename instances of ExecState from "state" to "exec" in
27699         JavaScriptDebugServer
27701         Rename requested by Darin Adler.
27703         * page/JavaScriptDebugServer.cpp:
27705 2008-04-02  Adam Roben  <aroben@apple.com>
27707         Make it possible for JavaScriptDebugListeners to listen to specific Pages
27709         JavaScriptDebugServer now has overloads of its
27710         addListener/removeListener methods that take a Page* to indicate for
27711         which Page the JavaScriptDebugListener wishes to receive messages.
27713         Reviewed by Darin.
27715         * page/JavaScriptDebugServer.cpp:
27716         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer): Delete all
27717         ListenerSets being held in m_pageListenersMap.
27718         (WebCore::JavaScriptDebugServer::addListener): Changed to call
27719         hasListeners().
27720         (WebCore::JavaScriptDebugServer::removeListener): Ditto.
27721         (WebCore::JavaScriptDebugServer::addListener): Added. This overload
27722         takes a Page* and puts the listener in the appropriate ListenerSet
27723         within m_pageListenersMap. The ListenerSet is allocated and added to
27724         m_pageListenersMap when its first listener is added.
27725         (WebCore::JavaScriptDebugServer::removeListener): Added. This overload
27726         takes a Page* and removes the listener from the appropriate
27727         ListenerSet in m_pageListenersMap. The ListenerSet is deleted and
27728         removed from m_pageListenersMap when its last listener is removed.
27729         (WebCore::toPage): Added. Retrieves the parent Page from an ExecState.
27730         (WebCore::JavaScriptDebugServer::sourceParsed): Changed to call
27731         dispatchDidParseSource/dispatchDidFailToParseSource for both the
27732         global listeners and the Page listeners.
27733         (WebCore::dispatchFunctionToListeners): Added. This code was extracted
27734         from the JavaScriptDebugServer method of the same name.
27735         (WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Call
27736         dispatchFunctionToListeners for both the global listeners and the Page
27737         listeners.
27738         * page/JavaScriptDebugServer.h:
27739           - Added declarations for new methods.
27740           - Made JavaScriptExecutionCallback typedef public so that it could
27741             be used by a helper method.
27742           - Added new m_pageListenersMap member.
27743 2008-04-02  Simon Hausmann  <hausmann@webkit.org>
27745         Fix compilation on case-sensitive file systems.
27747         * svg/SVGGradientElement.h: Include SVGTransformList.h instead of
27748         SVGTRansformlist.h
27750 2008-04-02  Nikolas Zimmermann  <zimmermann@kde.org>
27752         Reviewed by Oliver.
27754         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17779 (SVG 1.1 Errata demands "SVG JavaScript Liveness" support)
27756         SVG Errata states: "All SVG DOM objects that directly correspond to an
27757         attribute, e.g. the SVGAnimatedLength 'ry' in an SVGRectElement, are live. This
27758         means that any changes made to the attribute are immediately reflected in the
27759         corresponding SVG DOM object." (see linked URL on bug report)
27761         Until now only XML -> SVG DOM changes took affect, aka. changing the 'rx' attribute of a <rect>
27762         element resuted in changes when accessing 'rx' through SVG DOM (rx.baseVal.value).
27764         Add a new synchronization layer to handle SVG DOM -> XML changes.
27766         Added Test: svg/custom/svg-xml-dom-sync.html
27768         * dom/Element.h:
27769         * dom/NamedAttrMap.h:
27770         * rendering/SVGRootInlineBox.cpp:
27771         (WebCore::nodeToTextContentElement):
27772         (WebCore::nodeToTextPositioningElement):
27773         (WebCore::SVGRootInlineBox::buildLayoutInformation):
27774         (WebCore::SVGRootInlineBox::buildTextChunks):
27775         * svg/SVGAElement.h:
27776         (WebCore::SVGAElement::contextElement):
27777         * svg/SVGAltGlyphElement.h:
27778         (WebCore::SVGAltGlyphElement::contextElement):
27779         * svg/SVGAnimateColorElement.h:
27780         (WebCore::SVGAnimateColorElement::contextElement):
27781         * svg/SVGAnimateElement.h:
27782         (WebCore::SVGAnimateElement::contextElement):
27783         * svg/SVGAnimateMotionElement.h:
27784         (WebCore::SVGAnimateMotionElement::contextElement):
27785         * svg/SVGAnimateTransformElement.h:
27786         (WebCore::SVGAnimateTransformElement::contextElement):
27787         * svg/SVGAnimatedTemplate.h:
27788         (WebCore::SVGAnimatedTemplate::toString):
27789         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
27790         (WebCore::lookupOrCreateWrapper):
27791         (WebCore::SVGAnimatedAngle::SVGAnimatedAngle):
27792         (WebCore::SVGAnimatedAngle::toString):
27793         (WebCore::SVGAnimatedBoolean::SVGAnimatedBoolean):
27794         (WebCore::SVGAnimatedBoolean::toString):
27795         (WebCore::SVGAnimatedEnumeration::SVGAnimatedEnumeration):
27796         (WebCore::SVGAnimatedEnumeration::toString):
27797         (WebCore::SVGAnimatedInteger::SVGAnimatedInteger):
27798         (WebCore::SVGAnimatedInteger::toString):
27799         (WebCore::SVGAnimatedLength::SVGAnimatedLength):
27800         (WebCore::SVGAnimatedLength::toString):
27801         (WebCore::SVGAnimatedLengthList::SVGAnimatedLengthList):
27802         (WebCore::SVGAnimatedLengthList::toString):
27803         (WebCore::SVGAnimatedNumber::SVGAnimatedNumber):
27804         (WebCore::SVGAnimatedNumber::toString):
27805         (WebCore::SVGAnimatedNumberList::SVGAnimatedNumberList):
27806         (WebCore::SVGAnimatedNumberList::toString):
27807         (WebCore::SVGAnimatedPreserveAspectRatio::SVGAnimatedPreserveAspectRatio):
27808         (WebCore::SVGAnimatedPreserveAspectRatio::toString):
27809         (WebCore::SVGAnimatedRect::SVGAnimatedRect):
27810         (WebCore::SVGAnimatedRect::toString):
27811         (WebCore::SVGAnimatedString::SVGAnimatedString):
27812         (WebCore::SVGAnimatedString::toString):
27813         (WebCore::SVGAnimatedTransformList::SVGAnimatedTransformList):
27814         (WebCore::SVGAnimatedTransformList::toString):
27815         (WebCore::SVGAnimatedType::SVGAnimatedType):
27816         * svg/SVGAnimationElement.h:
27817         * svg/SVGCircleElement.h:
27818         (WebCore::SVGCircleElement::contextElement):
27819         * svg/SVGClipPathElement.h:
27820         (WebCore::SVGClipPathElement::contextElement):
27821         * svg/SVGComponentTransferFunctionElement.cpp:
27822         * svg/SVGComponentTransferFunctionElement.h:
27823         * svg/SVGCursorElement.cpp:
27824         (WebCore::SVGCursorElement::SVGCursorElement):
27825         * svg/SVGCursorElement.h:
27826         (WebCore::SVGCursorElement::contextElement):
27827         * svg/SVGDefsElement.h:
27828         (WebCore::SVGDefsElement::contextElement):
27829         * svg/SVGElement.cpp:
27830         (WebCore::SVGElement::getAttribute):
27831         * svg/SVGElement.h:
27832         (LazilyUpdatedType::LazilyUpdatedType):
27833         (LazilyUpdatedType::operator=):
27834         (LazilyUpdatedType::operator==):
27835         (LazilyUpdatedType::operator!=):
27836         (LazilyUpdatedType::operator StoredType):
27837         (WebCore::SVGElement::invokeSVGPropertySynchronizer):
27838         (WebCore::SVGElement::addSVGPropertySynchronizer):
27839         * svg/SVGEllipseElement.cpp:
27840         (WebCore::SVGEllipseElement::SVGEllipseElement):
27841         * svg/SVGEllipseElement.h:
27842         (WebCore::SVGEllipseElement::contextElement):
27843         * svg/SVGExternalResourcesRequired.h:
27844         * svg/SVGFEBlendElement.h:
27845         (WebCore::SVGFEBlendElement::contextElement):
27846         * svg/SVGFEColorMatrixElement.cpp:
27847         * svg/SVGFEColorMatrixElement.h:
27848         (WebCore::SVGFEColorMatrixElement::contextElement):
27849         * svg/SVGFEComponentTransferElement.h:
27850         (WebCore::SVGFEComponentTransferElement::contextElement):
27851         * svg/SVGFECompositeElement.h:
27852         (WebCore::SVGFECompositeElement::contextElement):
27853         * svg/SVGFEDiffuseLightingElement.h:
27854         (WebCore::SVGFEDiffuseLightingElement::contextElement):
27855         * svg/SVGFEDisplacementMapElement.h:
27856         (WebCore::SVGFEDisplacementMapElement::contextElement):
27857         * svg/SVGFEFloodElement.h:
27858         (WebCore::SVGFEFloodElement::contextElement):
27859         * svg/SVGFEGaussianBlurElement.h:
27860         (WebCore::SVGFEGaussianBlurElement::contextElement):
27861         * svg/SVGFEImageElement.cpp:
27862         * svg/SVGFEImageElement.h:
27863         (WebCore::SVGFEImageElement::contextElement):
27864         * svg/SVGFELightElement.h:
27865         * svg/SVGFEMergeElement.h:
27866         (WebCore::SVGFEMergeElement::contextElement):
27867         * svg/SVGFEMergeNodeElement.h:
27868         (WebCore::SVGFEMergeNodeElement::contextElement):
27869         * svg/SVGFEOffsetElement.h:
27870         (WebCore::SVGFEOffsetElement::contextElement):
27871         * svg/SVGFESpecularLightingElement.h:
27872         (WebCore::SVGFESpecularLightingElement::contextElement):
27873         * svg/SVGFETileElement.h:
27874         (WebCore::SVGFETileElement::contextElement):
27875         * svg/SVGFETurbulenceElement.h:
27876         (WebCore::SVGFETurbulenceElement::contextElement):
27877         * svg/SVGFilterElement.cpp:
27878         (WebCore::SVGFilterElement::SVGFilterElement):
27879         * svg/SVGFilterElement.h:
27880         (WebCore::SVGFilterElement::contextElement):
27881         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
27882         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
27883         * svg/SVGFilterPrimitiveStandardAttributes.h:
27884         (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement):
27885         * svg/SVGFitToViewBox.cpp:
27886         * svg/SVGFitToViewBox.h:
27887         * svg/SVGFontElement.h:
27888         (WebCore::SVGFontElement::contextElement):
27889         * svg/SVGForeignObjectElement.cpp:
27890         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
27891         * svg/SVGForeignObjectElement.h:
27892         (WebCore::SVGForeignObjectElement::contextElement):
27893         * svg/SVGGElement.h:
27894         (WebCore::SVGGElement::contextElement):
27895         * svg/SVGGradientElement.cpp:
27896         * svg/SVGGradientElement.h:
27897         * svg/SVGImageElement.cpp:
27898         (WebCore::SVGImageElement::SVGImageElement):
27899         * svg/SVGImageElement.h:
27900         (WebCore::SVGImageElement::contextElement):
27901         * svg/SVGLength.cpp:
27902         (WebCore::SVGLength::SVGLength):
27903         (WebCore::SVGLength::operator=):
27904         (WebCore::SVGLength::operator==):
27905         (WebCore::SVGLength::operator!=):
27906         * svg/SVGLength.h:
27907         * svg/SVGLengthList.cpp:
27908         (WebCore::SVGLengthList::valueAsString):
27909         * svg/SVGLengthList.h:
27910         * svg/SVGLineElement.cpp:
27911         (WebCore::SVGLineElement::SVGLineElement):
27912         * svg/SVGLineElement.h:
27913         (WebCore::SVGLineElement::contextElement):
27914         * svg/SVGLinearGradientElement.cpp:
27915         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
27916         (WebCore::SVGLinearGradientElement::collectGradientProperties):
27917         * svg/SVGLinearGradientElement.h:
27918         (WebCore::SVGLinearGradientElement::contextElement):
27919         * svg/SVGMPathElement.h:
27920         (WebCore::SVGMPathElement::contextElement):
27921         * svg/SVGMarkerElement.cpp:
27922         (WebCore::SVGMarkerElement::SVGMarkerElement):
27923         * svg/SVGMarkerElement.h:
27924         (WebCore::SVGMarkerElement::contextElement):
27925         * svg/SVGMaskElement.cpp:
27926         (WebCore::SVGMaskElement::SVGMaskElement):
27927         * svg/SVGMaskElement.h:
27928         (WebCore::SVGMaskElement::contextElement):
27929         * svg/SVGNumberList.cpp:
27930         (WebCore::SVGNumberList::valueAsString):
27931         * svg/SVGNumberList.h:
27932         * svg/SVGPathElement.h:
27933         (WebCore::SVGPathElement::contextElement):
27934         * svg/SVGPatternElement.cpp:
27935         (WebCore::SVGPatternElement::SVGPatternElement):
27936         (WebCore::SVGPatternElement::collectPatternProperties):
27937         * svg/SVGPatternElement.h:
27938         (WebCore::SVGPatternElement::contextElement):
27939         * svg/SVGPolyElement.h:
27940         (WebCore::SVGPolyElement::contextElement):
27941         * svg/SVGPreserveAspectRatio.cpp:
27942         (WebCore::SVGPreserveAspectRatio::valueAsString):
27943         * svg/SVGPreserveAspectRatio.h:
27944         * svg/SVGRadialGradientElement.cpp:
27945         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
27946         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
27947         (WebCore::SVGRadialGradientElement::collectGradientProperties):
27948         * svg/SVGRadialGradientElement.h:
27949         (WebCore::SVGRadialGradientElement::contextElement):
27950         * svg/SVGRectElement.cpp:
27951         (WebCore::SVGRectElement::SVGRectElement):
27952         * svg/SVGRectElement.h:
27953         (WebCore::SVGRectElement::contextElement):
27954         * svg/SVGSVGElement.cpp:
27955         (WebCore::SVGSVGElement::SVGSVGElement):
27956         (WebCore::SVGSVGElement::currentView):
27957         * svg/SVGSVGElement.h:
27958         (WebCore::SVGSVGElement::contextElement):
27959         * svg/SVGScriptElement.h:
27960         (WebCore::SVGScriptElement::contextElement):
27961         * svg/SVGSetElement.h:
27962         (WebCore::SVGSetElement::contextElement):
27963         * svg/SVGStyledElement.h:
27964         * svg/SVGStyledTransformableElement.cpp:
27965         * svg/SVGStyledTransformableElement.h:
27966         * svg/SVGSwitchElement.h:
27967         (WebCore::SVGSwitchElement::contextElement):
27968         * svg/SVGSymbolElement.h:
27969         (WebCore::SVGSymbolElement::contextElement):
27970         * svg/SVGTRefElement.h:
27971         (WebCore::SVGTRefElement::contextElement):
27972         * svg/SVGTSpanElement.h:
27973         (WebCore::SVGTSpanElement::contextElement):
27974         * svg/SVGTextContentElement.cpp:
27975         (WebCore::SVGTextContentElement::SVGTextContentElement):
27976         * svg/SVGTextContentElement.h:
27977         * svg/SVGTextElement.cpp:
27978         * svg/SVGTextElement.h:
27979         (WebCore::SVGTextElement::contextElement):
27980         * svg/SVGTextPathElement.cpp:
27981         (WebCore::SVGTextPathElement::SVGTextPathElement):
27982         * svg/SVGTextPathElement.h:
27983         (WebCore::SVGTextPathElement::contextElement):
27984         * svg/SVGTextPositioningElement.cpp:
27985         * svg/SVGTextPositioningElement.h:
27986         * svg/SVGTransformList.cpp:
27987         (SVGTransformList::valueAsString):
27988         * svg/SVGTransformList.h:
27989         * svg/SVGURIReference.h:
27990         * svg/SVGUseElement.cpp:
27991         (WebCore::SVGUseElement::SVGUseElement):
27992         * svg/SVGUseElement.h:
27993         (WebCore::SVGUseElement::contextElement):
27994         * svg/SVGViewElement.h:
27995         (WebCore::SVGViewElement::contextElement):
27996         * svg/SVGViewSpec.cpp:
27997         (WebCore::SVGViewSpec::SVGViewSpec):
27998         (WebCore::SVGViewSpec::contextElement):
27999         * svg/SVGViewSpec.h:
28001 2008-04-02  Darin Adler  <darin@apple.com>
28003         Reviewed by Alexey.
28005         - fix storage leak seen on buildbot
28007         * platform/graphics/cg/ImageBufferCG.cpp:
28008         (WebCore::utiFromMIMEType): Put the result of createCFString() into a RetainPtr. Changed
28009         result to be a RetainPtr.
28010         (WebCore::ImageBuffer::toDataURL): Tweak a little bit, removing one local variable and
28011         some unneeded explicit conversions.
28013 2008-04-01  Darin Adler  <darin@apple.com>
28015         * WebCore.vcproj/WebCore.vcproj: Added RangeBoundaryPoint.h -- not required, but convenient.
28017 2008-04-01  Darin Adler  <darin@apple.com>
28019         Reviewed by Sam and Antti.
28021         - fix <rdar://problem/5829565> paste performance slowed down with the Range Acid3 changes
28023         Added a new class, RangeBoundaryPoint, to use for range boundary points. The "truth" of
28024         the offset is now stored as a node pointer, and the offset is computed as and when needed.
28025         This allows us to efficiently update when the DOM tree is changed -- computation of the
28026         node offsets is deferred until the Range is used later.
28028         * WebCore.base.exp: Export nodeIndex().
28030         * WebCore.xcodeproj/project.pbxproj: Added RangeBoundaryPoint.h, removed NodeWithIndexBefore.h
28031         and NodeWIthIndexAfter.h. Also let Xcode tweak the file formatting.
28033         * dom/ContainerNode.cpp:
28034         (WebCore::ContainerNode::childrenChanged): Pass fewer arguments to Document.
28036         * dom/Document.cpp:
28037         (WebCore::Document::nodeChildrenChanged): Pass fewer arguments to Range.
28038         (WebCore::Document::nodeWillBeRemoved): Pass node to range as a raw node pointer; no need for
28039         the index.
28040         * dom/Document.h: Take fewer arguments.
28042         * dom/NodeWithIndexAfter.h: Removed.
28043         * dom/NodeWithIndexBefore.h: Removed.
28045         * dom/Range.cpp:
28046         (WebCore::Range::Range): Changed to use the new RangeBoundaryPoint constructor.
28047         (WebCore::Range::create): Updated to use RangeBoundaryPoint instead of Position.
28048         (WebCore::Range::~Range): Ditto.
28049         (WebCore::Range::startContainer): Ditto.
28050         (WebCore::Range::startOffset): Ditto.
28051         (WebCore::Range::endContainer): Ditto.
28052         (WebCore::Range::endOffset): Ditto.
28053         (WebCore::Range::commonAncestorContainer): Ditto.
28054         (WebCore::Range::collapsed): Ditto.
28055         (WebCore::Range::setStart): Ditto.
28056         (WebCore::Range::setEnd): Ditto.
28057         (WebCore::Range::collapse): Ditto.
28058         (WebCore::Range::isPointInRange): Ditto.
28059         (WebCore::Range::comparePoint): Ditto.
28060         (WebCore::Range::compareNode): Ditto.
28061         (WebCore::Range::compareBoundaryPoints): Ditto.
28062         (WebCore::Range::boundaryPointsValid): Ditto.
28063         (WebCore::Range::intersectsNode): Ditto.
28064         (WebCore::Range::processContents): Ditto.
28065         (WebCore::Range::cloneContents): Ditto.
28066         (WebCore::Range::insertNode): Updated to use RangeBoundaryPoint. Also simplified the code
28067         at the end that updates the range -- not all of it is needed now since most of the fixup
28068         is done automatically by the range document mutation machinery. The one bit that remains
28069         is arguably a bug, but we need to keep it to keep passing Acid3 until we get clarification
28070         that it is indeed a bug (and then Acid3 will probably have to change).
28071         (WebCore::Range::toString): Update to use RangeBoundaryPoint instead of Position.
28072         (WebCore::Range::text): Ditto.
28073         (WebCore::Range::createContextualFragment): Ditto.
28074         (WebCore::Range::detach): Ditto.
28075         (WebCore::Range::checkNodeWOffset): Changed case where the offset is a node offset to
28076         be more efficient by using childNode instead of childNodeCount, and also return the node
28077         before which is needed to set the value of a RangeBoundaryPoint.
28078         (WebCore::Range::cloneRange): Ditto.
28079         (WebCore::Range::setStartAfter): Ditto.
28080         (WebCore::Range::setEndBefore): Ditto.
28081         (WebCore::Range::setEndAfter): Ditto.
28082         (WebCore::Range::selectNode): Ditto.
28083         (WebCore::Range::selectNodeContents): Ditto.
28084         (WebCore::Range::surroundContents): Ditto.
28085         (WebCore::Range::setStartBefore): Ditto.
28086         (WebCore::Range::checkDeleteExtract): Ditto.
28087         (WebCore::Range::containedByReadOnly): Ditto.
28088         (WebCore::Range::firstNode): Ditto.
28089         (WebCore::Range::editingStartPosition): Ditto.
28090         (WebCore::Range::pastLastNode): Ditto.
28091         (WebCore::Range::addLineBoxRects): Ditto.
28092         (WebCore::Range::formatForDebugger): Ditto.
28093         (WebCore::Range::maxStartOffset): Ditto.
28094         (WebCore::Range::maxEndOffset): Ditto.
28095         (WebCore::boundaryNodeChildrenChanged): Updated to use RangeBoundaryPoint instead of
28096         Position. Also changed name and changed to just call invalidateOffset.
28097         (WebCore::Range::nodeChildrenChanged): Changed to take just a container node.
28098         (WebCore::boundaryNodeWillBeRemoved): Updated to use RangeBoundaryPoint instead of
28099         Position. Also changed name and changed to update childBefore.
28100         (WebCore::Range::nodeWillBeRemoved): Changed to just take a Node*.
28101         (WebCore::boundaryTextInserted): Updated to use RangeBoundaryPoint instead of
28102         Position. Also changed name.
28103         (WebCore::Range::textInserted): Ditto.
28104         (WebCore::boundaryTextRemoved): Ditto.
28105         (WebCore::Range::textRemoved): Ditto.
28106         (WebCore::boundaryTextNodesMerged): Ditto.
28107         (WebCore::Range::textNodesMerged): Ditto.
28108         (WebCore::boundaryTextNodesSplit): Ditto.
28109         (WebCore::Range::textNodeSplit): Ditto.
28111         * dom/Range.h: Updated to use RangeBoundaryPoint instead of Position.
28113         * dom/RangeBoundaryPoint.h: Added.
28115 2008-04-01  Anders Carlsson  <andersca@apple.com>
28117         Reviewed by Sam.
28119         Get rid of old "bindings" forwarding headers.
28121         * ForwardingHeaders/bindings: Removed.
28122         * ForwardingHeaders/bindings/NP_jsobject.h: Removed.
28123         * ForwardingHeaders/bindings/npruntime.h: Removed.
28124         * ForwardingHeaders/bindings/npruntime_impl.h: Removed.
28125         * ForwardingHeaders/bindings/npruntime_internal.h: Removed.
28126         * ForwardingHeaders/bindings/runtime.h: Removed.
28127         * ForwardingHeaders/bindings/runtime_object.h: Removed.
28128         * ForwardingHeaders/bindings/runtime_root.h: Removed.
28130 2008-04-01  Timothy Hatcher  <timothy@apple.com>
28132         Rename DatabasePanel.js to DatabasesPanel.js to facilitate the up-coming UI refresh changes.
28134         http://bugs.webkit.org/show_bug.cgi?id=17773
28136         Rubber-stamped by Brady Eidson.
28138         * WebCore.vcproj/WebCore.vcproj: Reference DatabasesPanel.js.
28139         * page/inspector/DatabasePanel.js: Removed.
28140         * page/inspector/DatabasesPanel.js: Copied from page/inspector/DatabasePanel.js.
28141         * page/inspector/WebKit.qrc: Reference DatabasesPanel.js.
28142         * page/inspector/inspector.html: Reference DatabasesPanel.js.
28144 2008-04-01  Brady Eidson  <beidson@apple.com>
28146         Touch a file to get Windows to rebuild WebCore
28148         * platform/ContextMenu.cpp: Alphabetize headers
28150 2008-04-01  Brady Eidson  <beidson@apple.com>
28152         Reviewed by Adam Roben
28154         Export loader/archive and loader/archive/cf headers for WebKitWin to use
28156         * WebCore.vcproj/WebCore.vcproj:
28158 2008-04-01  Brady Eidson  <beidson@apple.com>
28160         Reviewed by Darin
28162         WebArchives need to load on Windows the same way as on Mac, and this change in the 
28163         finished-loading code path was a big part of that
28165         * loader/FrameLoader.cpp:
28166         (WebCore::FrameLoader::finishedLoadingDocument): Only call the client's finishedLoading()
28167           for non-archive loads
28169 2008-04-01  Dan Bernstein  <mitz@apple.com>
28171         - Mac build fix
28173         * WebCore.xcodeproj/project.pbxproj: Made FontRenderingMode.h private.
28175 2008-04-01  Dan Bernstein  <mitz@apple.com>
28177         Reviewed by Darin Adler.
28179         - move the FontRenderingMode enumeration into its own header file
28181         * WebCore.vcproj/WebCore.vcproj:
28182         * WebCore.xcodeproj/project.pbxproj:
28183         * loader/CachedFont.h:
28184         * platform/graphics/FontDescription.h:
28185         * platform/graphics/FontRenderingMode.h: Added.
28186         * platform/graphics/gtk/FontCustomPlatformData.h:
28187         * platform/graphics/mac/FontCustomPlatformData.h:
28188         * platform/graphics/qt/FontCustomPlatformData.h:
28189         * platform/graphics/win/FontCustomPlatformData.h:
28191 2008-04-01  Darin Adler  <darin@apple.com>
28193         Reviewed by Mitz.
28195         - fix <rdar://problem/5833351> REGRESSION: Leak in JSCustomXPathNSResolver::create
28196         - fix <rdar://problem/5833216> REGRESSION: Leak in CSSStyleSelector::addViewportDependentMediaQueryResult
28198         * bindings/js/JSCustomXPathNSResolver.cpp:
28199         (WebCore::JSCustomXPathNSResolver::create): Added a missing adoptRef.
28200         * css/CSSStyleSelector.cpp:
28201         (WebCore::CSSStyleSelector::~CSSStyleSelector): Added a missing call to deleteAllValues.
28203 2008-04-01  Darin Adler  <darin@apple.com>
28205         Reviewed by Sam.
28207         - speed up hasChildNodes, which does not need to be virtual
28209         * dom/ContainerNode.cpp: Removed hasChildNodes.
28210         * dom/ContainerNode.h: Added non-virtual inline hasChildNodes.
28211         * dom/Node.cpp: Removed hasChildNodes.
28212         * dom/Node.h: Added non-vritual inline hasChildNodes.
28214 2008-04-01  Simon Hausmann  <hausmann@webkit.org>
28216         Fix the non-mac build.
28218         * page/AXObjectCache.h: Don't reference AccessibilityObjects when
28219         building without accessibility.
28220         * page/AccessibilityObject.h: Don't include RetainPtr.h for non-mac
28221         builds.
28223 2008-04-01  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
28225         Reviewed by Simon.
28227         * Do not store the QWebFrame associated with a ScrollView/FrameView
28228         in the WebCore::Widget.
28229         * Instead of asking the Widget for the QWebFrame use the QWebFramePrivate::core
28230         and QWebFramePrivate::kit function to convert from and to QWebFrame.
28232         * platform/Widget.h:
28233         * platform/qt/WidgetQt.cpp:
28234         (WebCore::WidgetPrivate::WidgetPrivate):
28235         (WebCore::Widget::containingWindow):
28237 2008-04-01  Alice Liu  <alice.liu@apple.com>
28238         Patch by Beth Dakin <bdakin@apple.com> and Alice Liu
28240         Reviewed by Darin.
28242         Refactored WebCore Accessibility code.  Prior to this patch, WebCore
28243         accessibility was implemented in an ObjC class named WebCoreAXObject,
28244         with much of the "guts" in C++.  This patch the next natural step of
28245         factoring out the C++ code into a class named AccessibilityObject, and 
28246         in order to maintain the required ObjC object ties, also implements an
28247         ObjC class named AccessibilityObjectWrapper as a thin wrapper around the
28248         C++ object.  Internally within WebCore we operate on the C++ object as
28249         much as possible, and the ObjC object gets used mostly when we need to
28250         return something to AppKit or call something implemented on NSObject.
28251         The AXObjectCache still keeps one HashMap, now of RenderObjects to
28252         AccessibilityObjects instead of WebCoreAXObjects, and the
28253         AccessibilityObject keeps track of its ObjC wrapper.
28255         * WebCore.xcodeproj/project.pbxproj:
28256         * page/AXObjectCache.h:
28257         (WebCore::AXObjectCache::get):
28258         (WebCore::AXObjectCache::removeAXID):
28259         * page/AccessibilityObject.cpp: Added.
28260         (WebCore::AccessibilityObject::AccessibilityObject):
28261         (WebCore::AccessibilityObject::~AccessibilityObject):
28262         (WebCore::AccessibilityObject::create):
28263         (WebCore::AccessibilityObject::detach):
28264         (WebCore::AccessibilityObject::firstChild):
28265         (WebCore::AccessibilityObject::lastChild):
28266         (WebCore::AccessibilityObject::previousSibling):
28267         (WebCore::AccessibilityObject::nextSibling):
28268         (WebCore::AccessibilityObject::parentObject):
28269         (WebCore::AccessibilityObject::parentObjectUnignored):
28270         (WebCore::AccessibilityObject::isWebArea):
28271         (WebCore::AccessibilityObject::isImageButton):
28272         (WebCore::AccessibilityObject::isAnchor):
28273         (WebCore::AccessibilityObject::isTextControl):
28274         (WebCore::AccessibilityObject::isImage):
28275         (WebCore::AccessibilityObject::isAttachment):
28276         (WebCore::isPasswordFieldElement):
28277         (WebCore::AccessibilityObject::isPasswordField):
28278         (WebCore::AccessibilityObject::headingLevel):
28279         (WebCore::AccessibilityObject::isHeading):
28280         (WebCore::AccessibilityObject::anchorElement):
28281         (WebCore::isCheckboxOrRadio):
28282         (WebCore::AccessibilityObject::actionElement):
28283         (WebCore::AccessibilityObject::mouseButtonListener):
28284         (WebCore::AccessibilityObject::helpText):
28285         (WebCore::AccessibilityObject::textUnderElement):
28286         (WebCore::AccessibilityObject::hasIntValue):
28287         (WebCore::AccessibilityObject::intValue):
28288         (WebCore::AccessibilityObject::stringValue):
28289         (WebCore::labelForElement):
28290         (WebCore::AccessibilityObject::title):
28291         (WebCore::AccessibilityObject::accessibilityDescription):
28292         (WebCore::AccessibilityObject::boundingBoxRect):
28293         (WebCore::AccessibilityObject::size):
28294         (WebCore::AccessibilityObject::linkedUIElement):
28295         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
28296         (WebCore::AccessibilityObject::accessibilityIsIgnored):
28297         (WebCore::AccessibilityObject::loaded):
28298         (WebCore::AccessibilityObject::layoutCount):
28299         (WebCore::AccessibilityObject::textLength):
28300         (WebCore::AccessibilityObject::selectedText):
28301         (WebCore::AccessibilityObject::selection):
28302         (WebCore::AccessibilityObject::selectedTextRange):
28303         (WebCore::AccessibilityObject::setSelectedText):
28304         (WebCore::AccessibilityObject::setSelectedTextRange):
28305         (WebCore::AccessibilityObject::makeRangeVisible):
28306         (WebCore::AccessibilityObject::url):
28307         (WebCore::AccessibilityObject::isVisited):
28308         (WebCore::AccessibilityObject::isFocused):
28309         (WebCore::AccessibilityObject::setFocused):
28310         (WebCore::AccessibilityObject::setValue):
28311         (WebCore::AccessibilityObject::isEnabled):
28312         (WebCore::AccessibilityObject::press):
28313         (WebCore::AccessibilityObject::topRenderer):
28314         (WebCore::AccessibilityObject::textControl):
28315         (WebCore::AccessibilityObject::widget):
28316         (WebCore::AccessibilityObject::axObjectCache):
28317         (WebCore::AccessibilityObject::documentLinks):
28318         (WebCore::AccessibilityObject::documentFrameView):
28319         (WebCore::AccessibilityObject::frameViewIfRenderView):
28320         (WebCore::AccessibilityObject::visiblePositionRange):
28321         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
28322         (WebCore::AccessibilityObject::doAXTextMarkerRangeForUnorderedTextMarkers):
28323         (WebCore::AccessibilityObject::doAXLeftWordTextMarkerRangeForTextMarker):
28324         (WebCore::AccessibilityObject::doAXRightWordTextMarkerRangeForTextMarker):
28325         (WebCore::updateAXLineStartForVisiblePosition):
28326         (WebCore::AccessibilityObject::doAXLeftLineTextMarkerRangeForTextMarker):
28327         (WebCore::AccessibilityObject::doAXRightLineTextMarkerRangeForTextMarker):
28328         (WebCore::AccessibilityObject::doAXSentenceTextMarkerRangeForTextMarker):
28329         (WebCore::AccessibilityObject::doAXParagraphTextMarkerRangeForTextMarker):
28330         (WebCore::startOfStyleRange):
28331         (WebCore::endOfStyleRange):
28332         (WebCore::AccessibilityObject::doAXStyleTextMarkerRangeForTextMarker):
28333         (WebCore::AccessibilityObject::textMarkerRangeForRange):
28334         (WebCore::AccessibilityObject::stringForReplacedNode):
28335         (WebCore::AccessibilityObject::doAXStringForTextMarkerRange):
28336         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
28337         (WebCore::AccessibilityObject::doAXLengthForTextMarkerRange):
28338         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
28339         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
28340         (WebCore::AccessibilityObject::doAXNextTextMarkerForTextMarker):
28341         (WebCore::AccessibilityObject::doAXPreviousTextMarkerForTextMarker):
28342         (WebCore::AccessibilityObject::doAXNextWordEndTextMarkerForTextMarker):
28343         (WebCore::AccessibilityObject::doAXPreviousWordStartTextMarkerForTextMarker):
28344         (WebCore::AccessibilityObject::doAXNextLineEndTextMarkerForTextMarker):
28345         (WebCore::AccessibilityObject::doAXPreviousLineStartTextMarkerForTextMarker):
28346         (WebCore::AccessibilityObject::doAXNextSentenceEndTextMarkerForTextMarker):
28347         (WebCore::AccessibilityObject::doAXPreviousSentenceStartTextMarkerForTextMarker):
28348         (WebCore::AccessibilityObject::doAXNextParagraphEndTextMarkerForTextMarker):
28349         (WebCore::AccessibilityObject::doAXPreviousParagraphStartTextMarkerForTextMarker):
28350         (WebCore::AccessibilityObject::textMarkerForIndex):
28351         (WebCore::AccessibilityObject::doAXUIElementForTextMarker):
28352         (WebCore::AccessibilityObject::doAXLineForTextMarker):
28353         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
28354         (WebCore::AccessibilityObject::indexForTextMarker):
28355         (WebCore::AccessibilityObject::doAXRangeForLine):
28356         (WebCore::AccessibilityObject::doAXRangeForPosition):
28357         (WebCore::AccessibilityObject::doAXRangeForIndex):
28358         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
28359         (WebCore::AccessibilityObject::doAXStringForRange):
28360         (WebCore::AccessibilityObject::doAXBoundsForRange):
28361         (WebCore::AccessibilityObject::doAXLineForIndex):
28362         (WebCore::AccessibilityObject::doAccessibilityHitTest):
28363         (WebCore::AccessibilityObject::focusedUIElement):
28364         (WebCore::AccessibilityObject::observableObject):
28365         (WebCore::AccessibilityObject::roleValue):
28366         (WebCore::AccessibilityObject::canSetFocusAttribute):
28367         (WebCore::AccessibilityObject::canSetValueAttribute):
28368         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
28369         (WebCore::AccessibilityObject::childrenChanged):
28370         (WebCore::AccessibilityObject::clearChildren):
28371         (WebCore::AccessibilityObject::hasChildren):
28372         (WebCore::AccessibilityObject::addChildren):
28373         (WebCore::AccessibilityObject::axObjectID):
28374         (WebCore::AccessibilityObject::setAXObjectID):
28375         (WebCore::AccessibilityObject::removeAXObjectID):
28376         * page/AccessibilityObject.h: Added.
28377         (WebCore::VisiblePositionRange::VisiblePositionRange):
28378         (WebCore::VisiblePositionRange::isNull):
28379         (WebCore::AccessibilityObject::detached):
28380         (WebCore::AccessibilityObject::PlainTextRange::PlainTextRange):
28381         (WebCore::AccessibilityObject::PlainTextRange::isNull):
28382         (WebCore::AccessibilityObject::renderer):
28383         (WebCore::AccessibilityObject::children):
28384         (WebCore::AccessibilityObject::wrapper):
28385         (WebCore::AccessibilityObject::setWrapper):
28386         * page/mac/AXObjectCacheMac.mm:
28387         (WebCore::AXObjectCache::~AXObjectCache):
28388         (WebCore::AXObjectCache::get):
28389         (WebCore::AXObjectCache::remove):
28390         (WebCore::AXObjectCache::getAXID):
28391         (WebCore::AXObjectCache::removeAXID):
28392         (WebCore::AXObjectCache::textMarkerForVisiblePosition):
28393         (WebCore::AXObjectCache::childrenChanged):
28394         (WebCore::AXObjectCache::postNotification):
28395         (WebCore::AXObjectCache::postNotificationToElement):
28396         * page/mac/AccessibilityObjectMac.mm: Added.
28397         (createAccessibilityRoleMap):
28398         (RoleEntry::):
28399         (roleValueToNSString):
28400         (AccessibilityObject::attachmentView):
28401         (AccessibilityObject::performPressActionForAttachment):
28402         (AccessibilityObject::textMarkerRange):
28403         (AccessibilityObject::textMarkerForVisiblePosition):
28404         (AccessibilityObject::startTextMarker):
28405         (AccessibilityObject::visiblePositionForTextMarker):
28406         (AccessibilityObject::visiblePositionForStartOfTextMarkerRange):
28407         (AccessibilityObject::visiblePositionForEndOfTextMarkerRange):
28408         (AccessibilityObject::textMarkerRangeFromVisiblePositions):
28409         (AccessibilityObject::textMarkerRangeForSelection):
28410         (AccessibilityObject::textMarkerRangeFromMarkers):
28411         (AccessibilityObject::convertViewRectToScreenCoords):
28412         (AccessibilityObject::convertAbsolutePointToViewCoords):
28413         (AccessibilityObject::convertWidgetChildrenToNSArray):
28414         (AccessibilityObject::position):
28415         (AccessibilityObject::role):
28416         (AccessibilityObject::subrole):
28417         (AccessibilityObject::roleDescription):
28418         (blockquoteLevel):
28419         (AccessibilityObject::AXAttributeStringSetElement):
28420         (AXAttributeStringSetBlockquoteLevel):
28421         (CreateCGColorIfDifferent):
28422         (AXAttributeStringSetColor):
28423         (AXAttributeStringSetNumber):
28424         (AXAttributeStringSetFont):
28425         (AXAttributeStringSetStyle):
28426         (AccessibilityObject::AXAttributeStringSetHeadingLevel):
28427         (AccessibilityObject::AXLinkElementForNode):
28428         (AXAttributeStringSetSpelling):
28429         (AccessibilityObject::AXAttributedStringAppendText):
28430         (nsStringForReplacedNode):
28431         (AccessibilityObject::doAXAttributedStringForTextMarkerRange):
28432         (AccessibilityObject::doAXAttributedStringForRange):
28433         (AccessibilityObject::doAXRTFForRange):
28434         * page/mac/AccessibilityObjectWrapper.h: Added.
28435         * page/mac/AccessibilityObjectWrapper.mm: Added.
28436         (-[AccessibilityObjectWrapper initWithAccessibilityObject:]):
28437         (-[AccessibilityObjectWrapper unregisterUniqueIdForUIElement]):
28438         (-[AccessibilityObjectWrapper detach]):
28439         (-[AccessibilityObjectWrapper accessibilityObject]):
28440         (-[AccessibilityObjectWrapper accessibilityActionNames]):
28441         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
28442         (-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
28443         (-[AccessibilityObjectWrapper renderWidgetChildren]):
28444         (convertToNSArray):
28445         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
28446         (-[AccessibilityObjectWrapper accessibilityFocusedUIElement]):
28447         (-[AccessibilityObjectWrapper accessibilityHitTest:]):
28448         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
28449         (-[AccessibilityObjectWrapper accessibilityIsIgnored]):
28450         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
28451         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
28452         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
28453         (rendererForView):
28454         (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
28455         (-[AccessibilityObjectWrapper accessibilityActionDescription:]):
28456         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
28457         (-[AccessibilityObjectWrapper accessibilityShouldUseUniqueId]):
28458         * page/mac/WebCoreAXObject.h: Removed.
28459         * page/mac/WebCoreAXObject.mm: Removed.
28460         * rendering/RenderMenuList.cpp:
28461         (WebCore::RenderMenuList::selectElement):
28462         * rendering/RenderMenuList.h:
28464 2008-03-31  Dan Bernstein  <mitz@apple.com>
28466         - fix previous attempted fixes
28468         * platform/qt/TemporaryLinkStubs.cpp:
28469         (PluginDatabase::getPluginPathsInDirectories):
28470         * platform/wx/TemporaryLinkStubs.cpp:
28471         (PluginDatabase::getPluginPathsInDirectories):
28473 2008-03-31  Dan Bernstein  <mitz@apple.com>
28475         - fix Qt link stubs
28477         * platform/qt/TemporaryLinkStubs.cpp:
28478         (PluginDatabase::getPluginPathsInDirectories):
28479         (PluginDatabase::isPreferredPluginDirectory):
28481 2008-03-31  Dan Bernstein  <mitz@apple.com>
28483         - try to fix the Wx build
28485         * platform/wx/TemporaryLinkStubs.cpp:
28486         (PluginDatabase::getPluginPathsInDirectories):
28487         (PluginDatabase::isPreferredPluginDirectory):
28489 2008-03-31  Dan Bernstein  <mitz@apple.com>
28491         - Gtk and Qt build fixes
28493         * platform/graphics/gtk/FontCustomPlatformData.cpp:
28494         (WebCore::FontCustomPlatformData::fontPlatformData):
28495         * platform/graphics/gtk/FontCustomPlatformData.h:
28496         * platform/graphics/qt/FontCustomPlatformData.cpp:
28497         (WebCore::FontCustomPlatformData::fontPlatformData):
28498         * platform/graphics/qt/FontCustomPlatformData.h:
28500 2008-03-31  Dan Bernstein  <mitz@apple.com>
28502         - Mac build fix
28504         * platform/graphics/mac/FontCustomPlatformData.cpp:
28505         (WebCore::FontCustomPlatformData::fontPlatformData):
28506         * platform/graphics/mac/FontCustomPlatformData.h:
28508 2008-03-31  Dan Bernstein  <mitz@apple.com>
28510         Reviewed by Darin Adler.
28512         - fix <rdar://problem/5792638> @font-face with downloadable fonts doesn't work with GDI text
28514         * WebCore.vcproj/WebCore.vcproj: Added GetEOTHeader.{h,cpp}
28516         * css/CSSFontFaceSource.cpp:
28517         (WebCore::CSSFontFaceSource::getFontData): Changed to pass the rendering
28518         mode to CachedFont::platformDataFromCustomData().
28520         * loader/CachedFont.cpp:
28521         (WebCore::CachedFont::platformDataFromCustomData): Added a rendering
28522         mode parameter which is passed down to
28523         FontCustomPlatformData::fontPlatformData().
28525         * loader/CachedFont.h:
28527         * platform/graphics/win/FontCacheWin.cpp:
28528         (WebCore::FontCache::fontExists): Changed the number 5 to the named
28529         constant CLEARTYPE_QUALITY.
28531         * platform/graphics/win/FontCustomPlatformData.cpp:
28532         (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added code
28533         to delete the embedded font reference.
28534         (WebCore::FontCustomPlatformData::fontPlatformData): Added code to
28535         create an HFONT from the embedded font reference and pass it along with
28536         the CGFontRef to the FontPlatformData constructor. Added a rendering
28537         mode parameter which is passed down to the FontPlatformData constructor.
28538         (WebCore::EOTStream::EOTStream): Added this helper class used to feed
28539         data to TTLoadEmbeddedFont().
28540         (WebCore::EOTStream::read): Added.
28541         (WebCore::readEmbedProc): Added this TTLoadEmbeddedFont() callback.
28542         (WebCore::createUniqueFontName): Added. Creates a unique GUID-derived
28543         font name. 
28544         (WebCore::createFontCustomPlatformData): Added code to make the font
28545         accessible to GDI by creating an Embedded OpenType stream and
28546         activating it in the process under a globally-unique name.
28548         * platform/graphics/win/FontCustomPlatformData.h:
28549         Added a font reference data member which holds the embedded font.
28550         (WebCore::FontCustomPlatformData::FontCustomPlatformData): Added a
28551         rendering mode parameter.
28553         * platform/graphics/win/FontPlatformData.h:
28554         (WebCore::FontPlatformData::FontPlatformData): Made this class always
28555         own the CGFontRef and the HFONT by turning these data members into a
28556         RetainPtr and a RefPtr around a RefCountedHFONT.
28557         Added an HFONT parameter to the CGFontRef-based constructor.
28558         Made platformDataInit() private.
28559         (WebCore::FontPlatformData::hfont):
28560         (WebCore::FontPlatformData::cgFont):
28561         (WebCore::FontPlatformData::hash):
28562         (WebCore::FontPlatformData::RefCountedHFONT::RefCountedHFONT): Added.
28563         (WebCore::FontPlatformData::RefCountedHFONT::~RefCountedHFONT):
28564         (WebCore::FontPlatformData::RefCountedHFONT::hfont):
28565         (WebCore::FontPlatformData::RefCountedHFONT::hash):
28567         * platform/graphics/win/FontPlatformDataCGWin.cpp:
28568         (WebCore::FontPlatformData::platformDataInit): Changed to take
28569         ownership of the CGFontRef created here.
28570         (WebCore::FontPlatformData::FontPlatformData): Added an HFONT parameter
28571         and a useGDI flag.
28573         * platform/graphics/win/FontPlatformDataWin.cpp:
28574         (WebCore::FontPlatformData::FontPlatformData): Changed to take ownership
28575         of the HFONT.
28577         * platform/graphics/win/GetEOTHeader.cpp: Added.
28578         (WebCore::BigEndianUShort::operator unsigned short):
28579         (WebCore::BigEndianULong::operator unsigned):
28580         (WebCore::appendBigEndianStringToEOTHeader):
28581         (WebCore::getEOTHeader): Added. Creates an Embedded OpenType (.eot)
28582         header for the given font data, making it suitable as input for
28583         TTLoadEmbeddedFont.
28585         * platform/graphics/win/GetEOTHeader.h: Added.
28587         * platform/graphics/win/SimpleFontDataCGWin.cpp:
28588         (WebCore::SimpleFontData::platformDestroy): Removed code to delete parts
28589         of the FontPlatformData, since they are now always owned and managed
28590         by the FontPlatformData.
28592 2008-03-31  Darin Adler  <darin@apple.com>
28594         Reviewed by Anders.
28596         - fix crash seen on buildbot (regression from a recent speedup)
28598         * html/HTMLDocument.cpp:
28599         (WebCore::HTMLDocument::createElement): Check validity before calling isLower, since
28600         that takes care of the null string case.
28602 2008-03-31  Dan Bernstein  <mitz@apple.com>
28604         Reviewed by John Sullivan.
28606         - fix <rdar://problem/5741075> Google Maps: cursor and placemarks don't match up
28608         * platform/win/CursorWin.cpp:
28609         (WebCore::Cursor::Cursor): Set the 1-bit mask for full-alpha cursors
28610         to fully opaque. The mask is ignored and the alpha values from the
28611         32-bit image are used except in the case of a fully-transparent image,
28612         in which the fully-opaque 1-bit mask is required to get transparency.
28614 2008-03-31  Brady Eidson  <beidson@apple.com>
28616         Reviewed by Jon Honeycutt
28618         Move a WebArchive loading check into WebCore
28619         
28620         * loader/FrameLoader.cpp:
28621         (WebCore::FrameLoader::committedLoad): Don't call the client method if currently loading a WebArchive
28623 2008-03-31  Brady Eidson  <beidson@apple.com>
28625         Reviewed by Oliver Hunt
28627         "Turn on" WebArchives for Windows
28628         
28629         Thought I'd done this already, but I hadn't!
28631         * platform/MIMETypeRegistry.cpp:
28632         (WebCore::initializeSupportedNonImageMimeTypes): Apply known ArchiveFactory MIME types
28634 2008-03-31  Dan Bernstein  <mitz@apple.com>
28636         Reviewed by Dave Hyatt.
28638         - fix http://bugs.webkit.org/show_bug.cgi?id=18076
28639           Box disappears after CSS Transition completes
28641         * page/AnimationController.cpp: Changed the BLEND_MAYBE_INVALID_COLOR
28642         macro to not blend two invalid colors.
28643         * rendering/RenderStyle.cpp:
28644         (WebCore::StyleBackgroundData::StyleBackgroundData): Added missing
28645         copying of the m_color data member.
28647 2008-03-31  Julien Chaffraix  <jchaffraix@webkit.org>
28649         Reviewed by Darin.
28651         Bug 18177: m_encoding is used twice in XMLHttpRequest
28652         http://bugs.webkit.org/show_bug.cgi?id=18177
28654         - Change XMLHttpRequest variable m_encoding to m_responseEncoding.
28656         - Change send local variable m_encoding to encoding.
28658         No test case (no functionnal change).
28660         * platform/network/ResourceResponseBase.h: Removed unused variable.
28661         * xml/XMLHttpRequest.cpp:
28662         (WebCore::XMLHttpRequest::send): Changed local m_encoding to encoding.
28663         (WebCore::XMLHttpRequest::didReceiveResponse): m_encoding -> m_responseEncoding.
28664         (WebCore::XMLHttpRequest::didReceiveData): Ditto.
28665         * xml/XMLHttpRequest.h: Change m_encoding to m_responseEncoding to disambiguate
28666         the name as it is only used for response.
28668 2008-03-27  Adam Roben  <aroben@apple.com>
28670         Pass the right ExecStates to toJS when creating JS wrappers for
28671         objects from the inspected page
28673         We now use an ExecState from the inspected page to create the JS
28674         wrappers for objects from the inspected page, rather than use an
28675         ExecState from the Inspector.
28677         Reviewed by Tim Hatcher.
28679         * page/InspectorController.cpp:
28680         (WebCore::getResourceDocumentNode):
28681         (WebCore::InspectorController::focusNode):
28682         (WebCore::InspectorController::addDatabaseScriptResource):
28684 2008-03-31  Adam Roben  <aroben@apple.com>
28686         Stop relying on functions added to prototypes in the Inspector being
28687         callable on objects from the inspected window
28689         Reviewed by Tim Hatcher.
28691         * page/inspector/Console.js:
28692         (WebInspector.ConsolePanel._formatnode): Use nodeTitleInfo.call(node)
28693         instead of node.titleInfo().
28694         * page/inspector/StylesSidebarPane.js: Changed uses of
28695         getShorthandValue, getShorthandPriority, getLonghandProperties, and
28696         getUniqueStyleProperties to call them as functions instead of as
28697         methods on the CSSStyleDeclaration objects.
28698         * page/inspector/utilities.js: Removed Node.prototype.titleInfo, and
28699         changed our CSSStyleDeclaration methods to just be standalone
28700         functions.
28702 2008-03-26  Adam Roben  <aroben@apple.com>
28704         Fix an exception while adding a message to the console
28706         Reviewed by Mark Rowe.
28708         * page/inspector/ConsolePanel.js: Don't call addMessageToSource if the
28709         panel has no such method. This can happen if we get a message for,
28710         e.g., a Database.
28712 2008-03-31  Brady Eidson  <beidson@apple.com>
28714         Reviewed by Darin and Mitz's rubber stamp
28716         Remove dataForArchivedSelection(WebCore::Frame*) from the EditorClient - only usage is now directly in WebCore
28718         * page/EditorClient.h:
28719         * svg/graphics/SVGImageEmptyClients.h:
28721         * platform/mac/PasteboardMac.mm:
28722         (WebCore::Pasteboard::writeSelection): Make the archive and get the data directly
28724 2008-03-31  Brady Eidson  <beidson@apple.com>
28726         Reviewed by Mitz Pettel
28728         Fix for http://bugs.webkit.org/show_bug.cgi?id=18183
28730         Despite the bug reporter's instructions, I have still not been able to actually reproduce this crash and 
28731         therefore don't know how to make a layout test for it.
28733         * loader/archive/ArchiveResource.cpp:
28734         (WebCore::ArchiveResource::response): Fix potential null dereference
28736 2008-03-29  Adam Roben  <aroben@apple.com>
28738         Fix Bug 18208: Acid3 test 65 takes >33ms due to plugin refreshing on
28739         Windows
28741         <http://bugs.webkit.org/show_bug.cgi?id=18208>
28743         We now keep track of all the plugin paths found each time refresh() is
28744         called. We'll only instantiate PluginPackages if there are new paths
28745         or paths with changed timestamps since the last time refresh() was
28746         called.
28748         Reviewed by Darin Adler and Anders Carlsson.
28750         * plugins/PluginDatabase.cpp:
28751         (WebCore::PluginDatabase::refresh):
28752           - Only instantiate PluginPackages if there is a new path or a path
28753             with a changed timestamp since we last ran refresh().
28754           - Cache the set of plugin paths found and their timestamps for the
28755             next call to refresh().
28756           - Only re-register MIME types if our set of plugins changed.
28757         * plugins/PluginDatabase.h: Added a new member to cache plugin paths
28758         and their timestamps.
28760 2008-03-29  Adam Roben  <aroben@apple.com>
28762         Separate filesystem crawling from PluginPackage instantiation
28764         Part of Bug 18208: Acid3 test 65 takes >33ms due to plugin refreshing
28765         on Windows
28766         <http://bugs.webkit.org/show_bug.cgi?id=18208>
28768         refresh() is now the only place where PluginPackages are instantiated.
28769         refresh() now asks for a set of plugins that no longer exist on disk,
28770         and the set of all plugin files in our plugin directories. Using these
28771         two sets we can update our instantiated plugins without copying any
28772         HashSets. The code in refresh() and in the platform-specific methods
28773         to crawl the filesystem is now quite a bit simpler.
28775         PluginDatabase now stores both a PluginSet and a HashMap that maps
28776         plugin paths to PluginPackages. This allows us to quickly determine
28777         whether we already have a PluginPackage instantiated for a particular
28778         path. The new add/remove methods handle the modification of these two
28779         collections.
28781         A nice side effect of all this is that refresh() no longer copies any
28782         HashSets.
28784         Reviewed by Mitz Pettel.
28786         * plugins/PluginDatabase.cpp:
28787         (WebCore::PluginDatabase::refresh): Unload any plugins that have been
28788         deleted from disk, and add any plugins that either weren't installed
28789         last time, or have changed since last time.
28790         (WebCore::PluginDatabase::getDeletedPlugins): Added.
28791         (WebCore::PluginDatabase::add): Added. Returns whether or not the
28792         PluginPackage was actually added to the database (duplicates won't be
28793         added).
28794         (WebCore::PluginDatabase::remove): Added.
28795         * plugins/PluginDatabase.h:
28796         * plugins/PluginPackage.h:
28797         (WebCore::PluginPackage::path): Added.
28798         (WebCore::PluginPackage::lastModified): Added.
28799         * plugins/gtk/PluginDatabaseGtk.cpp:
28800         (WebCore::PluginDatabase::getPluginPathsInDirectories): Renamed from
28801         getPluginsInDirectories. Now fills a HashSet of Strings instead of
28802         instantiated PluginPackages.
28803         * plugins/win/PluginDatabaseWin.cpp:
28804         (WebCore::addPluginPathsFromRegistry): Ditto.
28805         (WebCore::PluginDatabase::getPluginPathsInDirectories): Ditto.
28807 2008-03-29  Adam Roben  <aroben@apple.com>
28809         Change getPluginsInDirectories to use an out parameter
28811         This avoids copying a HashSet.
28813         Reviewed by Mitz Pettel.
28815         * plugins/PluginDatabase.cpp:
28816         (WebCore::PluginDatabase::refresh):
28817         * plugins/PluginDatabase.h:
28818         * plugins/gtk/PluginDatabaseGtk.cpp:
28819         (WebCore::PluginDatabase::getPluginsInDirectories):
28820         * plugins/win/PluginDatabaseWin.cpp:
28821         (WebCore::PluginDatabase::getPluginsInDirectories):
28823 2008-03-29  Adam Roben  <aroben@apple.com>
28825         Make some PluginPackage methods return const String&
28827         Reviewed by Mitz Pettel.
28829         * plugins/PluginPackage.h:
28831 2008-03-29  Adam Roben  <aroben@apple.com>
28833         Rename PluginDatabase's "PluginPaths" to "PluginDirectories"
28835         The code expects these paths to all be directories, so it seems good
28836         to refer to them as such.
28838         This patch just changes "Paths" to "Directories" and "Path" to
28839         "Directory".
28841         Reviewed by Mitz Pettel.
28843         * platform/qt/TemporaryLinkStubs.cpp:
28844         * platform/wx/TemporaryLinkStubs.cpp:
28845         * plugins/PluginDatabase.cpp:
28846         (WebCore::PluginDatabase::installedPlugins):
28847         (WebCore::PluginDatabase::refresh):
28848         * plugins/PluginDatabase.h:
28849         (WebCore::PluginDatabase::setPluginDirectories):
28850         * plugins/gtk/PluginDatabaseGtk.cpp:
28851         (WebCore::PluginDatabase::getPluginsInDirectories):
28852         * plugins/win/PluginDatabaseWin.cpp:
28853         (WebCore::PluginDatabase::getPluginsInDirectories):
28854         (WebCore::safariPluginsDirectory):
28855         (WebCore::PluginDatabase::defaultPluginDirectories):
28856         (WebCore::PluginDatabase::isPreferredPluginDirectory):
28857         * plugins/win/PluginPackageWin.cpp:
28858         (WebCore::PluginPackage::compare):
28860 2008-03-29  Adam Roben  <aroben@apple.com>
28862         Remove PlatformFileTime
28864         This typedef is time_t on all platforms, so we can just get rid of the
28865         typedef.
28867         Reviewed by Mitz Pettel.
28869         * platform/FileSystem.h:
28870         * plugins/PluginPackage.cpp:
28871         * plugins/PluginPackage.h:
28873 2008-03-29  Adam Roben  <aroben@apple.com>
28875         Change PlatformFileTime on Windows to be time_t
28877         This matches other platforms and our existing functions in
28878         FileSystem.h. It will also let us get rid of PlatformFileTime
28879         altogether.
28881         Reviewed by Mitz Pettel.
28883         * platform/FileSystem.h: Change PlatformFileTime to time_t on Windows.
28884         * plugins/win/PluginDatabaseWin.cpp:
28885         (WebCore::addPluginsFromRegistry): Use getFileModificationTime to get
28886         the modification time to pass to PluginPackage::create.
28887         (WebCore::PluginDatabase::getPluginsInPaths): Ditto.
28888         * plugins/win/PluginPackageWin.cpp:
28889         (WebCore::PluginPackage::hash): Updated to use m_lastModified as a
28890         time_t.
28891         (WebCore::PluginPackage::equal): Ditto.
28893 2008-03-29  Adam Roben  <aroben@apple.com>
28895         Make PluginPackage work like our other RefCounted classes
28897         PluginPackage now starts with a ref count of 1, and its createPackage
28898         method now returns a PassRefPtr instead of a raw pointer.
28900         Reviewed by Darin Adler.
28902         * plugins/PluginPackage.cpp:
28903         (WebCore::PluginPackage::PluginPackage): Removed explicit call to the
28904         RefCounted constructor so that we'll start with a ref count of 1.
28905         (WebCore::PluginPackage::createPackage): Changed to return a
28906         PassRefPtr.
28907         * plugins/PluginPackage.h:
28908         * plugins/gtk/PluginDatabaseGtk.cpp:
28909         (WebCore::PluginDatabase::getPluginsInPaths): Changed to store the
28910         newly-created PluginPackage in a RefPtr.
28911         * plugins/win/PluginDatabaseWin.cpp:
28912         (WebCore::addPluginsFromRegistry): Ditto.
28913         (WebCore::PluginDatabase::getPluginsInPaths): Ditto.
28915 2008-03-29  Adam Roben  <aroben@apple.com>
28917         Fix Bug 18214: WebKit will sometimes load duplicate plugins
28919         <http://bugs.webkit.org/show_bug.cgi?id=18214>
28921         We now compare 3 things to determine if two PluginPackages are equal:
28922           1) Name
28923           2) Description
28924           3) Supported MIME types
28926         This matches Gecko's equality logic for plugins (implemented in
28927         nsPluginTag::Equals).
28929         Reviewed by Darin Adler.
28931         * plugins/win/PluginPackageWin.cpp:
28932         (WebCore::PluginPackage::hash): Use the above-mentioned 3 criteria to
28933         calculate the hash.
28934         (WebCore::PluginPackage::equal): Use the above-mentioned 3 criteria to
28935         determine equality.
28937 2008-03-31  Simon Hausmann  <hausmann@webkit.org>
28939         Fix the Qt build.
28941         ResourceHandleInternal.h references ResourceHandle::fireFailure, so include
28942         ResourceHandle.h.
28944         * platform/network/ResourceHandleInternal.h:
28946 2008-03-31  Rob Buis  <buis@kde.org>
28948         Reviewed by Darin.
28950         http://bugs.webkit.org/show_bug.cgi?id=15595
28951         marker property doesn't show up correctly as "shorthand" in inspector
28953         Make sure parsing the marker property sets the individual
28954         marker properties as implicit with marker as shorthand.
28955         Also let CSSStyleDecleration::getPropertyValue return
28956         the correct value for the marker property.
28958         * css/CSSMutableStyleDeclaration.cpp:
28959         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
28960         * css/CSSParser.cpp:
28961         * css/CSSParser.h:
28962         (WebCore::ShorthandScope::ShorthandScope):
28963         (WebCore::ShorthandScope::~ShorthandScope):
28964         * css/SVGCSSParser.cpp:
28965         (WebCore::CSSParser::parseSVGValue):
28967 2008-03-30  Eric Seidel  <eric@webkit.org>
28969         Reviewed by Oliver.
28971         Make AMatthews life easier -- fix the SVG_FILTERS build
28973         Build fix only, no tests.
28975         * svg/SVGComponentTransferFunctionElement.cpp:
28976         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
28977         * svg/SVGFEColorMatrixElement.cpp:
28978         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
28979         * svg/SVGFEDiffuseLightingElement.cpp:
28980         * svg/SVGFEGaussianBlurElement.cpp:
28981         * svg/SVGFEImageElement.cpp:
28982         (WebCore::SVGFEImageElement::SVGFEImageElement):
28983         * svg/SVGFESpecularLightingElement.cpp:
28984         * svg/SVGFETurbulenceElement.cpp:
28985         * svg/SVGFilterElement.cpp:
28986         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
28987         * svg/graphics/filters/SVGFEBlend.cpp:
28988         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
28989         * svg/graphics/filters/SVGFEComposite.cpp:
28990         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
28991         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
28992         * svg/graphics/filters/SVGFEImage.cpp:
28993         * svg/graphics/filters/SVGFEMerge.cpp:
28994         * svg/graphics/filters/SVGFEMorphology.cpp:
28995         * svg/graphics/filters/SVGFEOffset.cpp:
28996         * svg/graphics/filters/SVGFESpecularLighting.cpp:
28997         * svg/graphics/filters/SVGFETurbulence.cpp:
28999 2008-03-30  Dan Bernstein  <mitz@apple.com>
29001         Reviewed by Sam Weinig.
29003         - fix http://bugs.webkit.org/show_bug.cgi?id=18115
29004           REGRESSION (r31250): Incomplete repaint of GoogleReader sidebar while reading unread posts
29006         Test: fast/repaint/lines-with-layout-delta.html
29008         * rendering/RenderObject.cpp:
29009         (WebCore::RenderObject::repaintRectangle): Made this method take layout
29010         delta into account.
29012 2008-03-30  Dan Bernstein  <mitz@apple.com>
29014         Reviewed by Maciej Stachowiak.
29016         - fix assertion failure in CSSParser.cpp's equalIgnoringCase() when
29017           parsing certain transforms.
29019         Test: fast/css/transform-function-lowercase-assert.html
29021         * css/CSSParser.cpp:
29022         (WebCore::TransformOperationInfo::TransformOperationInfo): Changed to
29023         always pass a lowercase string as the second argument of
29024         equalIgnoringCase().
29026 2008-03-30  Mark Rowe  <mrowe@apple.com>
29028         ARM build fix.
29030         * platform/text/AtomicString.cpp:
29031         (WebCore::equal): Use correct variable name.
29033 2008-03-30  Hiroyuki Ikezoe  <poincare@ikezoe.net>
29035         Reviewed by Alp Toker.
29037         http://bugs.webkit.org/show_bug.cgi?id=18036
29038         Rendering invalid japanese characters with pango backend.
29040         * platform/graphics/gtk/FontPlatformDataPango.cpp:
29041         (FontPlatformData::FontPlatformData): Set PangoFontDescription for
29042         PangoContext explicitly to use proper font.
29044 2008-03-30  Rob Buis  <buis@kde.org>
29046         Reviewed by Oliver.
29048         http://bugs.webkit.org/show_bug.cgi?id=17633
29049         SVG: modifying x & y attribute of text element from JS fails
29051         Make SVG text relayout when x, y attribute is changed from js.
29053         * svg/SVGTextContentElement.cpp:
29054         (WebCore::SVGTextContentElement::isKnownAttribute):
29055         * svg/SVGTextContentElement.h:
29056         * svg/SVGTextElement.cpp:
29057         (WebCore::SVGTextElement::svgAttributeChanged):
29058         * svg/SVGTextElement.h:
29059         * svg/SVGTextPositioningElement.cpp:
29060         (WebCore::SVGTextPositioningElement::isKnownAttribute):
29061         * svg/SVGTextPositioningElement.h:
29063 2008-03-28  Maciej Stachowiak  <mjs@apple.com>
29065         Reviewed by Oliver.
29067         - yet still more bindings speedup
29068         
29069         Make AtomicString straight from UString in handcoded bindings
29071         * bindings/js/JSElementCustom.cpp:
29072         (WebCore::JSElement::setAttribute):
29073         (WebCore::JSElement::setAttributeNS):
29074         * dom/Document.cpp:
29075         (WebCore::Document::createElement):
29076         * dom/Document.h:
29077         * html/HTMLDocument.cpp:
29078         (WebCore::HTMLDocument::createElement):
29079         * html/HTMLDocument.h:
29081 2008-03-29  Sam Weinig  <sam@webkit.org>
29083         Reviewed by Darin Adler.
29085         Fix for <rdar://problem/5828873>
29087         Since NSURL is allowing invalid urls to be loaded, we need to
29088         check the URL validity at the ResourceHandle level and fire off
29089         a cannotShowURL error.
29091         * loader/FrameLoader.cpp:
29092         (WebCore::FrameLoader::cannotShowURLError):
29093         * loader/FrameLoader.h:
29094         * loader/ResourceLoader.cpp:
29095         (WebCore::ResourceLoader::cannotShowURLError):
29096         (WebCore::ResourceLoader::wasBlocked):
29097         (WebCore::ResourceLoader::cannotShowURL):
29098         * loader/ResourceLoader.h:
29099         * platform/KURL.h:
29100         (WebCore::KURL::isValid):
29101         * platform/network/ResourceHandle.cpp:
29102         (WebCore::ResourceHandle::create):
29103         (WebCore::ResourceHandle::scheduleFailure):
29104         (WebCore::ResourceHandle::fireFailure):
29105         (WebCore::portAllowed):
29106         * platform/network/ResourceHandle.h:
29107         (WebCore::ResourceHandle::):
29108         * platform/network/ResourceHandleClient.h:
29109         (WebCore::ResourceHandleClient::cannotShowURL):
29110         * platform/network/ResourceHandleInternal.h:
29111         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
29113 2008-03-29  Darin Adler  <darin@apple.com>
29115         Reviewed by Mitz.
29117         - more bindings speedup
29119         When I changed the temporary variables to be UString that means that the
29120         valueToString functions also need to return UString to avoid converting
29121         from UString to String twice.
29123         * bindings/js/kjs_binding.cpp:
29124         (WebCore::valueToStringWithNullCheck): Changed return value to UString.
29125         (WebCore::valueToStringWithUndefinedOrNullCheck): Ditto.
29126         * bindings/js/kjs_binding.h: Ditto.
29128 2008-03-29  Darin Adler  <darin@apple.com>
29130         Reviewed by Sam.
29132         * DerivedSources.make: Removed temporary remove-stray-JSRGBColor build rule.
29134 2008-03-29  Darin Adler  <darin@apple.com>
29136         Reviewed by Sam.
29138         - tweak handling of the class attribute to speed up code that
29139           sets it but never needs to parse it
29141         6% speedup of Acid3 test 26
29143         * css/CSSStyleSelector.cpp:
29144         (WebCore::CSSStyleSelector::matchRules): Change to use non-virtual
29145         classNames function since the hasClass bit can only be set for a
29146         StyledElement.
29147         (WebCore::CSSStyleSelector::checkOneSelector): Ditto. Also
29148         streamlined the code a bit for the tag matching as well.
29150         * dom/ClassNames.cpp:
29151         (WebCore::hasNonASCIIOrUpper): Added. This function does what other
29152         callers seem to want isLower() to do. We should merge this with
29153         isLower() in a subsequent cleanup pass.
29154         (WebCore::ClassNamesData::createVector): Renamed from parseClassAttribute.
29155         Turns the string into a vector.
29156         (WebCore::ClassNamesData::containsAll): Added. Used by getElementsByClassName.
29158         * dom/ClassNames.h: Added a separate ClassNameData class so we could hold
29159         the string and case folding flag as well as the vector. Changed ClassNames
29160         to have a set function rather than a parseClassAttribute function. Removed
29161         the "static" from isClassWhitespace. There's no reason to ask for internal linkage.
29163         * dom/ClassNodeList.cpp:
29164         (WebCore::ClassNodeList::ClassNodeList): Use constructor instead of the
29165         parseClassAttribute function.
29166         (WebCore::ClassNodeList::nodeMatches): Get rid of unnneeded isElementNode
29167         check, since hasClass will only be true for StyledElement nodes. Use the new
29168         containsAll function in ClassNames instead of having a loop here.
29170         * dom/ClassNodeList.h: Removed unneeded forward declaration.
29172         * dom/Document.cpp: Removed unneeded include.
29174         * dom/Element.cpp:
29175         (WebCore::Element::cloneNode): Changed code to copy attributes to use a
29176         function call instead of the assignment operator. This paves the way to
29177         making the function more efficient, using a virtual function.
29178         (WebCore::Element::setAttributeMap): Updated for PassRefPtr and for name change
29179         (element -> m_element).
29180         (WebCore::Element::createAttributeMap): Changed to use create function instead of
29181         calling the constructor directly.
29182         * dom/Element.h: Removed unneeded virtual getClassNames function.
29183         Changed the argument to setAttributeMap to be a PassRefPtr.
29185         * dom/NamedAttrMap.cpp:
29186         (WebCore::NamedAttrMap::NamedAttrMap): Updated for name change (element -> m_element).
29187         (WebCore::NamedAttrMap::getNamedItem): Ditto.
29188         (WebCore::NamedAttrMap::removeNamedItem): Ditto.
29189         (WebCore::NamedAttrMap::setNamedItem): Ditto.
29190         (WebCore::NamedAttrMap::item): Ditto.
29191         (WebCore::NamedAttrMap::detachFromElement): Ditto.
29192         (WebCore::NamedAttrMap::setAttributes): Renamed this from the assignment operator.
29193         (WebCore::NamedAttrMap::addAttribute): Ditto.
29194         (WebCore::NamedAttrMap::removeAttribute): Ditto.
29195         (WebCore::NamedAttrMap::isReadOnlyNode): Ditto.
29196         * dom/NamedAttrMap.h: Removed the copy constructor and assignment operator and added
29197         a new function, setAttributes, possibly to be made virtual in the future. Made
29198         isReadOnlyNode non-virtual. Renamed element -> m_element. Made constructor protected
29199         and added a create function.
29201         * dom/NamedMappedAttrMap.cpp:
29202         (WebCore::NamedMappedAttrMap::NamedMappedAttrMap): Changed constructor parameter to
29203         take a StyledElement.
29204         (WebCore::NamedMappedAttrMap::setClass): Changed to use the new set function.
29206         * dom/NamedMappedAttrMap.h: Made constructor private and added a create function.
29207         Replaced theparseClassAttribute function with clearClass and setClass functions.
29208         Replaced the getClassNames function with a classNames function returning a reference
29209         instead of a pointer.
29211         * dom/NamedNodeMap.h: Changed to start refcount at 1 instead of 0. Removed unneeded
29212         virtual function isReadOnlyNode.
29214         * dom/StyledElement.cpp:
29215         (WebCore::StyledElement::parseMappedAttribute): Rewrote class attribute handling to
29216         use new function names and took out uneeded special case for null attribute.
29217         (WebCore::StyledElement::createAttributeMap): Changed to use create function instead
29218         of a direct call to new.
29220         * dom/StyledElement.h: Replaced the virtual getClassNames function with a non-virtual
29221         inline classNames function.
29223         * html/HTMLElement.cpp:
29224         (WebCore::HTMLElement::cloneNode): Changed code to copy attributes to use a
29225         function call instead of the assignment operator.
29227         * html/HTMLTokenizer.cpp:
29228         (WebCore::Token::addAttribute): Use create function instead of a a direct call
29229         to new.
29231         * html/HTMLViewSourceDocument.cpp:
29232         (WebCore::HTMLViewSourceDocument::createContainingTable): Use RefPtr and the new
29233         create function.
29234         (WebCore::HTMLViewSourceDocument::addViewSourceToken): Ditto.
29235         (WebCore::HTMLViewSourceDocument::addSpanWithClassName): Ditto.
29236         (WebCore::HTMLViewSourceDocument::addLine): Ditto.
29237         (WebCore::HTMLViewSourceDocument::addText): Ditto.
29238         (WebCore::HTMLViewSourceDocument::addLink): Ditto.
29239         * html/HTMLViewSourceDocument.h: Ditto.
29241         * svg/SVGUseElement.cpp:
29242         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree): Changed code to copy
29243         attributes to use a function call instead of the assignment operator.
29244         (WebCore::SVGUseElement::transferUseAttributesToReplacedElement): Ditto.
29246 2008-03-29  Sam Weinig  <sam@webkit.org>
29248         Reviewed by Brady Eidson.
29250         Fix crash when canceling a resource load while port blocked failure
29251         timer is going.
29253         Test: fast/loader/cancel-load-during-port-block-timer.html
29255         * platform/network/ResourceHandle.cpp:
29256         (WebCore::ResourceHandle::scheduleBlockedFailure):
29257         (WebCore::ResourceHandle::fireBlockedFailure):
29258         * platform/network/ResourceHandleInternal.h:
29259         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
29260         Make the Timer a member variable of ResourceHandleInternal so
29261         that it can be canceled if the ResourceHandle is destroyed.
29263 2008-03-28  Stephanie  <slewis@apple.com>
29265         Fix 64bit build
29267         * WebCore.LP64.exp:
29268         * loader/archive/cf/LegacyWebArchiveMac.mm:
29269         (WebCore::createResourceResponseFromMacArchivedData):
29271 2008-03-28  Steve Falkenburg  <sfalken@apple.com>
29273         Enabled LTCG on files within "page".
29275         Rubber stamped by Oliver.
29277         * WebCore.vcproj/WebCore.vcproj:
29279 2008-03-28  Dan Bernstein  <mitz@apple.com>
29281         Reviewed by Dave Hyatt.
29283         - fix a percentage background position regression from r31389
29285         Test: fast/backgrounds/background-position-1.html
29287         * rendering/Length.h:
29288         (WebCore::Length::calcValue): Divide by 100.
29289         (WebCore::Length::calcMinValue): Ditto.
29291 2008-03-28  David Hyatt  <hyatt@apple.com>
29293         Back out the Ahem font antialiasing hack, since it is now no longer required for LCD antialiased text
29294         to match the reference rendering on Acid 3.
29296         * platform/graphics/SimpleFontData.h:
29297         * platform/graphics/mac/FontMac.mm:
29298         (WebCore::Font::drawGlyphs):
29299         * platform/graphics/mac/SimpleFontDataMac.mm:
29300         (WebCore::SimpleFontData::platformInit):
29301         * platform/graphics/win/FontCGWin.cpp:
29302         (WebCore::Font::drawGlyphs):
29303         * platform/graphics/win/SimpleFontDataCGWin.cpp:
29304         (WebCore::SimpleFontData::platformInit):
29305         * rendering/RenderBlock.cpp:
29306         (WebCore::RenderBlock::positionNewFloats):
29308 2008-03-28  Brady Eidson  <beidson@apple.com>
29310         Reviewed by Darin Adler
29312         More Kit->Core WebArchive changes.
29314         Create an archive from the current selection in a frame
29316         * WebCore.base.exp:
29318         * loader/archive/cf/LegacyWebArchive.cpp:
29319         (WebCore::LegacyWebArchive::createFromSelection):
29320         * loader/archive/cf/LegacyWebArchive.h:
29322 2008-03-28  Kevin McCullough  <kmccullough@apple.com>
29324         - Somehow managed to duplicate code :(
29326         * xml/XMLHttpRequest.cpp:
29327         (WebCore::XMLHttpRequest::didFinishLoading):
29329 2008-03-28  Kevin McCullough  <kmccullough@apple.com>
29331         - Missed some changes in previous checkin.
29333         * xml/XMLHttpRequest.cpp:
29334         (WebCore::XMLHttpRequest::send): Get identifier from synchronous loader.
29335         (WebCore::XMLHttpRequest::didFinishLoading):
29337 2008-03-28  Kevin McCullough  <kmccullough@apple.com>
29339         Reviewed by Adam.
29341         -<rdar://problem/5712804> XMLHttpRequests do not show response contents, preview images (14313)
29342         -<rdar://problem/5712931> XMLHttpRequests should be shown separately and grouped (14315)
29343         -<rdar://problem/5732836> XMLHttpRequest: Inspector should show network activity/XHR in Console (17233)
29344         - Send the XMLHttpRequest data to the Inspector Controller.
29346         * loader/FrameLoader.cpp: Return the identifier for this resource since we need it in the XHR case.
29347         (WebCore::FrameLoader::loadResourceSynchronously):
29348         * loader/FrameLoader.h: Ditto.
29349         * page/InspectorController.cpp:
29350         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource): We only need the data since the type will
29351         be XHR and the encoding is not used (we decoded earlier).
29352         (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource): Locking is necessary when setting and clearing
29353         the KJS::UString::Rep.
29354         (WebCore::InspectorResource::setXMLHttpRequestProperties):
29355         (WebCore::InspectorResource::sourceString): Return the decoded source.
29356         (WebCore::addSourceToFrame): No longer do the decoding here, it has been encapsulated in the InspectorResource.
29357         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
29358         * page/InspectorController.h: Pass a UString instead of copying to a WebCore::String.  In case we
29359         never ask for the string's contents this will save us an extra copy.
29360         * xml/XMLHttpRequest.cpp:
29361         (WebCore::XMLHttpRequest::send): In the synchronous load case we normally do not keep the identifier
29362         but we need it to find the InspectorResource in order to tell it that it was loaded via XHR.
29363         (WebCore::XMLHttpRequest::didFinishLoading): Tell the InspectorController that its resource was loaded
29364         via XHR.
29365         * xml/XMLHttpRequest.h: Ditto.
29367 2008-03-28  Brady Eidson  <beidson@apple.com>
29369         Reviewed by Sam Weinig
29371         WebArchive saga continues - Can now make archives from ranges in WebCore
29373         Again, previous layout test coverage exercised this code
29375         * WebCore.base.exp:
29377         * editing/markup.cpp:
29378         (WebCore::createFullMarkup): Added a "markup from range" variant that copies the previous WebKit implementation
29379         * editing/markup.h:
29381         * loader/archive/cf/LegacyWebArchive.cpp:
29382         (WebCore::LegacyWebArchive::create):
29383         * loader/archive/cf/LegacyWebArchive.h:
29385 2008-03-28  Stephanie Lewis  <slewis@apple.com>
29387         windows build fix.
29389         * platform/win/MainThreadWin.cpp:
29390         (WebCore::initializeThreadingAndMainThread):
29392 2008-03-28  Brady Eidson  <beidson@apple.com>
29394         Reviewed by Sam Weinig
29396         More Kit->Core webarchive code movement
29398         * WebCore.base.exp:
29399         * editing/markup.cpp:
29400         (WebCore::createFullMarkup): Replacement for [DOMNode markupString], creating full markup at this node including 
29401           the document type string, which the WebKit implementation did indirectly
29402         * editing/markup.h:
29404 2008-03-28  Darin Adler  <darin@apple.com>
29406         Reviewed by Maciej.
29408         - cut down on copying and refcount churn a little by using references a bit more for
29409           KURL and String
29411         * bindings/js/JSXMLHttpRequest.cpp:
29412         (WebCore::jsXMLHttpRequestPrototypeFunctionOpen): Use const KURL& instead of KURL.
29413         * css/StyleSheet.h:
29414         (WebCore::StyleSheet::href): Return const String& instead of String.
29415         (WebCore::StyleSheet::title): Ditto.
29416         * dom/Document.cpp:
29417         (WebCore::Document::completeURL): Use const KURL* for a local variable instead of
29418         KURL to avoid copying the KURL.
29419         * dom/Element.cpp:
29420         (WebCore::Element::baseURI): Use const KURL& instead of KURL.
29421         * html/HTMLAnchorElement.cpp:
29422         (WebCore::HTMLAnchorElement::hostname): Ditto.
29423         * html/HTMLFrameElementBase.cpp:
29424         (WebCore::HTMLFrameElementBase::isURLAllowed): Ditto.
29425         * html/HTMLKeygenElement.cpp: Removed unneeded include of KURL.
29426         * page/ContextMenuController.cpp:
29427         (WebCore::ContextMenuController::contextMenuItemSelected): Get rid of temporary
29428         KURL.
29429         * platform/SecurityOrigin.cpp:
29430         (WebCore::SecurityOrigin::createForFrame): Use const KURL& instead of KURL.
29432 2008-03-28  Alexey Proskuryakov  <ap@webkit.org>
29434         Reviewed by Sam Weinig.
29436         Fix a dtoa thread safety issue.
29438         * ForwardingHeaders/kjs/InitializeThreading.h: Added.
29439         * platform/MainThread.cpp:
29440         * platform/MainThread.h:
29441         (WebCore::initializeThreadingAndMainThread): Call KJS::initializeThreading instead of its
29442         WTF counterpart.
29444 2008-03-28  Brent Fulgham  <bfulgham@gmail.com>
29446         Reviewed by Maciej, landed by Brady
29448         Correct build regression (http://bugs.webkit.org/show_bug.cgi?id=18148)
29450         * platform/graphics/win/GraphicsContextCairoWin.cpp:
29451         (WebCore::GraphicsContext::getWindowsContext):
29452         (WebCore::GraphicsContext::releaseWindowsContext):
29454 2008-03-28  Brady Eidson  <beidson@apple.com>
29456         Reviewed by Darin
29458         "Yet another transitional step" to empty out WebKit-based code for archiving.
29460         With this patch, the key operation of "Creating a WebArchive rooted at a single Node" takes place
29461         entirely within WebCore, and opens the door to saving WebArchives on Windows.
29463         This is another "zero behavior change" patch, and current editing/ and webarchive/ layout tests
29464         covered the relevant code
29466         * WebCore.base.exp:
29467         * loader/archive/cf/LegacyWebArchive.cpp:
29468         (WebCore::LegacyWebArchive::create):
29469         * loader/archive/cf/LegacyWebArchive.h:
29471 2008-03-28  Jasper Bryant-Greene  <jasper@unix.geek.nz>
29473         Reviewed by Alp Toker.
29475         http://bugs.webkit.org/show_bug.cgi?id=18061
29476         PlatformScrollBarGtk attempts to allocate negative width and/or height for widgets
29478         Missing clampNegativeToZero() call meant that we tried to allocate widgets with negative width and/or height.
29480         * platform/gtk/PlatformScrollBarGtk.cpp:
29481         (PlatformScrollbar::geometryChanged):
29483 2008-03-28  Brady Eidson  <beidson@apple.com>
29485         Reviewed by Darin
29487         Using convertUTF16ToUTF8() from WTF, add a helper function that gives you a UTF8 SharedBuffer
29488         created from a String.
29490         * ForwardingHeaders/wtf/unicode/UTF8.h: Added.
29491         * platform/text/PlatformString.h:
29492         * platform/text/String.cpp:
29493         (WebCore::utf8Buffer):
29495 2008-03-28  Darin Adler  <darin@apple.com>
29497         Reviewed by Adam.
29499         - eliminate a tiny bit of unnecessary refcount churn
29501         * bindings/js/JSEventTargetBase.cpp:
29502         (WebCore::eventNameForPropertyToken): Return const AtomicString&.
29503         * bindings/js/JSEventTargetBase.h:
29504         (WebCore::JSEventTargetBase::getValueProperty): Update for above change.
29505         (WebCore::JSEventTargetBase::putValueProperty): Ditto.
29507 2008-03-28  Simon Hausmann  <hausmann@webkit.org>
29509         Fix the Qt build.
29511         * rendering/Length.h: Include wtf/MathExtras.h for round().
29513 2008-03-28  David Hyatt  <hyatt@apple.com>
29515         Fix a bug where background-position truncates instead of rounding when it evaluates to fractional
29516         pixel values.  This matches other browsers.
29518         Reviewed by maciej
29520         Added fast/backgrounds/background-position-rounding.html
29522         * rendering/Length.h:
29523         (WebCore::Length::calcValue):
29524         (WebCore::Length::calcMinValue):
29525         * rendering/RenderBox.cpp:
29526         (WebCore::RenderBox::calculateBackgroundImageGeometry):
29528 2008-03-27  Kevin Ollivier  <kevino@theolliviers.com>
29530         wx build fix. Return a default value for operator == 
29531         when !USE(WXGC) (not implemented in that case).
29533         * platform/graphics/wx/AffineTransformWx.cpp:
29534         (WebCore::AffineTransform::operator== ):
29536 2008-03-27  Maciej Stachowiak  <mjs@apple.com>
29538         - fix build
29540         * svg/SVGGlyphMap.h:
29541         (WebCore::GlyphMapNode::create):
29543 2008-03-27  Brady Eidson  <beidson@apple.com>
29545         Forgot a small requested change before committing
29547         * loader/DocumentLoader.cpp:
29548         (WebCore::DocumentLoader::mainResource):
29550 2008-03-27  Brady Eidson  <beidson@apple.com>
29552         Reviewed by Adam Roben
29554         Move [WebDataSource mainResource] and [WebDataSource subresources] down into WebCore
29555         as the push to core-ify WebArchives continues.
29557         This patch also introduces a behavior change.  WebCore allows ArchiveResources with null or empty data.  
29558         WebKit has had the inexplicable distinction of allowing empty Data in a WebResource, but not null.  
29559         Since WebResource is API, I decided to leave it be to avoid a behavior change.  But internally created resources 
29560         (as in "while archiving a page") are accepting of null or empty data.
29562         This actually fixes a bug where not all subframes are archived, and resulted in a layout test change.
29564         * WebCore.base.exp:
29565         * loader/DocumentLoader.cpp:
29566         (WebCore::DocumentLoader::archiveResourceForURL): Make this const
29567         (WebCore::DocumentLoader::mainResource):
29568         (WebCore::DocumentLoader::subresource): Make this const and relocate
29569         (WebCore::DocumentLoader::getSubresources):
29570         * loader/DocumentLoader.h:
29572 2008-03-27  Maciej Stachowiak  <mjs@apple.com>
29574         Reviewed by Darin.
29576         - fixed many buildbot leaks in glyph map code
29578         * svg/SVGGlyphMap.h:
29579         (WebCore::GlyphMapNode::create): Use explicit create pattern, to avoid overreffing and therefore leaking
29580         these objects.
29581         (WebCore::SVGGlyphMap::add): Call create instead of using new.
29583 2008-03-27  Maciej Stachowiak  <mjs@apple.com>
29585         Rubber stamped by Oliver.
29587         - re-fix Acid3, some code was incorrectly moved when fixing the Qt build
29589         * rendering/SVGRootInlineBox.cpp:
29590         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
29592 2008-03-27  Simon Hausmann  <hausmann@webkit.org>
29594         Fix compilation against Qt 4.4 and one missing SVG_FONTS #ifdef.
29596         * platform/graphics/qt/FontQt.cpp:
29597         (WebCore::Font::floatWidth): Forgot to adjust this signture for Qt 4.4.
29598         * bindings/js/JSSVGElementWrapperFactory.cpp: Added a missing #ifdef
29599         for SVG_FONTS
29601 2008-03-27  Simon Hausmann  <hausmann@webkit.org>
29603         Reviewed by Eric Seidel.
29605         Fix the Qt build and the build without ENABLE(SVG_FONTS)
29607         * WebCore.pro: Removed ElementTimeControl.idl as it's ObjC only and
29608         removed some SVG_FONTS specific idl files from IDL_BINDINGS for now
29609         * bindings/js/JSSVGElementWrapperFactory.cpp: altGlyph is
29610         ENABLE(SVG_FONTS) only
29611         * platform/graphics/qt/FontQt.cpp:
29612         (WebCore::Font::floatWidth): Adjust the function signature to Font.h
29613         * rendering/SVGRootInlineBox.cpp:
29614         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Fix
29615         compilation without SVG_FONTS
29616         * svg/SVGAltGlyphElement.cpp: Compile only if ENABLE(SVG_FONTS)
29617         * svg/SVGAltGlyphElement.h: Ditto
29618         * svg/svgtags.in: hkern and altGlyph are SVG_FONTS only.
29619         * svg/SVGTSpanElement.cpp:
29620         (WebCore::SVGTSpanElement::childShouldCreateRenderer): Compile without
29621         SVG_FONTS
29622         * svg/SVGTextElement.cpp:
29623         (WebCore::SVGTextElement::childShouldCreateRenderer): Ditto
29624         * svg/SVGTextPathElement.cpp:
29625         (WebCore::SVGTextPathElement::childShouldCreateRenderer):
29627 2008-03-26  Timothy Hatcher  <timothy@apple.com>
29629         Rename some Inspector files to facilitate the up-coming UI refresh changes.
29631         http://bugs.webkit.org/show_bug.cgi?id=17773
29633         Rubber-stamped by Adam Roben.
29635         * WebCore.vcproj/WebCore.vcproj:
29636         * page/inspector/Console.js: Copied from page/inspector/ConsolePanel.js.
29637         * page/inspector/ConsolePanel.js: Removed.
29638         * page/inspector/DocumentPanel.js: Removed.
29639         * page/inspector/ElementsPanel.js: Copied from page/inspector/DocumentPanel.js.
29640         * page/inspector/FontPanel.js: Removed.
29641         * page/inspector/FontView.js: Copied from page/inspector/FontPanel.js.
29642         * page/inspector/ImagePanel.js: Removed.
29643         * page/inspector/ImageView.js: Copied from page/inspector/ImagePanel.js.
29644         * page/inspector/NetworkPanel.js: Removed.
29645         * page/inspector/ResourcePanel.js: Removed.
29646         * page/inspector/ResourceView.js: Copied from page/inspector/ResourcePanel.js.
29647         * page/inspector/ResourcesPanel.js: Copied from page/inspector/NetworkPanel.js.
29648         * page/inspector/SourcePanel.js: Removed.
29649         * page/inspector/SourceView.js: Copied from page/inspector/SourcePanel.js.
29650         * page/inspector/WebKit.qrc:
29651         * page/inspector/inspector.html:
29653 2008-03-26  Steve Falkenburg  <sfalken@apple.com>
29655         Enable LTCG on css, dom files in WebCore
29657         Reviewed by Stephanie.
29659         * WebCore.vcproj/WebCore.vcproj:
29661 2008-03-26  Stephanie Lewis  <slewis@apple.com>
29663         Fix Windows Build
29665         * WebCore.vcproj/WebCore.vcproj:
29667 2008-03-26  Mark Rowe  <mrowe@apple.com>
29669         Speculative GTK build fix.
29671         * GNUmakefile.am:
29673 2008-03-26  Mark Rowe  <mrowe@apple.com>
29675         Mac build fix.
29677         * WebCore.base.exp:  Remove nonexistent symbol from the export file.
29679 2008-03-26  Sam Weinig  <sam@webkit.org>
29681         Try and fix Gtk+ again.
29683         * GNUmakefile.am:
29685 2008-03-26  Dan Bernstein  <mitz@apple.com>
29687         Reviewed by Dave Hyatt.
29689         - fix <rdar://problem/5816522> REGRESSION (r30111-30112): Tahoe web cam website has some text in Chinese or japanese
29691         * html/HTMLParser.cpp:
29692         (WebCore::HTMLParser::insertNode): Added call to beginParsingChildren()
29693         on the new node.
29694         (WebCore::HTMLParser::handleError): Ditto.
29695         (WebCore::HTMLParser::reopenResidualStyleTags): Ditto.
29696         (WebCore::HTMLParser::pushBlock): Removed incorrect call to
29697         beginParsingChildren() on the current node.
29698         * manual-tests/applet-finish-parsing-children.html: Added.
29699         * manual-tests/resources/DrawMessage.class: Added.
29701 2008-03-26  Brady Eidson  <beidson@apple.com>
29703         Reviewed by Darin
29705         When we create a WebArchive, we walk every node from some starting point, asking each node
29706         along the way "What are your subresource URLs?"
29708         That logic is currently in DOMNode in WebKitMac - this patch moves that ability down into
29709         WebCore::Node
29711         * WebCore.base.exp:
29712         
29713         * dom/Node.cpp:
29714         (WebCore::Node::getSubresourceURLs):
29715         (WebCore::Node::getSubresourceAttributeStrings):  Virtual and empty.  Subclasses of Node that have 
29716           subresources will override it.
29718         * dom/ProcessingInstruction.cpp:
29719         (WebCore::ProcessingInstruction::getSubresourceAttributeStrings):
29720         * dom/ProcessingInstruction.h:
29721         * html/HTMLBodyElement.cpp:
29722         (WebCore::HTMLBodyElement::getSubresourceAttributeStrings):
29723         * html/HTMLBodyElement.h:
29724         * html/HTMLEmbedElement.cpp:
29725         (WebCore::HTMLEmbedElement::getSubresourceAttributeStrings):
29726         * html/HTMLEmbedElement.h:
29727         * html/HTMLImageElement.cpp:
29728         (WebCore::HTMLImageElement::getSubresourceAttributeStrings):
29729         * html/HTMLImageElement.h:
29730         * html/HTMLInputElement.cpp:
29731         (WebCore::HTMLInputElement::getSubresourceAttributeStrings):
29732         * html/HTMLInputElement.h:
29733         * html/HTMLLinkElement.cpp:
29734         (WebCore::HTMLLinkElement::getSubresourceAttributeStrings):
29735         * html/HTMLLinkElement.h:
29736         * html/HTMLObjectElement.cpp:
29737         (WebCore::HTMLObjectElement::getSubresourceAttributeStrings):
29738         * html/HTMLObjectElement.h:
29739         * html/HTMLParamElement.cpp:
29740         (WebCore::HTMLParamElement::getSubresourceAttributeStrings):
29741         * html/HTMLParamElement.h:
29742         * html/HTMLScriptElement.cpp:
29743         (WebCore::HTMLScriptElement::getSubresourceAttributeStrings):
29744         * html/HTMLScriptElement.h:
29745         * html/HTMLTableCellElement.cpp:
29746         (WebCore::HTMLTableCellElement::getSubresourceAttributeStrings):
29747         * html/HTMLTableCellElement.h:
29748         * html/HTMLTableElement.cpp:
29749         (WebCore::HTMLTableElement::getSubresourceAttributeStrings):
29750         * html/HTMLTableElement.h:
29751         * svg/SVGCursorElement.cpp:
29752         (WebCore::SVGCursorElement::getSubresourceAttributeStrings):
29753         * svg/SVGCursorElement.h:
29754         * svg/SVGFEImageElement.cpp:
29755         (WebCore::SVGFEImageElement::getSubresourceAttributeStrings):
29756         * svg/SVGFEImageElement.h:
29757         * svg/SVGImageElement.cpp:
29758         (WebCore::SVGImageElement::getSubresourceAttributeStrings):
29759         * svg/SVGImageElement.h:
29760         * svg/SVGScriptElement.cpp:
29761         (WebCore::SVGScriptElement::getSubresourceAttributeStrings):
29762         * svg/SVGScriptElement.h:
29764 2008-03-26  Dan Bernstein  <mitz@apple.com>
29766         Reviewed by Dave Hyatt.
29768         - maintain subpixel-antialiasing when drawing text with a simple shadow
29770         * platform/graphics/mac/FontMac.mm:
29771         (WebCore::Font::drawComplexText): If the shadow has a zero blur radius,
29772         draw the shadow by drawing the text at an offset instead of relying on
29773         Core Graphics shadows.
29774         (WebCore::Font::drawGlyphs): Ditto.
29775         * platform/graphics/win/FontCGWin.cpp:
29776         (WebCore::Font::drawGlyphs): Ditto.
29778 2008-03-26  Brady Eidson  <beidson@apple.com>
29780         Reviewed by Mark Rowe
29782         Part of the continued push to move WebArchive-related code down to WebCore, this
29783         moves [WebDataSource subresourceForURL:] down to DocumentLoader->subresource()
29785         * WebCore.base.exp:
29786         * loader/DocumentLoader.cpp:
29787         (WebCore::DocumentLoader::subresource): Create an ArchiveResource from a CachedResource if it exists
29788           Otherwise, fallback to an ArchiveResource from the current Archive if any.  Otherwise, return null
29789         * loader/DocumentLoader.h:
29791         * loader/archive/ArchiveResource.cpp:
29792         (WebCore::ArchiveResource::create):
29793         (WebCore::ArchiveResource::ArchiveResource):
29794         * loader/archive/ArchiveResource.h:
29796 2008-03-26  Sam Weinig  <sam@webkit.org>
29798         Fix Gtk+ build.
29800         * GNUmakefile.am:
29802 2008-03-26  Mark Rowe  <mrowe@apple.com>
29804         Rubber-stamped by Brady Eidson.
29806         Update FEATURE_DEFINES to be consistent with the other locations in which it is defined.
29808         * Configurations/WebCore.xcconfig:
29810 2008-03-26  Brent Fulgham  <bfulgham@gmail.com>
29812         Reviewed by Adam Roben.
29814         Add necessary files and build commands to vcproj files to
29815         build a Curl-based Windows WebKit.  For details, see
29816         http://bugs.webkit.org/show_bug.cgi?id=17985
29818         * WebCore.vcproj/WebCore.vcproj:
29820 2008-03-26  Adam Roben  <aroben@apple.com>
29822         Record JS exceptions triggered by the Inspector's use of JSC
29824         We now dump all exceptions returned from JavaScriptCore into the
29825         Inspector's console.
29827         The HANDLE_EXCEPTION macro records the line on which the exception was
29828         returned. It calls a new private handleException method on
29829         InspectorController.
29831         Reviewed by Kevin McCullough.
29833         * page/InspectorController.cpp:
29834         (WebCore::InspectorController::callSimpleFunction): Made this be a
29835         member of InspectorController so that it can call handleException.
29836         (WebCore::addSourceToFrame): Pass the exception pointer on to inner
29837         JSC calls, and check it after those calls return.
29838         (WebCore::getResourceDocumentNode): Ditto.
29839         (WebCore::search): Ditto. Also changed the name/type of an existing
29840         exception variable to ExceptionCode ec.
29841         (WebCore::databaseTableNames): Ditto.
29842         (WebCore::moveByUnrestricted): Ditto.
29843         (WebCore::InspectorController::~InspectorController): Check for and
29844         record exceptions as we call JSC.
29845         (WebCore::InspectorController::focusNode): Ditto.
29846         (WebCore::InspectorController::scriptObjectReady): Ditto.
29847         (WebCore::addHeaders): Added an exception parameter.
29848         (WebCore::scriptObjectForRequest): Ditto.
29849         (WebCore::scriptObjectForResponse): Ditto.
29850         (WebCore::InspectorController::addScriptResource): Check for and
29851         record exceptions as we call JSC.
29852         (WebCore::InspectorController::addAndUpdateScriptResource): Ditto.
29853         (WebCore::InspectorController::removeScriptResource): Ditto. Also
29854         moved the call to setScriptObject to before the JSC calls so that it
29855         will always be called even if we return early if JSC throws an
29856         exception.
29857         (WebCore::InspectorController::updateScriptResourceRequest): Check for
29858         and record exceptions as we call JSC.
29859         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
29860         (WebCore::InspectorController::updateScriptResource): Ditto.
29861         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
29862         (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
29863         Also moved the call to setScriptObject to before the JSC calls so that
29864         it will always be called even if we return early if JSC throws an
29865         exception.
29866         (WebCore::InspectorController::addScriptConsoleMessage): Check for and
29867         record exceptions as we call JSC.
29868         (WebCore::InspectorController::handleException): Added.
29869         * page/InspectorController.h:
29871 2008-03-26  Darin Adler  <darin@apple.com>
29873         Rubber stamped by Maciej.
29875         - removed a couple log messages in error cases that are handled internally
29877         * platform/text/TextCodecICU.cpp:
29878         (WebCore::TextCodecICU::decode): Removed the LOG_ERROR.
29879         * platform/text/mac/TextCodecMac.cpp:
29880         (WebCore::TextCodecMac::decode): Ditto.
29882 2008-03-26  Sam Weinig  <sam@webkit.org>
29884         Reviewed by Adam Roben.
29886         * page/Location.idl: Don't enumerate toString.
29888 2008-03-26  Mark Rowe  <mrowe@apple.com>
29890         Release build fix.
29892         * rendering/SVGRootInlineBox.cpp:
29893         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Initialize svgFont to zero.
29895 2008-03-26  Maciej Stachowiak  <mjs@apple.com>
29897         Reviewed by Hyatt and Adam.
29899         Coded by me and Darin.
29900         
29901         - SVG kerning support (horizontal kerning only for now since we don't do vertical text layout right yet) 
29902         
29903         Acid3 100/100
29905         * DerivedSources.make:
29906         * WebCore.vcproj/WebCore.vcproj:
29907         * WebCore.xcodeproj/project.pbxproj:
29908         * platform/graphics/Font.cpp:
29909         (WebCore::Font::floatWidth):
29910         (WebCore::Font::isSVGFont):
29911         * platform/graphics/Font.h:
29912         * rendering/SVGInlineTextBox.cpp:
29913         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
29914         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
29915         * rendering/SVGInlineTextBox.h:
29916         * rendering/SVGRootInlineBox.cpp:
29917         (WebCore::cummulatedWidthOrHeightOfTextChunk):
29918         (WebCore::SVGRootInlineBox::buildLayoutInformation):
29919         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
29920         * rendering/SVGRootInlineBox.h:
29921         (WebCore::LastGlyphInfo::LastGlyphInfo):
29922         * svg/SVGFont.cpp:
29923         (WebCore::SVGTextRunWalker::walk):
29924         (WebCore::Font::svgFont):
29925         (WebCore::floatWidthOfSubStringUsingSVGFont):
29926         (WebCore::Font::floatWidthUsingSVGFont):
29927         (WebCore::Font::drawTextUsingSVGFont):
29928         (WebCore::Font::selectionRectForTextUsingSVGFont):
29929         * svg/SVGFontElement.cpp:
29930         (WebCore::SVGFontElement::invalidateGlyphCache):
29931         (WebCore::SVGFontElement::ensureGlyphCache):
29932         (WebCore::parseUnicodeRange):
29933         (WebCore::parseUnicodeRangeList):
29934         (WebCore::stringMatchesUnicodeRange):
29935         (WebCore::matches):
29936         (WebCore::SVGFontElement::getHorizontalKerningPairForStringsAndGlyphs):
29937         * svg/SVGFontElement.h:
29938         * svg/SVGGlyphElement.cpp:
29939         (WebCore::SVGGlyphElement::insertedIntoDocument):
29940         (WebCore::SVGGlyphElement::removedFromDocument):
29941         * svg/SVGHKernElement.cpp: Added.
29942         (WebCore::SVGHKernElement::SVGHKernElement):
29943         (WebCore::SVGHKernElement::~SVGHKernElement):
29944         (WebCore::SVGHKernElement::insertedIntoDocument):
29945         (WebCore::SVGHKernElement::removedFromDocument):
29946         (WebCore::SVGHKernElement::buildHorizontalKerningPair):
29947         * svg/SVGHKernElement.h: Added.
29948         (WebCore::SVGHorizontalKerningPair::SVGHorizontalKerningPair):
29949         (WebCore::SVGHKernElement::rendererIsNeeded):
29950         * svg/SVGHKernElement.idl: Added.
29951         * svg/SVGTextContentElement.cpp:
29952         (WebCore::cummulatedCharacterRangeLength):
29953         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
29954         * svg/svgtags.in:
29956 2008-03-26  Sam Weinig  <sam@webkit.org>
29958         Reviewed by Adam Roben.
29960         Autogenerate JSLocation.
29962         * GNUmakefile.am:
29963         * WebCore.pro:
29964         * WebCore.vcproj/WebCore.vcproj:
29965         * WebCore.xcodeproj/project.pbxproj:
29966         * WebCoreSources.bkl:
29967         Add files.
29969         * DerivedSources.make: Add Location, remove JSLocation.lut.h
29970         * bindings/js/JSDOMWindowBase.cpp:
29971         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
29972         (WebCore::JSDOMWindowBase::getValueProperty):
29973         (WebCore::JSDOMWindowBase::put):
29974         (WebCore::JSDOMWindowBase::clearHelperObjectProperties):
29975         (WebCore::JSDOMWindowBase::disconnectFrame):
29976         * bindings/js/JSDOMWindowBase.h:
29977         Remove manuel management of the Location object.
29979         * bindings/js/JSDOMWindowCustom.cpp:
29980         (WebCore::JSDOMWindow::mark): Add marking of JSLocation.
29981         (WebCore::JSDOMWindow::setLocation): Add custom setLocation as we only want to do this when
29982         safe and we need to keep Dashboard quirks.
29984         * bindings/js/JSDocumentCustom.cpp:
29985         (WebCore::JSDocument::location):
29986         Fetch the location object using the normal toJS route.
29988         * bindings/js/JSLocation.cpp: Removed.
29989         * bindings/js/JSLocation.h: Removed.
29990         * bindings/js/JSLocationCustom.cpp: Added.
29991         (WebCore::JSLocation::customGetOwnPropertySlot):
29992         (WebCore::JSLocation::customPut):
29993         (WebCore::JSLocation::deleteProperty):
29994         (WebCore::JSLocation::customGetPropertyNames):
29995         (WebCore::navigateIfAllowed):
29996         (WebCore::JSLocation::setHref):
29997         (WebCore::JSLocation::setProtocol):
29998         (WebCore::JSLocation::setHost):
29999         (WebCore::JSLocation::setHostname):
30000         (WebCore::JSLocation::setPort):
30001         (WebCore::JSLocation::setPathname):
30002         (WebCore::JSLocation::setSearch):
30003         (WebCore::JSLocation::setHash):
30004         (WebCore::JSLocation::replace):
30005         (WebCore::JSLocation::reload):
30006         (WebCore::JSLocation::assign):
30007         (WebCore::JSLocation::toString):
30008         Setter and Functions need custom implementations as they rely on the dynamic
30009         global object for determining the behavior of the navigation.
30011         * history/CachedPage.cpp:
30012         (WebCore::CachedPage::CachedPage):
30013         (WebCore::CachedPage::restore):
30014         (WebCore::CachedPage::clear):
30015         * history/CachedPage.h:
30016         Removed all the special casing for location as it should be treated like all
30017         the other objects hanging off the window.
30019         * page/DOMWindow.cpp:
30020         (WebCore::DOMWindow::clear):
30021         (WebCore::DOMWindow::location):
30022         * page/DOMWindow.h:
30023         (WebCore::DOMWindow::optionalLocation):
30024         * page/DOMWindow.idl:
30025         Add Location accessor and pointer getter for marking.
30027         * page/Location.cpp: Added.
30028         (WebCore::Location::Location):
30029         (WebCore::Location::disconnectFrame):
30030         (WebCore::Location::url):
30031         (WebCore::Location::href):
30032         (WebCore::Location::protocol):
30033         (WebCore::Location::host):
30034         (WebCore::Location::hostname):
30035         (WebCore::Location::port):
30036         (WebCore::Location::pathname):
30037         (WebCore::Location::search):
30038         (WebCore::Location::hash):
30039         (WebCore::Location::toString):
30040         * page/Location.h: Added.
30041         (WebCore::Location::create):
30042         (WebCore::Location::frame):
30043         * page/Location.idl: Added.
30045 2008-03-26  David Hyatt  <hyatt@apple.com>
30047         Add support for the rendering and measurement of the <altGlyph> element in SVG.  This patch brings
30048         is half of what's needed to reach 100/100 on Acid3 and pass the test.  Maciej has coded up the other half. :)
30050         Reviewed by mjs
30052         Added svg/custom/altGlyph.svg
30054         * svg/SVGAltGlyphElement.cpp:
30055         (WebCore::SVGAltGlyphElement::childShouldCreateRenderer):
30056         (WebCore::SVGAltGlyphElement::glyphElement):
30057         * svg/SVGAltGlyphElement.h:
30058         * svg/SVGFont.cpp:
30059         (WebCore::SVGTextRunWalker::walk):
30060         * svg/SVGFontFaceElement.cpp:
30061         (WebCore::SVGFontFaceElement::insertedIntoDocument):
30062         * svg/SVGGlyphElement.cpp:
30063         (WebCore::SVGGlyphElement::insertedIntoDocument):
30064         (WebCore::SVGGlyphElement::removedFromDocument):
30066 2008-03-26  Adam Roben  <aroben@apple.com>
30068         Turn on SVG animation on Windows
30070         Also touched some files to force things to rebuild/regenerate.
30072         * WebCore.vcproj/WebCore.vcproj: Added ENABLE_SVG_ANIMATION.
30073         * WebCore.vcproj/build-generated-files.sh: Ditto.
30074         * bindings/scripts/CodeGenerator.pm: Touched.
30075         * config.h: Touched.
30076         * svg/svgtags.in: Touched.
30078 2008-03-26  Justin Garcia  <justin.garcia@apple.com>
30080         Reviewed by Harrison.
30082         <rdar://problem/5820749> REGRESSION (Safari 3.1): Mail's plain text reply omits blank line following the attribution
30084         * editing/markup.cpp:
30085         (WebCore::createFragmentFromText): When asked to create a fragment from "Attribution:\n"
30086         with a context from [html, 0] to [html, 0], we'd return "<html>Attribution</html><br>".
30087         Don't enclose paragraphs in clones of the context's enclosing block if that block is the
30088         html or body element.  Currently no way to test [DOMHTMLElement createFragmentFromText:].
30090 2008-03-26  Antti Koivisto  <antti@apple.com>
30092         Reviewed by Anders.
30094         http://bugs.webkit.org/show_bug.cgi?id=17077
30095         Bug 17077: SVG SMIL animation is currently broken (and turned off) (affects Acid3 tests 75 and 76)
30097         - enable SVG animation support.
30098         - basic implementation of beginElement()/endElement().
30099         
30100         Animation definitely will need more work than this, but it is a start!
30102         * Configurations/WebCore.xcconfig:
30103         * svg/SVGAnimationElement.cpp:
30104         (WebCore::SVGAnimationElement::SVGAnimationElement):
30105         (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
30106         (WebCore::SVGAnimationElement::beginElement):
30107         (WebCore::SVGAnimationElement::beginElementAt):
30108         (WebCore::SVGAnimationElement::endElement):
30109         (WebCore::SVGAnimationElement::endElementAt):
30110         * svg/SVGAnimationElement.h:
30112 2008-03-26  Mark Rowe  <mrowe@apple.com>
30114         Reviewed by David Hyatt.
30116         Make the Ahem font antialias correctly on Acid3 on Tiger.
30118         * WebCore.Tiger.exp:
30119         * platform/graphics/mac/SimpleFontDataMac.mm:
30120         (WebCore::SimpleFontData::platformInit):
30121         * platform/mac/WebCoreSystemInterface.h:
30122         * platform/mac/WebCoreSystemInterface.mm:
30124 2008-03-26  Simon Hausmann  <hausmann@webkit.org>
30126         Attempt to fix the Qt build.
30128         * platform/text/qt/TextCodecQt.cpp: Adjust function signature.
30129         (WebCore::TextCodecQt::decode):
30130         * platform/text/qt/TextCodecQt.h: Ditto.
30132 2008-03-26  Dan Bernstein  <mitz@apple.com>
30134         Reviewed by Anders Carlsson.
30136         - fix http://bugs.webkit.org/show_bug.cgi?id=18104
30137           REGRESSION: LEAK: 2 InlineBox in editing/inserting/12882.html
30139         * rendering/bidi.cpp:
30140         (WebCore::RenderBlock::layoutInlineChildren): When deciding to ditch
30141         old clean lines (due to changed or newly-added floats), keep the
30142         reference to those lines so they can be properly deleted in the end,
30143         and use a separate flag to signal that no matching should be attempted.
30145 2008-03-26  Mark Rowe  <mrowe@apple.com>
30147         Speculative Windows build fix.
30149         * platform/graphics/win/SimpleFontDataCGWin.cpp:
30151 2008-03-25  Steve Falkenburg  <sfalken@apple.com>
30153         Turn on link-time-codegen in html and rendering related files.
30155         Reviewed by Oliver.
30157         * WebCore.vcproj/WebCore.vcproj:
30159 2008-03-26  Maciej Stachowiak  <mjs@apple.com>
30161         Reviewed by Darin.
30163         - fixed "SVG multichar glyph matching matches longest instead of first (affects Acid3 test 79)"
30164         http://bugs.webkit.org/show_bug.cgi?id=18118
30166         * svg/SVGFont.cpp:
30167         (WebCore::SVGTextRunWalker::walk):
30168         * svg/SVGFontElement.cpp:
30169         (WebCore::SVGFontElement::SVGFontElement):
30170         (WebCore::SVGFontElement::addGlyphToCache):
30171         (WebCore::SVGFontElement::removeGlyphFromCache):
30172         (WebCore::SVGFontElement::ensureGlyphCache):
30173         (WebCore::SVGFontElement::getGlyphIdentifiersForString):
30174         * svg/SVGFontElement.h:
30175         * svg/SVGGlyphElement.h:
30176         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
30177         * svg/SVGGlyphMap.h: Added. New radix tree based glyph map.
30178         (WebCore::GlyphMapNode::GlyphMapNode):
30179         (WebCore::SVGGlyphMap::SVGGlyphMap):
30180         (WebCore::SVGGlyphMap::add):
30181         (WebCore::SVGGlyphMap::compareGlyphPriority):
30182         (WebCore::SVGGlyphMap::get):
30183         (WebCore::SVGGlyphMap::clear):
30185 2008-03-26  David Hyatt  <hyatt@apple.com>
30187         Fix build bustage on Tiger.  Tiger will not have the bug fix.
30189         * platform/graphics/mac/SimpleFontDataMac.mm:
30190         (WebCore::SimpleFontData::platformInit):
30191         * platform/graphics/win/SimpleFontDataCGWin.cpp:
30192         (WebCore::SimpleFontData::platformInit):
30194 2008-03-26  David Hyatt  <hyatt@apple.com>
30196         Make the Ahem font antialias correctly on Acid3.
30198         Reviewed by Dan
30200         * platform/graphics/SimpleFontData.h:
30201         * platform/graphics/mac/FontMac.mm:
30202         (WebCore::Font::drawGlyphs):
30203         * platform/graphics/mac/SimpleFontDataMac.mm:
30204         (WebCore::SimpleFontData::platformInit):
30205         * platform/graphics/win/FontCGWin.cpp:
30206         (WebCore::Font::drawGlyphs):
30207         * platform/graphics/win/SimpleFontDataCGWin.cpp:
30208         (WebCore::SimpleFontData::platformInit):
30210 2008-03-26  Mark Rowe  <mrowe@apple.com>
30212         Fix the Mac build.
30214         * WebCore.xcodeproj/project.pbxproj:  Copy the newly generated header into the right place.
30216 2008-03-26  Adam Roben  <aroben@apple.com>
30218         Fix Bug 17768: REGRESSION (r30146): Inspector no longer shows elements
30219         properties
30221         <http://bugs.webkit.org/show_bug.cgi?id=17768>
30223         We were throwing an exception from Object.describe because of some
30224         undefined variables.
30226         Reviewed by Tim Hatcher.
30228         * page/inspector/utilities.js:
30229         (Object.describe): Reinstate the type1 and type2 variables that were
30230         removed in r30146. They're still used when formatting a function.
30232 2008-03-26  Eric Seidel  <eric@webkit.org>
30234         Reviewed by darin.
30236         Forgot to add braces darin asked for during review.
30238         * dom/XMLTokenizer.cpp:
30239         (WebCore::XMLTokenizer::write):
30241 2008-03-26  Eric Seidel  <eric@webkit.org>
30243         Reviewed by darin.
30245         Fix, makes us pass Test 70
30246         XML documents should be strict about encoding checks
30247         http://bugs.webkit.org/show_bug.cgi?id=17079
30249         Test: fast/encoding/invalid-xml.html
30251         * WebCore.base.exp:
30252         * dom/XMLTokenizer.cpp:
30253         (WebCore::XMLTokenizer::write):
30254         * loader/CachedFont.cpp:
30255         (WebCore::CachedFont::ensureSVGFontData):
30256         * loader/TextResourceDecoder.cpp:
30257         (WebCore::TextResourceDecoder::TextResourceDecoder):
30258         (WebCore::TextResourceDecoder::decode):
30259         * loader/TextResourceDecoder.h:
30260         * platform/text/TextCodec.h:
30261         (WebCore::TextCodec::decode):
30262         * platform/text/TextCodecICU.cpp:
30263         (WebCore::TextCodecICU::decodeToBuffer):
30264         (WebCore::ErrorCallbackSetter::ErrorCallbackSetter):
30265         (WebCore::ErrorCallbackSetter::~ErrorCallbackSetter):
30266         (WebCore::TextCodecICU::decode):
30267         * platform/text/TextCodecICU.h:
30268         * platform/text/TextCodecLatin1.cpp:
30269         * platform/text/TextCodecLatin1.h:
30270         * platform/text/TextCodecUTF16.cpp:
30271         * platform/text/TextCodecUTF16.h:
30272         * platform/text/TextCodecUserDefined.cpp:
30273         * platform/text/TextCodecUserDefined.h:
30274         * platform/text/TextDecoder.cpp:
30275         (WebCore::TextDecoder::checkForBOM):
30276         * platform/text/TextDecoder.h:
30277         (WebCore::TextDecoder::decode):
30278         * platform/text/TextEncoding.cpp:
30279         (WebCore::TextEncoding::decode):
30280         * platform/text/TextEncoding.h:
30281         (WebCore::TextEncoding::decode):
30282         * platform/text/mac/TextCodecMac.cpp:
30283         (WebCore::TextCodecMac::decode):
30284         * platform/text/mac/TextCodecMac.h:
30286 2008-03-26  Antti Koivisto  <antti@apple.com>
30288         Reviewed by Adam.
30290         Add ElementTimeControl interface to SVGAnimationElement.
30291         Passes Acid3 test 75.
30293         * DerivedSources.make:
30294         * WebCore.pro:
30295         * WebCore.vcproj/WebCore.vcproj:
30296         * WebCore.xcodeproj/project.pbxproj:
30297         * bindings/scripts/CodeGeneratorObjC.pm:
30298         * svg/ElementTimeControl.h: Added.
30299         (WebCore::ElementTimeControl::~ElementTimeControl):
30300         * svg/ElementTimeControl.idl: Added.
30301         * svg/SVGAnimationElement.cpp:
30302         (WebCore::SVGAnimationElement::beginElement):
30303         (WebCore::SVGAnimationElement::beginElementAt):
30304         (WebCore::SVGAnimationElement::endElement):
30305         (WebCore::SVGAnimationElement::endElementAt):
30306         * svg/SVGAnimationElement.h:
30307         * svg/SVGAnimationElement.idl:
30309 2008-03-26  Kevin McCullough  <kmccullough@apple.com>
30311         - LayoutTest fix.  Null check.
30313         * xml/XMLHttpRequest.cpp:
30314         (WebCore::XMLHttpRequest::send):
30316 2008-03-26  Dan Bernstein  <mitz@apple.com>
30318         Reviewed by Darin Adler.
30320         - fix http://bugs.webkit.org/show_bug.cgi?id=17994
30321           REGRESSION (523-525+) View not updated when changing CSS size via JavaScript
30322         - fix http://bugs.webkit.org/show_bug.cgi?id=18063
30323           REGRESSION (r31250): Small bug that just cropped up in WebKit r31275
30325         Tests: fast/repaint/subtree-root-clip.html
30326                fast/repaint/subtree-root-clip-2.html
30327                fast/repaint/subtree-root-clip-3.html
30329         * rendering/LayoutState.cpp:
30330         (WebCore::LayoutState::LayoutState): Changed to not set an initial clip.
30331         Since the root is clipping, there is no need to set a clip, and setting
30332         the clip based on the container was wrong because often the root was
30333         not included in the container's overflow rect because it had its own
30334         layer.
30335         * rendering/RenderBox.cpp:
30336         (WebCore::RenderBox::absolutePosition): Removed code that added table
30337         cell's extra top offset only in the slow (recursive) code path.
30338         * rendering/RenderTableCell.cpp:
30339         (WebCore::RenderTableCell::absolutePosition): Added code to add the
30340         extra top offset in both code paths.
30342 2008-03-26  Simon Hausmann  <hausmann@webkit.org>
30344         Fix the Qt build.
30346         * platform/graphics/qt/FontQt.cpp:
30347         (WebCore::Font::floatWidth):
30349 2008-03-24  Maciej Stachowiak  <mjs@apple.com>
30351         Reviewed by Eric.
30353         - fixed "SVGTextElement.getStartPositionOfChar does not correctly account for multichar glyphs"
30354         http://bugs.webkit.org/show_bug.cgi?id=18046
30356         * platform/graphics/Font.cpp:
30357         (WebCore::Font::floatWidth): Allow expressing a run that has extra "context" characters beyond the end,
30358         and reporting of how many characters were actually consumed, to support multichar glyphs in SVG fonts.
30359         * platform/graphics/Font.h:
30360         * rendering/SVGInlineTextBox.cpp:
30361         (WebCore::SVGInlineTextBox::calculateGlyphWidth): Pass along extra chars in argument and chars consumed out
30362         argument.
30363         (WebCore::SVGInlineTextBox::calculateGlyphHeight): Pass along extra chars in argument.
30364         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries): Add boilerplate; may not handle multichar glyphs
30365         right but I don't know what effects this would have.
30366         * rendering/SVGInlineTextBox.h:
30367         * rendering/SVGRootInlineBox.cpp:
30368         (WebCore::cummulatedWidthOrHeightOfTextChunk): Add boilerplate; may not handle multichar glyphs right
30369         but again I am not sure what effect this would have.
30370         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Account for multichar glyphs - let glyph
30371         selection consider extra chars, and account for the fact that a glyph may have consumed multiple chars.
30372         * rendering/SVGRootInlineBox.h:
30373         * svg/SVGFont.cpp:
30374         (WebCore::SVGTextRunWalker::walk): This is the place where glyph selection happens, so this is where
30375         we accout for multichar glyphs (both looking at extra chars past the end of the run, and reporting how
30376         many chars were consumed).
30377         (WebCore::floatWidthOfSubStringUsingSVGFont): Pass aforementioned info through the layers.
30378         (WebCore::Font::floatWidthUsingSVGFont): ditto
30379         (WebCore::Font::drawTextUsingSVGFont): ditto
30380         (WebCore::Font::selectionRectForTextUsingSVGFont): ditto
30381         * svg/SVGTextContentElement.cpp:
30382         (WebCore::cummulatedCharacterRangeLength): ditto
30383         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback): ditto
30385 2008-03-25  Beth Dakin  <bdakin@apple.com>
30387         Reviewed by Oliver.
30389         Fix for <rdar://problem/5811826> CSSValueList::item() does not 
30390         range-check index
30392         Check bounds before accessing the item to avoid a crash. 
30393         itemWithoutBoundsCheck() is still inlined and not bounds-checked to 
30394         avoid slowing down our internal callers of item().
30395         * css/CSSValueList.cpp:
30396         (WebCore::CSSValueList::item):
30397         * css/CSSValueList.h:
30398         (WebCore::CSSValueList::itemWithoutBoundsCheck):
30400         Call itemWithoutBoundsCheck() to avoid slowing down these internal 
30401         callers.
30402         * css/CSSFontSelector.cpp:
30403         (WebCore::CSSFontSelector::addFontFaceRule):
30404         * css/CSSMutableStyleDeclaration.cpp:
30405         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue):
30406         * css/CSSStyleSelector.cpp:
30407         (WebCore::applyCounterList):
30408         (WebCore::CSSStyleSelector::applyProperty):
30409         * css/MediaQueryEvaluator.cpp:
30410         (WebCore::parseAspectRatio):
30411         * svg/SVGFontFaceElement.cpp:
30412         (WebCore::SVGFontFaceElement::rebuildFontFace):
30413         * svg/graphics/SVGPaintServer.cpp:
30414         (WebCore::dashArrayFromRenderingStyle):
30416 2008-03-25  Antti Koivisto  <antti@apple.com>
30418         Reviewed by Oliver.
30420         Fix http://bugs.webkit.org/show_bug.cgi?id=18082
30421         REGRESSION (r31287): GMail does not work if user stylesheet is set
30422         
30423         Oops, my cache refactoring patch was missing these rather essential lines for
30424         user stylesheets. They would get reloaded repeatedly.
30426         * loader/Cache.cpp:
30427         (WebCore::Cache::requestUserCSSStyleSheet):
30429 2008-03-25  Matt Lilek  <webkit@mattlilek.com>
30431         Rubber stamped by Adam
30433         Roll out r31300 since it causes assertion failures on page load.
30434         See http://bugs.webkit.org/show_bug.cgi?id=18093
30436         * page/InspectorController.cpp:
30437         (WebCore::InspectorController::didFinishLoading):
30438         (WebCore::InspectorController::didFailLoading):
30440 2008-03-25  Darin Adler  <darin@apple.com>
30442         Reviewed by Anders.
30444         - fix http://bugs.webkit.org/show_bug.cgi?id=17252
30445           Acid3 test removing Nodes during NodeIterator walk fails (affects Acid3 test 2)
30447         Test: traversal/acid3-test-2.html
30449         * bindings/js/JSNodeIteratorCustom.cpp:
30450         (WebCore::JSNodeIterator::nextNode): Update since result is PassRefPtr.
30451         (WebCore::JSNodeIterator::previousNode): Ditto.
30452         * dom/NodeIterator.cpp:
30453         (WebCore::NodeIterator::nextNode): Changed result to PassRefPtr. Added code to
30454         track both the current candidate (which needs to move along to the next node
30455         if current node is deleted) and the current provisional result (passed to acceptNode,
30456         and needs to be returned even if it's deleted).
30457         (WebCore::NodeIterator::previousNode): Ditto.
30458         (WebCore::NodeIterator::nodeWillBeRemoved): Call updateForNodeRemoval for
30459         m_candidateNode as well as m_referenceNode.
30460         * dom/NodeIterator.h: Use PassRefPtr for return values.
30462 2008-03-25  Brady Eidson  <beidson@apple.com>
30464         Reviewed by Anders
30466         Add the ability to transform a CString into a SharedBuffer to avoid copying data
30467         This is valuable to avoid copying a block of data for an upcoming patch
30469         * platform/SharedBuffer.cpp:
30470         (WebCore::SharedBuffer::adoptVector):
30471         * platform/SharedBuffer.h:
30473         * platform/text/CString.cpp:
30474         (WebCore::CString::releaseBuffer):
30475         * platform/text/CString.h:
30476         (WebCore::CStringBuffer::releaseBuffer):
30478 2008-03-25  Brady Eidson  <beidson@apple.com>
30480         Attempt to fix .bkl build systems after recent archive additions
30482         * webcore-base.bkl:
30484 2008-03-25  Kevin McCullough  <kmccullough@apple.com>
30486         Reviewed by Adam.
30488         - Cleaned up the needless use of RefPtrs, which we may someday no longer use for
30489         InspectorResources.
30491         * page/InspectorController.cpp:
30492         (WebCore::InspectorController::didFinishLoading):
30493         (WebCore::InspectorController::didFailLoading):
30495 2008-03-25  Kevin McCullough  <kmccullough@apple.com>
30497         Reviewed by Adam.
30499         - Added a null check
30501         * xml/XMLHttpRequest.cpp: Null check
30502         (WebCore::XMLHttpRequest::send):
30504 2008-03-25  Kevin McCullough  <kmccullough@apple.com>
30506         Reviewed by Tim.
30508         -<rdar://problem/5712804> XMLHttpRequests do not show response contents, preview images (14313)
30509         -<rdar://problem/5712931> XMLHttpRequests should be shown separately and grouped (14315)
30510         -<rdar://problem/5732836> XMLHttpRequest: Inspector should show network activity/XHR in Console (17233)
30511         - XMLHttpRequestResources now identify themselves to the inspector which caches the data related to
30512         the request since no one else caches it.  However this is just the plumbing and the Inspector's UI
30513         has not been changed to show XHR resources yet. 
30515         * page/InspectorController.cpp: Add ability to set XHR data on an InspectorResource.
30516         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
30517         (WebCore::XMLHttpRequestResource::data):
30518         (WebCore::XMLHttpRequestResource::encoding):
30519         (WebCore::InspectorResource::): Add new type.
30520         (WebCore::InspectorResource::~InspectorResource): No longer virtual since we are not using inheritance.
30521         (WebCore::InspectorResource::type): Ditto.
30522         (WebCore::InspectorResource::setXMLHttpRequestResource):
30523         (WebCore::InspectorResource::isXHR):
30524         (WebCore::InspectorResource::xmlHttpRequestData):
30525         (WebCore::InspectorResource::xmlHttpRequestEncoding):
30526         (WebCore::InspectorResource::InspectorResource):
30527         (WebCore::addSourceToFrame):
30528         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
30529         * page/InspectorController.h: Add accessor for setting the XHR data.
30530         * page/inspector/Resource.js: Keep the XHR resource types in sync with the Inspector Controller.
30531         * xml/XMLHttpRequest.cpp: Give the InspectorController the XHR information to cache.
30532         (WebCore::XMLHttpRequest::send):
30534 2008-03-25  Adam Roben  <aroben@apple.com>
30536         Add an UnusedParam.h forwarding header for use by testapi
30538         Reviewed by Steve Falkenburg.
30540         * ForwardingHeaders/wtf/UnusedParam.h: Added.
30542 2008-03-25  Brady Eidson  <beidson@apple.com>
30544         Reviewed by Adam Roben
30546         <rdar://problem/5819308> - View Source is empty when view webarchives
30548         * WebCore.base.exp:
30549         * loader/DocumentLoader.cpp:
30550         (WebCore::DocumentLoader::setParsedArchiveData):
30551         (WebCore::DocumentLoader::parsedArchiveData):
30552         * loader/DocumentLoader.h:
30554         * loader/FrameLoader.cpp:
30555         (WebCore::FrameLoader::finishedLoadingDocument): Set the archive's MainResource data as the parsedArchiveData
30556           in the DocumentLoader
30558 2008-03-25  Eric Seidel  <eric@webkit.org>
30560         Reviewed by Oliver.
30562         Speculative crash fix for Acid3 crasher.
30563         I couldn't figure out how to make a test case for this?
30564         Suggestions welcome.
30566         * css/CSSFontSelector.cpp: null check document->renderer()
30568 2008-03-25  Antti Koivisto  <antti@apple.com>
30570         Reviewed by Geoff Garen.
30572         Some memory cache cleanups:
30573         - Separate CachedResource loading from construction, initiate load using a separate load() method.
30574         - Add special case function to Cache for loading user stylesheets. This allows removal
30575           of a bunch of parameters from several methods and CachedResource constructors.
30576         - Construct CachedResources with m_inCache set to false which is quite a bit more logical as they
30577           are not yet in the cache at that point.
30578         - Pass encoding around as const String& instead of const String*.
30580         * css/CSSImageValue.cpp:
30581         (WebCore::CSSImageValue::image):
30582         * html/HTMLImageLoader.cpp:
30583         (WebCore::HTMLImageLoader::updateFromElement):
30584         * loader/Cache.cpp:
30585         (WebCore::createResource):
30586         (WebCore::Cache::requestResource):
30587         (WebCore::Cache::requestUserCSSStyleSheet):
30588         (WebCore::Cache::remove):
30589         * loader/Cache.h:
30590         * loader/CachedCSSStyleSheet.cpp:
30591         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
30592         * loader/CachedCSSStyleSheet.h:
30593         * loader/CachedFont.cpp:
30594         (WebCore::CachedFont::CachedFont):
30595         (WebCore::CachedFont::load):
30596         (WebCore::CachedFont::ref):
30597         * loader/CachedFont.h:
30598         * loader/CachedImage.cpp:
30599         (WebCore::CachedImage::CachedImage):
30600         (WebCore::CachedImage::load):
30601         * loader/CachedImage.h:
30602         * loader/CachedResource.cpp:
30603         (WebCore::CachedResource::CachedResource):
30604         (WebCore::CachedResource::~CachedResource):
30605         (WebCore::CachedResource::load):
30606         * loader/CachedResource.h:
30607         (WebCore::CachedResource::load):
30608         * loader/CachedScript.cpp:
30609         (WebCore::CachedScript::CachedScript):
30610         * loader/CachedScript.h:
30611         * loader/CachedXBLDocument.cpp:
30612         (WebCore::CachedXBLDocument::CachedXBLDocument):
30613         * loader/CachedXBLDocument.h:
30614         * loader/CachedXSLStyleSheet.cpp:
30615         (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
30616         * loader/CachedXSLStyleSheet.h:
30617         * loader/DocLoader.cpp:
30618         (WebCore::DocLoader::requestImage):
30619         (WebCore::DocLoader::requestFont):
30620         (WebCore::DocLoader::requestCSSStyleSheet):
30621         (WebCore::DocLoader::requestUserCSSStyleSheet):
30622         (WebCore::DocLoader::requestScript):
30623         (WebCore::DocLoader::requestXSLStyleSheet):
30624         (WebCore::DocLoader::requestXBLDocument):
30625         (WebCore::DocLoader::requestResource):
30626         (WebCore::DocLoader::preload):
30627         * loader/DocLoader.h:
30629 2008-03-25  Darin Adler  <darin@apple.com>
30631         Reviewed by Anders.
30633         - avoid converting UString to String and then later to AtomicString
30635         1% speedup on Acid3 test 26
30637         This is inefficient for the case where there's already an AtomicString.
30638         By first creating and destroying a String we waste time.
30640         * bindings/scripts/CodeGeneratorJS.pm: Use const UString& for string
30641         arguments rather than using String; this uses the object as it's produced
30642         from toString rather than creating a new temporary object that might not
30643         be of the right type. The type conversion happens at the callsite instead.
30644         Also eliminate the ability to use the type AtomicString from IDL.
30646         * dom/KeyboardEvent.idl: AtomicString -> DOMString.
30647         * dom/MouseEvent.idl: Ditto.
30648         * dom/MutationEvent.idl: Ditto.
30649         * dom/UIEvent.idl: Ditto.
30650         * svg/SVGStyleElement.idl: Ditto.
30652 2008-03-25  Brady Eidson  <beidson@apple.com>
30654         Build fix for non-CoreFoundation platforms
30656         * loader/archive/ArchiveFactory.cpp:
30658 2008-03-25  Brady Eidson  <beidson@apple.com>
30660         Reviewed by Darin
30662         Remove newly obsolete FrameLoaderClient methods
30664         * loader/FrameLoaderClient.h:
30665         * svg/graphics/SVGImageEmptyClients.h:
30666         (WebCore::SVGEmptyFrameLoaderClient::setMainDocumentError):
30667         (WebCore::SVGEmptyFrameLoaderClient::finishedLoading):
30669 2008-03-25  Brady Eidson  <beidson@apple.com>
30671         Reviewed by Darin
30673         <rdar://problem/4516169> - Support WebArchives on Windows
30674         And pave the way for many future WebArchive bug fixes and enhancements
30676         This patch accomplishes two main goals:
30677         1 - Consolidates much of the spread out WebKitMac archive code into one place in WebCore.  This allows for cleaner refactoring 
30678             in the future as well as adding more archive formats with ease.
30679         2 - Hooks up WebArchive support on Windows.  Safari-style .webarchive files are nothing more than property lists readable by
30680             CoreFoundation.  While there are still some outstanding issues, including an NSKeyedArchiver chunk of data for the 
30681             ResourceResponse for each resource, this patch manually parses through the property list on CoreFoundation platforms and
30682             gets many archives loading on Windows
30684         My goal for this first cut was zero behavior change.  As such, I went for a direct port of the WebKitMac code.  There will be
30685         opportunities for redesign and refactoring as followups.
30687         * WebCore.base.exp:
30689         * loader/DocumentLoader.cpp:
30690         (WebCore::DocumentLoader::setupForReplaceByMIMEType): Ported from WebKitMac, WebDataSource
30691         (WebCore::DocumentLoader::addAllArchiveResources):
30692         (WebCore::DocumentLoader::addArchiveResource):
30693         (WebCore::DocumentLoader::archiveResourceForURL):
30694         (WebCore::DocumentLoader::popArchiveForSubframe):
30695         (WebCore::DocumentLoader::clearArchiveResources):
30696         * loader/DocumentLoader.h:
30698         * loader/FrameLoader.cpp: Moved WebFrameLoaderClient and WebFrame code down into their more appropriate FrameLoader home
30699         (WebCore::FrameLoader::FrameLoader):
30700         (WebCore::FrameLoader::setDefersLoading):
30701         (WebCore::FrameLoader::deliverArchivedResourcesAfterDelay):
30702         (WebCore::FrameLoader::archiveResourceDeliveryTimerFired):
30703         (WebCore::FrameLoader::loadURLIntoChildFrame):
30704         (WebCore::FrameLoader::loadArchive):
30705         (WebCore::FrameLoader::scheduleArchiveLoad):
30706         (WebCore::FrameLoader::stopAllLoaders):
30707         (WebCore::FrameLoader::cancelPendingArchiveLoad):
30708         (WebCore::FrameLoader::isArchiveLoadPending):
30709         (WebCore::FrameLoader::finishedLoadingDocument):
30710         * loader/FrameLoader.h:
30712         * loader/ResourceLoader.cpp:
30713         (WebCore::ResourceLoader::load):
30715         * loader/archive/Archive.h: Generic "Archive of web resources" class that is only useful when subclassed.  
30716             Contains a MainResource, subresources, and Archives for subframes
30717         (WebCore::Archive::mainResource):
30718         (WebCore::Archive::subresources):
30719         (WebCore::Archive::subframeArchives):
30720         (WebCore::Archive::setMainResource):
30721         (WebCore::Archive::addSubresource):
30722         (WebCore::Archive::addSubframeArchive):
30724         * loader/archive/ArchiveFactory.cpp: A class that will take raw archive data and the MIMEtype, and create the
30725             appropriate Archive class for it.  Additionally it handles registering the known MIMEtypes for all known archive formats
30726         (WebCore::archiveFactoryCreate):
30727         (WebCore::archiveMIMETypes):
30728         (WebCore::ArchiveFactory::isArchiveMimeType):
30729         (WebCore::ArchiveFactory::create):
30730         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
30731         * loader/archive/ArchiveFactory.h:
30733         * loader/archive/ArchiveResource.cpp: Analog to "WebResource" in WebKitMac.  Contains the data and other important
30734             attributes of an archived resource
30735         (WebCore::ArchiveResource::create):
30736         (WebCore::ArchiveResource::ArchiveResource):
30737         (WebCore::ArchiveResource::response):
30738         * loader/archive/ArchiveResource.h:
30739         (WebCore::ArchiveResource::data):
30740         (WebCore::ArchiveResource::url):
30741         (WebCore::ArchiveResource::mimeType):
30742         (WebCore::ArchiveResource::textEncoding):
30743         (WebCore::ArchiveResource::frameName):
30744         (WebCore::ArchiveResource::ignoreWhenUnarchiving):
30745         (WebCore::ArchiveResource::shouldIgnoreWhenUnarchiving):
30747         * loader/archive/ArchiveResourceCollection.cpp: Analog of "WebUnarchivingState" in WebKitMac.  Contains a hash of
30748             all the resources for every frame in an archive, and contains the archives for each subframe needed to load a multi-frame archive
30749         (WebCore::ArchiveResourceCollection::ArchiveResourceCollection):
30750         (WebCore::ArchiveResourceCollection::addAllResources):
30751         (WebCore::ArchiveResourceCollection::addResource):
30752         (WebCore::ArchiveResourceCollection::archiveResourceForURL):
30753         (WebCore::ArchiveResourceCollection::popSubframeArchive):
30754         * loader/archive/ArchiveResourceCollection.h:
30756         * loader/archive/cf/LegacyWebArchive.cpp: Subclass of Archive specifically for Webkit's Objective-C based ".webarchive" format.
30757             Mostly a collection of static methods involved in parsing and serializing a WebKit-style .webarchive.  Is mostly supported
30758             for any CF platform.
30759         (WebCore::createPropertyListRepresentationFromResource):
30760         (WebCore::createPropertyListRep):
30761         (WebCore::createResourceResponseFromPropertyListData):
30762         (WebCore::createResource):
30763         (WebCore::LegacyWebArchive::create):
30764         (WebCore::LegacyWebArchive::LegacyWebArchive):
30765         (WebCore::LegacyWebArchive::init):
30766         (WebCore::LegacyWebArchive::extract):
30767         (WebCore::LegacyWebArchive::rawDataRepresentation):
30768         (WebCore::createResourceResponseFromMacArchivedData):
30769         (WebCore::propertyListDataFromResourceResponse):
30770         * loader/archive/cf/LegacyWebArchive.h:
30771         * loader/archive/cf/LegacyWebArchiveMac.mm:
30772         (WebCore::createResourceResponseFromMacArchivedData):
30773         (WebCore::propertyListDataFromResourceResponse):
30775         * platform/network/mac/ResourceRequest.h:
30776         * platform/network/mac/ResourceRequestMac.mm:
30777         (WebCore::ResourceRequest::applyWebArchiveHackForMail): Tweak the resource request for Mac clients when loading WebArchives
30779 2008-03-25  David Hyatt  <hyatt@apple.com>
30781         Cut and paste error in the zoom code.  A width() should have been a height().  Regression tests caught this.
30783         * page/DOMWindow.cpp:
30784         (WebCore::DOMWindow::innerHeight):
30786 2008-03-24  Darin Adler  <darin@apple.com>
30788         - try to fix broken Wx build
30790         * platform/wx/TemporaryLinkStubs.cpp:
30791         (GraphicsContext::setPlatformShadow):
30792         (GraphicsContext::clearPlatformShadow):
30794 2008-03-24  Darin Adler  <darin@apple.com>
30796         Reviewed by Sam.
30798         - use AtomicString more consistently for attribute values
30800         1% speedup on Acid3 test 26
30802         * dom/Element.cpp:
30803         (WebCore::Element::setAttribute): Changed value argument to AtomicString.
30804         Also fixed call to lower() to only be done if the name isn't already lowercase.
30805         Also took out one unneeded condition in a cascade of if statements.
30806         (WebCore::Element::createAttribute): Ditto.
30807         (WebCore::Element::setAttributeNS): Ditto.
30808         * dom/Element.h: Ditto.
30809         * dom/StyledElement.cpp:
30810         (WebCore::StyledElement::createAttribute): Ditto.
30811         * dom/StyledElement.h: Ditto.
30813 2008-03-24  Darin Adler  <darin@apple.com>
30815         Reviewed by Sam.
30817         - get rid of extra level of function call in toJS functions for Node
30819         0.6% speedup on Acid3 test 26
30821         * bindings/js/JSNodeCustom.cpp:
30822         (WebCore::toJS): Take a raw pointer, not a PassRefPtr, like other toJS functions.
30824         * bindings/scripts/CodeGeneratorJS.pm: Add an inlined toJS for EventTargetNode*
30825         to avoid ambiguity that otherwise exists between the toJS for EventTarget* and
30826         for Node*.
30828 2008-03-24  Darin Adler  <darin@apple.com>
30830         Reviewed by Hyatt.
30832         - add fast path to isValidName that does not use advanced Unicode functions
30834         2% speedup on Acid3 test 26
30836         * dom/Document.cpp:
30837         (WebCore::isValidNameNonASCII): Added. Contains the old isValidName function.
30838         (WebCore::isValidNameASCII): Added. Contains a simpler function that returns
30839         true for most valid names that are also all ASCII.
30840         (WebCore::Document::isValidName): Changed to call both of the above functions.
30841         The common case is that isValidNameASCII returns true so isValidNameNonASCII
30842         is never called.
30844 2008-03-24  David Hyatt  <hyatt@apple.com>
30846         Fix for bug 18052, window properties need to respect zoom factor.
30848         Reviewed by Beth
30850         * page/DOMWindow.cpp:
30851         (WebCore::DOMWindow::innerHeight):
30852         (WebCore::DOMWindow::innerWidth):
30853         (WebCore::DOMWindow::scrollX):
30854         (WebCore::DOMWindow::scrollY):
30855         (WebCore::DOMWindow::scrollTo):
30856         * page/FrameView.cpp:
30857         (WebCore::FrameViewPrivate::reset):
30858         (WebCore::FrameView::layout):
30859         (WebCore::FrameView::performPostLayoutTasks):
30861 2008-03-24  Sam Weinig  <sam@webkit.org>
30863         Reviewed by Darin Adler.
30865         Fix http://bugs.webkit.org/show_bug.cgi?id=18048
30866         The "thisObject" parameter to JSEvaluateScript is not used properly
30868         * bindings/js/kjs_proxy.cpp:
30869         (WebCore::KJSProxy::evaluate): No need to pass a thisObject since we want the global object to be used.
30870         * bridge/jni/jni_jsobject.mm:
30871         (JavaJSObject::eval): To avoid any change to this function, don't pass a thisObject to keep the same
30872         behavior.
30874 2008-03-24  Brady Eidson  <beidson@apple.com>
30876         Reviewed by Darin's rubberstamp
30878         Land a load of empty files for upcoming work to make sure I'm not breaking any platform's build
30880         * GNUmakefile.am:
30881         * WebCore.pro:
30882         * WebCore.vcproj/WebCore.vcproj:
30883         * WebCore.xcodeproj/project.pbxproj:
30884         * WebCoreSources.bkl:
30885         * loader/archive: Added.
30886         * loader/archive/Archive.h: Added.
30887         * loader/archive/ArchiveFactory.cpp: Added.
30888         * loader/archive/ArchiveFactory.h: Added.
30889         * loader/archive/ArchiveResource.cpp: Added.
30890         * loader/archive/ArchiveResource.h: Added.
30891         * loader/archive/ArchiveResourceCollection.cpp: Added.
30892         * loader/archive/ArchiveResourceCollection.h: Added.
30893         * loader/archive/cf: Added.
30894         * loader/archive/cf/LegacyWebArchive.cpp: Added.
30895         * loader/archive/cf/LegacyWebArchive.h: Added.
30896         * loader/archive/cf/LegacyWebArchiveMac.mm: Added.
30898 2008-03-24  David Hyatt  <hyatt@apple.com>
30900         Fix for bug 18009. Make sure the IE offset/client/scroll*** extensions respect full page zoom.
30902         Reviewed by Beth
30904         * dom/Element.cpp:
30905         (WebCore::localZoomForRenderer):
30906         (WebCore::adjustForLocalZoom):
30907         (WebCore::adjustForAbsoluteZoom):
30908         (WebCore::Element::offsetLeft):
30909         (WebCore::Element::offsetTop):
30910         (WebCore::Element::offsetWidth):
30911         (WebCore::Element::offsetHeight):
30912         (WebCore::Element::clientLeft):
30913         (WebCore::Element::clientTop):
30914         (WebCore::Element::clientWidth):
30915         (WebCore::Element::clientHeight):
30916         (WebCore::Element::scrollLeft):
30917         (WebCore::Element::scrollTop):
30918         (WebCore::Element::setScrollLeft):
30919         (WebCore::Element::setScrollTop):
30920         (WebCore::Element::scrollWidth):
30921         (WebCore::Element::scrollHeight):
30922         * rendering/RenderBox.cpp:
30923         (WebCore::RenderBox::setStyle):
30924         * rendering/RenderObject.cpp:
30925         (WebCore::RenderObject::offsetParent):
30926         * rendering/RenderObject.h:
30928 2008-03-24  Brady Eidson  <beidson@apple.com>
30930         Reviewed by Darin
30932         Some style cleanup and add a logging channel for upcoming work
30934         * platform/Logging.cpp:
30935         * platform/Logging.h:
30937         * platform/MIMETypeRegistry.cpp:
30938         (WebCore::initializeSupportedImageMIMETypes):
30939         (WebCore::initializeSupportedNonImageMimeTypes):
30941 2008-03-24  Dan Bernstein  <mitz@apple.com>
30943         Reviewed by Sam Weinig.
30945         - fix <rdar://problem/5812292> CrashTracer: [REGRESSION] 60 crashes in Safari at com.apple.WebCore: WebCore::RenderObject::repaintRectangle + 47
30947         Test: fast/repaint/renderer-destruction-by-invalidateSelection-crash.html
30949         * page/FrameView.cpp:
30950         (WebCore::FrameViewPrivate::reset): Removed repaintRects code.
30951         (WebCore::FrameView::layout): Ditto.
30952         (WebCore::FrameView::addRepaintInfo): Removed.
30954         * page/FrameView.h: Removed addRepaintInfo().
30956         * rendering/RenderBlock.cpp:
30957         (WebCore::RenderBlock::layoutBlock): Changed to call repaintRectangle
30958         instead of FrameView::addRepaintInfo().
30959         * rendering/RenderTable.cpp:
30960         (WebCore::RenderTable::layout): Ditto.
30962 2008-03-24  Alp Toker  <alp@atoker.com>
30964         GTK+/soup http backend build fix for breakage introduced in r31141.
30965         Fix suggested by Xan.
30967         * platform/network/ResourceHandle.h:
30969 2008-03-24  Dan Bernstein  <mitz@apple.com>
30971         Reviewed by Sam Weinig.
30973         - fix <rdar://problem/5792582> CSS opacity does not work with GDI text
30974         - fix <rdar://problem/5792619> non-opaque CSS colors do not work with GDI text (RGBA, HSLA)
30975         - fix <rdar://problem/5792624> GDI text can't be stroked/filled independently
30976         - make text-shadow work with GDI text
30977         - make -webkit-background-clip: text work with GDI text
30979         * platform/graphics/GraphicsContext.cpp:
30980         (WebCore::GraphicsContext::setShadow): Made this a shared method that
30981         updates the state and calls the platform-specific method.
30982         (WebCore::GraphicsContext::clearShadow): Ditto.
30983         (WebCore::GraphicsContext::getShadow): Added.
30985         * platform/graphics/GraphicsContext.h:
30986         (WebCore::GraphicsContext::WindowsBitmap): Added this class that
30987         represents a bitmap with a Windows device context that GDI can draw into.
30989         * platform/graphics/GraphicsContextPrivate.h:
30990         (WebCore::GraphicsContextState::GraphicsContextState): Added the shadow
30991         parameters to the graphics state.
30993         * platform/graphics/cairo/GraphicsContextCairo.cpp:
30994         (WebCore::GraphicsContext::setPlatformShadow): Renamed the platform-
30995         specific implementation to this.
30996         (WebCore::GraphicsContext::clearPlatformShadow): Renamed the platform-
30997         specific implementation to this.
30999         * platform/graphics/cg/GraphicsContextCG.cpp:
31000         (WebCore::GraphicsContext::setPlatformShadow): Renamed the platform-
31001         specific implementation to this.
31002         (WebCore::GraphicsContext::clearPlatformShadow): Renamed the platform-
31003         specific implementation to this.
31005         * platform/graphics/qt/GraphicsContextQt.cpp:
31006         (WebCore::GraphicsContext::setPlatformShadow): Renamed the platform-
31007         specific implementation to this.
31008         (WebCore::GraphicsContext::clearPlatformShadow): Renamed the platform-
31009         specific implementation to this.
31011         * platform/graphics/win/FontCGWin.cpp:
31012         (WebCore::toCGFloat): Added. Converts a Windows FIXED.
31013         (WebCore::createPathForGlyph): Added. Retrieves a glyph's hinted
31014         outline from GDI and creates a CGPath containing it.
31015         (WebCore::Font::drawGlyphs): Added two code paths in the GDI case.
31016         The existing code path, which uses GDI to draw text directly to the
31017         graphics context, is used for opaque-colored, non-transformed,
31018         non-stroked, non-shadowed text in a GDI-backed graphics context that is
31019         not in a transparency layer.
31020         An additional code path is used for non-stroked text in all other cases.
31021         It uses GDI to draw black text into an all-white Windows bitmap, then
31022         uses the green channel as a mask to create a bitmap with the desired
31023         fill color and alpha. The bitmap is then drawn into the graphics
31024         context, at which time transparency layers, transforms and shadows are
31025         handled properly.
31026         A third code path is used for stroked text. It constructs a path from
31027         hinted glyph outlines retrieved from GDI and strokes (and optionally
31028         fills) it.
31030         * platform/graphics/win/GraphicsContextCGWin.cpp:
31031         (WebCore::GraphicsContext::getWindowsContext): Added a mayCreateBitmap
31032         parameter. When false, prevents this method from creating a Windows
31033         device context if the graphics context does not already have one.
31034         (WebCore::GraphicsContext::releaseWindowsContext): Added a
31035         mayCreateBitmap parameter to match getWindowsContext().
31036         (WebCore::GraphicsContext::WindowsBitmap::WindowsBitmap):
31037         (WebCore::GraphicsContext::WindowsBitmap::~WindowsBitmap):
31038         (WebCore::GraphicsContext::createWindowsBitmap): Added.
31039         (WebCore::GraphicsContext::drawWindowsBitmap): Added. Draws the bitmap
31040         as a non-alpha-premultiplied image.
31042 2008-03-24  Kevin McCullough <kmccullough@apple.com>
31044           - Fixed Changelog
31046 2008-03-24  Marco Barisione  <marco.barisione@collabora.co.uk>
31048         Reviewed by Alp Toker.
31050         http://bugs.webkit.org/show_bug.cgi?id=17845
31051         [GTK] combo box menu displayed in the wrong position
31053         * platform/gtk/PopupMenuGtk.cpp:
31054         (WebCore::PopupMenu::show): Change the popup menu vertical position so
31055         that the active item is over the combo box.
31056         (WebCore::PopupMenu::menuPositionFunction): use the "push in" style
31057         like native GTK+ combo boxes to handle menus that don't fit in the
31058         screen.
31060 2008-03-24  Adam Roben  <aroben@apple.com>
31062         * WebCore.vcproj/WebCore.vcproj: Add files from WebCore/page/inspector
31063         to the project.
31065 2008-03-24  Alexey Proskuryakov  <ap@webkit.org>
31067         Build fix.
31069         * WebCore.xcodeproj/project.pbxproj: Added DOMSVGAltGlyphElement.h and
31070         DOMSVGAltGlyphElementInternal.h to Copy Generated Headers phase.
31072 2008-03-24  Eric Seidel  <eric@webkit.org>
31074         Build fix, no review.
31076         Fix project paths to be group relative instead of project relative
31078         * WebCore.xcodeproj/project.pbxproj:
31080 2008-03-23  Maciej Stachowiak  <mjs@apple.com>
31082         Reviewed by Eric.
31084         - fixed "SVGTextElement.getNumberOfChars is broken for altGlyph (affects Acid3 test 79)"
31085         http://bugs.webkit.org/show_bug.cgi?id=17062
31087         * svg/SVGAltGlyphElement.cpp: Added. Implementation for new element.
31088         (WebCore::SVGAltGlyphElement::SVGAltGlyphElement):
31089         (WebCore::SVGAltGlyphElement::~SVGAltGlyphElement):
31090         (WebCore::SVGAltGlyphElement::setGlyphRef):
31091         (WebCore::SVGAltGlyphElement::glyphRef):
31092         (WebCore::SVGAltGlyphElement::setFormat):
31093         (WebCore::SVGAltGlyphElement::format):
31094         (WebCore::SVGAltGlyphElement::childShouldCreateRenderer):
31095         (WebCore::SVGAltGlyphElement::createRenderer): For now, this just renders as a tspan,
31096         which is right for everything besides the alternate glyph substitution itself.
31097         * svg/SVGAltGlyphElement.h: Added. Header for new element.
31098         (WebCore::SVGAltGlyphElement::contextElement):
31099         * svg/SVGAltGlyphElement.idl: Added. Interface for new element.
31100         * svg/SVGTSpanElement.cpp:
31101         (WebCore::SVGTSpanElement::childShouldCreateRenderer): Allow altGlyph to render here.
31102         * svg/SVGTextElement.cpp:
31103         (WebCore::SVGTextElement::childShouldCreateRenderer): ditto
31104         * svg/SVGTextPathElement.cpp:
31105         (WebCore::SVGTextPathElement::childShouldCreateRenderer): ditto
31106         * svg/svgtags.in: Add altGlyph
31107         * DerivedSources.make: Add new files
31108         * GNUmakefile.am: ditto
31109         * WebCore.SVG.exp: Add new ObjC DOM class
31110         * WebCore.pro: Add new files
31111         * WebCore.vcproj/WebCore.vcproj: ditto
31112         * WebCore.xcodeproj/project.pbxproj: ditto
31113         * bindings/js/JSSVGElementWrapperFactory.cpp: Handle altGlyph
31114         * bindings/objc/DOM.mm:
31115         (WebCore::createElementClassMap): ditto
31116         * bindings/objc/DOMInternal.h: Include altGlyph header
31117         * bindings/objc/DOMSVG.h: Include altGlyph header
31119 2008-03-23  Robert Blaut  <webkit@blaut.biz>
31121         Reviewed by eseidel.  Landed by eseidel.
31123         Bug 17685: [~=] attribute selector failing to match empty string
31124         <http://bugs.webkit.org/show_bug.cgi?id=17685>
31126         Test: fast/css/attribute-selector-empty-value.html
31128         * css/CSSStyleSelector.cpp:
31129         (WebCore::CSSStyleSelector::checkOneSelector):
31131 2008-03-22  Marco Barisione  <marco.barisione@collabora.co.uk>
31133         Reviewed by Darin Adler.
31135         http://bugs.webkit.org/show_bug.cgi?id=16339
31136         Frame scrollbar positions are not updated on page scroll
31138         Widget::geometryChanged() was called instead of
31139         ScrollViewScrollbar::geometryChanged() because of a missing const.
31141         * platform/gtk/ScrollViewGtk.cpp:
31142         (WebCore::ScrollViewScrollbar::geometryChanged): add the missing
31143         const.
31145 2008-03-22  Rodney Dawes  <dobey@wayofthemonkey.com>
31147         Reviewed by Mark Rowe.
31149         Bug 17974: REGRESSION: npfunctions.h should not import npruntime_internal.h
31150         <http://bugs.webkit.org/show_bug.cgi?id=17974>
31151         <rdar://problem/5782310>
31153         Include npapi.h and npruntime.h directly in npfunctions.h.
31154         Add npfunctions.h and npapi.h to npruntime_internal.h.
31155         Replace includes of npfunctions.h with npruntime_internal.h.
31157         * bridge/npruntime_internal.h:
31158         * plugins/PluginPackage.h:
31159         * plugins/PluginStream.h:
31160         * plugins/npapi.cpp:
31161         * plugins/npfunctions.h:
31163 2008-03-22  Mark Rowe  <mrowe@apple.com>
31165         Qt build fix.
31167         * bridge/qt/qt_runtime.cpp:
31168         (KJS::Bindings::valueRealType):
31170 2008-03-22  Eric Seidel  <eric@webkit.org>
31172         Reviewed by mjs.
31174         Unify handling of NAMESPACE_ERR and fix Acid3 test 25
31175         http://bugs.webkit.org/show_bug.cgi?id=16693
31177         Test: fast/dom/DOMImplementation/createDocumentType-err.html
31179         * dom/DOMImplementation.cpp:
31180         (WebCore::DOMImplementation::createDocumentType):
31181         (WebCore::DOMImplementation::createDocument):
31182         * dom/DOMImplementation.idl:
31183         * dom/Document.cpp:
31184         (WebCore::Document::hasPrefixNamespaceMismatch):
31185         (WebCore::Document::createElementNS):
31186         (WebCore::Document::parseQualifiedName):
31187         (WebCore::Document::createAttributeNS):
31188         * dom/Document.h:
31189         * dom/Element.cpp:
31190         (WebCore::Element::setAttributeNS):
31191         * editing/FormatBlockCommand.cpp:
31192         (WebCore::FormatBlockCommand::doApply):
31194 2008-03-22  Eric Seidel  <eric@webkit.org>
31196         Reviewed by mjs.
31198         Fix createElementNS to throw exceptions for invalid qualified names
31199         Fixes Acid3 sub-test 23
31200         http://bugs.webkit.org/show_bug.cgi?id=16833
31202         Tests: fast/dom/Document/createAttributeNS-namespace-err.html
31203                fast/dom/Document/createElementNS-namespace-err.html
31205         * dom/Document.cpp:
31206         (WebCore::Document::createElement):
31207         (WebCore::hasNamespaceError):
31208         (WebCore::Document::createElementNS):
31209         (WebCore::Document::createAttributeNS):
31210         * dom/Document.idl:
31212 2008-03-21  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
31214         Reviewed by Oliver Hunt.
31216         Bug 13693: REGRESSION (r13615): Acid2 Test Eyes render improperly after a page refresh
31217         <http://bugs.webkit.org/show_bug.cgi?id=13693>
31219         Do not create bogus history items for unloaded <object> elements, because they
31220         cause fallback content to be ignored on reload.
31222         * loader/FrameLoader.cpp:
31223         (WebCore::FrameLoader::createHistoryItemTree):
31225 2008-03-21  Dan Bernstein  <mitz@apple.com>
31227         Reviewed by Oliver Hunt.
31229         - fix http://bugs.webkit.org/show_bug.cgi?id=17988
31230           REGRESSION (r31114-31132): Crash in InlineBox::isDirty() opening chowhound.com
31232         Test: fast/css-generated-content/empty-content-with-float-crash.html
31234         * rendering/bidi.cpp:
31235         (WebCore::RenderBlock::layoutInlineChildren): Added a null check for
31236         the case where the block contains no in-flow elements but still lays
31237         out as a line flow, which can happen as a result of empty generated
31238         content.
31240 2008-03-21  Sam Weinig  <sam@webkit.org>
31242         Reviewed by Oliver Hunt.
31244         Fix <rdar://problem/5788451>
31245         toDataURL not implemented for Windows (need mapping of MIME type to UTI)
31247         Hard code support for just PNG's on windows, the minimum the spec requires.
31249         * platform/MIMETypeRegistry.cpp:
31250         (WebCore::initializeSupportedImageMIMETypesForEncoding):
31251         * platform/graphics/cg/ImageBufferCG.cpp:
31252         (WebCore::utiFromMIMEType):
31253         (WebCore::ImageBuffer::toDataURL):
31255 2008-03-21  Matt Lilek  <webkit@mattlilek.com>
31257         Not reviewed, Mac build fix.
31259         * bindings/objc/WebScriptObject.mm:
31260         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
31261         * bridge/jni/jni_utility.cpp:
31262         (KJS::Bindings::convertValueToJValue):
31263         * bridge/objc/objc_runtime.mm:
31264         (ObjcFallbackObjectImp::callAsFunction):
31266 2008-03-21  Adam Roben  <aroben@apple.com>
31268         Attempt to fix the Mac build
31270         * bindings/objc/DOMUtility.mm:
31271         (KJS::createDOMWrapper):
31273 2008-03-21  Adam Roben  <aroben@apple.com>
31275         Rename static info members to s_info
31277         This avoids conflicts with custom "info" methods, such as the one that
31278         will soon be added to Console.
31280         Reviewed by Ada Chan and Sam Weinig.
31282 2008-03-21  David Hyatt  <hyatt@apple.com>
31284         <rdar://problem/5808863> Zooming should not let non-zero border width become zero
31286         Make sure zoomed values that begin >= 1 are not allowed to fall below 1.
31288         Reviewed by adele
31290         * css/CSSPrimitiveValue.cpp:
31291         (WebCore::CSSPrimitiveValue::computeLengthDouble):
31292         * loader/CachedImage.cpp:
31293         (WebCore::CachedImage::imageSize):
31294         (WebCore::CachedImage::imageRect):
31296 2008-03-21  Kevin McCullough  <kmccullough@apple.com>
31298         Reviewed by Sam.
31300         -<rdar://problem/5712804> XMLHttpRequests do not show response contents, preview images (14313)
31301         -<rdar://problem/5712931> XMLHttpRequests should be shown separately and grouped (14315)
31302         -<rdar://problem/5732836> XMLHttpRequest: Inspector should show network activity/XHR in Console (17233)
31303         - Instrument the InspectorController to cache XHR resrouces since they are not cached by WebCore.
31304         The resources will be kept in the same map as all other resources so they will have the exact
31305         same lifecycle. 
31307         * ChangeLog:
31308         * page/InspectorController.cpp:
31309         (WebCore::InspectorCachedXMLHttpRequestResource::type):
31310         (WebCore::InspectorCachedXMLHttpRequestResource::setType):
31311         (WebCore::InspectorCachedXMLHttpRequestResource::data):
31312         (WebCore::InspectorCachedXMLHttpRequestResource::setData):
31313         (WebCore::InspectorCachedXMLHttpRequestResource::encoding):
31314         (WebCore::InspectorCachedXMLHttpRequestResource::setEncoding):
31315         (WebCore::InspectorCachedXMLHttpRequestResource::create):
31316         (WebCore::InspectorCachedXMLHttpRequestResource::InspectorCachedXMLHttpRequestResource):
31318 2008-03-21  Rodney Dawes  <dobey@wayofthemonkey.com>
31320         Reviewed by Holger.
31322         http://bugs.webkit.org/show_bug.cgi?id=17981
31324         Remove WebCore/ForwardingHeaders from cppflags as it is not needed,
31325         and causes build problems with GTK+.
31327         * GNUmakefile.am:
31329 2008-03-21  Dan Bernstein  <mitz@apple.com>
31331         Reviewed by Adele Peterson.
31333         - fix http://bugs.webkit.org/show_bug.cgi?id=17966
31334           REGRESSION (r31114-r31132): Clearing via br behaves unpredictably
31336         Test: fast/block/float/br-with-clear.html
31338         * rendering/bidi.cpp:
31339         (WebCore::RenderBlock::layoutInlineChildren): Fixed the logic for the
31340         very special case of an all-lines-clean block that ends with a float-
31341         clearing <br> by looking for the <br> at the end of the line rather
31342         than at its beginning.
31344 2008-03-21  Adam Roben  <aroben@apple.com>
31346         Don't allow any newly-scheduled plugin requests to be serviced when JS is paused
31348         This is a followup to r31199.
31350         Reviewed by Tim Hatcher.
31352         * plugins/PluginView.cpp:
31353         (WebCore::PluginView::requestTimerFired): Added an assertion that JS
31354         is not paused.
31355         (WebCore::PluginView::scheduleRequest): Don't start the request timer
31356         if JS is paused. This is the bug fix.
31357         (WebCore::PluginView::setJavaScriptPaused): Replaced the use of
31358         m_requestTimerWasActive with a check to see if we have any pending
31359         requests. m_requestTimerWasActive would not be accurate if a new
31360         request had been scheduled while JS was paused.
31361         (WebCore::PluginView::PluginView): Removed initialization of
31362         m_requestTimerWasActive.
31363         * plugins/PluginView.h: Removed m_requestTimerWasActive.
31365 2008-03-20  Dan Bernstein  <mitz@apple.com>
31367         Reviewed by Anders Carlsson.
31369         - fix an assertion failure due to a line being marked dirty during
31370           computeVerticalPositionsForLine() due to temporary box destruction
31372         Test: fast/inline/clean-after-removing-temp-boxes.html
31374         * rendering/RenderText.cpp:
31375         (WebCore::RenderText::setTextWithOffset): Added code to dirty lines
31376         when this method is called on an empty text node, which has no line
31377         boxes.
31378         * rendering/bidi.cpp:
31379         (WebCore::RenderBlock::computeVerticalPositionsForLine): Mark the line
31380         clean in the end.
31382 2008-03-20  Anders Carlsson  <andersca@apple.com>
31384         Reviewed by Maciej.
31386         Make some member variables private.
31387         
31388         * loader/ResourceLoader.cpp:
31389         (WebCore::ResourceLoader::ResourceLoader):
31390         * loader/ResourceLoader.h:
31392 2008-03-20  Anders Carlsson  <andersca@apple.com>
31394         Reviewed by Maciej.
31396         Get rid of m_originalURL in ResourceLoader.
31398         * loader/ResourceLoader.cpp:
31399         (WebCore::ResourceLoader::load):
31400         Don't store m_originalURL.
31401         
31402         * loader/ResourceLoader.h:
31403         * loader/SubresourceLoader.cpp:
31404         (WebCore::SubresourceLoader::willSendRequest):
31405         Use the url of the current request instead of the original URL.
31407 2008-03-20  Anders Carlsson  <andersca@apple.com>
31409         Reviewed by Maciej.
31411         Small loader cleanups.
31412         
31413         * loader/MainResourceLoader.cpp:
31414         (WebCore::MainResourceLoader::willSendRequest):
31415         No need to call setRequest here, ResourceLoader::willSendRequest takes care of that. 
31416         Also, there is no need to check that newRequest is null here, because we assert earlier that it is not.
31417         
31418         * loader/ResourceLoader.h:
31419         Get rid of setRequest, it is no longer needed.
31421 2008-03-20  Anders Carlsson  <andersca@apple.com>
31423         Get rid of a couple of unnecessary class declarations.
31424         
31425         * loader/SubresourceLoader.h:
31427 2008-03-20  David Hyatt  <hyatt@apple.com>
31429         Add a new value to background-clip, "text", that allows backgrounds to be clipped to foreground text (and
31430         associated text decorations like shadows and underlines).
31432         Reviewed by Beth
31434         * css/CSSParser.cpp:
31435         (WebCore::CSSParser::parseBackgroundProperty):
31436         * css/CSSPrimitiveValueMappings.h:
31437         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
31438         (WebCore::CSSPrimitiveValue::operator EBackgroundBox):
31439         * platform/graphics/GraphicsContext.cpp:
31440         (WebCore::GraphicsContext::clipToImageBuffer):
31441         * platform/graphics/GraphicsContext.h:
31442         * platform/graphics/cg/GraphicsContextCG.cpp:
31443         (WebCore::GraphicsContext::clipToImageBuffer):
31444         * rendering/InlineBox.cpp:
31445         (WebCore::InlineBox::paint):
31446         * rendering/InlineFlowBox.cpp:
31447         (WebCore::InlineFlowBox::paintBackgrounds):
31448         (WebCore::InlineFlowBox::paintBackground):
31449         (WebCore::InlineFlowBox::paintBoxDecorations):
31450         * rendering/InlineFlowBox.h:
31451         * rendering/InlineTextBox.cpp:
31452         (WebCore::InlineTextBox::paint):
31453         * rendering/RenderBlock.cpp:
31454         (WebCore::RenderBlock::paintColumns):
31455         (WebCore::RenderBlock::paintObject):
31456         (WebCore::RenderBlock::paintFloats):
31457         * rendering/RenderBlock.h:
31458         * rendering/RenderBox.cpp:
31459         (WebCore::RenderBox::paintRootBoxDecorations):
31460         (WebCore::RenderBox::paintBoxDecorations):
31461         (WebCore::RenderBox::paintBackgrounds):
31462         (WebCore::RenderBox::paintBackground):
31463         (WebCore::RenderBox::paintBackgroundExtended):
31464         * rendering/RenderBox.h:
31465         * rendering/RenderFieldset.cpp:
31466         (WebCore::RenderFieldset::paintBoxDecorations):
31467         * rendering/RenderFlow.cpp:
31468         (WebCore::RenderFlow::paintLines):
31469         * rendering/RenderObject.h:
31470         (WebCore::RenderObject::paintBackgroundExtended):
31471         * rendering/RenderStyle.h:
31472         * rendering/RenderTable.cpp:
31473         (WebCore::RenderTable::paintBoxDecorations):
31474         * rendering/RenderTableCell.cpp:
31475         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
31477 2008-03-20  Adam Roben  <aroben@apple.com>
31479         Allow pausing/blocking of JS execution by plugins
31481         Part of Bug 17133: Should support pausing JavaScript execution without
31482         hanging the process
31484         <http://bugs.webkit.org/show_bug.cgi?id=17133>
31485         <rdar://problem/5719551>
31487         This patch doesn't affect Mac, which doesn't use the shared PluginView
31488         code.
31490         Note that this patch doesn't prevent plugins from executing JS via an
31491         NPObject they've already gotten hold of. It just blocks obtaining new
31492         NPObjects and pauses any requests to evaluate javascript: URIs. This
31493         is probably good enough for now because most plugins seem to always
31494         obtain the Window object each time they want to execute JS.
31496         Reviewed by Tim Hatcher.
31498         * plugins/PluginView.cpp:
31499         (WebCore::PluginView::getValue): Return an error if JS is paused.
31500         (WebCore::PluginView::setJavaScriptPaused): Stop the request timer if
31501         we're pausing, and resume it if we're unpausing.
31502         (WebCore::PluginView::PluginView): Initialize new members.
31503         * plugins/PluginView.h:
31505 2008-03-20  Adam Roben  <aroben@apple.com>
31507         Allow pausing of callOnMainThread callbacks
31509         Part of Bug 17133: Should support pausing JavaScript execution without
31510         hanging the process
31512         <http://bugs.webkit.org/show_bug.cgi?id=17133>
31513         <rdar://problem/5719551>
31515         Reviewed by Tim Hatcher.
31517         * platform/MainThread.cpp:
31518         (WebCore::dispatchFunctionsFromMainThread): If callbacks are paused,
31519         don't dispatch the functions.
31520         (WebCore::setMainThreadCallbacksPaused): Added. If we're being
31521         unpaused, call scheduleDispatchFunctionsOnMainThread so that any
31522         queued callbacks will get dispatched in the near future.
31523         * platform/MainThread.h:
31525 2008-03-20  Adam Roben  <aroben@apple.com>
31527         Allow blocking of JS event handlers/javascript: URIs per-Frame
31529         Part of Bug 17133: Should support pausing JavaScript execution without
31530         hanging the process
31532         <http://bugs.webkit.org/show_bug.cgi?id=17133>
31533         <rdar://problem/5719551>
31535         Two new methods are added to KJSProxy: setPaused and isPaused. When
31536         setPaused(true) is called, JS event handlers are blocked and
31537         javascript: URIs will not be evaluated.
31539         Reviewed by Tim Hatcher.
31541         * bindings/js/kjs_events.cpp:
31542         (WebCore::JSAbstractEventListener::handleEvent):
31543           - Removed some old KJS_DEBUGGER code
31544           - Don't run the handler if the KJSProxy is paused.
31545         * bindings/js/kjs_proxy.cpp:
31546         (WebCore::KJSProxy::KJSProxy): Initialize new member.
31547         * bindings/js/kjs_proxy.h: Added new methods.
31548         * loader/FrameLoader.cpp:
31549         (WebCore::FrameLoader::executeScript): Don't execute the script if the
31550         KJSProxy is paused.
31552 2008-03-20  Jon Honeycutt  <jhoneycutt@apple.com>
31554         Reviewed by Anders.
31556         Fix Windows warning / leak: warning C4150: deletion of pointer to
31557         incomplete type 'WebCore::PluginRequest'; no destructor called
31559         * plugins/PluginView.cpp: Move PluginRequest class to PluginView.h so
31560         Windows PluginView destructor can use WTF::deleteAllValues to clean up
31561         m_requests.
31562         * plugins/PluginView.h:
31563         (WebCore::PluginRequest::PluginRequest):
31564         (WebCore::PluginRequest::frameLoadRequest):
31565         (WebCore::PluginRequest::notifyData):
31566         (WebCore::PluginRequest::sendNotification):
31567         (WebCore::PluginRequest::shouldAllowPopups):
31569 2008-03-20  Mark Rowe  <mrowe@apple.com>
31571         Reviewed by Sam Weinig.
31573         Ensure that the defines in FEATURE_DEFINES are sorted so that they will match the default settings of build-webkit.
31574         This will prevent the world from being rebuilt if you happen to switch between building in Xcode and with build-webkit on the
31575         command-line.
31577         * Configurations/WebCore.xcconfig:
31579 2008-03-20  Jon Honeycutt  <jhoneycutt@apple.com>
31581         Reviewed by Anders.
31583         <rdar://problem/5809600> REGRESSION:
31584         http/tests/plugins/cross-frame-object-access.html hangs Windows Layout
31585         Tests
31587         r30897 changed the way we conditionalize this feature.
31589         * plugins/PluginView.cpp:
31590         (WebCore::PluginView::getValue): Test ENABLE(NETSCAPE_PLUGIN_API)
31591         instead of USE(NPOBJECT).
31592         (WebCore::PluginView::bindingInstance): Same.
31594 2008-03-20  Adam Roben  <aroben@apple.com>
31596         Highlight nodes when you hover over them in the Console
31598         Part of Bug 16532: Inspector should highlight nodes in page when
31599         hovering over nodes in Inspector's interface
31601         <http://bugs.webkit.org/show_bug.cgi?id=16532>
31602         <rdar://problem/5712896>
31604         Reviewed by Tim Hatcher.
31606         * page/inspector/ConsolePanel.js:
31607         (WebInspector.ConsolePanel._formatnode): Add mouseover/mouseout event
31608         listeners to highlight the node and clear the highlight.
31610 2008-03-20  Adam Roben  <aroben@apple.com>
31612         Highlight nodes in the page when you hover over their DOM breadcrumbs
31614         Part of Bug 16532: Inspector should highlight nodes in page when
31615         hovering over nodes in Inspector's interface
31617         <http://bugs.webkit.org/show_bug.cgi?id=16532>
31618         <rdar://problem/5712896>
31620         Reviewed by Tim Hatcher.
31622         * page/inspector/DocumentPanel.js:
31623         (WebInspector.DocumentPanel): Add an mouseout event listener to the
31624         breadcrumbs element to clear the highlighted node.
31625         (WebInspector.DocumentPanel.updateBreadcrumbs): Change the mouseover
31626         event listener to highlight the node represented by the hovered
31627         breadcrumb.
31629 2008-03-20  Adam Roben  <aroben@apple.com>
31631         Highlight nodes in the page when you hover over them in the DOM tree
31633         Part of Bug 16532: Inspector should highlight nodes in page when
31634         hovering over nodes in Inspector's interface
31636         <http://bugs.webkit.org/show_bug.cgi?id=16532>
31637         <rdar://problem/5712896>
31639         The inspected node is no longer highlighted (unless, of course, you
31640         hover over it).
31642         Reviewed by Tim Hatcher.
31644         * page/inspector/DocumentPanel.js:
31645         (WebInspector.DocumentPanel):
31646           - Don't highlight the focused node when the DOM tree is shown
31647           - Added mousemove/mouseout event listeners to set/clear the
31648             highlighted node. These are added to the root of the DOM tree
31649             instead of to each individual list item to avoid flashing as the
31650             mouse moves between nodes.
31651         (WebInspector.DocumentPanel.set focusedDOMNode): Don't highlight the
31652         focused node.
31653         (WebInspector.DocumentPanel._onmousemove): Highlight the node under
31654         the mouse.
31656 2008-03-20  Adam Roben  <aroben@apple.com>
31658         Show nodes' content/padding/border/margin boxes in the node highlight
31660         Part of Bug 17221: Node highlight should show node metrics
31662         <http://bugs.webkit.org/show_bug.cgi?id=17221>
31663         <rdar://problem/5732822>
31665         Outstanding issues:
31666           1) We don't show padding/border/margins for inlines
31667           2) We don't show any numeric metrics, we just draw the boxes
31668           3) We'll probably want to tweak the look of the highlight some, at
31669              least to make the boxes better distinguishable
31671         Reviewed by Tim Hatcher.
31673         * page/InspectorController.cpp:
31674         (WebCore::drawOutlinedRect): Added. Just draws a single rect.
31675         (WebCore::drawHighlightForBoxes): Added. Takes the rects we calculated
31676         for the node and draws the highlight.
31677         (WebCore::InspectorController::drawNodeHighlight): Calculates the
31678         content/padding/border/margin boxes for blocks and passes them off to
31679         drawHighlightForBoxes. The behavior for inlines is for now unchanged.
31681 2008-03-20  Adam Roben  <aroben@apple.com>
31683         Fix RenderContainer's override of addLineBoxRects to match RenderObject's
31685         RenderContainer::addLineBoxRects was never getting called because its
31686         parameters didn't match those of RenderObject::addLineBoxRects.
31688         Reviewed by Mitz Pettel.
31690         No test possible.
31692         * rendering/RenderContainer.cpp: Added an optional bool
31693         useSelectionHeight parameter to match RenderObject's method.
31694         * rendering/RenderContainer.h: Ditto.
31696 2008-03-20  Marco Barisione  <marco.barisione@collabora.co.uk>
31698         Reviewed by Alp Toker.
31700         http://bugs.webkit.org/show_bug.cgi?id=17946
31701         [GTK] Widgets are not clipped
31703         * platform/gtk/RenderThemeGtk.cpp:
31704         (WebCore::paintMozWidget): pass the clipping rectangle to
31705         moz_gtk_widget_paint() instead of just the widget rectangle.
31707 2008-03-20  David Hyatt  <hyatt@apple.com>
31709         Fix for http://bugs.webkit.org/show_bug.cgi?id=9279
31711         Make :hover work with the adjacent sibling selector.  This fix makes all forms of dynamic changes
31712         (class name changes, :hover, :focus, etc.) work properly when used with the + selector.
31714         Reviewed by weinig
31716         Added fast/css/dynamic-sibling-selector.html
31718         * dom/Element.cpp:
31719         (WebCore::Element::recalcStyle):
31721 2008-03-20  Aaron Golden  <aegolden@gmail.com>
31723         Reviewed by Darin and David Kilzer.
31725         Addresses <http://bugs.webkit.org/show_bug.cgi?id=15263>, which caused certain marquees to not display.
31727         Test: fast/html/marquee-scroll.html
31729         * html/HTMLMarqueeElement.cpp:
31730         (WebCore::HTMLMarqueeElement::parseMappedAttribute):
31732 2008-03-20  Adam Roben  <aroben@apple.com>
31734         Export InspectorController::drawNodeHighlight
31736         Reviewed by Tim Hatcher.
31738         * WebCore.base.exp: Also sorted this file.
31740 2008-03-19  Stephanie Lewis  <slewis@apple.com>
31742         Rubber-stamped by Anders.
31744         Fix Windows Build
31746         * platform/cf/SharedBufferCF.cpp:
31747         (WebCore::SharedBuffer::createCFData):
31749 2008-03-19  Stephanie Lewis <slewis@apple.com>
31751         Rubber-stamped by Anders.
31753         Fix Windows Build
31755         * platform/SharedBuffer.h:
31757 2008-03-19  Justin Garcia  <justin.garcia@apple.com>
31759         Reviewed by Oliver.
31760         
31761         <rdar://problem/5780697> Copying content with CSS property values that are percentages can cause fidelity issues
31762          
31763         Elements with height: x%; overflow: visible; overlap what's below them when they are copied from
31764         a document in quirksmode and pasted into to one in standards mode.  This fix uses the computed 
31765         the value for a property if its value is a percentage.
31766         
31767         * css/CSSMutableStyleDeclaration.cpp:
31768         (WebCore::CSSMutableStyleDeclaration::addParsedProperty): Added so that we don't have to use
31769         setProperty from appendStartMarkup.  We already have a parsed property value, so we shouldn't
31770         use setProperty, since it takes in a String.  If we did, we would have to call CSSValue::cssText()
31771         for a String only to re-parse it in setProperty.  This wasn't extremely important now, but it will 
31772         be as we compute more properties to fix the rest of the copy/paste fidelity bugs.
31773         * css/CSSMutableStyleDeclaration.h:
31774         * editing/markup.cpp:
31775         (WebCore::appendStartMarkup): Compute values for properties that have percentage values.  We could
31776         perhaps narrow this special case to only include properties that are effected by quirksmode.
31778 2008-03-19  Sam Weinig  <sam@webkit.org>
31780         Reviewed by Anders Carlsson.
31782         Fix for <rdar://problem/5785694>
31783         Crash occurs at KJS::Collector::collect() when loading web clip widgets with a PAC file
31785         Make the activeExecStates stack per JSGlobalObject instead of static to ensure
31786         thread safety.
31788         * bindings/objc/WebScriptObject.mm:
31789         (+[WebScriptObject throwException:]): Change to throw an exception on the current
31790         GlobalObject instead of the top of the static activeExecStates stack.
31791         (-[WebScriptObject setException:]): Change to use the top of the rootObjects GlobalObject
31792         instead of the top of the static activeExecStates stack.
31794         * bridge/c/c_instance.cpp:
31795         * bridge/c/c_instance.h:
31796         * bridge/jni/jni_instance.cpp:
31797         (JavaInstance::virtualBegin):
31798         (JavaInstance::virtualEnd):
31799         * bridge/jni/jni_instance.h:
31800         * bridge/objc/objc_instance.h:
31801         * bridge/objc/objc_instance.mm:
31802         (ObjcInstance::~ObjcInstance):
31803         (ObjcInstance::virtualBegin):
31804         (ObjcInstance::virtualEnd):
31805         * bridge/runtime.cpp:
31806         (KJS::Bindings::Instance::setDidExecuteFunction):
31807         (KJS::Bindings::Instance::didExecuteFunction):
31808         (KJS::Bindings::Instance::setCurrentGlobalObject): Added.
31809         (KJS::Bindings::Instance::currentGlobalObject): Added.
31810         (KJS::Bindings::Instance::begin):
31811         (KJS::Bindings::Instance::end):
31812         * bridge/runtime.h:
31813         (KJS::Bindings::Instance::virtualBegin): Renamed from begin().
31814         (KJS::Bindings::Instance::virtualEnd): Renamed from end().
31815         We now store the currently active globalObject everytime we cross the runtime
31816         object boundary.  To do this, we take advantage of the existing begin/end
31817         methods that are called when crossing this boundary, making begin set the current
31818         globalObject and then call the old begin, now called virtualBegin.
31820 2008-03-19  Brady Eidson  <beidson@apple.com>
31822         Reviewed by Anders
31824         Change SharedBuffer so the wrapping platform data aspect can be shared with all CoreFoundation platforms
31825         (Mac and Windows instead of just Mac)
31827         * WebCore.vcproj/WebCore.vcproj: Add SharedBufferCF.cpp
31828         * WebCore.xcodeproj/project.pbxproj: Ditto
31830         * platform/SharedBuffer.cpp:
31831         * platform/SharedBuffer.h: Change the private c'tor from NSData to CFDataRef, other PLATFORM tweaks
31833         * platform/cf/SharedBufferCF.cpp: Added.
31834         (WebCore::SharedBuffer::SharedBuffer):
31835         (WebCore::SharedBuffer::createCFData): Non-Mac version of createCFData
31836         (WebCore::SharedBuffer::hasPlatformData):
31837         (WebCore::SharedBuffer::platformData):
31838         (WebCore::SharedBuffer::platformDataSize):
31839         (WebCore::SharedBuffer::maybeTransferPlatformData):
31840         (WebCore::SharedBuffer::clearPlatformData):
31842         * platform/mac/SharedBufferMac.mm:
31843         (WebCore::SharedBuffer::wrapNSData): Use the CFDataRef constructor via toll-free bridging
31844         (WebCore::SharedBuffer::createCFData): Mac-specific version of createCFData
31846 2008-03-19  Oliver Hunt  <oliver@apple.com>
31848         Reviewed by Antti.
31850         Bug 17954: Canvas arc() with radius of 0 throws exception
31851         http://bugs.webkit.org/show_bug.cgi?id=17954
31853         Simple fix -- use >= instead of > when validating the radius.
31855         * html/CanvasRenderingContext2D.cpp:
31856         (WebCore::CanvasRenderingContext2D::arc):
31858 2008-03-19  Justin Garcia  <justin.garcia@apple.com>
31860         Reviewed by Oliver.
31862         <rdar://problem/5794920> Acid3: Assertion failure in VisiblePosition::previous when clicking on results (17004)
31863         
31864         The position inside an empty inline-block was a candidate, but upstream and downstream
31865         would move across it without stopping.  This confused canonicalPosition, since no more
31866         than two candidates should have the same upstream/downstream (be visually equivalent).
31867         
31868         Code was added intentionally in isCandidate to make VisiblePositions inside empty 
31869         inline-blocks, so we need to make upstream/downstream understand that.
31871         * dom/Position.cpp:
31872         (WebCore::endsOfNodeAreVisuallyDistinctPositions): upstream and downstream used to only
31873         stop when entering or leaving a non-inline element (referred to as a "block").  We must also 
31874         avoid entering or leaving an empty inline-block.  This will allow a VisiblePosition there, to 
31875         match up with what the code in isCandidate intended.
31876         (WebCore::enclosingVisualBoundary): Removed enclosingBlock and replaced it with this.
31877         (WebCore::Position::upstream): Added better comments, called the new functions.
31878         (WebCore::Position::downstream): Ditto.
31879         * dom/Position.h:
31881 2008-03-19  Dan Bernstein  <mitz@apple.com>
31883         Rubber-stamped by John Sullivan.
31885         - change CSS property and value keyword constants from all-caps with
31886           underscores to intra-caps.
31888         * css/makeprop.pl:
31889         * css/makevalues.pl:
31890         * All files using the constants
31892 2008-03-19  Adam Roben  <aroben@apple.com>
31894         Make clicking anywhere in a row in the DOM tree select that row's node
31896         We now have mousedown and dblclick event listeners on the root of the
31897         tree that forward the event to the node on the row the mouse is over.
31899         Reviewed by Tim Hatcher.
31901         * page/inspector/DocumentPanel.js:
31902         (WebInspector.DocumentPanel): Added a dblclick and mousedown event
31903         listeners to the root of the tree.
31904         (WebInspector.DocumentPanel._treeElementFromEvent): Added. Finds the
31905         tree element for the row underneath the mouse.
31906         (WebInspector.DocumentPanel._ondblclick): Added. Sends the dblclick
31907         event on to the tree element in the current row.
31908         (WebInspector.DocumentPanel._onmousedown): Added. Selects the tree
31909         element in the current row.
31910         * page/inspector/treeoutline.js:
31911         (TreeOutline.treeElementFromPoint): Added.
31912         (TreeElement.treeElementSelected): Changed to call
31913         TreeElement.isEventWithinDisclosureTriangle, and added an early return.
31914         (TreeElement.treeElementToggled): Ditto.
31915         (TreeElement.isEventWithinDisclosureTriangle): Added.
31916         * page/inspector/utilities.js:
31917         (Node.enclosingNodeOrSelfWithNodeNameInArray): Added.
31918         (Node.enclosingNodeOrSelfWithNodeName): Now just calls
31919         enclosingNodeOrSelfWithNodeNameInArray.
31920         (Elemnt.get totalOffsetLeft): Added.
31921         (Elemnt.get totalOffsetTop): Added.
31923 2008-03-19  Dan Bernstein  <mitz@apple.com>
31925         Reviewed by Sam Weinig.
31927         - fix assertion failure in RenderBlock::determineStartPosition() at http://www.wired.com/techbiz/it/magazine/16-04/bz_apple
31929         Test: fast/repaint/line-flow-with-floats-10.html
31931         * rendering/bidi.cpp:
31932         (WebCore::RenderBlock::determineStartPosition): Removed bogus assertion.
31933         If the float's top margin has changed and it has not been repositioned
31934         yet, we do not have its new y position.
31936 2008-03-19  David Hyatt  <hyatt@apple.com>
31938         New implementation of full page zoom.  Because of how much doesn't transform when zooming, and because
31939         of the need to obey viewport constraints, I decided to take a completely different approach.  Now CSS
31940         lengths and intrinsic sizes are simply adjusted by the zoom factor.  This approach works much better and
31941         avoids pixel cracks more than the old approach.   In addition widgets "just work", namely plugins zoom
31942         and scrollbars do not.
31944         This patch also implements the IE zoom CSS property.  This property allows fine-grained control over
31945         zooming at the element level.  It takes values of normal | <number> | <percentage> to match WinIE.  In
31946         addition, in the vein of text-size-adjust for text zooming, I have extended the zoom property with an
31947         extra value, reset.  The reset keyword can be used to prevent a section of the page from scaling at all
31948         when a zoom is applied.
31950         Reviewed by olliej
31952         * css/CSSComputedStyleDeclaration.cpp:
31953         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
31954         Support the new 'zoom' property for getComputedStyle.
31956         * css/CSSParser.cpp:
31957         (WebCore::CSSParser::parseValue):
31958         Code that parses the 'zoom' property.
31960         * css/CSSPrimitiveValue.cpp:
31961         (WebCore::CSSPrimitiveValue::computeLengthInt):
31962         (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
31963         (WebCore::CSSPrimitiveValue::computeLengthShort):
31964         (WebCore::CSSPrimitiveValue::computeLengthFloat):
31965         (WebCore::CSSPrimitiveValue::computeLengthDouble):
31966         * css/CSSPrimitiveValue.h:
31967         Extend all of the computeLength methods to take a multiplier so that lengths can be adjusted by the
31968         zoom factor.
31970         * css/CSSPropertyNames.in:
31971         Add the new zoom property to the list of properties we understand.
31973         * css/CSSStyleSelector.cpp:
31974         (WebCore::CSSStyleSelector::applyDeclarations):
31975         (WebCore::CSSStyleSelector::applyProperty):
31976         (WebCore::CSSStyleSelector::mapBackgroundSize):
31977         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
31978         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
31979         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
31980         * css/CSSStyleSelector.h:
31981         (WebCore::CSSStyleSelector::setStyle):
31982         Pass in the zoom factor when computing all lengths in CSS.
31984         * css/CSSValueKeywords.in:
31985         Add support for the 'reset' keyword of the zoom property.
31987         * dom/Document.cpp:
31988         (WebCore::Document::recalcStyle):
31989         Set the 'zoom' CSS property on the RenderView.  This is how we implement full page zoom.
31991         * html/CanvasRenderingContext2D.cpp:
31992         (WebCore::size):
31993         Make sure the back end canvas size ignores zooming when rendering images.
31995         * html/HTMLImageElement.cpp:
31996         (WebCore::HTMLImageElement::width):
31997         (WebCore::HTMLImageElement::height):
31998         (WebCore::HTMLImageElement::naturalWidth):
31999         (WebCore::HTMLImageElement::naturalHeight):
32000         Use the unzoomed width/height if we have no style information in HTMLImageElement.cpp.
32002         * loader/CachedImage.cpp:
32003         (WebCore::CachedImage::ref):
32004         (WebCore::CachedImage::imageSize):
32005         (WebCore::CachedImage::imageRect):
32006         * loader/CachedImage.h:
32007         (WebCore::CachedImage::canRender):
32008         Force access to the CachedImage metrics to take a multiplier so that people have to think about
32009         the zoom factor.  The "intrinsic size" of the image then takes that into account.
32011         * loader/ImageDocument.cpp:
32012         (WebCore::ImageTokenizer::finish):
32013         (WebCore::ImageDocument::scale):
32014         (WebCore::ImageDocument::resizeImageToFit):
32015         (WebCore::ImageDocument::imageChanged):
32016         (WebCore::ImageDocument::restoreImageSize):
32017         (WebCore::ImageDocument::imageFitsInWindow):
32018         Make sure image documents respect the zoom.
32020         * page/AnimationController.cpp:
32021         (WebCore::ImplicitAnimation::animate):
32022         Make the 'zoom' CSS property work with CSS transitions.
32024         * page/Frame.h:
32025         (WebCore::Frame::pageZoomFactor):
32026         (WebCore::Frame::textZoomFactor):
32027         Add accessors for obtaining the pageZoom vs. textZoom.
32029         * page/FrameView.cpp:
32030         (WebCore::FrameView::adjustViewSize):
32031         Remove the old zoom implementation that used transforms.
32033         * page/mac/WebCoreAXObject.mm:
32034         (-[WebCoreAXObject accessibilityIsIgnored]):
32035         Pass in the zoom factor.
32037         * rendering/InlineFlowBox.cpp:
32038         (WebCore::InlineFlowBox::paintBackground):
32039         (WebCore::InlineFlowBox::paintBoxDecorations):
32040         Pass in the zoom factor when testing for size.
32042         * rendering/RenderBox.cpp:
32043         (WebCore::RenderBox::calculateBackgroundSize):
32044         (WebCore::RenderBox::imageChanged):
32045         (WebCore::RenderBox::paintBackgroundExtended):
32046         (WebCore::RenderBox::calcHeight):
32047         * rendering/RenderFrameSet.cpp:
32048         (WebCore::RenderFrameSet::layout):
32049         * rendering/RenderHTMLCanvas.cpp:
32050         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
32051         * rendering/RenderHTMLCanvas.h:
32052         (WebCore::RenderHTMLCanvas::renderName):
32053         (WebCore::RenderHTMLCanvas::intrinsicSizeChanged):
32054         * rendering/RenderImage.cpp:
32055         (WebCore::RenderImage::setImageSizeForAltText):
32056         (WebCore::RenderImage::imageChanged):
32057         (WebCore::RenderImage::calcReplacedWidth):
32058         (WebCore::RenderImage::calcReplacedHeight):
32059         * rendering/RenderImage.h:
32060         (WebCore::RenderImage::intrinsicSizeChanged):
32061         * rendering/RenderListMarker.cpp:
32062         (WebCore::RenderListMarker::layout):
32063         (WebCore::RenderListMarker::imageChanged):
32064         (WebCore::RenderListMarker::getRelativeMarkerRect):
32065         * rendering/RenderObject.cpp:
32066         (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
32067         (WebCore::RenderObject::paintBorder):
32068         Pass in the zoom factor when testing for size.
32070         * rendering/RenderReplaced.cpp:
32071         (WebCore::RenderReplaced::RenderReplaced):
32072         (WebCore::RenderReplaced::setStyle):
32073         (WebCore::RenderReplaced::intrinsicSizeChanged):
32074         * rendering/RenderReplaced.h:
32075         Added a new call when the zoom factor changes, intrinsicSizeChanged().  Replaced element subclasses
32076         respond to this via overrides.
32078         * rendering/RenderStyle.cpp:
32079         (WebCore::StyleVisualData::StyleVisualData):
32080         (WebCore::StyleInheritedData::StyleInheritedData):
32081         (WebCore::StyleInheritedData::operator==):
32082         (WebCore::RenderStyle::diff):
32083         * rendering/RenderStyle.h:
32084         (WebCore::StyleVisualData::operator==):
32085         (WebCore::RenderStyle::zoom):
32086         (WebCore::RenderStyle::zoomInEffect):
32087         (WebCore::RenderStyle::setZoom):
32088         (WebCore::RenderStyle::setZoomInEffect):
32089         (WebCore::RenderStyle::initialZoom):
32090         Support for 'zoom' in the RenderStyle.  "zoomInEffect" represents the computed zoom taking into account
32091         all the zooms specified on ancestors.
32093         * rendering/RenderTableCol.cpp:
32094         (WebCore::RenderTableCol::imageChanged):
32095         * rendering/RenderTableRow.cpp:
32096         (WebCore::RenderTableRow::imageChanged):
32097         * rendering/RenderTableSection.cpp:
32098         (WebCore::RenderTableSection::imageChanged):
32099         * rendering/RenderVideo.h:
32100         (WebCore::RenderVideo::intrinsicSizeChanged):
32101         Pass in the zoom factor.
32103         * rendering/RenderView.cpp:
32104         (WebCore::RenderView::calcHeight):
32105         (WebCore::RenderView::calcWidth):
32106         (WebCore::RenderView::layout):
32107         (WebCore::RenderView::viewHeight):
32108         (WebCore::RenderView::viewWidth):
32109         * rendering/RenderView.h:
32110         (WebCore::RenderView::zoomFactor):
32111         Back out the old implementation.
32113 2008-03-19  Adam Roben  <aroben@apple.com>
32115         Rename firstParent* methods to enclosingNode*
32117         Rubberstamped by John Sullivan.
32119         * page/inspector/ConsolePanel.js:
32120         * page/inspector/DocumentPanel.js:
32121         * page/inspector/NetworkPanel.js:
32122         * page/inspector/inspector.js:
32123         * page/inspector/utilities.js:
32125 2008-03-19  Dan Bernstein  <mitz@apple.com>
32127         Reviewed by John Sullivan.
32129         - fix <rdar://problem/5805070> CrashTracer: [USER] 33 crashes in Safari at com.apple.WebCore: WebCore::FrameView::layout + 431
32131         Test: fast/dynamic/subtree-parent-static-y.html
32133         * rendering/RenderObject.cpp:
32134         (WebCore::RenderObject::markContainingBlocksForLayout): Avoid calling
32135         this method on the parent if the parent is the new layout subtree root,
32136         which would result in marking all the way to the top, when it should
32137         actually do nothing.
32139 2008-03-19  Mark Rowe  <mrowe@apple.com>
32141         Reviewed by Oliver Hunt.
32143         Use WTF::Unicode abstraction rather than using ICU functions directly.
32145         * html/PreloadScanner.cpp:
32146         (WebCore::PreloadScanner::tokenize):
32148 2008-03-19  Mark Rowe  <mrowe@apple.com>
32150         Attempt to fix the Gtk build.
32152         * platform/network/curl/ResourceHandleCurl.cpp:
32153         (WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate):
32155 2008-03-18  Darin Adler  <darin@apple.com>
32157         Reviewed by Maciej.
32159         - Speed up JavaScript built-in properties by changing the
32160           hash table to take advantage of the identifier objects
32162         5% speedup for Acid3 test 26
32164         * bindings/js/JSDOMWindowBase.cpp:
32165         (WebCore::JSDOMWindowBase::getOwnPropertySlot): Update for change to HashTable.
32166         (WebCore::JSDOMWindowBase::put): Ditto.
32167         * bindings/js/JSDOMWindowCustom.cpp:
32168         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Ditto.
32169         * bindings/js/JSHTMLInputElementBase.cpp:
32170         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot): Ditto.
32171         * bindings/js/JSHistoryCustom.cpp:
32172         (WebCore::JSHistory::customGetOwnPropertySlot): Ditto.
32173         * bindings/js/JSLocation.cpp:
32174         (WebCore::JSLocation::customGetOwnPropertySlot): Ditto.
32175         (WebCore::JSLocation::put): Ditto.
32176         * bindings/js/kjs_binding.cpp:
32177         (WebCore::nonCachingStaticFunctionGetter): Ditto.
32179         * bindings/scripts/CodeGeneratorJS.pm: Same changes as in the
32180         create_hash_table script.
32182 2008-03-18  Matt Lilek  <webkit@mattlilek.com>
32184         Fix the Gtk build for real this time.
32186         * platform/network/curl/AuthenticationChallenge.h:
32188 2008-03-18  Sam Weinig  <sam@webkit.org>
32190         Reviewed by Anders Carlsson.
32192         Fix for http://bugs.webkit.org/show_bug.cgi?id=17057
32193         REGRESSION: Frequent random crashes in WebCore::JSNodeList::indexGetter
32194         <rdar://problem/5725058>
32196         Tests: fast/dom/NodeList/5725058-crash-scenario-1.html
32197                fast/dom/NodeList/5725058-crash-scenario-2.html
32198                fast/dom/NodeList/5725058-crash-scenario-3.html
32200         * dom/ChildNodeList.cpp: 
32201         (WebCore::ChildNodeList::ChildNodeList):
32202         * dom/ChildNodeList.h:
32203         Remove rootNodeChildrenChanged() method and fix the constructor to not 
32204         pass in a needsNotifications argument to DynamicNodeList, as it no longer
32205         takes one.
32207         * dom/ClassNodeList.cpp:
32208         (WebCore::ClassNodeList::ClassNodeList):
32209         Don't pass the needsNotifications argument to DynamicNodeList.
32211         * dom/ContainerNode.cpp:
32212         (WebCore::ContainerNode::childrenChanged):
32213         Rename call to hasNodeLists() to hasNodeListCaches().
32215         * dom/Document.cpp:
32216         (WebCore::Document::Document):
32217         (WebCore::Document::~Document): Zero out the m_document variable to signify
32218         to destructors down the destruction chain that this is a Document type node
32219         being destructed, and thus, accessing document() is prohibited.
32220         * dom/Document.h:
32221         (WebCore::Document::addNodeListCache): Renamed from addNodeList.
32222         (WebCore::Document::removeNodeListCache): Renamed from removeNodeList, adds assertion.
32223         (WebCore::Document::hasNodeListCaches): Renamed from hasNodeListCaches.
32224         Rename m_numNodeLists to m_numNodeListCaches.
32226         * dom/DynamicNodeList.cpp:
32227         (WebCore::DynamicNodeList::DynamicNodeList):
32228         (WebCore::DynamicNodeList::~DynamicNodeList):
32229         (WebCore::DynamicNodeList::invalidateCache):
32230         (WebCore::DynamicNodeList::Caches::Caches):
32231         * dom/DynamicNodeList.h:
32232         (WebCore::DynamicNodeList::hasOwnCaches):
32233         Remove the needsNotifications concept from DynamicNodeList, instead, manually
32234         invalidate the cache for lists that own their own cache.
32236         * dom/NameNodeList.cpp:
32237         (WebCore::NameNodeList::NameNodeList):
32238         * dom/NameNodeList.h:
32239         Remove rootNodeAttributeChanged() method and fix the constructor to not 
32240         pass in a needsNotifications argument to DynamicNodeList, as it no longer
32241         takes one.
32243         * dom/Node.cpp:
32244         (WebCore::Node::~Node): Decrement the document's nodeListCache count
32245         if we had a NodeListsNodeData cache and this is not the Document being
32246         destructor, as tagged by a null m_document.
32247         (WebCore::Node::childNodes): Increment the document's nodeListCache count 
32248         if we need create the NodeListsNodeData.
32249         (WebCore::Node::registerDynamicNodeList): Increment the document's nodeListCache count 
32250         if we need create the NodeListsNodeData.  Change to invalidate all the caches, instead 
32251         of just the ChildNodeList, if document has had no NodeListCaches.
32252         (WebCore::Node::unregisterDynamicNodeList): Change to remove the cache from the m_listsWithCaches
32253         set if it is owned by the NodeList and clear the m_nodeLists if it is empty.
32254         (WebCore::Node::notifyLocalNodeListsAttributeChanged): Move logic to 
32255         NodeListsNodeData::invalidateAttributeCaches and clear the cache pointer if it is empty.
32256         (WebCore::Node::notifyLocalNodeListsChildrenChanged): Move logic to 
32257         NodeListsNodeData::invalidateCaches and clear the cache pointer if it is empty.
32258         (WebCore::Node::notifyNodeListsChildrenChanged): Cleanup.
32259         (WebCore::Node::getElementsByName): Increment the document's nodeListCache count 
32260         if we need create the NodeListsNodeData.
32261         (WebCore::Node::getElementsByClassName): Increment the document's nodeListCache count 
32262         if we need create the NodeListsNodeData.
32264         (WebCore::NodeListsNodeData::invalidateCaches): Added.
32265         (WebCore::NodeListsNodeData::invalidateAttributeCaches): Added.
32266         (WebCore::NodeListsNodeData::isEmpty): Added.
32268         * dom/TagNodeList.cpp:
32269         (WebCore::TagNodeList::TagNodeList):
32270         Don't pass the needsNotifications argument to DynamicNodeList.
32272 2008-03-18  Matt Lilek  <webkit@mattlilek.com>
32274         Not reviewed, build fix.
32276         * platform/network/curl/AuthenticationChallenge.h:
32278 2008-03-18  Brent Fulgham  <bfulgham@gmail.com>
32280         Reviewed by Adam Roben.
32282         Provide some stub implementations for things that WebKit
32283         uses for performing authentication/challenge activities.  This
32284         is in support of http://bugs.webkit.org/show_bug.cgi?id=17837
32286         * platform/network/ResourceHandle.h:
32287         * platform/network/curl/AuthenticationChallenge.h:
32288         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
32289         (WebCore::AuthenticationChallenge::sourceHandle):
32291 2008-03-18  Eric Seidel  <eric@webkit.org>
32293         Reviewed by Oliver.
32295         Fix SVGImage crash seen once, and obvious via code inspection.
32296         
32297         I was not able to find a test case for this.
32299         * svg/graphics/SVGImage.cpp:
32300         (WebCore::SVGImage::setContainerSize):
32301         (WebCore::SVGImage::usesContainerSize):
32302         (WebCore::SVGImage::hasRelativeWidth):
32303         (WebCore::SVGImage::hasRelativeHeight):
32305 2008-03-18  Rodney Dawes  <dobey@wayofthemonkey.com>
32307         Fix Qt build after r31123.
32309         Add PluginView methods to TemporaryLinkStubs.
32311         * platform/qt/TemporaryLinkStubs.cpp:
32313 2008-03-18  Sam Weinig  <sam@webkit.org>
32315         Reviewed by Darin Adler.
32317         - Speed up JavaScript prototype and constructor object creation
32318           using a static Identifier in the self() methods to avoid the
32319           cost of creating one from a c-string each time.
32321         5% speedup for Acid3 test 26
32323         * bindings/scripts/CodeGeneratorJS.pm:
32325 2008-03-18  Antti Koivisto  <antti@apple.com>
32327         Reviewed by Mark Rowe.
32329         Enable preloading for other platforms besides Mac.
32331         * GNUmakefile.am:
32332         * WebCore.pro:
32333         * WebCore.vcproj/WebCore.vcproj:
32334         * WebCoreSources.bkl:
32335         * html/HTMLTokenizer.cpp:
32336         * html/HTMLTokenizer.h:
32337         * html/PreloadScanner.cpp:
32338         (WebCore::PreloadScanner::tokenize):
32340 2008-03-18  Dan Bernstein  <mitz@apple.com>
32342         Reviewed by Adele Peterson.
32344         - fix <rdar://problem/5805127> REGRESSION (r31116): Assertion failure (floatIndex < floats.size()) in RenderBlock::determineStartPosition() at digg.com
32346         Test: fast/dynamic/floating-to-positioned.html
32348         * rendering/RenderObject.cpp:
32349         (WebCore::RenderObject::setStyle): Added code to remove a float from
32350         object lists if its position property changes to something other than
32351         static, since then it ceases to be a float.
32353 2008-03-18  Adam Roben  <aroben@apple.com>
32355         Windows build fix after r31123
32357         * plugins/win/PluginViewWin.cpp: Add back MozillaUserAgent.
32359 2008-03-18  Dan Bernstein  <mitz@apple.com>
32361         Reviewed by Darin Adler.
32363         - eliminate RenderFlow::m_clear
32365         * rendering/RenderBlock.cpp:
32366         (WebCore::RenderBlock::layoutBlock): Removed code to set m_clear.
32367         (WebCore::RenderBlock::newLine): Added a 'clear' parameter.
32368         * rendering/RenderBlock.h:
32369         * rendering/RenderFlow.h:
32370         (WebCore::RenderFlow::RenderFlow): Removed initialization of m_clear.
32371         * rendering/bidi.cpp:
32372         (WebCore::RenderBlock::layoutInlineChildren): Added a local 'clear'
32373         variable, passing a pointer to it to findNextLineBreak() and its value
32374         to newLine(). 
32375         (WebCore::RenderBlock::findNextLineBreak): Added a 'clear' parameter,
32376         which this method adjusts when it encounters a <br>.
32378 2008-03-18  Simon Hausmann  <hausmann@webkit.org>
32380         Reviewed by Holger.
32382         Fix the Qt build and clean up the invoke mechanism for dispatching
32383         functions in the main thread by using QMetaObject::invokeMethod
32384         instead of posting a null event.
32386         * platform/qt/MainThreadQt.cpp:
32388 2008-03-18  Rodney Dawes  <dobey@wayofthemonkey.com>
32390         Fix Mac build from commit of r31123.
32392         Add a typedef for NSView* to PlatformWidget, remove duplicate PluginMessageThrottlerWin definition.
32394         * platform/Widget.h:
32395         * WebCore.vcproj/WebCore.vcproj:
32397 2008-03-18  Rodney Dawes  <dobey@wayofthemonkey.com>
32399         Reviewed by Jon Honeycutt.
32401         Add PluginView.cpp and npapi.cpp to build files.
32402         Copy win/PluginViewWin.cpp to PluginView.cpp for shared code.
32403         Split Windows specific code out of PluginView.cpp.
32404         Add #if USE(NPOBJECT) around dependant code.
32405         Use npruntime_internal.h instead of npapi.h.
32406         Add PlatformWidget typedef to Widget.h.
32407         Update WidgetGtk.cpp for the PlatformWidget usage.
32408         Add needed methods to TemporaryLinkStubs for GTK+ port.
32410         * GNUmakefile.am:
32411         * WebCore.pro:
32412         * WebCoreSources.bkl:
32413         * WebCore.vcproj/WebCore.vcproj:
32414         * plugins/win/PluginViewWin.cpp:
32415         * plugins/PluginView.cpp:
32416         * plugins/PluginView.h:
32417         * plugins/npapi.cpp:
32418         * platform/Widget.h:
32419         * platform/gtk/WidgetGtk.cpp:
32420         * platform/gtk/TemporaryLinkStubs.cpp:
32422 2008-03-17  Darin Adler  <darin@apple.com>
32424         Reviewed by Maciej.
32426         - speed up document property fetching (eliminate the AtomicString
32427           objects made during document property lookup)
32429         3% speedup for Acid3 test 26
32431         * bindings/js/JSDOMWindowBase.cpp:
32432         (WebCore::JSDOMWindowBase::getOwnPropertySlot): Use AtomicString::find to
32433         locate the AtomicString, only if already present. Also call the new faster
32434         versions of the hasNamedItem and hasElementWithId functions that don't
32435         ref/deref the AtomicStringImpl, get inlined, etc.
32436         * bindings/js/JSHTMLDocumentCustom.cpp:
32437         (WebCore::JSHTMLDocument::canGetItemsForName): Ditto.
32438         (WebCore::writeHelper): Use a Vector instead of a String to build up
32439         the string to avoid the bad performance of string append.
32441         * dom/Document.cpp: Tweaked code and comments a bit. Nothing substantive.
32442         * dom/Document.h: Added new hasElementWithId function that's faster than
32443         getElementById because it doesn't ref/deref the AtomicStringImpl*, gets
32444         inlined, doesn't have to handle the 0 case, and doesn't try to return the
32445         element pointer (just a boolean).
32447         * html/HTMLAppletElement.cpp:
32448         (WebCore::HTMLAppletElement::parseMappedAttribute): Use AtomicString
32449         consistently. Also renamed the data member for clarity.
32450         (WebCore::HTMLAppletElement::insertedIntoDocument): Ditto.
32451         (WebCore::HTMLAppletElement::removedFromDocument): Ditto.
32452         * html/HTMLAppletElement.h: Ditto.
32454         * html/HTMLDocument.cpp:
32455         (WebCore::addItemToMap): Use AtomicString instead of String.
32456         (WebCore::removeItemFromMap): Ditto.
32457         (WebCore::HTMLDocument::addNamedItem): Updated for member name change.
32458         (WebCore::HTMLDocument::removeNamedItem): Ditto.
32459         (WebCore::HTMLDocument::addExtraNamedItem): Ditto.
32460         (WebCore::HTMLDocument::removeExtraNamedItem): Ditto.
32461         (WebCore::HTMLDocument::clear): Added. Moved code here from the JavaScript
32462         bindings. If we're going to have an empty placeholder function, there's no
32463         reason to have it in the bindings instead of here.
32464         * html/HTMLDocument.h: Added clear. Changed the named item function
32465         arguments to AtomicString insted of String. Changed the NameCountMap to
32466         use AtomicStringImpl* instead of StringImpl*. Renamed the data members
32467         to add a m_ prefix and remove the needless doc prefix. Added hasNamedItem
32468         and hasExtraNamedItem functions that are inlined and faster than the old
32469         idiom because they doesn't ref/deref the AtomicStringImpl*, get inlined,
32470         and don't have to handle the 0 case.
32471         * html/HTMLDocument.idl: Removed the [Custom] attribute on clear and took
32472         it out of the JavaScript-specific section.
32474         * html/HTMLEmbedElement.cpp:
32475         (WebCore::HTMLEmbedElement::parseMappedAttribute): Use AtomicString
32476         consistently. Also renamed the data member for clarity.
32477         (WebCore::HTMLEmbedElement::insertedIntoDocument): Ditto.
32478         (WebCore::HTMLEmbedElement::removedFromDocument): Ditto.
32479         * html/HTMLFormElement.cpp:
32480         (WebCore::HTMLFormElement::insertedIntoDocument): Ditto.
32481         (WebCore::HTMLFormElement::removedFromDocument): Ditto.
32482         (WebCore::HTMLFormElement::parseMappedAttribute): Ditto.
32483         * html/HTMLFormElement.h: Ditto.
32485         * html/HTMLFrameElementBase.cpp:
32486         (WebCore::HTMLFrameElementBase::openURL): Renamed m_name to m_frameName for
32487         clarity, since the frame name is not the same as the name attribute.
32488         (WebCore::HTMLFrameElementBase::parseMappedAttribute): Ditto.
32489         (WebCore::HTMLFrameElementBase::setNameAndOpenURL): Ditto.
32490         * html/HTMLFrameElementBase.h: Ditto.
32492         * html/HTMLIFrameElement.cpp:
32493         (WebCore::HTMLIFrameElement::parseMappedAttribute): Use AtomicString
32494         consistently. Also renamed the data member for clarity.
32495         (WebCore::HTMLIFrameElement::insertedIntoDocument): Ditto.
32496         (WebCore::HTMLIFrameElement::removedFromDocument): Ditto.
32497         * html/HTMLIFrameElement.h: Ditto.
32498         * html/HTMLImageElement.cpp:
32499         (WebCore::HTMLImageElement::parseMappedAttribute): Ditto.
32500         (WebCore::HTMLImageElement::insertedIntoDocument): Ditto.
32501         (WebCore::HTMLImageElement::removedFromDocument): Ditto.
32502         * html/HTMLImageElement.h: Ditto.
32503         * html/HTMLObjectElement.cpp:
32504         (WebCore::HTMLObjectElement::parseMappedAttribute): Ditto.
32505         (WebCore::HTMLObjectElement::insertedIntoDocument): Ditto.
32506         (WebCore::HTMLObjectElement::removedFromDocument): Ditto.
32507         (WebCore::HTMLObjectElement::updateDocNamedItem): Ditto.
32508         * html/HTMLObjectElement.h: Ditto.
32510         * html/HTMLParamElement.cpp:
32511         (WebCore::HTMLParamElement::isURLAttribute): Use equalIgnoringCase instead
32512         of callling lower().
32514         * html/HTMLPlugInElement.h: Changed the type of m_name. The code that
32515         uses this is in HTMLAppletElement, HTMLEmbedElement, and HTMLObjectElement.
32517         * platform/text/AtomicString.cpp:
32518         (WebCore::equal): Moved to an inline so we can share this code between a
32519         few different functions. It could move to a header too if we want to use
32520         it elsewhere.
32521         (WebCore::UCharBufferTranslator::equal): Change to use inline.
32522         (WebCore::HashAndCharactersTranslator::hash): Added.
32523         (WebCore::HashAndCharactersTranslator::equal): Added.
32524         (WebCore::HashAndCharactersTranslator::translate): Added.
32525         (WebCore::AtomicString::add): Improved the Identifier and UString overloads
32526         to use the already-computed hash code instead of rehashing the string.
32527         (WebCore::AtomicString::find): Added.
32528         * platform/text/AtomicString.h: Added a find function so we can avoid
32529         allocating memory just to look up a string in an atomic string set or map.
32531         * platform/text/StringImpl.h: Added declarations needed for the
32532         AtomicString changes.
32534 2008-03-17  Timothy Hatcher  <timothy@apple.com>
32536         Reviewed by Mark Rowe.
32538         Bug 17908: Various bugs in the Console completion code
32539         http://bugs.webkit.org/show_bug.cgi?id=17908
32541         * page/inspector/ConsolePanel.js:
32542         (WebInspector.ConsolePanel.complete): Moved the code that checked for the caret being at the end
32543         of the prompt into the _caretAtEndOfPrompt helper function.
32544         (WebInspector.ConsolePanel.messagesSelectStart): Clear and redo the auto complete when the selection changes.
32545         (WebInspector.ConsolePanel._caretInsidePrompt): Fixed a logic error that always caused a false result.
32546         (WebInspector.ConsolePanel._caretAtEndOfPrompt): Added. Tests if the selection is a caret at the
32547         end of the prompt.
32548         (WebInspector.ConsolePanel._moveCaretToEndOfPrompt): Changed the offset to use the childNodes length.
32549         This makes sure the caret is at the end when there are multiple text nodes in the prompt.
32551 2008-03-17  Dan Bernstein  <mitz@apple.com>
32553         Rubber-stamped by Dave Hyatt.
32555         - FloatingObject cleanup
32557         Renamed FloatingObject's data members as follows: node -> m_renderer,
32558         startY -> m_top, endY -> m_bottom, left -> m_left, width -> m_width,
32559         and noPaint -> !m_shouldPaint, reversing the meaning of the flag.
32561         Also addressed the FIXME in RenderBlock::containsFloat().
32563         * rendering/RenderBlock.cpp:
32564         (WebCore::RenderBlock::repaintOverhangingFloats):
32565         (WebCore::RenderBlock::paintFloats):
32566         (WebCore::RenderBlock::insertFloatingObject):
32567         (WebCore::RenderBlock::removeFloatingObject):
32568         (WebCore::RenderBlock::positionNewFloats):
32569         (WebCore::RenderBlock::leftRelOffset):
32570         (WebCore::RenderBlock::rightRelOffset):
32571         (WebCore::RenderBlock::nextFloatBottomBelow):
32572         (WebCore::RenderBlock::floatBottom):
32573         (WebCore::RenderBlock::floatRect):
32574         (WebCore::RenderBlock::lowestPosition):
32575         (WebCore::RenderBlock::rightmostPosition):
32576         (WebCore::RenderBlock::leftmostPosition):
32577         (WebCore::RenderBlock::leftBottom):
32578         (WebCore::RenderBlock::rightBottom):
32579         (WebCore::RenderBlock::clearFloats):
32580         (WebCore::RenderBlock::addOverhangingFloats):
32581         (WebCore::RenderBlock::addIntrudingFloats):
32582         (WebCore::RenderBlock::containsFloat): Changed to return false if the
32583         floats lists exists but is empty, since line layout code no longer
32584         relies on the buggy behavior.
32585         (WebCore::RenderBlock::nodeAtPoint):
32586         (WebCore::RenderBlock::adjustForBorderFit):
32587         * rendering/RenderBlock.h:
32588         (WebCore::RenderBlock::containsFloats):
32589         (WebCore::RenderBlock::FloatingObject::FloatingObject):
32590         * rendering/bidi.cpp:
32591         (WebCore::RenderBlock::layoutInlineChildren):
32592         (WebCore::RenderBlock::matchedEndLine):
32594 2008-03-17  Dan Bernstein  <mitz@apple.com>
32596         Reviewed by Dave Hyatt.
32598         - allow incremental relayout of blocks that contain floats
32600         Tests: fast/repaint/line-flow-with-floats-[1-9].html
32602         * rendering/RenderBlock.cpp:
32603         (WebCore::RenderBlock::clearFloatsIfNeeded): Cleaned up by moving most
32604         of the function body out of an if statement which was replaced with an
32605         early return.
32606         (WebCore::RenderBlock::insertFloatingObject): Cleaned up by moving most
32607         of the function body out of an if statement and moving the ASSERT, which
32608         is a crash in release builds, to the beginning. Made this function set
32609         the m_isDescendant flag of floating objects it creates.
32610         (WebCore::RenderBlock::removeFloatingObject): Added a call to
32611         markLinesDirtyInVerticalRange() when removing a float from a block with
32612         inline children.
32613         (WebCore::RenderBlock::markLinesDirtyInVerticalRange): Added. Marks the
32614         lines in the given range as dirty.
32615         (WebCore::RenderBlock::clearFloats): Added code to detect changes to
32616         the geometry of floats intruding into this block from other blocks and
32617         mark any lines whose available width has changed as a result as dirty.
32619         * rendering/RenderBlock.h:
32620         (WebCore::RenderBlock::FloatWithRect::FloatWithRect): Added a structure
32621         to cache a float with its position and size.
32622         (WebCore::RenderBlock::FloatingObject::FloatingObject): Added an
32623         m_isDescendant flag, used by clearFloats() to distinguish between floats
32624         entering the block from outside and floats internal to the block.
32626         * rendering/RootInlineBox.h:
32627         (WebCore::RootInlineBox::floats): Added.
32628         (WebCore::RootInlineBox::floatsPtr): Added.
32629         (WebCore::RootInlineBox::Overflow::Overflow): Added a data member to
32630         hold the floats originating on the line.
32632         * rendering/bidi.cpp:
32633         (WebCore::RenderBlock::layoutInlineChildren): Made the existence of
32634         floats not force a full layout. Changed to cache the geometry of floats
32635         in the block and detect changes to it. If a float's size or position
32636         changes, all lines from that point on are treated as dirty. An exception
32637         is a change in the dimensions of a float on an otherwise-clean line,
32638         which only dirties lines potentially affected by the change (see
32639         determineStartPosition()). Added code to update each RootInlineBox's
32640         set of floats as lines are laid out. Added code to shift floats
32641         belonging to clean lines in the end along with the lines.
32642         (WebCore::RenderBlock::determineStartPosition): Made this function look
32643         for changes to floats' dimensions and mark lines as dirty accordingly.
32644         Also look for new floats and if found, cause a full layout. Added code
32645         to re-add floats belonging to clean lines.
32646         (WebCore::RenderBlock::matchedEndLine): Added checking that the clean
32647         lines in the end can be shifted vertically as needed, i.e. that the
32648         available width along the way is uniform.
32650 2008-03-17  Eric Seidel  <eric@webkit.org>
32652         Reviewed by darin.
32654         Fix _NPN_IntFromIdentifier (and export the symbol for use!)
32656         Test: plugins/netscape-identifier-conversion.html
32658         * WebCore.NPAPI.exp:
32659         * bridge/npruntime.cpp:
32660         (_NPN_IntFromIdentifier):
32662 2008-03-17  Sam Weinig  <sam@webkit.org>
32664         Reviewed by Dan Bernstein.
32666         Add HTMLCollection constructor to the Window object. (Omission noticed by Harri Porten)
32668         * page/DOMWindow.idl: 
32670 2008-03-17  Holger Hans Peter Freyther  <zecke@selfish.org>
32672         Unreviewed Gtk+ build fix.
32674         * platform/gtk/ScrollViewGtk.cpp: remove const
32676 2008-03-17  Julien Chaffraix  <julien.chaffraix@gmail.com>
32678         Reviewed by Holger.
32680         <http://bugs.webkit.org/show_bug.cgi?id=17754>
32682         - Implement ResourceHandle::loadResourceSynchronously to dispatch synchronous
32683           requests.
32685         - Implement WebCoreSynchronousLoader, the ResourceHandleClient which holds
32686           the network data, response and error for us during the transfert.
32688         * platform/network/ResourceHandleInternal.h: Remove trailing white space.
32689         * platform/network/curl/ResourceHandleCurl.cpp: Add WebCoreSynchronousLoader
32690         (WebCore::WebCoreSynchronousLoader::resourceResponse):
32691         (WebCore::WebCoreSynchronousLoader::resourceError):
32692         (WebCore::WebCoreSynchronousLoader::data):
32693         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
32694         (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
32695         (WebCore::WebCoreSynchronousLoader::didReceiveData):
32696         (WebCore::WebCoreSynchronousLoader::didFinishLoading):
32697         (WebCore::WebCoreSynchronousLoader::didFail):
32698         (WebCore::ResourceHandle::loadResourceSynchronously): Implement method
32699         using WebCoreSynchronousLoader.
32701         * platform/network/curl/ResourceHandleManager.cpp:
32702         (WebCore::ResourceHandleManager::dispatchSynchronousJob):
32703         (WebCore::ResourceHandleManager::startJob):
32704         (WebCore::ResourceHandleManager::initializeHandle): Handle initialization
32705         method used both for synchronous and asynchronous job.
32707         * platform/network/curl/ResourceHandleManager.h:
32709 2008-03-17  Darin Adler  <darin@apple.com>
32711         - try to fix GTK build
32713         * platform/ScrollView.h: Make setGtkAdjustments adjustment.
32714         And non-virtual (why was it virtual?).
32716 2008-03-17  Rodney Dawes  <dobey@wayofthemonkey.com>
32718         Fix Bug 17898: Split PluginMessageThrottlerWin into its own files
32720         <http://bugs.webkit.org/show_bug.cgi?id=17898>
32722         Move the PluginMessageThrottlerWin class into its own files, in
32723         preparation for refactoring PluginView code to be shared.
32725         Reviewed and tweaked by Adam Roben.
32727         * WebCore.vcproj/WebCore.vcproj:
32728         * plugins/PluginView.h:
32729         * plugins/win/PluginMessageThrottlerWin.cpp: Added.
32730         * plugins/win/PluginMessageThrottlerWin.h: Added.
32731         * plugins/win/PluginViewWin.cpp:
32733 2008-03-17  Adam Roben  <aroben@apple.com>
32735         More Windows build fixes after r31098
32737         * platform/ScrollView.h: Make some more methods public.
32739 2008-03-17  Adam Roben  <aroben@apple.com>
32741         Windows and Qt build fixes after r31098
32743         * platform/ScrollView.h: Mark methods public that still need to be so.
32745 2008-03-16  Timothy Hatcher  <timothy@apple.com>
32747         Reviewed by Darin Adler.
32749         Bug 17883: Console completion should support bracket notation
32750         http://bugs.webkit.org/show_bug.cgi?id=17883
32752         Also fixes a bug where the Inspector's window object was used instead of the
32753         inspected window object.
32755         * page/inspector/ConsolePanel.js:
32756         (WebInspector.ConsolePanel.complete): Add a comment about the _backwardsRange call.
32757         (WebInspector.ConsolePanel.completions): Add a comment about the _backwardsRange call.
32758         Check the last character of the expression for a dot or bracket. Fallback
32759         to the InspectorController.inspectedWindow() instead of window, this was a bad bug.
32760         If the expression caused an exception, just consider the prefix a window property.
32761         When bracket notation is used remember what quote was used and compared property names
32762         with that quote surrounding it. Also escape the property name for the quote and backslash.
32764 2008-03-17  Robert Blaut  <webkit@blaut.biz>
32766         Reviewed by Darin.
32768         Fix for bug http://bugs.webkit.org/show_bug.cgi?id=17696
32769         Set default margin-bottom for form element in quirk mode
32770         and be compatible with Gecko.
32772         Tests: fast/css/margin-bottom-form-element-quirk.html
32773                fast/css/margin-bottom-form-element-strict.html
32775         * css/html4.css:
32776         * css/quirks.css:
32778 2008-03-17  Antti Koivisto  <antti@apple.com>
32780         Reviewed by Darin.
32782         Speculative fix for http://bugs.webkit.org/show_bug.cgi?id=17878
32783         Bug 17878: REGRESSION: Acid3 sometimes crashes Webkit under WebCore::Loader::Host::cancelRequests
32784         
32785         I can't reproduce the crash or make a test case for this one but I'm pretty sure this
32786         is the problem. Essentially the same bug as http://bugs.webkit.org/show_bug.cgi?id=17862
32787         except in didFail() instead of didFinishLoading().
32789         * loader/loader.cpp:
32790         (WebCore::Loader::Host::didFail):
32792 2008-03-17  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
32794         Reviewed and tweaked by Darin.
32796         http://bugs.webkit.org/show_bug.cgi?id=17172
32797         Refactor platform checks in ScrollView.h
32799         * platform/ScrollView.h: Change #ifs around.
32801 2008-03-17  Yuzhu Shen  <yuzhu.shen@gmail.com>
32803         Reviewed by Darin.
32805         Fix the bug: http://bugs.webkit.org/show_bug.cgi?id=17760
32806         It is necessary to load the image even when src="".
32808         Test: fast/images/load-img-with-empty-src.html
32810         * html/HTMLImageLoader.cpp:
32811         (WebCore::HTMLImageLoader::updateFromElement): isNull rather than isEmpty.
32813 2008-03-17  Rodney Dawes  <dobey@wayofthemonkey.com>
32815         Fix GTK+ build from r31094.
32817         * plugins/gtk/PluginDatabaseGtk.cpp:
32818         (PluginDatabase::getPluginsInPaths):
32820 2008-03-17  Adam Roben  <aroben@apple.com>
32822         Fix Bug 17876: REGRESSION (r31060): Attempting to visit Ofcom page causes crash
32824         <http://bugs.webkit.org/show_bug.cgi?id=17876>
32826         Reviewed by John.
32828         Test: fast/dom/remove-named-attribute-crash.html
32830         * dom/NamedAttrMap.cpp:
32831         (WebCore::NamedAttrMap::removeAttribute): Store the Attribute we're
32832         going to remove from the m_attributes Vector in a RefPtr so it doesn't
32833         get deleted when it is removed from the Vector.
32835 2008-03-17  Rodney Dawes  <dobey@wayofthemonkey.com>
32837         Reviewed by Adam Roben.
32839         Implement PluginDatabase for GTK+ with PluginDatabaseGtk.cpp.
32840         Remove implemented methods from TemporaryLinkStubs.
32842         * GNUmakefile.am:
32843         * plugins/gtk:
32844         * plugins/gtk/PluginDatabaseGtk.cpp:
32845         * platform/gtk/TemporaryLinkStubs.cpp:
32847 2008-03-17  Simon Hausmann  <hausmann@webkit.org>
32849         Fix the Qt build.
32851         * platform/text/qt/TextCodecQt.cpp:
32852         (WebCore::TextCodecQt::encode):
32853         * platform/text/qt/TextCodecQt.h:
32855 2008-03-16  Maciej Stachowiak  <mjs@apple.com>
32857         Not reviewed, just fixing an incomplete comment from the last commit.
32859         * dom/Range.cpp:
32860         (WebCore::Range::surroundContents):
32862 2008-03-16  Maciej Stachowiak  <mjs@apple.com>
32864         Reviewed by Darin.
32866         - fixed "Acid3 expects different exceptions for surroundContents calls involving comment nodes (affects Acid3 test 11)"
32867         http://bugs.webkit.org/show_bug.cgi?id=17509
32868         
32869         This gets us to 92/100
32871         * dom/Range.cpp:
32872         (WebCore::Range::surroundContents): Check for
32873         HIERARCHY_REQUEST_ERR before BAD_BOUNDARYPOINTS_ERR, since Acid3
32874         expects exceptional conditions to be tested in the order that the
32875         spec lists them. Also, adjust the HIERARCHY_REQUEST_ERR check. If
32876         the start point of the range is in a comment node, the node that
32877         would be the parent of a partial replacement is actually the
32878         comment node's parent (since comment nodes have character
32879         indices), so we should do the HIERARCHY_REQUEST_ERR check based on
32880         the parent of the comment node, as for text nodes, even though it
32881         will fail later with a different exception because it is not
32882         allowed to surround a partially selected non-text node.
32884 2008-03-16  Marvin Decker  <marv.decker@gmail.com>
32886         Reviewed by Darin.
32888         Fix bug 15119: URL query characters that are unencodable in the
32889         request's character set should be converted to XML entities with
32890         non-alphanumeric characters escaped.
32892         Test: http/tests/uri/escaped-entity.html
32894         * html/FormDataList.cpp:
32895         (WebCore::FormDataList::appendString):
32896         * html/HTMLFormElement.cpp:
32897         (WebCore::HTMLFormElement::formData):
32898         * platform/KURL.cpp:
32899         (WebCore::encodeRelativeString):
32900         * platform/text/String.cpp:
32901         (WebCore::String::latin1):
32902         (WebCore::String::utf8):
32903         * platform/text/TextCodec.cpp:
32904         (WebCore::TextCodec::unencodableCharReplacement):
32905         * platform/text/TextCodec.h:
32906         * platform/text/TextCodecICU.cpp:
32907         (WebCore::urlEscapedEntityCallback):
32908         (WebCore::gbkUrlEscapedEntityCallack):
32909         (WebCore::TextCodecICU::encode):
32910         * platform/text/TextCodecICU.h:
32911         (WebCore::TextCodecICU::setNeedsGBKFallbacks):
32912         * platform/text/TextCodecLatin1.cpp:
32913         (WebCore::encodeComplexWindowsLatin1):
32914         (WebCore::TextCodecLatin1::encode):
32915         * platform/text/TextCodecLatin1.h:
32916         * platform/text/TextCodecUTF16.cpp:
32917         (WebCore::TextCodecUTF16::encode):
32918         * platform/text/TextCodecUTF16.h:
32919         * platform/text/TextCodecUserDefined.cpp:
32920         (WebCore::encodeComplexUserDefined):
32921         (WebCore::TextCodecUserDefined::encode):
32922         * platform/text/TextCodecUserDefined.h:
32923         * platform/text/TextEncoding.cpp:
32924         (WebCore::TextEncoding::encode):
32925         * platform/text/TextEncoding.h:
32926         * platform/text/mac/TextCodecMac.cpp:
32927         (WebCore::TextCodecMac::encode):
32928         * platform/text/mac/TextCodecMac.h:
32929         * xml/XMLHttpRequest.cpp:
32930         (WebCore::XMLHttpRequest::send):
32932 2008-03-16  Kevin Ollivier  <kevino@theolliviers.com>
32934         Rubber stamped by Darin.
32936         Add set-webkit-configuration support for wx port, and centralize
32937         build dir location setting.
32939         http://bugs.webkit.org/show_bug.cgi?id=17790
32941         * webcore-base.bkl:
32943 2008-03-16  Darin Adler  <darin@apple.com>
32945         Reviewed by Mark Rowe.
32947         - http://bugs.webkit.org/show_bug.cgi?id=17881
32948           a little cleanup for HTMLTextAreaElement
32950         Tests: fast/forms/textarea-default-value-leading-newline.html
32951                fast/forms/textarea-linewrap-dynamic.html
32953         * html/HTMLTextAreaElement.cpp:
32954         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): Tweaked names/
32955         (WebCore::HTMLTextAreaElement::selectionStart): Ditto, also use early return
32956         and check for < 0 rather than -1 specifically.
32957         (WebCore::HTMLTextAreaElement::selectionEnd): Ditto.
32958         (WebCore::HTMLTextAreaElement::setSelectionStart): Early return.
32959         (WebCore::HTMLTextAreaElement::setSelectionEnd): Ditto.
32960         (WebCore::HTMLTextAreaElement::select): Ditto.
32961         (WebCore::HTMLTextAreaElement::setSelectionRange): Ditto.
32962         (WebCore::HTMLTextAreaElement::parseMappedAttribute): Changed value parsing
32963         to treat unknown values as meaning "default" rather than "leave value as-is".
32964         Only call setNeedsLayoutAndPrefWidthsRecalc when mode changed.
32965         (WebCore::HTMLTextAreaElement::createRenderer): Removed name of unused argument.
32966         (WebCore::HTMLTextAreaElement::appendFormData): Updated for name changes.
32967         (WebCore::HTMLTextAreaElement::isKeyboardFocusable): Got rid of unnneeded explicit
32968         class name in isFocusable call.
32969         (WebCore::HTMLTextAreaElement::isMouseFocusable): Ditto.
32970         (WebCore::HTMLTextAreaElement::updateFocusAppearance): Tweaked formatting.
32971         (WebCore::HTMLTextAreaElement::defaultEventHandler): Ditto.
32972         (WebCore::HTMLTextAreaElement::updateValue): Early return.
32973         (WebCore::HTMLTextAreaElement::setValue): Got rid of intermediate value to
32974         eliminate on small refcount churn.
32975         (WebCore::HTMLTextAreaElement::defaultValue): Got rid of unneeded redundant
32976         string length checks, since String already checks all indexing and returns 0.
32977         (WebCore::HTMLTextAreaElement::setDefaultValue): Added code to normalize
32978         line endings and add a leading line ending to fix cases where the first
32979         character is a newline.
32980         (WebCore::HTMLTextAreaElement::accessKeyAction): Removed name of unused arg.
32981         (WebCore::HTMLTextAreaElement::accessKey): Changed return value to avoid
32982         refcount churn.
32983         (WebCore::HTMLTextAreaElement::selection): Updated names and use < 0 instead
32984         of -1 specifically.
32986         * html/HTMLTextAreaElement.h: Replaced wrap function with more-specific
32987         shouldWrapText one. Changed return value of accessKey. Made WrapMethod enum
32988         provate and renamed the values. Renamed cachedSelStart and cachedSelEnd to
32989         m_cachedSelectionStart and m_cachedSelectionEnd.
32991         * rendering/RenderTextControl.cpp:
32992         (WebCore::RenderTextControl::createInnerTextStyle): Updated for change to
32993         HTMLTextAreaElement wrap function.
32995 2008-03-16  Antti Koivisto  <antti@apple.com>
32997         Reviewed by Mitz.
32999         Fix http/tests/security/frame-loading-via-document-write.html
33000         which was broken by the preload patch.
33001         
33002         Don't print error message when preload fails local file security check.
33003         Some minor refactoring.
33005         * html/PreloadScanner.cpp:
33006         (WebCore::PreloadScanner::emitTag):
33007         (WebCore::PreloadScanner::emitCSSRule):
33008         * loader/Cache.cpp:
33009         (WebCore::Cache::requestResource):
33010         * loader/Cache.h:
33011         * loader/DocLoader.cpp:
33012         (WebCore::DocLoader::requestResource):
33013         (WebCore::DocLoader::preload):
33014         (WebCore::DocLoader::printPreloadStats):
33015         * loader/DocLoader.h:
33017 2008-03-16  Antti Koivisto  <antti@apple.com>
33019         Reviewed by Darin.
33020         
33021         Fix http://bugs.webkit.org/show_bug.cgi?id=17862
33022         REGRESSION (r31038): Reproducible crash under DocLoader::checkForReload() at marware.com
33023         
33024         This was a memory smasher introduced by the preloading patch. 
33025         If a script resource was marked uncacheable, early deletion of the 
33026         Request object would cause deletion of the CachedResource too if
33027         it was referred more than once in a single document.
33029         Test: http/tests/misc/uncacheable-script-repeated.html
33031         * loader/loader.cpp:
33032         (WebCore::Loader::Host::servePendingRequests):
33033         (WebCore::Loader::Host::didFinishLoading):
33035 2008-03-16  Yuzhu Shen  <yuzhu.shen@gmail.com>
33037         Reviewed by Darin.
33039         Fix bug http://bugs.webkit.org/show_bug.cgi?id=17714
33040         <img href="#"> should go to top of the page.
33042         Test: fast/html/empty-fragment-id-goto-top.html
33044         * loader/FrameLoader.cpp:
33045         (WebCore::FrameLoader::gotoAnchor):
33047 2008-03-16  Thiago Macieira  <thiago.macieira@trolltech.com>
33049         Reviewed by Darin.
33051         Don't use RefPtr in classes you haven't seen the implementation of.
33053         Forward-declaration and declaration of RefPtr<Foo> is ok. But you
33054         cannot *use* said objects until Foo is defined. This is true even for
33055         initialisation with a 0.
33057         Seems the HP aCC compiler is more strict here than gcc.
33059         * editing/SplitTextNodeCommand.h:
33060         * page/FrameTree.h:
33061         * xml/XPathExpressionNode.h:
33063 2008-03-16  Darin Adler  <darin@apple.com>
33065         Reviewed by Mitz.
33067         - fix http://bugs.webkit.org/show_bug.cgi?id=14941
33068           <rdar://problem/5404093> textarea value from JavaScript includes extra newline
33070         Test: fast/forms/textarea-trailing-newline.html
33072         * rendering/RenderTextControl.cpp:
33073         (WebCore::RenderTextControl::finishText): Added code to strip the trailing
33074         newline. It's possible there are some obscure cases where this is not wanted,
33075         but I couldn't find any. If someone finds a case where this is bad, we can
33076         make the code conditional.
33078 2008-03-16  Darin Adler  <darin@apple.com>
33080         Reviewed by Mitz.
33082         - fix http://bugs.webkit.org/show_bug.cgi?id=17876
33083           Attempting to visit Ofcom page causes crash
33085         This is causing intermittent crashes on some existing test cases on the buildbot
33086         too; I don't have a 100% test case right now, but it should be easy to add one later
33087         and this does fix a crash in a test we already have.
33089         * dom/CharacterData.cpp:
33090         (WebCore::CharacterData::CharacterData): Initialize m_data to the empty string,
33091         not the null string. The class assumes the string can never being null.
33092         (WebCore::CharacterData::setData): If asked to set the data to the null string,
33093         set it to the empty string instead. This matches what the (non-empty) constructor
33094         has always done.
33096 2008-03-15  Timothy Hatcher  <timothy@apple.com>
33098         Reviewed by Adam Roben.
33100         Bug 17870: Web Inspector console should feel more like a terminal
33101         http://bugs.webkit.org/show_bug.cgi?id=17870
33103         Bug 14390: Console input area should be more noticeable
33104         http://bugs.webkit.org/show_bug.cgi?id=14390
33105         <rdar://5712831>
33107         Bug 17237: Inspector should tab-complete object properties in the Console
33108         http://bugs.webkit.org/show_bug.cgi?id=17237
33109         <rdar://5732842>
33111         Adds tab completion, auto completion and a blended input prompt.
33112         The prompt is also focused when the console is shown.
33113            Implements a new look, that will be part of the UI refresh.
33115         * page/inspector/ConsolePanel.js: 
33116         (WebInspector.ConsolePanel): Renamed a few properties.
33117         (WebInspector.ConsolePanel.get/set promptText): Property to set
33118         and get the current prompt text. Does not affect command history.
33119         (WebInspector.ConsolePanel.show): Make the prompt focus on show.
33120         (WebInspector.ConsolePanel.acceptAutoComplete): Accepts any
33121         pending auto complete text.
33122         (WebInspector.ConsolePanel.clearAutoComplete): Cancels any pending
33123         auto complete text.
33124         (WebInspector.ConsolePanel.autoCompleteSoon): Sets a timeout to auto
33125         complete in 250 ms, only if there isn't a pending auto complete.
33126         (WebInspector.ConsolePanel.complete): 
33127         (WebInspector.ConsolePanel.completions): Generate a list of possible
33128         completions based on the prefix and the previous expression ranges.
33129         (WebInspector.ConsolePanel._backwardsRange): Helper to scan backwards
33130         from a node and offset to find a start node and offset of the first
33131         character found in the characters string.
33132         (WebInspector.ConsolePanel._evalInInspectedWindow): Helper to eval in the
33133         inspected window.
33134         (WebInspector.ConsolePanel._caretInsidePrompt): Returns true if the selection
33135         is collapsed and is inside the prompt element.
33136         (WebInspector.ConsolePanel._moveCaretToEndOfPrompt): Moves the selection
33137         to the end of the prompt.
33138         (WebInspector.ConsolePanel._onTabPressed): Calls complete on
33139         tab press.
33140         (WebInspector.ConsolePanel._onEnterPressed): Call clearAutoComplete so the
33141         autocompletion text is not evaluated.
33143         * page/inspector/Images/errorIcon.png: New image.
33144         * page/inspector/Images/userInputIcon.png: Added.
33145         * page/inspector/Images/userInputPreviousIcon.png: Added.
33146         * page/inspector/Images/warningIcon.png: New image.
33147         * page/inspector/inspector.css: New refreshed UI.
33149 2008-03-15  Mark Mentovai  <mark@moxienet.com>
33151         Reviewed and landed by Darin.
33153         - http://bugs.webkit.org/show_bug.cgi?id=17833
33154           use file extensions instead of explicit file types in WebCore's Xcode project
33156         * WebCore.xcodeproj/project.pbxproj: Remove unnecessary
33157           uses of explicitFileType, preferring lastKnownFileType ("File Type:
33158           Default for File" in Xcode's File Info's General tab).  Files below
33159           that relied on an explicit file type setting other than what would
33160           be implied by their extensions have been renamed to have correct
33161           extensions.
33162         * bridge/jni/jni_jsobject.cpp: Removed.
33163         * bridge/jni/jni_jsobject.mm: Copied from bridge/jni/jni_jsobject.cpp.
33164         * loader/mac/LoaderNSURLExtras.m: Removed.
33165         * loader/mac/LoaderNSURLExtras.mm: Copied from loader/mac/LoaderNSURLExtras.m.
33166         * platform/mac/SharedTimerMac.cpp: Removed.
33167         * platform/mac/SharedTimerMac.mm: Copied from platform/mac/SharedTimerMac.cpp.
33169 2008-03-15  Darin Adler  <darin@apple.com>
33171         Reviewed by Sam.
33173         - fix http://bugs.webkit.org/show_bug.cgi?id=11997
33174           Ranges are not fixed after mutation (affects Acid3 test 13)
33176         Test: fast/dom/Range/mutation.html
33178         * WebCore.xcodeproj/project.pbxproj: Added NodeWithIndex.h, NodeWithIndexAfter.h,
33179         and NodeWithIndexBefore.h.
33181         * dom/CharacterData.cpp:
33182         (WebCore::CharacterData::setData): Replaced call to Document::removeMarkers
33183         with call to Document::textRemoved.
33184         (WebCore::CharacterData::insertData): Replaced call to Document::shiftMarkers
33185         with call to Document::textInserted.
33186         (WebCore::CharacterData::deleteData): Replaced call to Document::removeMarkers
33187         and Document::shiftMarkers with call to Document::textRemoved.
33188         (WebCore::CharacterData::replaceData): Replaced call to Document::removeMarkers
33189         and Document::shiftMarkers with call to Document::textRemoved and
33190         Document::textInserted.
33191         (WebCore::CharacterData::containsOnlyWhitespace): Tweaked a bit.
33193         * dom/ContainerNode.cpp:
33194         (WebCore::ContainerNode::childrenChanged): Added a call to
33195         Document::nodeChildrenChanged when the nmber of children was changed (and not
33196         by the parser).
33197         (WebCore::dispatchChildRemovalEvents): Updated for name change.
33199         * dom/Document.cpp:
33200         (WebCore::Document::~Document): Assert that all ranges are gone.
33201         (WebCore::Document::nodeChildrenChanged): Added. Calls nodeChildrenChanged on
33202         all ranges.
33203         (WebCore::Document::nodeWillBeRemoved): Renamed from notifyBeforeNodeRemoval.
33204         Added code to call nodeWillBeRemoved on all ranges.
33205         (WebCore::Document::textInserted): Added. Calls textInserted on all ranges and
33206         also calls shiftMarkers.
33207         (WebCore::Document::textRemoved): Added. Calls textRemoved on all ranges and also
33208         calls removeMarkers and shiftMarkers.
33209         (WebCore::Document::textNodesMerged): Added. Calls textNodesMerged on all ranges.
33210         (WebCore::Document::textNodeSplit): Added. Calls textNodeSplit on all ranges.
33211         (WebCore::Document::attachRange): Added. Adds range to the HashSet of all ranges
33212         for this document.
33213         (WebCore::Document::detachRange): Added. Removes range from the HashSet.
33214         * dom/Document.h: Added the new functions and the data member.
33216         * dom/Element.cpp:
33217         (WebCore::Element::normalizeAttributes): Added. Contains the part of the
33218         normalize function that's specific to Element. Better encapsulation to have it
33219         here rather than in Node::normalize.
33220         * dom/Element.h: Added the new function.
33222         * dom/Node.cpp:
33223         (WebCore::Node::normalize): Rewrote so it's no longer recursive. Also added
33224         a call to textNodesMerged after each pair of nodes is merged but before the
33225         second node is removed.
33226         (WebCore::Node::traverseNextNodePostOrder): Added. Helper function used by
33227         normalize, but also useful elsewhere.
33228         * dom/Node.h: Added the new function.
33230         * dom/NodeIterator.cpp:
33231         (WebCore::NodeIterator::nodeWillBeRemoved): Renamed from notifyBeforeNodeRemoval.
33232         * dom/NodeIterator.h: Ditto.
33234         * dom/ProcessingInstruction.cpp:
33235         (WebCore::ProcessingInstruction::setData): Call textRemoved.
33237         * dom/Range.cpp:
33238         (WebCore::NodeWithIndex::index): Added. Computes and stores index.
33239         (WebCore::NodeWithIndexBefore::indexBefore): Added. Computes and stores index.
33240         (WebCore::NodeWithIndexAfter::indexAfter): Added. Computes and stores index.
33241         (WebCore::Range::Range): Call attachRange.
33242         (WebCore::Range::~Range): Call detachRange unless the range is already detached.
33243         (WebCore::Range::commonAncestorContainer): Removed check for WRONG_DOCUMENT_ERR.
33244         It's no longer possible to create a range where the two containers are non-zero
33245         and have no common ancestor.
33246         (WebCore::Range::isPointInRange): Rewrote expression to be more readable.
33247         (WebCore::Range::compareNode): Changed local variable to use int for consistency.
33248         (WebCore::Range::compareBoundaryPoints): Replaced ASSERT with ASSERT_NOT_REACHED.
33249         (WebCore::Range::deleteContents): Removed check for INVALID_STATE_ERR and
33250         initialization of ec to 0; both are now inside checkDeleteExtract.
33251         (WebCore::Range::intersectsNode): Changed local variable to use int for consistency.
33252         Also changed comparison to use < 0 and >= 0 rather than checking explicitly for 1
33253         and -1.
33254         (WebCore::Range::processContents): Changed code to not get the nodeType multiple
33255         times on the same node, and tweaked formatting. Removed code to update the range
33256         on deletion, because the normal delete logic will take care of that now.
33257         (WebCore::Range::extractContents): Removed check for INVALID_STATE_ERR and
33258         initialization of ec to 0; both are now inside checkDeleteExtract.
33259         (WebCore::Range::insertNode): Changed local variable to use int for consistency.
33260         (WebCore::Range::toString): Changed variable name to pastLast.
33261         (WebCore::Range::detach): Call detachRange.
33262         (WebCore::Range::checkDeleteExtract): Added check for detached range and code to
33263         set ec to 0; moved here from the two callers. Also changed variable name to pastLast.
33264         (WebCore::endpointNodeChildrenChanged): Added.
33265         (WebCore::Range::nodeChildrenChanged): Added.
33266         (WebCore::endpointNodeWillBeRemoved): Added.
33267         (WebCore::Range::nodeWillBeRemoved): Added.
33268         (WebCore::endpointTextInserted): Added.
33269         (WebCore::Range::textInserted): Added.
33270         (WebCore::endpointTextRemoved): Added.
33271         (WebCore::Range::textRemoved): Added.
33272         (WebCore::endpointTextNodesMerged): Added.
33273         (WebCore::Range::textNodesMerged): Added.
33274         (WebCore::endpointTextNodesSplit): Added.
33275         (WebCore::Range::textNodeSplit): Added.
33277         * dom/Range.h: Added new member functions.
33279         * dom/NodeWithIndex.h: Added. Makes it so we won't find the index for the same
33280         node more than once.
33281         * dom/NodeWithIndexAfter.h: Added. Similar to NodeWithIndex but gives the index after a
33282         node and treats a node pointer of 0 as meaning "before first node in parent container".
33283         * dom/NodeWithIndexBefore.h: Added.  Similar to NodeWithIndex but treats a node pointer of 0
33284         as meaning "after last node in parent container".
33286         * dom/Text.cpp:
33287         (WebCore::Text::splitText): Call textNodeSplit.
33289         * editing/ApplyStyleCommand.cpp:
33290         (WebCore::ApplyStyleCommand::applyInlineStyle): Changed variable name to pastLast.
33292 2008-03-15  Julien Chaffraix  <julien.chaffraix@gmail.com>
33294         Reviewed by Holger.
33296         [CURL] Crash below ResourceHandleManager::setupPOST when job->request().httpBody() is NULL
33297         http://bugs.webkit.org/show_bug.cgi?id=16906
33299         Add null checks for httpBody() to match other ports.
33301         Test: http/tests/xmlhttprequest/xmlhttprequest-post-crash.html
33303         * platform/network/curl/ResourceHandleManager.cpp:
33304         (WebCore::readCallback): Add null check.
33305         (WebCore::ResourceHandleManager::setupPOST): Ditto.
33307 2008-03-14  Steve Falkenburg  <sfalken@apple.com>
33309         PGO build fixes.
33311         * WebCore.vcproj/WebCore.vcproj:
33313 2008-03-14  Anders Carlsson  <andersca@apple.com>
33315         Reviewed by Sam.
33317         <rdar://problem/5794989>
33318         https://bugs.webkit.org/show_bug.cgi?id=17792
33319         REGRESSION (Safari 3.0.4-3.1): Ordering tickets from Sweden's biggest train operator doesn't work
33321         Pass the frame loader that should be used for looking up the frame name to FrameLoader::createWindow
33322         so that somewindow.open calls where the active window and 'somewindow' differ return the correct frame.
33323         
33324         * bindings/js/JSDOMWindowBase.cpp:
33325         (WebCore::createWindow):
33326         * loader/FrameLoader.cpp:
33327         (WebCore::FrameLoader::createWindow):
33328         * loader/FrameLoader.h:
33330 2008-03-14  Dan Bernstein  <mitz@apple.com>
33332         Reviewed by Mark Rowe.
33334         - fix <rdar://problem/5797836> shadow offsets are smaller than specified
33336         * platform/graphics/cg/GraphicsContextCG.cpp:
33337         (WebCore::GraphicsContext::setShadow): Made the workaround for
33338         <rdar://problem/5539388> unconditional.
33340 2008-03-14  Adam Roben  <aroben@apple.com>
33342         Fix it right this time
33344         * platform/MainThread.cpp: Cast to unsigned so we can use %u in the
33345         format string.
33346         * platform/mac/MainThreadMac.mm:
33348 2008-03-14  Adam Roben  <aroben@apple.com>
33350         Mac build fix
33352         * platform/mac/MainThreadMac.mm: Corrected a typo.
33354 2008-03-14  Dan Bernstein  <mitz@apple.com>
33356         Reviewed by Darin Adler.
33358         - fix http://bugs.webkit.org/show_bug.cgi?id=17834
33359           REGRESSION: floated first-letter does not work when included in table
33361         Test: fast/css/first-letter-float.html
33363         * rendering/RenderBlock.cpp:
33364         (WebCore::RenderBlock::updateFirstLetter): Changed the search for the
33365         first text node to stop at a float if that float is an existing first-
33366         letter.
33368 2008-03-14  Sam Weinig  <sam@webkit.org>
33370         Fix Mac build
33372         * WebCore.xcodeproj/project.pbxproj:
33374 2008-03-13  Adam Roben  <aroben@apple.com>
33376         Make most of callOnMainThread's implementation be cross-platform
33378         I took the non-platform-specific parts of MainThreadWin.cpp and moved
33379         them to a new MainThread.cpp. Each platform is now responsible for
33380         implementing one function, scheduleDispatchFunctionsOnMainThread,
33381         which is supposed to set things up so that
33382         dispatchFunctionsFromMainThread gets called from the main thread in
33383         the near future.
33385         Reviewed by Alexey.
33387         * GNUmakefile.am: Added MainThread.cpp to the project.
33388         * WebCore.pro: Ditto.
33389         * WebCore.vcproj/WebCore.vcproj: Ditto.
33390         * WebCore.xcodeproj/project.pbxproj: Ditto.
33391         * WebCoreSources.bkl: Ditto.
33392         * platform/MainThread.cpp:
33393           - Copied from WebCore/platform/win/MainThreadWin.cpp.
33394           - Removed the Windows-specific parts.
33395         (WebCore::callOnMainThread): Changed to call
33396         scheduleDispatchFunctionsOnMainThread instead of PostMessage.
33397         * platform/gtk/MainThreadGtk.cpp:
33398         (WebCore::timeoutFired): Renamed from callFunctionOnMainThread. Now
33399         just calls dispatchFunctionsFromMainThread.
33400         (WebCore::scheduleDispatchFunctionsOnMainThread): Added. Calls through
33401         to g_timeout_add.
33402         * platform/mac/MainThreadMac.mm: Renamed WebCoreFunctionWrapper to
33403         WebCoreMainThreadCaller.
33404         (-[WebCoreMainThreadCaller call]): Calls through to
33405         dispatchFunctionsFromMainThread.
33406         (WebCore::scheduleDispatchFunctionsOnMainThread): Makes a new
33407         WebCoreMainThreadCaller and calls performSelectorOnMainThread on it.
33408         * platform/qt/MainThreadQt.cpp: Removed PerformFunctionEvent.
33409         (WebCore::MainThreadInvoker::event): Chagned to call through to
33410         dispatchFunctionsFromMainThread.
33411         (WebCore::scheduleDispatchFunctionsOnMainThread): Sends an empty event
33412         to the MainThreadInvoker.
33413         * platform/win/MainThreadWin.cpp:
33414           - Removed the non-Windows-specific parts.
33415           - Removed some unnecessary initialization of static variables to 0.
33416         (WebCore::ThreadingWindowWndProc): Changed to call
33417         dispatchFunctionsFromMainThread.
33418         (WebCore::scheduleDispatchFunctionsOnMainThread): Calls through to
33419         PostMessage.
33420         * platform/wx/MainThreadWx.cpp:
33421         (WebCore::scheduleDispatchFunctionsOnMainThread): Added.
33423 2008-03-14  Beth Dakin  <bdakin@apple.com>
33425         Reviewed by Geoff.
33427         Fix for <rdar://problem/5728171> Potential PLT speedup: don't 
33428         realloc every time inside NamedAttrMap::addAttribute
33430         The speed-up for this turned out to be so small that it is mostly 
33431         imperceptible. It is likely that it is a tiny boost, though, and 
33432         the new code is much cleaner.
33434         * dom/Element.cpp:
33435         (WebCore::Element::setAttributeMap): attrs is now called 
33436         m_attributes
33437         * dom/NamedAttrMap.cpp: The array attrs is now the Vector of 
33438         RefPtrs called m_attributes, and there is no longer any need for 
33439         the len member variable. 
33440         (WebCore::NamedAttrMap::NamedAttrMap): 
33441         (WebCore::NamedAttrMap::item):
33442         (WebCore::NamedAttrMap::getAttributeItem):
33443         (WebCore::NamedAttrMap::clearAttributes):
33444         (WebCore::NamedAttrMap::operator=):
33445         (WebCore::NamedAttrMap::addAttribute):
33446         (WebCore::NamedAttrMap::removeAttribute):
33447         (WebCore::NamedAttrMap::mapsEquivalent):
33448         * dom/NamedAttrMap.h: Same.
33449         (WebCore::NamedAttrMap::length):
33450         (WebCore::NamedAttrMap::attributeItem):
33451         (WebCore::NamedAttrMap::shrinkToLength):
33452         (WebCore::NamedAttrMap::reserveCapacity):
33453         * html/HTMLTokenizer.cpp: One of the benefits of the old array was 
33454         that it never took up more memory than it needed to. So the 
33455         tokenizer utilizes new member functions on NamedAttrMap 
33456         (shrinkToLength and reserveCapacity) to try to keep memory usage at 
33457         a minimum. 
33458         (WebCore::Token::addAttribute):
33459         (WebCore::HTMLTokenizer::processToken):
33461 2008-03-14  David D. Kilzer  <ddkilzer@apple.com>
33463         BUILD FIX when ENABLE(MAC_JAVA_BRIDGE) set to 0.
33465         * page/mac/FrameMac.mm: Move up #if ENABLE(MAC_JAVA_BRIDGE) guard
33466         to comment out unused code.
33468 2008-03-14  David D. Kilzer  <ddkilzer@apple.com>
33470         Unify concept of enabling the Mac Java bridge.
33472         Reviewed by Darin and Anders.
33474         No test cases added since there is no change in functionality.
33476         * DerivedSources.make: Added check for ENABLE_MAC_JAVA_BRIDGE macro.
33477         If defined as "1", add WebCore.JNI.exp to WEBCORE_EXPORT_DEPENDENCIES.
33478         * WebCore.JNI.exp: Added.
33479         * WebCore.base.exp: Moved exported JNI methods to WebCore.JNI.exp.
33481         * bridge/jni/jni_class.cpp: Added #if ENABLE(MAC_JAVA_BRIDGE) guard.
33482         * bridge/jni/jni_class.h: Ditto.
33483         * bridge/jni/jni_instance.cpp: Ditto.
33484         * bridge/jni/jni_instance.h: Ditto.
33485         * bridge/jni/jni_jsobject.cpp: Ditto.
33486         * bridge/jni/jni_jsobject.h: Ditto.
33487         * bridge/jni/jni_objc.mm: Ditto.
33488         * bridge/jni/jni_runtime.cpp: Ditto.
33489         * bridge/jni/jni_runtime.h: Ditto.
33490         * bridge/jni/jni_utility.cpp: Ditto.
33491         * bridge/jni/jni_utility.h: Ditto.
33493         * bridge/runtime.cpp: Removed unused #include statements.
33494         * bridge/runtime.h:
33495         (KJS::Bindings::Instance::BindingLanguage): Added #if ENABLE(MAC_JAVA_BRIDGE)
33496         guard for JavaLanguage enum.  Also added #if PLATFORM(MAC) guard for
33497         ObjectiveCLanguage enum to match corresponding code in runtime.cpp.
33499         * config.h: Removed definition of HAVE_JNI.
33501         * loader/FrameLoaderClient.h:
33502         (WebCore::FrameLoaderClient::javaApplet): Added #if ENABLE(MAC_JAVA_BRIDGE) guard.
33503         * page/Frame.cpp:
33504         (WebCore::Frame::Frame): Ditto.
33505         * page/Frame.h:
33506         (WebCore::Frame::initJavaJSBindings): Ditto.
33507         * page/mac/FrameMac.mm:
33508         (WebCore::Frame::createScriptInstanceForWidget): Ditto.
33509         (WebCore::Frame::initJavaJSBindings): Ditto.
33511 2008-03-13  Darin Adler  <darin@apple.com>
33513         * html/PreloadScanner.h: Corrected license.
33514         * html/PreloadScanner.cpp: Corrected license.
33516 2008-03-13  Mark Mentovai  <mark@moxienet.com>
33518         Reviewed by darin.  Landed by eseidel.
33520         * platform/FloatConversion.h: Include a header to get CoreGraphics
33521         types when using CoreGraphics types.
33523 2008-03-13  Mark Mentovai  <mark@moxienet.com>
33525         Reviewed by eseidel.  Landed by eseidel.
33527         * WebCore.xcodeproj/project.pbxproj:
33528         * css/CSSParser.cpp:
33529         * css/makeprop.pl:
33530         Move CSSPropertyNames.c to CSSPropertyNames.cpp
33532 2008-03-13  Mark Mentovai  <mark@moxienet.com>
33534         Reviewed by eseidel.  Landed by eseidel.
33536         * platform/Arena.h: Use statement1;statement2 instead of
33537         (statement1,statement2) in CLEAR_UNUSED.
33539 2008-03-13  Tommi Komulainen  <tommi.komulainen@iki.fi>
33541         Reviewed by Alp Toker.
33543         http://bugs.webkit.org/show_bug.cgi?id=17821
33544         [SOUP] POST requests are empty
33546         Send the HTTP request body as well.
33548         * platform/network/soup/ResourceHandleSoup.cpp:
33549         (WebCore::ResourceHandle::start):
33551 2008-03-13  Dan Bernstein  <mitz@apple.com>
33553         Reviewed by Dave Hyatt.
33555         - fix http://bugs.webkit.org/show_bug.cgi?id=17819
33556           Border-collapse: collapse later cell wins on PC, earlier cell on Mac
33558         Test: fast/table/border-collapsing/equal-precedence-resolution.html
33560         * rendering/RenderTableCell.cpp:
33561         (WebCore::RenderTableCell::collapsedLeftBorder): When calling
33562         compareBorders() with borders that may have the same precedence, made
33563         sure to pass the border belonging to the earlier (in document order)
33564         element first, since compareBorders() prefers the first argument when
33565         there is a tie.
33566         (WebCore::RenderTableCell::collapsedRightBorder): Ditto.
33567         (WebCore::RenderTableCell::collapsedTopBorder): Ditto.
33569 2008-03-13  Adam Roben  <aroben@apple.com>
33571         wx build fix and Windows leak fix after r31034
33573         * platform/graphics/wx/ImageWx.cpp:
33574         (WebCore::Image::loadPlatformResource): Use SharedBuffer::create.
33575         * platform/win/SharedBufferWin.cpp:
33576         (WebCore::SharedBuffer::createWithContentsOfFile): Ditto (we were
33577         leaking the SharedBuffer here before).
33579 2008-03-13  Antti Koivisto  <antti@apple.com>
33581         Reviewed by Eric.
33583         Correct a few issues spotted by Mike Belshe. 
33585         * html/PreloadScanner.cpp:
33586         (WebCore::PreloadScanner::tokenize):
33587         * loader/loader.cpp:
33588         (WebCore::Loader::cancelRequests):
33590 2008-03-13  Rodney Dawes  <dobey@wayofthemonkey.com>
33592         Fix GTK+ build for SharedBuffer changes.
33594         * platform/graphics/gtk/ImageGtk.cpp:
33595         (Image::loadPlatformResource):
33597 2008-03-13  Steve Falkenburg  <sfalken@apple.com>
33599         More PGO build fixes.
33601         * WebCorePrefix.cpp:
33603 2008-03-13  Antti Koivisto  <antti@apple.com>
33605         Reviewed by Darin.
33606         
33607         Make page loads go fast.
33608         
33609         http://bugs.webkit.org/show_bug.cgi?id=17480
33611         - Implement speculative preloading. When a script load blocks the main parser, use a side 
33612           parser to pick up more resources.
33613         - Implement per-host load queues, prioritize scripts and stylesheets over images.
33614         
33615         Depending on content and network latency this may speed things up quite a bit.
33617         * WebCore.xcodeproj/project.pbxproj:
33618         * dom/Document.cpp:
33619         (WebCore::Document::implicitClose):
33620         Clear the preloads after laoding completes.
33621         
33622         * html/HTMLLinkElement.cpp:
33623         (WebCore::HTMLLinkElement::parseMappedAttribute):
33624         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
33625         * html/HTMLLinkElement.h:
33626         Make tokenizeRelAttribute() public static so it can be used from elsewhere.
33627         Eliminate a pointless bitfield so I can get references.
33628         
33629         * html/HTMLTokenizer.cpp:
33630         (WebCore::HTMLTokenizer::scriptHandler):
33631         (WebCore::HTMLTokenizer::scriptExecution):
33632         (WebCore::HTMLTokenizer::write):
33633         * html/HTMLTokenizer.h:
33634         Spin up the preload scanner whenever a script load blocks the parser. One scanner tracks the end of 
33635         the document while temporary ones are created as needed to scan document.write() output.
33636         
33637         * html/PreloadScanner.cpp: Added.
33638         (WebCore::PreloadScanner::PreloadScanner):
33639         (WebCore::PreloadScanner::~PreloadScanner):
33640         (WebCore::PreloadScanner::begin):
33641         (WebCore::PreloadScanner::end):
33642         (WebCore::PreloadScanner::reset):
33643         (WebCore::PreloadScanner::write):
33644         (WebCore::isWhitespace):
33645         (WebCore::PreloadScanner::clearLastCharacters):
33646         (WebCore::PreloadScanner::rememberCharacter):
33647         (WebCore::PreloadScanner::lastCharactersMatch):
33648         (WebCore::legalEntityFor):
33649         (WebCore::PreloadScanner::consumeEntity):
33650         (WebCore::PreloadScanner::tokenize):
33651         (WebCore::PreloadScanner::processAttribute):
33652         (WebCore::PreloadScanner::emitCharacter):
33653         (WebCore::PreloadScanner::tokenizeCSS):
33654         (WebCore::PreloadScanner::emitTag):
33655         (WebCore::PreloadScanner::emitCSSRule):
33656         * html/PreloadScanner.h: Added.
33657         (WebCore::PreloadScanner::inProgress):
33658         (WebCore::PreloadScanner::):
33659         HTML5 tokenization plus some glue code. Fake CSS parsing thrown in just for fun.
33660         
33661         * loader/Cache.cpp:
33662         (WebCore::Cache::pruneDeadResources):
33663         Preloads have zero refcount, avoid kicking them out too early.
33664         
33665         * loader/CachedResource.cpp:
33666         (WebCore::CachedResource::CachedResource):
33667         (WebCore::CachedResource::ref):
33668         * loader/CachedResource.h:
33669         (WebCore::CachedResource::):
33670         (WebCore::CachedResource::preloadResult):
33671         (WebCore::CachedResource::setRequestedFromNetworkingLayer):
33672         (WebCore::CachedResource::canDelete):
33673         (WebCore::CachedResource::isPreloaded):
33674         (WebCore::CachedResource::increasePreloadCount):
33675         (WebCore::CachedResource::decreasePreloadCount):
33676         Keep track which resources are preloads. Avoid deleting them. Track
33677         at which point of the loading preloads get utilized to enable some interesting 
33678         statistics.
33679         
33680         * loader/DocLoader.cpp:
33681         (WebCore::DocLoader::~DocLoader):
33682         (WebCore::DocLoader::checkForReload):
33683         (WebCore::DocLoader::registerPreload):
33684         (WebCore::DocLoader::clearPreloads):
33685         (WebCore::DocLoader::printPreloadStats):
33686         * loader/DocLoader.h:
33687         Ensure we utilize preloaded resources during reloads.
33688         Keep a list of all preloads in the document. Clear the preloads after
33689         parsing is complete. Some debug statistics.
33690         
33691         * loader/DocumentLoader.cpp:
33692         (WebCore::DocumentLoader::isLoadingInAPISense):
33693         Avoid signaling that loading is complete too early. 
33694         
33695         * loader/loader.cpp:
33696         (WebCore::Loader::Loader):
33697         (WebCore::Loader::~Loader):
33698         (WebCore::Loader::determinePriority):
33699         (WebCore::Loader::load):
33700         (WebCore::Loader::scheduleServePendingRequests):
33701         (WebCore::Loader::requestTimerFired):
33702         (WebCore::Loader::servePendingRequests):
33703         (WebCore::Loader::cancelRequests):
33704         (WebCore::Loader::Host::Host):
33705         (WebCore::Loader::Host::~Host):
33706         (WebCore::Loader::Host::addRequest):
33707         (WebCore::Loader::Host::hasRequests):
33708         (WebCore::Loader::Host::servePendingRequests):
33709         (WebCore::Loader::Host::didFinishLoading):
33710         (WebCore::Loader::Host::didFail):
33711         (WebCore::Loader::Host::didReceiveResponse):
33712         (WebCore::Loader::Host::didReceiveData):
33713         (WebCore::Loader::Host::cancelPendingRequests):
33714         (WebCore::Loader::Host::cancelRequests):
33715         * loader/loader.h:
33716         (WebCore::Loader::):
33717         Distribute load requests to per-host priority queues. Limit the number of loads issued to the 
33718         networking layer so we have better changes of getting important requests through first.
33719         Prioritize scripts > stylesheets > images.
33721 2008-03-13  David Hyatt  <hyatt@apple.com>
33723         This patch makes full page zoom work pretty well. It fixes repainting so that it works when transforms
33724         are set on the RenderView. It also implements the "smart layout" behavior that other browsers support when
33725         zooming. The page will still try to constrain to the viewport size even when zoomed.
33727         Reviewed by john
33729         * dom/Document.cpp:
33730         (WebCore::Document::recalcStyle):
33731         Make sure to test for transform changes even when there is no zoom.  This fixes repainting issues
33732         caused by jumping from a zoomed state back to the standard size.
33734         * page/FrameView.cpp:
33735         (WebCore::FrameView::adjustViewSize):
33736         Adjust for the zoom factor (the render tree is in unzoomed coordinates, but the scrollbars of the view
33737         need to handle zoomed coordinates).
33739         * rendering/RenderBox.cpp:
33740         (WebCore::RenderBox::calcHeight):
33741         Fix the body-sizing-to-the-view-height quirk so that it takes the zoom factor into account when
33742         stretching to fill the viewport.
33744         * rendering/RenderLayer.cpp:
33745         (WebCore::RenderLayer::updateLayerPositions):
33746         (WebCore::RenderLayer::setHasVisibleContent):
33747         Remove the FIXMEs now that absoluteClippedOverflowRect works with transforms on the RenderView.
33749         * rendering/RenderView.cpp:
33750         (WebCore::RenderView::calcHeight):
33751         (WebCore::RenderView::calcWidth):
33752         Make sure the calculated width/height take the zoom factor into account in order to get the "smart layout"
33753         behavior.
33755         (WebCore::RenderView::layout):
33756         When deciding whether children have to get a relayout, we need to check the zoomed width/height and not just
33757         the viewport size.
33759         (WebCore::RenderView::computeAbsoluteRepaintRect):
33760         Patched to take into account transforms set on the RenderView.
33762         (WebCore::RenderView::docHeight):
33763         (WebCore::RenderView::docWidth):
33764         Patched to just always use m_width and m_height initially, since those have already been adjusted for
33765         the zoom factor.
33767         (WebCore::RenderView::zoomedHeight):
33768         (WebCore::RenderView::zoomedWidth):
33769         * rendering/RenderView.h:
33770         New helper methods for obtaining the adjusted width/height of the viewport taking into account the
33771         zoom factor.
33773 2008-03-13  Anders Carlsson  <andersca@apple.com>
33775         Build fix.
33777         * WebCore.base.exp:
33779 2008-03-13  Anders Carlsson  <andersca@apple.com>
33781         Reviewed by Adam.
33783         Get rid of actualRequest, it is not used anymore. Also, get rid of 
33784         initialRequest and replace all uses with originalRequest because those are
33785         the same thing.
33786         
33787         * loader/DocumentLoader.cpp:
33788         * loader/DocumentLoader.h:
33789         * loader/FrameLoader.cpp:
33790         (WebCore::FrameLoader::initialRequest):
33791         (WebCore::FrameLoader::originalRequestURL):
33793 2008-03-13  Brady Eidson  <beidson@apple.com>
33795         Reviewed by Anders
33797         Convert SharedBuffer to start with a refCount of 1
33799         * loader/ImageDocument.cpp:
33800         (WebCore::ImageTokenizer::finish):
33802         * loader/ResourceLoader.cpp:
33803         (WebCore::ResourceLoader::addData):
33804         (WebCore::ResourceLoader::willStopBufferingData):
33806         * loader/icon/IconDatabase.cpp:
33807         (WebCore::IconDatabase::defaultIcon):
33808         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
33810         * loader/loader.cpp:
33811         (WebCore::Loader::didReceiveData):
33813         * platform/SharedBuffer.h:
33814         (WebCore::SharedBuffer::create): Make all constructors private, add ::create() calls
33815         * platform/SharedBuffer.cpp:
33816         (WebCore::SharedBuffer::SharedBuffer): Revert to default RefCounted constructor to start with a ref count of 1
33817         (WebCore::SharedBuffer::copy):
33818         * platform/mac/SharedBufferMac.mm:
33819         (WebCore::SharedBuffer::wrapNSData):
33820         (WebCore::SharedBuffer::SharedBuffer): Revert to default RefCounted constructor to start with a ref count of 1
33822 2008-03-13  Steve Falkenburg  <sfalken@apple.com>
33824         PGO build fixes.
33825         
33826         Disable PGO for normal release builds.
33827         Added work-in-progress Release_PGOInstrument/Release_PGOOptimize targets.
33829         * WebCore.vcproj/WebCore.vcproj:
33831 2008-03-13  Anders Carlsson  <andersca@apple.com>
33833         Reviewed by Darin.
33835         Make a bunch of DocumentLoader setters/getters inline.
33836         
33837         * loader/DocumentLoader.cpp:
33838         * loader/DocumentLoader.h:
33839         (WebCore::DocumentLoader::isStopping):
33840         (WebCore::DocumentLoader::setCommitted):
33841         (WebCore::DocumentLoader::isCommitted):
33842         (WebCore::DocumentLoader::isLoading):
33843         (WebCore::DocumentLoader::setLoading):
33844         (WebCore::DocumentLoader::response):
33845         (WebCore::DocumentLoader::mainDocumentError):
33846         (WebCore::DocumentLoader::setResponse):
33847         (WebCore::DocumentLoader::isClientRedirect):
33848         (WebCore::DocumentLoader::setIsClientRedirect):
33849         (WebCore::DocumentLoader::overrideEncoding):
33850         (WebCore::DocumentLoader::responses):
33851         (WebCore::DocumentLoader::triggeringAction):
33852         (WebCore::DocumentLoader::setTriggeringAction):
33853         (WebCore::DocumentLoader::setOverrideEncoding):
33854         (WebCore::DocumentLoader::setLastCheckedRequest):
33855         (WebCore::DocumentLoader::lastCheckedRequest):
33856         (WebCore::DocumentLoader::title):
33857         (WebCore::DocumentLoader::setLoadingFromCachedPage):
33858         (WebCore::DocumentLoader::isLoadingFromCachedPage):
33860 2008-03-13  Rodney Dawes  <dobey@wayofthemonkey.com>
33862         Fix builds without SVG enabled.
33864         * page/Frame.cpp:
33865         (Frame::shouldApplyTextZoom):
33866         (Frame::shouldApplyPageZoom):
33868 2008-03-13  Simon Hausmann  <hausmann@webkit.org>
33870         Fix the Qt build.
33872         * bridge/qt/qt_instance.cpp:
33873         (KJS::Bindings::QtInstance::getQtInstance):
33874         (KJS::Bindings::QtInstance::getRuntimeObject):
33875         * bridge/qt/qt_instance.h:
33876         (KJS::Bindings::QtInstance::create):
33877         * bridge/qt/qt_runtime.cpp:
33878         (KJS::Bindings::convertQVariantToValue):
33879         (KJS::Bindings::QtConnectionObject::execute):
33880         * page/qt/FrameQt.cpp:
33881         (WebCore::Frame::createScriptInstanceForWidget):
33883 2008-03-12  Sam Weinig  <sam@webkit.org>
33885         Reviewed by Darin Adler.
33887         Fix <rdar://problem/5784773>
33888         Crash loading QT movies @ apple.com/ipodtouch/features.html with a PAC file (WebKitThreadingException)
33890         Make bridged RuntimeObjects get collected on the main thread only. This is necessary
33891         because clients of the bridged objects are unlikely to prepared for a collection on 
33892         non-main thread, which can happen with a PAC file.
33894         * bridge/runtime_object.cpp:
33895         (RuntimeObjectImp::RuntimeObjectImp):
33897 2008-03-12  Adam Roben  <aroben@apple.com>
33899         Fix Bug 17815: Inspector's DOM tree should descend into subframes
33901         <http://bugs.webkit.org/show_bug.cgi?id=17815>
33903         Reviewed by Tim.
33905         * page/inspector/DocumentPanel.js:
33906         (WebInspector.DocumentPanel.revealNode): Changed to provide
33907         _isAncestorIncludingParentFramesWithinPanel and
33908         _parentNodeOrFrameElementWithinPanel for the isAncestor and getParent
33909         parameters to findTreeElement so that parent frames will be searched.
33910         (WebInspector.DocumentPanel.updateBreadcrumb):
33911           - Changed while loop to for loop
33912           - Use _parentNodeOrFrameElementWithinPanel instead of
33913             Node.parentNode to move to the next node
33914           - The loop now ends when we reach the DocumentPanel's document node
33915           - Traversal past other Document nodes is now allowed
33916           - We add the "start" class to the final crumb after the loop exits
33917         (WebInspector.DocumentPanel._getDocumentForNode): Added. Simple helper
33918         that returns the node itself if the node is a Document node, or the
33919         node's ownerDocument otherwise.
33920         (WebInspector.DocumentPanel._parentNodeOrFrameElementWithinPanel):
33921         Added. Returns the node's parent node or, in the case of a Document
33922         node, the node's window's owning frame element, but will not return a
33923         node that is in a parent frame of the DocumentPanel's Document.
33924         (WebInspector.DocumentPanel._isAncestorIncludingParentFramesWithinPanel):
33925         Added. Returns true if a is an ancestor of b if a is an ancestor of a
33926         frame element whose subframe(s) contain b.
33927         (WebInspector.DOMNodeTreeElement): We now consider ourselves to have
33928         children if we have a contentDocument.
33929         (WebInspector.DOMNodeTreeElement.onpopulate): Moved the appendChild
33930         loop into a function so that we can add both children of our
33931         contentDocument and children of our node to the tree.
33932         (WebInspector.DOMNodeTreeElement.ondblclick): Changed so that we get
33933         the rootDOMNode by traversing the tree outline hierarchy instead of
33934         the DOM hierarchy so that we can easily jump up to a parent frame.
33936 2008-03-12  Adam Roben  <aroben@apple.com>
33938         Update the styles/metrics panes and breadcrumb after editing DOM
33939         attributes
33941         Reviewed by Tim.
33943         * page/inspector/DocumentPanel.js:
33944         (WebInspector.DocumentPanel.set focusedDOMNode): Moved code to update
33945         the parts of the DocumentPanel other than the DOM tree into a new
33946         function, _focusedNodeChanged.
33947         (WebInspector.DocumentPanel._focusedNodeChanged): Added. The
33948         forceUpdate parameter specifies whether the update should occur even
33949         if the focused node hasn't changed since the last update.
33950         (WebInspector.DocumentPanel.updateBreadcrumb): Added a forceUpdate
33951         parameter. If forceUpdate is true, we always rebuild the breadcrumbs.
33952         (WebInspector.DocumentPanel.updateStyles): Added a forceUpdate
33953         parameter. If forceUpdate is true, we always rebuild the styles pane.
33954         (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Added a
33955         call to DocumentPanel._focusedNodeChanged. We have to force the update
33956         because we haven't changed the focused node (the attributes of the
33957         node have changed).
33958         * page/inspector/StylesSidebarPane.js:
33959         (WebInspector.StylesSidebarPane.update): Added a forceUpdate
33960         parameter. If forceUpdate is true we always rebuild the styles.
33962 2008-03-12  Mark Rowe  <mrowe@apple.com>
33964         Further Gtk and Qt build fixes.
33966         * bridge/runtime.cpp:
33967         (KJS::Bindings::Instance::createRuntimeObject): Adapt Qt-only code for change to PassRefPtr.
33968         * page/gtk/FrameGtk.cpp: Add missing include.
33970 2008-03-12  Mark Rowe  <mrowe@apple.com>
33972         Fix Gtk and Qt builds.
33974         * page/gtk/FrameGtk.cpp:
33975         * page/qt/FrameQt.cpp:
33977 2008-03-12  Mark Rowe  <mrowe@apple.com>
33979         Mac build fix.
33981         * WebCore.base.exp:  Remove symbol.
33983 2008-03-12  Steve Falkenburg  <sfalken@apple.com>
33985         Build fix.
33987         * page/win/FrameWin.cpp:
33989 2008-03-12  Steve Falkenburg  <sfalken@apple.com>
33991         Build fix.
33993         * plugins/win/PluginViewWin.cpp:
33994         (WebCore::PluginView::bindingInstance):
33996 2008-03-12  Darin Adler  <darin@apple.com>
33998         Reviewed by Anders.
34000         - http://bugs.webkit.org/show_bug.cgi?id=17640
34001           eliminate WebCoreFrameBridge
34003         * WebCore.base.exp: Added more exports, needed by code moved from WebCoreFrameBridge
34004         to WebFrame in WebKit.
34005         * WebCore.xcodeproj/project.pbxproj: Added more headers, same reason. Also deleted
34006         WebCoreFrameBridge.h and WebCoreFrameBridge.mm.
34008         * page/Frame.cpp:
34009         (WebCore::Frame::Frame): Added call to initJavaJSBindings(), formerly handled by
34010         the WebCoreFrameBridge.
34011         * page/Frame.h: Added initJavaJSBindings function.
34013         * page/mac/FrameMac.mm:
34014         (WebCore::updateRenderingForBindings): Moved here from WebCoreFrameBridge.
34015         (WebCore::Frame::initJavaJSBindings): Ditto; code was in the init function.
34017         * page/mac/WebCoreFrameBridge.h: Removed.
34018         * page/mac/WebCoreFrameBridge.mm: Removed.
34020 2008-03-12  Sam Weinig  <sam@webkit.org>
34022         Reviewed by Anders Carlsson.
34024         Don't go through the Document just to get the frame Element.
34026         * page/DOMWindow.cpp:
34027         (WebCore::DOMWindow::frameElement):
34029 2008-03-12  Anders Carlsson  <andersca@apple.com>
34031         Reviewed by Geoff and Sam.
34033         More Instance cleanup:
34034         
34035         * Make Instance inherit from RefCounted instead of doing its own refcounting.        
34036         * Make all Instance subclasses private, add static create methods.         
34037         * Have Instance start out with a refcount of 1.
34038         * Get rid of Instance::createBindingForLanguageInstance and call the individual 
34039           instance constructor methods instead.
34040         * Fix many methods to take and return PassRefPtr<Instance> to ensure that the
34041           refcounting is done correctly.
34042          
34043         * bridge/c/c_instance.h:
34044         (KJS::Bindings::CInstance::create):
34045         * bridge/c/c_utility.cpp:
34046         (KJS::Bindings::convertNPVariantToValue):
34047         * bridge/jni/jni_instance.cpp:
34048         (JavaInstance::invokeMethod):
34049         * bridge/jni/jni_instance.h:
34050         (KJS::Bindings::JavaInstance::create):
34051         * bridge/jni/jni_jsobject.cpp:
34052         (JavaJSObject::convertJObjectToValue):
34053         * bridge/jni/jni_runtime.cpp:
34054         (JavaField::valueFromInstance):
34055         (JavaArray::valueAt):
34056         * bridge/objc/objc_instance.h:
34057         (KJS::Bindings::ObjcInstance::create):
34058         * bridge/objc/objc_utility.mm:
34059         (KJS::Bindings::convertObjcValueToValue):
34060         * bridge/qt/qt_instance.cpp:
34061         (KJS::Bindings::QtRuntimeObjectImp::QtRuntimeObjectImp):
34062         (KJS::Bindings::QtInstance::getQtInstance):
34063         (KJS::Bindings::QtInstance::getRuntimeObject):
34064         * bridge/qt/qt_instance.h:
34065         * bridge/runtime.cpp:
34066         (KJS::Bindings::Instance::Instance):
34067         (KJS::Bindings::Instance::createRuntimeObject):
34068         * bridge/runtime.h:
34069         * bridge/runtime_object.cpp:
34070         (RuntimeObjectImp::RuntimeObjectImp):
34071         * bridge/runtime_object.h:
34072         * page/Frame.h:
34073         * page/mac/FrameMac.mm:
34074         (WebCore::Frame::createScriptInstanceForWidget):
34075         * page/win/FrameWin.cpp:
34076         (WebCore::Frame::createScriptInstanceForWidget):
34077         * plugins/PluginView.h:
34078         * plugins/win/PluginViewWin.cpp:
34079         (WebCore::PluginView::bindingInstance):
34081 2008-03-12  Dan Bernstein  <mitz@apple.com>
34083         Suggested by Darin Adler. Reviewed by Dave Hyatt.
34085         - speed up BidiIterator::direction()
34087         * rendering/bidi.cpp:
34088         (WebCore::BidiIterator::current): Made inline and corrected the
34089         out-of-bounds condition to work with 0-length text and offsets beyond
34090         the end of the text.
34091         (WebCore::BidiIterator::direction): Changed to call current() and not
34092         call the virtual method isListMarker() most of the time.
34093         (WebCore::addMidpoint): Removed unnecessary null-check of smidpoints.
34094         (WebCore::appendRunsForObject): Ditto.
34096 2008-03-12  Adam Roben  <aroben@apple.com>
34098         Make URLs not be underlined while editing them in the DOM view
34100         Reviewed by Tim.
34102         * page/inspector/inspector.css:
34104 2008-03-12  Adam Roben  <aroben@apple.com>
34106         Part of Bug 17224: DOM nodes/attributes should be editable
34108         <http://bugs.webkit.org/show_bug.cgi?id=17224>
34109         <rdar://problem/5732825>
34111         We now start editing if the user single-clicks on an attribute,
34112         attribute value, or text node while the parent element is selected.
34113         Previously, we started editing on double-click regardless of the
34114         selection state of the element.
34116         URLs in the DOM tree are now followed on Alt/Option-click, rather than
34117         on just click.
34119         Reviewed by Tim.
34121         * English.lproj/InspectorLocalizedStrings.js: Added four new localized
34122         strings.
34123         * page/inspector/DocumentPanel.js:
34124         (WebInspector.DOMNodeTreeElement.onattach): Call new
34125         _makeURLSActivateOnModifiedClick.
34126         (WebInspector.DOMNodeTreeElement._makeURLsActivateOnModifiedClick):
34127         Added. Changes the tooltip of each link in this element to indicate
34128         that Alt/Option-click will follow the URL, and sets the
34129         followOnAltClick property on each link.
34130         (WebInspector.DOMNodeTreeElement.onselect): Mark that we're being
34131         selected.
34132         (WebInspector.DOMNodeTreeElement.onmousedown): If we're not currently
34133         being selected, start editing.
34134         (WebInspector.DOMNodeTreeElement.ondblclick): We no longer start
34135         editing here. We block re-rooting of the tree if we're currently
34136         editing.
34137         (WebInspector.DOMNodeTreeElement._startEditing):
34138           - Don't do anything if we're not focused
34139           - Pass the event down to _startEditingAttribute.
34140         (WebInspector.DOMNodeTreeElement._startEditingAttribute): Don't do
34141         anything if the event target is a URL and the Alt/Option key is
34142         pressed -- in this case we want to follow the link.
34143         (WebInspector.DOMNodeTreeElement._updateTitle): Call
34144         _makeURLsActivateOnClick again since the anchor elements have all been
34145         recreated.
34146         * page/inspector/inspector.js:
34147         (WebInspector.documentClick): If the anchor as a followOnAltClick
34148         property and the Alt/Option key is not pressed, do nothing.
34150 2008-03-12  Ada Chan  <adachan@apple.com>
34152         Fixed the initial value of zoom factor.
34154         Reviewed by Adam.
34156         * page/Frame.cpp:
34157         (WebCore::FramePrivate::FramePrivate):
34159 2008-03-12  David Hyatt  <hyatt@apple.com>
34161         Make full page zoom vaguely work.  This patch uses the CSS transform system to turn on full page zoom at the
34162         document level.  There are many many bugs that I'm going to file to track all the issues (most of the issues
34163         are just bugs with transforms themselves).
34165         Reviewed by Adam Roben
34167         * css/CSSStyleSelector.cpp:
34168         (WebCore::CSSStyleSelector::applyProperty):
34169         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
34170         * dom/Document.cpp:
34171         (WebCore::Document::recalcStyle):
34172         * page/Frame.cpp:
34173         (WebCore::Frame::shouldApplyTextZoom):
34174         (WebCore::Frame::shouldApplyPageZoom):
34175         * page/Frame.h:
34176         * rendering/RenderLayer.cpp:
34177         (WebCore::RenderLayer::updateLayerPositions):
34178         (WebCore::RenderLayer::setHasVisibleContent):
34179         (WebCore::RenderLayer::paintLayer):
34180         (WebCore::RenderLayer::hitTestLayer):
34181         * rendering/RenderLayer.h:
34183 2008-03-12  David Hyatt  <hyatt@apple.com>
34185         Make the zoom factor a float and not a percent.
34187         Reviewed by antti
34189         * WebCore.base.exp:
34190         * css/CSSStyleSelector.cpp:
34191         (WebCore::CSSStyleSelector::applyProperty):
34192         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
34193         * page/Frame.cpp:
34194         (WebCore::Frame::zoomFactor):
34195         (WebCore::Frame::setZoomFactor):
34196         * page/Frame.h:
34197         * page/FramePrivate.h:
34198         * svg/SVGSVGElement.cpp:
34199         (WebCore::SVGSVGElement::currentScale):
34200         (WebCore::SVGSVGElement::setCurrentScale):
34202 2008-03-12  David Hyatt  <hyatt@apple.com>
34204         Eliminate setTextMultiplier from the bridge.  Make Webkit just call setZoomFactor on the frame directly.
34206         Reviewed by Tim H.
34208         * WebCore.base.exp:
34209         * page/mac/WebCoreFrameBridge.h:
34210         * page/mac/WebCoreFrameBridge.mm:
34212 2008-03-12  Dan Bernstein  <mitz@apple.com>
34214         Reviewed by Darin Adler and Sam Weinig.
34216         - <rdar://problem/4433248> use CoreText API instead of SPI on Leopard
34218         Use CTFontCopyGraphicsFont and CTFontGetPlatformFont on Leopard instead
34219         of wkGetCGFontFromNSFont and wkGetNSFontATSUFontId, relying on NSFont
34220         and CTFontRef being toll-free bridged.
34222         * WebCore.Tiger.exp:
34223         * WebCore.base.exp:
34224         * platform/graphics/mac/FontMac.mm:
34225         (WebCore::Font::drawGlyphs): Changed to use the cgFont() accessor.
34226         * platform/graphics/mac/FontPlatformData.h:
34227         Made m_cgFont a RetainPtr on Leopard.
34228         (WebCore::toCTFontRef): Added a function that encapsulates the
34229         toll-free bridging.
34230         (WebCore::FontPlatformData::FontPlatformData):
34231         (WebCore::FontPlatformData::cgFont): Added this accessor method.
34232         * platform/graphics/mac/FontPlatformDataMac.mm:
34233         (WebCore::FontPlatformData::FontPlatformData): Changed to use
34234         CoreText API on Leopard.
34235         (WebCore::FontPlatformData::setFont): Ditto.
34236         * platform/graphics/mac/SimpleFontDataMac.mm:
34237         (WebCore::initFontData):
34238         (WebCore::pathFromFont):
34239         (WebCore::SimpleFontData::platformInit):
34240         (WebCore::SimpleFontData::platformWidthForGlyph):
34241         * platform/mac/WebCoreSystemInterface.mm:
34243 2008-03-12  David Harrison  <harrison@apple.com>
34245         Reviewed by Darin.
34247         <rdar://problem/5607382> CrashTracer: [REGRESSION] 2290 crashes in Safari at com.apple.WebCore: -[WebCoreAXObject isWebArea] + 8
34249         The problem was that we lost track of the AX cache for a subframe when Frame::disconnectOwnerElement() was
34250         called, so we were unable to locate the AXObjects to de-register from AppKit's accessibility registry.
34251         Also saw that cache clearing was missing from Document::detach(), and fixed that.
34252         
34253         Also added a debug-only check that AXObjectCache::remove() not finding the AXObject is expected.
34254         
34255         Lastly, RenderWidget::destroy() now skips trying to remove the AXObject if accessibility has never been enabled.
34256        
34257         * dom/Document.cpp:
34258         (WebCore::Document::attach):
34259         Assert that there is no AX cache (since there is no renderer).
34260         
34261         (WebCore::Document::detach):
34262         Destroy the AX cache installed on this document.
34263         
34264         (WebCore::Document::clearAXObjectCache):
34265         New. Destroy the AX cache associated with this document.
34266         
34267         (WebCore::Document::axObjectCache):
34268         Added some comments.
34269         
34270         * dom/Document.h:
34271         Declare clearAXObjectCache().
34272         
34273         * page/Frame.cpp:
34274         (WebCore::Frame::disconnectOwnerElement):
34275         Destroy the AX cache associated with this frame's document.
34276         
34277         * page/mac/AXObjectCacheMac.mm:
34278         (WebCore::AXObjectCache::remove):        
34279         * page/mac/WebCoreAXObject.mm:
34280         (-[WebCoreAXObject initWithRenderer:]):
34281         (-[WebCoreAXObject detach]):
34282         * rendering/RenderObject.cpp:
34283         (WebCore::RenderObject::RenderObject):
34284         (WebCore::RenderObject::~RenderObject):
34285         * rendering/RenderObject.h:
34286         (WebCore::RenderObject::setHasAXObject):
34287         (WebCore::RenderObject::hasAXObject):
34288         Add debug-only check that AXObjectCache::remove() not finding the AXObject is expected.
34289         
34290         * rendering/RenderWidget.cpp:
34291         (WebCore::RenderWidget::destroy):
34292         Skip call to remove the AXObject if accessibility has never been enabled. A simple speed optimization in the
34293         very common case that the accessibility APIs are not being used. Same as in RenderObject::destroy().
34295 2008-03-12  Xan Lopez  <xan@gnome.org>
34297         Reviewed by Alp Toker.
34299         http://bugs.webkit.org/show_bug.cgi?id=15229
34301         Add Pango font backend.
34303         Original patch by Sven Herzberg <sven@imendio.com>
34305         * GNUmakefile.am:
34306         * platform/graphics/gtk/FontCacheGtk.cpp:
34307         (WebCore::FontCache::fontExists):
34308         * platform/graphics/gtk/FontCustomPlatformDataPango.cpp: Added.
34309         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
34310         (WebCore::FontCustomPlatformData::fontPlatformData):
34311         (WebCore::releaseData):
34312         (WebCore::createFontCustomPlatformData):
34313         * platform/graphics/gtk/FontPlatformData.h:
34314         (WebCore::FontPlatformData::FontPlatformData):
34315         (WebCore::FontPlatformData::hash):
34316         * platform/graphics/gtk/FontPlatformDataPango.cpp: Added.
34317         (WebCore::FontPlatformData::FontPlatformData):
34318         (WebCore::FontPlatformData::init):
34319         (WebCore::FontPlatformData::~FontPlatformData):
34320         (WebCore::FontPlatformData::isFixedPitch):
34321         (WebCore::FontPlatformData::setFont):
34322         (WebCore::FontPlatformData::operator==):
34323         * platform/graphics/gtk/GlyphPageTreeNodePango.cpp: Added.
34324         (WebCore::pango_font_get_glyph):
34325         (WebCore::GlyphPage::fill):
34326         * platform/graphics/gtk/SimpleFontDataPango.cpp: Added.
34327         (WebCore::SimpleFontData::platformInit):
34328         (WebCore::SimpleFontData::platformDestroy):
34329         (WebCore::SimpleFontData::smallCapsFontData):
34330         (WebCore::SimpleFontData::containsCharacters):
34331         (WebCore::SimpleFontData::determinePitch):
34332         (WebCore::SimpleFontData::platformWidthForGlyph):
34333         (WebCore::SimpleFontData::setFont):
34335 2008-03-12  Justin Garcia  <justin.garcia@apple.com>
34337         Reviewed by Oliver.
34338         
34339         <rdar://problem/5770834> Crash at InsertTextCommand::prepareForTextInsertion() doing RemoveFormat in a certain list
34340         
34341         Fixes some (but not all) of the instances of:
34342         <rdar://problem/5659795> CrashTracer: [REGRESSION] 187 crashes in Safari at com.apple.WebCore: WebCore::InsertTextCommand::prepareForTextInsertion + 241
34343         <rdar://problem/5779631> CrashTracer: [USER] 25 crashes in Mail at WebCore::InsertTextCommand::prepareForTextInsertion
34345         * editing/InsertLineBreakCommand.cpp:
34346         (WebCore::InsertLineBreakCommand::doApply): applyStyle may have destroyed content that held
34347         the old endingSelection(), so we must recompute it.  Added a FIXME.  Added a few comments.
34348         * editing/RemoveFormatCommand.cpp:
34349         (WebCore::RemoveFormatCommand::doApply): Added a FIXME.
34351 2008-03-11  Alexey Proskuryakov  <ap@webkit.org>
34353         Reviewed by Darin.
34355         <rdar://problem/5640615> REGRESSION (Safari 2-3): Changing subframe encoding rules broke
34356         some sites.
34358         Other browsers' behavior keeps changing; let's implement what Firefox and Opera do now:
34359         if the frame and subframe belong to the same site, then the encoding is inherited from parent
34360         frame to subframe. Otherwise, it is not.
34362         Always inheriting the encoding would cause a security problem.
34364         Tests: http/tests/misc/frame-default-enc-different-domain.html
34365                http/tests/misc/frame-default-enc-same-domain.html
34366                fast/encoding/frame-default-enc.html
34368         * loader/FrameLoader.cpp:
34369         (WebCore::FrameLoader::write): Also removed a check for m_frame->document() being non-null -
34370         this function also has code that uses it without checking, so it must be safe.
34372 2008-03-12  Mark Rowe  <mrowe@apple.com>
34374         Gtk build fix.
34376         * page/Frame.h: Forward-declare FramePrivate.
34378 2008-03-11  Steve Falkenburg  <sfalken@apple.com>
34380         Disable LTCG/PGO for all of WebCore for now.
34381         We'll re-enable this as part of follow-on PGO work.
34382         
34383         Reviewed by Oliver.
34385         * WebCore.vcproj/WebCore.vcproj:
34387 2008-03-11  Darin Adler  <darin@apple.com>
34389         Reviewed by Sam.
34391         - remove all bridge-related things from WebCore except the bridge itself
34393         * WebCore.base.exp: Removed the bridge and setBridge functions.
34395         * loader/FrameLoader.cpp:
34396         (WebCore::FrameLoader::detachFromParent): Removed call to the bridge's
34397         close method.
34399         * page/Frame.cpp:
34400         (WebCore::Frame::~Frame): Removed call to setBridge(0).
34401         (WebCore::FramePrivate::FramePrivate): Removed initialization of m_bridge.
34402         * page/Frame.h: Removed setBridge and bridge functions.
34403         * page/FramePrivate.h: Removed m_bridge pointer.
34404         * page/mac/FrameMac.mm: Removed setBridge and bridge functions.
34406         * page/mac/WebCoreFrameBridge.h: Added setWebCoreFrame: method.
34407         Removed bridgeForDOMDocument: and clearFrame methods.
34408         * page/mac/WebCoreFrameBridge.mm: Ditto.
34409         (-[WebCoreFrameBridge close]): Changed to set m_frame to 0 directly.
34410         (-[WebCoreFrameBridge setWebCoreFrame:]): Added.
34412 2008-03-11  Darin Adler  <darin@apple.com>
34414         - restored some code I removed in the Range change; this code can't go
34415           until the rest of the Range fix is in
34417         * dom/Range.cpp:
34418         (WebCore::Range::commonAncestorContainer): Added back the check for 0
34419         that I removed erroneously in the Range patch.
34420         (WebCore::Range::processContents): Left in assertions I used to debug
34421         this.
34423 2008-03-11  Darin Adler  <darin@apple.com>
34425         - fix Release build
34427         * platform/mac/ScrollViewMac.mm:
34428         (WebCore::ScrollView::setContentsPos): Don't use NSMakePoint.
34430 2008-03-11  Darin Adler  <darin@apple.com>
34432         Reviewed by Anders.
34434         - simplify Mac code for ScrollView, since it's used only for FrameView
34435           and not in two different modes like it was historically
34436         - remove code depending on the bridge to get from an NSView to a WebCore::Frame
34438         * bindings/objc/DOMHTML.mm:
34439         (-[DOMHTMLInputElement _rectOnScreen]): getDocumentView -> documentView.
34441         * bridge/jni/jni_jsobject.cpp:
34442         (createRootObject): Instead of using WebCoreViewFactory to find the frame given
34443         and NSView, use the WebCoreFrameView interface to do it.
34445         * editing/mac/EditorMac.mm:
34446         (WebCore::Editor::paste): getDocumentView -> documentView.
34447         * editing/mac/SelectionControllerMac.mm:
34448         (WebCore::SelectionController::notifyAccessibilityForSelectionChange): Ditto.
34450         * page/FrameView.h: Fixed comment.
34452         * page/InspectorController.cpp:
34453         (WebCore::InspectorController::drawNodeHighlight): Removed uneeded typecasts
34454         to ScrollView* since FrameView is derived from ScrollView.
34456         * page/mac/EventHandlerMac.mm:
34457         (WebCore::EventHandler::focusDocumentView): getDocumentView -> documentView.
34458         * page/mac/FrameMac.mm:
34459         (WebCore::Frame::imageFromRect): Ditto.
34460         * page/mac/WebCoreAXObject.mm:
34461         (-[WebCoreAXObject position]): Ditto.
34462         (-[WebCoreAXObject doAXTextMarkerForPosition:]): Ditto.
34463         (-[WebCoreAXObject rendererForView:]): Updated code that used to use
34464         WebCoreBridgeHolder to use WebCoreFrameView instead.
34466         * page/mac/WebCoreFrameBridge.mm:
34467         (-[WebCoreFrameBridge computePageRectsWithPrintWidthScaleFactor:printHeight:]):
34468         getDocumentView -> documentView.
34470         * page/mac/WebCoreFrameView.h: Removed the WebCoreScrollbarMode type; we just
34471         use WebCore::ScrollbarMode directly. Renamed the WebCoreFrameView protocol to
34472         WebCoreFrameScrollView, since it's a protocol for the scroll view, not the
34473         frame view itself. Replaced WebCoreBridgeHolder protocol with WebCoreFrameView
34474         protocol, which returns a WebCore::Frame directly rather than a bridge.
34476         * page/mac/WebCoreViewFactory.h: Eliminated the bridgeForView method.
34478         * platform/ScrollView.h: Moved the constructor and destructor out of the
34479         class-specific #if blocks. Renamed Mac-specific function that gets the
34480         NSView for from getDocumentView to documentView and a scrollView function
34481         that returns an appropriately classed NSScrollView.
34483         * platform/graphics/MediaPlayer.h: Changed type of parentWidget to FrameView
34484         instead of Widget.
34485         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
34486         (WebCore::MediaPlayerPrivate::createQTMovieView): Removed unnecessary cast.
34488         * platform/mac/PopupMenuMac.mm:
34489         (WebCore::PopupMenu::show): getDocumentView -> documentView.
34490         * platform/mac/ScrollViewMac.mm:
34491         (WebCore::ScrollView::ScrollView): Added.
34492         (WebCore::ScrollView::~ScrollView): Added.
34493         (WebCore::ScrollView::scrollView): Added.
34494         (WebCore::ScrollView::visibleWidth): Removed unused non-NSScrollView case.
34495         (WebCore::ScrollView::visibleHeight): Ditto.
34496         (WebCore::ScrollView::visibleContentRect): Ditto.
34497         (WebCore::ScrollView::visibleContentRectConsideringExternalScrollers): Ditto.
34498         (WebCore::ScrollView::contentsWidth): Ditto.
34499         (WebCore::ScrollView::contentsHeight): Ditto.
34500         (WebCore::ScrollView::contentsX): Ditto.
34501         (WebCore::ScrollView::contentsY): Ditto.
34502         (WebCore::ScrollView::scrollOffset): Ditto.
34503         (WebCore::ScrollView::scrollRectIntoViewRecursively): Ditto.
34504         (WebCore::ScrollView::setContentsPos): Ditto.
34505         (WebCore::ScrollView::setVScrollbarMode): Ditto.
34506         (WebCore::ScrollView::setHScrollbarMode): Ditto.
34507         (WebCore::ScrollView::setScrollbarsMode): Ditto.
34508         (WebCore::ScrollView::vScrollbarMode): Ditto.
34509         (WebCore::ScrollView::hScrollbarMode): Ditto.
34510         (WebCore::ScrollView::suppressScrollbars): Ditto.
34511         (WebCore::ScrollView::addChild): Ditto.
34512         (WebCore::ScrollView::resizeContents): Ditto.
34513         (WebCore::ScrollView::updateContents): Ditto.
34514         (WebCore::ScrollView::contentsToWindow): Ditto.
34515         (WebCore::ScrollView::windowToContents): Ditto.
34516         (WebCore::ScrollView::setStaticBackground): Ditto.
34517         (WebCore::ScrollView::documentView): Renamed and removed unused case.
34518         (WebCore::ScrollView::scrollbarUnderMouse): Removed incorrect comment.
34520         * platform/mac/WidgetMac.mm:
34521         (WebCore::Widget::getOuterView): Update for protocol name change.
34523         * rendering/RenderThemeMac.mm:
34524         (WebCore::RenderThemeMac::paintCheckbox): getDocumentView -> documentView.
34525         (WebCore::RenderThemeMac::paintRadio): Ditto.
34526         (WebCore::RenderThemeMac::paintButton): Ditto.
34527         (WebCore::RenderThemeMac::paintMenuList): Ditto.
34528         (WebCore::RenderThemeMac::paintSliderThumb): Ditto.
34529         (WebCore::RenderThemeMac::paintSearchField): Ditto.
34530         (WebCore::RenderThemeMac::paintSearchFieldCancelButton): Ditto.
34531         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration): Ditto.
34532         (WebCore::RenderThemeMac::paintSearchFieldResultsButton): Ditto.
34534 2008-03-11  Brent Fulgham  <bfulgham@gmail.com>
34536         Reviewed by Adam Roben.
34538         Split CookieJarWin.cpp into CFNet and non-CFNet versions to
34539         reduce the massive amount of conditionalization in the file.
34540         (see http://bugs.webkit.org/show_bug.cgi?id=17788)
34542         * WebCore.vcproj/WebCore.vcproj:
34543         * platform/network/win/CookieJarCFNetWin.cpp: Copied from WebCore/platform/network/win/CookieJarWin.cpp.
34544         (WebCore::setCookies):
34545         (WebCore::cookies):
34546         (WebCore::cookiesEnabled):
34547         * platform/network/win/CookieJarWin.cpp:
34548         (WebCore::setCookies):
34549         (WebCore::cookies):
34550         (WebCore::cookiesEnabled):
34552 2008-03-11  Darin Adler  <darin@apple.com>
34554         Reviewed by Sam.
34556         - eliminate the remaining parts of WebCoreBridge used for calls to WebKit from WebCore
34558         * page/ChromeClient.h: Added new client functions to replace calls up to WebKit
34559         that were formerly handled by the bridge.
34561         * page/Frame.h: Removed unneeded declarations. Moved declarations of script-specific
34562         functions to a ScriptController section. Removed willPopupMenu.
34564         * page/mac/ChromeMac.mm:
34565         (WebCore::Chrome::focusNSView): Changed to call firstResponder and makeFirstResponder
34566         via the client instead of the bridge.
34568         * page/mac/EventHandlerMac.mm:
34569         (WebCore::EventHandler::passMouseDownEventToWidget): Changed to call firstResponder
34570         and makeFirstResponder via the chrome client instead of the bridge.
34572         * page/mac/FrameMac.mm: Removed willPopupMenu.
34574         * page/mac/WebCoreFrameBridge.h: Removed WebCoreFrameBridge protocol and
34575         SubclassResponsibility category. Also removed some unneeded imports.
34577         * platform/mac/PopupMenuMac.mm:
34578         (WebCore::PopupMenu::show): Call willPopUpMenu on chrome client instead of frame.
34580         * platform/mac/WidgetMac.mm:
34581         (WebCore::Widget::setIsSelected): Call functions directly on the view rather than
34582         calling via the bridge.
34584 2008-03-11  Darin Adler  <darin@apple.com>
34586         Reviewed by Mitz.
34588         - make some Range improvements (preparation for Range support for DOM mutation)
34590         Made constructors private, added create functions.
34591         Made refcount start at 1 rather than starting at 0 and being incremented.
34592         Made Range use two Position objects for the start/end container/offset pairs.
34594         * WebCore.base.exp: Updated.
34596         * dom/Document.cpp:
34597         (WebCore::Document::createRange): Changed to use Range::create.
34598         (WebCore::Document::removeMarkers): Updated for Range::first/pastLastNode name change.
34600         * dom/Position.cpp:
34601         (WebCore::Position::formatForDebugger): Updated for member variable name change.
34602         (WebCore::Position::showTreeForThis): Ditto.
34603         (WebCore::startPosition): Changed to use Range::startPosition.
34604         (WebCore::endPosition): Changed to use Range::endPosition.
34606         * dom/Position.h: Made the data members public and renamed them to container
34607         and offset. But since offset() is already a function, temporarily used posOffset
34608         for the data member. Later we'll get rid of offset(). Made more functions inline.
34609         Removed the constructor that takes a PositionIterator.
34611         * dom/PositionIterator.cpp:
34612         (WebCore::PositionIterator::operator Position): Added. Replaces the constructor
34613         that used to be in Position.
34614         * dom/PositionIterator.h: Added conversion operator to produce a Position.
34615         Removed friend declaration for Position.
34617         * dom/Range.cpp:
34618         (WebCore::Range::Range): Updated constructors for data member changes and made
34619         them use a refcount of 1.
34620         (WebCore::Range::create): Added.
34621         (WebCore::Range::startContainer): Updated to eliminate use of m_detached; detached
34622         is now indicated by m_start.container of 0. Also updated to use m_start instead
34623         of the old m_startContainer.
34624         (WebCore::Range::startOffset): Ditto.
34625         (WebCore::Range::endContainer): Ditto.
34626         (WebCore::Range::endOffset): Ditto.
34627         (WebCore::Range::commonAncestorContainer): Ditto.
34628         (WebCore::Range::collapsed): Ditto.
34629         (WebCore::Range::setStart): Ditto.
34630         (WebCore::Range::setEnd): Ditto.
34631         (WebCore::Range::collapse): Ditto.
34632         (WebCore::Range::isPointInRange): Ditto.
34633         (WebCore::Range::comparePoint): Ditto.
34634         (WebCore::Range::compareNode): Ditto.
34635         (WebCore::Range::compareBoundaryPoints): Ditto.
34636         (WebCore::Range::boundaryPointsValid): Ditto.
34637         (WebCore::Range::deleteContents): Ditto.
34638         (WebCore::Range::intersectsNode): Ditto.
34639         (WebCore::Range::processContents): Ditto.
34640         (WebCore::Range::extractContents): Ditto.
34641         (WebCore::Range::cloneContents): Ditto.
34642         (WebCore::Range::insertNode): Ditto.
34643         (WebCore::Range::toString): Ditto.
34644         (WebCore::Range::text): Ditto.
34645         (WebCore::Range::createContextualFragment): Ditto.
34646         (WebCore::Range::detach): Ditto.
34647         (WebCore::Range::checkNodeBA): Changed to use switch statements instead of
34648         multiple calls to the virtual nodeType() function.
34649         (WebCore::Range::cloneRange): Ditto.
34650         (WebCore::Range::setStartAfter): Ditto.
34651         (WebCore::Range::setEndBefore): Ditto.
34652         (WebCore::Range::setEndAfter): Ditto.
34653         (WebCore::Range::selectNode): Ditto.
34654         (WebCore::Range::selectNodeContents): Ditto.
34655         (WebCore::Range::surroundContents): Ditto.
34656         (WebCore::Range::setStartBefore): Ditto.
34657         (WebCore::Range::checkDeleteExtract): Ditto.
34658         (WebCore::Range::containedByReadOnly): Ditto.
34659         (WebCore::Range::firstNode): Ditto.
34660         (WebCore::Range::editingStartPosition): Ditto.
34661         (WebCore::Range::pastLastNode): Ditto.
34662         (WebCore::Range::addLineBoxRects): Ditto.
34663         (WebCore::Range::formatForDebugger): Ditto.
34664         (WebCore::operator==): Ditto.
34665         (WebCore::rangeOfContents): Ditto.
34666         (WebCore::Range::maxStartOffset): Ditto.
34667         (WebCore::Range::maxEndOffset): Ditto.
34669         * dom/Range.h: Made constructors private. Added create functions.
34670         Added getters for startContainer/Offset and endContainer/Offset that
34671         return 0 instead of an exception for detached ranges that are inline
34672         and don't require an ExceptionCode out parameter. Changed the parameters
34673         to setStart and setEnd to PassRefPtr. Removed isDetached function.
34674         Made ActionType and processContents private. Made startPosition and
34675         endPosition inlines and have then return const&. Renamed startNode and
34676         pastEndNode to firstNode and pastLastNode to reduce the chance of
34677         confusion with startContainer/endContainer. Used Position for m_start
34678         and m_end instead of separate container and offset members. Changed
34679         maxStartOffset and maxEndOffset into int to match other offsets.
34681         * editing/ApplyStyleCommand.cpp:
34682         (WebCore::ApplyStyleCommand::applyBlockStyle): Changed to use Range::create.
34683         (WebCore::ApplyStyleCommand::applyInlineStyle): Ditto.
34684         * editing/CompositeEditCommand.cpp:
34685         (WebCore::CompositeEditCommand::inputText): Ditto.
34686         (WebCore::CompositeEditCommand::moveParagraphs): Ditto.
34687         * editing/DeleteSelectionCommand.cpp:
34688         (WebCore::DeleteSelectionCommand::mergeParagraphs): Ditto.
34689         * editing/Editor.cpp:
34690         (WebCore::Editor::fontForSelection): Changed for pastLastNode name change.
34691         (WebCore::Editor::setComposition): Changed to use Range::create.
34692         (WebCore::paragraphAlignedRangeForRange): Ditto.
34693         (WebCore::markMisspellingsOrBadGrammar): Changed to get rid of check for
34694         isDetached and check for 0 from startContainer instead.
34695         (WebCore::Editor::compositionRange): Changed to use Range::create.
34696         * editing/EditorCommand.cpp:
34697         (WebCore::unionDOMRanges): Ditto.
34698         * editing/Selection.cpp:
34699         (WebCore::Selection::toRange): Ditto.
34700         * editing/TextIterator.cpp:
34701         (WebCore::TextIterator::TextIterator): Changed for firstNode and pastLastNode
34702         name change.
34703         (WebCore::TextIterator::range): Changed to use Range::create.
34704         (WebCore::SimplifiedBackwardsTextIterator::range): Ditto.
34705         (WebCore::TextIterator::subrange): Ditto.
34706         * editing/VisiblePosition.cpp:
34707         (WebCore::makeRange): Ditto.
34708         * editing/VisiblePosition.h: Added now-needed include.
34709         * editing/htmlediting.cpp:
34710         (WebCore::indexForVisiblePosition): Changed to use Range::create.
34711         (WebCore::avoidIntersectionWithNode): Changed to get rid of check for
34712         isDetached and check for 0 instead and to use Range::create.
34713         * editing/markup.cpp:
34714         (WebCore::renderedText): Changed to use Range::create.
34715         (WebCore::createMarkup): Changed to no longer use isDetached and also
34716         for new firstNode/pastEndNode names.
34717         (WebCore::createFragmentFromText): Ditto.
34718         * editing/visible_units.cpp:
34719         (WebCore::previousBoundary): Changed to use Range::create.
34720         * page/mac/WebCoreFrameBridge.mm:
34721         (-[WebCoreFrameBridge convertToNSRange:]): Changed to no longer use
34722         isDetached().
34723         * rendering/RenderTextControl.cpp:
34724         (WebCore::RenderTextControl::visiblePositionForIndex): Changed to use Range::create.
34725         (WebCore::RenderTextControl::indexForVisiblePosition): Ditto.
34727 2008-03-11  Daniel Zucker <zucker@wake3.com>
34729         Reviewed by Adam Roben.
34731         There are a handful of placed where the use of CFNetwork-specific
34732         calls are protected by PLATFORM(CF).  Revise to use the more specific
34733         USE(CFNETWORK) macro.  (See http://bugs.webkit.org/show_bug.cgi?id=17783) 
34735         * platform/network/ProtectionSpace.cpp:  Change PLATFORM(CF) to USE(CFNETWORK)
34736         * platform/network/ResourceHandle.cpp: Change PLATFORM(CF) to USE(CFNETWORK)
34737         * platform/network/win/CookieJarWin.cpp:  Correct error in
34738           InternetGetCookie call.  Conditionalize 'cookiesEnabled' the same
34739           as all other implementations in this file.
34741 2008-03-11  Xan Lopez  <xan@gnome.org>
34743         Reviewed by Alp Toker.
34745         http://bugs.webkit.org/show_bug.cgi?id=16476
34747         Add libsoup HTTP backend.
34748         
34749         * GNUmakefile.am:
34750         * platform/network/ResourceHandleInternal.h:
34751         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
34752         * platform/network/soup/AuthenticationChallenge.h: Added.
34753         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
34754         * platform/network/soup/ResourceError.h: Added.
34755         (WebCore::ResourceError::ResourceError):
34756         * platform/network/soup/ResourceHandleSoup.cpp: Added.
34757         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
34758         (WebCore::ResourceHandle::~ResourceHandle):
34759         (WebCore::dataCallback):
34760         (WebCore::parseDataUrl):
34761         (WebCore::ResourceHandle::start):
34762         (WebCore::ResourceHandle::cancel):
34763         (WebCore::ResourceHandle::bufferedData):
34764         (WebCore::ResourceHandle::supportsBufferedData):
34765         (WebCore::ResourceHandle::setDefersLoading):
34766         (WebCore::ResourceHandle::loadsBlocked):
34767         (WebCore::ResourceHandle::willLoadFromCache):
34768         * platform/network/soup/ResourceRequest.h: Copied from WebCore/platform/network/curl/ResourceRequest.h.
34769         (WebCore::ResourceRequest::ResourceRequest):
34770         (WebCore::ResourceRequest::doUpdatePlatformRequest):
34771         * platform/network/soup/ResourceResponse.h: Added.
34772         (WebCore::ResourceResponse::ResourceResponse):
34773         (WebCore::ResourceResponse::setResponseFired):
34774         (WebCore::ResourceResponse::responseFired):
34775         (WebCore::ResourceResponse::doUpdateResourceResponse):
34777 2008-03-11  Rodney Dawes  <dobey@wayofthemonkey.com>
34779         Fix Qt build.
34781         * plugins/qt/PluginDataQt.cpp:
34782         (PluginData::initPlugins)
34784 2008-03-11  Adam Roben  <aroben@apple.com>
34786         Make attribute quoting in DOM view more consistent with source view
34788         Two changes which make the DOM view more consistent with source view:
34789          1) We now quote all attribute values, including URLs
34790          2) The quotes around the values are now purple, matching the left and
34791             right angle brackets that surround the tag
34793         One bug fixed by these changes:
34794          1) The entire URL is selected for editing when you double-click a URL
34795             that is an attribute value. Previously, the first and last
34796             characters were not included in the selection.
34798         Reviewed by Darin.
34800         * page/inspector/DocumentPanel.js:
34801         (WebInspector.DOMNodeTreeElement._startEditingAttribute): Don't need
34802         to account for the quotes around attribute values anymore because the
34803         quotes are now outside the webkit-html-attribute-value span.
34804         * page/inspector/utilities.js:
34805         (nodeTitleInfo): Quote all attribute values, including URLs, and place
34806         the quotes outside the webkit-html-attribute-value span.
34808 2008-03-11  Adam Roben  <aroben@apple.com>
34810         Stop including pthread.h in WebCore on Windows
34812         Reviewed by Darin.
34814         * WebCore.vcproj/WebCore.vcproj:
34815           - Changed the include path to not contain pthreads/
34816           - Let VS remove a duplicate FileConfiguration element
34817           - Let VS have its way with the file ordering
34818         * WebCorePrefix.h: Made the #include of pthread.h be compiled out on
34819         Windows.
34820         * loader/FTPDirectoryDocument.cpp: Added a Windows-specific #define of
34821         localtime_r (pthread.h was providing a macro that substituted plain
34822         old localtime before, but localtime_s is "more secure", so I went with
34823         that).
34824         * loader/FTPDirectoryParser.cpp: Ditto for gmtime_r.
34826 2008-03-11  Adam Roben  <aroben@apple.com>
34828         Roll out r30961 since it broke the default site icon on Windows
34830         * loader/icon/IconDatabase.cpp:
34831         (WebCore::IconDatabase::defaultIcon):
34833 2008-03-11  Dan Bernstein  <mitz@apple.com>
34835         Reviewed by Darin Adler.
34837         - clean up line layout code
34839         * platform/graphics/GraphicsContext.cpp:
34840         (WebCore::TextRunIterator::increment): Removed the resolver parameter.
34841         (WebCore::GraphicsContext::drawBidiText): Adjusted for changes to
34842         createBidiRunsForLine(), which no longer takes a start parameter.
34843         * platform/text/BidiResolver.h:
34844         (WebCore::BidiResolver::): Made Noncopyable and removed the
34845         m_adjustEmbedding member variable.
34846         (WebCore::BidiResolver::position): Added. Returns the resolver's current
34847         position.
34848         (WebCore::BidiResolver::setPosition): Added. Sets the resolver's current
34849         position without changing any other state.
34850         (WebCore::BidiResolver::increment): Added. Advances the resolver to the
34851         next position, allowing the iterator to push and pop embedding.
34852         (WebCore::BidiResolver::appendRun): Removed the resolver parameter in
34853         the call to increment().
34854         (WebCore::BidiResolver::embed): Removed code to save, set and restore
34855         m_adjustEmbedding.
34856         (WebCore::BidiResolver::createBidiRunsForLine): Changed to not take a
34857         'start' iterator. Instead, start at the current position. Removed code
34858         to set m_adjustEmbedding. Changed for noncopyability.
34859         * rendering/RenderBlock.h:
34860         * rendering/bidi.cpp:
34861         (WebCore::bidiNext): Made the resolver parameter optional. Changed to
34862         null-check the 'end of inline' pointer only twice.
34863         (WebCore::bidiFirst): Made the resolver parameter optional.
34864         (WebCore::BidiIterator::increment): Ditto.
34865         (WebCore::BidiState::increment): Added. Overrides the default
34866         BidiResolver::increment() method by passing the resolver to
34867         BidiIterator::increment().
34868         (WebCore::checkMidpoints): Removed the resolver parameter.
34869         (WebCore::BidiState::appendRun): Removed code to save, set and restore
34870         m_adjustEmbedding. Adjusted for change to increment().
34871         (WebCore::RenderBlock::bidiReorderLine): Removed the 'start' parameter
34872         and unreachable code.
34873         (WebCore::buildCompactRuns): Adjusted for changes to BidiResolver/
34874         (WebCore::RenderBlock::layoutInlineChildren): Moved code to initialize
34875         the resolver from this method to determineStartPosition(). Unified the
34876         resolver with the 'start' iterator. Removed unreachable code. Moved one
34877         statement from the beginning of the while loop to the end.
34878         (WebCore::RenderBlock::determineStartPosition): Moved code to initialize
34879         the resolver from layoutInlineChildren() into this method.
34880         (WebCore::RenderBlock::matchedEndLine): Adjusted for the resolver and
34881         the 'start' iterator being one object.
34882         (WebCore::skipNonBreakingSpace): Made the parameter const.
34883         (WebCore::requiresLineBox): Ditto.
34884         (WebCore::RenderBlock::generatesLineBoxesForInlineChild): Adjusted for
34885         the change to BidiIterator::increment().
34886         (WebCore::RenderBlock::skipWhitespace): Made two versions of this
34887         method, one for BidiIterator and one for BidiState.
34888         (WebCore::shouldSkipWhitespaceAfterStartObject): Removed the resolver
34889         parameter.
34890         (WebCore::RenderBlock::findNextLineBreak): Removed the resolver
34891         parameter. Removed calls to setAdjustEmbedding(). Removed the 'previous'
34892         variable and changed the 'last' variable to do its job.
34893         * rendering/bidi.h:
34895 2008-03-10  Adam Roben  <aroben@apple.com>
34897         Part of Bug 17224: DOM nodes/attributes should be editable
34899         <http://bugs.webkit.org/show_bug.cgi?id=17224>
34900         <rdar://problem/5732825>
34902         This patch makes text nodes editable via double-click.
34904         Reviewed by Tim.
34906         * page/inspector/DocumentPanel.js:
34907         (WebInspector.DOMNodeTreeElement._startEditing):
34908           - Moved most of this code to _startEditingAttribute
34909           - Calls _startEditingTextNode or _startEditingAttribute as
34910             appropriate
34911         (WebInspector.DOMNodeTreeElement._startEditingAttribute): Added. Code
34912         came from _startEditing.
34913         (WebInspector.DOMNodeTreeElement._startEditingTextNode): Added.
34914         (WebInspector.DOMNodeTreeElement._textNodeEditingCommitted): Added.
34915         (WebInspector.DOMNodeTreeElement._editingCancelled): Renamed from
34916         _attributeEditingCancelled.
34917         * page/inspector/utilities.js:
34918         (nodeTitleInfo): Wrap text nodes in a webkit-html-text-node span so
34919         that we can easily recognize/edit them.
34921 2008-03-11  Holger Hans Peter Freyther  <zecke@selfish.org>
34923         Reviewed by Darin.
34925         r25512 inlined the urlIcon to improve the startup time of Safari on Mac. Inlining is
34926         not suitable for platforms where this icon is themable. E.g. the Qt platform is allowing
34927         to theme this icon and the Gtk+ platform will probably end up with themable icons
34928         as well.
34929         
34930         Remove dead code from the windows port and move the urlIcon from the windows
34931         directory to the Resource directory to be used by Qt and other ports.
34932         
34933         Ifdef the usage of the built-in icon in IconDatabase.cpp and for Qt do not use
34934         it. Gtk+ currently has no proper implementation of Image::loadPlatformResource but
34935         once it does it wants to use this for getting the urlIcon as well.
34937         * Resources/urlIcon.png: Renamed from WebKit/win/WebKit.vcproj/urlIcon.png.
34938         * loader/icon/IconDatabase.cpp:
34939         (WebCore::IconDatabase::defaultIcon):
34941 2008-03-11  Tor Arne Vestbø  <tavestbo@trolltech.com>
34943         Reviewed by Darin.
34945         Implemented HTML media element support for QtWebKit, using Phonon.
34947         http://bugs.webkit.org/show_bug.cgi?id=17766
34949         * WebCore.pro:
34950         * platform/graphics/MediaPlayer.cpp:
34951         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp: Added.
34952         (debugMediaObject):
34953         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
34954         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
34955         (WebCore::MediaPlayerPrivate::getSupportedTypes):
34956         (WebCore::MediaPlayerPrivate::hasVideo):
34957         (WebCore::MediaPlayerPrivate::load):
34958         (WebCore::MediaPlayerPrivate::cancelLoad):
34959         (WebCore::MediaPlayerPrivate::play):
34960         (WebCore::MediaPlayerPrivate::pause):
34961         (WebCore::MediaPlayerPrivate::paused):
34962         (WebCore::MediaPlayerPrivate::seek):
34963         (WebCore::MediaPlayerPrivate::seeking):
34964         (WebCore::MediaPlayerPrivate::duration):
34965         (WebCore::MediaPlayerPrivate::currentTime):
34966         (WebCore::MediaPlayerPrivate::setEndTime):
34967         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
34968         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
34969         (WebCore::MediaPlayerPrivate::bytesLoaded):
34970         (WebCore::MediaPlayerPrivate::totalBytesKnown):
34971         (WebCore::MediaPlayerPrivate::totalBytes):
34972         (WebCore::MediaPlayerPrivate::setRate):
34973         (WebCore::MediaPlayerPrivate::setVolume):
34974         (WebCore::MediaPlayerPrivate::setMuted):
34975         (WebCore::MediaPlayerPrivate::dataRate):
34976         (WebCore::MediaPlayerPrivate::networkState):
34977         (WebCore::MediaPlayerPrivate::readyState):
34978         (WebCore::MediaPlayerPrivate::updateStates):
34979         (WebCore::MediaPlayerPrivate::setVisible):
34980         (WebCore::MediaPlayerPrivate::setRect):
34981         (WebCore::MediaPlayerPrivate::loadStateChanged):
34982         (WebCore::MediaPlayerPrivate::rateChanged):
34983         (WebCore::MediaPlayerPrivate::sizeChanged):
34984         (WebCore::MediaPlayerPrivate::timeChanged):
34985         (WebCore::MediaPlayerPrivate::volumeChanged):
34986         (WebCore::MediaPlayerPrivate::didEnd):
34987         (WebCore::MediaPlayerPrivate::loadingFailed):
34988         (WebCore::MediaPlayerPrivate::naturalSize):
34989         (WebCore::MediaPlayerPrivate::eventFilter):
34990         (WebCore::MediaPlayerPrivate::repaint):
34991         (WebCore::MediaPlayerPrivate::paint):
34992         (WebCore::MediaPlayerPrivate::stateChanged):
34993         (WebCore::MediaPlayerPrivate::tick):
34994         (WebCore::MediaPlayerPrivate::metaDataChanged):
34995         (WebCore::MediaPlayerPrivate::seekableChanged):
34996         (WebCore::MediaPlayerPrivate::hasVideoChanged):
34997         (WebCore::MediaPlayerPrivate::bufferStatus):
34998         (WebCore::MediaPlayerPrivate::finished):
34999         (WebCore::MediaPlayerPrivate::currentSourceChanged):
35000         (WebCore::MediaPlayerPrivate::aboutToFinish):
35001         (WebCore::MediaPlayerPrivate::prefinishMarkReached):
35002         (WebCore::MediaPlayerPrivate::totalTimeChanged):
35003         * platform/graphics/qt/MediaPlayerPrivatePhonon.h: Added.
35004         (WebCore::MediaPlayerPrivate::):
35005         (WebCore::MediaPlayerPrivate::isAvailable):
35007 2008-03-10  Sam Weinig  <sam@webkit.org>
35009         Reviewed by Beth Dakin.
35011         Throw a SECURITY_ERR when accessing a tainted canvas
35012         by CanvasRenderingContext2D::getImageData() and
35013         HTMLCanvasElement::toDataURL().
35015         * html/CanvasRenderingContext2D.cpp:
35016         (WebCore::CanvasRenderingContext2D::getImageData):
35017         * html/CanvasRenderingContext2D.h:
35018         * html/CanvasRenderingContext2D.idl:
35019         * html/HTMLCanvasElement.cpp:
35020         (WebCore::HTMLCanvasElement::toDataURL):
35021         * html/HTMLCanvasElement.h:
35022         * html/HTMLCanvasElement.idl:
35024 2008-03-10  Justin Garcia  <justin.garcia@apple.com>
35026         Reviewed by Sam.
35028         <rdar://problem/5779984> REGRESSION (r30391): GMail: Safari won't display the Edit Link dialog
35030         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
35031         (WebCore::hasCSSPropertyNamePrefix): Fixed a typo.  The code was only
35032         comparing the first character of the prefix to the first character
35033         of the property name.
35035 2008-03-10  Andre Boule  <aboule@apple.com>
35037         Reviewed by Beth.
35039         Hold off on initializing the frame to avoid the RenderView getting 
35040         a null FrameView. This could potentially cause problems.
35042         * svg/graphics/SVGImage.cpp:
35043         (WebCore::SVGImage::dataChanged):
35045 2008-03-10  Darin Adler  <darin@apple.com>
35047         - try to fix Qt build
35049         * bridge/qt/qt_runtime.cpp:
35050         (KJS::Bindings::convertQVariantToValue): Change KJS::UChar to UChar.
35052 2008-03-10  Darin Adler  <darin@apple.com>
35054         Reviewed by Antti.
35056         - fix <rdar://problem/3059610> VIP: links opened in new frame, window, or tab
35057           should be redrawn as visited immediately
35058         - fix <rdar://problem/4382809> Going "back" a page doesn't change the color of
35059           the visited URL at directory.umi
35060         - fix http://bugs.webkit.org/show_bug.cgi?id=4941
35061           Visited links should be marked as visited
35062         - fix http://bugs.webkit.org/show_bug.cgi?id=7960
35063           REGRESSION: Visited link color doesn't displayed after loading page from cache
35065         We now mark all links on a page as "changed" at the appropriate times.
35067         * WebCore.base.exp: Update since I made completeURL be a const member function.
35069         * css/CSSStyleSelector.cpp: Got rid of some unneeded globals that could be turned
35070         into locals. Also changed some static data members to file-scoped globals with
35071         internal linkage. Renamed the globals to get rid of the m_ prefix. Changed the
35072         prefix on m_styleNotYetAvailable to s_styleNotYetAvailable.
35073         (WebCore::CSSStyleSelector::CSSStyleSelector): Updated for name changes.
35074         (WebCore::parseUASheet): Tweak the comment.
35075         (WebCore::CSSStyleSelector::loadDefaultStyle): Updated for name changes and to
35076         use local variables instead of globals where possible.
35077         (WebCore::CSSStyleSelector::checkPseudoState): Made this a member function so
35078         it can store the link in a hash. Also changed it to have a return value instead
35079         of having it modify a global variable. Added code to put the hash into a set so
35080         we can tell later if this is one of the links that affects this page.
35081         (WebCore::CSSStyleSelector::canShareStyleWithElement): Updated for the change to
35082         checkPseudoState.
35083         (WebCore::CSSStyleSelector::matchUARules): Updated for name changes.
35084         (WebCore::CSSStyleSelector::styleForElement): Ditto.
35085         (WebCore::CSSStyleSelector::adjustRenderStyle): Ditto.
35086         (WebCore::CSSStyleSelector::pseudoStyleRulesForElement): Changed code to read
35087         the SVG style sheet to use a boolean global and put it right here in the function
35088         since this is the only code that needs to know about it.
35089         (WebCore::CSSStyleSelector::checkOneSelector): Updated for name changes.
35090         (WebCore::colorForCSSValue): Moved code inside the function that is not needed
35091         anywhere else.
35092         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Updaed for the change
35093         to checkPseudoState.
35094         (WebCore::CSSStyleSelector::allVisitedStateChanged): Added. Calls setChanged on
35095         all links if there were any in the set.
35096         (WebCore::CSSStyleSelector::visitedStateChanged): Added. Calls setChanged on all
35097         links if the one that changed is in the set.
35099         * css/CSSStyleSelector.h: Removed unused StyleSelector class and State enum. Made
35100         CSSStyleSelector derive from Noncopyable. Made lots of member functions private that
35101         didn't need to be public, and removed others that could be made into non-member
35102         functions. Changed pseudoStyleRulesForElement to take a const String& instead of
35103         a StringImpl*. Added new allVisitedStateChanged and visitedStateChanged functions.
35104         Got rid of unneeded friend declarations.
35106         * dom/Document.cpp:
35107         (WebCore::Document::completeURL): Made const.
35108         (WebCore::findSlashDotDotSlash): Moved here from PageGroup.
35109         (WebCore::findSlashSlash): Ditto.
35110         (WebCore::findSlashDotSlash): Ditto.
35111         (WebCore::containsColonSlashSlash):
35112         (WebCore::cleanPath): Ditto.
35113         (WebCore::matchLetter): Ditto.
35114         (WebCore::needsTrailingSlash): Ditto.
35115         (WebCore::Document::visitedLinkHash): Moved this here from PageGroup. This is
35116         the poor-man's completeURL function. The idea of putting it here is that this
35117         way it can be alongside the real completeURL function. Later we should figure out
35118         a way to make this function share more code with the real thing and match behavior.
35120         * dom/Document.h: Marked completeURL function const. Added visitedLinkHash function.
35122         * page/DOMWindow.cpp:
35123         (WebCore::DOMWindow::getMatchedCSSRules): Updated for change to CSSStyleSelector.
35125         * page/Page.cpp:
35126         (WebCore::Page::allVisitedStateChanged): Added. Calls allVisitedStateChanged on all
35127         style selectors.
35128         (WebCore::Page::visitedStateChanged): Ditto.
35129         * page/Page.h: Added the above functions.
35131         * page/PageGroup.cpp:
35132         (WebCore::PageGroup::isLinkVisited): Changed to take a visitedLinkHash parameter.
35133         The CSSStyleSelector now handles actually computing the hash, and it does so by
35134         calling code in Document.
35135         (WebCore::PageGroup::addVisitedLink): Refactored so the two overloaded copies share
35136         a bit more code. Added code that calls visitedStateChanged if a new link was added.
35137         (WebCore::PageGroup::removeVisitedLinks): Added code to call allVisitedStateChanged
35138         if any visited links are removed.
35139         * page/PageGroup.h: Include StringHash.h instead of having the AlreadyHashed struct
35140         definition here.
35142         * platform/text/StringHash.h:
35143         (WebCore::CaseFoldingHash::hash): Tweaked to make this a bit more consistent with
35144         the StringImpl::computeHash function, using the same technique for avoiding 0.
35145         (WebCore::AlreadyHashed::hash): Added. Was formerly in PageGroup.h.
35146         (WebCore::AlreadyHashed::avoidDeletedValue): Added. Was formerly in PageGroup.cpp.
35148         * rendering/RenderStyle.cpp:
35149         (WebCore::RenderStyle::isStyleAvailable): Changed to use an inline function instead
35150         of getting directly at a data member so the data member could be made private.
35152         * loader/FrameLoader.cpp:
35153         (WebCore::FrameLoader::scrollToAnchor): Added call to updateHistoryForAnchorScroll.
35154         (WebCore::FrameLoader::updateHistoryForAnchorScroll): Added.
35155         * loader/FrameLoader.h: Added updateHistoryForAnchorScroll.
35157 2008-03-10  Adam Roben  <aroben@apple.com>
35159         Part of Bug 17224: DOM nodes/attributes should be editable
35161         <http://bugs.webkit.org/show_bug.cgi?id=17224>
35162         <rdar://problem/5732825>
35164         This patch makes DOM attributes editable via double-click.
35166         Reviewed by Tim.
35168         * page/inspector/DocumentPanel.js:
35169         (WebInspector.DOMNodeTreeElement.onmousedown): Don't do anything if
35170         we're being edited, since we want default editing behaviors to work.
35171         (WebInspector.DOMNodeTreeElement.ondblclick): Try to start editing
35172         before doing anything else.
35173         (WebInspector.DOMNodeTreeElement._startEditing): Added. Currently only
35174         lets you edit attributes.
35175         (WebInspector.DOMNodeTreeElement._attributeEditingCommitted): Added.
35176         Uses a scratch element to get the new attribute(s) parsed, then sets
35177         the attribute(s) on the node in the inspected document.
35178         (WebInspector.DOMNodeTreeElement._attributeEditingCancelled): Added.
35179         (WebInspector.DOMNodeTreeElement._updateTitle): Added. Refreshes the
35180         representation of the node in the Inspector's DOM tree to reflect
35181         the node's current state.
35182         * page/inspector/inspector.css: Made the .editing class apply
35183         everywhere.
35184         * page/inspector/utilities.js:
35185         (nodeTitleInfo): Changed to surround attribute name/value pairs in a
35186         webkit-html-attribute span so that we can easily edit the pair as a
35187         whole.
35189 2008-03-10  David Kilzer  <ddkilzer@apple.com>
35191         Fix 64-bit builds.
35193         Reviewed by Stephanie.
35195         WebCore.exp only gets generated once for both 32-bit and 64-bit builds,
35196         so we must exclude the _NPN symbols when creating WebCore.LP64.exp.
35198         * WebCore.xcodeproj/project.pbxproj: Reverted build phase shell code to
35199         r30826 to remove _NPN symbols from 64-bit builds in WebCore.LP64.exp.
35201 2008-03-10  Eric Seidel  <eric@webkit.org>
35203         Reviewed by Darin.
35205         Remove KJS::UChar, use ::UChar instead
35206         http://bugs.webkit.org/show_bug.cgi?id=17017
35208         To functional changes, thus no tests.
35210         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
35211         (WebCore::hasCSSPropertyNamePrefix):
35212         (WebCore::cssPropertyName):
35213         * bindings/js/JSDOMWindowBase.cpp:
35214         (WebCore::windowProtoFuncAToB):
35215         (WebCore::windowProtoFuncBToA):
35216         * bindings/js/JSSVGPODTypeWrapper.h:
35217         * bindings/js/kjs_proxy.cpp:
35218         (WebCore::KJSProxy::evaluate):
35219         * bridge/objc/objc_utility.mm:
35220         (KJS::Bindings::throwError):
35221         * dom/Document.cpp:
35222         (WebCore::Document::parseQualifiedName):
35223         * platform/text/AtomicString.cpp:
35224         (WebCore::AtomicString::add):
35225         * platform/text/String.cpp:
35226         (WebCore::String::String):
35227         (WebCore::String::operator Identifier):
35228         (WebCore::String::operator UString):
35229         * platform/text/TextCodecICU.cpp:
35230         (WebCore::TextCodecICU::decode):
35231         * svg/SVGAnimatedTemplate.h:
35233 2008-03-10  Darin Adler  <darin@apple.com>
35235         Reviewed by Sam.
35237         - eliminate keyboard UI mode method from WebCoreFrameBridge
35239         * page/ChromeClient.h: Added keyboardUIMode function.
35240         (WebCore::ChromeClient::keyboardUIMode): Ditto.
35241         * page/mac/EventHandlerMac.mm:
35242         (WebCore::EventHandler::tabsToAllControls): Call chrome client function instead
35243         of bridge function.
35244         * page/mac/WebCoreFrameBridge.h: Removed keyboardUIMode method, and other unused
35245         ones.
35247         * WebCore.xcodeproj/project.pbxproj: Allowed Xcode to change the project.
35248         Do not try to fight the Xcode.
35250 2008-03-10  Darin Adler  <darin@apple.com>
35252         - oops, forgot to save last couple changes from the editor
35254         * bindings/js/JSDOMWindowCustom.cpp:
35255         (WebCore::markDOMObjectWrapper): Tweaked a tiny bit.
35256         (WebCore::JSDOMWindow::mark): Sorted alphabetically.
35258 2008-03-10  Darin Adler  <darin@apple.com>
35260         Reviewed by Geoff.
35262         - fix failing regression test (window.navigator is getting garbage
35263           collected and thus losing its custom properties)
35265         * bindings/js/JSDOMWindowCustom.cpp:
35266         (WebCore::markDOMObject): Added helper function.
35267         (WebCore::JSDOMWindow::mark): Added. Marks the wrappers for all the objects that hang
35268         off the window object.
35270         * page/DOMWindow.h:
35271         (WebCore::DOMWindow::optionalScreen): Added so we can get the Screen object without
35272         creating it if it's already there.
35273         (WebCore::DOMWindow::optionalSelection): Ditto.
35274         (WebCore::DOMWindow::optionalHistory): Ditto.
35275         (WebCore::DOMWindow::optionalLocationbar): Ditto.
35276         (WebCore::DOMWindow::optionalMenubar): Ditto.
35277         (WebCore::DOMWindow::optionalPersonalbar): Ditto.
35278         (WebCore::DOMWindow::optionalScrollbars): Ditto.
35279         (WebCore::DOMWindow::optionalStatusbar): Ditto.
35280         (WebCore::DOMWindow::optionalToolbar): Ditto.
35281         (WebCore::DOMWindow::optionalConsole): Ditto.
35282         (WebCore::DOMWindow::optionalNavigator): Ditto.
35284         * page/DOMWindow.idl: Added the CustomMarkFunction flag. Sorted the flags in
35285         alphabetical order since there are a lot of them.
35287 2008-03-10  Darin Adler  <darin@apple.com>
35289         Reviewed by Sam.
35291         - eliminate Java applet methods from WebCoreFrameBridge
35293         * loader/FrameLoaderClient.h: Added a javaApplet function.
35294         * page/mac/FrameMac.mm:
35295         (WebCore::Frame::createScriptInstanceForWidget): Streamlined the code.
35296         Use the loader client instead of the bridge to get the applet.
35297         * page/mac/WebCoreFrameBridge.h: Removed the getAppletInView and
35298         pollForAppletInView methods. Also removed other unused things.
35300 2008-03-10  Marc-Antoine Ruel  <maruel@gmail.com>
35302         Reviewed by Eric, landed by Darin.
35304         http://bugs.webkit.org/show_bug.cgi?id=16095
35305         Move GraphicsContextPrivate to its own header file.
35307         Moves GraphicsContextState and GraphicsContextPrivate to its
35308         own header
35310         * WebCore.vcproj/WebCore.vcproj:
35311         * platform/graphics/GraphicsContext.cpp:
35312         * platform/graphics/GraphicsContextPrivate.h: Added.
35313         (WebCore::GraphicsContextState::GraphicsContextState):
35314         (WebCore::GraphicsContextPrivate::GraphicsContextPrivate):
35316 2008-03-10  Julien Chaffraix  <julien.chaffraix@gmail.com>
35318         Reviewed and landed by Darin.
35320         bug 12182 : XMLHttpRequest should raise SECURITY_ERR for same-origin policy violations
35322         Removed reference to PERMISSION_DENIED (previous non standard exception) and replaced it
35323         by DOM exception SECURITY_ERR. Updated XMLHttpRequest::open to raise SECURITY_ERR.
35325         * bindings/js/kjs_binding.cpp:
35326         (WebCore::setDOMException): Removed PERMISSION_DENIED code.
35327         * dom/ExceptionCode.cpp: Added SECURITY_ERR exception.
35328         * dom/ExceptionCode.h: Ditto.
35329         * xml/XMLHttpRequest.cpp:
35330         (WebCore::XMLHttpRequest::open): Returns SECURITY_ERR now.
35331         * xml/XMLHttpRequestException.h: Removed PERMISSION_DENIED.
35333 2008-03-09  Adam Roben  <aroben@apple.com>
35335         Refactor CSS editing code so we can share it with DOM editing
35337         Add WebInspector.startEditing, which takes the element to be edited, a
35338         committedCallback, a cancelledCallback, and a context parameter. This
35339         function takes care of setting up the element for editing, and calls
35340         either the cancelledCallback or committedCallback when editing ends.
35342         Reviewed by Tim.
35344         * page/inspector/StylesSidebarPane.js:
35345         (WebInspector.StylePropertyTreeElement.startEditing):
35346           - Call WebInspector.isBeingEdited and WebInspector.startEditing
35347           - Removed code now handled by WebInspector.startEditing
35348         (WebInspector.StylePropertyTreeElement.editingEnded):
35349           - Renamed from endEditing
35350           - Removed code now handled by WebInspector.startEditing
35351         (WebInspector.StylePropertyTreeElement.editingCancelled):
35352           - Renamed from cancelEditing
35353           - Changed parameters to match WebInspector.startEditing's
35354             cancelledCallback
35355         (WebInspector.StylePropertyTreeElement.editingCommitted):
35356           - Renamed from commitEditing
35357           - Changed parameters to match WebInspector.startEditing's
35358             committedCallback
35359         * page/inspector/inspector.js:
35360         (WebInspector.changeFocus): Changed a call to firstParentWithClassName
35361         to firstParentOrSelfWithClassName so that if the focusable element
35362         itself is the target it will be recognized. I don't know why this
35363         change wasn't needed before this.
35364         (WebInspector.isBeingEdited): Added.
35365         (WebInspector.startEditing): Added.
35367 2008-03-10  Adam Roben  <aroben@apple.com>
35369         Windows build fix
35371         * WebCore.vcproj/WebCore.vcproj: Pick up generated source files out of
35372         $(WebKitOutputDir) instead of hard-coding WebKitBuild.
35374 2008-03-10  Darin Adler  <darin@apple.com>
35376         * DerivedSources.make: Merge plug-in-related changes with the new way of handling
35377         autogenerated DOM classes.
35379 2008-03-10  Johnny Ding  <johnnyding.webkit@gmail.com>
35381         Reviewed, tweaked and landed by Alexey.
35383         - fix http://bugs.webkit.org/show_bug.cgi?id=17732        
35385         We didn't have a fallback to frame encoding in the case of loading a script via
35386         changing its src attribute.
35388         Test: fast/dom/HTMLScriptElement/script-decoding-error-after-setting-src.html
35390         * html/HTMLScriptElement.cpp:
35391         (WebCore::HTMLScriptElement::parseMappedAttribute): Use a helper function to get proper
35392         charset for correct decoding of script content.
35393         (WebCore::HTMLScriptElement::insertedIntoDocument):
35394         (WebCore::HTMLScriptElement::scriptCharset): A helper function for getting proper charset
35395         for the script (as much as can be determined prior to loading it).
35396         * html/HTMLScriptElement.h:
35397         * html/HTMLTokenizer.cpp:
35398         (WebCore::HTMLTokenizer::parseTag): Use a helper function to get proper charset for correct
35399         decoding of script content.
35401 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
35403         Reviewed by Lars.
35405         Fix reference counting of returned MimeType and Plugin objects
35406         created in the array wrappers.
35408         * plugins/MimeTypeArray.cpp:
35409         * plugins/MimeTypeArray.h:
35410         * plugins/Plugin.cpp:
35411         * plugins/Plugin.h:
35412         * plugins/PluginArray.cpp:
35413         * plugins/PluginArray.h:
35415 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
35417         Wx linking fix.
35419         Added missing stubs for PluginData.
35421         * platform/wx/TemporaryLinkStubs.cpp:
35423 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
35425         Windows build fix that I forgot to merge earlier ;(
35427         Forward declare Page as class, not struct.
35429         * plugins/PluginData.h:
35431 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
35433         Attempt to fix the Wx build.
35435         * WebCoreSources.bkl:
35437 2008-03-07  Simon Hausmann  <hausmann@webkit.org>
35439         Reviewed by Darin.
35441         Done with Lars.
35443         http://bugs.webkit.org/show_bug.cgi?id=16815
35445         Ported the manually written JS bindings of window.navigator,
35446         window.navigator.plugins and window.navigator.mimeTypes to
35447         auto-generated bindings.
35449         Moved the globally cached plugin and mimetype information to a
35450         per WebCore::Page shared PluginData structure.
35452         Implemented window.navigator.plugins.refresh() in a
35453         platform-independent way.
35455         * DerivedSources.make:
35456         * GNUmakefile.am:
35457         * WebCore.pro:
35458         * WebCore.vcproj/WebCore.vcproj:
35459         * WebCore.xcodeproj/project.pbxproj:
35460         * bindings/js/JSDOMWindowBase.cpp:
35461         (WebCore::JSDOMWindowBase::getValueProperty):
35462         * bindings/js/JSMimeTypeArrayCustom.cpp: Added.
35463         (WebCore::JSMimeTypeArray::canGetItemsForName):
35464         (WebCore::JSMimeTypeArray::nameGetter):
35465         * bindings/js/JSNavigatorCustom.cpp: Added.
35466         (WebCore::needsYouTubeQuirk):
35467         (WebCore::JSNavigator::appVersion):
35468         * bindings/js/JSPluginArrayCustom.cpp: Added.
35469         (WebCore::JSPluginArray::canGetItemsForName):
35470         (WebCore::JSPluginArray::nameGetter):
35471         * bindings/js/JSPluginCustom.cpp: Added.
35472         (WebCore::JSPlugin::canGetItemsForName):
35473         (WebCore::JSPlugin::nameGetter):
35474         * bindings/js/kjs_navigator.cpp: Removed.
35475         * bindings/js/kjs_navigator.h: Removed.
35476         * dom/Clipboard.cpp:
35477         * dom/DOMImplementation.cpp:
35478         (WebCore::DOMImplementation::createDocument):
35479         * loader/FrameLoader.cpp:
35480         (WebCore::FrameLoader::shouldUsePlugin):
35481         * page/DOMWindow.cpp:
35482         (WebCore::DOMWindow::clear):
35483         (WebCore::DOMWindow::navigator):
35484         * page/DOMWindow.h:
35485         * page/DOMWindow.idl:
35486         * page/DragController.cpp:
35487         * page/Frame.cpp:
35488         * page/Frame.h:
35489         * page/Navigator.cpp: Added.
35490         (WebCore::Navigator::Navigator):
35491         (WebCore::Navigator::~Navigator):
35492         (WebCore::Navigator::disconnectFrame):
35493         (WebCore::Navigator::appCodeName):
35494         (WebCore::Navigator::appName):
35495         (WebCore::Navigator::appVersion):
35496         (WebCore::Navigator::language):
35497         (WebCore::Navigator::userAgent):
35498         (WebCore::Navigator::platform):
35499         (WebCore::Navigator::plugins):
35500         (WebCore::Navigator::mimeTypes):
35501         (WebCore::Navigator::product):
35502         (WebCore::Navigator::productSub):
35503         (WebCore::Navigator::vendor):
35504         (WebCore::Navigator::vendorSub):
35505         (WebCore::Navigator::cookieEnabled):
35506         (WebCore::Navigator::javaEnabled):
35507         * page/Navigator.h: Added.
35508         (WebCore::Navigator::create):
35509         (WebCore::Navigator::frame):
35510         * page/Navigator.idl: Added.
35511         * page/Page.cpp:
35512         (WebCore::Page::refreshPlugins):
35513         (WebCore::Page::pluginData):
35514         * page/Page.h:
35515         * page/Plugin.h: Removed.
35516         * page/mac/FrameMac.mm:
35517         * page/mac/WebCoreFrameBridge.mm:
35518         (-[WebCoreFrameBridge canProvideDocumentSource]):
35519         * page/mac/WebCoreViewFactory.h:
35520         * page/qt/FrameQt.cpp:
35521         * page/win/FrameWin.cpp:
35522         * platform/gtk/TemporaryLinkStubs.cpp:
35523         * platform/mac/PlugInInfoStoreMac.mm: Removed.
35524         * platform/qt/MIMETypeRegistryQt.cpp:
35525         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
35526         * plugins/MimeType.cpp: Added.
35527         (WebCore::MimeType::MimeType):
35528         (WebCore::MimeType::~MimeType):
35529         (WebCore::MimeType::type):
35530         (WebCore::MimeType::suffixes):
35531         (WebCore::MimeType::description):
35532         (WebCore::MimeType::enabledPlugin):
35533         * plugins/MimeType.h: Added.
35534         (WebCore::MimeType::create):
35535         * plugins/MimeType.idl: Added.
35536         * plugins/MimeTypeArray.cpp: Added.
35537         (WebCore::MimeTypeArray::MimeTypeArray):
35538         (WebCore::MimeTypeArray::~MimeTypeArray):
35539         (WebCore::MimeTypeArray::length):
35540         (WebCore::MimeTypeArray::item):
35541         (WebCore::MimeTypeArray::canGetItemsForName):
35542         (WebCore::MimeTypeArray::nameGetter):
35543         (WebCore::MimeTypeArray::getPluginData):
35544         * plugins/MimeTypeArray.h: Added.
35545         (WebCore::MimeTypeArray::create):
35546         (WebCore::MimeTypeArray::disconnectFrame):
35547         * plugins/MimeTypeArray.idl: Added.
35548         * plugins/Plugin.cpp: Added.
35549         (WebCore::Plugin::Plugin):
35550         (WebCore::Plugin::~Plugin):
35551         (WebCore::Plugin::name):
35552         (WebCore::Plugin::filename):
35553         (WebCore::Plugin::description):
35554         (WebCore::Plugin::length):
35555         (WebCore::Plugin::item):
35556         (WebCore::Plugin::canGetItemsForName):
35557         (WebCore::Plugin::nameGetter):
35558         * plugins/Plugin.h: Added.
35559         (WebCore::Plugin::create):
35560         * plugins/Plugin.idl: Added.
35561         * plugins/PluginArray.cpp: Added.
35562         (WebCore::PluginArray::PluginArray):
35563         (WebCore::PluginArray::~PluginArray):
35564         (WebCore::PluginArray::length):
35565         (WebCore::PluginArray::item):
35566         (WebCore::PluginArray::canGetItemsForName):
35567         (WebCore::PluginArray::nameGetter):
35568         (WebCore::PluginArray::refresh):
35569         (WebCore::PluginArray::getPluginData):
35570         * plugins/PluginArray.h: Added.
35571         (WebCore::PluginArray::create):
35572         (WebCore::PluginArray::disconnectFrame):
35573         * plugins/PluginArray.idl: Added.
35574         * plugins/PluginData.cpp: Added.
35575         (WebCore::PluginData::PluginData):
35576         (WebCore::PluginData::~PluginData):
35577         (WebCore::PluginData::supportsMimeType):
35578         (WebCore::PluginData::pluginNameForMimeType):
35579         * plugins/PluginData.h: Added.
35580         (WebCore::PluginData::create):
35581         (WebCore::PluginData::disconnectPage):
35582         (WebCore::PluginData::page):
35583         (WebCore::PluginData::plugins):
35584         (WebCore::PluginData::mimes):
35585         * plugins/mac/PluginDataMac.mm: Added.
35586         (WebCore::PluginData::initPlugins):
35587         (WebCore::PluginData::refresh):
35588         * plugins/qt/PluginDataQt.cpp: Added.
35589         (WebCore::PluginData::initPlugins):
35590         * plugins/win/PluginDataWin.cpp: Added.
35591         (WebCore::PluginData::initPlugins):
35592         (WebCore::PluginData::refresh):
35594 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
35596         Reviewed by Holger.
35598         Replace two printfs() in the Qt port with notImplemented().
35600         * html/CanvasRenderingContext2D.cpp:
35601         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
35602         (WebCore::CanvasRenderingContext2D::applyFillPattern):
35604 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
35606         Reviewed by Alp.
35608         Compilation fix with gcc 4.3: Include stdio.h for printf.
35610         * html/CanvasRenderingContext2D.cpp:
35611         * html/HTMLCanvasElement.cpp:
35613 2008-03-09  Steve Falkenburg  <sfalken@apple.com>
35615         Stop Windows build if an error occurs in a prior project.
35617         Rubber stamped by Darin.
35619         * WebCore.vcproj/WebCore.vcproj:
35620         * WebCore.vcproj/WebCoreGenerated.vcproj:
35622 2008-03-09  Darin Adler  <darin@apple.com>
35624         * DerivedSources.make: Third try at fixing the build.
35625         * bindings/js/JSRGBColor.cpp: And touching this file.
35627 2008-03-09  Darin Adler  <darin@apple.com>
35629         * DerivedSources.make: One *more* try at fixing the build.
35631 2008-03-09  Darin Adler  <darin@apple.com>
35633         * DerivedSources.make: One more try at fixing the build.
35635 2008-03-09  Darin Adler  <darin@apple.com>
35637         * DerivedSources.make: Re-land the change, fixed, and with an attempt to fix the
35638         bots by removing the incorrect file.
35640 2008-03-09  Oliver Hunt  <oliver@apple.com>
35642         RS=Mark Rowe
35644         Roll out r30909 -- it breaks the build and is a non-trivial fix (according to weinig)
35646         * DerivedSources.make:
35648 2008-03-09  Darin Adler  <darin@apple.com>
35650         Reviewed by Adam.
35652         * DerivedSources.make: Put the list of DOM classes into its own
35653         variable, and generate the JavaScript bindings and Objective-C
35654         bindings dependencies from that. Added some separators to make it
35655         a little easier to see the sections of the file. Moved all the
35656         Mac-specific rules (except for the SVG conditional part) down
35657         to the bottom of the file in a separate section.
35659 2008-03-09  Adam Roben  <aroben@apple.com>
35661         Windows build fix
35663         * WebCore.vcproj/WebCore.vcproj: Make sure all Cairo files are
35664         excluded from all three CG-based configurations: Debug, Release, and
35665         Debug_Internal.
35667 2008-03-08  Mark Rowe  <mrowe@apple.com>
35669         Attempt to fix the Qt build.
35671         * platform/MIMETypeRegistry.cpp:  Add missing include.
35673 2008-03-08  Oliver Hunt  <oliver@apple.com>
35675         Reviewed by Sam W.
35677         Bug 16516: canvas image patterns stop working with some transformations
35679         Simple fix.  We used x/yStep of FLT_MAX to fake a no-repeat-x/y pattern
35680         with CG.  However any transforms involving FLT_MAX immediately get
35681         consumed by the introduced floating point error.  yStep had already been
35682         clamped to a much smaller arbitrary value, and this patch makes us use
35683         that clamp value for xStep as well.
35685         * html/CanvasPattern.cpp:
35686         (WebCore::CanvasPattern::createPattern):
35688 2008-03-08  Oliver Hunt  <oliver@apple.com>
35690         Reviewed by Mitz.
35692         Bug 17728: Canvas.createPattern with null repeat argument throws an exception
35694         Trivial fix, we were calling toString on null which produces the string "null",
35695         we just needed to switch to using valueToStringWithNullCheck rather than 
35696         JSValue::toString directly
35698         Test: fast/canvas/canvas-pattern-behaviour.html
35700         * WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp:
35701         (WebCore::JSCanvasRenderingContext2D::createPattern):
35703 2008-03-08  Mark Rowe  <mrowe@apple.com>
35705         Reviewed by Darin Adler.
35707         Fix 64-bit build with GCC 4.2.
35709         * bindings/objc/WebScriptObject.mm: Use NSUInteger in place of unsigned where required.
35710         * platform/mac/SharedBufferMac.mm: Ditto.
35712 2008-03-08  Dan Bernstein  <mitz@apple.com>
35714         Reviewed by Oliver Hunt.
35716         - fix garbage in transparent areas in canvas.toDataURL results
35718         * platform/graphics/cg/ImageBufferCG.cpp:
35719         (WebCore::ImageBuffer::toDataURL): Clear the bitmap context before
35720         painting the canvas image onto it.
35722 2008-03-08  Darin Adler  <darin@apple.com>
35724         Reviewed by Adele.
35726         - eliminate custom highlight methods from WebCoreFrameBridge
35728         * page/Chrome.cpp:
35729         (WebCore::ChromeClient::customHighlightRect): Added.
35730         (WebCore::ChromeClient::paintCustomHighlight): Added.
35731         * page/ChromeClient.h: Added custom highlight functions.
35732         * page/Frame.h: Removed custom highlight functions.
35733         * page/mac/FrameMac.mm: Ditto.
35734         * page/mac/WebCoreFrameBridge.h: Removed custom highlight methods.
35735         * rendering/InlineTextBox.cpp:
35736         (WebCore::InlineTextBox::paintCustomHighlight): Changed code to use
35737         the ChromeClient instead of WebCoreFrameBridge to do the custom highlight.
35738         * rendering/RenderBox.cpp:
35739         (WebCore::RenderBox::paintCustomHighlight): Ditto.
35740         * rendering/RootInlineBox.cpp:
35741         (WebCore::RootInlineBox::addHighlightOverflow): Ditto.
35742         (WebCore::RootInlineBox::paintCustomHighlight): Ditto.
35744 2008-03-07  Stephanie Lewis  <slewis@apple.com>
35746         Reviewed by Oliver.
35748         Fix Windows build.
35750         * platform/graphics/cg/ImageBufferCG.cpp:
35751         (WebCore::ImageBuffer::toDataURL):
35753 2008-03-07  David D. Kilzer  <ddkilzer@apple.com>
35755         Unify concept of enabling Netscape Plug-in API (NPAPI).
35757         Reviewed by Darin.
35759         No test cases since there is no change in functionality.
35761         * DerivedSources.make: Added check for ENABLE_NETSCAPE_PLUGIN_API macro.
35762         If defined as "1", add WebCore.NPAPI.exp to WEBCORE_EXPORT_DEPENDENCIES.
35763         * WebCore.NPAPI.exp: Added.
35764         * WebCore.base.exp: Moved exported NPAPI methods to WebCore.NPAPI.exp.
35765         * WebCore.xcodeproj/project.pbxproj: Removed changes in r30826 (except
35766         comments) since we now handle exported NPAPI methods via DerivedSources.make.
35768         * config.h: Removed USE(NPOBJECT) since we now use ENABLE(NETSCAPE_PLUGIN_API) as
35769         defined in Platform.h.
35771         * bindings/objc/DOM.mm: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
35772         (-[DOMElement _NPObject]):
35774         * bridge/NP_jsobject.cpp: Replaced !PLATFORM(DARWIN) || !defined(__LP64__) with
35775         ENABLE(NETSCAPE_PLUGIN_API).
35776         * bridge/NP_jsobject.h: Ditto.
35777         * bridge/c/c_class.cpp: Ditto.
35778         * bridge/c/c_class.h: Ditto.
35779         * bridge/c/c_instance.cpp: Ditto.
35780         * bridge/c/c_instance.h: Ditto.
35781         * bridge/c/c_runtime.cpp: Ditto.
35782         * bridge/c/c_runtime.h: Ditto.
35783         * bridge/c/c_utility.cpp: Ditto.
35784         * bridge/c/c_utility.h: Ditto.
35785         * bridge/npruntime.cpp: Ditto.
35786         * bridge/npruntime_impl.h: Ditto.
35787         * bridge/npruntime_priv.h: Ditto.
35788         * bridge/runtime.cpp: Ditto.
35789         (KJS::Bindings::Instance::createBindingForLanguageInstance):
35791         * html/HTMLPlugInElement.cpp: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
35792         (WebCore::HTMLPlugInElement::HTMLPlugInElement):
35793         (WebCore::HTMLPlugInElement::~HTMLPlugInElement):
35794         * html/HTMLPlugInElement.h: Ditto.
35796         * page/Frame.cpp: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
35797         (WebCore::Frame::clearScriptObjects):
35798         (WebCore::FramePrivate::FramePrivate): Also added #if ENABLE(NETSCAPE_PLUGIN_API)
35799         guard around m_windowScriptNPObject.
35800         * page/Frame.h: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
35801         * page/FramePrivate.h: Added #if ENABLE(NETSCAPE_PLUGIN_API) guard around
35802         m_windowScriptNPObject.
35803         * page/mac/FrameMac.mm: Replaced USE(NPOBJECT) with ENABLE(NETSCAPE_PLUGIN_API).
35804         (WebCore::Frame::createScriptInstanceForWidget):
35806 2008-03-07  Alexey Proskuryakov  <ap@webkit.org>
35808         Reviewed by Darin.
35810         REGRESSION: Korean decoding doesn't support extended EUC-KR.
35812         Test: fast/encoding/char-decoding.html
35814         * platform/text/TextCodecICU.cpp:
35815         (WebCore::TextCodecICU::registerExtendedEncodingNames): Untangle the system of duplicate ICU
35816         encoding names by manually registering windows-939-2000, and mapping all other related
35817         encodings to it.
35819 2008-03-07  Dan Bernstein  <mitz@apple.com>
35821         Reviewed by Stephanie.
35823         - try to fix leaks seen on Tiger after r30840
35825         * css/CSSStyleSelector.cpp:
35826         (WebCore::CSSStyleSelector::~CSSStyleSelector): Use the default operator
35827         delete, rather than arena delete, to deallocate the root default style.
35829 2008-03-07  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
35831         Reviewed by Alp Toker.
35833         http://bugs.webkit.org/show_bug.cgi?id=17681
35834         GtkLauncher fails to render an element with position: fixed
35836         Implement the required parts of PlatformScreenGtk.
35838         * ChangeLog:
35839         * platform/gtk/PlatformScreenGtk.cpp:
35840         (WebCore::screenDepth):
35841         (WebCore::screenIsMonochrome):
35842         (WebCore::screenRect):
35844 2008-03-07  Oliver Hunt  <oliver@apple.com>
35846         Reviewed by Darin Adler.
35848         Bug 16610: <canvas> restore() removes path segments created before it
35850         The problem here is that WebKit stored the Path as part of the state, so
35851         restore would incorrectly lose changes made to the canvas path.  To match
35852         Firefox and HTML5 we make two real changes:
35853           * Move the context path from the state object directly onto the context.
35854             This is responsible for all the changes to the path manipulation functions
35855           * Add transform tracking to each state -- this is needed to correctly transform
35856             the current path when restore()-ing to a prior state.
35858         Test: fast/canvas/canvas-save-restore-with-path.html
35860         * html/CanvasRenderingContext2D.cpp:
35861         (WebCore::CanvasRenderingContext2D::restore):
35862         (WebCore::CanvasRenderingContext2D::scale):
35863         (WebCore::CanvasRenderingContext2D::rotate):
35864         (WebCore::CanvasRenderingContext2D::translate):
35865         (WebCore::CanvasRenderingContext2D::transform):
35866         (WebCore::CanvasRenderingContext2D::beginPath):
35867         (WebCore::CanvasRenderingContext2D::closePath):
35868         (WebCore::CanvasRenderingContext2D::moveTo):
35869         (WebCore::CanvasRenderingContext2D::lineTo):
35870         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
35871         (WebCore::CanvasRenderingContext2D::arcTo):
35872         (WebCore::CanvasRenderingContext2D::arc):
35873         (WebCore::CanvasRenderingContext2D::rect):
35874         (WebCore::CanvasRenderingContext2D::clearPathForDashboardBackwardCompatibilityMode):
35875         (WebCore::CanvasRenderingContext2D::fill):
35876         (WebCore::CanvasRenderingContext2D::stroke):
35877         (WebCore::CanvasRenderingContext2D::clip):
35878         (WebCore::CanvasRenderingContext2D::isPointInPath):
35879         * html/CanvasRenderingContext2D.h:
35881 2008-03-07  Oliver Hunt  <oliver@apple.com>
35883         Reviewed by Ada.
35885         Fix for crash caused by FrameLoader incorrectly assuming it has
35886         a RenderWidget
35888         In some circumstances an application embedding a WebView may 
35889         choose to prevent a webview from loading a resource.  If that
35890         resource was requested by an <object> element then we may 
35891         fallback to different content which may not produce a RenderWidget.
35892         Unfortunately FrameLoader::loadSubframe was assuming that if a
35893         renderer was produced it would always be a RenderWidget, and arbitrarily
35894         performed what could be an incorrect cast.  This could then lead to
35895         a crash.
35897         We currently don't have anyway of making a test for this.
35899         * loader/FrameLoader.cpp:
35900         (WebCore::FrameLoader::loadSubframe):
35902 2008-03-07  Samuel Weinig  <sam@webkit.org>
35904         Reviewed by Oliver Hunt.
35906         Fix for http://bugs.webkit.org/show_bug.cgi?id=16673
35907         <canvas> lacks toDataURL()
35909         Tests: fast/canvas/toDataURL-noData.html
35910                fast/canvas/toDataURL-supportedTypes.html
35912         * html/CanvasRenderingContext2D.cpp:
35913         (WebCore::CanvasRenderingContext2D::printSecurityExceptionMessage): Make message non-global.
35914         * html/HTMLCanvasElement.cpp:
35915         (WebCore::HTMLCanvasElement::printSecurityExceptionMessage): Log error message indicating that toDataURL has
35916         been called on a tainted canvas. 
35917         (WebCore::HTMLCanvasElement::toDataURL): This does the tainted canvas check, ensures that the canvas has pixel
35918         data, checks to see if the MIME type is supported.  Unsupported MIME types and the null string (which is made
35919         by passing no argument/null/undefined in JavaScript) are treated as being PNG, as per the spec.  The actual 
35920         toDataURL logic is actually done in the ImageBuffer class.
35921         * html/HTMLCanvasElement.h: Add function declarations.
35922         * html/HTMLCanvasElement.idl: Add function declaration.
35924         * platform/MIMETypeRegistry.cpp:
35925         (WebCore::initializeSupportedImageMIMETypes):
35926         (WebCore::initializeSupportedImageMIMETypesForEncoding):
35927         (WebCore::initializeSupportedJavaScriptMIMETypes):
35928         (WebCore::initializeSupportedNonImageMimeTypes):
35929         (WebCore::initializeSupportedMediaMIMETypes):
35930         (WebCore::initializeMIMETypeRegistry):
35931         (WebCore::MIMETypeRegistry::getMIMETypeForPath):
35932         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
35933         (WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType):
35934         (WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):
35935         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
35936         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
35937         (WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
35938         (WebCore::MIMETypeRegistry::isJavaAppletMIMEType):
35939         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes):
35940         (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes):
35941         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypesForEncoding):
35942         (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes):
35943         (WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
35944         * platform/MIMETypeRegistry.h:
35945         Clean up and add new supportedImageMIMETypesForEncoding set which contains the set of
35946         MIME types the platform knows how to encode. Currently only implemented for CG and Qt.
35948         * platform/graphics/ImageBuffer.h: Add toDataURL method.
35949         * platform/graphics/cairo/ImageBufferCairo.cpp:
35950         (WebCore::ImageBuffer::toDataURL): Add stub.
35951         * platform/graphics/cg/ImageBufferCG.cpp:
35952         (WebCore::ImageBuffer::create):
35953         (WebCore::ImageBuffer::getImageData):
35954         (WebCore::ImageBuffer::putImageData):
35955         (WebCore::ImageBuffer::toDataURL):
35956         Converts the current context to a data: url of the specified MIME type.  This method
35957         unfortunately has to flip the context, resulting in less than optimal code.
35959         * platform/graphics/qt/ImageBufferQt.cpp:
35960         (WebCore::ImageBuffer::toDataURL): Add stub.
35961         * platform/graphics/wx/ImageBufferWx.cpp:
35962         (WebCore::ImageBuffer::toDataURL): Add stub.
35964 2008-03-07  Steve Falkenburg  <sfalken@apple.com>
35966         Build fix.
35968         * WebCore.vcproj/WebCore.vcproj:
35970 2008-03-07  Brent Fulgham  <bfulgham@gmail.com>
35972         Reviewed by Mark Rowe.
35974         Correct build intermediary output
35975         (http://bugs.webkit.org/show_bug.cgi?id=17713)
35977         * WebCore/WebCore.vcproj:  Correct intermediary paths
35979 2008-03-07  Brent Fulgham  <bfulgham@gmail.com>
35981         Reviewed by Steve Falkenburg.
35983         Add Cairo build requirements to WebCore.vcproj under a new
35984         set of targets.  Exclude Cairo elements from normal CG build.
35985         Exclude CG elements from Cairo builds.
35986         (http://bugs.webkit.org/show_bug.cgi?id=17300)
35988         * WebCore.vcproj/WebCore.vcproj:
35989         * WebCore.vcproj/webcore.vsprops: Added.
35991 2008-03-07  Darin Adler  <darin@apple.com>
35993         Reviewed by Adam.
35995         - eliminated WebCoreFrameBridge runOpenPanel
35997         * page/ChromeClient.h: Added runOpenPanel function.
35998         * page/mac/ChromeMac.mm:
35999         (WebCore::ChromeClient::runOpenPanel): Added.
36000         * platform/FileChooser.cpp:
36001         (WebCore::FileChooser::FileChooser): Moved this here. It's no longer platform-specific.
36002         Also start the refcount at 1.
36003         (WebCore::FileChooser::create): Added adoptRef since the refcount no starts at one.
36004         (WebCore::FileChooser::~FileChooser): Moved here. No longer platform-specific.
36005         * platform/FileChooser.h: Removed m_controller, which was Macintosh-specific.
36006         * platform/gtk/FileChooserGtk.cpp: Removed FileChooser constructor and destructor,
36007         since they are no longer platform-specific.
36008         * platform/qt/FileChooserQt.cpp: Ditto.
36009         * platform/win/FileChooserWin.cpp: Ditto.
36010         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
36011         * platform/mac/FileChooserMac.mm:
36012         (WebCore::FileChooser::openFileChooser): Call the chrome client instead of the
36013         bridge to run the open panel. Allows us to get rid of the WebCoreOpenPanelController
36014         class and m_controller data member and move the cosntrutor/destructor to platform-
36015         independent code.
36017 2008-03-07  Adam Roben  <aroben@apple.com>
36019         Add JavaScriptDebugServer
36021         This class is a singleton which allows one or more
36022         JavaScriptDebugListeners to receive callbacks during JavaScript
36023         execution.
36025         Right now all listeners receive callbacks for all Pages in the
36026         process. Eventually we will want to support listeners registering for
36027         callbacks for specific Pages (e.g., the Inspector will want to listen
36028         for execution in just the Page it's inspecting).
36030         Pages notify the JavaScriptDebugServer when they are created so that
36031         it can install itself as the Page's debugger.
36033         Reviewed by Darin.
36035         * GNUMakefile.am: Added new files to project.
36036         * WebCore.pro: Ditto.
36037         * WebCore.vcproj/WebCore.vcproj: Ditto.
36038         * WebCore.xcodeproj/project.pbxproj: Ditto.
36039         * WebCoreSources.bkl: Ditto.
36040         * page/JavaScriptDebugListener.h: Added.
36041         * page/JavaScriptDebugServer.cpp: Added.
36042         (WebCore::toFrame):
36043         (WebCore::JavaScriptDebugServer::shared):
36044         (WebCore::JavaScriptDebugServer::JavaScriptDebugServer):
36045         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer):
36046         (WebCore::JavaScriptDebugServer::addListener): Registers as the
36047         debugger for all Pages if we're adding our first listener.
36048         (WebCore::JavaScriptDebugServer::removeListener): Deregisters as the
36049         debugger for all Pages if we're removing our last listner.
36050         (WebCore::JavaScriptDebugServer::pageCreated): Registers as the
36051         debugger for the newly created Page if we have any listeners.
36052         (WebCore::dispatchDidParseSource): Helper function.
36053         (WebCore::dispatchFailedToParseSource): Ditto.
36054         (WebCore::JavaScriptDebugServer::sourceParsed): Call
36055         dispatchDidParseSource or dispatchFailedToParseSource depending on
36056         whether there was an error or not.
36057         (WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Calls
36058         the passed-in JavaScriptExecutionCallback on each listener, guarding
36059         against re-entry.
36060         (WebCore::JavaScriptDebugServer::callEvent): Dispatch didEnterCallFrame.
36061         (WebCore::JavaScriptDebugServer::atStatement): Dispatch willExecuteStatement.
36062         (WebCore::JavaScriptDebugServer::returnEvent): Dispatch willLeaveCallFrame.
36063         (WebCore::JavaScriptDebugServer::exception): Dispatch exceptionWasRaised.
36064         * page/JavaScriptDebugServer.h: Added.
36065         * page/Page.cpp:
36066         (WebCore::Page::Page): Tell the shared JavaScriptDebugServer we were
36067         created so it can register as our debugger if needed.
36069 2008-03-07  Darin Adler  <darin@apple.com>
36071         Reviewed by Brady.
36073         - fix a theoretical problem with the visited-link hash table by avoiding collision
36074           with the special "deleted" value
36075         - improve efficiency of with the visited-link hash table by not hashing twice
36077         * page/PageGroup.cpp:
36078         (WebCore::avoidDeletedValue): Added. Makes sure we never try to use the "all ones"
36079         value, since the hash table uses that for deleted hash table entries.
36080         (WebCore::PageGroup::isLinkVisited): Call avoidDeletedValue before using the hash
36081         value with the HashSet.
36082         (WebCore::PageGroup::addVisitedLink): Ditto.
36084         * page/PageGroup.h: Added a new hash function, AlreadyHashed, for unsigned integer
36085         values. This assumes that the value is already a hash value, and doesn't try to
36086         hash it again. Used this for m_visitedLinkHashes.
36088 2008-03-07  Simon Hausmann  <hausmann@webkit.org>
36090         Fix the Qt build.
36092         * WebCore.pro:
36094 2008-03-06  Sam Weinig  <sam@webkit.org> with a little help from Oliver Hunt  <oliver@apple.com>
36096         Reviewed by Mitz.
36098         Implement the HTML5 canvas tainting rules to prevent potential data leakage
36100         Added originClean to HTMLCanvasElement and CanvasPattern
36101         to track whether a canvas (or pattern) is tainted by remote
36102         data.
36103         Use originClean flag to determine whether getImageData should
36104         return, well, image data.
36106         Test: http/tests/security/canvas-remote-read-remote-image.html
36108         * html/CanvasPattern.cpp:
36109         (WebCore::CanvasPattern::CanvasPattern):
36110         * html/CanvasPattern.h:
36111         * html/CanvasRenderingContext2D.cpp:
36112         (WebCore::CanvasRenderingContext2D::setStrokeStyle):
36113         (WebCore::CanvasRenderingContext2D::setFillStyle):
36114         (WebCore::CanvasRenderingContext2D::checkOrigin):
36115         (WebCore::CanvasRenderingContext2D::drawImage):
36116         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
36117         (WebCore::CanvasRenderingContext2D::createPattern):
36118         (WebCore::CanvasRenderingContext2D::printSecurityExceptionMessage):
36119         (WebCore::CanvasRenderingContext2D::getImageData):
36120         * html/CanvasRenderingContext2D.h:
36121         * html/HTMLCanvasElement.cpp:
36122         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
36123         * html/HTMLCanvasElement.h:
36124         (WebCore::HTMLCanvasElement::setOriginTainted):
36125         (WebCore::HTMLCanvasElement::originClean):
36127 2008-03-06  Anders Carlsson  <andersca@apple.com>
36129         Reviewed by Jon.
36131         Templatize the JNI call code to reduce the amount of code that has
36132         to be duplicated.
36134         * bridge/jni/jni_class.cpp:
36135         (JavaClass::JavaClass):
36136         * bridge/jni/jni_instance.cpp:
36137         (JavaInstance::stringValue):
36138         (JavaInstance::numberValue):
36139         (JavaInstance::booleanValue):
36140         (JavaInstance::invokeMethod):
36141         * bridge/jni/jni_jsobject.cpp:
36142         (JavaJSObject::convertJObjectToValue):
36143         * bridge/jni/jni_runtime.cpp:
36144         (JavaField::JavaField):
36145         (JavaMethod::JavaMethod):
36146         * bridge/jni/jni_utility.cpp:
36147         * bridge/jni/jni_utility.h:
36148         (KJS::Bindings::):
36149         (KJS::Bindings::callJNIMethodIDA):
36150         (KJS::Bindings::callJNIMethodV):
36151         (KJS::Bindings::callJNIMethod):
36152         (KJS::Bindings::callJNIStaticMethod):
36154 2008-03-06  Darin Adler  <darin@apple.com>
36156         Reviewed by Mitz.
36158         - fix regression test failures from the visited-link change
36160         * WebCore.base.exp: Export PageGroup::setShouldTrackVisitedLinks.
36161         * page/PageGroup.cpp:
36162         (WebCore::PageGroup::addVisitedLink): Do nothing and return early
36163         if shouldTrackVisitedLinks is false.
36164         (WebCore::PageGroup::removeVisitedLinks): Reset m_visitedLinksPopulated
36165         so the next time a link is queried this will be populated from history.
36166         (WebCore::PageGroup::setShouldTrackVisitedLinks): Added.
36167         * page/PageGroup.h: Added setShouldTrackVisitedLinks. This is global
36168         for now, but it would be better if it was per-page-group instead.
36170 2008-03-06  Adele Peterson  <adele@apple.com>
36172         Reviewed by Darin.
36174         Fixes for for <rdar://problem/5785892> Implement activeElement attribute for HTMLDocument (HTML5)
36175         and <rdar://problem/5785895> Implement hasFocus() for HTMLDocument (HTML5)
36177         Tests: fast/dom/HTMLDocument/activeElement.html
36178                fast/dom/HTMLDocument/hasFocus.html
36180         * html/HTMLDocument.cpp:
36181         (WebCore::HTMLDocument::activeElement): Added. Returns the focused element, or the body element if nothing's focused.
36182         (WebCore::HTMLDocument::hasFocus): Added. Returns whether or not the document has focus (inclusive of sub-frames).
36183         * html/HTMLDocument.h: Added methods for activeElement and hasFocus.
36184         * html/HTMLDocument.idl: Added definitions for activeElement and hasFocus.
36186 2008-03-06  Dan Bernstein  <mitz@apple.com>
36188         Reviewed by Darin Adler.
36190         - fix <rdar://problem/5741981> 154008 WebKit: Some asian language font glyphs are not shown (in Mail and Entourage)
36192         Test: fast/text/soft-hyphen-3.html
36194         * rendering/bidi.cpp:
36195         (WebCore::checkMidpoints):
36196         (WebCore::RenderBlock::findNextLineBreak): Made 'pos' unsigned. Made the
36197         midpoint after a hyphen always be a valid iterator, not allowing an
36198         offset past the end of a text node. Changed the check for consecutive
36199         soft hyphens to account for that.
36201 2008-03-06  Darin Adler  <darin@apple.com>
36203         - try to fix Wx build
36205         * WebCoreSources.bkl: Added PageGroup.cpp.
36207 2008-03-06  Darin Adler  <darin@apple.com>
36209         - fix some builds
36211         * GNUmakefile.am: Added PageGroup.cpp.
36212         * WebCore.base.exp: Removed WebCoreHistory.
36213         * WebCore.pro: Added PageGroup.cpp.
36215 2008-03-06  Alexey Proskuryakov  <ap@webkit.org>
36217         Reviewed by Darin.
36219         <rdar://problem/5687269> Need to create a Collator abstraction for WebCore and JavaScriptCore
36220         
36221         * ForwardingHeaders/wtf/unicode/Collator.h: Added.
36222         * xml/XSLTUnicodeSort.cpp:
36223         (WebCore::xsltUnicodeSortFunction):
36224         * xml/XSLTUnicodeSort.h:
36226 2008-03-06  Darin Adler  <darin@apple.com>
36228         Reviewed by Mitz.
36230         - fix http://bugs.webkit.org/show_bug.cgi?id=17526
36231           REGRESSION: iframes are added to Safari's History menu
36232           by separating the visited link machinery from global history
36234         This should also make page loading faster due to more efficient visited link coloring.
36236         * WebCore.base.exp: Updated.
36237         * WebCore.vcproj/WebCore.vcproj: Added PageGroup.h/cpp, removed GlobalHistory.h/cpp.
36238         * WebCore.xcodeproj/project.pbxproj: Ditto. Also removed WebCoreHistory.h/m.
36240         * css/CSSStyleSelector.cpp: Updated includes.
36241         (WebCore::CSSStyleSelector::initElementAndPseudoState): Eliminated code to set
36242         currentEncodedURL.
36243         (WebCore::checkPseudoState): Moved most of the code inside a new
36244         PageGroup::isLinkVisited function.
36245         (WebCore::CSSStyleSelector::canShareStyleWithElement): Tightened code a bit by using
36246         references and only getting colors when needed.
36247         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Ditto.
36248         * css/CSSStyleSelector.h: Removed EncodedURL, m_encodedURL, and setEncodedURL.
36250         * dom/Document.cpp:
36251         (WebCore::Document::attach): Removed call to setEncodedURL.
36252         (WebCore::Document::setURL): Ditto.
36253         (WebCore::Document::recalcStyleSelector): Ditto.
36255         * loader/FrameLoader.cpp:
36256         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget): Changed code to use
36257         early exit idiom to be a little more readable.
36258         (WebCore::FrameLoader::urlsMatchItem): Change to use a reference for slightly
36259         better efficiency.
36260         (WebCore::FrameLoader::goToItem): Use early exit idiom to be a little more
36261         readable.
36262         (WebCore::FrameLoader::updateHistoryForStandardLoad): Moved history code back
36263         in here and got rid of the helper function updateGlobalHistory, restoring the
36264         logic before r30549. Also added a call to the new addVisitedLink function.
36265         (WebCore::FrameLoader::updateHistoryForClientRedirect): Added code to call
36266         addVisitedLink here.
36267         (WebCore::FrameLoader::updateHistoryForBackForwardNavigation): Removed comment.
36268         (WebCore::FrameLoader::updateHistoryForReload): Removed call to
36269         updateGlobalHistory; we can just go without updating global history or
36270         visited links here, at least for now, since it's not clear that a reload
36271         is a "history event".
36272         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory): Moved
36273         history code back where it was, and added the call to addVisitedLink, just
36274         as in updateHistoryForStandardLoad above.
36275         * loader/FrameLoader.h: Removed updateGlobalHistory function.
36277         * page/Chrome.cpp:
36278         (WebCore::ChromeClient::populateVisitedLinks): Added. Empty placeholder so we
36279         don't have to implement this for every port all at once.
36280         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer): Changed to use the
36281         new PageGroup class.
36282         * page/ChromeClient.h: Added populateVisitedLinks function, used to fill the
36283         visited links set from the global history at application startup time.
36285         * page/FrameTree.cpp:
36286         (WebCore::FrameTree::find): Updated to use the new PageGroup class.
36288         * page/GlobalHistory.h: Removed.
36289         * page/win/GlobalHistoryWin.cpp: Removed.
36290         * page/mac/GlobalHistoryMac.mm: Removed.
36291         * platform/mac/WebCoreHistory.h: Removed.
36292         * platform/mac/WebCoreHistory.m: Removed.
36293         * platform/win/WebCoreHistory.cpp: Removed.
36294         * platform/win/WebCoreHistory.h: Removed.
36296         * page/Page.cpp:
36297         (WebCore::Page::Page): Set m_group to 0.
36298         (WebCore::Page::setGroupName): Set up m_group. If the page is not in any
36299         group, set it to 0 for now to postpone the cost of creating a group.
36300         (WebCore::Page::initGroup): Added. Sets m_group to point to a single-page
36301         group; used when getting a group.
36302         (WebCore::Page::removeAllVisitedLinks): Added. Calls removeVisitedLinks
36303         on all page groups.
36304         * page/Page.h: Moved enums inside the WebCore namespace. Removed the
36305         frameNamespace function and instead added the group and groupPtr functions.
36307         * page/PageGroup.cpp: Added. Contains all the visited code from the
36308         CSSStyleSelector in the isVisitedLink function, but more efficient because
36309         we don't allocate memory for the buffer.
36310         * page/PageGroup.h: Added.
36312         * platform/gtk/TemporaryLinkStubs.cpp: Removed historyContains.
36313         * platform/qt/TemporaryLinkStubs.cpp: Removed unneeded include.
36314         * platform/wx/TemporaryLinkStubs.cpp: Removed historyContains.
36316 2008-03-06  Mark Rowe  <mrowe@apple.com>
36318         Fix 64-bit Mac build.
36320         * WebCore.xcodeproj/project.pbxproj:  Exclude _NPN symbols from the exports list as they
36321         are compiled out of 64-bit builds.
36323 2008-03-06  Mark Rowe  <mrowe@apple.com>
36325         Leopard build fix.
36327         * WebCore.base.exp:
36329 2008-03-05  Kevin Ollivier  <kevino@theolliviers.com>
36331         Fix the wx build after the bindings move.
36333         * WebCoreSources.bkl:
36334         * webcore-base.bkl:
36335         * webcore-wx.bkl:
36337 2008-03-05  Dan Bernstein  <mitz@apple.com>
36339         Reviewed by Adele Peterson.
36341         - fix "background-position: inherit"
36343         * css/CSSStyleSelector.cpp:
36344         Made HANDLE_MULTILAYER_INHERIT_AND_INITIAL fall through and added
36345         a return statement in HANDLE_MULTILAYER_VALUE. Also removed an unused
36346         macro.
36348 2008-03-05  Alp Toker  <alp@atoker.com>
36350         Add a missing make dependency for derived sources to improve
36351         autotools build dependency tracking.
36353         Issue spotted by Ori Bernstein.
36355         * GNUmakefile.am:
36357 2008-03-05  Alp Toker  <alp@atoker.com>
36359         GTK+ build fix for breakage introduced in r30800.
36361         Track moved bridge sources from JavaScriptCore to WebCore.
36363         * GNUmakefile.am:
36365 2008-03-05  Justin Garcia  <justin.garcia@apple.com>
36367         Reviewed by Darin.
36369         One part of fix for:
36370         <rdar://problem/5780697> Copying content with percentage based rules in a style sheet will cause fidelity issues
36372         * editing/markup.cpp:
36373         (WebCore::appendStartMarkup): Styles from matched rules should take precedence over those in
36374         inline style declarations, not the other way around. 
36376 2008-03-05  Anders Carlsson  <andersca@apple.com>
36378         Reviewed by Darin.
36380         Move JNI specific code from runtime_root over to jni_jsobject, where it is used.
36382         * bridge/jni/jni_jsobject.cpp:
36383         (completedJavaScriptAccess):
36384         (initializeJavaScriptAccessLock):
36385         (lockJavaScriptAccess):
36386         (unlockJavaScriptAccess):
36387         (dispatchToJavaScriptThread):
36388         (performJavaScriptAccess):
36389         (JavaJSObject::initializeJNIThreading):
36390         (isJavaScriptThread):
36391         (JavaJSObject::invoke):
36392         * bridge/jni/jni_jsobject.h:
36393         * bridge/runtime_root.cpp:
36394         * bridge/runtime_root.h:
36395         * page/mac/WebCoreFrameBridge.mm:
36396         (-[WebCoreFrameBridge init]):
36398 2008-03-05  Darin Adler  <darin@apple.com>
36400         Reviewed by Sam.
36402         - add functions giving offsets within a KURL, slated to replace the
36403           EncodedURL object in CSSStyleSelector (in a future "visited link" change)
36404         - changed all KURL data members names to use the traditional m_ prefix
36405         - initialize all members to 0 in invalid KURLs rather than having all
36406           functions check m_isValid
36408         * platform/KURL.cpp:
36409         (WebCore::KURL::invalidate): Added. Initializes all the fields except for
36410         m_string to the "invalid" values. For use in the empty constructor and
36411         in the init and parse functions.
36412         (WebCore::KURL::init): Tweaked comments. Changed all code paths that return
36413         early to use the invalidate() function. Updated for member variable name
36414         changes.
36415         (WebCore::KURL::hasPath): Updated for member variable name changes.
36416         Remove now-unneeded check of m_isValid.
36417         (WebCore::KURL::lastPathComponent): Ditto.
36418         (WebCore::KURL::protocol): Ditto.
36419         (WebCore::KURL::host): Ditto.
36420         (WebCore::KURL::port): Ditto.
36421         (WebCore::KURL::pass): Ditto.
36422         (WebCore::KURL::user): Ditto.
36423         (WebCore::KURL::ref): Ditto.
36424         (WebCore::KURL::hasRef): Ditto.
36425         (WebCore::KURL::protocolIs): Ditto.
36426         (WebCore::KURL::query): Ditto.
36427         (WebCore::KURL::path): Ditto.
36428         (WebCore::KURL::setProtocol): Ditto.
36429         (WebCore::KURL::setHost): Ditto.
36430         (WebCore::KURL::setPort): Ditto.
36431         (WebCore::KURL::setHostAndPort): Ditto.
36432         (WebCore::KURL::setUser): Ditto.
36433         (WebCore::KURL::setPass): Ditto.
36434         (WebCore::KURL::setRef): Ditto.
36435         (WebCore::KURL::setQuery): Ditto.
36436         (WebCore::KURL::setPath): Ditto.
36437         (WebCore::KURL::prettyURL): Ditto.
36438         (WebCore::copyPathRemovingDots): Removed braces to match our code style.
36439         (WebCore::KURL::parse): Changed all code paths that return early to use
36440         the invalidate function. Moved code to set m_isValid to true to the very
36441         end of the function. Removed braces to match our code style. Removed an
36442         extra copy of the path/query/fragment code (there were two identical copies
36443         in the two sides of an if statement). Removed some commented-out code.
36444         Reversed an if statment. Added code to set the new m_pathAfterLastSlash
36445         field. Updated for member variable name changes.
36446         (WebCore::equalIgnoringRef): Updated for member variable name changes.
36447         (WebCore::KURL::isHierarchical): Ditto.
36449         * platform/KURL.h: Added a FIXME about ref vs. fragment. Made the empty
36450         constructor inline and called the new invalidate function. Added new
36451         pathStart, pathEnd, and pathAfterLastSlash functions, for use in the
36452         new visited link code. Added an invalidate function. Renamed all the
36453         data members to use the m_ prefix.
36455         * WebCore.base.exp: Updated.
36457 2008-03-05  Anders Carlsson  <andersca@apple.com>
36459         Reviewed by Sam.
36461         * WebCore.xcodeproj/project.pbxproj:
36462         Change jni_jsobject.cpp to be Obj-C++ for now. The plan is to merge 
36463         this with jni_objc.mm and create jni_jsobject.mm.
36464         
36465         * bridge/jni/jni_jsobject.cpp:
36466         (createRootObject):
36467         Move createRootObject here from WebCoreFrameBridge.
36468         
36469         (JavaJSObject::createNative):
36470         Call the newly added createRootObject function.
36471         
36472         * bridge/runtime_root.cpp:
36473         (KJS::Bindings::RootObject::initializeJNIThreading):
36474         * bridge/runtime_root.h:
36475         setCreateRootObject no longer takes a root object, rename it to initializeJNIThreading.
36477         * page/mac/FrameMac.mm:
36478         (WebCore::Frame::createScriptInstanceForWidget):
36479         Just call Frame::createRootObject here.
36480         
36481         * page/mac/WebCoreFrameBridge.mm:
36482         (-[WebCoreFrameBridge init]):
36483         Call initializeJNIThreading.
36485 2008-03-05  Anders Carlsson  <andersca@apple.com>
36487         Reviewed by Sam.
36489         Change some static class variables to be regular static variables,
36490         making it easier to move the chunk of mac-specific code out of runtime_root.[cpp|h]
36492         * bridge/runtime_root.cpp:
36493         (KJS::Bindings::completedJavaScriptAccess):
36494         (KJS::Bindings::RootObject::dispatchToJavaScriptThread):
36495         (KJS::Bindings::performJavaScriptAccess):
36496         (KJS::Bindings::RootObject::createRootObject):
36497         (KJS::Bindings::RootObject::runLoop):
36498         (KJS::Bindings::RootObject::setCreateRootObject):
36499         * bridge/runtime_root.h:
36501 2008-03-05  Brent Fulgham <bfulgham@gmail.com>
36503         Reviewed by Adam Roben.
36505         Modify source files to use the USE(SAFARI_THEME) macro, rather than
36506         USE_SAFARI_THEME.  (http://bugs.webkit.org/show_bug.cgi?id=17683)
36508         * WebCore/platform/win/PlatformScrollBarSafari.cpp
36509         * WebCore/rendering/RenderThemeSafari.cpp
36510         * WebCore/rendering/RenderThemeSafari.h
36511         * config.h: Move definition of WTF_USE_SAFARI_THEME here 
36513 2008-03-05  Brady Eidson  <beidson@apple.com>
36515         Reviewed by Alexey and Mark Rowe
36517         Fix for <rdar://problem/5778247> - Reproducible crash on storage/execute-sql-args.html
36519         DatabaseThread::unscheduleDatabaseTasks() manually filters through a MessageQueue,
36520         removing particular items for Databases that were shutting down.
36522         This filtering operation is not atomic, and therefore causes a race condition with the
36523         database thread waking up and reading from the message queue.  
36525         The end result was an attempt to dereference a null DatabaseTask.  Timing-wise, this never
36526         seemed to happen in a debug build, otherwise an assertion would've caught it.  Replacing that
36527         assertion with a crash in a release build is what revealed this bug.
36529         The fix for the above symptom was entirely in WTF::MessageQueue in JSCore.  With this fix in 
36530         place, another crash popped up in the layout tests that was related to dereferencing a 
36531         deallocated object - simply because SQLTransaction had a raw pointer to it's Database object 
36532         when it needed to be a ref pointer.
36534         * storage/SQLTransaction.cpp:
36535         (WebCore::SQLTransaction::runCurrentStatement):
36536         * storage/SQLTransaction.h: Change m_database to be a RefPtr
36537         (WebCore::SQLTransaction::database):
36539 2008-03-05  Mark Rowe  <mrowe@apple.com>
36541         Build fix.
36543         * WebCore.base.exp:  Remove symbol that no longer exists from the exports file.
36545 2008-03-05  Adam Roben  <aroben@apple.com>
36547         Export a header/symbol for WebKit
36549         Reviewed by Kevin M.
36551         * WebCore.base.exp:
36552         * WebCore.xcodeproj/project.pbxproj:
36554 2008-03-05  Adam Roben  <aroben@apple.com>
36556         Move WebCoreScriptDebugger up to WebKit
36558         Reviewed by Darin.
36560         * WebCore.base.exp: Exported some functions used by
36561         WebCoreScriptDebugger, and sorted the list.
36562         * WebCore.xcodeproj/project.pbxproj: Removed
36563         WebCoreScriptDebugger.{h,mm} from the project and marked
36564         a few headers private so that WebKit can use them.
36565         * page/mac/WebCoreScriptDebugger.h: Removed.
36566         * page/mac/WebCoreScriptDebugger.mm: Removed.
36568 2008-03-05  Anders Carlsson  <andersca@apple.com>
36570         Build bridge/. Copy some headers over to WebKit as part of the post-build step.
36571         
36572         * WebCore.vcproj/WebCore.vcproj:
36574 2008-03-05  Anders Carlsson  <andersca@apple.com>
36576         Reviewed by Geoff.
36578         * WebCore.base.exp:
36579         Add the NPN and KJS methods.
36580         
36581         * WebCore.xcodeproj/project.pbxproj:
36582         Bring in bridge/
36584         * config.h:
36585         Add HAVE_JNI define.
36586         
36587         * bindings/js/kjs_html.cpp:
36588         * bindings/objc/DOMInternal.mm:
36589         * bindings/objc/DOMUtility.mm:
36590         * bindings/objc/WebScriptObject.mm:
36591         * html/HTMLAppletElement.cpp:
36592         * html/HTMLEmbedElement.cpp:
36593         * html/HTMLObjectElement.cpp:
36594         * html/HTMLPlugInElement.cpp:
36595         * page/Frame.cpp:
36596         * page/mac/FrameMac.mm:
36597         * page/mac/WebCoreFrameBridge.mm:
36598         * page/mac/WebCoreScriptDebugger.mm:
36599         * plugins/win/PluginViewWin.cpp:
36600         Include file changes.
36602 2008-03-04  Anders Carlsson  <andersca@apple.com>
36604         Reviewed by Sam.
36606         Rewrite NPRuntime string conversion routines to use WebCore::String
36607         
36608         * bridge/NP_jsobject.cpp:
36609         (_NPN_Evaluate):
36610         * bridge/c/c_utility.cpp:
36611         (KJS::Bindings::convertUTF8ToUTF16WithLatin1Fallback):
36612         (KJS::Bindings::convertNPVariantToValue):
36613         (KJS::Bindings::convertNPStringToUTF16):
36614         (KJS::Bindings::identifierFromNPIdentifier):
36615         * bridge/c/c_utility.h:
36617 2008-03-05  Oliver Hunt  <oliver@apple.com>
36619         Reviewed by Alexey P.
36621         Small performance improvement to putImageData (3-5% on assignment in my tests)
36623         * html/CanvasPixelArray.h:
36624         (WebCore::CanvasPixelArray::set):
36626 2008-03-04  Sam Weinig  <sam@webkit.org>
36628         Reviewed by Adele.
36630         * bindings/js/JSXMLHttpRequest.h: Remove unnecessary override of toBoolean.
36632 2008-03-04  Maciej Stachowiak  <mjs@apple.com>
36634         Reviewed by Sam and Oliver.
36636         - fixed http://bugs.webkit.org/show_bug.cgi?id=16289
36637         - fixed Acid3 tests 26 and 27 (not exactly the same issue but related)
36639         * bindings/js/JSNodeCustom.cpp:
36640         (WebCore::JSNode::mark): When marking a node that's in-document,
36641         mark the owner document if it hasn't been already. This means holding on
36642         to a single node from an unreferenced document now keeps the whole document alive.
36643         
36644         We are now at 90/100 on Acid3.
36646 2008-03-04  Sam Weinig  <sam@webkit.org>
36648         Qt build fix.
36650         * page/qt/FrameQt.cpp:
36652 2008-03-04  Sam Weinig  <sam@webkit.org>
36654         Reviewed by Mark Rowe.
36656         Rename kjs_window to JSDOMWindowBase.
36658         - Remove all unnecessary includes of JSDOMWindowBase.h, we prefer including
36659           JSDOMWindow.h
36661         * ChangeLog:
36662         * DerivedSources.make:
36663         * GNUmakefile.am:
36664         * WebCore.pro:
36665         * WebCore.vcproj/WebCore.vcproj:
36666         * WebCore.xcodeproj/project.pbxproj:
36667         * WebCoreSources.bkl:
36668         * bindings/js/JSCustomVoidCallback.cpp:
36669         * bindings/js/JSCustomXPathNSResolver.cpp:
36670         * bindings/js/JSDOMWindowBase.cpp: Copied from bindings/js/kjs_window.cpp.
36671         * bindings/js/JSDOMWindowBase.h: Copied from bindings/js/kjs_window.h.
36672         * bindings/js/JSDOMWindowCustom.cpp:
36673         * bindings/js/JSDatabaseCustom.cpp:
36674         * bindings/js/JSEventTargetBase.cpp:
36675         * bindings/js/JSEventTargetBase.h:
36676         * bindings/js/JSEventTargetNode.cpp:
36677         * bindings/js/JSHTMLDocumentCustom.cpp:
36678         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
36679         * bindings/js/JSHistoryCustom.cpp:
36680         * bindings/js/JSLocation.cpp:
36681         * bindings/js/JSSQLTransactionCustom.cpp:
36682         * bindings/js/JSXMLHttpRequest.cpp:
36683         * bindings/js/ScheduledAction.cpp:
36684         * bindings/js/kjs_binding.cpp:
36685         * bindings/js/kjs_events.cpp:
36686         * bindings/js/kjs_navigator.cpp:
36687         * bindings/js/kjs_proxy.cpp:
36688         * bindings/js/kjs_window.cpp: Removed.
36689         * bindings/js/kjs_window.h: Removed.
36690         * bindings/scripts/CodeGeneratorJS.pm:
36691         * history/CachedPage.cpp:
36692         * loader/FrameLoader.cpp:
36693         * page/Chrome.cpp:
36694         * page/InspectorController.cpp:
36695         * page/mac/FrameMac.mm:
36696         * page/mac/WebCoreFrameBridge.mm:
36697         * page/qt/FrameQt.cpp:
36698         * page/win/FrameWin.cpp:
36699         * plugins/win/PluginViewWin.cpp:
36701 2008-03-04  Mark Rowe  <mrowe@apple.com>
36703         Speculative Qt build fix.
36705         * platform/qt/PasteboardQt.cpp:
36707 2008-03-04  Anders Carlsson  <andersca@apple.com>
36709         Reviewed by Sam.
36711         Update include paths. This code is not used yet.
36713         * bridge/NP_jsobject.cpp:
36714         * bridge/c/c_class.cpp:
36715         * bridge/c/c_instance.cpp:
36716         * bridge/c/c_utility.cpp:
36717         (KJS::Bindings::convertUTF8ToUTF16WithLatin1Fallback):
36718         #if 0 this out for now. 
36719         
36720         * bridge/jni/jni_class.cpp:
36721         * bridge/jni/jni_jsobject.cpp:
36722         * bridge/jni/jni_objc.mm:
36723         * bridge/jni/jni_runtime.cpp:
36724         * bridge/jni/jni_utility.cpp:
36725         * bridge/jni/jni_utility.h:
36726         * bridge/npruntime.cpp:
36727         * bridge/objc/WebScriptObject.h:
36728         * bridge/objc/objc_class.h:
36729         * bridge/objc/objc_instance.h:
36730         * bridge/objc/objc_runtime.h:
36731         * bridge/objc/objc_utility.h:
36732         * bridge/objc/objc_utility.mm:
36733         * bridge/runtime.cpp:
36734         * bridge/runtime.h:
36735         * bridge/runtime_array.cpp:
36736         * bridge/runtime_array.h:
36737         * bridge/runtime_method.cpp:
36738         * bridge/runtime_method.h:
36739         * bridge/runtime_object.cpp:
36740         * bridge/runtime_object.h:
36741         * bridge/runtime_root.cpp:
36742         * bridge/runtime_root.h:
36744 2008-03-04  Dan Bernstein  <mitz@apple.com>
36746         Reviewed by Darin Adler.
36748         - fix http://bugs.webkit.org/show_bug.cgi?id=17676
36749           <rdar://problem/5781091> REGRESSION (r30240-r30267): href attribute values with non-ASCII characters in the host part do not work
36751         Test: fast/encoding/url-host-name-non-ascii.html
36753         * platform/KURL.cpp:
36754         (WebCore::appendEncodedHostname): Added an early return in the all-ASCII
36755         case to avoid copying the host name twice and corrected the error
36756         checking after calling uidna_IDNToASCII().
36758 2008-03-04  Sam Weinig  <sam@webkit.org>
36760         Reviewed by Dan Bernstein.
36762         Use JSDOMWindow exclusively instead of JSDOMWindowBase.
36764         * bindings/js/ScheduledAction.cpp:
36765         (WebCore::ScheduledAction::execute):
36766         * bindings/js/ScheduledAction.h:
36767         * bindings/js/kjs_window.cpp:
36768         (WebCore::JSDOMWindowBase::timerFired):
36770 2008-03-04  Timothy Hatcher  <timothy@apple.com>
36772         Reviewed by Darin Adler.
36774         <rdar://problem/5720160> Browser windows "do nothing" while modal
36775         dialog or menu is up due to run loop modes (or while scrolling)
36777         Adds a new SchedulePair object that holds a runloop and the mode to use.
36778         A HashSet of SchedulePairs is tracked by Page so it can be used for resource
36779         loading and, in the future, maybe SharedTimerMac.
36781         * WebCore.base.exp: Add new exports for WebKit.
36782         * WebCore.xcodeproj/project.pbxproj: Add new files.
36783         * loader/mac/DocumentLoaderMac.cpp: Added.
36784         (WebCore::scheduleAll): Call schedule all the ResourceLoader handles.
36785         (WebCore::unscheduleAll): Call unschedule all the ResourceLoader handles.
36786         (WebCore::DocumentLoader::schedule): Schedule all the ResourceLoaders owned by the DocumentLoader.
36787         (WebCore::DocumentLoader::unschedule): Unschedule all the ResourceLoaders owned by the DocumentLoader.
36788         * loader/DocumentLoader.h:
36789         * page/Page.h:
36790         (WebCore::Page::scheduledRunLoopPairs): Return m_scheduledRunLoopPairs.
36791         * page/mac/PageMac.cpp:
36792         (WebCore::Page::addSchedulePair): Add a SchedulePair to m_scheduledRunLoopPairs.
36793         (WebCore::Page::removeSchedulePair): Removes a SchedulePair from m_scheduledRunLoopPairs.
36794         * platform/cf/SchedulePair.cpp: Added.
36795         * platform/cf/SchedulePair.h: Added.
36796         * platform/mac/SchedulePairMac.mm: Added.
36797         * platform/network/ResourceHandle.h:
36798         * platform/network/mac/FormDataStreamMac.mm:
36799         (WebCore::advanceCurrentStream): Use the new SchedulePair.
36800         (WebCore::formCreate): Ditto.
36801         (WebCore::formFinalize): Ditto.
36802         (WebCore::formSchedule): Ditto.
36803         (WebCore::formUnschedule): Ditto.
36804         * platform/network/mac/ResourceHandleMac.mm:
36805         (WebCore::ResourceHandle::start): Schedule the connection with all the SchedulePairs
36806         that Page holds. If Page has no SchedulePairs, schedule with the current runloop, and
36807         pick the mode based on ResourceHandle::loadsDuringCommonRunLoopModes.
36808         (WebCore::ResourceHandle::schedule):
36809         (WebCore::ResourceHandle::unschedule):
36811 2008-03-04  Sam Weinig  <sam@webkit.org>
36813         Reviewed by Darin Adler.
36815         Rename kjs_css to JSRGBColor.
36817         * DerivedSources.make:
36818         * GNUmakefile.am:
36819         * WebCore.pro:
36820         * WebCore.vcproj/WebCore.vcproj:
36821         * WebCore.xcodeproj/project.pbxproj:
36822         * WebCoreSources.bkl:
36823         * bindings/js/JSRGBColor.cpp: Copied from bindings/js/kjs_css.cpp.
36824         * bindings/js/JSRGBColor.h: Copied from bindings/js/kjs_css.h.
36825         * bindings/js/kjs_css.cpp: Removed.
36826         * bindings/js/kjs_css.h: Removed.
36827         * bindings/js/kjs_window.cpp:
36828         * bindings/objc/DOMUtility.mm:
36829         * bindings/scripts/CodeGeneratorJS.pm:
36831 2008-03-04  Anders Carlsson  <andersca@apple.com>
36833         Fix 64-bit build.
36834         
36835         * html/HTMLPlugInElement.cpp:
36837 2008-03-04  Nikolas Zimmermann  <zimmermann@kde.org>
36839         Reviewed by Eric & David.
36841         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17078
36843         Fix getSubStringLength() handling, verified by Acid3 test 77.
36844         Brings up Acid3 score to 88/100.
36846         Added test: svg/custom/acid3-test-77.html
36847                     svg/custom/getSubStringLength.html
36849         * svg/SVGTextContentElement.cpp:
36850         (WebCore::cummulatedCharacterRangeLength): Simplify some code.
36851         (WebCore::SVGTextContentElement::getSubStringLength):
36853 2008-03-04  Anders Carlsson  <andersca@apple.com>
36855         Mac build fix. Neither me, Sam nor Adam know why we need to do this though :(
36857         * bindings/js/kjs_proxy.cpp:
36858         (WebCore::KJSProxy::attachDebugger):
36859         * page/Page.cpp:
36860         (WebCore::Page::setDebuggerForAllPages):
36861         (WebCore::Page::setDebugger):
36863 2008-03-04  Adam Roben  <aroben@apple.com>
36865         Add ExecState.h to ForwardingHeaders
36867         Reviewed by Anders.
36869         * ForwardingHeaders/kjs/ExecState.h: Added.
36870         * page/Page.cpp: Touch this to force WebCore to build and the headers
36871         to be copied.
36873 2008-03-04  Adam Roben  <aroben@apple.com>
36875         Make it possible to set a KJS::Debugger on all Frames in a Page and
36876         all Pages in the process
36878         Reviewed by Kevin M.
36880         * ForwardingHeaders/kjs/debugger.h: Added.
36881         * bindings/js/kjs_proxy.cpp:
36882         (WebCore::KJSProxy::initScript): Attach the Page's debugger if there
36883         is one.
36884         (WebCore::KJSProxy::attachDebugger): Attach the passed-in debugger, or
36885         detach any existing debugger if none was passed in.
36886         * bindings/js/kjs_proxy.h:
36887         * page/Page.cpp:
36888         (WebCore::Page::Page): Initialize new member.
36889         (WebCore::Page::setDebuggerForAllPages): Call setDebugger on each Page
36890         in the process.
36891         (WebCore::Page::setDebugger): Store the debugger and pass it off to
36892         all our Frames.
36893         * page/Page.h:
36895 2008-03-04  Sam Weinig  <sam@webkit.org>
36897         Reviewed by Darin Adler.
36899         Add ClassInfo to custom constructors so that they toString properly
36901         - Take this chance to remove the "Imp" from the end of JSXMLHttpRequestConstructorImp,
36902           and XSLTProcessorConstructorImp and prefix all the classes with JS. 
36904         * bindings/js/JSAudioConstructor.cpp:
36905         (WebCore::): Added ClassInfo definition.
36906         (WebCore::JSAudioConstructor::JSAudioConstructor):
36907         (WebCore::JSAudioConstructor::construct): Cleanup.
36908         * bindings/js/JSAudioConstructor.h: Rename m_doc to m_document.
36909         (WebCore::JSAudioConstructor::classInfo): Added.
36911         * bindings/js/JSHTMLInputElementBase.cpp: Rename HTMLInputElementBasePrototype 
36912         to JSHTMLInputElementBasePrototype as seen if toString'ed.
36914         * bindings/js/JSHTMLOptionElementConstructor.cpp:
36915         (WebCore::): Added ClassInfo definition.
36916         * bindings/js/JSHTMLOptionElementConstructor.h:
36917         (WebCore::JSHTMLOptionElementConstructor::classInfo): Added.
36919         * bindings/js/JSImageConstructor.cpp:
36920         (WebCore::): Added ClassInfo definition.
36921         (WebCore::JSImageConstructor::implementsConstruct): Moved here from header.
36922         * bindings/js/JSImageConstructor.h:
36923         (WebCore::JSImageConstructor::classInfo): Added.
36925         * bindings/js/JSXMLHttpRequest.cpp:
36926         (WebCore::): Rename XMLHttpRequestPrototype  to JSXMLHttpRequestPrototype 
36927         as seen if toString'ed.
36928         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
36929         (WebCore::JSXMLHttpRequestConstructor::implementsConstruct):
36930         (WebCore::JSXMLHttpRequestConstructor::construct):
36931         * bindings/js/JSXMLHttpRequest.h: Renamed JSXMLHttpRequestConstructorImp to
36932         JSXMLHttpRequestConstructor and doc to m_document and 
36933         (WebCore::JSXMLHttpRequestConstructor::classInfo): Added.
36935         * bindings/js/JSXSLTProcessor.cpp:
36936         (WebCore::): Renamed XSLTProcessorPrototype to JSXSLTProcessorPrototype and 
36937         XSLTProcessorConstructorImp to JSXSLTProcessorConstructor.
36938         (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
36939         (WebCore::JSXSLTProcessorConstructor::implementsConstruct):
36940         (WebCore::JSXSLTProcessorConstructor::construct):
36941         * bindings/js/JSXSLTProcessor.h:
36942         (WebCore::JSXSLTProcessorConstructor::classInfo): Added.
36944         * bindings/js/kjs_window.cpp:
36945         (WebCore::JSDOMWindowBase::getValueProperty): Fixed to work with the new class names.
36947 2008-03-04  Dan Bernstein  <mitz@apple.com>
36949         Reviewed by Oliver Hunt and Geoffrey Garen.
36951         - fix http://bugs.webkit.org/show_bug.cgi?id=17667
36952           <rdar://problem/5779658> REGRESSION (r30587): Document::implicitClose() not called when done loading page (Image does not get scaled to fit)
36954         * loader/loader.cpp:
36955         (WebCore::Loader::didFinishLoading): Changed to call
36956         setLoadInProgress(false) even for 4xx errors, because that triggers
36957         load completion check.
36959 2008-03-04  Adele Peterson  <adele@apple.com>
36961         Reviewed by Beth.
36963         Fix for <rdar://problem/5779718> focus() does not work for anchor elements with no content
36965         If an anchor has zero size, don't exclude it from being focusable from JS, just exclude it
36966         from being keyboard focusable (using the tab key).
36968         * html/HTMLAnchorElement.cpp:
36969         (WebCore::HTMLAnchorElement::isFocusable):
36970         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
36972 2008-03-04  Chris Fleizach  <cfleizach@apple.com>
36974         Reviewed by Darin Adler.
36976         - fix <rdar://problem/5119360> ER - Seed: Google results do not have AXHeading information
36978         * page/mac/WebCoreAXObject.mm:
36979         (headingLevel):
36980         (-[WebCoreAXObject accessibilityIsIgnored]):
36982 2008-03-04  Sam Weinig  <sam@webkit.org>
36984         GTK+ build fix.
36986         * GNUmakefile.am:
36988 2008-03-04  Sam Weinig  <sam@webkit.org>
36990         Reviewed by Darin Adler.
36992         Remame ImageConstructorImp to JSImageConstructor and move it into its
36993         own file.
36995         * GNUmakefile.am:
36996         * WebCore.pro:
36997         * WebCore.vcproj/WebCore.vcproj:
36998         * WebCore.xcodeproj/project.pbxproj:
36999         * WebCoreSources.bkl:
37000         * bindings/js/JSImageConstructor.cpp: Copied from bindings/js/kjs_html.cpp.
37001         (WebCore::JSImageConstructor::JSImageConstructor):
37002         (WebCore::JSImageConstructor::construct):
37003         * bindings/js/JSImageConstructor.h: Copied from bindings/js/kjs_html.h.
37004         * bindings/js/kjs_html.cpp:
37005         (WebCore::getRuntimeObject): Make this function static since it is only used
37006         in this file.
37007         * bindings/js/kjs_html.h:
37008         * bindings/js/kjs_window.cpp:
37009         (WebCore::JSDOMWindowBase::getValueProperty):
37011 2008-03-04  Adam Roben  <aroben@apple.com>
37013         Fix an uninitialized value warning in CodeGeneratorJS.pm
37015         * bindings/scripts/CodeGeneratorJS.pm: Remove reference to
37016         non-existent $maybeOkParam (this was removed in r30753).
37018 2008-03-04  Sam Weinig  <sam@webkit.org>
37020         Reviewed by Darin Adler.
37022         Remove kjs_dom.{h,cpp}.
37024         - Removed custom toAttr, which took a boolean ok, and teach CodeGeneratorJS.pm
37025           to us a null return value as an indication of failure. (This new logic is used
37026           for toVoidCallback as well.)
37027         - Move getRuntimeObject to kjs_html where a bunch of other runtime object related
37028           functions currently live.
37029         - Move checkNodeSecurity to kjs_binding, where other frame security functions 
37030           currently live.
37031         - Remove getNodeConstructor.  It had no implementation.
37033         * GNUmakefile.am:
37034         * WebCore.pro:
37035         * WebCore.vcproj/WebCore.vcproj:
37036         * WebCore.xcodeproj/project.pbxproj:
37037         * WebCoreSources.bkl:
37038         * bindings/js/JSAttrCustom.cpp:
37039         * bindings/js/JSCustomVoidCallback.cpp:
37040         (WebCore::toVoidCallback):
37041         * bindings/js/JSCustomVoidCallback.h:
37042         * bindings/js/JSDatabaseCustom.cpp:
37043         (WebCore::JSDatabase::changeVersion):
37044         (WebCore::JSDatabase::transaction):
37045         * bindings/js/JSElementCustom.cpp:
37046         (WebCore::JSElement::setAttributeNode):
37047         (WebCore::JSElement::setAttributeNodeNS):
37048         * bindings/js/JSEventTargetBase.cpp:
37049         (WebCore::toJS):
37050         * bindings/js/JSEventTargetBase.h:
37051         * bindings/js/JSHTMLAppletElementCustom.cpp:
37052         * bindings/js/JSHTMLElementCustom.cpp:
37053         * bindings/js/JSHTMLEmbedElementCustom.cpp:
37054         * bindings/js/JSHTMLFormElementCustom.cpp:
37055         * bindings/js/JSHTMLFrameElementCustom.cpp:
37056         * bindings/js/JSHTMLIFrameElementCustom.cpp:
37057         * bindings/js/JSHTMLObjectElementCustom.cpp:
37058         * bindings/js/JSNamedNodeMapCustom.cpp:
37059         * bindings/js/JSNamedNodesCollection.cpp:
37060         * bindings/js/JSNodeFilterCustom.cpp:
37061         * bindings/js/JSXSLTProcessor.cpp:
37062         * bindings/js/kjs_binding.cpp:
37063         (WebCore::checkNodeSecurity):
37064         * bindings/js/kjs_binding.h:
37065         * bindings/js/kjs_css.cpp:
37066         * bindings/js/kjs_dom.cpp: Removed.
37067         * bindings/js/kjs_dom.h: Removed.
37068         * bindings/js/kjs_events.cpp:
37069         * bindings/js/kjs_html.cpp:
37070         (WebCore::getRuntimeObject):
37071         * bindings/js/kjs_html.h:
37072         * bindings/js/kjs_window.cpp:
37073         * bindings/scripts/CodeGeneratorJS.pm:
37074         * dom/Attr.idl:
37075         * html/HTMLPlugInElement.cpp:
37076         * page/InspectorController.cpp:
37078 2008-03-04  Adam Roben  <aroben@apple.com>
37080         Win/Qt/GTK+/wx build fix after r30740
37082         * editing/Editor.cpp: Added missing #include.
37083         * page/qt/FrameQt.cpp: Removed Frame::dashboardRegionsChanged.
37084         * page/win/FrameWin.cpp: Ditto.
37085         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
37087 2008-03-04  Alp Toker  <alp@atoker.com>
37089         GTK+ build fix for breakage introduced in r30740.
37091         Remove Frame::dashboardRegionsChanged(). There's now a default
37092         implementation at ChromeClient::dashboardRegionsChanged().
37094         * page/gtk/FrameGtk.cpp:
37096 2008-03-04  Alp Toker  <alp@atoker.com>
37098         GTK+ build fix suggested by aroben. Remove an unused Mac-specific
37099         included introduced in r30740.
37101         * page/ChromeClient.h:
37103 2008-03-04  Dan Bernstein  <mitz@apple.com>
37105         Reviewed by Sam Weinig.
37107         - fix <rdar://problem/5622336> Burmese text does not render on http://www.myanmarbible.com/bible/Judson/html/index.html
37109         Test: platform/win/fast/text/uniscribe-missing-glyph.html
37111         Note that default installations of Windows do not have Myanmar fonts.
37112         What this patch does is ensure that the Myanmar and other complex
37113         scripts are rendered as missing glyphs rather than not rendered at all.
37114         The particular page in the bug measures the relative widths of two
37115         rendered strings and, if they are rendered as missing glyphs, detects
37116         that a Myanmar fonts is not available and substitutes the text with
37117         images. By not rendering (and measuring) missing glyphs, WebKit was
37118         throwing the page's detection code off.
37120         * platform/graphics/win/UniscribeController.cpp:
37121         (WebCore::UniscribeController::shape): Removed an early return in case
37122         shaping resulted in missing glyphs. This is now expected if font
37123         fallback failed to produce a font containing glyphs for the character.
37124         Also changed two resize()s to shrink()s.
37126 2008-03-04  Darin Adler  <darin@apple.com>
37128         Reviewed by Adam.
37130         - remove WebCoreFrameBridge reapplyStyles method
37132         * WebCore.base.exp: Added exports.
37133         * page/mac/WebCoreFrameBridge.h: Removed WebCoreDeviceType and
37134         reapplyStylesForDeviceType: method.
37135         * page/mac/WebCoreFrameBridge.mm: Ditto.
37137 2008-03-04  Darin Adler  <darin@apple.com>
37139         Reviewed by Adam.
37141         - eliminate WebCoreFrameBridge createFrameViewWithNSView
37143         * WebCore.base.exp: Added some more exports.
37144         * page/mac/WebCoreFrameBridge.h: Deleted createFrameViewWithNSView.
37145         * page/mac/WebCoreFrameBridge.mm: Ditto.
37147 2008-03-04  Darin Adler  <darin@apple.com>
37149         Reviewed by Adam.
37151         - removed WebCoreFrameBridge scrollOverflowInDirection
37153         * WebCore.base.exp: Export function needed by WebKit.
37154         * page/mac/WebCoreFrameBridge.h: Removed WebScrollDirection, WebScrollGranularity,
37155         and scrollOverflowInDirection.
37156         * page/mac/WebCoreFrameBridge.mm: Removed method.
37158 2008-03-04  Darin Adler  <darin@apple.com>
37160         Reviewed by Adam.
37162         - remove WebCoreFrameBridge installInFrame: method
37164         * WebCore.base.exp: Export a few symbols.
37165         * WebCore.xcodeproj/project.pbxproj: Export a few files.
37166         * page/mac/WebCoreFrameBridge.h: Remove installInFrame:.
37167         * page/mac/WebCoreFrameBridge.mm: Ditto.
37169 2008-03-04  Darin Adler  <darin@apple.com>
37171         Reviewed by Adam.
37173         - remove WebCoreFrameBridge window method
37175         * page/mac/EventHandlerMac.mm:
37176         (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking): Get the window by calling
37177         window on the NSView instead of using the bridge. The WebKit side wasn't doing anything
37178         special, so a call to -[NSView window] is fine.
37180         * page/mac/WebCoreFrameBridge.h: Removed the window method.
37182 2008-03-04  Darin Adler  <darin@apple.com>
37184         Reviewed by Adam.
37186         - remove -[WebCoreFrameBridge dashboardRegionsChanged:]
37188         * WebCore.base.exp: Updated.
37189         * page/Chrome.cpp:
37190         (WebCore::ChromeClient::dashboardRegionsChanged): Added.
37191         * page/ChromeClient.h: Added virtual function for dashboardRegionsChanged.
37192         * page/Frame.h: Removed dashboardRegionsChanged function.
37193         * page/FrameView.cpp:
37194         (WebCore::FrameView::updateDashboardRegions): Changed to call dashboardRegionsChanged
37195         on ChromeClient and to only call it when the regions actually changed.
37196         * page/mac/FrameMac.mm: Removed dashboardRegionsChanged function.
37197         * page/mac/WebCoreFrameBridge.h: Removed dashboardRegionsChanged: method.
37199 2008-03-04  Darin Adler  <darin@apple.com>
37201         Reviewed by Adam.
37203         - remove WebCoreFrameBridge issuePasteComand method
37205         * editing/Editor.cpp:
37206         (WebCore::Editor::paste): Moved the Mac-specific part of this to EditorMac.
37207         * editing/mac/EditorMac.mm:
37208         (WebCore::Editor::paste): Added. Calls paste: on the document view (normally a
37209         WebHTMLView). We should get rid of this eventually.
37210         * page/Frame.h: Removed issuePasteCommand.
37211         * page/mac/FrameMac.mm: Ditto.
37212         * page/mac/WebCoreFrameBridge.h: Ditto.
37214 2008-03-04  Alexey Proskuryakov  <ap@webkit.org>
37216         Suggested by Darin, rubber-stamped by Mark.
37218         http://bugs.webkit.org/show_bug.cgi?id=17569
37219         REGRESSION (r30571): Buzzword.com doesn't load
37221         Rolling out r30571, as determining what is wrong with it proved tricky.
37223         * loader/FrameLoader.cpp:
37224         (WebCore::FrameLoader::load):
37225         (WebCore::FrameLoader::tokenizerProcessedData):
37226         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
37228 2008-03-04  Sam Weinig  <sam@webkit.org>
37230         Build fix.
37232         * bindings/js/kjs_events.cpp:
37234 2008-03-03  Sam Weinig  <sam@webkit.org>
37236         Reviewed by Mark Rowe.
37238         Move JSClipboard into its own file.
37240         * DerivedSources.make:
37241         * GNUmakefile.am:
37242         * WebCore.pro:
37243         * WebCore.vcproj/WebCore.vcproj:
37244         * WebCore.xcodeproj/project.pbxproj:
37245         * WebCoreSources.bkl:
37246         * bindings/js/JSAttrCustom.cpp:
37247         * bindings/js/JSClipboardCustom.cpp: Added.
37248         (WebCore::JSClipboard::types):
37249         (WebCore::JSClipboard::clearData):
37250         (WebCore::JSClipboard::getData):
37251         (WebCore::JSClipboard::setData):
37252         (WebCore::JSClipboard::setDragImage):
37253         * bindings/js/JSElementCustom.cpp:
37254         * bindings/js/JSEventCustom.cpp:
37255         * bindings/js/JSHTMLFrameElementCustom.cpp:
37256         * bindings/js/JSHTMLIFrameElementCustom.cpp:
37257         * bindings/js/kjs_events.cpp:
37258         * bindings/js/kjs_events.h:
37259         * bindings/js/kjs_window.cpp:
37260         * bindings/scripts/CodeGeneratorJS.pm:
37261         * dom/Clipboard.cpp:
37262         (WebCore::Clipboard::setDropEffect):
37263         (WebCore::Clipboard::setEffectAllowed):
37264         * dom/Clipboard.idl: Added.
37266 2008-03-03  Sam Weinig  <sam@webkit.org>
37268         Windows build-fix.
37270         * page/Chrome.cpp:
37271         * plugins/win/PluginViewWin.cpp:
37273 2008-03-03  Sam Weinig  <sam@webkit.org>
37275         Reviewed by Darin Adler.
37277         Cleanup and plumbing in preparation for the great Window split.
37279         - Rename KJS::Window to WebCore::JSDOMWindowBase.
37280         - Remove KJS::Window::retrieve() and KJS::Window::retrieveWindow() and replace
37281           with the new toJSDOMWindow().
37282         - Remove KJS::Window::retrieveActive() and replace with explicit call to 
37283           exec->dynamicGlobalObject() and toJSDOMWindow().
37285         * bindings/js/JSCustomVoidCallback.cpp:
37286         (WebCore::toVoidCallback):.
37287         * bindings/js/JSCustomXPathNSResolver.cpp:
37288         (WebCore::JSCustomXPathNSResolver::create):
37289         * bindings/js/JSDatabaseCustom.cpp:
37290         (WebCore::JSDatabase::changeVersion):
37291         (WebCore::JSDatabase::transaction):
37292         * bindings/js/JSDocumentCustom.cpp:
37293         (WebCore::JSDocument::location):
37294         (WebCore::toJS):
37295         * bindings/js/JSEventTargetBase.cpp:
37296         (WebCore::jsEventTargetAddEventListener):
37297         (WebCore::jsEventTargetRemoveEventListener):
37298         * bindings/js/JSEventTargetNode.cpp:
37299         (WebCore::JSEventTargetNode::setListener):
37300         * bindings/js/JSHTMLDocumentCustom.cpp:
37301         (WebCore::JSHTMLDocument::nameGetter):
37302         (WebCore::JSHTMLDocument::open):
37303         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
37304         (WebCore::JSHTMLFrameSetElement::nameGetter):
37305         * bindings/js/JSLocation.cpp:
37306         (WebCore::JSLocation::put):
37307         (WebCore::jsLocationProtoFuncReplace):
37308         (WebCore::jsLocationProtoFuncReload):
37309         (WebCore::jsLocationProtoFuncAssign):
37310         * bindings/js/JSLocation.h:
37311         * bindings/js/JSSQLTransactionCustom.cpp:
37312         (WebCore::JSSQLTransaction::executeSql):
37313         * bindings/js/JSSVGLazyEventListener.cpp:
37314         (WebCore::JSSVGLazyEventListener::JSSVGLazyEventListener):
37315         (WebCore::JSSVGLazyEventListener::eventParameterName):
37316         * bindings/js/JSSVGLazyEventListener.h:
37317         * bindings/js/JSXMLHttpRequest.cpp:
37318         (WebCore::JSXMLHttpRequest::putValueProperty):
37319         (WebCore::jsXMLHttpRequestPrototypeFunctionOpen):
37320         (WebCore::jsXMLHttpRequestPrototypeFunctionAddEventListener):
37321         (WebCore::jsXMLHttpRequestPrototypeFunctionRemoveEventListener):
37322         * bindings/js/ScheduledAction.cpp:
37323         (WebCore::ScheduledAction::execute):
37324         * bindings/js/ScheduledAction.h:
37325         * bindings/js/kjs_binding.cpp:
37326         (WebCore::allowsAccessFromFrame):
37327         (WebCore::printErrorMessageForFrame):
37328         * bindings/js/kjs_events.cpp:
37329         (WebCore::JSAbstractEventListener::handleEvent):
37330         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
37331         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
37332         (WebCore::JSUnprotectedEventListener::windowObj):
37333         (WebCore::JSEventListener::JSEventListener):
37334         (WebCore::JSEventListener::~JSEventListener):
37335         (WebCore::JSEventListener::windowObj):
37336         (WebCore::JSLazyEventListener::JSLazyEventListener):
37337         (WebCore::JSLazyEventListener::parseCode):
37338         * bindings/js/kjs_events.h:
37339         * bindings/js/kjs_navigator.cpp:
37340         (WebCore::MimeType::getValueProperty):
37341         * bindings/js/kjs_proxy.cpp:
37342         (WebCore::KJSProxy::evaluate):
37343         (WebCore::KJSProxy::createHTMLEventHandler):
37344         (WebCore::KJSProxy::createSVGEventHandler):
37345         * bindings/js/kjs_window.cpp:
37346         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
37347         (WebCore::DOMWindowTimer::DOMWindowTimer):
37348         (WebCore::DOMWindowTimer::action):
37349         (WebCore::DOMWindowTimer::takeAction):
37350         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
37351         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
37352         (WebCore::JSDOMWindowBase::location):
37353         (WebCore::JSDOMWindowBase::mark):
37354         (WebCore::allowPopUp):
37355         (WebCore::createWindow):
37356         (WebCore::showModalDialog):
37357         (WebCore::JSDOMWindowBase::getValueProperty):
37358         (WebCore::JSDOMWindowBase::childFrameGetter):
37359         (WebCore::JSDOMWindowBase::indexGetter):
37360         (WebCore::JSDOMWindowBase::namedItemGetter):
37361         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
37362         (WebCore::JSDOMWindowBase::put):
37363         (WebCore::JSDOMWindowBase::allowsAccessFrom):
37364         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
37365         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
37366         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
37367         (WebCore::JSDOMWindowBase::printErrorMessage):
37368         (WebCore::JSDOMWindowBase::globalExec):
37369         (WebCore::JSDOMWindowBase::shouldInterruptScript):
37370         (WebCore::JSDOMWindowBase::setListener):
37371         (WebCore::JSDOMWindowBase::getListener):
37372         (WebCore::JSDOMWindowBase::findJSEventListener):
37373         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
37374         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
37375         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
37376         (WebCore::JSDOMWindowBase::clearHelperObjectProperties):
37377         (WebCore::JSDOMWindowBase::clear):
37378         (WebCore::JSDOMWindowBase::setCurrentEvent):
37379         (WebCore::JSDOMWindowBase::currentEvent):
37380         (WebCore::windowProtoFuncAToB):
37381         (WebCore::windowProtoFuncBToA):
37382         (WebCore::windowProtoFuncOpen):
37383         (WebCore::windowProtoFuncSetTimeout):
37384         (WebCore::windowProtoFuncClearTimeout):
37385         (WebCore::windowProtoFuncSetInterval):
37386         (WebCore::windowProtoFuncAddEventListener):
37387         (WebCore::windowProtoFuncRemoveEventListener):
37388         (WebCore::windowProtoFuncShowModalDialog):
37389         (WebCore::windowProtoFuncNotImplemented):
37390         (WebCore::JSDOMWindowBase::setReturnValueSlot):
37391         (WebCore::JSDOMWindowBase::clearAllTimeouts):
37392         (WebCore::JSDOMWindowBase::installTimeout):
37393         (WebCore::JSDOMWindowBase::pauseTimeouts):
37394         (WebCore::JSDOMWindowBase::resumeTimeouts):
37395         (WebCore::JSDOMWindowBase::clearTimeout):
37396         (WebCore::JSDOMWindowBase::timerFired):
37397         (WebCore::JSDOMWindowBase::disconnectFrame):
37398         (WebCore::JSDOMWindowBase::jsEventListeners):
37399         (WebCore::JSDOMWindowBase::jsHTMLEventListeners):
37400         (WebCore::JSDOMWindowBase::jsUnprotectedEventListeners):
37401         (WebCore::JSDOMWindowBase::jsUnprotectedHTMLEventListeners):
37402         (WebCore::toJS):
37403         (WebCore::toJSDOMWindow):
37404         (WebCore::toJSDOMWindow):
37405         * bindings/js/kjs_window.h:
37406         (WebCore::JSDOMWindowBase::impl):
37407         (WebCore::JSDOMWindowBase::classInfo):
37408         (WebCore::JSDOMWindowBase::):
37409         * bindings/objc/DOMUtility.mm:
37410         (KJS::createDOMWrapper):
37411         * bindings/scripts/CodeGeneratorJS.pm:
37412         * history/CachedPage.cpp:
37413         (WebCore::CachedPage::CachedPage):
37414         (WebCore::CachedPage::restore):
37415         * page/Chrome.cpp:
37416         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
37417         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
37418         * page/DOMWindow.idl:
37419         * page/Frame.cpp:
37420         (WebCore::Frame::~Frame):
37421         (WebCore::Frame::windowScriptNPObject):
37422         (WebCore::Frame::pageDestroyed):
37423         * page/InspectorController.cpp:
37424         (WebCore::inspectedWindow):
37425         * page/mac/FrameMac.mm:
37426         (WebCore::Frame::windowScriptObject):
37427         * page/mac/WebCoreFrameBridge.mm:
37428         (updateRenderingForBindings):
37429         * platform/SecurityOrigin.cpp:
37430         (WebCore::SecurityOrigin::canAccess):
37432 2008-03-03  Kevin Ollivier  <kevino@theolliviers.com>
37434         wx build fixes after recent Frame-related changes.
37436         * platform/wx/PasteboardWx.cpp:
37437         * platform/wx/TemporaryLinkStubs.cpp:
37439 2008-03-03  Dan Bernstein  <mitz@apple.com>
37441         Reviewed by Darin Adler.
37443         - make :first-letter apply to the first letter in normal flow, skipping
37444           floats and positioned objects
37446         Test: fast/css/first-letter-skip-out-of-flow.html
37448         * rendering/RenderBlock.cpp:
37449         (WebCore::RenderBlock::updateFirstLetter):
37451 2008-03-03  Ada Chan  <adachan@apple.com>
37453         Fix build.
37455         * plugins/win/PluginViewWin.cpp:
37457 2008-03-03  Mark Rowe  <mrowe@apple.com>
37459         Reviewed by Dan Bernstein.
37461         Fix http://bugs.webkit.org/show_bug.cgi?id=17313
37462         Bug 17313: querySelectorAll() causing crashes when called via dojo.query() wrapper
37464         Node::querySelector and SelectorNodeList were not sufficiently initializing the CSSStyleSelector
37465         before using it to resolve styles, which lead to it having a stale m_style member in some situations.
37466         This stale m_style member resulted in a wild store that would write over whatever object now resided
37467         at the location m_style pointed to.
37469         Test: fast/dom/SelectorAPI/bug-17313.html
37471         * dom/Node.cpp:
37472         (WebCore::Node::querySelector): Call initForStyleResolve to further initialize the CSSStyleSelector.
37473         * dom/SelectorNodeList.cpp:
37474         (WebCore::SelectorNodeList::SelectorNodeList): Ditto.
37476 2008-03-03  Anders Carlsson  <andersca@apple.com>
37478         Reviewed by Darin and Sam.
37480         Include fixes, in preparation of using the headers in WebCore/bridge.
37481         
37482         * bindings/js/kjs_binding.h:
37483         * bindings/js/kjs_dom.cpp:
37484         * bindings/objc/DOMInternal.mm:
37485         * bindings/objc/DOMUtility.mm:
37486         * bindings/objc/WebScriptObject.mm:
37487         * bindings/objc/WebScriptObjectPrivate.h:
37488         * bridge/objc/objc_class.h:
37489         * bridge/objc/objc_instance.h:
37490         * bridge/objc/objc_runtime.h:
37491         * bridge/objc/objc_utility.h:
37492         * bridge/runtime.h:
37493         * bridge/runtime_object.h:
37494         * bridge/runtime_root.h:
37495         * html/HTMLAppletElement.cpp:
37496         * html/HTMLAppletElement.h:
37497         * html/HTMLEmbedElement.cpp:
37498         * html/HTMLEmbedElement.h:
37499         * html/HTMLObjectElement.cpp:
37500         * html/HTMLPlugInElement.cpp:
37501         * html/HTMLPlugInElement.h:
37502         * page/mac/FrameMac.mm:
37503         * page/mac/WebCoreFrameBridge.h:
37504         * page/mac/WebCoreFrameBridge.mm:
37505         * page/mac/WebCoreScriptDebugger.mm:
37507 2008-03-03  David Hyatt  <hyatt@apple.com>
37509         Full page zoom plumbing.  Add a notion of whether or not a zoom is text only or a full zoom to the
37510         Frame.  setTextSizeMultiplier does a text only zoom.
37512         Reviewed by Tim H.
37514         * page/Frame.cpp:
37515         (WebCore::Frame::zoomFactor):
37516         (WebCore::Frame::isZoomFactorTextOnly):
37517         (WebCore::Frame::setZoomFactor):
37518         (WebCore::FramePrivate::FramePrivate):
37519         * page/Frame.h:
37520         * page/FramePrivate.h:
37521         * page/mac/WebCoreFrameBridge.mm:
37522         (-[WebCoreFrameBridge setTextSizeMultiplier:]):
37523         * svg/SVGSVGElement.cpp:
37524         (WebCore::SVGSVGElement::setCurrentScale):
37526 2008-03-03  David Hyatt  <hyatt@apple.com>
37528         Fix for <rdar://problem/5776161> REGRESSION: Google Docs Spreadsheet crash
37530         This is also http://bugs.webkit.org/show_bug.cgi?id=17543, fixed table layout corrupts heap.
37532         Make sure not to access position -1 of the size 0 vectors.
37534         Reviewed by ggaren
37536         * rendering/FixedTableLayout.cpp:
37537         (WebCore::FixedTableLayout::layout):
37539 2008-03-03  David D. Kilzer  <ddkilzer@webkit.org>
37541         Dynamically inserting CSS rule with @media query fails with DOM Exception 12
37542         <http://bugs.webkit.org/show_bug.cgi?id=15986>
37544         Reviewed by Darin.
37546         Allow any valid rule (@font-face, @import, @media, @page or style) to be
37547         parsed when using CSSStyleSheet.insertRule().  Previously only import and
37548         style rules were allowed.  Note that @page rules always throw an exception
37549         because they're not implemented yet, so no test case was added for them.
37551         Tests: fast/css/insertRule-font-face.html
37552                fast/css/insertRule-media.html
37554         * css/CSSGrammar.y: Extracted 'valid_rule' out of 'rule'.  Renamed
37555         'ruleset_or_import' to 'valid_rule_or_import' and changed its definition.
37557 2008-03-03  Anders Carlsson  <andersca@apple.com>
37559         Reviewed by Sam.
37561         Copy JSC bindings directory over to WebCore/bridge.
37563         * bridge: Copied from ../JavaScriptCore/bindings.
37565 2008-03-03  Dan Bernstein  <mitz@apple.com>
37567         Reviewed by Darin Adler.
37569         - remove CSSMutableStyleDeclaration::setChanged()'s change type
37570           parameter
37572         * css/CSSMutableStyleDeclaration.cpp:
37573         (WebCore::CSSMutableStyleDeclaration::setChanged): Removed the change
37574         type parameter and made this function determine the correct change type
37575         based on whether this is an inline style declaration.
37576         (WebCore::CSSMutableStyleDeclaration::setProperty):
37577         * css/CSSMutableStyleDeclaration.h:
37578         (WebCore::CSSMutableStyleDeclaration::clear): Removed this unused
37579         method.
37580         (WebCore::CSSMutableStyleDeclaration::setChanged): Made private.
37582 2008-03-03  Darin Adler  <darin@apple.com>
37584         Reviewed by Adam.
37586         - some "cleanup" on the path to removing WebCoreFrameBridge
37588         * WebCore.base.exp: Exported some stuff we either already use or
37589         I am about to use in an upcoming patch.
37591         * WebCore.xcodeproj/project.pbxproj: Made FileChooser.h private rather
37592         than project, for future use in WebKit.
37594         * bindings/objc/WebScriptObject.mm: Removed some dead code.
37596         * dom/ContainerNode.cpp: Added a now-needed or soon-to-be-needed include.
37597         * editing/Editor.cpp: Ditto.
37599         * editing/Editor.h: Removed many unneeded declarations and includes.
37600         Removed the unused userVisibleString function.
37602         * editing/EditorCommand.cpp:
37603         (WebCore::executeYank): Added parameter for triggeringEvent, which no
37604         longer has a default value.
37605         (WebCore::executeYankAndSelect): Ditto.
37607         * editing/mac/EditorMac.mm: Removed userVisibleString.
37609         * page/mac/EventHandlerMac.mm:
37610         (WebCore::isKeyboardOptionTab): Tweaked formattin.
37612         * page/mac/WebCoreFrameBridge.mm:
37613         (-[WebCoreFrameBridge dragSourceMovedTo:]): Get window from -[NSView window]
37614         rather than from the bridge. There's no special value in the bridge's window
37615         method and we can use NSView directly.
37616         (-[WebCoreFrameBridge dragSourceEndedAt:operation:]): Ditto.
37618         * platform/graphics/mac/ImageMac.mm:
37619         (WebCore::Image::loadPlatformResource): Use a new WebCoreBundleFinder class to
37620         find the bundle rather than using WebCoreFrameBridge.
37622         * platform/mac/ClipboardMac.mm: Added a now-needed or soon-to-be-needed include.
37623         * platform/mac/PasteboardMac.mm: Ditto.
37625         * rendering/RenderObject.h:
37626         (WebCore::DashboardRegionValue::operator==): Fixed mistake where this wasn't
37627         comparing the clip rectangle.
37628         (WebCore::DashboardRegionValue::operator!=): Added. Needed by my future work.
37630 2008-03-03  Oliver Hunt  <oliver@apple.com>
37632         Reviewed by Mark Rowe.
37634         Bug 17620: getImageData lies
37635         http://bugs.webkit.org/show_bug.cgi?id=17620
37637         Correct logic to actually iterate over the source row
37639         * platform/graphics/cg/ImageBufferCG.cpp:
37640         (WebCore::ImageBuffer::getImageData):
37642 2008-03-03  Oliver Hunt  <oliver@apple.com>
37644         Reviewed by Mark Rowe.
37646         Correct incorrect assertion
37648         * platform/graphics/cg/ImageBufferCG.cpp:
37649         (WebCore::ImageBuffer::putImageData):
37651 2008-03-02  Alp Toker  <alp@atoker.com>
37653         Another fix for non-database builds after changes in r30331.
37655         Conditionalize a stopDatabases() call.
37657         * loader/FrameLoader.cpp:
37658         (WebCore::FrameLoader::stopLoading):
37660 2008-03-02  Kevin Ollivier  <kevino@theolliviers.com>
37662         Reviewed by Alp Toker.
37664         Scrolling fixes. Implement page scrolling, initialize mouse wheel
37665         event variables, and remove duplicate event binding for TOP
37666         scrolling event.
37668         http://bugs.webkit.org/show_bug.cgi?id=17643
37670         * platform/wx/MouseWheelEventWx.cpp:
37671         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
37672         * platform/wx/ScrollViewWx.cpp:
37673         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
37674         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
37676 2008-03-02  Alp Toker  <alp@atoker.com>
37678         Fix building without database support after changes in r30331.
37680         * dom/Document.cpp:
37682 2008-03-02  Kevin Ollivier  <kevino@theolliviers.com>
37684         wx build fix for Windows after PageWin.cpp move.
37686         * webcore-wx.bkl:
37688 2008-03-02  Kevin Ollivier  <kevino@theolliviers.com>
37690         Reviewed by Dave Hyatt.
37692         Gracefully handle a CSS rule containing an invalid value.
37693         (Fixes http://bugs.webkit.org/show_bug.cgi?id=16898)
37695         * css/CSSGrammar.y:
37697 2008-03-02  Alp Toker  <alp@atoker.com>
37699         Reviewed by Mark Rowe.
37701         Improve the Cairo Path::isEmpty() function
37703         Use cairo_has_current_point() where available.
37705         * platform/graphics/cairo/PathCairo.cpp:
37706         (WebCore::Path::isEmpty):
37708 2008-03-01  Mark Rowe  <mrowe@apple.com>
37710         Reviewed by Tim Hatcher.
37712         Update Xcode configuration to support building debug and release from the mysterious future.
37714         * Configurations/DebugRelease.xcconfig:
37716 2008-03-01  Oliver Hunt  <oliver@apple.com>
37718         Reviewed by Sam Weinig.
37720         Bug 16954: Support putImageData
37721         
37722         Implement support for HTML5's putImageData for the CG port.  All other ports
37723         are currently just using stubs for the final blit.
37725         Test: fast/canvas/canvas-putImageData.html
37727         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
37728         (WebCore::JSCanvasRenderingContext2D::putImageData):
37729         * html/CanvasRenderingContext2D.cpp:
37730         (WebCore::CanvasRenderingContext2D::putImageData):
37731         * html/CanvasRenderingContext2D.h:
37732         * platform/graphics/ImageBuffer.h:
37733         * platform/graphics/cairo/ImageBufferCairo.cpp:
37734         * platform/graphics/cg/ImageBufferCG.cpp:
37735         (WebCore::ImageBuffer::putImageData):
37736         * platform/graphics/qt/ImageBufferQt.cpp:
37737         * platform/graphics/wx/ImageBufferWx.cpp:
37739 2008-03-01  Jon Honeycutt  <jhoneycutt@apple.com>
37741         Reviewed by Darin.
37743         <rdar://problem/5772987> Crashing viewing page with two VLC plug-in
37744         instances
37746         The VLC Netscape plug-in crashes if more than one instance is created.
37748         Added a quirk that disallows a plug-in from having more than one
37749         instance and set this for the VLC plug-in.
37751         In addition, we now sort plug-ins that handle the same MIME
37752         type to choose the most appropriate one. This sorting first sorts by
37753         whether a plug-in has an issue that should put it at the end of the
37754         list, then whether it appears in a "preferred" plug-in directory.
37756         * plugins/PluginQuirkSet.h: Added PluginQuirkDontAllowMultipleInstances.
37757         * plugins/PluginDatabase.cpp:
37758         (WebCore::PluginDatabase::preferredPluginCompare): Comparator for
37759         sorting plug-ins; calls PluginPackage::compare().
37760         (WebCore::PluginDatabase::pluginForMIMEType): Add all of the plug-ins
37761         that handle this MIME type to a list, sort the list, and return the
37762         first item.
37763         (WebCore::PluginDatabase::MIMETypeForExtension): Add all of the plug-ins
37764         that handle this extension to a list, sort the list, and return the MIME
37765         type used by the plug-in at the beginning of the list.
37766         * plugins/PluginDatabase.h:
37767         * plugins/PluginPackage.h:
37768         (WebCore::PluginPackage::version): Added; returns the module version.
37769         * plugins/win/PluginDatabaseWin.cpp:
37770         (WebCore::PluginDatabase::isPreferredPluginPath): Made static; removed
37771         const.
37772         * plugins/win/PluginPackageWin.cpp:
37773         (WebCore::PluginPackage::compare): Sorts plug-ins with known issues to
37774         the end, then plug-ins in preferred directories to the beginning, then
37775         alphabetically by file name, numerically by version, and alphabetically
37776         by parent directory.
37777         (WebCore::PluginPackage::determineQuirks): Set the "don't allow multiple
37778         instances" quirk for VLC.
37779         (WebCore::PluginPackage::load): Return false if the plug-in library has
37780         already been loaded and the "don't allow multiple instances" quirk is
37781         set.
37782         * platform/gtk/TemporaryLinkStubs.cpp:
37783         (PluginPackage::compare): Added stub.
37784         (PluginDatabase::IsPreferredPluginPath): Update the GTK stub.
37785         * platform/qt/TemporaryLinkStubs.cpp:
37786         (PluginPackage::compare): Added stub.
37787         (PluginDatabase::IsPreferredPluginPath): Update the Qt stub.
37788         * platform/wx/TemporaryLinkStubs.cpp:
37789         (PluginPackage::compare): Added stub.
37790         (PluginDatabase::IsPreferredPluginPath): Update the wx stub.
37792 2008-03-01  Sam Weinig  <sam@webkit.org>
37794         Rubber-stamped by Mark Rowe.
37796         Remove reference to the now non-existent bridge directory.
37798         * WebCore.xcodeproj/project.pbxproj:
37800 2008-03-01  Sam Weinig  <sam@webkit.org>
37802         Reviewed by Darin Adler.
37804         Search the entire prototype chain when doing early prototype lookup in
37805         the Window's getOwnPropertySlot method.
37807         Makes fast/dom/Window/window-function-name-getter-precedence.html pass all tests.
37809         * bindings/js/kjs_window.cpp:
37810         (KJS::Window::getOwnPropertySlot):
37812 2008-03-01  Nikolas Zimmermann  <zimmermann@kde.org>
37814         Reviewed by Oliver.
37816         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17568 (SVGForeignObjectElement can't react to width/height SVG DOM changes)
37818         As the bug title says, fix all dynamic update problems that occour with SVGForeignObjectElement.
37820         Tests: svg/dynamic-updates/SVGForeignObjectElement-dom-height-attr.html
37821                svg/dynamic-updates/SVGForeignObjectElement-dom-width-attr.html
37822                svg/dynamic-updates/SVGForeignObjectElement-dom-x-attr.html
37823                svg/dynamic-updates/SVGForeignObjectElement-dom-y-attr.html
37824                svg/dynamic-updates/SVGForeignObjectElement-svgdom-height-prop.html
37825                svg/dynamic-updates/SVGForeignObjectElement-svgdom-width-prop.html
37826                svg/dynamic-updates/SVGForeignObjectElement-svgdom-x-prop.html
37827                svg/dynamic-updates/SVGForeignObjectElement-svgdom-y-prop.html
37829         * svg/SVGForeignObjectElement.cpp:
37830         (WebCore::SVGForeignObjectElement::parseMappedAttribute):
37831         (WebCore::addCSSPropertyAndNotifyAttributeMap):
37832         (WebCore::SVGForeignObjectElement::svgAttributeChanged):
37833         * svg/SVGForeignObjectElement.h:
37835 2008-02-29  Brady Eidson  <beidson@apple.com>
37837         Reviewed by build-fix karma
37839         Bonehead mistake.  Revert function to previous version for all non-Windows+CFNetwork platforms
37841         * platform/network/ProtectionSpace.cpp:
37842         (WebCore::ProtectionSpace::receivesCredentialSecurely): Make my previous change conditionally
37844 2008-02-29  Brady Eidson  <beidson@apple.com>
37846         Reviewed by Darin
37847         
37848         <rdar://problem/5771227> - Incorrect password handling text in credential sheet
37850         * platform/network/ProtectionSpace.cpp:
37851         (WebCore::ProtectionSpace::receivesCredentialSecurely): Call functional CFNetwork method to
37852           get "secureness" of the auth challenge instead of figuring it out ourselves
37854 2008-02-29  Brent Fulgham  <bfulgham@gmail.com>
37856         http://bugs.webkit.org/show_bug.cgi?id=17483
37857         Implement scrollbars on Windows (Cairo)
37859         Reviewed by Adam Roben.
37861         * platform/win/PlatfromScrollBarWin.cpp: Duplicate implementation
37862           from PlatformScrollBarWinSafari.cpp, then modify to use the
37863           native Windows theme engine.  Use SOFT_LINK.  Use platform
37864           'GetSystemMetrics' call to decide size of scrollbars and buttons.
37866 2008-02-29  Adam Roben  <aroben@apple.com>
37868         Windows build fix
37870         * WebCore.vcproj/WebCore.vcproj: Remove bridge/* from the include path
37871         and the post-build event, and add page/win to each. Also let VS have
37872         its way with the order of the files.
37873         * page/win/PageWin.cpp: Copied from bridge/win/PageWin.cpp in r30673
37874         * page/win/GlobalHistoryWin.cpp: Copied from
37875         bridge/win/GlobalHistoryWin.cpp in r30673
37877 2008-02-29  Anders Carlsson  <andersca@apple.com>
37879         Build fix.
37881         * WebCore.xcodeproj/project.pbxproj:
37883 2008-02-29  Mark Rowe  <mrowe@apple.com>
37885         Reviewed by Tim Hatcher.
37887         64-bit build fix.
37889         * platform/graphics/mac/SimpleFontDataMac.mm:
37890         (WebCore::pathFromFont): Provide stub implementation of pathFromFont for 64-bit as
37891         FMGetATSFontRefFromFont is not available.
37893 2008-02-29  Mark Rowe  <mrowe@apple.com>
37895         Build fix.  Only declare pathFromFont in debug builds as it is unused in release builds.
37897         * platform/graphics/mac/SimpleFontDataMac.mm:
37899 2008-02-29  Anders Carlsson  <andersca@apple.com>
37901         Reviewed by Adam.
37902         
37903         Copy the remaining files in bridge/ over to page/
37905         * WebCore.vcproj/WebCore.vcproj:
37906         * WebCore.xcodeproj/project.pbxproj:
37907         * bridge: Removed.
37908         * bridge/AXObjectCache.h: Removed.
37909         * bridge/EditorClient.h: Removed.
37910         * bridge/GlobalHistory.h: Removed.
37911         * bridge/win: Removed.
37912         * bridge/win/FrameCGWin.cpp: Removed.
37913         * bridge/win/FrameCairoWin.cpp: Removed.
37914         * bridge/win/FrameWin.cpp: Removed.
37915         * bridge/win/FrameWin.h: Removed.
37916         * bridge/win/GlobalHistoryWin.cpp: Removed.
37917         * bridge/win/PageWin.cpp: Removed.
37918         * page/AXObjectCache.h: Copied from bridge/AXObjectCache.h.
37919         * page/EditorClient.h: Copied from bridge/EditorClient.h.
37920         * page/GlobalHistory.h: Copied from bridge/GlobalHistory.h.
37921         * page/win/FrameCGWin.cpp: Copied from bridge/win/FrameCGWin.cpp.
37922         * page/win/FrameCairoWin.cpp: Copied from bridge/win/FrameCairoWin.cpp.
37923         * page/win/FrameWin.cpp: Copied from bridge/win/FrameWin.cpp.
37924         * page/win/FrameWin.h: Copied from bridge/win/FrameWin.h.
37926 2008-02-29  Robert Blaut  <webkit@blaut.biz>
37928         Reviewed by Darin Adler.
37930         - fix http://bugs.webkit.org/show_bug.cgi?id=17532
37931           Webkit imports styles from <link> element which doesn't have rel=stylesheet defined
37933         Test: fast/html/link-rel-stylesheet.html
37935         * html/HTMLLinkElement.cpp:
37936         (WebCore::HTMLLinkElement::process):
37938 2008-02-29  Mark Rowe  <mrowe@apple.com>
37940         Reviewed by Anders Carlsson.
37942         Replace use of WKPathFromFont with implementation in terms of public API.
37944         * WebCore.base.exp: Remove unused symbol.
37945         * platform/graphics/mac/SimpleFontDataMac.mm:
37946         (WebCore::initFontData):
37947         (WebCore::pathFromFont): Implement pathFromFont in terms of public API.
37948         (WebCore::SimpleFontData::platformInit):
37949         * platform/mac/WebCoreSystemInterface.h: Remove unused symbol.
37950         * platform/mac/WebCoreSystemInterface.mm: Ditto.
37952 2008-02-29  Anders Carlsson  <andersca@apple.com>
37954         Reviewed by Adam.
37956         Move a bunch of files from bridge/mac to page/mac.
37957         
37958         * WebCore.xcodeproj/project.pbxproj:
37959         * bridge/mac: Removed.
37960         * bridge/mac/AXObjectCacheMac.mm: Removed.
37961         * bridge/mac/GlobalHistoryMac.mm: Removed.
37962         * bridge/mac/WebCoreAXObject.h: Removed.
37963         * bridge/mac/WebCoreAXObject.mm: Removed.
37964         * bridge/mac/WebCoreScriptDebugger.h: Removed.
37965         * bridge/mac/WebCoreScriptDebugger.mm: Removed.
37966         * page/mac/AXObjectCacheMac.mm: Copied from bridge/mac/AXObjectCacheMac.mm.
37967         * page/mac/GlobalHistoryMac.mm: Copied from bridge/mac/GlobalHistoryMac.mm.
37968         * page/mac/WebCoreAXObject.h: Copied from bridge/mac/WebCoreAXObject.h.
37969         * page/mac/WebCoreAXObject.mm: Copied from bridge/mac/WebCoreAXObject.mm.
37970         * page/mac/WebCoreScriptDebugger.h: Copied from bridge/mac/WebCoreScriptDebugger.h.
37971         * page/mac/WebCoreScriptDebugger.mm: Copied from bridge/mac/WebCoreScriptDebugger.mm.
37973 2008-02-29  David Hyatt  <hyatt@apple.com>
37975         Fix for http://bugs.webkit.org/show_bug.cgi?id=17559, media query tests crashing under
37976         guard malloc.  Pass along the style selector so it can be accessed, since it has not yet
37977         been assigned into the document's member variable.
37979         Reviewed by aroben
37981         * css/CSSStyleSelector.cpp:
37982         (WebCore::CSSRuleSet::addRulesFromSheet):
37983         * css/MediaQueryEvaluator.cpp:
37984         (WebCore::MediaQueryEvaluator::eval):
37985         * css/MediaQueryEvaluator.h:
37987 2008-02-29  David Hyatt  <hyatt@apple.com>
37989         <rdar://problem/5755916> REGRESSION: Loading HTML5 spec is 5x slower on TOT than in 3.0.4
37991         Improve the performance of dynamic sibling and CSS3 selectors so that there is no slowdown any more.
37992         Be more precise in terms of what nodes we mark dirty.
37994         Reviewed by Beth
37996         * css/CSSStyleSelector.cpp:
37997         (WebCore::CSSStyleSelector::checkSelector):
37998         * dom/Element.cpp:
37999         (WebCore::Element::recalcStyle):
38000         (WebCore::checkForSiblingStyleChanges):
38001         (WebCore::Element::childrenChanged):
38002         (WebCore::Element::finishParsingChildren):
38003         * rendering/RenderStyle.cpp:
38004         (WebCore::RenderStyle::RenderStyle):
38005         * rendering/RenderStyle.h:
38006         (WebCore::RenderStyle::childrenAffectedByPositionalRules):
38007         (WebCore::RenderStyle::childrenAffectedByDirectAdjacentRules):
38008         (WebCore::RenderStyle::setChildrenAffectedByDirectAdjacentRules):
38010 2008-02-29  Alexey Proskuryakov  <ap@webkit.org>
38012         Reviewed by Darin.
38014         <rdar://problem/5766352> REGRESSION (r27151): XMLHttpRequest.abort() resets response status
38016         Test: http/tests/xmlhttprequest/status-after-abort.html
38018         * xml/XMLHttpRequest.cpp:
38019         (WebCore::XMLHttpRequest::getStatus):
38020         (WebCore::XMLHttpRequest::getStatusText):
38021         Changed to match Firefox more closely (IE just raises an exception in most of those cases).
38023 2008-02-29  Dan Bernstein  <mitz@apple.com>
38025         Reviewed by Darin Adler.
38027         - fix a bug where explicit embedding past the end of a line could
38028           affect text that line
38030         Test: fast/text/embed-at-end-of-pre-wrap-line.html
38032         * rendering/bidi.cpp:
38033         (WebCore::RenderBlock::skipWhitespace): Removed calls to
38034         setAdjustEmbedding().
38035         (WebCore::RenderBlock::findNextLineBreak): Added calls to
38036         setAdjustEmbedding() around skipWhitespace() only where needed.
38038 2008-02-29  Mark Rowe  <mrowe@apple.com>
38040         Reviewed by Oliver Hunt.
38042         Don't use WKSupportsMultipartXMixedReplace on Leopard as multipart/x-mixed-replace is always handled by NSURLRequest.
38044         * platform/mac/WebCoreSystemInterface.h: Don't declare WKSupportsMultipartXMixedReplace on Leopard.
38045         * platform/mac/WebCoreSystemInterface.mm: Ditto.
38046         * platform/network/mac/ResourceRequestMac.mm:
38047         (WebCore::ResourceRequest::doUpdatePlatformRequest): Don't call WKSupportsMultipartXMixedReplace on Leopard.
38048         * WebCore.Tiger.exp: Move Tiger-only symbol here.
38049         * WebCore.base.exp:
38051 2008-02-29  Mark Rowe  <mrowe@apple.com>
38053         Rubber-stamped by Eric Seidel.
38055         Remove unneeded includes of WebCoreSystemInterface.h.
38057         * loader/mac/LoaderNSURLExtras.m:
38058         * page/mac/FrameMac.mm:
38059         * page/mac/WebCoreFrameBridge.mm:
38060         * platform/MIMETypeRegistry.cpp:
38061         * platform/graphics/mac/ImageMac.mm:
38062         * platform/mac/PasteboardMac.mm:
38064 2008-02-29  Mark Rowe  <mrowe@apple.com>
38066         Reviewed by Oliver Hunt and Oliver Hunt.
38068         <rdar://problem/4753845> WebKit should use CGEventSourceSecondsSinceLastEventType in place of WKSecondsSinceLastInputEvent SPI.
38070         * platform/mac/SystemTimeMac.cpp:  Replace use of WKSecondsSinceLastInputEvent with CGEventSourceSecondsSinceLastEventType.
38071         * platform/mac/WebCoreSystemInterface.h:  Remove unused symbol.
38072         * platform/mac/WebCoreSystemInterface.mm:  Ditto.
38073         * WebCore.base.exp:  Ditto.
38075 2008-02-28  Mark Rowe  <mrowe@apple.com>
38077         Reviewed by Dave Hyatt.
38079         Make use of new CGFont APIs on Leopard rather than making a WebKitSystemInterface call.
38081         * DerivedSources.make:  Add Tiger-only symbols to the export file when running on Tiger.
38082         * WebCore.Tiger.exp:  Added.  Move Tiger-only symbol here from WebCore.base.exp.
38083         * WebCore.base.exp:
38084         * platform/graphics/mac/SimpleFontDataMac.mm:
38085         (WebCore::SimpleFontData::platformInit):  Use Leopard APIs when building on Leopard.
38086         * platform/mac/WebCoreSystemInterface.h:  Don't declare wkGetFontMetrics on Leopard as it is unused.
38087         * platform/mac/WebCoreSystemInterface.mm:  Ditto.
38089 2008-02-28  Matt Lilek  <webkit@mattlilek.com>
38091         Reviewed by Tim Hatcher.
38093         Bug 16535: Stylesheets loaded with @import are not editable
38094         http://bugs.webkit.org/show_bug.cgi?id=16535
38095         <rdar://problem/5712899>
38097         Sheets loaded using @import were incorrectly being flagged as non-editable
38098         user agent sheets because their parent sheet doesn't have an ownerNode. We now
38099         check to make sure sheets also don't have a href before restricting their editability.
38101         * page/inspector/StylesSidebarPane.js:
38103 2008-02-28  Rodney Dawes  <dobey@wayofthemonkey.com>
38105         Reviewed by Adam Roben.
38107         Copy PluginPackageWin.cpp to shared PluginPackage.cpp.
38108         Add PluginPackage.cpp to build configurations.
38109         Remove PluginPackage destructor from TemporaryLinkStubs.cpp.
38110         Use cross-platform pathGetFilename method.
38111         Remove platform-specific code from shared PluginPackage implementation.
38112         Remove shared code from PluginPackageWin.cpp.
38114         * GNUmakefile.am:
38115         * WebCore.pro:
38116         * WebCoreSources.bkl:
38117         * WebCore.vcproj/WebCore.vcproj:
38118         * platform/gtk/TemporaryLinkStubs.cpp:
38119         * platform/qt/TemporaryLinkStubs.cpp:
38120         * platform/wx/TemporaryLinkStubs.cpp:
38121         * plugins/PluginPackage.cpp:
38122         * plugins/win/PluginPackageWin.cpp:
38124 2008-02-28  Justin Garcia  <justin.garcia@apple.com>
38126         Reviewed by Darin Adler.
38128         <rdar://problem/4930986> REGRESSION: Paste As Quotation pastes black text instead of blue
38129         
38130         Add a second style span at copy time to hold document default styles.  This helps us
38131         differentiate between those and user applied styles at paste time, where we'll want
38132         to let Mail's Paste As Quotation blockquote override document default styles, but
38133         not others.
38135         * css/CSSComputedStyleDeclaration.cpp:
38136         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed the unit type used 
38137         for -webkit-text-stroke-width from CSS_NUMBER to CSS_PX, to match other properties that 
38138         are thick | medium | thin | <length>.  Before, there was a mismatch between the unit 
38139         type of -webkit-text-stroke-width property values in a CSSComputedStyleDeclaration for 
38140         an element and that element's inlineStyleDecl(), causing identical values to always appear 
38141         different to diff().
38142         * editing/ReplaceSelectionCommand.cpp:
38143         (WebCore::ReplaceSelectionCommand::handlePasteAsQuotationNode): Fixed.  Don't just change
38144         the class to an empty string, completely remove it, it's no longer needed.
38145         (WebCore::handleStyleSpansBeforeInsertion): Moved the optimization from doApply here.
38146         (WebCore::ReplaceSelectionCommand::handleStyleSpans): 
38147         Added, replaces removeRedundantStyles.
38148         We aren't (yet) removing all redundant styles, just those on style spans, so I removed the
38149         unused code and renamed the function.
38150         There won't be more than two style spans that we need to consider, the one with the 
38151         source document's default styles and styles on the commonAncestor of the copied Range, 
38152         so don't look for more than two.
38153         Let elements that wrap the incoming fragment override the source document's styles.
38154         (WebCore::ReplaceSelectionCommand::doApply): Moved code to handleStyleSpansBeforeInsertion
38155         and call the renamed handleStyleSpans.
38156         * editing/ReplaceSelectionCommand.h:
38157         * editing/markup.cpp:
38158         (WebCore::removeDefaultStyles): Added.  Don't add document defaults to the style span
38159         that holds user applied styles, since they'll be added to their own style span.
38160         (WebCore::createMarkup):
38161         Add a second style span that holds just the document defaults. This lets us differentiate
38162         between those and user applied styles at paste time.
38163         Mail blockquotes are just another type of special element, moved their handling there. This
38164         also lets paste code make assumptions about the position of the two style spans (they are 
38165         *always* parent-child).
38167 2008-02-28  Brent Fulgham <bfulgham@gmail.com>
38169         http://bugs.webkit.org/show_bug.cgi?id=17576
38170         Modify RenderThemeWin to use SOFT_LINK
38172         Reviewed by Adam Roben.
38174         * rendering/RenderThemeWin.h: Remove unneeded library handle
38175         * rendering/RenderThemeWin.cpp: Change to use SOFT_LINK
38176           rather than hand-coded load library calls.
38178 2008-02-28  Dan Bernstein  <mitz@apple.com>
38180         Reviewed by Darin Adler.
38182         - fix http://bugs.webkit.org/show_bug.cgi?id=17590
38183           ASSERTION FAILED: subject in jsRegExpExecute()
38185         * page/mac/FrameMac.mm:
38186         (WebCore::Frame::matchLabelsAgainstElement): Added an early return in
38187         case the element name is empty.
38189 2008-02-28  Justin Garcia  <justin.garcia@apple.com>
38191         Reviewed by Dan Bernstein
38192         
38193         Small editing speed up.
38194         
38195         * dom/Position.cpp:
38196         (WebCore::Position::upstream): Don't check for a change in editability
38197         if the current node hasn't changed.
38198         (WebCore::Position::downstream): Ditto.
38200 2008-02-27  Dan Bernstein  <mitz@apple.com>
38202         Reviewed by John Sullivan.
38204         - fix <rdar://problem/5607547> Single letter surrounded by soft hyphens can disappear
38206         Test: fast/text/soft-hyphen-2.html
38208         * rendering/bidi.cpp:
38209         (WebCore::chopMidpointsAt): Changed to iterate midpoints backwards, so
38210         that if there are two midpoints at the given position, only the last one
38211         will be chopped off.
38213 2008-02-27  Dan Bernstein  <mitz@apple.com>
38215         Reviewed by Darin Adler.
38217         - make centered text in right-to-left blocks spill over to the left
38219         Test: fast/text/align-center-rtl-spill.html
38221         * rendering/bidi.cpp:
38222         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
38224 2008-02-27  Dan Bernstein  <mitz@apple.com>
38226         Reviewed by Darin Adler.
38228         - more bidi.cpp cleanup
38230         * platform/text/BidiResolver.h:
38231         (WebCore::BidiCharacterRun::destroy): Added. Overridden by BidiRun .
38232         (WebCore::BidiResolver<Iterator, Run>::addRun): Moved BidiState::addRun()
38233         here.
38234         (WebCore::BidiResolver<Iterator, Run>::appendRun): Changed to use
38235         addRun().
38236         (WebCore::BidiResolver<Iterator, Run>::deleteRuns): Changed to use
38237         destroy(), avoiding the need to specialize this method in BidiState.
38238         * rendering/bidi.cpp:
38239         (WebCore::BidiRun::destroy): Removed the RenderArena parameter.
38240         (WebCore::BidiState::deleteRuns): Removed now-unnecessary specialization.
38241         (WebCore::BidiState::addRun): Removed now-unnecessary specialization.
38242         (WebCore::RenderBlock::createLineBoxes): 
38243         (WebCore::RenderBlock::constructLine):
38244         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Added a FIXME.
38245         (WebCore::RenderBlock::computeVerticalPositionsForLine):
38246         (WebCore::buildCompactRuns):
38247         (WebCore::RenderBlock::layoutInlineChildren):
38248         (WebCore::RenderBlock::determineStartPosition):
38249         (WebCore::RenderBlock::determineEndPosition):
38250         (WebCore::RenderBlock::matchedEndLine):
38251         (WebCore::skipNonBreakingSpace):
38252         (WebCore::RenderBlock::skipWhitespace):
38253         (WebCore::shouldSkipWhitespaceAfterStartObject):
38254         * rendering/bidi.h:
38255         (WebCore::BidiRun): Added m_ prefixes to several member variables. 
38257 2008-02-27  Sam Weinig  <sam@webkit.org>
38259         Reviewed by Darin.
38261         Fix for <rdar://problem/5768769>
38263         - Don't allow cross-origin calls using window.functionName.call(otherFrame)
38264           syntax.
38266         * bindings/js/JSLocation.cpp:
38267         (WebCore::jsLocationProtoFuncToString): Do same-origin check.
38268         * bindings/js/kjs_window.cpp:
38269         (KJS::windowProtoFuncAToB): Ditto.
38270         (KJS::windowProtoFuncBToA): Ditto.
38271         (KJS::windowProtoFuncOpen): Ditto.
38272         (KJS::windowProtoFuncClearTimeout): Ditto.
38273         * bindings/scripts/CodeGeneratorJS.pm: Ditto.
38275 2008-02-27  David Hyatt  <hyatt@apple.com>
38277         More cleanup in preparation for fixing the HTML5 spec performance regression.
38279         Reviewed by Sam Weinig
38281         * dom/Attr.cpp:
38282         (WebCore::Attr::childrenChanged):
38283         * dom/Attr.h:
38284         * dom/ContainerNode.cpp:
38285         (WebCore::ContainerNode::insertBefore):
38286         (WebCore::ContainerNode::replaceChild):
38287         (WebCore::ContainerNode::removeChild):
38288         (WebCore::ContainerNode::removeChildren):
38289         (WebCore::ContainerNode::appendChild):
38290         (WebCore::ContainerNode::addChild):
38291         (WebCore::ContainerNode::childrenChanged):
38292         * dom/ContainerNode.h:
38293         * dom/Document.cpp:
38294         (WebCore::Document::childrenChanged):
38295         * dom/Document.h:
38296         * dom/Element.cpp:
38297         (WebCore::Element::childrenChanged):
38298         * dom/Element.h:
38299         * dom/Node.h:
38300         (WebCore::Node::childrenChanged):
38301         * html/HTMLObjectElement.cpp:
38302         (WebCore::HTMLObjectElement::childrenChanged):
38303         * html/HTMLObjectElement.h:
38304         * html/HTMLOptGroupElement.cpp:
38305         (WebCore::HTMLOptGroupElement::childrenChanged):
38306         * html/HTMLOptGroupElement.h:
38307         * html/HTMLOptionElement.cpp:
38308         (WebCore::HTMLOptionElement::childrenChanged):
38309         * html/HTMLOptionElement.h:
38310         * html/HTMLScriptElement.cpp:
38311         (WebCore::HTMLScriptElement::childrenChanged):
38312         * html/HTMLScriptElement.h:
38313         * html/HTMLSelectElement.cpp:
38314         (WebCore::HTMLSelectElement::childrenChanged):
38315         * html/HTMLSelectElement.h:
38316         * html/HTMLStyleElement.cpp:
38317         (WebCore::HTMLStyleElement::childrenChanged):
38318         * html/HTMLStyleElement.h:
38319         * html/HTMLTextAreaElement.cpp:
38320         (WebCore::HTMLTextAreaElement::childrenChanged):
38321         * html/HTMLTextAreaElement.h:
38322         * html/HTMLTitleElement.cpp:
38323         (WebCore::HTMLTitleElement::childrenChanged):
38324         * html/HTMLTitleElement.h:
38325         * svg/SVGClipPathElement.cpp:
38326         (WebCore::SVGClipPathElement::childrenChanged):
38327         * svg/SVGClipPathElement.h:
38328         * svg/SVGDefinitionSrcElement.cpp:
38329         (WebCore::SVGDefinitionSrcElement::childrenChanged):
38330         * svg/SVGDefinitionSrcElement.h:
38331         * svg/SVGFontFaceElement.cpp:
38332         (WebCore::SVGFontFaceElement::childrenChanged):
38333         * svg/SVGFontFaceElement.h:
38334         * svg/SVGFontFaceFormatElement.cpp:
38335         (WebCore::SVGFontFaceFormatElement::childrenChanged):
38336         * svg/SVGFontFaceFormatElement.h:
38337         * svg/SVGFontFaceSrcElement.cpp:
38338         (WebCore::SVGFontFaceSrcElement::childrenChanged):
38339         * svg/SVGFontFaceSrcElement.h:
38340         * svg/SVGFontFaceUriElement.cpp:
38341         (WebCore::SVGFontFaceUriElement::childrenChanged):
38342         * svg/SVGFontFaceUriElement.h:
38343         * svg/SVGGElement.cpp:
38344         (WebCore::SVGGElement::childrenChanged):
38345         * svg/SVGGElement.h:
38346         * svg/SVGGradientElement.cpp:
38347         (WebCore::SVGGradientElement::childrenChanged):
38348         * svg/SVGGradientElement.h:
38349         * svg/SVGMarkerElement.cpp:
38350         (WebCore::SVGMarkerElement::childrenChanged):
38351         * svg/SVGMarkerElement.h:
38352         * svg/SVGMaskElement.cpp:
38353         (WebCore::SVGMaskElement::childrenChanged):
38354         * svg/SVGMaskElement.h:
38355         * svg/SVGPatternElement.cpp:
38356         (WebCore::SVGPatternElement::childrenChanged):
38357         * svg/SVGPatternElement.h:
38358         * svg/SVGStyleElement.cpp:
38359         (WebCore::SVGStyleElement::childrenChanged):
38360         * svg/SVGStyleElement.h:
38361         * svg/SVGStyledElement.cpp:
38362         (WebCore::SVGStyledElement::childrenChanged):
38363         * svg/SVGStyledElement.h:
38364         * svg/SVGTitleElement.cpp:
38365         (WebCore::SVGTitleElement::childrenChanged):
38366         * svg/SVGTitleElement.h:
38367         * svg/SVGUseElement.cpp:
38368         (WebCore::SVGUseElement::childrenChanged):
38369         * svg/SVGUseElement.h:
38371 2008-02-27  Julien Chaffraix <julien.chaffraix@gmail.com>
38373         Reviewed by Alexey.
38375         http://bugs.webkit.org/show_bug.cgi?id=17481
38376         Several consecutive calls to XMLHttpRequest::open should dispatch only one readyState event
38378         Test: http/tests/xmlhttprequest/xmlhttprequest-multiple-open.html
38380         * xml/XMLHttpRequest.cpp:
38381         (WebCore::XMLHttpRequest::open):
38383 2008-02-27  Sriram Neelakandan  <sriram.neelakandan@gmail.com>
38385         Reviewed, tweaked and landed by ap.
38387         http://bugs.webkit.org/show_bug.cgi?id=17487
38388         HTMLInput mysteriously fails to work if ICU dat file is missing
38390         * platform/text/TextBreakIteratorICU.cpp: (WebCore::setUpIterator): Assert that the iterator
38391         has been opened.
38393 2008-02-27  Adam Roben  <aroben@apple.com>
38395         Windows build fix after r30616
38397         * platform/win/ClipboardWin.cpp:
38399 2008-02-27  Nikolas Zimmermann  <zimmermann@kde.org>
38401         Reviewed by Simon.
38403         Small style cleanup, and obvious fix: SVGGElement reacted on
38404         'clipPathUnits' changes, which is a funny copy&paste error.
38406         * svg/SVGGElement.cpp:
38407         (WebCore::SVGGElement::parseMappedAttribute):
38408         (WebCore::SVGGElement::svgAttributeChanged):
38409         (WebCore::SVGGElement::createRenderer):
38411 2008-02-27  Nikolas Zimmermann  <zimmermann@kde.org>
38413         Reviewed by Simon.
38415         Cleanup coding style. Still on my way to fix dynamic updates of all SVG elements.
38416         Currently at SVGF*. SVGDefs/DescElement don't need any dyn update fixes but cleanups.
38418         * svg/SVGDefsElement.cpp:
38419         (WebCore::SVGDefsElement::createRenderer):
38420         * svg/SVGDefsElement.h:
38421         * svg/SVGDescElement.h:
38423 2008-02-26  Antti Koivisto  <antti@apple.com>
38425         Reviewed by Darin.
38427         Fix <rdar://problem/5761326>
38428         REGRESSION: 1.5% -2% Sunspider regression from r30009 (ebay photo upload hang)
38429         
38430         Generate better code with VS:
38431         - Use ALWAYS_INLINE macro to guarantee versions of allowsAccessFrom() are reduced to single functions
38432         - Refactor error reporting so that there is no need to construct/destruct Strings in common cases
38433         - Add a separate version of the function for cases where error messages are not wanted
38435         * bindings/js/JSDOMWindowCustom.cpp:
38436         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
38437         * bindings/js/kjs_window.cpp:
38438         (KJS::Window::allowsAccessFrom):
38439         (KJS::Window::allowsAccessFromNoErrorMessage):
38440         (KJS::Window::allowsAccessFromPrivate):
38441         (KJS::Window::crossDomainAccessErrorMessage):
38442         * bindings/js/kjs_window.h:
38444 2008-02-26  Sam Weinig  <sam@webkit.org>
38446         Reviewed by Dave Hyatt.
38448         - remove DeprecatedCString, DeprecatedArray, and ArrayImpl.
38450         * GNUmakefile.am:
38451         * WebCore.pro:
38452         * WebCore.vcproj/WebCore.vcproj:
38453         * WebCore.xcodeproj/project.pbxproj:
38454         * WebCoreSources.bkl:
38455         * platform/ArrayImpl.cpp: Removed.
38456         * platform/ArrayImpl.h: Removed.
38457         * platform/DeprecatedArray.h: Removed.
38458         * platform/DeprecatedCString.cpp: Removed.
38459         * platform/DeprecatedCString.h: Removed.
38460         * platform/text/CString.cpp:
38461         (WebCore::CString::length):
38462         * platform/text/CString.h:
38464 2008-02-26  David Hyatt  <hyatt@apple.com>
38466         Cleanup of childrenChanged in preparation for fixing the HTML5 spec slowdown.
38468         Reviewed by Sam Weinig
38470         * dom/Attr.cpp:
38471         (WebCore::Attr::childrenChanged):
38472         * dom/ContainerNode.cpp:
38473         (WebCore::ContainerNode::insertBefore):
38474         (WebCore::ContainerNode::replaceChild):
38475         (WebCore::ContainerNode::removeChild):
38476         (WebCore::ContainerNode::removeChildren):
38477         (WebCore::ContainerNode::appendChild):
38478         (WebCore::ContainerNode::addChild):
38479         (WebCore::ContainerNode::childrenChanged):
38480         * dom/ContainerNode.h:
38481         * dom/EventTargetNode.cpp:
38482         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent):
38483         * dom/EventTargetNode.h:
38484         * dom/NamedAttrMap.cpp:
38485         (WebCore::NamedAttrMap::addAttribute):
38486         (WebCore::NamedAttrMap::removeAttribute):
38488 2008-02-26  Darin Adler  <darin@apple.com>
38490         Reviewed by Sam.
38492         - remove use of DeprecatedCString from Windows pasteboard code
38494         * platform/win/ClipboardUtilitiesWin.cpp:
38495         (WebCore::createGlobalData): Added an overload for Vector<char>.
38496         Streamlined the logic a bit.
38497         (WebCore::append): Added. Helper functions for appending to a
38498         Vector<char>.
38499         (WebCore::markupToCF_HTML): Rewrote to use Vector<char> instead
38500         of DeprecatedCString. Also simplified the logic a bit and used
38501         macros to handle the integer width.
38502         (WebCore::urlToMarkup): Use Vector<UChar> instead of String.
38503         (WebCore::replaceNewlinesWithWindowsStyleNewlines): Tweaked.
38504         * platform/win/ClipboardUtilitiesWin.h: Update type of return
38505         value from markupToCF_HTML. Did a bit of streamlining too.
38506         * platform/win/ClipboardWin.cpp:
38507         (WebCore::writeURL): Update for above changes.
38508         (WebCore::ClipboardWin::declareAndWriteDragImage): Ditto.
38509         (WebCore::ClipboardWin::writeRange): Ditto.
38510         * platform/win/PasteboardWin.cpp:
38511         (WebCore::Pasteboard::writeSelection): Ditto.
38512         (WebCore::Pasteboard::writeURL): Ditto.
38514 2008-02-26  Timothy Hatcher  <timothy@apple.com>
38516         Reviewed by Adam Roben.
38518         <rdar://problem/5712777> REGRESSION: Arrow up/down in inspector
38519         source list does not scroll when item at edge is reached (16572)
38521         Use scrollIntoViewIfNeeded() instead of the hand-rolled scrollToElement
38522         we were using in utilities.js.
38524         * page/inspector/DocumentPanel.js: Use scrollIntoViewIfNeeded instead of scrollToElement.
38525         * page/inspector/Resource.js: Ditto.
38526         * page/inspector/inspector.js: Ditto.
38527         * page/inspector/SourcePanel.js: Use scrollIntoViewIfNeeded instead
38528         of scrollIntoView, so the source line is centered in the view if needed.
38529         * page/inspector/utilities.js: Removed scrollToElement().
38531 2008-02-26  David Hyatt  <hyatt@apple.com>
38533         Reviewed by Dan
38535         http://bugs.webkit.org/show_bug.cgi?id=17485
38537         Refine our behavior for empty inlines so that they work more correctly with margins/borders/padding.
38538         Fixes a regression on huffingtonpost.com.
38540         New tests added to fast/inline
38542         * rendering/InlineFlowBox.cpp:
38543         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
38544         (WebCore::InlineFlowBox::placeBoxesVertically):
38545         (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
38546         * rendering/RenderFlow.cpp:
38547         (WebCore::RenderFlow::calcMargins):
38548         * rendering/RenderFlow.h:
38549         * rendering/RenderObject.h:
38550         (WebCore::RenderObject::hasHorizontalBordersPaddingOrMargin):
38551         (WebCore::RenderObject::hasHorizontalBordersOrPadding):
38552         * rendering/bidi.cpp:
38553         (WebCore::getBorderPaddingMargin):
38554         (WebCore::RenderBlock::layoutInlineChildren):
38555         (WebCore::inlineFlowRequiresLineBox):
38557 2008-02-26  Sam Weinig  <sam@webkit.org>
38559         Fix Windows build.
38561         * platform/text/PlatformString.h:
38562         (WebCore::reverseFind):
38564 2008-02-26  Dan Bernstein  <mitz@apple.com>
38566         Reviewed by Darin Adler.
38568         - fix http://bugs.webkit.org/show_bug.cgi?id=17555
38569           <rdar://problem/5766016> REGRESSION (r27351): Thumbnails positioned wrong on Getty Images results page
38571         Test: fast/dynamic/subtree-table-cell-height.html
38573         * rendering/RenderObject.cpp:
38574         (WebCore::objectIsRelayoutBoundary): Exclude table cells, since their
38575         height depends on their contents even if the CSS height property is
38576         fixed.
38578 2008-02-25  Sam Weinig  <sam@webkit.org>
38580         Reviewed by Dan Bernstein.
38582         Make the cleanPath function in CSSStyleSelector more efficient by using
38583         a Vector<UChar>.
38585         * css/CSSStyleSelector.cpp:
38586         (WebCore::cleanPath): Make this function work on a Vector<UChar> instead
38587         of a String.  Also remove unnecessary reverseFind call that could be acomplished
38588         with two compares.
38589         (WebCore::checkPseudoState): Remove reserveCapacity calls now that we are using
38590         a stack buffer.
38591         * platform/text/PlatformString.h:
38592         (WebCore::find): Make this find generic enough that it can be used for
38593         String::find.
38594         (WebCore::reverseFind): Implement reverseFind so that it can be used
38595         for with a UChar* and length.
38596         * platform/text/StringImpl.cpp:
38597         (WebCore::StringImpl::find): Use implementation in PlatformString.cpp
38598         (WebCore::StringImpl::reverseFind): Ditto,
38600 2008-02-26  Satoshi Nakagawa  <artension@gmail.com>
38602         Reviewed by Darin. Tweaked and landed by Alexey.
38604         http://bugs.webkit.org/show_bug.cgi?id=17411
38605         Ideographic comma and full stop should be treated as line-breakable characters
38607         Test: fast/text/line-breaks-after-ideographic-comma-or-full-stop.html
38609         * platform/text/CharacterNames.h: Added ideographicComma and ideographicFullStop.
38610         * rendering/break_lines.cpp: (WebCore::shouldBreakAfter): Added a workaround for an issue in
38611         Unicode 5.0 that is causing this.
38613 2008-02-26  MorganL  <morganl.webkit@yahoo.com>
38615         Reviewed by eseidel.  Landed by eseidel
38617         Fix improperly initialized m_isUpToDate member variable.
38618         Fixs 50+ layout tests when run on Tiger.
38619         http://bugs.webkit.org/show_bug.cgi?id=17549
38621         * platform/network/cf/ResourceResponse.h:
38622         (WebCore::ResourceResponse::ResourceResponse):
38623         * platform/network/mac/ResourceResponse.h:
38624         (WebCore::ResourceResponse::ResourceResponse):
38626 2008-02-25  Dan Bernstein  <mitz@apple.com>
38628         Reviewed by Sam Weinig.
38630         - fix http://bugs.webkit.org/show_bug.cgi?id=17152
38631           Paragraphs indented with :first-letter and text-align CSS render incorrectly
38633         Test: fast/text/apply-start-width-after-skipped-text.html
38635         * rendering/bidi.cpp:
38636         (WebCore::RenderBlock::findNextLineBreak): Improved the logic for when
38637         to figure in the padding, border and margin before a text node when the
38638         line begins inside a text node.
38640 2008-02-25  Kevin Ollivier  <kevino@theolliviers.com>
38642         Windows build fix for wx port.
38644         * loader/FTPDirectoryDocument.cpp:
38646 2008-02-25  Mark Rowe  <mrowe@apple.com>
38648         Windows build fix.
38650         * platform/network/cf/ResourceResponseCFNet.cpp:
38651         (WebCore::ResourceResponse::platformCompare):  Implement platformCompare for ResourceResponseCFNet.cpp.
38653 2008-02-25  Beth Dakin  <bdakin@apple.com>
38655         Reviewed by Geoff.
38657         Fixed for <rdar://problem/5760530> REGRESSION: Assertion failure in 
38658         Document::removePendingSheet() from r30438
38660         r30438 added a call to CachedResource::error() from inside 
38661         Loader::didReceiveData() if a CSS file 4xxs. There was an 
38662         assumption in the loader, though, that either error() would be 
38663         called, or didFinishLoading() would be called, so some work is 
38664         duplicated in each. Now that we are calling an error() on files 
38665         that will also make it to didFinishLoading() (since they succeeded 
38666         in the network layer), we need to make sure we do not duplicate the 
38667         work. CachedCSSStyleSheet::error() calls checkNotify, which ends up 
38668         decrementing the document's pending style sheet counter. 
38669         checkNotify() was still getting called, though, through the normal  
38670         didFinishLoading code path, and the counter was being decremented 
38671         twice. Bad!
38673         * loader/loader.cpp:
38674         (WebCore::Loader::didFinishLoading):
38675         (WebCore::Loader::didReceiveData):
38677 2008-02-25  Mark Rowe  <mrowe@apple.com>
38679         Fix the Gtk, wx and Qt builds.
38681         * GNUmakefile.am: Add new files.
38682         * WebCore.pro: Ditto.
38683         * WebCoreSources.bkl: Ditto.
38684         * platform/network/AuthenticationChallengeBase.h: Fix up argument types.
38686 2008-02-25  MorganL  <morganl.webkit@yahoo.com>
38688         Reviewed by Darin Adler.
38690         Eliminate some #ifdefs from headers in platform/network.
38691         http://bugs.webkit.org/show_bug.cgi?id=17210
38693         * WebCore.base.exp:
38694         * WebCore.order:
38695         * WebCore.vcproj/WebCore.vcproj:
38696         * WebCore.xcodeproj/project.pbxproj:
38697         * dom/XMLTokenizer.cpp:
38698         * loader/ResourceLoader.h:
38699         * platform/network/AuthenticationChallenge.cpp: Removed.
38700         * platform/network/AuthenticationChallenge.h: Removed.
38701         * platform/network/AuthenticationChallengeBase.cpp: Copied from platform/network/AuthenticationChallenge.cpp.
38702         (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
38703         (WebCore::AuthenticationChallengeBase::previousFailureCount):
38704         (WebCore::AuthenticationChallengeBase::proposedCredential):
38705         (WebCore::AuthenticationChallengeBase::protectionSpace):
38706         (WebCore::AuthenticationChallengeBase::failureResponse):
38707         (WebCore::AuthenticationChallengeBase::error):
38708         (WebCore::AuthenticationChallengeBase::isNull):
38709         (WebCore::AuthenticationChallengeBase::nullify):
38710         (WebCore::AuthenticationChallengeBase::compare):
38711         * platform/network/AuthenticationChallengeBase.h: Copied from platform/network/AuthenticationChallenge.h.
38712         (WebCore::AuthenticationChallengeBase::platformCompare):
38713         (WebCore::operator==):
38714         (WebCore::operator!=):
38715         * platform/network/ResourceError.cpp: Removed.
38716         * platform/network/ResourceError.h: Removed.
38717         * platform/network/ResourceErrorBase.cpp: Copied from platform/network/ResourceError.cpp.
38718         (WebCore::ResourceErrorBase::lazyInit):
38719         (WebCore::ResourceErrorBase::compare):
38720         * platform/network/ResourceErrorBase.h: Copied from platform/network/ResourceError.h.
38721         (WebCore::ResourceErrorBase::isNull):
38722         (WebCore::ResourceErrorBase::domain):
38723         (WebCore::ResourceErrorBase::errorCode):
38724         (WebCore::ResourceErrorBase::failingURL):
38725         (WebCore::ResourceErrorBase::localizedDescription):
38726         (WebCore::ResourceErrorBase::ResourceErrorBase):
38727         (WebCore::ResourceErrorBase::platformLazyInit):
38728         (WebCore::ResourceErrorBase::platformCompare):
38729         (WebCore::operator==):
38730         * platform/network/ResourceResponseBase.cpp:
38731         (WebCore::ResourceResponseBase::isHTTP):
38732         (WebCore::ResourceResponseBase::url):
38733         (WebCore::ResourceResponseBase::setUrl):
38734         (WebCore::ResourceResponseBase::mimeType):
38735         (WebCore::ResourceResponseBase::setMimeType):
38736         (WebCore::ResourceResponseBase::expectedContentLength):
38737         (WebCore::ResourceResponseBase::setExpectedContentLength):
38738         (WebCore::ResourceResponseBase::textEncodingName):
38739         (WebCore::ResourceResponseBase::setTextEncodingName):
38740         (WebCore::ResourceResponseBase::suggestedFilename):
38741         (WebCore::ResourceResponseBase::setSuggestedFilename):
38742         (WebCore::ResourceResponseBase::httpStatusCode):
38743         (WebCore::ResourceResponseBase::setHTTPStatusCode):
38744         (WebCore::ResourceResponseBase::httpStatusText):
38745         (WebCore::ResourceResponseBase::setHTTPStatusText):
38746         (WebCore::ResourceResponseBase::httpHeaderField):
38747         (WebCore::ResourceResponseBase::setHTTPHeaderField):
38748         (WebCore::ResourceResponseBase::httpHeaderFields):
38749         (WebCore::ResourceResponseBase::isAttachment):
38750         (WebCore::ResourceResponseBase::setExpirationDate):
38751         (WebCore::ResourceResponseBase::expirationDate):
38752         (WebCore::ResourceResponseBase::setLastModifiedDate):
38753         (WebCore::ResourceResponseBase::lastModifiedDate):
38754         (WebCore::ResourceResponseBase::lazyInit):
38755         (WebCore::ResourceResponseBase::compare):
38756         * platform/network/ResourceResponseBase.h:
38757         (WebCore::ResourceResponseBase::ResourceResponseBase):
38758         (WebCore::ResourceResponseBase::platformLazyInit):
38759         (WebCore::ResourceResponseBase::platformCompare):
38760         (WebCore::operator==):
38761         * platform/network/cf/AuthenticationCF.cpp:
38762         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
38763         (WebCore::AuthenticationChallenge::platformCompare):
38764         * platform/network/cf/AuthenticationChallenge.h: Added.
38765         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
38766         (WebCore::AuthenticationChallenge::sourceHandle):
38767         (WebCore::AuthenticationChallenge::cfURLAuthChallengeRef):
38768         * platform/network/cf/ResourceError.h: Added.
38769         (WebCore::ResourceError::ResourceError):
38770         * platform/network/cf/ResourceErrorCF.cpp:
38771         (WebCore::ResourceError::ResourceError):
38772         (WebCore::ResourceError::platformLazyInit):
38773         (WebCore::ResourceError::platformCompare):
38774         (WebCore::ResourceError::operator CFStreamError):
38775         * platform/network/cf/ResourceResponse.h:
38776         (WebCore::ResourceResponse::ResourceResponse):
38777         * platform/network/cf/ResourceResponseCFNet.cpp:
38778         (WebCore::ResourceResponse::platformLazyInit):
38779         * platform/network/curl/AuthenticationChallenge.h: Added.
38780         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
38781         * platform/network/curl/ResourceError.h: Added.
38782         (WebCore::ResourceError::ResourceError):
38783         * platform/network/curl/ResourceResponse.h:
38784         (WebCore::ResourceResponse::ResourceResponse):
38785         * platform/network/mac/AuthenticationChallenge.h: Added.
38786         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
38787         (WebCore::AuthenticationChallenge::sender):
38788         (WebCore::AuthenticationChallenge::nsURLAuthenticationChallenge):
38789         * platform/network/mac/AuthenticationMac.mm:
38790         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
38791         (WebCore::AuthenticationChallenge::platformCompare):
38792         * platform/network/mac/ResourceError.h: Added.
38793         (WebCore::ResourceError::ResourceError):
38794         * platform/network/mac/ResourceErrorMac.mm:
38795         (WebCore::ResourceError::platformLazyInit):
38796         (WebCore::ResourceError::platformCompare):
38797         * platform/network/mac/ResourceResponse.h:
38798         (WebCore::ResourceResponse::ResourceResponse):
38799         * platform/network/mac/ResourceResponseMac.mm:
38800         (WebCore::ResourceResponse::platformLazyInit):
38801         (WebCore::ResourceResponse::platformCompare):
38802         * platform/network/qt/AuthenticationChallenge.h: Added.
38803         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
38804         * platform/network/qt/ResourceError.h: Added.
38805         (WebCore::ResourceError::ResourceError):
38806         * platform/network/qt/ResourceResponse.h:
38807         (WebCore::ResourceResponse::ResourceResponse):
38808         * xml/XSLTProcessor.cpp:
38810 2008-02-25  Anders Carlsson  <andersca@apple.com>
38812         Reviewed by Darin.
38814         Move remaining render style objects over to start with a refcount of 1 and get
38815         rid of DeprecatedDataRef.
38816         
38817         * rendering/DataRef.h:
38818         (WebCore::DataRef::operator*):
38819         (WebCore::DataRef::operator->):
38820         * rendering/RenderStyle.h:
38821         * rendering/SVGRenderStyle.cpp:
38822         (WebCore::SVGRenderStyle::SVGRenderStyle):
38823         * rendering/SVGRenderStyle.h:
38824         (WebCore::SVGRenderStyle::create):
38825         (WebCore::SVGRenderStyle::copy):
38826         * rendering/SVGRenderStyleDefs.cpp:
38827         (StyleFillData::StyleFillData):
38828         (StyleStrokeData::StyleStrokeData):
38829         (StyleStopData::StyleStopData):
38830         (StyleTextData::StyleTextData):
38831         (StyleClipData::StyleClipData):
38832         (StyleMaskData::StyleMaskData):
38833         (StyleMarkerData::StyleMarkerData):
38834         (StyleMiscData::StyleMiscData):
38835         * rendering/SVGRenderStyleDefs.h:
38836         (WebCore::StyleFillData::create):
38837         (WebCore::StyleFillData::copy):
38838         (WebCore::StyleStrokeData::create):
38839         (WebCore::StyleStrokeData::copy):
38840         (WebCore::StyleStopData::create):
38841         (WebCore::StyleStopData::copy):
38842         (WebCore::StyleTextData::create):
38843         (WebCore::StyleTextData::copy):
38844         (WebCore::StyleClipData::create):
38845         (WebCore::StyleClipData::copy):
38846         (WebCore::StyleMaskData::create):
38847         (WebCore::StyleMaskData::copy):
38848         (WebCore::StyleMarkerData::create):
38849         (WebCore::StyleMarkerData::copy):
38850         (WebCore::StyleMiscData::create):
38851         (WebCore::StyleMiscData::copy):
38853 2008-02-25  Dan Bernstein  <mitz@apple.com>
38855         Reviewed by Dave Hyatt.
38857         - remove file-static BidiRun variables from bidi.cpp
38859         * platform/text/BidiResolver.h:
38860         (WebCore::BidiResolver::): Initialize m_logicallyLastRun.
38861         (WebCore::BidiResolver::logicallyLastRun): Added.
38862         (WebCore::BidiResolver::runCount): Made unsigned.
38863         (WebCore::::reverseRuns): Changed ints to unsigned.
38864         (WebCore::::createBidiRunsForLine): Made this function set
38865         m_logicallyLastRun.
38866         * rendering/RenderBlock.h:
38867         * rendering/bidi.cpp:
38868         (WebCore::BidiState::addRun): Removed setting of sLogicallyLastBidiRun.
38869         (WebCore::RenderBlock::constructLine): Removed unused start parameter
38870         and added run count and first and last run parameters. Replaced end
38871         parameter with lastLine boolean and endObject pointer.
38872         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Added first
38873         and logically last run parameters.
38874         (WebCore::RenderBlock::computeVerticalPositionsForLine): Added firstRun
38875         parameter.
38876         (WebCore::RenderBlock::bidiReorderLine): Removed setting of static
38877         variables.
38878         (WebCore::RenderBlock::layoutInlineChildren): Changed to use BidiState
38879         accessors instead of file statics.
38881 2008-02-25  Rodney Dawes  <dobey@wayofthemonkey.com>
38883         Reviewed by Jon Honeycutt.
38885         http://bugs.webkit.org/show_bug.cgi?id=16924
38886         Bug 16924: Shared PluginDatabase, PluginPackage, and PlugInInfoStore implementations
38888         Add PluginInfoStore.cpp and new PluginDatabase.cpp to GTK+ and Qt ports.
38889         Remove old PlugInInfoStoreQt.cpp as it is obsoleted by shared code.
38890         Add PluginInfoStore, PluginDatabase, and PluginStream files to Wx build.
38891         Add new PluginDatabase.cpp to Windows build.
38892         Add temporary stubs for new PluginDatabase and PluginPackage.
38893         shared classes to GTK+, Qt, and Wx ports.
38894         Copy PluginDatabaseWin.cpp to PluginDatabase.cpp to preserve history.
38895         Remove shared code from PluginDatabaseWin.cpp.
38896         Remove Windows-specific code from PluginDatabase.cpp.
38897         Use PlatformModule and PlatformFileTime instead of HMODULE and FILETIME.
38898         Remove extraneous PluginPackage:: from hash() class method prototype.
38899         Subsume storeFileVersion into PluginPackage::fetchInfo.
38900         Add cross-platform PlatformModuleVersion type definition.
38901         Use PlatformModuleVersion to store the module version.
38902         Rename m_fileVersion[ML]S to m_moduleVersion.
38903         Change compareFileVersion to use PlatformModuleVersion as the argument.
38904         Move PluginView::determineQuirks and m_quirks to PluginPackage.
38905         Updated determineQuirks for the PlatformModuleVersion.
38907         * GNUmakefile.am:
38908         * WebCore.pro:
38909         * WebCoreSources.bkl:
38910         * webcore-base.bkl:
38911         * WebCore.vcproj/WebCore.vcproj:
38912         * Platform/FileSystem.h:
38913         * platform/qt/PlugInInfoStoreQt.cpp:
38914         * platform/gtk/TemporaryLinkStubs.cpp:
38915         * platform/qt/TemporaryLinkStubs.cpp:
38916         * platform/wx/TemporaryLinkStubs.cpp:
38917         * plugins/PluginDatabase.cpp:
38918         * plugins/PluginDatabase.h:
38919         * plugins/win/PluginDatabaseWin.cpp:
38920         * plugins/PluginPackage.h:
38921         * plugins/win/PluginPackageWin.cpp:
38922         * plugins/PluginView.h:
38923         * plugins/win/PluginViewWin.cpp:
38925 2008-02-25  Anders Carlsson  <andersca@apple.com>
38927         Reviewed by Darin.
38929         Make more style objects start out with a refcount of 1.
38930         
38931         * rendering/RenderStyle.cpp:
38932         (WebCore::StyleSurroundData::StyleSurroundData):
38933         (WebCore::StyleBoxData::StyleBoxData):
38934         (WebCore::StyleVisualData::StyleVisualData):
38935         (WebCore::StyleBackgroundData::StyleBackgroundData):
38936         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
38937         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
38938         (WebCore::StyleInheritedData::StyleInheritedData):
38939         * rendering/RenderStyle.h:
38940         (WebCore::StyleSurroundData::create):
38941         (WebCore::StyleSurroundData::copy):
38942         (WebCore::StyleBoxData::create):
38943         (WebCore::StyleBoxData::copy):
38944         (WebCore::StyleVisualData::create):
38945         (WebCore::StyleVisualData::copy):
38946         (WebCore::StyleBackgroundData::create):
38947         (WebCore::StyleBackgroundData::copy):
38948         (WebCore::StyleBackgroundData::~StyleBackgroundData):
38949         (WebCore::StyleRareNonInheritedData::create):
38950         (WebCore::StyleRareNonInheritedData::copy):
38951         (WebCore::StyleRareInheritedData::create):
38952         (WebCore::StyleRareInheritedData::copy):
38953         (WebCore::StyleInheritedData::create):
38954         (WebCore::StyleInheritedData::copy):
38956 2008-02-25  Anders Carlsson  <andersca@apple.com>
38958         Reviewed by Darin.
38960         Make some of the refcounted style objects start out with a refcount of 1.
38962         * rendering/DataRef.h:
38963         Make a DeprecatedDataRef class which is just a copy of the old DataRef class.
38964         Change DataRef to use ::create() and ::copy() instead of the constructors.
38965         Change DataRef's pointer to be a RefPtr instead.
38967         * rendering/RenderStyle.cpp:
38968         (WebCore::StyleMarqueeData::StyleMarqueeData):
38969         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
38970         (WebCore::StyleMultiColData::StyleMultiColData):
38971         (WebCore::StyleTransformData::StyleTransformData):
38972         Start with a RefCount of 1.
38973         
38974         * rendering/RenderStyle.h:
38975         * rendering/SVGRenderStyle.h:
38976         Add ::create() and ::copy() methods. Make not yet converted classes use DeprecatedDataRef.
38978 2008-02-25  Darin Adler  <darin@apple.com>
38980         Reviewed by Anders.
38981         Based on a patch by Tim Steele <timsteele41@gmail.com>.
38983         - fix http://bugs.webkit.org/show_bug.cgi?id=17186
38984           Fragment navigation within a page permanently cancels meta refresh
38986         Test: fast/loader/meta-refresh-anchor-click.html
38988         * loader/FrameLoader.cpp:
38989         (WebCore::FrameLoader::load): When load type is FrameLoadTypeRedirectWithLockedHistory,
38990         always do a real load. This makes sure that meta refresh loads are treated as real loads
38991         rather than anchor scrolls. Also tweaked formatting a bit.
38992         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): This function is
38993         an alternate way to complete a load, so it needs to start the redirection timer if
38994         redirection has already been scheduled.
38996 2008-02-25  Dan Bernstein  <mitz@apple.com>
38998         Reviewed by Darin Adler.
39000         - avoid counting spaces in non-justified text
39002         * rendering/bidi.cpp:
39003         Removed file-static numSpaces.
39004         (WebCore::BidiState::addRun): Removed space counting.
39005         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Added space
39006         counting, conditional on the block having the text-align: justify
39007         property value.
39008         (WebCore::RenderBlock::bidiReorderLine): Removed initialization of
39009         numSpaces.
39011 2008-02-25  Darin Adler  <darin@apple.com>
39013         Requested by Steve.
39015         * platform/graphics/cg/ImageSourceCG.cpp:
39016         (WebCore::ImageSource::createFrameAtIndex): Put the string into a global
39017         variable (because CFSTR is inefficient on Windows).
39019 2008-02-25  Darin Adler  <darin@apple.com>
39021         Reviewed by Adam.
39023         * WebCore.base.exp: Export blankURL, and sort the file.
39025 2008-02-25  Simon Hausmann  <hausmann@webkit.org>
39027         Reviewed by Mark Rowe.
39029         Fix compilation with gcc 4.3, added stdio.h and unistd.h inclusions.
39031         * dom/Position.cpp:
39032         * dom/Range.cpp:
39033         * editing/Selection.cpp:
39034         * editing/SelectionController.cpp:
39035         * editing/VisiblePosition.cpp:
39036         * history/HistoryItem.cpp:
39037         * loader/Cache.cpp:
39038         * loader/FTPDirectoryParser.cpp:
39039         * platform/KURL.cpp:
39040         * platform/gtk/FileSystemGtk.cpp:
39041         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
39042         * platform/text/TextCodecLatin1.cpp:
39043         * platform/text/TextCodecUserDefined.cpp:
39044         * rendering/CounterNode.cpp:
39045         * rendering/RenderObject.cpp:
39047 2008-02-25  Johnny Ding  <johnnyding.webkit@gmail.com>
39049         Reviewed by Darin Adler.
39051         - fix http://bugs.webkit.org/show_bug.cgi?id=17444
39053         In HTMLTokenizer::write, the code checks 'pendingScripts.isEmpty()' to decide
39054         whether to save prependingSrc or not. However, in HTMLTokenizer::scriptHandler
39055         and HTMLTokenizer::scriptExecution, the code checks testBit:LoadingExtScript
39056         to decide whether to save prependingSrc or not. The later behavior is not right
39057         because, in scriptHandler and scriptExecution, even the pendingScripts queue is
39058         empty, the testBit:LoadingExtScript might be TRUE.
39060         Test: fast/tokenizer/nested-multiple-scripts.html
39062         * html/HTMLTokenizer.cpp:
39063         (WebCore::HTMLTokenizer::scriptHandler): check pendingScripts.isEmpty() instead of
39064         checking state.loadingExtScript().
39065         (WebCore::HTMLTokenizer::scriptExecution): check pendingScripts.isEmpty() instead of
39066         checking state.loadingExtScript().
39068 2008-02-24  Darin Adler  <darin@apple.com>
39070         * dom/Document.h: Removed stray duplicate declaration of
39071         RegisteredEventListenerList.
39073 2008-02-24  Darin Adler  <darin@apple.com>
39075         * dom/Range.cpp:
39076         (WebCore::Range::surroundContents): Removed incorrect comment.
39077         I added it a while ago, and I was just mixed up.
39079 2008-02-24  Darin Adler  <darin@apple.com>
39081         - quick follow-up to that last check-in
39083         * platform/graphics/cg/ImageSourceCG.cpp:
39084         (WebCore::ImageSource::createFrameAtIndex): Use CFEqual instead of
39085         WebCore::String's == for speed.
39087 2008-02-24  Michael Knaup  <michael.knaup@mac.com>
39089         Reviewed by Darin.
39091         Bug 8749: XBM rendered incorrectly as black on white
39093         xbm images are now created and rendered using black on a
39094         transparent background (same behavior as in Firefox)
39096         Test: platform/mac/fast/canvas/canvas-draw-xbm-image.html
39098         * platform/graphics/cg/ImageSourceCG.cpp:
39099         (WebCore::ImageSource::createFrameAtIndex):
39101 2008-02-24  Dan Bernstein  <mitz@apple.com>
39103         Reviewed by Darin Adler.
39105         - fix http://bugs.webkit.org/show_bug.cgi?id=17471
39106           REGRESSION (r30438): Crash in deleteLineBoxes in cursor-adjusting code browsing Acid3
39108         Test: http/tests/misc/object-image-error.html
39110         * html/HTMLObjectElement.cpp:
39111         (WebCore::HTMLObjectElement::attach): Added an early return in case
39112         updateFromElement() has changed the object to use fallback content.
39114 2008-02-24  Dan Bernstein  <mitz@apple.com>
39116         Reviewed by Darin Adler.
39118         - fix float positioning when a float that does not fit on the line is
39119           followed by a float that does
39121         Test: fast/block/float/narrow-after-wide.html
39123         * rendering/bidi.cpp:
39124         (WebCore::RenderBlock::findNextLineBreak): Changed to not position any
39125         more floats on the line once a float that does not fit is encountered.
39126         That float should be pushed to the next line, and so should all floats
39127         that follow, regardless of whether they can fit on the current line.
39129 2008-02-24  Darin Adler  <darin@apple.com>
39131         Reviewed by Sam.
39133         - fix http://bugs.webkit.org/show_bug.cgi?id=16770
39134           Acid3 expects :visited styled links to restyle on iframe load
39136         Disentangle global history updating from the back/forward history.
39137         There are many cases where we don't want to create a new back/forward
39138         item, but we do still want to add to the global history (used for visited
39139         link coloring) in those cases.
39141         Test: fast/history/subframe-is-visited.html
39143         * loader/FrameLoader.cpp:
39144         (WebCore::FrameLoader::updateGlobalHistory): Renamed from
39145         addHistoryForCurrentLocation and removed the back/forward handling.
39146         (WebCore::FrameLoader::updateHistoryForStandardLoad): Streamlined logic a
39147         bit. Replaced call to addHistoryForCurrentLocation with a call to
39148         addBackForwardItemClippedAtTarget. Added an unconditional call to
39149         updateGlobalHistory.
39150         (WebCore::FrameLoader::updateHistoryForClientRedirect): Added a FIXME;
39151         why doesn't this function update global history?
39152         (WebCore::FrameLoader::updateHistoryForBackForwardNavigation): Ditto.
39153         (WebCore::FrameLoader::updateHistoryForReload): Replaced the direct call
39154         the client with a call to the new updateGlobalHistory function.
39155         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory): Did
39156         the same changes as for updateHistoryForStandardLoad.
39157         * loader/FrameLoader.h: More of the same.
39159         * loader/FrameLoaderClient.h: Removed updateGlobalHistoryForReload and
39160         renamed updateGlobalHistoryForStandardLoad to updateGlobalHistory.
39162         * svg/graphics/SVGImageEmptyClients.h:
39163         (WebCore::SVGEmptyFrameLoaderClient::updateGlobalHistory): Updated to
39164         match the above.
39166 2008-02-23  Darin Adler  <darin@apple.com>
39168         Reviewed by Sam.
39170         - fix http://bugs.webkit.org/show_bug.cgi?id=17508
39171           REGRESSION (r30535): mailto regression tests failing
39173         * html/HTMLFormElement.cpp:
39174         (WebCore::HTMLFormElement::submit): Restore the old logic, with its unpleasant
39175         trip through String do to the replace operation. It's inefficient, but there's
39176         no real reason to worry about the efficiency of mailto forms, since that feature
39177         is nearly obsolete.
39179 2008-02-23  Darin Adler  <darin@apple.com>
39181         Reviewed by Sam.
39183         - replace SegmentedString's use of DeprecatedValueList with Deque
39185         Testing indicates this is a slight speed-up for page loading.
39187         * platform/text/SegmentedString.cpp:
39188         (WebCore::SegmentedString::length): Update to use Deque.
39189         (WebCore::SegmentedString::setExcludeLineNumbers): Ditto.
39190         (WebCore::SegmentedString::append): Ditto.
39191         (WebCore::SegmentedString::prepend): Ditto.
39192         (WebCore::SegmentedString::advanceSubstring): Ditto.
39193         (WebCore::SegmentedString::toString): Ditto.
39194         * platform/text/SegmentedString.h: Tweak formatting. Don't bother making an entire
39195         class private with a single friend. Change m_sbstrings from a DeprecatedValueList
39196         to a Deque.
39198 2008-02-23  Darin Adler  <darin@apple.com>
39200         Reviewed by Anders.
39202         - fix http://bugs.webkit.org/show_bug.cgi?id=17506
39203           REGRESSION (r30535): ASSERTION FAILED: i < size()
39205         * loader/TextResourceDecoder.cpp:
39206         (WebCore::findTextEncoding): Fix off-by-one in code that null-terminates
39207         the C string here.
39209 2008-02-23  Matt Lilek  <webkit@mattlilek.com>
39211         Not reviewed, build fix.
39213         * platform/network/cf/FormDataStreamCFNet.cpp:
39214         (WebCore::httpBodyFromRequest):
39215         * plugins/win/PluginViewWin.cpp:
39216         (WebCore::PluginView::handlePost):
39218 2008-02-23  Dan Bernstein  <mitz@apple.com>
39220         - fix a typo
39222         * platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:
39223         (WebCore::GlyphPage::fill):
39224         * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
39225         (WebCore::GlyphPage::fill):
39227 2008-02-23  Dan Bernstein  <mitz@apple.com>
39229         Reviewed by Anders Carlsson.
39231         - fix GlyphPage::fill() logic for partial page fills
39233         * platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:
39234         (WebCore::GlyphPage::fill): Changed the test for non-BMP characters to
39235         work correctly when the length parameter is less than a full page size.
39236         Also updated the comment.
39237         * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
39238         (WebCore::GlyphPage::fill): Ditto.
39240 2008-02-23  Kevin Ollivier  <kevino@theolliviers.com>
39242         Reviewed by Darin Adler.
39244         Move text drawing into wxcode, as we need platform-dependent
39245         APIs for drawing non-kerned text, which wx doesn't yet have.
39246         (But hopefully will, once these APIs are fleshed out on all
39247         platforms!)
39249         http://bugs.webkit.org/show_bug.cgi?id=17396
39251         * platform/graphics/wx/FontWx.cpp:
39252         (WebCore::Font::drawGlyphs):
39253         * platform/wx/wxcode/gtk/non-kerned-drawing.cpp: Added.
39254         * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp: Added.
39255         * platform/wx/wxcode/non-kerned-drawing.h: Added.
39256         * platform/wx/wxcode/win/non-kerned-drawing.cpp: Added.
39257         * webcore-wx.bkl:
39259 2008-02-23  Darin Adler  <darin@apple.com>
39261         Pointed out by Mitz.
39263         * loader/TextResourceDecoder.cpp:
39264         (WebCore::find): Fix a "==" that was supposed to be ">".
39265         (WebCore::findIgnoringCase): Ditto.
39267 2008-02-23  Darin Adler  <darin@apple.com>
39269         Reviewed by Sam.
39271         * html/HTMLFormElement.cpp:
39272         (WebCore::appendEncodedString): Fix buffer overrun in the code I just landed.
39274 2008-02-23  Darin Adler  <darin@apple.com>
39276         Reviewed by Sam.
39278         - remove all but 1 remaining use of DeprecatedCString
39279         - change FormData to start refcount at 1
39281         * html/HTMLFormElement.cpp:
39282         (WebCore::appendString): Added. Helpers for Vector<char>.
39283         (WebCore::appendEncodedString): Renamed from encodeCString and changed to
39284         append to an existing Vector<char> to cut down a bit on memory allocation.
39285         (WebCore::HTMLFormElement::formData): Replace the DeprecatedCString called
39286         enc_string with a Vector<char> called encodedData. Change to use the new
39287         FormData::create function.
39288         (WebCore::HTMLFormElement::submit): Same thing, for the mailto form code.
39290         * loader/TextResourceDecoder.cpp:
39291         (WebCore::find): Added. Helper for searching in char* with length.
39292         (WebCore::findIgnoringCase): Ditto.
39293         (WebCore::findTextEncoding): Added. Helper for looking up a text encoding
39294         when we have a char* with length rather than a null-terminated char*.
39295         (WebCore::findXMLEncoding): Changed to use char* and length rather than
39296         DeprecatedCString. Also fixed some things that would be one-character
39297         buffer overruns in a string that's not null-terminated.
39298         (WebCore::TextResourceDecoder::checkForCSSCharset): Change to use
39299         findTextEncoding rather than constructing a CString to pass to the
39300         TextEncodingconstructor.
39301         (WebCore::TextResourceDecoder::checkForHeadCharset): Ditto.
39303         * platform/network/FormData.cpp:
39304         (WebCore::FormData::FormData): Changed to start refcount at 1.
39305         (WebCore::FormData::create): Added.
39306         (WebCore::FormData::copy): Call adoptRef since refcount starts at 1.
39307         * platform/network/FormData.h: Made constructor private. Added create functions.
39309         * platform/network/mac/ResourceRequestMac.mm:
39310         (WebCore::ResourceRequest::doUpdateResourceRequest): Call FormData::create.
39311         * xml/XMLHttpRequest.cpp:
39312         (WebCore::XMLHttpRequest::send): Ditto.
39314 2008-02-23  Darin Adler  <darin@apple.com>
39316         Reviewed by Anders.
39318         - http://bugs.webkit.org/show_bug.cgi?id=17067
39319           eliminate attributes parameter from JSObject::put for speed/clarity
39321         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
39322         (WebCore::JSCSSStyleDeclaration::customPut): Remove attributes argument.
39324         * bindings/js/JSCanvasPixelArrayCustom.cpp:
39325         (WebCore::JSCanvasPixelArray::indexGetter): Use early exit idiom.
39326         (WebCore::JSCanvasPixelArray::indexSetter): Moved length check into the
39327         CanvasPixelArray object, for consistency with the getter. Removed attributes
39328         argument.
39330         * bindings/js/JSDOMWindowCustom.cpp:
39331         (WebCore::JSDOMWindow::customPut): Removed special case for variable
39332         initialization, which is not needed since that does use put any more.
39333         Removed attributes argument.
39335         * bindings/js/JSEventTargetBase.h:
39336         (WebCore::JSEventTargetBase::putValueProperty): Removed attributes argument.
39337         (WebCore::JSEventTargetBase::put): Ditto.
39338         (WebCore::JSEventTargetPrototype::self): Removed Internal flag.
39339         * bindings/js/JSEventTargetNode.cpp:
39340         (WebCore::JSEventTargetNode::put): Removed attributes argument.
39341         (WebCore::JSEventTargetNode::putValueProperty): Ditto.
39342         * bindings/js/JSEventTargetNode.h: Ditto.
39343         * bindings/js/JSHTMLAppletElementCustom.cpp:
39344         (WebCore::JSHTMLAppletElement::customPut): Ditto.
39345         * bindings/js/JSHTMLEmbedElementCustom.cpp:
39346         (WebCore::JSHTMLEmbedElement::customPut): Ditto.
39347         * bindings/js/JSHTMLInputElementBase.cpp:
39348         (WebCore::JSHTMLInputElementBase::put): Ditto.
39349         (WebCore::JSHTMLInputElementBase::putValueProperty): Ditto.
39350         * bindings/js/JSHTMLInputElementBase.h: Ditto.
39351         * bindings/js/JSHTMLObjectElementCustom.cpp:
39352         (WebCore::JSHTMLObjectElement::customPut): Ditto.
39353         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
39354         (WebCore::JSHTMLOptionsCollection::indexSetter): Ditto.
39355         * bindings/js/JSHTMLSelectElementCustom.cpp:
39356         (WebCore::JSHTMLSelectElement::indexSetter): Ditto.
39357         * bindings/js/JSHistoryCustom.cpp:
39358         (WebCore::JSHistory::customPut): Ditto.
39359         * bindings/js/JSLocation.cpp:
39360         (WebCore::JSLocation::put): Ditto.
39361         * bindings/js/JSLocation.h: Ditto.
39362         * bindings/js/JSXMLHttpRequest.cpp:
39363         (WebCore::JSXMLHttpRequest::put): Ditto.
39364         (WebCore::JSXMLHttpRequest::putValueProperty): Ditto.
39365         * bindings/js/JSXMLHttpRequest.h: Ditto.
39367         * bindings/js/kjs_dom.cpp:
39368         (WebCore::getRuntimeObject): Changed return type to JSObject*.
39369         * bindings/js/kjs_dom.h: Ditto.
39371         * bindings/js/kjs_events.cpp:
39372         (WebCore::JSClipboard::put): Removed attributes argument.
39373         (WebCore::JSClipboard::putValueProperty): Ditto.
39374         * bindings/js/kjs_events.h: Ditto.
39376         * bindings/js/kjs_html.cpp:
39377         (WebCore::runtimeObjectGetter): Updated for change to getRuntimeObject to
39378         return a JSObject. Used early exit idiom.
39379         (WebCore::runtimeObjectPropertyGetter): Ditto.
39380         (WebCore::runtimeObjectCustomGetOwnPropertySlot): Ditto.
39381         (WebCore::runtimeObjectCustomPut): Use hasProperty to check for properties
39382         that we should put with the property syntax instead of canPut.
39383         (WebCore::runtimeObjectImplementsCall): Ditto.
39384         (WebCore::runtimeObjectCallAsFunction): Ditto.
39385         * bindings/js/kjs_html.h: Removed attributes argument to runtimeObjectCustomPut.
39387         * bindings/js/kjs_window.cpp:
39388         (KJS::Window::put): Removed attributes argument.
39389         * bindings/js/kjs_window.h: Ditto.
39391         * bindings/scripts/CodeGeneratorJS.pm: Removed attributes argument from put,
39392         putValueProperty, customPut, and indexSetter.
39394         * html/CanvasPixelArray.h:
39395         (WebCore::CanvasPixelArray::set): Added index checking here, as in the get
39396         function. Before, the checking was done in the JavaScript bindings for set.
39398 2008-02-23  Brent Fulgham  <bfulgham@gmail.com>
39400         Reviewed by Adam and Darin.
39402         http://bugs.webkit.org/show_bug.cgi?id=17442
39403         Correct the Windows Cairo implementation of GraphicsContext so
39404         that Windows 'WorldTransform' is kept in sync with the Cairo
39405         transormations.
39407         Also corrects an uninitialized variable in the Cairo Windows
39408         image drag handler.
39410         WARNING: NO TEST CASES ADDED OR CHANGED
39412         * platform/graphics/cairo/GraphicsContextCairo.cpp:  Modify
39413           methods to call GraphicsContextPlatformPrivate calls, just
39414           as is done for the CoreGraphics version.  These calls are
39415           nop's for everything but Windows.
39416         (WebCore::GraphicsContext::savePlatformState):
39417         (WebCore::GraphicsContext::restorePlatformState):
39418         (WebCore::GraphicsContext::clip):
39419         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
39420         (WebCore::GraphicsContext::translate):
39421         (WebCore::GraphicsContext::concatCTM): Re-enable for Windows
39422         (WebCore::GraphicsContext::beginTransparencyLayer):
39423         (WebCore::GraphicsContext::endTransparencyLayer):
39424         (WebCore::GraphicsContext::rotate):
39425         (WebCore::GraphicsContext::scale):
39426         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
39427         * platform/graphics/win/GraphicsContextCGWin.cpp:  Move common
39428           code for handling WorldTransform calls to parent class.
39429         * platform/graphics/win/GraphicsContextCairoWin.cpp:  Add common
39430           code for handling WorldTransform calls.
39431           (WebCore::GraphicsContextPlatformPrivate::concatCTM):  Change
39432           implementation so that it only handles WorldTransform.  The
39433           Cairo update is done in GraphicsContextCairo.cpp
39434         * platform/graphics/win/GraphicsContextWin.cpp:  Call platform-private
39435           methods to keep WorldTransform in sync.
39436         (WebCore::GraphicsContextPlatformPrivate::save):
39437         (WebCore::GraphicsContextPlatformPrivate::restore):
39438         (WebCore::GraphicsContextPlatformPrivate::clip):
39439         (WebCore::GraphicsContextPlatformPrivate::scale):
39440         (WebCore::GraphicsContextPlatformPrivate::rotate):
39441         (WebCore::GraphicsContextPlatformPrivate::translate):
39442         * platform/win/DragImageCairoWin.cpp:
39443         (WebCore::createDragImageFromImage):  Correct uninitialized value
39445 2008-02-23  Dan Bernstein  <mitz@apple.com>
39447         Reviewed by Dave Hyatt.
39449         - make non-autowrapping text clear floats
39451         Test: fast/text/whitespace/nowrap-clear-float.html
39453         * rendering/RenderBlock.cpp:
39454         (WebCore::RenderBlock::nextFloatBottomBelow): Renamed nearestFloat() to
39455         this and changed to avoid comparing bottom to 0 in each iteration.
39456         (WebCore::RenderBlock::getClearDelta): Updated comment for the rename.
39457         * rendering/RenderBlock.h:
39458         * rendering/bidi.cpp:
39459         (WebCore::RenderBlock::fitBelowFloats): Added. Factored out of
39460         findNextLineBreak() and simplified.
39461         (WebCore::RenderBlock::findNextLineBreak): Changed to call
39462         fitBelowFloats(). Fixed the bug by trying to fit below floats in the
39463         case of non-wrapping text. Removed some redundancy.
39465 2008-02-23  Sam Weinig  <sam@webkit.org>
39467         Reviewed by Oliver Hunt.
39469         Fix for http://bugs.webkit.org/show_bug.cgi?id=17504
39470         Speed up DOM lists array subscription syntax by using the fast 
39471         getOwnPropertySlot and set paths
39473         - 6x speed improvement on Oliver's ImageData put test.
39475         * bindings/scripts/CodeGeneratorJS.pm: Add fast path for getOwnPropertySlot
39476         and put when an indexGetter or indexSetter is used.  We can not use the fast
39477         path if an overridingNameGetter is used as there would be no way to override.
39479 2008-02-23  Kevin Ollivier  <kevino@theolliviers.com>
39481         wx build fix after JSImageData.cpp was added.
39483         * WebCoreSources.bkl:
39485 2008-02-23  Alexey Proskuryakov  <ap@webkit.org>
39487         Windows build fix - move ThreadCondition implementation from WebCore to WTF.
39489         * WebCore.vcproj/WebCore.vcproj:
39490         * platform/win/ThreadConditionWin.cpp: Removed.
39492 2008-02-23  Alexey Proskuryakov  <ap@webkit.org>
39494         Reviewed by Darin.
39496         Move basic threading support from WebCore to WTF.
39498         One call that remains in WebCore is callOnMainThread(), and it has its own header now.
39500         * ForwardingHeaders/wtf/Locker.h: Added.
39501         * ForwardingHeaders/wtf/MessageQueue.h: Added.
39502         * ForwardingHeaders/wtf/Threading.h: Added.
39503         * GNUmakefile.am:
39504         * WebCore.pro:
39505         * WebCore.vcproj/WebCore.vcproj:
39506         * WebCore.xcodeproj/project.pbxproj:
39507         * WebCoreSources.bkl:
39508         * bindings/js/JSCustomSQLTransactionCallback.cpp:
39509         * dom/XMLTokenizer.cpp:
39510         * loader/icon/IconDatabase.cpp:
39511         (WebCore::iconDatabase):
39512         * loader/icon/IconDatabase.h:
39513         * platform/Locker.h: Removed.
39514         * platform/MainThread.h: Copied from WebCore/platform/Threading.h.
39515         (WebCore::initializeThreadingAndMainThread):
39516         * platform/MessageQueue.h: Removed.
39517         * platform/SecurityOrigin.h:
39518         * platform/Threading.h: Removed.
39519         * platform/ThreadingNone.cpp: Removed.
39520         * platform/gtk/MainThreadGtk.cpp: Copied from WebCore/platform/gtk/ThreadingGtk.cpp.
39521         * platform/gtk/ThreadingGtk.cpp: Removed.
39522         * platform/mac/MainThreadMac.mm: Copied from WebCore/platform/mac/Threading.mm.
39523         * platform/mac/Threading.mm: Removed.
39524         * platform/pthreads: Removed.
39525         * platform/pthreads/ThreadingPthreads.cpp: Removed.
39526         * platform/qt/MainThreadQt.cpp: Copied from WebCore/platform/qt/ThreadingQt.cpp.
39527         * platform/qt/ThreadingQt.cpp: Removed.
39528         * platform/sql/SQLValue.h:
39529         * platform/sql/SQLiteAuthorizer.h:
39530         * platform/sql/SQLiteDatabase.h:
39531         * platform/win/MainThreadWin.cpp: Copied from WebCore/platform/win/ThreadingWin.cpp.
39532         (WebCore::initializeThreadingAndMainThread):
39533         * platform/win/MutexWin.cpp: Removed.
39534         * platform/win/ThreadingWin.cpp: Removed.
39535         * platform/wx/MainThreadWx.cpp: Copied from WebCore/platform/wx/ThreadingWx.cpp.
39536         * platform/wx/ThreadingWx.cpp: Removed.
39537         * storage/Database.cpp:
39538         (WebCore::Database::Database):
39539         * storage/Database.h:
39540         * storage/DatabaseTask.h:
39541         * storage/DatabaseThread.h:
39542         * storage/DatabaseTracker.cpp:
39543         * storage/OriginQuotaManager.h:
39544         * storage/SQLError.h:
39545         * storage/SQLResultSet.h:
39546         * storage/SQLStatement.h:
39547         * storage/SQLStatementCallback.h:
39548         * storage/SQLStatementErrorCallback.h:
39549         * storage/SQLTransaction.h:
39550         * storage/SQLTransactionCallback.h:
39551         * storage/SQLTransactionErrorCallback.h:
39552         * webcore-wx.bkl:
39554 2008-02-23  David Kilzer  <ddkilzer@apple.com>
39556         Please clarify licensing for some files
39557         <http://bugs.webkit.org/show_bug.cgi?id=14970>
39559         Reviewed by Darin.
39561         * bindings/objc/WebScriptObject.h: Added Apple BSD-style license.
39562         * bindings/objc/WebScriptObjectPrivate.h: Ditto.
39563         * platform/text/mac/ShapeArabic.c: Added ICU license from WebCore/icu/LICENSE.
39565 2008-02-22  Justin Garcia  <justin.garcia@apple.com>
39567         Reviewed by Anders Carlsson.
39569         <rdar://problem/5714333> Add document.getSelection()
39570         
39571         Add a synonym for window.getSelection() that FF supports.  There were requests in
39572         this bugs dupes to also support the IE only document.selection, but IE's Selection
39573         object is too different than ours currently for that to be safe (specifically, we
39574         don't support enough of IE's TextRange methods on our DOM Range object yet). I
39575         filed <rdar://problem/5761233> to cover that.
39577         * dom/Document.cpp:
39578         (WebCore::Document::getSelection): Added.
39579         * dom/Document.h:
39580         * dom/Document.idl: Ditto.  JS only since this is about web compatibility.
39582 2008-02-22  Oliver Hunt  <oliver@apple.com>
39584         WX build fixes
39586         * WebCoreSources.bkl:
39588 2008-02-22  Oliver Hunt  <oliver@apple.com>
39590         Once more with the cairo/qt/wx build fixing
39592         * platform/graphics/cairo/ImageBufferCairo.cpp:
39593         * platform/graphics/qt/ImageBufferQt.cpp:
39594         * platform/graphics/wx/ImageBufferWx.cpp:
39596 2008-02-22  Mark Rowe  <mrowe@apple.com>
39598         Windows build fix.  Add missing include of DeprecatedCString.h and sort existing includes.
39600         * platform/win/PasteboardWin.cpp:
39602 2008-02-22  Mark Rowe  <mrowe@apple.com>
39604         Speculative Windows build fix.
39606         * platform/win/ClipboardUtilitiesWin.cpp:  Add missing include of DeprecatedCString.h and sort existing includes.
39607         * platform/win/ClipboardWin.cpp:  Ditto.
39609 2008-02-22  Oliver Hunt  <oliver@apple.com>
39611         Build fix for windows, wx and qt
39613         * html/CanvasPixelArray.h:
39614         (WebCore::CanvasPixelArray::set):
39616 2008-02-22  Oliver Hunt  <oliver@apple.com>
39618         Unbreak windows vcproj
39620         * WebCore.vcproj/WebCore.vcproj:
39622 2008-02-22  Oliver Hunt  <oliver@apple.com>
39624         Reviewed by Sam W.
39626         Support Canvas.getImageData and Canvas.createImageData
39627         
39628         This patch adds support for all the pixel reading portions
39629         of the HTML5 Canvas spec.  There are two new types ImageData
39630         and CanvasPixelArray which are used to provide the HTML5
39631         ImageData object, and the required semantics for assignment
39632         to the ImageData data array.
39633         
39634         We only implement the CG version of ImageBuffer::getImageData,
39635         but the logic is null safe, so this will not introduce any
39636         crashes into other platforms, unfortunately it will result in
39637         JS Object detection "lying" on non-CG platforms.
39639         Tests: fast/canvas/canvas-ImageData-behaviour.html
39640                fast/canvas/canvas-getImageData.html
39642         * DerivedSources.make:
39643         * GNUmakefile.am:
39644         * WebCore.pro:
39645         * WebCore.vcproj/WebCore.vcproj:
39646         * WebCore.xcodeproj/project.pbxproj:
39647         * bindings/js/JSCanvasPixelArrayCustom.cpp: Added.
39648         (WebCore::JSCanvasPixelArray::indexGetter):
39649         (WebCore::JSCanvasPixelArray::indexSetter):
39650         (WebCore::toJS):
39651         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
39652         * bindings/scripts/CodeGeneratorJS.pm:
39653         * html/CanvasPixelArray.cpp: Added.
39654         (WebCore::CanvasPixelArray::create):
39655         * html/CanvasPixelArray.h: Added.
39656         (WebCore::CanvasPixelArray::data):
39657         (WebCore::CanvasPixelArray::length):
39658         (WebCore::CanvasPixelArray::set):
39659         (WebCore::CanvasPixelArray::get):
39660         * html/CanvasPixelArray.idl: Added.
39661         * html/CanvasRenderingContext2D.cpp:
39662         (WebCore::createEmptyImageData):
39663         (WebCore::CanvasRenderingContext2D::createImageData):
39664         (WebCore::CanvasRenderingContext2D::getImageData):
39665         * html/CanvasRenderingContext2D.h:
39666         * html/CanvasRenderingContext2D.idl:
39667         * html/HTMLCanvasElement.cpp:
39668         (WebCore::HTMLCanvasElement::convertLogicalToDevice):
39669         (WebCore::HTMLCanvasElement::createImageBuffer):
39670         * html/HTMLCanvasElement.h:
39671         * html/ImageData.cpp: Added.
39672         (WebCore::ImageData::create):
39673         (WebCore::ImageData::ImageData):
39674         * html/ImageData.h: Added.
39675         (WebCore::ImageData::width):
39676         (WebCore::ImageData::height):
39677         (WebCore::ImageData::data):
39678         * html/ImageData.idl: Added.
39679         * platform/graphics/ImageBuffer.h:
39680         * platform/graphics/cairo/ImageBufferCairo.cpp:
39681         (WebCore::ImageBuffer::getImageData):
39682         * platform/graphics/cg/ImageBufferCG.cpp:
39683         (WebCore::ImageBuffer::getImageData):
39684         * platform/graphics/qt/ImageBufferQt.cpp:
39685         (WebCore::ImageBuffer::getImageData):
39686         * platform/graphics/wx/ImageBufferWx.cpp:
39687         (WebCore::ImageBuffer::getImageData):
39689 2008-02-22  Sam Weinig  <sam@webkit.org>
39691         Rubber-stamped by Adam Roben.
39693         Rid the project of the Devil known as DeprecatedString!
39695         * GNUmakefile.am:
39696         * WebCore.base.exp:
39697         * WebCore.pro:
39698         * WebCore.vcproj/WebCore.vcproj:
39699         * WebCore.xcodeproj/project.pbxproj:
39700         * WebCoreSources.bkl:
39701         * dom/Node.h:
39702         * html/HTMLFormElement.cpp:
39703         * platform/DeprecatedString.cpp: Removed.
39704         * platform/DeprecatedString.h: Removed.
39705         * platform/graphics/qt/IconQt.cpp:
39706         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
39707         * platform/gtk/CookieJarGtk.cpp:
39708         * platform/gtk/CursorGtk.cpp:
39709         * platform/gtk/KeyEventGtk.cpp:
39710         * platform/mac/DeprecatedStringMac.mm: Removed.
39711         * platform/network/qt/ResourceHandleQt.cpp:
39712         * platform/network/win/CookieJarWin.cpp:
39713         (WebCore::cookies):
39714         * platform/qt/ClipboardQt.cpp:
39715         * platform/qt/CookieJarQt.cpp:
39716         * platform/qt/CursorQt.cpp:
39717         * platform/symbian/DeprecatedStringSymbian.cpp: Removed.
39718         * platform/text/AtomicString.cpp:
39719         * platform/text/AtomicString.h:
39720         * platform/text/PlatformString.h:
39721         * platform/text/String.cpp:
39722         * platform/text/StringImpl.cpp:
39723         * platform/text/qt/StringQt.cpp:
39724         (WebCore::String::String):
39725         * platform/text/wx/StringWx.cpp:
39726         * platform/win/BString.cpp:
39727         * platform/win/BString.h:
39728         * platform/win/PasteboardWin.cpp:
39730 2008-02-22  Sam Weinig  <sam@webkit.org>
39732         Reviewed by Geoff Garen.
39734         - Remove use of DeprecatedString in CSSStyleSelector.
39736         * css/CSSStyleSelector.cpp:
39737         (WebCore::findHash): Removed.  Use find instead.
39738         (WebCore::findSlashDotDotSlash): Changed to take a UChar* and a length.
39739         (WebCore::findSlashSlash): Ditto.
39740         (WebCore::findSlashDotSlash): Ditto.
39741         (WebCore::containsColonSlashSlash): Ditto.
39742         (WebCore::cleanPath): Change to operate on a String.
39743         (WebCore::checkPseudoState): Changed to use a Vector as a buffer.
39745 2008-02-22  Geoffrey Garen  <ggaren@apple.com>
39747         Reviewed by Sam Weinig.
39748         
39749         Fixed <rdar://problem/5057509> Repro leak of JSXMLHttpRequest and
39750         associated objects @ www.viamichelin.it, which was probably an underlying
39751         cause of <rdar://problem/5744037> Gmail out of memory (17455)
39752         
39753         If SubresourceLoader::create returned NULL, we would ref() / gcProtect()
39754         the XMLHttpRequest but think we hadn't, therefore never
39755         calling deref() / gcUnprotect().
39756         
39757         This could happen at gmail.com, since gmail.com attempts to send
39758         XMLHttpRequests from unload handlers in order to gather usage statistics.
39759         (According to comments in the code, SubresourceLoader::create returns
39760         NULL when called from an unload handler.)
39762         The solution is to ref() / gcProtect() only if SubresourceLoader::create
39763         doesn't return NULL. This make sense, since we only need to protect the
39764         request as long as it has an outstanding network transaction.
39765         
39766         * xml/XMLHttpRequest.cpp:
39767         (WebCore::XMLHttpRequest::XMLHttpRequest):
39768         (WebCore::XMLHttpRequest::send):
39770 2008-02-22  Darin Adler  <darin@apple.com>
39772         Reviewed, tweaked and landed by Sam.
39774         - Make RegularExpression operate on Strings instead of DeprecatedStrings.
39776         * dom/DOMImplementation.cpp:
39777         (WebCore::DOMImplementation::isXMLMIMEType): Use string instead of DeprecatedString
39778         to build up the RegularExpression.
39779         * page/Frame.cpp:
39780         (WebCore::createRegExpForLabels): Use String instead of DeprecatedString.
39781         (WebCore::Frame::searchForLabelsAboveCell): Ditto.
39782         (WebCore::Frame::searchForLabelsBeforeElement): Ditto.
39783         (WebCore::Frame::matchLabelsAgainstElement): Ditto.
39784         * page/Frame.h:
39785         * page/mac/FrameMac.mm:
39786         (WebCore::regExpForLabels): Ditto.
39787         (WebCore::Frame::searchForNSLabelsAboveCell): Ditto.
39788         (WebCore::Frame::searchForLabelsBeforeElement): Ditto.
39789         (WebCore::Frame::matchLabelsAgainstElement): Ditto.
39791         * platform/text/RegularExpression.cpp:
39792         (WebCore::RegularExpression::Private::Private):
39793         (WebCore::RegularExpression::Private::compile):
39794         (WebCore::RegularExpression::RegularExpression):
39795         (WebCore::RegularExpression::operator=):
39796         (WebCore::RegularExpression::pattern):
39797         (WebCore::RegularExpression::match):
39798         (WebCore::RegularExpression::search):
39799         (WebCore::RegularExpression::searchRev):
39800         (WebCore::replace): Added.
39801         * platform/text/RegularExpression.h:
39802         Change functions to take Strings as input instead of DeprecatedStrings and
39803         reduce the complexity of the class by removing unneeded globbing support.
39805 2008-02-22  Jon Honeycutt  <jhoneycutt@apple.com>
39807         Reviewed by Anders.
39809         <rdar://problem/5760360> REGRESSION(r30376): Crash loading plugin page
39810         during stress test (after only 5 min) - null dereference
39812         Full-frame plug-ins create PluginStream objects without loaders, as the
39813         PluginView receives the loading callbacks. We were trying to call
39814         setDefersLoading on these null pointers.
39816         * plugins/PluginStream.cpp:
39817         (WebCore::PluginStream::startStream): Add null check.
39818         (WebCore::PluginStream::destroyStream): Same.
39819         (WebCore::PluginStream::deliverData): Same.
39821 2008-02-22  Darin Adler  <darin@apple.com>
39823         Reviewed and tweaked by Jon Honeycutt. Reviewed and landed by Sam.
39825         - Remove uses of DeprecatedString in Windows plugin code.
39827         * plugins/win/PluginPackageWin.cpp:
39828         (WebCore::getVersionInfo): Cleanup formatting.
39829         (WebCore::PluginPackage::freeLibraryTimerFired): Remove un-needed variable name.
39830         (WebCore::PluginPackage::storeFileVersion): Move casts.
39831         (WebCore::PluginPackage::fetchInfo): Use OwnArrayPtr and switch to more efficient
39832         use of Vectors.
39833         (WebCore::PluginPackage::load): Fix whitespace.
39834         (WebCore::PluginPackage::hash): Make the hashCodes const
39835         * plugins/win/PluginViewWin.cpp:
39836         (WebCore::makeURL): Use String instead of DeprecatedString.
39837         (WebCore::parseRFC822HeaderFields): Ditto.
39838         (WebCore::PluginView::handlePost): Ditto.
39839         (WebCore::PluginView::status): Ditto.
39841 2008-02-22  Darin Adler  <darin@apple.com>
39843         Reviewed, tweaked and landed by Sam.
39845         - Don't use DeprecatedString in HTMLTokenizer.
39847         * html/HTMLTokenizer.cpp:
39848         (WebCore::HTMLTokenizer::finish):
39849         * platform/text/PlatformString.h:
39850         (WebCore::find):
39852 2008-02-21  Sam Weinig  <sam@webkit.org>
39854         Reviewed by Anders Carlsson.
39856         Fix for <rdar://problem/5757946>
39858         - Parse URLs before checking whether they are javascript: urls
39859           (which require security checks).
39861         * bindings/js/JSAttrCustom.cpp:
39862         (WebCore::JSAttr::setValue):
39863         * bindings/js/JSElementCustom.cpp:
39864         (WebCore::allowSettingSrcToJavascriptURL):
39865         * bindings/js/JSHTMLFrameElementCustom.cpp:
39866         (WebCore::allowSettingJavascriptURL):
39867         * bindings/js/JSHTMLIFrameElementCustom.cpp:
39868         (WebCore::JSHTMLIFrameElement::setSrc):
39870 2008-02-21  Ada Chan  <adachan@apple.com>
39872         <rdar://problem/5757873> Buffer overrun in DeprecatedCString::find() in WebCore
39873         We could get a buffer overrun in DeprecatedCString::find() if the end of the
39874         string matches a beginning portion of the substring, for example, if string is
39875         "a" but the substring is "ab".
39876         The code as is also will not match things correctly under certain situations
39877         since the inner while loop increments the index. For example, we wouldn't find
39878         a match if the string is "aab..." and the substring is "ab".  Changed the 
39879         inner while loop to increment a temporary index into str.
39880         
39881         Test: fast/loader/charset-parse.html
39883         Reviewed by Dan Berstein.
39885         * platform/DeprecatedCString.cpp:
39886         (WebCore::DeprecatedCString::find):
39888 2008-02-21  David Hyatt  <hyatt@apple.com>
39890         Fix for bug 17301.  CSS media queries need to use the correct viewport
39891         when contained in documents inside iframes (rather than always using the
39892         top-level document's viewport).  CSS media queries based on the viewport
39893         also needed to be dynamic and update as you resize the window (this is
39894         a HOT feature). :)
39896         This patch gets Acid3 up to 86/100 with 3 colored boxes filled in.
39898         Reviewed by olliej
39900         Added fast/media/viewport-media-query.html
39902         * css/CSSStyleSelector.cpp:
39903         (WebCore::CSSStyleSelector::CSSStyleSelector):
39904         (WebCore::CSSStyleSelector::addViewportDependentMediaQueryResult):
39905         (WebCore::CSSStyleSelector::affectedByViewportChange):
39906         * css/CSSStyleSelector.h:
39907         (WebCore::MediaQueryResult::MediaQueryResult):
39908         * css/MediaQueryEvaluator.cpp:
39909         (WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
39910         (WebCore::MediaQueryEvaluator):
39911         (WebCore::MediaQueryEvaluator::eval):
39912         (WebCore::colorMediaFeatureEval):
39913         (WebCore::monochromeMediaFeatureEval):
39914         (WebCore::device_aspect_ratioMediaFeatureEval):
39915         (WebCore::device_pixel_ratioMediaFeatureEval):
39916         (WebCore::gridMediaFeatureEval):
39917         (WebCore::device_heightMediaFeatureEval):
39918         (WebCore::device_widthMediaFeatureEval):
39919         (WebCore::heightMediaFeatureEval):
39920         (WebCore::widthMediaFeatureEval):
39921         (WebCore::min_colorMediaFeatureEval):
39922         (WebCore::max_colorMediaFeatureEval):
39923         (WebCore::min_monochromeMediaFeatureEval):
39924         (WebCore::max_monochromeMediaFeatureEval):
39925         (WebCore::min_device_aspect_ratioMediaFeatureEval):
39926         (WebCore::max_device_aspect_ratioMediaFeatureEval):
39927         (WebCore::min_device_pixel_ratioMediaFeatureEval):
39928         (WebCore::max_device_pixel_ratioMediaFeatureEval):
39929         (WebCore::min_heightMediaFeatureEval):
39930         (WebCore::max_heightMediaFeatureEval):
39931         (WebCore::min_widthMediaFeatureEval):
39932         (WebCore::max_widthMediaFeatureEval):
39933         (WebCore::min_device_heightMediaFeatureEval):
39934         (WebCore::max_device_heightMediaFeatureEval):
39935         (WebCore::min_device_widthMediaFeatureEval):
39936         (WebCore::max_device_widthMediaFeatureEval):
39937         * css/MediaQueryEvaluator.h:
39938         * css/MediaQueryExp.cpp:
39939         (WebCore::MediaQueryExp::~MediaQueryExp):
39940         * css/MediaQueryExp.h:
39941         (WebCore::MediaQueryExp::value):
39942         (WebCore::MediaQueryExp::isViewportDependent):
39943         * html/HTMLMediaElement.cpp:
39944         (WebCore::HTMLMediaElement::pickMedia):
39945         * page/FrameView.cpp:
39946         (WebCore::FrameView::layout):
39948 2008-02-21  Anders Carlsson  <andersca@apple.com>
39950         Reviewed by Sam.
39952         Make more classes start out with a refcount of 1.
39954         * dom/QualifiedName.cpp:
39955         (WebCore::QNameComponentsTranslator::translate):
39956         (WebCore::QualifiedName::QualifiedName):
39957         * dom/QualifiedName.h:
39958         (WebCore::QualifiedName::QualifiedNameImpl::create):
39959         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
39960         * history/BackForwardList.cpp:
39961         (WebCore::BackForwardList::BackForwardList):
39962         * history/BackForwardList.h:
39963         (WebCore::BackForwardList::create):
39964         * page/Page.cpp:
39965         (WebCore::Page::Page):
39966         * platform/text/CString.cpp:
39967         (WebCore::CString::init):
39968         (WebCore::CString::newUninitialized):
39969         (WebCore::CString::copyBufferIfNeeded):
39970         * platform/text/CString.h:
39971         (WebCore::CStringBuffer::create):
39972         (WebCore::CStringBuffer::CStringBuffer):
39974 2008-02-21  Kevin Ollivier  <kevino@theolliviers.com>
39976         wx build fix for the domString() -> string() rename in r30443.
39978         * platform/graphics/wx/FontPlatformDataWx.cpp:
39979         (WebCore::FontPlatformData::FontPlatformData):
39981 2008-02-21  Antti Koivisto  <antti@apple.com>
39983         Reviewed by Sam Weinig.
39985         <rdar://problem/5753789>
39986         REGRESSION: 1.5% -2% Sunspider regression from r30009 (ebay photo upload hang)
39987         
39988         Ensure all versions of allowsAccessFrom are inlined to single functions. 
39989         This is a 2% win in browser hosted Sunspider. 
39991         * bindings/js/kjs_window.cpp:
39992         (KJS::Window::allowsAccessFrom):
39993         (KJS::Window::allowsAccessFromPrivate):
39994         * bindings/js/kjs_window.h:
39996 2008-02-21  Dan Bernstein  <mitz@apple.com>
39998         Reviewed by Sam Weinig.
40000         - minor cleanup
40002         * rendering/bidi.cpp:
40003         (WebCore::bidiNext): Removed redundant isBR() check -- isText() returns
40004         true for RenderLineBreak.
40005         (WebCore::bidiFirst): Ditto.
40006         (WebCore::shouldSkipWhitespaceAfterStartObject):
40007         (WebCore::RenderBlock::findNextLineBreak):
40009 2008-02-21  Geoffrey Garen  <ggaren@apple.com>
40011         Reviewed by David Harrison.
40012         
40013         Fixed <rdar://problem/5756125> REGRESSION: A crash occurs at 
40014         WebCore::Frame::scriptProxy() when completing a search with Package Tracker widget
40016         Test: fast/dom/script-element-without-frame-crash.html
40018         * html/HTMLTokenizer.cpp:
40019         (WebCore::HTMLTokenizer::parseTag): Added back a NULL check that was
40020         accidentally removed in r30325.
40022 2008-02-21  Rodney Dawes  <dobey@wayofthemonkey.com>
40024         GTK+ build fix. s/domString()/string()/
40026         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
40027         (FontPlatformData::FontPlatformData):
40029 2008-02-20  Dan Bernstein  <mitz@apple.com>
40031         Reviewed by Dave Hyatt.
40033         - fix http://bugs.webkit.org/show_bug.cgi?id=17465
40034           REGRESSION: <DIV> tokenized into Div if still searching for DOCTYPE
40036         Test: fast/tokenizer/doctype-search-reset.html
40038         * html/HTMLTokenizer.cpp:
40039         (WebCore::HTMLTokenizer::parseTag):
40041 2008-02-20  Dan Bernstein  <mitz@apple.com>
40043         Reviewed by Dave Hyatt.
40045         - fix http://bugs.webkit.org/show_bug.cgi?id=17464
40046           REGRESSION: Crash in RenderBlock::findNextLineBreak reading r30444 commit email in GMail
40048         Test: fast/text/wbr-in-pre-crash.html
40050         * rendering/bidi.cpp:
40051         (WebCore::RenderBlock::findNextLineBreak):
40053 2008-02-20  Oliver Hunt  <oliver@apple.com>
40055         Reviewed by Hyatt.
40057         Bug 17303: Canvas crash in ImageBuffer
40059         We handle a null GraphicsContext everywhere, but we weren't checking for 
40060         a null ImageBuffer, which is what will result in a null GraphicsContext in
40061         the first place.
40063         Test: fast/canvas/access-zero-sized-canvas.html
40065         * html/HTMLCanvasElement.cpp:
40067 2008-02-20  David Hyatt  <hyatt@apple.com>
40069         Fix the layout test failure that never should have passed in the first
40070         place by making changes to media lists actually result in the recomputation
40071         of the style selector.  Now it passes for the right reasons and not because
40072         of dumb luck.
40074         Reviewed by Sam Weinig
40076         * css/MediaList.cpp:
40077         (WebCore::MediaList::deleteMedium):
40078         (WebCore::MediaList::setMediaText):
40079         (WebCore::MediaList::appendMedium):
40080         (WebCore::MediaList::notifyChanged):
40081         * css/MediaList.h:
40082         * dom/Document.cpp:
40083         (WebCore::Document::attach):
40085 2008-02-20  Darin Adler  <darin@apple.com>
40087         Reviewed, tweaked and landed by Sam.
40089         - make markup functions not use DeprecatedString.
40091         * editing/markup.cpp:
40092         (WebCore::append): Added.
40093         (WebCore::escapeContentText): Build up string using a Vector.
40094         (WebCore::appendStartMarkup): Use String instead of DeprecatedString.
40096 2008-02-20  Darin Adler  <darin@apple.com>
40098         Reviewed, tweaked and landed by Sam.
40100         - make TextIterator use a Vector instead of a DeprecatedString.
40102         * editing/TextIterator.cpp:
40103         (WebCore::CharacterIterator::string): Build up the String using a
40104         Vector.
40105         (WebCore::WordAwareIterator::advance): Switch to using Vector functions.
40106         (WebCore::WordAwareIterator::length): Ditto.
40107         (WebCore::WordAwareIterator::characters): Ditto.
40108         * editing/TextIterator.h: Use a Vector<UChar> for the buffer instead
40109         of DeprecatedString.
40111 2008-02-20  Darin Adler  <darin@apple.com>
40113         Reviewed, tweaked and landed by Sam.
40115         - make HTMLInterchange return a String instead of a DeprecatedString
40117         * editing/HTMLInterchange.cpp:
40118         (WebCore::): Return a String from convertedSpaceString.
40119         (WebCore::convertHTMLTextToInterchangeFormat): Use a Vector instead of
40120         a DeprecatedString to build up the return String.
40121         * editing/HTMLInterchange.h:
40123 2008-02-20  Eric Seidel  <eric@webkit.org>
40125         Reviewed by Oliver.
40127         Remove m_drawingContext and change m_data to m_imageBuffer
40129         * html/HTMLCanvasElement.cpp:
40130         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
40131         (WebCore::HTMLCanvasElement::reset):
40132         (WebCore::HTMLCanvasElement::paint):
40133         (WebCore::HTMLCanvasElement::createImageBuffer):
40134         (WebCore::HTMLCanvasElement::buffer):
40135         (WebCore::HTMLCanvasElement::createPlatformImage):
40136         * html/HTMLCanvasElement.h:
40138 2008-02-20  Anders Carlsson  <andersca@apple.com>
40140         Reviewed by Sam.
40142         Rename AtomicString::domString() to AtomicString::string().
40143         
40144         * css/CSSComputedStyleDeclaration.cpp:
40145         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
40146         * css/CSSFontSelector.cpp:
40147         (WebCore::CSSFontSelector::getFontData):
40148         * dom/Attr.cpp:
40149         (WebCore::Attr::createTextChild):
40150         * dom/Comment.cpp:
40151         (WebCore::Comment::nodeName):
40152         * dom/Document.cpp:
40153         (WebCore::Document::recalcStyleSelector):
40154         (WebCore::Document::setHTMLWindowEventListener):
40155         (WebCore::Document::formElementsState):
40156         * dom/StyledElement.cpp:
40157         (WebCore::StyledElement::parseMappedAttribute):
40158         * dom/Text.cpp:
40159         (WebCore::Text::nodeName):
40160         * editing/SelectionController.cpp:
40161         (WebCore::SelectionController::debugRenderer):
40162         * html/HTMLCollection.cpp:
40163         (WebCore::HTMLCollection::checkForNameMatch):
40164         * html/HTMLElement.cpp:
40165         (WebCore::HTMLElement::nodeName):
40166         (WebCore::HTMLElement::setHTMLEventListener):
40167         * html/HTMLFormCollection.cpp:
40168         (WebCore::HTMLFormCollection::getNamedFormItem):
40169         * html/HTMLImageElement.cpp:
40170         (WebCore::HTMLImageElement::parseMappedAttribute):
40171         (WebCore::HTMLImageElement::isURLAttribute):
40172         * html/HTMLLinkElement.cpp:
40173         (WebCore::HTMLLinkElement::parseMappedAttribute):
40174         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
40175         * html/HTMLObjectElement.cpp:
40176         (WebCore::HTMLObjectElement::isURLAttribute):
40177         (WebCore::HTMLObjectElement::containsJavaApplet):
40178         * html/HTMLParamElement.cpp:
40179         (WebCore::HTMLParamElement::isURLAttribute):
40180         * html/HTMLParser.cpp:
40181         (WebCore::HTMLParser::handleIsindex):
40182         * html/HTMLScriptElement.cpp:
40183         (WebCore::HTMLScriptElement::insertedIntoDocument):
40184         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript):
40185         * html/HTMLStyleElement.cpp:
40186         (WebCore::HTMLStyleElement::parseMappedAttribute):
40187         * html/HTMLTokenizer.cpp:
40188         (WebCore::HTMLTokenizer::parseTag):
40189         * html/HTMLViewSourceDocument.cpp:
40190         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
40191         * loader/FrameLoader.cpp:
40192         (WebCore::FrameLoader::saveDocumentState):
40193         * page/FrameTree.cpp:
40194         (WebCore::FrameTree::uniqueChildName):
40195         * platform/text/AtomicString.h:
40196         (WebCore::AtomicString::string):
40197         (WebCore::AtomicString::contains):
40198         (WebCore::AtomicString::find):
40199         (WebCore::AtomicString::startsWith):
40200         (WebCore::AtomicString::endsWith):
40201         * rendering/RenderPartObject.cpp:
40202         (WebCore::RenderPartObject::updateWidget):
40203         * svg/SVGElement.cpp:
40204         (WebCore::SVGElement::addSVGEventListener):
40205         * svg/SVGSVGElement.cpp:
40206         (WebCore::SVGSVGElement::addSVGWindowEventListener):
40207         * xml/XPathFunctions.cpp:
40208         (WebCore::XPath::FunLocalName::evaluate):
40209         (WebCore::XPath::FunNamespaceURI::evaluate):
40210         (WebCore::XPath::FunName::evaluate):
40212 2008-02-20  Brent Fulgham  <bfulgham@gmail.com>
40214         Reviewed by Dan.
40216         http://bugs.webkit.org/show_bug.cgi?id=17336
40217         Provide implementations for Windows (Cairo) build of WebKit that
40218         handles font formatting.
40219         - Split font implementation files to allow maximal code sharing
40220           between CG and Cairo back-ends. 
40222         * WebCore.vcproj/WebCore.vcproj:
40223         * platform/graphics/SimpleFontData.h:   Add signatures for private win
40224           initialization functions.
40225         * platform/graphics/win/FontCacheWin.cpp:
40226         (WebCore::FontCache::platformInit):
40227         (WebCore::FontCache::createFontPlatformData):
40228         * platform/graphics/win/FontCairoWin.cpp: Removed.  Universal version
40229           is now part of platform/graphics/cairo.
40230         * platform/graphics/win/FontCustomPlatformDataCairo.cpp: Added.
40231         (WebCore::FontCustomPlatformDataCairo::~FontCustomPlatformDataCairo):
40232         (WebCore::FontCustomPlatformDataCairo::fontPlatformData):
40233         (WebCore::releaseData):
40234         (WebCore::createFontCustomPlatformData):
40235         * platform/graphics/win/FontCustomPlatformDataCairo.h: Added.
40236         (WebCore::FontCustomPlatformDataCairo::FontCustomPlatformDataCairo):
40237         * platform/graphics/win/FontPlatformData.h:
40238         (WebCore::FontPlatformData::FontPlatformData):
40239         (WebCore::FontPlatformData::fontFace):
40240         (WebCore::FontPlatformData::scaledFont):
40241         (WebCore::FontPlatformData::operator==):
40242         * platform/graphics/win/FontPlatformDataCGWin.cpp: Copied from WebCore/platform/graphics/win/FontPlatformDataWin.cpp.
40243         (WebCore::FontPlatformData::platformDataInit):
40244         * platform/graphics/win/FontPlatformDataCairoWin.cpp: Added.
40245         (WebCore::FontPlatformData::platformDataInit):
40246         (WebCore::FontPlatformData::FontPlatformData):
40247         (WebCore::FontPlatformData::setFont):
40248         * platform/graphics/win/FontPlatformDataWin.cpp:  Moved CG-specific
40249           code to FontPlatformDataCG.cpp.
40250         (WebCore::FontPlatformData::FontPlatformData):
40251         * platform/graphics/win/GlyphPageTreeNodeCGWin.cpp: Copied from WebCore/platform/graphics/win/GlyphPageTreeNodeWin.cpp.
40252         * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp: Copied from WebCore/platform/graphics/win/GlyphPageTreeNodeWin.cpp.
40253         (WebCore::GlyphPage::fill):
40254         * platform/graphics/win/GlyphPageTreeNodeWin.cpp: Removed.  Replaced
40255           with CG- and Cairo-specific versions.
40256         * platform/graphics/win/SimpleFontDataCGWin.cpp:
40257         (WebCore::SimpleFontData::platformInit):
40258         (WebCore::SimpleFontData::platformDestroy):
40259         (WebCore::SimpleFontData::platformWidthForGlyph):
40260         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
40261         (WebCore::SimpleFontData::platformInit):
40262         (WebCore::SimpleFontData::platformDestroy):
40263         (WebCore::SimpleFontData::platformWidthForGlyph):
40264         (WebCore::SimpleFontData::setFont):
40265         * platform/graphics/win/SimpleFontDataWin.cpp:
40266         (WebCore::SimpleFontData::initGDIFont):
40267         (WebCore::SimpleFontData::platformCommonDestroy):
40268         (WebCore::SimpleFontData::widthForGDIGlyph):
40270 2008-02-20  Darin Adler  <darin@apple.com>
40272         Reviewed by Sam.
40274         * dom/Node.h: Took out unneeded forward declaration of TextStream.
40276 2008-02-20  Darin Adler  <darin@apple.com>
40278         Reviewed by Sam.
40280         * rendering/RenderObject.h: Took out unneeded forward declaration of TextStream.
40282 2008-02-20  David Hyatt  <hyatt@apple.com>
40284         Fix for bug 16760, incorrect <object> MIME type handling and fallback
40285         handling.
40287         Reviewed by darin
40289         * html/HTMLImageLoader.cpp:
40290         (WebCore::HTMLImageLoader::notifyFinished):
40291         If the image had an error, make sure to do <object> fallback.
40293         * html/HTMLObjectElement.cpp:
40294         (WebCore::HTMLObjectElement::renderFallbackContent):
40295         Before doing fallback check if there is a MIME type mismatch between
40296         an image type and a non-image type.  If so, detach and re-attach after
40297         storing the correct MIME type.
40299         * loader/loader.cpp:
40300         (WebCore::Loader::didReceiveData):
40301         Consider it an error when a 404 is encountered on a CachedResource load.
40303 2008-02-20  Anders Carlsson  <andersca@apple.com>
40305         Reviewed by Sam.
40307         StringImpl constructors used by AtomicString should start with a refcount of 1.
40308         
40309         * platform/text/AtomicString.cpp:
40310         (WebCore::AtomicString::add):
40311         * platform/text/AtomicString.h:
40312         * platform/text/StringImpl.cpp:
40313         (WebCore::StringImpl::StringImpl):
40315 2008-02-20  Darin Adler  <darin@apple.com>
40317         * bindings/js/kjs_navigator.cpp:
40318         (WebCore::needsYouTubeQuirk): Tweak comments.
40320 2008-02-20  Anders Carlsson  <andersca@apple.com>
40322         Reviewed by Darin.
40324         Change all refcounted classes in page/ to start with a refcount of 1.
40326         * page/BarInfo.cpp:
40327         (WebCore::BarInfo::BarInfo):
40328         * page/BarInfo.h:
40329         (WebCore::BarInfo::create):
40330         * page/Console.cpp:
40331         (WebCore::Console::Console):
40332         * page/Console.h:
40333         (WebCore::Console::create):
40334         * page/DOMSelection.cpp:
40335         (WebCore::DOMSelection::DOMSelection):
40336         * page/DOMSelection.h:
40337         (WebCore::DOMSelection::create):
40338         * page/DOMWindow.cpp:
40339         (WebCore::DOMWindow::DOMWindow):
40340         (WebCore::DOMWindow::screen):
40341         (WebCore::DOMWindow::history):
40342         (WebCore::DOMWindow::locationbar):
40343         (WebCore::DOMWindow::menubar):
40344         (WebCore::DOMWindow::personalbar):
40345         (WebCore::DOMWindow::scrollbars):
40346         (WebCore::DOMWindow::statusbar):
40347         (WebCore::DOMWindow::toolbar):
40348         (WebCore::DOMWindow::console):
40349         (WebCore::DOMWindow::getSelection):
40350         * page/DOMWindow.h:
40351         (WebCore::DOMWindow::create):
40352         * page/Frame.cpp:
40353         (WebCore::Frame::domWindow):
40354         * page/History.cpp:
40355         (WebCore::History::History):
40356         * page/History.h:
40357         (WebCore::History::create):
40358         * page/InspectorController.cpp:
40359         (WebCore::InspectorResource::create):
40360         (WebCore::InspectorResource::InspectorResource):
40361         (WebCore::InspectorDatabaseResource::create):
40362         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
40363         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
40364         (WebCore::InspectorController::identifierForInitialRequest):
40365         (WebCore::InspectorController::didOpenDatabase):
40366         * page/Plugin.h:
40367         (WebCore::Plugin::create):
40368         (WebCore::Plugin::Plugin):
40369         * page/Screen.cpp:
40370         (WebCore::Screen::Screen):
40371         * page/Screen.h:
40372         (WebCore::Screen::create):
40374 2008-02-20  Sam Weinig  <sam@webkit.org>
40376         Reviewed by Darin and Geoff.
40378         - <rdar://problem/5754378> work around missing video on YouTube front page with a site-specific hack
40380         * WebCore.base.exp: Updated.
40382         * bindings/js/kjs_navigator.cpp:
40383         (WebCore::needsYouTubeQuirk): Added. Return true on Windows only when the quirk is needed.
40384         (WebCore::Navigator::getValueProperty): For the appVersion property, if needsYouTubeQuirk
40385         return true, then return the empty string.
40387         * page/Settings.cpp:
40388         (WebCore::Settings::Settings): Set m_needsSiteSpecificQuirks to false.
40389         (WebCore::Settings::setNeedsSiteSpecificQuirks): Added.
40390         * page/Settings.h: Added m_needsSiteSpecificQuirks.
40391         (WebCore::Settings::needsSiteSpecificQuirks): Added.
40393 2008-02-20  David Hyatt  <hyatt@apple.com>
40395         Fix for bug 12751, doctype nodes aren't part of the Document (Acid3).
40397         Reviewed by Sam Weinig
40399         Many tests added in fast/doctypes.
40401         * dom/DOMImplementation.cpp:
40402         (WebCore::DOMImplementation::createDocument):
40403         (WebCore::DOMImplementation::createHTMLDocument):
40404         * dom/Document.cpp:
40405         (WebCore::Document::Document):
40406         (WebCore::Document::setDocType):
40407         (WebCore::Document::attach):
40408         (WebCore::Document::getImageMap):
40409         * dom/Document.h:
40410         (WebCore::Document::doctype):
40411         (WebCore::Document::):
40412         (WebCore::Document::determineParseMode):
40413         (WebCore::Document::setParseMode):
40414         (WebCore::Document::parseMode):
40415         (WebCore::Document::inCompatMode):
40416         (WebCore::Document::inAlmostStrictMode):
40417         (WebCore::Document::inStrictMode):
40418         * dom/DocumentType.cpp:
40419         (WebCore::DocumentType::cloneNode):
40420         (WebCore::DocumentType::insertedIntoDocument):
40421         (WebCore::DocumentType::removedFromDocument):
40422         * dom/DocumentType.h:
40423         * dom/Node.cpp:
40424         (WebCore::Node::childAllowed):
40425         * dom/StyledElement.cpp:
40426         (WebCore::StyledElement::attributeChanged):
40427         * dom/XMLTokenizer.cpp:
40428         (WebCore::XMLTokenizer::internalSubset):
40429         * editing/markup.cpp:
40430         (WebCore::appendStartMarkup):
40431         * html/HTMLAppletElement.cpp:
40432         (WebCore::HTMLAppletElement::createRenderer):
40433         * html/HTMLDocument.cpp:
40434         (WebCore::HTMLDocument::HTMLDocument):
40435         (WebCore::HTMLDocument::childAllowed):
40436         (WebCore::HTMLDocument::determineParseMode):
40437         * html/HTMLDocument.h:
40438         * html/HTMLMapElement.cpp:
40439         (WebCore::HTMLMapElement::parseMappedAttribute):
40440         * html/HTMLParamElement.cpp:
40441         (WebCore::HTMLParamElement::parseMappedAttribute):
40442         * html/HTMLParser.cpp:
40443         (WebCore::HTMLParser::parseDoctypeToken):
40444         * html/HTMLParser.h:
40445         * html/HTMLTokenizer.cpp:
40446         (WebCore::HTMLTokenizer::reset):
40447         (WebCore::HTMLTokenizer::parseDoctype):
40448         (WebCore::HTMLTokenizer::parseTag):
40449         (WebCore::HTMLTokenizer::write):
40450         (WebCore::HTMLTokenizer::finish):
40451         (WebCore::HTMLTokenizer::processDoctypeToken):
40452         * html/HTMLTokenizer.h:
40453         (WebCore::DoctypeToken::DoctypeToken):
40454         (WebCore::DoctypeToken::reset):
40455         (WebCore::DoctypeToken::state):
40456         (WebCore::DoctypeToken::setState):
40457         (WebCore::HTMLTokenizer::State::inDoctype):
40458         (WebCore::HTMLTokenizer::State::setInDoctype):
40459         (WebCore::HTMLTokenizer::State::needsSpecialWriteHandling):
40460         (WebCore::HTMLTokenizer::State::):
40461         * html/HTMLViewSourceDocument.cpp:
40462         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
40463         (WebCore::HTMLViewSourceDocument::addViewSourceDoctypeToken):
40464         * html/HTMLViewSourceDocument.h:
40465         * loader/FrameLoader.cpp:
40466         (WebCore::FrameLoader::write):
40467         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
40468         * page/Frame.cpp:
40469         (WebCore::Frame::documentTypeString):
40470         * page/inspector/utilities.js:
40471         * xml/XSLTProcessor.cpp:
40472         (WebCore::XSLTProcessor::createDocumentFromSource):
40474 2008-02-20  Anders Carlsson  <andersca@apple.com>
40476         Reviewed by Darin.
40478         Change most SVG related classes to start out with a ref count of 1.
40479         
40480         * bindings/js/JSSVGPointListCustom.cpp:
40481         (WebCore::JSSVGPointList::initialize):
40482         (WebCore::JSSVGPointList::insertItemBefore):
40483         (WebCore::JSSVGPointList::replaceItem):
40484         (WebCore::JSSVGPointList::appendItem):
40485         * bindings/js/JSSVGTransformListCustom.cpp:
40486         (WebCore::JSSVGTransformList::initialize):
40487         (WebCore::JSSVGTransformList::insertItemBefore):
40488         (WebCore::JSSVGTransformList::replaceItem):
40489         (WebCore::JSSVGTransformList::appendItem):
40490         * rendering/SVGCharacterLayoutInfo.h:
40491         (WebCore::SVGCharOnPath::create):
40492         (WebCore::SVGCharOnPath::SVGCharOnPath):
40493         * rendering/SVGRootInlineBox.cpp:
40494         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
40495         * svg/SVGAnimationElement.cpp:
40496         (WebCore::SVGAnimationElement::parseBeginOrEndValue):
40497         * svg/SVGClipPathElement.cpp:
40498         (WebCore::SVGClipPathElement::canvasResource):
40499         * svg/SVGElementInstance.cpp:
40500         (WebCore::SVGElementInstance::childNodes):
40501         * svg/SVGElementInstanceList.cpp:
40502         (WebCore::SVGElementInstanceList::SVGElementInstanceList):
40503         * svg/SVGElementInstanceList.h:
40504         (WebCore::SVGElementInstanceList::create):
40505         * svg/SVGFitToViewBox.cpp:
40506         (WebCore::SVGFitToViewBox::SVGFitToViewBox):
40507         * svg/SVGGradientElement.cpp:
40508         (WebCore::SVGGradientElement::SVGGradientElement):
40509         (WebCore::SVGGradientElement::canvasResource):
40510         * svg/SVGImageElement.cpp:
40511         (WebCore::SVGImageElement::SVGImageElement):
40512         * svg/SVGLengthList.h:
40513         (WebCore::SVGLengthList::create):
40514         * svg/SVGList.h:
40515         (WebCore::SVGList::SVGList):
40516         (WebCore::SVGPODListItem::create):
40517         (WebCore::SVGPODListItem::copy):
40518         (WebCore::SVGPODListItem::SVGPODListItem):
40519         (WebCore::SVGPODList::initialize):
40520         (WebCore::SVGPODList::insertItemBefore):
40521         (WebCore::SVGPODList::replaceItem):
40522         (WebCore::SVGPODList::appendItem):
40523         (WebCore::SVGPODList::SVGPODList):
40524         * svg/SVGMarkerElement.cpp:
40525         (WebCore::SVGMarkerElement::canvasResource):
40526         * svg/SVGMaskElement.cpp:
40527         (WebCore::SVGMaskElement::canvasResource):
40528         * svg/SVGNumberList.h:
40529         (WebCore::SVGNumberList::create):
40530         * svg/SVGPathElement.cpp:
40531         (WebCore::SVGPathElement::createSVGPathSegClosePath):
40532         (WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
40533         (WebCore::SVGPathElement::createSVGPathSegMovetoRel):
40534         (WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
40535         (WebCore::SVGPathElement::createSVGPathSegLinetoRel):
40536         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
40537         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
40538         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
40539         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
40540         (WebCore::SVGPathElement::createSVGPathSegArcAbs):
40541         (WebCore::SVGPathElement::createSVGPathSegArcRel):
40542         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
40543         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
40544         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
40545         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
40546         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
40547         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
40548         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
40549         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):
40550         (WebCore::SVGPathElement::pathSegList):
40551         * svg/SVGPathElement.h:
40552         * svg/SVGPathSeg.h:
40553         (WebCore::SVGPathSeg::SVGPathSeg):
40554         * svg/SVGPathSegArc.h:
40555         (WebCore::SVGPathSegArcAbs::create):
40556         (WebCore::SVGPathSegArcRel::create):
40557         * svg/SVGPathSegClosePath.h:
40558         (WebCore::SVGPathSegClosePath::create):
40559         * svg/SVGPathSegCurvetoCubic.h:
40560         (WebCore::SVGPathSegCurvetoCubicAbs::create):
40561         (WebCore::SVGPathSegCurvetoCubicRel::create):
40562         * svg/SVGPathSegCurvetoCubicSmooth.h:
40563         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):
40564         (WebCore::SVGPathSegCurvetoCubicSmoothRel::create):
40565         * svg/SVGPathSegCurvetoQuadratic.h:
40566         (WebCore::SVGPathSegCurvetoQuadraticAbs::create):
40567         (WebCore::SVGPathSegCurvetoQuadraticRel::create):
40568         * svg/SVGPathSegCurvetoQuadraticSmooth.h:
40569         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):
40570         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):
40571         * svg/SVGPathSegLineto.h:
40572         (WebCore::SVGPathSegLinetoAbs::create):
40573         (WebCore::SVGPathSegLinetoRel::create):
40574         * svg/SVGPathSegLinetoHorizontal.h:
40575         (WebCore::SVGPathSegLinetoHorizontalAbs::create):
40576         (WebCore::SVGPathSegLinetoHorizontalRel::create):
40577         * svg/SVGPathSegLinetoVertical.h:
40578         (WebCore::SVGPathSegLinetoVerticalAbs::create):
40579         (WebCore::SVGPathSegLinetoVerticalRel::create):
40580         * svg/SVGPathSegList.h:
40581         (WebCore::SVGPathSegList::create):
40582         * svg/SVGPathSegMoveto.h:
40583         (WebCore::SVGPathSegMovetoAbs::create):
40584         (WebCore::SVGPathSegMovetoRel::create):
40585         * svg/SVGPatternElement.cpp:
40586         (WebCore::SVGPatternElement::SVGPatternElement):
40587         (WebCore::SVGPatternElement::canvasResource):
40588         * svg/SVGPointList.h:
40589         (WebCore::SVGPointList::create):
40590         * svg/SVGPolyElement.cpp:
40591         (WebCore::SVGPolyElement::points):
40592         * svg/SVGPreserveAspectRatio.cpp:
40593         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
40594         * svg/SVGPreserveAspectRatio.h:
40595         (WebCore::SVGPreserveAspectRatio::create):
40596         * svg/SVGRenderingIntent.h:
40597         (WebCore::SVGRenderingIntent::SVGRenderingIntent):
40598         * svg/SVGStringList.h:
40599         (WebCore::SVGStringList::create):
40600         * svg/SVGStyledTransformableElement.cpp:
40601         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
40602         * svg/SVGTests.cpp:
40603         (WebCore::SVGTests::requiredFeatures):
40604         (WebCore::SVGTests::requiredExtensions):
40605         (WebCore::SVGTests::systemLanguage):
40606         * svg/SVGTextElement.cpp:
40607         (WebCore::SVGTextElement::SVGTextElement):
40608         * svg/SVGTextPositioningElement.cpp:
40609         (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
40610         * svg/SVGTransformList.h:
40611         (WebCore::SVGTransformList::create):
40612         * svg/SVGUnitTypes.h:
40613         (WebCore::SVGUnitTypes::SVGUnitTypes):
40614         * svg/SVGViewElement.cpp:
40615         (WebCore::SVGViewElement::viewTarget):
40616         * svg/SVGViewSpec.cpp:
40617         (WebCore::SVGViewSpec::SVGViewSpec):
40618         * svg/graphics/SVGPaintServer.cpp:
40619         (WebCore::SVGPaintServer::sharedSolidPaintServer):
40620         * svg/graphics/SVGPaintServer.h:
40621         * svg/graphics/SVGPaintServerGradient.h:
40622         (WebCore::SVGPaintServerGradient::SharedStopCache::create):
40623         (WebCore::SVGPaintServerGradient::SharedStopCache::SharedStopCache):
40624         * svg/graphics/SVGPaintServerLinearGradient.h:
40625         (WebCore::SVGPaintServerLinearGradient::create):
40626         * svg/graphics/SVGPaintServerPattern.h:
40627         (WebCore::SVGPaintServerPattern::create):
40628         * svg/graphics/SVGPaintServerRadialGradient.h:
40629         (WebCore::SVGPaintServerRadialGradient::create):
40630         * svg/graphics/SVGPaintServerSolid.h:
40631         (WebCore::SVGPaintServerSolid::create):
40632         * svg/graphics/SVGResource.cpp:
40633         (WebCore::SVGResource::SVGResource):
40634         * svg/graphics/SVGResource.h:
40635         * svg/graphics/SVGResourceClipper.h:
40636         (WebCore::SVGResourceClipper::create):
40637         * svg/graphics/SVGResourceMarker.h:
40638         (WebCore::SVGResourceMarker::create):
40639         * svg/graphics/SVGResourceMasker.h:
40640         (WebCore::SVGResourceMasker::create):
40641         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
40642         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
40644 2008-02-20  Darin Adler  <darin@apple.com>
40646         Reviewed by Sam.
40648         - make conversion from CSS ParseString to String and AtomicString
40649           automatic and remove all the explicit calls to do the conversion
40651         - fix CSS parsing to do fewer allocations, mostly by using the
40652           equalIgnoringCase function in CSSParser
40654         * css/CSSGrammar.y: Take out all the explicit atomicString and
40655         domString calls now that ParseString knows how to convert itself.
40657         * css/CSSParser.cpp:
40658         (WebCore::equal): Added.
40659         (WebCore::equalIgnoringCase): Allow non-lettters.
40660         (WebCore::ParseString::lower): Used charactersAreAllASCII.
40661         (WebCore::unitFromString): Use equal.
40662         (WebCore::CSSParser::parseValue): Removed unneeded call to domString.
40663         (WebCore::CSSParser::parseContent): Use equalIgnoringCase.
40664         (WebCore::CSSParser::parseBackgroundImage): Removed unneeded call to domString.
40665         (WebCore::CSSParser::parseTransitionTimingFunction): Use equalIgnoringCase.
40666         (WebCore::CSSParser::parseDashboardRegions): More of the same.
40667         (WebCore::CSSParser::parseCounterContent): Ditto.
40668         (WebCore::CSSParser::parseShape): Use equalIgnoringCase.
40669         (WebCore::CSSParser::parseFontFamily): Removed unneeded calls to domString.
40670         (WebCore::CSSParser::parseFontFaceSrc): More.
40671         (WebCore::CSSParser::parseFontFaceUnicodeRange): More.
40672         (WebCore::CSSParser::parseColor): Don't lowercase here -- setNamedColor now
40673         handles the case folding.
40674         (WebCore::CSSParser::parseColorFromValue): More.
40675         (WebCore::CSSParser::parseBorderImage): More.
40676         (WebCore::CSSParser::parseCounter): More.
40677         (WebCore::TransformOperationInfo::TransformOperationInfo): More.
40678         (WebCore::CSSParser::parseTransform): More.
40679         (WebCore::CSSParser::createCharsetRule): More.
40680         (WebCore::CSSParser::createImportRule): More.
40682         * css/CSSParser.h: Removed domString and atomicString functions.
40683         (WebCore::ParseString::operator String): Added. Allows conversion to String
40684         without an explicit function call.
40685         (WebCore::ParseString::operator AtomicString): Ditto.
40687         * css/MediaQueryExp.cpp:
40688         (WebCore::MediaQueryExp::MediaQueryExp): Removed a call to domString.
40689         * css/SVGCSSParser.cpp:
40690         (WebCore::CSSParser::parseSVGValue): Removed calls to domString.
40692         * platform/graphics/Color.cpp:
40693         (WebCore::findNamedColor): Call toASCIILower on each character as we copy
40694         it into the 8-bit character buffer to make the operation fold case.
40696 2008-02-20  Justin Garcia  <justin.garcia@apple.com>
40698         Reviewed by Darin Adler.
40700         <rdar://problem/5694920> Typing (esp. deleting) is slower due to TOT WebCore changes
40702         * editing/DeleteSelectionCommand.cpp:
40703         (WebCore::DeleteSelectionCommand::initializeStartEnd): The common case here
40704         is where there are no special elements.  Avoid creating VisiblePositions in
40705         that case.  Additionally, this change postpones the more expensive creation
40706         of an upstream VisiblePosition until the last possible moment.
40707         (WebCore::DeleteSelectionCommand::saveTypingStyleState):
40708         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Add an 
40709         early return for a common case: deleting characters that are all inside the 
40710         same text node. In that case the style at the start of the selection will 
40711         not change during the delete, so there is no need to save/recompute it.
40712         (WebCore::DeleteSelectionCommand::saveFullySelectedAnchor): Early return
40713         before VisiblePosition creation if the ends of the selection aren't enclosed
40714         by an anchor.
40715         * editing/TypingCommand.cpp:
40716         (WebCore::TypingCommand::markMisspellingsAfterTyping): Early return if spell
40717         checking isn't enabled.
40719 2008-02-20  Alexey Proskuryakov  <ap@webkit.org>
40721         Incorporates some improvements made by Dan Bernstein.
40723         Reviewed by Darin.
40725         http://bugs.webkit.org/show_bug.cgi?id=17106
40726         <rdar://problem/5750722> Debug build ASSERTs on page load
40728         Test: fast/encoding/GBK/close-gbk-converter.html
40730         * platform/text/TextCodecICU.cpp:
40731         (WebCore::getGbkEscape): Changed to use a switch instead of a HashMap, as there
40732         are only four values.
40733         (WebCore::gbkCallbackEscape): Check the reason why the function is called, and do not attempt
40734         getting an escape character if it's not UCNV_UNASSIGNED.
40735         (WebCore::gbkCallbackSubstitute): Ditto.
40737 2008-02-20  Alexey Proskuryakov  <ap@webkit.org>
40739         Build fix.
40741         * xml/XMLHttpRequest.cpp:
40742         (WebCore::isSafeRequestHeader):
40743         (WebCore::XMLHttpRequest::setRequestHeader):
40745 2008-02-20  Alexey Proskuryakov  <ap@webkit.org>
40747         Reviewed by Darin.
40749         <rdar://problem/5749455> Unable to set the Referer header in Dashboard using XMLHttpRequest
40751         Cannot be tested in DRT.
40753         * xml/XMLHttpRequest.cpp: (WebCore::canSetRequestHeader): Assume that a request that can load
40754         local files can also set any headers.
40756 2008-02-19  Darin Adler  <darin@apple.com>
40758         Reviewed by Sam.
40760         - removed use of DeprecatedString for font family names
40762         * css/CSSFontSelector.cpp:
40763         (WebCore::CSSFontSelector::addFontFaceRule): Update for name change.
40764         * css/CSSParser.cpp:
40765         (WebCore::CSSParser::parseFontFamily): Update to use new appendSpaceSeparated
40766         function and String rather than DeprecatedString.
40767         * css/CSSStyleSelector.cpp:
40768         (WebCore::CSSStyleSelector::applyProperty): Updated for name change.
40769         * css/FontFamilyValue.cpp:
40770         (WebCore::FontFamilyValue::FontFamilyValue): Replaced code using a regular
40771         expression with code that does the same thing more efficiently.
40772         (WebCore::FontFamilyValue::appendSpaceSeparated): Added.
40773         (WebCore::FontFamilyValue::cssText): Updated for name change.
40774         * css/FontFamilyValue.h: Changed DeprecatedString to String. Renamed fontName
40775         to familyName and parsedFontName to m_familyName. Removed unused genericFamilyType
40776         and m_genericFamilyType. Added appendSpaceSeparated so that m_familyName can
40777         be private instead of public.
40779 2008-02-19  Darin Adler  <darin@apple.com>
40781         - fix build when SVG is not enabled
40783         * rendering/RenderTreeAsText.cpp: Added include of "TextStream.h".
40785 2008-02-19  Anders Carlsson  <andersca@apple.com>
40787         Reviewed by Darin.
40789         Change all classes in xml/ to start out with a ref count of 1.
40790         
40791         * bindings/js/JSCustomXPathNSResolver.h:
40792         * bindings/js/JSXMLHttpRequest.cpp:
40793         (WebCore::JSXMLHttpRequest::JSXMLHttpRequest):
40794         * bindings/js/JSXSLTProcessor.cpp:
40795         (WebCore::JSXSLTProcessor::JSXSLTProcessor):
40796         * bindings/objc/DOMCustomXPathNSResolver.h:
40797         (WebCore::DOMCustomXPathNSResolver::create):
40798         * bindings/scripts/CodeGeneratorJS.pm:
40799         * bindings/scripts/CodeGeneratorObjC.pm:
40800         * dom/Document.cpp:
40801         (WebCore::Document::applyXSLTransform):
40802         (WebCore::Document::createExpression):
40803         (WebCore::Document::createNSResolver):
40804         (WebCore::Document::evaluate):
40805         * xml/DOMParser.h:
40806         (WebCore::DOMParser::create):
40807         (WebCore::DOMParser::DOMParser):
40808         * xml/NativeXPathNSResolver.h:
40809         (WebCore::NativeXPathNSResolver::create):
40810         * xml/XMLHttpRequest.cpp:
40811         (WebCore::XMLHttpRequest::XMLHttpRequest):
40812         * xml/XMLHttpRequest.h:
40813         (WebCore::XMLHttpRequest::create):
40814         * xml/XMLSerializer.h:
40815         (WebCore::XMLSerializer::create):
40816         (WebCore::XMLSerializer::XMLSerializer):
40817         * xml/XPathEvaluator.cpp:
40818         (WebCore::XPathEvaluator::createNSResolver):
40819         * xml/XPathEvaluator.h:
40820         (WebCore::XPathEvaluator::create):
40821         (WebCore::XPathEvaluator::XPathEvaluator):
40822         * xml/XPathExpression.cpp:
40823         (WebCore::XPathExpression::createExpression):
40824         (WebCore::XPathExpression::evaluate):
40825         * xml/XPathExpression.h:
40826         (WebCore::XPathExpression::create):
40827         (WebCore::XPathExpression::XPathExpression):
40828         * xml/XPathNSResolver.h:
40829         * xml/XPathResult.cpp:
40830         (WebCore::XPathResult::XPathResult):
40831         * xml/XPathResult.h:
40832         (WebCore::XPathResult::create):
40833         * xml/XPathValue.cpp:
40834         (WebCore::XPath::Value::modifiableNodeSet):
40835         * xml/XPathValue.h:
40836         (WebCore::XPath::ValueData::create):
40837         (WebCore::XPath::ValueData::ValueData):
40838         (WebCore::XPath::Value::Value):
40839         * xml/XSLTProcessor.h:
40840         (WebCore::XSLTProcessor::create):
40841         (WebCore::XSLTProcessor::XSLTProcessor):
40843 2008-02-19  Darin Adler  <darin@apple.com>
40845         Reviewed by Sam.
40847         - Trimmed down TextStream and weaned it from DeprecatedString.
40849         * page/mac/WebCoreFrameBridge.mm:
40850         (-[WebCoreFrameBridge renderTreeAsExternalRepresentation]):
40851         Removed now-unneeded call to getNSString.
40853         * platform/text/TextStream.cpp: Removed unused functions.
40854         Use snprintf instead of sprintf, for better security.
40855         (WebCore::TextStream::release): Added.
40856         * platform/text/TextStream.h: Removed lots of unneeded stuff.
40858         * rendering/RenderTreeAsText.cpp:
40859         (WebCore::externalRepresentation): Changed to use String instead
40860         of DeprecatedString.
40861         * rendering/RenderTreeAsText.h: Ditto.
40863         * rendering/SVGRenderTreeAsText.cpp:
40864         (WebCore::writeSVGInlineTextBox): Use "\n" instead of endl.
40865         (WebCore::write): Ditto.
40866         (WebCore::writeRenderResources): Ditto.
40868 2008-02-19  Justin Garcia  <justin.garcia@apple.com>
40870         Reviewed by Darin Adler.
40872         <rdar://problem/5694920> Typing (esp. deleting) is slower due to TOT WebCore changes
40873         
40874         This brings performance on the phone back to old levels.  Andre and I are doing
40875         some formal testing to see exactly where we stand.
40877         * dom/Position.cpp:
40878         (WebCore::enclosingBlockIgnoringEditability): Added.  This is enclosingBlock
40879         without the expensive editability checks. upstream and downstream can avoid 
40880         those because they do their own editability checking.
40881         (WebCore::Position::upstream):
40882         (WebCore::Position::downstream):
40884 2008-02-19  Chris Fleizach  <cfleizach@apple.com>
40886         Reviewed by Darin.
40888         <rdar://problem/3663560> AXLink for a "name" (anchor) on same page should include an AXLinkedUIElementAttribute
40890         * bridge/mac/WebCoreAXObject.mm:
40891         (-[WebCoreAXObject linkedUIElement]):
40892         Returns the linked-to AX object (if the specified one is ignored by accessibility, returns the next un-ignored one by traversing the DOM).
40893         
40894         (-[WebCoreAXObject accessibilityAttributeNames]):
40895         (-[WebCoreAXObject accessibilityAttributeValue:]):
40896         Support NSAccessibilityLinkedUIElementsAttribute.
40898 2008-02-19  Darin Adler  <darin@apple.com>
40900         Reviewed by Sam.
40902         - Removed old debugging aids, Node::dump, RenderObject::dump, and
40903           RenderObject::information, that used DeprecatedString.
40905         * dom/CharacterData.cpp: Removed override of Node::dump.
40906         * dom/CharacterData.h: Ditto.
40907         * dom/Element.cpp: Ditto.
40908         * dom/Element.h: Ditto.
40909         * dom/EventTargetNode.cpp: Ditto.
40910         * dom/EventTargetNode.h: Ditto.
40911         * dom/Node.cpp: Removed Node::dump.
40912         * dom/Node.h: Ditto.
40914         * rendering/RenderBlock.cpp: Removed override of RenderObject::dump.
40915         * rendering/RenderBlock.h: Ditto.
40916         * rendering/RenderFrameSet.cpp: Ditto.
40917         * rendering/RenderFrameSet.h: Ditto.
40918         * rendering/RenderObject.cpp: Removed RenderObject::dump and
40919         RenderObject::information.
40920         * rendering/RenderObject.h: Ditto.
40921         * rendering/RenderTable.cpp: Removed override of RenderObject::dump.
40922         * rendering/RenderTable.h: Ditto.
40923         * rendering/RenderTableCell.cpp: Ditto.
40924         * rendering/RenderTableCell.h: Ditto.
40925         * rendering/RenderTableCol.cpp: Ditto.
40926         * rendering/RenderTableCol.h: Ditto.
40927         * rendering/RenderTableSection.cpp: Ditto.
40928         * rendering/RenderTableSection.h: Ditto.
40930         * rendering/RenderTreeAsText.h: Removed unneeded include of TextStream.h
40931         and added forward declarations as appropriate.
40933         * svg/SVGSVGElement.cpp: Removed unneeded include of TextStream.h.
40934         * svg/graphics/SVGResourceClipper.cpp: And here.
40935         * svg/graphics/SVGResourceFilter.cpp: Ditto.
40936         * svg/graphics/filters/SVGFEBlend.cpp: Ditto.
40937         * svg/graphics/filters/SVGFEComponentTransfer.cpp: Ditto.
40938         * svg/graphics/filters/SVGFEComposite.cpp: Ditto.
40939         * svg/graphics/filters/SVGFEDiffuseLighting.cpp: Ditto.
40940         * svg/graphics/filters/SVGFEGaussianBlur.cpp: Ditto.
40941         * svg/graphics/filters/SVGFEImage.cpp: Ditto.
40942         * svg/graphics/filters/SVGFEMerge.cpp: Ditto.
40943         * svg/graphics/filters/SVGFEMorphology.cpp: Ditto.
40944         * svg/graphics/filters/SVGFEOffset.cpp: Ditto.
40945         * svg/graphics/filters/SVGFESpecularLighting.cpp: Ditto.
40946         * svg/graphics/filters/SVGFETurbulence.cpp: Ditto.
40947         * svg/graphics/filters/SVGFilterEffect.cpp: Ditto.
40949 2008-02-19  Beth Dakin  <bdakin@apple.com>
40951         Reviewed by Sam.
40953         Fix for <rdar://problem/5729674> Seed: Crash in 
40954         RenderButton::setStyle at http://www.dinorpg.com
40956         Inputs should not honor first-letter.
40958         * rendering/RenderBlock.cpp:
40959         (WebCore::RenderBlock::updateFirstLetter):
40961 2008-02-19  Dan Bernstein  <mitz@apple.com>
40963         Reviewed by Darin Adler.
40965         - fix <rdar://problem/5637569> CrashTracer: [REGRESSION] 620 crashes in Safari at com.apple.WebCore: WebCore::RenderBox::setStaticY + 15
40967         Test: fast/text/wbr-styled.html
40969         Changed RenderWordBreak to inherit from RenderText instead of
40970         RenderInline.
40972         * rendering/RenderBlock.cpp:
40973         (WebCore::RenderBlock::calcInlinePrefWidths):
40974         * rendering/RenderFlow.h:
40975         * rendering/RenderText.cpp:
40976         (WebCore::RenderText::renderName):
40977         (WebCore::RenderText::isTextFragment):
40978         (WebCore::RenderText::isWordBreak):
40979         * rendering/RenderText.h:
40980         * rendering/RenderWordBreak.cpp:
40981         (WebCore::RenderWordBreak::RenderWordBreak):
40982         * rendering/RenderWordBreak.h:
40983         * rendering/bidi.cpp:
40984         (WebCore::RenderBlock::findNextLineBreak):
40986 2008-02-19  Anders Carlsson  <andersca@apple.com>
40988         Reviewed by Darin.
40990         * WebCore.base.exp:
40991         * loader/mac/LoaderNSURLExtras.h:
40992         * loader/mac/LoaderNSURLExtras.m:
40993         Move unused functions to WebKit (where they are used)
40994         
40995         (vectorContainsString):
40996         Use const references.
40997         
40998         * platform/mac/WebCoreSystemInterface.h:
40999         * platform/mac/WebCoreSystemInterface.mm:
41000         Remove wkNSURLProtocolClassForReqest.
41001         
41002 2008-02-19  Justin Garcia  <justin.garcia@apple.com>
41004         Reviewed by Darin Adler.
41006         <rdar://problem/5694920> Typing (esp. deleting) is slower due to TOT WebCore 
41007         
41008         These changes bring deleting performance back to old levels on the phone
41009         except for deleting the first space to the right of a word, which we are
41010         still working on.
41012         * dom/Position.cpp:
41013         (WebCore::Position::upstream): Avoid the use of enclosingBlock when determining
41014         if we have left the original enclosing block or entered a new one, and avoid
41015         rootEditableElement for determining if we have changed editability.  These
41016         operations are expensive.
41017         (WebCore::Position::downstream): Ditto.
41019 2008-02-19  Darin Adler  <darin@apple.com>
41021         Rubber stamped by Anders.
41023         - removed explicit initialization to 1 for RefCounted; that's now the default
41025         * loader/ResourceLoader.cpp:
41026         (WebCore::ResourceLoader::ResourceLoader): Removed RefCounted initializer.
41027         * platform/network/ResourceHandle.cpp:
41028         (WebCore::ResourceHandle::ResourceHandle): Ditto.
41029         * platform/text/StringImpl.cpp:
41030         (WebCore::StringImpl::StringImpl): Ditto.
41032 2008-02-18  Anders Carlsson  <andersca@apple.com>
41034         Reviewed by Darin.
41036         Make ResourceLoader and ResourceHandle start out with a refcount of 1.
41038         * loader/MainResourceLoader.cpp:
41039         (WebCore::MainResourceLoader::create):
41040         * loader/NetscapePlugInStreamLoader.cpp:
41041         (WebCore::NetscapePlugInStreamLoader::create):
41042         * loader/ResourceLoader.cpp:
41043         (WebCore::ResourceLoader::ResourceLoader):
41044         * loader/SubresourceLoader.cpp:
41045         (WebCore::SubresourceLoader::create):
41046         * platform/network/ResourceHandle.cpp:
41047         (WebCore::ResourceHandle::ResourceHandle):
41048         (WebCore::ResourceHandle::create):
41050 2008-02-19  Alp Toker  <alp@atoker.com>
41052         Reviewed by Mark Rowe.
41054         http://bugs.webkit.org/show_bug.cgi?id=16863
41055         [GTK] tab focusing doesn't work
41057         GDK_MOD2_MASK doesn't always mean meta so we can't use it to identify
41058         the meta key state.
41060         Use GDK_META_MASK where available, otherwise do not support the meta
41061         key. This matches the behaviour of other applications.
41063         Also add a comment noting that the platform event constructors need to
41064         be kept in sync (it's not obvious that there are multiple places that
41065         check the key state).
41067         * platform/gtk/KeyEventGtk.cpp:
41068         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
41069         * platform/gtk/MouseEventGtk.cpp:
41070         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
41071         * platform/gtk/WheelEventGtk.cpp:
41072         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
41074 2008-02-18  Brady Eidson  <beidson@apple.com>
41076         Reviewed by Sam Weinig's white rhino tusk stamp
41078         SQLiteTransaction::stop() should also reset the transaction-in-progress flag in its parent SQLiteDatabase
41080         * platform/sql/SQLiteTransaction.cpp:
41081         (WebCore::SQLiteTransaction::stop):
41083 2008-02-18  Brady Eidson  <beidson@apple.com>
41085         Reviewed by Darin
41087         Fix for <rdar://5747529> - ObjC Exception can cause JSLock to never be released
41089         Test: platform/mac/plugins/webScriptObject-exception-deadlock.html
41091         * bindings/objc/WebScriptObject.mm:
41092         (-[WebScriptObject valueForKey:]): The line `resultObj = [super valueForKey:key];    // defaults to throwing an exception` 
41093           says it all - it throws an exception.  This method also happens to hold the JSLock.  Problematically, when the exeception
41094           is thrown and the method exited, the JSLock is never released.  Fix that without otherwise changing behavior by holding the 
41095           JSLock in two individual scopes - Right before the exception and right after.  
41097 2008-02-18  Darin Adler  <darin@apple.com>
41099         Reviewed by Sam.
41101         - reduce use of DeprecatedString and memory allocations in processing of CSS
41102         - remove unnecessary double -> float -> double trip in the CSS parser
41103         - cleaned up names and structure in CSS grammar
41105         * css/CSSGrammar.y: Remove getPropertyID and getValueID. Both are now in CSSParser.cpp
41106         instead, and they now work on ParseString and String objects and don't require the caller
41107         to put the string into a char*. Gave members of the %union more sensible names, removed
41108         duplicates, and sorted into a logical order. Put the %expect back in, rather than leaving
41109         it commented out.
41110         * css/CSSParser.cpp:
41111         (WebCore::equalIgnoringCase): Added.
41112         (WebCore::hasPrefix): Added.
41113         (WebCore::CSSParser::parseTransitionProperty): Changed to call the new cssPropertyID,
41114         which obviates the need to call lower() and utf8() or to allocate memory at all. Also
41115         used equalIgnoringCase rather than putting the value into a String just to compare it.
41116         (WebCore::CSSParser::lex): Replaced convertASCIIToFloat with charactersToDouble. This change
41117         along with the CSSGrammar.y change, removes the double -> float -> double round trip, and
41118         affects the result of one layout test.
41119         (WebCore::cssPropertyID): Added. Gets the property ID from the gperf hash table, but
41120         without allocating any memory.
41121         (WebCore::cssValueKeywordID): Ditto.
41122         * css/CSSParser.h: Removed declaration for deprecatedString function (now used only in
41123         CSSParser.cpp; soon to be deleted). Added cssPropertyID and cssValueKeywordID functions.
41125         * css/CSSStyleDeclaration.cpp:
41126         (WebCore::CSSStyleDeclaration::getPropertyCSSValue): Call cssPropertyID instead of propertyID.
41127         (WebCore::CSSStyleDeclaration::getPropertyValue): Ditto.
41128         (WebCore::CSSStyleDeclaration::getPropertyPriority): Ditto.
41129         (WebCore::CSSStyleDeclaration::getPropertyShorthand): Ditto.
41130         (WebCore::CSSStyleDeclaration::isPropertyImplicit): Ditto.
41131         (WebCore::CSSStyleDeclaration::setProperty): Ditto.
41132         (WebCore::CSSStyleDeclaration::removeProperty): Ditto.
41133         (WebCore::CSSStyleDeclaration::isPropertyName): Ditto.
41134         * css/CSSStyleDeclaration.h: Removed unnecessary includes, unnecessary Noncopyable boilerplate,
41135         and the getPropertyID function declaration along with its associated apology comment.
41137         * css/makevalues.pl: Generate constants instead of macros for CSS value numbers (but not an
41138         enumeration, like properties, since you rarely have any reason to handle all values, but
41139         often have a reason to handle all properties). Renamed the constant for the number of CSS
41140         value keywords from CSS_VAL_TOTAL to numCSSValueKeywords, and added maxCSSValueKeywordLength.
41142         * platform/text/String.cpp:
41143         (WebCore::charactersToDouble): Made this function more efficient by using a stack buffer
41144         rather than a CString.
41146 2008-02-18  Dan Bernstein  <mitz@apple.com>
41148         Reviewed by Dave Hyatt.
41150         - fix <rdar://problem/5736225> crash in svgFontAndFaceElementForFontData on digitalstrom.org/cms
41152         Test: fast/css/font-face-multiple-remote-sources.html
41154         * css/CSSFontFace.cpp:
41155         (WebCore::CSSFontFace::fontLoaded):
41156         * css/CSSSegmentedFontFace.cpp:
41157         (WebCore::CSSSegmentedFontFace::fontLoaded):
41159 2008-02-18  Darin Adler  <darin@apple.com>
41161         Reviewed by Sam.
41163         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
41164         (WebCore::hasCSSPropertyNamePrefix): Added.
41165         (WebCore::cssPropertyName): Reimplement to not use DeprecatedString. Also made faster
41166         by using a Vector<UChar> and eliminating all the string operations.
41168 2008-02-18  Stephanie Lewis  <slewis@apple.com>
41170         Reviewed by Adam.
41172         Remove workaround for <rdar://problem/5695848>.
41173         
41174         * platform/network/cf/ResourceResponseCFNet.cpp:
41175         (WebCore::ResourceResponse::doUpdateResourceResponse):
41177 2008-02-18  Samuel Weinig  <sam@webkit.org>
41179         Reviewed by Geoff Garen.
41181         Fix for http://bugs.webkit.org/show_bug.cgi?id=17419
41182         Remove CompatMode from JavaScriptCore as it is never set to anything other than NativeMode
41184         * bindings/js/kjs_proxy.cpp:
41185         (WebCore::KJSProxy::initScript):
41187 2008-02-18  Alp Toker  <alp@atoker.com>
41189         Reviewed by Mark Rowe.
41191         http://bugs.webkit.org/show_bug.cgi?id=17381
41192         [CURL] Regression: data URL parsing broken after DeprecatedString removal (Acid2)
41194         This patch resolves the regression for the GTK+ port.
41196         * platform/network/curl/ResourceHandleManager.cpp:
41197         (WebCore::parseDataUrl):
41199 2008-02-18  Darin Adler  <darin@apple.com>
41201         Reviewed by Sam.
41203         * platform/network/win/ResourceHandleWin.cpp:
41204         (WebCore::ResourceHandle::onHandleCreated): Use String instead of DeprecatedString.
41205         (WebCore::ResourceHandle::start): Ditto.
41207 2008-02-18  Darin Adler  <darin@apple.com>
41209         Reviewed by Sam.
41211         * platform/network/win/CookieJarWin.cpp:
41212         (WebCore::setCookies): Use String instead of DeprecatedString.
41213         (WebCore::cookies): Ditto.
41215 2008-02-18  Darin Adler  <darin@apple.com>
41217         Reviewed by Sam.
41219         - removed use of DeprecatedString in the Color class
41221         * platform/graphics/Color.cpp:
41222         (WebCore::Color::parseHexColor): Streamlined logic a bit with early returns.
41223         Used toASCIIHexValue a character at a time rather than using toIntStrict
41224         in base 16 mode.
41225         (WebCore::findNamedColor): Added. Uses a fixed-size char buffer to look up
41226         a color using the gperf-generated findColor function. Saves a memory allocation
41227         vs. the old version that called DeprecatedString::latin1().
41228         (WebCore::Color::setNamedColor): Changed to use findNamedColor.
41230 2008-02-18  Darin Adler  <darin@apple.com>
41232         Reviewed by Sam.
41234         * editing/htmlediting.cpp:
41235         (WebCore::stringWithRebalancedWhitespace): Changed to use String instead of
41236         DeprecatedString.
41238 2008-02-18  Darin Adler  <darin@apple.com>
41240         Reviewed by Sam.
41242         * editing/SelectionController.cpp:
41243         (WebCore::SelectionController::debugRenderer): Changed to use String instead of
41244         DeprecatedString.
41246 2008-02-18  Darin Adler  <darin@apple.com>
41248         Reviewed and landed by Sam.
41250         Remove DeprecatedStringList.
41252         * GNUmakefile.am:
41253         * WebCore.pro:
41254         * WebCore.vcproj/WebCore.vcproj:
41255         * WebCore.xcodeproj/project.pbxproj:
41256         * WebCoreSources.bkl:
41257         * editing/markup.cpp:
41258         * platform/DeprecatedStringList.cpp: Removed.
41259         * platform/DeprecatedStringList.h: Removed.
41260         * platform/mac/DeprecatedStringListMac.mm: Removed.
41262 2008-02-18  Darin Adler  <darin@apple.com>
41264         Reviewed by Sam.
41266         * css/CSSPrimitiveValueMappings.h: Add default cases to all the switch statements.
41267         This will ease the way some day if we decide to use an enum instead of int; otherwise
41268         we'll have a ton of "unhandled enum value" warnings here.
41270 2008-02-18  Alp Toker  <alp@atoker.com>
41272         Build fix for GTK+ < 2.10. Fall back to simple text clipboard copy
41273         with older GTK+ versions for now.
41275         * platform/gtk/PasteboardGtk.cpp:
41276         (WebCore::Pasteboard::writeSelection):
41278 2008-02-18  Darin Adler  <darin@apple.com>
41280         Reviewed by Sam.
41282         * WebCore.base.exp: Export a couple of WebCore::String functions we plan to use
41283         in the future in WebKit.
41285 2008-02-18  Darin Adler  <darin@apple.com>
41287         Reviewed by Sam.
41289         * DerivedSources.make: Added the scripts to the ENABLE_SVG versions of the rules
41290         for CSSPropertyNames.h and CSSValueKeywords.h. Somehow that got left out, so the
41291         files would not be regenerated if the scripts were changed (but would if SVG was
41292         disabled).
41294 2008-02-18  Alexey Proskuryakov  <ap@webkit.org>
41296         Suggested by Darin.
41298         * platform/KURL.h: (WebCore::KURL::operator const String&): Added, to avoid unexpected
41299         conversion via UString (as in bug 17418).
41301 2008-02-18  Jon Honeycutt  <jhoneycutt@apple.com>
41303         Reviewed by Darin.
41305         <rdar://problem/5744899> Crash in Flash when clicking "Yes" to abort
41306         slow script Flash 9 dialog at http://www.kidzui.com
41308         When navigating to a new page, we stop all outstanding PluginStreams.
41309         Flash hangs in the call to NPP_URLNotify. It eventually displays the
41310         "slow script" dialog, which relinquishes control to the system. While
41311         this dialog is running, the request we are in the process of cancelling
41312         completes, and we re-enter Flash to deliver the data. When the dialog
41313         is dismissed, the internal state of Flash has changed, and Flash
41314         crashes with a null dereference.
41316         To work around this, we can defer loading before entering plug-in code,
41317         so that even if a plug-in yields to the system, we won't get callbacks
41318         while we're handling a callback.
41320         * plugins/PluginStream.cpp:
41321         (WebCore::PluginStream::startStream): Defers loads while calling into
41322         plug-in.
41323         (WebCore::PluginStream::destroyStream): Same.
41324         (WebCore::PluginStream::deliverData): Same.
41325         (WebCore::PluginStream::didFail): Protect 'this' from deletion by
41326         destroyStream. Null out m_loader only after destroyStream returns.
41327         (WebCore::PluginStream::didFinishLoading): Same.
41329 2008-02-18  Alexey Proskuryakov  <ap@webkit.org>
41331         Reviewed by Darin.
41333         http://bugs.webkit.org/show_bug.cgi?id=17418
41334         REGRESSION: Assertion failure dragging image (JSLock::lockCount() > 0)
41336         * platform/win/ClipboardWin.cpp:
41337         (WebCore::ClipboardWin::declareAndWriteDragImage): Explicitly convert from KURL to String,
41338         as an implicit conversion uses UString and thus needs a JSLock.
41340 2008-02-17  Sam Weinig  <sam@webkit.org>
41342         Roll out r30360.
41344         * loader/FrameLoader.cpp:
41345         (WebCore::FrameLoader::changeLocation):
41347 2008-02-17  Sam Weinig  <sam@webkit.org>
41349         Mac build fix.
41351         * WebCore.xcodeproj/project.pbxproj:
41353 2008-02-17  Alp Toker  <alp@atoker.com>
41355         Attempt to fix the Wx build (has been broken all weekend).
41357         Stub out some graphics functions.
41359         * platform/graphics/wx/GraphicsContextWx.cpp:
41360         (WebCore::GraphicsContext::beginPath):
41361         (WebCore::GraphicsContext::addPath):
41362         * platform/graphics/wx/PathWx.cpp:
41363         (WebCore::Path::isEmpty):
41365 2008-02-17  Julien Chaffraix  <julien.chaffraix@gmail.com>
41367         Reviewed by Alexey Proskuryakov.
41369         http://bugs.webkit.org/show_bug.cgi?id=16989
41370         bug 16989 : Add send() flag checks in XmlHttpRequest
41372         Splitted XmlHttpRequest::abort into abort (called from JavaScript) and internalAbort that
41373         perform the cancellation and is called mainly from internal methods.
41375         Tests: http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldDispatchEvent.html
41376                http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldNotDispatchEvent.html
41377                http/tests/xmlhttprequest/xmlhttprequest-test-send-flag.html
41379         * xml/XMLHttpRequest.cpp:
41380         (WebCore::XMLHttpRequest::open): Now call internalAbort() and moved readyState change into method
41381         (WebCore::XMLHttpRequest::send): Added m_loader check
41382         (WebCore::XMLHttpRequest::abort): Now update readyState and clear the request headers as specified
41383         in the spec
41385         (WebCore::XMLHttpRequest::internalAbort): Perform cancellation internal operations (no readyState update)
41386         (WebCore::XMLHttpRequest::setRequestHeader): Added m_loader check
41388         (WebCore::XMLHttpRequest::processSyncLoadResults): Now call internalAbort() instead of abort()
41389         (WebCore::XMLHttpRequest::willSendRequest): Ditto
41390         (WebCore::XMLHttpRequest::cancelRequests): Ditto
41391         (WebCore::XMLHttpRequest::detachRequests): Ditto
41392         * xml/XMLHttpRequest.h: Added the private internalAbort method
41394 2008-02-17  Sam Weinig  <sam@webkit.org>
41396         Reviewed by Dan Bernstein.
41398         Fix for http://bugs.webkit.org/show_bug.cgi?id=17365
41399         document.createEvent("MessageEvent") throws NOT_SUPPORTED_ERR
41401         - Updated fast/events/event-instanceof.html to test document.createEvent("MessageEvent").
41403         * DerivedSources.make:
41404         Generate Objective-C binding for DOMProgressEvent which was missing.
41406         * WebCore.xcodeproj/project.pbxproj:
41407         Add missing DOMProgressEvent files to the project.
41409         * bindings/js/JSEventCustom.cpp:
41410         (WebCore::toJS):
41411         Clean up and add case for SVGZoomEvent that was missing.
41413         * bindings/objc/DOMEvents.mm:
41414         (+[DOMEvent _wrapEvent:WebCore::]):
41415         Clean up and add cases for ProgressEvent and MessageEvent that were missing.
41417         * dom/Document.cpp:
41418         (WebCore::Document::createEvent):
41419         Add case for MessageEvent.
41421 2008-02-17  Adam Treat  <treat@kde.org>
41423         Reviewed by Eric Seidel.
41425         http://bugs.webkit.org/show_bug.cgi?id=17008
41426         Meta refresh does not work with cache turned off
41428         Fix for issue noticed on http://adserver.vivox.com/2
41430         * loader/FrameLoader.cpp:
41431         (WebCore::FrameLoader::changeLocation):
41433 2008-02-17  Alp Toker  <alp@atoker.com>
41435         Reviewed by Sam Weinig.
41437         Fix for change made in r30355. Issue noticed by Ä°smail Dönmez.
41439         Verify SSL certs by default, but allow checks to be disabled with an
41440         environment variable (WEBKIT_IGNORE_SSL_ERRORS) for now.
41442         * platform/network/curl/ResourceHandleManager.cpp:
41443         (WebCore::ResourceHandleManager::startJob):
41445 2008-02-17  Bin Chen  <binary.chen@gmail.com>
41447         Reviewed by Alp Toker.
41449         http://bugs.webkit.org/show_bug.cgi?id=17404
41450         Bug 17404: curl certification problem
41452         Disable SSL cert verification until we have a way of distributing
41453         certs and/or reporting SSL errors to the user.
41455         * platform/network/curl/ResourceHandleManager.cpp:
41456         (WebCore::ResourceHandleManager::startJob):
41458 2008-02-17  Alp Toker  <alp@atoker.com>
41460         Reviewed by Mark Rowe.
41462         DevHelp fails to load local files; URL truncated by one character.
41464         Fix a file:// URL regression introduced in KURL.cpp r30243.
41466         * platform/KURL.cpp:
41467         (WebCore::KURL::KURL):
41469 2008-02-17  Dan Bernstein  <mitz@apple.com>
41471         Reviewed by Darin Adler.
41473         - fix http://bugs.webkit.org/show_bug.cgi?id=17033
41474           <rdar://problem/5709315> REGRESSION: Really long <option> causes unnecessary page scroll bars to accommodate content
41476         Test: fast/forms/control-clip-overflow.html
41478         * rendering/RenderFlow.cpp:
41479         (WebCore::RenderFlow::lowestPosition): Account for control clipping.
41480         (WebCore::RenderFlow::rightmostPosition): Ditto.
41481         (WebCore::RenderFlow::leftmostPosition): Ditto.
41483 2008-02-16  Oliver Hunt  <oliver@apple.com>
41485         Reviewed by Eric S.
41487         Bug 17269: Deobfuscate CanvasRenderingContext2D.cpp
41489         Use cross-platform code to determine the dirty rects for
41490         fill and stroke operations
41492         * html/CanvasRenderingContext2D.cpp:
41493         (WebCore::CanvasRenderingContext2D::fill):
41494         (WebCore::CanvasRenderingContext2D::stroke):
41495           Added a FIXME as code inspection shows a trivial under-painting
41496           bug, although we currently ignore dirty rect tracking on canvas
41497           and repaint the whole thing anyway.
41498         (WebCore::CanvasRenderingContext2D::fillRect):
41500 2008-02-16  Sam Weinig  <sam@webkit.org>
41502         Reviewed by Darin Adler.
41504         Take another step in the direction of getting rid of DeprecatedString
41505         by moving all the to{NumericType} off of it.
41507         - Create free functions that take a UChar* buffer and length to do
41508           the string-to-number conversions.  This allows us to avoid two allocations
41509           if we don't already have a String and is consistent with the design we would
41510           like going forward.
41511         - Since the toInt (and family) functions on DeprecatedString were slightly
41512           different than the ones on String (they didn't allow trailing garbage),
41513           an extra set of 'Strict' toInt functions were added that have this behavior.
41515         * platform/graphics/Color.cpp:
41516         (WebCore::Color::parseHexColor):
41517         * platform/text/PlatformString.h:
41518         * platform/text/String.cpp:
41519         (WebCore::String::percentage):
41520         (WebCore::String::toIntStrict):
41521         (WebCore::String::toUIntStrict):
41522         (WebCore::String::toInt64Strict):
41523         (WebCore::String::toUInt64Strict):
41524         (WebCore::String::toUInt):
41525         (WebCore::String::toDouble):
41526         (WebCore::isCharacterAllowedInBase):
41527         (WebCore::toIntegralType):
41528         (WebCore::lengthOfCharactersAsInteger):
41529         (WebCore::charactersToIntStrict):
41530         (WebCore::charactersToUIntStrict):
41531         (WebCore::charactersToInt64Strict):
41532         (WebCore::charactersToUInt64Strict):
41533         (WebCore::charactersToInt):
41534         (WebCore::charactersToUInt):
41535         (WebCore::charactersToInt64):
41536         (WebCore::charactersToUInt64):
41537         (WebCore::charactersToDouble):
41538         (WebCore::charactersToFloat):
41539         * platform/text/StringImpl.cpp:
41540         (WebCore::parseLength):
41541         (WebCore::StringImpl::toIntStrict):
41542         (WebCore::StringImpl::toUIntStrict):
41543         (WebCore::StringImpl::toInt64Strict):
41544         (WebCore::StringImpl::toUInt64Strict):
41545         (WebCore::StringImpl::toInt):
41546         (WebCore::StringImpl::toUInt):
41547         (WebCore::StringImpl::toInt64):
41548         (WebCore::StringImpl::toUInt64):
41549         (WebCore::StringImpl::toDouble):
41550         (WebCore::StringImpl::toFloat):
41551         * platform/text/StringImpl.h:
41552         * svg/SVGAnimationElement.cpp:
41553         (WebCore::SVGAnimationElement::parseClockValue):
41554         * svg/SVGFETurbulenceElement.cpp:
41555         (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
41557 2008-02-16  Dan Bernstein  <mitz@apple.com>
41559         Reviewed by Sam Weinig.
41561         - fix fixed-pitch font measurement of control characters that render
41562           as zero-width space
41564         Test: fast/text/fixed-pitch-control-characters.html
41566         * rendering/RenderText.cpp:
41567         (WebCore::RenderText::widthFromCache):
41569 2008-02-16  Kevin Ollivier  <kevino@theolliviers.com>
41571         wx build fix.
41573         * platform/graphics/wx/GraphicsContextWx.cpp:
41574         (WebCore::GraphicsContext::drawImage):
41576 2008-02-16  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
41578         Reviewed by Alp Toker.
41580         Cross document messaging GTK+/autotools build fix.
41582         * GNUmakefile.am:
41584 2008-02-15  Oliver Hunt  <oliver@apple.com>
41586         Build fix for Qt and Cairo builds
41588         * platform/graphics/cairo/GraphicsContextCairo.cpp:
41589         (WebCore::GraphicsContext::drawImage):
41590         * platform/graphics/qt/GraphicsContextQt.cpp:
41592 2008-02-15  Oliver Hunt  <oliver@apple.com>
41594         Reviewed by Dan B.
41596         Bug 17269: Deobfuscate CanvasRenderingContext2D.cpp
41597         Refactor CanvasRenderingContext2D::drawImage(HTMLCanvasElement) to remove evil ifdefs
41599         Add logic draw(ImageBuffer*) method to GraphicsContext to handle
41600         painting the source canvas content.
41602         * html/CanvasRenderingContext2D.cpp:
41603         (WebCore::CanvasRenderingContext2D::drawImage):
41604         * html/HTMLCanvasElement.cpp:
41605         (WebCore::HTMLCanvasElement::buffer):
41606         * html/HTMLCanvasElement.h:
41607         * platform/graphics/GraphicsContext.h:
41608         * platform/graphics/cairo/GraphicsContextCairo.cpp:
41609         (WebCore::GraphicsContext::drawImage):
41610         * platform/graphics/cg/GraphicsContextCG.cpp:
41611         (WebCore::GraphicsContext::paintBuffer):
41612         (WebCore::GraphicsContext::drawImage):
41613         * platform/graphics/qt/GraphicsContextQt.cpp:
41614         (WebCore::GraphicsContext::drawImage):
41616 2008-02-15  Kevin Ollivier  <kevino@theolliviers.com>
41618         Reviewed by David Hyatt.
41620         Using GetNativeFontInfoDesc() to generate the hash value was
41621         leading to duplicate entries in the HashMap. Use the font object's
41622         pointer instead.
41624         http://bugs.webkit.org/show_bug.cgi?id=17371
41626         * platform/graphics/wx/FontPlatformData.h:
41627         (WebCore::FontPlatformData::computeHash):
41629 2008-02-15  Ada Chan  <adachan@apple.com>
41631         When parsing url we get from a CFURLRef, we need to null terminate 
41632         the string for the case when url ends with a '/'.
41634         Reviewed by Darin.
41636         * platform/cf/KURLCFNet.cpp:
41637         (WebCore::KURL::KURL):
41639 2008-02-15  Brady Eidson  <beidson@apple.com>
41641         Reviewed by Darin
41643         Fix for <rdar://problem/5727175> and <rdar://problem/5740495> - Database threads and callback scripts can run after
41644         a page has closed or loaded a new document
41646         Deciding to make the Database I/O semantic the same as loaders/XHR when a document is shut down, this patch implements
41647         a policy of shutting down the databases in a document at the same time.  This includes removing all pending transactions 
41648         in a database, cutting off an queued statements in the current transaction, and preventing further callbacks from being
41649         made.
41651         No new layout tests with this patch as the current layout tests were catching this issue in a plethora of ways already
41652         (crashing, unexpected exceptions and output, etc)
41654         * dom/Document.cpp:
41655         (WebCore::Document::~Document): Don't actually stop the database thread here - it better have been stopped already.
41656           Add an assertion to that effect.
41657         (WebCore::Document::addOpenDatabase): Add a new database handle to this Document's open database set
41658         (WebCore::Document::removeOpenDatabase): Remove such a handle
41659         (WebCore::Document:: stopDatabases): Call "close" on all open Database handles for this document
41660         * dom/Document.h:
41662         * loader/FrameLoader.cpp:
41663         (WebCore::FrameLoader::stopLoading): In addition to canceling all resource loads and XHRs, stop all database I/O
41665         * platform/MessageQueue.h:
41666         (WebCore::MessageQueue::killed): 
41668         * platform/sql/SQLiteTransaction.cpp:
41669         (WebCore::SQLiteTransaction::stop): Added.  Explicit stop to cut off a transaction so it won't try anymore SQL activity
41670         * platform/sql/SQLiteTransaction.h:
41672         * storage/Database.cpp:
41673         (WebCore::Database::Database):
41674         (WebCore::Database::~Database):
41675         (WebCore::Database::markAsDeletedAndClose): Check if the thread has terminated before committing to waiting on the
41676           thread.
41677         (WebCore::Database::stop):  Stop this database, including all queued transactions and callbacks
41678         * storage/Database.h:
41679         (WebCore::Database::stopped):
41681         * storage/DatabaseThread.cpp:
41682         (WebCore::DatabaseThread::terminationRequested):
41683         * storage/DatabaseThread.h:
41685         * storage/SQLTransaction.cpp:
41686         (WebCore::SQLTransaction::executeSQL): Throw an exception if a new executeSQL comes in after a database is closed
41687         (WebCore::SQLTransaction::checkAndHandleClosedDatabase): Added.  Clears queued statements and clear the next step
41688           when the database has been closed since the last step/callback was run.  Also stops the current SQLite transaction,
41689           if any
41690         (WebCore::SQLTransaction::performNextStep):
41691         (WebCore::SQLTransaction::performPendingCallback):
41692         * storage/SQLTransaction.h:
41694 2008-02-15  Adele Peterson  <adele@apple.com>
41696         Reviewed by Darin.
41698         Fix for <rdar://problem/5745072> REGRESSION (r29348): Shift + Tab does not change indent level on Google Docs
41700         The immediate cause of this bug was that we stopped sending keypress events for the tab key when it is used to advance focus.
41701         We had a special case for forward-tab in designMode, where the default behavior was to insert a tab key (or respect the keypress handler behavior).
41702         This change makes the shift-tab behavior match the forward-tab behavior.
41704         If the site had put their event handler (which does the indenting) on the keydown event, then this problem would have been avoided.
41705         This is something we should look into and maybe advise the site on in the future.  However, it's a low-risk change to just make tab and shift-tab uniform 
41706         in this respect, so I think this is the way to go for right now.
41708         * page/EventHandler.cpp: (WebCore::EventHandler::defaultTabEventHandler):
41710 2008-02-15  Anders Carlsson  <andersca@apple.com>
41712         Reviewed by Alice.
41714         <rdar://problem/5738678>
41715         REGRESSION: "Loading" status remains when uploading file to .Mac iDisk via Safari
41716         
41717         Use the new CFNetwork functions for setting body parts.
41718         
41719         * platform/network/cf/FormDataStreamCFNet.cpp:
41720         (WebCore::setHTTPBody):
41721         (WebCore::httpBodyFromRequest):
41723 2008-02-15  Geoffrey Garen  <ggaren@apple.com>
41725         Reviewed by Anders Carlsson.
41726         
41727         Fixed <rdar://problem/5725429> REGRESSION (r27898): Greenfield online
41728         surveys no longer work due to XMLHttpRequest exceptions
41729         
41730         Reverted some exception throwing code from r12194.
41731         
41732         To comply with the W3C draft spec, we used to throw an exception when
41733         trying to access responseText and responseXML at the wrong time, but
41734         that turned out to be a compatibility problem.
41735         
41736         Now, matching Firefox and previous versions of WebKit, we never throw
41737         an exception when accessing responseText or responseXML.
41738         
41739         See http://www.mail-archive.com/public-webapi@w3.org/msg02756.html.
41741         * xml/XMLHttpRequest.cpp:
41742         (WebCore::XMLHttpRequest::getResponseText):
41743         (WebCore::XMLHttpRequest::getResponseXML):
41745 2008-02-15  Justin Garcia  <justin.garcia@apple.com>
41747         Reviewed by Dan Bernstein.
41749         <rdar://problem/5738768> REGRESSION (r30062): Crash in InlineTextBox::isLineBreak() when Undoing a replace
41750         
41751         Rolled out <http://trac.webkit.org/projects/webkit/changeset/29667>
41753         * editing/SelectionController.cpp:
41754         (WebCore::SelectionController::nodeWillBeRemoved):
41756 2008-02-15  Alice Liu  <alice.liu@apple.com>
41758         Reviewed by Darin.
41760         Fixed <rdar://problem/5741440> REGRESSION (r28496): After deactivating JavaScript, scripts embedded in the HTML page continue to run
41761      
41762         Before this patch, Frame::scriptProxy() would only return null in the case that javascript was 
41763         disabled and if the script proxy field wasn't set (which would only be the case if the window 
41764         hasn't loaded anything yet).  Not all callers of scriptProxy() always check for a non-null return 
41765         value.  Those that did check would effectively be checking if javascript was enabled before proceeding.
41766         This fix consists of 2 elements: first, make sure that scriptProxy() will never return null, regardless 
41767         of whether javascript is disabled.  This will mean that callers who don't check for null won't crash.  
41768         Second, callers who did check for null now instead check for javascript being disabled.  This means that 
41769         code paths intended for preventing javascript from being run will be making the correct check.  Another
41770         minor addition to this patch is that I added a function on KSJProxy to be a shortcut for checking if javascript
41771         is enabled. 
41773         * bindings/js/JSCustomSQLStatementCallback.cpp:
41774         (WebCore::JSCustomSQLStatementCallback::handleEvent):
41775         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
41776         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
41777         * bindings/js/JSCustomSQLTransactionCallback.cpp:
41778         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
41779         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
41780         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
41781         * bindings/js/JSCustomVoidCallback.cpp:
41782         (WebCore::JSCustomVoidCallback::handleEvent):
41783         * bindings/js/JSCustomXPathNSResolver.cpp:
41784         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
41785         * bindings/js/ScheduledAction.cpp:
41786         (WebCore::ScheduledAction::execute):
41787         * bindings/js/kjs_events.cpp:
41788         (WebCore::JSAbstractEventListener::handleEvent):
41789         (WebCore::JSLazyEventListener::parseCode):
41790         * bindings/js/kjs_html.cpp:
41791         (WebCore::runtimeObjectImplementsCall):
41792         * bindings/js/kjs_proxy.cpp:
41793         (WebCore::KJSProxy::isEnabled):
41794         * bindings/js/kjs_proxy.h:
41795         * bindings/js/kjs_window.cpp:
41796         (KJS::Window::retrieveWindow):
41797         (KJS::Window::retrieve):
41798         * dom/Document.cpp:
41799         (WebCore::Document::createHTMLEventListener):
41800         * dom/EventTarget.cpp:
41801         (WebCore::EventTarget::dispatchGenericEvent):
41802         * html/HTMLPlugInElement.cpp:
41803         (WebCore::HTMLPlugInElement::createNPObject):
41804         * html/HTMLScriptElement.cpp:
41805         (WebCore::HTMLScriptElement::evaluateScript):
41806         * html/HTMLTokenizer.cpp:
41807         (WebCore::HTMLTokenizer::parseTag):
41808         (WebCore::HTMLTokenizer::processToken):
41809         * loader/FrameLoader.cpp:
41810         (WebCore::FrameLoader::executeScript):
41811         (WebCore::FrameLoader::userGestureHint):
41812         (WebCore::FrameLoader::open):
41813         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
41814         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
41815         * manual-tests/disable-javascript-reload.html: Added.
41816         * page/Frame.cpp:
41817         (WebCore::Frame::scriptProxy):
41818         (WebCore::Frame::bindingRootObject):
41819         (WebCore::Frame::windowScriptNPObject):
41820         * page/Frame.h:
41821         * page/InspectorController.cpp:
41822         (WebCore::canPassNodeToJavaScript):
41823         * page/mac/FrameMac.mm:
41824         (WebCore::Frame::windowScriptObject):
41825         * svg/SVGDocumentExtensions.cpp:
41826         (WebCore::SVGDocumentExtensions::createSVGEventListener):
41828 2008-02-15  Dan Bernstein  <mitz@apple.com>
41830         Reviewed by Alexey Proskuryakov.
41832         - WebCore part of fixing http://bugs.webkit.org/show_bug.cgi?id=17360
41833           <rdar://problem/5743131> REGRESSION: mp4 file downloaded from server is downloaded as html
41835         Test: http/tests/loading/text-content-type-with-binary-extension.html
41837         Refined the workaround for <rdar://problem/5321972> to exclude files
41838         with extensions that are known to be associated with binary MIME types.
41840         * WebCore.xcodeproj/project.pbxproj: Added WebCoreURLResponse.{h,mm}.
41841         * platform/network/mac/ResourceResponseMac.mm:
41842         (WebCore::ResourceResponse::doUpdateResourceResponse): Moved the
41843         workaround logic into WebCoreURLResponse.
41844         * platform/network/mac/WebCoreURLResponse.h: Added.
41845         * platform/network/mac/WebCoreURLResponse.mm: Added.
41846         (createBinaryExtensionsSet): Returns a set of extensions known to
41847         belong to MIME types of binary data.
41848         (-[NSURLResponse _webcore_MIMEType]):
41849         (-[NSHTTPURLResponse _webcore_MIMEType]): Forces the MIME type from
41850         application/octet-stream to text/plain if that is the specified
41851         Content-Type, unless the extension is in the binary extensions set.
41853 2008-02-15  Dan Bernstein  <mitz@apple.com>
41855         Reviewed by Dave Hyatt.
41857         - fix http://bugs.webkit.org/show_bug.cgi?id=17306
41858           <rdar://problem/5737923> Transitions between styles that have different transition-* properties behave inconsistently
41860         * manual-tests/transitions.html: Added.
41861         * page/AnimationController.cpp:
41862         (WebCore::CompositeImplicitAnimation::animate): Changed to use the
41863         transition properties of the current style rather than the target style.
41864         (WebCore::AnimationControllerPrivate::get): Changed to not create an
41865         animation if the style does not have transitions.
41866         (WebCore::AnimationController::updateImplicitAnimations): Added code to
41867         return the target style if the current style is not animating.
41868         * rendering/RenderObject.cpp:
41869         (WebCore::RenderObject::setAnimatableStyle): Changed to call
41870         updateImplicitAnimations() even if the current style does not have
41871         transitions, because we may be animating out of a style that had them.
41873 2008-02-15  Alexey Proskuryakov  <ap@webkit.org>
41875         Rubber-stamped by Darin.
41877         Remove an obsolete WebCore readme file.
41879         * README: Removed.
41881 2008-02-15  Sam Weinig  <sam@webkit.org>
41883         Reviewed by Darin Adler.
41885         Remove more uses of DeprecatedString in preparation of getting rid of it.
41887         * bridge/mac/WebCoreScriptDebugger.mm:
41888         * css/CSSCursorImageValue.cpp:
41889         (WebCore::isSVGCursorIdentifier):
41890         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
41891         * css/CSSStyleSelector.h:
41892         * dom/Element.cpp:
41893         (WebCore::Element::dump):
41894         (WebCore::Element::formatForDebugger):
41895         * dom/Position.cpp:
41896         (WebCore::Position::debugPosition):
41897         (WebCore::Position::formatForDebugger):
41898         * dom/Range.cpp:
41899         (WebCore::Range::formatForDebugger):
41900         * dom/Text.cpp:
41901         (WebCore::Text::formatForDebugger):
41902         * editing/Selection.cpp:
41903         (WebCore::Selection::debugPosition):
41904         (WebCore::Selection::formatForDebugger):
41905         * editing/SelectionController.cpp:
41906         (WebCore::SelectionController::debugRenderer):
41907         * editing/VisiblePosition.cpp:
41908         (WebCore::VisiblePosition::debugPosition):
41909         * html/HTMLTokenizer.cpp:
41910         (WebCore::HTMLTokenizer::scriptHandler):
41911         (WebCore::HTMLTokenizer::parseTag):
41912         (WebCore::HTMLTokenizer::processToken):
41913         (WebCore::HTMLTokenizer::notifyFinished):
41914         * svg/SVGFontFaceElement.cpp:
41915         (WebCore::mapAttributeToCSSProperty):
41917 2008-02-15  Adam Roben  <aroben@apple.com>
41919         * bindings/scripts/CodeGenerator.pm: Touch this to force bindings to
41920         regenerate.
41922 2008-02-15  Adam Roben  <aroben@apple.com>
41924         Try to fix Qt/GTK+ builds
41926         * WebCore.pro: Remove MessageEvent.{idl,cpp} from the unconditional
41927         parts of this file.
41929 2008-02-15  Darin Adler  <darin@apple.com>
41931         - another Qt build fix
41933         * platform/qt/KURLQt.cpp:
41934         (WebCore::KURL::operator QUrl): Use the characters directly, not ascii().
41935         Eliminate references to urlString.
41937 2008-02-15  Darin Adler  <darin@apple.com>
41939         - another Qt build fix
41941         * platform/qt/ClipboardQt.cpp:
41942         (WebCore::ClipboardQt::declareAndWriteDragImage): Use KURL instead of String.
41944 2008-02-14  Darin Adler  <darin@apple.com>
41946         - another round of build fixes
41948         * platform/KURL.cpp:
41949         (WebCore::appendEncodedHostname): Fix spelling (strLen, not strlen).
41950         * platform/network/curl/ResourceHandleManager.cpp:
41951         (WebCore::parseDataUrl): Fix a ".." typo and call data instead of characters.
41953 2008-02-14  Darin Adler  <darin@apple.com>
41955         - added back accidentally-removed files
41957         * platform/DeprecatedStringList.cpp: Copied from platform/DeprecatedStringList.cpp.
41958         * platform/DeprecatedStringList.h: Copied from platform/DeprecatedStringList.h.
41959         * platform/mac/DeprecatedStringListMac.mm: Copied from platform/mac/DeprecatedStringListMac.mm.
41961 2008-02-14  Darin Adler  <darin@apple.com>
41963         - more build fixes
41965         * platform/KURL.cpp:
41966         (WebCore::appendEncodedHostname): Use String to make a QString.
41967         * platform/network/cf/ResourceRequest.h:
41968         (WebCore::ResourceRequest::ResourceRequest): Removed a stray deprecatedString() call.
41969         * platform/network/curl/ResourceHandleManager.cpp:
41970         (WebCore::parseDataUrl): Updated to String rather than DeprecatedString functions.
41972 2008-02-14  Darin Adler  <darin@apple.com>
41974         - next Qt build fix
41976         * platform/network/qt/ResourceRequest.h:
41977         (WebCore::ResourceRequest::ResourceRequest): Removed a stray deprecatedString() call.
41979 2008-02-14  Darin Adler  <darin@apple.com>
41981         - another build fix
41983         * platform/network/curl/ResourceRequest.h:
41984         (WebCore::ResourceRequest::ResourceRequest): Removed a stray deprecatedString() call.
41986 2008-02-14  Darin Adler  <darin@apple.com>
41988         - first Qt build fix
41990         * dom/XMLTokenizer.cpp:
41991         (WebCore::XMLTokenizer::endElementNs): Added a missing string() call.
41993 2008-02-14  Darin Adler  <darin@apple.com>
41995         Reviewed by Eric Seidel.
41997         Based on work by Marvin Decker <marv.decker@gmail.com>
41999         - fix http://bugs.webkit.org/show_bug.cgi?id=16538
42000           KURL should use String instead of DeprecatedString
42002         - fix http://bugs.webkit.org/show_bug.cgi?id=16485
42003           DocLoader::checkForReload will crash if the URL isNull
42004           and a similar problem in IconDatabase
42006         - fix http://bugs.webkit.org/show_bug.cgi?id=16487
42007           KURL doesn't preserve isNull when constructed with a DeprecatedString
42009         - changed completeURL and various DOM getters to return KURL, to avoid
42010           conversion back and forth from KURL to String
42012         - changed the conversion of KURL to NSURL or NSString to be automatic,
42013           to ease the use of KURL in Objective C DOM bindings, and eliminated
42014           the getNSURL function
42016         - because I had to visit the DOM bindings anyway, eliminated almost all
42017           the use of the KJS namespace for things in WebCore
42019         - fixed HTMLOptionElement constructor to check for undefined rather
42020           than size of the arguments array
42022         - eliminated some other unnecessary uses of DeprecatedString
42024         - changed String::split to take a Vector parameter instead of returning
42025           a Vector, for better performance
42027         - added a couple of missing calls to do layout in SVG image handling;
42028           I was able to reproduce these only because I had broken URLs for a
42029           while -- not sure how to reproduce them now but the changes are
42030           clearly needed
42032         Performance testing shows this to be at least a 1% speedup.
42034         Added a new function protocols to efficiently compare protocols
42035         without case errors and a blankURL function so we don't have to
42036         code "about:blank" in multiple places in the code and don't have to
42037         construct a frash KURL each time. Moved decode_string and encode_string
42038         out of KURL and gave them clearer names.
42040         Made KURL constructors explicit to highlight potentially-expensive
42041         operations and the poor semantics of KURL's constructor that takes
42042         a String.
42044         * WebCore.base.exp: Updated.
42046         * bindings/js/JSAttrCustom.cpp:
42047         (WebCore::JSAttr::setValue): Use protocolIs.
42048         * bindings/js/JSAudioConstructor.h: KJS namespace change.
42049         * bindings/js/JSCSSRuleCustom.cpp:
42050         (WebCore::toJS): Ditto.
42051         * bindings/js/JSCSSValueCustom.cpp:
42052         (WebCore::toJS): Ditto.
42053         * bindings/js/JSDocumentCustom.cpp:
42054         (WebCore::JSDocument::location): Ditto.
42055         (WebCore::JSDocument::setLocation): Updated for KURL change.
42056         (WebCore::toJS): KJS namespace change.
42057         * bindings/js/JSElementCustom.cpp:
42058         (WebCore::allowSettingSrcToJavascriptURL): Use protocolIs.
42059         (WebCore::JSElement::setAttribute): KJS namespace change.
42060         (WebCore::JSElement::setAttributeNode): Ditto.
42061         (WebCore::JSElement::setAttributeNS): Ditto.
42062         (WebCore::JSElement::setAttributeNodeNS): Ditto.
42063         * bindings/js/JSHTMLFrameElementCustom.cpp:
42064         (WebCore::allowSettingJavascriptURL): Use protocolIs.
42065         (WebCore::JSHTMLFrameElement::setSrc): KJS namespace change.
42066         (WebCore::JSHTMLFrameElement::setLocation): Ditto.
42067         * bindings/js/JSHTMLIFrameElementCustom.cpp:
42068         (WebCore::JSHTMLIFrameElement::setSrc): Use protocolIs.
42069         * bindings/js/JSHTMLOptionElementConstructor.cpp:
42070         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
42071         (WebCore::JSHTMLOptionElementConstructor::construct): Cleaned up the
42072         structure a bit and changed checking to check for undefined rather than
42073         number of arguments.
42074         * bindings/js/JSHTMLOptionElementConstructor.h: KJS namespace change.
42075         * bindings/js/JSLocation.cpp:
42076         (WebCore::JSLocation::put): Eliminated some DeprecatedString use,
42077         and use protocolIs.
42078         (WebCore::jsLocationProtoFuncReplace): Ditto.
42079         (WebCore::jsLocationProtoFuncReload): Ditto.
42080         (WebCore::jsLocationProtoFuncAssign): Ditto.
42081         * bindings/js/JSLocation.h: KJS namespace change.
42082         * bindings/js/JSNamedNodeMapCustom.cpp:
42083         (WebCore::JSNamedNodeMap::canGetItemsForName): Ditto.
42084         (WebCore::JSNamedNodeMap::nameGetter): Ditto.
42085         * bindings/js/JSNamedNodesCollection.cpp:
42086         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Ditto.
42087         * bindings/js/JSNamedNodesCollection.h: Ditto.
42088         * bindings/js/JSXMLHttpRequest.cpp:
42089         (WebCore::jsXMLHttpRequestPrototypeFunctionOpen): Removed
42090         DeprecatedString use.
42091         (WebCore::jsXMLHttpRequestPrototypeFunctionSend): Ditto.
42092         * bindings/js/JSXMLHttpRequest.h: Moved this class into the WebCore
42093         namespace.
42094         * bindings/js/JSXSLTProcessor.cpp: Namespace change.
42095         * bindings/js/JSXSLTProcessor.h: Ditto.
42097         * bindings/js/kjs_binding.cpp: Updated for namespace change.
42098         (WebCore::jsStringOrNull): Added an overload for KURL to allow DOM
42099         classes to return KURL even if the DOM expects a string.
42100         (WebCore::jsStringOrUndefined): Ditto.
42101         (WebCore::jsStringOrFalse): Ditto.
42102         * bindings/js/kjs_binding.h: Moved everything into the WebCore
42103         namespace.
42105         * bindings/js/kjs_css.h: Namespace change.
42106         * bindings/js/kjs_events.cpp: Removed an include.
42107         * bindings/js/kjs_events.h: Namespace change.
42108         * bindings/js/kjs_html.h: Namespace change.
42110         * bindings/js/kjs_navigator.cpp: Moved everything into the
42111         WebCore namespace.
42112         * bindings/js/kjs_navigator.h: Ditto.
42114         * bindings/js/kjs_window.cpp:
42115         (KJS::parseModalDialogFeatures): Updated for String::split change.
42116         (KJS::createWindow): Use protocolIs and removed some DeprecatedString.
42117         (KJS::Window::put): Ditto.
42118         (KJS::Window::allowsAccessFrom): Ditto.
42119         (KJS::windowProtoFuncOpen): Ditto.
42121         * bindings/objc/DOM.mm:
42122         (-[DOMElement _getURLAttribute:]): Removed getNSURL call.
42123         * bindings/objc/DOMHTML.mm:
42124         (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]): Ditto.
42126         * bindings/scripts/CodeGeneratorCOM.pm: Updated includes so conversions from
42127         KURL will work.
42128         * bindings/scripts/CodeGeneratorJS.pm: Updated for namespace changes, and also
42129         updated includes so conversions from KURL will work.
42130         * bindings/scripts/CodeGeneratorObjC.pm: Updated includes so conversions from
42131         KURL will work.
42133         * bridge/mac/WebCoreAXObject.mm:
42134         (-[WebCoreAXObject accessibilityAttributeValue:]): Removed getNSURL call.
42135         Also streamlined the logic.
42136         (AXAttributedStringAppendText): Ditto.
42138         * bridge/mac/WebCoreScriptDebugger.mm:
42139         (toNSString): Tweaked.
42140         (toNSURL): Removed getNSURL call.
42142         * css/CSSImageValue.cpp:
42143         (WebCore::CSSImageValue::image): Removed DeprecatedString use.
42144         * css/CSSImportRule.cpp:
42145         (WebCore::CSSImportRule::insertedIntoParent): Ditto.
42146         * css/CSSParser.cpp:
42147         (WebCore::CSSParser::parseValue): Ditto.
42148         (WebCore::CSSParser::parseContent): Ditto.
42149         (WebCore::CSSParser::parseBackgroundImage): Ditto.
42150         (WebCore::CSSParser::parseFontFaceSrc): Ditto.
42151         (WebCore::CSSParser::parseBorderImage): Ditto.
42152         * css/CSSStyleSelector.cpp:
42153         (WebCore::CSSStyleSelector::setEncodedURL): Ditto.
42154         (WebCore::checkPseudoState): Ditto.
42155         * css/CSSStyleSelector.h: Ditto.
42157         * css/MediaList.cpp:
42158         (WebCore::MediaList::setMediaText): Updated for String::split change.
42160         * css/StyleBase.cpp:
42161         (WebCore::StyleBase::baseURL): Return KURL.
42162         * css/StyleBase.h: DItto.
42164         * dom/Document.cpp:
42165         (WebCore::Document::~Document): Updated for namespace change.
42166         (WebCore::Document::documentURI): Return KURL.
42167         (WebCore::Document::setDocumentURI): Removed DeprecatedString use.
42168         (WebCore::Document::baseURI): Return KURL.
42169         (WebCore::Document::open): Updated to use blankURL.
42170         (WebCore::Document::setURL): Take KURL.
42171         (WebCore::Document::shouldBeAllowedToLoadLocalResources): Updated for
42172         change to use KURL
42173         (WebCore::Document::setBaseURL): Take KURL.
42174         (WebCore::Document::elementSheet): Updated for KURL change.
42175         (WebCore::Document::mappedElementSheet): Ditto.
42176         (WebCore::Document::processHttpEquiv): Ditto.
42177         (WebCore::Document::recalcStyleSelector): Removed use of
42178         DeprecatedString -- also noticed some dead code here!
42179         (WebCore::Document::setCookie): Ditto.
42180         (WebCore::Document::completeURL): Return KURL.
42181         * dom/Document.h: Use KURL instead of String in a few places.
42183         * dom/DocumentType.cpp:
42184         (WebCore::DocumentType::baseURI): Return KURL.
42185         * dom/DocumentType.h: Ditto.
42187         * dom/Element.cpp:
42188         (WebCore::Element::baseURI): Return KURL.
42189         * dom/Element.h: Ditto.
42191         * dom/Node.cpp:
42192         (WebCore::Node::setDocument): Namespace change.
42193         (WebCore::Node::baseURI): Return KURL.
42194         * dom/Node.h: Ditto.
42196         * dom/ProcessingInstruction.cpp:
42197         (WebCore::ProcessingInstruction::checkStyleSheet): Updated for KURL change.
42198         * dom/StyleElement.cpp:
42199         (WebCore::StyleElement::process): Changed to use Vector<UChar> instead of
42200         String for better performance.
42201         (WebCore::StyleElement::createSheet): Removed use of DeprecateString.
42202         * dom/XMLTokenizer.cpp:
42203         (WebCore::XMLTokenizer::endElementNs): Updated for KURL change.
42204         (WebCore::XMLTokenizer::end): Ditto.
42205         (WebCore::xmlDocPtrForString): Removed use of DeprecateString.
42206         * dom/XMLTokenizer.h: Ditto.
42208         * editing/markup.cpp: Moved appendString to PlatformString.h.
42209         (WebCore::appendQuotedURLAttributeValue): Use protocolIs.
42210         (WebCore::completeURLs): Removed DeprecatedString use.
42211         (WebCore::createFragmentFromMarkup): Use blankURL.
42212         (WebCore::fillContainerFromString): Removed DeprecatedString use.
42213         (WebCore::createFragmentFromText): Ditto.
42215         * history/HistoryItem.cpp:
42216         (WebCore::HistoryItem::url): Removed DeprecatedString use.
42217         (WebCore::HistoryItem::originalURL): Ditto.
42218         * history/HistoryItem.h: Removed include.
42220         * html/HTMLAnchorElement.cpp:
42221         (WebCore::HTMLAnchorElement::defaultEventHandler): Removed use of
42222         DeprecatedString.
42223         (WebCore::HTMLAnchorElement::href): Return KURL.
42224         (WebCore::HTMLAnchorElement::hash): Removed DeprecatedString use.
42225         (WebCore::HTMLAnchorElement::host): Ditto.
42226         (WebCore::HTMLAnchorElement::hostname): Ditto.
42227         (WebCore::HTMLAnchorElement::pathname): Ditto.
42228         (WebCore::HTMLAnchorElement::port): Ditto.
42229         (WebCore::HTMLAnchorElement::protocol): Ditto.
42230         (WebCore::HTMLAnchorElement::search): Ditto.
42231         (WebCore::HTMLAnchorElement::toString): Ditto.
42232         * html/HTMLAnchorElement.h: Ditto.
42233         * html/HTMLAppletElement.cpp:
42234         (WebCore::HTMLAppletElement::createRenderer): Updated for KURL change.
42235         * html/HTMLAreaElement.cpp:
42236         (WebCore::HTMLAreaElement::href): Return KURL.
42237         * html/HTMLAreaElement.h: Ditto.
42238         * html/HTMLBaseElement.cpp:
42239         (WebCore::HTMLBaseElement::removedFromDocument): Updated for KURL change.
42240         (WebCore::HTMLBaseElement::process): Removed DeprecatedString use.
42241         * html/HTMLBodyElement.cpp:
42242         (WebCore::HTMLBodyElement::parseMappedAttribute): Updated for KURL change.
42243         * html/HTMLEmbedElement.cpp:
42244         (WebCore::HTMLEmbedElement::parseMappedAttribute): Removed use of
42245         DeprecatedString.
42246         * html/HTMLEmbedElement.h: Removed DeprecatedString use.
42247         * html/HTMLFormElement.cpp:
42248         (WebCore::HTMLFormElement::formWouldHaveSecureSubmission): Use protocolIs.
42249         (WebCore::encodeCString): Updated for change to String::split.
42250         (WebCore::HTMLFormElement::dataEncoding): Ditto.
42251         (WebCore::HTMLFormElement::formData): Removed DeprecatedString use.
42252         (WebCore::HTMLFormElement::isMailtoForm): Use protocolIs.
42253         (WebCore::HTMLFormElement::submit): Updated for KURL change.
42254         (WebCore::HTMLFormElement::reset): Ditto.
42255         * html/HTMLFrameElementBase.cpp:
42256         (WebCore::HTMLFrameElementBase::isURLAllowed): Updated for KURL change
42257         and use equalIgnoringRef instead of doing a setRef to get the same effect.
42258         (WebCore::HTMLFrameElementBase::openURL): Use blankURL.
42259         (WebCore::HTMLFrameElementBase::location): Return KURL.
42260         (WebCore::HTMLFrameElementBase::src): Return KURL.
42261         * html/HTMLFrameElementBase.h: Ditto.
42262         * html/HTMLImageElement.cpp:
42263         (WebCore::HTMLImageElement::parseMappedAttribute): Updated for KURL change.
42264         (WebCore::HTMLImageElement::longDesc): Return KURL.
42265         (WebCore::HTMLImageElement::lowsrc): Return KURL.
42266         (WebCore::HTMLImageElement::src): Return KURL.
42267         * html/HTMLImageElement.h: Ditto. Also removed imageMap() function.
42268         * html/HTMLInputElement.cpp:
42269         (WebCore::HTMLInputElement::src): Return KURL.
42270         * html/HTMLInputElement.h: Ditto.
42271         * html/HTMLLinkElement.cpp:
42272         (WebCore::HTMLLinkElement::parseMappedAttribute): Updated for KURL change.
42273         (WebCore::HTMLLinkElement::tokenizeRelAttribute): Updated for String::split change.
42274         (WebCore::HTMLLinkElement::href): Return KURL.
42275         * html/HTMLLinkElement.h: Ditto.
42276         * html/HTMLMediaElement.cpp:
42277         (WebCore::HTMLMediaElement::src): Return KURL.
42278         (WebCore::HTMLMediaElement::pickMedia): Updated for KURL change.
42279         * html/HTMLMediaElement.h: Ditto.
42280         * html/HTMLObjectElement.cpp:
42281         (WebCore::HTMLObjectElement::isImageType): Use protocolIs.
42282         (WebCore::HTMLObjectElement::data): Return KURL.
42283         * html/HTMLObjectElement.h: Ditto.
42284         * html/HTMLOptGroupElement.cpp:
42285         (WebCore::HTMLOptGroupElement::groupLabelText): Removed DeprecatedString use.
42286         * html/HTMLParser.cpp:
42287         (WebCore::HTMLParser::reportErrorToConsole): Updated for KURL change.
42288         * html/HTMLScriptElement.cpp:
42289         (WebCore::HTMLScriptElement::insertedIntoDocument): Ditto.
42290         (WebCore::HTMLScriptElement::text): Changed to use Vector<UChar> instead of
42291         String for better performance.
42292         (WebCore::HTMLScriptElement::src): Return KURL.
42293         * html/HTMLScriptElement.h: Ditto.
42294         * html/HTMLSourceElement.cpp:
42295         (WebCore::HTMLSourceElement::src): Return KURL.
42296         * html/HTMLSourceElement.h: Ditto.
42297         * html/HTMLTableElement.cpp:
42298         (WebCore::HTMLTableElement::parseMappedAttribute): Updated for KURL change.
42299         * html/HTMLTablePartElement.cpp:
42300         (WebCore::HTMLTablePartElement::parseMappedAttribute): Updated for KURL change.
42301         * html/HTMLTextAreaElement.cpp:
42302         (WebCore::HTMLTextAreaElement::setValue): Removed DeprecatedString use.
42303         * html/HTMLTokenizer.cpp:
42304         (WebCore::HTMLTokenizer::scriptExecution): Ditto.
42305         (WebCore::HTMLTokenizer::notifyFinished): Use protocolIs.
42306         * html/HTMLVideoElement.cpp:
42307         (WebCore::HTMLVideoElement::poster): Return KURL.
42308         * html/HTMLVideoElement.h: Ditto.
42309         * html/HTMLViewSourceDocument.cpp:
42310         (WebCore::HTMLViewSourceDocument::addText): Updated for String::split change.
42312         * loader/DocLoader.cpp:
42313         (WebCore::DocLoader::checkForReload): Add an explicit check for an empty URL
42314         here to avoid problems using its string as a hash table key later.
42315         (WebCore::DocLoader::requestResource): Removed DeprecatedString use.
42317         * loader/FTPDirectoryDocument.cpp:
42318         (WebCore::FTPDirectoryTokenizer::createTDForFilename): Updated for KURL change.
42319         (WebCore::FTPDirectoryTokenizer::parseAndAppendOneLine): Removed use of
42320         DeprecatedString.
42322         * loader/FrameLoader.cpp:
42323         (WebCore::FrameLoader::requestFrame): Use protocolIs.
42324         (WebCore::FrameLoader::loadSubframe): Use blankURL.
42325         (WebCore::FrameLoader::submitForm): Use protocolIs and removed use of
42326         DeprecatedString.
42327         (WebCore::FrameLoader::iconURL): Return KURL. Use protcolIs.
42328         (WebCore::FrameLoader::didOpenURL): Use protocolIs.
42329         (WebCore::FrameLoader::didExplicitOpen): Use blankURL.
42330         (WebCore::FrameLoader::executeIfJavaScriptURL): Use protocolIs.
42331         Update for name change to decodeURLEscapeSequences.
42332         (WebCore::FrameLoader::receivedFirstData): Updated for KURL changes.
42333         (WebCore::FrameLoader::begin): Removed DeprecatedString use.
42334         Renamed baseurl to baseURL. Updated to use KURL more.
42335         (WebCore::FrameLoader::gotoAnchor): Removed use of encodedHtmlRef
42336         function, which is no different from ref.
42337         (WebCore::FrameLoader::completeURL): Updated for KURL change.
42338         (WebCore::FrameLoader::scheduleLocationChange): Ditto.
42339         (WebCore::FrameLoader::canCachePage): Use protocolIs.
42340         (WebCore::FrameLoader::updatePolicyBaseURL): Update for KURL change.
42341         (WebCore::FrameLoader::setPolicyBaseURL): Take KURL.
42342         (WebCore::FrameLoader::startRedirectionTimer): Removed use of
42343         DeprecatedString.
42344         (WebCore::FrameLoader::load): Use protocolIs.
42345         (WebCore::FrameLoader::shouldHideReferrer): Use protocolIs.
42346         (WebCore::FrameLoader::shouldAllowNavigation): Updated for KURL change.
42347         (WebCore::FrameLoader::commitProvisionalLoad): Use blankURL.
42348         (WebCore::FrameLoader::open): Use protcolIs.
42349         (WebCore::FrameLoader::createHistoryItem): Use blankURL.
42350         (WebCore::FrameLoader::createJavaAppletWidget): Updated for KURL change.
42351         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady): Removed
42352         DeprecatedString use.
42353         * loader/FrameLoader.h: Ditto.
42355         * loader/ImageDocument.cpp:
42356         (WebCore::ImageDocument::createDocumentStructure): Updated for KURL change.
42357         * loader/PluginDocument.cpp:
42358         (WebCore::PluginTokenizer::createDocumentStructure): Ditto.
42360         * loader/icon/IconDatabase.cpp:
42361         (WebCore::IconDatabase::iconForPageURL): Added a check for an empty URL
42362         before trying to use it as a hash table key.
42364         * loader/icon/IconLoader.h: Tweaked includes.
42366         * loader/loader.cpp:
42367         (WebCore::Loader::servePendingRequests): Use protcolIs. Also removed some
42368         code to set up a local variable that is never used (and a DeprecatedString
42369         on to boot!).
42371         * loader/mac/LoaderNSURLExtras.m:
42372         (suggestedFilenameWithMIMEType): Removed unnecessary typecast.
42374         * page/ContextMenuController.cpp: Removed include.
42376         * page/mac/EventHandlerMac.mm:
42377         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
42378         Use protocolIs.
42380         * page/mac/WebCoreFrameBridge.mm:
42381         (-[WebCoreFrameBridge URLWithAttributeString:]): Removed getNSURL call.
42382         (-[WebCoreFrameBridge baseURL]): Ditto.
42384         * platform/KURL.cpp:
42385         (WebCore::isSchemeFirstChar): Fixed bug in handling of values >= 0x80.
42386         (WebCore::isSchemeChar): Ditto.
42387         (WebCore::isPathSegmentEndChar): Ditto.
42388         (WebCore::hexDigitValue): Changed parameter type to UChar.
42389         (WebCore::copyASCII): Added.
42390         (WebCore::findFirstOf): Added.
42391         (WebCore::KURL::protocolIs): Added.
42392         (WebCore::KURL::KURL): Tightened logic up quite a bit. Changed parameter
42393         types from DeprecatedString to String.
42394         (WebCore::KURL::init): Changed parameter type to String. Preserved the
42395         passed-in string even if the base is invalid. Cleaned up logic to determine
42396         if the originalString should be pased in to the parse function. Simplified
42397         by calling the new parse overload that takes String in many cases.
42398         (WebCore::KURL::lastPathComponent): Return String.
42399         (WebCore::KURL::protocol): Ditto.
42400         (WebCore::KURL::host): Ditto.
42401         (WebCore::KURL::port): Changed logic to use early return for clarity.
42402         (WebCore::KURL::pass): Return String.
42403         (WebCore::KURL::user): Ditto.
42404         (WebCore::KURL::ref): Ditto.
42405         (WebCore::assertProtocolIsGood): Added.
42406         (WebCore::KURL::protocolIs): Added.
42407         (WebCore::KURL::query): Return String.
42408         (WebCore::KURL::path): Ditto.
42409         (WebCore::KURL::setProtocol): Take String.
42410         (WebCore::KURL::setHost): Ditto.
42411         (WebCore::KURL::setPort): Use String.
42412         (WebCore::KURL::setHostAndPort): Take String.
42413         (WebCore::KURL::setUser): Ditto.
42414         (WebCore::KURL::setPass): Ditto.
42415         (WebCore::KURL::setRef): Ditto.
42416         (WebCore::KURL::setQuery): Ditto.
42417         (WebCore::KURL::setPath): Ditto.
42418         (WebCore::KURL::prettyURL): Return String. Use Vector<UChar> to build it.
42419         (WebCore::decodeURLEscapeSequences): Renamed from KURL::decode_string.
42420         Return String. Use Vector<UChar> to build it.
42421         (WebCore::KURL::isLocalFile): Use protocolIs.
42422         (WebCore::KURL::parse): Added an overload that takes a String to replace
42423         the use of DeprecatedString::ascii at various call sites. Updated for
42424         name change (urlString -> m_string).
42425         (WebCore::equalIgnoringRef): Wrote a new implementation that doesn't
42426         do any allocation.
42427         (WebCore::encodeWithURLEscapeSequences): Renamed from KURL::encode_string.
42428         Return String.
42429         (WebCore::appendEncodedHostname): Added. Replaces encodeHostname and
42430         avoids the need to allocate a string.
42431         (WebCore::findHostnamesInMailToURL): Update to use findFirstOf instead of
42432         regular expressions.
42433         (WebCore::findHostnameInHierarchicalURL): Ditto.
42434         (WebCore::encodeHostnames): Use protocolIs and the other helpers above.
42435         (WebCore::encodeRelativeString): Changed to put result into a CharBuffer.
42436         (WebCore::substituteBackslashes): Updated to use String.
42437         (WebCore::KURL::copyToBuffer): Added.
42438         (WebCore::protocolIs): Added.
42439         (WebCore::blankURL): Added.
42440         (WebCore::KURL::print): Updated.
42441         * platform/KURL.h: Added a number of comments. Reorganized the header a bit.
42442         Made the string constructors explicit. Changed to use String instead of
42443         DeprecatedString. Removed encodedHTMLRef. Renamed and added a few functions.
42445         * platform/cf/KURLCFNet.cpp:
42446         (WebCore::KURL::KURL): Streamlined the logic a bit.
42447         (WebCore::KURL::createCFURL): Changed to use copyToBuffer.
42449         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
42450         (WebCore::MediaPlayerPrivate::createQTMovie): Removed getNSURL call.
42451         Use protocolIs.
42452         * platform/mac/ClipboardMac.mm:
42453         (WebCore::ClipboardMac::declareAndWriteDragImage): Removed getNSURL call.
42454         * platform/mac/CookieJar.mm:
42455         (WebCore::cookies): Removed getNSURL call.
42456         (WebCore::setCookies): Removed getNSURL call.
42457         * platform/mac/KURLMac.mm:
42458         (WebCore::KURL::KURL): Streamlined the logic a bit.
42459         * platform/mac/PasteboardMac.mm:
42460         (WebCore::Pasteboard::writeURL): Removed getNSURL call.
42461         (WebCore::Pasteboard::writeImage): Ditto.
42462         * platform/mac/SSLKeyGeneratorMac.mm:
42463         (WebCore::signedPublicKeyAndChallengeString): Ditto.
42465         * platform/network/HTTPParsers.cpp:
42466         (WebCore::filenameFromHTTPContentDisposition): Updated for String::split.
42467         * platform/network/ResourceHandle.cpp:
42468         (WebCore::ResourceHandle::portAllowed): Use protocolIs.
42470         * platform/network/cf/ResourceErrorCF.cpp:
42471         (WebCore::ResourceError::operator CFErrorRef): Removed deprecatedString call.
42472         * platform/network/curl/ResourceHandleManager.cpp:
42473         (WebCore::headerCallback): Ditto.
42474         (WebCore::parseDataUrl): Use String instead of DeprecatedString.
42475         (WebCore::ResourceHandleManager::startJob): Updated for KURL changes.
42476         * platform/network/mac/ResourceErrorMac.mm:
42477         (WebCore::ResourceError::operator NSError*): Removed getNSURL call.
42478         * platform/network/mac/ResourceRequest.h:
42479         (WebCore::ResourceRequest::ResourceRequest): Removed DeprecatedString use.
42480         * platform/network/mac/ResourceRequestMac.mm:
42481         (WebCore::ResourceRequest::doUpdatePlatformRequest): Removed getNSURL call.
42482         * platform/network/mac/ResourceResponseMac.mm:
42483         (WebCore::ResourceResponse::nsURLResponse): Removed getNSURL call.
42485         * platform/qt/ClipboardQt.cpp:
42486         (WebCore::ClipboardQt::writeURL): Removed deprecatedString call.
42488         * platform/text/CString.h:
42489         (WebCore::CStringBuffer::length): Fixed size_t/unsigned mismatch to make it
42490         possible to compile this on Windows with higher warning level
42492         * platform/text/PlatformString.h: Updated split to modify a result parameter
42493         rather than returning a Vector. Added charactersAreAllASCII and an append
42494         function that appends a String to a Vector<UChar>.
42495         * platform/text/String.cpp:
42496         (WebCore::String::split): Updated.
42498         * platform/win/BString.cpp:
42499         (WebCore::BString::BString): Added conversion from KURL.
42500         * platform/win/BString.h: Ditto.
42502         * platform/win/ClipboardUtilitiesWin.cpp:
42503         (WebCore::markupToCF_HTML): Removed use of deprecatedString.
42504         * platform/win/ClipboardWin.cpp:
42505         (WebCore::filesystemPathFromUrlOrTitle): Ditto.
42506         (WebCore::createGlobalHDropContent): Ditto.
42507         (WebCore::ClipboardWin::setData): Ditto.
42508         (WebCore::ClipboardWin::writeRange): Ditto.
42509         * platform/win/PasteboardWin.cpp:
42510         (WebCore::Pasteboard::writeSelection): Ditto.
42511         * plugins/PluginStream.cpp:
42512         (WebCore::PluginStream::startStream): Ditto.
42513         (WebCore::PluginStream::destroyStream): Ditto.
42514         * plugins/win/PluginViewWin.cpp:
42515         (WebCore::scriptStringIfJavaScriptURL): Ditto.
42516         (WebCore::PluginView::performRequest): Ditto.
42517         (WebCore::PluginView::PluginView): Ditto.
42519         * rendering/HitTestResult.cpp:
42520         (WebCore::HitTestResult::absoluteImageURL): Removed DeprecatedString use.
42521         (WebCore::HitTestResult::absoluteLinkURL): Ditto.
42523         * rendering/RenderFrameSet.cpp:
42524         (WebCore::RenderFrameSet::layOutAxis): Fixed comment wording.
42525         * rendering/RenderImage.cpp:
42526         (WebCore::RenderImage::paintReplaced): Removed use of DeperecatedString,
42527         (WebCore::RenderImage::imageMap): Changed to call useMap instead of imageMap;
42528         both do the same thing, and the first is standard DOM.
42530         * rendering/RenderObject.cpp:
42531         (WebCore::RenderObject::addPDFURLRect): Rewrote and streamlined to remove
42532         DeprecatedString use.
42533         * rendering/RenderObject.h: Changed addPDFURLRect to take const IntRect&.
42535         * rendering/RenderPartObject.cpp:
42536         (WebCore::isURLAllowed): Updated for KURL change and use equalIgnoringRef
42537         instead of doing a setRef to get the same effect.
42538         (WebCore::RenderPartObject::updateWidget): Updated for KURL change.
42540         * rendering/RenderText.cpp:
42541         (WebCore::charactersAreAllASCII): Moved the guts to PlatformString.h.
42543         * rendering/SVGRenderSupport.cpp:
42544         (WebCore::renderSubtreeToImage): Added missing call to do layout. I ran
42545         into this while doing some layout tests while URL processing was broken.
42547         * rendering/SVGRenderTreeAsText.h: Removed include.
42549         * svg/SVGImageLoader.cpp:
42550         (WebCore::SVGImageLoader::updateFromElement): Removed DeprecatedString use.
42552         * svg/graphics/SVGImage.cpp:
42553         (WebCore::SVGImage::draw): Added missing call to do layout. I ran
42554         into this while doing some layout tests while URL processing was broken.
42555         (WebCore::SVGImage::dataChanged): Use a null URL rather than an arbitrary
42556         string for the document.
42558         * xml/XMLHttpRequest.cpp:
42559         (WebCore::XMLHttpRequest::getResponseXML): Removed DeprecatedString use.
42560         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain): Ditto.
42561         (WebCore::XMLHttpRequest::open): Ditto.
42562         (WebCore::XMLHttpRequest::send):  Namespace change.
42563         (WebCore::XMLHttpRequest::dropProtection): Ditto.
42564         * xml/XMLHttpRequest.h: Removed DeprecatedString use.
42566         * xml/XSLImportRule.cpp:
42567         (WebCore::XSLImportRule::loadSheet): Removed DeprecatedString use.
42568         * xml/XSLStyleSheet.cpp:
42569         (WebCore::XSLStyleSheet::loadChildSheets): Ditto.
42570         (WebCore::XSLStyleSheet::loadChildSheet): Ditto.
42571         * xml/XSLStyleSheet.h: Ditto.
42572         * xml/XSLTProcessor.cpp:
42573         (WebCore::docLoaderFunc): Ditto.
42574         (WebCore::xsltStylesheetPointer): Ditto.
42575         (WebCore::xmlDocPtrFromNode): Ditto.
42577 2008-02-14  Ada Chan  <adachan@apple.com>
42579         <rdar://problem/5744728> Fix leaks of RegularExpression objects in Frame.cpp.
42580         
42581         Reviewed by Jon and Darin.
42583         * page/Frame.cpp:
42584         (WebCore::createRegExpForLabels):
42585         (WebCore::Frame::searchForLabelsBeforeElement):
42586         (WebCore::Frame::matchLabelsAgainstElement):
42588 2008-02-14  Stephanie Lewis  <slewis@apple.com>
42590         Reviewed by Geoff.
42592         Update order files.
42594         * WebCore.order:
42596 2008-02-14  Oliver Hunt  <oliver@apple.com>
42598         Reviewed by Geoff G and Weinig.
42600         <rdar://problem/5726608> REGRESSION (r29428): Assigning to window.status does not update status bar
42602         Revert the portions of r29428 responsible for breaking the ability to
42603         set window.status
42605         * page/DOMWindow.cpp:
42606         (WebCore::DOMWindow::setStatus):
42607         (WebCore::DOMWindow::defaultStatus):
42608         (WebCore::DOMWindow::setDefaultStatus):
42609         * page/DOMWindow.h:
42610         * page/DOMWindow.idl:
42612 2008-02-14  Anders Carlsson  <andersca@apple.com>
42614         Reviewed by Darin.
42616         <rdar://problem/5721790>
42617         Crash in WebCore::DeprecatedString::operator= + 31 at news.google.com
42618         
42619         Use pointers in the cache map tables. Otherwise when we rehash, 
42620         we will end up destroying Cache objects that node lists might point to.
42621         
42622         * dom/Node.cpp:
42623         (WebCore::NodeListsNodeData::~NodeListsNodeData):
42624         (WebCore::Node::getElementsByName):
42625         (WebCore::Node::getElementsByClassName):
42627 2008-02-14  Alp Toker  <alp@atoker.com>
42629         Reviewed by Darin.
42631         http://bugs.webkit.org/show_bug.cgi?id=17353
42632         XMLTokenizer installs global libxml2 callbacks that can break client applications
42634         Patch by Mark Rowe (with a few changes).
42636         The xmlRegisterInputCallbacks/xmlRegisterOutputCallbacks done at
42637         init are global so we need to make sure these callbacks only get used
42638         by XMLTokenizer and never by libxml2 calls in user applications.
42640         This patch modifies the match and open functions to only apply when we
42641         are certain the caller is XMLTokenizer by checking globalDocLoader and
42642         ensuring we're on the correct thread.
42644         Some possible issues remain. See the bug report for details.
42646         * dom/XMLTokenizer.cpp:
42647         (WebCore::matchFunc):
42648         (WebCore::openFunc):
42649         (WebCore::createStringParser):
42651 2008-02-14  Timothy Hatcher  <timothy@apple.com>
42653         Reviewed by Darin Adler.
42655         <rdar://problem/5743768> A deadlock during storage layout tests
42657         Make sure not to hold the m_openDatabaseMapGuard mutex when calling
42658         Database::markAsDeletedAndClose(), since that can cause a deadlock
42659         during the synchronous DatabaseThread call it triggers.
42661         * storage/DatabaseTracker.cpp:
42662         (WebCore::DatabaseTracker::deleteDatabaseFile):
42664 2008-02-14  Adam Roben  <aroben@apple.com>
42666         Turn on cross-document messaging support by default
42668         Reviewed by Darin.
42670         * Configurations/WebCore.xcconfig:
42671         * WebCore.pro:
42672         * WebCore.vcproj/WebCore.vcproj:
42674 2008-02-14  Adam Roben  <aroben@apple.com>
42676         Conditionalize cross-document messaging support
42678         The cross-document messaging parts of HTML 5 are in flux and we want
42679         ports to be able to turn off the support as needed.
42681         Note that the support is turned off by default right now. A subsequent
42682         commit will turn it on by default.
42684         Reviewed by Darin.
42686         * GNUmakefile.am:
42687         * WebCore.vcproj/build-generated-files.sh:
42688         * bindings/js/JSDOMWindowCustom.cpp:
42689         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
42690         * bindings/js/JSEventCustom.cpp:
42691         (WebCore::toJS):
42692         * dom/Event.cpp:
42693         (WebCore::Event::isMessageEvent):
42694         * dom/Event.h:
42695         * dom/MessageEvent.cpp:
42696         * dom/MessageEvent.h:
42697         * dom/MessageEvent.idl:
42698         * page/DOMWindow.cpp:
42699         (WebCore::DOMWindow::postMessage):
42700         * page/DOMWindow.h:
42701         * page/DOMWindow.idl:
42703 2008-02-14  Adam Roben  <aroben@apple.com>
42705         Improve the efficiency of SecurityOriginHash
42707         Reviewed by Alexey.
42709         * platform/SecurityOriginHash.h:
42710         (WebCore::SecurityOriginHash::hash): Now takes a const
42711         RefPtr<SecurityOrigin>& to reduce ref-count churn.
42712         (WebCore::SecurityOriginHash::equal): Ditto.
42714 2008-02-13  Justin Garcia  <justin.garcia@apple.com>
42716         Reviewed by Oliver Hunt.
42718         Fixes the editing/deleting/5729680.html failure.  It succeeds when run by itself
42719         but fails when run with other tests because FramePrivate's m_selectionGranularity
42720         isn't reset when a Frame receives a new document.  It was also uninitialized in
42721         the constructor.
42723         * loader/FrameLoader.cpp:
42724         (WebCore::FrameLoader::clear): Initialize m_selectionGranularity.
42725         * page/Frame.cpp:
42726         (WebCore::FramePrivate::FramePrivate): Ditto.
42728 2008-02-13  Jon Honeycutt  <jhoneycutt@apple.com>
42730         Reviewed by Anders.
42732         <rdar://problem/5739282> Hangs after closing video trailer popup with
42733         VLC plugin
42735         VLC hangs on NPP_Destroy if we call NPP_SetWindow with a null window
42736         handle.
42738         * plugins/PluginQuirkSet.h: Added new quirk
42739         PluginQuirkDontSetNullWindowHandleOnDestroy.
42740         * plugins/win/PluginViewWin.cpp:
42741         (WebCore::PluginView::stop): Selectively call NPP_SetWindow.
42742         (WebCore::PluginView::determineQuirks): Set new quirk for VLC plug-in.
42744 2008-02-13  Rodney Dawes  <dobey@wayofthemonkey.com>
42746         Reviewed by Alp Toker.
42748         Fix non-SVG builds.
42750         * css/CSSCursorImageValue.cpp:
42752 2008-02-13  Justin Garcia  <justin.garcia@apple.com>
42754         Reviewed by Adam Roben.
42756         <rdar://problem/5729680> REGRESSION (r27873): Removing the last character of a word in Mail or Safari also removes the following space
42757         
42758         * editing/Editor.cpp:
42759         (WebCore::Editor::deleteWithDirection): Fixed a typo.
42761 2008-02-13  Nikolas Zimmermann  <zimmermann@kde.org>
42763         Reviewed by Oliver.
42765         Actually fix the manual-tests/svg-cursor-changes.svg testcase.
42766         I only reran layout tests when fixing the last issues with the patch,
42767         instead of trying the manual-test :( Fixed.
42769         * css/CSSCursorImageValue.cpp:
42770         (WebCore::CSSCursorImageValue::CSSCursorImageValue):
42771         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
42772         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
42773         * css/CSSCursorImageValue.h:
42775 2008-02-13  Adam Roben  <aroben@apple.com>
42777         Windows build fix
42779         * css/CSSCursorImageValue.cpp: #include MathExtras.h to get roundf.
42781 2008-02-13  Nikolas Zimmermann  <zimmermann@kde.org>
42783         Reviewed by Darin & Eric.
42785         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17258 (SVG uses erroneous cursor implementation)
42787         SVG cursors are not well-integrated within the CSS(3) cursor support in WebCore.
42788         SVGCursorElement duplicates CSSCursorImageValue functionality and inherits from
42789         CachedResourceClient itself, handling remote-image acquisation on its own.
42791         RenderStyle's CursorData class holds "IntPoint hotSpot", "CachedImage* image"
42792         and just for SVG a 'String cursorFragmentId' (a reference to a SVG <cursor> element, by id).
42794         SVG stores a reference to a SVGCursorElement, which holds a CachedImage pointer itself -
42795         instead of storing the CachedImage in the CursorData class, as it's supposed to be.
42796         Because of that several places in WebCore contain special SVG cursor handling - which
42797         is unneeded.
42799         Fix all issues by integrating within CSSCursorImageValue, remove 'String cursorFragmentId'
42800         from RenderStyle, kill any special SVG cursor handling in WebCore and fix dynamic attribute
42801         changes through DOM / SVG DOM (scripting of 'x' / 'y' / 'xlink:href' attribute). Now you
42802         can script the mouse cursor location using SVG - the feature anyone has waited for.
42804         Added manual test case: manual-tests/svg-cursor-changes.svg (no support for cursors in DRT)
42806         * css/CSSCursorImageValue.cpp:
42807         (WebCore::isSVGCursorIdentifier):
42808         (WebCore::resourceReferencedByCursorElement):
42809         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
42810         (WebCore::CSSCursorImageValue::updateIfNeeded):
42811         (WebCore::CSSCursorImageValue::image):
42812         * css/CSSCursorImageValue.h:
42813         * css/CSSImageValue.cpp:
42814         (WebCore::CSSImageValue::image):
42815         * css/CSSImageValue.h:
42816         * css/CSSParser.cpp:
42817         (WebCore::CSSParser::parseValue):
42818         * css/CSSStyleSelector.cpp:
42819         (WebCore::CSSStyleSelector::applyProperty):
42820         * manual-tests/svg-cursor-changes.svg: Added.
42821         * page/EventHandler.cpp:
42822         (WebCore::EventHandler::selectCursor):
42823         * rendering/RenderStyle.cpp:
42824         * rendering/RenderStyle.h:
42825         (WebCore::CursorData::operator==):
42826         * svg/SVGCursorElement.cpp:
42827         (WebCore::SVGCursorElement::SVGCursorElement):
42828         (WebCore::SVGCursorElement::~SVGCursorElement):
42829         (WebCore::SVGCursorElement::parseMappedAttribute):
42830         (WebCore::SVGCursorElement::addClient):
42831         (WebCore::SVGCursorElement::removeClient):
42832         (WebCore::SVGCursorElement::svgAttributeChanged):
42833         * svg/SVGCursorElement.h:
42834         (WebCore::SVGCursorElement::isValid):
42836 2008-02-13  Alp Toker  <alp@atoker.com>
42838         Reviewed by Adam Roben.
42840         Split out pure-cairo Font code to FontCairo.cpp.
42842         Part of the ongoing work to share code with the Win port.
42844         * GNUmakefile.am:
42845         * WebCore.pro:
42846         * platform/graphics/cairo/FontCairo.cpp: Added.
42847         (WebCore::Font::drawGlyphs):
42848         * platform/graphics/gtk/FontGtk.cpp:
42850 2008-02-13  Kevin Ollivier <kevino@theolliviers.com>
42852         Reviewed by Darin Adler.
42854         Import wx/defs.h to keep windows.h from using ANSI functions
42855         (see note in file for more info) and use the 8-bit string friendly
42856         version of StringImpl::computeHash since we're passing it un UTF8
42857         string. Also, don't cache the hash result.
42858         
42859         http://bugs.webkit.org/show_bug.cgi?id=17321
42861         * config.h:
42862         * platform/graphics/wx/FontPlatformData.h:
42863         (WebCore::FontPlatformData::hash):
42864         (WebCore::FontPlatformData::computeHash):
42866 2008-02-13  Rodney Dawes  <dobey@wayofthemonkey.com>
42868         Fix Bug 17220: Illogical dependency between PluginView and
42869         PluginDatabase
42870         
42871         <http://bugs.webkit.org/show_bug.cgi?id=17220>
42873         Reviewed by Adam and Darin.
42875         Rename PluginDatabase::createPluginView to PluginView::create, to make
42876         the illogical dependency between the two, logical
42877         Make PluginDatabase::findPlugin a public method
42878         Update the includes in PluginView and PluginDatabase for the change
42880         * plugins/PluginDatabase.h:
42881         * plugins/PluginView.h:
42882         * plugins/win/PluginDatabaseWin.cpp:
42883         * plugins/win/PluginViewWin.cpp:
42885 2008-02-13  Adam Roben  <aroben@apple.com>
42887         Build fix
42889         * platform/graphics/cg/GraphicsContextCG.cpp: Added missing #include.
42891 2008-02-13  Matt Lilek  <webkit@mattlilek.com>
42893         Not reviewed, build fix.
42895         * platform/graphics/cg/GraphicsContextCG.cpp:
42896         (WebCore::GraphicsContext::paintBuffer):
42898 2008-02-13  Darin Adler  <darin@apple.com>
42900         - try to fix Wx build
42902         * platform/graphics/wx/GraphicsContextWx.cpp:
42903         (WebCore::GraphicsContext::paintBuffer): Added.
42905         * platform/graphics/cairo/GraphicsContextCairo.cpp:
42906         (WebCore::GraphicsContext::paintBuffer): Added missing paintingDisabled() check.
42907         * platform/graphics/cg/GraphicsContextCG.cpp:
42908         (WebCore::GraphicsContext::paintBuffer): Ditto.
42909         * platform/graphics/qt/GraphicsContextQt.cpp:
42910         (WebCore::GraphicsContext::paintBuffer): Ditto.
42912 2008-02-13  Darin Adler  <darin@apple.com>
42914         - try to fix Wx build
42916         * platform/wx/LocalizedStringsWx.cpp: Add missing include.
42918 2008-02-11  Darin Adler  <darin@apple.com>
42920         - roll out fix for <rdar://problem/5726016> REGRESSION: Xcode News window renders
42921           incorrectly due to visibility fix
42923         Removed the Xcode-specific quirk at the request of some folks on the Xcode team.
42925         * WebCore.base.exp: Rolled out change.
42926         * css/CSSMutableStyleDeclaration.cpp:
42927         (WebCore::CSSMutableStyleDeclaration::setProperty): Ditto.
42928         * page/Settings.cpp:
42929         (WebCore::Settings::Settings): Ditto. But keep the initialization of
42930         m_fontRenderingMode.
42931         (WebCore::Settings::setNeedsXcodeVisibilityQuirk): Removed.
42932         * page/Settings.h:
42933         (WebCore::Settings::needsXcodeVisibilityQuirk): Removed.
42935 2008-02-13  Alexey Proskuryakov  <ap@webkit.org>
42937         Reviewed by Darin.
42939         <rdar://problem/5740042> Database termination issues
42941         Test: storage/close-during-stress-test.html
42943         * dom/Document.cpp:
42944         (WebCore::Document::databaseThread):
42945         * dom/Document.h:
42946         Don't re-create the database thread if it has been already terminated.
42948         * storage/Database.h: (WebCore::Database::document): Changed m_database to a RefPtr to avoid
42949         having a hanging reference.
42951         * storage/DatabaseThread.cpp:
42952         (WebCore::DatabaseThread::requestTermination):
42954         * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::~SQLTransaction): Removed logging.
42955         Transactions are deleted during GC, so it's usually not importatnt to know when it happens.
42957 2008-02-12  Bernhard Rosenkraenzer  <bero@arklinux.org>
42959         Reviewed by Darin.
42961         - fix http://bugs.webkit.org/show_bug.cgi?id=17340
42962           WebCore/platform/Timer.cpp fails to build with gcc 4.3
42964         * platform/Timer.cpp: Add include of <limits.h> since this file uses UINT_MAX.
42966 2008-02-12  Timothy Hatcher  <timothy@apple.com>
42968         Reviewed by Brady Eidson.
42970         <rdar://problem/5652560> Can't delete database if the website that
42971         uses it has been opened in this session
42973         Close the Database on the database thread before deleting the file.
42974         Tested and works on Windows and Mac.
42976         * platform/sql/SQLiteDatabase.cpp:
42977         (WebCore::SQLiteDatabase::close): Assert we are on the opening thread.
42978         * storage/Database.cpp:
42979         (WebCore::Database::markAsDeletedAndClose): Unschedule any pending
42980         Database tasks, and start and imediate DatabaseCloseTask.
42981         (WebCore::Database::close): Close the SQLDatabase.
42982         * storage/Database.h: Renamed markAsDeleted to markAsDeletedAndClose.
42983         * storage/DatabaseTask.cpp:
42984         (WebCore::DatabaseCloseTask::DatabaseCloseTask): New task.
42985         (WebCore::DatabaseCloseTask::doPerformTask): Call close on the Database.
42986         (WebCore::DatabaseCloseTask::debugTaskName): Return "DatabaseCloseTask".
42987         * storage/DatabaseTask.h: Add DatabaseCloseTask.
42988         * storage/DatabaseTracker.cpp:
42989         (WebCore::DatabaseTracker::deleteDatabaseFile): Call the renamed
42990           markAsDeletedAndClose.
42992 2008-02-12  Oliver Hunt  <oliver@apple.com>
42994         Endeavour to fix qt and gtk builds
42996         * platform/graphics/cairo/GraphicsContextCairo.cpp:
42997         * platform/graphics/qt/GraphicsContextQt.cpp:
42999 2008-02-12  Oliver Hunt  <oliver@apple.com>
43001         Reviewed by Eric S.
43003         Bug 17269: Deobfuscate CanvasRenderingContext2D.cpp
43004         Remove ifdef's from canvas paint code
43006         By making GraphicsContext aware of the crossplatform ImageBuffer
43007         type we can migrate the ifdef-ified paint code in HTMLCanvasElement
43008         into platform implementations of GraphicsContext.
43010         * html/HTMLCanvasElement.cpp:
43011         (WebCore::HTMLCanvasElement::paint):
43012         * platform/graphics/GraphicsContext.h:
43013         * platform/graphics/cairo/GraphicsContextCairo.cpp:
43014         (WebCore::GraphicsContext::paintBuffer):
43015         * platform/graphics/cg/GraphicsContextCG.cpp:
43016         (WebCore::GraphicsContext::paintBuffer):
43017         * platform/graphics/qt/GraphicsContextQt.cpp:
43018         (WebCore::GraphicsContext::paintBuffer):
43020 2008-02-12  Brady Eidson  <beidson@apple.com>
43022         Reviewed by Darin Adler
43024         Fix for <rdar://problem/5737692> - Database API needs to support SuccessCallback
43026         Layout tests will come shortly with a mess of DRT changes
43028         * platform/SecurityOrigin.cpp:
43029         (WebCore::SecurityOrigin::SecurityOrigin): Standardize on "empty string" instead of null string
43030           as different paths of constructing a SecurityOrigin were causing different hashes for the "same"
43031           SecurityOrigin
43033         * storage/Database.cpp:
43034         (WebCore::Database::changeVersion): Pass in the successCallback
43035         (WebCore::Database::transaction): Ditto
43037         * storage/SQLTransaction.cpp:
43038         (WebCore::SQLTransaction::SQLTransaction):
43039         (WebCore::SQLTransaction::debugStepName):
43040         (WebCore::SQLTransaction::performNextStep): Update ASSERTs for the new valid steps
43041         (WebCore::SQLTransaction::performPendingCallback): Ditto
43042         (WebCore::SQLTransaction::postflightAndCommit): Schedule the success callback if it exists - otherwise
43043           skip straight to cleanupAfterSuccessCallback()
43044         (WebCore::SQLTransaction::deliverSuccessCallback): Deliver success callback on the main thread, then
43045           schedule cleanupAfterSuccessCallback()
43046         (WebCore::SQLTransaction::cleanupAfterSuccessCallback): Cleanup and end the transaction
43047         (WebCore::SQLTransaction::handleTransactionError):
43048         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
43049         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
43050         * storage/SQLTransaction.h:
43052 2008-02-12  Steve Falkenburg  <sfalken@apple.com>
43054         Changes to support merged MIDL output.
43055         
43056         All COM interfaces are now generated to WebKit.h.
43057         
43058         Reviewed by Sam, Ada.
43060         * bindings/scripts/CodeGeneratorCOM.pm:
43062 2008-02-12  Dan Bernstein  <mitz@apple.com>
43064         Reviewed by Adam Roben.
43066         - fix http://bugs.webkit.org/show_bug.cgi?id=17041
43067           <rdar://problem/5709660> Eastern Asian fonts do not display without specific box in Control Panel
43069         Revised the system fallback font lookup logic to use MLang font linking
43070         again. To avoid reintroducing bug 16548 and <rdar://problem/5280188>,
43071         for CJK characters, try linking based on a single code page at a time,
43072         starting with the user's default code page (if it is one of the CJK
43073         code pages) followed by the other CJK code pages in a prescribed order
43074         that matches what Firefox does.
43076         * platform/graphics/win/FontCacheWin.cpp:
43077         (WebCore::getCJKCodePageMasks): Added. Returns the search order for CJK
43078         code pages, with the user's default code page first.
43079         (WebCore::currentFontContainsCharacter): Factored out of
43080         getFontDataForCharacters().
43081         (WebCore::createMLangFont): Ditto.
43082         (WebCore::FontCache::getFontDataForCharacters):
43084 2008-02-12  Rodney Dawes  <dobey@wayofthemonkey.com>
43086         Reviewed by Alp Toker.
43088         Add -DMAEMO_CHANGES when the hildon CONFIG option is specified
43089         Add hildon-1 to PKGCONFIG when hildon CONFIG option is specified
43091         * WebCore.pro:
43093 2008-02-12  Dan Bernstein  <mitz@apple.com>
43095         Reviewed by Timothy Hatcher.
43097         - <rdar://problem/5738175> Remove workaround for <rdar://problem/5539388> from post-Tiger builds
43099         * platform/graphics/cg/GraphicsContextCG.cpp:
43100         (WebCore::GraphicsContext::setShadow):
43102 2008-02-12  Brady Eidson  <beidson@apple.com>
43104         Release build fix
43106         * storage/DatabaseTask.cpp:
43108 2008-02-12  Alexey Proskuryakov <ap@webkit.org> and Brady Eidson <beidson@apple.com>
43110         Reviewed by Brady.
43112         http://bugs.webkit.org/show_bug.cgi?id=17177
43113         <rdar://problem/5729619> Storage tasks are getting lost
43115         <rdar://problem/5729445> REGRESSION: Cannot schedule more than one transaction at a time
43117         <rdar://problem/5729446> Major thread safety issue in Database code
43119         * platform/MessageQueue.h: Added a thread-safe queue abstraction.
43121         * WebCore.vcproj/WebCore.vcproj:
43122         * WebCore.xcodeproj/project.pbxproj:
43123         Added MessageQueue.h.
43125         * dom/Document.cpp:
43126         (WebCore::Document::~Document): Fixed a race condition resulting in a hanging reference.
43128         * storage/Database.idl: Fixed parameter declarations to actually match implementation
43129         (which is custom, so it got out of sync).
43131         * storage/DatabaseTask.h:
43132         (WebCore::DatabaseTask::database):
43133         (WebCore::DatabaseTransactionTask::transaction):
43134         Changed tasks to hold more information internally. Added helpers for better debug logging.
43136         * storage/DatabaseTask.cpp:
43137         (WebCore::DatabaseTask::DatabaseTask):
43138         (WebCore::DatabaseTask::performTask):
43139         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
43140         (WebCore::DatabaseOpenTask::doPerformTask):
43141         (WebCore::DatabaseOpenTask::debugTaskName):
43142         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
43143         (WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
43144         (WebCore::DatabaseTransactionTask::doPerformTask):
43145         (WebCore::DatabaseTransactionTask::debugTaskName):
43146         (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
43147         (WebCore::DatabaseTableNamesTask::doPerformTask):
43148         (WebCore::DatabaseTableNamesTask::debugTaskName):
43149         Implementation for the above.
43151         (WebCore::DatabaseTask::lockForSynchronousScheduling):
43152         (WebCore::DatabaseTask::waitForSynchronousCompletion):
43153         Fixed a potential race condition: if the task completed before we entered a wait, we'd never
43154         wake up. There was an assertion guarding against this, but no actual guarantee that I could see.
43156         * storage/DatabaseThread.cpp:
43157         (WebCore::DatabaseThread::DatabaseThread):
43158         (WebCore::DatabaseThread::requestTermination):
43159         (WebCore::DatabaseThread::databaseThread):
43160         (WebCore::DatabaseThread::scheduleTask):
43161         (WebCore::DatabaseThread::scheduleImmediateTask):
43162         (WebCore::DatabaseThread::unscheduleDatabaseTasks):
43163         * storage/DatabaseThread.h:
43164         Changed to use MessageQueue.
43166         * storage/Database.cpp:
43167         (WebCore::guidMutex):
43168         (WebCore::guidToVersionMap):
43169         (WebCore::guidToDatabaseMap):
43170         (WebCore::Database::openDatabase):
43171         (WebCore::Database::Database):
43172         (WebCore::Database::~Database):
43173         (WebCore::Database::openAndVerifyVersion):
43174         (WebCore::guidForOriginAndName):
43175         (WebCore::Database::changeVersion):
43176         (WebCore::Database::transaction):
43177         (WebCore::Database::scheduleTransaction):
43178         (WebCore::Database::scheduleTransactionStep):
43179         (WebCore::Database::scheduleTransactionCallback):
43180         (WebCore::Database::version):
43181         (WebCore::Database::deliverPendingCallback):
43182         (WebCore::Database::tableNames):
43183         * storage/Database.h:
43184         Changed m_transactionQueue to a MessageQueue.
43185         Got rid of callback tracking - these can take care of themselves.
43186         Got rid of a DatabaseThread member, as the Document can be asked for it.
43187         Moved private static members and helpers out of the header.
43188         Lost CurrentThreadSetter debug helper on the way. We may need to re-add something like that later.
43190         * storage/SQLTransaction.h:
43191         * storage/SQLTransaction.cpp: Added a lot of debug logging.
43192         (WebCore::SQLTransaction::scheduleToRunStatements): Removed "m_currentStatement = 0" assignment,
43193         as it created a race condition. Everything seems to work better without it, although a real fix
43194         would be to get rid of this variable - it's evil shared data that isn't even protected in any way.
43196         * manual-tests/database-threading-stress-test-2.html: Added.
43197         * manual-tests/database-threading-stress-test.html: Added.
43199 2008-02-12  Adam Roben  <aroben@apple.com>
43201         Fix Bug 17328: REGRESSION (r30147): Inspector is unstyled on Windows
43203         <http://bugs.webkit.org/show_bug.cgi?id=17328>
43204         <rdar://5737946>
43206         Reviewed by Mitz.
43208         Test: fast/loader/local-css-allowed-in-strict-mode.html
43210         * platform/network/cf/ResourceResponseCFNet.cpp:
43211         (WebCore::ResourceResponse::doUpdateResourceResponse): Add a case for
43212         .css files.
43214 2008-02-12  Anders Carlsson  <andersca@apple.com>
43216         Build fix.
43217         
43218         * loader/ImageDocument.cpp:
43220 2008-02-12  Anders Carlsson  <andersca@apple.com>
43222         Reviewed by Mitz.
43224         Make the code that sets the image title cross platform.
43226         * WebCore.xcodeproj/project.pbxproj:
43227         Remove ImageDocumentMac.
43228         
43229         * loader/ImageDocument.cpp:
43230         (WebCore::ImageTokenizer::finish):
43232         * loader/mac/ImageDocumentMac.h: Removed.
43233         * loader/mac/ImageDocumentMac.mm: Removed.
43234         
43235         * page/mac/WebCoreFrameBridge.h:
43236         * page/mac/WebCoreViewFactory.h:
43237         Move imageTitleForFilename:size from the bridge to
43238         the view factory.
43239         
43240         * platform/LocalizedStrings.h:
43241         Add imageTitle.
43242         
43243         * platform/mac/LocalizedStringsMac.mm:
43244         (WebCore::imageTitle):
43245         Have imageTitle call the view factory.
43246         
43247         * platform/qt/Localizations.cpp:
43248         (WebCore::imageTitle):
43249         * platform/wx/LocalizedStringsWx.cpp:
43250         (WebCore::imageTitle):
43251         * platform/gtk/LocalizedStringsGtk.cpp:
43252         (WebCore::imageTitle):
43253         Add stubs.
43254         
43255 2008-02-12  Oliver Hunt  <oliver@apple.com>
43257         more Qt fixes
43259         * html/HTMLCanvasElement.cpp:
43260         (WebCore::HTMLCanvasElement::paint):
43262 2008-02-12  Oliver Hunt  <oliver@apple.com>
43264         And another attempt to fixerate Qt
43266         * html/HTMLCanvasElement.cpp:
43267         (WebCore::HTMLCanvasElement::paint):
43269 2008-02-12  Oliver Hunt  <oliver@apple.com>
43271         Attempt to fix Qt build
43273         * html/HTMLCanvasElement.h:
43275 2008-02-11  Oliver Hunt  <oliver@apple.com>
43277         Reviewed by Alp Toker.
43279         Make canvas use an ImageBuffer for its backing store
43281         In order to make the canvas implementation less platform dependent
43282         (and thus reduce the current quagmire of ifdefs) we now use an 
43283         ImageBuffer to provide the backing buffer, an immediate consequence
43284         of this is to remove multiple ifdefs in the construction of the
43285         buffer.  This patch allows us to further reduce the platform
43286         dependencies in later patches.
43289         * html/CanvasRenderingContext2D.cpp:
43290         (WebCore::CanvasRenderingContext2D::drawImage):
43291         * html/HTMLCanvasElement.cpp:
43292         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
43293         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
43294         (WebCore::HTMLCanvasElement::reset):
43295         (WebCore::HTMLCanvasElement::paint):
43296         (WebCore::HTMLCanvasElement::createDrawingContext):
43297         (WebCore::HTMLCanvasElement::drawingContext):
43298         (WebCore::HTMLCanvasElement::createPlatformImage):
43299         * html/HTMLCanvasElement.h:
43301 2008-02-11  Dan Bernstein  <mitz@apple.com>
43303         Reviewed by Dave Hyatt.
43305         - fix http://bugs.webkit.org/show_bug.cgi?id=17320
43306           <rdar://problem/5736953> :last-child does not set the "uses sibling rules" flag
43308         Test: fast/css/last-child-style-sharing.html
43310         * css/CSSGrammar.y: Changed to call setUsesSiblingRules(true) for all
43311         CSS3 selectors that require it.
43313 2008-02-11  Sam Weinig  <sam@webkit.org>
43315         Reviewed by Darin Adler.
43317         Make the cross-domain security model more closely match Firefox by always returning the
43318         native built-in functions when accessing functions cross-domain.
43320         Fixes for:
43321         <rdar://problem/5735497> Match Firefox's cross-domain model more accurately by return the built-in version of functions even if they have been overridden
43322         <rdar://problem/5735443> Crash when setting the Window objects prototype to a custom Object and then calling a method on it
43324         Tests: fast/dom/Window/window-custom-prototype-crash.html
43325                fast/dom/Window/window-function-frame-getter-precedence.html
43326                http/tests/security/cross-frame-access-get-override.html
43327                http/tests/security/cross-frame-access-location-get-override.html
43328                http/tests/security/cross-frame-access-location-get.html
43329                http/tests/security/cross-frame-access-location-put.html
43331         * bindings/js/JSDOMWindowCustom.cpp:
43332         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
43333         - Return the native-built in version of an cross-domain allowed function (eg. window.focus) whether or
43334           not it has been overridden, instead of undefined.
43335         - When doing findEntry lookup, use the the tables directly (JSDOMWindowPrototype::info.propHashTable) 
43336           instead of calling the virtual classInfo() method to avoid the unnecessary overhead.
43337         - Allow access to the native toString function cross-domain.  It always returns "[object Window]".
43338         - Use the new nonCachingStaticFunctionGetter when return allowed functions cross-frame so that
43339           the function an overridden function is not inadvertantly returned from the PropertyMap.\
43341         * bindings/js/JSHistoryCustom.cpp:
43342         (WebCore::JSHistory::customGetOwnPropertySlot):
43343         - Implement the same model as described above for the History object, always returning the
43344           native built-in function cross-domain.
43345         - Allow access to the native toString function cross-domain.
43346         - Clean up the code to make it clear that the custom functionality is only there for cross-domain
43347           access.
43349         * bindings/js/JSLocation.cpp:
43350         (WebCore::JSLocation::getOwnPropertySlot):
43351         - Match the generated classes by moving all the custom logic into a separate customGetOwnPropertySlot
43352           function.  This will help moving to a generated class in the future.
43353         (WebCore::JSLocation::customGetOwnPropertySlot):
43354         - Implement the same model as described above for the Location object, always returning the
43355           native built-in function cross-domain.
43356         - Clean up the code to make it clear that the custom functionality is only there for cross-domain
43357           access.
43358         (WebCore::JSLocation::put):
43359         (WebCore::JSLocation::deleteProperty):
43360         (WebCore::JSLocation::getPropertyNames):
43361         * bindings/js/JSLocation.h:
43362         - Clean up to match the rest of the file a little better.
43364         * bindings/js/kjs_binding.cpp:
43365         (WebCore::allowsAccessFromFrame):
43366         (WebCore::printErrorMessageForFrame):
43367         (WebCore::nonCachingStaticFunctionGetter):
43368         (WebCore::objectToStringFunctionGetter):
43369         * bindings/js/kjs_binding.h:
43370         - Put common functionality related to cross-domain access here to serve as a central shared point.
43371           This includes moving and augmenting the allowsAccessFromFrame method that was in both JSHistoryCustom.cpp
43372           and JSLocation.cpp.
43374         * bindings/js/kjs_dom.cpp:
43375         (WebCore::checkNodeSecurity):
43376         - Use the new allowsAccessFromFrame method.
43378         * bindings/js/kjs_window.cpp:
43379         (KJS::Window::childFrameGetter): Cleanup.
43380         (KJS::Window::namedItemGetter): Cleanup.
43381         (KJS::Window::getOwnPropertySlot):
43382         - Do the prototype lookup early to match Firefox in having function lookup have a higher precedence
43383           than the index or shortcut name getters.
43384         - Cleanup function to make it more understandable and slightly more efficient.
43385         (KJS::Window::allowsAccessFrom):
43386         - Add a new variant of this method that takes a reference to a String, which, on failure, will
43387           contain the error message to print out.  The caller can then pass this to printErrorMessage.
43388           This allows for code to check allowsAccessFrom and act on the result without printing out the
43389           error message. For convenience, a version with out the String parameter has been left which 
43390           prints out the message automatically.
43391         (KJS::Window::printErrorMessage):
43392         * bindings/js/kjs_window.h:
43394 2008-02-11  Darin Adler  <darin@apple.com>
43396         Reviewed by Mitz.
43398         - fix <rdar://problem/5726016> REGRESSION: Xcode News window renders
43399           incorrectly due to visibility fix
43401         Added an Xcode-specific quirk.
43403         * WebCore.base.exp: Added export for new Settings function.
43404         * css/CSSMutableStyleDeclaration.cpp:
43405         (WebCore::CSSMutableStyleDeclaration::setProperty): Here's the crazy quirk.
43406         If you try to change the visibilty on a node with the class name tab_content,
43407         instead it will use display:none.
43408         * page/Settings.cpp:
43409         (WebCore::Settings::Settings): Initialize m_needsXcodeVisibilityQuirk. Also
43410         initialize m_fontRenderingMode! This seems like it was a bug before, but we
43411         probably were getting lucky and always getting 0 on Windows, which is the
43412         only place the setting matters.
43413         (WebCore::Settings::setNeedsXcodeVisibilityQuirk): Added.
43414         * page/Settings.h:
43415         (WebCore::Settings::needsXcodeVisibilityQuirk): Added.
43417 2008-02-11  Timothy Hatcher  <timothy@apple.com>
43419         Reviewed by Brady Eidson.
43421         <rdar://problem/5733069> Many m_quotaMap uses do not hold the m_quotaMapGuard
43423         * storage/DatabaseTracker.cpp:
43424         (WebCore::DatabaseTracker::hasEntryForOrigin): Hold m_quotaMapGuard when using m_quotaMap.
43425         (WebCore::DatabaseTracker::origins): Ditto.
43426         (WebCore::DatabaseTracker::setQuota): Ditto.
43427         (WebCore::DatabaseTracker::deleteAllDatabases): Call origins() and itterate over the
43428         origins to call deleteOrigin().
43429         (WebCore::DatabaseTracker::deleteOrigin): Hold m_quotaMapGuard when using m_quotaMap.
43431 2008-02-11  David Hyatt  <hyatt@apple.com>
43433         Fix for bug 17286, crash accessing a null RenderStyle.  Add a simple null check.
43435         Reviewed by aroben
43437         Added fast/css/empty-generated-content.html
43439         * css/CSSStyleSelector.cpp:
43440         (WebCore::CSSStyleSelector::checkOneSelector):
43442 2008-02-11  Rob Buis  <buis@kde.org>
43444         Reviewed by David Kilzer.
43446         http://bugs.webkit.org/show_bug.cgi?id=17201
43447         Bug 17201: Use RefPtr in CSSParser::parseFont() to get rid of goto silliness
43449         Gets rid of goto usage in parseFont.
43451         * css/CSSParser.cpp:
43452         (WebCore::CSSParser::parseFont):
43454 2008-02-11  David Hyatt  <hyatt@apple.com>
43456         Fix for bug 17298, Acid3 text should be black and not red.  Make sure stylesheets with the wrong MIME type
43457         are not accepted in strict mode.
43459         Reviewed by darin
43461         Added http/tests/misc/css-reject-in-strict-mode.html
43463         * css/CSSImportRule.cpp:
43464         (WebCore::CSSImportRule::setCSSStyleSheet):
43465         * css/CSSImportRule.h:
43466         * dom/Document.cpp:
43467         (WebCore::Document::setCSSStyleSheet):
43468         * dom/Document.h:
43469         * dom/ProcessingInstruction.cpp:
43470         (WebCore::ProcessingInstruction::setCSSStyleSheet):
43471         * dom/ProcessingInstruction.h:
43472         * html/HTMLLinkElement.cpp:
43473         (WebCore::HTMLLinkElement::setCSSStyleSheet):
43474         * html/HTMLLinkElement.h:
43475         * html/HTMLMediaElement.cpp:
43476         (WebCore::HTMLMediaElement::pickMedia):
43477         * loader/CachedCSSStyleSheet.cpp:
43478         (WebCore::CachedCSSStyleSheet::ref):
43479         (WebCore::CachedCSSStyleSheet::checkNotify):
43480         (WebCore::CachedCSSStyleSheet::canUseSheet):
43481         * loader/CachedCSSStyleSheet.h:
43482         (WebCore::CachedCSSStyleSheet::sheetText):
43483         * loader/CachedResourceClient.h:
43484         (WebCore::CachedResourceClient::setCSSStyleSheet):
43485         * loader/mac/UserStyleSheetLoader.cpp:
43486         (UserStyleSheetLoader::setCSSStyleSheet):
43487         * loader/mac/UserStyleSheetLoader.h:
43489 2008-02-11  Adam Roben  <aroben@apple.com>
43491         Fix Bug 14316: Inspector's Console truncates long strings
43493         <http://bugs.webkit.org/show_bug.cgi?id=14316>
43494         <rdar://5357695>
43496         We no longer call Object.describe to format all the output of commands
43497         enetered into the Console. The ConsolePanel object now has a set of
43498         formatting functions that append a formatted representation of the
43499         passed-in object to the passed-in container node.
43501         Reviewed by Sam.
43503         * page/inspector/ConsolePanel.js:
43504         (WebInspector.ConsolePanel._onEnterPressed): Updated for rename of
43505         _outputToNode to _format.
43506         (WebInspector.ConsolePanel._format): Renamed from _outputToNode. Use
43507         Object.type to get the type of the object, then call the appropriate
43508         formatting function.
43509         (WebInspector.ConsolePanel._formatvalue): Added.
43510         (WebInspector.ConsolePanel._formatstring): Added. This function
43511         contains the actual fix for the bug, since it doesn't truncate the
43512         string no matter how long it is.
43513         (WebInspector.ConsolePanel._formatregexp): Added.
43514         (WebInspector.ConsolePanel._formatarray): Added. This is a bit more
43515         functional than Object.describe for arrays, since it recursively
43516         formats each item in the array. One advantage of this is that Nodes in
43517         arrays will be linkified instead of just turning into "[Object
43518         HTMLBodyElement]" or similar.
43519         (WebInspector.ConsolePanel._formatnode): Added.
43520         (WebInspector.ConsolePanel._formatobject): Added.
43521         (WebInspector.ConsolePanel.
43522         * page/inspector/utilities.js:
43523         (Object.type): Added. Code was pulled out of Object.describe and
43524         reorganized slightly.
43525         (Object.describe): Call Object.type. There should be no change in
43526         behavior of this function.
43528 2008-02-11  Alp Toker  <alp@atoker.com>
43530         Wx build fix for breakage introduced in r30142. Spotted by Darin.
43532         * platform/network/curl/ResourceHandleManager.cpp:
43533         (WebCore::parseDataUrl):
43535 2008-02-11  Brent Fulgham  <bfulgham@gmail.com>
43537         Reviewed and tweaked by Darin
43539         - http://bugs.webkit.org/show_bug.cgi?id=17299
43540           a couple compilation fixes for Cairo/Win32 configuration
43542         * platform/graphics/cairo/ImageSourceCairo.cpp:
43543         (WebCore::createDecoder): Turn off XBMImageDecoder for PLATFORM(WIN) configuration.
43544         * rendering/RenderThemeWin.cpp:
43545         (WebCore::prepareForDrawing): Added IntRect parameter.
43546         (WebCore::doneDrawing): Ditto.
43547         (WebCore::RenderThemeWin::paintButton): Ditto.
43548         (WebCore::RenderThemeWin::paintTextField): Ditto.
43549         (WebCore::RenderThemeWin::paintMenuListButton): Ditto.
43550         (WebCore::RenderThemeWin::systemFont): Added.
43552 2008-02-11  Alp Toker  <alp@atoker.com>
43554         Reviewed by Alexey.
43556         Acid3 data URL parsing fix for the GTK+ port.
43558         Avoid WebCore's base64Decode() when possible since it's not a
43559         general-purpose Base64 decoder and fails on newlines.
43561         * platform/network/curl/ResourceHandleManager.cpp:
43562         (WebCore::parseDataUrl):
43564 2008-02-11  Darin Adler  <darin@apple.com>
43566         - another Qt build fix
43568         * platform/qt/PopupMenuQt.cpp:
43569         (WebCore::PopupMenu::PopupMenu): Added explicit RefCounted constructor.
43571 2008-02-10  Darin Adler  <darin@apple.com>
43573         - another Qt build fix (wish the Qt bot wouldn't stop on the first error)
43575         * platform/qt/FileChooserQt.cpp:
43576         (WebCore::FileChooser::FileChooser): Added explicit RefCounted constructor.
43578 2008-02-10  Darin Adler  <darin@apple.com>
43580         - another Qt build fix
43582         * platform/graphics/qt/IconQt.cpp:
43583         (WebCore::Icon::Icon): Added explicit RefCounted constructor.
43585 2008-02-10  Alp Toker  <alp@atoker.com>
43587         Another Win build fix for r30133 breakage.
43589         * plugins/win/PluginPackageWin.cpp:
43590         (WebCore::PluginPackage::PluginPackage):
43592 2008-02-10  Alp Toker  <alp@atoker.com>
43594         Build fix GTK+ and prospective build fix for Win breakage introduced
43595         in r30133.
43597         * platform/Cursor.h:
43598         (WebCore::SharedCursor::SharedCursor):
43599         * platform/graphics/gtk/IconGtk.cpp:
43600         (WebCore::Icon::Icon):
43601         * platform/gtk/FileChooserGtk.cpp:
43602         (WebCore::FileChooser::FileChooser):
43603         * platform/gtk/PopupMenuGtk.cpp:
43604         (WebCore::PopupMenu::PopupMenu):
43606 2008-02-10  Darin Adler  <darin@apple.com>
43608         - try to fix Win, Qt, GTK, and WX builds
43610         * platform/Cursor.h:
43611         (WebCore::SharedCursor::SharedCursor): Added explicit RefCounted constructor.
43612         * platform/graphics/win/IconWin.cpp:
43613         (WebCore::Icon::Icon): Ditto.
43614         * platform/win/FileChooserWin.cpp:
43615         (WebCore::FileChooser::FileChooser): Ditto.
43616         * platform/win/PopupMenuWin.cpp:
43617         (WebCore::PopupMenu::PopupMenu): Ditto.
43618         * platform/wx/TemporaryLinkStubs.cpp:
43619         (FileChooser::FileChooser): Ditto.
43620         (PopupMenu::PopupMenu): Ditto.
43621         (Icon::Icon): Ditto.
43622         * plugins/PluginStream.cpp:
43623         (WebCore::PluginStream::PluginStream): Ditto.
43625 2008-02-10  David Hyatt  <hyatt@apple.com>
43627         Fix for bug 17082, cssRules should be live.
43629         Reviewed by olliej
43631         Added fast/css/live-cssrules.html
43633         * css/CSSRuleList.cpp:
43634         (WebCore::CSSRuleList::CSSRuleList):
43635         (WebCore::CSSRuleList::length):
43636         (WebCore::CSSRuleList::item):
43637         (WebCore::CSSRuleList::deleteRule):
43638         (WebCore::CSSRuleList::insertRule):
43639         * css/CSSRuleList.h:
43641 2008-02-10  David Hyatt  <hyatt@apple.com>
43643         Fix for bug 17253.  <iframe> contents need to be reflected into the DOM as a single text node.
43645         Reviewed by olliej
43647         fast/frames/iframe-text-contents.html
43649         * html/HTMLParser.cpp:
43650         (WebCore::HTMLParser::getNode):
43651         * html/HTMLTokenizer.cpp:
43652         (WebCore::HTMLTokenizer::parseSpecial):
43653         (WebCore::HTMLTokenizer::parseComment):
43654         (WebCore::HTMLTokenizer::parseTag):
43655         * html/HTMLTokenizer.h:
43656         (WebCore::HTMLTokenizer::State::inIFrame):
43657         (WebCore::HTMLTokenizer::State::setInIFrame):
43658         (WebCore::HTMLTokenizer::State::inAnySpecial):
43659         (WebCore::HTMLTokenizer::State::needsSpecialWriteHandling):
43660         (WebCore::HTMLTokenizer::State::):
43662 2008-02-10  Andrew Wellington  <proton@wiretapped.net>
43664         Reviewed and tweaked by Darin.
43665         
43666         DOMRange.surroundContents throws wrong exception (Acid3 bug)
43667         http://bugs.webkit.org/show_bug.cgi?id=16749
43668         
43669         Throw BAD_BOUNDARYPOINTS_ERR if attempting to split a non-text node that
43670         has offsets in characters.
43672         * dom/Range.cpp:
43673         (WebCore::Range::surroundContents):
43675 2008-02-10  Darin Adler  <darin@apple.com>
43677         Reviewed by Eric.
43679         - http://bugs.webkit.org/show_bug.cgi?id=17256
43680           Make clients of RefCounted explicitly set the count to 0.
43682         * bindings/js/JSSVGPODTypeWrapper.h:
43683         (WebCore::JSSVGPODTypeWrapper::JSSVGPODTypeWrapper):
43684         * css/CSSFontFace.h:
43685         (WebCore::CSSFontFace::CSSFontFace):
43686         * css/CSSRuleList.cpp:
43687         (WebCore::CSSRuleList::CSSRuleList):
43688         * css/CSSSegmentedFontFace.cpp:
43689         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
43690         * css/Counter.h:
43691         (WebCore::Counter::Counter):
43692         * css/Pair.h:
43693         (WebCore::Pair::Pair):
43694         * css/Rect.h:
43695         (WebCore::Rect::Rect):
43696         * css/StyleBase.h:
43697         (WebCore::StyleBase::StyleBase):
43698         * css/StyleSheetList.cpp:
43699         (WebCore::StyleSheetList::StyleSheetList):
43700         * dom/Attr.cpp:
43701         (WebCore::Attr::Attr):
43702         * dom/Attr.h:
43703         * dom/Attribute.h:
43704         (WebCore::Attribute::Attribute):
43705         * dom/Clipboard.cpp:
43706         (WebCore::Clipboard::Clipboard):
43707         * dom/DOMImplementation.h:
43708         (WebCore::DOMImplementation::DOMImplementation):
43709         * dom/Event.cpp:
43710         (WebCore::Event::Event):
43711         * dom/EventListener.h:
43712         (WebCore::EventListener::EventListener):
43713         * dom/ExceptionBase.cpp:
43714         (WebCore::ExceptionBase::ExceptionBase):
43715         * dom/NamedAttrMap.h:
43716         (WebCore::NamedAttrMap::insertAttribute):
43717         * dom/NamedNodeMap.h:
43718         (WebCore::NamedNodeMap::NamedNodeMap):
43719         * dom/NodeFilter.h:
43720         (WebCore::NodeFilter::NodeFilter):
43721         * dom/NodeFilterCondition.h:
43722         (WebCore::NodeFilterCondition::NodeFilterCondition):
43723         * dom/NodeList.h:
43724         (WebCore::NodeList::NodeList):
43725         * dom/QualifiedName.h:
43726         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
43727         (WebCore::QualifiedName::ref):
43728         * dom/Range.cpp:
43729         (WebCore::Range::Range):
43730         * dom/RegisteredEventListener.cpp:
43731         (WebCore::RegisteredEventListener::RegisteredEventListener):
43732         * dom/StyledElement.h:
43733         * dom/Traversal.cpp:
43734         (WebCore::Traversal::Traversal):
43735         * editing/EditCommand.cpp:
43736         (WebCore::EditCommand::EditCommand):
43737         * history/BackForwardList.cpp:
43738         (WebCore::BackForwardList::BackForwardList):
43739         * history/CachedPage.cpp:
43740         (WebCore::CachedPage::CachedPage):
43741         * history/HistoryItem.cpp:
43742         (WebCore::HistoryItem::HistoryItem):
43743         * html/CanvasGradient.cpp:
43744         (WebCore::CanvasGradient::CanvasGradient):
43745         * html/CanvasPattern.cpp:
43746         (WebCore::CanvasPattern::CanvasPattern):
43747         * html/CanvasRenderingContext2D.cpp:
43748         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
43749         * html/CanvasStyle.cpp:
43750         (WebCore::CanvasStyle::CanvasStyle):
43751         * html/HTMLCollection.cpp:
43752         (WebCore::HTMLCollection::HTMLCollection):
43753         * html/MediaError.h:
43754         (WebCore::MediaError::MediaError):
43755         * html/TimeRanges.cpp:
43756         (TimeRanges::TimeRanges):
43757         * html/TimeRanges.h:
43758         (WebCore::TimeRanges::TimeRanges):
43759         * html/VoidCallback.h:
43760         (WebCore::VoidCallback::VoidCallback):
43761         * loader/DocumentLoader.cpp:
43762         (WebCore::DocumentLoader::DocumentLoader):
43763         * loader/FormState.cpp:
43764         (WebCore::FormState::FormState):
43765         * loader/ResourceLoader.cpp:
43766         (WebCore::ResourceLoader::ResourceLoader):
43767         * loader/TextResourceDecoder.cpp:
43768         (WebCore::TextResourceDecoder::TextResourceDecoder):
43769         * loader/icon/IconRecord.cpp:
43770         (WebCore::IconRecord::IconRecord):
43771         * page/BarInfo.cpp:
43772         (WebCore::BarInfo::BarInfo):
43773         * page/Console.cpp:
43774         (WebCore::Console::Console):
43775         * page/DOMSelection.cpp:
43776         (WebCore::DOMSelection::DOMSelection):
43777         * page/DOMWindow.cpp:
43778         (WebCore::DOMWindow::DOMWindow):
43779         * page/Frame.cpp:
43780         (WebCore::Frame::Frame):
43781         * page/History.cpp:
43782         (WebCore::History::History):
43783         * page/InspectorController.cpp:
43784         (WebCore::InspectorResource::InspectorResource):
43785         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
43786         * page/Plugin.h:
43787         (WebCore::Plugin::Plugin):
43788         * page/Screen.cpp:
43789         (WebCore::Screen::Screen):
43790         * platform/ArrayImpl.cpp:
43791         (WebCore::ArrayImpl::ArrayPrivate::ArrayPrivate):
43792         * platform/DeprecatedValueListImpl.cpp:
43793         (WebCore::DeprecatedValueListImpl::Private::Private):
43794         * platform/ScrollBar.cpp:
43795         (WebCore::Scrollbar::Scrollbar):
43796         * platform/SharedBuffer.cpp:
43797         (WebCore::SharedBuffer::SharedBuffer):
43798         * platform/graphics/FontFallbackList.cpp:
43799         (WebCore::FontFallbackList::FontFallbackList):
43800         * platform/graphics/FontFamily.cpp:
43801         (WebCore::FontFamily::FontFamily):
43802         * platform/graphics/FontFamily.h:
43803         (WebCore::FontFamily::FontFamily):
43804         * platform/graphics/FontSelector.h:
43805         (WebCore::FontSelector::FontSelector):
43806         (WebCore::FontSelector::~FontSelector):
43807         * platform/graphics/GlyphPageTreeNode.h:
43808         (WebCore::GlyphPage::GlyphPage):
43809         * platform/graphics/mac/IconMac.mm:
43810         (WebCore::Icon::Icon):
43811         * platform/mac/FileChooserMac.mm:
43812         (WebCore::FileChooser::FileChooser):
43813         * platform/mac/PopupMenuMac.mm:
43814         (WebCore::PopupMenu::PopupMenu):
43815         * platform/mac/SharedBufferMac.mm:
43816         (WebCore::SharedBuffer::SharedBuffer):
43817         * platform/network/FormData.cpp:
43818         (WebCore::FormData::FormData):
43819         * platform/network/FormData.h:
43820         (WebCore::FormData::FormData):
43821         * platform/network/ResourceHandle.cpp:
43822         (WebCore::ResourceHandle::ResourceHandle):
43823         * platform/text/CString.h:
43824         (WebCore::CStringBuffer::CStringBuffer):
43825         * platform/text/RegularExpression.cpp:
43826         (WebCore::RegularExpression::Private::Private):
43827         * rendering/RenderStyle.cpp:
43828         (WebCore::StyleSurroundData::StyleSurroundData):
43829         (WebCore::StyleBoxData::StyleBoxData):
43830         (WebCore::StyleVisualData::StyleVisualData):
43831         (WebCore::StyleBackgroundData::StyleBackgroundData):
43832         (WebCore::StyleMarqueeData::StyleMarqueeData):
43833         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
43834         (WebCore::StyleMultiColData::StyleMultiColData):
43835         (WebCore::StyleTransformData::StyleTransformData):
43836         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
43837         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
43838         (WebCore::StyleInheritedData::StyleInheritedData):
43839         * rendering/RenderStyle.h:
43840         (WebCore::TransformOperation::TransformOperation):
43841         (WebCore::CursorList::CursorList):
43842         * rendering/SVGCharacterLayoutInfo.h:
43843         (WebCore::SVGCharOnPath::SVGCharOnPath):
43844         * rendering/SVGRenderStyle.cpp:
43845         (WebCore::SVGRenderStyle::SVGRenderStyle):
43846         * rendering/SVGRenderStyle.h:
43847         (WebCore::SVGRenderStyle::SVGRenderStyle):
43848         * rendering/SVGRenderStyleDefs.cpp:
43849         (StyleFillData::StyleFillData):
43850         (StyleStrokeData::StyleStrokeData):
43851         (StyleStopData::StyleStopData):
43852         (StyleTextData::StyleTextData):
43853         (StyleClipData::StyleClipData):
43854         (StyleMaskData::StyleMaskData):
43855         (StyleMarkerData::StyleMarkerData):
43856         (StyleMiscData::StyleMiscData):
43857         * storage/SQLResultSetRowList.h:
43858         (WebCore::SQLResultSetRowList::SQLResultSetRowList):
43859         * svg/SVGAngle.cpp:
43860         (WebCore::SVGAngle::SVGAngle):
43861         * svg/SVGAnimatedTemplate.h:
43862         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
43863         * svg/SVGElementInstanceList.cpp:
43864         (WebCore::SVGElementInstanceList::SVGElementInstanceList):
43865         * svg/SVGList.h:
43866         (WebCore::SVGList::SVGList):
43867         (WebCore::SVGPODListItem::SVGPODListItem):
43868         * svg/SVGPathSeg.h:
43869         (WebCore::SVGPathSeg::SVGPathSeg):
43870         * svg/SVGPreserveAspectRatio.cpp:
43871         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
43872         * svg/SVGRenderingIntent.h:
43873         (WebCore::SVGRenderingIntent::SVGRenderingIntent):
43874         * svg/SVGUnitTypes.h:
43875         (WebCore::SVGUnitTypes::SVGUnitTypes):
43876         * svg/graphics/SVGPaintServerGradient.h:
43877         (WebCore::SVGPaintServerGradient::SharedStopCache::SharedStopCache):
43878         * svg/graphics/SVGResource.cpp:
43879         (WebCore::SVGResource::SVGResource):
43880         * xml/DOMParser.h:
43881         (WebCore::DOMParser::DOMParser):
43882         * xml/XMLHttpRequest.cpp:
43883         (WebCore::XMLHttpRequest::XMLHttpRequest):
43884         * xml/XMLSerializer.h:
43885         (WebCore::XMLSerializer::XMLSerializer):
43886         * xml/XPathEvaluator.h:
43887         (WebCore::XPathEvaluator::XPathEvaluator):
43888         * xml/XPathExpression.h:
43889         (WebCore::XPathExpression::XPathExpression):
43890         * xml/XPathNSResolver.h:
43891         (WebCore::XPathNSResolver::XPathNSResolver):
43892         * xml/XPathResult.cpp:
43893         (WebCore::XPathResult::XPathResult):
43894         * xml/XPathValue.h:
43895         (WebCore::XPath::ValueData::ValueData):
43896         * xml/XSLTProcessor.h:
43897         (WebCore::XSLTProcessor::XSLTProcessor):
43899 2008-02-09  Kevin Ollivier  <kevino@theolliviers.com>
43901         Reviewed by Eric Seidel.
43903         Calling select() when all the file descriptors are NULL
43904         stops the file download on Windows. As a result, do not
43905         call select() when there are no valid descriptors.
43907         http://bugs.webkit.org/show_bug.cgi?id=17178
43909         * platform/network/curl/ResourceHandleManager.cpp:
43910         (WebCore::ResourceHandleManager::downloadTimerCallback):
43912 2008-02-09  Dan Bernstein  <mitz@apple.com>
43914         Reviewed by Sam Weinig.
43916         - fix http://bugs.webkit.org/show_bug.cgi?id=17259
43917           Element::recalcStyle() needlessly null-checks the result of styleForElement()
43919         * dom/Element.cpp:
43920         (WebCore::Element::recalcStyle): Removed unneeded null checks.
43921         styleForElement() can never return null.
43923 2008-02-09  David Hyatt  <hyatt@apple.com>
43925         Fix for bug 17254, nth-* selectors do not work with negative coefficients.
43927         Reviewed by Mitz.
43929         fast/css/negative-nth-child.html
43931         * css/CSSStyleSelector.cpp:
43932         (WebCore::parseNth):
43934 2008-02-09  David Hyatt  <hyatt@apple.com>
43936         Fix for bug 17203, high CPU usage loading HTML5 spec.  This patch significantly improves the performance
43937         of CSS3 selectors.
43939         (1) Split the notion of being affected by positional rules into "forward" and "backward."  The "forward"
43940         selectors do not need to re-resolve during parsing, since children are appended on the end.  Only the
43941         "backward" selectors like last-child or nth-last-child have to re-resolve when a close tag is encountered.
43943         (2) Extend childrenChanged to specify whether the children were changed by the parser or not.  This allows
43944         Element::childrenChanged to know when the parser is adding children so that it can ignore those adds when
43945         possible.
43947         (3) Make sure all Elements now know whether or not their children are currently parsing.  Backwards selectors
43948         like last-child will always return false when children are still being parsed.  When an Element finishes
43949         parsing its children, finishParsingChildren() gets called and will make sure the children re-resolve properly.
43951         (4) Added a beginParsingChildren method and renamed finishParsing to finishedParsingChildren.
43953         (5) Eliminated one-off hacks that did the same thing in HTMLObjectElement and HTMLAppletElement.
43955         (6) Patched many incorrect implementations of finishedParsingChildren that did not properly call into their
43956         base class (mostly new SVG elements that got added for SVG fonts around the time this became a requirement).
43958         Reviewed by Eric
43960         * css/CSSStyleSelector.cpp:
43961         (WebCore::CSSStyleSelector::checkSelector):
43962         (WebCore::CSSStyleSelector::checkOneSelector):
43963         * dom/Attr.cpp:
43964         (WebCore::Attr::childrenChanged):
43965         * dom/Attr.h:
43966         * dom/ContainerNode.cpp:
43967         (WebCore::ContainerNode::addChild):
43968         * dom/Document.cpp:
43969         (WebCore::Document::childrenChanged):
43970         * dom/Document.h:
43971         * dom/Element.cpp:
43972         (WebCore::Element::Element):
43973         (WebCore::Element::recalcStyle):
43974         (WebCore::checkFirstChildRules):
43975         (WebCore::checkLastChildRules):
43976         (WebCore::checkEmptyRules):
43977         (WebCore::checkStyleRules):
43978         (WebCore::Element::childrenChanged):
43979         (WebCore::Element::finishParsingChildren):
43980         * dom/Element.h:
43981         (WebCore::Element::finishedParsingChildren):
43982         (WebCore::Element::beginParsingChildren):
43983         * dom/Node.cpp:
43984         * dom/Node.h:
43985         (WebCore::Node::finishParsingChildren):
43986         (WebCore::Node::beginParsingChildren):
43987         (WebCore::Node::childrenChanged):
43988         * dom/StyledElement.cpp:
43989         (WebCore::StyledElement::StyledElement):
43990         * dom/StyledElement.h:
43991         * dom/XMLTokenizer.cpp:
43992         (WebCore::XMLTokenizer::startElementNs):
43993         (WebCore::XMLTokenizer::endElementNs):
43994         * html/HTMLAppletElement.cpp:
43995         (WebCore::HTMLAppletElement::HTMLAppletElement):
43996         (WebCore::HTMLAppletElement::finishParsingChildren):
43997         * html/HTMLAppletElement.h:
43998         * html/HTMLElementFactory.cpp:
43999         (WebCore::objectConstructor):
44000         * html/HTMLGenericFormElement.cpp:
44001         (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
44002         * html/HTMLGenericFormElement.h:
44003         * html/HTMLObjectElement.cpp:
44004         (WebCore::HTMLObjectElement::HTMLObjectElement):
44005         (WebCore::HTMLObjectElement::finishParsingChildren):
44006         (WebCore::HTMLObjectElement::childrenChanged):
44007         * html/HTMLObjectElement.h:
44008         * html/HTMLOptGroupElement.cpp:
44009         (WebCore::HTMLOptGroupElement::childrenChanged):
44010         * html/HTMLOptGroupElement.h:
44011         * html/HTMLOptionElement.cpp:
44012         (WebCore::HTMLOptionElement::childrenChanged):
44013         * html/HTMLOptionElement.h:
44014         * html/HTMLParser.cpp:
44015         (WebCore::HTMLParser::insertNode):
44016         (WebCore::HTMLParser::pushBlock):
44017         (WebCore::HTMLParser::popOneBlockCommon):
44018         * html/HTMLScriptElement.cpp:
44019         (WebCore::HTMLScriptElement::childrenChanged):
44020         (WebCore::HTMLScriptElement::finishParsingChildren):
44021         * html/HTMLScriptElement.h:
44022         * html/HTMLSelectElement.cpp:
44023         (WebCore::HTMLSelectElement::childrenChanged):
44024         * html/HTMLSelectElement.h:
44025         * html/HTMLStyleElement.cpp:
44026         (WebCore::HTMLStyleElement::finishParsingChildren):
44027         (WebCore::HTMLStyleElement::childrenChanged):
44028         * html/HTMLStyleElement.h:
44029         * html/HTMLTextAreaElement.cpp:
44030         (WebCore::HTMLTextAreaElement::childrenChanged):
44031         * html/HTMLTextAreaElement.h:
44032         * html/HTMLTitleElement.cpp:
44033         (WebCore::HTMLTitleElement::childrenChanged):
44034         * html/HTMLTitleElement.h:
44035          * rendering/RenderApplet.cpp:
44036         (WebCore::RenderApplet::createWidgetIfNecessary):
44037         * rendering/RenderPartObject.cpp:
44038         (WebCore::RenderPartObject::updateWidget):
44039         * rendering/RenderStyle.cpp:
44040         (WebCore::RenderStyle::RenderStyle):
44041         * rendering/RenderStyle.h:
44042         (WebCore::RenderStyle::childrenAffectedByForwardPositionalRules):
44043         (WebCore::RenderStyle::setChildrenAffectedByForwardPositionalRules):
44044         (WebCore::RenderStyle::childrenAffectedByBackwardPositionalRules):
44045         (WebCore::RenderStyle::setChildrenAffectedByBackwardPositionalRules):
44046         * svg/SVGAnimationElement.cpp:
44047         (WebCore::SVGAnimationElement::finishParsingChildren):
44048         * svg/SVGAnimationElement.h:
44049         * svg/SVGClipPathElement.cpp:
44050         (WebCore::SVGClipPathElement::childrenChanged):
44051         * svg/SVGClipPathElement.h:
44052         * svg/SVGDefinitionSrcElement.cpp:
44053         (WebCore::SVGDefinitionSrcElement::childrenChanged):
44054         * svg/SVGDefinitionSrcElement.h:
44055         * svg/SVGElement.cpp:
44056         (WebCore::SVGElement::finishParsingChildren):
44057         * svg/SVGElement.h:
44058         * svg/SVGFontFaceElement.cpp:
44059         (WebCore::SVGFontFaceElement::childrenChanged):
44060         * svg/SVGFontFaceElement.h:
44061         * svg/SVGFontFaceFormatElement.cpp:
44062         (WebCore::SVGFontFaceFormatElement::childrenChanged):
44063         * svg/SVGFontFaceFormatElement.h:
44064         * svg/SVGFontFaceSrcElement.cpp:
44065         (WebCore::SVGFontFaceSrcElement::childrenChanged):
44066         * svg/SVGFontFaceSrcElement.h:
44067         * svg/SVGFontFaceUriElement.cpp:
44068         (WebCore::SVGFontFaceUriElement::childrenChanged):
44069         * svg/SVGFontFaceUriElement.h:
44070         * svg/SVGGElement.cpp:
44071         (WebCore::SVGGElement::childrenChanged):
44072         * svg/SVGGElement.h:
44073         * svg/SVGGradientElement.cpp:
44074         (WebCore::SVGGradientElement::childrenChanged):
44075         * svg/SVGGradientElement.h:
44076         * svg/SVGMarkerElement.cpp:
44077         (WebCore::SVGMarkerElement::childrenChanged):
44078         * svg/SVGMarkerElement.h:
44079         * svg/SVGMaskElement.cpp:
44080         (WebCore::SVGMaskElement::childrenChanged):
44081         * svg/SVGMaskElement.h:
44082         * svg/SVGPatternElement.cpp:
44083         (WebCore::SVGPatternElement::childrenChanged):
44084         * svg/SVGPatternElement.h:
44085         * svg/SVGStyleElement.cpp:
44086         (WebCore::SVGStyleElement::finishParsingChildren):
44087         (WebCore::SVGStyleElement::childrenChanged):
44088         * svg/SVGStyleElement.h:
44089         * svg/SVGStyledElement.cpp:
44090         (WebCore::SVGStyledElement::childrenChanged):
44091         * svg/SVGStyledElement.h:
44092         * svg/SVGTitleElement.cpp:
44093         (WebCore::SVGTitleElement::childrenChanged):
44094         * svg/SVGTitleElement.h:
44095         * svg/SVGUseElement.cpp:
44096         (WebCore::SVGUseElement::childrenChanged):
44097         * svg/SVGUseElement.h:
44098         
44099 2008-02-09  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
44101         Unreviewed build fix
44103         Somehow the removal of adjustSliderThumbSize(RenderObject*) sneaked
44104         into the patch.
44106         * platform/qt/RenderThemeQt.h:
44108 2008-02-09  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
44110         Reviewed by Adele.
44112         paintResizeControl is dead, remove the code. This painting
44113         is done by the RenderLayer.
44115         * platform/qt/RenderThemeQt.cpp:
44116         * platform/qt/RenderThemeQt.h:
44117         * rendering/RenderThemeMac.h:
44118         * rendering/RenderThemeMac.mm:
44120 2008-02-07  Kevin Ollivier <kevino@theolliviers.com>
44122         Reviewed by Eric Seidel, Adam Roben.
44124         MSVC7 fixes.
44125         http://bugs.webkit.org/show_bug.cgi?id=17211
44127         * platform/Threading.h:
44128         - On MSVC7, when the Interlocked* functions are used, the ref count gets out of sync.
44129           (MSVC8 seems not to have this problem.) Use the old implementation which works correctly.
44130         * platform/win/SharedTimerWin.cpp:
44131         - USER_TIMER_MINIMUM/MAXIMUM aren't defined in winuser.h for the MSVC 2003 Platform SDK
44132           so define them if they are not already defined.
44134 2008-02-08  Brent Fulgham  <bfulgham@gmail.com>
44136         Reviewed by Adam Roben.
44138         Bug 17226: Fix Windows (Cairo) build of image-decoders
44139         http://bugs.webkit.org/show_bug.cgi?id=17226
44141         * platform/image-decoders/gif/GIFImageDecoder.cpp:
44142         * platform/image-decoders/png/PNGImageDecoder.cpp:
44144 2008-02-08  Timothy Hatcher  <timothy@apple.com>
44146         Reviewed by Brady Eidson.
44148         <rdar://problem/5640896> Removing database then trying
44149         to recreate it causes trouble
44151         Added open Database support to DatabaseTracker. So any Database that 
44152         is deleted will be marked as deleted and will fail to open any transaction
44153         or execute any new SQL queries.
44155         * storage/Database.cpp:
44156         (WebCore::Database::Database): Call DatabaseTracker::addOpenDatabase.
44157         (WebCore::Database::~Database): Call DatabaseTracker::removeOpenDatabase.
44158         (WebCore::Database::markAsDeleted): Set the m_deleted flag.
44159         (WebCore::Database::version): Return a null String if m_deleted is true.
44160         * storage/Database.h:
44161         (WebCore::Database::deleted): Return m_deleted.
44162         * storage/DatabaseTracker.cpp:
44163         (WebCore::DatabaseTracker::addOpenDatabase): Add the Database to a map of origins and names.
44164         (WebCore::DatabaseTracker::removeOpenDatabase): Remove the Database from the map.
44165         (WebCore::DatabaseTracker::deleteDatabaseFile): Call markAsDeleted on all the open Databases
44166           matching the origin/name.
44167         * storage/DatabaseTracker.h:
44168         * storage/SQLStatement.cpp:
44169         (WebCore::SQLStatement::setDatabaseDeletedError): Set the error about the user deleting the database.
44170         * storage/SQLStatement.h:
44171         * storage/SQLTransaction.cpp:
44172         (WebCore::SQLTransaction::executeSQL): If the Database is deleted, call setDatabaseDeletedError.
44173         (WebCore::SQLTransaction::openTransactionAndPreflight): Set the error about the user deleting the database
44174           if the Database was marked as deleted.
44176 2008-02-08  Darin Adler  <darin@apple.com>
44178         Reviewed by Eric.
44180         - fix http://bugs.webkit.org/show_bug.cgi?id=15003
44181           Function.prototype.constructor should not be DontDelete/ReadOnly (Acid3 bug)
44183         Test: fast/js/constructor-attributes.html
44185         * bindings/scripts/CodeGeneratorJS.pm: Remove unwanted attributes from "constructor".
44187 2008-02-08  Anders Carlsson  <andersca@apple.com>
44189         Reviewed by Mitz.
44191         <rdar://problem/5650446>
44192         http://bugs.webkit.org/show_bug.cgi?id=16102
44193         Crash in FrameLoader::stopLoadingSubframes() on IMDB page
44195         Store the child frame in a RefPtr to prevent it from being deleted when the
44196         frame tree changes while calling stopAllLoaders().
44197         
44198         * loader/FrameLoader.cpp:
44199         (WebCore::FrameLoader::stopLoadingSubframes):
44201 2008-02-08  Kevin Ollivier  <kevino@theolliviers.com>
44203         wx port build fix. Add time.h to define time_t.
44205         * platform/FileSystem.h:
44207 2008-02-08  Alp Toker  <alp@atoker.com>
44209         Reviewed by Adam Roben.
44211         Avoid null-dereference crasher noticed in the GTK+ port and also
44212         affecting the Win debug build.
44214         Covered by existing tests.
44216         * dom/Document.cpp:
44217         (WebCore::Document::userStyleSheet):
44219 2008-02-08  Anders Carlsson  <andersca@apple.com>
44221         Reviewed by Adam.
44223         <rdar://problem/5724188> 
44224         REGRESSION: PLT 0.7% slower due to 29926 (change Text::createWithLengthLimit to take a UChar pointer)
44225         
44226         Revert r29926 which caused the regression.
44227         
44228         * dom/Text.cpp:
44229         (WebCore::Text::createWithLengthLimit):
44230         * dom/Text.h:
44231         * html/HTMLParser.cpp:
44232         (WebCore::HTMLParser::parseToken):
44233         * loader/TextDocument.cpp:
44234         (WebCore::TextTokenizer::write):
44236 2008-02-08  Sam Weinig  <sam@webkit.org>
44238         Reviewed by Hyatt.
44240         Fix for <rdar://problem/5732491>
44241         http://bugs.webkit.org/show_bug.cgi?id=17213
44242         The querySelectorAll method on an element node does not search only the element's descendants
44244         Test: fast/dom/SelectorAPI/elementRoot.html
44246         * dom/Node.cpp:
44247         (WebCore::Node::querySelector): Make sure to stay within the root node when traversing the tree.
44248         * dom/SelectorNodeList.cpp:
44249         (WebCore::SelectorNodeList::SelectorNodeList): ditto.
44253 2008-02-08  David Hyatt  <hyatt@apple.com>
44255         Fix for bug 16798, button should default to type=submit.
44257         Reviewed by darin
44259         * html/HTMLButtonElement.cpp:
44260         (WebCore::HTMLButtonElement::type):
44261         (WebCore::HTMLButtonElement::parseMappedAttribute):
44263 2008-02-08  Rodney Dawes  <dobey@wayofthemonkey.com>
44265         Reviewed by Jon Honeycutt.
44267         Redefine some platform-specific types as cross-platform types
44268         Add pathGetFileName method to get the filename from a path string
44269         Add unloadModule method to unload a loadable module from the process
44270         Implement new methods for GTK+ and Windows
44271         Implement missing homeDirectoryPath method for GTK+
44272         Add stub methods for new and missing methods for Wx and Qt
44274         * platform/FileSystem.h:
44275         * platform/gtk/FileSystemGtk.cpp:
44276         * platform/qt/FileSystemQt.cpp:
44277         * platform/win/FileSystemWin.cpp:
44278         * platform/wx/FileSystemWx.cpp:
44280 2008-02-08  Adam Roben  <aroben@apple.com>
44282         Windows build fix after r30088
44284         * bindings/scripts/CodeGeneratorCOM.pm: Touch this to force the COM
44285         bindings to rebuild.
44287 2008-02-08  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
44289         Reviewed by Alp Toker.
44291         http://bugs.webkit.org/show_bug.cgi?id=17009
44292         [Gtk] Webkit strips accents from some dead-key combinations
44294         KeyEvents have to go through the gtk input method.
44296         Also implement the isKeypad check and make disambiguateKeyDownEvent
44297         behave more like other ports.
44299         * platform/PlatformKeyboardEvent.h:
44300         * platform/gtk/KeyEventGtk.cpp:
44301         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
44302         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
44303         (WebCore::PlatformKeyboardEvent::gdkEventKey):
44305 2008-02-08  Darin Adler  <darin@apple.com>
44307         Reviewed by Eric.
44309         - fix http://bugs.webkit.org/show_bug.cgi?id=3492
44310           TreeWalker implementation needs to be fixed (affects Acid3)
44311         - fix http://bugs.webkit.org/show_bug.cgi?id=4714
44312           NodeIterator does not handle exceptions from the filter function (affects Acid3)
44313         - fix http://bugs.webkit.org/show_bug.cgi?id=4716
44314           NodeIterator will crash if the filter function removes the current node from the document
44316         Test: traversal/exception-forwarding.html
44318         This turned into a near-rewrite of NodeIterator and TreeWalker.
44320         * bindings/js/JSNodeFilterCondition.h:
44321         * bindings/js/JSNodeFilterCondition.cpp:
44322         (WebCore::takeException): Added.
44323         (WebCore::JSNodeFilterCondition::acceptNode): Added an out parameter to return
44324         a JavaScript exception.
44326         * bindings/js/JSNodeFilterCustom.cpp:
44327         (WebCore::JSNodeFilter::acceptNode): Wrote a custom binding for this that raises
44328         a JavaScript exception if the out parameter is set.
44330         * bindings/js/JSNodeIteratorCustom.cpp:
44331         (WebCore::JSNodeIterator::nextNode): Wrote a custom binding for this that raises
44332         a JavaScript exception if the out parameter is set.
44333         (WebCore::JSNodeIterator::previousNode): Ditto.
44335         * bindings/js/JSTreeWalkerCustom.cpp:
44336         (WebCore::JSTreeWalker::parentNode): Wrote a custom binding for this that raises
44337         a JavaScript exception if the out parameter is set.
44338         (WebCore::JSTreeWalker::firstChild): Ditto.
44339         (WebCore::JSTreeWalker::lastChild): Ditto.
44340         (WebCore::JSTreeWalker::nextSibling): Ditto.
44341         (WebCore::JSTreeWalker::previousSibling): Ditto.
44342         (WebCore::JSTreeWalker::previousNode): Ditto.
44343         (WebCore::JSTreeWalker::nextNode): Ditto.
44345         * bindings/objc/DOM.mm:
44346         (WebCore::ObjCNodeFilterCondition::acceptNode): Updated to include new exception
44347         out parameter.
44348         (-[DOMDocument createNodeIterator:whatToShow:filter:expandEntityReferences:]):
44349         Use RefPtr to make object lifetimes clearer.
44350         (-[DOMDocument createTreeWalker:whatToShow:filter:expandEntityReferences:]):
44351         Ditto.
44353         * bindings/scripts/CodeGeneratorJS.pm: Added include of NodeFilter.h for
44354         JSDocument.cpp.
44356         * dom/Document.h:
44357         * dom/Document.cpp:
44358         (WebCore::Document::createNodeIterator): Changed to use PassRefPtr.
44359         (WebCore::Document::createTreeWalker): Ditto.
44361         * dom/NodeFilter.h:
44362         * dom/NodeFilter.cpp:
44363         (WebCore::NodeFilter::NodeFilter): Changed to use PassRefPtr.
44364         (WebCore::NodeFilter::acceptNode): Added an out parameter to return
44365         a JavaScript exception.
44366         * dom/NodeFilter.idl: Custom binding for acceptNode.
44368         * dom/NodeFilterCondition.h:
44369         * dom/NodeFilterCondition.cpp:
44370         (WebCore::NodeFilterCondition::acceptNode): Added an out parameter to return
44371         a JavaScript exception.
44373         * dom/NodeIterator.cpp:
44374         (WebCore::NodeIterator::NodeIterator): Changed to use PassRefPtr more.
44375         Eliminated m_doc, using the root node instead, and unnecessary check for
44376         null -- rootNode must be non-null and all nodes have a non-null document.
44377         (WebCore::NodeIterator::~NodeIterator): Changed to get document from root.
44378         (WebCore::NodeIterator::nextNode): Rewrote to use a RefPtr since the
44379         acceptNode function could do anything, including removing the last
44380         reference to the current node. Also folded findNextNode into this function
44381         since it's the only one that needs to call it.
44382         (WebCore::NodeIterator::previousNode): Same thing, but the other direction.
44383         (WebCore::NodeIterator::detach): Changed to use the root node as the indication
44384         that we're detached rather than a separate boolean.
44385         (WebCore::NodeIterator::notifyBeforeNodeRemoval): Removed some unnneeded
44386         checks. Removed incorrect use of findNextNode/findPreviousNode -- those
44387         functions call acceptNode and the DOM standard is quite clear that these
44388         functions do not take that into account, allowing the current node to become
44389         one that's not accepted.
44391         * dom/NodeIterator.h: Changed constructor to use PassRefPtr more. Changed
44392         nextNode and previousNode to have an out parameter with a JavaScript exception.
44393         Removed helper functions setReferenceNode, setPointerBeforeReferenceNode,
44394         detached, setDetached, document, findNextNode, and findPreviousNode. All were
44395         unnecessary. Removed data member m_doc which was just rootNode()->document().
44397         * dom/NodeIterator.idl: Custom binding for nextNode and previousNode.
44399         * dom/Traversal.cpp:
44400         (WebCore::Traversal::Traversal): Use PassRefPtr more.
44401         (WebCore::Traversal::acceptNode): Added out parameter for JavaScript exception.
44402         Also rearranged the function a little bit for clarity.
44404         * dom/Traversal.h: Changed acceptNode to have an out parameter with a JavaScript
44405         exception and made it protected, since it's only for use by the derived classes.
44407         * dom/TreeWalker.cpp:
44408         (WebCore::TreeWalker::TreeWalker): Updated to use PassRefPtr.
44409         (WebCore::TreeWalker::setCurrentNode): Updated to use PassRefPtr and deleted
44410         the overloaded version since it's not needed.
44411         (WebCore::TreeWalker::parentNode): Rewrote to propagate the exception and also
44412         to implement rules about when to check things like whether we're in the tree.
44413         The previous fix where we called isDescendantOf was not entirely correct, because
44414         the specification allows you to walk outside the tree if you get there somehow.
44415         What it doesn't allow is walking outside the tree from inside. The new
44416         implementation handles this correctly.
44417         (WebCore::TreeWalker::firstChild): Ditto.
44418         (WebCore::TreeWalker::lastChild): Ditto.
44419         (WebCore::TreeWalker::previousSibling): Ditto.
44420         (WebCore::TreeWalker::nextSibling): Ditto.
44421         (WebCore::TreeWalker::previousNode): Ditto. Because of the need to check the
44422         acceptNode function on parents, this can't use traversePreviousNode (more's the
44423         pity, because it's a bit complicated).
44424         (WebCore::TreeWalker::nextNode): Ditto.
44426         * dom/TreeWalker.h: Changed constructor and setCurrentNode to use PassRefPtr
44427         more. Changed the navigation functions to have an out parameter with a JavaScript
44428         exception. Removed helper functions setCurrentNode and ancestorRejected.
44430         * dom/TreeWalker.idl: Custom binding for navigation functions.
44432 2008-02-08  Eric Seidel  <eric@webkit.org>
44434         Reviewed by darin.
44436         Add support for Text.wholeText and Text.replaceWholeText
44437         http://bugs.webkit.org/show_bug.cgi?id=17125
44439         Test EntityReferences to make sure they're always treated as read-only
44440         In doing so I discovered a bug in document.adoptNode(readonlyNode) (and fixed it)
44442         * dom/Document.cpp:
44443         (WebCore::Document::adoptNode): throw NO_MODIFICATION_ALLOWED_ERR when passed a readonly node
44444         * dom/Node.cpp:
44445         * dom/Node.cpp:
44446         (WebCore::Node::textContent):
44447         * dom/Text.cpp:
44448         (WebCore::earliestLogicallyAdjacentTextNode):
44449         (WebCore::latestLogicallyAdjacentTextNode):
44450         (WebCore::Text::wholeText):
44451         (WebCore::Text::replaceWholeText):
44452         * dom/Text.h:
44453         * dom/Text.idl:
44455 2008-02-06  Kimmo Kinnunen  <kimmok@iki.fi>
44457         Reviewed by Tim Hatcher.
44459         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17191
44460         HTML5: Client-side database queries should return values of type number
44461         Test: storage/sql-data-types.html
44463         Make the DB queries return a value as a number if it was inserted
44464         as a number to the database.
44465         * platform/sql/SQLiteStatement.cpp:
44466         (WebCore::SQLiteStatement::getColumnValue): new member function to return SQLValues
44467         * platform/sql/SQLiteStatement.h:
44468         * storage/SQLStatement.cpp:
44469         (WebCore::SQLStatement::execute): use getColumnValue instead of getColumnText
44471 2008-02-07  Ada Chan  <adachan@apple.com>
44473         <rdar://problem/5292433> certificate authentication support broken in Safari 3.0
44474         Added mechanism to communicate client certificate info back to CFNetwork.
44476         Reviewed by Adam.
44478         * platform/network/ResourceHandle.h:
44479         * platform/network/cf/ResourceHandleCFNet.cpp:
44480         (WebCore::clientCerts): Keep a mapping of hosts to client certificates.
44481         (WebCore::makeFinalRequest): If we have a client certificate for the host, pass it
44482         to CFNetwork by setting it in the SSL properties.
44483         (WebCore::ResourceHandle::setClientCertificate): Map client certificate to the host.
44485 2008-02-07  Adam Roben  <aroben@apple.com>
44487         Qt build fix
44489         * platform/SharedBuffer.cpp: Removed a stub implementation of
44490         createWithContentsOfFile, now that each platform has its own stub.
44492 2008-02-07  Adam Roben  <aroben@apple.com>
44494         Fix Bug 17138: REGRESSION: Node highlight not updated properly
44496         <http://bugs.webkit.org/show_bug.cgi?id=17138>
44497         <rdar://problem/5719869>
44499         Reviewed by Darin.
44501         No test possible.
44503         * page/InspectorController.cpp:
44504         (WebCore::InspectorController::drawNodeHighlight): Update the
44505         overlayRect after scrolling to make sure that we translate the context
44506         by the correct amount.
44508 2008-02-07  Adam Roben  <aroben@apple.com>
44510         Qt and GTK+ build fixes
44512         * platform/gtk/FileSystemGtk.cpp: Added a missing #include.
44513         * platform/qt/FileSystemQt.cpp: Ditto.
44515 2008-02-07  Adam Roben  <aroben@apple.com>
44517         Some cleanup of Mac-only user stylesheet code
44519         I moved UserStyleSheetLoader out of Frame.cpp into its own files, and
44520         moved some Mac-only Frame methods to FrameMac.mm.
44522         Reviewed by Darin.
44524         * WebCore.xcodeproj/project.pbxproj: Added new files to project.
44525         * loader/mac/UserStyleSheetLoader.cpp: Added.
44526         (UserStyleSheetLoader::UserStyleSheetLoader):
44527         (UserStyleSheetLoader::~UserStyleSheetLoader):
44528         * loader/mac/UserStyleSheetLoader.h: Added.
44529         * page/Frame.cpp: Removed setUserStyleSheet[Location]
44530         * page/mac/FrameMac.mm:
44531         (WebCore::Frame::setUserStyleSheetLocation): Moved here from
44532         Frame.cpp.
44533         (WebCore::Frame::setUserStyleSheet): Ditto.
44535 2008-02-07  Adam Roben  <aroben@apple.com>
44537         Fix <rdar://5555260> GMail never loads when a user stylesheet is
44538         specified
44540         The fix in r29841 did not guarantee that the user stylesheet would not
44541         still be loading by the time GMail called document.write, and so was
44542         not a complete fix.
44544         This change reworks the user stylesheet loading mechanism on non-Mac
44545         platforms to load the stylesheet synchronously from disk, and then
44546         keeps it in memory. This obsoletes the issue of what our behavior
44547         should be before the user stylesheet has loaded and what should happen
44548         when it finishes loading, as the user stylesheet will always be
44549         available when the Document first asks for it. Note, however, that
44550         this removes the ability to specify a non-file: URL for the user
44551         stylesheet. This change was not made for the Mac platform because it's
44552         possible that WebKit clients are relying on non-file: URLs for user
44553         stylesheets. It would also be nice to move back to an asynchronous
44554         loading model someday, but that is not currently possible since we
44555         don't have an asynchronous loading mechanism that is not tied to a
44556         particular Frame.
44558         The responsibility of loading and storing the user stylesheet has
44559         moved from Frame to Page, since the user stylesheet URL is set on the
44560         Page-level Settings object.
44562         Reviewed by Darin.
44564         * dom/Document.cpp:
44565         (WebCore::Document::Document): Changed to call userStyleSheet().
44566         (WebCore::Document::setUserStyleSheet): Made Mac-only.
44567         (WebCore::Document::userStyleSheet): Changed to call up to Page on
44568         non-Mac platforms.
44569         (WebCore::Document::recalcStyleSelector): Changed to call
44570         userStyleSheet().
44571         * dom/Document.h:
44572             - Made setUserStyleSheet and the m_usersheet member Mac-only
44573             - Changed userStyleSheet to return a String instance instead of a
44574               String reference, since we now might return a new null String.
44575         * loader/FrameLoader.cpp:
44576         (WebCore::FrameLoader::begin): Made the call to
44577         Frame::setUserStyleSheetLocation Mac-only.
44578         * page/Frame.cpp: Made UserStyleSheetLoader and related code Mac-only.
44579         (WebCore::Frame::~Frame): Ditto.
44580         (WebCore::Frame::reapplyStyles): Made the call to
44581         setUserStyleSheet[Location] Mac-only. On non-Mac platforms the
44582         Document will pick up the new stylesheet in Document::reapplyStyles.
44583         (WebCore::FramePrivate::FramePrivate): Made m_userStyleSheetLoader
44584         Mac-only.
44585         * page/Frame.h: Made setUserStyleSheet[Location] Mac-only.
44586         * page/FramePrivate.h: Made m_userStyleSheetLoader Mac-only.
44587         * page/Page.cpp:
44588         (WebCore::Page::Page): Initialize new members.
44589         (WebCore::Page::userStyleSheetLocationChanged): Added. Does nothing on
44590         Mac. On non-Mac, resets all members relating to the user stylesheet so
44591         we'll know to load it again the next time it's asked for.
44592         (WebCore::Page::userStyleSheet): Added. Loads the user stylesheet if
44593         the user stylesheet location has changed since the last time we loaded
44594         it, or if the file has been modified since we last loaded it, then
44595         returns the contents of the user stylesheet as a String.
44596         * page/Page.h: Added new methods/members.
44597         * page/Settings.cpp:
44598         (WebCore::Settings::setUserStyleSheetLocation): Changed to call
44599         Page::userStyleSheetLocationChanged.
44600         * page/Settings.h: Changed userStyleSheetLocation to return the KURL
44601         by reference instead of making a copy.
44602         * platform/FileSystem.h: Added declaration for getFileModificationTime.
44603         * platform/KURL.h: Added declaration for fileSystemPath method.
44604         * platform/cf/KURLCFNet.cpp:
44605         (WebCore::KURL::fileSystemPath): Added.
44606         * platform/posix/FileSystemPOSIX.cpp:
44607         (WebCore::getFileModificationTime): Added.
44608         * platform/qt/KURLQt.cpp:
44609         (WebCore::KURL::fileSystemPath): Stubbed out.
44610         * platform/win/FileSystemWin.cpp:
44611         (WebCore::getFileModificationTime): Added.
44612         * platform/qt/FileSystemQt.cpp: Stubbed out getFileModificationTime.
44613         * platform/gtk/FileSystemGtk.cpp: Ditto.
44614         * platform/wx/FileSystemWx.cpp: Ditto.
44615         * platform/qt/TemporaryLinkStubs.cpp: Stubbed out
44616         SharedBuffer::createWithContentsOfFile.
44617         * platform/gtk/TemporaryLinkStubs.cpp: Ditto, along with
44618         KURL::fileSystemPath.
44619         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
44621 2008-02-07  Adam Roben  <aroben@apple.com>
44623         Clean up FileSystemWin.cpp
44625         This cleanup also makes us call _wstat64 instead of _wstat32i64. The
44626         only difference between these two functions is that _wstat64 gives
44627         64-bit time values, while _wstat32i64 only gives 32-bit time values.
44629         Reviewed by Darin.
44631         All tests pass.
44633         * platform/win/FileSystemWin.cpp:
44634         (WebCore::statFile): New static helper that wraps _wstat64.
44635         (WebCore::getFileSize): Changed to call statFile.
44636         (WebCore::fileExists): Ditto.
44638 2008-02-07  Adam Roben  <aroben@apple.com>
44640         Rename fileSize to getFileSize
44642         Rubberstamped by Darin.
44644         * platform/FileSystem.h:
44645         * platform/gtk/FileSystemGtk.cpp:
44646         * platform/network/cf/FormDataStreamCFNet.cpp:
44647         (WebCore::setHTTPBody):
44648         * platform/network/curl/ResourceHandleManager.cpp:
44649         (WebCore::ResourceHandleManager::setupPOST):
44650         * platform/posix/FileSystemPOSIX.cpp:
44651         * platform/qt/FileSystemQt.cpp:
44652         * platform/win/FileSystemWin.cpp:
44653         * platform/wx/FileSystemWx.cpp:
44654         * storage/Database.cpp:
44655         (WebCore::Database::databaseSize):
44656         * storage/DatabaseTracker.cpp:
44657         (WebCore::DatabaseTracker::usageForDatabase):
44658         * storage/OriginUsageRecord.cpp:
44659         (WebCore::OriginUsageRecord::diskUsage):
44661 2008-02-06  Adam Roben  <aroben@apple.com>
44663         Make KURL::isLocalFile treat the URL's protocol case-insensitively
44665         Reviewed by Darin.
44667         * platform/KURL.cpp:
44668         (WebCore::KURL::isLocalFile): Use equalIgnoringCase instead of ==.
44670 2008-02-07  David Hyatt  <hyatt@apple.com>
44672         Fix for bug 6248, implement the nth-* CSS3 selectors.  Patch based on original KHTML work from Allan Jensen
44673         and improved upon by Nick Shanks.
44675         Reviewed by Eric
44677         * css/CSSGrammar.y:
44678         * css/CSSParser.cpp:
44679         (WebCore::CSSParser::lex):
44680         * css/CSSSelector.cpp:
44681         (WebCore::CSSSelector::extractPseudoType):
44682         * css/CSSSelector.h:
44683         (WebCore::CSSSelector::):
44684         * css/CSSStyleSelector.cpp:
44685         (WebCore::parseNth):
44686         (WebCore::matchNth):
44687         (WebCore::CSSStyleSelector::checkOneSelector):
44688         * css/tokenizer.flex:
44689         * rendering/RenderStyle.cpp:
44690         (WebCore::RenderStyle::RenderStyle):
44691         * rendering/RenderStyle.h:
44692         (WebCore::RenderStyle::childIndex):
44693         (WebCore::RenderStyle::setChildIndex):
44695 2008-02-07  Dan Bernstein  <mitz@apple.com>
44697         Reviewed by Dave Hyatt.
44699         - fix <rdar://problem/5729411> REGRESSION (r29834): Float contained in relative-positioned block is painted twice
44701         Test: fast/block/float/relative-painted-twice.html
44703         * rendering/RenderBlock.cpp:
44704         (WebCore::RenderBlock::addOverhangingFloats): Added another case where
44705         the child should not take over painting the float: when they do not have
44706         the same enclosing layer. In that case, the float is already being
44707         painted by one of its closer ancestors.
44709 2008-02-07  Dan Bernstein  <mitz@apple.com>
44711         Reviewed by Darin Adler.
44713         - fix http://bugs.webkit.org/show_bug.cgi?id=17194
44714           Changing text to bold changes font family
44716         Test: platform/mac/fast/text/family-for-font-matched-by-name.html
44718         * platform/mac/WebFontCache.mm:
44719         (+[WebFontCache internalFontWithFamily:traits:size:]): Changed to use
44720         the family of the font whose name matches the desired family if there
44721         is no exact family match.
44723 2008-02-07  Beth Dakin  <bdakin@apple.com>
44725         Reviewed by Geoff.
44727         Fix for <rdar://problem/5697882> Traffic or Street View button on 
44728         Google Maps is sometimes not positioned correctly (17000)
44730         On the Mac, timers fire in the order that they are registered. 
44731         Geoff and I discovered that this is not necessarily true on 
44732         Windows, and that turned out to be the cause of this intermittent 
44733         layout problem at Google Maps. This patch adds a new member 
44734         variable to Timer to remember the timer's insertion point into the 
44735         heap. Now when comparing timers, if two timers were registered at 
44736         the same time, their insertion orders are compared to determine 
44737         which should fire first. This code actually never runs on Debug 
44738         builds on the Mac; the system clock on the Mac is accurate enough 
44739         that it knows that the two timers were not registered at *exactly* 
44740         the same time. This is not the case on Windows. In theory, if we 
44741         sped up Javascript enough on the Mac, this code would run and would 
44742         prevent misrenderings such as the one found on Google Maps.
44744         * platform/Timer.cpp:
44745         (WebCore::operator<):
44746         (WebCore::TimerBase::setNextFireTime):
44747         * platform/Timer.h:
44749 2008-02-06  Justin Garcia  <justin.garcia@apple.com>
44751         Reviewed by Darin Adler.
44753         <rdar://problem/5195056> Huge plain text pastes are slow
44754         
44755         This was fixed in r27369 and then r29367 and r29667 caused performance to
44756         regress.
44758         * editing/EditCommand.cpp:
44759         (WebCore::EditCommand::apply): Only updateLayout() for high level commands.
44760         (WebCore::EditCommand::unapply): Ditto.
44761         (WebCore::EditCommand::reapply): Ditto.
44762         * editing/Editor.cpp:
44763         (WebCore::Editor::appliedEditing): Added a note about shouldChangeSelection calls 
44764         that shouldn't be made, a bug I filed as <rdar://problem/5729315>.
44765         (WebCore::Editor::unappliedEditing): Ditto.
44766         (WebCore::Editor::reappliedEditing): Ditto.
44767         * editing/SelectionController.cpp:
44768         (WebCore::SelectionController::nodeWillBeRemoved): Don't try to test the selection
44769         base and extent with the expensive isCandidate operation if the node that will
44770         be removed is in a fragment, since such a removal is guaranteed to have no effect
44771         on a selection.  This is to speed up the paste operation, which does many removes from
44772         a fragment.
44774 2008-02-06  Kevin Ollivier  <kevino@theolliviers.com>
44776         Reviewed by Darin Adler.
44778         Rather than directly handing scroll wheel events, use
44779         PlatformWheelEvent to send them to WebCore first, so that
44780         mouse wheel scrolling info can be retrieved via JavaScript.
44782         http://bugs.webkit.org/show_bug.cgi?id=17179
44784         * platform/ScrollView.h:
44785         * platform/wx/MouseWheelEventWx.cpp:
44786         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
44787         * platform/wx/ScrollViewWx.cpp:
44788         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
44789         (WebCore::ScrollView::wheelEvent):
44790         (WebCore::ScrollView::maximumScroll):
44792 2008-02-06  Mark Rowe  <mrowe@apple.com>
44794         Fix Windows builds.
44796         * WebCore.vcproj/WebCore.vcproj: Unbreak the XML of the project file.
44798 2008-02-06  Mark Rowe  <mrowe@apple.com>
44800         Mac build fix.  Track rename that happened in r30056.
44802         * platform/graphics/mac/GraphicsContextMac.mm:
44804 2008-02-06  Brent Fulgham  <bfulgham@gmail.com>
44806         Reviewed by Adam Roben.
44808         http://bugs.webkit.org/show_bug.cgi?id=16979
44809         Conditionalize CoreGraphics vs Cairo support in Windows port.
44811         * WebCore.vcproj/WebCore.vcproj:
44812         * bridge/win/FrameCGWin.cpp: Copied from WebCore/bridge/win/FrameWin.cpp.
44813         (WebCore::imageFromSelection):
44814         * bridge/win/FrameCairoWin.cpp: Added.
44815         (WebCore::imageFromSelection):
44816         * bridge/win/FrameWin.cpp:
44817         (WebCore::computePageRectsForFrame):
44818         * platform/graphics/SimpleFontData.h:
44819         * platform/graphics/cairo/GraphicsContextCairo.cpp:
44820         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Copied from WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp.
44821         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
44822         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
44823         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
44824         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
44825         * platform/graphics/cg/GraphicsContextCG.cpp:
44826         (WebCore::GraphicsContext::savePlatformState):
44827         (WebCore::GraphicsContext::restorePlatformState):
44828         * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed.
44829         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Copied from WebCore/platform/graphics/cg/GraphicsContextPlatformPrivate.h.
44830         * platform/graphics/win/FontCGWin.cpp: Copied from WebCore/platform/graphics/win/FontWin.cpp.
44831         (WebCore::Font::drawGlyphs):
44832         * platform/graphics/win/FontCairoWin.cpp: Added.
44833         (WebCore::Font::drawGlyphs):
44834         * platform/graphics/win/FontWin.cpp:
44835         * platform/graphics/win/GraphicsContextCGWin.cpp: Copied from WebCore/platform/graphics/win/GraphicsContextWin.cpp.
44836         (WebCore::CGContextWithHDC):
44837         (WebCore::GraphicsContext::inTransparencyLayer):
44838         (WebCore::GraphicsContext::getWindowsContext):
44839         (WebCore::GraphicsContext::releaseWindowsContext):
44840         (WebCore::GraphicsContextPlatformPrivate::scale):
44841         (WebCore::GraphicsContextPlatformPrivate::rotate):
44842         (WebCore::GraphicsContextPlatformPrivate::translate):
44843         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
44844         (WebCore::setCGStrokeColor):
44845         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
44846         * platform/graphics/win/GraphicsContextCairoWin.cpp: Added.
44847         (WebCore::GraphicsContext::GraphicsContext):
44848         (WebCore::GraphicsContext::getWindowsContext):
44849         (WebCore::GraphicsContext::inTransparencyLayer):
44850         (WebCore::GraphicsContext::releaseWindowsContext):
44851         (WebCore::GraphicsContext::concatCTM):
44852         * platform/graphics/win/GraphicsContextWin.cpp:
44853         * platform/graphics/win/ImageCGWin.cpp: Copied from WebCore/platform/graphics/win/ImageWin.cpp.
44854         (WebCore::BitmapImage::getHBITMAPOfSize):
44855         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
44856         * platform/graphics/win/ImageCairoWin.cpp: Added.
44857         (WebCore::BitmapImage::getHBITMAPOfSize):
44858         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
44859         * platform/graphics/win/ImageWin.cpp:
44860         * platform/graphics/win/SimpleFontDataCGWin.cpp: Copied from WebCore/platform/graphics/win/SimpleFontDataWin.cpp.
44861         (WebCore::scaleEmToUnits):
44862         (WebCore::SimpleFontData::platformInit):
44863         (WebCore::SimpleFontData::platformWidthForGlyph):
44864         * platform/graphics/win/SimpleFontDataCairoWin.cpp: Added.
44865         (WebCore::SimpleFontData::platformInit):
44866         (WebCore::SimpleFontData::platformDestroy):
44867         (WebCore::SimpleFontData::platformWidthForGlyph):
44868         * platform/graphics/win/SimpleFontDataWin.cpp:
44869         (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
44870         (WebCore::SimpleFontData::shouldApplyMacAscentHack):
44871         * platform/win/DragImageCGWin.cpp: Copied from WebCore/platform/win/DragImageWin.cpp.
44872         (WebCore::scaleDragImage):
44873         (WebCore::createDragImageFromImage):
44874         * platform/win/DragImageCairoWin.cpp: Added.
44875         (WebCore::scaleDragImage):
44876         (WebCore::createDragImageFromImage):
44877         * platform/win/DragImageWin.cpp:
44879 2008-02-06  Anders Carlsson  <andersca@apple.com>
44881         Reviewed by Darin.
44883         Change httpBodyFromStream to take the request instead of the stream.
44884         
44885         * platform/network/cf/FormDataStreamCFNet.cpp:
44886         (WebCore::httpBodyFromRequest):
44887         * platform/network/cf/FormDataStreamCFNet.h:
44888         * platform/network/cf/ResourceRequestCFNet.cpp:
44889         (WebCore::ResourceRequest::doUpdateResourceRequest):
44891 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
44893         Reviewed by Darin.
44895         - Added manual tests for <rdar://problem/5556374> REGRESSION: cross-domain error when
44896         one URL uses an explicit port number and another doesn't
44898         * manual-tests/Default-port-frame.html: Added.
44899         * manual-tests/resources/Default-port-frame-contents.html: Added.
44901 2008-02-06  Oliver Hunt  <oliver@apple.com>
44903         Fix windows build
44905         * WebCore.vcproj/build-generated-files.sh:
44907 2008-02-06  Kevin McCullough  <kmccullough@apple.com>
44909         Rubberstamped by Darin.
44911         <rdar://problem/5727708> REGRESSION (r29952): Can't send message from Yahoo Mail beta
44912         - Reverted the change that caused the regression.
44914         * dom/Document.cpp:
44915         (WebCore::Document::createElement):
44916         (WebCore::Document::createElementNS):
44917         (WebCore::Document::getElementById):
44918         (WebCore::Document::parseQualifiedName):
44919         (WebCore::Document::createAttributeNS):
44920         * dom/Document.idl:
44922 2008-02-06  Geoffrey Garen  <ggaren@apple.com>
44924         Reviewed by Oliver Hunt.
44925         
44926         Fixed <rdar://problem/5728081> REGRESSION: Many leaks on buildbot
44928         The problem was refCount underflow in NamedAttrMap.
44929         
44930         Neither our regression tests nor the stress test have yet discovered
44931         another instance of this problem.
44933         * dom/NamedAttrMap.cpp:
44934         (WebCore::NamedAttrMap::addAttribute): Changed to use PassRefPtr,
44935         for fast and correct refCount management. Also, change a rediculously
44936         slow malloc to a slightly less rediculously slow realloc.
44938         * dom/NamedAttrMap.h:
44939         (WebCore::NamedAttrMap::insertAttribute): Changed to use PassRefPtr,
44940         for fast and correct refCount management.
44942         * html/HTMLTokenizer.cpp:
44943         (WebCore::Token::addAttribute): Use a RefPtr, to guarantee that the
44944         object starts with a refCount of 1.
44946 2008-02-06  Darin Adler  <darin@apple.com>
44948         Reviewed by Tim Hatcher.
44950         - fix <rdar://problem/5723293> NULL-deref crash in PropertyMap::put opening web inspector
44951           with View Source window as target
44953         * page/InspectorController.cpp:
44954         (WebCore::canPassNodeToJavaScript): Added. Returns false if the node is in a document with
44955         JavaScript disabled.
44956         (WebCore::InspectorController::inspect): Check canPassNodeToJavaScript and do nothing if
44957         it returns false.
44959 2008-02-06  David Hyatt  <hyatt@apple.com>
44961         Fix for bug 16799, object elements should return absolute URLs from .data.
44963         Reviewed by Mark Rowe
44965         * dom/Document.cpp:
44966         (WebCore::Document::completeURL):
44967         * html/HTMLAnchorElement.cpp:
44968         (WebCore::HTMLAnchorElement::href):
44969         * html/HTMLObjectElement.cpp:
44970         (WebCore::HTMLObjectElement::data):
44972 2008-02-05  Antti Koivisto  <antti@apple.com>
44974         Reviewed by Darin.
44976         <rdar://problem/5726340>
44977         <video autoplay controls> left in unplayable state if navigated away, then back to, before video finished loading
44978         
44979         When moving document in and out from the page cache:
44980         - Cancel incomplete load by deleting the media player. This guarantees everything is in consistent state.
44981         - Restart the load if it was aborted in the middle.
44983         * html/HTMLMediaElement.cpp:
44984         (WebCore::HTMLMediaElement::~HTMLMediaElement):
44985         (WebCore::HTMLMediaElement::load):
44986         (WebCore::HTMLMediaElement::willSaveToCache):
44987         (WebCore::HTMLMediaElement::didRestoreFromCache):
44988         * html/HTMLMediaElement.h:
44989         (WebCore::HTMLMediaElement::player):
44991 2008-02-06  Darin Adler  <darin@apple.com>
44993         Reviewed by Sam.
44995         - replace calls to put to set up properties with calls to putDirect, to
44996           prepare for a future change where put won't take attributes any more,
44997           and for a slight performance boost
44999         * bindings/js/JSAudioConstructor.cpp:
45000         (WebCore::JSAudioConstructor::JSAudioConstructor): Use putDirect instead of put.
45001         * bindings/js/JSEventTargetBase.h:
45002         (WebCore::JSEventTargetPrototype::self): Ditto.
45003         * bindings/js/JSHTMLOptionElementConstructor.cpp:
45004         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor): Ditto.
45005         * bindings/js/JSSQLResultSetRowListCustom.cpp:
45006         (WebCore::JSSQLResultSetRowList::item): Ditto.
45008 2008-02-06  Dan Bernstein  <mitz@apple.com>
45010         Reviewed by Darin Adler.
45012         - fix http://bugs.webkit.org/show_bug.cgi?17093
45013         'border-color' does not animate to the value of 'color' when unspecified
45015         Test: fast/css/transition-color-unspecified.html
45017         * page/AnimationController.cpp:
45018         (WebCore::ImplicitAnimation::animate): Changed to use the value of the
45019         'color' property in the source or destination style as the source or
45020         destination value of properties whose inital value is defined to be the
45021         computed value of 'color'.
45023 2008-02-06  Dan Bernstein  <mitz@apple.com>
45025         Build fix.
45027         * svg/svgtags.in:
45029 2008-02-05  Oliver Hunt  <oliver@apple.com>
45031         Build fix -- touch generate-bindings to trigger regeneration of bindings
45033         * bindings/scripts/generate-bindings.pl:
45035 2008-02-05  Oliver Hunt  <oliver@apple.com>
45037         RS=Eric.
45039         Re-enable foreignObject by default as it is needed for a number of 
45040         non-fO related SVG tests and none of the old known crashes occur
45041         anymore.
45043         * Configurations/WebCore.xcconfig:
45044         * WebCore.vcproj/WebCore.vcproj:
45046 2008-02-05  Sam Weinig  <sam@webkit.org>
45048         Reviewed by Anders Carlsson.
45050         Fix for http://bugs.webkit.org/show_bug.cgi?id=8080
45051         NodeList (and other DOM lists) items are not enumeratable using for..in
45053         - Match Firefox when enumerating DOM interfaces with indexGetters (support for 
45054           the array bracket, nodeList[0], notation) by including all the items in the
45055           list before the attributes and methods of the interface.
45057         Test: fast/dom/domListEnumeration.html
45059         * ForwardingHeaders/kjs/PropertyNameArray.h: Added.
45060         * bindings/js/JSDOMWindowCustom.cpp:
45061         (WebCore::JSDOMWindow::customGetPropertyNames): Use the new custom method model. 
45062         * bindings/js/JSHistoryCustom.cpp:
45063         (WebCore::JSHistory::customGetPropertyNames): ditto.
45064         * bindings/scripts/CodeGeneratorJS.pm: Instead of just adding a declaration of
45065         getProperyNames and implementing the method in the Custom.cpp, move to a the 
45066         model used by generated getOwnPropertySlot() and put() where the custom code
45067         is written in a separate customGetPropertyNames which returns a bool indicating
45068         whether to call up to the base class.  This enables adding the list indexes
45069         to the PropertyNameArray for interfaces with indexGetters automatically.
45071 2008-02-05  Samuel Weinig  <sam@webkit.org>
45073         Reviewed by Darin Adler.
45075         Fix for <rdar://problem/5726604> 
45076         dom-checker: deleting properties of the window object cross-domain should not be allowed
45078         Fix flaw found while testing with dom-checker testing tool (http://code.google.com/p/dom-checker/).
45080         Test: http/tests/security/cross-frame-access-delete.html
45082         * bindings/js/JSDOMWindowCustom.cpp:
45083         (WebCore::JSDOMWindow::deleteProperty): Override deleteProperty to not delete cross-domain.
45084         * bindings/js/JSHistoryCustom.cpp:
45085         (WebCore::JSHistory::deleteProperty): ditto.
45086         * bindings/js/JSLocation.cpp:
45087         (WebCore::JSLocation::deleteProperty): ditto.
45088         * bindings/js/JSLocation.h:
45090         * bindings/scripts/CodeGeneratorJS.pm: Add deleteProperty declaration when CustomDeleteProperty is used.
45091         * page/DOMWindow.idl: Add CustomDeleteProperty extended attribute.
45092         * page/History.idl: ditto.
45094 2008-02-05  Alp Toker  <alp@atoker.com>
45096         Rubber-stamped by Mark Rowe.
45098         Fix a "missing sentinel in function call" warning by using NULL
45099         instead of 0.
45101         * platform/gtk/RenderThemeGtk.cpp:
45102         (WebCore::RenderThemeGtk::caretBlinkFrequency):
45104 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
45106         Reviewed by Oliver.
45108         Fix dynamic updates of <circle> element's properties.
45110         Added tests: svg/dynamic-updates/SVGCircleElement*
45112         * svg/SVGCircleElement.cpp:
45113         (WebCore::SVGCircleElement::svgAttributeChanged): Mixed up cxAttr/xAttr etc.
45114         * svg/SVGCircleElement.h:
45116 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
45118         Wx build fix.  Add WebCore/plugins to the include path.
45120         * webcore-base.bkl:
45122 2008-02-05  Mark Rowe  <mrowe@apple.com>
45124         Mac build fix.  Update the Xcode project to follow a moved file,
45125         and track a rename in two files that were missed earlier.
45127         * WebCore.xcodeproj/project.pbxproj:
45128         * page/mac/WebCoreFrameBridge.mm:
45129         (-[WebCoreFrameBridge canProvideDocumentSource]):
45130         * platform/mac/PlugInInfoStoreMac.mm:
45131         (WebCore::PluginInfoStore::pluginNameForMIMEType):
45133 2008-02-05  Nikolas Zimmermann  <zimmermann@kde.org>
45135         Reviewed by Holger.
45137         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17185
45138         Fix dynamic SVG DOM updates of <a> element's href property.
45140         This commit also introduces a new SVG Tests framework: LayoutTests/svg/dynamic-updates
45141         Its purpose is to provide dynamic updating tests for each SVG class & property, aka.
45142         one test per property per class. As a first pass it's sufficient to add testcases for all
45143         SVG*Element classes, and their properties - and only common-used base-class properties.
45145         For SVGAElement - for example - it makes most sense to test scripting its parent
45146         SVGURIReference object ('href' property) and its own property 'target'.
45148         Adding tests to see - for example - if SVGAElement reacts on changes on ie. its parent
45149         SVGExternalResourcesRequired interface, should really be done in a second pass.
45151         All tests within the new framework are supposed to be created using make-js-tests-wrappers.
45153         Added test: svg/dynamic-updates/SVGAElement-dom-href-attr.js
45154         Added test: svg/dynamic-updates/SVGAElement-dom-target-attr.js
45155         Added test: svg/dynamic-updates/SVGAElement-svgdom-href-prop.js
45156         Added test: svg/dynamic-updates/SVGAElement-svgdom-target-prop.js
45158         * svg/SVGAElement.cpp:
45159         (WebCore::SVGAElement::parseMappedAttribute): Move any setChanged() handling in svgAttributeChanged.
45160         (WebCore::SVGAElement::svgAttributeChanged):
45161         (WebCore::SVGAElement::defaultEventHandler): Use href() not getAttribute(hrefAttr) - otherwhise SVG DOM updates fail!
45162         * svg/SVGAElement.h:
45164 2008-02-05  Justin Garcia  <justin.garcia@apple.com>
45166         Reviewed by Alexey Proskuryakov.
45168         <rdar://problem/5685601> webkit-block-placeholder class on placeholders seems unnecessary (12317)
45170         * editing/CompositeEditCommand.cpp:
45171         (WebCore::createBlockPlaceholderElement): The khtml-block-placeholder class was needed
45172         when the editing code actively looked for <br>s of that type in order to handle them
45173         specially.  That is no longer the case.
45174         * editing/InsertParagraphSeparatorCommand.cpp:
45175         (WebCore::InsertParagraphSeparatorCommand::doApply): Fixed a bug where an extra block
45176         would be inserted when hitting return inside an editable root held open by a placeholder
45177         <br> or '\n'.  Added test cases for the bug and for the special case code that was incorrectly
45178         triggered to cause the bug. 
45180 2008-02-05  Rodney Dawes  <dobey@wayofthemonkey.com>
45182         Reviewed by Anders Carlsson.
45184         Part one of http://bugs.webkit.org/show_bug.cgi?id=16924.
45185         Shared PluginDatabase, PluginInfoStore and PluginPackage implementations.
45187         Remove the Win suffix on several plugin-related classes that will
45188         soon be refactored to be more portable.
45190         * WebCore.vcproj/WebCore.vcproj:
45191         * bindings/js/kjs_navigator.cpp:
45192         (KJS::PluginBase::cachePluginDataIfNecessary):
45193         * bindings/js/kjs_window.cpp:
45194         * bridge/win/FrameWin.cpp:
45195         (WebCore::Frame::createScriptInstanceForWidget):
45196         * dom/Clipboard.cpp:
45197         * dom/DOMImplementation.cpp:
45198         (WebCore::DOMImplementation::createDocument):
45199         * loader/FrameLoader.cpp:
45200         (WebCore::FrameLoader::shouldUsePlugin):
45201         * page/DragController.cpp:
45202         * platform/PlugInInfoStore.h: Removed.
45203         * platform/gtk/TemporaryLinkStubs.cpp:
45204         (PluginInfoStore::createPluginInfoForPluginAtIndex):
45205         (PluginInfoStore::pluginCount):
45206         (PluginInfoStore::pluginNameForMIMEType):
45207         (WebCore::PluginInfoStore::supportsMIMEType):
45208         * platform/qt/PlugInInfoStoreQt.cpp:
45209         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
45210         (WebCore::PluginInfoStore::pluginCount):
45211         (WebCore::PluginInfoStore::pluginNameForMIMEType):
45212         (WebCore::PluginInfoStore::supportsMIMEType):
45213         * platform/qt/TemporaryLinkStubs.cpp:
45214         * platform/win/SharedTimerWin.cpp:
45215         (WebCore::TimerWindowWndProc):
45216         * platform/wx/TemporaryLinkStubs.cpp:
45217         (PluginInfoStore::createPluginInfoForPluginAtIndex):
45218         (PluginInfoStore::pluginCount):
45219         (WebCore::PluginInfoStore::supportsMIMEType):
45220         (PluginInfoStore::pluginNameForMIMEType):
45221         * plugins/PluginDatabase.h: Copied from WebCore/plugins/win/PluginDatabaseWin.h.
45222         * plugins/PluginInfoStore.cpp: Copied from WebCore/plugins/win/PlugInInfoStoreWin.cpp.
45223         (WebCore::PluginInfoStore::createPluginInfoForPluginAtIndex):
45224         (WebCore::PluginInfoStore::pluginCount):
45225         (WebCore::PluginInfoStore::pluginNameForMIMEType):
45226         (WebCore::PluginInfoStore::supportsMIMEType):
45227         (WebCore::refreshPlugins):
45228         * plugins/PluginInfoStore.h: Copied from WebCore/platform/PlugInInfoStore.h.
45229         * plugins/PluginPackage.h: Copied from WebCore/plugins/win/PluginPackageWin.h.
45230         (WebCore::PluginPackageHash::hash):
45231         (WebCore::PluginPackageHash::equal):
45232         (WTF::):
45233         * plugins/PluginView.h: Copied from WebCore/plugins/win/PluginViewWin.h.
45234         (WebCore::PluginView::plugin):
45235         * plugins/npapi.cpp: Copied from WebCore/plugins/win/npapi.cpp.
45236         (pluginViewForInstance):
45237         (NPN_UserAgent):
45238         * plugins/win/PlugInInfoStoreWin.cpp: Removed.
45239         * plugins/win/PluginDatabaseWin.cpp:
45240         (WebCore::PluginDatabase::installedPlugins):
45241         (WebCore::PluginDatabase::addExtraPluginPath):
45242         (WebCore::PluginDatabase::refresh):
45243         (WebCore::PluginDatabase::plugins):
45244         (WebCore::addPluginsFromRegistry):
45245         (WebCore::PluginDatabase::getPluginsInPaths):
45246         (WebCore::PluginDatabase::defaultPluginPaths):
45247         (WebCore::PluginDatabase::isMIMETypeRegistered):
45248         (WebCore::PluginDatabase::pluginForMIMEType):
45249         (WebCore::PluginDatabase::MIMETypeForExtension):
45250         (WebCore::PluginDatabase::findPlugin):
45251         (WebCore::PluginDatabase::createPluginView):
45252         * plugins/win/PluginDatabaseWin.h: Removed.
45253         * plugins/win/PluginPackageWin.cpp:
45254         (WebCore::PluginPackage::~PluginPackage):
45255         (WebCore::PluginPackage::freeLibrarySoon):
45256         (WebCore::PluginPackage::freeLibraryTimerFired):
45257         (WebCore::PluginPackage::PluginPackage):
45258         (WebCore::PluginPackage::compareFileVersion):
45259         (WebCore::PluginPackage::storeFileVersion):
45260         (WebCore::PluginPackage::isPluginBlacklisted):
45261         (WebCore::PluginPackage::fetchInfo):
45262         (WebCore::PluginPackage::load):
45263         (WebCore::PluginPackage::unload):
45264         (WebCore::PluginPackage::unloadWithoutShutdown):
45265         (WebCore::PluginPackage::createPackage):
45266         (WebCore::PluginPackage::hash):
45267         (WebCore::PluginPackage::equal):
45268         * plugins/win/PluginPackageWin.h: Removed.
45269         * plugins/win/PluginViewWin.cpp:
45270         (WebCore::PluginRequest::PluginRequest):
45271         (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
45272         (WebCore::registerPluginView):
45273         (WebCore::PluginViewWndProc):
45274         (WebCore::PluginView::popPopupsStateTimerFired):
45275         (WebCore::PluginView::wndProc):
45276         (WebCore::PluginView::updateWindow):
45277         (WebCore::PluginView::windowClipRect):
45278         (WebCore::PluginView::setFrameGeometry):
45279         (WebCore::PluginView::geometryChanged):
45280         (WebCore::PluginView::setFocus):
45281         (WebCore::PluginView::show):
45282         (WebCore::PluginView::hide):
45283         (WebCore::PluginView::paintMissingPluginIcon):
45284         (WebCore::PluginView::dispatchNPEvent):
45285         (WebCore::PluginView::paint):
45286         (WebCore::PluginView::handleKeyboardEvent):
45287         (WebCore::PluginView::handleMouseEvent):
45288         (WebCore::PluginView::handleEvent):
45289         (WebCore::PluginView::setParent):
45290         (WebCore::PluginView::attachToWindow):
45291         (WebCore::PluginView::detachFromWindow):
45292         (WebCore::PluginView::setNPWindowRect):
45293         (WebCore::PluginView::start):
45294         (WebCore::PluginView::stop):
45295         (WebCore::PluginView::setCurrentPluginView):
45296         (WebCore::PluginView::currentPluginView):
45297         (WebCore::PluginView::performRequest):
45298         (WebCore::PluginView::requestTimerFired):
45299         (WebCore::PluginView::scheduleRequest):
45300         (WebCore::PluginView::load):
45301         (WebCore::PluginView::getURLNotify):
45302         (WebCore::PluginView::getURL):
45303         (WebCore::PluginView::handlePost):
45304         (WebCore::PluginView::postURLNotify):
45305         (WebCore::PluginView::postURL):
45306         (WebCore::PluginView::newStream):
45307         (WebCore::PluginView::write):
45308         (WebCore::PluginView::destroyStream):
45309         (WebCore::PluginView::userAgent):
45310         (WebCore::PluginView::status):
45311         (WebCore::PluginView::getValue):
45312         (WebCore::PluginView::setValue):
45313         (WebCore::PluginView::invalidateTimerFired):
45314         (WebCore::PluginView::invalidateRect):
45315         (WebCore::PluginView::invalidateRegion):
45316         (WebCore::PluginView::forceRedraw):
45317         (WebCore::PluginView::pushPopupsEnabledState):
45318         (WebCore::PluginView::popPopupsEnabledState):
45319         (WebCore::PluginView::arePopupsAllowed):
45320         (WebCore::PluginView::bindingInstance):
45321         (WebCore::PluginView::~PluginView):
45322         (WebCore::PluginView::disconnectStream):
45323         (WebCore::PluginView::determineQuirks):
45324         (WebCore::PluginView::setParameters):
45325         (WebCore::PluginView::PluginView):
45326         (WebCore::PluginView::init):
45327         (WebCore::PluginView::didReceiveResponse):
45328         (WebCore::PluginView::didReceiveData):
45329         (WebCore::PluginView::didFinishLoading):
45330         (WebCore::PluginView::didFail):
45331         (WebCore::PluginView::setCallingPlugin):
45332         (WebCore::PluginView::isCallingPlugin):
45333         * plugins/win/PluginViewWin.h: Removed.
45334         * plugins/win/npapi.cpp: Removed.
45336 2008-02-05  Alexey Proskuryakov  <ap@webkit.org>
45338         Reviewed by Darin.
45340         http://bugs.webkit.org/show_bug.cgi?id=17158
45341         Setting innerHTML in a detached XHTML element doesn't use the right namespace
45343         Test: fast/dom/innerHTML-detached-element.xhtml
45345         * dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::XMLTokenizer): Take parent element namespace
45346         into account.
45348 2008-02-05  Antti Koivisto  <antti@apple.com>
45350         Reviewed by Geoff.
45351         
45352         Fix <rdar://problem/5698200>
45353         eBay photo uploading hangs and causes slow script warning to pop up
45354         
45355         In a case like this
45356         
45357             var f = window.parent.parentFunction;
45358             document.domain = document.domain; // this makes window.parent inaccessible
45359             f();
45360         
45361         Firefox allows parentFunction to access parents properties. Match this behavior.
45362         
45363         In a domain security check against the dynamic global object fails for the specific reason that one of 
45364         the frames has written to the document.domain property and another has not (but they match otherwise), 
45365         then recheck against the lexical global object.
45367         Test: http/tests/security/cross-frame-access-callback-explicit-domain-ALLOW.html
45368               http/tests/security/cross-frame-access-callback-explicit-domain-DENY.html
45370         * bindings/js/kjs_window.cpp:
45371         (KJS::Window::allowsAccessFrom):
45372         (KJS::Window::printErrorMessage):
45373         * bindings/js/kjs_window.h:
45374         * loader/FrameLoader.cpp:
45375         (WebCore::FrameLoader::shouldAllowNavigation):
45376         * platform/SecurityOrigin.cpp:
45377         (WebCore::SecurityOrigin::canAccess):
45378         * platform/SecurityOrigin.h:
45379         (WebCore::SecurityOrigin::):
45381 2008-02-05  Adam Roben  <aroben@apple.com>
45383         Remove an unused member from Document
45385         Reviewed by Mitz.
45387         * dom/Document.cpp:
45388         (WebCore::Document::recalcStyleSelector): There's no need to take
45389         m_printSheet into account anymore as it's never anything but the null
45390         string.
45391         * dom/Document.h: Removed m_printSheet and methods relating to it.
45393 2008-02-05  Dan Bernstein  <mitz@apple.com>
45395         Reviewed by Darin Adler.
45397         - WebCore part of <rdar://problem/5724303> Should implement writing direction shortcuts
45399         * WebCore.base.exp: Added Editor::setBaseWritingDirection() and
45400         Frame::baseWritingDirectionForSelectionStart().
45401         * page/mac/WebCoreFrameBridge.h: Removed
45402         -baseWritingDirectionForSelectionStart.
45403         * page/mac/WebCoreFrameBridge.mm: Ditto.
45405 2008-02-05  Mark Rowe  <mrowe@apple.com>
45407         Reviewed by Oliver Hunt.
45409         Update versioning to support the mysterious future.
45411         * Configurations/Version.xcconfig: Add SYSTEM_VERSION_PREFIX_1060.
45413 2008-02-05  Mark Rowe  <mrowe@apple.com>
45415         Fix the wxWidget Mac build by avoiding using ICU functions that were added after ICU 3.2.
45417         * editing/SmartReplaceICU.cpp:
45418         (WebCore::addAllCodePoints): Implement a replacement for uset_addAllCodePoints.
45419         (WebCore::getSmartSet): Use addAllCodePoints instead of uset_addAllCodePoints.
45421 2008-02-05  Mark Rowe  <mrowe@apple.com>
45423         Rubber-stamped by Oliver Hunt.
45425         30,000!
45427         * ChangeLog: Point out revision 30,000.
45429 2008-02-04  Mark Rowe  <mrowe@apple.com>
45431         Unreviewed Gtk build fix.
45433         wchar_t is only convertible to UChar on Windows.  Use WebCore's String class
45434         to get the UChars out of a C string in a portable fashion.
45436         * editing/SmartReplaceICU.cpp:
45437         (WebCore::getSmartSet):
45439 2008-02-04  Tony Chang  <idealisms@gmail.com>
45441         Reviewed by Darin Adler.
45443         Port the CoreFoundation version of WebCore::isCharacterSmartReplaceExempt
45444         for other platforms by using ICU directly.
45446         * GNUmakefile.am: Add SmartReplaceICU.cpp.
45447         * WebCore.pro: Ditto.
45448         * WebCoreSources.bkl: Ditto.
45449         * editing/SmartReplace.cpp: Don't use this empty implementation when ICU is available.
45450         * editing/SmartReplaceICU.cpp:
45451         (getSmartSet):
45452         (WebCore::isCharacterSmartReplaceExempt):
45454 2008-02-04  Robert Sesek  <rsesek@bluestatic.org>
45456         Reviewed by Darin Adler.
45458         Fix http://bugs.webkit.org/show_bug.cgi?id=17042
45459         forms without action attributes submit to the <base> href instead of the originating page
45461         Test: fast/forms/missing-action.html
45463         * html/HTMLFormElement.cpp:
45464         (WebCore::HTMLFormElement::submit): Submit to origin if there is no action
45466 2008-02-04  Mark Rowe  <mrowe@apple.com>
45468         Reviewed by Tim Hatcher.
45470         Gtk build fix.  Use std::numeric_limits in place of ULLONG_MAX as
45471         some Linux machines do not have ULLONG_MAX.
45473         OriginUsageRecord::unknownDiskUsage becomes a static function to avoid
45474         the global initialiser which would otherwise be generated.
45476         * storage/OriginUsageRecord.cpp:
45477         (WebCore::OriginUsageRecord::unknownDiskUsage):
45478         (WebCore::OriginUsageRecord::addDatabase):
45479         (WebCore::OriginUsageRecord::removeDatabase):
45480         (WebCore::OriginUsageRecord::markDatabase):
45481         (WebCore::OriginUsageRecord::diskUsage):
45482         * storage/OriginUsageRecord.h:
45484 2008-02-04  Mark Rowe  <mrowe@apple.com>
45486         Speculative Gtk build fix.
45488         * storage/OriginUsageRecord.cpp:
45490 2008-02-04  Brady Eidson  <beidson@apple.com>
45492         Attempt to fix build of all non-Mac platforms
45494         * GNUmakefile.am:
45495         * WebCore.pro:
45496         * WebCore.vcproj/WebCore.vcproj:
45497         * WebCoreSources.bkl:
45499 2008-02-04  Brady Eidson  <beidson@apple.com>
45501         Reviewed by Darin
45503         Fix for <rdar://problem/5628468> - Quotas need to be implemented per-origin, and not per-database
45505         To accomplish this, we need to track the sizes of all databases in an origin to constantly keep an up to date
45506         count of the origin's total disk usage.  I've introduced the OriginQuotaManager and OriginUsageRecord classes
45507         to accomplish this.
45509         Whenever a transaction is known to mutate the size of a database (tracked by the DatabaseAuthorizer), it marks
45510         that database as unknown in the OriginQuotaManager.  When a transaction later comes along to ask the 
45511         OriginQuotaManager the usage for that origin, it stat's all of the unknown databases in the origin and returns
45512         the result.
45514         Since the OriginQuotaManager is interesting from both the main thread and a DatabaseThread, all accessors it 
45515         provides require it to be locked first.  ASSERTs help guarantee this is always the case.
45517         Layout test will involve adding functionality to DRT on multiple platforms and will be coming up shortly
45519         * WebCore.xcodeproj/project.pbxproj:
45521         * platform/SecurityOrigin.h: Changed to be ThreadSafeShared instead of RefCounted
45523         * storage/Database.cpp:
45524         (WebCore::Database::databaseSize): Return the current filesize of this database on disk
45525         (WebCore::Database::maximumSize): Added - calculates maximum size of this database based on quota and usage
45526         * storage/Database.h: Add databaseSize() accessor, and get rid of unused declared methods that *were* going 
45527           to be the solution for this bug.
45529         * storage/DatabaseTracker.cpp:
45530         (WebCore::DatabaseTracker::originQuotaManager): Accessor to the OriginQuotaManager which is lazily created
45531         (WebCore::DatabaseTracker::canEstablishDatabase): Fetch the usage for this database slightly earlier, which
45532           will ensure that the OriginQuotaManager is primed to track this origin
45533         (WebCore::DatabaseTracker::fullPathForDatabase): Ditto
45534         (WebCore::DatabaseTracker::populateOrigins): Create the OriginQuotaManager here.
45535         (WebCore::DatabaseTracker::usageForOrigin): Use the OriginQuotaManager instead of looping through each database
45536           in the origin
45537         (WebCore::DatabaseTracker::deleteOrigin): Remove this origin from the OriginQuotaManager as it is no longer 
45538           interesting
45539         (WebCore::DatabaseTracker::deleteDatabase): Remove this database from the OriginQuotaManager as it is no longer
45540           interesting
45541         * storage/DatabaseTracker.h:
45543         * storage/OriginQuotaManager.cpp: Added.
45544         (WebCore::OriginQuotaManager::OriginQuotaManager):
45545         (WebCore::OriginQuotaManager::lock):
45546         (WebCore::OriginQuotaManager::unlock):
45547         (WebCore::OriginQuotaManager::trackOrigin): Add an origin to be tracked.  Useful for when the very first database 
45548           in a new origin is still in the process of being created
45549         (WebCore::OriginQuotaManager::tracksOrigin):
45550         (WebCore::OriginQuotaManager::addDatabase):
45551         (WebCore::OriginQuotaManager::removeDatabase):
45552         (WebCore::OriginQuotaManager::removeOrigin): Removes all records in a certain origin from being tracked
45553         (WebCore::OriginQuotaManager::markDatabase): Mark a specific database as having an unknown size - called when the
45554           DatabaseAuthorizer in a SQLTransaction knows the file size might change.
45555         (WebCore::OriginQuotaManager::diskUsage): Returns the disk usage for the given origin
45556         * storage/OriginQuotaManager.h: Added.
45558         * storage/OriginUsageRecord.cpp: Added.
45559         (WebCore::OriginUsageRecord::OriginUsageRecord):
45560         (WebCore::OriginUsageRecord::addDatabase): Adds an entry for the database in this origin's record
45561         (WebCore::OriginUsageRecord::removeDatabase): Removes that entry
45562         (WebCore::OriginUsageRecord::markDatabase): Marks the database as of unknown size
45563         (WebCore::OriginUsageRecord::diskUsage): Returns the cached disk usage value, or recalculates it if any databases
45564           are marked
45565         * storage/OriginUsageRecord.h: Added.
45567         * storage/SQLTransaction.cpp:
45568         (WebCore::SQLTransaction::openTransactionAndPreflight): Use Database::maximumSize() instead of attributing the
45569           entire quota to each database.
45570         (WebCore::SQLTransaction::runStatements): Use Database::maximumSize() instead of attributing the entire quota
45571           to each database.
45572         (WebCore::SQLTransaction::runCurrentStatement): Mark this databases's size as unknown in the 
45573           OriginQuotaManager if this statement will change the size of the database
45574         * storage/SQLTransaction.h:
45576 2008-02-04   David Harrison  <harrison@apple.com>
45578         Reviewed by Darin Adler.
45580         <rdar://problem/5607381> CrashTracer: [REGRESSION] 1748 crashes in Safari at com.apple.WebCore: WebCore::Image::width const + 24
45582         Use an empty image when the local image file could not be loaded.
45584         No test case because it would require forcing tiff load failure.
45585         
45586         * editing/DeleteButtonController.cpp:
45587         (WebCore::DeleteButtonController::createDeletionUI):
45588         Do not present the deletion UI in the (odd) event that the delete button could not be loaded.
45589         
45590         * platform/graphics/mac/ImageMac.mm:
45591         (WebCore::Image::loadPlatformResource):
45592         Return an empty image instead of 0 if the load fails.
45594 2008-02-04  Darin Adler  <darin@apple.com>
45596         * dom/Document.cpp:
45597         (WebCore::Document::completeURL): Fixed misleading comment.
45599 2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>
45601         Reviewed by Darin.
45603         Blacklist Silverlight versions older than min required, not newer. 
45605         * plugins/win/PluginPackageWin.cpp:
45606         (WebCore::PluginPackageWin::isPluginBlacklisted):
45608 2008-02-04  David Hyatt  <hyatt@apple.com>
45610         Fix for bug 16751, misparsing of html*.test in CSS.
45612         Reviewed by darin
45614         Added fast/css/simple-selector-chain-parsing.html
45616         * css/CSSGrammar.y:
45618 2008-02-04  Darin Adler  <darin@apple.com>
45620         Suggested by Geoff and Maciej.
45622         * bindings/js/JSCustomSQLTransactionCallback.cpp: Reworded a misleading
45623         comment to be correct.
45625 2008-02-04  Jon Honeycutt  <jhoneycutt@apple.com>
45627         Reviewed by Steve, Anders.
45629         <rdar://problem/5211187> QuickTime and Flash plug-ins draw outside of
45630         content area when inside an iframe or div with overflow when playing a
45631         movie and scrolling the iframe/div area
45633         Clip the update region to the zero rect when scrolling. Don't do this
45634         for Java, because it results in repaint problems. 
45636         * plugins/PluginQuirkSet.h: Added the DontClipToZeroRectWhenScrolling
45637         quirk
45638         * plugins/win/PluginViewWin.cpp:
45639         (WebCore::PluginViewWin::updateWindow): Readded the old behavior of
45640         clipping to the zero rect when updating the window during a scroll.
45641         Added plug-in quirk to ignore this behavior for Java. Swapped order of
45642         the SetWindowRgn() and MoveWindow() calls to prevent Java from painting
45643         outside of its container during a scroll.
45644         (WebCore::PluginViewWin::determineQuirks): If this is Java, add the
45645         DontClipToZeroRectWhenScrolling quirk.
45647 2008-02-04  Timothy Hatcher  <timothy@apple.com>
45649         Reviewed by Mark Rowe.
45651         <rdar://problem/5722972> Leopard needs to statically link SQLite
45653         * Configurations/Base.xcconfig: Always have a header search path for WebCoreSQLite3.
45654         * Configurations/DebugRelease.xcconfig: Ditto.
45655         * Configurations/WebCore.xcconfig: Always link against WebCoreSQLite3.
45657 2008-02-04  Adam Roben  <aroben@apple.com>
45659         Windows build fix
45661         * bindings/scripts/CodeGeneratorCOM.pm: Touched to force a rebuild of
45662         the COM bindings.
45664 2008-02-04   David Harrison  <harrison@apple.com>
45666         Reviewed by Tim Hatcher.
45668         - fix <rdar://problem/5715481> REGRESSION (r26499): JavaScript document.lastModified is not supported
45670         Re-add attribute inadvertantly lost by r26499.
45672         Test: fast/js/lastModified.html: Added.
45674         * dom/Document.idl:
45675         Add lastModified.
45677 2008-02-04  Darin Adler  <darin@apple.com>
45679         Reviewed by Geoff.
45681         - fix <rdar://problem/5713621> Threading issue when destroying database transaction callback
45683         Do main-thread-only stuff on the main thread.
45685         Not clear how to make a regression test for this.
45687         * bindings/js/JSCustomSQLTransactionCallback.cpp:
45688         (WebCore::JSCustomSQLTransactionCallback::Data::Data): Added.
45689         (WebCore::JSCustomSQLTransactionCallback::Data::callback): Added.
45690         (WebCore::JSCustomSQLTransactionCallback::Data::frame): Added.
45691         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Put data into a
45692         separate Data object; we'll destroy it on the main thread.
45693         (WebCore::JSCustomSQLTransactionCallback::deleteData): Added.
45694         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback): Call the
45695         deleteData function on the main thread.
45696         (WebCore::JSCustomSQLTransactionCallback::handleEvent): Updated to get at fields through the
45697         m_data object.
45698         * bindings/js/JSCustomSQLTransactionCallback.h: Declare deleteData, Data, and m_data rather
45699         than m_callback and m_frame.
45701 2008-02-04  Adam Roben  <aroben@apple.com>
45703         Fix the search field if the inpsected Document has overridden
45704         Document.evaluate or Document.querySelectorAll
45706         Reviewed by Darin.
45708         * manual-tests/inspector-document-methods-override.html: Added.
45709         * page/InspectorController.cpp:
45710         (WebCore::InspectorController::didCommitLoad): Reworded a comment to
45711         force WebCore.vcproj to build.
45712         * page/inspector/inspector.js: Call
45713         Document.prototype.{evaluate,querySelectorAll}.call instead of calling
45714         the functions directly on the inspected Document. This ensures we are
45715         calling the version of these functions we intended to.
45717 2008-02-04  Darin Adler  <darin@apple.com>
45719         Reviewed by Tim Hatcher.
45721         - possible fix for <rdar://problem/5714030> Crash in Database::deliverAllPendingCallbacks()
45722           reloading a page quickly
45724         I don't fully understand the cause of the crash, but I think this might
45725         be a helpful change.
45727         * platform/sql/SQLiteTransaction.cpp:
45728         (WebCore::SQLiteTransaction::commit): If the commit fails, don't leave this
45729         transaction and database both marked as "still in progress". As far as I can
45730         tell this does no good, and also seems to do harm.
45731         (WebCore::SQLiteTransaction::rollback): Ditto.
45733         * storage/Database.cpp:
45734         (WebCore::Database::performTransactionStep): Add some assertions to
45735         detect databases stuck in the "transaction in progress" state.
45736         * storage/SQLTransaction.cpp:
45737         (WebCore::SQLTransaction::openTransactionAndPreflight): Ditto.
45738         (WebCore::SQLTransaction::postflightAndCommit): Ditto.
45739         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto.
45741 2008-02-04  Darin Adler  <darin@apple.com>
45743         Reviewed by Geoff.
45745         - fix <rdar://problem/5715692> REGRESSION (r28570): JavaScript window.scrollTo()
45746           calls no longer accept 'undefined' values
45748         By default, we should accept non-numeric parameters and non-integral numbers for
45749         parameters that expect integers, without throwing exceptions.
45751         While creating the test for this, I ran into a couple minor bugs with the
45752         functions involved, and this patch fixes those too.
45754         Test: fast/dom/non-numeric-values-numeric-parameters.html
45756         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
45757         (WebCore::JSHTMLOptionsCollection::add): Added. This function has unusual behavior
45758         when passed non-integral values for its second parameter, so it needs to be written
45759         by hand. I think that [Custom] is better here than inventing a new keyword.
45761         * bindings/scripts/CodeGeneratorJS.pm: Changed default for "long" and "unsigned long"
45762         to ignore errors rather than failing due to type differences. Also changed a couple
45763         functions to use hashes.
45765         * css/CSSStyleSheet.h:
45766         (WebCore::CSSStyleSheet::removeRule): Remove overload of removeRule without a second
45767         parameters. While we do allow this from JavaScript, it's not a true optional parameter,
45768         but rather just a case of "you can omit parameters and they are treated as undefined"
45769         combined with "undefined turns into 0 when passed to a function that takes an integer".
45770         * css/CSSStyleSheet.idl: Removed [Optional] on the index parameter for removeRule.
45771         This is not truly an optional parameter.
45773         * dom/ProgressEvent.cpp:
45774         (WebCore::ProgressEvent::initProgressEvent): Updated this function to match other
45775         DOM event init functions -- important to do nothing if this is called on the an
45776         already-dispatched event and we need to respect the bubble and cancelable arguments.
45777         Also removed initProgressEventNS. We don't support namespaced events, and if we add
45778         support, it should be across all event classes, not just ProgressEvent.
45779         * dom/ProgressEvent.h: Removed initProgressEventNS.
45780         * dom/ProgressEvent.idl: Ditto.
45782         * dom/Range.cpp:
45783         (WebCore::Range::createContextualFragment): Added a check for 0. This can happen
45784         if the passed-in start container is a node that's not an HTML element and also
45785         does not have a parent.
45787         * html/HTMLOptionsCollection.idl: Added the [Custom] attribute to add, since the
45788         rules for processing its parameters are unusual.
45790         * page/DOMSelection.cpp: Removed the version of setPosition that has only
45791         one parameter. The offset is not really optional.
45792         * page/DOMSelection.h: Ditto.
45793         * page/DOMSelection.idl: Removed the [Optional] keyword for the second parameter of
45794         setPosition. It's not a true optional parameter (see discussion of removeRule above).
45796         * page/DOMWindow.cpp:
45797         (WebCore::DOMWindow::adjustWindowRect): Simplified logic for constraining the X
45798         and Y coordinates, in a way that makes them work even when the window coordinates
45799         are infinite. Also strengthened the assertion.
45801 2008-02-04  Alp Toker  <alp@atoker.com>
45803         Rubber-stamped by Mark Rowe.
45805         Remove all trailing whitespace in the GTK+ port and related
45806         components.
45808         * GNUmakefile.am:
45809         * page/gtk/DragControllerGtk.cpp:
45810         (WebCore::DragController::dragOperation):
45811         (WebCore::DragController::maxDragImageSize):
45812         * page/gtk/EventHandlerGtk.cpp:
45813         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
45814         (WebCore::EventHandler::createDraggingClipboard):
45815         * page/gtk/FrameGtk.cpp:
45816         (WebCore::Frame::dragImageForSelection):
45817         * platform/graphics/cairo/AffineTransformCairo.cpp:
45818         (WebCore::AffineTransform::mapRect):
45819         (WebCore::AffineTransform::isIdentity):
45820         (WebCore::AffineTransform::operator== ):
45821         * platform/graphics/cairo/GraphicsContextCairo.cpp:
45822         (WebCore::GraphicsContext::drawLine):
45823         * platform/graphics/cairo/ImageBufferCairo.cpp:
45824         * platform/graphics/cairo/ImageCairo.cpp:
45825         * platform/graphics/cairo/ImageSourceCairo.cpp:
45826         (WebCore::createDecoder):
45827         * platform/graphics/gtk/FontCacheGtk.cpp:
45828         * platform/graphics/gtk/FontGtk.cpp:
45829         * platform/graphics/gtk/FontPlatformData.h:
45830         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
45831         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
45832         * platform/graphics/gtk/IconGtk.cpp:
45833         * platform/graphics/gtk/ImageGtk.cpp:
45834         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
45835         * platform/gtk/ClipboardGtk.h:
45836         * platform/gtk/ContextMenuItemGtk.cpp:
45837         (WebCore::ContextMenuItem::createNativeMenuItem):
45838         * platform/gtk/CursorGtk.cpp:
45839         * platform/gtk/DragDataGtk.cpp:
45840         * platform/gtk/DragImageGtk.cpp:
45841         (WebCore::createDragImageIconForCachedImage):
45842         * platform/gtk/FileChooserGtk.cpp:
45843         (WebCore::stringByAdoptingFileSystemRepresentation):
45844         * platform/gtk/FileSystemGtk.cpp:
45845         (WebCore::fileExists):
45846         (WebCore::deleteFile):
45847         (WebCore::deleteEmptyDirectory):
45848         * platform/gtk/KeyEventGtk.cpp:
45849         * platform/gtk/KeyboardCodes.h:
45850         * platform/gtk/LocalizedStringsGtk.cpp:
45851         (WebCore::inputElementAltText):
45852         (WebCore::resetButtonDefaultLabel):
45853         (WebCore::fileButtonChooseFileLabel):
45854         (WebCore::fileButtonNoFileSelectedLabel):
45855         (WebCore::contextMenuItemTagOpenImageInNewWindow):
45856         * platform/gtk/MIMETypeRegistryGtk.cpp:
45857         * platform/gtk/MouseEventGtk.cpp:
45858         * platform/gtk/PasteboardGtk.cpp:
45859         (WebCore::PasteboardSelectionData::markup):
45860         (WebCore::Pasteboard::writeSelection):
45861         * platform/gtk/PasteboardHelper.h:
45862         * platform/gtk/PlatformScreenGtk.cpp:
45863         (WebCore::screenDepth):
45864         (WebCore::screenIsMonochrome):
45865         (WebCore::screenRect):
45866         (WebCore::screenAvailableRect):
45867         * platform/gtk/PlatformScrollBar.h:
45868         * platform/gtk/PlatformScrollBarGtk.cpp:
45869         (PlatformScrollbar::PlatformScrollbar):
45870         (PlatformScrollbar::updateThumbPosition):
45871         * platform/gtk/PopupMenuGtk.cpp:
45872         (WebCore::PopupMenu::updateFromElement):
45873         * platform/gtk/RenderThemeGtk.h:
45874         * platform/gtk/ScrollViewGtk.cpp:
45875         (WebCore::ScrollView::scrollBy):
45876         (WebCore::ScrollView::addChild):
45877         (WebCore::ScrollView::updateScrollbars):
45878         (WebCore::ScrollView::windowToContents):
45879         (WebCore::ScrollView::contentsToWindow):
45880         (WebCore::ScrollView::scrollbarUnderMouse):
45881         * platform/gtk/SearchPopupMenuGtk.cpp:
45882         * platform/gtk/SharedTimerGtk.cpp:
45883         * platform/gtk/SystemTimeLinux.cpp:
45884         (WebCore::currentTime):
45885         * platform/gtk/TemporaryLinkStubs.cpp:
45886         (PlugInInfoStore::pluginNameForMIMEType):
45887         * platform/gtk/ThreadingGtk.cpp:
45888         (WebCore::establishIdentifierForThread):
45889         (WebCore::threadForIdentifier):
45890         (WebCore::clearThreadForIdentifier):
45891         (WebCore::ThreadCondition::ThreadCondition):
45892         * platform/gtk/WheelEventGtk.cpp:
45893         * platform/gtk/WidgetGtk.cpp:
45894         * platform/network/curl/ResourceHandleCurl.cpp:
45895         * platform/network/curl/ResourceHandleManager.cpp:
45896         (WebCore::ResourceHandleManager::setupPOST):
45897         * platform/network/curl/ResourceHandleManager.h:
45898         * platform/network/curl/ResourceRequest.h:
45899         (WebCore::ResourceRequest::ResourceRequest):
45900         * platform/network/curl/ResourceResponse.h:
45902 2008-02-03  Christian Dywan  <christian@imendio.com>
45904         Reviewed by Alp Toker.
45906         http://bugs.webkit.org/show_bug.cgi?id=17046
45907         [GTK] Context menu fixes and customisation suport
45909         Provide standard GTK+ context menu items where appropriate.
45911         Note that this change makes direct use of WebKit from WebCore which is
45912         against WebKit/GTK+ guidelines. The ContextMenu abstraction should be
45913         fixed at some point.
45915         * page/ContextMenuController.cpp:
45916         (WebCore::ContextMenuController::contextMenuItemSelected):
45917         * platform/ContextMenu.cpp:
45918         (WebCore::createAndAppendInputMethodsSubMenu):
45919         (WebCore::insertControlCharacter):
45920         (WebCore::createAndAppendUnicodeSubMenu):
45921         (WebCore::ContextMenu::populate):
45922         (ContextMenu::checkOrEnableIfNeeded):
45923         * platform/ContextMenuItem.h:
45924         * platform/LocalizedStrings.h:
45925         * platform/gtk/ContextMenuItemGtk.cpp:
45926         (WebCore::gtkStockIDFromContextMenuAction):
45927         * platform/gtk/LocalizedStringsGtk.cpp:
45928         (WebCore::gtkStockLabel):
45929         (WebCore::contextMenuItemTagCopy):
45930         (WebCore::contextMenuItemTagDelete):
45931         (WebCore::contextMenuItemTagSelectAll):
45932         (WebCore::contextMenuItemTagUnicode):
45933         (WebCore::contextMenuItemTagInputMethods):
45934         (WebCore::contextMenuItemTagGoBack):
45935         (WebCore::contextMenuItemTagGoForward):
45936         (WebCore::contextMenuItemTagStop):
45937         (WebCore::contextMenuItemTagCut):
45938         (WebCore::contextMenuItemTagPaste):
45939         (WebCore::contextMenuItemTagBold):
45940         (WebCore::contextMenuItemTagItalic):
45941         (WebCore::contextMenuItemTagUnderline):
45943 2008-02-03  Oliver Hunt  <oliver@apple.com>
45945         Reviewed by Maciej.
45947         Bug 17169: Support transform on Canvas
45949         Nice and simple patch as the cross-platform code to apply
45950         a transform was already there.
45952         Tests: fast/canvas/canvas-transform-identity.html
45953                fast/canvas/canvas-transform-infinity.html
45954                fast/canvas/canvas-transform-multiply.html
45955                fast/canvas/canvas-transform-nan.html
45956                fast/canvas/canvas-transform-skewed.html
45958         * html/CanvasRenderingContext2D.cpp:
45959         (WebCore::CanvasRenderingContext2D::transform):
45960         * html/CanvasRenderingContext2D.h:
45961         * html/CanvasRenderingContext2D.idl:
45963 2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
45965         Reviewed by Oliver.
45967         Fix mistake in SVGImageElement, breaking "Dock" example of carto.net
45968         It was comparing against the wrong attribute names in svgAttributeChanged().
45970         Added testcase: svg/custom/js-update-image.svg
45972         * svg/SVGImageElement.cpp:
45973         (WebCore::SVGImageElement::svgAttributeChanged):
45975 2008-02-03  Eric Seidel  <eric@webkit.org>
45977         Reviewed by darin.
45979         Acid3 expects textNode.localName === null
45980         http://bugs.webkit.org/show_bug.cgi?id=17060
45982         Test: fast/dom/Node/initial-values.html
45984         * dom/Comment.cpp: remove localName implementation
45985         * dom/Comment.h:
45986         * dom/Node.cpp: return nullAtom instead of emptyAtom
45987         * dom/Text.cpp: remove localName implementation
45988         * dom/Text.h:
45990 2008-02-03  Eric Seidel  <eric@webkit.org>
45992         Reviewed by darin.
45994         Make createElementNS and createAttributeNS follow the (vague) DOM Core 2 spec
45995         by throwing exceptions for more types of invalid qualified names.
45996         http://bugs.webkit.org/show_bug.cgi?id=16833
45998         Tests: fast/dom/Document/createAttributeNS-namespace-err.html
45999                fast/dom/Document/createElementNS-namespace-err.html
46001         * dom/Document.cpp:
46002         (WebCore::Document::createElement):
46003         (WebCore::hasNamespaceError):
46004         (WebCore::Document::createElementNS):
46005         (WebCore::Document::createAttributeNS):
46006         * dom/Document.idl:
46008 2008-02-03  Nikolas Zimmermann  <zimmermann@kde.org>
46010         Reviewed by Eric.
46012         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15394
46014         Dramatically improve dynamic update performance in DOM / SVG DOM.
46016         The notifyAttributeChange() sledgehammer is gone now. It was implemented on quite a lot of
46017         SVG*Element classes and blindly reacted on any property change caused by DOM / SVG DOM
46018         by rebuilding style/renderer etc. without actually checking what changed. SVG used a hack
46019         for years that attributeChanged() called notifyAttributeChange() - which results in poor
46020         scripting performance and/or dynamic creation/modification of elements using SVG DOM.
46022         Properly implement childrenChanged / attributeChanged in SVG with some derivation from the HTML code.
46023         Our SVG* element classes implement "svgAttributeChanged(const QualifiedName&)" instead of
46024         "attributeChanged(Attribute*...)" to be able to unify DOM / SVG DOM updates. SVG DOM classes
46025         are aware of the attribute name they belong to. So when using "rectElement.transform.baseVal.getItem(0).setRotate(45)"
46026         SVG DOM updates the <rect> element by calling svgAttributeChanged(SVGNames::transformAttr) on the corresponding
46027         SVGRectElement. So we're now able to handle fast dynamic updates in a unified way - leading to less bugs.
46029         HTML dynamic updates vs. SVG dynamic updates:
46031         HTML:
46032             1) setAttribute("foo", "bar") -> attributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
46033             2) someObject.foo = "bar" -> HTML code maps to setAttribute calls, ends up taking the same route as 1)
46034             3) someObject.style.foo = "bar" -> setChanged -> recalcStyle (possible relayout)
46036         SVG:
46037             1) setAttribute("foo", "bar") -> attributeChanged -> svgAttributeChanged -> parseMappedAttribute -> setChanged/setNeedsLayout
46038             2) same, currently most functions are not yet converted to this new system! (most noticeable in SVGMarkerElement::setOrientToAngle)    
46039             3) same
46040             4) someRectElement.x.baseVal.value = 100 -> svgAttributeChanged -> setChanged/setNeedsLayout (special SVG DOM updating)
46041         
46042         The new SVG DOM updating concept 4) uses the same updating logic as 1) and 2), so we're actually modelling the HTML way.
46043         SVG handles calling setChanged/setNeedsLayout in svgAttributeChanged, unlike HTML which uses parseMappedAttribute for that.
46045         Only updated all elements necessary to let us pass layout tests w/o regressions. Need to crawl through
46046         all SVG*Element classes and implement svgAttributeChanged / childrenChanged anywhere needed in a follow-up patch.
46048         * bindings/js/JSSVGPODTypeWrapper.h:
46049         (WebCore::JSSVGPODTypeWrapperCreatorReadWrite::commitChange):
46050         (WebCore::JSSVGPODTypeWrapperCreatorReadOnly::commitChange):
46051         (WebCore::JSSVGPODTypeWrapperCreatorForList::JSSVGPODTypeWrapperCreatorForList):
46052         (WebCore::JSSVGPODTypeWrapperCreatorForList::operator PODType):
46053         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
46054         * bindings/js/JSSVGPathSegListCustom.cpp:
46055         (WebCore::JSSVGPathSegList::clear):
46056         (WebCore::JSSVGPathSegList::initialize):
46057         (WebCore::JSSVGPathSegList::insertItemBefore):
46058         (WebCore::JSSVGPathSegList::replaceItem):
46059         (WebCore::JSSVGPathSegList::removeItem):
46060         (WebCore::JSSVGPathSegList::appendItem):
46061         * bindings/js/JSSVGPointListCustom.cpp:
46062         (WebCore::JSSVGPointList::clear):
46063         (WebCore::JSSVGPointList::initialize):
46064         (WebCore::JSSVGPointList::getItem):
46065         (WebCore::JSSVGPointList::insertItemBefore):
46066         (WebCore::JSSVGPointList::replaceItem):
46067         (WebCore::JSSVGPointList::removeItem):
46068         (WebCore::JSSVGPointList::appendItem):
46069         * bindings/js/JSSVGTransformListCustom.cpp:
46070         (WebCore::JSSVGTransformList::clear):
46071         (WebCore::JSSVGTransformList::initialize):
46072         (WebCore::JSSVGTransformList::getItem):
46073         (WebCore::JSSVGTransformList::insertItemBefore):
46074         (WebCore::JSSVGTransformList::replaceItem):
46075         (WebCore::JSSVGTransformList::removeItem):
46076         (WebCore::JSSVGTransformList::appendItem):
46077         * bindings/scripts/CodeGeneratorJS.pm:
46078         * rendering/RenderSVGGradientStop.cpp:
46079         (WebCore::RenderSVGGradientStop::setStyle):
46080         * rendering/RenderSVGGradientStop.h:
46081         * svg/SVGAElement.cpp:
46082         (WebCore::SVGAElement::defaultEventHandler):
46083         * svg/SVGAElement.h:
46084         * svg/SVGAngle.cpp:
46085         * svg/SVGAngle.h:
46086         (WebCore::SVGAngle::associatedAttributeName):
46087         * svg/SVGAnimatedTemplate.h:
46088         (WebCore::SVGAnimatedTemplate::SVGAnimatedTemplate):
46089         (WebCore::SVGAnimatedTemplate::wrapperCache):
46090         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
46091         (WebCore::lookupOrCreateWrapper):
46092         * svg/SVGAnimationElement.cpp:
46093         (WebCore::SVGAnimationElement::parseBeginOrEndValue):
46094         * svg/SVGAnimationElement.h:
46095         * svg/SVGCircleElement.cpp:
46096         (WebCore::SVGCircleElement::svgAttributeChanged):
46097         * svg/SVGCircleElement.h:
46098         * svg/SVGClipPathElement.cpp:
46099         (WebCore::SVGClipPathElement::svgAttributeChanged):
46100         (WebCore::SVGClipPathElement::childrenChanged):
46101         (WebCore::SVGClipPathElement::canvasResource):
46102         * svg/SVGClipPathElement.h:
46103         (WebCore::SVGClipPathElement::isValid):
46104         (WebCore::SVGClipPathElement::rendererIsNeeded):
46105         * svg/SVGComponentTransferFunctionElement.cpp:
46106         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
46107         * svg/SVGComponentTransferFunctionElement.h:
46108         * svg/SVGCursorElement.cpp:
46109         * svg/SVGElement.cpp:
46110         (WebCore::SVGElement::insertedIntoDocument):
46111         (WebCore::SVGElement::attributeChanged):
46112         * svg/SVGElement.h:
46113         (WebCore::SVGElement::svgAttributeChanged):
46114         * svg/SVGEllipseElement.cpp:
46115         (WebCore::SVGEllipseElement::svgAttributeChanged):
46116         * svg/SVGEllipseElement.h:
46117         * svg/SVGExternalResourcesRequired.cpp:
46118         (WebCore::SVGExternalResourcesRequired::isKnownAttribute):
46119         * svg/SVGExternalResourcesRequired.h:
46120         * svg/SVGFEBlendElement.cpp:
46121         * svg/SVGFEColorMatrixElement.cpp:
46122         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
46123         * svg/SVGFEComponentTransferElement.cpp:
46124         * svg/SVGFECompositeElement.cpp:
46125         * svg/SVGFEDiffuseLightingElement.cpp:
46126         * svg/SVGFEDisplacementMapElement.cpp:
46127         * svg/SVGFEFloodElement.cpp:
46128         * svg/SVGFEGaussianBlurElement.cpp:
46129         * svg/SVGFEImageElement.cpp:
46130         * svg/SVGFELightElement.cpp:
46131         * svg/SVGFEMergeNodeElement.cpp:
46132         * svg/SVGFEOffsetElement.cpp:
46133         * svg/SVGFESpecularLightingElement.cpp:
46134         * svg/SVGFETileElement.cpp:
46135         * svg/SVGFETurbulenceElement.cpp:
46136         * svg/SVGFilterElement.cpp:
46137         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
46138         * svg/SVGFitToViewBox.cpp:
46139         (WebCore::SVGFitToViewBox::isKnownAttribute):
46140         * svg/SVGFitToViewBox.h:
46141         * svg/SVGForeignObjectElement.cpp:
46142         * svg/SVGGElement.cpp:
46143         (WebCore::SVGGElement::svgAttributeChanged):
46144         (WebCore::SVGGElement::childrenChanged):
46145         * svg/SVGGElement.h:
46146         * svg/SVGGradientElement.cpp:
46147         (WebCore::SVGGradientElement::SVGGradientElement):
46148         (WebCore::SVGGradientElement::svgAttributeChanged):
46149         (WebCore::SVGGradientElement::childrenChanged):
46150         (WebCore::SVGGradientElement::buildStops):
46151         * svg/SVGGradientElement.h:
46152         * svg/SVGImageElement.cpp:
46153         (WebCore::SVGImageElement::parseMappedAttribute):
46154         (WebCore::SVGImageElement::svgAttributeChanged):
46155         * svg/SVGImageElement.h:
46156         * svg/SVGLangSpace.cpp:
46157         (WebCore::SVGLangSpace::isKnownAttribute):
46158         * svg/SVGLangSpace.h:
46159         * svg/SVGLengthList.cpp:
46160         (WebCore::SVGLengthList::SVGLengthList):
46161         * svg/SVGLengthList.h:
46162         * svg/SVGLineElement.cpp:
46163         (WebCore::SVGLineElement::svgAttributeChanged):
46164         * svg/SVGLineElement.h:
46165         * svg/SVGLinearGradientElement.cpp:
46166         (WebCore::SVGLinearGradientElement::svgAttributeChanged):
46167         * svg/SVGLinearGradientElement.h:
46168         * svg/SVGList.h:
46169         (WebCore::SVGList::SVGList):
46170         (WebCore::SVGList::associatedAttributeName):
46171         (WebCore::SVGPODList::SVGPODList):
46172         * svg/SVGMarkerElement.cpp:
46173         (WebCore::SVGMarkerElement::svgAttributeChanged):
46174         (WebCore::SVGMarkerElement::childrenChanged):
46175         * svg/SVGMarkerElement.h:
46176         * svg/SVGMaskElement.cpp:
46177         (WebCore::SVGMaskElement::svgAttributeChanged):
46178         (WebCore::SVGMaskElement::childrenChanged):
46179         * svg/SVGMaskElement.h:
46180         * svg/SVGNumberList.cpp:
46181         (WebCore::SVGNumberList::SVGNumberList):
46182         * svg/SVGNumberList.h:
46183         * svg/SVGPathElement.cpp:
46184         (WebCore::SVGPathElement::svgAttributeChanged):
46185         (WebCore::SVGPathElement::pathSegList):
46186         * svg/SVGPathElement.h:
46187         * svg/SVGPathSeg.h:
46188         (WebCore::SVGPathSeg::associatedAttributeName):
46189         * svg/SVGPathSegList.cpp:
46190         (WebCore::SVGPathSegList::SVGPathSegList):
46191         * svg/SVGPathSegList.h:
46192         * svg/SVGPatternElement.cpp:
46193         (WebCore::SVGPatternElement::SVGPatternElement):
46194         (WebCore::SVGPatternElement::svgAttributeChanged):
46195         (WebCore::SVGPatternElement::childrenChanged):
46196         * svg/SVGPatternElement.h:
46197         * svg/SVGPointList.cpp:
46198         (WebCore::SVGPointList::SVGPointList):
46199         * svg/SVGPointList.h:
46200         * svg/SVGPolyElement.cpp:
46201         (WebCore::SVGPolyElement::SVGPolyElement):
46202         (WebCore::SVGPolyElement::points):
46203         (WebCore::SVGPolyElement::parseMappedAttribute):
46204         (WebCore::SVGPolyElement::svgAttributeChanged):
46205         * svg/SVGPolyElement.h:
46206         * svg/SVGPolygonElement.cpp:
46207         * svg/SVGPolygonElement.h:
46208         * svg/SVGPolylineElement.cpp:
46209         * svg/SVGPolylineElement.h:
46210         * svg/SVGPreserveAspectRatio.cpp:
46211         * svg/SVGPreserveAspectRatio.h:
46212         (WebCore::SVGPreserveAspectRatio::associatedAttributeName):
46213         * svg/SVGRadialGradientElement.cpp:
46214         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
46215         * svg/SVGRadialGradientElement.h:
46216         * svg/SVGRectElement.cpp:
46217         (WebCore::SVGRectElement::svgAttributeChanged):
46218         * svg/SVGRectElement.h:
46219         * svg/SVGSVGElement.cpp:
46220         (WebCore::SVGSVGElement::parseMappedAttribute):
46221         (WebCore::SVGSVGElement::svgAttributeChanged):
46222         * svg/SVGSVGElement.h:
46223         * svg/SVGStopElement.cpp:
46224         (WebCore::SVGStopElement::parseMappedAttribute):
46225         (WebCore::SVGStopElement::createRenderer):
46226         * svg/SVGStopElement.h:
46227         * svg/SVGStringList.cpp:
46228         (WebCore::SVGStringList::SVGStringList):
46229         * svg/SVGStringList.h:
46230         * svg/SVGStylable.cpp:
46231         * svg/SVGStylable.h:
46232         * svg/SVGStyledElement.cpp:
46233         (WebCore::SVGStyledElement::isKnownAttribute):
46234         (WebCore::SVGStyledElement::svgAttributeChanged):
46235         (WebCore::SVGStyledElement::invalidateResourcesInAncestorChain):
46236         (WebCore::SVGStyledElement::childrenChanged):
46237         * svg/SVGStyledElement.h:
46238         * svg/SVGStyledLocatableElement.cpp:
46239         * svg/SVGStyledLocatableElement.h:
46240         * svg/SVGStyledTransformableElement.cpp:
46241         (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
46242         (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
46243         (WebCore::SVGStyledTransformableElement::isKnownAttribute):
46244         * svg/SVGStyledTransformableElement.h:
46245         * svg/SVGTests.cpp:
46246         (WebCore::SVGTests::requiredFeatures):
46247         (WebCore::SVGTests::requiredExtensions):
46248         (WebCore::SVGTests::systemLanguage):
46249         (WebCore::SVGTests::isKnownAttribute):
46250         * svg/SVGTests.h:
46251         * svg/SVGTextContentElement.cpp:
46252         * svg/SVGTextElement.cpp:
46253         (WebCore::SVGTextElement::SVGTextElement):
46254         * svg/SVGTextElement.h:
46255         * svg/SVGTextPathElement.cpp:
46256         * svg/SVGTextPathElement.h:
46257         * svg/SVGTextPositioningElement.cpp:
46258         (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
46259         * svg/SVGTextPositioningElement.h:
46260         * svg/SVGTransformList.cpp:
46261         (SVGTransformList::SVGTransformList):
46262         * svg/SVGTransformList.h:
46263         * svg/SVGTransformable.cpp:
46264         (WebCore::SVGTransformable::isKnownAttribute):
46265         * svg/SVGTransformable.h:
46266         * svg/SVGURIReference.cpp:
46267         (WebCore::SVGURIReference::isKnownAttribute):
46268         * svg/SVGURIReference.h:
46269         * svg/SVGUseElement.cpp:
46270         (WebCore::SVGUseElement::insertedIntoDocument):
46271         (WebCore::SVGUseElement::svgAttributeChanged):
46272         (WebCore::SVGUseElement::childrenChanged):
46273         (WebCore::SVGUseElement::buildPendingResource):
46274         * svg/SVGUseElement.h:
46275         * svg/SVGViewElement.cpp:
46276         (WebCore::SVGViewElement::SVGViewElement):
46277         (WebCore::SVGViewElement::viewTarget):
46278         (WebCore::SVGViewElement::parseMappedAttribute):
46279         * svg/SVGViewElement.h:
46280         * svg/SVGViewSpec.cpp:
46281         (WebCore::SVGViewSpec::SVGViewSpec):
46282         * svg/SVGViewSpec.h:
46283         * svg/SVGZoomAndPan.cpp:
46284         (WebCore::SVGZoomAndPan::isKnownAttribute):
46285         * svg/SVGZoomAndPan.h:
46286         * svg/graphics/SVGResource.cpp:
46287         (WebCore::SVGResource::invalidate):
46288         (WebCore::SVGResource::invalidateClients):
46289         (WebCore::SVGResource::addClient):
46290         * svg/graphics/SVGResource.h:
46291         * svg/graphics/SVGResourceMasker.cpp:
46292         (WebCore::SVGResourceMasker::invalidate):
46293         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
46294         (WebCore::SVGPaintServerGradient::invalidate):
46295         * svg/graphics/filters/SVGFEImage.cpp:
46296         (WebCore::SVGFEImage::imageChanged):
46298 2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>
46300         Build fix for last wx commit (a couple things were not committed).
46302         * platform/ScrollView.h:
46303         * platform/Widget.h:
46305 2008-02-03  Kevin Ollivier  <kevino@theolliviers.com>
46307         Clean up overlooked coding guideline issues from last commit.
46309         * platform/wx/ScrollViewWx.cpp:
46310         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
46311         (WebCore::ScrollView::update):
46312         (WebCore::ScrollView::scrollBy):
46313         (WebCore::ScrollView::resizeContents):
46314         (WebCore::ScrollView::adjustScrollbars):
46315         (WebCore::ScrollView::setScrollbarsMode):
46316         (WebCore::ScrollView::setHScrollbarMode):
46317         (WebCore::ScrollView::setVScrollbarMode):
46318         (WebCore::ScrollView::suppressScrollbars):
46319         * platform/wx/WidgetWx.cpp:
46320         (WebCore::Widget::setCursor):
46322 2008-02-03  Kevin Watters  <kevinwatters@gmail.com>
46324         Reviewed by Kevin Ollivier.
46326         * platform/wx/RenderThemeWx.cpp:
46327         (WebCore::RenderThemeWx::paintButton):
46328         * platform/wx/ScrollViewWx.cpp:
46329         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
46330         (WebCore::ScrollView::ScrollViewPrivate::bindEvents):
46331         (WebCore::ScrollView::ScrollViewPrivate::OnMouseWheelEvents):
46332         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
46333         (WebCore::ScrollView::ScrollView):
46334         (WebCore::ScrollView::setNativeWindow):
46335         (WebCore::ScrollView::updateContents):
46336         (WebCore::ScrollView::update):
46337         (WebCore::ScrollView::visibleWidth):
46338         (WebCore::ScrollView::visibleHeight):
46339         (WebCore::ScrollView::setContentsPos):
46340         (WebCore::ScrollView::scrollBy):
46341         (WebCore::ScrollView::resizeContents):
46342         (WebCore::ScrollView::contentsX):
46343         (WebCore::ScrollView::contentsY):
46344         (WebCore::ScrollView::contentsWidth):
46345         (WebCore::ScrollView::contentsHeight):
46346         (WebCore::ScrollView::AdjustScrollbars):
46347         (WebCore::ScrollView::setScrollbarsMode):
46348         (WebCore::ScrollView::setHScrollbarMode):
46349         (WebCore::ScrollView::setVScrollbarMode):
46350         (WebCore::ScrollView::suppressScrollbars):
46351         (WebCore::ScrollView::inWindow):
46352         (WebCore::ScrollView::wheelEvent):
46353         (WebCore::ScrollView::addChild):
46354         (WebCore::ScrollView::removeChild):
46355         (WebCore::ScrollView::children):
46356         (WebCore::ScrollView::scrollRectIntoViewRecursively):
46357         (WebCore::ScrollView::scrollbarUnderMouse):
46358         * platform/wx/WidgetWx.cpp:
46359         (WebCore::Widget::Widget):
46360         (WebCore::Widget::~Widget):
46361         (WebCore::Widget::nativeWindow):
46362         (WebCore::Widget::setNativeWindow):
46364 2008-02-02  David Hyatt  <hyatt@apple.com>
46366         Fix for bug 5468, support CSS3 :only-child and :only-of-type selectors.
46368         Reviewed by olliej
46370         Added fast/css/only-child-pseudo-class.html, fast/css/only-of-type-pseudo-class.html
46372         * css/CSSSelector.cpp:
46373         (WebCore::CSSSelector::extractPseudoType):
46374         * css/CSSSelector.h:
46375         (WebCore::CSSSelector::):
46376         * css/CSSStyleSelector.cpp:
46377         (WebCore::CSSStyleSelector::checkOneSelector):
46379 2008-02-02  Darin Adler  <darin@apple.com>
46381         Reviewed by Geoff Garen.
46383         PLT speedup related to <rdar://problem/5659272> REGRESSION: PLT .4%
46384         slower due to r28884 (global variable symbol table optimization)
46386         * history/CachedPage.cpp:
46387         (WebCore::CachedPage::CachedPage): Removed saveSymbolTable call.
46388         (WebCore::CachedPage::restore): Removed restoreSymbolTable call.
46389         (WebCore::CachedPage::clear): Removed clear of m_windowSymbolTable.
46391         * history/CachedPage.h: Removed m_windowSymbolTable, since save/restoreLocalStorage
46392         now takes care of the symbol table. Also removed many unnecessary includes.
46394 2008-02-02  Tony Chang  <idealisms@gmail.com>
46396         Reviewed by eseidel.
46398         Add an include for for <objidl.h> which isn't included
46399         by default with WIN32_LEAN_AND_MEAN.
46400         * platform/graphics/FontCache.h:
46402 2008-02-02  Kevin Watters  <kevin@dotsyntax.com>
46404         Reviewed by Kevin Ollivier.
46406         wxFont is reference counted and meant to be used as as a value
46407         object; when using wxFont*, ref-counting was not happening properly
46408         and the font object would be destroyed while still in use.
46410         Also, fix memory leak in wx's FrameData::clear() method.
46412         * platform/graphics/SimpleFontData.h:
46413         (WebCore::SimpleFontData::getWxFont):
46414         * platform/graphics/wx/FontPlatformData.h:
46415         (WebCore::FontPlatformData::):
46416         (WebCore::FontPlatformData::FontPlatformData):
46417         (WebCore::FontPlatformData::font):
46418         (WebCore::FontPlatformData::hash):
46419         (WebCore::FontPlatformData::operator==):
46420         (WebCore::FontPlatformData::computeHash):
46421         * platform/graphics/wx/FontPlatformDataWx.cpp:
46422         (WebCore::fontFamilyToWxFontFamily):
46423         (WebCore::FontPlatformData::FontPlatformData):
46424         (WebCore::FontPlatformData::~FontPlatformData):
46425         * platform/graphics/wx/FontWx.cpp:
46426         (WebCore::Font::drawGlyphs):
46427         * platform/graphics/wx/SimpleFontDataWx.cpp:
46428         (WebCore::SimpleFontData::platformInit):
46429         (WebCore::SimpleFontData::determinePitch):
46430         (WebCore::SimpleFontData::platformWidthForGlyph):
46432 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
46434         Reviewed by Adam Roben.
46436         On MSW, the wx port internally uses callbacks for wxTimer, so the
46437         wx port suffers from the same crash problem that was fixed
46438         in r28500 for the Windows port. For now, use the SharedTimerWin.cpp
46439         impl. for wx too on MSW, until a version of wx is released that
46440         fixes the issue by reworking wxTimer.
46442         * page/Page.h:
46443         * platform/win/SharedTimerWin.cpp:
46444         (WebCore::TimerWindowWndProc):
46445         * webcore-wx.bkl:
46447 2008-02-02  Mark Rowe  <mrowe@apple.com>
46449         Qt build fix.
46451         * platform/qt/ThreadingQt.cpp: Fix typo.
46453 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
46455         Blind build fix for Qt port. Add Threading.h include.
46457         * platform/qt/ThreadingQt.cpp:
46459 2008-02-02  Kevin Ollivier  <kevino@theolliviers.com>
46461         wx build fix - add missing include file.
46463         * platform/wx/ThreadingWx.cpp:
46465 2008-02-02  David Hyatt  <hyatt@apple.com>
46467         Fix for bug 4812. Support last-child and last-of-type CSS3 selectors.  Brings Acid3 score up to 68/100.
46469         Reviewed by olliej
46471         Added fast/css/last-child-pseudo-class.html, fast/css/last-of-type-pseudo-class.html
46473         * css/CSSGrammar.y:
46474         * css/CSSSelector.cpp:
46475         (WebCore::CSSSelector::extractPseudoType):
46476         * css/CSSSelector.h:
46477         (WebCore::CSSSelector::):
46478         * css/CSSStyleSelector.cpp:
46479         (WebCore::CSSStyleSelector::checkOneSelector):
46481 2008-02-01  David Hyatt  <hyatt@apple.com>
46483         Make :first-child and :first-of-type properly dynamic when the DOM changes.  Brings the Acid3 score up
46484         to 66/100.
46486         Reviewed by olliej
46488         Added fast/css/first-child-pseudo-class.html, fast/css/first-of-type-pseudo-class.html, fast/css/empty-body-test.html
46490         * css/CSSGrammar.y:
46491         * css/CSSStyleSelector.cpp:
46492         (WebCore::CSSStyleSelector::checkOneSelector):
46493         * dom/Element.cpp:
46494         (WebCore::Element::recalcStyle):
46495         (WebCore::Element::childrenChanged):
46496         * rendering/RenderStyle.cpp:
46497         (WebCore::RenderStyle::RenderStyle):
46498         * rendering/RenderStyle.h:
46499         (WebCore::RenderStyle::childrenAffectedByFirstChildRules):
46500         (WebCore::RenderStyle::setChildrenAffectedByFirstChildRules):
46501         (WebCore::RenderStyle::childrenAffectedByLastChildRules):
46502         (WebCore::RenderStyle::setChildrenAffectedByLastChildRules):
46503         (WebCore::RenderStyle::childrenAffectedByPositionalRules):
46504         (WebCore::RenderStyle::setChildrenAffectedByPositionalRules):
46505         (WebCore::RenderStyle::firstChildState):
46506         (WebCore::RenderStyle::setFirstChildState):
46507         (WebCore::RenderStyle::lastChildState):
46508         (WebCore::RenderStyle::setLastChildState):
46510 2008-02-02  Dan Bernstein  <mitz@apple.com>
46512         Reviewed by Oliver Hunt.
46514         - fix <rdar://problem/5720637> Missing characters in right-to-left complex text where different fonts are used in the same run
46516         * platform/graphics/win/UniscribeController.cpp:
46517         (WebCore::UniscribeController::advance): Fixed an off-by-1 error in the
46518         start offset of sub-runs of RTL runs. Changed to update
46519         m_currentCharacter to the first character of the sub-run before calling
46520         itemizeShapeAndPlace. In RTL runs, m_currentCharacter decreases as
46521         sub-runs are processed from left to right.
46522         (WebCore::UniscribeController::itemizeShapeAndPlace): Removed the
46523         updating of m_currentCharacter because advance() does it now.
46525 2008-02-01  Brady Eidson  <beidson@apple.com>
46527         Reviewed by Darin's rubberstamp
46529         Move the SecurityOriginHash out into a separate header as it will soon be used in different places
46531         * WebCore.xcodeproj/project.pbxproj:
46532         * platform/SecurityOriginHash.h: Added.
46533         (WebCore::SecurityOriginHash::hash):
46534         (WebCore::SecurityOriginHash::equal):
46535         (WebCore::SecurityOriginTraits::deletedValue):
46536         (WebCore::SecurityOriginTraits::emptyValue):
46537         * storage/DatabaseTracker.cpp:
46539 2008-02-01  Darin Adler  <darin@apple.com>
46541         Reviewed by Tim.
46543         - fixed mistake in the JSLock fix that caused an assertion every time
46545         * bindings/js/JSCustomSQLTransactionCallback.cpp:
46546         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback): Added JSLock.
46547         (WebCore::unprotectOnMainThread): Ditto.
46549 2008-02-01  Anders Carlsson  <andersca@apple.com>
46551         Reviewed by Antti and Darin.
46553         Change Text::createWithLengthLimit to take a UChar pointer instead of a string. This
46554         lets us avoid making a copy of the buffer in TextDocument.cpp.
46555         
46556         * dom/Text.cpp:
46557         (WebCore::Text::createWithLengthLimit):
46558         * dom/Text.h:
46559         * html/HTMLParser.cpp:
46560         (WebCore::HTMLParser::parseToken):
46561         * loader/TextDocument.cpp:
46562         (WebCore::TextTokenizer::write):
46564 2008-02-01  Darin Adler  <darin@apple.com>
46566         Reviewed by Adam.
46568         * platform/network/mac/ResourceHandleMac.mm:
46569         (WebCore::ResourceHandle::loadsBlocked): Fix grammar and word typo.
46571 2008-02-01  Darin Adler  <darin@apple.com>
46573         Reviewed by Adam.
46575         - fix <rdar://problem/4527931> showModalDialog calls from onload functions fail (Aspect)
46577         No automated regression test because showModalDialog doesn't work in DumpRenderTree.
46579         * platform/network/mac/ResourceHandleMac.mm:
46580         (WebCore::CallbackGuard::CallbackGuard): Added.
46581         (WebCore::CallbackGuard::~CallbackGuard): Added.
46582         (WebCore::ResourceHandle::supportsBufferedData): Simplified to take advantage of how
46583         static initialization works in C++.
46584         (WebCore::ResourceHandle::loadsBlocked): Always return false on Leopard. The problem in
46585         NSURLConnection that created the need to block loads is fixed in Leoaprd. This is the
46586         bug fix.
46587         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
46588         Use CallbackGuard instead of directly incrementing the count; allows us to omit the code
46589         entirely on Leopard.
46590         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
46591         Ditto.
46592         (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
46593         Ditto.
46594         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
46595         Ditto.
46596         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
46597         Ditto.
46598         (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
46599         Ditto.
46600         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
46601         Ditto.
46602         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
46603         Ditto.
46604         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
46605         Ditto. Fixes a problem where this could leave inNSURLConnectionCallback set
46606         permanently in one of the code paths; this would break showModalDialog from that
46607         point on. This problem doesn't affect Safari.
46609 2008-02-01  Darin Adler  <darin@apple.com>
46611         * platform/network/mac/ResourceHandleMac.mm:
46612         (WebCore::ResourceHandle::loadsBlocked): Roll out accidentally checked in file.
46614 2008-02-01  Darin Adler  <darin@apple.com>
46616         Reviewed by Geoff and Brady.
46618         - fix <rdar://problem/5680469> Each database worker thread takes a JSLock,
46619           which slows down all JavaScript execution until the thread terminates
46621         * bindings/js/JSCustomSQLTransactionCallback.cpp:
46622         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
46623         Explicitly gcProtect, since we aren't using ProtectedPtr any more.
46624         (WebCore::unprotectOnMainThread): Added.
46625         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
46626         Use unprotectOnMainThread rather than doing a gcUnprotect here.
46627         * bindings/js/JSCustomSQLTransactionCallback.h: Changed m_callback from
46628         a ProtectedPtr to a plain old JSObject*; we gcProtect by hand now.
46630         * loader/icon/IconDatabase.cpp:
46631         (WebCore::IconDatabase::notifyPendingLoadDecisionsOnMainThread):
46632         Renamed. Changed to takea a void* with the icon database pointer.
46633         (WebCore::IconDatabase::notifyPendingLoadDecisions): Renamed.
46634         (WebCore::IconDatabase::performURLImport): Updated name, and pass the
46635         icon database pointer in.
46636         * loader/icon/IconDatabase.h: Renamed and added void* parameter.
46638         * platform/Threading.h: Changed callOnMainThread to take a function with a
46639         single parameter rather than a function with no parameters. Added a typedef.
46641         * platform/gtk/ThreadingGtk.cpp:
46642         (WebCore::callFunctionOnMainThread): Changed to use a structure with both
46643         a function pointer and a context pointer, and delete it after calling.
46644         (WebCore::callOnMainThread): Changed to create the structure with both
46645         the function and context pointer.
46647         * platform/mac/Threading.mm:
46648         (-[WebCoreFunctionWrapper initWithFunction:context:]): Added context.
46649         (-[WebCoreFunctionWrapper invoke]): Updated to do both function and context.
46650         Renamed from _call.
46651         (WebCore::callOnMainThread): Updated to take both function and context.
46653         * platform/qt/ThreadingQt.cpp:
46654         (WebCore::PerformFunctionEvent::PerformFunctionEvent): Added context.
46655         (WebCore::PerformFunctionEvent::invoke): Added. Calls function with context pointer.
46656         (WebCore::MainThreadInvoker::event): Changed to call invoke.
46657         (WebCore::callOnMainThread): Updated to take both function and context.
46659         * platform/win/ThreadingWin.cpp: Added FunctionWithContext.
46660         (WebCore::callFunctionsOnMainThread): Changed to pass call function with context.
46661         (WebCore::callOnMainThread): Updated to queue both function and context.
46663         * platform/wx/ThreadingWx.cpp:
46664         (WebCore::callOnMainThread): Updated to take both function and context.
46666         * storage/Database.cpp:
46667         (WebCore::Database::scheduleTransactionCallback): Pass 0 for context.
46668         (WebCore::Database::deliverAllPendingCallbacks): Changed to take ignored context pointer.
46669         * storage/Database.h: Added void* parameter to deliverAllPendingCallbacks.
46671         * storage/DatabaseTracker.cpp:
46672         (WebCore::DatabaseTracker::scheduleForNotification): Pass 0 for context.
46673         (WebCore::DatabaseTracker::notifyDatabasesChanged): Changed to take ignored context pointer.
46674         * storage/DatabaseTracker.h: Added void* parameter to notifyDatabasesChanged.
46676 2008-02-01  Jon Honeycutt  <jhoneycutt@apple.com>
46678         Rubber-stamped by Ollie.
46680         * plugins/win/PluginPackageWin.cpp:
46681         (WebCore::PluginPackageWin::load): Fix two function pointers
46683 2008-02-01  Geoffrey Garen  <ggaren@apple.com>
46685         Reviewed by John Sullivan, Oliver Hunt.
46687         Fixed <rdar://problem/5688039> REGRESSION (r29428): Weather widget
46688         fails to load due to reliance on "var location" quirk
46689         
46690         Added a Dashboard quirk.
46692         * bindings/js/kjs_window.cpp:
46693         (KJS::Window::put): In DB backwards compatibility mode, make assignment
46694         to window.location in top-level windows shadow the DOM location API
46695         instead of performing a navigation. This makes a reasonable amount of
46696         sense, because widgets can't navigate their top-level frames, anyway.
46698 2008-02-01  David Hyatt  <hyatt@apple.com>
46700         Fix for bug 11387, CSS3 :empty selector is not dynamic.
46702         Add support for dynamically updating elements whose style is affected by :empty when the child count changes.
46704         Reviewed by olliej, mitzpettel
46706         fast/css/empty-pseudo-class.html
46708         * css/CSSStyleSelector.cpp:
46709         (WebCore::CSSStyleSelector::locateSharedStyle):
46710         (WebCore::CSSStyleSelector::checkOneSelector):
46711         * dom/Element.cpp:
46712         (WebCore::Element::childrenChanged):
46713         * dom/Element.h:
46714         * rendering/RenderStyle.h:
46715         (WebCore::RenderStyle::affectedByEmpty):
46716         (WebCore::RenderStyle::emptyState):
46717         (WebCore::RenderStyle::setEmptyState):
46719 2008-02-01  Dan Bernstein  <mitz@apple.com>
46721         Reviewed by Darin Adler.
46723         - switch line breaking from using Carbon Unicode Utilities to using ICU
46724           on Leopard
46725           <http://bugs.webkit.org/show_bug.cgi?id=4628>
46727         fast/text/international/thai-line-breaks.html results do not change.
46729         * rendering/break_lines.cpp:
46730         (WebCore::nextBreakablePosition): Changed to use Carbon only on Tiger.
46732 2008-02-01  Rodney Dawes  <dobey@wayofthemonkey.com>
46734         Reviewed by Darin.
46736         Update npfunctions.h to export the proper function signatures for UNIX and add
46737         the appropriate #if around the Windows versions
46739         * plugins/npfunctions.h:
46741 2008-02-01  Eric Seidel  <eric@webkit.org>
46743         Reviewed by Oliver.
46745         Add getSVGDocument to frame and iframe.
46747         Test: svg/custom/frame-getSVGDocument.html
46749         * html/HTMLEmbedElement.cpp:
46750         * html/HTMLEmbedElement.h:
46751         * html/HTMLFrameElement.idl:
46752         * html/HTMLFrameOwnerElement.cpp:
46753         (WebCore::HTMLFrameOwnerElement::getSVGDocument):
46754         * html/HTMLFrameOwnerElement.h:
46755         * html/HTMLIFrameElement.idl:
46756         * html/HTMLObjectElement.cpp:
46757         * html/HTMLObjectElement.h:
46759 2008-01-30  Eric Seidel  <eric@webkit.org>
46761         Reviewed by darin.
46763         Beat CSSParser with the RefPtr stick.  Hopefully squashing any leaks in the process.
46764         (Deploy RefPtr and PassRefPtr throughout CSSParser)
46765         http://bugs.webkit.org/show_bug.cgi?id=17108
46767         No functional changes, thus no tests.
46769         * css/CSSParser.cpp:
46770         (WebCore::CSSParser::parseColor):
46771         (WebCore::CSSParser::parseValue):
46772         (WebCore::CSSParser::addBackgroundValue):
46773         (WebCore::CSSParser::parseBackgroundShorthand):
46774         (WebCore::CSSParser::addTransitionValue):
46775         (WebCore::CSSParser::parseTransitionShorthand):
46776         (WebCore::CSSParser::parseBackgroundPosition):
46777         (WebCore::CSSParser::parseBackgroundProperty):
46778         (WebCore::CSSParser::parseTransitionProperty):
46779         (WebCore::CSSParser::parseFontFaceSrc):
46780         (WebCore::ShadowParseContext::ShadowParseContext):
46781         (WebCore::CSSParser::parseShadow):
46782         (WebCore::BorderImageParseContext::BorderImageParseContext):
46783         (WebCore::BorderImageParseContext::commitBorderImage):
46784         * css/CSSParser.h:
46785         * css/SVGCSSParser.cpp:
46786         (WebCore::CSSParser::parseSVGValue):
46788 2008-01-31  Oliver Hunt  <oliver@apple.com>
46790         RS=Brady.
46792         Add platform/Locker.h to vcproj
46794         * WebCore.vcproj/WebCore.vcproj:
46796 2008-01-31  Brady Eidson  <beidson@apple.com>
46798         Build fix
46800         * WebCore.xcodeproj/project.pbxproj: Header -> WebKit
46802 2008-01-31  Brady Eidson  <beidson@apple.com>
46804         Reviewed by Maciej
46806         Abstracted the concept of a "Locker" as upcoming work will rely on it.
46808         * platform/Locker.h: Added.  Template class to "lock()" and "unlock()" some arbitrary object
46809         (WebCore::Locker::Locker): Lock the object
46810         (WebCore::Locker::~Locker): Unlock it
46811         * platform/Threading.h: `class MutexLocker` is now `typedef Locker<Mutex>`
46812         * WebCore.xcodeproj/project.pbxproj:
46814 2008-01-31  Kevin McCullough  <kmccullough@apple.com>
46816         <rdar://problem/5716912> REGRESSION (r29816): Can't navigate back to
46817         Gmail Inbox from Gmail Compose page
46818         Rolling out the change that caused the regression.
46820         * WebCore.base.exp:
46821         * bindings/js/JSHTMLDocumentCustom.cpp:
46822         (WebCore::JSHTMLDocument::open):
46823         * dom/DOMImplementation.cpp:
46824         (WebCore::DOMImplementation::createHTMLDocument):
46825         * dom/Document.cpp:
46826         (WebCore::Document::recalcStyle):
46827         (WebCore::Document::open):
46828         (WebCore::Document::write):
46829         (WebCore::Document::clear):
46830         * dom/Document.h:
46831         * history/HistoryItem.cpp:
46832         (WebCore::HistoryItem::HistoryItem):
46833         * history/HistoryItem.h:
46834         * loader/FrameLoader.cpp:
46835         (WebCore::FrameLoader::didExplicitOpen):
46836         (WebCore::FrameLoader::load):
46837         (WebCore::FrameLoader::reloadAllowingStaleData):
46838         (WebCore::FrameLoader::reload):
46839         (WebCore::FrameLoader::tokenizerProcessedData):
46840         (WebCore::FrameLoader::post):
46841         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
46842         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
46843         (WebCore::FrameLoader::loadItem):
46844         * loader/FrameLoader.h:
46845         * platform/text/CharacterNames.h:
46846         * xml/DOMParser.cpp:
46847         (WebCore::DOMParser::parseFromString):
46848         * xml/XMLHttpRequest.cpp:
46849         (WebCore::XMLHttpRequest::getResponseXML):
46850         * xml/XSLTProcessor.cpp:
46851         (WebCore::XSLTProcessor::createDocumentFromSource):
46853 2008-01-31  Matt Lilek  <webkit@mattlilek.com>
46855         Reviewed by Tim Hatcher.
46857         Bug 14960: Cannot copy text in Web Inspector Network panel
46858         http://bugs.webkit.org/show_bug.cgi?id=14960
46860         * page/inspector/inspector.css:
46862 2008-01-31  Matt Lilek  <webkit@mattlilek.com>
46864         Reviewed by Adam Roben.
46866         Bug 14514: Add full URL view on mouseOver in the network page
46867         http://bugs.webkit.org/show_bug.cgi?id=14514
46868         <rdar://problem/5712841>
46870         * page/inspector/inspector.js:
46872 2008-01-31  Alp Toker  <alp@atoker.com>
46874         Rubber-stamped Adam Roben.
46876         http://bugs.webkit.org/show_bug.cgi?id=17006
46877         [GTK] Header path should be webkit/webkit.h
46879         Move the GTK+ API sources as needed and update the build systems.
46881         * GNUmakefile.am:
46882         * WebCore.pro:
46884 2008-01-31  Sam Weinig  <sam@webkit.org>
46886         Reviewed by Geoff Garen.
46888         No need to get the prototype just to compare compare property names.
46890         * bindings/js/JSHistoryCustom.cpp:
46891         (WebCore::JSHistory::customGetOwnPropertySlot):
46893 2008-01-31  Sam Weinig  <sam@webkit.org>
46895         Fix non-mac builds.
46897         * GNUmakefile.am:
46898         * WebCore.pro:
46899         * WebCore.vcproj/WebCore.vcproj:
46900         * WebCoreSources.bkl:
46902 2008-01-31  David Hyatt  <hyatt@apple.com>
46904         Fix for bug 17101.
46906         List items need to ignore the line box shrinking quirk, since IE and Firefox both do.
46908         Reviewed by Eric
46910         fast/lists/list-item-line-height.html
46912         * rendering/InlineFlowBox.h:
46913         (WebCore::InlineFlowBox::InlineFlowBox):
46915 2008-01-31  Samuel Weinig  <sam@webkit.org>
46917         Reviewed by Darin Adler.
46919         Fix for <rdar://problem/5708993> Mutability of the History object
46921         - Don't allow cross-domain get access to any of the history objects properties
46922           except the back(), forward() and go() methods.
46923         - Don't allow cross-domain put access to any of the history objects properties.
46924         - Don't allow cross-domain enumeration of the History or Location objects.
46926         Tests: http/tests/security/cross-frame-access-history-get-override.html
46927                http/tests/security/cross-frame-access-history-get.html
46928                http/tests/security/cross-frame-access-history-put.html
46930         * WebCore.xcodeproj/project.pbxproj:
46931         * bindings/js/JSDOMWindowCustom.cpp: Remove unnessary KJS::'s
46932         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
46933         (WebCore::JSDOMWindow::customPut):
46934         (WebCore::JSDOMWindow::getPropertyNames): Moved implementation from KJS::Window now that the declaration is autogenerated
46935         using the new CustomGetPropertyNames.
46936         (WebCore::JSDOMWindow::postMessage):
46938         * bindings/js/JSHistoryCustom.cpp: Added.
46939         (WebCore::allowsAccessFromFrame):
46940         (WebCore::JSHistory::customGetOwnPropertySlot): Only allow getting the declared functions back(), forward() and go() from cross-domain.
46941         Deny all other gets.
46942         (WebCore::JSHistory::customPut): Don't allow putting cross-domain.
46943         (WebCore::JSHistory::getPropertyNames): Don't allow enumeration cross-domain.
46945         * bindings/js/JSLocation.cpp:
46946         (WebCore::allowsAccessFromFrame):
46947         (WebCore::JSLocation::getPropertyNames): Don't allow enumeration cross-domain.
46948         * bindings/js/JSLocation.h:
46950         * bindings/js/kjs_window.cpp:
46951         * bindings/js/kjs_window.h:
46953         * bindings/scripts/CodeGeneratorJS.pm:
46954         Add support for new CustomGetPropertNames extended attribute and changed the logic of CustomPutFunction
46955         to create an overrided put() function even if no read-write properties exist.
46957         * page/DOMWindow.idl: Added CustomGetPropertNames
46958         * page/History.idl: Added CustomGetPropertNames
46960 2008-01-30  Justin Garcia  <justin.garcia@apple.com>
46962         Reviewed by Darin Adler.
46963         
46964         <rdar://problem/5708115> REGRESSION: Words selected with a double click and copied won't paste into Mail
46966         * page/mac/WebCoreFrameBridge.h: Re-exposed smartInsertForString:, it's used by a WebKit method used by Mail.
46968 2008-01-31  Adam Roben  <aroben@apple.com>
46970         Add line box drawing code to InspectorController::drawNodeHighlight
46972         This makes drawNodeHighlight a complete replacement for the painting
46973         code in WebKit/mac/WebNodeHighlightView.mm, and also brings line box
46974         rects to Windows for the first time.
46976         Reviewed by Darin.
46978         * dom/Node.h: Changed isSVGElement to always exist, but to only be
46979         virtual when ENABLE(SVG) is true. This way you can always call
46980         node->isSVGElement() without checking ENABLE(SVG).
46981         * page/InspectorController.cpp:
46982         (WebCore::InspectorController::drawNodeHighlight): Ported line box
46983         rect code from the Mac implementation in WebNodeHighlightView.mm.
46985 2008-01-31  Adam Roben  <aroben@apple.com>
46987         Put more knowledge about the node highlight in WebCore
46989         InspectorController now calculates the overlay rect and node rect when
46990         drawing the node highlight instead of having them be passed in.
46991         InspectorController now holds onto the highlighted node so that it can
46992         determine these rects.
46994         Once all platforms are calling down to drawNodeHighlight instead of
46995         drawing the highlight themselves, we can change
46996         InspectorClient::highlight(Node*) to something like
46997         InspectorClient::updateAndShowHighlight().
46999         This also fixes Bug 14264: Node highlight makes it impossible to
47000         scroll the page
47001         <http://bugs.webkit.org/show_bug.cgi?id=14264>
47002         <rdar://5712788>
47004         Reviewed by Darin.
47006         * page/InspectorController.cpp:
47007         (WebCore::InspectorController::highlight): Store the node for use in
47008         drawNodeHighlight.
47009         (WebCore::InspectorController::drawNodeHighlight): Changed to be a
47010         const instance method. Now calculates the overlay rect and node rect
47011         instead of having them passed in.
47012         * page/InspectorController.h:
47014 2008-01-31  Adam Roben  <aroben@apple.com>
47016         Add node highlight drawing code to InspectorController
47018         The code came from WebKit/win/WebNodeHighlight.cpp. It's not quite as
47019         complete as the Mac implementation (in particular, it doesn't handle
47020         line-box rects), but it's a start.
47022         Reviewed by Darin.
47024         * page/InspectorController.cpp:
47025         (WebCore::InspectorController::drawNodeHighlight): Added.
47026         * page/InspectorController.h:
47028 2008-01-31  Dan Bernstein  <mitz@apple.com>
47030         Reviewed by Dave Hyatt.
47032         - fix http://bugs.webkit.org/show_bug.cgi?id=17107
47033           <rdar://problem/5716722> REGRESSION (r29834): Article text on redhat.com magazine site appears to be painting twice
47035         Test: fast/block/float/intruding-painted-twice.html
47037         * rendering/RenderBlock.cpp:
47038         (WebCore::RenderBlock::layoutBlock): Pass 'false' for the new
47039         makeChildPaintOtherFloats parameter to addOverhangingFloats() because at
47040         this point we are only taking away floats from the child.
47041         (WebCore::RenderBlock::layoutBlockChildren): Pass 'true' for the new
47042         makeChildPaintOtherFloats parameter to addOverhangingFloats() iff the
47043         child was not laid out again. Only in that case, it may have overhanging
47044         floats that it does not paint because they used to be overhanging from
47045         the parent, but now they are not.
47046         (WebCore::RenderBlock::addOverhangingFloats): Refined the conditions for
47047         making the child paint the float: require that the float be a descendant
47048         of the child (the other case is when it intrudes into the child from
47049         another sibling) and that it does not have a layer (in which case it
47050         paints itself). In addition, do the check only if the caller passed
47051         'true' for the makeChildPaintOtherFloats parameter.
47052         * rendering/RenderBlock.h:
47054 2008-01-30  Dan Bernstein  <mitz@apple.com>
47056         Reviewed by Sam Weinig.
47058         - change the interpretation of unicode-range values in "from-to" form
47059           to include the "to" character.
47061         Test: fast/css/font-face-unicode-range.html
47063         * css/CSSParser.cpp:
47064         (WebCore::CSSParser::parseFontFaceUnicodeRange):
47065         * css/CSSSegmentedFontFace.cpp:
47066         (WebCore::CSSSegmentedFontFace::overlayRange):
47067         * platform/graphics/GlyphPageTreeNode.cpp:
47068         (WebCore::GlyphPageTreeNode::initializePage):
47069         * platform/graphics/SegmentedFontData.cpp:
47070         (WebCore::SegmentedFontData::fontDataForCharacter):
47071         (WebCore::SegmentedFontData::containsCharacters):
47073 2008-01-30  Dan Bernstein  <mitz@apple.com>
47075         Reviewed by Darin Adler.
47077         - prune references to custom fonts' SimpleFontData from the glyph page
47078           tree when they are destroyed
47080         * css/CSSFontFaceSource.cpp:
47081         (WebCore::CSSFontFaceSource::pruneTable):
47083 2008-01-30  Darin Adler  <darin@apple.com>
47085         Reviewed by Tim Hatcher.
47087         New fix for <rdar://problem/5688428> Reproducible assertion failure
47088         in SQLTransaction::performNextStep() (16876)
47090         Fixes a deadlock that was happening for all Database use. All
47091         storage layout tests pass.
47093         * storage/Database.cpp:
47094         (WebCore::CurrentThreadSetter::CurrentThreadSetter): New helper class
47095         to set the current thread and zero it on destruction.
47096         (WebCore::CurrentThreadSetter::~CurrentThreadSetter): Set threadIdentifierStorage to 0.
47097         (WebCore::Database::Database): Set m_transactionStepThread to 0.
47098         (WebCore::Database::performTransactionStep): Set m_transactionStepThread to currentThread().
47099         (WebCore::Database::scheduleTransactionCallback): Assert m_transactionStepThread
47100         is currentThread().
47101         * storage/Database.h: Add m_transactionStepThread for debug builds
47102         to track which thread performTransactionStep() was called on. 
47104 2008-01-30  Timothy Hatcher  <timothy@apple.com>
47106         Reviewed by Darin Adler.
47108         ASSERTION FAILED: JSLock::lockCount() > 0 when opening the
47109         Web Inspector on a page with a Database.
47111         Fix the ASSERT by taking a JSLock before calling toJS().
47113         * page/InspectorController.cpp:
47114         (WebCore::InspectorController::addDatabaseScriptResource):
47116 2008-01-30  Beth Dakin  <bdakin@apple.com>
47118         Reviewed by Darin.
47120         Fix for <rdar://problem/5598609> CrashTracer: [USER] 626 crashes in 
47121         Safari at com.apple.WebCore: WebCore::FrameView::needsFullRepaint 
47122         const + 6
47124         The real problem here is tracked by rdar://5598072, which is that 
47125         frames can lose sync between their view and their document when a 
47126         non-HTML view is loaded (such as bookmarks view or a PDF). That can 
47127         cause this crash if the layout timer fires before things have fixed 
47128         themselves. This fix turns an ASSERT in FrameView::layout() into an 
47129         early return to cause graceful failure until the root of the 
47130         problem is addressed. 
47132         * page/FrameView.cpp:
47133         (WebCore::FrameView::layout):
47135 2008-01-30  Justin Garcia  <justin.garcia@apple.com>
47137         Reviewed by Darin Adler.
47139         <rdar://problem/5700414> REGRESSION (Adama-ToT): Selecting "Header 1" style in Leopard Server wiki inserts newline
47141         * editing/FormatBlockCommand.cpp:
47142         (WebCore::FormatBlockCommand::doApply): If the selected paragraph was empty,
47143         we may still need to call moveParagrah to remove the line break that holds that
47144         paragraph open because the new block of the requested type needs to to replace it.
47146 2008-01-30  Timothy Hatcher  <timothy@apple.com>
47148         Reviewed by Darin Adler.
47150         <rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)
47152         Revised fix to use the globalCallbackMutex() mutex and hold the mutex
47153         for the entire function scope.
47155         * storage/Database.cpp:
47156         (WebCore::Database::performTransactionStep):
47158 2008-01-30  Timothy Hatcher  <timothy@apple.com>
47160         Reviewed by Adam Roben.
47162         Make ResourceTreeElement inherit the prototype of TreeElement.
47164         * page/inspector/Resource.js:
47166 2008-01-30  Sam Weinig  <sam@webkit.org>
47168         Reviewed by Adam Roben.
47170         Don't include SecurityOrigin.h in Document.h so that we can avoid massive
47171         recompilation when changing the SecurityOrigin.
47173         * dom/Document.cpp:
47174         (WebCore::Document::setSecurityOrigin):
47175         * dom/Document.h:
47177 2008-01-30  Tim Omernick  <timo@apple.com>
47179         Reviewed by Tim Hatcher and Brady.
47181         <rdar://problem/5688428> Reproducible assertion failure in SQLTransaction::performNextStep() (16876)
47183         * storage/Database.cpp:
47184         (WebCore::Database::performTransactionStep): Do not perform the next transaction if
47185         a global callback is already scheduled.
47187 2008-01-30  Jon Honeycutt  <jhoneycutt@apple.com>
47189         Reviewed by Darin.
47191         <rdar://problem/5669317> Crash closing pop up window with Real Player
47192         content
47194         Some RealPlayer versions hang on unload. To prevent this hang, don't
47195         unload versions since the last known unloadable version.
47196         <rdar://problem/5713147> tracks revisiting this when the bug in
47197         RealPlayer is fixed and we can again unload the plug-in.
47199         * plugins/win/PluginPackageWin.cpp:
47200         (WebCore::PluginPackageWin::compareFileVersion): Compare the plug-in's
47201         file version to the passed file version, returning -1, 0, or 1 if the
47202         plug-in's version is less than, equal to, or greater than the version
47203         passed.
47204         (WebCore::PluginPackageWin::isPluginBlacklisted): Use
47205         compareFileVersion()
47206         * plugins/win/PluginPackageWin.h:
47207         * plugins/win/PluginViewWin.cpp:
47208         (WebCore::PluginViewWin::determineQuirks): If the plug-in version is
47209         newer than the last-known unloadable version, add the DontUnloadPlugin
47210         quirk
47212 2008-01-29  Mark Rowe  <mrowe@apple.com>
47214         Reviewed by Tim Hatcher.
47216         Look for headers relative to NEXT_ROOT so that build-root picks up the WebCoreSQLite
47217         version of sqlite3.h rather than the older system version.
47219         * Configurations/Base.xcconfig:
47221 2008-01-29  Dan Bernstein  <mitz@apple.com>
47223         - build fix
47225         * loader/CachedFont.cpp:
47226         (WebCore::CachedFont::CachedFont):
47228 2008-01-29  Mark Rowe  <mrowe@apple.com>
47230         Reviewed by Brady Eidson.
47232         Add the correct directory to the header search paths in Production builds.
47234         * Configurations/Base.xcconfig:
47236 2008-01-29  Dan Bernstein  <mitz@apple.com>
47238         Reviewed by Dave Hyatt.
47240         - fix http://bugs.webkit.org/show_bug.cgi?id=17085
47241           <rdar://problem/5714136> REGRESSION (r29839): All remote fonts are treated as SVG fonts
47243         Test: fast/css/font-face-remote.html
47245         Added an isSVGFont method to CachedFont and use it to decide how to
47246         process the font data. Currently whether the data is SVG is determined
47247         based on the format property in the @font-face rule, but in the future
47248         the MIME type or other metadata may be used when the format is
47249         unspecified.
47251         * css/CSSFontFaceSource.cpp:
47252         (WebCore::CSSFontFaceSource::getFontData): Changed to parse the data as
47253         SVG only if the CachedFont is an SVG font.
47254         * css/CSSFontSelector.cpp:
47255         (WebCore::CSSFontSelector::addFontFaceRule): Mark the CachedFont as an
47256         SVG font based on format.
47257         * loader/CachedFont.cpp:
47258         (WebCore::CachedFont::CachedFont): Initialize m_isSVGFont to false.
47259         (WebCore::CachedFont::ensureCustomFontData):
47260         (WebCore::CachedFont::ensureSVGFontData):
47261         (WebCore::CachedFont::getSVGFontById):
47262         * loader/CachedFont.h:
47263         (WebCore::CachedFont::isSVGFont): Added.
47264         (WebCore::CachedFont::setSVGFont): Added.
47266 2008-01-29  Antti Koivisto  <antti@apple.com>
47268         Some comment cleanup.
47270         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
47271         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
47272         * platform/graphics/win/QTMovieWin.cpp:
47273         (QTMovieWin::load):
47274         (QTMovieWin::disableUnsupportedTracks):
47276 2008-01-29  Adele Peterson  <adele@apple.com>
47278         Reviewed by Antti.
47280         Fix for <rdar://5683527> media/{audio,video|-controls-rendering.html failing
47281         
47282         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::isControlStyled):
47283         Don't treat all media controls as styled.  This causes builds with an old version of SafariTheme to have different metrics for these controls.
47285 2008-01-29  Dan Bernstein  <mitz@apple.com>
47287         Reviewed by Dave Hyatt.
47289         - make Font instances cache their primary font
47291         * WebCore.base.exp:
47292         * platform/graphics/Font.cpp:
47293         (WebCore::Font::Font):
47294         (WebCore::Font::operator=):
47295         (WebCore::Font::cachePrimaryFont):
47296         (WebCore::Font::update):
47297         * platform/graphics/Font.h:
47298         (WebCore::Font::primaryFont):
47300 2008-01-29  Dan Bernstein  <mitz@apple.com>
47302         - Leopard build fix
47304         * platform/graphics/SimpleFontData.cpp:
47305         (WebCore::SimpleFontData::SimpleFontData):
47307 2008-01-29  Mark Rowe  <mrowe@apple.com>
47309         Reviewed by Tim Hatcher.
47311         <rdar://problem/5600926> WebCore on Tiger must link to its own copy of SQLite 3.4 or newer (so HTML database behavior will be correct).
47313         * Configurations/Base.xcconfig: Update the header search path on Tiger.
47314         * Configurations/DebugRelease.xcconfig: Update the header search path on Tiger.
47315         * Configurations/WebCore.xcconfig: Link against libWebCoreSQLite3.a when building on Tiger.
47316         * WebCore.xcodeproj/project.pbxproj: Update the header search path in Production builds on Tiger.
47318 2008-01-29  Dan Bernstein  <mitz@apple.com>
47320         Reviewed by Adam Roben and Oliver Hunt.
47322         - fix <rdar://problem/5713131> REGRESSION (r29246): Many SVG font tests are failing
47324         * platform/graphics/SimpleFontData.cpp:
47325         (WebCore::SimpleFontData::SimpleFontData): Use double instead of float
47326         for consistent rounding behavior between Mac OS X and Windows.
47328 2008-01-29  Adam Roben  <aroben@apple.com>
47330         Fix <rdar://5713302> Web Inspector on Windows is not using the
47331         localized strings
47333         Reviewed by Steve.
47335         * WebCore.vcproj/WebCore.vcproj: Copy InspectorLocalizedStrings.js to
47336         $WebKitOutputDir.
47337         * page/InspectorController.cpp: Touch this to force the project to
47338         build.
47340 2008-01-29  Eric Seidel  <eric@webkit.org>
47342         Reviewed by Nikolas.
47344         Acid3 after double-attach
47345         http://bugs.webkit.org/show_bug.cgi?id=17058
47346         
47347         I believe SVGTextPathElement::buildPendingResource() was entirely
47348         bogus, removing it did not cause any tests to fail.
47350         Test: svg/custom/textPath-assert.svg
47352         * svg/SVGTextPathElement.cpp:
47353         (WebCore::SVGTextPathElement::insertedIntoDocument): remove buildPendingResource()
47354         * svg/SVGTextPathElement.h:
47356 2008-01-29  Adam Roben  <aroben@apple.com>
47358         Fix Bug 16234: Inspector should support searching for elements by CSS selectors
47360         <http://bugs.webkit.org/show_bugs.cgi?id=16234>
47361         <rdar://5712862>
47363         Reviewed by Tim.
47365         * page/inspector/inspector.js: Use Document.querySelectorAll to search
47366         for elements by CSS selector. Also store a custom property on nodes
47367         being added to the search results to avoid showing the same node more
47368         than once.
47370 2008-01-29  Adam Roben  <aroben@apple.com>
47372         Fix <rdar://5711136> Full-screen Flash on 1up.com is unresponsive
47374         Reviewed by Anders and Darin.
47376         No test possible.
47378         * plugins/win/PluginViewWin.cpp:
47379         (WebCore::PluginViewWin::wndProc): Set/release capture on mouse
47380         down/up, like Firefox does.
47382 2008-01-28  Dan Bernstein  <mitz@apple.com>
47384         Reviewed by Sam Weinig.
47386         - make isSVGFont non-virtual
47388         * platform/graphics/FontData.h:
47389         * platform/graphics/SegmentedFontData.cpp:
47390         * platform/graphics/SegmentedFontData.h:
47391         * platform/graphics/SimpleFontData.h:
47392         (WebCore::SimpleFontData::isSVGFont):
47394 2008-01-28  Dan Bernstein  <mitz@apple.com>
47396         Reviewed by Adam Roben.
47398         - fix <rdar://problem/5700824> Chunky scrolling + scrolling artifacts @ netflix.com/Notebook
47400         * platform/win/ScrollViewWin.cpp:
47401         (WebCore::ScrollView::ScrollViewPrivate::valueChanged): Send the scroll
47402         event before updating the window, thus giving event handlers a chance
47403         to update layout for the new scroll position, eliminating the jitter.
47405 2008-01-28  Adam Roben  <aroben@apple.com>
47407         Fix <rdar://5555260> Gmail doesn't load when a user stylesheet is specified
47409         Reviewed by Darin.
47411         A null value exception was being thrown in Gmail's JS code because a
47412         call to document.write failed. document.write failed because
47413         Document::close had not yet been called. Document::close was not
47414         called because the Document was considered to not be "complete" in
47415         FrameLoader::checkComplete because the user stylesheet was in the
47416         process of loading. The user stylesheet was loading because it had
47417         previously been evicted from the cache and was loading fresh from
47418         disk. It had been evicted from the cache because the calculation of
47419         the expiration date was incorrectly casting/overflowing in
47420         ResourceResponseCFNet.cpp.
47422         We now calculate the expiration date in a way that does not cause us
47423         to overflow a time_t, and we correctly clamp the value to the range of
47424         a time_t. I also made the fix for the last modified date, though that
47425         was not causing any bug I am aware of.
47427         In the long-term it seems like whether or not Document::close is
47428         called should not be dependent upon whether the user stylesheet has
47429         finished loading or not.
47431         * platform/network/cf/ResourceResponseCFNet.cpp:
47432         (WebCore::toTimeT): Added. Converts from CFAbsoluteTime to time_t and
47433         clamps to the range of time_t.
47434         (WebCore::ResourceResponse::doUpdateResourceResponse): Call toTimeT.
47436 2008-01-28  Dan Bernstein  <mitz@apple.com>
47438         Reviewed by Nikolas Zimmermann.
47440         - fix leaks introduced in r29838
47442         * svg/SVGFont.cpp:
47443         (WebCore::floatWidthMissingGlyphCallback):
47444         (WebCore::drawTextMissingGlyphCallback):
47446 2008-01-28  Nikolas Zimmermann  <zimmermann@kde.org>
47448         Reviewed by Eric, Dan & Oliver.
47450         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16980
47452         Support external SVG Fonts, by reusing the custom font handling logic.
47453         This enables us - as first engine - to render HTML pages using SVG Fonts.
47455         Fixes fonts-elem-03-b.svg / fonts-elem-04-b.svg / fonts-elem-07-b.svg
47456         Add new testcase svg-fonts-in-html.html.
47458         * css/CSSFontFaceSource.cpp:
47459         (WebCore::CSSFontFaceSource::getFontData):
47460         * css/CSSFontFaceSource.h:
47461         * css/CSSFontFaceSrcValue.cpp:
47462         (WebCore::CSSFontFaceSrcValue::isSVGFontFaceSrc):
47463         (WebCore::CSSFontFaceSrcValue::isSupportedFormat):
47464         * css/CSSFontFaceSrcValue.h:
47465         * css/CSSFontSelector.cpp:
47466         (WebCore::CSSFontSelector::addFontFaceRule):
47467         * loader/CachedFont.cpp:
47468         (WebCore::CachedFont::~CachedFont):
47469         (WebCore::CachedFont::ensureSVGFontData):
47470         (WebCore::CachedFont::extractFontFromSVGData):
47471         (WebCore::CachedFont::platformDataFromSVGData):
47472         * loader/CachedFont.h:
47473         * platform/graphics/Font.cpp:
47474         (WebCore::Font::offsetForPosition):
47475         * platform/graphics/Font.h:
47476         * svg/SVGFont.cpp:
47477         (WebCore::floatWidthOfSubStringUsingSVGFont):
47478         (WebCore::Font::drawTextUsingSVGFont):
47479         (WebCore::Font::offsetForPositionForTextUsingSVGFont):
47480         * svg/SVGFontFaceElement.cpp:
47481         (WebCore::SVGFontFaceElement::rebuildFontFace):
47482         * svg/SVGFontFaceElement.h:
47483         * svg/SVGFontFaceUriElement.cpp:
47484         (WebCore::SVGFontFaceUriElement::srcValue):
47486 2008-01-28  Dan Bernstein  <mitz@apple.com>
47488         Reviewed by Adam Roben.
47490         - fix svg/W3C-SVG-1.1/fonts-glyph-04-t.svg failure on Windows
47492         The results differed between Mac OS X and Windows because the code was
47493         using a 0-size font, which Mac OS X changes to 12pt.
47495         * svg/SVGFont.cpp:
47496         (WebCore::floatWidthMissingGlyphCallback): Use the font description of
47497         the primary font to initialize the fallback font.
47498         (WebCore::drawTextMissingGlyphCallback): Ditto.
47500 2008-01-28  Eric Seidel  <eric@webkit.org>
47502         Reviewed by Nikolas Zimmermann.
47504         Use class instead of struct to appease MSVC.
47506         * history/HistoryItem.h:
47507         * loader/FrameLoaderClient.h:
47508         * page/InspectorController.h:
47509         * platform/network/ResourceRequestBase.h:
47510         * platform/network/mac/ResourceRequest.h:
47512 2008-01-28  Dan Bernstein  <mitz@apple.com>
47514         Reviewed by Darin Adler.
47516         - fix http://bugs.webkit.org/show_bug.cgi?id=16774
47517           REGRESSION (r27464-r27504) javascript popup menu does not display 'close' button
47519         Test: fast/dynamic/float-no-longer-overhanging.html
47521         * rendering/RenderBlock.cpp:
47522         (WebCore::RenderBlock::addOverhangingFloats): If a child's float turns
47523         out not to be overhanging at this time, ensure that the child paints it.
47525 2008-01-28  Oliver Hunt  <oliver@apple.com>
47527         More wx fixes
47529         * platform/graphics/wx/AffineTransformWx.cpp:
47531 2008-01-28  Oliver Hunt  <oliver@apple.com>
47533         And another Wx build fix
47535         * platform/graphics/wx/AffineTransformWx.cpp:
47536         (WebCore::AffineTransform::mapRect):
47538 2008-01-28  Oliver Hunt  <oliver@apple.com>
47540         Yet another Wx build fix
47542         * platform/graphics/wx/GraphicsContextWx.cpp:
47544 2008-01-28  Oliver Hunt  <oliver@apple.com>
47546         Wx build fix
47548         * platform/graphics/wx/GraphicsContextWx.cpp:
47549         (WebCore::GraphicsContext::getCTM):
47551 2008-01-28  Oliver Hunt  <oliver@apple.com>
47553         Gtk build fix
47555         * platform/graphics/cairo/GraphicsContextCairo.cpp:
47557 2008-01-27  Oliver Hunt  <oliver@apple.com>
47559         Reviewed by Sam Weinig.
47561         Bug 16629: <canvas> does not support isPointInPath()
47563         Relatively trivial change to implement pointInPath and add
47564         it to the bindings.  Most of this patch is the addition of
47565         GraphicsContext::getCTM() by pulling the various platform
47566         implementations from CanvasRenderingContext2D::willDraw
47568         Test: fast/canvas/pointInPath.html
47570         * html/CanvasRenderingContext2D.cpp:
47571         (WebCore::CanvasRenderingContext2D::isPointInPath):
47572         (WebCore::CanvasRenderingContext2D::willDraw):
47573         * html/CanvasRenderingContext2D.h:
47574         * html/CanvasRenderingContext2D.idl:
47575         * platform/graphics/AffineTransform.cpp:
47576         (WebCore::AffineTransform::mapPoint):
47577           Support mapping of FloatRects
47578         * platform/graphics/AffineTransform.h:
47579         * platform/graphics/GraphicsContext.h:
47580         * platform/graphics/cairo/GraphicsContextCairo.cpp:
47581         (WebCore::GraphicsContext::getCTM):
47582         * platform/graphics/cg/GraphicsContextCG.cpp:
47583         (WebCore::GraphicsContext::getCTM):
47584         * platform/graphics/qt/GraphicsContextQt.cpp:
47585         (WebCore::GraphicsContext::getCTM):
47587 2008-01-27  Alexey Proskuryakov  <ap@webkit.org>
47589         Reviewed by Darin.
47591         http://bugs.webkit.org/show_bug.cgi?id=17014
47592         REGRESSION: EUC-CN code A3A0 is mapped to U+E5E5 instead of U+3000
47594         Test: fast/encoding/char-decoding.html
47596         * platform/text/TextCodecICU.cpp:
47597         (WebCore::TextCodecICU::decode): Added a workaround that we used to have in Mac code.
47599         * platform/text/mac/TextCodecMac.cpp:
47600         (WebCore::TextCodecMac::decode): Corrected a comment.
47602 2008-01-27  Alp Toker  <alp@atoker.com>
47604         Reviewed by Mark Rowe.
47606         http://bugs.webkit.org/show_bug.cgi?id=17029
47607         Use of deprecated class function but declares GTK_DISABLE_DEPRECATED
47609         Sync gtkdrawing.h (1.51) and gtk2drawing.c (1.71) from Mozilla
47610         upstream.
47612         Adapt RenderThemeGtk.cpp to track minor changes.
47614         * platform/gtk/RenderThemeGtk.cpp:
47615         (WebCore::gtkTextDirection):
47616         (WebCore::adjustMozStyle):
47617         (WebCore::setMozState):
47618         (WebCore::paintMozWidget):
47619         * platform/gtk/gtk2drawing.c:
47620         (setup_widget_prototype):
47621         (ensure_hpaned_widget):
47622         (ensure_vpaned_widget):
47623         (ensure_toggle_button_widget):
47624         (ensure_combo_box_entry_widget):
47625         (ensure_dropdown_entry_widget):
47626         (moz_gtk_get_dropdown_button):
47627         (ensure_arrow_widget):
47628         (ensure_toolbar_separator_widget):
47629         (ensure_statusbar_widget):
47630         (ensure_frame_widget):
47631         (ensure_menu_separator_widget):
47632         (ensure_tree_view_widget):
47633         (ensure_tree_header_cell_widget):
47634         (ensure_expander_widget):
47635         (ConvertGtkState):
47636         (moz_gtk_button_paint):
47637         (moz_gtk_widget_get_focus):
47638         (moz_gtk_splitter_get_metrics):
47639         (moz_gtk_toggle_paint):
47640         (moz_gtk_scrollbar_button_paint):
47641         (moz_gtk_scrollbar_trough_paint):
47642         (moz_gtk_scrollbar_thumb_paint):
47643         (moz_gtk_spin_paint):
47644         (moz_gtk_spin_updown_paint):
47645         (moz_gtk_scale_paint):
47646         (moz_gtk_scale_thumb_paint):
47647         (moz_gtk_gripper_paint):
47648         (moz_gtk_hpaned_paint):
47649         (moz_gtk_vpaned_paint):
47650         (moz_gtk_entry_paint):
47651         (moz_gtk_treeview_paint):
47652         (moz_gtk_tree_header_cell_paint):
47653         (moz_gtk_tree_header_sort_arrow_paint):
47654         (moz_gtk_treeview_expander_paint):
47655         (moz_gtk_expander_paint):
47656         (moz_gtk_option_menu_paint):
47657         (moz_gtk_downarrow_paint):
47658         (moz_gtk_dropdown_arrow_paint):
47659         (moz_gtk_container_paint):
47660         (moz_gtk_toggle_label_paint):
47661         (moz_gtk_toolbar_paint):
47662         (moz_gtk_toolbar_separator_paint):
47663         (moz_gtk_tooltip_paint):
47664         (moz_gtk_resizer_paint):
47665         (moz_gtk_frame_paint):
47666         (moz_gtk_progressbar_paint):
47667         (moz_gtk_progress_chunk_paint):
47668         (moz_gtk_get_tab_thickness):
47669         (moz_gtk_tab_paint):
47670         (moz_gtk_tabpanels_paint):
47671         (moz_gtk_menu_bar_paint):
47672         (moz_gtk_menu_popup_paint):
47673         (moz_gtk_menu_separator_paint):
47674         (moz_gtk_menu_item_paint):
47675         (moz_gtk_menu_arrow_paint):
47676         (moz_gtk_check_menu_item_paint):
47677         (moz_gtk_window_paint):
47678         (moz_gtk_get_widget_border):
47679         (moz_gtk_get_dropdown_arrow_size):
47680         (moz_gtk_get_toolbar_separator_width):
47681         (moz_gtk_get_expander_size):
47682         (moz_gtk_get_treeview_expander_size):
47683         (moz_gtk_get_menu_separator_height):
47684         (moz_gtk_widget_paint):
47685         (moz_gtk_shutdown):
47686         * platform/gtk/gtkdrawing.h:
47688 2008-01-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
47690         Reviewed by Alp Toker.
47692         http://bugs.webkit.org/show_bug.cgi?id=14811
47693         [gtk] [request] add a webkit_gtk_page_go_to_history_item function
47695         Added webkit/gtk webkitwebbackforwardlist and webkitwebhistoryitem
47697         * WebCore.pro:
47699 2008-01-27  Matt Perry  <mpComplete@gmail.com>
47701         Reviewed and tweaked quite a bit by Darin.
47703         Fix for http://bugs.webkit.org/show_bug.cgi?id=14959
47704         No back forward entry added for pages created in javascript
47706         A new HistoryItem is created for calls to Document::open. Calls to
47707         Document::write save the written data to a SharedBuffer that is also
47708         stored on the HistoryItem. When the user navigates back to a
47709         HistoryItem that has a valid buffer, that data is used for the page
47710         content.
47712         Tests: http/tests/navigation/document-open-adds-history-item.html
47713                http/tests/navigation/document-open-delayed-adds-history-item.html
47714                http/tests/navigation/document-open-new-window-adds-history-item.html
47715                http/tests/navigation/document-open-replace-no-history-item.html
47717         * bindings/js/JSHTMLDocumentCustom.cpp:
47718         (WebCore::JSHTMLDocument::open): Pass a MIME type of either "text/html" or
47719         "text/plain" and a boolean for "replace" in rather than always setting replace
47720         to true and the MIME type to "text/html".
47722         * dom/DOMImplementation.cpp:
47723         (WebCore::DOMImplementation::createHTMLDocument): Pass in MIME type and
47724         replace boolean explicitly, since we don't want to rely on Document::open()'s
47725         default.
47727         * dom/Document.cpp:
47728         (WebCore::Document::open): Correctly determine the "replace" boolean.
47729         Pass along the MIME type, replace boolean, and shared buffer to the
47730         frame loader's didExplicitOpen function.
47731         (WebCore::Document::write): Pass MIME type and replace boolean explicitly
47732         to the open function so we don't do treat it as replace if you write without
47733         an open. Store text written by the script so it can be used later for history.
47734         (WebCore::Document::clear): Drop the text written byt he script.
47736         * dom/Document.h: Added MIME type and replace boolean parameters for open.
47737         Had to keep the old version for the sake of DOM bindings. Added the shared
47738         buffer used for text written by script.
47740         * history/HistoryItem.cpp:
47741         (WebCore::HistoryItem::HistoryItem): Copy m_substituteData.
47742         (WebCore::HistoryItem::substituteData): Added.
47743         (WebCore::HistoryItem::setSubstituteData): Added.
47744         * history/HistoryItem.h: Added m_substituteData, getter, and setter.
47746         * loader/FrameLoader.cpp:
47747         (WebCore::FrameLoader::didExplicitOpen): Added code to create or update the
47748         history item, including attaching the shared buffer that will contain all
47749         the data written by script.
47750         (WebCore::FrameLoader::load): Added a SubstituteData parameter, passed through
47751         when creating the document loader.
47752         (WebCore::FrameLoader::reloadAllowingStaleData): Create the document loader
47753         with the substitute data from the current history item.
47754         (WebCore::FrameLoader::reload): Ditto.
47755         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent): If the current history
47756         item has substitute data, then consider the URL from the substitute data
47757         rather than the one in the history item itself.
47758         (WebCore::FrameLoader::loadItem): Pass in the history item's substitute data.
47759         * loader/FrameLoader.h: Added parameters to load and didExplicitOpen.
47761         * platform/text/CharacterNames.h: Added byteOrderMark, and also added it under
47762         its other official name, zeroWidthNoBreakSpace.
47764         * xml/DOMParser.cpp:
47765         (WebCore::DOMParser::parseFromString): Pass in MIME type and replace boolean
47766         explicitly, since we don't want to rely on Document::open()'s default.
47767         * xml/XMLHttpRequest.cpp:
47768         (WebCore::XMLHttpRequest::getResponseXML): Ditto.
47769         * xml/XSLTProcessor.cpp:
47770         (WebCore::XSLTProcessor::createDocumentFromSource): Ditto.
47772 2008-01-25  Eric Seidel  <eric@webkit.org>
47774         Reviewed by Sam and Darin.
47776         Fire a warning shot in DeprecatedChar's direction.
47778         Remove DeprecatedChar::isSpace() usage, in preparation for removing DeprecatedChar
47779         Remove a needless String -> DeprecatedString -> String conversion for <script> tags
47781         * css/MediaQueryEvaluator.cpp:
47782         (WebCore::parseAspectRatio):
47783         * css/SVGCSSParser.cpp:
47784         * dom/Position.cpp:
47785         (WebCore::Position::leadingWhitespacePosition):
47786         (WebCore::Position::trailingWhitespacePosition):
47787         * editing/TextIterator.cpp:
47788         (WebCore::WordAwareIterator::advance):
47789         * html/HTMLFontElement.cpp:
47790         (WebCore::parseFontSizeNumber):
47791         * html/HTMLTokenizer.cpp:
47792         (WebCore::HTMLTokenizer::scriptHandler):
47793         (WebCore::HTMLTokenizer::scriptExecution):
47794         (WebCore::HTMLTokenizer::notifyFinished):
47795         * html/HTMLTokenizer.h:
47796         * loader/CachedCSSStyleSheet.cpp:
47797         * loader/TextResourceDecoder.cpp:
47798         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
47799         * platform/mac/ClipboardMac.mm:
47800         (WebCore::ClipboardMac::getData):
47801         * platform/network/HTTPParsers.cpp:
47802         (WebCore::extractMIMETypeFromMediaType):
47803         * platform/text/PlatformString.h:
47804         * platform/text/StringImpl.cpp:
47805         (WebCore::parseLength):
47806         (WebCore::StringImpl::stripWhiteSpace):
47807         (WebCore::StringImpl::simplifyWhiteSpace):
47808         (WebCore::StringImpl::toInt):
47809         (WebCore::StringImpl::toInt64):
47810         (WebCore::StringImpl::toUInt64):
47811         * platform/text/StringImpl.h:
47812         (WebCore::isSpaceOrNewline):
47813         * rendering/InlineFlowBox.cpp:
47814         (WebCore::InlineFlowBox::placeBoxesHorizontally):
47815         * rendering/RenderBlock.cpp:
47816         (WebCore::RenderBlock::updateFirstLetter):
47817         * rendering/bidi.cpp:
47818         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
47819         * svg/SVGFontFaceElement.cpp:
47820         (WebCore::mapAttributeToCSSProperty):
47821         * svg/SVGLength.cpp:
47822         * svg/SVGStyledElement.cpp:
47823         (WebCore::mapAttributeToCSSProperty):
47824         * xml/XPathParser.cpp:
47826 2008-01-25  Stephanie Lewis  <slewis@apple.com>
47828         Reviewed by Tim.
47830         expand workaround for <rdar://5695848> to include js files so that the
47831         web inspector can work
47833         * platform/network/cf/ResourceResponseCFNet.cpp:
47834         (WebCore::ResourceResponse::doUpdateResourceResponse):
47836 2008-01-25  Antti Koivisto  <antti@apple.com>
47838         Reviewed by Adele.
47839         
47840         (this is for r29798, my commit failed to include the log)
47841         
47842         Windows fix to match r29773
47843         If the media is playing and the load stalls the playback wont restart by seeking backwards.      
47845         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
47846         (WebCore::MediaPlayerPrivate::updateStates):
47848 2008-01-25  Darin Adler  <darin@apple.com>
47850         Reviewed by Anders.
47852         - fix <rdar://problem/5691072> ASSERTION FAILED: isPrepared() when executing an empty statement
47854         For empty statements, SQLite returns 0 for the statement. We have to cope with that.
47856         Test: storage/empty-statement.html
47858         * platform/sql/SQLiteStatement.cpp:
47859         (WebCore::sqlite3_prepare16_v2): Added overload so we don't need an #if inside the prepare
47860         function.
47861         (WebCore::SQLiteStatement::SQLiteStatement): Initialize the m_isPrepared boolean. Removed
47862         the code to add a null character to the end of the string; instead we will use
47863         charactersWithNullTermination.
47864         (WebCore::SQLiteStatement::prepare): Set m_isPrepared based on the error value returned.
47865         Use the error value from sqlite3_prepare16_v2, not from lastError().
47866         (WebCore::SQLiteStatement::step): Assert that the statement is prepared rather than checking
47867         it at runtime. However, in the case where this is called with m_statement of 0, return
47868         success rather than an error. That's needed for empty statements.
47869         (WebCore::SQLiteStatement::finalize): Use early return idiom for clarity. When there is no
47870         statement, return SQLITE_OK instead of calling lastError().
47871         (WebCore::SQLiteStatement::reset): Use early return idiom for clarity. When there is no
47872         statement, return SQLITE_OK rather than SQLITE_ERROR, but assert the statement is prepared.
47873         (WebCore::SQLiteStatement::executeCommand): Adjust the code that does a prepare so that it
47874         will work for empty statements. Do we really need to allow calling this without prepare?
47875         It would be simpler to just be able to assert that it's prepared.
47876         (WebCore::SQLiteStatement::returnsAtLeastOneResult): Ditto.
47877         (WebCore::SQLiteStatement::bindBlob): Added some assertions. Return SQLITE_ERROR if this
47878         is called with m_statement of 0 (should not be possible without assertions firing first).
47879         Return the actual error code rather than lastError().
47880         (WebCore::SQLiteStatement::bindText): Ditto. Also simplified the special case for empty
47881         strings, since it requires any non-null pointer, not a pointer to a global zero character.
47882         (WebCore::SQLiteStatement::bindInt64): Ditto.
47883         (WebCore::SQLiteStatement::bindDouble): Ditto.
47884         (WebCore::SQLiteStatement::bindNull): Ditto.
47885         (WebCore::SQLiteStatement::bindValue): Moved default case out of the switch to take
47886         advantage of the gcc compiler warning for unhandled enum values in a switch.
47887         (WebCore::SQLiteStatement::bindParameterCount): Added assertion and code to handle the
47888         empty statement case.
47889         (WebCore::SQLiteStatement::columnCount): Added assertion and changed the code to use
47890         the early-return idiom.
47891         (WebCore::SQLiteStatement::getColumnName): Removed getColumnName16 -- we always use 16-bit
47892         characters and have no reason to ever use the 8-bit function. Added assertions about the
47893         passed-in column number. It's a little strange that this function checks the column number
47894         for too-large column numbers, but not for negative ones. I didn't change that for now.
47895         (WebCore::SQLiteStatement::getColumnText): Ditto.
47896         (WebCore::SQLiteStatement::getColumnDouble): Ditto.
47897         (WebCore::SQLiteStatement::getColumnInt): Ditto.
47898         (WebCore::SQLiteStatement::getColumnInt64): Ditto.
47899         (WebCore::SQLiteStatement::getColumnBlobAsVector): Ditto.
47900         (WebCore::SQLiteStatement::getColumnBlob): Tightened up function a bit, including use of
47901         the early-return idiom and replacing the multiple "size = 0" with a single one at the
47902         start of the function.
47903         (WebCore::SQLiteStatement::returnTextResults): Added a failure case when the prepare
47904         call doesn't work. Cleared the vector earlier to make the failure code simpler. Moved
47905         the declaration of the result boolean down lower to make it clearer what it's for.
47906         Changed use of lastError() to call on the database, to make it clearer that there's
47907         no per-statement last error kept around. It'd be even better to not use lastError() here.
47908         (WebCore::SQLiteStatement::returnIntResults): Ditto.
47909         (WebCore::SQLiteStatement::returnInt64Results): Ditto.
47910         (WebCore::SQLiteStatement::returnDoubleResults): Ditto.
47911         (WebCore::SQLiteStatement::isExpired): Changed to use || rather than ?: because I think
47912         it's slightly easier to read that way.
47914         * platform/sql/SQLiteStatement.h: Removed unneeded includes and forward declarations.
47915         Also removed unnneeded functions isPrepared, getColumnName16, getColumnText16,
47916         returnTextResults16, lastError, and lastErrorMsg. Changed prepareAndStep so that it
47917         checks the result of prepare before callling step. Added a debug-only m_isPrepared boolean.
47919         * loader/icon/IconDatabase.cpp:
47920         (WebCore::IconDatabase::checkIntegrity): Remove 16 suffix from text-related function names.
47921         (WebCore::IconDatabase::performURLImport): Ditto.
47922         (WebCore::IconDatabase::pruneUnretainedIcons): Ditto.
47923         * platform/sql/SQLiteDatabase.cpp:
47924         (WebCore::SQLiteDatabase::clearAllTables): Ditto.
47925         * storage/Database.cpp:
47926         (WebCore::retrieveTextResultFromDatabase): Ditto.
47927         (WebCore::Database::performGetTableNames): Ditto.
47928         * storage/DatabaseTracker.cpp:
47929         (WebCore::DatabaseTracker::fullPathForDatabase): Ditto.
47930         (WebCore::DatabaseTracker::populateOrigins): Ditto.
47931         (WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
47932         (WebCore::DatabaseTracker::addDatabase): Ditto.
47933         * storage/SQLStatement.cpp:
47934         (WebCore::SQLStatement::execute): Ditto.
47936         * platform/sql/SQLiteDatabase.h: Removed unneeded includes.
47937         * storage/SQLResultSet.h: Ditto.
47938         * storage/SQLResultSetRowList.h: Ditto.
47940 2008-01-25  Adele Peterson  <adele@apple.com>
47942         Reviewed by Sam.
47944         Fix for <rdar://problem/5679452> Finish tweaking layout/alignment of media controls slider to match QuickTime plug-in
47946         * css/html4.css: Add horizontal padding to the media slider.
47947         * rendering/RenderSlider.cpp:
47948         (WebCore::HTMLSliderThumbElement::defaultEventHandler): Replace use of absoluteBoundingBox() with width() and height()
47949         (WebCore::RenderSlider::positionForOffset): ditto. Also, use the trackSize() for the maximum offset.
47950         (WebCore::RenderSlider::layout):  Use contentWidth() and contentHeight() to take padding into account.
47951         (WebCore::RenderSlider::trackSize): ditto.
47953 2008-01-24  Adam Roben  <aroben@apple.com>
47955         Better fix for Bug 16996
47957         Rubberstamped by Mitz.
47959         * loader/CachedFont.cpp:
47960         (WebCore::CachedFont::ensureCustomFontData): Don't call
47961         createFontCustomPlatformData if m_data is null.
47962         * platform/graphics/gtk/FontCustomPlatformData.cpp:
47963         (WebCore::createFontCustomPlatformData): Added an assertion.
47964         * platform/graphics/mac/FontCustomPlatformData.cpp:
47965         (WebCore::createFontCustomPlatformData): Ditto.
47966         * platform/graphics/qt/FontCustomPlatformData.cpp:
47967         (WebCore::createFontCustomPlatformData): Ditto.
47968         * platform/graphics/win/FontCustomPlatformData.cpp:
47969         (WebCore::createFontCustomPlatformData): Ditto.
47971 2008-01-24  Adam Roben  <aroben@apple.com>
47973         Fix Bug 16996: Crash in createFontCustomPlatformData when loading
47974         0-byte font via @font-face
47976         <http://bugs.webkit.org/show_bug.cgi?id=16996>
47978         Reviewed by Hyatt.
47980         Test: fast/loader/font-face-empty.html
47982         * platform/graphics/win/FontCustomPlatformData.cpp:
47983         (WebCore::createFontCustomPlatformData): Null-check the buffer
47984         parameter.
47986 2008-01-24  Jon Honeycutt  <jhoneycutt@apple.com>
47988         Reviewed by Anders.
47990         <rdar://problem/5588807> Crash in Flash when destroying plug-in (found
47991         using yahoo beta mail)
47993         Flash can dereference NULL in the call to NPP_URLNotify if a request
47994         made with NPN_PostURLNotify fails before NPP_NewStream is called.
47996         Work around this by creating a quirk, PluginQuirkFlashURLNotifyBug, and
47997         checking for this quirk before calling NPP_URLNotify for any request
47998         made with NPN_PostURLNotify. If the quirk is present, call NPP_NewStream
47999         and NPP_DestroyStream before calling NPP_URLNotify.
48001         * WebCore.vcproj/WebCore.vcproj:
48002         * plugins/PluginQuirkSet.h: Added. Moved quirks out of PluginViewWin so
48003         PluginViewWin and PluginStream could share it. Created a class,
48004         PluginQuirkSet, to store plug-in quirks
48005         (WebCore::PluginQuirkSet::PluginQuirkSet):
48006         (WebCore::PluginQuirkSet::add):
48007         (WebCore::PluginQuirkSet::contains):
48008         * plugins/PluginStream.cpp:
48009         (WebCore::PluginStream::PluginStream): Copy the PluginQuirkSet for this
48010         plug-in
48011         (WebCore::PluginStream::destroyStream): Check for the FlashURLNotifyBug
48012         quirk
48013         * plugins/PluginStream.h:
48014         * plugins/win/PluginViewWin.cpp:
48015         (WebCore::PluginViewWin::performRequest): Pass the quirks when creating
48016         the PluginStream
48017         (WebCore::PluginViewWin::didReceiveResponse): Same
48018         (WebCore::PluginViewWin::wndProc): Use add / contains instead of
48019         bit ops
48020         (WebCore::PluginViewWin::userAgent): Same
48021         (WebCore::PluginViewWin::invalidateRect): Same
48022         (WebCore::PluginViewWin::~PluginViewWin): Same
48023         (WebCore::PluginViewWin::determineQuirks): Same
48024         (WebCore::PluginViewWin::setParameters): Same
48025         (WebCore::PluginViewWin::PluginViewWin): Same
48026         (WebCore::PluginViewWin::init): Same
48027         (WebCore::PluginViewWin::setCallingPlugin): Same
48028         * plugins/win/PluginViewWin.h:
48030 2008-01-24  David Hyatt  <hyatt@apple.com>
48032         http://bugs.webkit.org/show_bug.cgi?id=16982
48034         Make sure to make <head> the current block if it is created before a <body> already exists.
48036         Reviewed by Dan
48038         * html/HTMLParser.cpp:
48039         (WebCore::HTMLParser::createHead):
48041 2008-01-24  Alexey Proskuryakov  <ap@webkit.org>
48043         http://bugs.webkit.org/show_bug.cgi?id=16993
48044         <rdar://problem/5704331> REGRESSION: Loading page leads to many unexpected redirections
48046         Rolled out r29590, which was not a correct fix for <rdar://problem/5692566>.
48048         * loader/FrameLoader.cpp:
48049         (WebCore::FrameLoader::clear):
48051 2008-01-24  Antti Koivisto  <antti@apple.com>
48053         Reviewed by Adam.
48054         
48055         If the media is playing and the load stalls the playback wont restart by seeking backwards.
48056         
48057         We should be in CAN_PLAY state if the current time is less than the maximum loaded time. Rate 
48058         tricks were for streaming case and are not necessary now since that is now disabled.
48059         
48060         Windows patch coming separately.
48062         Test: http/tests/media/video-play-stall-seek.html
48064         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
48065         (WebCore::MediaPlayerPrivate::updateStates):
48067 2008-01-24  Antti Koivisto  <antti@apple.com>
48069         Reviewed by Adam.
48071         Fix <rdar://problem/5684815>
48072         After navigating back to the page that contains a <audio> that has been muted, the audio is still heard
48073         
48074         - get rid of the separate muted state in MediaPlayer, maintain the state in the cross platform code only
48075         - remove volumeChanged() callbacks from HTMLMediaElement and OS X MediaPlayer, they were not used for anything
48076         - rename updateMediaPlayer -> updatePlayState which tells more about what it actually does
48078         * html/HTMLMediaElement.cpp:
48079         (WebCore::HTMLMediaElement::load):
48080         (WebCore::HTMLMediaElement::setReadyState):
48081         (WebCore::HTMLMediaElement::play):
48082         (WebCore::HTMLMediaElement::pause):
48083         (WebCore::HTMLMediaElement::setVolume):
48084         (WebCore::HTMLMediaElement::setMuted):
48085         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
48086         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
48087         (WebCore::HTMLMediaElement::updateVolume):
48088         (WebCore::HTMLMediaElement::updatePlayState):
48089         (WebCore::HTMLMediaElement::setPausedInternal):
48090         * html/HTMLMediaElement.h:
48091         * platform/graphics/MediaPlayer.cpp:
48092         (WebCore::MediaPlayer::MediaPlayer):
48093         * platform/graphics/MediaPlayer.h:
48094         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
48095         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
48096         (WebCore::MediaPlayerPrivate::createQTMovie):
48097         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
48098         * platform/graphics/win/QTMovieWin.cpp:
48099         * platform/graphics/win/QTMovieWin.h:
48101 2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
48103         Reviewed by Simon.
48105         * Fix "QObject::startTimer: QTimer can only be used with threads started with QThread"
48106         * The JSC GCController gets automatically destructed on application exit, it will stop
48107         its timer and we try to schedule the next timer. Now the GCController can get destructed
48108         after our QApplication is gone. This will trigger the above warning, we can avoid this
48109         by checking if our qApp is still around.
48111         * platform/qt/SharedTimerQt.cpp:
48112         (WebCore::setSharedTimerFireTime):
48114 2008-01-24  Morten Johan Sørvig  <msorvig@trolltech.com>
48116         Reviewed by Simon.
48118         Qt/Mac: Make sure the scrollbars does not overlap the grow box.
48120         When showing only one scrollbar we need to move it so it doesn't overlap the
48121         grow box. This is similar to the code in QAbstractScrollArea.
48124         * platform/qt/ScrollViewQt.cpp:
48125         (WebCore::ScrollView::updateScrollbars):
48127 2008-01-15  Michael Goddard  <michael.goddard@trolltech.com>
48129         Reviewed by Darin.
48131         While parsing -webkit-border-image, store
48132         the border widths as naked pointers rather
48133         than as OwnPtrs, since they point to the
48134         middle of an array.
48136         Test: fast/css/border-image-crash.html
48138         * css/CSSParser.cpp:
48140 2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
48142         Reviewed by Simon.
48144         * Attempt to fix showing of popup again after a popup has been shown but
48145         the user did not select any item (e.g. clicked outside of the popup)
48146         * Keep track of the popup status using the virtuals showPopup and hidePopup
48147         and do not go into recursion when hiding a popup.
48149         * platform/qt/QWebPopup.cpp:
48150         (WebCore::QWebPopup::showPopup):
48151         (WebCore::QWebPopup::hidePopup):
48152         * platform/qt/QWebPopup.h:
48154 2008-01-24  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
48156         Reviewed by Simon.
48158         * Assert the presence of the PopupMenuClient
48160         * platform/qt/QWebPopup.cpp:
48161         (WebCore::QWebPopup::QWebPopup):
48162         (WebCore::QWebPopup::hideEvent):
48163         (WebCore::QWebPopup::activeChanged):
48165 2008-01-23  David Kilzer  <ddkilzer@apple.com>
48167         <rdar://problem/5702947> WebCore: CGContextDrawPDFDocument will be deprecated
48169         Reviewed by Darin.
48171         No test cases added since there is no change in behavior.
48173         * platform/graphics/cg/PDFDocumentImage.cpp:
48174         (WebCore::PDFDocumentImage::draw): Replace CGContextDrawPDFDocument() with
48175         calls to CG methods that perform the equivalent work.
48177 2008-01-23  Antti Koivisto  <antti@apple.com>
48179         Reviewed by Hyatt, Adele.
48181         Timers for media controls keep running when the page is in the page cache.
48182         
48183         Stop timers in RenderMedia and get rid of the controls tree when the page goes to the cache. 
48185         * html/HTMLMediaElement.cpp:
48186         (WebCore::HTMLMediaElement::HTMLMediaElement):
48187         (WebCore::HTMLMediaElement::willSaveToCache):
48188         (WebCore::HTMLMediaElement::didRestoreFromCache):
48189         * html/HTMLMediaElement.h:
48190         (WebCore::HTMLMediaElement::inPageCache):
48191         * rendering/RenderMedia.cpp:
48192         (WebCore::RenderMedia::updateControls):
48194 2008-01-23  Antti Koivisto  <antti@apple.com>
48196         Reviewed by Adam.
48198         Video that had already played to the end would start playing (from beginning) on back/forward navigation.
48199         
48200         Use setPausedInternal() instead of pause(). This avoid generating pause/play events and matches specification text.
48202         * html/HTMLMediaElement.cpp:
48203         (WebCore::HTMLMediaElement::willSaveToCache):
48205 2008-01-23  Alexey Proskuryakov  <ap@webkit.org>
48207         Reviewed by Darin.
48209         <rdar://problem/4200075> Missing support for accented chars in mailto forms
48211         With some combinations of form parameters, this was resulting in regressed behavior.
48213         Tests: fast/forms/mailto/get-non-ascii-text-plain-latin-1.html
48214                fast/forms/mailto/post-text-plain-with-accept-charset.html
48215                fast/forms/mailto/post-text-plain.html
48217         * html/HTMLFormElement.cpp:
48218         (WebCore::HTMLFormElement::formData): Ignore accept-charset for mailto forms, which are always
48219         encoded as UTF-8.
48220         (WebCore::HTMLFormElement::isMailtoForm): Added.
48221         (WebCore::HTMLFormElement::dataEncoding): Added (factored out from formData).
48222         (WebCore::HTMLFormElement::submit): When round-tripping in text/plain case, use utf-8 encoding.
48223         * html/HTMLFormElement.h: Added a isMailtoForm() function. It may be a bit unfortunate that
48224         its result is calculated repeatedly, but this doesn't seem to be anywhere near hot code.
48226 2008-01-22  Justin Garcia  <justin.garcia@apple.com>
48228         Reviewed by Alice Liu.
48230         <rdar://problem/5658727> Undo/redo for pasted or typed text in yahoo mail becomes disabled after one round of being selected
48232         * rendering/RenderTextControl.cpp:
48233         (WebCore::RenderTextControl::updateFromElement): If value == text() and
48234         m_innerText is empty, then value and text() are "". In that case both DOM 
48235         mutations are no-ops and there is no reason to clear the Undo stack.
48237 2008-01-23  Steve Falkenburg  <sfalken@apple.com>
48239         <rdar://problem/5698732> Copyright strings should include 2008
48241         Reviewed by Sam.
48243         * WebCore.vcproj/QTMovieWin.rc:
48245 2008-01-23  Steve Falkenburg  <sfalken@apple.com>
48247         <rdar://problem/5699509> Allow file upload dialog to be localized.
48249         Reviewed by Darin.
48251         * platform/LocalizedStrings.h:
48252         * platform/win/FileChooserWin.cpp:
48253         (WebCore::FileChooser::openFileChooser):
48255 2008-01-23  Adam Roben  <aroben@apple.com>
48257         Fix behavior of type-to-select in <select> menus
48259         In r27825 we started posting both a WM_KEYDOWN and WM_CHAR message
48260         whenever a key was pressed in the dropdown menu. However, since posted
48261         messages go through TranslateMessage, the WM_KEYDOWN was generating
48262         another WM_CHAR message, so two WM_CHAR messages in a row would reach
48263         the WebView. This caused the searching to happen twice for each key,
48264         so typing "dog" would search for "ddoogg".
48266         Reviewed by Darin.
48268         * platform/win/PopupMenuWin.cpp:
48269         (WebCore::PopupWndProc): Repost the WM_KEYDOWN message to the WebView.
48270         This is will generate a WM_CHAR message which will trigger the
48271         type-to-select behavior. This is very similar to our behavior prior to
48272         r27825, except that we're now calling PostMessage instead of
48273         SendMessage.
48275 2008-01-23  Alp Toker  <alp@atoker.com>
48277         Rubber-stamped by Mark Rowe.
48279         Remove whitespace after -I in automake include lists.
48281         * GNUmakefile.am:
48283 2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
48285         * Rubber stamped by Simon
48287         * Load images incrementally. This will show warnings on the console
48288         and we want to fix them for Qt4.4. If that happens we have to remove
48289         the comment from the enum inside the ImageDecoderQt.cpp
48291         * platform/graphics/qt/ImageDecoderQt.cpp:
48292         (WebCore::ImageDecoderQt::setData):
48294 2008-01-23  Lars Knoll  <lars@trolltech.com>
48296         Reviewed by Holger Freyther <holger.freyther@trolltech.com>.
48298         Fix rendering of the Scrollbar as well as mouse handling for some styles.
48300         The QStyle expects that that painter is set up to clip to the scrollbar bounds
48301         and some of the styles seem to paint somewhat outside of these bounds. Clipping to
48302         the scrollbar bounds before drawing removes some artifacts.
48304         Also set m_opt.rect.topLeft to (0/0) in the mouse handlers. Fixes some issues with
48305         the oxygen style.
48308         * platform/qt/PlatformScrollBarQt.cpp:
48309         (WebCore::PlatformScrollbar::paint):
48310         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
48311         (WebCore::PlatformScrollbar::handleMousePressEvent):
48313 2008-01-23  Michael Brasser  <michael.brasser@trolltech.com>
48315         Reviewed by Simon.
48317         Rendering fixes for Qtopia.
48319         Make the focus ring work with line breaks (until we have QPainterPath::simplify) and
48320         call QStyle with better arguments when painting themed elements.
48322         * platform/graphics/qt/GraphicsContextQt.cpp:
48323         (WebCore::GraphicsContext::drawFocusRing):
48324         * platform/qt/RenderThemeQt.cpp:
48325         (WebCore::RenderThemeQt::paintButton):
48326         (WebCore::RenderThemeQt::applyTheme):
48328 2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
48330         Reviewed by Simon.
48332         * FormData::flatten does not include to be uploaded files. Create our own QIODevice
48333         for the QNetworkAccessManager and feed the complete content of the FormData* to
48334         the (HTTP) backend.
48335         * Try to optimize the ::readData implementation to fill the buffer as best as possible
48337         * platform/network/qt/QNetworkReplyHandler.cpp:
48338         (WebCore::FormDataIODevice::FormDataIODevice):
48339         (WebCore::FormDataIODevice::~FormDataIODevice):
48340         (WebCore::FormDataIODevice::moveToNextElement):
48341         (WebCore::FormDataIODevice::readData):
48342         (WebCore::FormDataIODevice::writeData):
48343         (WebCore::FormDataIODevice::setParent):
48344         (WebCore::FormDataIODevice::isSequential):
48345         (WebCore::FormDataIODevice::slotFinished):
48346         (WebCore::QNetworkReplyHandler::start):
48347         * platform/network/qt/QNetworkReplyHandler.h:
48349 2008-01-23  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
48351         Reviewed by Simon.
48353         * Coding-Style fixes
48355         * platform/network/qt/QNetworkReplyHandler.cpp:
48356         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
48358 2008-01-23  Michael Brasser  <michael.brasser@trolltech.com>
48360         Reviewed by Simon.
48362         use PopupClient's font for popup menu. Otherwise, in Qtopia, the popup's font is much bigger (QApplication::font()?) and the text doesn't fit.
48364         * platform/qt/QWebPopup.cpp:
48365         (WebCore::QWebPopup::QWebPopup):
48367 2008-01-23  Simon Hausmann  <hausmann@webkit.org>
48369         Reviewed by Lars.
48371         Implemented FrameLoaderClient::startDownload() and FrameLoaderClient::download().
48372         
48373         Added two signals to QWebPage to handle downloading of links and handling of
48374         unsupported content.
48375         
48377         * platform/network/qt/QNetworkReplyHandler.cpp:
48378         (WebCore::QNetworkReplyHandler::release):
48379         * platform/network/qt/QNetworkReplyHandler.h:
48381 2008-01-22  Dan Bernstein  <mitz@apple.com>
48383         Reviewed by Adele Peterson.
48385         - fix http://bugs.webkit.org/show_bug.cgi?id=16905
48386           <rdar://problem/5692407> REGRESSION (3.0.4-TOT): "menu" pseudocolor is badly chosen
48388         The regression test for this is fast/css/css2-system-color.html which
48389         is currently disabled.
48391         * rendering/RenderThemeMac.mm:
48392         (WebCore::menuBackgroundColor): Added. Uses HIThemeDrawMenuBackground
48393         to draw the menu item background into a bitmap graphics context and
48394         returns the color of the pixel at (0, 0).
48395         (WebCore::RenderThemeMac::systemColor): Changed to call
48396         menuBackgroundColor for the CSS2 menu color.
48398 2008-01-22  Darin Adler  <darin@apple.com>
48400         Reviewed by Oliver Hunt.
48402         - turn full repainting back on for <canvas> until we get incremental
48403           repaint working properly
48405         Ollie and I came up with a plan for testing this, but for now we should
48406         just fall back on the "repaint everything" behavior we have always had.
48408         * html/HTMLCanvasElement.cpp:
48409         (WebCore::HTMLCanvasElement::willDraw): Just call repaint.
48411 2008-01-22  Alp Toker  <alp@atoker.com>
48413         GTK+/qmake build fix.
48415         * WebCore.pro:
48417 2008-01-22  Adam Roben  <aroben@apple.com>
48419         Add HTMLFrameOwnerElement::scrollingMode
48421         This new virtual method is overridden by HTMLFrameElementBase to
48422         provide the scrolling mode set on the frame or iframe element. Object
48423         elements always have scrolling=auto, so there's no need to override
48424         this method for HTMLPlugInElement.
48426         Reviewed by Hyatt.
48428         * html/HTMLFrameElementBase.h: Declare scrollingMode as virtual.
48429         * html/HTMLFrameOwnerElement.h:
48430         (WebCore::HTMLFrameOwnerElement::scrollingMode): Added.
48432 2008-01-22  David Hyatt  <hyatt@apple.com>
48434         Fix for <rdar://problem/5698481> REGRESSION: Web Inspector source view gutter double divider and no padding
48436         Now that cellpadding cascades properly on <td>s, we need to make the view source padding rules in the user
48437         agent sheet have !important in order to override author settings.
48439         Reviewed by Tim
48441         * css/view-source.css:
48443 2008-01-22  Nikolas Zimmermann  <zimmermann@kde.org>
48445         Reviewed by Alp.
48447         Allow to use SVGPaintServerSolid without RenderObject/RenderStyle. Used later to draw SVG Fonts in HTML.
48449         * svg/graphics/SVGPaintServer.cpp:
48450         (WebCore::SVGPaintServer::sharedSolidPaintServer):
48451         * svg/graphics/SVGPaintServer.h:
48452         * svg/graphics/cg/SVGPaintServerCg.cpp:
48453         (WebCore::SVGPaintServer::renderPath):
48454         (WebCore::SVGPaintServer::fillPath):
48455         (WebCore::SVGPaintServer::clipToFillPath):
48456         * svg/graphics/cg/SVGPaintServerSolidCg.cpp:
48457         (WebCore::SVGPaintServerSolid::setup):
48459 2008-01-22  Nikolas Zimmermann  <zimmermann@kde.org>
48461         Reviewed by Alp.
48463         Initialize missing variables, m_lineGap / m_lineSpacing.
48464         Only noticeable when trying to render HTML text using SVG Fonts (which is not possible with trunk, but with my local version).
48466         * platform/graphics/SimpleFontData.cpp:
48467         (WebCore::SimpleFontData::SimpleFontData):
48469 2008-01-22  Alp Toker  <alp@atoker.com>
48471         Reviewed by Nikolas.
48473         Fix Cairo SVG fonts following changes in r29700.
48475         Set the font description's details as needed in FontPlatformData and
48476         eliminate GraphicsContext::setPlatformFont() since it was redundant
48477         and assumed all fonts were Cairo fonts.
48479         * platform/graphics/GraphicsContext.cpp:
48480         * platform/graphics/cairo/GraphicsContextCairo.cpp:
48481         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
48482         (WebCore::FontPlatformData::FontPlatformData):
48484 2008-01-22  Dan Bernstein  <mitz@apple.com>
48486          Reviewed by Eric.
48488          - fix http://bugs.webkit.org/show_bug.cgi?id=16967
48489            <rdar://problem/5699344> Reproducible crash when navigating back to a page using SVG fonts
48491          Test: svg/custom/font-platformDestroy-crash.svg
48493          * platform/graphics/SimpleFontData.cpp:
48494          (WebCore::SimpleFontData::~SimpleFontData): Changed to call
48495          platformDestroy() only if platformInit() was called from the
48496          constructor.
48498 2008-01-22  Lars Knoll  <lars@trolltech.com>
48500         Reviewed by Simon.
48502         cleanup the CookieJarQt implementation and implement cookiesEnabled.
48504         * platform/qt/CookieJarQt.cpp:
48505         (WebCore::cookieJar):
48506         (WebCore::setCookies):
48507         (WebCore::cookies):
48508         (WebCore::cookiesEnabled):
48510 2008-01-22  Lars Knoll  <lars@trolltech.com>
48512         Reviewed by Simon.
48514         Ported the font implementation to use the new QFont features of Qt 4.4.
48515         
48517         * platform/graphics/Font.h:
48518         (WebCore::Font::setWordSpacing):
48519         (WebCore::Font::setLetterSpacing):
48520         (WebCore::Font::font):
48521         (WebCore::Font::):
48522         * platform/graphics/qt/FontQt.cpp:
48523         (WebCore::Font::Font):
48524         (WebCore::Font::setWordSpacing):
48525         (WebCore::Font::setLetterSpacing):
48526         (WebCore::qstring):
48527         (WebCore::setupLayout):
48528         (WebCore::Font::drawText):
48529         (WebCore::Font::width):
48530         (WebCore::Font::floatWidth):
48531         (WebCore::Font::offsetForPosition):
48532         (WebCore::Font::selectionRectForText):
48533         (WebCore::generateComponents):
48534         (WebCore::cursorToX):
48535         (WebCore::Font::~Font):
48536         (WebCore::Font::operator=):
48537         (WebCore::Font::operator==):
48538         (WebCore::Font::update):
48540 2008-01-21  Eric Seidel  <eric@webkit.org>
48542         Reviewed by Nikolas & Oliver.
48543         
48544         Tested by svg/custom/svg-features.html
48545         
48546         * dom/DOMImplementation.cpp:
48547         (WebCore::isSVG10Feature): use ENABLE(SVG_*) conditionals
48548         (WebCore::isSVG11Feature): use ENABLE(SVG_*) conditionals
48550 2008-01-21  Geoffrey Garen  <ggaren@apple.com>
48552         Reviewed by Maciej Stachowiak.
48554         Adapted WebCore to the fix for http://bugs.webkit.org/show_bug.cgi?id=16909
48555         REGRESSION: Amazon.com crash (ActivationImp)
48557         * bindings/js/kjs_proxy.cpp:
48558         (WebCore::KJSProxy::~KJSProxy): No convenient way to make this assertion
48559         anymore. (It wasn't firing for anyone, anyway, so it's no big loss.)
48561         * bindings/objc/WebScriptObject.mm:
48562         (+[WebScriptObject throwException:]): Use the ExecState stack, instead
48563         of currentExec.
48564         (-[WebScriptObject setException:]): ditto. Also, a slight change in
48565         behavior: If no ExecStates are active, we no longer throw an exception
48566         in the global ExecState. The JavaScriptCore ChangeLog explains why.
48567         This also matches the behavior of +throwException.
48569 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
48571         Not reviewed. Try to fix Qt build, after the rmdir() fixes.c
48573         * platform/graphics/qt/SimpleFontDataQt.cpp:
48574         (WebCore::SimpleFontData::SimpleFontData):
48576 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
48578         Not reviewed. Another Wx build fix.
48580         * platform/graphics/wx/FontWx.cpp:
48581         (WebCore::Font::drawGlyphs):
48583 2008-01-21  Darin Adler  <darin@apple.com>
48585         - try to fix Qt build
48587         * platform/qt/FileSystemQt.cpp:
48588         (WebCore::deleteEmptyDirectory): QDir::root().rmdir() instead of QDir::rmdir().
48590 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
48592         Not reviewed. Yet another win/gtk build fix.
48594         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
48595         (WebCore::FontPlatformData::FontPlatformData):
48596         * platform/graphics/win/FontWin.cpp:
48597         (WebCore::Font::drawGlyphs):
48599 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
48601         Not reviewed. Another build fix for Gtk/Linux & Wx/Mac.
48603         * platform/graphics/SimpleFontData.cpp:
48604         (WebCore::SimpleFontData::SimpleFontData):
48606 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
48608         Not reviewed. Build fix for Qt/Gtk & Wx.
48610         * css/CSSFontSelector.cpp:
48611         * platform/graphics/SegmentedFontData.cpp:
48612         (WebCore::SegmentedFontData::isSVGFont): Remove SVG_FONTS block, it's a pure virtual function in the base class.
48613         * platform/graphics/SegmentedFontData.h:
48615 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
48617         Not reviewed. Build fix for ports that don't build SVG: wx.
48619         * css/CSSFontFaceSource.h: Wrap include in ENABLE(SVG_FONTS) blocks.
48620         * css/CSSFontFaceSrcValue.h: Ditto.
48622 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
48624         Not reviewed. Build fix for Qt/Gtk.
48626         * platform/graphics/SimpleFontData.h:
48627         (WebCore::SimpleFontData::svgFontData):
48628         (WebCore::SimpleFontData::isSVGFont):
48630 2008-01-21  Nikolas Zimmermann  <zimmermann@kde.org>
48632         Reviewed by Eric. Older parts reviewed by Dan.
48634         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16880 (SVGCSSFontFace should die, instead integrate within the FontCache.)
48635         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16784 (In-document fonts work only as the first child to font-face-src)
48637         Proper integration of SVG Fonts within the existing custom font concept, removing the need for a custom SVGCSSFontFace.
48638         Integrate within the CSSFontFaceSource logic for caching support, as well as the framework for external SVG Fonts.
48640         Proper handling of missing glyphs, using <missing-glyph> element. If that is not specified in a font, fallback to non-SVG font rendering.
48642         * GNUmakefile.am:
48643         * WebCore.pro:
48644         * WebCore.vcproj/WebCore.vcproj:
48645         * WebCore.xcodeproj/project.pbxproj:
48646         * css/CSSFontFaceSource.cpp:
48647         (WebCore::CSSFontFaceSource::getFontData):
48648         * css/CSSFontFaceSource.h:
48649         (WebCore::CSSFontFaceSource::svgFontFaceElement):
48650         (WebCore::CSSFontFaceSource::setSVGFontFaceElement):
48651         * css/CSSFontFaceSrcValue.h:
48652         (WebCore::CSSFontFaceSrcValue::m_isLocal):
48653         (WebCore::CSSFontFaceSrcValue::~CSSFontFaceSrcValue):
48654         (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
48655         (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
48656         * css/CSSFontSelector.cpp:
48657         (WebCore::CSSFontSelector::addFontFaceRule):
48658         * css/SVGCSSFontFace.cpp: Removed.
48659         * css/SVGCSSFontFace.h: Removed.
48660         * platform/graphics/Font.cpp:
48661         (WebCore::Font::ascent):
48662         (WebCore::Font::descent):
48663         (WebCore::Font::lineSpacing):
48664         (WebCore::Font::xHeight):
48665         (WebCore::Font::fontSelector):
48666         * platform/graphics/Font.h:
48667         * platform/graphics/FontData.h:
48668         * platform/graphics/SegmentedFontData.cpp:
48669         (WebCore::SegmentedFontData::isSVGFont):
48670         * platform/graphics/SegmentedFontData.h:
48671         * platform/graphics/SimpleFontData.cpp:
48672         (WebCore::SimpleFontData::SimpleFontData):
48673         * platform/graphics/SimpleFontData.h:
48674         (WebCore::SimpleFontData::ascent):
48675         (WebCore::SimpleFontData::descent):
48676         (WebCore::SimpleFontData::lineSpacing):
48677         (WebCore::SimpleFontData::lineGap):
48678         (WebCore::SimpleFontData::xHeight):
48679         (WebCore::SimpleFontData::isSVGFont):
48680         (WebCore::SimpleFontData::svgFontData):
48681         * platform/graphics/gtk/FontPlatformData.h:
48682         (WebCore::FontPlatformData::size):
48683         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
48684         (WebCore::FontPlatformData):
48685         * platform/graphics/mac/FontPlatformData.h:
48686         (WebCore::FontPlatformData::FontPlatformData):
48687         (WebCore::FontPlatformData::size):
48688         * platform/graphics/win/FontPlatformData.h:
48689         * platform/graphics/win/FontPlatformDataWin.cpp:
48690         (WebCore::FontPlatformData::FontPlatformData):
48691         * rendering/RenderSVGText.cpp:
48692         (WebCore::RenderSVGText::relativeBBox):
48693         * svg/SVGFont.cpp:
48694         (WebCore::convertEmUnitToPixel):
48695         (WebCore::isCompatibleGlyph):
48696         (WebCore::svgFontAndFontFaceElementForFontData):
48697         (WebCore::SVGTextRunWalker::SVGTextRunWalker):
48698         (WebCore::SVGTextRunWalker::walk):
48699         (WebCore::floatWidthUsingSVGFontCallback):
48700         (WebCore::floatWidthMissingGlyphCallback):
48701         (WebCore::floatWidthOfSubStringUsingSVGFont):
48702         (WebCore::drawTextUsingSVGFontCallback):
48703         (WebCore::drawTextMissingGlyphCallback):
48704         (WebCore::Font::drawTextUsingSVGFont):
48705         * svg/SVGFontData.cpp: Added.
48706         (WebCore::SVGFontData::SVGFontData):
48707         (WebCore::SVGFontData::~SVGFontData):
48708         * svg/SVGFontData.h: Added.
48709         (WebCore::SVGFontData::svgFontFaceElement):
48710         (WebCore::SVGFontData::horizontalOriginX):
48711         (WebCore::SVGFontData::horizontalOriginY):
48712         (WebCore::SVGFontData::horizontalAdvanceX):
48713         (WebCore::SVGFontData::verticalOriginX):
48714         (WebCore::SVGFontData::verticalOriginY):
48715         (WebCore::SVGFontData::verticalAdvanceY):
48716         * svg/SVGFontFaceElement.cpp:
48717         (WebCore::SVGFontFaceElement::unitsPerEm):
48718         (WebCore::SVGFontFaceElement::xHeight):
48719         (WebCore::SVGFontFaceElement::horizontalOriginX):
48720         (WebCore::SVGFontFaceElement::horizontalOriginY):
48721         (WebCore::SVGFontFaceElement::horizontalAdvanceX):
48722         (WebCore::SVGFontFaceElement::verticalOriginX):
48723         (WebCore::SVGFontFaceElement::verticalOriginY):
48724         (WebCore::SVGFontFaceElement::verticalAdvanceY):
48725         (WebCore::SVGFontFaceElement::ascent):
48726         (WebCore::SVGFontFaceElement::descent):
48727         (WebCore::SVGFontFaceElement::fontFamily):
48728         (WebCore::SVGFontFaceElement::associatedFontElement):
48729         (WebCore::SVGFontFaceElement::rebuildFontFace):
48730         * svg/SVGFontFaceElement.h:
48731         * svg/SVGGlyphElement.cpp:
48732         (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
48733         (WebCore::parseSVGGlyphAttribute):
48734         (WebCore::SVGGlyphElement::buildGenericGlyphIdentifier):
48735         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
48736         * svg/SVGGlyphElement.h:
48737         * svg/SVGMissingGlyphElement.cpp:
48738         * svg/svgattrs.in:
48740 2008-01-21  Darin Adler  <darin@apple.com>
48742         Reviewed by John Sullivan.
48744         - fix <rdar://problem/5644324> Delegate-less WebKit clients should have no databases
48746         - remove the default database quota setting
48748         - simplify the quota-related client calls by merging the one for a new database with
48749           the one for an existing database, adding a feature where you can get details about
48750           a database being created using the same functions that work on the other databases,
48751           and removing the parameters and return values, instead having clients use a function
48752           to set the quota
48754         - fix unsafe multi-thread access to the database tracker's quota map
48755         - fix bug in deleteAllDatabases where it would iterate a HashMap while modifying it
48757         The tracker database is now only created when we set the quota for a database origin.
48758         Thus asking for info about databases won't cause anything to be written to disk.
48760         * WebCore.base.exp: Updated.
48762         * bindings/js/GCController.cpp: Added an #if to get rid of an unused function warning.
48764         * page/Chrome.cpp: Removed database-related functions. There's no problem having the
48765         code deal directly with the client.
48766         * page/Chrome.h: Ditto. Also made Chrome inherit from Noncopyable.
48768         * page/ChromeClient.h: Replaced the two quota-related functions with a single one.
48769         The details about the state of databases in the origin are now available by asking
48770         for database details. There's also no need to pass the security origin, since
48771         it's easy to get that from the frame's document.
48773         * page/Settings.cpp: Removed the default quota setting.
48774         * page/Settings.h: Ditto.
48776         * platform/FileSystem.h: Added deleteEmptyDirectory.
48777         * platform/gtk/FileSystemGtk.cpp:
48778         (WebCore::deleteEmptyDirectory): Added.
48779         * platform/posix/FileSystemPOSIX.cpp:
48780         (WebCore::deleteEmptyDirectory): Added.
48781         * platform/qt/FileSystemQt.cpp:
48782         (WebCore::deleteEmptyDirectory): Added.
48783         * platform/win/FileSystemWin.cpp:
48784         (WebCore::deleteEmptyDirectory): Added.
48785         * platform/wx/FileSystemWx.cpp:
48786         (WebCore::deleteEmptyDirectory): Added placeholder.
48788         * storage/DatabaseDetails.h: Removed the isValid() function since its name is
48789         confusing -- we removed our other isValid() functions. For the few callers that
48790         need this, it's fine to just check name().isEmpty(). Made the member functions
48791         all const.
48793         * storage/DatabaseTracker.cpp:
48794         (WebCore::DatabaseTracker::DatabaseTracker): Removed m_defaultQuota initialization.
48795         Added m_proposedDatabase and m_thread.
48796         (WebCore::DatabaseTracker::setDatabaseDirectoryPath): Got rid of code that would
48797         open the tracker database here. This might slightly speed up launch time, since
48798         we won't do the I/O until we have to, and before we were actually creating an SQL
48799         database in this code that's run when we go to the first webpage.
48800         (WebCore::DatabaseTracker::trackerDatabasePath): Added.
48801         (WebCore::DatabaseTracker::openTrackerDatabase): Added a boolean parameter telling
48802         this function whether to create the database. Made this function safe to call if
48803         the database is already open. Also made the function fail quietly if the path has
48804         not been set yet.
48805         (WebCore::DatabaseTracker::canEstablishDatabase): Got rid of the call to the
48806         establishEntryForOrigin function. The origin is now put in the tracker database
48807         when the quota is set to a non-zero value. When judging if there's enough space
48808         for the new database, require at least one byte even if estimatedSize is 0, and
48809         check for overflow. Also added code here to populate the origins map, which
48810         guarantees it will be ready when the database uses it on another thread later.
48811         Also changed this to call the new ChromeClient function.
48812         (WebCore::DatabaseTracker::hasEntryForDatabase): Added code to open the
48813         tracker database, since that's no longer done by setDatabaseDirectoryPath.
48814         (WebCore::DatabaseTracker::originPath): Added.
48815         (WebCore::DatabaseTracker::fullPathForDatabase): Added code so that this will
48816         return a null string for the proposed database if called from within the
48817         ChromeClient function. Also switched from empty string to null string for the
48818         error cases.
48819         (WebCore::DatabaseTracker::populateOrigins): Added code to open the tracker
48820         database.
48821         (WebCore::DatabaseTracker::databaseNamesForOrigin): Ditto.
48822         (WebCore::DatabaseTracker::detailsForNameAndOrigin): Ditto. Also added code that
48823         will return the details of the proposed database if called from within the
48824         ChromeClient function. This is how the client can learn of the display name and
48825         the estimated size of the new database.
48826         (WebCore::DatabaseTracker::setDatabaseDetails): Added code to open the tracker
48827         database.
48828         (WebCore::DatabaseTracker::quotaForOrigin): Made this code OK to call on a non-main
48829         thread by using m_quotaMapGuard to guard access to the map. Other code runs on the
48830         main thread only, and only functions that write to the map use the lock.
48831         (WebCore::DatabaseTracker::setQuota): Changed this function so it can insert the
48832         initial quota as well as updating an existing quota. Added locking since this
48833         function modifies the quota map. Added code to open the tracker database. Added
48834         an early exit if the quota is already correct, which is guarantees that if you
48835         set a quota to 0 it won't trigger creation of a tracker database.
48836         (WebCore::DatabaseTracker::addDatabase): Added code to open the tracker database.
48837         (WebCore::DatabaseTracker::deleteAllDatabases): Made a copy of the quota map before
48838         iterating it to find all the origins. This fixes a problem with the old code where
48839         it would modify the map while iterating it, which gives assertions in debug builds
48840         and unpredictable results.
48841         (WebCore::DatabaseTracker::deleteOrigin): Replaced deleteDatabasesWithOrigin with
48842         this function. Added code to open the tracker database if needed. Added code to
48843         delete the origin from the tracker database, and to close the tracker database
48844         and delete files and directories as needed if we are deleting the final origin.
48845         (WebCore::DatabaseTracker::deleteDatabase): Added code to open the tracker database
48846         if needed.
48848         * storage/DatabaseTracker.h: Renamed databasePath to databaseDirectoryPath for
48849         clarity, including the data member, and the getter and setter functions.
48850         Replaced deleteDatabasesWithOrigin with deleteOrigin. Removed the functions
48851         dealing with default origin quota. There is no default any more; origins start
48852         with no quota and the client must set a quota. Added trackerDatabasePath and
48853         originPath helper functions. Added a boolean parameter to openTrackerDatabase
48854         to tell it whether to create the database or not. Removed the
48855         establishEntryForOrigin function. Renamed m_originQuotaMap to just m_quotaMap,
48856         and added m_quotaMapGuard. Added a QuotaMap typedef. Added m_proposedDatabase,
48857         which holds the origin and details for the current proposed database during
48858         the client callback function that must decide whether to grant quota. Added a
48859         m_thread data member for debugging use to assert if functions that can only
48860         be called on a single thread are misused.
48862         * storage/SQLTransaction.cpp:
48863         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Changed to call the
48864         new exceededDatabaseQuota function instead of the old one.
48866         * svg/graphics/SVGImageEmptyClients.h: Updated for the change to ChromeClient.
48868 2008-01-21  David Hyatt  <hyatt@apple.com>
48870         Fix for http://bugs.webkit.org/show_bug.cgi?id=16935
48872         Fix a bug in layers where the positioned ancestor was being computed incorrectly (the root should not
48873         automatically be included).
48875         Reviewed by olliej
48877         Added fast/layers/positioned-inside-root-with-margins.html
48879         * rendering/RenderLayer.cpp:
48880         (WebCore::RenderLayer::stackingContext):
48881         (WebCore::RenderLayer::enclosingPositionedAncestor):
48883 2008-01-21  Simon Hausmann  <hausmann@webkit.org>
48885         Reviewed by Holger.
48887         Fix KURL to QUrl conversion.
48888         
48889         Stick to the encoded version of the URL and in addition to KURL we encode the
48890         characters mentioned in section 2.4.3 of RFC 2396 as QUrl requires these, too.
48891         
48892         This fixes fast/css/import-rule-regression-11590.html,
48893         fast/css/import-style-update.html, svg/hixie/processing-model/003.xml and
48894         svg/hixie/processing-model/004.xml.
48897         * platform/qt/KURLQt.cpp:
48898         (WebCore::toHex):
48899         (WebCore::KURL::operator QUrl):
48901 2008-01-21  Simon Hausmann  <hausmann@webkit.org>
48903         Reviewed by Holger.
48905         Fix focus chain handling and cycling through focusable objects (links) using tab/backtab.
48906         
48907         * Fix GraphicsContext::drawFocusRing to also draw single focus rects.
48908         * Implemented QWebPage::focusNextPrevChild by sending fake tab/shift-tab events
48909         and make the return value depend on whether we successfully determined a focusable
48910         node or not.
48911         * Changed QWebView::focusNextPrevChild() to call the base QWidget implementation correctly
48912         if we could not handle the focus chain ourselves.
48913         * Changed the focus policy of QWebView to correctly use WheelFocus instead of ClickFocus.
48914         * Made ChromeClientQt::canTakeFocus() and takeFocus() dummy method since they are only
48915         used to control the situation of stepping out of the focus chain inside the page.
48916         * Made inclusion of links in the focus chain configurable through QWebSettings::LinksIncludedInFocusChain.
48917         The layout tests expect this to be disabled but for the user it seems sensible to have it
48918         on by default, hence the default in qwebsettings.cpp
48920         * platform/graphics/qt/GraphicsContextQt.cpp:
48921         (WebCore::GraphicsContext::drawFocusRing):
48923 2008-01-21  Simon Hausmann  <hausmann@webkit.org>
48925         Reviewed by Holger.
48927         Fix access key support and fast/forms/legend-access-key.html
48929         SVN revision 26664 changed the default access key for the non-mac build to Alt
48930         while this test relies on Ctrl.
48932         * page/EventHandler.cpp:
48934 2008-01-21  Simon Hausmann  <hausmann@webkit.org>
48936         Reviewed by Holger.
48938         Fix error reporting when parsing X(HT)ML fragments.
48939         
48940         We use the regular XMLTokenizer write()/.../end() sequence to parse those
48941         fragments, but we should not report any parsing errors inline inside the
48942         content. Instead we should just return the error and the DOM layer will take
48943         care of throwing an exception.
48944         
48945         This fixes fast/innerHTML/innerHTML-changing-document-properties.xhtml
48946         
48948         * dom/XMLTokenizer.cpp:
48949         (WebCore::createXHTMLParserErrorHeader):
48951 2008-01-21  Holger Freyther  <holger.freyther@trolltech.com>
48953         Reviewed by Simon.
48955         Fix some issues with redirections.
48956         
48957         * Ensure that we deliver the response to the ResourceHandleClient only once by
48958         setting m_responseSent back to false only before calling start() for the
48959         redirection
48960         * Added 307 as another HTTP status code that causes a redirection after POST to
48961         become get, just like in MainResourceLoader::isPostOrRedirectAfterPost
48962         * Also set the HTTP method on the ResourceRequest to GET before passing it to
48963         willSendRequest.
48964         * willSendRequest's newRequest argument is actually an in/out argument and could be
48965         modified in theory, so set m_request accordingly after the call.
48966         
48968         * platform/network/qt/QNetworkReplyHandler.cpp:
48969         (WebCore::QNetworkReplyHandler::finish):
48970         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
48972 2008-01-21  Holger Freyther  <holger.freyther@trolltech.com>
48974         Reviewed by Simon.
48976         Fixed WebCore::cookies() to return all cookies, not only the first one.
48977         
48978         Fixes login into mail.yahoo.com.
48979         
48981         * platform/qt/CookieJarQt.cpp:
48982         (WebCore::cookies):
48984 2008-01-20  Oliver Hunt  <oliver@apple.com>
48986         Reviewed by Mitz.
48988         Fix http://bugs.webkit.org/show_bug.cgi?id=16816 , rdar://problem/5682985
48989         
48990         Correctly trigger willPerformDragDestinationAction when a drop causes a 
48991         load to occur.  The logic that originally did this was lost during the
48992         great drag migration of '07.
48994         * page/DragController.cpp:
48995         (WebCore::DragController::performDrag):
48997 2008-01-20  Dan Bernstein  <mitz@apple.com>
48999         Reviewed by Darin Adler.
49001         - fix http://bugs.webkit.org/show_bug.cgi?id=16951
49002           Assertion failure in FrameView::scheduleRelayout (!m_frame->document() || !m_frame->document()->inPageCache()) when going back from a page with a focused popup
49004         * dom/Document.cpp:
49005         (WebCore::Document::setFocusedNode): Bail out if the document is in the
49006         page cache. Documents in the back/forward cache are "frozen" and should
49007         not change state.
49009 2008-01-20  Collin Jackson  <webkit@collinjackson.com>
49011         Reviewed by Sam Weinig.
49013         Fix for http://bugs.webkit.org/show_bug.cgi?id=16775
49015         We now use frame()->loader()->url() for postMessage, preventing a
49016         malicious sender from overwriting the uri property (using a <base> tag,
49017         for example). Also, use frame->loader()->url().host() instead of 
49018         instead of document()->SecurityOrigin()->domain() to reflect a recent
49019         clarification in the HTML5 spec. 
49021         Tests: http/tests/security/postMessage/domain-affected-by-document-domain.html
49022                http/tests/security/postMessage/domain-and-uri-unaffected-by-base-tag.html
49023                http/tests/security/postMessage/javascript-page-still-sends-domain.html
49025         * bindings/js/JSDOMWindowCustom.cpp:
49026         (WebCore::JSDOMWindow::postMessage):
49028 2008-01-20  Antti Koivisto  <antti@apple.com>
49030         Reviewed by Adele.
49032         Fix <rdar://problem/5695451>
49033         Middle part of the media timeline missing on Windows if load failed
49035         Add some null checking to avoid getting garbage results from the functions.
49037         * platform/graphics/MediaPlayer.cpp:
49038         * platform/graphics/win/QTMovieWin.cpp:
49039         (QTMovieWin::duration):
49040         (QTMovieWin::currentTime):
49041         (QTMovieWin::setCurrentTime):
49042         (QTMovieWin::maxTimeLoaded):
49044 2008-01-19  Alp Toker  <alp@atoker.com>
49046         Reviewed by Mark Rowe.
49048         http://bugs.webkit.org/show_bug.cgi?id=16944
49049         Use of GST_PLUGIN_DEFINE_STATIC results in a module-level constructor
49051         http://bugzilla.gnome.org/show_bug.cgi?id=510547
49052         Epiphany/Webkit fails to start due to initializing threads twice
49054         Don't call GST_PLUGIN_DEFINE_STATIC() as it performs g_thread_init()
49055         in the global initializer, breaking subsequent calls to
49056         g_thread_init() in applications.
49058         * platform/graphics/gtk/VideoSinkGStreamer.cpp:
49060 2008-01-19  Alp Toker  <alp@atoker.com>
49062         Reviewed by Mark Rowe.
49064         Remove any fragment part from the URL to be requested just before
49065         passing it to curl, otherwise curl sends it as part of the HTTP/local
49066         file request, causing page loads to fail.
49068         * platform/network/curl/ResourceHandleManager.cpp:
49069         (WebCore::ResourceHandleManager::startJob):
49071 2008-01-19  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
49073         Reviewed by Alp Toker.
49075         Add svg foreign object and svg experimental to the GTK+/autotools
49076         build system.
49078         * GNUmakefile.am:
49080 2008-01-19  Dan Bernstein  <mitz@apple.com>
49082         Reviewed by Maciej Stachowiak.
49084         - fix <rdar://problem/5645813> CrashTracer: [USER] 6 crashes in Safari at com.apple.WebCore: WebCore::RenderBox::destroy + 116
49086         Test: editing/selection/inconsistent-in-removeChildNode.html
49088         * editing/SelectionController.cpp:
49089         (WebCore::SelectionController::nodeWillBeRemoved): If the selection
49090         base or extent are not visible any more, adjust the selection.
49092 2008-01-19  Oliver Hunt  <oliver@apple.com>
49094         Reviewed by Eric Seidel.
49096         Build fix for --svg-foreign-object path
49098         * svg/SVGForeignObjectElement.idl:
49100 2008-01-18  Stephanie  <slewis@apple.com>
49102         Reviewed by Oliver.
49104         Workaround for <rdar://problem/5695848>.  Set mime_type for local files based on file extension. 
49106         * platform/network/cf/ResourceResponseCFNet.cpp:
49107         (WebCore::ResourceResponse::doUpdateResourceResponse):
49109 2008-01-18  Ada Chan  <adachan@apple.com>
49111         <rdar://problem/5682340> REGRESSION (r28188): Context menu appears at wrong place when clicking in iframe whose parent is scrolled (16827)
49112         Calling absolutePosition() in EventHandler::hitTestResultAtPoint() is extremely inefficient and passing in
49113         true as fixed before was wrong.  Use HitTestResult::localPoint() instead, and take into account border and padding widths.
49115         Reviewed by Hyatt and Darin.
49117         * page/EventHandler.cpp:
49118         (WebCore::EventHandler::hitTestResultAtPoint):
49119         * rendering/HitTestResult.cpp:
49120         (WebCore::HitTestResult::operator=):
49122 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
49124         Reviewed by Darin, landed by Beth.
49126         - fixed http://bugs.webkit.org/show_bug.cgi?id=15765
49128         The call to HTMLTokenizer::write might result in a call to ::end which will invoke
49129         HTMLParser::finished() or Document::finishedParsing(). HTMLParser::finished() will eventually
49130         call Document::finishedParsing. The Document will delete the calling HTMLTokenizer and from the deleted
49131         tokenizer we will call into FrameLoader::tokenizerProcessedData.
49132         -) FrameLoader::tokenizerProcessedData calls FrameLoader::checkCompleted which gets called from the Document::finishedParsing
49133            (FrameLoader::finishedParsing).
49135         * html/HTMLTokenizer.cpp:
49136         (WebCore::HTMLTokenizer::timerFired):
49138 2008-01-18  David Hyatt  <hyatt@apple.com>
49140         Don't apply the border/margin/padding check to root line boxes, since their renderers
49141         are blocks.
49143         * rendering/InlineFlowBox.cpp:
49144         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
49145         (WebCore::InlineFlowBox::placeBoxesVertically):
49147 2008-01-18  Geoffrey Garen  <ggaren@apple.com>
49149         Not reviewed: rolling out a previous patch.
49150         
49151         Fixed <rdar://problem/5695439> Crash during GCController destructor on
49152         quitting browser
49154         Used svn merge to roll out r29603 because it introduced some crashes
49155         on quit.
49156         
49157         GC relies on static hash tables, so it's not safe to GC from a static
49158         destructor, which might run after the static hash tables' destructors.
49160         * bindings/js/GCController.cpp:
49161         (WebCore::GCController::garbageCollectNow):
49162         * bindings/js/GCController.h:
49164 2008-01-18  David Hyatt  <hyatt@apple.com>
49166         Fix for http://bugs.webkit.org/show_bug.cgi?id=15665
49168         Building on Beth's earlier work to start building line boxes for empty inlines, this patch makes more
49169         empty inline cases work.  Empty inlines on lines by themselves now set isLineEmpty to false so that
49170         bidiReorderLine will get properly called.  In addition, the "shrink boxes with no text children" quirk
49171         needs to be disabled for inlines with padding, margins or borders.
49173         Reviewed by Beth
49175         Added fast/inline/inline-padding-disables-text-quirk.html
49177         * rendering/InlineFlowBox.cpp:
49178         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
49179         (WebCore::InlineFlowBox::placeBoxesVertically):
49180         (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
49181         * rendering/RenderObject.h:
49182         (WebCore::RenderObject::hasBordersPaddingOrMargin):
49183         * rendering/bidi.cpp:
49184         (WebCore::inlineFlowRequiresLineBox):
49185         (WebCore::RenderBlock::findNextLineBreak):
49187 2008-01-18  David Hyatt  <hyatt@apple.com>
49189         Fix for http://bugs.webkit.org/show_bug.cgi?id=14975
49191         Computed size of padding is incorrect because we default padding to auto.  This is a made-up value that
49192         was only used to implement cellpadding on tables.  We needed this made-up value in order to tell that
49193         padding wasn't set so that we could then apply cellpadding.
49194        
49195         This patch rewrites cellpadding to be like other browsers.  Instead of being a setting on the table
49196         renderer that applies to all cells (even ones that were not <td>s), cellpadding is now mapped into the
49197         style of <td>s.  With this change it effectively becomes a content model feature and not a rendering
49198         feature.
49200         For example, a <td> will pick up cellpadding even when it is not a cell and/or the enclosing <table> is
49201         not a table.  Anonymous cells and CSS-display-type cells will now never pick up cellpadding.  This behavior
49202         is all consistent with other browsers.
49204         Reviewed by Antti
49206         Added fast/css/padding-no-renderer.html
49208         * css/CSSStyleSelector.cpp:
49209         (WebCore::CSSStyleSelector::canShareStyleWithElement):
49210         (WebCore::CSSStyleSelector::styleForElement):
49211         * css/CSSStyleSelector.h:
49212         * dom/StyledElement.cpp:
49213         * dom/StyledElement.h:
49214         (WebCore::StyledElement::canHaveAdditionalAttributeStyleDecls):
49215         (WebCore::StyledElement::additionalAttributeStyleDecls):
49216         * html/HTMLTableCellElement.cpp:
49217         (WebCore::HTMLTableCellElement::additionalAttributeStyleDecls):
49218         * html/HTMLTableCellElement.h:
49219         (WebCore::HTMLTableCellElement::canHaveAdditionalAttributeStyleDecls):
49220         * html/HTMLTableColElement.cpp:
49221         (WebCore::HTMLTableColElement::additionalAttributeStyleDecls):
49222         * html/HTMLTableColElement.h:
49223         (WebCore::HTMLTableColElement::canHaveAdditionalAttributeStyleDecls):
49224         * html/HTMLTableElement.cpp:
49225         (WebCore::HTMLTableElement::parseMappedAttribute):
49226         (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
49227         (WebCore::HTMLTableElement::addSharedCellDecls):
49228         (WebCore::HTMLTableElement::addSharedCellBordersDecl):
49229         (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
49230         (WebCore::HTMLTableElement::addSharedGroupDecls):
49231         (WebCore::HTMLTableElement::attach):
49232         * html/HTMLTableElement.h:
49233         (WebCore::HTMLTableElement::canHaveAdditionalAttributeStyleDecls):
49234         * html/HTMLTableSectionElement.cpp:
49235         (WebCore::HTMLTableSectionElement::additionalAttributeStyleDecls):
49236         * html/HTMLTableSectionElement.h:
49237         (WebCore::HTMLTableSectionElement::canHaveAdditionalAttributeStyleDecls):
49238         * rendering/AutoTableLayout.cpp:
49239         (WebCore::AutoTableLayout::recalcColumn):
49240         * rendering/RenderObject.cpp:
49241         (WebCore::RenderObject::paddingTop):
49242         (WebCore::RenderObject::paddingBottom):
49243         (WebCore::RenderObject::paddingLeft):
49244         (WebCore::RenderObject::paddingRight):
49245         * rendering/RenderStyle.cpp:
49246         (WebCore::StyleSurroundData::StyleSurroundData):
49247         * rendering/RenderStyle.h:
49248         (WebCore::RenderStyle::initialPadding):
49249         * rendering/RenderTable.cpp:
49250         (WebCore::RenderTable::RenderTable):
49251         * rendering/RenderTable.h:
49253 2008-01-18  Dan Bernstein  <mitz@apple.com>
49255         Reviewed by Dave Hyatt.
49257         - fix <rdar://problem/5615307> Repro crash in WebKit!WebCore::RenderContainer::destroyLeftoverChildren
49259         Test: fast/table/insert-row-before-form.html
49261         * rendering/RenderTableRow.cpp:
49262         (WebCore::RenderTableRow::addChild): Changed to ensure that the
49263         object a new cell is inserted before is a child of the row, and
49264         added an assertion that that object is either a cell or a form.
49265         * rendering/RenderTableSection.cpp:
49266         (WebCore::RenderTableSection::addChild): Changed to ensure that the
49267         object a new row is inserted before is a child of the table section, and
49268         added an assertion that that object is either a table row or a form.
49270 2008-01-18  Geoffrey Garen  <ggaren@apple.com>
49272         Reviewed by Brady Eidson.
49274         Fixed <rdar://problem/5622424> World Leak dialog when closing a page
49275         that has a Database
49276         
49277         The problem was that each transaction and SQL statement would hold on
49278         to its callback indefinitely. By design, callbacks often establish
49279         reference cycles to temporarily protect their execution environments.
49280         To break the cycle, we need to explicitly release each callback as soon
49281         as it is no longer needed.
49283         * storage/SQLStatement.cpp:
49284         (WebCore::SQLStatement::performCallback): Release our callback objects
49285         after performing our callback.
49287         * storage/SQLTransaction.cpp:
49288         (WebCore::SQLTransaction::postflightAndCommit): Release our callback
49289         objects after the transaction has terminated.
49290         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): ditto.
49292 2008-01-18  Adele Peterson  <adele@apple.com>
49294         Reviewed by Antti.
49296         Fix for <rdar://problem/5679490> media controls fade in and out too jerkily and too slowly
49298         * rendering/RenderMedia.cpp: Shorten the duration for the fade in/out animation.
49300 2008-01-18  Beth Dakin  <bdakin@apple.com>
49302         Reviewed by Oliver.
49304         Disables SVG foreign object for <rdar://problem/5686989> turn off 
49305         SVG foreignobject because it does not repaint/dirty correctly
49307         * DerivedSources.make:
49308         * WebCore.SVG.ForeignObject.exp: Added.
49309         * WebCore.SVG.exp:
49310         * bindings/js/JSSVGElementWrapperFactory.cpp:
49311         (WebCore::createJSSVGWrapper):
49312         * rendering/RenderForeignObject.cpp:
49313         * rendering/RenderForeignObject.h:
49314         * svg/SVGForeignObjectElement.cpp:
49315         * svg/SVGForeignObjectElement.h:
49316         * svg/SVGForeignObjectElement.idl:
49317         * svg/SVGLocatable.cpp:
49318         (WebCore::SVGLocatable::nearestViewportElement):
49319         (WebCore::SVGLocatable::farthestViewportElement):
49320         * svg/SVGUseElement.cpp:
49321         (WebCore::isDisallowedElement):
49322         * svg/svgtags.in:
49324 2008-01-18  Mark Rowe  <mrowe@apple.com>
49326         Rubber-stamped by Adam Roben.
49328         Fix mixed line endings in FileSystemWin.cpp and set svn:eol-style to native
49329         to try and keep them consistent in the future.
49331         * platform/win/FileSystemWin.cpp:
49332         (WebCore::fileSize):
49333         (WebCore::fileExists):
49334         (WebCore::deleteFile):
49335         (WebCore::pathByAppendingComponent):
49336         (WebCore::fileSystemRepresentation):
49337         (WebCore::makeAllDirectories):
49338         (WebCore::homeDirectoryPath):
49339         (WebCore::bundleName):
49340         (WebCore::storageDirectory):
49341         (WebCore::cachedStorageDirectory):
49343 2008-01-18  Antti Koivisto  <antti@apple.com>
49345         Reviewed by Adam.
49347         Fix unreachable code warning in RenderVideo on Windows.
49348         
49349         Make switch cases explicit.
49351         * rendering/RenderImage.cpp:
49352         (WebCore::RenderImage::isWidthSpecified):
49353         (WebCore::RenderImage::isHeightSpecified):
49354         * rendering/RenderVideo.cpp:
49355         (WebCore::RenderVideo::isWidthSpecified):
49356         (WebCore::RenderVideo::isHeightSpecified):
49358 2008-01-18  Timothy Hatcher  <timothy@apple.com>
49360         Reviewed by Adam Roben.
49362         <rdar://problem/5693558> REGRESSION (r29581): no form field focus
49363         rings and inactive text selection after loading a page
49364         Bug 16910: [GTK] REGRESSION: keyboard cursor doesn't blink
49365         Bug 16917: REGRESSION (r29581/2): Google Maps search box loses focused appearance
49367         * page/FocusController.cpp:
49368         (WebCore::FocusController::setActive): Use focusedOrMainFrame() instead of focusedFrame()
49369         to call selectionController()->pageActivationChanged() for cases when the focusedFrame()
49370         has not been set yet. 
49372 2008-01-18  Alexey Proskuryakov  <ap@webkit.org>
49374         Reviewed by Brady.
49376         Database origin tracking is broken.
49378         * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::populateOrigins):
49379         Move reading from statement back into the loop (broken in r29386).
49381 2008-01-18  Marius Storm-Olsen  <marius@trolltech.com>
49383         Reviewed by Simon Hausmann <hausmann@webkit.org>.
49385         Add use of precompiled header, when building inside Qt.
49386         
49387         Compiling WebKit was taking forever; 17 minutes on my machine for _one_ build! Adding the PCH at least brings it down to 12 minutes for one build, for me.
49388         
49390         * WebCore.pro:
49392 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
49394         Reviewed by Holger.
49396         Fix fast/forms/button-state-restore.html
49397         
49398         Similar to the fix for fast/forms/form-post-urlencoded.html transform POST
49399         requests to data urls into GET.
49400         
49402         * platform/network/qt/QNetworkReplyHandler.cpp:
49403         (WebCore::QNetworkReplyHandler::start):
49405 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
49407         Reviewed by Holger.
49409         Fix LayoutTests/fast/cookies/local-file-can-set-cookies.html
49410         
49411         In WebCore::cookies() don't return the full raw form but only the name=value
49412         part. This fixes the getter part of the above test. The above test also
49413         requires a parsing fix in Qt 4.4's QNetworkCookie to fully pass.
49414         
49416         * platform/qt/CookieJarQt.cpp:
49417         (WebCore::cookies):
49419 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
49421         Reviewed by Holger.
49423         Fix svg/custom/path-getTotalLength.svg
49424         
49425         Path::apply creates a PathElement and its points array on the stack,
49426         to fill it in from the QPainterPath data and then use the platform
49427         independent path applier functions to calculate properties such as
49428         the length. For converting a QPainterPath::CurveToElement we need
49429         three points in the path element. However we allocated only two
49430         on the stack and as a result we got memory corruption and the
49431         failing test.
49432         
49434         * platform/graphics/qt/PathQt.cpp:
49435         (WebCore::Path::apply):
49437 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
49439         Reviewed by Holger.
49441         Fix LayoutTests/fast/dom/document-attribute-js-null.html
49442         
49443         Don't crash when trying to get/set cookies without a frameloader.
49444         
49446         * platform/qt/CookieJarQt.cpp:
49447         (WebCore::setCookies):
49448         (WebCore::cookies):
49450 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
49452         Reviewed by Holger.
49454         Fix fast/dom/xmlhttprequest-get.xhtml
49455         
49456         For local file requests remove the content length and the last-modified
49457         headers in the response.
49458         
49460         * platform/network/qt/QNetworkReplyHandler.cpp:
49461         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
49463 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
49465         Reviewed by Holger.
49467         Fix fast/forms/form-post-urlencoded.html.
49468         
49469         Post requests on files don't really make sense, but for
49470         fast/forms/form-post-urlencoded.html we still need to retrieve the file,
49471         which means we map it to a Get instead.
49472         
49474         * platform/network/qt/QNetworkReplyHandler.cpp:
49475         (WebCore::QNetworkReplyHandler::start):
49477 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
49479         Reviewed by Holger.
49481         Make QNetworkReplyHandler::abort() more robust against multiple invocations.
49483         During DRT runs I see cancel() being called on the same handle multiple times. Guard
49484         against this a bit better by setting m_reply to 0 after we called abort() on it.
49486         * platform/network/qt/QNetworkReplyHandler.cpp:
49487         (WebCore::QNetworkReplyHandler::abort):
49489 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
49491         Reviewed by Simon.
49493         * httpBody() can return 0 and other ports (cf/mac) check for this condition
49494         * Looking at the cf/mac implementation we might need to call setHTTPBody somewhere
49495         as well.
49496         
49498         WARNING: NO TEST CASES ADDED OR CHANGED
49500         * platform/network/qt/QNetworkReplyHandler.cpp:
49501         (WebCore::QNetworkReplyHandler::start):
49503 2008-01-18  Prasanth Ullattil  <prasanth.ullattil@trolltech.com>
49505         Reviewed by Simon Hausmann <hausmann@webkit.org>.
49507         Fix compilation in Win64(3): Due to the size of size_t cast the return value explicitly to double() to make sure the right Value() constructor is called.
49509         * xml/XPathFunctions.cpp:
49510         (WebCore::XPath::FunCount::evaluate):
49512 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
49514         Reviewed by Simon.
49516         * Remove our windowClipRect reimplementation and instead have our own
49517         Widget::invalidate implementation that is invalidating
49518         IntRect(0, 0, width(), height()) without trying to clip it (in contrast
49519         to Widget::invalidateRect)
49521         * platform/qt/PlatformScrollBar.h:
49522         * platform/qt/PlatformScrollBarQt.cpp:
49523         (WebCore::PlatformScrollbar::invalidate):
49525 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
49527         Reviewed by Simon.
49529         * Change the coordinate transformation in the PlatformMouseEvent handlers
49530         * We want to convert from coordinates of the containing window to our local
49531         position on the scrollbar.
49533         * platform/qt/PlatformScrollBarQt.cpp:
49534         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
49535         (WebCore::PlatformScrollbar::handleMousePressEvent):
49537 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
49539         Reviewed by Simon.
49541         * Make the qDebug more usable. Do not have an additional newline and print
49542         the untranslated coordinates as well.
49544         * platform/qt/PlatformScrollBarQt.cpp:
49545         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
49546         (WebCore::PlatformScrollbar::handleMousePressEvent):
49548 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
49550         Reviewed by Simon.
49552         * Dead code, remove it
49554         * platform/qt/PlatformScrollBarQt.cpp:
49556 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
49558         Reviewed by Simon.
49560         * Coding-Style fixes.
49562         * platform/qt/PlatformScrollBarQt.cpp:
49563         (WebCore::PlatformScrollbar::PlatformScrollbar):
49565 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
49567         Reviewed by Simon.
49569         * Coding-Style fix
49571         * platform/graphics/qt/ImageDecoderQt.cpp:
49572         (WebCore::ImageDecoderQt::ReadContext::ReadContext):
49574 2008-01-17  Geoffrey Garen  <ggaren@apple.com>
49576         Reviewed by Darin Adler.
49578         Fixed: lots of WebCore leaks reported when quitting Safari
49579         
49580         If we're quitting with a GC still scheduled, do the GC before quitting.
49581         That way, WebCore's leak counters won't count objects that were
49582         scheduled for GC.
49584         * bindings/js/GCController.cpp:
49585         (WebCore::GCController::~GCController):
49586         (WebCore::GCController::garbageCollectNow):
49587         * bindings/js/GCController.h:
49589 2008-01-17  Alp Toker  <alp@atoker.com>
49591         Reviewed by Oliver Hunt.
49593         gdk_screen_get_font_options() returns NULL if no default options are
49594         set so we always have to NULL check to avoid crashes later on since
49595         Cairo doesn't accept NULL font options.
49597         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
49598         (WebCore::FontPlatformData::FontPlatformData):
49600 2008-01-17  Antti Koivisto  <antti@apple.com>
49602         Reviewed by Adele.
49604         Windows fix for <rdar://problem/5605682>
49605         Disallow streaming protocols for media elements
49606         and <rdar://problem/5668711>
49607         Limit the container and codec types that the <video> tag supports
49608         
49609         - Disable unsupported QuickTime tracks types. 
49610         - Disallow streaming protocols (for now).
49612         * WebCore.vcproj/WebCore.vcproj:
49613         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
49614         (WebCore::MediaPlayerPrivate::updateStates):
49615         * platform/graphics/win/QTMovieWin.cpp:
49616         (QTMovieWin::load):
49617         (QTMovieWin::disableUnsupportedTracks):
49618         * platform/graphics/win/QTMovieWin.h:
49620 2008-01-17  Oliver Hunt  <oliver@apple.com>
49622         Support smart copy and paste during drag and drop
49623         
49624         Reviewed by Alice
49625         
49626         In order for the drag and drop tests in Windows DRT to pass
49627         we need to support smart cut and paste operations during
49628         drag and drop on windows.
49629         
49630         There is no layout test as drag and drop is still unsupported
49631         on windows.  Once supported smart drag/drop is tested by existing
49632         tests
49634         * platform/win/ClipboardUtilitiesWin.cpp:
49635         (WebCore::smartPasteFormat):
49636         * platform/win/ClipboardUtilitiesWin.h:
49637         * platform/win/ClipboardWin.cpp:
49638         (WebCore::ClipboardWin::writeRange):
49639         * platform/win/DragDataWin.cpp:
49641 2008-01-17  Oliver Hunt  <oliver@apple.com>
49643         Reviewed by Anders.
49645         <rdar://problem/5692940> Crash when attempting to get text properties in
49646         SVG with no renderer
49648         We use the element renderer to calculate the text element bounds,
49649         however there was no check against the possibility of the text dimension
49650         properties being requested on a element with no renderer (eg. unattached, 
49651         display: none).
49653         Test: svg/text/text-property-with-display-none.html
49655         * svg/SVGTextContentElement.cpp:
49656         (WebCore::rootInlineBoxForTextContentElement):
49658 2008-01-17  Anders Carlsson  <andersca@apple.com>
49660         Reviewed by Oliver.
49662         <rdar://problem/5636742>
49663         CrashTracer: [USER] 1302 crashes in Safari at com.apple.WebCore: WTF::Vector<char, 0ul>::reserveCapacity + 78
49664         
49665         When loading full-frame plug-ins, disable buffering data for the main resource loader. Otherwise, this can cause us
49666         to crash when loading large files such as movies in the browser. We already do this for embedded plug-ins.
49667         
49668         * WebCore.base.exp:
49669         * loader/DocumentLoader.h:
49670         (WebCore::DocumentLoader::mainResourceLoader):
49671         New accessor method.
49672         
49673         * loader/PluginDocument.cpp:
49674         (WebCore::PluginTokenizer::writeRawData):
49675         Disable buffering for the main resource loader.
49676         
49677         * loader/ResourceLoader.cpp:
49678         (WebCore::ResourceLoader::setShouldBufferData):
49679         * loader/ResourceLoader.h:
49680         Have this free the buffer when disabling buffering.
49682 2008-01-17  Adam Roben  <aroben@apple.com>
49684         More Qt/GTK+ build fixing.
49686         * platform/gtk/ScrollViewGtk.cpp:
49687         * platform/qt/ScrollViewQt.cpp:
49689 2008-01-17  Alexey Proskuryakov  <ap@webkit.org>
49691         Reviewed by Darin.
49693         http://bugs.webkit.org/show_bug.cgi?id=16902
49694         <rdar://problem/5692566> fast/encoding/mailto-always-utf-8.html fails when run after
49695         fast/dom/Window/window-property-shadowing.html
49697         Test: fast/dom/Window/window-property-shadowing_.html
49699         * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Clear the frame name, too.
49701 2008-01-17  Adam Roben  <aroben@apple.com>
49703         Qt/GTK+ build fix.
49705         * platform/gtk/ScrollViewGtk.cpp:
49706         (WebCore::ScrollView::ScrollViewPrivate::isActive):
49707         * platform/qt/ScrollViewQt.cpp:
49708         (WebCore::ScrollView::ScrollViewPrivate::isActive):
49710 2008-01-16  Adam Roben  <aroben@apple.com>
49712         Update scroll bars/form controls when FocusController::isActive changes
49714         Part of <rdar://5006915> Inactive look for Aqua controls
49716         Reviewed by Darin.
49718         All tests pass.
49720         * page/FocusController.cpp:
49721         (WebCore::FocusController::setActive): Update control tints when the
49722         active state changes.
49723         * page/FrameView.cpp:
49724         (WebCore::FrameView::updateControlTints): On Windows, we have to ask
49725         ScrollView to paint so that the outermost scroll bars will paint. On
49726         Mac, the outermost scroll bars are taken care of by NSScroller.
49727         * platform/PopupMenu.h: Updated for ScrollBarClient changes.
49728         * platform/ScrollBar.h: Added a new ScrollBarClient method.
49729         * platform/win/PlatformScrollBarSafari.cpp:
49730         (WebCore::PlatformScrollbar::paint): Invalidate when updating control
49731         tints so that we can paint with the new tint later.
49732         (WebCore::PlatformScrollbar::paintButton): Pass the active state down
49733         to SafariTheme.
49734         (WebCore::PlatformScrollbar::paintTrack): Ditto.
49735         (WebCore::PlatformScrollbar::paintThumb): Ditto.
49736         * platform/win/ScrollViewWin.cpp:
49737         (WebCore::ScrollView::ScrollViewPrivate::isActive): Added.
49738         (WebCore::ScrollView::paint): Pass paint calls on down if we're
49739         updating control tints so the scroll bars can invalidate.
49740         * rendering/RenderLayer.cpp:
49741         (WebCore::RenderLayer::isActive): Added.
49742         * rendering/RenderLayer.h:
49743         * rendering/RenderListBox.cpp:
49744         (WebCore::RenderListBox::isActive): Added.
49745         * rendering/RenderListBox.h:
49746         * rendering/RenderTheme.cpp:
49747         (WebCore::RenderTheme::isActive): Added.
49748         * rendering/RenderTheme.h:
49749         * rendering/RenderThemeSafari.cpp:
49750         (WebCore::RenderThemeSafari::determineState): Pass the active state
49751         down to SafariTheme.
49753 2008-01-16  Adam Roben  <aroben@apple.com>
49755         Move focused/active state from Frame to SelectionController/FocusController
49757         This is the first part of <rdar://5006915> Inactive look for Aqua
49758         controls.
49760         The following methods were moved/renamed:
49761             - Frame::setIsActive -> FocusController::setActive
49762             - Frame::isActive -> SelectionController::isActiveAndFocused
49763             - Frame::setWindowHasFocus -> SelectionController::setFocused
49765         Active state is now correctly a Page-level concept.
49767         The Mac parts of this patch were written by Darin.
49769         Reviewed by Darin.
49771         All tests pass.
49773         * WebCore.base.exp: Updated for method renames.
49774         * css/CSSStyleSelector.cpp:
49775         (WebCore::CSSStyleSelector::checkOneSelector): Ditto.
49776         * editing/SelectionController.cpp:
49777         (WebCore::SelectionController::SelectionController): Initialize new
49778         member.
49779         (WebCore::SelectionController::focusedOrActiveStateChanged): New
49780         private method. Most of this code came from Frame::setIsActive.
49781         (WebCore::SelectionController::pageActivationChanged): Added.
49782         (WebCore::SelectionController::setFocused): Added. Replaces
49783         Frame::setWindowHasFocus.
49784         (WebCore::SelectionController::isFocusedAndActive): Added. Replaces
49785         Frame::isActive.
49786         * editing/SelectionController.h:
49787         * page/FocusController.cpp:
49788         (WebCore::FocusController::FocusController): Initialize new member.
49789         (WebCore::FocusController::setFocusedFrame): Changed to just call
49790         SelectionController::setFocused, since active state has doesn't change
49791         when the focused frame changes.
49792         (WebCore::FocusController::setActive): Added. Replaces
49793         Frame::setIsActive.
49794         * page/FocusController.h:
49795         (WebCore::FocusController::isActive): Added.
49796         * page/Frame.cpp:
49797         (WebCore::Frame::setDocument): Updated for method renames.
49798         (WebCore::Frame::setFocusedNodeIfNeeded): Ditto.
49799         (WebCore::Frame::updateSecureKeyboardEntryIfActive): Ditto.
49800         (WebCore::FramePrivate::FramePrivate): Removed initialization of
49801         removed members.
49802         * page/Frame.h:
49803         * page/FramePrivate.h:
49804         * page/mac/WebCoreFrameBridge.h: Removed -selectionColor.
49805         * page/mac/WebCoreFrameBridge.mm: Ditto.
49806         * rendering/RenderListBox.cpp:
49807         (WebCore::RenderListBox::paintItemForeground): Updated for method
49808         renames.
49809         (WebCore::RenderListBox::paintItemBackground): Ditto.
49810         * rendering/RenderObject.cpp:
49811         (WebCore::RenderObject::selectionBackgroundColor): Ditto.
49812         (WebCore::RenderObject::selectionForegroundColor): Ditto.
49813         * rendering/RenderTextControl.cpp:
49814         (WebCore::RenderTextControl::capsLockStateMayHaveChanged): Ditto.
49815         * rendering/RenderTheme.cpp:
49816         (WebCore::RenderTheme::isFocused): Ditto.
49818 2008-01-17  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
49820         Reviewed by Simon.
49822         * Make the nice 'safari' feature work on our port. When viewing a single image, clicking
49823         on the image will zoom it.
49824         * It seems like our platform can only determine the size of the image once it is completely
49825         loaded. Call m_doc->imageChanged on the last chunk of data as well.
49827         * loader/ImageDocument.cpp:
49828         (WebCore::ImageTokenizer::finish):
49830 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
49832         Reviewed by Lars.
49834         Set the library version of QtWebKit to the Qt version.
49836         * WebCore.pro:
49838 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
49840         Reviewed by Holger.
49842         Re-enable gzip compression as accepted encoding, now that the bug is fixed in Qt 4.4's network module.
49844         * platform/network/qt/QNetworkReplyHandler.cpp:
49845         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
49847 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
49849         Another Windows build fix, setCookies accidentially had a const
49850         Document pointer.
49852         * platform/network/win/CookieJarWin.cpp:
49854 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
49856         MSVC Windows build fix. Forward declaring Document in CookieJar.h
49857         seems not enough for MSVC.
49859         * platform/network/win/CookieJarWin.cpp:
49861 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
49863         Reviewed by Maciej, Lars, Holger.
49865         http://bugs.webkit.org/show_bug.cgi?id=16589
49867         Add a document parameter to WebCore::cookies, setCookies and cookiesEnabled.
49869         * WebCore.pro:
49870         * bindings/js/kjs_navigator.cpp:
49871         (KJS::Navigator::getValueProperty):
49872         * dom/Document.cpp:
49873         (WebCore::Document::cookie):
49874         * platform/CookieJar.h:
49875         * platform/gtk/CookieJarGtk.cpp:
49876         (WebCore::setCookies):
49877         (WebCore::cookies):
49878         * platform/mac/CookieJar.mm:
49879         * platform/network/win/CookieJarWin.cpp:
49880         * platform/qt/CookieJarQt.cpp:
49881         (WebCore::setCookies):
49882         (WebCore::cookies):
49883         (WebCore::cookiesEnabled):
49884         * platform/wx/TemporaryLinkStubs.cpp:
49886 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
49888         Reviewed by Holger.
49890         Windows build fix. (use localtime_r again instead of _s)
49892         * loader/FTPDirectoryDocument.cpp:
49893         (WebCore::processFileDateString):
49895 2008-01-17  Frans Englich  <fenglich@trolltech.com>
49897         Reviewed by Simon Hausmann <hausmann@webkit.org>.
49899         Fix linking on MinGW and at least one MSVC platform by having gmtimeQt in the correct namespace.
49901         * loader/FTPDirectoryDocument.cpp:
49903 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
49905         Reviewed by Holger.
49907         Don't link QtWebKit against libQtXml when building against Qt 4.4.
49909         This is not necessary anymore since QXmlStream has been moved into QtCore.
49911         * WebCore.pro:
49913 2008-01-17  HÃ¥vard Wall  <hwall@trolltech.com>
49915         Reviewed by Simon Hausmann <hausmann@webkit.org>.
49917         Fix compilation on arm
49919         * platform/graphics/qt/GraphicsContextQt.cpp:
49920         (WebCore::GraphicsContext::endTransparencyLayer):
49922 2008-01-17  Simon Hausmann  <shausman@trolltech.com>
49924         Reviewed by Holger.
49926         Fix compilation against Qt 4.4 without files that are specific for the Qt 4.3 build.
49928         * WebCore.pro:
49929         * platform/network/qt/ResourceHandleQt.cpp:
49930         * platform/qt/MIMETypeRegistryQt.cpp:
49931         * platform/qt/PlugInInfoStoreQt.cpp:
49933 2008-01-17  Frans Englich  <fenglich@trolltech.com>
49935         Reviewed by Simon Hausmann <hausmann@webkit.org>.
49937         Fixes compilation with MinGW.
49938         Neither localtime_r nor localtime_s are available on MingW, so instead of
49939         calling back to the thread-unsafe localtime use QDateTime instead.
49941         * loader/FTPDirectoryDocument.cpp:
49942         (WebCore::FTPDirectoryTokenizer::WebCore::processFilesizeString):
49943         (WebCore::FTPDirectoryTokenizer::WebCore::wasLastDayOfMonth):
49944         (WebCore::FTPDirectoryTokenizer::WebCore::WebCore::gmtimeQt):
49945         * loader/FTPDirectoryParser.cpp:
49946         (WebCore::parseOneFTPLine):
49948 2008-01-17  Dan Bernstein  <mitz@apple.com>
49950         Reviewed by Dave Hyatt.
49952         - fix determinePitch for segmented fonts
49954         Covered by fast/css/font-face-implicit-local-font.html
49956         * platform/graphics/FontFallbackList.cpp:
49957         (WebCore::FontFallbackList::determinePitch): If the primary font is
49958         segmented, treat as fixed pitch only if it has only one segment
49959         and that segment is fixed-pitch.
49961 2008-01-16  David Hyatt  <hyatt@apple.com>
49963         Fix for http://bugs.webkit.org/show_bug.cgi?id=16611
49965         Make sure vertical-align length values are offset from their parents rather than being absolute to the
49966         line.
49968         Reviewed by olliej
49970         Added fast/css/vertical-align-lengths.html
49972         * rendering/RenderObject.cpp:
49973         (WebCore::RenderObject::getVerticalPosition):
49975 2008-01-16  Dan Bernstein  <mitz@apple.com>
49977         Reviewed by Dave Hyatt.
49979         - fix for @font-face rules with unicode-range: always use a local font where not
49980           explicitly overlaid.
49982         Test: fast/css/font-face-implicit-local-font.html
49984         * css/CSSFontSelector.cpp:
49985         (WebCore::CSSFontSelector::addFontFaceRule): Changed to insert an implicit
49986         @font-face rule with the local font the matches the family and description before
49987         any explicit @font-face rules that overlay specific ranges of the same font.
49988         * css/CSSSegmentedFontFace.h:
49989         (WebCore::CSSSegmentedFontFace::numRanges): Addded.
49991 2008-01-16  Antti Koivisto  <antti@apple.com>
49993         Fix Tiger build.
49995         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
49996         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
49998 2008-01-16  Antti Koivisto  <antti@apple.com>
50000         Reviewed by Adele.
50001         
50002         OS X fix for <rdar://problem/5605682>
50003         Disallow streaming protocols for media elements
50004         and <rdar://problem/5668711>
50005         Limit the container and codec types that the <video> tag supports
50006         
50007         - Disable unsupported QuickTime tracks types. 
50008         - Disallow streaming protocols (for now).
50009         - Set QTMovie QTMoviePreventExternalURLLinksAttribute and QTSecurityPolicyNoCrossSiteAttribute 
50010           to limit QuickTime's access to external resources.
50011         
50012         Windows patch coming up.
50014         Tests: media/broken-video.html
50015                media/unsupported-rtsp.html
50016                media/unsupported-tracks.html
50018         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
50019         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
50020         (WebCore::MediaPlayerPrivate::createQTMovie):
50021         (WebCore::MediaPlayerPrivate::updateStates):
50022         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
50024 2008-01-16  Rodney Dawes  <dobey@wayofthemonkey.com>
50026         Reviewed by Alp Toker.
50028         http://bugs.webkit.org/show_bug.cgi?id=16897
50029         Add shared plugins directory to INCLUDE path
50031         Add the plugins directory to INCLUDEPATH
50033         * GNUmakefile.am:
50034         * WebCore.pro:
50036 2008-01-16  Geoffrey Garen  <ggaren@apple.com>
50038         Reviewed by Sam Weinig.
50039         
50040         Added a debug counter for SQL transactions. This helped me debug an SQL
50041         leak.
50043         * bindings/js/JSCustomSQLTransactionCallback.cpp:
50044         (WebCore::JSCustomSQLTransactionCallbackCounter::~JSCustomSQLTransactionCallbackCounter):
50045         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
50046         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
50047         * bindings/js/JSCustomSQLTransactionCallback.h:
50049         * bindings/js/kjs_window.cpp: Removed a silly comment.
50051 2008-01-16  David Hyatt  <hyatt@apple.com>
50053         Fix for http://bugs.webkit.org/show_bug.cgi?id=14846, cell padding can't be changed dynamically.
50055         Reviewed by Eric Seidel
50057         Added fast/table/dynamic-cellpadding.html
50059         * html/HTMLTableElement.cpp:
50060         (WebCore::HTMLTableElement::parseMappedAttribute):
50061         * rendering/RenderTable.cpp:
50062         (WebCore::RenderTable::setCellPadding):
50063         * rendering/RenderTable.h:
50065 2008-01-16  David Hyatt  <hyatt@apple.com>
50067         Fix for <rdar://problem/5681647> Item pages on http://www.stendmarsofa.com/ hang Safari
50069         This regression was caused by an attempt to implement a WinIE quirk in RenderBlock::calcInlinePrefWidths.
50070         The original patch introduced pathological O(n^2) behavior into this function even when the quirk didn't need
50071         to apply.  In addition the quirk was only partially implemented (the full quirk did not care what was adjacent
50072         to images and also needed bidi.cpp patched, since the quirk applies both when computing pref widths and when
50073         laying out).
50075         This new patch rewrites the quirk to be complete.  The original test case attached to the bug that tested a variety
50076         of image/text combinations now fully matches WinIE.
50078         Reviewed by Beth
50080         Added fast/table/unbreakable-images-quirk.html
50082         * rendering/RenderBlock.cpp:
50083         (WebCore::RenderBlock::calcInlinePrefWidths):
50084         * rendering/bidi.cpp:
50085         (WebCore::RenderBlock::findNextLineBreak):
50087 2008-01-16  Rodney Dawes  <dobey@wayofthemonkey.com>
50089         Reviewed by Jon Honeycutt
50091         Move isPluginBlacklisted to PluginPackageWin.cpp, to avoid
50092         a circular dependency on PluginDatabaseWin
50093         Remove the getFileVersion method, and just check the versions directly
50094         in isPluginBlacklisted, as it was the only caller
50096         http://bugs.webkit.org/show_bug.cgi?id=16884
50098         * plugins/win/PluginDatabaseWin.cpp:
50099         * plugins/win/PluginDatabaseWin.h:
50100         * plugins/win/PluginPackageWin.cpp:
50101         * plugins/win/PluginPackageWin.h:
50103 2008-01-16  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
50105         Reviewed by Lars.
50107         * Set the cursor on the containingWindow() instead of the
50108         nativeWidget()
50109         * This should be safe even with plugins as the cursor is set
50110         on the mouse events.
50112         * platform/qt/WidgetQt.cpp:
50113         (WebCore::Widget::setCursor):
50115 2008-01-16  Brad Hughes  <bhughes@trolltech.com>
50117         Reviewed by Lars.
50119         Improve the sqlite3 dependency when building WebKit inside Qt.
50121         Build sqlite3 into QtWebKit if a system sqlite3 development package
50122         can't be found.
50124         * WebCore.pro:
50126 2008-01-16  Lars Knoll  <lars@trolltech.com>
50128         Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.
50130         Implement GraphicsContext::clipOut and fix transparency layers.
50132         Transparency layers where broken in two ways: It always used the
50133         complete device rect as the size of the layer pixmap and the pixmaps
50134         where not correctly initialized to transparent.
50136         This fixes the worst drawing errors in the Inspector and makes drawing it
50137         10 times faster.
50139         * platform/graphics/qt/GraphicsContextQt.cpp:
50140         (WebCore::toQtLineJoin):
50141         (WebCore::TransparencyLayer::TransparencyLayer):
50142         (WebCore::GraphicsContextPlatformPrivate::p):
50143         (WebCore::GraphicsContext::platformContext):
50144         (WebCore::GraphicsContext::savePlatformState):
50145         (WebCore::GraphicsContext::restorePlatformState):
50146         (WebCore::GraphicsContext::drawRect):
50147         (WebCore::GraphicsContext::drawLine):
50148         (WebCore::GraphicsContext::drawEllipse):
50149         (WebCore::GraphicsContext::strokeArc):
50150         (WebCore::GraphicsContext::drawConvexPolygon):
50151         (WebCore::GraphicsContext::fillRect):
50152         (WebCore::GraphicsContext::fillRoundedRect):
50153         (WebCore::GraphicsContext::clip):
50154         (WebCore::GraphicsContext::drawFocusRing):
50155         (WebCore::GraphicsContext::beginTransparencyLayer):
50156         (WebCore::GraphicsContext::endTransparencyLayer):
50157         (WebCore::GraphicsContext::clearRect):
50158         (WebCore::GraphicsContext::strokeRect):
50159         (WebCore::GraphicsContext::setLineCap):
50160         (WebCore::GraphicsContext::setLineJoin):
50161         (WebCore::GraphicsContext::setMiterLimit):
50162         (WebCore::GraphicsContext::setAlpha):
50163         (WebCore::GraphicsContext::setCompositeOperation):
50164         (WebCore::GraphicsContext::clipOut):
50165         (WebCore::GraphicsContext::translate):
50166         (WebCore::GraphicsContext::origin):
50167         (WebCore::GraphicsContext::rotate):
50168         (WebCore::GraphicsContext::scale):
50169         (WebCore::GraphicsContext::clipOutEllipseInRect):
50170         (WebCore::GraphicsContext::addInnerRoundedRectClip):
50171         (WebCore::GraphicsContext::setPlatformStrokeStyle):
50172         (WebCore::GraphicsContext::setPlatformStrokeThickness):
50173         (WebCore::GraphicsContext::setPlatformFillColor):
50174         (WebCore::GraphicsContext::setUseAntialiasing):
50176 2008-01-16  Lars Knoll  <lars@trolltech.com>
50178         Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.
50180         Trivially implement the themed search field by mapping it to a text field
50182         Also add a bunch of notImplemented warnings for other places where we don't
50183         have an implementatin in RenderTheme.
50185         * platform/qt/RenderThemeQt.cpp:
50186         (WebCore::RenderThemeQt::paintTextField):
50187         (WebCore::RenderThemeQt::paintMenuListButton):
50188         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
50189         (WebCore::RenderThemeQt::paintSliderTrack):
50190         (WebCore::RenderThemeQt::paintSliderThumb):
50191         (WebCore::RenderThemeQt::paintSearchField):
50192         (WebCore::RenderThemeQt::adjustSearchFieldStyle):
50193         (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
50194         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
50195         (WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
50196         (WebCore::RenderThemeQt::paintSearchFieldDecoration):
50197         (WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
50198         (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
50200 2008-01-16  Holger Freyther  <holger.freyther@trolltech.com>
50202         Reviewed by Simon.
50204         * Follow the EventHandlerWin.cpp and always return true in the handlers.
50205         * Match the windows implementation more closely as well.
50206         * This is fixing "selection" bugs with the Web Inspector
50208         * page/qt/EventHandlerQt.cpp:
50209         (WebCore::EventHandler::focusDocumentView):
50210         (WebCore::EventHandler::passMousePressEventToSubframe):
50211         (WebCore::EventHandler::passMouseMoveEventToSubframe):
50212         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
50213         (WebCore::EventHandler::passMousePressEventToScrollbar):
50215 2008-01-16  Simon Hausmann  <hausmann@webkit.org>
50217         Reviewed by Lars Knoll <lars@trolltech.com>.
50219         Fix crashes in the new networking code.
50221         When the ResourceLoader cancels the handle we have to make sure not to access
50222         the resource handle afterwards again.
50224         * platform/network/qt/QNetworkReplyHandler.cpp:
50225         (WebCore::QNetworkReplyHandler::finish):
50226         (WebCore::QNetworkReplyHandler::forwardData):
50228 2008-01-16  Lars Knoll  <lars@trolltech.com>
50230         Reviewed by Simon.
50232         add conversion methods from and to QUrl to KURL.
50234         Use them in the places I found at the moment. Fixes a bug
50235         where form data was encoded twice.
50236         Also fix QWebSettings to take a QUrl for the user style sheet
50237         location.
50239         * WebCore.pro:
50240         * platform/KURL.h:
50241         * platform/network/qt/QNetworkReplyHandler.cpp:
50242         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
50243         * platform/network/qt/ResourceRequestQt.cpp:
50244         (WebCore::ResourceRequest::toNetworkRequest):
50245         * platform/qt/KURLQt.cpp: Added.
50246         (WebCore::KURL::KURL):
50247         (WebCore::KURL::operator QUrl):
50249 2008-01-15  Darin Adler  <darin@apple.com>
50251         Rubber-stamped by Maciej Stachowiak and Oliver Hunt.
50253         - fix <rdar://problem/5689748> REGRESSION: Cannot redirect to protocols handled by external applications
50255         Put navigation policy delegate calls back for redirects.
50256         Just rolled out the change where I took them out.
50258         * loader/MainResourceLoader.cpp:
50259         (WebCore::MainResourceLoader::callContinueAfterNavigationPolicy):
50260         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
50261         (WebCore::MainResourceLoader::willSendRequest):
50262         * loader/MainResourceLoader.h:
50264 2008-01-15  Adele Peterson  <adele@apple.com>
50266         Reviewed by Sam.
50268         Remove unused variable for old media control background drawing code.
50270         * rendering/RenderThemeMac.h:
50271         * rendering/RenderThemeMac.mm:
50272         (WebCore::RenderThemeMac::RenderThemeMac):
50273         (WebCore::RenderThemeMac::~RenderThemeMac):
50275 2008-01-15  Sam Weinig  <sam@webkit.org>
50277         Reviewed by Geoffrey Garen.
50279         Fix <rdar://problem/5595552> r27608 introduced a 20% increase in JS binary size, 4% increase in WebCore binary size
50281         - Update JS Function implementations to use a static function based method. This decreases
50282           the binary size of an Intel only build by 1013.5K.
50284         * WebCore.xcodeproj/project.pbxproj:
50285         * bindings/js/JSDOMWindowCustom.cpp:
50286         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
50287         * bindings/js/JSEventTargetBase.cpp:
50288         (WebCore::jsEventTargetAddEventListener):
50289         (WebCore::jsEventTargetRemoveEventListener):
50290         (WebCore::jsEventTargetDispatchEvent):
50291         (WebCore::retrieveEventTargetAndCorrespondingNode):
50292         * bindings/js/JSEventTargetBase.h:
50293         * bindings/js/JSHTMLInputElementBase.cpp:
50294         (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
50295         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
50296         * bindings/js/JSHTMLInputElementBase.h:
50297         * bindings/js/JSLocation.cpp:
50298         (WebCore::JSLocation::getOwnPropertySlot):
50299         (WebCore::jsLocationProtoFuncReplace):
50300         (WebCore::jsLocationProtoFuncReload):
50301         (WebCore::jsLocationProtoFuncAssign):
50302         (WebCore::jsLocationProtoFuncToString):
50303         * bindings/js/JSLocation.h:
50304         * bindings/js/JSXMLHttpRequest.cpp:
50305         (KJS::jsXMLHttpRequestPrototypeFunctionAbort):
50306         (KJS::jsXMLHttpRequestPrototypeFunctionGetAllResponseHeaders):
50307         (KJS::jsXMLHttpRequestPrototypeFunctionGetResponseHeader):
50308         (KJS::jsXMLHttpRequestPrototypeFunctionOpen):
50309         (KJS::jsXMLHttpRequestPrototypeFunctionSend):
50310         (KJS::jsXMLHttpRequestPrototypeFunctionSetRequestHeader):
50311         (KJS::jsXMLHttpRequestPrototypeFunctionOverrideMIMEType):
50312         (KJS::jsXMLHttpRequestPrototypeFunctionAddEventListener):
50313         (KJS::jsXMLHttpRequestPrototypeFunctionRemoveEventListener):
50314         (KJS::jsXMLHttpRequestPrototypeFunctionDispatchEvent):
50315         * bindings/js/JSXMLHttpRequest.h:
50316         * bindings/js/JSXSLTProcessor.cpp:
50317         (KJS::jsXSLTProcessorPrototypeFunctionImportStylesheet):
50318         (KJS::jsXSLTProcessorPrototypeFunctionTransformToFragment):
50319         (KJS::jsXSLTProcessorPrototypeFunctionTransformToDocument):
50320         (KJS::jsXSLTProcessorPrototypeFunctionSetParameter):
50321         (KJS::jsXSLTProcessorPrototypeFunctionGetParameter):
50322         (KJS::jsXSLTProcessorPrototypeFunctionRemoveParameter):
50323         (KJS::jsXSLTProcessorPrototypeFunctionClearParameters):
50324         (KJS::jsXSLTProcessorPrototypeFunctionReset):
50325         * bindings/js/JSXSLTProcessor.h:
50326         * bindings/js/kjs_events.cpp:
50327         (WebCore::jsClipboardPrototypeFunctionClearData):
50328         (WebCore::jsClipboardPrototypeFunctionGetData):
50329         (WebCore::jsClipboardPrototypeFunctionSetData):
50330         (WebCore::jsClipboardPrototypeFunctionSetDragImage):
50331         * bindings/js/kjs_events.h:
50332         * bindings/js/kjs_navigator.cpp:
50333         (KJS::pluginsFunctionRefresh):
50334         (KJS::navigatorProtoFuncJavaEnabled):
50335         * bindings/js/kjs_navigator.h:
50336         * bindings/js/kjs_window.cpp:
50337         (KJS::Window::getOwnPropertySlot):
50338         (KJS::windowProtoFuncAToB):
50339         (KJS::windowProtoFuncBToA):
50340         (KJS::windowProtoFuncOpen):
50341         (KJS::windowProtoFuncSetTimeout):
50342         (KJS::windowProtoFuncClearTimeout):
50343         (KJS::windowProtoFuncSetInterval):
50344         (KJS::windowProtoFuncAddEventListener):
50345         (KJS::windowProtoFuncRemoveEventListener):
50346         (KJS::windowProtoFuncShowModalDialog):
50347         (KJS::windowProtoFuncNotImplemented):
50348         * bindings/js/kjs_window.h:
50349         * bindings/scripts/CodeGenerator.pm:
50350         * bindings/scripts/CodeGeneratorJS.pm:
50352 2008-01-15  Adele Peterson  <adele@apple.com>
50354         Reviewed by Dan.
50356         Fix for <rdar://problem/5682492> With the <video> element, the audio is heard when forwarding or rewinding a movie while it's playing
50358         * rendering/MediaControlElements.cpp: (WebCore::MediaControlSeekButtonElement::defaultEventHandler):
50359           Instead of pausing the media when you stop seeking on mouse up, pause the video when you first start seeking on mouse down. 
50361 2008-01-15  Alp Toker  <alp@atoker.com>
50363         Rubber-stamped by Anders.
50365         Make the HTTP backend configurable in the GTK+ port. curl is currently
50366         the only option.
50368         * GNUmakefile.am:
50370 2008-01-15  Adele Peterson  <adele@apple.com>
50372         Build fix.
50374         * rendering/RenderThemeSafari.cpp: Removing MediaBackgroundAppearance.
50376 2008-01-14  Samuel Weinig  <sam@webkit.org>
50378         Reviewed by Darin.
50380         Fix for <rdar://problem/5671040>
50381         REGRESSION: 6% HTML iBench regression from r28722 (getElementsByClassName)
50383         On my most consistent tests, this brings the HTML iBench from 1.46 -> 1.41,
50384         which does not completely make up reported regression, but I was not able to
50385         reproduce those findings either.
50387         * css/CSSStyleSelector.cpp:
50388         (WebCore::CSSStyleSelector::matchRules):
50389         (WebCore::CSSStyleSelector::checkOneSelector):
50390         * dom/ClassNames.cpp:
50391         (WebCore::ClassNames::parseClassAttribute):
50392         * dom/ClassNames.h:
50393         (WebCore::ClassNames::contains):
50394         (WebCore::ClassNames::operator[]):
50396 2008-01-15  Adele Peterson  <adele@apple.com>
50398         Build fix.  This time for real.
50400         * rendering/RenderThemeSafari.cpp:
50402 2008-01-15  Adele Peterson  <adele@apple.com>
50404         Build fix.
50406         * rendering/RenderThemeSafari.cpp:
50408 2008-01-15  Dan Bernstein  <mitz@apple.com>
50410         Reviewed by Darin Adler.
50412         - fix <rdar://problem/5666926> svg/custom/use-css-no-effect-on-shadow-tree.svg is failing
50414         * svg/SVGPreserveAspectRatio.cpp:
50415         (WebCore::SVGPreserveAspectRatio::getCTM): Changed the arguments' type
50416         from float to double in order to make the values passed to scale() and
50417         translate() on Mac OS X and on Windows the same.
50418         * svg/SVGPreserveAspectRatio.h:
50420 2008-01-15  Alexey Proskuryakov  <ap@webkit.org>
50422         Reviewed by Darin.
50424         <rdar://problem/5342813> REGRESSION: Safari encodes mailto URLs incorrectly
50426         Test: fast/encoding/mailto-always-utf-8.html
50428         * platform/KURL.cpp: (WebCore::encodeRelativeString): Always use UTF-8 for mailto URLs.
50430 2008-01-15  Adele Peterson  <adele@apple.com>
50432         Reviewed by Adam and Antti.
50434         WebCore part of fix for <rdar://problem/5619062> Add load progress indicator to video controls
50436         * WebCore.base.exp: Removed symbol for wkGetMediaControlBackgroundImageData.  Added symbol for wkDrawMediaSliderTrack.
50437         * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Removed case for MediaBackgroundAppearance.
50438         * css/html4.css: Removed -webkit-appearance: media-background rule for the media panel element.  Removed unnecessary margin for slider.
50439         * rendering/RenderStyle.h: (WebCore::): Removed MediaBackgroundAppearance.
50441         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
50442           Call updateMediaPlayer more frequently so the load progress control gets updated appropriately.
50443         * platform/mac/WebCoreSystemInterface.h: Removed wkGetMediaControlBackgroundImageData.  Added wkDrawMediaSliderTrack.
50444         * platform/mac/WebCoreSystemInterface.mm: ditto.
50446         * rendering/RenderTheme.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
50447         * rendering/RenderTheme.cpp: (WebCore::RenderTheme::paint): Call paintMediaSliderTrack for elements with MediaSliderAppearance.
50448         * rendering/RenderThemeMac.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
50449         * rendering/RenderThemeMac.mm:
50450         (WebCore::RenderThemeMac::adjustSliderThumbSize): Added different sizes for the media slider thumb.
50451         (WebCore::RenderThemeMac::paintMediaSliderTrack): Added.  Calls wkDrawMediaSliderTrack with the percentage the media has loaded.
50452         * rendering/RenderThemeSafari.cpp: ditto.
50453         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
50454         (WebCore::RenderThemeSafari::paintMediaSliderTrack):
50455         * rendering/RenderThemeSafari.h:
50457 2008-01-15  Alexey Proskuryakov  <ap@webkit.org>
50459         Reviewed by Mark Rowe.
50461         Some logging channels weren't initialized from user defaults.
50463         * platform/mac/LoggingMac.mm: (WebCore::InitializeLoggingChannelsIfNecessary):
50464         Initialize LogPlatformLeaks, LogStorageAPI, LogMedia, LogPlugin.
50466 2008-01-14  Steve Falkenburg  <sfalken@apple.com>
50468         Use shared vsprops for most vcproj properties.
50469         
50470         Reviewed by Darin.
50472         * WebCore.vcproj/QTMovieWin.vcproj:
50473         * WebCore.vcproj/WebCore.vcproj:
50474         * platform/graphics/win/QTMovieWin.cpp:
50475         (QTMovieWin::initializeQuickTime): Fix compiler warning.
50477 2008-01-14  Eric Seidel  <eric@webkit.org>
50479         Reviewed by mjs.
50481         Remove a couple more uses of DeprecatedString
50483         No functional changes, thus no test case.
50485         * dom/Document.cpp:
50486         (WebCore::Document::write):
50487         (WebCore::Document::writeln):
50488         (WebCore::Document::recalcStyleSelector):
50489         * dom/Document.h:
50491 2008-01-14  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
50493         Reviewed by Alp Toker.
50495         Build fix: missing symbols when compiling WebKit/Gtk+ with --enable-svg-filters
50496         http://bugs.webkit.org/show_bug.cgi?id=16874
50498         * GNUmakefile.am:
50499         * svg/graphics/cairo/SVGResourceFilterCairo.cpp: Added.
50500         (WebCore::SVGResourceFilter::createPlatformData):
50501         (WebCore::SVGResourceFilter::prepareFilter):
50502         (WebCore::SVGResourceFilter::applyFilter):
50504 2008-01-14  Finnur Thorarinsson  <finnur.webkit@gmail.com>
50506         Reviewed by hyatt & eseidel.
50508         - fix http://bugs.webkit.org/show_bug.cgi?id=16844
50509         RenderText::addLineBoxRects erroneously includes last char for boundingBox
50511         This patch fixes an issue with addLineBoxRects not correctly calculating the 
50512         rects due to an off-by-one error in using box->end(). We were assuming that 
50513         end() gives the index past the last character, when in fact it gives the 
50514         index _of_ the last character. 
50516         Eric Seidel and I could not find a way to test this via DRT. This method is 
50517         only used by WebKit or Safari for displaying selection rects AFAICT.
50519         * rendering/RenderText.cpp:
50520         (WebCore::RenderText::addLineBoxRects):
50522 2008-01-14  Darin Adler  <darin@apple.com>
50524         Reviewed by Geoff.
50526         - fix crash seen in layout tests
50528         * html/HTMLFrameSetElement.cpp:
50529         (WebCore::HTMLFrameSetElement::attach):
50530         Remove incorrect cast to HTMLElement* for parentNode(). The parent is either an
50531         HTMLElement or a Document, not necessarily an HTMLElement.
50533 2008-01-14  Darin Adler  <darin@apple.com>
50535         Reviewed by Sam.
50537         - fix mistakes Sam noticed in my re-speed-up patch
50539         * dom/Element.cpp:
50540         (WebCore::Element::virtualHasTagName): Moved out of header file. No reason to make
50541         this inline.
50542         * dom/Element.h: Moved virtualHasTagName out of header file.
50544         * dom/Node.cpp:
50545         (WebCore::Node::virtualHasTagName): Moved out of header file. No reason to make
50546         this inline.
50547         * dom/Node.h: Removed incorrect "virtual" on hasTagName and moved virtualHasTagName
50548         out of header file.
50550         * platform/text/StringBuffer.h: Added. Has just the new StringBuffer class.
50552         * platform/text/StringImpl.h: Removed StringBuffer class.
50554         * loader/DocumentLoader.cpp: Added StringBuffer.h include.
50555         * platform/text/String.cpp: Ditto.
50556         * platform/text/StringImpl.cpp: Ditto.
50557         * platform/text/TextCodecLatin1.cpp: Ditto.
50558         * platform/text/TextCodecUTF16.cpp: Ditto.
50559         * platform/text/TextCodecUserDefined.cpp: Ditto.
50561         * WebCore.vcproj/WebCore.vcproj: Added StringBuffer.h.
50562         * WebCore.xcodeproj/project.pbxproj: Ditto.
50564 2008-01-14  Dave Hyatt  <hyatt@apple.com>
50566         Clean up all the misplaced graphics files after the recent file moves.  Clean up the project to
50567         accurately reflect the location of all the graphics files.
50568         
50569         Reviewed by Adam
50571         * WebCore.vcproj/WebCore.vcproj:
50572         * platform/graphics/win/GraphicsContextWin.cpp: Copied from platform/win/GraphicsContextWin.cpp.
50573         * platform/graphics/win/UniscribeController.cpp: Copied from platform/win/UniscribeController.cpp.
50574         * platform/graphics/win/UniscribeController.h: Copied from platform/win/UniscribeController.h.
50575         * platform/win/GraphicsContextWin.cpp: Removed.
50576         * platform/win/UniscribeController.cpp: Removed.
50577         * platform/win/UniscribeController.h: Removed.
50579 2008-01-14  Geoffrey Garen  <ggaren@apple.com>
50581         Reviewed by Sam Weinig.
50582         
50583         Some cleanup to my last patch.
50585         Removed one unused setter declaration and one unused setter definition.
50586         
50587         Renamed DoNotCheckDomainSecurityOnRead to DoNotCheckDomainSecurityOnGet
50588         because "get" is all over the IDL files, and "read" is not.
50590         * bindings/scripts/CodeGeneratorJS.pm:
50591         * page/DOMWindow.h:
50592         (WebCore::DOMWindow::defaultstatus):
50593         * page/DOMWindow.idl:
50595 2008-01-14  Dan Bernstein  <mitz@apple.com>
50597         Rubber-stamped by Alice Liu.
50599         - remove reference to nonexistent file
50601         * WebCore.vcproj/WebCore.vcproj: Removed reference to SVGFont.h.
50603 2008-01-14  Darin Adler  <darin@apple.com>
50605         Reviewed by Adam.
50607         - re-speed-up the page load test (my StringImpl change slowed it down)
50608           <rdar://problem/5677241> 1.5% PLT regression from r29098
50610         To reverse the slowdown I caused by changing StringImpl, I tightened it up,
50611         and also did a little optimization in the HTML tokenizer and in other clients
50612         of Vector.
50614         * WebCore.base.exp: Removed export of a now-inline function.
50616         * css/CSSParser.cpp:
50617         (WebCore::CSSParser::parseTransitionProperty): Removed use of DeprecatedString
50618         to get property ID. This could be sped up even more by writing a fast path
50619         to use a local Vector<char> rather than allocating a string.
50620         (WebCore::convertASCIIToFloat): Added. Allows numeric conversion without
50621         allocating a string object to hold the number.
50622         (WebCore::CSSParser::lex): Changed to call convertASCIIToFloat instead of
50623         DeprecatedString::toFloat.
50625         * dom/Element.h:
50626         (WebCore::Element::hasTagName): Made this non-virtual and inline if you have
50627         an Element*. It's still virtual if you have a Node*.
50628         (WebCore::Element::virtualHasTagName): Virtual version that makes the Node*
50629         case work.
50631         * dom/Node.h:
50632         (WebCore::Node::hasTagName): Made this non-virtual and inline so that Element
50633         can override it with an inline. This is the same technique we use for
50634         firstChild and lastChild.
50635         (WebCore::Node::virtualHasTagName): This is the private virtual that Element
50636         overrides.
50638         * dom/Text.cpp:
50639         (WebCore::Text::splitText): Clean up by using a RefPtr here instead of a
50640         PassRefPtr.
50642         * html/HTMLTokenizer.cpp:
50643         (WebCore::HTMLTokenizer::parseSpecial): Use the new advancePastNonNewline(),
50644         which is more efficient in cases where we know the character is not a newline
50645         and hence we don't have to update the line number.
50646         (WebCore::HTMLTokenizer::parseComment): Ditto.
50647         (WebCore::HTMLTokenizer::parseServer): Ditto.
50648         (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
50649         (WebCore::HTMLTokenizer::parseText): Ditto.
50650         (WebCore::HTMLTokenizer::parseEntity): Ditto.
50651         (WebCore::HTMLTokenizer::parseTag): Ditto. Also streamline the QuotedValue case
50652         so there's one less branch taken for non-punctuation characters since this
50653         code path is *so* hot.
50654         (WebCore::HTMLTokenizer::write): More of the same.
50656         * loader/Cache.cpp:
50657         (WebCore::Cache::lruListFor): Use Vector::grow instead of resize.
50659         * loader/DocumentLoader.cpp:
50660         (WebCore::canonicalizedTitle): Use StringBuffer instead of Vector<UChar>.
50662         * loader/TextResourceDecoder.cpp:
50663         (WebCore::TextResourceDecoder::checkForCSSCharset): Use Vector::grow instead of resize.
50664         (WebCore::TextResourceDecoder::checkForHeadCharset): Ditto.
50665         (WebCore::TextResourceDecoder::decode): Use Vector::grow and shrink instead of resize.
50666         (WebCore::TextResourceDecoder::flush): Use Vector::shrink instead of resize.
50668         * platform/KURL.cpp:
50669         (WebCore::KURL::decode_string): Use Vector::grow instead of resize.
50671         * platform/SharedBuffer.cpp:
50672         (WebCore::SharedBuffer::clear): Use Vector::shrink instead of resize.
50674         * platform/graphics/BitmapImage.cpp:
50675         (WebCore::BitmapImage::cacheFrame): Use Vector::grow instead of resize.
50677         * platform/network/FormData.cpp:
50678         (WebCore::FormData::appendData): Use Vector::grow instead of resize.
50679         (WebCore::FormData::flatten): Ditto.
50681         * platform/text/AtomicString.cpp:
50682         (WebCore::CStringTranslator::translate): Use a new StringImpl constructor made just
50683         for use by AtomicString. Avoids setting fields twice, and also preserves reference
50684         count behavior (which I changed for the other constructors, since they're entirely
50685         private and used only inside the class).
50686         (WebCore::UCharBufferTranslator::translate): Ditto.
50688         * platform/text/Base64.cpp:
50689         (WebCore::base64Encode): Use Vector::grow instead of resize.
50690         (WebCore::base64Decode): Use Vector::grow and shrink instead of resize.
50692         * platform/text/PlatformString.h:
50693         (WebCore::String::adopt): Added an overload for the new StringBuffer class. Also
50694         made both versions inline.
50696         * platform/text/SegmentedString.h:
50697         (WebCore::SegmentedString::advancePastNewline): Added. One less branch for case
50698         where the character is known to be a newline.
50699         (WebCore::SegmentedString::advancePastNonNewline): Added. Less code for case where
50700         the character is known not to be a newline.
50702         * platform/text/String.cpp:
50703         (WebCore::String::append): Use StringBuffer instead of Vector<UChar>.
50704         (WebCore::String::insert): Ditto.
50705         (WebCore::String::truncate): Ditto.
50706         (WebCore::String::remove): Ditto.
50707         (WebCore::String::format): Use Vector::grow instead of resize.
50709         * platform/text/StringImpl.cpp:
50710         (WebCore::StringImpl::StringImpl): Changed constructors to start with a refCount
50711         of 1 instead of 0, and made them all inline. Eliminates the WithOneRef constructor
50712         since they all behave this way now. The only exceptions are the constructors for
50713         AtomicString, which retain the old behavior.
50714         (WebCore::StringImpl::empty): Simplified, since we no longer need to use the
50715         special WithOneRef constructor.
50716         (WebCore::StringImpl::toCoordsArray): Use StringBuffer instead of Vector<UChar>.
50717         (WebCore::StringImpl::lower): Ditto.
50718         (WebCore::StringImpl::upper): Ditto.
50719         (WebCore::StringImpl::secure): Ditto.
50720         (WebCore::StringImpl::foldCase): Ditto.
50721         (WebCore::StringImpl::simplifyWhiteSpace): Ditto. Also change to use Vector::shrink
50722         instead of resize (since half of the function uses Vector<UChar>).
50723         (WebCore::StringImpl::capitalize): Use StringBuffer instead of Vector<UChar>.
50724         (WebCore::StringImpl::replace): Ditto.
50725         (WebCore::StringImpl::ascii): Streamlined a bit.
50726         (WebCore::StringImpl::createStrippingNullCharacters): Use StringBuffer insetad of
50727         Vector<UChar>. Took out checks for null characters and 0 length that aren't needed.
50728         Coded the check for null characters in a slightly more efficient way. Since this
50729         is so hot, didn't call adopt at all, putting the code right in here, including
50730         the call to the StringImpl constructor and adoptRef (for the fast case).
50731         (WebCore::StringImpl::adopt): Added a version for the new StringBuffer class.
50732         Removed the attempt to resize the buffer at the time we adopt based on measuring
50733         actual use and realizing that it's just a character here or there and not worth
50734         a call to fastRealloc. Changed to use adoptRef since the constructor now starts
50735         with a refCount of 1.
50736         (WebCore::StringImpl::create): Changed to use adoptRef since the constructor now
50737         starts with a refCount of 1.
50738         (WebCore::StringImpl::createWithTerminatingNullCharacter): Ditto.
50739         (WebCore::StringImpl::copy): Ditto. Also made non-inline since the constructor
50740         itself is now inline.
50742         * platform/text/StringImpl.h: Added a StringBuffer class that's useful for
50743         putting characters into a buffer before creating an immutable string. Not good
50744         at resizing the way Vector<UChar> is, so only useful for things that rarely need
50745         to be resized. Added a new AdoptBuffer constructor and empty constructor, but
50746         made all constructors private so they can be inlined and only used inside the
50747         StringImpl class. Added two new constructors for AtomicString. Made copy()
50748         no longer inline. Changed the type of the [] operator to unsigned instead of
50749         int and added an assertion. Made the hash functions inline.
50751         * platform/text/TextCodecICU.cpp:
50752         (WebCore::TextCodecICU::encode): Use Vector::grow instead of resize.
50754         * platform/text/TextCodecLatin1.cpp:
50755         (WebCore::TextCodecLatin1::decode): Use StringBuffer instead of Vector<UChar>.
50756         (WebCore::encodeComplexWindowsLatin1): Use Vector::grow instead of resize.
50758         * platform/text/TextCodecUTF16.cpp:
50759         (WebCore::TextCodecUTF16::decode): Use StringBuffer instead of Vector<UChar>.
50761         * platform/text/TextCodecUserDefined.cpp:
50762         (WebCore::TextCodecUserDefined::decode): Use StringBuffer instead of Vector<UChar>.
50763         (WebCore::encodeComplexUserDefined): Use Vector::grow instead of resize.
50765         * platform/text/TextEncoding.cpp:
50766         (WebCore::TextEncoding::encode): Use Vector::grow instead of resize.
50768         * platform/text/TextStream.cpp:
50769         (WebCore::TextStream::operator<<): Use Vector::grow instead of resize.
50771         * platform/text/mac/TextCodecMac.cpp:
50772         (WebCore::TextCodecMac::encode): Use Vector::grow instead of resize.
50774         * rendering/AutoTableLayout.cpp:
50775         (WebCore::AutoTableLayout::insertSpanCell): Use Vector::grow instead of resize.
50777         * rendering/RenderFrameSet.h:
50778         (WebCore::FrameEdgeInfo::FrameEdgeInfo): Allocate vectors with the correct initial
50779         size instead of calling resize on them after allocating empty.
50781         * rendering/RenderListMarker.cpp:
50782         (WebCore::RenderListMarker::paint): Use Vector::grow instead of resize.
50784         * rendering/RenderStyle.cpp: Removed CursorList::operator==.
50785         * rendering/RenderStyle.h:
50786         (WebCore::CursorList::operator==): Implemented using the Vector ==.
50787         (WebCore::CursorList::operator!=): Ditto.
50789         * rendering/RenderTable.cpp:
50790         (WebCore::RenderTable::splitColumn): Use Vector::grow instead of resize.
50791         (WebCore::RenderTable::appendColumn): Ditto.
50793         * rendering/RenderTableSection.cpp:
50794         (WebCore::RenderTableSection::ensureRows): Use Vector::grow instead of resize.
50796         * rendering/bidi.cpp:
50797         (WebCore::addMidpoint): Use Vector::grow instead of resize.
50799         * xml/XPathNodeSet.h:
50800         (WebCore::XPath::NodeSet::clear): Use Vector::shrink instead of resize.
50802 2008-01-13  Steve Falkenburg  <sfalken@apple.com>
50804         Share common files across projects.
50805         
50806         Unify vsprops files
50807         Debug:          common.vsprops, debug.vsprops
50808         Debug_Internal: common.vsprops, debug.vsprops, debug_internal.vsprops
50809         Release:        common.vsprops, release.vsprops
50810         
50811         Shared properties can go into common.vsprops, shared debug settings can go into debug.vsprops.
50812         debug_internal.vsprops will be mostly empty except for file path prefix modifiers.
50814         Pull auto-version.sh, VERSION, and PRODUCTVERSION from tools.
50816         Reviewed by Adam Roben.
50818         * WebCore.vcproj/PRODUCTVERSION: Removed.
50819         * WebCore.vcproj/QTMovieWin.vcproj:
50820         * WebCore.vcproj/VERSION: Removed.
50821         * WebCore.vcproj/WebCore.vcproj:
50822         * WebCore.vcproj/auto-version.sh: Removed.
50823         * WebCore.vcproj/debug.vsprops: Removed.
50824         * WebCore.vcproj/debug_internal.vsprops: Removed.
50825         * WebCore.vcproj/release.vsprops: Removed.
50827 2008-01-13  Dan Bernstein  <mitz@apple.com>
50829         Reviewed by Darin Adler.
50831         - fix http://bugs.webkit.org/show_bug.cgi?id=16865
50832           fast/layers/resize-layer-deletion-crash.html crashes under GuardMalloc
50834         * rendering/RenderBox.cpp:
50835         (WebCore::RenderBox::destroy): Removed the call to
50836         RenderLayer::destroy() from here, because ~RenderLayer() calls
50837         RenderObject() methods.
50838         * rendering/RenderObject.cpp:
50839         (WebCore::RenderObject::destroy): Added the call to
50840         RenderLayer::destroy() here.
50842 2008-01-13  Eric Seidel  <eric@webkit.org>
50844         Reviewed by darin.
50846         Range.insertNode does not update endContainer endIndex correctly
50847         in the case where it had to split a text node.
50848         http://bugs.webkit.org/show_bug.cgi?id=16765
50849         
50850         Darin pointed out during review that we still don't handle the dynamic
50851         range case (where the dom tree changes not using range methods)
50852         Thus this code will get ripped out when we add that.  The test cases
50853         are still valid and useful however, so I'm landing this as-is.
50855         Tests: fast/dom/Range/range-insertNode-separate-endContainer.html
50856                fast/dom/Range/range-insertNode-splittext.html
50858         * dom/Range.cpp:
50859         (WebCore::Range::insertNode): handle the splitText case correctly.
50861 2008-01-13  Darin Adler  <darin@apple.com>
50863         Reviewed by Eric.
50865         - http://bugs.webkit.org/show_bug.cgi?id=16861
50866           get rid of unnecessary string copying
50868         * dom/Document.cpp:
50869         (WebCore::Document::setDomain): Removed unneeded call to copy.
50870         (WebCore::Document::parseQualifiedName): Removed unneeded call to copy, and
50871         unneeded length argument to substring, which stops at the end of the string
50872         if you don't specify a length.
50873         (WebCore::Document::createAttributeNS): Replaced code that was calling copy
50874         with more-efficient code using the substring function.
50875         * dom/StyledElement.cpp:
50876         (WebCore::StyledElement::addCSSColor): Removed unneeded call to copy.
50877         * editing/InsertIntoTextNodeCommand.cpp:
50878         (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): Removed
50879         unneeded copy and also initialized text instead of assigning to it.
50880         (WebCore::InsertIntoTextNodeCommand::doApply): Removed redundant assertions.
50881         (WebCore::InsertIntoTextNodeCommand::doUnapply): Ditto.
50883         * editing/htmlediting.cpp:
50884         (WebCore::stringWithRebalancedWhitespace): Removed unneeded call to copy.
50885         This one was particularly bad since we just turned around and copied it again!
50887         * editing/markup.cpp:
50888         (WebCore::stringValueForRange): Removed unneeded call to copy.
50890         * loader/icon/IconDatabase.cpp:
50891         (WebCore::IconDatabase::performOpenInitialization): Changed logging code to not
50892         get the path from the database object. This was the only reason the database
50893         had to keep its path around.
50895         * platform/sql/SQLiteDatabase.cpp:
50896         (WebCore::SQLiteDatabase::open): Use a local variable instead of a data member to
50897         convert the string to a null-terminated one.
50898         (WebCore::SQLiteDatabase::close): Removed the code to clear out m_path.
50899         * platform/sql/SQLiteDatabase.h: Removed the m_path data member and the path
50900         functio member. Also tweaked formatting and comments a bit. Removed the unused
50901         escapeSQLString function.
50903         * platform/text/String.cpp: (WebCore::operator+): Removed uneeded calls to copy.
50905 2008-01-13  Oliver Hunt  <oliver@apple.com>
50907         Attempt to fix QT build
50909         * html/CanvasRenderingContext2D.cpp:
50910         (WebCore::CanvasRenderingContext2D::willDraw):
50912 2008-01-13  Oliver Hunt  <oliver@apple.com>
50914         Reviewed by Mark Rowe.
50916         Avoid repainting the entire canvas element when possible.
50918         http://bugs.webkit.org/show_bug.cgi?id=16859
50920         We now only register the dirty regions of a canvas for repainting, rather
50921         than the entire element (though repaint coalescing may choose to combine
50922         these regions).  This doesn't cause a measurable regression in the worst
50923         case (clearing the canvas repeatedly), but is a moderate-large win if only
50924         a minor update has occurred.  If there is any CSS scaling applied to the
50925         canvas almost any update short of clearing the entire element is substantially
50926         faster.
50928         * html/CanvasRenderingContext2D.cpp:
50929         (WebCore::CanvasRenderingContext2D::willDraw):
50930         * html/HTMLCanvasElement.cpp:
50931         (WebCore::HTMLCanvasElement::willDraw):
50933 2008-01-13  Michael Goddard  <michael.goddard@trolltech.com>
50935         Reviewed by Anders Carlsson.
50937         Move RuntimeObjectImp creations into Instance.
50938         Make the ctor protected, and Instance a friend class, so
50939         that all creation of RuntimeObjectImps goes through
50940         one place.
50942         * bindings/js/kjs_dom.cpp:
50943         (WebCore::getRuntimeObject):
50945 2008-01-12  Rodney Dawes  <dobey@wayofthemonkey.com>
50947         Gtk debug build fix.  Reviewed by Mark Rowe.
50949         Add plugin logging channel, and use it rather than Win32-specific debugging methods _RPTF1 _RPTF2 and _CRT_WARN.
50951         * WebCore.pro: Add plugins directory to DEPENDPATH so dependencies are correctly tracked.
50952         * platform/Logging.cpp:
50953         * platform/Logging.h:
50954         * plugins/PluginDebug.h:
50956 2008-01-12  Adam Barth  <hk9565@gmail.com>
50958         Reviewed by Maciej (and also tweaked a little bit).
50960         - more thorough fix for some crashing tests
50961           http://bugs.webkit.org/show_bug.cgi?id=16782
50963         * loader/FrameLoader.cpp:
50964         (WebCore::FrameLoader::urlSelected):
50965         (WebCore::FrameLoader::submitForm):
50966         (WebCore::FrameLoader::executeIfJavaScriptURL):
50967         * loader/FrameLoader.h:
50969 2008-01-12  Maciej Stachowiak  <mjs@apple.com>
50971         Reviewed by Sam.
50973         - fixed <rdar://problem/5556374> REGRESSION: cross-domain error when one URL uses an explicit port number and another doesn't
50974         
50975         * platform/SecurityOrigin.cpp:
50976         (WebCore::isDefaultPortForProtocol):
50977         (WebCore::SecurityOrigin::SecurityOrigin):
50979 2008-01-11  Geoffrey Garen  <ggaren@apple.com>
50981         Reviewed by Oliver Hunt.
50982         
50983         Fixed <rdar://problem/5665251> REGRESSION (r28880-r28886): Global
50984         variable access (16644)
50985         
50986         Removed the ReadOnly bit from some properties, to match Firefox. Also
50987         removed status-related setters, to allow using their names as variable
50988         names.
50989         
50990         * bindings/scripts/CodeGeneratorJS.pm: Added support for properties that
50991         are one-way across domain boundaries, to match Firefox.
50993         * bindings/js/kjs_window.cpp: Changed ReadOnly declarations to match FF.
50995         * bindings/scripts/CodeGeneratorJS.pm: Don't use JSObject:: because
50996         we don't know that JSObject is our base class.
50998         * page/DOMWindow.idl: Replaced lots of readonly declarations with
50999         [Replaceable] declarations.
51001         * page/DOMWindow.h: Removed interfaces for setting status text via the
51002         DOM. (They were getting in the way of, e.g., "var status"
51003         declarations.) By default, IE 7 and FF disable these interfaces in order
51004         to defend against phishing attacks that try to spoof domain names in the
51005         statusbar.
51006         * page/DOMWindow.cpp:
51008 2008-01-11  Anyang Ren  <anyang.ren@gmail.com>
51010         Reviewed by Darin Adler.
51012         http://bugs.webkit.org/show_bug.cgi?id=15960
51013         The view source mode should skip an empty attribute value only if
51014         the attribute name is not followed by an equal sign (=).
51016         Test: fast/frames/viewsource-empty-attribute-value.html
51018         * html/HTMLViewSourceDocument.cpp:
51019         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
51021 2008-01-11  Sylvain Pasche  <sylvain.pasche@gmail.com>
51023         Reviewed by Alp Toker.
51025         [Gtk] Uneven glyph spacing with subpixel antialiasing
51026         http://bugs.webkit.org/show_bug.cgi?id=16715
51028         Use cairo font options from the default GDK screen when creating a
51029         scaled font.
51031         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
51032         (WebCore::FontPlatformData::FontPlatformData):
51034 2008-01-11  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
51036         Reviewed by Maciej.
51038         Added a new forwarding header, because Activation.h has been separated
51039         from function.h
51041         * ForwardingHeaders/kjs/Activation.h: Added.
51043 2008-01-11  Luca Bruno  <lethalman88@gmail.com>
51045         Reviewed by Alp Toker.
51047         http://bugs.webkit.org/show_bug.cgi?id=16729
51048         [cURL] Allow multiple files for upload
51050         * platform/network/ResourceHandleInternal.h:
51051         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
51052         * platform/network/curl/ResourceHandleCurl.cpp:
51053         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
51054         * platform/network/curl/ResourceHandleManager.cpp:
51055         (WebCore::readCallback): added
51056         (WebCore::ResourceHandleManager::setupPOST): setup for streaming the POST
51057         (WebCore::ResourceHandleManager::startJob):
51058         (WebCore::ResourceHandleManager::cancel): revert the previous patch for regression
51059         * platform/network/curl/ResourceHandleManager.h:
51061 2008-01-11  Christian Dywan  <christian@imendio.com>
51063         Reviewed by Alp Toker.
51065         [Gtk] Menu items need underscores
51066         http://bugs.webkit.org/show_bug.cgi?id=16817
51068         Add underscores to appropriate menu labels.
51069         Also adjust strings slightly.
51071         * platform/gtk/ContextMenuItemGtk.cpp:
51072         (WebCore::ContextMenuItem::createNativeMenuItem):
51073         * platform/gtk/LocalizedStringsGtk.cpp:
51074         (WebCore::searchableIndexIntroduction):
51075         (WebCore::fileButtonChooseFileLabel):
51076         (WebCore::fileButtonNoFileSelectedLabel):
51077         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
51078         (WebCore::contextMenuItemTagDownloadLinkToDisk):
51079         (WebCore::contextMenuItemTagCopyLinkToClipboard):
51080         (WebCore::contextMenuItemTagOpenImageInNewWindow):
51081         (WebCore::contextMenuItemTagDownloadImageToDisk):
51082         (WebCore::contextMenuItemTagCopyImageToClipboard):
51083         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
51084         (WebCore::contextMenuItemTagCopy):
51085         (WebCore::contextMenuItemTagGoBack):
51086         (WebCore::contextMenuItemTagGoForward):
51087         (WebCore::contextMenuItemTagStop):
51088         (WebCore::contextMenuItemTagReload):
51089         (WebCore::contextMenuItemTagCut):
51090         (WebCore::contextMenuItemTagPaste):
51091         (WebCore::contextMenuItemTagIgnoreSpelling):
51092         (WebCore::contextMenuItemTagLearnSpelling):
51093         (WebCore::contextMenuItemTagSearchWeb):
51094         (WebCore::contextMenuItemTagLookUpInDictionary):
51095         (WebCore::contextMenuItemTagOpenLink):
51096         (WebCore::contextMenuItemTagIgnoreGrammar):
51097         (WebCore::contextMenuItemTagSpellingMenu):
51098         (WebCore::contextMenuItemTagShowSpellingPanel):
51099         (WebCore::contextMenuItemTagCheckSpelling):
51100         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
51101         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
51102         (WebCore::contextMenuItemTagFontMenu):
51103         (WebCore::contextMenuItemTagBold):
51104         (WebCore::contextMenuItemTagItalic):
51105         (WebCore::contextMenuItemTagUnderline):
51106         (WebCore::contextMenuItemTagOutline):
51107         (WebCore::contextMenuItemTagWritingDirectionMenu):
51108         (WebCore::contextMenuItemTagDefaultDirection):
51109         (WebCore::contextMenuItemTagLeftToRight):
51110         (WebCore::contextMenuItemTagRightToLeft):
51111         (WebCore::contextMenuItemTagInspectElement):
51112         (WebCore::searchMenuClearRecentSearchesText):
51114 2008-01-11  Ada Chan  <adachan@apple.com>
51116         <rdar://problem/5681557> On Windows Safari, mouse events are ignored after clicking on link that triggers download
51117         Moved the call to cache page from provisionalLoadStarted() to commitProvisionalLoad(), since 
51118         provisionalLoadStarted() can be called for cases that do not result in a page navigation, for example,
51119         when a link to download a file has been clicked.
51121         Reviewed by John and Anders.
51123         * loader/FrameLoader.cpp:
51124         (WebCore::FrameLoader::provisionalLoadStarted):
51125         (WebCore::FrameLoader::commitProvisionalLoad):
51127 2008-01-11  Jon Honeycutt  <jhoneycutt@apple.com>
51129         Reviewed by Anders.
51131         <rdar://problem/5683529> plugins/embed-inside-object.html is timing
51132         out/failing
51134         Revert to using FrameTree::find() so that frame aliases like "_self" and
51135         "_current" are interpreted properly
51137         * plugins/win/PluginViewWin.cpp:
51138         (WebCore::PluginViewWin::performRequest):
51139         (WebCore::PluginViewWin::load):
51141 2008-01-11  Alp Toker  <alp@atoker.com>
51143         Reviewed by Dave Hyatt and Mark Rowe.
51145         http://bugs.webkit.org/show_bug.cgi?id=16089
51146         [GTK] Support custom fonts, CachedFont::platformDataFromCustomData()
51148         Add support for CSS2 @font-face custom/downloadable fonts to the GTK+
51149         port.
51151         * GNUmakefile.am:
51152         * WebCore.pro:
51153         * loader/CachedFont.cpp:
51154         (WebCore::CachedFont::~CachedFont):
51155         (WebCore::CachedFont::ensureCustomFontData):
51156         (WebCore::CachedFont::platformDataFromCustomData):
51157         (WebCore::CachedFont::allReferencesRemoved):
51158         * platform/graphics/gtk/FontCustomPlatformData.cpp: Added.
51159         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
51160         (WebCore::FontCustomPlatformData::fontPlatformData):
51161         (WebCore::releaseData):
51162         (WebCore::createFontCustomPlatformData):
51163         * platform/graphics/gtk/FontCustomPlatformData.h: Added.
51164         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
51165         * platform/graphics/gtk/FontPlatformData.h:
51166         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
51167         (WebCore::FontPlatformData::FontPlatformData):
51168         (WebCore::FontPlatformData::init):
51169         (WebCore::FontPlatformData::isFixedPitch):
51170         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
51171         (WebCore::SimpleFontData::platformDestroy):
51173 2008-01-11  Adam Roben  <aroben@apple.com>
51175         Remove FrameLoader::committedFirstRealDocumentLoad
51176         
51177         This method no longer has any callers.
51179         Reviewed by Hyatt.
51181         * loader/FrameLoader.h:
51183 2008-01-11  Antti Koivisto  <antti@apple.com>
51185         Add a standalone version of the blog post video player as a manual test.
51187         * manual-tests/resources/touch-poster.png: Added.
51188         * manual-tests/video-player.html: Added.
51190 2008-01-10  Antti Koivisto  <antti@apple.com>
51192         Reviewed by Adam.
51194         Fix <rdar://problem/5682767>
51195         Video does not show up in http://webkit.org/blog/140/html5-media-support/ on Windows
51196         
51197         Take care that GWorld is created and deletes when needed as size or visibility changes.
51199         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
51200         (WebCore::MediaPlayerPrivate::load):
51201         * platform/graphics/win/QTMovieWin.cpp:
51202         (QTMovieWinPrivate::QTMovieWinPrivate):
51203         (QTMovieWinPrivate::updateGWorld):
51204         (QTMovieWinPrivate::setSize):
51205         (QTMovieWin::setVisible):
51206         (QTMovieWin::initializeQuickTime):
51208 2008-01-11  David Hyatt  <hyatt@apple.com>
51210         Fix for bug 11188, setting hspace on a table overrides align=center.  Fix align=center to be done using
51211         mapped attributes so that it does not get overridden by hspace all the time.
51213         Reviewed by mitz
51215         Added fast/table/table-hspace-align-center.html
51217         * css/html4.css:
51218         * html/HTMLTableElement.cpp:
51219         (WebCore::HTMLTableElement::parseMappedAttribute):
51221 2008-01-11  Mark Rowe  <mrowe@apple.com>
51223         Qt build fix.
51225         * platform/qt/TemporaryLinkStubs.cpp: Include CString.h.
51227 2008-01-11  Mark Rowe  <mrowe@apple.com>
51229         Qt build fix.  Add link stubs for the new FileSystem.h functions introduced
51230         in r29399.
51232         * platform/qt/TemporaryLinkStubs.cpp:
51233         (WebCore::openTemporaryFile):
51235 2008-01-11  Rodney Dawes  <dobey@wayofthemonkey.com>
51237         Reviewed by Anders Carlsson.
51239         Bug 16779: Make the PluginStream implementation be shared across platforms
51240         http://bugs.webkit.org/show_bug.cgi?id=16779
51242         Add the new shared PluginStream files to the GTK+ and Win32 builds.
51243         Add PluginStreamClient class for the streamDidFinishLoading method.
51244         Add open/close/write methods to FileSystem for temporary file handling.
51245         Add PluginDebug.h and npfunctions.h for shared PluginStream.
51246         Add shared PluginStream.
51247         Remove PluginStreamWin.
51248         Update PluginViewWin to use shared PluginStream and PluginStreamClass.
51250         * GNUmakefile.am:
51251         * WebCore.pro:
51252         * WebCore.vcproj/WebCore.vcproj:
51253         * platform/FileSystem.h:
51254         * platform/gtk/FileSystemGtk.cpp:
51255         * platform/win/FileSystemWin.cpp:
51256         * plugins/PluginDebug.h:
51257         * plugins/PluginStream.cpp:
51258         * plugins/PluginStream.h:
51259         * plugins/npfunctions.h:
51260         * plugins/win/PluginDebug: Moved to PluginDebug.h.
51261         * plugins/win/PluginStreamWin.cpp: Moved to PluginStream.cpp.
51262         * plugins/win/PluginStreamWin.h: Moved to PluginStream.h
51263         * plugins/win/PluginViewWin.cpp:
51264         * plugins/win/PluginViewWin.h:
51265         * plugins/win/npfunctions.h: Moved to npfunctions.h
51267 2008-01-11  Geoffrey Garen  <ggaren@apple.com>
51269         Try to fix Mac build: Edit the right .exp file.
51271         * WebCore.base.exp:
51273 2008-01-11  Geoffrey Garen  <ggaren@apple.com>
51275         Try to fix Qt build: don't use pthreads if they're not available.
51277         * bindings/js/GCController.cpp:
51279 2008-01-10  Geoffrey Garen  <ggaren@apple.com>
51281         Reviewed by John Sullivan.
51283         Fixed some world leak reports:
51284         * <rdar://problem/5669436> PLT complains about world leak of 1 JavaScript
51285         Interpreter after running cvs-base suite
51287         * <rdar://problem/5669423> PLT complains about world leak if browser
51288         window is open when PLT starts
51289         
51290         These were both bugs in the reporting mechanism, so I took the
51291         opportunity to do some house cleaning there.
51293         Stupid class, I kill you:
51294         * bridge/JavaScriptStatistics.cpp: Removed.
51295         * bridge/JavaScriptStatistics.h: Removed.
51297         * bindings/js/GCController.h: Adopted the only useful features of
51298         JavaScriptStatistics, since they were GC-related.
51299         * bindings/js/GCController.cpp:
51301 2008-01-10  Eric Seidel  <eric@webkit.org>
51303         Reviewed by Adele.
51305         No functional changes, only code cleanup.
51307         * css/MediaQueryEvaluator.cpp:
51308         (WebCore::compareValue): renamed from cmpvalue
51309         (WebCore::colorMediaFeatureEval):
51310         (WebCore::device_aspect_ratioMediaFeatureEval):
51311         (WebCore::device_pixel_ratioMediaFeatureEval):
51312         (WebCore::gridMediaFeatureEval):
51313         (WebCore::device_heightMediaFeatureEval):
51314         (WebCore::device_widthMediaFeatureEval):
51315         (WebCore::heightMediaFeatureEval):
51316         (WebCore::widthMediaFeatureEval):
51318 2008-01-10  Dan Bernstein  <mitz@apple.com>
51320         Reviewed by Anders Carlsson.
51322         - fix a crash when calling alert() from a repeating timer
51324         On non-Mac platforms, the PageGroupLoadDeferrer pauses DOM timers during
51325         alert() and other similar functions, which deletes the actual
51326         DOMWindowTimer objects and replaces them with new objects when resuming.
51328         * bindings/js/kjs_window.cpp:
51329         (KJS::Window::timerFired): Re-fetch the timer object from the map in
51330         case it has been deleted or replaced.
51332 2008-01-10  Maciej Stachowiak  <mjs@apple.com>
51334         Reviewed by Sam.
51336         - remove SecurityOriginData and fold its functionality into SecurityOrigin
51338         * GNUmakefile.am:
51339         * WebCore.base.exp:
51340         * WebCore.pro:
51341         * WebCore.vcproj/WebCore.vcproj:
51342         * WebCore.xcodeproj/project.pbxproj:
51343         * WebCoreSources.bkl:
51344         * bindings/js/JSDOMWindowCustom.cpp:
51345         (WebCore::JSDOMWindow::postMessage):
51346         * dom/Document.cpp:
51347         (WebCore::Document::domain):
51348         * page/Chrome.cpp:
51349         (WebCore::Chrome::requestQuotaIncreaseForNewDatabase):
51350         (WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation):
51351         * page/Chrome.h:
51352         * page/ChromeClient.h:
51353         * platform/SecurityOrigin.cpp:
51354         (WebCore::SecurityOrigin::copy):
51355         (WebCore::SecurityOrigin::createFromIdentifier):
51356         (WebCore::SecurityOrigin::stringIdentifier):
51357         * platform/SecurityOrigin.h:
51358         (WebCore::SecurityOrigin::host):
51359         (WebCore::SecurityOrigin::protocol):
51360         (WebCore::SecurityOrigin::port):
51361         (WebCore::SecurityOrigin::equal):
51362         * platform/SecurityOriginData.cpp: Removed.
51363         * platform/SecurityOriginData.h: Removed.
51364         * storage/Database.cpp:
51365         (WebCore::Database::openDatabase):
51366         (WebCore::Database::Database):
51367         (WebCore::Database::securityOriginCopy):
51368         * storage/Database.h:
51369         * storage/DatabaseTracker.cpp:
51370         (WebCore::SecurityOriginHash::hash):
51371         (WebCore::SecurityOriginHash::equal):
51372         (WebCore::SecurityOriginTraits::deletedValue):
51373         (WebCore::SecurityOriginTraits::emptyValue):
51374         (WebCore::DatabaseTracker::canEstablishDatabase):
51375         (WebCore::DatabaseTracker::hasEntryForOrigin):
51376         (WebCore::DatabaseTracker::hasEntryForDatabase):
51377         (WebCore::DatabaseTracker::establishEntryForOrigin):
51378         (WebCore::DatabaseTracker::fullPathForDatabase):
51379         (WebCore::DatabaseTracker::populateOrigins):
51380         (WebCore::DatabaseTracker::origins):
51381         (WebCore::DatabaseTracker::databaseNamesForOrigin):
51382         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
51383         (WebCore::DatabaseTracker::setDatabaseDetails):
51384         (WebCore::DatabaseTracker::usageForDatabase):
51385         (WebCore::DatabaseTracker::usageForOrigin):
51386         (WebCore::DatabaseTracker::quotaForOrigin):
51387         (WebCore::DatabaseTracker::setQuota):
51388         (WebCore::DatabaseTracker::addDatabase):
51389         (WebCore::DatabaseTracker::deleteAllDatabases):
51390         (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
51391         (WebCore::DatabaseTracker::deleteDatabase):
51392         (WebCore::DatabaseTracker::deleteDatabaseFile):
51393         (WebCore::notificationQueue):
51394         (WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
51395         (WebCore::DatabaseTracker::notifyDatabasesChanged):
51396         * storage/DatabaseTracker.h:
51397         * storage/DatabaseTrackerClient.h:
51398         * storage/SQLTransaction.cpp:
51399         (WebCore::SQLTransaction::openTransactionAndPreflight):
51400         (WebCore::SQLTransaction::runStatements):
51401         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
51402         (WebCore::SQLTransaction::postflightAndCommit):
51403         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
51404         * svg/graphics/SVGImageEmptyClients.h:
51405         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
51406         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):
51408 2008-01-10  Anders Carlsson  <andersca@apple.com>
51410         Reviewed by Sam.
51412         Use the correct frame loader load method. Using the old method would not cause a 
51413         new window to be open if the frame navigation was not allowed.
51414         
51415         * plugins/win/PluginViewWin.cpp:
51416         (WebCore::PluginViewWin::performRequest):
51418 2008-01-10  Alp Toker  <alp@atoker.com>
51420         SVG font build fix for GTK+/autotools.
51422         * GNUmakefile.am:
51424 2008-01-10  Adam Barth  <hk9565@gmail.com>
51426         Reviewed by Sam Weinig and Anders Carlsson.
51428         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16522
51429         <rdar://problem/5657355>
51431         This patch makes two changes:
51433         1) Java calls FrameLoader::load in a slightly different way than
51434            JavaScript, which previously let a malicious web site bypass the
51435            shouldAllowNavigation check.  This patch adds that check to that
51436            code path.
51438         2) FrameLoader now wraps calls to m_frame->tree()->find(name) with
51439            findFrameForNavigation, which calls shouldAllowNavigation.  This
51440            treats disallowed frame navigations as if the named frame did not
51441            exist, resulting in a popup window when appropriate.
51443         Tests: http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html
51444                http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html
51446         * WebCore.base.exp:
51447         * bindings/js/kjs_window.cpp:
51448         (KJS::WindowProtoFuncOpen::callAsFunction):
51449         * loader/FrameLoader.cpp:
51450         (WebCore::FrameLoader::createWindow):
51451         (WebCore::FrameLoader::load):
51452         (WebCore::FrameLoader::post):
51453         (WebCore::FrameLoader::findFrameForNavigation):
51454         * loader/FrameLoader.h:
51456 2008-01-10  John Sullivan  <sullivan@apple.com>
51458         Written by Hyatt, reviewed by me
51459         
51460         - fixed <rdar://problem/5654297> Mail crashes occurs at WebCore::FontFallbackList::fontDataAt() when attempting to display 
51461           a <video> element that uses controls attribute
51463         * rendering/MediaControlElements.cpp:
51464         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
51465         force the render style to inherit from the media element's style; Hyatt filed 5682383 to cover cleaning
51466         up this architecture, but this one-line fix will prevent the crash in the meantime
51468 2008-01-10  Ada Chan  <adachan@apple.com>
51470         Fix fast/forms/input-radio-checked-tab.html
51471         Meta key is not the same as Alt key on windows.
51473         Reviewed by Darin.
51475         * platform/win/KeyEventWin.cpp:
51476         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
51478 2008-01-10  Anders Carlsson  <andersca@apple.com>
51480         Reviewed by Jon.
51482         Fix an assert that would happen when a plug-in tries to load a URL while a provisional load is going.
51483         
51484         * plugins/win/PluginViewWin.cpp:
51485         (WebCore::PluginViewWin::performRequest):
51486         Move document loader check here since we don't start loading until here and a new document load could have started in the meantime.
51487         
51488         (WebCore::PluginViewWin::requestTimerFired):
51489         Don't leak the plugin requests.
51490         
51491         (WebCore::PluginViewWin::load):
51493 2008-01-10  Anders Carlsson  <andersca@apple.com>
51495         Reviewed by John Sullivan.
51497         <rdar://problem/5455889>
51498         REGRESSION: BumperCar crashes when attempting to load a long invalid URL
51499         
51500         Make sure to call FrameLoader::receivedMainResourceError before calling
51501         FrameLoader::didFailToLoad. The call to receivedMainResourceError takes care of
51502         clearing out the provisional document loader so that we won't call the didFail
51503         ResourceLoadDelegate method twice. This also makes us call the FrameLoadDelegate method
51504         didFailPrivisionalLoad before calling the ResourceLoadDelegate method, which Safari 2.0 does.
51505         
51506         * loader/MainResourceLoader.cpp:
51507         (WebCore::MainResourceLoader::receivedError):
51509 2008-01-10  Antti Koivisto  <antti@apple.com>
51511         Reviewed by Adele.
51513         Fix <rdar://problem/5658048>
51514         After <video> has finished playing, dragging the scroller on different location of controller starts to play movie
51515         
51516         - Move to paused state if the playback had ended and the controller is used to seek to earlier time
51517         - Pause video playback during drag so the knob does not constantly try to escape from the mouse pointer
51519         * html/HTMLMediaElement.cpp:
51520         (WebCore::HTMLMediaElement::HTMLMediaElement):
51521         (WebCore::HTMLMediaElement::updateMediaPlayer):
51522         (WebCore::HTMLMediaElement::setPausedInternal):
51523         * html/HTMLMediaElement.h:
51524         * rendering/MediaControlElements.cpp:
51525         (WebCore::MediaControlTimelineElement::defaultEventHandler):
51527 2008-01-10  Alexey Proskuryakov  <ap@webkit.org>
51529         Reviewed by Adam Roben.
51531         <rdar://problem/5667003> fast/dom/xmlhttprequest-html-response-encoding.html is failing
51533         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): Do not disable sniffing for file://
51534         requests, as CFNetwork doesn't perform extension to MIME type mapping then.
51536 2008-01-10  Adam Roben  <aroben@apple.com>
51538         Fixes to allow multiple FrameViews on Windows
51540         Reviewed by Hyatt.
51542         * page/FrameView.cpp:
51543         (WebCore::FrameView::FrameView): Added a new constructor that takes an
51544         IntSize to specify the FrameView's initial size.
51545         (WebCore::FrameView::scheduleRelayout): Added an assertion that our
51546         Document is not in the page cache.
51547         * page/FrameView.h:
51548         * platform/gtk/WidgetGtk.cpp:
51549         (WebCore::Widget::~Widget): Add a warm, fuzzy ASSERT.
51550         * platform/qt/WidgetQt.cpp:
51551         (WebCore::Widget::~Widget): Ditto.
51552         * rendering/RenderWidget.cpp:
51553         (WebCore::RenderWidget::setWidget): Make sure to remove any existing
51554         Widget from the Widget hierarchy before deleting it. One instance
51555         where this is needed is when setWidget is called during FrameView
51556         creation on Windows.
51558 2008-01-10  Alp Toker  <alp@atoker.com>
51560         Include math.h to get ceilf(). Part of the SVG font GTK+ build fix.
51562         * svg/SVGFontFaceElement.cpp:
51564 2008-01-10  Justin Garcia  <justin.garcia@apple.com>
51566         Reviewed by Alice Liu.
51568         <rdar://problem/5658603> Crash in InsertNodeBefore::doUnapply() on Undo in Yahoo Mail
51569         <rdar://problem/5658709> Crash in RenderView::setSelection on Undo in Yahoo Mail
51570         
51571         Make sure we have an updated layout before we perform any editing work.
51573         * editing/EditCommand.cpp:
51574         (WebCore::EditCommand::apply):
51575         (WebCore::EditCommand::unapply):
51576         (WebCore::EditCommand::reapply):
51578 2008-01-10  Luca Bruno  <lethalman88@gmail.com>
51580         Reviewed by Alp Toker.
51582         Back out r29206 which was causing regressions in curl http job
51583         cancellation.
51585         * platform/network/curl/ResourceHandleManager.cpp
51586         (ResourceHandleManager::cancel): 
51588 2008-01-10  Kevin McCullough  <kmccullough@apple.com>
51590         Reviewed by Darin, Sam, and Adam.
51592         - <rdar://problem/5654486> REGRESSION (Safari 3.0.4-TOT): clicking on
51593         - link in gmail message displays JavaScript alert falsely complaining
51594         about pop-up blocking
51595         - When trying to open a new window, we now see if the user gesture 
51596         occurred in the global dynamic object instead of the frame since that is
51597         the only place an event can occur. 
51599         * bindings/js/kjs_window.cpp: - Check the dynamic global object instead
51600         of the frame.
51601         (KJS::allowPopUp):
51602         (KJS::showModalDialog):
51603         (KJS::WindowProtoFuncOpen::callAsFunction):
51605 2008-01-10  David Hyatt  <hyatt@apple.com>
51607         Fix for bug 16247, visibility:hidden not honored when hit testing inline replaced elements.
51609         Reviewed by adele
51611         Added fast/css/visibility-hit-test.html test case.
51613         * rendering/RenderBox.cpp:
51614         (WebCore::RenderBox::nodeAtPoint):
51616 2008-01-10  Lars Knoll  <lars@trolltech.com>
51618         Reviewed by Simon.
51620         rename QWebPageHistory to QWebHistory.
51622         * WebCore.pro:
51624 2008-01-10  Lars Knoll  <lars@trolltech.com>
51626         Reviewed by Simon.
51628         fix the drawing errors that where introduced due to refactoring.
51630         Correctly clip to the rectangle we want to draw in ScrollView::paint().
51632         * platform/qt/ScrollViewQt.cpp:
51633         (WebCore::ScrollView::paint):
51635 2008-01-10  Simon Hausmann  <hausmann@webkit.org>
51637         Reviewed by Lars.
51639         Temporarily disable gzip decompression in qhttp due to a bug.
51641         * platform/network/qt/QNetworkReplyHandler.cpp:
51642         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
51644 2008-01-10  Simon Hausmann  <hausmann@webkit.org>
51646         Reviewed by Lars.
51648         http://bugs.webkit.org/show_bug.cgi?id=16588
51650         Added a (last) Frame argument to ResourceHandle::loadResourceSynchronously.
51651         This allows implementing the synchronous loading correctly for the Qt port where the networking
51652         backend is bound to the page.
51654         * loader/FrameLoader.cpp:
51655         (WebCore::FrameLoader::loadResourceSynchronously):
51656         * platform/network/ResourceHandle.h:
51657         * platform/network/cf/ResourceHandleCFNet.cpp:
51658         * platform/network/curl/ResourceHandleCurl.cpp:
51659         * platform/network/mac/ResourceHandleMac.mm:
51660         * platform/network/qt/ResourceHandleQt.cpp:
51661         (WebCore::ResourceHandle::loadResourceSynchronously):
51663 2008-01-10  Kevin Ollivier  <kevino@theolliviers.com>
51665         wx build fix for changes in r29328
51667         * WebCoreSources.bkl:
51669 2008-01-09  Maciej Stachowiak  <mjs@apple.com>
51671         Reviewed by Sam.
51673         - refactor SecurityOrigin in preparation for merging with SecurityOriginData
51675         * platform/SecurityOrigin.cpp:
51676         (WebCore::SecurityOrigin::SecurityOrigin):
51677         (WebCore::SecurityOrigin::create):
51678         (WebCore::SecurityOrigin::createForFrame):
51679         * platform/SecurityOrigin.h:
51681 2008-01-09  Ada Chan  <adachan@apple.com>
51683         Tabs with ctrl, meta, or altgraph modifier key down should not advance focus.
51685         Reviewed by Darin.
51687         Test: fast/forms/tabs-with-modifiers.html
51689         * page/EventHandler.cpp:
51690         (WebCore::EventHandler::defaultKeyboardEventHandler):
51691         (WebCore::EventHandler::defaultTabEventHandler): bail if ctrl, meta, or altgraph key is down.  
51692         Clean up the code a bit.
51693         * page/EventHandler.h:
51694         * page/FocusController.cpp: Remove the advanceFocus() that takes in a KeyboardEvent.  It was
51695         only called in EventHandler::defaultTabEventHandler() but we have cleaned up the code there and
51696         no longer needs it.
51697         * page/FocusController.h:
51699 2008-01-09  Antti Koivisto  <antti@apple.com>
51701         Reviewed by Mitz.
51703         Fix http://bugs.webkit.org/show_bug.cgi?id=16376
51704         <rdar://problem/5665206>
51705         <video> element fails to play frames when navigating back to page (16376)
51706         
51707         Don't make MediaPlayer visible when it is actually in page cache.
51709         * rendering/RenderVideo.cpp:
51710         (WebCore::RenderVideo::updatePlayer):
51712 2008-01-09  Anders Carlsson  <andersca@apple.com>
51714         Reviewed by Darin.
51716         <rdar://problem/5532361> 
51717         CrashTracer: 9840 crashes in Safari at com.apple.JavaScriptCore: KJS::Bindings::CInstance::~CInstance [in-charge deleting] + 35
51718         
51719         Clear the frame's plugin root objects so that they don't outlive the plugin bundle.
51720         
51721         * page/Frame.cpp:
51722         (WebCore::Frame::pageDestroyed):
51724 2008-01-09  John Sullivan  <sullivan@apple.com>
51726         Reviewed by Adam Roben and Anders Carlsson
51727         
51728         - fixed <rdar://problem/5469398> Repro assertion failure in context menu code due to 
51729           missing-but-expected Reload item
51731         * platform/ContextMenu.cpp:
51732         (WebCore::ContextMenu::populate):
51733         use isLoadingInAPISense when deciding whether to include Stop or Reload in context
51734         menu, to match the WebKit API
51736 2008-01-09  Mark Rowe  <mrowe@apple.com>
51738         Fix Windows debug build for opensource developers.
51740         * WebCore.vcproj/QTMovieWin.vcproj: Use the correct library suffix.
51742 2007-10-01  Allan Sandfeld Jensen  <sandfeld@kde.org>
51744         Reworked by Eric, Reviewed by Hyatt.
51746         - fix http://bugs.webkit.org/show_bug.cgi?id=9454
51747         Add support for :lang inheritance and xml:lang support.
51749         Tests: fast/selectors/lang-inheritance.html
51750                fast/selectors/lang-inheritance2.html
51751                fast/selectors/lang-vs-xml-lang.html
51752                fast/selectors/lang-vs-xml-lang-xhtml.xhtml
51754         * css/CSSStyleSelector.cpp:
51755         (WebCore::CSSStyleSelector::canShareStyleWithElement): Do not share style between elements with
51756         different LANG-attribute.
51757         (WebCore::CSSStyleSelector::checkOneSelector): Change :lang() to recursively check the LANG attribute
51758         for all the elements parents and the content-language of the document.
51759         * dom/Document.cpp:
51760         (WebCore::Document::processHttpEquiv): Parse MIME Content-Language
51761         * dom/Document.h:
51762         (WebCore::Document::contentLanguage):
51763         (WebCore::Document::setContentLanguage):
51765 2008-01-08  Timothy Hatcher  <timothy@apple.com>
51767         Reviewed by Brady.
51769         Bug 16678: Unreproducible crash in KJS::JSObject::inherits() after using Web Inspector
51770         http://bugs.webkit.org/show_bug.cgi?id=16678
51772         Add a NULL check for controller before calling JSObjectSetPrivate.
51774         * page/InspectorController.cpp:
51775         (WebCore::InspectorController::~InspectorController):
51777 2008-01-08  Xan Lopez  <xan@gnome.org>
51779         Reviewed by Alp Toker.
51781         http://bugs.webkit.org/show_bug.cgi?id=15610
51782         [GTK] Text rendering using Pango
51784         Use Pango to render Complex path text.
51786         * platform/graphics/gtk/FontGtk.cpp:
51787         (WebCore::utf16_to_utf8):
51788         (WebCore::convertUniCharToUTF8):
51789         (WebCore::setPangoAttributes):
51790         (WebCore::Font::drawGlyphs):
51791         (WebCore::Font::drawComplexText):
51792         (WebCore::Font::floatWidthForComplexText):
51793         (WebCore::Font::offsetForPositionForComplexText):
51795 2008-01-08  Timothy Hatcher  <timothy@apple.com>
51797         Reviewed by Darin Adler.
51799         <rdar://problem/5665860> With the web inspector displayed, a crash occurs
51800         at WebCore::Frame::document() when navigating back to previous page
51802         This fixes the crash, but the inspector was totally broken with back/forward.
51803         So this also fixes back/forward navigation so the right main resource shows
51804         up in the inspector.
51806         * page/InspectorController.cpp:
51807         (WebCore::addSourceToFrame): Add some null checks for the frame when
51808         getting the textEncoding. This was the crash.
51809         (WebCore::InspectorController::addScriptResource): Create a script object
51810         only if needed, and always add it by calling addResource.
51811         (WebCore::InspectorController::didCommitLoad): Check if the loader is 
51812         loading from the page cache, and clear m_mainResource. If the load is
51813         normal, then call addAndUpdateScriptResource with the main resource. 
51814         (WebCore::InspectorController::identifierForInitialRequest): If the load
51815         is from the page cache and the resource is the main resource call
51816         addAndUpdateScriptResource since didCommitLoad did not do it.
51818 2008-01-08  Alp Toker  <alp@atoker.com>
51820         Back out VIDEO by default in the GTK+ qmake build. The build bot
51821         doesn't have the necessary libraries installed.
51823         * WebCore.pro:
51825 2008-01-08  Alp Toker  <alp@atoker.com>
51827         Win build fix for breakage introduced in r29328.
51829         * WebCore.vcproj/WebCore.vcproj:
51831 2008-01-08  Alp Toker  <alp@atoker.com>
51833         Rubber-stamped by Mark Rowe.
51835         Enable VIDEO by default in the GTK+ qmake build.
51837         * WebCore.pro:
51839 2008-01-08  Alp Toker  <alp@atoker.com>
51841         GTK+ VIDEO build fix for breakage introduced in r29328.
51843         Issue noticed by Ori_B.
51845         * GNUmakefile.am:
51846         * WebCore.pro:
51848 2008-01-08  Antti Koivisto  <antti@apple.com>
51850         Reviewed by Darin.
51851         
51852         HTMLAudioElement needs generated constructor. Otherwise video instanceof HTMLAudioElement is true which is 
51853         bit strange.
51854         
51855         Renamed custom constructor JSHTMLAudioElementConstructor to JSAudioConstructor to avoid name clashes.
51857         Test: media/constructors.html
51859         * WebCore.xcodeproj/project.pbxproj:
51860         * bindings/js/JSAudioConstructor.cpp: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.cpp.
51861         (WebCore::JSAudioConstructor::JSAudioConstructor):
51862         (WebCore::JSAudioConstructor::implementsConstruct):
51863         (WebCore::JSAudioConstructor::construct):
51864         * bindings/js/JSAudioConstructor.h: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.h.
51865         * bindings/js/JSHTMLAudioElementConstructor.cpp: Removed.
51866         * bindings/js/JSHTMLAudioElementConstructor.h: Removed.
51867         * bindings/js/kjs_window.cpp:
51868         (KJS::Window::getValueProperty):
51869         * html/HTMLAudioElement.idl:
51871 2008-01-08  Anders Carlsson  <andersca@apple.com>
51873         Reviewed by Mitz.
51875         Don't add the applet widget to the view, that's done later by RenderApplet.
51876             
51877         * loader/FrameLoader.cpp:
51878         (WebCore::FrameLoader::createJavaAppletWidget):
51880 2008-01-08  Antti Koivisto  <antti@apple.com>
51882         Reviewed by Weinig.
51883         
51884         Add security check for Audio constructor.
51886         * bindings/js/kjs_window.cpp:
51887         (KJS::Window::getValueProperty):
51889 2008-01-08  Timothy Hatcher  <timothy@apple.com>
51891         Reviewed by Adam Roben.
51893         <rdar://problem/5676515> List of scripts and images missing when opening Web Inspector from new window (16567)
51895         InspectorController::didLoadResourceFromMemoryCache was not being called for
51896         resources that loaded from the memory cache that the FrameLoader's client
51897         has already been notified about. This fix always calls the InspectorController
51898         when loading a memory cached resource. No test possible for the Web Inspector.
51900         * loader/DocLoader.cpp:
51901         (WebCore::DocLoader::checkCacheObjectStatus): Moved most of the logic to
51902         FrameLoader::loadedResourceFromMemoryCache so the InspectorController can always be notified.
51903         * loader/FrameLoader.cpp:
51904         (WebCore::FrameLoader::didTellClientAboutLoad): Renamed from didTellBridgeAboutLoad.
51905         (WebCore::FrameLoader::haveToldClientAboutLoad): Renamed from haveToldBridgeAboutLoad.
51906         (WebCore::FrameLoader::loadResourceSynchronously): Call the renamed didTellClientAboutLoad.
51907         (WebCore::FrameLoader::loadedResourceFromMemoryCache): Only takes a CachedResource now.
51908         Always call InspectorController. If the resource's sendResourceLoadCallbacks is false or
51909         didTellClientAboutLoad is true, do an early return. Otherwise call the client and call
51910         didTellClientAboutLoad.
51911         (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Removed, work now done
51912         in FrameLoader::loadedResourceFromMemoryCache.
51913         * loader/FrameLoader.h: Renamed {didTell,haveTold}BridgeAboutLoad to {didTell,haveTold}ClientAboutLoad.
51914         Made loadedResourceFromMemoryCache only take a CachedResource. Renamed m_urlsBridgeKnowsAbout to 
51915         m_urlsClientKnowsAbout.
51916         * loader/SubresourceLoader.cpp:
51917         (WebCore::SubresourceLoader::load): Call the renamed didTellClientAboutLoad.
51919 2008-01-08  Dan Bernstein  <mitz@apple.com>
51921         Rubber-stamped by Sam Weinig.
51923         - prefix all member variables in CSSStyleSelector with m_
51925         * css/CSSStyleSelector.cpp:
51926         (WebCore::CSSStyleSelector::CSSStyleSelector):
51927         (WebCore::CSSStyleSelector::init):
51928         (WebCore::CSSStyleSelector::setEncodedURL):
51929         (WebCore::CSSStyleSelector::loadDefaultStyle):
51930         (WebCore::CSSStyleSelector::matchRules):
51931         (WebCore::CSSStyleSelector::matchRulesForList):
51932         (WebCore::CSSStyleSelector::initElementAndPseudoState):
51933         (WebCore::CSSStyleSelector::initForStyleResolve):
51934         (WebCore::CSSStyleSelector::canShareStyleWithElement):
51935         (WebCore::CSSStyleSelector::locateSharedStyle):
51936         (WebCore::CSSStyleSelector::matchUARules):
51937         (WebCore::CSSStyleSelector::styleForElement):
51938         (WebCore::CSSStyleSelector::pseudoStyleForElement):
51939         (WebCore::CSSStyleSelector::updateFont):
51940         (WebCore::CSSStyleSelector::cacheBorderAndBackground):
51941         (WebCore::CSSStyleSelector::checkSelector):
51942         (WebCore::CSSStyleSelector::checkOneSelector):
51943         (WebCore::CSSStyleSelector::applyProperty):
51944         (WebCore::CSSStyleSelector::mapBackgroundImage):
51945         (WebCore::CSSStyleSelector::mapBackgroundSize):
51946         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
51947         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
51948         (WebCore::CSSStyleSelector::checkForTextSizeAdjust):
51949         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
51950         * css/CSSStyleSelector.h:
51951         (WebCore::CSSStyleSelector::):
51952         (WebCore::CSSRuleData::CSSRuleData):
51953         (WebCore::CSSRuleDataList::CSSRuleDataList):
51954         (WebCore::CSSRuleDataList::append):
51955         * css/SVGCSSStyleSelector.cpp:
51956         (WebCore::CSSStyleSelector::applySVGProperty):
51957         * rendering/RenderStyle.cpp:
51958         (WebCore::RenderStyle::isStyleAvailable):
51960 2008-01-08  David D. Kilzer  <ddkilzer@apple.com>
51962         Removed unnecessary files from Copy Bundle Resources build phase.
51964         Reviewed by Sam.
51966         * WebCore.xcodeproj/project.pbxproj: Files removed from build phase:
51967         DOMCoreException.idl
51968         EventException.idl
51969         MessageEvent.idl
51970         SVGAElement.idl
51971         SVGAngle.idl
51972         SVGAnimateColorElement.idl
51973         SVGAnimateElement.idl
51974         SVGAnimateTransformElement.idl
51975         SVGAnimatedAngle.idl
51976         SVGAnimatedBoolean.idl
51977         SVGAnimatedEnumeration.idl
51978         SVGAnimatedInteger.idl
51979         SVGAnimatedLength.idl
51980         SVGAnimatedLengthList.idl
51981         SVGAnimatedNumber.idl
51982         SVGAnimatedNumberList.idl
51983         SVGAnimatedPathData.idl
51984         SVGAnimatedPoints.idl
51985         SVGAnimatedPreserveAspectRatio.idl
51986         SVGAnimatedRect.idl
51987         SVGAnimatedString.idl
51988         SVGAnimatedTransformList.idl
51989         SVGAnimationElement.idl
51990         SVGCSSPropertyNames.in
51991         SVGCSSValueKeywords.in
51992         SVGCircleElement.idl
51993         SVGClipPathElement.idl
51994         SVGColor.idl
51995         SVGComponentTransferFunctionElement.idl
51996         SVGCursorElement.idl
51997         SVGDefinitionSrcElement.idl
51998         SVGDefsElement.idl
51999         SVGDescElement.idl
52000         SVGDocument.idl
52001         SVGElement.idl
52002         SVGElementInstance.idl
52003         SVGElementInstanceList.idl
52004         SVGEllipseElement.idl
52005         SVGException.idl
52006         SVGExternalResourcesRequired.idl
52007         SVGFEBlendElement.idl
52008         SVGFEColorMatrixElement.idl
52009         SVGFEComponentTransferElement.idl
52010         SVGFECompositeElement.idl
52011         SVGFEDiffuseLightingElement.idl
52012         SVGFEDisplacementMapElement.idl
52013         SVGFEDistantLightElement.idl
52014         SVGFEFloodElement.idl
52015         SVGFEFuncAElement.idl
52016         SVGFEFuncBElement.idl
52017         SVGFEFuncGElement.idl
52018         SVGFEFuncRElement.idl
52019         SVGFEGaussianBlurElement.idl
52020         SVGFEImageElement.idl
52021         SVGFEMergeElement.idl
52022         SVGFEMergeNodeElement.idl
52023         SVGFEOffsetElement.idl
52024         SVGFEPointLightElement.idl
52025         SVGFESpecularLightingElement.idl
52026         SVGFESpotLightElement.idl
52027         SVGFETileElement.idl
52028         SVGFETurbulenceElement.idl
52029         SVGFilterElement.idl
52030         SVGFilterPrimitiveStandardAttributes.idl
52031         SVGFitToViewBox.idl
52032         SVGFontElement.idl
52033         SVGFontFaceElement.idl
52034         SVGFontFaceFormatElement.idl
52035         SVGFontFaceNameElement.idl
52036         SVGFontFaceSrcElement.idl
52037         SVGFontFaceUriElement.idl
52038         SVGForeignObjectElement.idl
52039         SVGGElement.idl
52040         SVGGlyphElement.idl
52041         SVGGradientElement.idl
52042         SVGImageElement.idl
52043         SVGLangSpace.idl
52044         SVGLength.idl
52045         SVGLengthList.idl
52046         SVGLineElement.idl
52047         SVGLinearGradientElement.idl
52048         SVGLocatable.idl
52049         SVGMarkerElement.idl
52050         SVGMaskElement.idl
52051         SVGMatrix.idl
52052         SVGMetadataElement.idl
52053         SVGMissingGlyphElement.idl
52054         SVGNumber.idl
52055         SVGNumberList.idl
52056         SVGPaint.idl
52057         SVGPathElement.idl
52058         SVGPathSeg.idl
52059         SVGPathSegArcAbs.idl
52060         SVGPathSegArcRel.idl
52061         SVGPathSegClosePath.idl
52062         SVGPathSegCurvetoCubicAbs.idl
52063         SVGPathSegCurvetoCubicRel.idl
52064         SVGPathSegCurvetoCubicSmoothAbs.idl
52065         SVGPathSegCurvetoCubicSmoothRel.idl
52066         SVGPathSegCurvetoQuadraticAbs.idl
52067         SVGPathSegCurvetoQuadraticRel.idl
52068         SVGPathSegCurvetoQuadraticSmoothAbs.idl
52069         SVGPathSegCurvetoQuadraticSmoothRel.idl
52070         SVGPathSegLinetoAbs.idl
52071         SVGPathSegLinetoHorizontalAbs.idl
52072         SVGPathSegLinetoHorizontalRel.idl
52073         SVGPathSegLinetoRel.idl
52074         SVGPathSegLinetoVerticalAbs.idl
52075         SVGPathSegLinetoVerticalRel.idl
52076         SVGPathSegList.idl
52077         SVGPathSegMovetoAbs.idl
52078         SVGPathSegMovetoRel.idl
52079         SVGPatternElement.idl
52080         SVGPoint.idl
52081         SVGPointList.idl
52082         SVGPolygonElement.idl
52083         SVGPolylineElement.idl
52084         SVGPreserveAspectRatio.idl
52085         SVGRadialGradientElement.idl
52086         SVGRect.idl
52087         SVGRectElement.idl
52088         SVGRenderingIntent.idl
52089         SVGSVGElement.idl
52090         SVGScriptElement.idl
52091         SVGSetElement.idl
52092         SVGStopElement.idl
52093         SVGStringList.idl
52094         SVGStylable.idl
52095         SVGStyleElement.idl
52096         SVGSwitchElement.idl
52097         SVGSymbolElement.idl
52098         SVGTRefElement.idl
52099         SVGTSpanElement.idl
52100         SVGTests.idl
52101         SVGTextContentElement.idl
52102         SVGTextElement.idl
52103         SVGTextPathElement.idl
52104         SVGTextPositioningElement.idl
52105         SVGTitleElement.idl
52106         SVGTransform.idl
52107         SVGTransformList.idl
52108         SVGTransformable.idl
52109         SVGURIReference.idl
52110         SVGUnitTypes.idl
52111         SVGUseElement.idl
52112         SVGViewElement.idl
52113         SVGViewSpec.idl
52114         SVGZoomAndPan.idl
52115         SVGZoomEvent.idl
52116         XMLHttpRequestException.idl
52117         XPathException.idl
52118         character-sets.txt
52119         mac-encodings.txt
52120         make-charset-table.pl
52121         svgattrs.in
52122         svgtags.in
52123         xlinkattrs.in
52125 2008-01-08  Luca Bruno  <lethalman88@gmail.com>
52127         Reviewed by Alp Toker.
52129         Support copying the selected URL to the clipboard.
52131         * platform/gtk/PasteboardGtk.cpp:
52132         (WebCore::Pasteboard::writeURL): implemented
52134 2008-01-08  David D. Kilzer  <ddkilzer@webkit.org>
52136         Renamed CharacterData::m_str to m_data
52138         Rubber-stamped by Adam again.
52140         No test cases added since there is no change in behavior.
52142         * dom/CDATASection.cpp:
52143         * dom/CharacterData.cpp:
52144         (WebCore::CharacterData::CharacterData):
52145         (WebCore::CharacterData::setData):
52146         (WebCore::CharacterData::substringData):
52147         (WebCore::CharacterData::appendData):
52148         (WebCore::CharacterData::insertData):
52149         (WebCore::CharacterData::deleteData):
52150         (WebCore::CharacterData::replaceData):
52151         (WebCore::CharacterData::nodeValue):
52152         (WebCore::CharacterData::containsOnlyWhitespace):
52153         (WebCore::CharacterData::dispatchModifiedEvent):
52154         (WebCore::CharacterData::checkCharDataOperation):
52155         (WebCore::CharacterData::dump):
52156         * dom/CharacterData.h:
52157         * dom/Comment.cpp:
52158         * dom/Text.cpp:
52159         (WebCore::Text::splitText):
52160         (WebCore::Text::createRenderer):
52161         (WebCore::Text::recalcStyle):
52163 2008-01-08  Steve Falkenburg  <sfalken@apple.com>
52165         Fix a couple of compiler warnings.
52166         
52167         Reviewed by Mitz.
52169         * platform/win/ThreadingWin.cpp:
52170         * platform/win/UniscribeController.cpp: Remove unused function.
52171         (WebCore::UniscribeController::advance): Fix bogus warning about un-initialized variable.
52173 2008-01-08  Adele Peterson  <adele@apple.com>
52175         Reviewed by Darin.
52177         Fix for <rdar://problem/5674667> fast/forms/slider-mouse-events.html is broken by media control checkin 29257
52179         * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
52180           After fixing a bug in EventHandler to make sure events always go to the capturing node, this bug was exposed.
52181           MouseMove and MouseUp events were going to the thumb element, but not to the slider input element.  
52182           This change makes the input element the capturing node, and then the input element forwards the mouse events to the thumb element.
52183           I also added a missing call to setDefaultHandled for the mousemove event.
52185 2008-01-08  Adele Peterson  <adele@apple.com>
52187         Reviewed by Adam. 
52189         * rendering/RenderThemeSafari.cpp: Use the SafariTheme version number to decide whether or not to
52190         paint the media controls in RenderThemeSafari.
52192 2008-01-08  Oliver Hunt  <oliver@apple.com>
52194         Reviewed by Adele and John.
52196         Fix <rdar://problem/5652740> Crash occurs at WebCore::Widget::getView() after
52197         dragging file into window that contains web page ( http://www.econocraft.com/flood_arch.htm )
52199         We hit this crash if the page reloads between DragController::dragUpdated
52200         and DragController::performDrag, meaning that m_document starts pointing to
52201         a now viewless document.  This is picked up by an assertion in performDrag
52202         which I have now replaced with an assignment given that the assertion is 
52203         invalid -- it is possible for m_document to be changed between dragUpdated
52204         performDrag
52206         * page/DragController.cpp:
52207         (WebCore::DragController::performDrag):
52209 2008-01-08  Alexey Proskuryakov  <ap@webkit.org>
52211         Reviewed by Darin.
52213         <rdar://problem/5659812> CrashTracer: 462 crashes in Safari at com.apple.WebCore:
52214         WebCore::Node::setChanged + 96
52216         Test: fast/dom/cssTarget-crash.html
52218         * dom/Node.cpp: (WebCore::Node::removedFromDocument):
52219         Check to see if the node being removed is currently set as the Document's cssTarget.
52220         If it is, clear the cssTarget to prevent a hanging reference to it.
52222 2008-01-08  Adam Roben  <aroben@apple.com>
52224         * bindings/scripts/CodeGeneratorJS.pm: Touch this so the bindings will
52225         rebuild on Windows now that the media elements are enabled.
52227 2008-01-08  Adam Roben  <aroben@apple.com>
52229         * svg/svgtags.in: Touch this again for the sake of the Windows bots.
52231 2008-01-08  Timothy Hatcher  <timothy@apple.com>
52233         Reviewed by Adam Roben.
52235         Use JSRetainPtr in the Web Inspector everywhere we own a JSStringRef.
52236         Also added some #pragma marks to help find places in the file.
52238         * page/InspectorController.cpp:
52239         (WebCore::callSimpleFunction): Use JSRetainPtr<JSStringRef>.
52240         And return the result of JSObjectCallAsFunction.
52241         (WebCore::search): Use JSRetainPtr<JSStringRef>.
52242         (WebCore::databaseTableNames): Ditto.
52243         (WebCore::localizedStrings): Ditto.
52244         (WebCore::InspectorController::~InspectorController): Ditto.
52245         (WebCore::InspectorController::focusNode): Ditto.
52246         (WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
52247         (WebCore::InspectorController::scriptObjectReady): Ditto.
52248         (WebCore::addHeaders): Ditto.
52249         (WebCore::InspectorController::addScriptResource): Ditto.
52250         (WebCore::InspectorController::removeScriptResource): Ditto.
52251         (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
52252         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
52253         (WebCore::InspectorController::updateScriptResource): Ditto.
52254         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
52255         (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
52256         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
52258 2008-01-08  Dan Bernstein  <mitz@apple.com>
52260         Rubber-stamped by Sam Weinig.
52262         - rename FontDataBaseClass.{cpp,h} back to FontData.{cpp,h}
52264         * GNUmakefile.am:
52265         * WebCore.pro:
52266         * WebCore.vcproj/WebCore.vcproj:
52267         * WebCore.xcodeproj/project.pbxproj:
52268         * WebCoreSources.bkl:
52269         * editing/Editor.cpp:
52270         * platform/graphics/FontData.cpp: Copied from WebCore/platform/graphics/FontDataBaseClass.cpp.
52271         * platform/graphics/FontData.h: Copied from WebCore/platform/graphics/FontDataBaseClass.h.
52272         * platform/graphics/FontDataBaseClass.cpp: Removed.
52273         * platform/graphics/FontDataBaseClass.h: Removed.
52274         * platform/graphics/SegmentedFontData.h:
52275         * platform/graphics/SimpleFontData.h:
52277 2008-01-08  Dan Bernstein  <mitz@apple.com>
52279         Fix a Wx build error.
52281         * platform/graphics/wx/GlyphMapWx.cpp:
52282         (WebCore::GlyphPage::fill):
52284 2008-01-08  Dan Bernstein  <mitz@apple.com>
52286         Fix a Qt build error.
52288         * platform/graphics/qt/SimpleFontDataQt.cpp:
52289         (WebCore::SimpleFontData::containsCharacters):
52290         (WebCore::SimpleFontData::fontDataForCharacter):
52291         (WebCore::SimpleFontData::isSegmented):
52293 2008-01-08  Adam Roben  <aroben@apple.com>
52295         Windows build fix.
52297         Touch config.h to force a rebuild (apparently changing preprocessor
52298         definitions in the .vcproj doesn't force a rebuild).
52300         * config.h:
52302 2008-01-08  Dan Bernstein  <mitz@apple.com>
52304         Fix a Wx build failure.
52306         * webcore-wx.bkl:
52308 2008-01-08  Dan Bernstein  <mitz@apple.com>
52310         Fix a Qt build failure.
52312         * WebCore.pro:
52314 2008-01-08  John Sullivan  <sullivan@apple.com>
52316         Reviewed by Adam Roben
52317         
52318         - fixed <rdar://problem/5671668> REGRESSION (r28711-r28730): With caret in an empty form field, 
52319           Delete menu item is enabled but shouldn't be
52321         The enabled logic was incorrect for the Delete menu item. To fix this, I added an EditorCommandSource
52322         parameter to the enabled functions so that they can have parallel logic to the execute functions.
52324         * editing/EditorCommand.cpp:
52325         added EditorCommandSource parameter to isEnabled function prototype
52326         (WebCore::enabled):
52327         added unused EditorCommandSource parameter to these isEnabled functions:
52328         (WebCore::enabledAnySelection):
52329         (WebCore::enabledAnySelectionAndMark):
52330         (WebCore::enableCaretInEditableText):
52331         (WebCore::enabledCopy):
52332         (WebCore::enabledCut):
52334         (WebCore::enabledDelete):
52335         new function, uses logic previously used by Delete command for DOM sources; uses logic in enabledCut
52336         for menu source
52338         added unused EditorCommandSource parameter to these isEnabled functions:
52339         (WebCore::enabledInEditableText):
52340         (WebCore::enabledInRichlyEditableText):
52341         (WebCore::enabledPaste):
52342         (WebCore::enabledRangeInEditableText):
52343         (WebCore::enabledRangeInRichlyEditableText):
52344         (WebCore::enabledRedo):
52345         (WebCore::enabledUndo):
52346         
52347         (WebCore::CommandEntry::):
52348         wire up new enabledDelete function as delete function for Delete command
52349         
52350         (WebCore::Editor::Command::isEnabled):
52351         pass EditorCommandSource parameter to isEnabled function
52353 2008-01-08  Adam Roben  <aroben@apple.com>
52355         Visual C++ Express build fix
52357         * WebCore.vcproj/QTMovieWin.vcproj: Explicitly link against user32.lib
52358         and advapi32.lib. VS implicitly links against these, VC++ Express
52359         doesn't.
52361 2008-01-08  Dan Bernstein  <mitz@apple.com>
52363         - add bug number
52365         * platform/graphics/mac/FontCustomPlatformData.cpp:
52366         (WebCore::createFontCustomPlatformData):
52368 2008-01-08  Dan Bernstein  <mitz@apple.com>
52370         Try to fix the Qt build.
52372         * WebCore.pro:
52374 2008-01-08  Nikolas Zimmermann  <zimmermann@kde.org>
52376         Not reviewed. Try to fix Qt builds after Timothy's inspector changes.
52378         * page/inspector/WebKit.qrc:
52380 2008-01-08  Maciej Stachowiak  <mjs@apple.com>
52382         Reviewed by Mark.
52384         - remove duplicate definition of getElementById from HTMLDocument IDL (and ObjC bindings)
52386         * bindings/objc/PublicDOMInterfaces.h:
52387         * html/HTMLDocument.idl:
52389 2008-01-08  David D. Kilzer  <ddkilzer@webkit.org>
52391         Renamed CharacterData::str to m_str to match coding style
52393         Rubber-stamped by Adam.
52395         No test cases added since there is no change in behavior.
52397         * dom/CDATASection.cpp:
52398         * dom/CharacterData.cpp:
52399         (WebCore::CharacterData::CharacterData):
52400         (WebCore::CharacterData::setData):
52401         (WebCore::CharacterData::substringData):
52402         (WebCore::CharacterData::appendData):
52403         (WebCore::CharacterData::insertData):
52404         (WebCore::CharacterData::deleteData):
52405         (WebCore::CharacterData::replaceData):
52406         (WebCore::CharacterData::nodeValue):
52407         (WebCore::CharacterData::containsOnlyWhitespace):
52408         (WebCore::CharacterData::dispatchModifiedEvent):
52409         (WebCore::CharacterData::checkCharDataOperation):
52410         (WebCore::CharacterData::dump):
52411         * dom/CharacterData.h:
52412         * dom/Comment.cpp:
52413         * dom/Text.cpp:
52414         (WebCore::Text::splitText):
52415         (WebCore::Text::createRenderer):
52416         (WebCore::Text::recalcStyle):
52418 2008-01-08  Oliver Hunt  <oliver@apple.com>
52420         Set the ENABLE_SVG_FONTS flag in Windows build, now builds, 
52421         I'm not sure if it just caused the right files to regenerate,
52422         or if there's some configuration weirdness in the non-SVG-fonts
52423         build. 
52425         * WebCore.vcproj/WebCore.vcproj:
52427 2008-01-07  Maciej Stachowiak  <mjs@apple.com>
52429         Reviewed by Brady.
52431         - fixed <rdar://problem/5644300> Back/Forward Cache should not include pages with databases
52432         
52433         Track whether a document has ever opened a database; if so, exclude it from b/f caching (for now)
52434         
52435         * dom/Document.cpp:
52436         (WebCore::Document::Document):
52437         * dom/Document.h:
52438         (WebCore::Document::setHasOpenDatabases):
52439         (WebCore::Document::hasOpenDatabases):
52440         * loader/FrameLoader.cpp:
52441         (WebCore::FrameLoader::canCachePage):
52442         * storage/Database.cpp:
52443         (WebCore::Database::openDatabase):
52445 2008-01-07  Dan Bernstein  <mitz@apple.com>
52447         Reviewed by Oliver Hunt.
52449         - fix leaks seen on the build bot
52451         * css/CSSFontSelector.cpp:
52452         (WebCore::CSSFontSelector::addFontFaceRule): Avoid creating a
52453         CSSFontFaceSource for SVG font-face elements going into an
52454         SVGCSSFontFace because it just leaks them. Avoid adding SVG font-
52455         face elements to a CSSFontFace because it will not work as expected.
52457 2008-01-07  Mark Rowe  <mrowe@apple.com>
52459         Tiger build fix.
52461         * platform/graphics/mac/FontCustomPlatformData.cpp:
52462         (WebCore::createFontCustomPlatformData): Only include this code on Leopard.
52463         It's not needed on Tiger, and breaks the build.
52465 2008-01-07  Antti Koivisto  <antti@apple.com>
52467         Reviewed by Steve.
52469         Re-enable media support in Windows build.
52471         * WebCore.vcproj/QTMovieWin.vcproj:
52472         * WebCore.vcproj/WebCore.vcproj:
52473         * WebCore.vcproj/build-generated-files.sh:
52475 2008-01-07  Steve Falkenburg  <sfalken@apple.com>
52477         Add version resource to QTMovieWin.dll
52478         
52479         Reviewed by Adam.
52481         * WebCore.vcproj/PRODUCTVERSION: Copied from ../WebKit/win/WebKit.vcproj/PRODUCTVERSION.
52482         * WebCore.vcproj/QTMovieWin.rc: Added.
52483         * WebCore.vcproj/QTMovieWin.vcproj:
52484         * WebCore.vcproj/VERSION: Copied from ../WebKit/win/WebKit.vcproj/VERSION.
52485         * WebCore.vcproj/auto-version.sh: Copied from ../WebKit/win/WebKit.vcproj/auto-version.sh.
52487 2008-01-07  Dan Bernstein  <mitz@apple.com>
52489         Build fix.
52491         * platform/graphics/qt/FontCustomPlatformData.cpp:
52492         (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added.
52493         Calls QFontDatabase::removeApplicationFont().
52494         * platform/graphics/qt/FontCustomPlatformData.h:
52495         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
52496         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData): Removed the
52497         implementation because Qt does not use the WebCore glyph cache.
52499 2008-01-07  Dan Bernstein  <mitz@apple.com>
52501         Reviewed by Oliver Hunt.
52503         - fix an assertion failure in svg/W3C-SVG-1.1/fonts-elem-03-b.svg on
52504           Tiger and multiple SVG layout test failures on Leopard.
52506         * css/CSSSegmentedFontFace.cpp:
52507         (WebCore::CSSSegmentedFontFace::getFontData): Avoid returning an
52508         empty SegmentedFontData.
52509         * platform/graphics/mac/FontCustomPlatformData.cpp:
52510         (WebCore::createFontCustomPlatformData): Avoid creating a font that
52511         contains no glyphs. On Leopard, ATS might create such a font given
52512         data in an unsupported format (such as SVG).
52514 2008-01-07  Steve Falkenburg  <sfalken@apple.com>
52516         Build fix.
52518         * WebCore.vcproj/WebCore.sln:
52519         * WebCore.vcproj/WebCore.submit.sln:
52521 2008-01-07  Oliver Hunt  <oliver@apple.com>
52523         Reviewed by Niko.
52525         Fix painting of SVG <image> when the image must be scaled to retain aspect ratio
52527         Test: svg/custom/image-with-aspect-ratio-stretch.svg
52529         * rendering/RenderSVGImage.cpp:
52530         (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
52532 2008-01-07  Dan Bernstein  <mitz@apple.com>
52534         Build fix.
52536         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
52537         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
52539 2008-01-07  Adele Peterson  <adele@apple.com>
52541         Add missing newline.
52543         * rendering/MediaControlElements.cpp:
52545 2008-01-07  Jon Honeycutt  <jhoneycutt@apple.com>
52547         Reviewed by Hyatt.
52549         <rdar://problem/5673489> Safari does not render windowless plugins in an
52550         iframe when opacity < 1.0
52552         Plugins in transparency layers handle their own world transforms, so
52553         only apply the horizontal/vertical transform if we are not in a
52554         transparency layer.
52556         * platform/graphics/GraphicsContext.h: Add a Windows-platform-only
52557         inTransparencyLayer() function
52558         * platform/win/GraphicsContextWin.cpp:
52559         (WebCore::GraphicsContext::getWindowsContext): Use inTransparencyLayer()
52560         (WebCore::GraphicsContext::inTransparencyLayer):
52561         (WebCore::GraphicsContext::releaseWindowsContext): Use
52562         inTransparencyLayer()
52563         * plugins/win/PluginViewWin.cpp:
52564         (WebCore::PluginViewWin::paint): When retrieving the HDC, use the rect
52565         relative to the window. Pass m_isTransparent to
52566         get/releaseWindowsContext(). Only set the world transform if we are not
52567         in a transparency layer.
52569 2008-01-07  Adele Peterson  <adele@apple.com>
52571         Build fix.  Need to wrap these classes in #if ENABLE(VIDEO)
52573         * rendering/MediaControlElements.cpp:
52574         * rendering/MediaControlElements.h:
52576 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
52578         Reviewed by Mark.
52580         Enable SVG_FONTS by default.
52582         * Configurations/WebCore.xcconfig:
52583         * WebCore.vcproj/build-generated-files.sh:
52585 2008-01-07  Dan Bernstein  <mitz@apple.com>
52587         Build fix.
52589         * platform/graphics/qt/SimpleFontDataQt.cpp:
52590         (WebCore::SimpleFontData::SimpleFontData):
52591         (WebCore::SimpleFontData::~SimpleFontData):
52593 2008-01-07  Adam Barth  <hk9565@gmail.com>
52595         Reviewed by Sam Weinig
52597         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16523
52598         <rdar://problem/5657447>
52600         When a frame is created with the URL "about:blank" or "", it should
52601         inherit its SecurityOrigin from its opener.  However, once it has
52602         decided on that SecurityOrigin, it should not change its mind.
52603         Prior to this patch, several events could induce the frame to change
52604         its SecurityOrigin, permitting an attacker to inject script into an
52605         arbitrary SecurityOrigin.
52607         This patch makes several changes:
52609         1) Documents refuse to change from one SecurityOrigin to another
52610            unless explicitly instructed to do so.
52612         2) Navigating to a JavaScript URL that produces a value
52613            preserves the current SecurityOrigin explicitly instead of
52614            relying on the URL to preserve the origin (which fails for
52615            about:blank URLs and SecurityOrigins with document.domain set).
52617            Ideally, we should not preserve the URL at all.  Instead, the
52618            frame's URL should be the JavaScript URL, as in Firefox, but this
52619            would require changes that are too risky for this patch.  I'll
52620            file this as a separate issue.
52622         3) Various methods of navigating to JavaScript URLs were not
52623            properly handling JavaScript that returned a value (and should
52624            therefore replace the current document).  This patch unifies
52625            those code paths with the path that works.
52627            There are still a handful of bugs relating to the handling of
52628            JavaScript URLs, but I'll file those as separate issues.
52630         Tests: http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html
52631                http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html
52632                http/tests/security/aboutBlank/xss-DENIED-set-opener.html
52634         * dom/Document.cpp:
52635         (WebCore::Document::initSecurityOrigin):
52636         * dom/Document.h:
52637         (WebCore::Document::setSecurityOrigin):
52638         * loader/FrameLoader.cpp:
52639         (WebCore::FrameLoader::changeLocation):
52640         (WebCore::FrameLoader::urlSelected):
52641         (WebCore::FrameLoader::requestFrame):
52642         (WebCore::FrameLoader::submitForm):
52643         (WebCore::FrameLoader::executeIfJavaScriptURL):
52644         (WebCore::FrameLoader::begin):
52645         * loader/FrameLoader.h:
52646         * platform/SecurityOrigin.cpp:
52647         (WebCore::SecurityOrigin::setForURL):
52648         (WebCore::SecurityOrigin::createForFrame):
52649         * platform/SecurityOrigin.h:
52651 2008-01-07  Adele Peterson  <adele@apple.com>
52653         Forgot to check in these changes in my last checkin.
52655         * rendering/RenderThemeSafari.cpp:
52657 2008-01-07  Dan Bernstein  <mitz@apple.com>
52659         Build fixes.
52661         * WebCore.pro:
52662         * platform/graphics/qt/FontCacheQt.cpp:
52663         (WebCore::FontCache::getCachedFontData):
52665 2008-01-07  Timothy Hatcher  <timothy@apple.com>
52667         Reviewed by John Sullivan.
52669         <rdar://problem/5674119> Make the Web Inspector toolbar the normal size when not docked
52671         * page/inspector/inspector.css: Changed CSS rules to have the toolbar and buttons be
52672           normal height when not docked, and small when docked. Also added some cursor properties
52673           prevent showing the text cursor over areas that are not selectable.
52674         * page/inspector/Images: A few images added and old ones removed or renamed.
52676 2008-01-07  Alp Toker  <alp@atoker.com>
52678         Prospective GTK+ autotools/qmake VIDEO build fix for breakage
52679         introduced in r29257.
52681         * GNUmakefile.am:
52682         * WebCore.pro:
52684 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
52686         Reviewed by Oliver.
52688         Build fix affecting all builds - again related to the unicode-range addition.
52690         * css/CSSFontSelector.cpp:
52691         (WebCore::CSSFontSelector::addFontFaceRule):
52692         * css/SVGCSSFontFace.cpp:
52693         (WebCore::SVGCSSFontFace::SVGCSSFontFace):
52694         * css/SVGCSSFontFace.h:
52695         * rendering/RenderSVGText.cpp:
52696         * svg/SVGFont.cpp:
52697         (WebCore::svgFontAndFontFaceElementForFontData):
52698         (WebCore::floatWidthMissingGlyphCallback):
52699         (WebCore::drawTextMissingGlyphCallback):
52700         * svg/SVGFontFaceElement.cpp:
52702 2008-01-07  Adele Peterson  <adele@apple.com>
52704         Reviewed by Antti, Adam, and Mitz.
52706         WebCore part of fix for 
52707         <rdar://problem/5619073> Updated look for <video> controls
52708         <rdar://problem/5619057> Add volume control to video controls
52710         * WebCore.base.exp: Added symbols for WebKitSystemInterface drawing methods.
52711         * WebCore.xcodeproj/project.pbxproj: Added MediaControlElements.h/cpp
52712         * WebCore.vcproj/WebCore.vcproj: ditto.
52714         * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added cases for new appearances.
52715         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Added cases for new types.
52716         * css/CSSSelector.h: (WebCore::CSSSelector::): Added new pseudo elements.
52717         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::checkOneSelector): ditto.
52718         * css/CSSValueKeywords.in: Added keywords for new control appearance styles.
52719         * css/html4.css: Added new styles for new controls.
52721         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::canPlay): Added. Takes loading state into account.
52722         * html/HTMLMediaElement.h:
52724         * page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): Make sure the events always go to the capturing node, if there is one.
52726         * platform/mac/WebCoreSystemInterface.h: Added drawing methods for controls.
52727         * platform/mac/WebCoreSystemInterface.mm: ditto.
52729         * rendering/MediaControlElements.cpp: Added.
52730         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): Moved from RenderMedia.  Made this relatively positioned, instead of absolute.
52731         (WebCore::MediaControlInputElement::MediaControlInputElement): Moved from RenderMedia.  Removed call to updateFromElement, 
52732          since its too early to do this here, and causes crashes for the slider.
52733         (WebCore::MediaControlInputElement::attachToParent): Moved from RenderMedia.
52734         (WebCore::MediaControlInputElement::update): ditto.
52735         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Added.
52736         (WebCore::MediaControlMuteButtonElement::defaultEventHandler): ditto.
52737         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Moved from RenderMedia.
52738         (WebCore::MediaControlPlayButtonElement::defaultEventHandler): ditto.
52739         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Added.
52740         (WebCore::MediaControlSeekButtonElement::defaultEventHandler): ditto.
52741         (WebCore::MediaControlSeekButtonElement::seekTimerFired): ditto.
52742         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Moved from RenderMedia.
52743         (WebCore::MediaControlTimelineElement::defaultEventHandler): ditto.
52744         (WebCore::MediaControlTimelineElement::update): ditto. 
52745         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Added.
52746         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): ditto.
52747         * rendering/MediaControlElements.h: Added. Moved from RenderMedia.
52748         (WebCore::MediaControlShadowRootElement::isShadowNode):
52749         (WebCore::MediaControlShadowRootElement::shadowParentNode):
52750         (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
52751         (WebCore::RenderMediaControlShadowRoot::setParent):
52753         * rendering/RenderMedia.cpp: Moved control element classes to MediaControlElements files.
52754         (WebCore::RenderMedia::RenderMedia): No need to initialize RefPtrs.
52755         (WebCore::RenderMedia::layout): Set the position for the controlsRenderer.
52756         (WebCore::RenderMedia::createPanel): Added nil check for the renderer.
52757         (WebCore::RenderMedia::createMuteButton): Added.
52758         (WebCore::RenderMedia::createSeekBackButton): ditto.
52759         (WebCore::RenderMedia::createSeekForwardButton): ditto.
52760         (WebCore::RenderMedia::createTimeDisplay): Added nil check for the renderer.
52761         (WebCore::RenderMedia::createFullscreenButton): Added.
52762         (WebCore::RenderMedia::updateControls): Create, delete, and update new controls when appropriate.
52763         (WebCore::RenderMedia::updateControlVisibility): Don't fade controls for audio controls. 
52764         (WebCore::RenderMedia::forwardEvent): Forward events for new controls.
52765         * rendering/RenderMedia.h: Added new methods for creating new controls.
52767         * rendering/RenderObject.cpp: (WebCore::RenderObject::containingBlock): Updated special case for media elements, which are replaced elements, 
52768           but also can contain children (the controls' container) that may need to look for the containing block.
52770         * rendering/RenderSlider.cpp: (WebCore::RenderSlider::createThumbStyle): Added case for MediaSliderAppearance.
52772         * rendering/RenderStyle.h: Added appearance constants and pseudo ids for new controls.
52773         (WebCore::RenderStyle::):
52775         * rendering/RenderTheme.cpp:
52776         (WebCore::RenderTheme::adjustStyle): Added cases for new appearances.
52777         (WebCore::RenderTheme::paint): ditto.
52778         * rendering/RenderTheme.h: Added new methods for painting new appearances.
52779         (WebCore::RenderTheme::paintMediaBackground):
52780         (WebCore::RenderTheme::paintMediaFullscreenButton):
52781         (WebCore::RenderTheme::paintMediaPlayButton):
52782         (WebCore::RenderTheme::paintMediaMuteButton):
52783         (WebCore::RenderTheme::paintMediaSeekBackButton):
52784         (WebCore::RenderTheme::paintMediaSeekForwardButton):
52785         (WebCore::RenderTheme::paintMediaSliderThumb):
52786         * rendering/RenderThemeMac.h:
52787         * rendering/RenderThemeMac.mm:
52788         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_mediaControlBackgroundImage.
52789         (WebCore::RenderThemeMac::~RenderThemeMac): Delete m_mediaControlBackgroundImage.
52790         (WebCore::RenderThemeMac::paintCapsLockIndicator): Use LocalCurrentGraphicsContext here too, since we use it in all other painting methods.
52791         (WebCore::RenderThemeMac::paintSliderTrack): Added case for MediaSliderAppearance.
52792         (WebCore::RenderThemeMac::adjustSliderThumbSize): Added case for MediaSliderThumbAppearance.
52793         (WebCore::RenderThemeMac::paintMediaBackground): Draws the new artwork for the controls.
52794         (WebCore::RenderThemeMac::paintMediaFullscreenButton): ditto.
52795         (WebCore::RenderThemeMac::paintMediaMuteButton): ditto.
52796         (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
52797         (WebCore::RenderThemeMac::paintMediaSeekBackButton): ditto.
52798         (WebCore::RenderThemeMac::paintMediaSeekForwardButton): ditto.
52799         (WebCore::RenderThemeMac::paintMediaSliderThumb): ditto.
52800         * rendering/RenderThemeSafari.cpp: Draws the new artwork on Windows.
52801         (WebCore::RenderThemeSafari::paintSliderTrack):
52802         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
52803         (WebCore::RenderThemeSafari::paintMediaBackground):
52804         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
52805         (WebCore::RenderThemeSafari::paintMediaMuteButton):
52806         (WebCore::RenderThemeSafari::paintMediaPlayButton):
52807         (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
52808         (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
52809         (WebCore::RenderThemeSafari::paintMediaSliderThumb):
52810         * rendering/RenderThemeSafari.h:
52812 2008-01-07  Timothy Hatcher  <timothy@apple.com>
52814         Reviewed by Darin Adler.
52816         Fix ASSERTION FAILED: dstOffset + srcSegmentLength == static_cast<int>(data.size())
52817         when the replacment string is a different length.
52819         * platform/text/StringImpl.cpp:
52820         (WebCore::StringImpl::replace): Move the parenthesis to be around only the subtraction in
52821         the Vector size calculation, correcting the order of math operations.
52823 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
52825         Reviewed by Eric. Hopefully fix build with mac tiger after the unicode-range addition. NSInteger not available there.
52827         * platform/graphics/mac/FontCacheMac.mm:
52829 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
52831         Reviewed by Oliver. Fix build error introduced by Dan's unicode-range support patch & enabling SVG_FONTS by default.
52833         * css/CSSFontSelector.cpp:
52834         (WebCore::CSSFontSelector::getFontData):
52836 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
52838         Not reviewed. Next try to fix wx/mac leopard build.
52840         * css/CSSFontSelector.cpp: Need to wrap a SVG* include in ENABLE(SVG) blocks, as this port doesn't build this generated file.
52841         * svg/SVGFontFaceElement.cpp:
52842         (WebCore::SVGFontFaceElement::createFontData): Fix double<->float conversion issue.
52843         * webcore-base.bkl: Undo svg/ include.
52845 2008-01-07  Dan Bernstein  <mitz@apple.com>
52847         Reviewed by Dave Hyatt.
52849         - <rdar://problem/5665216> Support the unicode-range property in @font-face rules
52851         * GNUmakefile.am:
52852         * WebCore.pro:
52853         * WebCore.vcproj/WebCore.vcproj:
52854         * WebCore.xcodeproj/project.pbxproj:
52855         * WebCoreSources.bkl:
52856         * bindings/objc/DOM.mm:
52857         * bridge/mac/WebCoreAXObject.mm:
52858         * css/CSSComputedStyleDeclaration.cpp:
52859         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52860         * css/CSSFontFace.cpp:
52861         (WebCore::CSSFontFace::fontLoaded): Changed to call the owning segmented
52862         font face.
52863         (WebCore::CSSFontFace::getFontData):
52864         * css/CSSFontFace.h:
52865         (WebCore::CSSFontFace::CSSFontFace):
52866         (WebCore::CSSFontFace::setSegmentedFontFace):
52867         * css/CSSFontFaceSource.cpp:
52868         (WebCore::CSSFontFaceSource::pruneTable): Removed the calls to
52869         GlyphPageTreeNode::pruneTreeCustomFontData because the fonts in the
52870         font table are not exposed in the glyph page tree. Only the segmented
52871         font is, and that is taken care of by the segmented font face.
52872         (WebCore::CSSFontFaceSource::getFontData):
52873         * css/CSSFontFaceSource.h:
52874         * css/CSSFontSelector.cpp:
52875         (WebCore::CSSFontSelector::addFontFaceRule): Changed to collect
52876         @font-face rules with the same family and traits into a single
52877         segmented font face, instead of just retaining the most recent one.
52878         (WebCore::CSSFontSelector::fontLoaded):
52879         (WebCore::CSSFontSelector::getFontData):
52880         * css/CSSFontSelector.h:
52881         * css/CSSGrammar.y:
52882         * css/CSSParser.cpp:
52883         (WebCore::CSSParser::parseValue):
52884         (WebCore::CSSParser::parseFontFaceUnicodeRange): Added. Parses a unicode
52885         range value.
52886         * css/CSSParser.h:
52887         * css/CSSPrimitiveValue.h:
52888         (WebCore::CSSPrimitiveValue::):
52889         * css/CSSPropertyNames.in:
52890         * css/CSSSegmentedFontFace.cpp: Added.
52891         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
52892         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
52893         (WebCore::CSSSegmentedFontFace::pruneTable):
52894         (WebCore::CSSSegmentedFontFace::isLoaded):
52895         (WebCore::CSSSegmentedFontFace::isValid):
52896         (WebCore::CSSSegmentedFontFace::fontLoaded):
52897         (WebCore::CSSSegmentedFontFace::overlayRange):
52898         (WebCore::CSSSegmentedFontFace::getFontData):
52899         * css/CSSSegmentedFontFace.h: Added.
52900         (WebCore::FontFaceRange::FontFaceRange):
52901         (WebCore::FontFaceRange::from):
52902         (WebCore::FontFaceRange::to):
52903         (WebCore::FontFaceRange::fontFace):
52904         (WebCore::CSSSegmentedFontFace::fontSelector):
52905         * css/CSSStyleSelector.cpp:
52906         (WebCore::CSSStyleSelector::applyProperty):
52907         * css/CSSUnicodeRangeValue.cpp: Added.
52908         (WebCore::CSSUnicodeRangeValue::~CSSUnicodeRangeValue):
52909         (WebCore::CSSUnicodeRangeValue::cssText):
52910         * css/CSSUnicodeRangeValue.h: Added.
52911         (WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue):
52912         (WebCore::CSSUnicodeRangeValue::from):
52913         (WebCore::CSSUnicodeRangeValue::to):
52914         * css/SVGCSSFontFace.cpp:
52915         (WebCore::SVGCSSFontFace::getFontData):
52916         * css/SVGCSSFontFace.h:
52917         * editing/Editor.cpp:
52918         (WebCore::Editor::fontForSelection):
52919         * editing/Editor.h:
52920         * page/mac/FrameMac.mm:
52921         * page/mac/WebCoreFrameBridge.mm:
52922         (-[WebCoreFrameBridge fontForSelection:]):
52923         * platform/graphics/Font.cpp:
52924         (WebCore::WidthIterator::advance):
52925         (WebCore::Font::glyphDataForCharacter):
52926         (WebCore::Font::primaryFont): Changed to return the simple font data
52927         used for the space character.
52928         (WebCore::Font::fontDataAt):
52929         (WebCore::Font::fontDataForCharacters):
52930         (WebCore::Font::drawGlyphBuffer):
52931         * platform/graphics/Font.h:
52932         * platform/graphics/FontCache.cpp:
52933         (WebCore::FontCache::getCachedFontData):
52934         (WebCore::FontCache::getFontData):
52935         * platform/graphics/FontCache.h:
52936         * platform/graphics/FontData.cpp: Renamed to SimpleFontData.cpp
52937         * platform/graphics/FontData.h: Renamed to SimpleFontData.cpp.
52938         * platform/graphics/FontDataBaseClass.cpp: Added. This will be renamed
52939         FontData.cpp.
52940         (WebCore::FontData::~FontData):
52941         * platform/graphics/FontDataBaseClass.h: Added. This will be renamed
52942         FontData.h.
52943         * platform/graphics/FontFallbackList.cpp:
52944         (WebCore::FontFallbackList::determinePitch):
52945         (WebCore::FontFallbackList::fontDataAt):
52946         (WebCore::FontFallbackList::fontDataForCharacters):
52947         * platform/graphics/FontFallbackList.h:
52948         (WebCore::FontFallbackList::primaryFont):
52949         * platform/graphics/FontSelector.h:
52950         * platform/graphics/GlyphBuffer.h:
52951         (WebCore::GlyphBuffer::fontDataAt):
52952         (WebCore::GlyphBuffer::swap):
52953         (WebCore::GlyphBuffer::add):
52954         * platform/graphics/GlyphPageTreeNode.cpp:
52955         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
52956         (WebCore::GlyphPageTreeNode::initializePage): Added code to initialize
52957         pages for segmented font data.
52958         (WebCore::GlyphPageTreeNode::getChild):
52959         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
52960         * platform/graphics/GlyphPageTreeNode.h:
52961         (WebCore::GlyphPage::setGlyphDataForCharacter):
52962         (WebCore::GlyphPage::setGlyphDataForIndex):
52963         (WebCore::GlyphPageTreeNode::getRootChild):
52964         * platform/graphics/SegmentedFontData.cpp: Added.
52965         (WebCore::SegmentedFontData::~SegmentedFontData):
52966         (WebCore::SegmentedFontData::fontDataForCharacter):
52967         (WebCore::SegmentedFontData::containsCharacters):
52968         (WebCore::SegmentedFontData::isCustomFont):
52969         (WebCore::SegmentedFontData::isLoading):
52970         (WebCore::SegmentedFontData::isSegmented):
52971         * platform/graphics/SegmentedFontData.h: Added.
52972         (WebCore::FontDataRange::FontDataRange):
52973         (WebCore::FontDataRange::from):
52974         (WebCore::FontDataRange::to):
52975         (WebCore::FontDataRange::fontData):
52976         (WebCore::SegmentedFontData::appendRange):
52977         (WebCore::SegmentedFontData::numRanges):
52978         (WebCore::SegmentedFontData::rangeAt):
52979         * platform/graphics/SimpleFontData.cpp: Copied from WebCore/platform/graphics/FontData.cpp.
52980         (WebCore::SimpleFontData::SimpleFontData):
52981         (WebCore::SimpleFontData::~SimpleFontData):
52982         (WebCore::SimpleFontData::ascent):
52983         (WebCore::SimpleFontData::descent):
52984         (WebCore::SimpleFontData::widthForGlyph):
52985         (WebCore::SimpleFontData::fontDataForCharacter):
52986         (WebCore::SimpleFontData::isSegmented):
52987         * platform/graphics/SimpleFontData.h: Copied from WebCore/platform/graphics/FontData.h.
52988         (WebCore::SimpleFontData::isCustomFont):
52989         (WebCore::SimpleFontData::isLoading):
52990         * platform/graphics/cairo/GraphicsContextCairo.cpp:
52991         (WebCore::GraphicsContext::setPlatformFont):
52992         * platform/graphics/gtk/FontCacheGtk.cpp:
52993         (WebCore::FontCache::getFontDataForCharacters):
52994         * platform/graphics/gtk/FontDataGtk.cpp: Renamed to
52995         SimpleFontDataGtk.cpp.
52996         * platform/graphics/gtk/FontGtk.cpp:
52997         (WebCore::Font::drawGlyphs):
52998         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
52999         (WebCore::GlyphPage::fill):
53000         * platform/graphics/gtk/SimpleFontDataGtk.cpp: Copied from WebCore/platform/graphics/gtk/FontDataGtk.cpp.
53001         (WebCore::SimpleFontData::platformInit):
53002         (WebCore::SimpleFontData::platformDestroy):
53003         (WebCore::SimpleFontData::smallCapsFontData):
53004         (WebCore::SimpleFontData::containsCharacters):
53005         (WebCore::SimpleFontData::determinePitch):
53006         (WebCore::SimpleFontData::platformWidthForGlyph):
53007         (WebCore::SimpleFontData::setFont):
53008         * platform/graphics/mac/FontCacheMac.mm:
53009         (WebCore::FontCache::getFontDataForCharacters):
53010         * platform/graphics/mac/FontDataMac.mm: Renamed to SimpleFontDataMac.mm.
53011         * platform/graphics/mac/FontMac.mm:
53012         (WebCore::initializeATSUStyle):
53013         (WebCore::overrideLayoutOperation):
53014         (WebCore::ATSULayoutParameters::initialize):
53015         (WebCore::Font::drawGlyphs):
53016         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
53017         (WebCore::GlyphPage::fill):
53018         * platform/graphics/mac/SimpleFontDataMac.mm: Copied from WebCore/platform/graphics/mac/FontDataMac.mm.
53019         (WebCore::initFontData):
53020         (WebCore::SimpleFontData::platformInit):
53021         (WebCore::SimpleFontData::platformDestroy):
53022         (WebCore::SimpleFontData::smallCapsFontData):
53023         (WebCore::SimpleFontData::containsCharacters):
53024         (WebCore::SimpleFontData::determinePitch):
53025         (WebCore::SimpleFontData::platformWidthForGlyph):
53026         (WebCore::SimpleFontData::checkShapesArabic):
53027         * platform/graphics/qt/FontDataQt.cpp: Renamed to SimpleFontDataQt.cpp.
53028         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
53029         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
53030         * platform/graphics/qt/SimpleFontDataQt.cpp: Copied from WebCore/platform/graphics/qt/FontDataQt.cpp.
53031         * platform/graphics/win/FontCacheWin.cpp:
53032         (WebCore::FontCache::getFontDataForCharacters):
53033         * platform/graphics/win/FontDataWin.cpp: Renamed to
53034         SimpleFontDataWin.cpp.
53035         * platform/graphics/win/FontWin.cpp:
53036         (WebCore::Font::drawGlyphs):
53037         * platform/graphics/win/GlyphPageTreeNodeWin.cpp:
53038         (WebCore::GlyphPage::fill):
53039         * platform/graphics/win/SimpleFontDataWin.cpp: Copied from WebCore/platform/graphics/win/FontDataWin.cpp.
53040         (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
53041         (WebCore::SimpleFontData::platformInit):
53042         (WebCore::SimpleFontData::platformDestroy):
53043         (WebCore::SimpleFontData::smallCapsFontData):
53044         (WebCore::SimpleFontData::containsCharacters):
53045         (WebCore::SimpleFontData::determinePitch):
53046         (WebCore::SimpleFontData::platformWidthForGlyph):
53047         (WebCore::SimpleFontData::scriptFontProperties):
53048         * platform/graphics/wx/FontCacheWx.cpp:
53049         (WebCore::FontCache::getFontDataForCharacters):
53050         * platform/graphics/wx/FontDataWx.cpp: Renamed to SimpleFontDataWx.cpp.
53051         * platform/graphics/wx/FontWx.cpp:
53052         (WebCore::Font::drawGlyphs):
53053         * platform/graphics/wx/GlyphMapWx.cpp:
53054         (WebCore::GlyphPage::fill):
53055         * platform/graphics/wx/SimpleFontDataWx.cpp: Copied from WebCore/platform/graphics/wx/FontDataWx.cpp.
53056         (WebCore::SimpleFontData::platformInit):
53057         (WebCore::SimpleFontData::platformDestroy):
53058         (WebCore::SimpleFontData::smallCapsFontData):
53059         (WebCore::SimpleFontData::containsCharacters):
53060         (WebCore::SimpleFontData::determinePitch):
53061         (WebCore::SimpleFontData::platformWidthForGlyph):
53062         * platform/mac/FileChooserMac.mm:
53063         * platform/mac/PopupMenuMac.mm:
53064         * platform/mac/WebCoreTextRenderer.mm:
53065         * platform/win/PopupMenuWin.cpp:
53066         * platform/win/UniscribeController.cpp:
53067         (WebCore::UniscribeController::advance):
53068         (WebCore::UniscribeController::itemizeShapeAndPlace):
53069         (WebCore::UniscribeController::shapeAndPlaceItem):
53070         (WebCore::UniscribeController::shape):
53071         * platform/win/UniscribeController.h:
53072         * svg/SVGFont.cpp:
53073         (WebCore::Font::drawGlyphsWithSVGFont):
53074         * svg/SVGFontElement.cpp:
53075         (WebCore::SVGFontElement::collectGlyphs):
53076         * svg/SVGFontFaceElement.cpp:
53077         (WebCore::SVGFontFaceElement::createFontData):
53078         * svg/SVGFontFaceElement.h:
53079         * svg/SVGGlyphElement.cpp:
53081 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
53083         Not reviewed. Try to fix mac build by forcing SVGNames regeneration.
53085         * svg/svgtags.in:
53087 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
53089         Not reviewed. Proposed build fix for wx.
53091         * webcore-base.bkl:
53093 2008-01-07  Dan Bernstein  <mitz@apple.com>
53095         64-bit build fix
53097         * platform/graphics/mac/FontCustomPlatformData.cpp:
53098         (WebCore::FontCustomPlatformData::fontPlatformData): Have to use a
53099         cast here since FMGetFontFromATSFontRef() is not available on 64-bit.
53101 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
53103         Reviewed by Oliver. Parts reviewed by Eric, David Hyatt & Dan & Alexey.
53104         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15741 (REGRESSION: svg/W3C-SVG-1.1/fonts-elem-03-b.svg shows worse behavior on TOT)
53106         Display SVG Fonts, fill svg/SVGFont.cpp with life by adding all needed code to
53107         measure & render glyphs contained in SVG Fonts, including ligature lookup support.
53109         Implement floatWidth/selectionRectForText for SVG Fonts, fixing text selection.
53111         Support horiz-origin-x/y, horiz-adv-x, vert-adv-y, vert-origin-x/y & arabic-form.
53112         Implement simple algorithm to determine the arabic forms for a string (initial, isolated, medial, terminal).
53114         Removed drawGlyphsWithSVGFont - create a new function drawTextWithSVGFont instead.
53115         This doesn't involve creating/using a 'GlyphBuffer' object anymore, which is not
53116         required for SVG Fonts anyway (we already know all our offsets/advances/etc..)
53118         Don't call it from drawSimpleText anymore, but directly in drawText - as Dan suggested.
53120         <glyph> elements now register themselves in the SVGFontElement's glyph cache.
53121         (insertedIntoDocument / removedFromDocument take care of this)
53123         The cache is built once now, and is kept updated - it's not rebuild anymore
53124         on painting (!) - which was a crude hack for testing.
53126         W3C testcase which include SVG Fonts:
53127         svg/W3C-SVG-1.1/animate-elem-03-t.svg (Fixed, of course not the anim itself, but it's SVG Fonts usage)
53128         svg/W3C-SVG-1.1/animate-elem-24-t.svg (Ditto)
53129         svg/W3C-SVG-1.1/animate-elem-36-t.svg (Ditto)
53130         svg/W3C-SVG-1.1/animate-elem-40-t.svg (Ditto)
53131         svg/W3C-SVG-1.1/fonts-kern-01-t.svg (missing <vkern>/<hkern> support)
53132         svg/W3C-SVG-1.1/fonts-desc-02-t.svg (Fixed, tests CSS font matching based on font-variant attribute)
53133         svg/W3C-SVG-1.1/fonts-elem-01-t.svg (Fixed, basic SVG font test)
53134         svg/W3C-SVG-1.1/fonts-elem-02-t.svg (Fixed, accuracy test for embedded SVG font)
53135         svg/W3C-SVG-1.1/fonts-elem-05-t.svg (Fixed, checks horiz-origin-x support, note: W3C reference image is wrong)
53136         svg/W3C-SVG-1.1/fonts-elem-06-t.svg (Fixed, checks horiz-adv-x support)
53137         svg/W3C-SVG-1.1/fonts-glyph-02-t.svg (Fixed, checks arabic-form support)
53138         svg/W3C-SVG-1.1/fonts-glyph-03-t.svg (Fixed, checks glyph matching based on xml:lang)
53139         svg/W3C-SVG-1.1/masking-mask-01-b.svg (Fixed, SVG Fonts & masking)
53140         svg/W3C-SVG-1.1/pservers-grad-08-b.svg (Fixed, SVG Fonts & gradient on fill/stroke)
53141         svg/W3C-SVG-1.1/render-elems-06-t.svg (Fixed, simple 'fill' property test)
53142         svg/W3C-SVG-1.1/render-elems-07-t.svg (Fixed, simple 'stroke' property test - shows SVG Font interprets stroke-width in glyph coordinate system, as demanded by spec)
53143         svg/W3C-SVG-1.1/render-elems-08-t.svg (Fixed, simple 'fill' & 'stroke' property test)
53144         svg/W3C-SVG-1.1/render-groups-01-b.svg (missing <vkern>/<hkern> support)
53145         svg/W3C-SVG-1.1/render-groups-03-t.svg (Ditto)
53146         svg/W3C-SVG-1.1/text-altglyph-01-b.svg (no <altGlyph> support yet)
53147         svg/W3C-SVG-1.1/text-text-04-t.svg (Fixed, absolute placing of characters pixel perfect now)
53148         svg/W3C-SVG-1.1/text-text-05-t.svg (FIXME: problem with text-anchor)
53149         svg/W3C-SVG-1.1/text-text-06-t.svg (highlights problem with ligatures & absolute positioned characters)
53151         Questionable testcases:
53152         svg/W3C-SVG-1.1/fonts-glyph-04-t.svg (tests that glyph selection is done in the order in the definition of the font element.)
53153         I am not sure why this behaviour is desired, no comment given in spec - doesn't make much sense to me, ignoring it for now.
53155         Several other batik testcases fixed, which use SVG Fonts in combination with gradients & filters.
53157         * css/CSSFontSelector.cpp:
53158         (WebCore::CSSFontSelector::addFontFaceRule):
53159         (WebCore::CSSFontSelector::getFontData):
53160         * platform/graphics/Font.cpp:
53161         (WebCore::Font::lineSpacing):
53162         (WebCore::Font::xHeight):
53163         (WebCore::Font::canUseGlyphCache):
53164         (WebCore::Font::drawGlyphBuffer):
53165         (WebCore::Font::drawText):
53166         (WebCore::Font::floatWidth):
53167         (WebCore::Font::selectionRectForText):
53168         * platform/graphics/Font.h:
53169         (WebCore::TextRun::TextRun):
53170         (WebCore::TextRun::activePaintServer):
53171         (WebCore::TextRun::setActivePaintServer):
53172         * platform/graphics/FontData.cpp:
53173         (WebCore::FontData::lineSpacing):
53174         (WebCore::FontData::lineGap):
53175         (WebCore::FontData::xHeight):
53176         * platform/graphics/FontData.h:
53177         * platform/graphics/win/FontWin.cpp:
53178         (WebCore::Font::drawGlyphs):
53179         * rendering/RenderSVGText.cpp:
53180         (WebCore::RenderSVGText::relativeBBox):
53181         * rendering/SVGInlineTextBox.cpp:
53182         (WebCore::SVGInlineTextBox::paintCharacters):
53183         * rendering/SVGInlineTextBox.h:
53184         * rendering/SVGRootInlineBox.cpp:
53185         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
53186         * svg/SVGFont.cpp:
53187         (WebCore::processArabicFormDetection):
53188         (WebCore::charactersWithArabicForm):
53189         (WebCore::isCompatibleArabicForm):
53190         (WebCore::isCompatibleGlyph):
53191         (WebCore::svgFontAndFontFaceElementForFontData):
53192         (WebCore::SVGTextRunWalker::SVGTextRunWalker):
53193         (WebCore::SVGTextRunWalker::walk):
53194         (WebCore::floatWidthUsingSVGFontCallback):
53195         (WebCore::floatWidthMissingGlyphCallback):
53196         (WebCore::floatWidthOfSubStringUsingSVGFont):
53197         (WebCore::Font::floatWidthUsingSVGFont):
53198         (WebCore::drawTextUsingSVGFontCallback):
53199         (WebCore::drawTextMissingGlyphCallback):
53200         (WebCore::Font::drawTextUsingSVGFont):
53201         (WebCore::Font::selectionRectForTextUsingSVGFont):
53202         * svg/SVGFontElement.cpp:
53203         (WebCore::SVGFontElement::SVGFontElement):
53204         (WebCore::SVGFontElement::addGlyphToCache):
53205         (WebCore::SVGFontElement::removeGlyphFromCache):
53206         (WebCore::SVGFontElement::firstMissingGlyphElement):
53207         (WebCore::SVGFontElement::glyphIdentifiersForString):
53208         * svg/SVGFontElement.h:
53209         (WebCore::SVGFontElement::maximumHashKeyLength):
53210         * svg/SVGFontFaceElement.cpp:
53211         (WebCore::SVGFontFaceElement::createFontData):
53212         (WebCore::SVGFontFaceElement::rebuildFontFace):
53213         (WebCore::SVGFontFaceElement::associatedFontElement):
53214         * svg/SVGFontFaceElement.h:
53215         * svg/SVGGlyphElement.cpp:
53216         (WebCore::SVGGlyphElement::insertedIntoDocument):
53217         (WebCore::SVGGlyphElement::removedFromDocument):
53218         (WebCore::parseArabicForm):
53219         (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
53220         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
53221         * svg/SVGGlyphElement.h:
53222         (WebCore::SVGGlyphIdentifier::):
53223         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
53224         (WebCore::SVGGlyphIdentifier::inheritedValue):
53225         (WebCore::SVGGlyphIdentifier::operator==):
53226         (WebCore::SVGGlyphElement::~SVGGlyphElement):
53228 2008-01-07  David Hyatt  <hyatt@apple.com>
53230         Fix for bug 13095, CSS3 multiple backgrounds don't work on table cells.
53232         Reviewed by Dan
53234         * rendering/RenderBox.h:
53235         * rendering/RenderTableCell.cpp:
53236         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
53238 2008-01-07  Holger Freyther  <zecke@selfish.org>
53240         Reviewed by Alp Toker.
53242         * Fix indention
53244         * platform/gtk/ContextMenuGtk.cpp:
53245         (WebCore::ContextMenu::~ContextMenu):
53247 2008-01-07  Holger Freyther  <zecke@selfish.org>
53249         Reviewed by Alp Toker.
53251         * The ContextMenuController is going to live longer than the ContextMenu. It is
53252         going to live as long as the WebCore::Page is around where the ContextMenu, specially
53253         in the case of a SubMenu, is gone before we popup the menu.
53255         * platform/gtk/ContextMenuGtk.cpp:
53256         (WebCore::menuItemActivated):
53257         (WebCore::ContextMenu::appendItem):
53259 2008-01-07  Holger Freyther  <zecke@selfish.org>
53261         Reviewed by Alp Toker.
53263         * Fix SubMenu handling
53264         * Do not connect to the activated signal if we are a separator or submenu
53265         * Change our type from ActionType to SubMenuType when we have a submenu
53266         * Initialize the SubMenu
53268         * platform/gtk/ContextMenuGtk.cpp:
53269         (WebCore::ContextMenu::appendItem):
53270         * platform/gtk/ContextMenuItemGtk.cpp:
53271         (WebCore::ContextMenuItem::ContextMenuItem):
53272         (WebCore::ContextMenuItem::createNativeMenuItem):
53273         (WebCore::ContextMenuItem::setSubMenu):
53275 2008-01-07  Holger Freyther  <zecke@selfish.org>
53277         Reviewed by Alp Toker.
53279         * Qt and Gtk must know if a ContextMenuItem is checkable. Add a new ContextMenuItemType for checkable
53280         actions.
53281         * Use this information in the Gtk platform to create a GtkCheckMenuItem when needed.
53282         * Update the ContextMenuController to accept CheckableActionTypes as well.
53283         * Change ContextMenu.cpp to use the CheckableActionType. The information if a item is checkable
53284         was extracted from ContextMenu::checkOrEnableIfNeeded.
53285         * Update the Qt and Windows port.
53288         * page/ContextMenuController.cpp:
53289         * platform/ContextMenu.cpp:
53290         (WebCore::createAndAppendFontSubMenu):
53291         (WebCore::createAndAppendSpellingAndGrammarSubMenu):
53292         (WebCore::createAndAppendSpellingSubMenu):
53293         (WebCore::createAndAppendWritingDirectionSubMenu):
53294         * platform/ContextMenuItem.h:
53295         * platform/gtk/ContextMenuItemGtk.cpp:
53296         (WebCore::ContextMenuItem::ContextMenuItem):
53297         (WebCore::ContextMenuItem::createNativeMenuItem):
53299 2008-01-07  Luca Bruno  <lethalman88@gmail.com>
53301         Reviewed by Alp Toker.
53303         http://bugs.webkit.org/show_bug.cgi?id=16745
53304         [GTK] Context menu doesn't feel or look native - no icons
53306         Use GTK+ stock icons for menu items where possible.
53308         * platform/gtk/ContextMenuItemGtk.cpp:
53309         (WebCore::gtkStockIDFromContextMenuAction):
53310         (WebCore::ContextMenuItem::createNativeMenuItem):
53311         (WebCore::ContextMenuItem::setAction):
53313 2008-01-07  Dan Bernstein  <mitz@apple.com>
53315         Reviewed by John Sullivan.
53317         - make the ATSUI code path work with custom fonts rather than crash
53319         * platform/graphics/mac/FontCustomPlatformData.cpp:
53320         (WebCore::FontCustomPlatformData::fontPlatformData):
53321         * platform/graphics/mac/FontMac.mm:
53322         (WebCore::initializeATSUStyle):
53324 2008-01-07  Thiago Macieira  <thiago.macieira@trolltech.com>
53326         Reviewed by Simon.
53328         abort() now emits the signals, so disconnect them before you abort()
53330         * platform/network/qt/QNetworkReplyHandler.cpp:
53331         (WebCore::QNetworkReplyHandler::abort):
53333 2008-01-07  Simon Hausmann  <hausmann@webkit.org>
53335         Reviewed by Lars.
53337         Use a faster and safer way of flattening the form data.
53339         * platform/network/qt/QNetworkReplyHandler.cpp:
53340         (WebCore::QNetworkReplyHandler::start):
53342 2008-01-07  Simon Hausmann  <hausmann@webkit.org>
53344         Reviewed by Lars.
53346         Ported of the network backend of the Qt platform to Qt 4.4's new networking API.
53348         * WebCore.pro:
53349         * platform/network/ResourceHandleInternal.h:
53350         * platform/network/qt/QNetworkReplyHandler.cpp: Added.
53351         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
53352         (WebCore::QNetworkReplyHandler::abort):
53353         (WebCore::QNetworkReplyHandler::finish):
53354         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
53355         (WebCore::QNetworkReplyHandler::forwardData):
53356         (WebCore::QNetworkReplyHandler::start):
53357         * platform/network/qt/QNetworkReplyHandler.h: Added.
53358         (WebCore::QNetworkReplyHandler::reply):
53359         * platform/network/qt/ResourceHandleQt.cpp:
53360         (WebCore::ResourceHandle::start):
53361         (WebCore::ResourceHandle::cancel):
53362         (WebCore::ResourceHandle::loadResourceSynchronously):
53363         * platform/network/qt/ResourceRequest.h:
53364         (WebCore::ResourceRequest::ResourceRequest):
53365         * platform/network/qt/ResourceRequestQt.cpp: Added.
53366         (WebCore::ResourceRequest::toNetworkRequest):
53367         * platform/qt/MIMETypeRegistryQt.cpp:
53368         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
53369         * platform/qt/PlugInInfoStoreQt.cpp:
53370         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
53371         (WebCore::PlugInInfoStore::pluginCount):
53372         (WebCore::PlugInInfoStore::pluginNameForMIMEType):
53374 2008-01-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
53376         Reviewed by Lars.
53378         * Remove m_dirtyRegion as it is not used as we pass every dirty region
53379         directly to the ChromeClient
53381         * platform/qt/ScrollViewQt.cpp:
53382         (WebCore::ScrollView::paint):
53384 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
53386         Reviewed by Oliver.
53388         Small CG paint server cleanups - use more GraphicsContext method where possible.
53390         * svg/graphics/cg/CgSupport.cpp:
53391         (WebCore::applyStrokeStyleToContext):
53392         (WebCore::strokeBoundingBox):
53393         * svg/graphics/cg/CgSupport.h:
53394         * svg/graphics/cg/RenderPathCg.cpp:
53395         (WebCore::RenderPath::strokeContains):
53396         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
53397         (WebCore::SVGPaintServerGradient::setup):
53398         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
53399         (WebCore::SVGPaintServerPattern::setup):
53400         * svg/graphics/cg/SVGPaintServerSolidCg.cpp:
53401         (WebCore::SVGPaintServerSolid::setup):
53403 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
53405         Reviewed by Dan.
53407         Use new helper function isArabicChar() - which also calls ublock_getCode() == UBLOCK_ARABIC on mac.
53409         * platform/graphics/mac/FontMac.mm:
53410         (WebCore::ATSULayoutParameters::initialize):
53412 2008-01-06  Andrew Wellington  <proton@wiretapped.net>
53414         Reviewed by Darin.
53415         
53416         DOMRange doesn't correctly re-size when inserting items (Acid3)
53417         http://bugs.webkit.org/show_bug.cgi?id=16764
53418         
53419         Update the offset for the range when inserting items into the range.
53421         Test: fast/dom/Range/range-modifycontents.html
53423         * dom/Range.cpp:
53424         (WebCore::Range::insertNode):
53426 2008-01-06  Alexey Proskuryakov  <ap@webkit.org>
53428         Reviewed by Darin.
53430         http://bugs.webkit.org/show_bug.cgi?id=16731
53431         Incorrect node type for whitespace when setting innerHTML in an XHTML document
53433         Test: fast/dom/xhtml-fragment-whitespace.xhtml
53435         * dom/XMLTokenizer.cpp: (WebCore::parseXMLDocumentFragment):
53436         Use balancedCharactersHandler for ignorable whitespace.
53438 2008-01-06  Alexey Proskuryakov  <ap@webkit.org>
53440         Reviewed by Darin.
53442         http://bugs.webkit.org/show_bug.cgi?id=16701
53443         <rdar://problem/5666580> REGRESSION: URL-encoded space (%20) in livejournal url
53444         causes page load error
53446         Test: http/tests/misc/location-with-space.php
53448         * platform/network/cf/ResourceRequestCFNet.cpp:
53449         (WebCore::ResourceRequest::doUpdatePlatformRequest): Do update its URL, too.
53451 2008-01-06  Andrew Wellington  <proton@wiretapped.net>
53453         Reviewed by Darin.
53454         
53455         DOMRange.cloneContents does not work (Acid3 bug)
53456         http://bugs.webkit.org/show_bug.cgi?id=16748
53457         
53458         When cloning an empty range, return an empty DocmentFragment instead of
53459         null or undefined.
53461         Test: fast/dom/Range/range-clone-empty.html
53463         * dom/Range.cpp:
53464         (WebCore::Range::processContents):
53466 2008-01-06  Luca Bruno  <lethalman88@gmail.com>
53468         Reviewed by Alp Toker.
53470         Remove curl handles immediately if the timer is not running.
53472         * platform/network/curl/ResourceHandleManager.cpp:
53473         (WebCore::ResourceHandleManager::cancel):
53475 2008-01-06  Alp Toker  <alp@atoker.com>
53477         Reviewed by Eric.
53479         Cairo canvas refcounting fix. Reference the surface in the constructor
53480         to match its destruction in the destructor.
53482         Fixes a crash triggered by leaving this page:
53483           http://philip.html5.org/tests/canvas/misc/globalalpha-pattern.html
53485         * html/CanvasPattern.cpp:
53486         (WebCore::CanvasPattern::CanvasPattern):
53488 2008-01-06  Eric Seidel  <eric@webkit.org>
53490         Reviewed by darin.
53492         Make attr selectors case-insensitive for certain HTML attributes
53493         http://bugs.webkit.org/show_bug.cgi?id=15470
53495         Test: fast/css/html-attr-case-sensitivity.html
53497         * css/CSSStyleSelector.cpp:
53498         (WebCore::addLocalNameToSet):
53499         (WebCore::createHtmlCaseInsensitiveAttributesSet):
53500         (WebCore::htmlAttributeHasCaseInsensitiveValue):
53501         (WebCore::CSSStyleSelector::checkOneSelector):
53503 2008-01-06  Eric Seidel  <eric@webkit.org>
53505         Reviewed by Sam.
53507         Fix :checked matching type='text' and add test case
53508         http://bugs.webkit.org/show_bug.cgi?id=16750
53510         Test: fast/dom/HTMLInputElement/checked-pseudo-selector.html
53512         * html/HTMLInputElement.h: isChecked() can only be true for RADIO or CHECKBOX
53514 2008-01-05  Sam Weinig  <sam@webkit.org>
53516         Reviewed by Eric Seidel.
53518         Patch for http://bugs.webkit.org/show_bug.cgi?id=16758
53519         ASSERT when using TreeWalker methods for a current node outside of the root (Acid3)
53521         - Ensure that returned nodes are within the root node, or return 0, in adherence with the spec.
53523         Test: fast/dom/TreeWalker/TreeWalker-currentNode.html
53525         * dom/TreeWalker.cpp:
53526         (WebCore::TreeWalker::parentNode):
53527         (WebCore::TreeWalker::firstChild):
53528         (WebCore::TreeWalker::lastChild):
53529         (WebCore::TreeWalker::previousSibling):
53530         (WebCore::TreeWalker::nextSibling):
53531         (WebCore::TreeWalker::previousNode):
53532         (WebCore::TreeWalker::nextNode):
53534 2008-01-04  Oliver Hunt  <oliver@apple.com>
53536         Reviewed by Beth Dakin.
53538         Fix bounds computation bugs responsible for http://bugs.webkit.org/show_bug.cgi?id=16015
53539         and other image repaint bugs.
53541         We now cache the full local bounds for the <image> element, as otherwise certain
53542         combinations of attribute changes could result in incorrect dirty rects.
53543         Additionally we no longer use any of the integer bounds fields on RenderObject for
53544         determining repaint bounds (this was the principle cause of bug #16015).
53546         I also removed the outline painting code as it was both wrong, and not correctly
53547         repainted.  I feel safe doing this as no other browser or viewer supports outline
53548         properties on svg elements.
53550         I was unable to make a testcase for this unfortunately, despite seemingly deterministic 
53551         behaviour :(
53553         * rendering/RenderSVGImage.cpp:
53554         (WebCore::RenderSVGImage::layout):
53555         (WebCore::RenderSVGImage::paint):
53556         (WebCore::RenderSVGImage::nodeAtPoint):
53557         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
53558         * rendering/RenderSVGImage.h:
53560 2008-01-04  Beth Dakin  <bdakin@apple.com>
53562         Reviewed by Oliver.
53564         Fix for http://bugs.webkit.org/show_bug.cgi?id=16704 input with 
53565         type="hidden" matches :enabled/:disabled (Acid3 bug)
53567         Prevent :enabled and :disabled from applying to input type="hidden" 
53569         * css/CSSStyleSelector.cpp:
53570         (WebCore::CSSStyleSelector::checkOneSelector): Rather than 
53571         allowing :enabled and :disabled to apply to all controls, only 
53572         allow it to apply to non-"hidden" controls
53573         * dom/Element.h:
53574         (WebCore::Element::isInputTypeHidden): 
53575         * html/HTMLInputElement.h:
53576         (WebCore::HTMLInputElement::isInputTypeHidden):
53578 2008-01-04  Sam Weinig  <sam@webkit.org>
53580         Reviewed by Oliver Hunt.
53582         - Match the spec when calling getFloatValue, getStringValue, getCounterValue,
53583           getRectValue and getRGBColorValue of CSSPrimitiveValue by throwing exceptions
53584           if the type of the CSSPrimitiveValue is not the same as the type requested.
53585         - Fix the intermittent assertion failure seen in svg/css/glyph-orientation-rounding-test.xhtml
53587         Test: fast/css/CSSPrimitiveValue-exceptions.html
53589         * css/CSSPrimitiveValue.cpp:
53590         (WebCore::CSSPrimitiveValue::getDoubleValue):
53591         (WebCore::CSSPrimitiveValue::getStringValue):
53592         (WebCore::CSSPrimitiveValue::getCounterValue):
53593         (WebCore::CSSPrimitiveValue::getRectValue):
53594         (WebCore::CSSPrimitiveValue::getRGBColorValue):
53595         (WebCore::CSSPrimitiveValue::getPairValue):
53596         * css/CSSPrimitiveValue.h:
53597         (WebCore::CSSPrimitiveValue::getFloatValue):
53598         (WebCore::CSSPrimitiveValue::getIntValue):
53599         (WebCore::CSSPrimitiveValue::getCounterValue):
53600         (WebCore::CSSPrimitiveValue::getRectValue):
53601         (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
53602         * css/CSSPrimitiveValue.idl:
53604 2008-01-04  Antti Koivisto  <antti@apple.com>
53606         Reviewed by Darin.
53607         
53608         Windows part of <rdar://problem/5647034>
53609         Media tests crash if an old version of QuickTime is installed
53611         Check QuickTime version on Windows too.
53613         * platform/graphics/MediaPlayer.cpp:
53614         (WebCore::MediaPlayer::isAvailable):
53615         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
53616         (WebCore::MediaPlayerPrivate::isAvailable):
53617         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
53618         (WebCore::MediaPlayerPrivate::isAvailable):
53619         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
53620         * platform/graphics/win/QTMovieWin.cpp:
53621         (QTMovieWin::initializeQuickTime):
53623 2008-01-04  Darin Adler  <darin@apple.com>
53625         Reviewed by Maciej and Alice.
53627         - fix <rdar://problem/4404302> Borders where there should be none (canadasmountains.com)
53629         Test: fast/images/border.html
53631         * html/HTMLImageElement.cpp:
53632         (WebCore::HTMLImageElement::parseMappedAttribute): Change the code that handles cases
53633         where the border value is not a number to use the value "0" for the border width instead
53634         of not setting the border width and style at all. This matches other browsers, and makes
53635         more sense.
53637 2008-01-04  Antti Koivisto  <antti@apple.com>
53639         Try to fix 64-bit build
53641         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
53642         (WebCore::MediaPlayerPrivate::isAvailable):
53644 2008-01-04  Stephanie  <slewis@apple.com>
53646         Reviewed by Oliver.
53648         WARNING: NO TEST CASES ADDED OR CHANGED
53650         Fix another stringImpl leak.
53652         * platform/text/StringImpl.cpp: remove an extra allocation
53653         (WebCore::StringImpl::StringImpl):
53655 2008-01-04  Alice Liu  <alice.liu@apple.com>
53657         Reviewed by Mitz.
53659         * platform/graphics/win/FontCacheWin.cpp:
53660         fix loop condition that was causing crash
53662 2008-01-04  Timothy Hatcher  <timothy@apple.com>
53664         Reviewed by Adam Roben.
53666         <rdar://problem/5671059> Always show the Timeline and Console buttons in the Inspector
53668         * page/inspector/inspector.css: Remove styles related to the toggle button
53669           and make the area always visible. 
53670         * page/inspector/inspector.html: Remove the toggle button.
53671         * page/inspector/inspector.js: Remove code to toggle the status area.
53673 2008-01-04  Alexey Proskuryakov  <ap@webkit.org>
53675         Reviewed by Adam Roben.
53677         Temporarily restore BackwardDelete for Windows nightlies to work correctly.
53679         * editing/EditorCommand.cpp: (WebCore::CommandEntry::):
53681 2008-01-04  Alexey Proskuryakov  <ap@webkit.org>
53683         Reviewed by Darin.
53685         <rdar://problem/5611712> xsl:sort does not use a case folding sort, and the 'case-order' attribute is ignored (16077)
53687         Enable the fix on Windows.
53689         * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::transformToString):
53690         Always set a custom sort function, even if it doesn't implement proper collation on the platform.
53692         * xml/XSLTUnicodeSort.cpp:
53693         (WebCore::xsltUnicodeSortFunction):
53694         * xml/XSLTUnicodeSort.h:
53695         If the platform does not use ICU, or ICU has collation support disabled, fall back to binary comparison.
53697 2008-01-04  Antti Koivisto  <antti@apple.com>
53699         Fix build.
53701         * bindings/js/JSHTMLElementWrapperFactory.cpp:
53703 2008-01-04  Antti Koivisto  <antti@apple.com>
53705         Reviewed by Darin.
53706         
53707         Partial fix for <rdar://problem/5647034>
53708         Media tests crash if an old version of QuickTime is installed
53710         Disable media support if QuickTime is not current enough (>=7.3).
53711         
53712         Windows patch coming soon.
53714         * bindings/js/JSHTMLElementWrapperFactory.cpp:
53715         (WebCore::createJSHTMLWrapper):
53716         * bindings/js/kjs_window.cpp:
53717         (KJS::Window::getValueProperty):
53718         * html/HTMLElementFactory.cpp:
53719         (WebCore::audioConstructor):
53720         (WebCore::videoConstructor):
53721         (WebCore::sourceConstructor):
53722         * platform/graphics/MediaPlayer.cpp:
53723         (WebCore::MediaPlayer::isAvailable):
53724         * platform/graphics/MediaPlayer.h:
53725         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
53726         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
53727         (WebCore::MediaPlayerPrivate::isAvailable):
53729 2008-01-04  Timothy Hatcher  <timothy@apple.com>
53731         Reviewed by Darin Adler.
53733         <rdar://problem/5604409> JavaScript privilege escalation when Web Inspector accesses page unsafely (16011)
53735         Check if the property is a getter before asking for the value.
53736         If the property is a getter, we no longer show the value.
53738         * page/inspector/PropertiesSidebarPane.js:
53739         * page/inspector/inspector.css:
53741 2008-01-04  Dan Bernstein  <mitz@apple.com>
53743         Reviewed by Darin Adler.
53745         - fix synthetic bold and italic on Windows
53747         Covered by an existing test.
53749         * platform/graphics/win/FontPlatformDataWin.cpp:
53750         (WebCore::FontPlatformData::FontPlatformData):
53752 2008-01-04  Alp Toker  <alp@atoker.com>
53754         GTK+ autotools build fix. Terminate empty rules.
53756         * GNUmakefile.am:
53758 2008-01-04  Lars Knoll  <lars@trolltech.com>
53760         Reviewed by Simon.
53762         Remove most dependencies of Widget/ScrollView onto native QWidgets.
53764         This also brings the code closer in line with the Windows code. Seems
53765         to work nicely on first try :)
53767         * page/qt/FrameQt.cpp:
53768         (WebCore::Frame::createScriptInstanceForWidget):
53769         * platform/Widget.h:
53770         * platform/qt/PlatformScreenQt.cpp:
53771         (WebCore::screenDepth):
53772         (WebCore::screenDepthPerComponent):
53773         (WebCore::screenIsMonochrome):
53774         (WebCore::screenRect):
53775         * platform/qt/PlatformScrollBarQt.cpp:
53776         (WebCore::PlatformScrollbar::thumbPosition):
53777         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
53778         * platform/qt/ScrollViewQt.cpp:
53779         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
53780         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
53781         (WebCore::ScrollView::updateContents):
53782         (WebCore::ScrollView::update):
53783         (WebCore::ScrollView::scrollRectIntoViewRecursively):
53784         (WebCore::ScrollView::updateScrollbars):
53785         (WebCore::ScrollView::addChild):
53786         (WebCore::ScrollView::removeChild):
53787         (WebCore::ScrollView::paint):
53788         * platform/qt/WidgetQt.cpp:
53789         (WebCore::WidgetPrivate::WidgetPrivate):
53790         (WebCore::WidgetPrivate::~WidgetPrivate):
53791         (WebCore::Widget::frameGeometry):
53792         (WebCore::Widget::setFrameGeometry):
53793         (WebCore::Widget::setCursor):
53794         (WebCore::Widget::show):
53795         (WebCore::Widget::hide):
53796         (WebCore::Widget::nativeWidget):
53797         (WebCore::Widget::setNativeWidget):
53798         (WebCore::Widget::suppressInvalidation):
53799         (WebCore::Widget::setSuppressInvalidation):
53800         (WebCore::Widget::invalidateRect):
53801         (WebCore::Widget::topLevel):
53802         (WebCore::Widget::containingWindow):
53804 2008-01-04  Lars Knoll  <lars@trolltech.com>
53806         Reviewed by Simon.
53808         make QWebPage a QObject and get things to compile.
53810         Nothing works currently though.
53812         * platform/qt/ScrollViewQt.cpp:
53813         (WebCore::ScrollView::updateContents):
53814         (WebCore::ScrollView::update):
53815         * platform/qt/WidgetQt.cpp:
53816         (WebCore::Widget::qwidget):
53817         (WebCore::Widget::invalidateRect):
53819 2008-01-04  Alp Toker  <alp@atoker.com>
53821         Reviewed by Mark Rowe.
53823         http://bugs.webkit.org/show_bug.cgi?id=16667
53824         make -j is failing with the autotools based system
53826         Support parallel code generation. Nearly every use of explicit
53827         multiple targets was a potential concurrency bug, though in practice
53828         the bison rules were the first to be noticed because they took longer
53829         to complete and broke the build immediately.
53831         * GNUmakefile.am:
53833 2008-01-04  Alp Toker  <alp@atoker.com>
53835         Reviewed by Mark Rowe.
53837         Re-use a single static dummy surface rather than creating and
53838         destroying a surface for each CairoPath.
53840         * platform/graphics/cairo/CairoPath.h:
53841         (WebCore::CairoPath::CairoPath):
53843 2008-01-04  Mark Rowe  <mrowe@apple.com>
53845         Tiger build fix.
53847         * platform/Threading.h: The OSAtomic functions take non-volatile pointers on Tiger.
53849 2008-01-03  Mark Rowe  <mrowe@apple.com>
53851         Reviewed by Maciej Stachowiak.
53853         Use platform-provided atomic operations in place of inline assembly to
53854         increase portability.
53856         * platform/Threading.h:
53857         (WebCore::atomicIncrement):
53858         (WebCore::atomicDecrement):
53860 2008-01-03  Oliver Hunt  <oliver@apple.com>
53862         Reviewed by Maciej.
53864         Fix <rdar://problem/5668517> REGRESSION: Major under painting issues in SVG (carto.net dock example)
53866         We need to cache the absolute bounds of the <image>,
53867         as there's no reliable way to recompute the old bounding
53868         box one we have started layout.
53870         * rendering/RenderSVGImage.cpp:
53871         (WebCore::RenderSVGImage::layout):
53872         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
53873         * rendering/RenderSVGImage.h:
53875 2008-01-03  Alp Toker  <alp@atoker.com>
53877         Reviewed by Mark Rowe.
53879         Support building in Scratchbox, which has a version of make that fails
53880         on wildcard syntax. Use a vpath to match IDL files instead.
53882         * GNUmakefile.am:
53884 2008-01-03  Jon Honeycutt  <jhoneycutt@apple.com>
53886         Reviewed by Darin.
53888         <rdar://problem/5504775> PDF page will not load first time after Adobe
53889         Reader install, unless browser is relaunched
53891         Refresh and re-search the plugin database if the MIME type is not
53892         registered.
53894         * plugins/win/PluginDatabaseWin.cpp:
53895         (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
53896         * plugins/win/PluginDatabaseWin.h:
53898 2008-01-03  Dan Bernstein  <mitz@apple.com>
53900         Reviewed by Darin Adler.
53902         - fix http://bugs.webkit.org/show_bug.cgi?id=16548
53903           <rdar://problem/5659452> REGRESSION(r28810): Font style and sizes are weird for Japanese text
53905         * platform/graphics/win/FontCacheWin.cpp:
53906         (WebCore::linkedFontEnumProc): Added. This callback is used to fetch
53907         a valid LOGFONT for a given family.
53908         (WebCore::getLinkedFonts): Added. Returns a vector of font families
53909         linked to the given font family by the Windows registry key
53910         HKLM\Software\...\FontLink\SystemLink. The registry values typically
53911         differ based on the installed language version of Windows.
53912         (WebCore::FontCache::getFontDataForCharacters): Changed to not use MLang
53913         font mapping, which is Windows code page based, except for characters in
53914         the range U+2000..U+200F. Instead, this function gets the font Uniscribe
53915         would use for the character. However, that font might not actually
53916         contain the character, in which case GDI font linking would substitute a
53917         different font. Therefore, this function walks the linked font list
53918         until it finds a font that actually contains the character.
53920 2008-01-03  Darin Adler  <darin@apple.com>
53922         Reviewed by Mitz.
53924         - fix http://bugs.webkit.org/show_bug.cgi?id=16723
53925           tables/mozilla/bugs/bug30418.html test failing due to problems updating dynamic border rules
53927         Test: fast/table/border-changes.html
53929         * html/HTMLTableElement.h:
53930         * html/HTMLTableElement.cpp:
53931         (WebCore::HTMLTableElement::parseMappedAttribute): Check the border type before and after
53932         parsing attributes, rather than doing this only for the rules attribute.
53933         (WebCore::HTMLTableElement::cellBorders): Added.
53934         (WebCore::HTMLTableElement::getSharedCellDecl): Changed to use cellBorders to factor out the
53935         rule about what type of borders to use.
53937 2008-01-02  Sam Weinig  <sam@webkit.org>
53939         Reviewed by Darin.
53941         Pass the prototype of WebCore JS objects up the constructor chain
53942         rather than explicitly setting using setPrototype.  This removes many
53943         redundant settings of the prototype on construction.  To avoid a CG 
53944         hazard, the prototype must be constructed before calling the
53945         constructor of the JS object.
53947         - JS objects that inherit from DOMObject, which all bindings objects
53948           (except Window) do, now can't implicitly have a jsNull prototype, but
53949           must explicitly pass it up the construction chain.
53951         * bindings/js/JSCSSRuleCustom.cpp:
53952         (WebCore::toJS):
53953         * bindings/js/JSCSSValueCustom.cpp:
53954         (WebCore::toJS):
53955         * bindings/js/JSDocumentCustom.cpp:
53956         (WebCore::toJS):
53957         * bindings/js/JSEventCustom.cpp:
53958         (WebCore::toJS):
53959         * bindings/js/JSEventTargetNode.cpp:
53960         (WebCore::JSEventTargetNode::JSEventTargetNode):
53961         * bindings/js/JSEventTargetNode.h:
53962         * bindings/js/JSHTMLAllCollection.h:
53963         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
53964         * bindings/js/JSHTMLAudioElementConstructor.cpp:
53965         (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
53966         * bindings/js/JSHTMLCollectionCustom.cpp:
53967         (WebCore::getNamedItems):
53968         (WebCore::toJS):
53969         * bindings/js/JSHTMLElementWrapperFactory.cpp:
53970         (WebCore::createJSHTMLWrapper):
53971         * bindings/js/JSHTMLFormElementCustom.cpp:
53972         (WebCore::JSHTMLFormElement::nameGetter):
53973         * bindings/js/JSHTMLInputElementBase.cpp:
53974         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
53975         * bindings/js/JSHTMLInputElementBase.h:
53976         * bindings/js/JSHTMLOptionElementConstructor.cpp:
53977         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
53978         * bindings/js/JSLocation.cpp:
53979         (WebCore::JSLocation::JSLocation):
53980         * bindings/js/JSLocation.h:
53981         * bindings/js/JSNamedNodesCollection.cpp:
53982         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
53983         * bindings/js/JSNamedNodesCollection.h:
53984         * bindings/js/JSNodeCustom.cpp:
53985         (WebCore::toJS):
53986         * bindings/js/JSSVGElementWrapperFactory.cpp:
53987         (WebCore::createJSSVGWrapper):
53988         * bindings/js/JSSVGPathSegCustom.cpp:
53989         (WebCore::toJS):
53990         * bindings/js/JSStyleSheetCustom.cpp:
53991         (WebCore::toJS):
53992         * bindings/js/JSXMLHttpRequest.cpp:
53993         (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
53994         (KJS::JSXMLHttpRequestConstructorImp::construct):
53995         (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
53996         * bindings/js/JSXMLHttpRequest.h:
53997         * bindings/js/JSXSLTProcessor.cpp:
53998         (KJS::JSXSLTProcessor::JSXSLTProcessor):
53999         (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
54000         (KJS::XSLTProcessorConstructorImp::implementsConstruct):
54001         (KJS::XSLTProcessorConstructorImp::construct):
54002         * bindings/js/JSXSLTProcessor.h:
54003         * bindings/js/kjs_binding.h:
54004         (KJS::DOMObject::DOMObject):
54005         (KJS::cacheDOMObject):
54006         (KJS::cacheSVGDOMObject):
54007         * bindings/js/kjs_css.cpp:
54008         (WebCore::JSRGBColor::JSRGBColor):
54009         (WebCore::getJSRGBColor):
54010         * bindings/js/kjs_css.h:
54011         * bindings/js/kjs_events.cpp:
54012         (WebCore::JSClipboard::JSClipboard):
54013         (WebCore::toJS):
54014         * bindings/js/kjs_events.h:
54015         * bindings/js/kjs_html.cpp:
54016         (WebCore::ImageConstructorImp::ImageConstructorImp):
54017         * bindings/js/kjs_navigator.cpp:
54018         (KJS::Navigator::Navigator):
54019         (KJS::PluginBase::PluginBase):
54020         * bindings/js/kjs_navigator.h:
54021         * bindings/js/kjs_window.cpp:
54022         (KJS::Window::Window):
54023         (KJS::Window::location):
54024         (KJS::Window::getValueProperty):
54025         * bindings/js/kjs_window.h:
54026         * bindings/scripts/CodeGeneratorJS.pm:
54028 2008-01-03  Holger Hans Peter Freyther  <zecke@selfish.org>
54030         Reviewed by Alp.
54032         -This is from http://bugs.webkit.org/show_bug.cgi?id=16115
54034         Change the Gtk ContextMenuItem code to generate the GtkMenuItem
54035         or GtkCheckMenuItem on the fly. Currently we will create a
54036         GtkCheckMenuItem if the ContextMenuItem has been checked. What needs
54037         to be done is to change WebCore to tell the platform code if an item
54038         is checkable or not.
54040         * platform/ContextMenuItem.h:
54041         (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
54042         * platform/gtk/ContextMenuGtk.cpp:
54043         (WebCore::ContextMenu::appendItem):
54044         * platform/gtk/ContextMenuItemGtk.cpp:
54045         (WebCore::ContextMenuItem::ContextMenuItem):
54046         (WebCore::ContextMenuItem::~ContextMenuItem):
54047         (WebCore::ContextMenuItem::createNativeMenuItem):
54048         (WebCore::ContextMenuItem::releasePlatformDescription):
54049         (WebCore::ContextMenuItem::type):
54050         (WebCore::ContextMenuItem::setType):
54051         (WebCore::ContextMenuItem::action):
54052         (WebCore::ContextMenuItem::setAction):
54053         (WebCore::ContextMenuItem::platformSubMenu):
54054         (WebCore::ContextMenuItem::setSubMenu):
54055         (WebCore::ContextMenuItem::setChecked):
54057 2008-01-03  Dan Bernstein  <mitz@apple.com>
54059         Rubber-stamped by Adam Roben.
54061         - update the project hierarchy to match the on-disk organization of
54062           the platform directory.
54064         * WebCore.vcproj/WebCore.vcproj:
54066 2008-01-03  Adam Roben  <aroben@apple.com>
54068         Fix a buffer overrun and a leak introduced in r29098
54070         Reviewed by Mark.
54072         * platform/text/StringImpl.cpp:
54073         (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
54074         it be big enough to hold the string contents plus the null terminator.
54076 2008-01-03  Simon Hausmann  <hausmann@webkit.org>
54078         Reviewed by Lars.
54080         Added the first revision of QWebView and started moving functionality from QWebPave over to QWebView and QWebFrame.
54082         * WebCore.pro:
54084 2008-01-03  Alp Toker  <alp@atoker.com>
54086         Suggested by Mark Rowe.
54088         Fix indentation and remove trailing whitespace.
54090         * platform/network/curl/ResourceHandleManager.cpp:
54092 2008-01-03  Luca Bruno  <lethalman88@gmail.com>
54094         Reviewed by Alp Toker.
54096         Fix HTTP POST-based logins to sites like Facebook, GMail by ensuring
54097         that the two POST methods don't conflict.
54099         * platform/network/curl/ResourceHandleManager.cpp:
54100         (WebCore::ResourceHandleManager::setupPOST):
54102 2008-01-02  Darin Adler  <darin@apple.com>
54104         - touched some files to try to get the Windows buildbot building again
54106 2008-01-02  Dan Bernstein  <mitz@apple.com>
54108         Reviewed by Sam Weinig.
54110         - fix small caps rendering
54112         Covered by an existing test.
54114         * platform/graphics/win/FontDataWin.cpp:
54115         (WebCore::FontData::smallCapsFontData):
54117 2008-01-02  Antti Koivisto  <antti@apple.com>
54119         Reviewed by Oliver.
54121         Calculate video position and size within the renderer box in WebCore. This
54122         way the aspect ratio calculation is not needed in each MediaPlayer implementation.
54123         
54124         This fixes video aspect ratio on Windows.
54125         
54126         Covered by an existing pixel test.
54128         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
54129         (WebCore::MediaPlayerPrivate::createQTMovieView):
54130         * rendering/RenderVideo.cpp:
54131         (WebCore::RenderVideo::videoBox):
54132         (WebCore::RenderVideo::paintReplaced):
54133         (WebCore::RenderVideo::updatePlayer):
54134         * rendering/RenderVideo.h:
54136 2008-01-02  Ada Chan  <adachan@apple.com>
54138         Fix windows build.
54140         * WebCore.vcproj/WebCore.vcproj:
54142 2008-01-02  John Sullivan  <sullivan@apple.com>
54144         Reviewed by Dan Bernstein
54145         
54146         - fixed <rdar://problem/5579010> REGRESSION: Safari inserts newlines in tab names when U+2028 is present
54148         * loader/DocumentLoader.cpp:
54149         (WebCore::canonicalizedTitle):
54150         in the code that replaces control characters with white space, also replace the unicode line separator
54151         and paragraph separator characters
54153 2008-01-02  Darin Adler  <darin@apple.com>
54155         - fix buffer overruns seen on buildbot
54157         * platform/text/StringImpl.cpp:
54158         (WebCore::countCharacter): Added this.
54159         (WebCore::StringImpl::toCoordsArray): Use countCharacter instead of incorrect find expression.
54160         (WebCore::StringImpl::toLengthArray): Ditto.
54161         (WebCore::StringImpl::replace): Added assertions.
54163 2008-01-02  Darin Adler  <darin@apple.com>
54165         Reviewed by Maciej.
54167         - fix http://bugs.webkit.org/show_bug.cgi?id=16657
54168           Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild
54169         - fix http://bugs.webkit.org/show_bug.cgi?id=16659
54170           Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>
54172         Tests: dom/html/level2/html/HTMLCollection07.html
54173                dom/html/level2/html/HTMLCollection08.html
54174                dom/html/level2/xhtml/HTMLCollection07.xhtml
54175                dom/html/level2/xhtml/HTMLCollection08.xhtml
54176                fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
54177                fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
54179         * GNUmakefile.am: Added HTMLTableRowsCollection.
54180         * WebCore.pro: Ditto.
54181         * WebCore.vcproj/WebCore.vcproj: Ditto.
54182         * WebCore.xcodeproj/project.pbxproj: Ditto.
54183         * WebCoreSources.bkl: Ditto.
54185         * dom/XMLTokenizer.cpp: Took out stray include.
54187         * html/HTMLCollection.cpp:
54188         (WebCore::HTMLCollection::itemAfter): Removed all the table rows code, since we now use
54189         a separate class for that collection. Also got rid of the distinct types for custom collections
54190         that don't need them (use Other for both).
54191         * html/HTMLCollection.h: Also made firstItem non-virtual because it doesn't need to be virtual.
54193         * html/HTMLFormCollection.cpp:
54194         (WebCore::HTMLFormCollection::HTMLFormCollection): Use Other instead of FormElements
54195         for the HTMLCollection type.
54197         * html/HTMLTableElement.cpp:
54198         (WebCore::HTMLTableElement::HTMLTableElement): Eliminated m_head, m_foot, m_firstBody, and m_caption.
54199         (WebCore::HTMLTableElement::caption): Added non-inline version. Finds the caption rather than
54200         keeping a pointer to it.
54201         (WebCore::HTMLTableElement::setCaption): Rewrote.
54202         (WebCore::HTMLTableElement::tHead): Ditto.
54203         (WebCore::HTMLTableElement::setTHead): Ditto.
54204         (WebCore::HTMLTableElement::tFoot): Ditto.
54205         (WebCore::HTMLTableElement::setTFoot): Ditto.
54206         (WebCore::HTMLTableElement::createTHead): Ditto.
54207         (WebCore::HTMLTableElement::deleteTHead): Ditto.
54208         (WebCore::HTMLTableElement::createTFoot): Ditto.
54209         (WebCore::HTMLTableElement::deleteTFoot): Ditto.
54210         (WebCore::HTMLTableElement::createCaption): Ditto.
54211         (WebCore::HTMLTableElement::deleteCaption): Ditto.
54212         (WebCore::HTMLTableElement::lastBody): Added.
54213         (WebCore::HTMLTableElement::insertRow): Rewrote to use a loop based on code in HTMLTableRowsCollection.
54214         This is different from the old code mainly in how it handles rows outside any section.
54215         (WebCore::HTMLTableElement::deleteRow): Ditto.
54216         (WebCore::HTMLTableElement::addChild): Removed code to set the various members. Keeping pointers to
54217         these was a possible source of serious bugs too, including crashes with stale pointers, although I
54218         didn't write any test cases to prove those bugs existed.
54219         (WebCore::HTMLTableElement::parseMappedAttribute): Changed the rules code to visit all cells, not
54220         just the cells of the first body. I believe this fixed rendering on some table tests. I think the code
54221         visits too many cells and also the use of recursion is overkill, but I didn't try to fix that.
54222         (WebCore::HTMLTableElement::rows): Changed to use the new HTMLTableRowsCollection.
54223         * html/HTMLTableElement.h: Changed functions to return PassRefPtr, which can be important if strange
54224         things like DOM mutation events take things ot of the tree before they are safely referenced by
54225         JavaScript wrappers. Also changed functions to take PassRefPtr and added exceptions. Removed unneeded
54226         firstTBody and setTBody functions and childrenChanged function override, as well as unused Rules and
54227         Frame enums. Removed m_head, m_foot, m_firstBody, and m_caption, and added lastBody function. Removed
54228         unneeded friend declaration for HTMLTableCellElement.
54229         * html/HTMLTableElement.idl: Allow the setteres for caption, tHead, and tFoot to raise exceptions.
54231         * html/HTMLTableRowsCollection.cpp: Added. Implements the HTML 5 rule for which rows are in the
54232         collection in which order.
54233         * html/HTMLTableRowsCollection.h: Added.
54235         * loader/FTPDirectoryDocument.cpp:
54236         (WebCore::FTPDirectoryTokenizer::appendEntry): Use the standard insertRow function instead of
54237         coming up with our own way of inserting a row. Simplifies things -- we can remove the code to
54238         create a tbody element.
54240 2008-01-02  Darin Adler  <darin@apple.com>
54242         Reviewed by Alice and Tim.
54244         - try to fix GTK and Qt builds
54246         * platform/win/ScrollViewWin.cpp:
54247         (WebCore::ScrollView::scroll): Improve logic slightly for the case of
54248         vertical scrolling when there's no vertical scroll bar.
54250         * platform/gtk/ScrollViewGtk.cpp:
54251         (WebCore::ScrollView::scroll): Copy the code from Windows. Maybe this
54252         should be factored differently.
54253         * platform/qt/ScrollViewQt.cpp:
54254         (WebCore::ScrollView::scroll): Ditto.
54256 2008-01-02  Darin Adler  <darin@apple.com>
54258         Reviewed by Anders.
54260         - http://bugs.webkit.org/show_bug.cgi?id=16712
54261           change StringImpl to take and return PassRefPtr instead of raw pointers
54263         Also eliminated use of const StringImpl. Since StringImpl is immutable there
54264         is no distinction between a const and non-const one at the moment.
54266         * WebCore.base.exp: Updated.
54268         * css/CSSHelper.cpp:
54269         (WebCore::parseURL): Make String directly, not by making a StringImpl.
54270         * dom/Attr.cpp:
54271         (WebCore::Attr::createTextChild): Convert AtomicString to String with domString,
54272         not via StringImpl.
54273         (WebCore::Attr::setValue): Remove unneed call to impl() when passing a String
54274         to a function that takes a String.
54276         * dom/CDATASection.cpp: Removed unused constructor.
54277         (WebCore::CDATASection::cloneNode): Added a now-needed .get().
54278         (WebCore::CDATASection::createNew): Changed function to take a PassRefPtr.
54279         * dom/CDATASection.h:
54281         * dom/CharacterData.cpp:
54282         (WebCore::CharacterData::CharacterData): Removed unneeded initialization and
54283         ref() now that the string is a RefPtr. Also updated to not call "new StringImpl".
54284         (WebCore::CharacterData::~CharacterData): Removed unneeded deref() since it's
54285         a RefPtr.
54286         (WebCore::CharacterData::setData): More of that.
54287         (WebCore::CharacterData::substringData): Ditto.
54288         (WebCore::CharacterData::appendData): Ditto.
54289         (WebCore::CharacterData::insertData): Ditto.
54290         (WebCore::CharacterData::deleteData): Ditto.
54291         (WebCore::CharacterData::replaceData): Ditto.
54292         (WebCore::CharacterData::nodeValue): Ditto.
54293         (WebCore::CharacterData::dispatchModifiedEvent): Ditto.
54294         (WebCore::CharacterData::dump): Ditto.
54295         * dom/CharacterData.h: Changed to use a RefPtr. I could have used a String
54296         instead, but since String adds extra branches to handle 0, I figured it was
54297         more conservative to just use RefPtr. Later it would be good to figure out
54298         which is preferred style and be more consistent. Maybe we'll phase out
54299         StringImpl, or maybe we'll go the other way and use it more since it can be
54300         more efficient.
54302         * dom/DOMImplementation.cpp:
54303         (WebCore::addString): Changed set to use String rather than StringImpl.
54304         (WebCore::isSVG10Feature): Ditto.
54305         (WebCore::isSVG11Feature): Ditto.
54306         (WebCore::DOMImplementation::createDocument): Replaced custom code to
54307         find a colon with a call to String::find.
54309         * dom/Range.cpp:
54310         (WebCore::Range::insertNode): Updated since the result of splitText is now
54311         a PassRefPtr.
54313         * dom/Text.cpp:
54314         (WebCore::Text::splitText): Updated since str is now a RefPtr. Also made the
54315         result of this function be a PassRefPtr.
54316         (WebCore::Text::createRenderer): Ditto.
54317         (WebCore::Text::createNew): Made the parameter and result both be PassRefPtr.
54318         * dom/Text.h:
54320         * html/HTMLElement.cpp:
54321         (WebCore::HTMLElement::nodeName): Use String::upper.
54323         * html/HTMLInputElement.cpp:
54324         (WebCore::numGraphemeClusters): Remove now-unneeded const.
54325         (WebCore::numCharactersInGraphemeClusters): Ditto.
54327         * html/HTMLTokenizer.cpp:
54328         (WebCore::HTMLTokenizer::processToken): Updated for function name change.
54330         * platform/text/AtomicString.cpp:
54331         (WebCore::CStringTranslator::translate): Updated since there is no longer
54332         a constructor that takes a string.
54334         * platform/text/PlatformString.h: Added new constructors that take
54335         PassRefPtr and RefPtr. Removed misleading comment.
54337         * platform/text/String.cpp:
54338         (WebCore::String::String): Changed to use StringImpl::create, which handles
54339         the empty string automatically.
54340         (WebCore::String::append): Ditto.
54341         (WebCore::String::charactersWithNullTermination): Similar.
54342         (WebCore::String::format): Ditto.
54344         * platform/text/StringHash.h: Took out unneeded const.
54346         * platform/text/StringImpl.cpp:
54347         (WebCore::deleteUCharVector): Changed to take a const pointer since the
54348         buffers are now const UChar buffers.
54349         (WebCore::StringImpl::StringImpl): Removed some constructors. Got rid of the
54350         separate init functions. The constructors are now private and used only in
54351         the create functions and one or two other places.
54352         (WebCore::StringImpl::containsOnlyWhitespace): Removed now-meaningless const.
54353         (WebCore::StringImpl::substring): Ditto. Also changed return value to be a
54354         PassRefPtr.
54355         (WebCore::StringImpl::characterStartingAt): Ditto.
54356         (WebCore::StringImpl::toLength): Ditto.
54357         (WebCore::StringImpl::toCoordsArray): Ditto.
54358         (WebCore::StringImpl::toLengthArray): Ditto.
54359         (WebCore::StringImpl::isLower): Ditto.
54360         (WebCore::StringImpl::lower): Ditto. Changed to use Vector and adopt so we
54361         don't have to use new directly here. Makes empty string handling more consistent.
54362         (WebCore::StringImpl::upper): Ditto.
54363         (WebCore::StringImpl::secure): Ditto.
54364         (WebCore::StringImpl::foldCase): Ditto.
54365         (WebCore::StringImpl::stripWhiteSpace): Ditto.
54366         (WebCore::StringImpl::simplifyWhiteSpace): Ditto.
54367         (WebCore::StringImpl::capitalize): Ditto.
54368         (WebCore::StringImpl::toInt): Removed now-meaningless const.
54369         (WebCore::StringImpl::toInt64): Ditto.
54370         (WebCore::StringImpl::toUInt64): Ditto.
54371         (WebCore::StringImpl::toDouble): Ditto.
54372         (WebCore::StringImpl::toFloat): Ditto.
54373         (WebCore::StringImpl::find): Ditto.
54374         (WebCore::StringImpl::reverseFind): Ditto.
54375         (WebCore::StringImpl::endsWith): Ditto.
54376         (WebCore::StringImpl::replace): Ditto.
54377         (WebCore::equal): Ditto.
54378         (WebCore::equalIgnoringCase): Ditto.
54379         (WebCore::StringImpl::ascii): Ditto.
54380         (WebCore::StringImpl::defaultWritingDirection): Ditto.
54381         (WebCore::StringImpl::createStrippingNullCharacters): Ditto.
54382         (WebCore::StringImpl::adopt): Added special case so this uses the shared
54383         empty string like other functions. Also optimized the common case where the
54384         vector happens to already have the right size so we don't do a fastRealloc
54385         at all in those cases.
54386         (WebCore::StringImpl::create): Added. These are now the public functions for
54387         creating new StringImpl objects. They all implement the shared empty string.
54388         (WebCore::StringImpl::createWithTerminatingNullCharacter):
54389         * platform/text/StringImpl.h:
54391         * platform/text/cf/StringCF.cpp:
54392         (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
54393         * platform/text/cf/StringImplCF.cpp:
54394         (WebCore::StringImpl::createCFString): Removed now-obsolete const.
54395         * platform/text/mac/StringImplMac.mm:
54396         (WebCore::StringImpl::operator NSString *): Ditto.
54397         * platform/text/mac/StringMac.mm:
54398         (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
54399         * platform/text/qt/StringQt.cpp:
54400         (WebCore::String::String): Ditto.
54401         * platform/text/wx/StringWx.cpp:
54402         (WebCore::String::String): Ditto.
54403         * rendering/RenderBR.cpp:
54404         (WebCore::RenderBR::RenderBR): Ditto.
54406         * rendering/RenderSVGInlineText.cpp:
54407         (WebCore::RenderSVGInlineText::RenderSVGInlineText): Use PassRefPtr.
54408         * rendering/RenderSVGInlineText.h:
54410         * rendering/RenderText.cpp:
54411         (WebCore::charactersAreAllASCII): Removed now-unneeded const.
54412         * rendering/RenderTextFragment.cpp:
54413         (WebCore::RenderTextFragment::originalText): Use RefPtr.
54415 2008-01-02  Timothy Hatcher  <timothy@apple.com>
54417         Reviewed by Oliver Hunt.
54419         <rdar://problem/5618086> WebInspector does not expand the DOM tree after being closed
54421         Closing the Web Inspector causes the DOM tree outline to be torn down, clearing the
54422         internal element lookup tables. The represented DOM node object still holds the identifier
54423         it was assigned, and a later call to findTreeElement will use that original identifier
54424         against a cleared lookup table. In that case we need to fallback on DOM ancestor lookup.
54426         * page/inspector/treeoutline.js:
54427         (TreeOutline.prototype.findTreeElement): If the DOM node already had a __treeElementIdentifier,
54428         but the TreeOutline no longer has the element in the _knownTreeElements list do an ancestor lookup
54429         instead of an early return.
54431 2008-01-02  Alice Liu  <alice.liu@apple.com>
54433         Reviewed by Maciej.
54435         Fixed <rdar://5283861> (problems scrolling in gmail message content area)
54437         * platform/ScrollView.h:
54438         * platform/win/ScrollViewWin.cpp:
54439         (WebCore::ScrollView::scroll):
54440          Changed return value to bool to reflect success of scroll attempt
54442 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
54444         Fixed a typo (pointed out in review, but I somehow missed it at first).
54446         * editing/EditorCommand.cpp: (WebCore::executeDelete):
54448 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
54450         Reviewed by Darin.
54452         Resolved several FIXMEs in EditorCommand.
54453         Made recently added commands hidden from JS again.
54454         Removed BackwardDelete implementation, which used to be dead code, but got exposed now.
54456         Tests: editing/execCommand/delete-no-scroll.html
54457                editing/execCommand/forward-delete-no-scroll.html
54458                editing/execCommand/insert-line-break-no-scroll.html
54460         * editing/EditorCommand.cpp:
54461         (WebCore::executeDelete):
54462         (WebCore::executeForwardDelete):
54463         (WebCore::executeInsertLineBreak):
54464         (WebCore::supportedFromMenuOrKeyBinding):
54465         (WebCore::CommandEntry::):
54467 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
54469         Reviewed by Darin.
54471         http://bugs.webkit.org/show_bug.cgi?id=14555
54472         action=mailto + method=get - The generated mailto URI is incorrect and the hvalues are encoded twice
54474         http://bugs.webkit.org/show_bug.cgi?id=14774
54475         Submitted data only includes first input item
54477         Reworked encoding of mailto URLs to match other browsers.
54478         Moved most of related logic from FrameLoader::submitForm() to HTMLFormElement::submit().
54480         Tests: fast/forms/mailto/advanced-get.html
54481                fast/forms/mailto/advanced-put.html
54482                fast/forms/mailto/get-multiple-items-text-plain.html
54483                fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
54484                fast/forms/mailto/get-multiple-items.html
54485                fast/forms/mailto/get-non-ascii.html
54486                fast/forms/mailto/get-non-ascii-text-plain.html
54487                fast/forms/mailto/get-overwrite-query.html
54488                fast/forms/mailto/post-append-query.html
54489                fast/forms/mailto/post-multiple-items-multipart-form-data.html
54490                fast/forms/mailto/post-multiple-items-text-plain.html
54491                fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
54492                fast/forms/mailto/post-multiple-items.html
54494         * html/HTMLFormElement.cpp:
54495         (WebCore::HTMLFormElement::submit):
54496         * loader/FrameLoader.cpp:
54497         (WebCore::FrameLoader::submitForm):
54499 2008-01-02  Mark Rowe  <mrowe@apple.com>
54501         Autotools build fix.
54503         * GNUmakefile.am: Remove files before generating them, not after.
54505 2008-01-02  Mark Rowe  <mrowe@apple.com>
54507         Rubber-stamped by Alp Toker.
54509         Add missing dependencies to some GNUmakefile.am rules.
54511         * GNUmakefile.am:
54513 2008-01-02  Mark Rowe  <mrowe@apple.com>
54515         Reviewed by Alp Toker.
54517         Autotools build fix.  Make can expand $@ to any of the targets for the rule,
54518         while we always want to use the name of the .cpp file as the output file.
54520         * GNUmakefile.am:
54522 2008-01-02  Luca Bruno  <lethalman88@gmail.com>
54524         Reviewed by Alp Toker.
54526         http://bugs.webkit.org/show_bug.cgi?id=16115
54527         [GTK] ContextMenu and ContextMenuItem lacks an implementation
54529         Add context menu support.
54531         Based on a patch by Holger Freyther.
54533         * platform/gtk/ContextMenuGtk.cpp:
54534         (WebCore::menuItemActivated):
54535         (WebCore::ContextMenu::ContextMenu):
54536         (WebCore::ContextMenu::~ContextMenu):
54537         (WebCore::ContextMenu::appendItem):
54538         (WebCore::ContextMenu::setPlatformDescription):
54539         (WebCore::ContextMenu::releasePlatformDescription):
54540         * platform/gtk/ContextMenuItemGtk.cpp:
54541         (WebCore::ContextMenuItem::ContextMenuItem):
54542         (WebCore::ContextMenuItem::~ContextMenuItem):
54543         (WebCore::ContextMenuItem::releasePlatformDescription):
54544         (WebCore::ContextMenuItem::type):
54545         (WebCore::ContextMenuItem::action):
54546         (WebCore::ContextMenuItem::setAction):
54547         (WebCore::ContextMenuItem::platformSubMenu):
54548         (WebCore::ContextMenuItem::setSubMenu):
54549         (WebCore::ContextMenuItem::setChecked):
54550         (WebCore::ContextMenuItem::setEnabled):
54552 2008-01-02  Alp Toker  <alp@atoker.com>
54554         GTK+ autotools build fix. Track changes in r29073.
54556         * GNUmakefile.am:
54558 2008-01-01  Darin Adler  <darin@apple.com>
54560         - fix release build
54562         * bindings/js/kjs_binding.cpp:
54563         (KJS::setDOMException): Initialize to avoid uninitialized variable warning.
54564         Removed default so we get a warning if there's a missing case.
54566 2008-01-01  David D. Kilzer  <ddkilzer@webkit.org>
54568         Scripting MIME Types application/ecmascript, application/javascript not viewable
54569         <http://bugs.webkit.org/show_bug.cgi?id=11063>
54571         Reviewed by Darin.
54573         This patch consolidates the list of acceptable MIME types for JavaScript
54574         source into the MIMETypeRegistry class, and replaces checks for these
54575         types with a call to MIMETypeRegistry::isSupportedJavaScriptMIMEType().
54577         No tests added since viewing JavaScript source is not testable.
54579         * dom/DOMImplementation.cpp:
54580         (WebCore::DOMImplementation::isTextMIMEType): Use
54581         MIMETypeRegistry::isSupportedJavaScriptMIMEType() instead of a single
54582         hard-coded MIME type, "application/x-javascript".
54584         * html/HTMLScriptElement.cpp:
54585         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): Moved list of
54586         JavaScript MIME types from here to
54587         MIMETypeRegistry::initialiseSupportedJavaScriptMIMETypes().
54589         * platform/MIMETypeRegistry.cpp:
54590         (WebCore::initialiseSupportedJavaScriptMIMETypes): Added. List of
54591         MIME types came from HTMLScriptElement::shouldExecuteAsJavaScript().
54592         (WebCore::initialiseSupportedNonImageMimeTypes): Remove single
54593         hard-coded MIME type, "application/x-javascript", from the list.
54594         (WebCore::initialiseMIMETypeRegistry): Initialise
54595         supportedJavaScriptMIMETypes, then pre-populate supportedNonImageMIMETypes
54596         with values in supportedJavaScriptMIMETypes.
54597         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Added.
54599         * platform/MIMETypeRegistry.h: Added isSupportedJavaScriptMIMEType().
54601 2008-01-01  Sam Weinig  <sam@webkit.org>
54603         Reviewed by Darin.
54605         Patch for http://bugs.webkit.org/show_bug.cgi?id=16691
54606         Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)
54608         - Create JS objects for all the different types of exceptions, each with there own prototype and constructor.
54609         - Abstract all the logic and storage for exception classes in to an ExceptionBase class.
54610         - Move specialized ExceptionCodes into the exception classes. (ie. the EventExceptionCode enum is now in EventException).
54612         Tests: fast/dom/DOMException/EventException.html
54613                fast/dom/DOMException/RangeException.html
54614                fast/dom/DOMException/XPathException.html
54615                http/tests/xmlhttprequest/XMLHttpRequestException.html
54616                svg/custom/SVGException.html
54618         * DerivedSources.make:
54619         * WebCore.pro:
54620         * WebCore.vcproj/WebCore.vcproj:
54621         * WebCore.xcodeproj/project.pbxproj:
54622         * WebCoreSources.bkl:
54623         * bindings/js/JSSVGMatrixCustom.cpp:
54624         (WebCore::JSSVGMatrix::inverse):
54625         (WebCore::JSSVGMatrix::rotateFromVector):
54626         * bindings/js/kjs_binding.cpp:
54627         (KJS::setDOMException):
54628         * bindings/scripts/CodeGeneratorJS.pm: Use the constant values defined
54629         in the IDL as the ObjC bindings do.
54630         * bindings/scripts/CodeGeneratorObjC.pm:
54631         * dom/DOMCoreException.cpp: Removed.
54632         * dom/DOMCoreException.h:
54633         (WebCore::DOMCoreException::DOMCoreException):
54634         * dom/DOMCoreException.idl:
54635         * dom/Event.h:
54636         * dom/EventException.h: Copied from WebCore/dom/DOMCoreException.h.
54637         (WebCore::EventException::EventException):
54638         (WebCore::EventException::):
54639         * dom/EventException.idl: Copied from WebCore/dom/DOMCoreException.idl.
54640         * dom/EventTargetNode.cpp:
54641         (WebCore::EventTargetNode::dispatchEvent):
54642         * dom/ExceptionBase.cpp: Copied from WebCore/dom/DOMCoreException.cpp.
54643         (WebCore::ExceptionBase::ExceptionBase):
54644         (WebCore::ExceptionBase::toString):
54645         * dom/ExceptionBase.h: Copied from WebCore/dom/DOMCoreException.h.
54646         (WebCore::ExceptionBase::code):
54647         * dom/ExceptionCode.cpp:
54648         (WebCore::getExceptionCodeDescription):
54649         * dom/ExceptionCode.h:
54650         * dom/Range.cpp:
54651         (WebCore::Range::insertNode):
54652         (WebCore::Range::checkNodeWOffset):
54653         (WebCore::Range::checkNodeBA):
54654         (WebCore::Range::selectNode):
54655         (WebCore::Range::selectNodeContents):
54656         (WebCore::Range::surroundContents):
54657         * dom/RangeException.h:
54658         (WebCore::RangeException::RangeException):
54659         (WebCore::RangeException::):
54660         * dom/RangeException.idl:
54661         * page/DOMWindow.idl:
54662         * svg/SVGColor.cpp:
54663         (WebCore::SVGColor::setRGBColor):
54664         * svg/SVGException.h:
54665         (WebCore::SVGException::SVGException):
54666         (WebCore::SVGException::):
54667         * svg/SVGException.idl:
54668         * svg/SVGLocatable.cpp:
54669         (WebCore::SVGLocatable::getTransformToElement):
54670         * xml/XMLHttpRequest.cpp:
54671         (WebCore::XMLHttpRequest::dispatchEvent):
54672         (WebCore::XMLHttpRequest::open):
54673         (WebCore::XMLHttpRequest::send):
54674         * xml/XMLHttpRequest.h:
54675         * xml/XMLHttpRequestException.h: Copied from WebCore/dom/DOMCoreException.h.
54676         (WebCore::XMLHttpRequestException::XMLHttpRequestException):
54677         (WebCore::XMLHttpRequestException::):
54678         * xml/XMLHttpRequestException.idl: Copied from WebCore/dom/DOMCoreException.idl.
54679         * xml/XPathEvaluator.h:
54680         * xml/XPathException.h: Copied from WebCore/dom/DOMCoreException.h.
54681         (WebCore::XPathException::XPathException):
54682         (WebCore::XPathException::):
54683         * xml/XPathException.idl: Copied from WebCore/dom/DOMCoreException.idl.
54684         * xml/XPathParser.cpp:
54685         (WebCore::XPath::Parser::parseStatement):
54686         * xml/XPathResult.cpp:
54687         (WebCore::XPathResult::convertTo):
54688         (WebCore::XPathResult::numberValue):
54689         (WebCore::XPathResult::stringValue):
54690         (WebCore::XPathResult::booleanValue):
54691         (WebCore::XPathResult::singleNodeValue):
54692         (WebCore::XPathResult::snapshotLength):
54693         (WebCore::XPathResult::iterateNext):
54694         (WebCore::XPathResult::snapshotItem):
54696 2008-01-01  Sam Weinig  <sam@webkit.org>
54698         Remove JSDomExceptionConstructor.lut.h from clean step
54699         as it no longer exists.
54701         * GNUmakefile.am:
54703 2008-01-01  Dan Bernstein  <mitz@apple.com>
54705         - Windows build fix
54707         * WebCore.vcproj/WebCore.vcproj:
54709 2008-01-01  Sam Weinig  <sam@webkit.org>
54711         Try again to fix the builds
54713         * DerivedSources.make:
54715 2008-01-01  Sam Weinig  <sam@webkit.org>
54717         Fix non-mac builds.
54719         * WebCore.pro:
54720         * WebCore.vcproj/WebCore.vcproj:
54721         * WebCoreSources.bkl:
54723 2008-01-01  Eric Seidel  <eric@webkit.org>
54725         Reviewed by Alexey.
54727         Don't replace \ with / in data: urls
54728         http://bugs.webkit.org/show_bug.cgi?id=16692
54730         Test: fast/loader/url-data-replace-backslash.html
54732         * platform/KURL.cpp:
54733         (WebCore::KURL::init):
54735 2008-01-01  Alp Toker  <alp@atoker.com>
54737         GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
54738         correct parameter to AM_INIT_AUTOMAKE.
54740         * GNUmakefile.am:
54742 2007-12-31  Sam Weinig  <sam@webkit.org>
54744         Reviewed by Darin.
54746         Patch for http://bugs.webkit.org/show_bug.cgi?id=16637
54747         Acid3 expects ExeceptionCode constants to be defined on DOMException objects
54749         - Make DOMException a real JS object.
54751         Test: fast/dom/DOMException/prototype-object.html
54753         * DerivedSources.make:
54754         * WebCore.xcodeproj/project.pbxproj:
54756         This is no longer needed as the autogenerated classes now includes the
54757         constructor.
54758         * bindings/js/JSDOMExceptionConstructor.cpp: Removed.
54759         * bindings/js/JSDOMExceptionConstructor.h: Removed.
54761         Create on demand and use the new class for DOMExceptions.
54762         * bindings/js/kjs_binding.cpp:
54763         (KJS::setDOMException):
54765         Remove no longer needed custom constructor getter.
54766         * bindings/js/kjs_window.cpp:
54767         (KJS::Window::getValueProperty):
54769         Don't expose DOMCoreException as the name of class by special casing
54770         the user visible class name to be DOMException.
54771         * bindings/scripts/CodeGeneratorJS.pm:
54773         The DOMException class/file needs to be named DOMCoreException because there is
54774         name conflict with one of the Objective-C bindings classes.  It should be renamed
54775         to DOMException when the Objective-C bindings are moved into WebKit.
54776         * dom/DOMCoreException.cpp: Added.
54777         (WebCore::DOMCoreException::DOMCoreException):
54778         (WebCore::DOMCoreException::toString):
54779         * dom/DOMCoreException.h: Added.
54780         (WebCore::DOMCoreException::):
54781         (WebCore::DOMCoreException::code):
54782         (WebCore::DOMCoreException::name):
54783         (WebCore::DOMCoreException::message):
54784         * dom/DOMCoreException.idl: Added.
54785         * page/DOMWindow.idl:
54787 2007-12-31  Sam Weinig  <sam@webkit.org>
54789         Re-enable querySelector and querySelectorAll and touch the necessary files to not
54790         kill the windows build.
54792         * WebCore.vcproj/build-generated-files.sh:
54793         * bindings/scripts/CodeGeneratorCOM.pm:
54794         * dom/Document.idl:
54795         * dom/Element.idl:
54797 2007-12-31  Darin Adler  <darin@apple.com>
54799         - fix Windows build
54801         * dom/Document.idl: Temporarily disable querySelector and querySelectorAll, since they are showing
54802         up as pure virtual functions. Sam can fix this later.
54803         * dom/Element.idl: Ditto.
54805 2007-12-31  Dan Bernstein  <mitz@apple.com>
54807         Reviewed by Darin Adler.
54809         - fix http://bugs.webkit.org/show_bug.cgi?id=14134
54810           <rdar://problem/5655160> REGRESSION (r25353): Whitespace nodes ignored between inline list items
54812         Test: fast/dynamic/create-renderer-for-whitespace-only-text.html
54814         * dom/Node.cpp:
54815         (WebCore::Node::attach): Added code to check if this node's renderer
54816         has become the "previous renderer" of any sibling text node, and if so,
54817         ensure that that node gets a renderer if it now needs one.
54818         (WebCore::Node::createRendererIfNeeded): Removed the assertion that the
54819         node is not attached.
54821 2007-12-31  Darin Adler  <darin@apple.com>
54823         Reviewed by Mitz.
54825         - fix http://bugs.webkit.org/show_bug.cgi?id=16641
54826           Acid3 reveals HTMLFormElement.elements fails to update when element name changes
54828         Test: fast/dom/HTMLFormElement/elements-not-in-document.html
54830         This was a bug specific to forms that are not in the document tree.
54831         The fix was to change the code to increment the document version number to match
54832         up with other document change tracking. Maybe at some point we can clean these up
54833         so we don't have so many competing change notification systems.
54835         * dom/ContainerNode.cpp:
54836         (WebCore::ContainerNode::replaceChild): Removed bogus comment.
54837         (WebCore::ContainerNode::addChild): Added an explicit incDOMTreeVersion
54838         call here, since this code path bypasses the subtree-modified event code.
54840         * dom/Element.cpp:
54841         (WebCore::Element::setAttribute): Remove the inDocument() check -- not all HTML
54842         collections are for things in the document.
54843         (WebCore::Element::setAttributeMap): Ditto.
54845         * dom/EventTargetNode.cpp:
54846         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): Added a call to
54847         incDOMTreeVersion here; covers most cases of tree structure changes.
54849         * dom/Node.cpp:
54850         (WebCore::Node::attach): Remove call to incDOMTreeVersion -- creating a renderer
54851         has nothing to do with changes to the DOM tree!
54852         (WebCore::Node::detach): Ditto.
54854         * html/HTMLFormElement.cpp:
54855         (WebCore::HTMLFormElement::registerFormElement): Remove call to incDOMTreeVersion.
54856         This is handled at a lower level and doesn't need to be here.
54857         (WebCore::HTMLFormElement::removeFormElement): Ditto.
54859 2007-12-31  Henry Mason  <hmason@mac.com>
54861         Reviewed by Darin.
54863         Patch for http://bugs.webkit.org/show_bug.cgi?id=14994
54864         Support for MessageEvent and cross-domain messaging
54866         Test: http/tests/messaging/cross-domain-message-send.html
54868         * DerivedSources.make:
54869         * WebCore.pro:
54870         * WebCore.vcproj/WebCore.vcproj:
54871         * WebCore.xcodeproj/project.pbxproj:
54872         * WebCoreSources.bkl:
54873         * bindings/js/JSDOMWindowCustom.cpp:
54874         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Allow cross-domain access to the
54875         postMessage function.
54876         (WebCore::JSDOMWindow::postMessage):
54877         * bindings/js/JSEventCustom.cpp:
54878         (WebCore::toJS):
54879         * dom/Event.cpp:
54880         (WebCore::Event::isMessageEvent):
54881         * dom/Event.h:
54882         * dom/EventNames.h: New event name
54883         * dom/MessageEvent.cpp: Added.
54884         * dom/MessageEvent.h: Added.
54885         * dom/MessageEvent.idl: Added.
54886         * page/DOMWindow.cpp:
54887         (WebCore::DOMWindow::postMessage): Added.
54888         * page/DOMWindow.h:
54889         * page/DOMWindow.idl:
54891 2007-12-31  Darin Adler  <darin@apple.com>
54893         Suggested by Antti.
54895         - turn ENABLE_VIDEO back off for Windows until we can install QuickTime on the build bots
54897         * WebCore.vcproj/WebCore.vcproj: Removed ENABLE_VIDEO.
54898         * WebCore.vcproj/build-generated-files.sh: Ditto.
54900 2007-12-30  Alp Toker  <alp@atoker.com>
54902         Reviewed by Dan Bernstein.
54904         Silence warning.
54906         * dom/NodeList.h:
54908 2007-12-30  Sam Weinig  <sam@webkit.org>
54910         Reviewed by Oliver Hunt.
54912         Fix for http://bugs.webkit.org/show_bug.cgi?id=16387
54913         Variable names can be enumerated across domains
54914         <rdar://problem/5640454>
54916         Test: http/tests/security/cross-frame-access-enumeration.html
54918         * bindings/js/kjs_window.cpp:
54919         (KJS::Window::getPropertyNames): Override method to test same-origin policy.
54920         * bindings/js/kjs_window.h:
54922 2007-12-30  Sam Weinig  <sam@webkit.org>
54924         Reviewed by Oliver Hunt.
54926         Patch for http://bugs.webkit.org/show_bug.cgi?id=10686
54927         event instanceof MouseEvent throws exception
54929         Add JS constructors for all the Event types.
54931         Test: fast/events/event-instanceof.html
54933         * WebCore.xcodeproj/project.pbxproj:
54934         * dom/KeyboardEvent.idl:
54935         * dom/MouseEvent.idl:
54936         * dom/MutationEvent.idl:
54937         * dom/OverflowEvent.idl:
54938         * dom/ProgressEvent.idl:
54939         * dom/TextEvent.idl:
54940         * dom/UIEvent.idl:
54941         * dom/WheelEvent.idl:
54942         * page/DOMWindow.idl:
54944 2007-12-30  David Kilzer  <ddkilzer@webkit.org>
54946         Reviewed by Darin.
54948         - fix http://bugs.webkit.org/show_bug.cgi?id=15359
54949           JPEG image not shown when height is specified as percentage inside a table
54951         The problem occurs when a replaced element (image, canvas, etc.) with
54952         a percent-height attribute is contained by a table cell with an auto-
54953         or percent-height attribute.  If there are no other conditions to cause
54954         the table cell's height to expand, an available height of zero will
54955         always be returned.  In these cases, the intrinsic height of the
54956         replaced element should be used if it is greater than the available
54957         height of the table cell.
54959         Tests: fast/replaced/table-percent-height.html
54960                tables/mozilla/bugs/bug137388-1.html
54961                tables/mozilla/bugs/bug137388-2.html
54963         * rendering/RenderBox.cpp:
54964         (WebCore::RenderBox::calcReplacedHeightUsing):
54966 2007-12-30  Luca Bruno  <lethalman88@gmail.com>
54968         Reviewed by Alp Toker.
54970         http://bugs.webkit.org/show_bug.cgi?id=16099
54971         Crash in CURL for empty POST
54973         We have to set POST even when the data is empty, otherwise cURL will
54974         hang while waiting for a response.
54976         * platform/network/curl/ResourceHandleManager.cpp
54977         (ResourceHandleManager::setupPOST): allow empty POST
54979 2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
54981         Reviewed by Alp Toker.
54983         Move all SVG related stuff inside SVG block. Don't include
54984         SVGNames, SVGElementFactory, and XLinkNames when SVG is not
54985         enabled
54987         * GNUmakefile.am:
54989 2007-12-29  Alexey Proskuryakov  <ap@webkit.org>
54991         Reviewed by Darin.
54993         http://bugs.webkit.org/show_bug.cgi?id=14428
54994         FCKEditor: Images disappear on drag/drop and copy/paste
54996         Test: editing/pasteboard/drag-image-in-about-blank-frame.html
54998         * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Don't use "about:blank" as a
54999         base URL, just like we don't use an empty one.
55001 2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
55003         Reviewed by Alp Toker.
55005         http://bugs.webkit.org/show_bug.cgi?id=16669
55006         autotools update and fixes
55008         Autotools update and database/icon database inclusion guard fixes
55010         * GNUmakefile.am:
55011           - Update autotools config as per -r29012 changes
55012           - Fix CSSGrammar.h/cpp generation (Seo Sanghyeon, sanxiyn)
55013         * dom/Document.cpp:
55014         * loader/icon/IconDatabase.h:
55015         * page/DOMWindow.cpp:
55016         * page/InspectorController.cpp:
55017         * page/Settings.cpp:
55018         * storage/Database.h:
55019           - Remove ENABLE(DATABASE) inclusion guard. Let the includer add the guard instead.
55021 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
55023         Reviewed by Alexey.
55025         Respect horiz-origin-x / horiz-origin-y / vert-origin-x / vert-origin-y properties when drawing SVG Fonts.
55026         (Fixes fonts-elem-05-t.svg in a --svg-fonts build)
55028         * svg/SVGFont.cpp:
55029         (WebCore::Font::drawGlyphsWithSVGFont):
55031 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
55033         Reviewed by Oliver.
55035         Further SVG Font work. Parse all <glyph> attributes, using SVGGlyphElement::buildGlyphIdentifier.
55036         SVGFontElement::collectGlyphs() now uses this method. Per character advance values work well now.
55038         * platform/graphics/FontData.cpp:
55039         (WebCore::SVGFontData::convertEmUnitToPixel): Add helper function.
55040         (WebCore::FontData::ascent):
55041         (WebCore::FontData::descent):
55042         * platform/graphics/FontData.h:
55043         * svg/SVGFont.cpp:
55044         (WebCore::isVerticalWritingMode): Add helper function.
55045         (WebCore::Font::drawGlyphsWithSVGFont):
55046         * svg/SVGFontElement.cpp:
55047         (WebCore::SVGFontElement::collectGlyphs): Simplified implementation - SVGGlyphIdentifier now build by SVGGlyphElement.
55048         * svg/SVGGlyphElement.cpp:
55049         (WebCore::parseArabicForm): Helper function.
55050         (WebCore::parseOrientation): Ditto.
55051         (WebCore::parsePathData): Ditto.
55052         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
55053         * svg/SVGGlyphElement.h:
55054         (WebCore::SVGGlyphElement::rendererIsNeeded):
55056 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
55058         Reviewed by Oliver.
55060         Refactor SVGAnimationElement::parseValues into a generic function parseDelimitedString.
55061         SVGAnimationElement needs to parse semicolon-seperated strings, SVGGlyphElement comma-seperated.
55063         * svg/SVGAnimationElement.cpp:
55064         (WebCore::SVGAnimationElement::parseMappedAttribute):
55065         * svg/SVGParserUtilities.cpp:
55066         (WebCore::parseDelimitedString):
55067         * svg/SVGParserUtilities.h:
55069 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
55071         Reviewed by Maciej.
55073         Add new helper structure SVGFontData - FontData holds this object as OwnPtr.
55074         Store several attribute values there (horiz-adv-x, horiz-origin-x etc..)
55076         To optimize for the common case ('FontData' used for HTML rendering) it feels
55077         better to hold one OwnPtr in FontData, than several floats.
55079         Parse all <font> attributes in SVGFontFaceElement::createFontData.
55081         * platform/graphics/FontData.cpp:
55082         (WebCore::SVGFontData::SVGFontData):
55083         (WebCore::FontData::FontData):
55084         (WebCore::FontData::ascent):
55085         (WebCore::FontData::descent):
55086         * platform/graphics/FontData.h:
55087         (WebCore::FontData::isSVGFont):
55088         (WebCore::FontData::svgFontData):
55089         * svg/SVGFont.cpp:
55090         (WebCore::Font::drawGlyphsWithSVGFont):
55091         * svg/SVGFontElement.cpp:
55092         * svg/SVGFontElement.h:
55093         (WebCore::SVGFontElement::rendererIsNeeded):
55094         * svg/SVGFontFaceElement.cpp:
55095         (WebCore::SVGFontFaceElement::unitsPerEm):
55096         (WebCore::SVGFontFaceElement::createFontData):
55098 2007-12-28  Darin Adler  <darin@apple.com>
55100         - try to fix Windows and WX builds (broken by SVG Fonts check-in)
55102         * platform/graphics/win/FontWin.cpp:
55103         (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent, now that it requires it.
55104         I can't see how it can be right to require the font size for ascent and descent,
55105         but not for other metrics functions in FontData.
55107         * platform/graphics/wx/FontWx.cpp:
55108         (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent and FontData::descent.
55110 2007-12-28  Dan Bernstein  <mitz@apple.com>
55112         Reviewed by Mark Rowe.
55114         - fix http://bugs.webkit.org/show_bug.cgi?id=16650
55115           <rdar://problem/5664872> REGRESSION (r28278-r28314): ATSUI uses LTR writing direction for all text runs
55117         Covered by existing pixel tests.
55119         * platform/graphics/mac/FontMac.mm:
55120         (WebCore::Font::drawComplexText): Corrected to maintain the style
55121         information in the adjusted text run when passing it to
55122         ATSUILayoutParameters. Prior to r28298 the style was passed separately.
55124 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
55126         Build fix, not reviewed.
55128         Add wtf/OwnPtr.h include, to fix --svg-fonts build.
55130         * css/SVGCSSFontFace.h:
55132 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
55134         Reviewed by Eric.
55136         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)
55138         Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
55139         Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
55140         are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).
55142         Limited to single char <-> glyph mapping, no ligatures supported yet.
55143         (ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)
55145         Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.
55147         No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
55148         attributes are not processed yet, the rendering looks wrong - hence disabled by default.)
55150         * DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
55151         * WebCore.pro: Updated build system.
55152         * WebCore.vcproj/WebCore.vcproj: Ditto.
55153         * WebCore.xcodeproj/project.pbxproj: Ditto.
55154         * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
55155         * bindings/objc/DOM.mm: Ditto (for DOMSVG*).
55156         (WebCore::createElementClassMap):
55157         * bindings/objc/DOMInternal.h: Ditto.
55158         * bindings/objc/DOMSVG.h: Ditto.
55159         * css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
55160         * css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
55161         (WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
55162         (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
55163         (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
55164         * css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
55165         (WebCore::CSSFontSelector::addFontFaceRule):
55166         * css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
55167         (WebCore::SVGCSSFontFace::SVGCSSFontFace):
55168         (WebCore::SVGCSSFontFace::~SVGCSSFontFace):
55169         (WebCore::SVGCSSFontFace::isValid):
55170         (WebCore::SVGCSSFontFace::addSource):
55171         (WebCore::SVGCSSFontFace::getFontData):
55172         * css/SVGCSSFontFace.h: Added.
55173         * platform/graphics/cg/PathCG.cpp:
55174         (WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
55175         * platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
55176         (WebCore::Font::ascent): Pass font size to FontData::ascent() call
55177         (WebCore::Font::descent): Pass font size to FontData::descent() call
55178         (WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
55179         (WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
55180         * platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
55181         (WebCore::TextRun::TextRun):
55182         (WebCore::TextRun::referencingRenderObject):
55183         (WebCore::TextRun::setReferencingRenderObject):
55184         * platform/graphics/FontData.cpp:
55185         (WebCore::FontData::FontData):
55186         (WebCore::FontData::ascent):
55187         (WebCore::FontData::descent):
55188         * platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
55189         (WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
55190         (WebCore::FontData::svgFontFace):
55191         * rendering/SVGInlineTextBox.cpp:
55192         (WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
55193         * rendering/SVGRootInlineBox.cpp:
55194         (WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
55195         * svg/SVGFont.cpp: Added.
55196         (WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
55197         * svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
55198         (WebCore::SVGFontElement::SVGFontElement):
55199         (WebCore::SVGFontElement::~SVGFontElement):
55200         (WebCore::SVGFontElement::parseMappedAttribute):
55201         (WebCore::SVGFontElement::collectGlyphs):
55202         (WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
55203         * svg/SVGFontElement.h: Added.
55204         (WebCore::GlyphHash::hash):
55205         (WebCore::GlyphHash::equal):
55206         (WebCore::GlyphHashTraits::deletedValue):
55207         (WebCore::SVGFontElement::rendererIsNeeded):
55208         (WebCore::SVGFontElement::contextElement):
55209         * svg/SVGFontElement.idl: Added.
55210         * svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
55211         (WebCore::SVGFontFaceElement::unitsPerEm):
55212         (WebCore::SVGFontFaceElement::fontFamily):
55213         (WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
55214         (WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
55215         (WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
55216         (WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
55217         * svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
55218         * svg/SVGFontFaceElement.idl: Ditto.
55219         * svg/SVGFontFaceFormatElement.cpp: Ditto.
55220         * svg/SVGFontFaceFormatElement.h: Ditto.
55221         * svg/SVGFontFaceFormatElement.idl: Ditto.
55222         * svg/SVGFontFaceNameElement.cpp: Ditto.
55223         * svg/SVGFontFaceNameElement.h: Ditto.
55224         * svg/SVGFontFaceNameElement.idl: Ditto.
55225         * svg/SVGFontFaceSrcElement.cpp: Ditto.
55226         * svg/SVGFontFaceSrcElement.h: Ditto.
55227         * svg/SVGFontFaceSrcElement.idl: Ditto.
55228         * svg/SVGFontFaceUriElement.cpp: Ditto.
55229         * svg/SVGFontFaceUriElement.h: Ditto.
55230         * svg/SVGFontFaceUriElement.idl: Ditto.
55231         * svg/SVGDefinitionSrcElement.cpp: Ditto.
55232         * svg/SVGDefinitionSrcElement.h: Ditto.
55233         * svg/SVGDefinitionSrcElement.idl: Ditto.
55234         * svg/SVGGlyphElement.cpp: Added.
55235         (WebCore::SVGGlyphElement::SVGGlyphElement):
55236         (WebCore::SVGGlyphElement::parseMappedAttribute):
55237         (WebCore::SVGGlyphElement::childrenChanged):
55238         * svg/SVGGlyphElement.h: Added.
55239         (WebCore::SVGGlyphElement::rendererIsNeeded):
55240         (WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
55241         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
55242         * svg/SVGGlyphElement.idl: Added.
55243         * svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
55244         (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
55245         (WebCore::SVGMissingGlyphElement::parseMappedAttribute):
55246         (WebCore::SVGMissingGlyphElement::childrenChanged):
55247         * svg/SVGMissingGlyphElement.h: Added.
55248         (WebCore::SVGMissingGlyphElement::rendererIsNeeded):
55249         * svg/SVGMissingGlyphElement.idl: Added.
55250         * svg/svgtags.in: Wrap all SVGFont* elements in ENABLE(SVG_FONTS) block - to assure --no-svg-fonts compilation works (which is the default for now!).
55252 2007-12-27  Dan Bernstein  <mitz@apple.com>
55254         Reviewed by Alexey Proskuryakov.
55256         - fix http://bugs.webkit.org/show_bug.cgi?id=16628
55257           ASSERTION FAILED: m_resizeLayer (running layout tests)
55259         * rendering/RenderLayer.cpp:
55260         (WebCore::RenderLayer::~RenderLayer): Avoid calling
55261         EventHandler::resizeLayerDestroyed() if the document is being destroyed.
55263 2007-12-27  Dan Bernstein  <mitz@apple.com>
55265         Reviewed by Oliver Hunt.
55267         - fix http://bugs.webkit.org/show_bug.cgi?id=16603
55268           <rdar://problem/5664199> Crash when resizing text field
55270         Test: fast/layers/resize-layer-deletion-crash.html
55272         The event handler has only a weak reference to the layer that is
55273         currently in resize mode, so it is the layer's responsibility to let
55274         the event handler know if it has been destroyed while in that mode.
55276         * page/EventHandler.cpp:
55277         (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
55278         m_resizeLayer to 0.
55279         * page/EventHandler.h:
55280         * rendering/RenderLayer.cpp:
55281         (WebCore::RenderLayer::~RenderLayer): Added a call to
55282         EventHandler::resizeLayerDestroyed() if the layer is in resize mode.
55284 2007-12-27  Collin Jackson  <webkit@collinjackson.com>
55286         Reviewed by Sam Weinig.
55288         http://bugs.webkit.org/show_bug.cgi?id=16539
55289         <rdar://problem/5659269>
55291         The same-origin check was missing in the implementation of 
55292         setTimeout, setInterval, addEventListener, and removeEventListener.
55294         Suppose <http://www.badguy.com/> contains an iframe to 
55295         <http://www.goodguy.com/>. Now www.badguy.com can steal
55296         www.goodguy.com cookies by running this code:
55298         setTimeout.call(frames[0], "alert(document.cookie)", 1000);
55300         This patch changes the behavior so that setTimeout to does 
55301         nothing and returns an undefined value if the caller is not
55302         permitted to script the window whose setTimeout method is being
55303         called. The same applies to setInterval, addEventListener, and 
55304         removeEventListener.
55306         Tests: http/tests/security/cross-frame-access-call.html
55308         * bindings/js/kjs_window.cpp:
55309         (KJS::WindowProtoFuncSetTimeout::callAsFunction)
55310         (KJS::WindowProtoFuncSetInterval::callAsFunction)
55311         (KJS::WindowProtoFuncAddEventListener::callAsFunction)
55312         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction)
55314 2007-12-27  Dan Bernstein  <mitz@apple.com>
55316         Reviewed by Dave Hyatt and Sam Weinig.
55318         - fix <rdar://problem/5605937> Inspector: Disclosure triangle not drawn in node's properties panel until click
55320         Test: fast/layers/add-layer-with-nested-stacking.html
55321         Test: fast/layers/remove-layer-with-nested-stacking.html
55323         * rendering/RenderLayer.cpp:
55324         (WebCore::RenderLayer::addChild): If the new child is overflow-only
55325         but has children of its own, dirty the stacking context's z-order lists
55326         since the grandchildren might need to be in them.
55327         (WebCore::RenderLayer::removeChild): Similarly for the old child.
55329 2007-12-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
55331         Reviewed by Alp Toker.
55333         http://bugs.webkit.org/show_bug.cgi?id=16353
55334         [GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)
55336         Added the flags mentioned in the bug only when doing 'debug'
55337         builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.
55339         * GNUmakefile.am:
55340         * WebCore.pro:
55342 2007-12-27  Dan Bernstein  <mitz@apple.com>
55344         Reviewed by Eric Seidel.
55346         - fix http://bugs.webkit.org/show_bug.cgi?id=16490
55347           ASSERT in ~FrameView while viewing/reloading WICD test case
55349         Test: fast/dynamic/paused-event-dispatch.html
55351         * page/FrameView.cpp:
55352         (WebCore::FrameView::~FrameView):
55353         (WebCore::FrameView::layout): Changed to always pause event dispatch and
55354         always resume event dispatch, regardless of whether the post-layout
55355         task timer is active. However, if it is active, assert that event
55356         dispatch is still paused.
55358 2007-12-27  Alexey Proskuryakov  <ap@webkit.org>
55360         Reviewed by Maciej.
55362         http://bugs.webkit.org/show_bug.cgi?id=14500
55363         need to be more generous about charset declaration with meta tag
55364         
55365         http://bugs.webkit.org/show_bug.cgi?id=12526
55366         <rdar://problem/4867183> Safari ignores encoding description "charset=Shift_JIS" in invalid html
55368         <rdar://problem/4892428> Unlike other browsers, WebKit ignores <meta> charset definitions outside the head
55370         <rdar://problem/5643774> REGRESSION: Text is garbled when clicking a link inside an Arabic website
55372         Tests: fast/encoding/ahram-org-eg.html
55373                fast/encoding/bandai-co-jp-releases.html
55374                fast/encoding/floraexpress-ru.html
55375                fast/encoding/hanarei-blog32-fc2-com.html
55376                fast/encoding/yahoo-mail.html
55378         * loader/TextResourceDecoder.cpp:
55379         (WebCore::TextResourceDecoder::checkForHeadCharset): Don't stop looking for <meta> until we've
55380         seen at least 512 bytes of input.
55382 2007-12-26  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
55384         Reviewed by Alp Toker.
55386         http://bugs.webkit.org/show_bug.cgi?id=16390
55387         Use autotools or GNU make as the build system for the GTK port
55389         * GNUmakefile.am: Added.
55391 2007-12-26  Alexey Proskuryakov  <ap@webkit.org>
55393         Reviewed by Sam Weinig.
55395         http://bugs.webkit.org/show_bug.cgi?id=16609
55396         Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic
55398         * manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).
55400 2007-12-26  Mark Rowe  <mrowe@apple.com>
55402         Windows build fix.
55404         * platform/Threading.h:
55406 2007-12-25  Rob Buis  <buis@kde.org>
55408         Reviewed by Eric.
55410         http://bugs.webkit.org/show_bug.cgi?id=15514
55411         <clipPath> with <use> not respected
55412         http://bugs.webkit.org/show_bug.cgi?id=16557
55413         SVG circle elements have been clipped away completely, instead of partially.
55415         Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.
55417         * svg/SVGClipPathElement.cpp:
55418         (WebCore::SVGClipPathElement::canvasResource):
55419         * svg/SVGStyledTransformableElement.h:
55420         (WebCore::SVGStyledTransformableElement::toClipPath):
55421         * svg/SVGUseElement.cpp:
55422         (WebCore::isDirectReference):
55423         (WebCore::SVGUseElement::toClipPath):
55424         * svg/SVGUseElement.h:
55426 2007-12-25  Sam Weinig  <sam@webkit.org>
55428         Reviewed by Eric Seidel.
55430         Clean up the files relating to NodeLists.
55432         * dom/ChildNodeList.cpp:
55433         (WebCore::ChildNodeList::ChildNodeList):
55434         (WebCore::ChildNodeList::length):
55435         (WebCore::ChildNodeList::item):
55436         (WebCore::ChildNodeList::nodeMatches):
55437         * dom/ChildNodeList.h:
55438         * dom/DynamicNodeList.cpp:
55439         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
55440         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
55441         (WebCore::DynamicNodeList::itemWithName):
55442         * dom/DynamicNodeList.h:
55443         (WebCore::DynamicNodeList::needsNotifications):
55444         * dom/NameNodeList.cpp:
55445         (WebCore::NameNodeList::NameNodeList):
55446         (WebCore::NameNodeList::rootNodeAttributeChanged):
55447         (WebCore::NameNodeList::nodeMatches):
55448         * dom/NameNodeList.h:
55449         * dom/NodeList.h:
55450         * dom/SelectorNodeList.h:
55452 2007-12-25  Sam Weinig  <sam@webkit.org>
55454         Fix non-mac builds.
55456         * WebCore.pro:
55457         * WebCore.vcproj/WebCore.vcproj:
55458         * WebCoreSources.bkl:
55460 2007-12-25  Sam Weinig  <sam@webkit.org>
55462         Rubber stamped by Eric Seidel.
55464         Move TagNodeList into its own file.
55466         * WebCore.xcodeproj/project.pbxproj:
55467         * dom/Node.cpp:
55468         * dom/TagNodeList.cpp: Copied from dom/Node.cpp.
55469         (WebCore::TagNodeList::TagNodeList):
55470         * dom/TagNodeList.h: Copied from dom/Node.cpp.
55472 2007-12-25  Sam Weinig  <sam@webkit.org>
55474         Reviewed by Eric Seidel.
55476         Simplify the NodeList architecture.
55477         - Rename recursiveItem() to item(), since it is not recursive.
55478         - Make recursiveLength() iterative and rename to length().
55479         - Remove now unneeded overrides of item() and length() that used 
55480           to call the recursive variants.
55482         * dom/ClassNodeList.cpp:
55483         * dom/ClassNodeList.h:
55484         * dom/DynamicNodeList.cpp:
55485         (WebCore::DynamicNodeList::length):
55486         (WebCore::DynamicNodeList::item):
55487         (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation 
55488         into the .cpp file since virtual methods can't be inlined.
55489         * dom/DynamicNodeList.h:
55490         * dom/NameNodeList.cpp:
55491         * dom/NameNodeList.h:
55492         * dom/Node.cpp:
55494 2007-12-25  Alp Toker  <alp@atoker.com>
55496         More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
55497         r28981.
55499         * WebCore.pro:
55500         * WebCore.vcproj/WebCore.vcproj:
55501         * WebCoreSources.bkl:
55503 2007-12-25  Alp Toker  <alp@atoker.com>
55505         Win build fix for breakage introduced in r28981.
55507         * WebCore.vcproj/WebCore.vcproj:
55509 2007-12-25  Alp Toker  <alp@atoker.com>
55511         Wx build fix for breakage introduced in r28981.
55513         * WebCoreSources.bkl:
55515 2007-12-25  Alp Toker  <alp@atoker.com>
55517         GTK+/Qt build fix for breakage introduced in r28981.
55519         * WebCore.pro:
55521 2007-12-25  David Smith  <catfish.man@gmail.com> and Sam Weinig  <sam@webkit.org>
55523         Reviewed by Oliver.
55524         
55525         - http://bugs.webkit.org/show_bug.cgi?id=16587
55526         Implement the most useful part of the W3C Selectors API.
55528         * WebCore.xcodeproj/project.pbxproj:
55529         * css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
55530         * dom/ChildNodeList.cpp:
55531         (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
55532         * dom/ChildNodeList.h:
55533         * dom/ClassNodeList.cpp:
55534         (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
55535         * dom/ClassNodeList.h:
55536         * dom/Document.idl: Add the new functions
55537         * dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
55538         (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
55539         (WebCore::DynamicNodeList::~DynamicNodeList):
55540         (WebCore::DynamicNodeList::recursiveLength):
55541         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
55542         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
55543         (WebCore::DynamicNodeList::recursiveItem):
55544         (WebCore::DynamicNodeList::itemWithName):
55545         (WebCore::DynamicNodeList::rootNodeChildrenChanged):
55546         (WebCore::DynamicNodeList::Caches::Caches):
55547         (WebCore::DynamicNodeList::Caches::reset):
55548         * dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
55549         (WebCore::DynamicNodeList::rootNodeAttributeChanged):
55550         * dom/Element.idl: Add the new functions
55551         * dom/NameNodeList.cpp: Change to being a DynamicNodeList
55552         (WebCore::NameNodeList::NameNodeList):
55553         * dom/NameNodeList.h:
55554         (WebCore::NameNodeList::rootNodeAttributeChanged):
55555         * dom/Node.cpp:
55556         (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
55557         (WebCore::Node::registerDynamicNodeList):
55558         (WebCore::Node::unregisterDynamicNodeList):
55559         (WebCore::Node::getElementsByName):
55560         (WebCore::Node::getElementsByClassName):
55561         (WebCore::Node::querySelector): new
55562         (WebCore::Node::querySelectorAll): new
55563         * dom/Node.h:
55564         * dom/NodeList.cpp: Removed.
55565         * dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
55566         (WebCore::NodeList::NodeList):
55567         (WebCore::NodeList::~NodeList):
55568         * dom/SelectorNodeList.cpp: Added.
55569         (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
55570         * dom/SelectorNodeList.h: Added.
55571         * dom/StaticNodeList.cpp: Added.
55572         (WebCore::StaticNodeList::length):
55573         (WebCore::StaticNodeList::item):
55574         (WebCore::StaticNodeList::itemWithName):
55575         * dom/StaticNodeList.h: Added.
55576         (WebCore::StaticNodeList::StaticNodeList):
55577         (WebCore::StaticNodeList::~StaticNodeList):
55579 2007-12-25  Mark Rowe  <mrowe@apple.com>
55581         Reviewed by Sam Weinig.
55583         Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
55584         http://bugs.webkit.org/show_bug.cgi?id=16596
55586         This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
55587         of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
55588         access to a single ThreadSafeShared object.
55590         The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.
55592         * platform/Threading.h:
55593         (WebCore::atomicIncrement):
55594         (WebCore::atomicDecrement):
55595         (WebCore::ThreadSafeShared::ThreadSafeShared):
55596         (WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
55597         (WebCore::ThreadSafeShared::deref): Ditto.
55598         (WebCore::ThreadSafeShared::hasOneRef):
55599         (WebCore::ThreadSafeShared::refCount):
55600         (WebCore::ThreadSafeShared::isThreadSafe):
55602 2007-12-24  Darin Adler  <darin@apple.com>
55604         * platform/text/PlatformString.h: Removed now-incorrect comment.
55605         Added a comment about copy().
55606         * platform/text/StringImpl.h: Added a comment about copy().
55608 2007-12-24  Darin Adler  <darin@apple.com>
55610         Reviewed by Maciej.
55612         - http://bugs.webkit.org/show_bug.cgi?id=16550
55613           make StringImpl immutable
55615         I tried to keep the changes to a minimum. In some cases there is
55616         room for optimization -- I didn't try to add in the "single ref count"
55617         optimizations and there might be a tiny bit more string copying than
55618         we had before.
55620         * WebCore.base.exp: Updated.
55622         * dom/CharacterData.cpp:
55623         (WebCore::CharacterData::appendData): Changed to use String since
55624         StringImpl doesn't have mutating functions any more.
55625         (WebCore::CharacterData::insertData): Ditto.
55626         (WebCore::CharacterData::deleteData): Ditto.
55627         (WebCore::CharacterData::replaceData): Ditto.
55628         * dom/Text.cpp:
55629         (WebCore::Text::splitText): Changed to use substring instead of
55630         remove since StringImpl does't have mutating functions any more.
55631         * editing/CompositeEditCommand.cpp:
55632         (WebCore::CompositeEditCommand::deleteInsignificantText): Changed
55633         to use String instead of StringImpl so we can use remove.
55635         * platform/text/PlatformString.h: Removed newUninitialized.
55636         Added append that takes a character pointer and length.
55638         * platform/text/String.cpp:
55639         (WebCore::String::insert): Added an implementation that does not
55640         rely on an underlying StringImpl function.
55641         (WebCore::String::append): Ditto.
55642         (WebCore::String::truncate): Ditto.
55643         (WebCore::String::remove): Ditto.
55644         (WebCore::String::charactersWithNullTermination): Added an
55645         implementation that uses the new StringImpl null termination feature,
55646         which does not require modifying a string.
55648         * platform/text/StringImpl.cpp:
55649         (WebCore::isSpace): Fix comment.
55650         (WebCore::StringImpl::StringImpl): Added a new constructor that makes
55651         a string with a trailing null character.
55652         (WebCore::StringImpl::substring): Marked const.
55653         (WebCore::StringImpl::replace): Marked const; had to add quite a few
55654         const_cast. Also rewrote one of these to work without modifying the
55655         existing string.
55657         * platform/text/StringImpl.h: Fixed a mistake where the empty string had
55658         m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
55659         for creating strings that have a trailing null character. Added a
55660         hasTerminatingNullCharacter function. Removed newUninitialized,
55661         charactersWithNullTermination, append, insert, truncate, and remove.
55662         Marked lots of other functions const.
55664         * platform/text/TextCodecLatin1.cpp:
55665         (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
55666         newUninitialized.
55667         * platform/text/TextCodecUTF16.cpp:
55668         (WebCore::TextCodecUTF16::decode): Ditto.
55669         * platform/text/TextCodecUserDefined.cpp:
55670         (WebCore::TextCodecUserDefined::decode): Ditto.
55672         * rendering/RenderStyle.cpp:
55673         (WebCore::RenderStyle::setContent): Changed to use String since
55674         StringImpl doesn't have mutating functions any more.
55676 2007-12-24  Alexey Proskuryakov  <ap@webkit.org>
55678         Reviewed by Oliver.
55680         Fix fast/events/arrow-keys-on-body.html, failing on Windows.
55682         * platform/win/KeyEventWin.cpp:
55683         (WebCore::isKeypadEvent):
55684         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
55685         Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).
55687 2007-12-23  Alexey Proskuryakov  <ap@webkit.org>
55689         Fix Debug and Release QTMovieWin bulds.
55691         * WebCore.vcproj/QTMovieWin.vcproj:
55692         * WebCore.vcproj/debug.vsprops:
55693         * WebCore.vcproj/debug_internal.vsprops:
55694         * WebCore.vcproj/release.vsprops:
55695         Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
55696         Build release import lib into \lib, not \bin.
55698 2007-12-23  Alp Toker  <alp@atoker.com>
55700         Reviewed by Holger Freyther.
55702         http://bugs.webkit.org/show_bug.cgi?id=15382
55703         [CAIRO] Canvas pattern support
55705         http://bugs.webkit.org/show_bug.cgi?id=16577
55706         Merge Cairo enhancements from Apollo project
55708         Add support for canvas patterns.
55710         Make Image::nativeImageForCurrentFrame() public.
55712         Fix some typos along the way.
55714         The globalAlpha canvas fixes are not included in this patch as
55715         they're slightly more intrusive and may conflict conceptually with
55716         GraphicsContext::setAlpha().
55718         * html/CanvasPattern.cpp:
55719         (WebCore::CanvasPattern::CanvasPattern):
55720         (WebCore::CanvasPattern::~CanvasPattern):
55721         (WebCore::CanvasPattern::createPattern):
55722         * html/CanvasPattern.h:
55723         (WebCore::CanvasPattern::platformImage):
55724         * html/CanvasRenderingContext2D.cpp:
55725         (WebCore::CanvasRenderingContext2D::setShadow):
55726         (WebCore::CanvasRenderingContext2D::applyShadow):
55727         (WebCore::CanvasRenderingContext2D::drawImage):
55728         (WebCore::CanvasRenderingContext2D::createPattern):
55729         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
55730         (WebCore::CanvasRenderingContext2D::applyFillPattern):
55731         * platform/graphics/Image.h:
55732         (WebCore::Image::nativeImageForCurrentFrame):
55734 2007-12-23  Kevin Ollivier  <kevino@theolliviers.com>
55736         Reviewed by Eric Seidel.
55738         Remove getWxBitmap as we have nativeImageForCurrentFrame now,
55739         and don't draw a border in fillRect.
55741         * platform/graphics/BitmapImage.h:
55742         * platform/graphics/wx/GraphicsContextWx.cpp:
55743         (WebCore::GraphicsContext::fillRect):
55744         * platform/graphics/wx/ImageWx.cpp:
55746 2007-12-23  Alp Toker  <alp@atoker.com>
55748         Reviewed by Holger Freyther.
55750         http://bugs.webkit.org/show_bug.cgi?id=16577
55751         Merge Cairo enhancements from Apollo project
55753         This patch is based on initial merging work by Brent Fulgham. Adobe's
55754         code has been modified in a few places to better suit the existing
55755         coding style.
55757         Implement more clipping and drawing functions.
55759         Save and restore the fill rule manually when clipping.
55761         Avoid image surface creation when the image buffer has height zero.
55763         * platform/graphics/cairo/GraphicsContextCairo.cpp:
55764         (WebCore::GraphicsContext::clip):
55765         (WebCore::GraphicsContext::addInnerRoundedRectClip):
55766         (WebCore::GraphicsContext::addPath):
55767         (WebCore::GraphicsContext::clipOut):
55768         (WebCore::GraphicsContext::clipOutEllipseInRect):
55769         (WebCore::GraphicsContext::fillRoundedRect):
55770         * platform/graphics/cairo/ImageSourceCairo.cpp:
55771         (WebCore::ImageSource::createFrameAtIndex):
55773 2007-12-23  Nikolas Zimmermann  <zimmermann@kde.org>
55775         Reviewed by Mark.
55777         Fix wrong placed ifdef - wrapping SVGDefsElement, instead of SVGDefinitionSrcElement in SVG_FONTS block.
55779         * bindings/objc/DOM.mm:
55780         (WebCore::createElementClassMap):
55782 2007-12-22  Alp Toker  <alp@atoker.com>
55784         GTK+ build fix
55786         GTK_TARGET_OTHER_APP is not available in older GTK+ versions. Pass
55787         empty target flags for now.
55789         Check GTK+, not GLib versions, since they are different.
55791         * platform/gtk/PasteboardGtk.cpp:
55792         (WebCore::Pasteboard::documentFragment):
55794 2007-12-22  Luca Bruno  <lethalman88@gmail.com>
55796         Reviewed by Alp Toker.
55798         http://bugs.webkit.org/show_bug.cgi?id=16311
55799         [Gtk] Copy rich text to clipboard as text/plain and text/html.
55801         Hook into the WebView to get the correct clipboard object on the
55802         appropriate display. This is necessary because GTK+ does not have
55803         global clipboards.
55805         * WebCore.pro:
55806         * platform/Pasteboard.h:
55807         (WebCore::Pasteboard::setHelper): added for GTK
55808         (WebCore::Pasteboard::m_helper): private added for GTK
55809         * platform/gtk/PasteboardGtk.cpp:
55810         (WebCore::PasteboardSelectionData): added to support GTK selection data callback
55811         (WebCore::clipboard_get_contents_cb): added
55812         (WebCore::clipboard_clear_contents_cb): added
55813         (WebCore::Pasteboard::~Pasteboard):
55814         (WebCore::Pasteboard::setHelper):
55815         (WebCore::Pasteboard::writeSelection): copy rich text
55816         (WebCore::Pasteboard::documentFragment): 
55817         (WebCore::Pasteboard::plainText): 
55818         * platform/gtk/PasteboardHelper.h: Added.
55820 2007-12-22  Nikolas Zimmermann  <zimmermann@kde.org>
55822         Reviewed by Oliver.
55824         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15966 (Crash in SVGRootInlineBox::walkTextChunks() on mouse hover)
55826         Add new isSVGRootInlineBox() function to InlineBox to be able to differentiate between RootInlineBox/SVGRootInlineBox.
55827         SVG assumed it's root inline box (for <text> elements) is always of type SVGRootInlineBox, which is not the case
55828         for HTML text in <foreignObject>. Text selection doesn't work so far as line box offsets are wrong - which is visible
55829         in Web Inspector.
55831         * rendering/InlineBox.h:
55832         (WebCore::InlineBox::isSVGRootInlineBox):
55833         * rendering/SVGInlineTextBox.cpp:
55834         (WebCore::SVGInlineTextBox::svgRootInlineBox):
55835         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
55836         (WebCore::SVGInlineTextBox::selectionRect):
55837         * rendering/SVGRenderTreeAsText.cpp:
55838         (WebCore::writeSVGInlineTextBox):
55839         * rendering/SVGRootInlineBox.h:
55840         (WebCore::SVGRootInlineBox::isSVGRootInlineBox):
55842 2007-12-22  Alp Toker  <alp@atoker.com>
55844         LOW_BANDWIDTH_DISPLAY build fix
55846         Track recent KURL DeprecatedString changes.
55848         * loader/FrameLoader.cpp:
55849         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
55851 2007-12-22  Dan Bernstein  <mitz@apple.com>
55853         - Windows build fix
55855         * WebCore.vcproj/WebCore.vcproj:
55857 2007-12-22  Xan Lopez  <xan@gnome.org>
55859         Reviewed by Alp Toker.
55861         Add missing return 0 to fix a compile warning.
55863         * page/gtk/FrameGtk.cpp:
55864         (WebCore::Frame::createScriptInstanceForWidget):
55866 2007-12-21  Antti Koivisto  <antti@apple.com>
55868         Reviewed by Darin, Adam and Steve.
55870         Add media playback support for Windows.
55871         
55872         The implementation uses low level QuickTime API. DLL is
55873         needed to work around CF use in both WebKit and QuickTime.
55874         
55875         This makes Windows build depend on the QuickTime SDK 
55876         
55877         http://developer.apple.com/quicktime/download/
55878         
55879         but not QuickTime itself.
55880         
55881         QTMovieWinTimer contains some copy code from SharedTimerWin. It
55882         is used in the QuickTime access DLL which can't use WebCore
55883         SharedTimer due to dependency problems.
55885         * WebCore.vcproj/QTMovieWin.vcproj: Added.
55886         * WebCore.vcproj/WebCore.vcproj:
55887         * WebCore.vcproj/build-generated-files.sh:
55888         * html/HTMLMediaElement.cpp:
55889         (WebCore::HTMLMediaElement::setSrc):
55890         * platform/graphics/MediaPlayer.cpp:
55891         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: Added.
55892         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
55893         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
55894         (WebCore::MediaPlayerPrivate::load):
55895         (WebCore::MediaPlayerPrivate::play):
55896         (WebCore::MediaPlayerPrivate::pause):
55897         (WebCore::MediaPlayerPrivate::duration):
55898         (WebCore::MediaPlayerPrivate::currentTime):
55899         (WebCore::MediaPlayerPrivate::seek):
55900         (WebCore::MediaPlayerPrivate::doSeek):
55901         (WebCore::MediaPlayerPrivate::cancelSeek):
55902         (WebCore::MediaPlayerPrivate::seekTimerFired):
55903         (WebCore::MediaPlayerPrivate::setEndTime):
55904         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
55905         (WebCore::MediaPlayerPrivate::endPointTimerFired):
55906         (WebCore::MediaPlayerPrivate::paused):
55907         (WebCore::MediaPlayerPrivate::seeking):
55908         (WebCore::MediaPlayerPrivate::naturalSize):
55909         (WebCore::MediaPlayerPrivate::hasVideo):
55910         (WebCore::MediaPlayerPrivate::setVolume):
55911         (WebCore::MediaPlayerPrivate::setMuted):
55912         (WebCore::MediaPlayerPrivate::setRate):
55913         (WebCore::MediaPlayerPrivate::dataRate):
55914         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
55915         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
55916         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
55917         (WebCore::MediaPlayerPrivate::bytesLoaded):
55918         (WebCore::MediaPlayerPrivate::totalBytesKnown):
55919         (WebCore::MediaPlayerPrivate::totalBytes):
55920         (WebCore::MediaPlayerPrivate::cancelLoad):
55921         (WebCore::MediaPlayerPrivate::updateStates):
55922         (WebCore::MediaPlayerPrivate::didEnd):
55923         (WebCore::MediaPlayerPrivate::setRect):
55924         (WebCore::MediaPlayerPrivate::setVisible):
55925         (WebCore::MediaPlayerPrivate::paint):
55926         (WebCore::MediaPlayerPrivate::getSupportedTypes):
55927         (WebCore::MediaPlayerPrivate::movieEnded):
55928         (WebCore::MediaPlayerPrivate::movieLoadStateChanged):
55929         (WebCore::MediaPlayerPrivate::movieTimeChanged):
55930         (WebCore::MediaPlayerPrivate::movieNewImageAvailable):
55931         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: Added.
55932         (WebCore::MediaPlayerPrivate::networkState):
55933         (WebCore::MediaPlayerPrivate::readyState):
55934         * platform/graphics/win/QTMovieWin.cpp: Added.
55935         (updateTaskTimer):
55936         (QTMovieWinPrivate::QTMovieWinPrivate):
55937         (QTMovieWinPrivate::~QTMovieWinPrivate):
55938         (taskTimerFired):
55939         (QTMovieWinPrivate::startTask):
55940         (QTMovieWinPrivate::endTask):
55941         (QTMovieWinPrivate::task):
55942         (QTMovieWinPrivate::registerDrawingCallback):
55943         (QTMovieWinPrivate::drawingComplete):
55944         (QTMovieWinPrivate::createGWorld):
55945         (QTMovieWinPrivate::setSize):
55946         (QTMovieWinPrivate::deleteGWorld):
55947         (QTMovieWin::QTMovieWin):
55948         (QTMovieWin::~QTMovieWin):
55949         (QTMovieWin::play):
55950         (QTMovieWin::pause):
55951         (QTMovieWin::rate):
55952         (QTMovieWin::setRate):
55953         (QTMovieWin::duration):
55954         (QTMovieWin::currentTime):
55955         (QTMovieWin::setCurrentTime):
55956         (QTMovieWin::setVolume):
55957         (QTMovieWin::setMuted):
55958         (QTMovieWin::dataSize):
55959         (QTMovieWin::maxTimeLoaded):
55960         (QTMovieWin::loadState):
55961         (QTMovieWin::getNaturalSize):
55962         (QTMovieWin::setSize):
55963         (QTMovieWin::setVisible):
55964         (QTMovieWin::paint):
55965         (QTMovieWin::load):
55966         (movieDrawingCompleteProc):
55967         (initializeSupportedTypes):
55968         (QTMovieWin::countSupportedTypes):
55969         (QTMovieWin::getSupportedType):
55970         (QTMovieWin::initializeQuickTime):
55971         (DllMain):
55972         * platform/graphics/win/QTMovieWin.h: Added.
55973         * platform/graphics/win/QTMovieWinTimer.cpp: Added.
55974         (TimerWindowWndProc):
55975         (initializeOffScreenTimerWindow):
55976         (setSharedTimerFiredFunction):
55977         (timerFired):
55978         (setSharedTimerFireDelay):
55979         (stopSharedTimer):
55980         (setSharedTimerInstanceHandle):
55981         (systemTime):
55982         * platform/graphics/win/QTMovieWinTimer.h: Added.
55983         * rendering/RenderMedia.cpp:
55984         (WebCore::MediaControlPlayButtonElement::update):
55986 2007-12-21  Brent Fulgham  <bfulgham@gmail.com>
55988         Reviewed by Alp Toker.
55990         http://bugs.webkit.org/show_bug.cgi?id=16558
55991         Cairo WebCore Rendering Fails on arc drawing
55993         Fix for bug reported (and patched) by Apollo team in which
55994         arcs were draw in reverse (resulting in inverted images).
55995         Review of the source found that the 'clockwise' term was
55996         actually meant to mean 'anticlockwise' so the IDL and
55997         supporting classes have been changed to match this. 
55999         * html/CanvasRenderingContext2D.cpp:
56000         (WebCore::CanvasRenderingContext2D::arc):
56001         * html/CanvasRenderingContext2D.idl:
56002         * platform/graphics/cairo/PathCairo.cpp:
56003         (WebCore::Path::addArc):
56004         (WebCore::Path::addEllipse):
56005         * platform/graphics/Path.h:
56007 2007-12-21  Alexey Proskuryakov  <ap@webkit.org>
56009         Reviewed by Oliver.
56011         <rdar://problem/5629995> Incorrect display of Danish characters on web site.
56013         Test: http/tests/xmlhttprequest/response-encoding.html
56015         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveData):
56016         Default to UTF-8 for HTML, too. It's unfortunate that we have to use different
56017         rules for main content and XHR responses, but this matches both IE and Firefox.
56019 2007-12-20  Jon Honeycutt  <jhoneycutt@apple.com>
56021         Reviewed by Kevin Decker.
56023         <rdar://problem/5655797> REGRESSION(304-306A10) Safari does not find
56024         shockwave plugin on freshly installed OS
56026         Look for Director plugin in its native directory.
56028         * plugins/win/PluginDatabaseWin.cpp:
56029         (WebCore::PluginDatabaseWin::getPluginsInPaths): The Director plugin
56030         doesn't start with "np," so special case its filename.
56031         (WebCore::addMacromediaPluginPaths): Add Flash and "Shockwave 10"
56032         directories to the plugin paths.
56033         (WebCore::PluginDatabaseWin::defaultPluginPaths):
56035 2007-12-20  Peter Kasting  <zerodpx@gmail.com>
56037         Reviewed by Alp Toker.
56039         http://bugs.webkit.org/show_bug.cgi?id=16508
56040         Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly
56041         decoded transparent areas.
56043         * platform/image-decoders/gif/GIFImageDecoder.cpp:
56044         (WebCore::GIFImageDecoder::haveDecodedRow):
56045         * platform/image-decoders/gif/GIFImageDecoder.h:
56046         * platform/image-decoders/gif/GIFImageReader.cpp:
56047         (GIFImageReader::output_row):
56049 2007-12-20  Justin Garcia  <justin.garcia@apple.com>
56051         Reviewed by Oliver Hunt.
56053         <rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection
56054         
56055         Still need to fix similar issues with the other operations that iterate 
56056         over selected paragraphs, like FormatBlock, Indent and Outdent (<rdar://problem/5658933>).
56058         * editing/IndentOutdentCommand.cpp:
56059         (WebCore::IndentOutdentCommand::indentRegion): Added a FIXME.
56060         * editing/IndentOutdentCommand.h: Removed an unused function.
56061         * editing/InsertListCommand.cpp:
56062         (WebCore::InsertListCommand::modifyRange): 
56063         Renamed visibleStart to startOfSelection and visibleEnd to endOfSelection.
56064         Call the new selectionForParagraphIteration, which a) prevents operations like this
56065         one from being performed on a table that isn't fully selected (where the selection
56066         starts just before the table and ends inside it), and b) helps prevent paragraph
56067         iteration from going past the end of the selection.
56068         Call the new startOfNextParagraph, instead of using endOfParagraph(v).next(),
56069         since when v is in the last paragraph of the last cell of a table, that expression 
56070         will return the position after the table, not the start of the next paragraph.
56071         * editing/htmlediting.cpp:
56072         (WebCore::enclosingListChild): Don't go above a table cell, so that list operations
56073         take effect inside the table cell where they are performed.
56074         (WebCore::selectionForParagraphIteration): Added, see above.
56075         (WebCore::indexForVisiblePosition): Moved from IndentOutdentCommand.cpp.
56076         * editing/htmlediting.h:
56077         * editing/visible_units.cpp:
56078         (WebCore::startOfNextParagraph): Added, see above.
56079         * editing/visible_units.h:
56080         * editing/TextIterator.h:
56081         (WebCore::TextIterator::exitNode): Added a FIXME.
56083 2007-12-20  Alp Toker  <alp@atoker.com>
56085         Rubber-stamped by Maciej.
56087         http://bugs.webkit.org/show_bug.cgi?id=16542
56088         [GTK] Text is missing with old Pango version
56090         Back out commits r28880, r28876, r28865, r28864 which added Pango font
56091         selection support. These changes caused a regression where no text was
56092         displayed with older Pango versions.
56094         * platform/graphics/gtk/FontCacheGtk.cpp:
56095         (WebCore::FontCache::fontExists):
56096         * platform/graphics/gtk/FontDataGtk.cpp:
56097         (WebCore::FontData::platformDestroy):
56098         (WebCore::FontData::containsCharacters):
56099         * platform/graphics/gtk/FontPlatformData.h:
56100         (WebCore::FontPlatformData::FontPlatformData):
56101         (WebCore::FontPlatformData::hash):
56102         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
56103         (WebCore::FontPlatformData::FontPlatformData):
56104         (WebCore::FontPlatformData::init):
56105         (WebCore::FontPlatformData::~FontPlatformData):
56106         (WebCore::FontPlatformData::isFixedPitch):
56107         (WebCore::FontPlatformData::operator==):
56108         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
56109         (WebCore::GlyphPage::fill):
56111 2007-12-20  Timothy Hatcher  <timothy@apple.com>
56113         Reviewed by Sam Weinig.
56115         <rdar://problem/5604897> Double-clicking on JavaScript console error
56116         won't show the line where it occurred
56118         Make the URLs clickable in the console, since double clicking is used for
56119         word text selection. Makes the word "line" localizable. Messages that don't
56120         have a URL will no longer print "undefined". Messages that have a line number
56121         less than or equal to 0 will no longer be printed.
56123         * English.lproj/InspectorLocalizedStrings.js: Add "%s (line %d)".
56124         * page/inspector/ConsolePanel.js: Tweak how the DOM nodes are created
56125           and change the click handler to look for a link with the
56126           "console-message-url" class name.
56127         * page/inspector/SourcePanel.js: Call setupSourceFrameIfNeeded() if a
56128           line row is needed. 
56129         * page/inspector/inspector.css: Update the look of the URL in the console.
56131 2007-12-20  Adam Barth  <hk9565@gmail.com>
56133         Reviewed and landed by Sam Weinig.
56135         http://bugs.webkit.org/show_bug.cgi?id=15313
56136         <rdar://problem/5514516>
56138         The same-origin check was incorrect in two cases (both fixed in this
56139         patch):
56141         A) If both the source and the target have set their document.domain
56142            to the same value, the protocol must also match in order for
56143            access to be allowed.  Without this requirement, the browser is
56144            vulnerable to the following attack:
56146            1) Suppose there is an HTTPS site (www.example.com) that sets
56147               document.domain = "example.com".
56148            2) A network attacker redirects the browser to http://www.example.com/
56149               a) injects script to set document.domain = "example.com", and
56150               b) opens a window to https://www.example.com/
56151            3) Now the network attacker can inject script into the HTTPS page,
56152               stealing cookies and issuing banking transactions.
56154         B) If only one of the source and target has set document.domain, then
56155            access should be denied.  With this behavior, the browser is
56156            vulnerable to the following attack:
56158            1) Suppose http://foo.example.com/ opens an iframe to
56159               http://foo.example.com/frame.html that
56160               a) sets document.domain = "example.com", and
56161               b) opens an iframe to http://bar.example.com/
56162               This is a common usage of document.domain for cross-domain
56163               communication, see for example:
56164                 http://www.collinjackson.com/research/papers/fp801-jackson.pdf
56165            2) The inner-most iframe, which is from bar.example.com, sets
56166               document.domain = "example.com".
56167            3) Now the inner-most iframe can inject script into the middle
56168               iframe (say via document.write).  This bar.example.com script
56169               now has access to the outer-most frame (from foo.example.com).
56171         Both these changes cause WebKit to match the behavior of Firefox 2 and
56172         IE6 in these cases.  This patch includes regression tests for both
56173         issues.
56175         Internet Explorer 7 and Opera 9 are more strict in that they require
56176         the port numbers to match when both pages have document.domain set.
56177         Opera 9 allows access when only one page has set document.domain, but
56178         this is a security vulnerability.
56180         Tests: http/tests/security/cross-frame-access-child-explicit-domain.html
56181                http/tests/security/cross-frame-access-parent-explicit-domain.html
56183         * bindings/js/kjs_window.cpp:
56184         (KJS::createWindow):
56185         (KJS::Window::allowsAccessFrom):
56186         * dom/Document.cpp:
56187         (WebCore::Document::domain):
56188         (WebCore::Document::setDomain):
56189         (WebCore::Document::initSecurityOrigin):
56190         * dom/Document.h:
56191         (WebCore::Document::securityOrigin):
56192         * loader/FrameLoader.cpp:
56193         (WebCore::FrameLoader::begin):
56194         (WebCore::FrameLoader::checkCallImplicitClose):
56195         (WebCore::FrameLoader::shouldAllowNavigation):
56196         * platform/SecurityOrigin.cpp:
56197         (WebCore::SecurityOrigin::setForURL):
56198         (WebCore::SecurityOrigin::createForFrame):
56199         (WebCore::SecurityOrigin::canAccess):
56200         * platform/SecurityOrigin.h:
56201         (WebCore::SecurityOrigin::domain):
56202         * storage/Database.cpp:
56203         (WebCore::Database::openDatabase):
56204         (WebCore::Database::Database):
56205         (WebCore::Database::securityOriginData):
56206         * storage/Database.h:
56207         (WebCore::Database::databaseDebugName):
56208         * storage/DatabaseTracker.cpp:
56209         (WebCore::DatabaseTracker::canEstablishDatabase):
56210         * storage/SQLTransaction.cpp:
56211         (WebCore::SQLTransaction::postflightAndCommit):
56212         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
56214 2007-12-20  Rodney Dawes  <dobey@wayofthemonkey.com>
56216         Reviewed by Darin Adler.
56218         Define XP_UNIX when building with plugins on X11.
56219         Use new npruntime_internal.h instead of npruntime.h.
56220         http://bugs.webkit.org/show_bug.cgi?id=15669
56222         * ForwardingHeaders/bindings/npruntime_internal.h
56223         * WebCore.pro:
56224         * html/HTMLPlugInElement.h:
56226 2007-12-19  johnnyding.webkit  <johnnyding.webkit@gmail.com>
56228         Reviewed by Alexey. Landed by Stephanie.
56230         - fix http://bugs.webkit.org/show_bug.cgi?id=16179 | <rdar://problem/5619399>
56231           Any attribute name start with a unicode which like #xx00(x could be any hex number[0-9a-f]) will cause HTMLTokenizer parse error
56232           Actually any unicode characters which great than 255 in attribute name will cause Webkit parse the attribute name wrong. So after comparing 
56233           the same scenario in IE 6/7, FireFox 2/3, Opera, we should treat those characters as part of attribute name.
56236         * html/HTMLTokenizer.cpp:
56237         (WebCore::HTMLTokenizer::parseEntity): Handle Unicode Entity Name by using ASCII version of findEntity.
56238         (WebCore::HTMLTokenizer::parseTag): Let type of ptr match type of cBuffer.
56239         * html/HTMLTokenizer.h: Change type of cBuffer from char to UChar.
56241 2007-12-20  Eric Seidel  <eric@webkit.org>
56243         Reviewed by Nikolas Zimmermann.
56245         WebKit claims to support SVG feature strings it shouldn't
56246         http://bugs.webkit.org/show_bug.cgi?id=15480
56248         * dom/DOMImplementation.cpp:
56249         (WebCore::isSVG10Feature):
56250         (WebCore::isSVG11Feature):
56252 2007-12-20  John Sullivan  <sullivan@apple.com>
56254         Reviewed by Oliver and Geoff
56255         
56256         - fix <rdar://problem/5536858> Yellow highlight for find results is sometimes shorter 
56257           than white "hole" behind it
56259         * rendering/RenderText.cpp:
56260         (WebCore::RenderText::addLineBoxRects):
56261         respect useSelectionHeight in all cases; we were only respecting it in one of the two cases
56263 2007-12-20  Dan Bernstein  <mitz@apple.com>
56265         Reviewed by Darin Adler.
56267         - fix <rdar://problem/5656368> REGRESSION(3.0.4-ToT): Acid2 test fails to render anything
56269         * platform/win/ScrollViewWin.cpp:
56270         (WebCore::ScrollView::maximumScroll): Changed back to return the maximum
56271         scroll offsets even if scrolling is not allowed, because navigation and
56272         scrollTo should still work.
56273         (WebCore::ScrollView::wheelEvent): Added early return if scrolling is
56274         not allowed.
56276 2007-12-17  Tony Chang  <idealisms@gmail.com>
56278         Reviewed by Darin.
56280         - Fix for http://bugs.webkit.org/show_bug.cgi?id=16479
56281           text selection does not always begin at mouse down point
56282           Reset the m_dragSrc object on mouse down on all platforms.
56284         Test: fast/text/reset-drag-on-mouse-down.html
56286         * page/EventHandler.cpp:
56287         (WebCore::EventHandler::handleMousePressEvent):
56288         * page/mac/EventHandlerMac.mm:
56289         (WebCore::EventHandler::mouseDown):
56291 2007-12-19  Geoffrey Garen  <ggaren@apple.com>
56293         Reviewed by Oliver Hunt.
56295         Build support:
56296         * ForwardingHeaders/kjs/SymbolTable.h: Added.
56297         * ForwardingHeaders/wtf/VectorTraits.h: Added.
56299         * bindings/js/JSDOMWindowCustom.cpp:
56300         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Replaced use of
56301         getDirectLocation with getOwnPropertySlot. getDirectLocation is no
56302         longer valid, since global declarations are not stored in the property
56303         map.
56305         (WebCore::JSDOMWindow::customPut): Replaced use of JSObject::put with
56306         JSGlobalObject::put. JSObject::put is no longer valid, since global
56307         declarations are not stored in the property map.
56309         * bindings/js/kjs_window.cpp: Replaced JSObject:: calls with Base::
56310         calls, since JSObject is not our base class. This was always a bug, but
56311         the bug is even more apparent after some of my changes.
56313         (KJS::Window::clear): Removed call to clearProperties because
56314         JSGlobalObject::reset takes care of that now.
56316         * history/CachedPage.cpp:
56317         * history/CachedPage.h: Added support for saving a symbol table and
56318         localStorage to the page cache, and restoring it.
56320 2007-12-19  Dan Bernstein  <mitz@apple.com>
56322         Reviewed by Darin Adler and Dave Hyatt.
56324         - Substitute the user's preferred standard font for an unknown primary
56325           font before falling back on the platform's last resort font
56327         Cannot be tested in DumpRenderTree because it sets the standard font to
56328         Times, which is also the hard-coded last resort font on Mac.
56330         * css/CSSFontSelector.cpp:
56331         (WebCore::CSSFontSelector::getFontData): Changed the early bail out
56332         condition to allow getting generic font families from settings even if
56333         there are not @font-face rules. Fixed a typo that mapped fantasy to
56334         cursive. Added a mapping from -webkit-standard to the standard family.
56335         * css/CSSStyleSelector.cpp:
56336         (WebCore::CSSStyleSelector::CSSStyleSelector): Changed to always create
56337         a font selector.
56338         (WebCore::CSSRuleSet::addRulesFromSheet):
56339         (WebCore::CSSStyleSelector::applyProperty): Changed to always use the
56340         font selector.
56341         * css/CSSStyleSelector.h:
56342         (WebCore::CSSStyleSelector::fontSelector):
56343         * platform/graphics/FontCache.cpp:
56344         (WebCore::FontCache::getFontData): Try the user's preferred standard
56345         font before the platform's last resort font.
56347 2007-12-19  Sven Herzberg  <sven@imendio.com>
56349         Reviewed by Alp Toker.
56351         Scaled font destruction takes place in FontData::platformDestroy(). No
56352         need to do it in FontPlatformData::~FontPlatformData().
56354         Destroying platform data in platformDestroy() is a convention we
56355         borrow from the Mac and Win ports.
56357         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
56359 2007-12-19  Alice Liu  <alice.liu@apple.com>
56361         build fix (Windows)
56363         Changed uint to unsigned int.  uint caused Windows build breakage
56365         * page/Page.cpp:
56366         (WebCore::Page::markAllMatchesForText):
56367         * page/Page.h:
56369 2007-12-19  Christian Dywan  <christian@twotoasts.de> 
56371         Reviewed by Alp Toker.
56373         http://bugs.webkit.org/show_bug.cgi?id=16222
56374         [GTK] Implement inline search and highlighting of matching strings.
56376         Implement search and highlighting logic directly in WebCore.
56378         * page/Page.cpp:
56379         (WebCore::incrementFrame):
56380         (WebCore::Page::findString):
56381         (WebCore::Page::markAllMatchesForText):
56382         (WebCore::Page::unmarkAllTextMatches):
56383         * page/Page.h:
56385 2007-12-19  Geoffrey Garen  <ggaren@apple.com>
56387         Reviewed by Sam Weinig, Dan Bernstein.
56389         Tiger build fix: restored some graphics code still needed on Tiger.
56391         * platform/graphics/GraphicsTypes.h:
56392         * platform/graphics/cg/GraphicsContextCG.cpp:
56393         * platform/graphics/mac/GraphicsContextMac.mm:
56394         (WebCore::GraphicsContext::setCompositeOperation):
56396 2007-12-19  Alp Toker  <alp@atoker.com>
56398         Build fix for Pango < 1.18.0 breakage introduced in r28864. Use Fc and
56399         the Pango backend API in these cases.
56401         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
56402         (WebCore::FontPlatformData::FontPlatformData):
56403         (WebCore::FontPlatformData::~FontPlatformData):
56405 2007-12-19  Alice Liu  <alice.liu@apple.com>
56407         Reviewed by Darin.
56409         Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
56410         on Geico.com WebCore::Document::inPageCache()
56412         Calling Node::willRemove on the focusedNode would immediately tell the document to remove
56413         the focused node, and trigger JS events.  This means that the document is mutated while
56414         the engine is trying to tell all child nodes that it's about to removed.  To avoid
56415         crashing, we need to hold off on mutating the document until node traversal is finished.
56417         * dom/ContainerNode.cpp:
56418         (WebCore::ContainerNode::removeChild):
56419         (WebCore::ContainerNode::removeChildren):
56420         * dom/Node.cpp:
56421         * dom/Node.h:
56422         (WebCore::Node::willRemove):
56423         * loader/FrameLoader.cpp:
56424         (WebCore::FrameLoader::clear):
56426 2007-12-19  Andre Boule  <aboule@apple.com>
56428         Reviewed by Dan Bernstein.
56430         Test: fast/canvas/canvas-composite.html
56432         Fix for:
56433         <rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode
56435         This fix makes setCompositeOperation consistent across all platforms that use CG.
56437         The following compositing modes don't pass however that is covered by another bug:
56438         source-in
56439         source-out
56440         destination-in
56441         destination-atop
56442         copy
56443         <rdar://problem/5651783> Some canvas tag compositing modes don't render correctly
56445         * platform/graphics/GraphicsTypes.h:
56446         * platform/graphics/cg/GraphicsContextCG.cpp:
56447         (WebCore::GraphicsContext::setCompositeOperation):
56448         * platform/graphics/mac/GraphicsContextMac.mm:
56449         * platform/win/GraphicsContextWin.cpp:
56451 2007-12-19  Dan Bernstein  <mitz@apple.com>
56453         Reviewed by Dave Hyatt.
56455         - fix <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page
56457         Test: fast/dynamic/subtree-boundary-percent-height.html
56459         * rendering/RenderObject.cpp:
56460         (WebCore::objectIsRelayoutBoundary): Do not allow overflows with
56461         percent heights because sometimes they compute to 'auto'.
56463 2007-12-19  Sam Weinig  <sam@webkit.org>
56465         Reviewed by Maciej.
56467         http://bugs.webkit.org/show_bug.cgi?id=16511
56468         Speed up ClassNodeList and NamedNodeList by using the caching mechanism employed by ChildNodeList.
56469         - This give a ~2.15x speedup on the native test @ http://ejohn.org/apps/classname/
56471         * dom/ChildNodeList.cpp: Use the caching NodeList constructor to turn on caching.
56472         (WebCore::ChildNodeList::ChildNodeList):
56473         * dom/ClassNodeList.cpp:
56474         (WebCore::ClassNodeList::ClassNodeList):
56475         * dom/ClassNodeList.h:
56477         Move getElementsByName and getElementsByClassName to Node so they
56478         can use easily employ the caching already used by ChildNodeLists.  In the case of 
56479         getElementsByClassName, this reduces code duplication in Element as well
56480         * dom/Document.cpp:
56481         * dom/Document.h:
56483         Move getElementsByClassName to Node.
56484         * dom/Element.cpp:
56485         * dom/Element.h:
56487         * dom/NameNodeList.cpp: Use the caching NodeList constructor to turn on caching.
56488         (WebCore::NameNodeList::NameNodeList):
56489         (WebCore::NameNodeList::item):
56490         * dom/NameNodeList.h:
56492         Add maps of caches for ClassNodeLists and NameNodeList to NodeListsNodeData.
56493         * dom/Node.cpp:
56494         (WebCore::TagNodeList::TagNodeList):
56495         (WebCore::Node::Node):
56496         (WebCore::Node::~Node):
56497         (WebCore::Node::childNodes):
56498         (WebCore::Node::registerNodeList):
56499         (WebCore::Node::getElementsByName):
56500         (WebCore::Node::getElementsByClassName):
56501         * dom/Node.h: Make m_nodeLists an OwnPtr.  Moved getElementsByName and getElementsByClassName here
56503         Allow subclasses to choose whether they want to receive the notifications using a new bit.
56504         * dom/NodeList.cpp:
56505         (WebCore::NodeList::NodeList):
56506         * dom/NodeList.h:
56507         (WebCore::NodeList::needsNotifications):
56509 2007-12-19  Dave Hyatt  <hyatt@apple.com>
56511         Add support for GDI text rendering to WebKit.
56512       
56513         Reviewed by mitz
56514         
56515         * css/CSSStyleSelector.cpp:
56516         (WebCore::CSSStyleSelector::applyProperty):
56517         * dom/Document.cpp:
56518         (WebCore::Document::recalcStyle):
56519         * page/Settings.cpp:
56520         (WebCore::Settings::setFontRenderingMode):
56521         (WebCore::Settings::fontRenderingMode):
56522         * page/Settings.h:
56523         * platform/graphics/Font.h:
56524         (WebCore::Font::renderingMode):
56525         * platform/graphics/FontCache.cpp:
56526         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
56527         (WebCore::FontPlatformDataCacheKey::operator==):
56528         (WebCore::computeHash):
56529         (WebCore::FontCache::getCachedFontPlatformData):
56530         * platform/graphics/FontDescription.h:
56531         (WebCore::FontDescription::FontDescription):
56532         (WebCore::FontDescription::renderingMode):
56533         (WebCore::FontDescription::setRenderingMode):
56534         (WebCore::FontDescription::operator==):
56535         * platform/graphics/GraphicsContext.h:
56536         * platform/graphics/win/FontCacheWin.cpp:
56537         (WebCore::FontCache::fontExists):
56538         (WebCore::FontCache::createFontPlatformData):
56539         * platform/graphics/win/FontDataWin.cpp:
56540         (WebCore::FontData::platformInit):
56541         (WebCore::FontData::smallCapsFontData):
56542         (WebCore::FontData::containsCharacters):
56543         (WebCore::FontData::determinePitch):
56544         (WebCore::FontData::platformWidthForGlyph):
56545         * platform/graphics/win/FontPlatformData.h:
56546         (WebCore::FontPlatformData::FontPlatformData):
56547         (WebCore::FontPlatformData::useGDI):
56548         (WebCore::FontPlatformData::operator==):
56549         * platform/graphics/win/FontPlatformDataWin.cpp:
56550         (WebCore::FontPlatformData::FontPlatformData):
56551         * platform/graphics/win/FontWin.cpp:
56552         (WebCore::Font::drawGlyphs):
56553         * platform/graphics/win/IconWin.cpp:
56554         (WebCore::Icon::paint):
56555         * platform/win/GraphicsContextWin.cpp:
56556         (WebCore::GraphicsContext::getWindowsContext):
56557         (WebCore::GraphicsContext::releaseWindowsContext):
56558         * platform/win/UniscribeController.cpp:
56559         (WebCore::UniscribeController::shapeAndPlaceItem):
56560         * platform/win/UniscribeController.h:
56561         * plugins/win/PluginViewWin.cpp:
56562         (WebCore::PluginViewWin::paint):
56564 2007-12-19  Sven Herzberg  <sven@imendio.com>
56566         Reviewed by Alp Toker.
56568         Replace the fontconfig/freetype based font management with a pango
56569         based one. Fixes:
56570         http://bugs.webkit.org/show_bug.cgi?id=15229
56572         * platform/gtk/FontDataGtk.cpp (FontData::platformDestroy()): updated
56573         the platform specific destroy code
56574         (FontData::containsCharacters()): implemented font coverage with pango
56575         * platform/gtk/FontPlatformData.h: replaced fontconfig specific
56576         members with pango-specific ones
56577         * platform/gtk/FontPlatformDataGtk.cpp: added static members for the
56578         FontPlatformData class
56579         (FontPlatformData::FontPlatformData()): implemented the font-matching
56580         with a PangoFontDescription instead of an FcPattern; initialize the
56581         scaled font by using the API for PangoCairoFont
56582         (FontPlatformData::init()): initialize the PangoFontMap and set up a
56583         hash table to translate the font family name into a font family
56584         (FontPlatformData::isFixedPitch()): implemented by querying the
56585         PangoFontFamily
56586         (FontPlatformData::operator==): compare the FontPlatformData by
56587         comparing the font pointers or the described fonts
56588         * platform/gtk/GlyphPageTreeNodeGtk.cpp (pango_font_get_glyph()):
56589         added a function to query a glyph from a PangoFont
56590         (GlyphPage::fill()): implemented the fill function with Pango instead
56591         of fontconfig/freetype
56593 2007-12-19  Alp Toker  <alp@atoker.com>
56595         Reviewed by Holger Freyther.
56597         Improve graphics operator approximations
56598         
56599         These changes match Cairo's own CG approximations.
56601         * platform/graphics/cairo/GraphicsContextCairo.cpp:
56602         (WebCore::toCairoOperator):
56604 2007-12-19  Alp Toker  <alp@atoker.com>
56606         Reviewed by Holger Freyther.
56608         Check the bounding box before doing a full hit test
56610         * platform/graphics/cairo/PathCairo.cpp:
56611         (WebCore::Path::contains):
56613 2007-12-18  Sam Weinig  <sam@webkit.org>
56615         Reviewed by Geoff.
56617         Fix for <rdar://problem/5646478>
56618         REGRESSION: fast/events/event-view-toString fails on Leopard
56620         This fixes an issue where we were incorrectly setting the lastInPrototypeChain
56621         for the JSDOMWindow (the global object) before a call to setPrototype overwrote
56622         it. This fixes it by passing the prototype up the constructor chain so that it
56623         is set before any calls can be made.
56625         * bindings/js/kjs_window.cpp:
56626         (KJS::Window::Window):
56627         * bindings/js/kjs_window.h:
56628         * bindings/scripts/CodeGeneratorJS.pm:
56630 2007-12-18  Beth Dakin  <bdakin@apple.com>
56632         Reviewed by Oliver.
56634         Fix for <rdar://problem/5616982> SVGs with width and height 100% 
56635         fail to render when used as <img> or CSS image (16167)
56637         This final part of the work fixes the <img> tag.
56639         This is the real fix. 
56640         * rendering/RenderImage.cpp:
56641         (WebCore::RenderImage::calcReplacedWidth): Set the container size 
56642         on the image. Setting the container size only actually sticks if 
56643         the values are non-zero, so if the container size really was set, 
56644         use the imageSize that is calculated using the container size. If 
56645         it did not stick but the image does have relative width (meaning 
56646         that the container size is 0), set the width to 0 by hand. We want 
56647         to avoid setting the width before we have a container size or we 
56648         will end up incorrectly using the default size of 300x150.
56649         (WebCore::RenderImage::calcReplacedHeight): Same as above, but for 
56650         height.
56652         A few more pieces of information have to be exposed through cached 
56653         image to make this happen.
56654         * loader/CachedImage.cpp:
56655         (WebCore::CachedImage::usesImageContainerSize): As mentioned above, 
56656         when setContainerSize() is called, the container size is only 
56657         actually set if the values are non-zero. This call tells you if it 
56658         was set.
56659         (WebCore::CachedImage::imageHasRelativeWidth):
56660         (WebCore::CachedImage::imageHasRelativeHeight):
56661         * loader/CachedImage.h:
56662         * platform/graphics/Image.h:
56663         (WebCore::Image::usesContainerSize):
56664         * svg/graphics/SVGImage.cpp:
56665         (WebCore::SVGImage::usesContainerSize):
56666         * svg/graphics/SVGImage.h:
56668 2007-12-18  Mark Rowe  <mrowe@apple.com>
56670         Rubber-stamped by Maciej Stachowiak.
56672         Remove outdated and non-functioning project files for the Apollo port.
56674         * WebCore.apolloproj: Removed.
56676 2007-12-18  Steve Falkenburg  <sfalken@apple.com>
56678         <rdar://problem/5649911> REGRESSION (304-306A9): Typing 'p' in popup menu for type-to-select brings up Safari Help
56679         
56680         Need to translate the char back into a key code for posting our WM_KEYDOWN.
56681         
56682         Reviewed by Ada.
56684         * platform/win/PopupMenuWin.cpp:
56685         (WebCore::PopupWndProc):
56687 2007-12-18  Steve Falkenburg  <sfalken@apple.com>
56689         <rdar://problem/5651534> REGRESSION(r28764-r28765): GDI leak drawing text when no appropriate font is available
56690         
56691         Our captured metafile from Uniscribe may contain multiple calls to CreateFontIndirect.
56692         Only create a font with the last one.
56693         
56694         Reviewed by Mitz, Darin.
56696         * platform/graphics/win/FontCacheWin.cpp:
56697         (WebCore::metaFileEnumProc):
56698         (WebCore::FontCache::getFontDataForCharacters):
56700 2007-12-17  Brent Fulgham  <bfulgham@gmail.com>
56702         Reviewed by Darin.
56704         http://bugs.webkit.org/show_bug.cgi?id=16464
56705         Modify WebCore to use win32 thread primitives
56707         Updates to support native windows threading primitives
56708         rather than pthreads emulation library.
56710         * WebCore.vcproj/WebCore.vcproj:
56711         * config.h:
56712         * platform/Threading.h:
56713         * platform/win/MutexWin.cpp: Added.
56714         (WebCore::Mutex::Mutex):
56715         (WebCore::Mutex::~Mutex):
56716         (WebCore::Mutex::lock):
56717         (WebCore::Mutex::tryLock):
56718         (WebCore::Mutex::unlock):
56719         * platform/win/ThreadConditionWin.cpp: Added.
56720         (WebCore::ThreadCondition::ThreadCondition):
56721         (WebCore::ThreadCondition::~ThreadCondition):
56722         (WebCore::ThreadCondition::wait):
56723         (WebCore::ThreadCondition::signal):
56724         (WebCore::ThreadCondition::broadcast):
56725         * platform/win/ThreadingWin.cpp:
56726         (WebCore::threadMapMutex):
56727         (WebCore::threadMap):
56728         (WebCore::storeThreadHandleByIdentifier):
56729         (WebCore::identifierByThreadHandle):
56730         (WebCore::threadHandleForIdentifier):
56731         (WebCore::clearThreadHandleForIdentifier):
56732         (WebCore::createThread):
56733         (WebCore::waitForThreadCompletion):
56734         (WebCore::detachThread):
56735         (WebCore::currentThread):
56737 2007-12-18  Rodney Dawes  <dobey@wayofthemonkey.com>
56739         Reviewed by Darin Adler.
56741         Handle EINTR when set by select() and try the select() again
56742         http://bugs.webkit.org/show_bug.cgi?id=16071
56744         * platform/network/curl/ResourceHandleManager.cpp:
56745         (ResourceHandleManager::downloadTimerCallback):
56747 2007-12-18  Dan Bernstein  <mitz@apple.com>
56749         Reviewed by Dave Hyatt.
56751         - avoid the simplified Chinese font linking code for characters that are
56752           not in any Windows code page
56754         * platform/graphics/win/FontCacheWin.cpp:
56755         (WebCore::FontCache::getFontDataForCharacters):
56757 2007-12-18  Brady Eidson <beidson@apple.com>
56759         Reviewed by Adele
56761         <rdar://problem/5525770> REGRESSION: HTTP Auth protected favicon request results in a password sheet
56763         Some http-auth protected sites have the main resource(s) unprotected, but many subresources are
56764         protected by authentication.  Occasionally one can view the main page of a site but the favicon
56765         is behind the iron curtain - in these cases, we should *not* prompt for a username and password
56766         solely for the favicon.
56768         * loader/ResourceLoader.h: Make didReceiveAuthenticationChallenge virtual
56770         * loader/SubresourceLoader.cpp:
56771         (WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Now that this method
56772           is virtual from ResourceLoader, SubresourceLoader can override.  First call to the 
56773           SubresourceLoaderClient.  If they cancel the resource load, return early. Otherwise, let
56774           ResourceLoader work its magic (resulting in the auth sheet coming down)
56775         * loader/SubresourceLoader.h:
56777         * loader/SubresourceLoaderClient.h:
56778         (WebCore::SubresourceLoaderClient::didReceiveAuthenticationChallenge):
56780         * loader/icon/IconLoader.cpp:
56781         (WebCore::IconLoader::didReceiveAuthenticationChallenge): Cancel the resource load, since we should
56782           never prompt the user for credentials just for a favicon.
56783         * loader/icon/IconLoader.h:
56785 2007-12-18  John Sullivan  <sullivan@apple.com>
56787         Reviewed by Brady
56788         
56789         - fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name
56791         * storage/DatabaseTracker.cpp:
56792         (WebCore::DatabaseTracker::canEstablishDatabase):
56793         pass "name" instead of "displayName" if there's no displayName
56795 2007-12-17  Dan Bernstein  <mitz@apple.com>
56797         Reviewed by Maciej Stachowiak.
56799         - restore ButtonFace and ThreeDFace to their previous values for non-Mac
56800           platforms. The Mac port also uses the same values for now instead
56801           of NSColor-based ones.
56803         * rendering/RenderTheme.cpp:
56804         (WebCore::RenderTheme::systemColor):
56806 2007-12-17  Rodney Dawes  <dobey@wayofthemonkey.com>
56808         Reviewed by Maciej Stachowiak.
56810         Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
56811         Add required Frame::createScriptInstanceForWidget to FrameGtk
56813         * config.h:
56814         * page/gtk/FrameGtk.cpp (Frame::createScriptInstanceForWidget):
56816 2007-12-17  Alice Liu  <alice.liu@apple.com>
56818         Reviewed by Adam.
56820         Fixed <rdar://5566435> window with no scrollbars can be scrolled
56822         * platform/win/ScrollViewWin.cpp:
56823         (WebCore::ScrollView::maximumScroll):
56824         corrected maximumScroll() to account for scrolling not allowed.
56825         (WebCore::ScrollView::wheelEvent):
56827 2007-12-14  Juan A. Suarez Romero  <jasuarez@igalia.com>
56829         Reviewed by Alp Toker.
56831         http://bugs.webkit.org/show_bug.cgi?id=16042
56832         [GTK] Eliminate webkit_init()
56834         Move webkit initialization to WebView class init.
56836         * WebCore.pro:
56838 2007-12-17  Jon Honeycutt  <jhoneycutt@apple.com>
56840         Reviewed by Darin.
56842         <rdar://problem/5651291> REGRESSION: Flash content doesn't display
56843         (www.adobe.com)
56845         We were passing NPEvent** instead of NPEvent* to NPP_HandleEvent.
56847         * plugins/win/PluginViewWin.cpp:
56848         (WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not
56849         NPEvent*
56850         (WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent*
56851         (WebCore::PluginViewWin::handleKeyboardEvent): same
56852         (WebCore::PluginViewWin::handleMouseEvent): same
56853         * plugins/win/PluginViewWin.h:
56855 2007-12-17  Alexey Proskuryakov  <ap@webkit.org>
56857         Reviewed by Darin.
56859         Live to the promise of never making AppKit special character codes visible via DOM.
56861         Test: fast/events/arrow-keys-on-body.html
56863         * page/EventHandler.cpp:
56864         (WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation,
56865         to let quirks-aware code strip special charactrers.
56866         * platform/mac/KeyEventMac.mm:
56867         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks
56868         mode, remove the text if it's a special character.
56870 2007-12-17  Mark Rowe  <mrowe@apple.com>
56872         Reviewed by Darin Adler.
56874         Fix incorrect array size and incorrect array index in convertNSColorToColor.
56876         * rendering/RenderThemeMac.mm:
56877         (WebCore::convertNSColorToColor):
56879 2007-12-17  Darin Adler  <darin@apple.com>
56881         Reviewed by Mark Rowe.
56883         - fix http://bugs.webkit.org/show_bug.cgi?id=16468
56884           REGRESSION(r28781): Crash running storage/transaction_callback_exception_crash.html
56886         * storage/DatabaseThread.cpp:
56887         (WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database
56888         because there's no guarantee it won't lose its last reference otherwise.
56890 2007-12-17  Dan Bernstein  <mitz@apple.com>
56892         Reviewed by Maciej Stachowiak.
56894         - fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not
56895           and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac
56897         * platform/graphics/win/FontCacheWin.cpp:
56898         (WebCore::FontCache::getFontDataForCharacters): To ensure that font
56899         linking gives consistent results for characters that are exclusive to
56900         the simplified Chinese code page and characters that belong to that
56901         code page and other code pages, always ask to map to simplified Chinese
56902         alone first.
56904 2007-12-17  Christian Dywan  <christian@twotoasts.de>
56906         Reviewed by Alp Toker.
56908         http://bugs.webkit.org/show_bug.cgi?id=16378
56909         Implement Icon for Gtk
56911         Icon provides a GdkPixbuf containing a themed icon.
56912         The icon theme is probed for an icon name according to the
56913         Icon Naming Specification or conventional Gnome icon names respectively.
56915         See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
56917         * platform/graphics/Icon.h:
56918         * platform/graphics/gtk/IconGtk.cpp:
56919         (WebCore::Icon::~Icon):
56920         (WebCore::lookupIconName):
56921         (WebCore::Icon::newIconForFile):
56922         (WebCore::Icon::paint):
56924 2007-12-16  Sam Weinig  <sam@webkit.org>
56926         Reviewed by Mitz.
56928         Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
56929         Move the JS Location object to its own file
56931         - Move Location into its own file and rename it JSLocation.
56933         * DerivedSources.make:
56934         * WebCore.pro:
56935         * WebCore.vcproj/WebCore.vcproj:
56936         * WebCore.xcodeproj/project.pbxproj:
56937         * WebCoreSources.bkl:
56938         * bindings/js/JSDocumentCustom.cpp:
56939         * bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp.
56940         (WebCore::JSLocation::JSLocation):
56941         (WebCore::JSLocation::getValueProperty):
56942         (WebCore::JSLocation::getOwnPropertySlot):
56943         (WebCore::JSLocation::put):
56944         (WebCore::JSLocationProtoFuncReplace::callAsFunction):
56945         (WebCore::JSLocationProtoFuncReload::callAsFunction):
56946         (WebCore::JSLocationProtoFuncAssign::callAsFunction):
56947         (WebCore::JSLocationProtoFuncToString::callAsFunction):
56948         * bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h.
56949         (WebCore::JSLocation::):
56950         (WebCore::JSLocation::frame):
56951         (WebCore::JSLocation::classInfo):
56952         * bindings/js/kjs_window.cpp:
56953         (KJS::Window::location):
56954         * bindings/js/kjs_window.h:
56955         * history/CachedPage.cpp:
56957 2007-12-16  Dan Bernstein  <mitz@apple.com>
56959         Reviewed by Sam Weinig.
56961         - make 'cursor: copy' and 'cursor: none' work.
56963         Already covered by manual-tests/cursor.html
56965         * rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits,
56966         needed for the 33rd and 34th cursor values.
56968 2007-12-16  Mark Rowe  <mrowe@apple.com>
56970         Reviewed by Maciej Stachowiak.
56972         Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.
56974         * WebCore.base.exp:
56975         * WebCore.xcodeproj/project.pbxproj:
56976         * loader/NetscapePlugInStreamLoader.h:
56977         * loader/mac/NetscapePlugInStreamLoaderMac.mm: Removed.
56978         * loader/mac/WebPlugInStreamLoaderDelegate.h: Moved to WebKit.
56980 2007-12-16  Sam Weinig  <sam@webkit.org>
56982         Reviewed by Maciej.
56984         Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
56985         Cleanup kjs_window
56987         - Move ScheduledAction into its own file and put it in the WebCore namespace.
56989         * WebCore.pro:
56990         * WebCore.vcproj/WebCore.vcproj:
56991         * WebCore.xcodeproj/project.pbxproj:
56992         * WebCoreSources.bkl:
56993         * bindings/js/PausedTimeouts.cpp:
56994         * bindings/js/PausedTimeouts.h:
56995         * bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp.
56996         (WebCore::ScheduledAction::ScheduledAction):
56997         (WebCore::ScheduledAction::execute):
56998         * bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h.
56999         (WebCore::ScheduledAction::ScheduledAction):
57000         * bindings/js/kjs_window.cpp:
57001         (KJS::DOMWindowTimer::DOMWindowTimer):
57002         (KJS::DOMWindowTimer::action):
57003         (KJS::DOMWindowTimer::takeAction):
57004         (KJS::Window::installTimeout):
57005         (KJS::Window::timerFired):
57006         * bindings/js/kjs_window.h:
57008 2007-12-16  Alp Toker  <alp@atoker.com>
57010         Reviewed by Maciej.
57012         http://bugs.webkit.org/show_bug.cgi?id=16356
57013         [GTK] Integrate GStreamer video with the graphics backend
57015         Integrate the GStreamer media backend with the Cairo graphics backend.
57016         There are still some issues: Data is copied more often than necessary,
57017         and repaint() is not called, causing transformed video not to update
57018         sometimes.
57020         * WebCore.pro:
57021         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
57022         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
57023         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
57024         (WebCore::MediaPlayerPrivate::currentTime):
57025         (WebCore::MediaPlayerPrivate::setEndTime):
57026         (WebCore::MediaPlayerPrivate::seeking):
57027         (WebCore::MediaPlayerPrivate::naturalSize):
57028         (WebCore::MediaPlayerPrivate::setMuted):
57029         (WebCore::MediaPlayerPrivate::setRect):
57030         (WebCore::MediaPlayerPrivate::setVisible):
57031         (WebCore::MediaPlayerPrivate::repaint):
57032         (WebCore::MediaPlayerPrivate::paint):
57033         (WebCore::MediaPlayerPrivate::createGSTPlayBin):
57034         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
57035         * platform/graphics/gtk/VideoSinkGStreamer.cpp: Added.
57036         (webkit_video_sink_base_init):
57037         (webkit_video_sink_init):
57038         (webkit_video_sink_idle_func):
57039         (webkit_video_sink_render):
57040         (webkit_video_sink_set_caps):
57041         (webkit_video_sink_dispose):
57042         (webkit_video_sink_finalize):
57043         (webkit_video_sink_set_property):
57044         (webkit_video_sink_get_property):
57045         (webkit_video_sink_stop):
57046         (webkit_video_sink_class_init):
57047         (webkit_video_sink_new):
57048         (webkit_video_sink_set_surface):
57049         (plugin_init):
57050         * platform/graphics/gtk/VideoSinkGStreamer.h: Added.
57052 2007-12-16  Mark Rowe  <mrowe@apple.com>
57054         Mac build fix.
57056         * WebCore.xcodeproj/project.pbxproj: Remove NetscapePlugInStreamLoader.cpp from the WebCore target.
57057         Mac currently has its own implementation in NetscapePlugInStreamLoaderMac.mm which conflicts with the
57058         new shared implementation.
57060 2007-12-16  Rodney Dawes  <dobey@wayofthemonkey.com>
57062         Reviewed by Maciej Stachowiak.
57064         http://bugs.webkit.org/show_bug.cgi?id=16389
57065         Bug 16389: Common Implementation of NetscapePlugInStreamLoader
57067         * WebCore.vcproj/WebCore.vcproj: Remove NetscapePlugInStreamLoaderWin.cpp.
57068         * loader/NetscapePlugInStreamLoader.cpp: Copy method implementations from NetscapePlugInStreamLoaderWin.cpp.
57069         * loader/win/NetscapePlugInStreamLoaderWin.cpp: Removed.
57071 2007-12-16  Grace Kloba  <klobag@gmail.com>
57073         Reviewed by Darin Adler.
57075         Fix http://bugs.webkit.org/show_bug.cgi?id=16433.
57076         Bug 16433: LOW_BANDWIDTH_DISPLAY build is broken
57078         * dom/Document.cpp:
57079         (WebCore::Document::Document):
57080         * loader/FrameLoader.cpp:
57081         (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
57082         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
57084 2007-12-16  Darin Adler  <darin@apple.com>
57086         Reviewed by Maciej.
57088         - fix <rdar://problem/5636065> First form of SQLTransaction.executeSql() fails with TYPE_ERROR dom exception
57090         Test: storage/execute-sql-args.html
57092         * bindings/js/JSSQLTransactionCustom.cpp:
57093         (WebCore::JSSQLTransaction::executeSql): Added exception handling code so that once an
57094         exception happens, we won't try to do any more argument processing. Changed processing
57095         of the second argument so that we allow an undefined value or null, and simply omit the
57096         array. Changed processing of the second argument so that we don't require an actual
57097         JavaScript array. Instead, as with the JavaScript array operations themselves, we use
57098         the length property and corresponding numeric properties of the object, allowing other
57099         objects to act as arrays. Changed processing of the third and fourth arguments to
57100         allow the undefined value as well as null; we check the value of the argument rather
57101         than looking at the size of the passed-in arguments list.
57103 2007-12-16  Sam Weinig  <sam@webkit.org>
57105         Reviewed by Darin.
57107         More of http://bugs.webkit.org/show_bug.cgi?id=16385
57108         Cleanup kjs_window
57110         - Move PausedTimeouts into its own file and put it in the WebCore namespace.
57112         * WebCore.pro:
57113         * WebCore.vcproj/WebCore.vcproj:
57114         * WebCore.xcodeproj/project.pbxproj:
57115         * WebCoreSources.bkl:
57116         * bindings/js/PausedTimeouts.cpp: Copied from bindings/js/kjs_window.cpp.
57117         * bindings/js/PausedTimeouts.h: Copied from bindings/js/kjs_window.h.
57118         * bindings/js/kjs_window.cpp:
57119         (KJS::Window::pauseTimeouts):
57120         * bindings/js/kjs_window.h:
57121         * history/CachedPage.cpp:
57122         * history/CachedPage.h:
57123         * page/Chrome.cpp:
57125 2007-12-16  Beth Dakin  <bdakin@apple.com>
57127         Reviewed by Geoff.
57129         Make relative-size SVGs work in border-image.
57131         * rendering/RenderBox.cpp:
57132         (WebCore::RenderBox::calculateBackgroundSize):
57133         * rendering/RenderObject.cpp:
57134         (WebCore::RenderObject::paintBorderImage):
57136 2007-12-16  Darin Adler  <darin@apple.com>
57138         - fix Tiger build (my fault it was broken)
57140         * rendering/RenderThemeMac.mm: Define NSUInteger if on Tiger.
57142 2007-12-16  Andrew Wellington  <proton@wiretapped.net>
57144         Reviewed by Darin.
57145         
57146         http://bugs.webkit.org/show_bug.cgi?id=6129
57147         Incomplete implementation of CSS 2.1 system colors
57149         Test: fast/css/css2-system-color.html
57150         
57151         Based on original patch by Rob Buis.
57152         
57153         System colors are retrieved from NSColor as appropriate. If the color is a pattern color
57154         (and therefore NSColor won't let us retrieve a color from it) we draw a 1x1 image of the
57155         color and sample that to get a solid color.
57157         * css/CSSStyleSelector.cpp:
57158         (WebCore::colorForCSSValue):
57159         * rendering/RenderTheme.cpp:
57160         (WebCore::RenderTheme::systemColor):
57161         * rendering/RenderTheme.h:
57162         * rendering/RenderThemeMac.h:
57163         * rendering/RenderThemeMac.mm:
57164         (WebCore::getSystemColor):
57165         (WebCore::RenderThemeMac::platformColorsDidChange):
57166         (WebCore::RenderThemeMac::systemColor):
57168 2007-12-16  Dan Bernstein  <mitz@apple.com>
57170         Reviewed by Darin Adler.
57172         - fix http://bugs.webkit.org/show_bug.cgi?id=16426
57173           Divs with overflow:auto: scrollbars not correctly updated when contents change
57175         Test: fast/overflow/scrollbar-position-update.html
57177         * platform/mac/PlatformScrollBarMac.mm:
57178         (WebCore::PlatformScrollbar::updateThumbProportion): Update the
57179         NSScroller's value for the new proportions.
57180         * rendering/RenderLayer.cpp:
57181         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed unnecessary
57182         repaint(). Scrollbars repaint themselves as needed.
57184 2007-12-16  Alexey Proskuryakov  <ap@webkit.org>
57186         Reviewed by Darin.
57188         http://bugs.webkit.org/show_bug.cgi?id=14140
57189         <rdar://problem/5270958> REGRESSION: Complex system KeyBindings don't work properly
57191         * dom/KeyboardEvent.h:
57192         (WebCore::KeypressCommand::KeypressCommand):
57193         (WebCore::KeyboardEvent::keypressCommands):
57194         Change stored command class to preserve complete information about commands.
57196         * editing/EditorCommand.cpp: (WebCore::CommandEntry::): Mark InsertText as a text insertion
57197         command, which it is. Previously, we couldn't do it because WebKit didn't really treat insertText:
57198         as a command.
57200         * page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Copy commands saved while interpreting
57201         a keydown event into keypress, to avoid losing state when running interpretKeyEvents: again.
57203 2007-12-16  Alexey Proskuryakov  <ap@webkit.org>
57205         Reviewed by Darin.
57207         http://bugs.webkit.org/show_bug.cgi?id=16462
57208         REGRESSION: access keys broken on Windows
57210         * page/EventHandler.cpp:
57211         (WebCore::EventHandler::handleAccessKey):
57212         (WebCore::EventHandler::keyEvent):
57213         * page/EventHandler.h:
57214         Make handleAccessKey a class method; rely on WebKit to call it on Windows and wxWidgets.
57216 2007-12-16  Xan Lopez  <xan@gnome.org>
57218         Reviewed by Alexey Proskuryakov.
57220         http://bugs.webkit.org/show_bug.cgi?id=16454
57221         [GTK] Text input doesn't work consistently on PPC
57223         * platform/gtk/KeyEventGtk.cpp:
57224         (WebCore::singleCharacterString):
57226         UChar is 2 bytes (UTF-16), so transform accordingly from
57227         gunichar (UCS-4). Fixes keyboard input on big endian systems.
57229 2007-12-15  Darin Adler  <darin@apple.com>
57231         Reviewed by Mark Rowe.
57233         - better build fix for the problem affecting GTK and some other platforms
57234           "this time for sure"
57236         * WebCore.xcodeproj/project.pbxproj:
57237         * bindings/js/JSEventTargetBase.cpp: Move the include of the .lut.h file here.
57238         * bindings/js/JSEventTargetBase.h: Instead of including the .lut.h file in the header,
57239         which won't work, declare the tables that are in the .lut.h file in the header.
57241 2007-12-12  Kevin Watters  <kevin@dotsyntax.com>
57243         Reviewed by Darin Adler.
57245         Fixed the Wx port's FontPlatformData for use in HashTable.
57246         - FontPlatformData(Deleted) made unequal to FontPlatformData()
57248         * platform/graphics/wx/FontPlatformData
57250 2007-12-15  Dan Bernstein  <mitz@apple.com>
57252         Reviewed by Darin Adler.
57254         - fix <rdar://problem/5636090> Text in Georgia, Armenian, Inuktitut, Cree, or Cherokee (KA, HY, IU, CR, CHR) draws as all missing glyphs
57256         * platform/graphics/win/FontCacheWin.cpp:
57257         (WebCore::metaFileEnumProc): Added. Called during metafile record
57258         enumeration and extracts the font from the create font record.
57259         (WebCore::FontCache::getFontDataForCharacters): If font linking fails,
57260         let Uniscribe draw the characters and see what font it chooses.
57262 2007-12-15  Darin Adler  <darin@apple.com>
57264         * WebCore.pro: Roll my last change out. Was wrong and didn't fix the build.
57266 2007-12-15  Darin Adler  <darin@apple.com>
57268         Another try at a GTK build fix.
57270         * WebCore.pro: Add JSEventTargetBase.cpp to LUT_TABLE_FILES instead of LUT_FILES.
57272 2007-12-15  Sam Weinig  <sam@webkit.org>
57274         Force windows to regenerate COM DOM bindings.
57276         * WebCore.vcproj/build-generated-files.sh: Add license. 
57277         * bindings/scripts/CodeGeneratorCOM.pm: Use shared WK_ucfirst.
57279 2007-12-15  Sam Weinig  <sam@webkit.org>
57281         Fix Windows and wx builds.
57283         * WebCore.vcproj/WebCore.vcproj:
57284         * WebCoreSources.bkl:
57286 2007-12-15  Mark Rowe  <mrowe@apple.com>
57288         Gtk build fix.  Add JSEventTargetBase.cpp to SOURCES.
57290         * WebCore.pro:
57292 2007-12-15  Sam Weinig  <sam@webkit.org>
57294         Fix wx build.
57296         * WebCoreSources.bkl:
57298 2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>
57300         Not reviewed. Build fix for Qt/Gtk.
57302         * WebCore.pro: Include JSEventTargetBase.lut.h in generation
57304 2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>
57306         Reviewed by Eric.
57308         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16445 (Refactor EventTargetNode & JSEventTargetNode for an upcoming SVG patch)
57310         Split up JSEventTargetNode in JSEventTargetNode & JSEventTargetBase - where most functionality has been moved down
57311         in the base class. Applied the same refactorization to EventTargetNode.
57313         This makes it possible for the upcoming patch implementing the EventTarget interface for SVGElementInstance
57314         to share as much code as possible with the EventTargetNode classes.
57316         * DerivedSources.make:
57317         * WebCore.xcodeproj/project.pbxproj:
57318         * bindings/js/JSEventTargetBase.cpp: Added.
57319         (WebCore::retrieveEventTargetAndCorrespondingNode):
57320         (WebCore::eventNameForPropertyToken):
57321         * bindings/js/JSEventTargetBase.h: Added.
57322         (WebCore::JSEventTargetProperties::):
57323         (WebCore::JSEventTargetPrototypeFunctionBase::JSEventTargetPrototypeFunctionBase):
57324         (WebCore::JSEventTargetPrototypeFunction::JSEventTargetPrototypeFunction):
57325         (WebCore::::create):
57326         (WebCore::JSEventTargetBase::JSEventTargetBase):
57327         (WebCore::JSEventTargetBase::getValueProperty):
57328         (WebCore::JSEventTargetBase::putValueProperty):
57329         (WebCore::JSEventTargetBase::getOwnPropertySlot):
57330         (WebCore::JSEventTargetBase::put):
57331         (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
57332         (WebCore::JSEventTargetPrototype::self):
57333         (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
57334         (WebCore::JSEventTargetPrototype::classInfo):
57335         * bindings/js/JSEventTargetNode.cpp:
57336         (WebCore::JSEventTargetNode::getOwnPropertySlot):
57337         (WebCore::JSEventTargetNode::getValueProperty):
57338         (WebCore::JSEventTargetNode::put):
57339         (WebCore::JSEventTargetNode::putValueProperty):
57340         (WebCore::JSEventTargetNode::setListener):
57341         (WebCore::toEventTargetNode):
57342         * bindings/js/JSEventTargetNode.h:
57343         (WebCore::JSEventTargetPrototypeInformation::prototypeClassName):
57344         (WebCore::JSEventTargetPrototypeInformation::prototypeIdentifier):
57345         * dom/EventTarget.cpp:
57346         (WebCore::EventTarget::addEventListener):
57347         (WebCore::EventTarget::removeEventListener):
57348         (WebCore::EventTarget::dispatchGenericEvent):
57349         (WebCore::EventTarget::removeAllEventListeners):
57350         (WebCore::EventTarget::insertedIntoDocument):
57351         (WebCore::EventTarget::removedFromDocument):
57352         (WebCore::EventTarget::handleLocalEvents):
57353         (WebCore::EventTarget::applySVGEventTargetRules):
57354         (WebCore::forbidEventDispatch):
57355         (WebCore::allowEventDispatch):
57356         (WebCore::eventDispatchForbidden):
57357         * dom/EventTarget.h:
57358         (WebCore::EventTarget::preDispatchEventHandler):
57359         (WebCore::EventTarget::postDispatchEventHandler):
57360         (WebCore::forbidEventDispatch):
57361         (WebCore::allowEventDispatch):
57362         * dom/EventTargetNode.cpp:
57363         (WebCore::EventTargetNode::~EventTargetNode):
57364         (WebCore::EventTargetNode::insertedIntoDocument):
57365         (WebCore::EventTargetNode::removedFromDocument):
57366         (WebCore::EventTargetNode::addEventListener):
57367         (WebCore::EventTargetNode::removeEventListener):
57368         (WebCore::EventTargetNode::removeAllEventListeners):
57369         (WebCore::EventTargetNode::handleLocalEvents):
57370         (WebCore::EventTargetNode::dispatchEvent):
57371         (WebCore::EventTargetNode::dispatchWindowEvent):
57372         * dom/EventTargetNode.h:
57373         (WebCore::EventTargetNode::localEventListeners):
57374         * svg/SVGElement.cpp:
57375         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
57376         (WebCore::SVGElement::dispatchEvent):
57378 2007-12-15  Eric Seidel  <eric@webkit.org>
57380         Reviewed by Oliver.
57381         
57382         Width of SVG elements not applied to container elements
57383         http://bugs.webkit.org/show_bug.cgi?id=16305
57384         Added calcPrefWidths for RenderSVGRoot (copied from RenderReplaced)
57385         This is caused by poor factoring in the render tree.  RenderContainer probably should be a template.
57387         svg/css/css-box-min-width.html
57389         * rendering/RenderSVGRoot.cpp:
57390         (WebCore::RenderSVGRoot::calcPrefWidths): Added.
57391         * rendering/RenderSVGRoot.h:
57392         * css/SVGCSSStyleSelector::applySVGProperty: fixed ASSERT in debug builds
57394 2007-12-15  David Kilzer  <ddkilzer@apple.com>
57396         Fix comment after isSafeScript() was renamed to allowsAccessFrom().
57398         * bindings/js/kjs_window.cpp:
57399         (KJS::createWindow):
57401 2007-12-15  Alp Toker  <alp@atoker.com>
57403         Reviewed by Mark Rowe.
57405         http://bugs.webkit.org/show_bug.cgi?id=16449
57406         cairo_arc() functions hang or crash when passed inf as radius or start/end angle
57408         Add checks. This matches a similar workaround for a CG bug in the CG
57409         graphics backend: <rdar://problem/5189233>
57411         Fixes:
57412           fast/canvas/arc-crash.html
57413           fast/canvas/canvas-with-incorrect-args.html
57415         * platform/graphics/cairo/PathCairo.cpp:
57416         (WebCore::Path::addArc):
57418 2007-12-15  Alexey Proskuryakov  <ap@webkit.org>
57420         Reviewed by Darin.
57422         http://bugs.webkit.org/show_bug.cgi?id=16078
57423         Google Maps zooming via the scroll wheel (almost) always zooms IN only.
57425         * dom/WheelEvent.cpp: (WebCore::WheelEvent::WheelEvent):
57426         Ensure that delta is never rounded down to zero - we are getting values less than 1 from 
57427         many mice on OS X, and Google Maps code assumes scrolling up if event.wheelDelta is zero.
57429 2007-12-14  Dan Bernstein  <mitz@apple.com>
57431         - Windows build fix
57433         * WebCore.vcproj/WebCore.vcproj:
57435 2007-12-14  Alp Toker  <alp@atoker.com>
57437         GTK+/Qt build fix. Track added files in r28722.
57439         * WebCore.pro:
57441 2007-12-14  Sam Weinig  <sam@webkit.org>
57443         Reviewed by Geoff.
57445         Speed up getElementByClassName.
57446         - This makes getElementByClassName 33% faster on the stress test
57447           linked to at http://bugs.webkit.org/show_bug.cgi?id=15760.
57449         * platform/text/StringImpl.cpp:
57450         (WebCore::StringImpl::foldCase): Optimize the case when all the characters are ASCII.
57452 2007-12-14  Alp Toker  <alp@atoker.com>
57454         Reviewed by Maciej.
57456         http://bugs.webkit.org/show_bug.cgi?id=16432
57457         [GTK] Update license headers
57459         Consent has been given by the authors of these files to change license
57460         to the LGPL as outlined in the bug report.
57462         * platform/gtk/ClipboardGtk.cpp:
57463         * platform/gtk/ContextMenuGtk.cpp:
57464         * platform/gtk/ContextMenuItemGtk.cpp:
57465         * platform/gtk/CookieJarGtk.cpp:
57466         * platform/gtk/CursorGtk.cpp:
57467         * platform/gtk/DragDataGtk.cpp:
57468         * platform/gtk/DragImageGtk.cpp:
57469         * platform/gtk/PasteboardGtk.cpp:
57470         * platform/gtk/PlatformScreenGtk.cpp:
57471         * platform/gtk/PlatformScrollBarGtk.cpp:
57472         * platform/gtk/SearchPopupMenuGtk.cpp:
57473         * platform/gtk/WidgetGtk.cpp:
57475 2007-12-14  Darin Adler  <darin@apple.com>
57477         Reviewed by Adele.
57479         - fix http://bugs.webkit.org/show_bug.cgi?id=16442
57480           navigation policy delegate gets called twice for each load
57482         * loader/MainResourceLoader.cpp:
57483         (WebCore::MainResourceLoader::willSendRequest): Removed call to checkNavigationPolicy.
57484         That's handled by FrameLoader.
57486         * loader/MainResourceLoader.h: Removed callContinueAfterNavigationPolicy
57487         and continueAfterNavigationPolicy.
57489 2007-12-14  Anders Carlsson  <andersca@apple.com>
57491         Reviewed by Brady.
57493         Make document.open count as committing a document load, so that -[WebFrame dataSource:] won't
57494         return nil in that case.
57495         
57496         * loader/FrameLoader.cpp:
57497         (WebCore::FrameLoader::didExplicitOpen):
57499 2007-12-14  David Smith  <catfish.man@gmail.com>
57501         Reviewed by Mitz.
57503         - fix http://bugs.webkit.org/show_bug.cgi?id=14955
57504           Implement getElementsByClassName.
57506         This patch also renames AtomicStringList to ClassNames to better reflect its actual use,
57507         and takes advantage of admitting that it's class-specific to encapsulate class attribute 
57508         parsing so it can be shared.  It also changes the class to use a Vector, rather than a linked
57509         list to store the class names.
57511         Tests: fast/dom/getElementsByClassName/001.html
57512                fast/dom/getElementsByClassName/002.html
57513                fast/dom/getElementsByClassName/003.html
57514                fast/dom/getElementsByClassName/004.html
57515                fast/dom/getElementsByClassName/005.html
57516                fast/dom/getElementsByClassName/006.html
57517                fast/dom/getElementsByClassName/007.html
57518                fast/dom/getElementsByClassName/008.html
57519                fast/dom/getElementsByClassName/009.html
57520                fast/dom/getElementsByClassName/010.xml
57521                fast/dom/getElementsByClassName/011.xml
57522                fast/dom/getElementsByClassName/012.html
57523                fast/dom/getElementsByClassName/013.html
57524                fast/dom/getElementsByClassName/014.html
57525                fast/dom/getElementsByClassName/array/001.html
57526                fast/dom/getElementsByClassName/array/002.html
57527                fast/dom/getElementsByClassName/array/003.html
57528                fast/dom/getElementsByClassName/array/004.html
57529                fast/dom/getElementsByClassName/dumpNodeList.html
57531         * WebCore.xcodeproj/project.pbxproj:
57532         * css/CSSStyleSelector.cpp:
57533         (WebCore::CSSStyleSelector::matchRules):
57534         (WebCore::CSSStyleSelector::checkOneSelector):
57535         * dom/AtomicStringList.h: Removed.
57536         * dom/ClassNames.cpp: Added.
57537         (WebCore::ClassNames::contains):
57538         (WebCore::ClassNames::parseClassAttribute):
57539         * dom/ClassNames.h: Copied from WebCore/dom/AtomicStringList.h.
57540         (WebCore::ClassNames::ClassNames):
57541         (WebCore::ClassNames::size):
57542         (WebCore::ClassNames::clear):
57543         (WebCore::ClassNames::operator[]):
57544         (WebCore::isClassWhitespace):
57545         * dom/ClassNodeList.cpp: Added.
57546         (WebCore::ClassNodeList::ClassNodeList):
57547         (WebCore::ClassNodeList::length):
57548         (WebCore::ClassNodeList::item):
57549         (WebCore::ClassNodeList::nodeMatches):
57550         * dom/ClassNodeList.h: Added.
57551         * dom/Document.cpp:
57552         (WebCore::Document::getElementsByName):
57553         (WebCore::Document::getElementsByClassName):
57554         * dom/Document.h:
57555         * dom/Document.idl:
57556         * dom/Element.cpp:
57557         (WebCore::Element::getClassNames):
57558         (WebCore::Element::getElementsByClassName):
57559         * dom/Element.h:
57560         * dom/Element.idl:
57561         * dom/NameNodeList.cpp:
57562         (WebCore::NameNodeList::NameNodeList):
57563         (WebCore::NameNodeList::item):
57564         (WebCore::NameNodeList::nodeMatches):
57565         * dom/NameNodeList.h:
57566         * dom/NamedMappedAttrMap.cpp:
57567         (WebCore::NamedMappedAttrMap::clearAttributes):
57568         (WebCore::NamedMappedAttrMap::parseClassAttribute):
57569         * dom/NamedMappedAttrMap.h:
57570         (WebCore::NamedMappedAttrMap::getClassNames):
57571         * dom/StyledElement.cpp:
57572         (WebCore::StyledElement::getClassNames):
57573         * dom/StyledElement.h:
57575 2007-12-14  Darin Adler  <darin@apple.com>
57577         Reviewed by Sam.
57579         - fix http://bugs.webkit.org/show_bug.cgi?id=16351
57580           FontFallbackList.h doesn't include wtf/PassRefPtr.h
57581           
57582         * platform/graphics/FontFallbackList.h: Added include of <wtf/Forward.h>
57583         * platform/graphics/GlyphPageTreeNode.h: Removed an unneeded include.
57585 2007-12-14  Darin Adler  <darin@apple.com>
57587         Reviewed by Alexey.
57589         - http://bugs.webkit.org/show_bug.cgi?id=16420
57590           change regression tests to use document.execCommand instead of textInputController.doCommand
57592         Add a few more operations to document.execCommand.
57594         Finished up the transition to the new Editor::Command, including removing
57595         the Editor::execCommand function.
57597         * WebCore.base.exp: Added Editor::Command::isSupported.
57598         * editing/Editor.h: Removed execCommand.
57599         * editing/EditorCommand.cpp:
57600         (WebCore::expandSelectionToGranularity): Added.
57601         (WebCore::verticalScrollDistance): Added; replaces canScroll.
57602         (WebCore::executeDeleteBackward): Added. Moved code here from WebHTMLView.
57603         (WebCore::executeDeleteBackwardByDecomposingPreviousCharacter): Ditto.
57604         (WebCore::executeDeleteForward): Ditto.
57605         (WebCore::executeDeleteToBeginningOfLine): Ditto.
57606         (WebCore::executeDeleteToBeginningOfParagraph): Ditto.
57607         (WebCore::executeDeleteToEndOfLine): Ditto.
57608         (WebCore::executeDeleteToEndOfParagraph): Ditto.
57609         (WebCore::executeMovePageDown): Renamed this command to be consistent with all the other
57610         Move commands. They all modify the caret. Reimplemented to match the Mac OS X version by
57611         removing the explicit scrolling, and letting it be done automatically by code that makes
57612         the caret visible. In some cases the old code would scroll twice which was harmless but
57613         unnecessary.
57614         (WebCore::executeMovePageDownAndModifySelection): Added. Moved code here from WebHTMLView.
57615         (WebCore::executeMovePageUp): See MovePageDown above.
57616         (WebCore::executeMovePageUpAndModifySelection): Added. Moved code here from WebHTMLView.
57617         (WebCore::executeSelectLine): Ditto.
57618         (WebCore::executeSelectParagraph): Ditto.
57619         (WebCore::executeSelectSentence): Ditto.
57620         (WebCore::executeSelectWord): Ditto.
57621         (WebCore::executeSwapWithMark): Some small tweaks.
57623         * page/ContextMenuController.cpp:
57624         (WebCore::ContextMenuController::contextMenuItemSelected): Changed to use Editor::command()
57625         instead of Editor::execCommand(). This code could be changed to use Editor::Command quite a
57626         bit more, but I didn't do that this time.
57628         - Removed some obsolete unused code.
57630         * page/mac/EventHandlerMac.mm:
57631         (WebCore::EventHandler::passMouseDownEventToWidget): Removed the special case code for
57632         NSTextView. This was left over from when we used NSTextField and NSTextView for form
57633         elements and is no longer used at all.
57635         * page/mac/WebCoreFrameBridge.h: Removed 20 unused methods that were still on one side
57636         of the bridge or another. We really need to find a time to tear down the rest of the
57637         bridge, but that's not this patch.
57639         * page/mac/WebCoreFrameBridge.mm:
57640         (-[WebCoreFrameBridge addData:]): Changed to get at the _shouldCreateRenderers field directly
57641         instead of using a method.
57642         (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
57643         Took out obsolete comment about matching enums (we use a single enum now and have for some
57644         time).
57645         (-[WebCoreFrameBridge selectionGranularity]): Ditto.
57647 2007-12-14  Justin Garcia  <justin.garcia@apple.com>
57649         Reviewed by Darin Adler.
57651         <rdar://problem/5575101> GoogleDocs: Hang in SplitElementCommand::doApply when outdenting a list item in a particular list
57653         * editing/CompositeEditCommand.cpp:
57654         (WebCore::CompositeEditCommand::splitTreeToNode): Moved here.
57655         * editing/CompositeEditCommand.h:
57656         * editing/IndentOutdentCommand.cpp: Moved splitTreeToNode.
57657         * editing/IndentOutdentCommand.h: Ditto, and removed unimplemented splitTreeTo.
57658         * editing/InsertListCommand.cpp:
57659         (WebCore::InsertListCommand::doApply): Split ancestors of listChildNode between
57660         it and listNode, if they exists, so that moving listChildNode doesn't put it out
57661         of order.  Added a test case to cover each change.
57662         * editing/SplitElementCommand.cpp:
57663         (WebCore::SplitElementCommand::doApply): Added an ASSERT to catch code that
57664         tries to split a container at a bogus child, and an early return to avoid a
57665         hang in that case.
57667 2007-12-14  Anders Carlsson  <andersca@apple.com>
57669         Reviewed by Darin and Geoff.
57671         <rdar://problem/5619295> 
57672         REGRESSION: 303-304: Embedded YouTube video fails to render- JS errors (16150) (Flash 9)
57674         _NPN_CreateScriptObject doesn't take an origin root object anymore.
57675         
57676         * html/HTMLPlugInElement.cpp:
57677         (WebCore::HTMLPlugInElement::createNPObject):
57678         * page/Frame.cpp:
57679         (WebCore::Frame::windowScriptNPObject):
57681 2007-12-14  Dan Bernstein  <mitz@apple.com>
57683         Reviewed by Darin Adler.
57685         - fix <rdar://problem/5643663> text-shadow and box-shadow offsets 1px smaller than specified
57686           which is the root cause of:
57687           http://bugs.webkit.org/show_bug.cgi?id=12943
57688           box-shadow: small values don't affect shadow position
57689           http://bugs.webkit.org/show_bug.cgi?id=14736
57690           Safari implementation of text-shadow off by 1px
57692         * platform/graphics/cg/GraphicsContextCG.cpp:
57693         (WebCore::GraphicsContext::setShadow): Slightly increase the magnitude
57694         of the offsets passed to CGContextSetShadow* to ensure that the end
57695         result after truncation is the desired integer offsets.
57697 2007-12-13  Alp Toker  <alp@atoker.com>
57699         curl backend build fix for breakage introduced in r28709.
57701         * platform/network/ResourceHandleInternal.h:
57702         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
57704 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
57706         Reviewed by Oliver Hunt.
57708         <rdar://problem/5607069> In Mail, a crash occurs at WebCore::AppendNodeCommand() after dragging image into a <FORM> element
57710         * editing/InsertLineBreakCommand.cpp:
57711         (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Equip this function to
57712         handle editing positions, like [input, 0];
57713         * editing/InsertParagraphSeparatorCommand.cpp:
57714         (WebCore::InsertParagraphSeparatorCommand::doApply): Pass enclosingBlock a node peeled
57715         off of a non-editing position, to fix a bug where the enclosing block of [input, 0] was
57716         the input element itself.
57717         Insert a <br> when a <form> element is the enclosing block instead of splitting/cloning or
57718         nesting a <div>.
57720 2007-12-13  Alp Toker  <alp@atoker.com>
57722         Reviewed by Oliver Hunt.
57724         http://bugs.webkit.org/show_bug.cgi?id=16365
57725         [cURL] Acid2 test segmentation fault
57727         This patch makes the Acid2 test pass.
57729         Defer the cleanup of cancelled jobs and halt further transfer as early
57730         as possible.
57732         Bug found by and initial patch provided by Luca Bruno.
57734         * platform/network/curl/ResourceHandleManager.cpp:
57735         (WebCore::writeCallback):
57736         (WebCore::headerCallback):
57737         (WebCore::ResourceHandleManager::downloadTimerCallback):
57738         (WebCore::ResourceHandleManager::cancel):
57740 2007-12-13  Sam Weinig  <sam@webkit.org>
57742         Reviewed by Mark Rowe.
57744         Fix typos and rename InspectorController::moveByUnrestricted to InspectorController::moveWindowBy.
57746         * page/InspectorController.cpp:
57747         (WebCore::moveByUnrestricted):
57748         (WebCore::InspectorController::windowScriptObjectAvailable):
57749         (WebCore::InspectorController::moveWindowBy):
57750         * page/InspectorController.h:
57751         * page/inspector/inspector.js:
57753 2007-12-13  Dan Bernstein  <mitz@apple.com>
57755         Reviewed by Dave Hyatt.
57757         - fix <rdar://problem/5642426> explicit cubic-bezier curves all treated as "default" for transition-timing-function
57759         Test: fast/css/transition-timing-function.html
57761         * css/CSSStyleSelector.cpp: Changed the HANDLE_MULTILAYER_VALUE macro to
57762         not reject non-primitive non-list values, and instead made sure that the
57763         mapping functions rejected them if necessary. This allows non-primitive
57764         timing functions to be mapped.
57765         (WebCore::CSSStyleSelector::mapBackgroundAttachment):
57766         (WebCore::CSSStyleSelector::mapBackgroundClip):
57767         (WebCore::CSSStyleSelector::mapBackgroundComposite):
57768         (WebCore::CSSStyleSelector::mapBackgroundOrigin):
57769         (WebCore::CSSStyleSelector::mapBackgroundImage):
57770         (WebCore::CSSStyleSelector::mapBackgroundRepeat):
57771         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
57772         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
57773         (WebCore::CSSStyleSelector::mapTransitionDuration):
57774         (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
57775         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
57776         (WebCore::CSSStyleSelector::mapTransitionProperty):
57777         * css/CSSTimingFunctionValue.cpp:
57778         (WebCore::CSSTimingFunctionValue::cssText): Implemented for use in the
57779         regression test.
57780         * css/CSSTimingFunctionValue.h:
57781         (WebCore::CSSTimingFunctionValue::isTransitionTimingFunctionValue):
57782         Added. Returns true.
57783         * css/CSSValue.h:
57784         (WebCore::CSSValue::isTransitionTimingFunctionValue): Added. Returns
57785         false.
57787 2007-12-13  Steve Falkenburg  <sfalken@apple.com>
57789         Move source file generation into its own vcproj to fix build dependencies.
57791         Reviewed by Adam.
57793         * WebCore.vcproj/WebCore.make:
57794         * WebCore.vcproj/WebCore.sln:
57795         * WebCore.vcproj/WebCore.submit.sln:
57796         * WebCore.vcproj/WebCore.vcproj:
57797         * WebCore.vcproj/WebCoreGenerated.vcproj: Added.
57799 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
57801         Reviewed by Oliver Hunt.
57802         
57803         <rdar://problem/4145786> Undoing a color change of text in a compose window always changes it back to black
57804         
57805         Some of the operations performed in removeHTMLFontStyle were non-undoable.
57806         
57807         I'm having trouble writing a layout test for this because I can't get DRT to
57808         perform editing operations in separate Undo steps without adding unacceptably long
57809         wait times between operations.  I filed:
57810         
57811         <rdar://problem/5646779> Can't get DRT to perform editing operations in separate Undo steps
57813         * editing/ApplyStyleCommand.cpp:
57814         (WebCore::ApplyStyleCommand::removeHTMLFontStyle):
57816 2007-12-13  Sam Weinig  <sam@webkit.org>
57818         Reviewed by Anders.
57820         Fix for http://bugs.webkit.org/show_bug.cgi?id=16352
57821         Toolbar dragged inspector cannot be moved beyond screen edges
57823         * page/InspectorController.cpp:
57824         (WebCore::moveByUnrestricted):
57825         (WebCore::InspectorController::windowScriptObjectAvailable):
57826         (WebCore::InspectorController::moveByUnrestricted):
57827         * page/InspectorController.h:
57828         * page/inspector/inspector.js:
57830 2007-12-13  Adam Roben  <aroben@apple.com>
57832         Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked
57834         Windows Media Player has a modal message loop that will deliver
57835         messages to us at inappropriate times and we will crash if we handle
57836         them when they are delivered. In PluginViewWin, we add a quirk for
57837         Media Player to set a flag whenever we give the plugin a chance to
57838         execute code, and in SharedTimerWin we check if the plugin is
57839         executing code and repost messages if so.
57841         Reviewed by Anders.
57843         * platform/win/SharedTimerWin.cpp:
57844         (WebCore::TimerWindowWndProc): Repost messages if we're calling a
57845         plugin.
57846         * plugins/win/PluginViewWin.cpp: Surround all calls to the plugin with
57847         setCallingPlugin(true/false).
57848         (WebCore::PluginViewWin::updateWindow):
57849         (WebCore::PluginViewWin::dispatchNPEvent):
57850         (WebCore::PluginViewWin::setNPWindowRect):
57851         (WebCore::PluginViewWin::start):
57852         (WebCore::PluginViewWin::stop):
57853         (WebCore::PluginViewWin::performRequest):
57854         (WebCore::PluginViewWin::bindingInstance):
57855         (WebCore::PluginViewWin::determineQuirks):
57856         (WebCore::PluginViewWin::setCallingPlugin): Added.
57857         (WebCore::PluginViewWin::isCallingPlugin): Added.
57858         * plugins/win/PluginViewWin.h: Added a new quirk.
57860 2007-12-13  Alp Toker  <alp@atoker.com>
57862         Add a missing DEPENDPATH. Fixes non-clean builds following networking
57863         header changes.
57865         * WebCore.pro:
57867 2007-12-13  Dan Bernstein  <mitz@apple.com>
57869         Reviewed by Anders Carlsson.
57871         - fix regression in fast/text/international/bidi-override on Tiger
57873         * platform/graphics/GlyphPageTreeNode.cpp:
57874         (WebCore::GlyphPageTreeNode::initializePage): Add bidi overrides here
57875         too. I forgot to add them when I added them to treatAsZeroWidthSpace in
57876         an earlier patch.
57878 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
57880         Reviewed by Darin Adler.
57882         <rdar://problem/5601583> GMail Editor: Copied link doesn't paste as a link, just colored text
57883         
57884         The code that checks the selected Range to see if it's inside an anchor
57885         checks ancestors of the Range's commonAncestor() but not the
57886         commonAncestor() itself, and so we'd fail to add markup for the enclosing
57887         anchor to the pasteboard.
57888         
57889         Some enclosing element getters check the node passed to the getter and some
57890         don't.  There were a few places where we incorrectly assumed that enclosing 
57891         element getters check the node passed to the getter, but this is the only 
57892         case that I'm able to write a test case for at the moment.
57893         
57894         In this patch I've:
57895         Changed enclosingNodeWithType and enclosingNodeWithTag to take in positions,
57896         like the newer enclosing element getters.  This is important because we must
57897         soon add code to the getters so that they understand that some editing positions
57898         inside nodes don't actually refer to positions inside those nodes but positions
57899         before and after them.  Like [table, 0].
57900         Changed enclosingNodeWithType and enclosingNodeWithTag to check nodes starting with
57901         n where [n, o] is the position passed to the getter, instead of starting the the parent
57902         of n.  This makes all but a few of the enclosing element getters behave consistently.
57903         Changed enclosingNodeWithType and enclosingNodeWithTag to not return non-editable 
57904         nodes if the input position was editable.  This fixes a bug that that the above change
57905         exposed.
57906         Changed enclosingTableCell to simply call enclosingNodeWithType.  We should do
57907         this for the rest of the getters, or simply remove them in favor of enclosingNodeWithType
57908         unless doing so would affect readability, like it would in the case of enclosingTableCell.
57909         Ditto for enclosingBlock.
57911         * editing/AppendNodeCommand.cpp:
57912         (WebCore::AppendNodeCommand::doApply):
57913         * editing/DeleteButtonController.cpp:
57914         (WebCore::enclosingDeletableElement):
57915         * editing/DeleteSelectionCommand.cpp:
57916         (WebCore::DeleteSelectionCommand::initializePositionData):
57917         (WebCore::DeleteSelectionCommand::saveFullySelectedAnchor):
57918         * editing/Editor.cpp:
57919         (WebCore::Editor::selectionUnorderedListState):
57920         (WebCore::Editor::selectionOrderedListState):
57921         * editing/IndentOutdentCommand.cpp:
57922         (WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
57923         (WebCore::IndentOutdentCommand::outdentParagraph):
57924         * editing/InsertNodeBeforeCommand.cpp:
57925         (WebCore::InsertNodeBeforeCommand::doApply):
57926         * editing/InsertParagraphSeparatorCommand.cpp:
57927         (WebCore::InsertParagraphSeparatorCommand::doApply):
57928         * editing/ReplaceSelectionCommand.cpp:
57929         (WebCore::ReplaceSelectionCommand::shouldMerge):
57930         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
57931         (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
57932         * editing/TextIterator.cpp:
57933         * editing/htmlediting.cpp:
57934         (WebCore::enclosingBlock):
57935         (WebCore::enclosingNodeWithTag):
57936         (WebCore::enclosingNodeOfType):
57937         (WebCore::enclosingTableCell):
57938         (WebCore::isTableCell):
57939         * editing/htmlediting.h:
57940         * editing/markup.cpp:
57941         (WebCore::appendStartMarkup):
57942         (WebCore::createMarkup):
57944 2007-12-13  Alexey Proskuryakov  <ap@webkit.org>
57946         Reviewed by Darin.
57948         Turn on keyboard event processing quirks for feed views and old applications on Mac OS X.
57950         * WebCore.base.exp:
57951         * dom/KeyboardEvent.cpp:
57952         (WebCore::KeyboardEvent::charCode):
57953         * page/EventHandler.cpp:
57954         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
57955         (WebCore::EventHandler::keyEvent):
57956         * page/EventHandler.h:
57957         * page/Settings.cpp:
57958         (WebCore::Settings::Settings):
57959         (WebCore::Settings::setNeedsKeyboardEventDisambiguationQuirks):
57960         * page/Settings.h:
57961         (WebCore::Settings::needsKeyboardEventDisambiguationQuirks):
57962         * page/mac/EventHandlerMac.mm:
57963         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
57964         * platform/PlatformKeyboardEvent.h:
57965         * platform/mac/KeyEventMac.mm:
57966         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
57967         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
57969 2007-12-13  Dan Bernstein  <mitz@apple.com>
57971         - build fix
57973         * platform/network/cf/ResourceErrorCF.cpp:
57975 2007-12-13  Antti Koivisto  <antti@apple.com>
57977         Reviewed by Tim Hatcher.
57979         Fix <rdar://problem/5605674> 
57980         Make <video> display WebKit context menu instead of the QTKit one.
57981     
57982         It doesn't really matter where the QTMovieView is.
57984         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
57985         (WebCore::MediaPlayerPrivate::createQTMovieView):
57986         (WebCore::MediaPlayerPrivate::setRect):
57988 2007-12-13  Dan Bernstein  <mitz@apple.com>
57990         Reviewed by Adam Roben.
57992         - ensure that Unicode bidi control characters are rendered as zero width
57993           spaces
57995         Test: fast/text/international/bidi-control-chars-treated-as-ZWS.html
57997         * platform/graphics/Font.h:
57998         (WebCore::Font::treatAsZeroWidthSpace):
57999         * platform/graphics/GlyphPageTreeNode.cpp:
58000         (WebCore::GlyphPageTreeNode::initializePage):
58001         * platform/text/CharacterNames.h:
58003 2007-12-13  Brady Eidson  <beidson@apple.com>
58005         Build fix
58007         * platform/wx/TemporaryLinkStubs.cpp:
58009 2007-12-12  Brady Eidson  <beidson@apple.com>
58011         Build fix
58013         * platform/gtk/TemporaryLinkStubs.cpp:
58015 2007-12-12  Brady Eidson  <beidson@apple.com>
58017         Build fix
58019         * WebCore.pro:
58020         * history/qt/CachedPageQt.cpp: Removed. Whole purpose for this method being platform-specific has been removed
58022 2007-12-12  Brady Eidson  <beidson@apple.com>
58024         Build fix
58026         * platform/win/TemporaryLinkStubs.cpp:
58028 2007-12-12  Brady Eidson  <beidson@apple.com>
58030         Reviewed by Sam Weinig
58032         Fix for <rdar://problem/4886844> and lay groundwork for <rdar://problem/4516170> (Back/Forward Cache on Windows)
58034         All back/forward list and page cache related items used to be in WebKit.
58035         When they were pushed into WebCore, some sloppy compromises were made to keep the Back/Forward cache working on Mac.
58036         Namely, a WebCore::HistoryItem had to know how to keep a WebDocumentView alive.  We accomplished this via some #ifdefs
58037         in CachedPage and having the Mac-only CachedPageMac.mm
58039         To get rid of that nastiness and pave the way for adding Back/Forward cache on other platforms, this patch adds the 
58040         concept of "CachedPagePlatformData" which can contain anything the platform API wants.  
58042         I also took the opportunity to do other cleanup and renaming client methods to better fit their new purposes.
58044         * WebCore.base.exp:
58045         * WebCore.xcodeproj/project.pbxproj:
58047         * history/CachedPage.cpp:
58048         (WebCore::CachedPage::~CachedPage): Combined "close()" and "clear()" to just "clear()" - call it from here.
58049         (WebCore::CachedPage::clear): Call clear() on the CachedPagePlatformData if it exists.  Also delete the CachedPagePlatformData.
58050         (WebCore::CachedPage::setCachedPagePlatformData):
58051         (WebCore::CachedPage::cachedPagePlatformData):
58052         * history/CachedPage.h:
58054         * history/CachedPagePlatformData.h: Added.
58055         (WebCore::CachedPagePlatformData::~CachedPagePlatformData): Virtual d'tor.
58056         (WebCore::CachedPagePlatformData::clear): Virtual method for platforms that need to do cleanup at the same time as CachedPage::clear().
58058         * history/PageCache.cpp:
58059         (WebCore::PageCache::releaseAutoreleasedPagesNow): Call "clear()" instead of "close()"
58061         * history/mac/CachedPageMac.mm: Removed. Functionality replaced with CachedPagePlatformData.
58063         * loader/FrameLoader.cpp:
58064         (WebCore::FrameLoader::transitionToCommitted): Call the new client methods.  Make some work previously done by WebKitMac cross platform 
58065           (setting the cached DocumentLoader to the Frame).
58066         (WebCore::FrameLoader::cachePageForHistoryItem):  Renamed the client methods
58068         * loader/FrameLoaderClient.h:  The very Mac-centric "makeDocumentView", "setDocumentViewFromCachedPage", and "saveDocumentViewToCachedPage"
58069           become "transitionToCommittedForNewPage", "transitionToCommittedFromCachedPage", and "savePlatformDataToCachedPage" accordingly
58071         * svg/graphics/SVGImageEmptyClients.h:
58072         (WebCore::SVGEmptyFrameLoaderClient::savePlatformDataToCachedPage):
58073         (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedFromCachedPage):
58074         (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedForNewPage):
58076 2007-12-12  Dan Bernstein  <mitz@apple.com>
58078         Reviewed by Oliver Hunt.
58080         - fix <rdar://problem/5074620> text with font:initial; fails to appear (causes fast/text/font-initial.html to fail)
58082         * css/CSSStyleSelector.cpp:
58083         (WebCore::CSSStyleSelector::applyProperty): When the font property is
58084         set to 'initial', set the font size to its initial value, 'medium',
58085         and the font family to the standard family.
58087 2007-12-12  Justin Garcia  <justin.garcia@apple.com>
58089         Reviewed by Darin Adler.
58091         <rdar://problem/5433862> Mail crashes at WebCore::highestAncestor() when deleting a particular selection
58093         * editing/DeleteSelectionCommand.cpp:
58094         (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
58095         Don't remove the table row that contained the end of the selection if it is where we are
58096         about to place the ending selection.
58097         Don't remove all empty rows after the row that contained the start of the selection,
58098         they might come after the row that contained the end of the selection.
58100 2007-12-12  Sam Weinig  <sam@webkit.org>
58102         Reviewed by Anders Carlsson.
58104         Add button to clear the Web Inspector's console.
58106         * English.lproj/InspectorLocalizedStrings.js:
58107         * page/inspector/ConsolePanel.js:
58108         * page/inspector/inspector.css:
58110 2007-12-12  Anders Carlsson  <andersca@apple.com>
58112         Reviewed by Adam and Jon.
58114         <rdar://problem/5349282>
58115         popup blocking is not applied to plugins on Windows.
58116         
58117         Implement popup blocking. If the plug-in supports the new 
58118         NPN_PushPopupsEnabledState/NPN_PopPopupsEnabledState API we just use that
58119         to determine if a plug-in request can open new windows.
58120         
58121         If a plug-in does not support the new API, we assume that a plug-in can open new windows
58122         in response to either mouse click or key press events.
58123         
58124         * plugins/win/PluginViewWin.cpp:
58125         (WebCore::PluginRequestWin::PluginRequestWin):
58126         (WebCore::PluginRequestWin::shouldAllowPopups):
58127         Add new shouldAllowPopups member.
58128         
58129         (WebCore::PluginViewWin::popPopupsStateTimerFired):
58130         Reset the popup state.
58131         
58132         (WebCore::isWindowsMessageUserGesture):
58133         New function that given a windows message id returns whether it's a user gesture or not.
58134         
58135         (WebCore::PluginViewWin::wndProc):
58136         Allow popups if the window message is a user gesture.
58137         
58138         (WebCore::PluginViewWin::dispatchNPEvent):
58139         New method that dispatches an NPEvent, turning on popups if necessary.
58140         
58141         (WebCore::PluginViewWin::paint):
58142         (WebCore::PluginViewWin::handleKeyboardEvent):
58143         (WebCore::PluginViewWin::handleMouseEvent):
58144         Call dispatchNPEvent().
58145         
58146         (WebCore::PluginViewWin::performRequest):
58147         (WebCore::PluginViewWin::load):
58148         Add calls to shouldAllowPopups().
58149         
58150         (WebCore::PluginViewWin::pushPopupsEnabledState):
58151         (WebCore::PluginViewWin::popPopupsEnabledState):
58152         New methods that maintain the popup state stack.
58153         
58154         (WebCore::PluginViewWin::arePopupsAllowed):
58155         New method that returns whether popups are allowed.
58156         
58157         (WebCore::PluginViewWin::PluginViewWin):
58158         * plugins/win/PluginViewWin.h:
58159         Add new instance variables.
58160         
58161         * plugins/win/npapi.cpp:
58162         (NPN_PushPopupsEnabledState):
58163         (NPN_PopPopupsEnabledState):
58164         Implement these.
58166 2007-12-12  Dan Bernstein  <mitz@apple.com>
58168         Reviewed by John Sullivan.
58170         - fix a bug in debug builds only where selecting an earlier item in
58171           a popup selects the first item
58173         Test: fast/forms/menulist-selection-reset.html
58175         * html/HTMLSelectElement.cpp:
58176         (WebCore::HTMLSelectElement::recalcListItems): Added an argument that
58177         tells that function whether it should update the selected state of
58178         option elements.
58179         (WebCore::HTMLSelectElement::checkListItems): Changed to pass false
58180         as the above argument.
58181         * html/HTMLSelectElement.h:
58183 2007-12-12  Adele Peterson  <adele@apple.com>
58185         Reviewed by Geoff.
58187         Fix for <rdar://problem/5643054> Remove cue point implementation for media elements
58189         When the specification for cue ranges is more final, we will implement those.
58191         * html/HTMLMediaElement.cpp:
58192         (WebCore::HTMLMediaElement::~HTMLMediaElement):
58193         (WebCore::HTMLMediaElement::load):
58194         * html/HTMLMediaElement.h:
58195         * html/HTMLMediaElement.idl:
58196         * platform/graphics/MediaPlayer.cpp:
58197         * platform/graphics/MediaPlayer.h:
58198         (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
58199         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
58200         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
58201         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
58202         (WebCore::MediaPlayerPrivate::load):
58203         (WebCore::MediaPlayerPrivate::play):
58204         (WebCore::MediaPlayerPrivate::pause):
58205         (WebCore::MediaPlayerPrivate::setEndTime):
58206         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
58207         (WebCore::MediaPlayerPrivate::endPointTimerFired):
58208         (WebCore::MediaPlayerPrivate::timeChanged):
58209         (WebCore::MediaPlayerPrivate::didEnd):
58210         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
58211         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
58212         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
58213         (WebCore::MediaPlayerPrivate::endPointTimerFired):
58214         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
58216 2007-12-12  MorganL  <morganl.webkit@yahoo.com>
58218         Reviewed by Maciej.
58220         Fixes:
58221         http://bugs.webkit.org/show_bug.cgi?id=16408
58223         When navigating back/forward to a http:// link, we should prefer to
58224         load from cache if possible.
58226         * loader/FrameLoader.cpp:
58228 2007-12-12  Anders Carlsson  <andersca@apple.com>
58230         Reviewed by Sam.
58232         <rdar://problem/5132003>
58233         dumpResourceLoadCallbacks is not implemented in DRT on Windows.
58234         
58235         * platform/network/cf/ResourceErrorCF.cpp:
58236         (WebCore::ResourceError::unpackPlatformError):
58237         Handle kCFErrorDomainWinSock.
58238         
58239         * platform/network/cf/ResourceHandleCFNet.cpp:
58240         (WebCore::willSendRequest):
58241         Ignore willSendRequest calls where the redirect response is null, like we do in 
58242         the Mac version.
58244 2007-12-12  Steve Falkenburg  <sfalken@apple.com>
58246         <rdar://problem/5643785> Fix iBench regression caused by mis-placed nested timer check.
58247         
58248         Reviewed by Anders.
58250         * platform/win/SharedTimerWin.cpp:
58251         (WebCore::TimerWindowWndProc): Don't set high-resolution timer flag inside non-high-resolution timer proc.
58253 2007-12-12  Beth Dakin  <bdakin@apple.com>
58255         Reviewed by Oliver.
58257         Fix for <rdar://problem/5643770> REGRESSION: Free-standing SVGs 
58258         with width and height 100% clip to 300 x 150
58260         Though it was correct in an earlier iteration of my patch, it is 
58261         not sufficient in the final, committed version to ask if the 
58262         relativeWidthValue() or relativeHeightValue() is greater than 0 
58263         just to determine if one has been set, for, they are now 
58264         initialized to 300 and 150 respectively! This patch instead adds a 
58265         bool to keep track of whether a container size has been set, and 
58266         only used the relative value if it has.
58268         * rendering/RenderSVGRoot.cpp:
58269         (WebCore::RenderSVGRoot::calcViewport):
58270         * svg/SVGSVGElement.cpp:
58271         (WebCore::SVGSVGElement::SVGSVGElement):
58272         * svg/SVGSVGElement.h:
58273         (WebCore::SVGSVGElement::setContainerSize):
58274         (WebCore::SVGSVGElement::hasSetContainerSize):
58276 2007-12-12  Brady Eidson  <beidson@apple.com>
58278         Reviewed by Steve Falkenburg 
58280         <rdar://problem/5012636> - WebURLProtectionSpace::realm returns the hostname rather than the authentication realm
58282         * platform/network/ProtectionSpace.cpp:
58283         (WebCore::ProtectionSpace::ProtectionSpace): Assign the realm to m_realm, instead of the host
58285 2007-12-12  Alp Toker  <alp@atoker.com>
58287         Reviewed by Maciej.
58289         http://bugs.webkit.org/show_bug.cgi?id=16388
58290         [GTK] Widget::setCursor() gets called frequently
58292         Cache the current cursor to avoid calling gdk_window_set_cursor() when
58293         there's no change in cursor.
58295         * platform/gtk/WidgetGtk.cpp:
58296         (WebCore::Widget::Widget):
58297         (WebCore::Widget::cursor):
58298         (WebCore::Widget::setCursor):
58300 2007-12-12  Rodney Dawes  <dobey@wayofthemonkey.com>
58302         Reviewed by Maciej.
58304         http://bugs.webkit.org/show_bug.cgi?id=16342
58305         Build Warning and Error fixes in WebCore GTK+
58307         Use C-style casts for casting function pointers to gpointer
58308         Use static_cast<int> to cast a float to int to fix a warning
58310         * platform/gtk/PlatformScrollBarGtk.cpp:
58311         (PlatformScrollbar::PlatformScrollbar):
58312         (PlatformScrollbar::~PlatformScrollbar):
58313         (PlatformScrollbar::gtkValueChanged):
58314         * platform/gtk/ThreadingGtk.cpp:
58315         (callFunctionOnMainThread):
58316         (callOnMainThread):
58318 2007-12-12  Dan Bernstein  <mitz@apple.com>
58320         Reviewed by Darin Adler.
58322         - better fix for a crash when pressing a key that is not associated
58323           with a command
58325         * editing/EditorCommand.cpp:
58326         (WebCore::Editor::command): Return the empty command if the command name
58327         is empty.
58329 2007-12-12  Alexey Proskuryakov  <ap@webkit.org>
58331         Reviewed by Darin.
58333         http://bugs.webkit.org/show_bug.cgi?id=16410
58334         Implement isKeypadEvent() on Windows
58336         Test: platform/win/fast/events/keyLocation-numpad.html
58338         * platform/win/KeyEventWin.cpp:
58339         (WebCore::isKeypadEvent): Added.
58340         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Also fixed a mistake with autorepeat.
58342 2007-12-12  Oliver Hunt  <oliver@apple.com>
58344         Reviewed by Maciej.
58346         <rdar://problem/5071781> window.mouseout events are not sent 
58347         to window when mouse moves out of window 
58349         Make PlatformMouseEvent recognise WM_MOUSELEAVE.
58351         * platform/win/PlatformMouseEventWin.cpp:
58352         (WebCore::messageToEventType):
58353         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
58355 2007-12-12  Sam Weinig  <sam@webkit.org>
58357         Fix Mac release build.
58359         * WebCore.base.exp:
58361 2007-12-12  Sam Weinig  <sam@webkit.org>
58363         Build fix for Qt, Gtk, and Wx.
58365         * css/CSSParser.cpp:
58366         (WebCore::CSSParser::parseValue):
58367         * loader/win/FrameLoaderWin.cpp:
58368         (WebCore::FrameLoader::urlSelected):
58369         * platform/network/curl/ResourceHandleManager.cpp:
58370         (WebCore::parseDataUrl):
58371         (WebCore::ResourceHandleManager::startJob):
58372         * platform/network/win/CookieJarWin.cpp:
58373         (WebCore::setCookies):
58374         (WebCore::cookies):
58375         * platform/network/win/ResourceHandleWin.cpp:
58376         (WebCore::ResourceHandle::start):
58377         * platform/qt/PasteboardQt.cpp:
58378         (WebCore::Pasteboard::writeURL):
58380 2007-12-11  Dan Bernstein  <mitz@apple.com>
58382         Reviewed by Maciej Stachowiak.
58384         - allow non-integer font sizes on Windows for small caps
58386         * platform/graphics/win/FontDataWin.cpp:
58387         (WebCore::FontData::smallCapsFontData):
58388         * platform/graphics/win/FontPlatformData.h:
58389         (WebCore::FontPlatformData::size):
58390         (WebCore::FontPlatformData::setSize):
58391         * platform/graphics/win/FontPlatformDataWin.cpp:
58392         (WebCore::FontPlatformData::FontPlatformData):
58394 2007-12-11  Sam Weinig  <sam@webkit.org>
58396         Build fix for Qt, Gtk, and Wx.
58398         * platform/gtk/CookieJarGtk.cpp:
58399         (WebCore::setCookies):
58400         (WebCore::cookies):
58401         * platform/qt/ClipboardQt.cpp:
58402         (WebCore::ClipboardQt::writeURL):
58403         * platform/qt/CookieJarQt.cpp:
58404         (WebCore::setCookies):
58405         (WebCore::cookies):
58406         * platform/wx/PasteboardWx.cpp:
58407         (WebCore::Pasteboard::writeURL):
58409 2007-12-11  Sam Weinig  <sam@webkit.org>
58411         Reviewed by Darin Adler.
58413         Scrub URL out of the tree in preparation for renaming KURL to URL.
58414             - Renames Document::URL() -> Document::url()
58415             - Renames DocumentLoader::URL() -> DocumentLoader::url()
58416             - Renames KURL::url() to KURL::string() and KURL::deprecatedString()
58417             - Remove FrameLoader::URL()
58418             - Various variable renames.
58420         The change from Document::URL() to Document::url() required changes
58421         to the bindings scripts as well, because URL() is the name of a DOM
58422         method.  The code generation scripts now have code to special case URL()
58423         to url().
58425         * WebCore.base.exp:
58426         * bindings/js/kjs_events.cpp:
58427         (WebCore::JSLazyEventListener::parseCode):
58428         * bindings/js/kjs_navigator.cpp:
58429         (KJS::Navigator::getValueProperty):
58430         * bindings/js/kjs_proxy.cpp:
58431         (WebCore::KJSProxy::initScript):
58432         * bindings/js/kjs_window.cpp:
58433         (KJS::Window::put):
58434         (KJS::Window::allowsAccessFrom):
58435         (KJS::Location::put):
58436         (KJS::LocationProtoFuncReplace::callAsFunction):
58437         (KJS::LocationProtoFuncReload::callAsFunction):
58438         (KJS::LocationProtoFuncAssign::callAsFunction):
58439         * bindings/scripts/CodeGenerator.pm:
58440         * bindings/scripts/CodeGeneratorCOM.pm:
58441         * bindings/scripts/CodeGeneratorJS.pm:
58442         * bindings/scripts/CodeGeneratorObjC.pm:
58443         * css/CSSImportRule.cpp:
58444         (WebCore::CSSImportRule::insertedIntoParent):
58445         * css/CSSParser.cpp:
58446         (WebCore::CSSParser::parseValue):
58447         (WebCore::CSSParser::parseContent):
58448         (WebCore::CSSParser::parseBackgroundImage):
58449         (WebCore::CSSParser::parseFontFaceSrc):
58450         (WebCore::CSSParser::parseBorderImage):
58451         (WebCore::CSSParser::createImportRule):
58452         * css/CSSStyleSelector.cpp:
58453         (WebCore::CSSStyleSelector::setEncodedURL):
58454         * dom/Document.cpp:
58455         (WebCore::Document::processHttpEquiv):
58456         (WebCore::Document::cookie):
58457         (WebCore::Document::setCookie):
58458         (WebCore::Document::domain):
58459         (WebCore::Document::setDomain):
58460         (WebCore::Document::getImageMap):
58461         (WebCore::Document::completeURL):
58462         * dom/Document.h:
58463         (WebCore::Document::url):
58464         (WebCore::Document::baseURL):
58465         * dom/Element.cpp:
58466         (WebCore::Element::baseURI):
58467         * dom/ProcessingInstruction.h:
58468         * dom/StyledElement.cpp:
58469         (WebCore::StyledElement::addCSSImageProperty):
58470         * dom/StyledElement.h:
58471         * dom/XMLTokenizer.cpp:
58472         (WebCore::XMLTokenizer::endElementNs):
58473         (WebCore::XMLTokenizer::end):
58474         * dom/XMLTokenizer.h:
58475         * editing/Editor.cpp:
58476         (WebCore::Editor::copy):
58477         * editing/markup.cpp:
58478         (WebCore::completeURLs):
58479         * history/CachedPage.h:
58480         (WebCore::CachedPage::url):
58481         * history/HistoryItem.cpp:
58482         (WebCore::HistoryItem::HistoryItem):
58483         (WebCore::HistoryItem::setURL):
58484         (WebCore::HistoryItem::isCurrentDocument):
58485         * html/HTMLBaseElement.cpp:
58486         (WebCore::HTMLBaseElement::process):
58487         * html/HTMLParser.cpp:
58488         (WebCore::HTMLParser::reportErrorToConsole):
58489         * html/HTMLScriptElement.cpp:
58490         (WebCore::HTMLScriptElement::childrenChanged):
58491         (WebCore::HTMLScriptElement::insertedIntoDocument):
58492         (WebCore::HTMLScriptElement::evaluateScript):
58493         * html/HTMLScriptElement.h:
58494         * html/HTMLTokenizer.cpp:
58495         (WebCore::HTMLTokenizer::scriptExecution):
58496         * loader/Cache.cpp:
58497         (WebCore::createResource):
58498         (WebCore::Cache::requestResource):
58499         * loader/CachedCSSStyleSheet.cpp:
58500         (WebCore::CachedCSSStyleSheet::checkNotify):
58501         * loader/CachedResource.cpp:
58502         (WebCore::CachedResource::CachedResource):
58503         * loader/CachedResource.h:
58504         (WebCore::CachedResource::):
58505         * loader/CachedScript.h:
58506         * loader/DocLoader.cpp:
58507         (WebCore::DocLoader::checkForReload):
58508         (WebCore::DocLoader::requestResource):
58509         * loader/DocumentLoader.cpp:
58510         (WebCore::DocumentLoader::url):
58511         (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
58512         (WebCore::DocumentLoader::setRequest):
58513         (WebCore::DocumentLoader::startLoadingMainResource):
58514         * loader/DocumentLoader.h:
58515         * loader/FrameLoader.cpp:
58516         (WebCore::FormSubmission::FormSubmission):
58517         (WebCore::ScheduledRedirection::ScheduledRedirection):
58518         (WebCore::FrameLoader::changeLocation):
58519         (WebCore::FrameLoader::urlSelected):
58520         (WebCore::FrameLoader::requestFrame):
58521         (WebCore::FrameLoader::loadSubframe):
58522         (WebCore::FrameLoader::submitFormAgain):
58523         (WebCore::FrameLoader::submitForm):
58524         (WebCore::FrameLoader::didExplicitOpen):
58525         (WebCore::FrameLoader::replaceContentsWithScriptResult):
58526         (WebCore::FrameLoader::executeScript):
58527         (WebCore::FrameLoader::receivedFirstData):
58528         (WebCore::FrameLoader::begin):
58529         (WebCore::FrameLoader::startIconLoader):
58530         (WebCore::FrameLoader::commitIconURLToIconDatabase):
58531         (WebCore::FrameLoader::scheduleRefresh):
58532         (WebCore::FrameLoader::redirectionTimerFired):
58533         (WebCore::FrameLoader::loadPlugin):
58534         (WebCore::FrameLoader::didNotOpenURL):
58535         (WebCore::FrameLoader::updatePolicyBaseURL):
58536         (WebCore::FrameLoader::scrollToAnchor):
58537         (WebCore::FrameLoader::startRedirectionTimer):
58538         (WebCore::FrameLoader::load):
58539         (WebCore::FrameLoader::canLoad):
58540         (WebCore::FrameLoader::shouldHideReferrer):
58541         (WebCore::FrameLoader::shouldAllowNavigation):
58542         (WebCore::FrameLoader::commitProvisionalLoad):
58543         (WebCore::FrameLoader::clientRedirected):
58544         (WebCore::FrameLoader::open):
58545         (WebCore::FrameLoader::didTellBridgeAboutLoad):
58546         (WebCore::FrameLoader::haveToldBridgeAboutLoad):
58547         (WebCore::FrameLoader::post):
58548         (WebCore::FrameLoader::loadResourceSynchronously):
58549         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
58550         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
58551         (WebCore::FrameLoader::createHistoryItem):
58552         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
58553         (WebCore::FrameLoader::loadItem):
58554         (WebCore::FrameLoader::urlsMatchItem):
58555         (WebCore::FrameLoader::recursiveGoToItem):
58556         (WebCore::FrameLoader::updateHistoryForStandardLoad):
58557         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
58558         * loader/FrameLoader.h:
58559         (WebCore::FrameLoader::url):
58560         * loader/ImageDocument.cpp:
58561         (WebCore::ImageDocument::createDocumentStructure):
58562         * loader/MainResourceLoader.cpp:
58563         (WebCore::shouldLoadAsEmptyDocument):
58564         (WebCore::MainResourceLoader::didFinishLoading):
58565         * loader/NavigationAction.cpp:
58566         (WebCore::NavigationAction::NavigationAction):
58567         * loader/NavigationAction.h:
58568         (WebCore::NavigationAction::url):
58569         * loader/PluginDocument.cpp:
58570         (WebCore::PluginTokenizer::createDocumentStructure):
58571         * loader/SubresourceLoader.cpp:
58572         (WebCore::SubresourceLoader::load):
58573         (WebCore::SubresourceLoader::create):
58574         * loader/icon/IconLoader.cpp:
58575         (WebCore::IconLoader::startLoading):
58576         (WebCore::IconLoader::finishLoading):
58577         * loader/loader.cpp:
58578         (WebCore::Loader::servePendingRequests):
58579         * loader/mac/LoaderNSURLExtras.m:
58580         (urlOriginalData):
58581         * page/Chrome.cpp:
58582         (WebCore::Chrome::setToolTip):
58583         * page/ContextMenuController.cpp:
58584         (WebCore::ContextMenuController::contextMenuItemSelected):
58585         * page/Frame.cpp:
58586         (WebCore::Frame::setUserStyleSheetLocation):
58587         * page/InspectorController.cpp:
58588         (WebCore::InspectorResource::type):
58589         (WebCore::addSourceToFrame):
58590         (WebCore::InspectorController::addScriptResource):
58591         (WebCore::InspectorController::updateScriptResourceRequest):
58592         (WebCore::InspectorController::didCommitLoad):
58593         * page/mac/WebCoreFrameBridge.mm:
58594         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
58595         * platform/KURL.h:
58596         (WebCore::KURL::string):
58597         (WebCore::KURL::deprecatedString):
58598         * platform/mac/ClipboardMac.mm:
58599         (WebCore::ClipboardMac::getData):
58600         * platform/mac/CookieJar.mm:
58601         (WebCore::cookies):
58602         (WebCore::setCookies):
58603         * platform/mac/PasteboardMac.mm:
58604         (WebCore::Pasteboard::writeURL):
58605         (WebCore::fileWrapperForImage):
58606         (WebCore::Pasteboard::writeImage):
58607         (WebCore::Pasteboard::plainText):
58608         * platform/network/ResourceHandle.cpp:
58609         (WebCore::ResourceHandle::portAllowed):
58610         * platform/network/ResourceRequestBase.cpp:
58611         (WebCore::ResourceRequestBase::isNull):
58612         * platform/network/cf/ResourceHandleCFNet.cpp:
58613         (WebCore::willSendRequest):
58614         (WebCore::didReceiveResponse):
58615         (WebCore::didReceiveData):
58616         (WebCore::didFinishLoading):
58617         (WebCore::didFail):
58618         (WebCore::didReceiveChallenge):
58619         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
58620         (WebCore::ResourceHandle::~ResourceHandle):
58621         (WebCore::ResourceHandle::start):
58622         * platform/win/ClipboardUtilitiesWin.cpp:
58623         (WebCore::createGlobalData):
58624         (WebCore::urlToMarkup):
58625         * platform/win/ClipboardWin.cpp:
58626         (WebCore::writeURL):
58627         (WebCore::writeImageToDataObject):
58628         (WebCore::ClipboardWin::writeURL):
58629         (WebCore::ClipboardWin::writeRange):
58630         * platform/win/PasteboardWin.cpp:
58631         (WebCore::Pasteboard::writeSelection):
58632         (WebCore::Pasteboard::writeURL):
58633         * plugins/win/PluginDatabaseWin.cpp:
58634         (WebCore::PluginDatabaseWin::findPlugin):
58635         * plugins/win/PluginStreamWin.cpp:
58636         (WebCore::PluginStreamWin::startStream):
58637         (WebCore::PluginStreamWin::destroyStream):
58638         * plugins/win/PluginViewWin.cpp:
58639         (WebCore::scriptStringIfJavaScriptURL):
58640         (WebCore::PluginViewWin::performRequest):
58641         * svg/SVGImageLoader.cpp:
58642         (WebCore::SVGImageLoader::updateFromElement):
58643         * xml/XMLHttpRequest.cpp:
58644         (WebCore::XMLHttpRequest::getResponseXML):
58645         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
58646         * xml/XSLImportRule.cpp:
58647         (WebCore::XSLImportRule::loadSheet):
58648         * xml/XSLTProcessor.cpp:
58649         (WebCore::XSLTProcessor::createDocumentFromSource):
58650         (WebCore::xsltStylesheetPointer):
58651         (WebCore::xmlDocPtrFromNode):
58653 2007-12-11  Beth Dakin  <bdakin@apple.com>
58655         Reviewed by Darin.
58657         Fix for <rdar://problem/5641255> SVGs with width and height 100% 
58658         fail to render when used as background images
58660         CachedImage now has a setImageContainerSize function. It is only 
58661         needed for SVG right now.
58662         * loader/CachedImage.cpp:
58663         (WebCore::CachedImage::setImageContainerSize):
58664         * loader/CachedImage.h:
58666         Relatively sized SVGs have no intrinsic size. Because this call is 
58667         low-level enough that we cannot pass in the container size and get 
58668         the real size of the SVG, we need to know if it has relative 
58669         dimensions, and if so, we need to get the size from scaledTileSize.
58670         * platform/graphics/Image.cpp:
58671         (WebCore::Image::drawTiled):
58672         * platform/graphics/Image.h:
58673         (WebCore::Image::setContainerSize):
58674         (WebCore::Image::hasRelativeWidth):
58675         (WebCore::Image::hasRelativeHeight):
58677         Re-factored calculateBackgroundSize a bit so that it returns an 
58678         IntSize. Made it a member function so that it can send m_width and 
58679         m_height along to setImageContainerSize.
58680         * rendering/RenderBox.cpp:
58681         (WebCore::RenderBox::calculateBackgroundSize):
58682         (WebCore::RenderBox::calculateBackgroundImageGeometry):
58683         * rendering/RenderBox.h:
58685         Need to account for relatively sized SVGs in calcViewport()
58686         * rendering/RenderSVGRoot.cpp:
58687         (WebCore::RenderSVGRoot::calcViewport):
58688         
58689         Added new member variables to store the size of the SVG container. 
58690         relativeWidthValue() and relativeHeightValue() use the stored SVG 
58691         container size to correctly calculate the width and height of a 
58692         relatively sized SVG.
58693         * svg/SVGSVGElement.cpp:
58694         (WebCore::SVGSVGElement::SVGSVGElement):
58695         (WebCore::SVGSVGElement::setContainerSize):
58696         (WebCore::SVGSVGElement::relativeWidthValue):
58697         (WebCore::SVGSVGElement::relativeHeightValue):
58698         * svg/SVGSVGElement.h:
58699         (WebCore::SVGSVGElement::containerSize):
58700         
58701         Re-factored size calculations to use the size of the container.
58702         * svg/graphics/SVGImage.cpp:
58703         (WebCore::SVGImage::setContainerSize):
58704         (WebCore::SVGImage::size):
58705         (WebCore::SVGImage::hasRelativeWidth):
58706         (WebCore::SVGImage::hasRelativeHeight):
58707         * svg/graphics/SVGImage.h:
58709 2007-12-11  Darin Adler  <darin@apple.com>
58711         * editing/Editor.cpp:
58712         (WebCore::Editor::yankFromKillRing): Try to fix non-Mac builds by adding
58713         a missing return statement.
58715 2007-12-11  Darin Adler  <darin@apple.com>
58717         Reviewed by Geoff.
58719         - exposed many new commands to the DOM Document executeCommand function by
58720           merging the JSEditor and Editor executeCommand implementations
58721         - replaced the execCommand function with a EditorCommand class
58722         - replaced the WTF::StrHash<> class template with the WebCore::StringHash class
58723         - replaced the WTF::CaseInsensitiveHash<> class template with the
58724           WebCore::CaseFoldingHash class
58726         * WebCore.base.exp: Updated.
58727         * WebCore.pro: Added EditorCommand.cpp, removed JSEditor.cpp.
58728         * WebCore.vcproj/WebCore.vcproj: Ditto.
58729         * WebCore.xcodeproj/project.pbxproj: Ditto.
58730         * WebCoreSources.bkl: Ditto.
58732         * dom/Document.cpp:
58733         (WebCore::Document::Document): Removed code to set up m_jsEditor.
58734         (WebCore::Document::~Document): Removed code to delete m_jsEditor.
58735         (WebCore::command): Added. Helper function that gets an Editor::Command.
58736         (WebCore::Document::executeCommand): Changed to use Editor::Command instead of
58737         JSEditor.
58738         (WebCore::Document::queryCommandEnabled): Ditto.
58739         (WebCore::Document::queryCommandIndeterm):
58740         (WebCore::Document::queryCommandState): Ditto.
58741         (WebCore::Document::queryCommandSupported): Ditto.
58742         (WebCore::Document::queryCommandValue): Ditto.
58744         * dom/Document.h: Removed JSEditor, jsEditor, m_jsEditor. Changed to
58745         use CaseFoldingHash.
58747         * editing/Editor.cpp:
58748         (WebCore::Editor::selectionForCommand): Renamed from selectionForEvent and
58749         made into a member function so it is accessible from the new EditorCommand.cpp file.
58750         Also changed to get the selection from the passed-in frame instead of from the
58751         page, because this should work on the targeted frame unless the event overrides it.
58752         (WebCore::Editor::handleKeypress): Updated for selectionForCommand change.
58753         (WebCore::Editor::handleInputMethodKeypress): Ditto.
58754         (WebCore::imageElementFromImageDocument): Renamed and changed to return
58755         a HTMLImageElement instead of a Node*.
58756         (WebCore::Editor::canCopy): Updated for name change.
58757         (WebCore::Editor::selectionUnorderedListState): Updated for TriState change.
58758         (WebCore::Editor::selectionOrderedListState): Ditto.
58759         (WebCore::Editor::selectionStartHasStyle): Make type of local more specific.
58760         (WebCore::updateState): Moved here from Frame.
58761         (WebCore::Editor::selectionHasStyle): Ditto.
58762         (WebCore::Editor::Editor): Initialize m_shouldStartNewKillRingSequence.
58763         (WebCore::Editor::insertTextWithoutSendingTextEvent): Updated for
58764         selectionForCommand change.
58765         (WebCore::Editor::copy): Updated for imageElementFromImageDocument change.
58766         (WebCore::Editor::toggleBold): Call the ToggleBold command via the command
58767         machinery since it's no longer in this file as a local function.
58768         (WebCore::Editor::toggleUnderline): Call the ToggleUnderline command.
58769         (WebCore::Editor::setBaseWritingDirection): Change type of argument and of
58770         local variable.
58771         (WebCore::Editor::addToKillRing): Moved here from EditorMac. Not useful
58772         without a kill ring, but it's relatively straightforward to implement one.
58773         (WebCore::Editor::appendToKillRing): Put default implementation here for
58774         platforms other than Mac. We should probably put a simple kill ring
58775         implementation here -- doesn't need to be shared with the OS oh platforms
58776         other than Mac.
58777         (WebCore::Editor::prependToKillRing): Ditto.
58778         (WebCore::Editor::yankFromKillRing): Ditto.
58779         (WebCore::Editor::startNewKillRingSequence): Ditto.
58780         (WebCore::Editor::setKillRingToYankedState): Ditto.
58782         * editing/Editor.h: Moved the TriState enum here instead of inside the
58783         Frame class. Added EditorCommandSource enum. Moved selectionHasStyle
58784         here from the Frame class. Added Editor::Command class with five functions
58785         for the various things you can do with a command (execute it, check if it
58786         can be used, and its state and value). Changed hte parameter of
58787         setBaseWritingDirection to be a const String& rather than a String.
58788         Got rid of the kill-ring-related operations, but added the kill ring
58789         functions themselves. Made selectedRange() public. Made the
58790         m_startNewKillRingSequence not Mac-specific and added "should" to its
58791         name.
58793         * editing/EditorCommand.cpp: Copied from WebCore/editing/Editor.cpp.
58794         Retained only the editing commands.
58795         (WebCore::targetFrame): Moved to the top of the file.
58796         (WebCore::executeApplyStyle): Added. Helper function for commands
58797         that need to apply styles.
58798         (WebCore::executeToggleStyle): Added. Helper function for commands
58799         that need to toggle styles based on the style of the start of selection.
58800         (WebCore::executeApplyParagraphStyle): Added. Like executeApplyStyle, but
58801         for paragraph styles.
58802         (WebCore::executeInsertFragment): Added. Helper function for commands
58803         that need to insert a DOM fragment.
58804         (WebCore::executeInsertNode): Added. Helper function for commands that
58805         need to insert a tree rooted in a single DOM node.
58806         (WebCore::stateStyle): Added. Helper function for the state of commands
58807         that represent style.
58808         (WebCore::valueStyle): Added. Helper function for the value of commands
58809         that represent style.
58810         (WebCore::canScroll): Added. Helper functions for some move and scroll
58811         commands that need to determine if the renderer they are in can scroll.
58812         (WebCore::unionDOMRanges): Moved here from EditorMac.
58813         (WebCore::executeBackColor):
58814         (WebCore::executeBackwardDelete):
58815         (WebCore::executeCopy):
58816         (WebCore::executeCreateLink):
58817         (WebCore::executeCut):
58818         (WebCore::executeDelete):
58819         (WebCore::executeDeleteToMark):
58820         (WebCore::executeDeleteWordBackward):
58821         (WebCore::executeDeleteWordForward):
58822         (WebCore::executeFindString):
58823         (WebCore::executeFontName):
58824         (WebCore::executeFontSize):
58825         (WebCore::executeFontSizeDelta):
58826         (WebCore::executeForeColor):
58827         (WebCore::executeFormatBlock):
58828         (WebCore::executeForwardDelete):
58829         (WebCore::executeIndent):
58830         (WebCore::executeInsertBacktab):
58831         (WebCore::executeInsertHorizontalRule):
58832         (WebCore::executeInsertHTML):
58833         (WebCore::executeInsertImage):
58834         (WebCore::executeInsertLineBreak):
58835         (WebCore::executeInsertNewline):
58836         (WebCore::executeInsertNewlineInQuotedContent):
58837         (WebCore::executeInsertOrderedList):
58838         (WebCore::executeInsertParagraph):
58839         (WebCore::executeInsertTab):
58840         (WebCore::executeInsertText):
58841         (WebCore::executeInsertUnorderedList):
58842         (WebCore::executeJustifyCenter):
58843         (WebCore::executeJustifyFull):
58844         (WebCore::executeJustifyLeft):
58845         (WebCore::executeJustifyRight):
58846         (WebCore::executeMoveBackward):
58847         (WebCore::executeMoveBackwardAndModifySelection):
58848         (WebCore::executeMoveDown):
58849         (WebCore::executeMoveDownAndModifySelection):
58850         (WebCore::executeMoveDownByPageAndModifyCaret):
58851         (WebCore::executeMoveForward):
58852         (WebCore::executeMoveForwardAndModifySelection):
58853         (WebCore::executeMoveLeft):
58854         (WebCore::executeMoveLeftAndModifySelection):
58855         (WebCore::executeMoveRight):
58856         (WebCore::executeMoveRightAndModifySelection):
58857         (WebCore::executeMoveToBeginningOfDocument):
58858         (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
58859         (WebCore::executeMoveToBeginningOfLine):
58860         (WebCore::executeMoveToBeginningOfLineAndModifySelection):
58861         (WebCore::executeMoveToBeginningOfParagraph):
58862         (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
58863         (WebCore::executeMoveToBeginningOfSentence):
58864         (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
58865         (WebCore::executeMoveToEndOfDocument):
58866         (WebCore::executeMoveToEndOfDocumentAndModifySelection):
58867         (WebCore::executeMoveToEndOfSentence):
58868         (WebCore::executeMoveToEndOfSentenceAndModifySelection):
58869         (WebCore::executeMoveToEndOfLine):
58870         (WebCore::executeMoveToEndOfLineAndModifySelection):
58871         (WebCore::executeMoveToEndOfParagraph):
58872         (WebCore::executeMoveToEndOfParagraphAndModifySelection):
58873         (WebCore::executeMoveParagraphBackwardAndModifySelection):
58874         (WebCore::executeMoveParagraphForwardAndModifySelection):
58875         (WebCore::executeMoveUp):
58876         (WebCore::executeMoveUpAndModifySelection):
58877         (WebCore::executeMoveUpByPageAndModifyCaret):
58878         (WebCore::executeMoveWordBackward):
58879         (WebCore::executeMoveWordBackwardAndModifySelection):
58880         (WebCore::executeMoveWordForward):
58881         (WebCore::executeMoveWordForwardAndModifySelection):
58882         (WebCore::executeMoveWordLeft):
58883         (WebCore::executeMoveWordLeftAndModifySelection):
58884         (WebCore::executeMoveWordRight):
58885         (WebCore::executeMoveWordRightAndModifySelection):
58886         (WebCore::executeOutdent):
58887         (WebCore::executePaste):
58888         (WebCore::executePasteAndMatchStyle):
58889         (WebCore::executePrint):
58890         (WebCore::executeRedo):
58891         (WebCore::executeRemoveFormat):
58892         (WebCore::executeSelectAll):
58893         (WebCore::executeSelectToMark):
58894         (WebCore::executeSetMark):
58895         (WebCore::executeStrikethrough):
58896         (WebCore::executeSubscript):
58897         (WebCore::executeSuperscript):
58898         (WebCore::executeSwapWithMark):
58899         (WebCore::executeToggleBold):
58900         (WebCore::executeToggleItalic):
58901         (WebCore::executeTranspose):
58902         (WebCore::executeUnderline):
58903         (WebCore::executeUndo):
58904         (WebCore::executeUnlink):
58905         (WebCore::executeUnscript):
58906         (WebCore::executeUnselect):
58907         (WebCore::executeYank):
58908         (WebCore::executeYankAndSelect):
58909         (WebCore::supported):
58910         (WebCore::supportedPaste):
58911         (WebCore::enabled):
58912         (WebCore::enabledAnySelection):
58913         (WebCore::enabledAnySelectionAndMark):
58914         (WebCore::enableCaretInEditableText):
58915         (WebCore::enabledCopy):
58916         (WebCore::enabledCut):
58917         (WebCore::enabledInEditableText):
58918         (WebCore::enabledInRichlyEditableText):
58919         (WebCore::enabledPaste):
58920         (WebCore::enabledRangeInEditableText):
58921         (WebCore::enabledRangeInRichlyEditableText):
58922         (WebCore::enabledRedo):
58923         (WebCore::enabledUndo):
58924         (WebCore::stateNone):
58925         (WebCore::stateBold):
58926         (WebCore::stateItalic):
58927         (WebCore::stateOrderedList):
58928         (WebCore::stateStrikethrough):
58929         (WebCore::stateSubscript):
58930         (WebCore::stateSuperscript):
58931         (WebCore::stateUnderline):
58932         (WebCore::stateUnorderedList):
58933         (WebCore::valueNull):
58934         (WebCore::valueBackColor):
58935         (WebCore::valueFontName):
58936         (WebCore::valueFontSize):
58937         (WebCore::valueFontSizeDelta):
58938         (WebCore::valueForeColor):
58939         (WebCore::createCommandMap): Added lots of commands, including all the commands
58940         from JSEditor. A few commands needed different behavior based on whether they are
58941         invoked from the DOM or a keyboard binding.
58942         (WebCore::Editor::command): Added. Gets a command object given a name.
58943         (WebCore::Editor::Command::Command): Added.
58944         (WebCore::Editor::Command::execute): Added.
58945         (WebCore::Editor::Command::isSupported): Added.
58946         (WebCore::Editor::Command::isEnabled): Added.
58947         (WebCore::Editor::Command::state): Added.
58948         (WebCore::Editor::Command::value): Added.
58949         (WebCore::Editor::execCommand): Changed to call command().execute().
58951         * editing/JSEditor.cpp: Removed.
58952         * editing/JSEditor.h: Removed.
58954         * editing/mac/EditorMac.mm: Changed to provide kill ring primitives intead of
58955         kill ring commands, so the kill ring commands can be cross-platform.
58956         (WebCore::Editor::appendToKillRing): Added.
58957         (WebCore::Editor::prependToKillRing): Added.
58958         (WebCore::Editor::yankFromKillRing): Added.
58959         (WebCore::Editor::startNewKillRingSequence): Added.
58960         (WebCore::Editor::setKillRingToYankedState): Added.
58962         * page/Frame.cpp: Removed selectionHasStyle, TriState, and updateState.
58963         * page/Frame.h: Ditto.
58965         * page/mac/WebCoreFrameBridge.mm: Removed selectionHasStyle.
58966         * page/mac/WebCoreFrameBridge.h: Ditto.
58968         * platform/ContextMenu.cpp:
58969         (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for TriState change.
58971         * platform/text/StringHash.h:
58972         (WebCore::StringHash::hash): Merged the StrHash<> template classes into this.
58973         (WebCore::StringHash::equal): Ditto.
58974         (WebCore::CaseFoldingHash::hash): Merged the CaseInsensitiveHash<> template
58975         classes into this.
58976         (WebCore::CaseFoldingHash::equal): Ditto.
58978         * platform/text/StringImpl.cpp:
58979         (WebCore::equal): Changed to invoke StringHash.
58980         (WebCore::equalIgnoringCase): Changed to invoke CaseFoldingHash.
58982         * dom/DOMImplementation.cpp:
58983         (WebCore::addString): Updated to use StringHash and CaseFoldingHash.
58984         (WebCore::isSVG10Feature): Ditto.
58985         (WebCore::isSVG11Feature): Ditto.
58986         * loader/FrameLoader.cpp:
58987         (WebCore::localSchemes): Ditto.
58988         * platform/graphics/FontCache.cpp:
58989         (WebCore::computeHash): Ditto.
58990         * platform/network/HTTPHeaderMap.h: Ditto.
58991         * platform/text/PlatformString.h: Ditto.
58992         * platform/text/StringImpl.h: Ditto.
58993         * rendering/RenderPartObject.cpp:
58994         (WebCore::RenderPartObject::updateWidget): Ditto.
58995         * xml/XMLHttpRequest.cpp:
58996         (WebCore::canSetRequestHeader): Ditto.
58998         * rendering/RenderTreeAsText.cpp: Removed stray include of JSEditor.h.
59000 2007-12-11  Darin Adler  <darin@apple.com>
59002         * platform/wx/KeyboardEventWx.cpp:
59003         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Another try at fixing the
59004         WX build. Changes the code around a little bit.
59006 2007-12-11  Darin Adler  <darin@apple.com>
59008         * platform/wx/KeyboardEventWx.cpp:
59009         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Quick try at fixing build.
59011 2007-12-11  Dan Bernstein  <mitz@apple.com>
59013         Reviewed by Darin Adler.
59015         - fix <rdar://problem/5631507> Text doesn't wrap properly at Tamil version of Wikipedia
59017         Test: fast/text/international/complex-character-based-fallback.html
59019         * platform/graphics/Font.cpp:
59020         (WebCore::Font::glyphDataForCharacter): Added a forceSmallCaps argument
59021         that forces this function to use the small caps font. It is used for
59022         combining marks that need to combine with a small cap.
59023         * platform/graphics/Font.h:
59024         * platform/win/UniscribeController.cpp:
59025         (WebCore::UniscribeController::advance): Changed to split the string
59026         into runs of characters that will be rendered using the same FontData.
59027         This is done by calling glyphDataForCharacter() for each cahracter to
59028         find the FontData it should be rendered with.
59029         (WebCore::UniscribeController::itemizeShapeAndPlace): Added a fontData
59030         argument that is passed on to shapeAndPlaceItem() instead of the
59031         smallCaps argument.
59032         (WebCore::UniscribeController::shapeAndPlaceItem): Added a fontData
59033         argument and removed the font fallback logic from this function, as
59034         it is now expected to be called with an item all of whose characters
59035         can be rendered with the given fontData.
59036         * platform/win/UniscribeController.h:
59038 2007-12-07  Alexey Proskuryakov  <ap@webkit.org>
59040         Reviewed by Darin.
59042         <rdar://problem/5535636>
59043         Have to press 4 times instead of 2 times to get the expected result of ^^ with german keyboard.
59045         http://bugs.webkit.org/show_bug.cgi?id=13916
59046         JavaScript detects Tab as a character input on a textfield validation
59048         Test: platform/win/fast/events/double-dead-char.html
59050         * platform/PlatformKeyboardEvent.h:
59051         (WebCore::PlatformKeyboardEvent::):
59052         (WebCore::PlatformKeyboardEvent::type):
59053         (WebCore::PlatformKeyboardEvent::windowsVirtualKeyCode):
59054         (WebCore::PlatformKeyboardEvent::setWindowsVirtualKeyCode):
59055         (WebCore::PlatformKeyboardEvent::keyIdentifier):
59056         (WebCore::PlatformKeyboardEvent::setIsAutoRepeat):
59057         Added an explicit type member to differentiate different kinds of events:
59058           RawKeyDown == keydown == WM_KEYDOWN
59059           KeyUp == keyup == WM_KEYUP
59060           Char == keypress == WM_CHAR
59061           KeyDown == e.g. NSKeyDown or NSFlagsChanged, used on platforms that have a different model for
59062           event processing, and needs to be converted to RawKeyDown (+ Char) for processing in DOM.
59064         * platform/mac/KeyEventMac.mm:
59065         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
59066         Fix Enter (numeric keypad) charCode to match Return, as we check for it from keypress default handlers.
59067         (WebCore::windowsKeyCodeForKeyEvent): 
59068         (WebCore::isKeyUpEvent): Made it do something closer to what it claims; added a FIXME explaining
59069         that it still fails.
59070         (WebCore::disambiguateKeyDownEvent): Downgrade from KeyDown to RawKeyDown or Char, removing information that
59071         should not be available in those (because it cannot be provided on Windows).
59073         * platform/win/KeyEventWin.cpp:
59074         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
59075         Used standard Windows constants for bit masks instead of our own ones.
59076         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Should never be called on Windows.
59078         * platform/gtk/KeyEventGtk.cpp:
59079         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
59080         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
59081         * platform/qt/PlatformKeyboardEventQt.cpp:
59082         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
59083         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
59084         * platform/wx/KeyboardEventWx.cpp:
59085         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
59086         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
59087         Updated for cross-platform changes as much as it was possible without appropriate build
59088         environments.
59090         * WebCore.base.exp: Export PlatformKeyboardEvent::disambiguateKeyDownEvent(), used by platforms that need to
59091         convert their fancy key events to RawKeyDown/Char pairs. Export Editor::isTextInsertionCommand().
59093         * bridge/EditorClient.h:
59094         Renamed handleKeypress() to handleKeyboardEvent(), as it gets both keydowns and keypresses.
59095         Renamed handleInputMethodKeypress() to handleInputMethodKeydown(), as IMs work with raw keydowns.
59097         * dom/Document.h:
59098         * dom/Document.cpp:
59099         (WebCore::Document::defaultEventHandler): Moved accesskey processing to EventHandler.
59101         * dom/KeyboardEvent.h: Added comments describing keyCode/charCode behavior.
59103         * dom/KeyboardEvent.cpp:
59104         (WebCore::eventTypeForKeyboardEventType):
59105         (WebCore::KeyboardEvent::KeyboardEvent): Conversion between platform and DOM event types is
59106         now straightforward, so scary hacks such as using autorepeat to distinguish types are
59107         not needed.
59108         (WebCore::KeyboardEvent::keyCode): Added a comment describing other browsers' behavior.
59109         (WebCore::KeyboardEvent::charCode): Added a comment describing other browsers' behavior.
59110         Changed to a more compatible behavior: raw keydown/keyup events do not and can not have
59111         character codes.
59113         * editing/Editor.h:
59114         * editing/Editor.cpp:
59115         (WebCore::Editor::isTextInsertionCommand): Is this command actually text input in disguise?
59116         (WebCore::Editor::handleKeyboardEvent): Updated for new function names.
59117         (WebCore::Editor::handleInputMethodKeydown): Ditto.
59119         * html/HTMLButtonElement.cpp:
59120         (WebCore::HTMLButtonElement::defaultEventHandler): Perform the default action when handling an
59121         appropriate event. Enter is processed on keypress (and thus should be checked for via charCode,
59122         not keyIdentifier), Space is processed on keydown+keyup! We now match IE in that a button is
59123         highlighted when Space is pressed.
59125         * html/HTMLInputElement.cpp:
59126         (WebCore::HTMLInputElement::defaultEventHandler):
59127         * html/HTMLSelectElement.cpp:
59128         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
59129         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
59130         Made a number of fixes to when default actions take place, similar to HTMLButtonElement ones
59131         described above.
59133         * page/EventHandler.cpp:
59134         (WebCore::EventHandler::keyEvent): Unless we have a combined KeyDown, just forward the event
59135         to the target. Call accesskey handling directly, as it doesn't seem to be part of normal event
59136         handling in IE. Also streamlined the code in KeyDown case, thanks to handleInputMethodKeypress()
59137         now being handleInputMethodKeydown().
59138         (WebCore::EventHandler::handleTextInputEvent): Check that we were not called from keydown.
59139         (WebCore::EventHandler::defaultTextInputEventHandler): Removed a call to defaultTabEventHandler,
59140         as default tab handling happens when processing keydown.
59141         (WebCore::handleAccessKey): Moved from Document, as access keys are processed outside normal
59142         event handling. Fixed accesskey processing to use information that's available in a raw keydown
59143         event.
59145         (WebCore::EventHandler::defaultKeyboardEventHandler): Do not ignore keydown; in particular,
59146         handle tabs during keydown processing.
59148         * page/mac/EventHandlerMac.mm:
59149         (WebCore::EventHandler::currentKeyboardEvent): Disambiguate KeyDown as RawKeyDown, as this is
59150         what callers want.
59152         * platform/text/PlatformString.h:
59153         * platform/text/String.cpp:
59154         (WebCore::String::characterStartingAt):
59155         * platform/text/StringImpl.cpp:
59156         (WebCore::StringImpl::characterStartingAt):
59157         * platform/text/StringImpl.h:
59158         Added a UChar32 accessor.
59160         * svg/graphics/SVGImageEmptyClients.h:
59161         (WebCore::SVGEmptyEditorClient::handleKeyboardEvent):
59162         (WebCore::SVGEmptyEditorClient::handleInputMethodKeydown):
59163         Updated for new function names.
59165 2007-12-11  John Sullivan  <sullivan@apple.com>
59167         Reviewed by Adele
59169         Tiger build fix -- don't call QTMovieView setDelegate: directly because it's not public
59171         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
59172         (WebCore::MediaPlayerPrivate::createQTMovieView):
59173         (WebCore::MediaPlayerPrivate::detachQTMovieView):
59175 2007-12-11  Alexey Proskuryakov  <ap@webkit.org>
59177         Reviewed by Darin.
59179         http://bugs.webkit.org/show_bug.cgi?id=16325
59180         <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
59182         Fix this on Windows, too!
59184         Test: http/tests/misc/empty-cookie.html
59186         * platform/network/win/CookieJarWin.cpp:
59187         (WebCore::setCookies):
59188         (WebCore::cookies):
59189         Same fix as on Mac, translated into CF.
59191         * platform/win/CookieJarWin.cpp: Removed - the real one is in platform/network/win.
59193 2007-12-11  Christian Dywan  <christian@twotoasts.de>
59195         Reviewed by Alp Toker.
59197         http://bugs.webkit.org/show_bug.cgi?id=16371
59198         Implement additional mouse cursors for Gtk
59200         Added cursor bitmaps from Mozilla:
59201         http://lxr.mozilla.org/mozilla1.8/source/widget/src/gtk2/nsGtkCursors.h
59203         * platform/gtk/CursorGtk.cpp:
59204         (WebCore::customCursorNew):
59205         (WebCore::verticalTextCursor):
59206         (WebCore::cellCursor):
59207         (WebCore::contextMenuCursor):
59208         (WebCore::noDropCursor):
59209         (WebCore::copyCursor):
59210         (WebCore::progressCursor):
59211         (WebCore::aliasCursor):
59212         (WebCore::noneCursor):
59213         (WebCore::notAllowedCursor):
59214         (WebCore::zoomInCursor):
59215         (WebCore::zoomOutCursor):
59216         * platform/gtk/CursorGtk.h: Added.
59218 2007-12-10  Oliver Hunt  <oliver@apple.com>
59220         Reviewed by Weinig, Dan, and Alexey.
59222         Fix character set used for dynamically loaded scripts.
59224         Fix for:
59225             <rdar://problem/5333163> Safari can not display the mouse over pop menu on ChinaTimes News site correctly.
59226             <rdar://problem/5530048> [Safari]? :Leopard9A576: The typed CH characters displays as garbage in Sina website after reloading the webpage.
59227             <rdar://problem/5416588> All menus for chinese IBM site have wrong encoding
59228             
59229         Use the same logic to determine the charset for a script loaded dynamically
59230         as we do for a statically loaded script.
59232         * html/HTMLScriptElement.cpp:
59233         (WebCore::HTMLScriptElement::insertedIntoDocument):
59235 2007-12-10  Justin Garcia  <justin.garcia@apple.com>
59237         Reviewed by Oliver Hunt.
59239         <rdar://problem/5482023> GoogleDocs: After FormatBlock in an empty document, certain functions are disabled
59240         
59241         We were trying to insert a block of the requested type before the body element.
59242         
59243         * editing/FormatBlockCommand.cpp:
59244         (WebCore::FormatBlockCommand::doApply): 
59245         Removed unnecessary ()s in the if condition.
59246         Removed "|| !upstreamStart.node()->isDescendantOf(root)" from the if condition, since
59247         a) upstreamStart will never be outside the root editable element, since in that case
59248         there would be no block inside the editable root to Format, and b) if upstreamStart.node() 
59249         *is* the root, then refNode is the root, and we shouldn't insert before the root, we should insert
59250         at [root, 0].
59251         Added comments to explain the use of upstream() in the second if-clause.
59252         Added an early return for case where there is nothing selected, in that case, there is nothing
59253         to move.
59255 2007-12-10  Adele Peterson  <adele@apple.com>
59257         Reviewed and partially fixed by Tim Hatcher.
59259         Remaining part of fix for <rdar://problem/5633400>
59260         Transformed <video> is not clipped correctly until a repaint is forced
59262         Replace the implementation of a QTKit method to avoid repaints from the NSView system associated with the QTMovie
59263         from clobbering the WebCore repaints.
59265         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerRepaint): Added.
59266         * html/HTMLMediaElement.h:
59267         * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::repaint): Added.
59268         * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerRepaint): Added.
59270         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
59271         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
59272         (method_setImplementation): Added for Tiger.
59274         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call detachQTMovieView, which now does more cleanup.
59275         (WebCore::MediaPlayerPrivate::cancelLoad): ditto.
59276         (WebCore::MediaPlayerPrivate::setVisible): ditto.
59277         (WebCore::MediaPlayerPrivate::detachQTMovieView): Clear the delegate as well as m_qtMovieView pointer.
59279         (WebCore::MediaPlayerPrivate::repaint): Added.  Triggers a repaint on the video renderer.
59280         (-[WebCoreMovieObserver repaint]): ditto.
59282         (WebCore::mainThreadSetNeedsDisplay): Added.
59283          Does a WebCore repaint instead of going through the view repaint system for QTMovieView.
59284         (WebCore::MediaPlayerPrivate::createQTMovieView): Replace the implementation of _mainThreadSetNeedsDisplay.
59286 2007-12-10  Geoffrey Garen  <ggaren@apple.com>
59288         Reviewed by Sam Weinig.
59290         Updated for rename in JavaScriptCore.
59292         * bridge/mac/WebCoreScriptDebugger.mm:
59293         (-[WebCoreScriptCallFrame scopeChain]):
59294         (-[WebCoreScriptCallFrame functionName]):
59295         (-[WebCoreScriptCallFrame evaluateWebScript:]):
59297 2007-12-10  Rodney Dawes  <dobey@wayofthemonkey.com>
59299         Bug 16383: Ambiguous Window Usage in kjs_dom.cpp
59300         <http://bugs.webkit.org/show_bug.cgi?id=16383>
59302         Use KJS::Window not the ambiguous Window
59304         Reviewed by ddkilzer.
59306         * bindings/js/kjs_dom.cpp (checkNodeSecurity):
59308 2007-12-10  Sam Weinig  <sam@webkit.org>
59310         Fix non-mac builds.
59312         * page/WindowFeatures.cpp: #include <wtf/MathExtras.h> for isnan.
59314 2007-12-10  Marvin Decker  <marv.decker@gmail.com>
59316         Reviewed by Darin.
59318         Fix a divide by 0 in the progress tracker.
59319         http://bugs.webkit.org/show_bug.cgi?id=15055
59321         * loader/ProgressTracker.cpp:
59322         (WebCore::ProgressTracker::incrementProgress):
59324 2007-12-09  Sam Weinig  <sam@webkit.org>
59326         Reviewed by Darin.
59328         More cleanup of kjs_window.
59329         - Move WindowFeatures from bridge/ to page/
59330         - Move functions related to WindowFeatures (boolFeature,
59331           floatFeature, setWindowFeature, parseWindowFeatures) into the class.
59332         - Fix up whitespace.
59334         * WebCore.vcproj/WebCore.vcproj:
59335         * WebCore.xcodeproj/project.pbxproj:
59336         * bindings/js/kjs_window.cpp:
59337         (KJS::DOMWindowTimer::~DOMWindowTimer):
59338         (KJS::createWindow):
59339         (KJS::showModalDialog):
59340         (KJS::Window::getOwnPropertySlot):
59341         (KJS::Window::allowsAccessFrom):
59342         (KJS::Window::shouldInterruptScript):
59343         (KJS::WindowProtoFuncAToB::callAsFunction):
59344         (KJS::WindowProtoFuncOpen::callAsFunction):
59345         (KJS::Window::setReturnValueSlot):
59346         (KJS::ScheduledAction::execute):
59347         (KJS::Window::timerFired):
59348         (KJS::Location::Location):
59349         (KJS::Location::getValueProperty):
59350         (KJS::Location::getOwnPropertySlot):
59351         (KJS::Location::put):
59352         (KJS::LocationProtoFuncReplace::callAsFunction): Use better variable names.
59353         (KJS::LocationProtoFuncAssign::callAsFunction): Ditto.
59354         (KJS::LocationProtoFuncToString::callAsFunction): Remove extraneous calls to
59355         allowsAccessFrom, cleanup the function a little.
59356         (KJS::PausedTimeouts::~PausedTimeouts):
59357         * bridge/WindowFeatures.h: Removed.
59358         * page/WindowFeatures.cpp: Added.
59359         (WebCore::isSeparator):
59360         (WebCore::WindowFeatures::WindowFeatures):
59361         (WebCore::WindowFeatures::setWindowFeature):
59362         (WebCore::WindowFeatures::boolFeature):
59363         (WebCore::WindowFeatures::floatFeature):
59364         * page/WindowFeatures.h: Copied from WebCore/bridge/WindowFeatures.h.
59365         (WebCore::WindowFeatures::WindowFeatures):
59367 2007-12-10  Timothy Hatcher  <timothy@apple.com>
59369         Reviewed by Mark Rowe.
59371         <rdar://problem/5639463> Bundle versions on Tiger should be 4523.x not 523.x
59373         * Configurations/Version.xcconfig: Some Tiger versions of Xcode don't set MAC_OS_X_VERSION_MAJOR,
59374           so assume Tiger and use a 4 for the SYSTEM_VERSION_PREFIX.
59376 2007-12-10  Alp Toker  <alp@atoker.com>
59378         Reviewed by Niko.
59380         Cairo implementation of GraphicsContext::setUseAntialiasing().
59382         * platform/graphics/cairo/GraphicsContextCairo.cpp:
59383         (WebCore::GraphicsContext::setUseAntialiasing):
59385 2007-12-10  Rob Buis  <buis@kde.org>
59387         Reviewed by Darin.
59389         http://bugs.webkit.org/show_bug.cgi?id=16182
59390         SVG should disable antialiasing for shape-rendering="crispEdges"
59392         Turn off anti-aliasing of shapes when shape-rendering="crispEdges".
59394         * platform/graphics/GraphicsContext.h:
59395         * platform/graphics/cairo/GraphicsContextCairo.cpp:
59396         (WebCore::GraphicsContext::setUseAntialiasing):
59397         * platform/graphics/cg/GraphicsContextCG.cpp:
59398         (WebCore::GraphicsContext::setUseAntialiasing):
59399         * platform/graphics/qt/GraphicsContextQt.cpp:
59400         (WebCore::GraphicsContext::setUseAntialiasing):
59401         * platform/graphics/wx/GraphicsContextWx.cpp:
59402         (WebCore::GraphicsContext::setUseAntialiasing):
59403         * rendering/RenderPath.cpp:
59404         (WebCore::RenderPath::paint):
59406 2007-12-09  Rob Buis  <buis@kde.org>
59408         Reviewed by Niko.
59410         http://bugs.webkit.org/show_bug.cgi?id=16163
59411         SVG crash in Node::setChanged() on Debug builds only (trashed parent)
59413         Fix the crash by properly unregistering as client from SVGResource
59414         when deleting a styled svg node.
59416         * svg/SVGStyledElement.cpp:
59417         (WebCore::SVGStyledElement::~SVGStyledElement):
59419 2007-12-10  Brady Eidson  <beidson@apple.com>
59421         Rubberstamped by John
59423         * storage/DatabaseTracker.cpp:
59424         (WebCore::DatabaseTracker::canEstablishDatabase): If the UI Delegate returns *exactly* the estimated size
59425           for the new quota, we should allow the database to be created
59427 2007-12-10  David D. Kilzer  <ddkilzer@webkit.org>
59429         Bug 9683: Implement select.options.remove() method
59430         <http://bugs.webkit.org/show_bug.cgi?id=9683>
59432         Reviewed by Maciej.
59434         Implement select.options.remove() by calling select.remove()
59435         with the same arguments.  This is what MSIE 7 does, although its
59436         select.remove() method differs from WebKit's by throwing an
59437         exception when called with no arguments or with a negative
59438         integer argument.  Note that the DOM Level 1 documentation
59439         specifies that select.remove() does not throw an exception.
59441         Tests: fast/js/select-options-remove-gc.html
59442                fast/js/select-options-remove.html
59444         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
59445         (WebCore::JSHTMLOptionsCollection::remove): Added.
59446         * html/HTMLOptionsCollection.cpp:
59447         (WebCore::HTMLOptionsCollection::remove): Added.
59448         * html/HTMLOptionsCollection.h:
59449         * html/HTMLOptionsCollection.idl:
59451 2007-12-09  Sam Weinig  <sam@webkit.org>
59453         Rubber stamped by Mark Rowe.
59455         * WebCore.xcodeproj/project.pbxproj: Add missing DerivedSources files.
59457 2007-12-09  Oliver Hunt  <oliver@apple.com>
59459         Reviewed by Niko.
59461         Correction, 'z' and 'Z' are the only commands that cannot have an extended
59462         list of arguments.
59464         * svg/SVGParserUtilities.cpp:
59465         (WebCore::SVGPathParser::parseSVG):
59467 2007-12-09  Oliver Hunt  <oliver@apple.com>
59469         Reviewed by Niko.
59471         Prevent unlimited iteration in the case of invalid path data.
59472         
59473         The only path commands that can leave numbers trailing the command processing
59474         are 'm' and 'M', in which trailing numbers are parsed as arguments to an
59475         implicit lineto command.  In any case we should just terminate as an invalid
59476         path.
59478         * svg/SVGParserUtilities.cpp:
59479         (WebCore::SVGPathParser::parseSVG):
59481 2007-12-09  Luca Bruno  <lethalman88@gmail.com>
59483         Reviewed by Alp Toker.
59485         http://bugs.webkit.org/show_bug.cgi?id=15825
59486         [GTK] curl - slow dns causing hangs.
59488         Create a vector of jobs, to satisfy requests in the right order.
59489         Set a limit to the number of simultaneous connections.
59491         * platform/network/curl/ResourceHandleManager.cpp:
59492         (WebCore::maxRunningJobs): added
59493         (WebCore::ResourceHandleManager::ResourceHandleManager):
59494         (WebCore::ResourceHandleManager::removeFromCurl):
59495         (WebCore::ResourceHandleManager::startScheduledJobs):
59497         * platform/network/curl/ResourceHandleManager.h:
59498         (WebCore::ResourceHandleList): removed
59499         (WebCore::ResourceHandleManager::m_runningJobs): added
59500         (WebCore::ResourceHandleManager::m_resourceHandleListHead): removed
59501         (WebCore::ResourceHandleManager::m_resourceHandleList): added
59503 2007-12-08  Sam Weinig  <sam@webkit.org>
59505         Reviewed by Oliver.
59507         Cleanup kjs_window.h/cpp.
59509         * bindings/js/kjs_window.cpp:
59510         (KJS::WindowPrivate::WindowPrivate):
59511         (KJS::DOMWindowTimer::DOMWindowTimer):
59512         (KJS::Window::Window):
59513         (KJS::Window::retrieveWindow):
59514         (KJS::Window::retrieveActive):
59515         (KJS::Window::retrieve):
59516         (KJS::Window::location):
59517         (KJS::Window::mark):
59518         (KJS::allowPopUp):
59519         (KJS::parseModalDialogFeatures):
59520         (KJS::floatFeature):
59521         (KJS::canShowModalDialog):
59522         (KJS::canShowModalDialogNow):
59523         (KJS::showModalDialog):
59524         (KJS::Window::getValueProperty):
59525         (KJS::Window::getOwnPropertySlot):
59526         (KJS::Window::globalExec):
59527         (KJS::Window::setListener):
59528         (KJS::Window::getListener):
59529         (KJS::Window::findOrCreateJSEventListener):
59530         (KJS::Window::findOrCreateJSUnprotectedEventListener):
59531         (KJS::Window::clearHelperObjectProperties):
59532         (KJS::Window::setCurrentEvent):
59533         (KJS::WindowProtoFuncAToB::callAsFunction):
59534         (KJS::WindowProtoFuncBToA::callAsFunction):
59535         (KJS::WindowProtoFuncOpen::callAsFunction):
59536         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
59537         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
59538         (KJS::WindowProtoFuncSetInterval::callAsFunction):
59539         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
59540         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
59541         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
59542         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
59543         * bindings/js/kjs_window.h:
59544         (KJS::PausedTimeouts::PausedTimeouts):
59545         (KJS::PausedTimeouts::takeTimeouts):
59546         (KJS::ScheduledAction::ScheduledAction):
59548 2007-12-08  Sam Weinig  <sam@webkit.org>
59550         Reviewed by Mitz.
59552         Move window scrolling, moving and resizing methods from KJS::Window
59553         to WebCore::DOMWindow so that there bindings can be autogenerated.
59555         Tests: fast/dom/Window/window-resize-and-move-arguments.html
59556                fast/dom/Window/window-scroll-arguments.html
59558         * WebCore.xcodeproj/project.pbxproj:
59559         * bindings/js/kjs_window.cpp:
59560         (KJS::Window::getValueProperty): Remove extraneous allowsAccessFrom check.
59561         (KJS::WindowProtoFuncOpen::callAsFunction):
59562         (KJS::WindowProtoFuncNotImplemented::callAsFunction): Remove extraneous allowsAccessFrom check.
59563         * bindings/js/kjs_window.h:
59564         * bindings/scripts/CodeGeneratorJS.pm: Add new extended attribute
59565         to ensure that the no less than the declared number of attributes
59566         is allowed.
59567         * page/DOMWindow.cpp:
59568         (WebCore::DOMWindow::adjustWindowRect): Moved from kjs_window.
59569         (WebCore::DOMWindow::scrollBy):
59570         (WebCore::DOMWindow::scrollTo):
59571         (WebCore::DOMWindow::moveBy):
59572         (WebCore::DOMWindow::moveTo):
59573         (WebCore::DOMWindow::resizeBy):
59574         (WebCore::DOMWindow::resizeTo):
59575         * page/DOMWindow.h:
59576         (WebCore::DOMWindow::scroll):
59577         * page/DOMWindow.idl:
59579 2007-12-08  Kevin Ollivier  <kevino@theolliviers.com>
59581         Reviewed by Alp Toker.
59583         http://bugs.webkit.org/show_bug.cgi?id=14651
59584         [CURL] didReceiveResponse() only called for HTTP loads
59586         http://bugs.webkit.org/show_bug.cgi?id=14583
59587         [GDK] file:// relative CSS include URLs handled incorrectly
59589         Make sure CURL sets the ResourceResponse URL and calls
59590         didReceiveResponse for local files too. 
59592         * platform/network/curl/ResourceHandleManager.cpp:
59593         (WebCore::writeCallback):
59595 2007-12-08  Oliver Hunt  <oliver@apple.com>
59597         Reviewed by Sam W.
59599         Split the ENABLE_SVG_EXPERIMENTAL_FEATURES flag into separate flags.
59600         
59601         Fixes <rdar://problem/5620249> Must disable SVG animation
59602         <rdar://problem/5612772> Disable SVG filters on Mac to match Windows behavior
59603         
59604         In order to allow finer grained control over the set of SVG features
59605         this patch splits ENABLE_SVG_EXPERIMENTAL_FEATURES into the following
59606         distinct flags:
59607         ENABLE_SVG_ANIMATION
59608         ENABLE_SVG_FILTERS
59609         ENABLE_SVG_FONTS
59610         ENABLE_SVG_AS_IMAGE
59611         ENABLE_SVG_USE
59612         
59613         by default only ENABLE_SVG_AS_IMAGE and ENABLE_SVG_USE are set.
59615         * Configurations/WebCore.xcconfig:
59616         * DerivedSources.make:
59617           Handle the increased number of build flags that may be necessary
59618           
59619         * WebCore.SVG.Animation.exp: Added.
59620         * WebCore.SVG.Filters.exp: Added.
59621         * WebCore.SVG.exp:
59622           We now may not need the animation or filter exports so 
59623           these need to be separate.
59624           
59625         * WebCore.vcproj/WebCore.vcproj:
59626         * WebCore.vcproj/build-generated-files.sh:
59627           Update for new flags
59628           
59629         Remainder of changes are to swap ENABLE(SVG_EXPERIMENTAL_FEATURES) 
59630         with the appropriate specific feature flag.  
59631         * bindings/js/JSSVGElementWrapperFactory.cpp:
59632         (WebCore::createJSSVGWrapper):
59633         * bindings/objc/DOM.mm:
59634         (WebCore::createElementClassMap):
59635         * dom/make_names.pl:
59636         * loader/CachedImage.cpp:
59637         (WebCore::CachedImage::createImage):
59638         * page/DOMWindow.idl:
59639         * rendering/RenderPath.cpp:
59640         (WebCore::RenderPath::absoluteClippedOverflowRect):
59641         * rendering/RenderSVGContainer.cpp:
59642         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
59643         * rendering/RenderSVGImage.cpp:
59644         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
59645         * rendering/RenderSVGRoot.cpp:
59646         (WebCore::RenderSVGRoot::paint):
59647         (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
59648         * rendering/RenderSVGText.cpp:
59649         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
59650         * rendering/SVGRenderSupport.cpp:
59651         (WebCore::prepareToRenderSVGContent):
59652         (WebCore::finishRenderSVGContent):
59653         * svg/SVGAnimateElement.cpp:
59654         * svg/SVGAnimateElement.h:
59655         * svg/SVGAnimateElement.idl:
59656         * svg/SVGAnimateMotionElement.cpp:
59657         * svg/SVGAnimateMotionElement.h:
59658         * svg/SVGAnimateTransformElement.cpp:
59659         * svg/SVGAnimateTransformElement.h:
59660         * svg/SVGAnimateTransformElement.idl:
59661         * svg/SVGComponentTransferFunctionElement.cpp:
59662         * svg/SVGComponentTransferFunctionElement.h:
59663         * svg/SVGComponentTransferFunctionElement.idl:
59664         * svg/SVGDocumentExtensions.cpp:
59665         (WebCore::SVGDocumentExtensions::startAnimations):
59666         * svg/SVGFEBlendElement.cpp:
59667         * svg/SVGFEBlendElement.h:
59668         * svg/SVGFEBlendElement.idl:
59669         * svg/SVGFEColorMatrixElement.cpp:
59670         * svg/SVGFEColorMatrixElement.h:
59671         * svg/SVGFEColorMatrixElement.idl:
59672         * svg/SVGFEComponentTransferElement.cpp:
59673         * svg/SVGFEComponentTransferElement.h:
59674         * svg/SVGFEComponentTransferElement.idl:
59675         * svg/SVGFECompositeElement.cpp:
59676         * svg/SVGFECompositeElement.h:
59677         * svg/SVGFECompositeElement.idl:
59678         * svg/SVGFEDiffuseLightingElement.cpp:
59679         * svg/SVGFEDiffuseLightingElement.h:
59680         * svg/SVGFEDiffuseLightingElement.idl:
59681         * svg/SVGFEDisplacementMapElement.cpp:
59682         * svg/SVGFEDisplacementMapElement.h:
59683         * svg/SVGFEDisplacementMapElement.idl:
59684         * svg/SVGFEDistantLightElement.cpp:
59685         * svg/SVGFEDistantLightElement.h:
59686         * svg/SVGFEDistantLightElement.idl:
59687         * svg/SVGFEFloodElement.cpp:
59688         * svg/SVGFEFloodElement.h:
59689         * svg/SVGFEFloodElement.idl:
59690         * svg/SVGFEFuncAElement.cpp:
59691         * svg/SVGFEFuncAElement.h:
59692         * svg/SVGFEFuncAElement.idl:
59693         * svg/SVGFEFuncBElement.cpp:
59694         * svg/SVGFEFuncBElement.h:
59695         * svg/SVGFEFuncBElement.idl:
59696         * svg/SVGFEFuncGElement.cpp:
59697         * svg/SVGFEFuncGElement.h:
59698         * svg/SVGFEFuncGElement.idl:
59699         * svg/SVGFEFuncRElement.cpp:
59700         * svg/SVGFEFuncRElement.h:
59701         * svg/SVGFEFuncRElement.idl:
59702         * svg/SVGFEGaussianBlurElement.cpp:
59703         * svg/SVGFEGaussianBlurElement.h:
59704         * svg/SVGFEGaussianBlurElement.idl:
59705         * svg/SVGFEImageElement.cpp:
59706         * svg/SVGFEImageElement.h:
59707         * svg/SVGFEImageElement.idl:
59708         * svg/SVGFELightElement.cpp:
59709         * svg/SVGFELightElement.h:
59710         * svg/SVGFEMergeElement.cpp:
59711         * svg/SVGFEMergeElement.h:
59712         * svg/SVGFEMergeElement.idl:
59713         * svg/SVGFEMergeNodeElement.cpp:
59714         * svg/SVGFEMergeNodeElement.h:
59715         * svg/SVGFEMergeNodeElement.idl:
59716         * svg/SVGFEOffsetElement.cpp:
59717         * svg/SVGFEOffsetElement.h:
59718         * svg/SVGFEOffsetElement.idl:
59719         * svg/SVGFEPointLightElement.cpp:
59720         * svg/SVGFEPointLightElement.h:
59721         * svg/SVGFEPointLightElement.idl:
59722         * svg/SVGFESpecularLightingElement.cpp:
59723         * svg/SVGFESpecularLightingElement.h:
59724         * svg/SVGFESpecularLightingElement.idl:
59725         * svg/SVGFESpotLightElement.cpp:
59726         * svg/SVGFESpotLightElement.h:
59727         * svg/SVGFESpotLightElement.idl:
59728         * svg/SVGFETileElement.cpp:
59729         * svg/SVGFETileElement.h:
59730         * svg/SVGFETileElement.idl:
59731         * svg/SVGFETurbulenceElement.cpp:
59732         * svg/SVGFETurbulenceElement.h:
59733         * svg/SVGFETurbulenceElement.idl:
59734         * svg/SVGFilterElement.cpp:
59735         * svg/SVGFilterElement.h:
59736         * svg/SVGFilterElement.idl:
59737         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
59738         * svg/SVGTimer.cpp:
59739         (WebCore::SVGTimer::animationsByElement):
59740         * svg/SVGUseElement.cpp:
59741         (WebCore::SVGUseElement::buildPendingResource):
59742         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
59743         * svg/SVGUseElement.h:
59744         * svg/TimeScheduler.cpp:
59745         (WebCore::TimeScheduler::connectIntervalTimer):
59746         (WebCore::TimeScheduler::disconnectIntervalTimer):
59747         * svg/graphics/SVGResourceFilter.cpp:
59748         * svg/graphics/SVGResourceFilter.h:
59749         * svg/graphics/cg/SVGResourceFilterCg.cpp:
59750         * svg/graphics/cg/SVGResourceFilterCg.mm:
59751         * svg/graphics/filters/SVGDistantLightSource.h:
59752         * svg/graphics/filters/SVGFEBlend.cpp:
59753         * svg/graphics/filters/SVGFEBlend.h:
59754         * svg/graphics/filters/SVGFEColorMatrix.cpp:
59755         * svg/graphics/filters/SVGFEColorMatrix.h:
59756         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
59757         * svg/graphics/filters/SVGFEComponentTransfer.h:
59758         * svg/graphics/filters/SVGFEComposite.cpp:
59759         * svg/graphics/filters/SVGFEComposite.h:
59760         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
59761         * svg/graphics/filters/SVGFEConvolveMatrix.h:
59762         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
59763         * svg/graphics/filters/SVGFEDiffuseLighting.h:
59764         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
59765         * svg/graphics/filters/SVGFEDisplacementMap.h:
59766         * svg/graphics/filters/SVGFEFlood.cpp:
59767         * svg/graphics/filters/SVGFEFlood.h:
59768         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
59769         * svg/graphics/filters/SVGFEGaussianBlur.h:
59770         * svg/graphics/filters/SVGFEImage.cpp:
59771         * svg/graphics/filters/SVGFEImage.h:
59772         * svg/graphics/filters/SVGFEMerge.cpp:
59773         * svg/graphics/filters/SVGFEMerge.h:
59774         * svg/graphics/filters/SVGFEMorphology.cpp:
59775         * svg/graphics/filters/SVGFEMorphology.h:
59776         * svg/graphics/filters/SVGFEOffset.cpp:
59777         * svg/graphics/filters/SVGFEOffset.h:
59778         * svg/graphics/filters/SVGFESpecularLighting.cpp:
59779         * svg/graphics/filters/SVGFESpecularLighting.h:
59780         * svg/graphics/filters/SVGFETile.h:
59781         * svg/graphics/filters/SVGFETurbulence.cpp:
59782         * svg/graphics/filters/SVGFETurbulence.h:
59783         * svg/graphics/filters/SVGFilterEffect.cpp:
59784         * svg/graphics/filters/SVGFilterEffect.h:
59785         * svg/graphics/filters/SVGLightSource.cpp:
59786         * svg/graphics/filters/SVGLightSource.h:
59787         * svg/graphics/filters/SVGPointLightSource.h:
59788         * svg/graphics/filters/SVGSpotLightSource.h:
59789         * svg/graphics/filters/cg/SVGFEBlendCg.mm:
59790         * svg/graphics/filters/cg/SVGFEColorMatrixCg.mm:
59791         * svg/graphics/filters/cg/SVGFEComponentTransferCg.mm:
59792         * svg/graphics/filters/cg/SVGFECompositeCg.mm:
59793         * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
59794         * svg/graphics/filters/cg/SVGFEDisplacementMapCg.mm:
59795         * svg/graphics/filters/cg/SVGFEFloodCg.mm:
59796         * svg/graphics/filters/cg/SVGFEGaussianBlurCg.mm:
59797         * svg/graphics/filters/cg/SVGFEHelpersCg.h:
59798         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
59799         * svg/graphics/filters/cg/SVGFEImageCg.mm:
59800         * svg/graphics/filters/cg/SVGFEMergeCg.mm:
59801         * svg/graphics/filters/cg/SVGFEOffsetCg.mm:
59802         * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
59803         * svg/graphics/filters/cg/SVGFETileCg.mm:
59804         * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
59805         * svg/graphics/filters/cg/WKArithmeticFilter.h:
59806         * svg/graphics/filters/cg/WKArithmeticFilter.m:
59807         * svg/graphics/filters/cg/WKComponentMergeFilter.h:
59808         * svg/graphics/filters/cg/WKComponentMergeFilter.m:
59809         * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
59810         * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
59811         * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
59812         * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
59813         * svg/graphics/filters/cg/WKDisplacementMapFilter.h:
59814         * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
59815         * svg/graphics/filters/cg/WKDistantLightFilter.h:
59816         * svg/graphics/filters/cg/WKDistantLightFilter.m:
59817         * svg/graphics/filters/cg/WKGammaTransferFilter.h:
59818         * svg/graphics/filters/cg/WKGammaTransferFilter.m:
59819         * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
59820         * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
59821         * svg/graphics/filters/cg/WKLinearTransferFilter.h:
59822         * svg/graphics/filters/cg/WKLinearTransferFilter.m:
59823         * svg/graphics/filters/cg/WKNormalMapFilter.h:
59824         * svg/graphics/filters/cg/WKNormalMapFilter.m:
59825         * svg/graphics/filters/cg/WKPointLightFilter.h:
59826         * svg/graphics/filters/cg/WKPointLightFilter.m:
59827         * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
59828         * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
59829         * svg/graphics/filters/cg/WKSpotLightFilter.h:
59830         * svg/graphics/filters/cg/WKSpotLightFilter.m:
59831         * svg/graphics/filters/cg/WKTableTransferFilter.h:
59832         * svg/graphics/filters/cg/WKTableTransferFilter.m:
59833         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
59834         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
59835         * svg/svgtags.in:
59837 2007-12-08  Dan Bernstein  <mitz@apple.com>
59839         Reviewed by Adele Peterson.
59841         - fix two bugs in parsing of stylesheets in <style> elements created by
59842           the parser:
59843           1. each such stylesheet is parsed twice, once when the text node is
59844              added and again when the </style> tag is reached
59845           2. re-inserting such a <style> element into the document fails to
59846              re-parse and apply its stylesheet.
59848         Test for bug #2: fast/dom/HTMLStyleElement/insert-parser-generated.html
59850         * html/HTMLStyleElement.cpp:
59851         (WebCore::HTMLStyleElement::finishedParsing):
59852         * svg/SVGStyleElement.cpp:
59853         (WebCore::SVGStyleElement::finishedParsing):
59855 2007-12-07  Sam Weinig  <sam@webkit.org>
59857         Reviewed by Darin.
59859         - Removes the faulty isSafeScript implementation that was only
59860           used for plugins.
59861         - Renames isSafeScript to allowsAccessFrom.
59863         * bindings/js/JSDOMWindowCustom.cpp:
59864         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
59865         (WebCore::JSDOMWindow::customPut):
59866         * bindings/js/kjs_dom.cpp:
59867         (WebCore::checkNodeSecurity):
59868         * bindings/js/kjs_window.cpp:
59869         (KJS::createWindow):
59870         (KJS::Window::getValueProperty):
59871         (KJS::Window::namedItemGetter):
59872         (KJS::Window::getOwnPropertySlot):
59873         (KJS::Window::put):
59874         (KJS::Window::allowsAccessFrom):
59875         (KJS::Window::setListener):
59876         (KJS::Window::getListener):
59877         (KJS::WindowProtoFuncOpen::callAsFunction):
59878         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
59879         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
59880         (KJS::WindowProtoFuncSetInterval::callAsFunction):
59881         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
59882         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
59883         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
59884         (KJS::Location::getOwnPropertySlot):
59885         (KJS::Location::put):
59886         (KJS::LocationProtoFuncReplace::callAsFunction):
59887         (KJS::LocationProtoFuncReload::callAsFunction):
59888         (KJS::LocationProtoFuncAssign::callAsFunction):
59889         (KJS::LocationProtoFuncToString::callAsFunction):
59890         * bindings/js/kjs_window.h:
59891         (KJS::Window::allowsAccessFrom):
59892         * bindings/objc/WebScriptObject.mm:
59893         (-[WebScriptObject _isSafeScript]): Reverse caller/argument of allowsAccessFrom to match
59894         the new call.
59895         * bindings/scripts/CodeGeneratorJS.pm:
59897 2007-12-08  Rob Buis  <buis@kde.org>
59899         Reviewed by Darin.
59901         http://bugs.webkit.org/show_bug.cgi?id=15464
59902         SVGLengthList allows bad values
59904         Be more strict with svg lengths without a unit identifier.
59906         Test: svg/custom/invalid-lengthlist.svg
59908         * svg/SVGLength.cpp:
59909         (WebCore::SVGLength::setValueAsString):
59911 2007-12-08  Rob Buis  <buis@kde.org>
59913         Mac Tiger build fix.
59915         Use the wtf prefix when including MathExtras.h.
59917         * rendering/RenderMedia.cpp:
59919 2007-12-08  Alp Toker  <alp@atoker.com>
59921         GTK+ build fix (for ENABLE_VIDEO builds):
59923         Include MathExtras.h to get isfinite().
59925         * rendering/RenderMedia.cpp:
59927 2007-12-08  Rob Buis  <buis@kde.org>
59929         Reviewed by Darin.
59931         http://bugs.webkit.org/show_bug.cgi?id=15528
59932         svg_dynamic_cast should be removed
59934         Replace svg_dynamic_cast with a combination of
59935         isSVGElement and static_cast.
59937         * rendering/SVGRootInlineBox.cpp:
59938         (WebCore::SVGRootInlineBox::buildLayoutInformation):
59939         (WebCore::SVGRootInlineBox::buildTextChunks):
59940         * svg/SVGAnimationElement.cpp:
59941         (WebCore::SVGAnimationElement::targetElement):
59942         * svg/SVGElement.h:
59943         * svg/SVGElementInstance.cpp:
59944         (WebCore::SVGElementInstance::updateInstance):
59945         * svg/SVGFilterElement.cpp:
59946         (WebCore::SVGFilterElement::canvasResource):
59947         * svg/SVGGradientElement.cpp:
59948         (WebCore::SVGGradientElement::buildStops):
59949         * svg/SVGLocatable.cpp:
59950         (WebCore::SVGLocatable::getTransformToElement):
59951         * svg/SVGMaskElement.cpp:
59952         (WebCore::SVGMaskElement::drawMaskerContent):
59953         * svg/SVGSwitchElement.cpp:
59954         (WebCore::SVGSwitchElement::childShouldCreateRenderer):
59955         * svg/SVGUseElement.cpp:
59956         (WebCore::SVGUseElement::insertedIntoDocument):
59957         (WebCore::SVGUseElement::buildPendingResource):
59958         (WebCore::SVGUseElement::buildInstanceTree):
59959         (WebCore::SVGUseElement::handleDeepUseReferencing):
59960         (WebCore::SVGUseElement::buildShadowTree):
59961         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
59962         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
59963         * svg/graphics/SVGResource.cpp:
59964         (WebCore::getResourceById):
59966 2007-12-07  Antti Koivisto  <antti@apple.com>
59968         Reviewed by Adele.
59969         
59970         Partial fix for <rdar://problem/5633400>
59971         Transformed <video>, <img>, <embed> are not clipped correctly until a repaint is forced
59972         
59973         Fix video painting when transform is applied.
59975         Test: media/video-transformed.html
59977         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
59978         (WebCore::MediaPlayerPrivate::paint):
59980 2007-12-07  Dan Bernstein  <mitz@apple.com>
59982         Reviewed by Sam Weinig.
59984         - fix http://bugs.webkit.org/show_bug.cgi?id=16348
59985           @font-face does not affect the default style
59987         Test: fast/css/font-face-default-font.html
59989         * dom/Document.cpp:
59990         (WebCore::Document::recalcStyle): Pass our font selector to
59991         Font::update() if we already have one.
59993 2007-12-07  Darin Adler  <darin@apple.com>
59995         - fix Windows build
59997         * bridge/win/GlobalHistoryWin.cpp:
59998         (WebCore::historyContains): Missed a rename.
60000 2007-12-07  Brady Eidson  <beidson@apple.com>
60002         Reviewed by Anders and Darin
60004         When a statement bumps up against the quota and the UI Delegate grants more space, we need to
60005         actually set the new maximum size on the SQLiteDatabase (in addition to storing the new max quota
60006         in the DatabaseTracker, which was already done)
60008         * storage/SQLTransaction.cpp:
60009         (WebCore::SQLTransaction::runStatements): If a statement is being retried, set the maximum size on
60010           the SQLiteDatabase to the new maximum size
60012 2007-12-07  Darin Adler  <darin@apple.com>
60014         - fix Tiger build
60016         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Tiger didn't even have
60017         QTKIT_VERSION_MAX_ALLOWED, so add logic to work without that.
60019 2007-12-07  Darin Adler  <darin@apple.com>
60021         - fix 64-bit build, hopefully without breaking Tiger build
60023         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
60024         (WebCore::MediaPlayerPrivate::updateStates):
60025         Don't use Movies.h constants that are nonexistent in 64-bit.
60026         Define the new QTMovie.h constants, though, when using an older QTKit.
60028 2007-12-07  Brady Eidson  <beidson@apple.com>
60030         Reviewed by Anders
60032         Fix <rdar://problem/5636115> - Prompted for quota increase to create database when it already existed
60034         * storage/DatabaseTracker.cpp:
60035         (WebCore::DatabaseTracker::canEstablishDatabase): Check hasEntryForDatabase before doing any prompting
60036         (WebCore::DatabaseTracker::hasEntryForDatabase): Check and see if this database already exists
60037         * storage/DatabaseTracker.h:
60039 2007-12-07  Darin Adler  <darin@apple.com>
60041         Reviewed by Mitz.
60043         - http://bugs.webkit.org/show_bug.cgi?id=15981
60044           speed up visited-link code a bit
60046         * bridge/GlobalHistory.h: Change historyContains to take a character pointer plus length
60047         instead of requiring a DeprecatedString.
60049         * bridge/mac/GlobalHistoryMac.mm: (WebCore::historyContains): Updated for above change.
60050         Also removes pointless "fast Latin-1" case that was never used.
60051         * bridge/win/GlobalHistoryWin.cpp: (WebCore::historyContains): Ditto.
60052         * platform/gtk/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
60053         * platform/wx/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
60055         * css/CSSStyleSelector.cpp:
60056         (WebCore::findHash): Added. Helper for cleanpath.
60057         (WebCore::findSlashDotDotSlash): Ditto.
60058         (WebCore::findSlashSlash): Ditto.
60059         (WebCore::findSlashDotSlash): Ditto.
60060         (WebCore::cleanpath): Changed to use fast helper functions instead of slower general-purpose
60061         DeprecatedString find function.
60062         (WebCore::containsColonSlashSlash): Added. Helper for checkPseudoState.
60063         (WebCore::checkPseudoState): Got rid of reference count churn by using an AtomicString*
60064         instead of an AtomicString for the attribute value. Changed to use fast helper function
60065         instead of slower DeprecatedString::contains function, and also made the fast case not
60066         bother allocating a DeprecatedConstString.
60068         - unrelated tiny cleanup
60070         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
60071         (WebCore::releaseCachedStops): Use static_cast instead of reinterpret_cast.
60072         (WebCore::cgGradientCallback): Ditto.
60074 2007-12-07  Darin Adler  <darin@apple.com>
60076         Fix build on Tiger (Mark Rowe told me how).
60078         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
60079         Include <objc/objc-runtime.h>, which existed back on Tiger,
60080         rather than <objc/runtime.h>, which did not.
60082 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
60084         Build fix: rolling out last build fix to change #include path.
60086         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
60088 2007-12-07  Steve Falkenburg  <sfalken@apple.com>
60090         Re-named our B&I flag from BUILDBOT to PRODUCTION.
60092         Reviewed by Sam Weinig.
60094         * WebCore.vcproj/WebCore.make:
60096 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
60098         Build fix: corrected #include path.
60100         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
60102 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
60104         Reviewed by Sam Weinig.
60106         Added some namespace qualifications and a forwarding header, now that
60107         KJS::Node is sometimes #included in WebCore by JavaScriptCore headers.
60109         * ForwardingHeaders/wtf/ListRefPtr.h: Added.
60110         * bindings/js/JSXSLTProcessor.cpp:
60111         (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
60112         * bindings/js/kjs_binding.cpp:
60113         (KJS::ScriptInterpreter::getDOMNodeForDocument):
60114         (KJS::ScriptInterpreter::forgetDOMNodeForDocument):
60115         (KJS::ScriptInterpreter::putDOMNodeForDocument):
60116         (KJS::ScriptInterpreter::markDOMNodesForDocument):
60117         (KJS::ScriptInterpreter::updateDOMNodeDocument):
60119 2007-12-07  Adam Roben  <aroben@apple.com>
60121         Add SoftLinking.h for Windows and use it in a few places
60123         Reviewed by Oliver.
60125         * WebCore.vcproj/WebCore.vcproj: Added new file to project.
60126         * platform/win/PlatformScrollBarSafari.cpp: Use SoftLinking.h.
60127         (WebCore::PlatformScrollbar::PlatformScrollbar): Removed manual
60128         soft-linking calls.
60129         (WebCore::PlatformScrollbar::paintButton): Check for the presence of
60130         the SafariTheme library now that we can't check for the presence of
60131         paintThemePart directly.
60132         (WebCore::PlatformScrollbar::paintTrack): Ditto.
60133         (WebCore::PlatformScrollbar::paintThumb): Ditto.
60134         * platform/win/SoftLinking.h: Copied from WebCore/platform/mac/SoftLinking.h.
60135         * rendering/RenderThemeSafari.cpp: Same basic changes as to
60136         PlatformScrollBarSafari.cpp.
60137         (WebCore::RenderThemeSafari::RenderThemeSafari):
60138         (WebCore::RenderThemeSafari::isControlStyled):
60139         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
60140         * rendering/RenderThemeSafari.h: Removed m_themeDLL member.
60142 2007-12-07  Darin Adler  <darin@apple.com>
60144         Reviewed by Adele.
60146         - fix <rdar://problem/5608795> CrashTracer: 481 crashes in Safari
60147           at WebCore::HTMLSelectElement::saveState const + 152
60149         Test: fast/forms/select-set-inner.html
60151         * dom/ContainerNode.cpp:
60152         (WebCore::ContainerNode::removeChildren): Added a return value, as with other
60153         calls that change children, so we can optimize for the case where it does nothing.
60154         (WebCore::ContainerNode::cloneChildNodes): Changed parameter type to ContainerNode.
60155         * dom/ContainerNode.h: See above.
60157         * html/HTMLOptGroupElement.cpp:
60158         (WebCore::HTMLOptGroupElement::removeChildren): Override removeChildren and call
60159         recalcSelectOptions in that case.
60160         (WebCore::HTMLOptGroupElement::childrenChanged): Override childrenChanged instead of
60161         addChild, for consistency with HTMLSelectElement; no need to override both.
60162         (WebCore::HTMLOptGroupElement::groupLabelText): Made const.
60163         * html/HTMLOptGroupElement.h: See above.
60165         * html/HTMLSelectElement.cpp: Don't override addChild any more, because we already
60166         override childrenChanged, and addChild calls that.
60167         (WebCore::HTMLSelectElement::removeChildren): Override removeChildren and call
60168         recalcSelectOptions in that case.
60169         (WebCore::HTMLSelectElement::recalcListItems): Tightened up the code a little bit
60170         by using a for loop and traverseNextSibling. Also added some new comments and
60171         removed some obsolete ones.
60172         (WebCore::HTMLSelectElement::checkListItems): Added. Debug-only check to make
60173         sure we don't have a stale list items vector.
60174         * html/HTMLSelectElement.h: Changed listItems() to invoke checkListItems().
60175         This will help us catch cases where we have too few calls to setRecalcListItems.
60177 2007-12-07  Dan Bernstein  <mitz@apple.com>
60179         Reviewed by Darin Adler.
60181         - WebCore part of fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
60183         Test: fast/repaint/focus-ring.html
60185         * editing/SelectionController.cpp:
60186         (WebCore::SelectionController::caretRepaintRect): Changed to return just
60187         the caret rect without any padding.
60188         (WebCore::SelectionController::recomputeCaretRect): Changed to repaint
60189         just the caret rect without any padding.
60190         * platform/graphics/GraphicsContext.h: Removed setFocusRingClip() and
60191         clearFocusRingClip().
60192         * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
60193         * platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
60194         * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed
60195         m_focusRingClip member.
60196         * platform/graphics/mac/GraphicsContextMac.mm:
60197         (WebCore::GraphicsContext::drawFocusRing): Changed to call
60198         wkDrawFocusRing() once without setting up additional clip. On Leopard,
60199         wkDrawFocusRing() respects the context clip now. On Tiger, a
60200         transparency layer is used to apply clipping to the focus ring.
60201         * platform/graphics/qt/GraphicsContextQt.cpp: Removed focus ring clip
60202         methods and member.
60203         * platform/graphics/wx/GraphicsContextWx.cpp: Ditto.
60204         * platform/mac/WebCoreSystemInterface.h: Removed the clipRect argument
60205         to wkDrawFocusRing().
60206         * platform/mac/WebCoreSystemInterface.mm: Ditto.
60207         * rendering/RenderLayer.cpp:
60208         (WebCore::setClip): Removed call to set the focus ring clip.
60209         (WebCore::restoreClip): Removed call to reset the focus ring clip.
60211 2007-12-07  Darin Adler  <darin@apple.com>
60213         Reviewed by Antti Koivisto and Kevin Decker.
60215         - fix <rdar://problem/5601586> QtKit should be dynamically loaded upon need, not linked at startup
60217         Also did a lot of small tweaks to MediaPlayerPrivateQTKit.
60219         * WebCore.xcodeproj/project.pbxproj: Don't link to QTKit.
60221         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Omit unneeded includes and declarations.
60222         Made a lot more functions const. Made a few more members private and a couple inline.
60223         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Added soft linking machinery for all the
60224         things we currently use in QTKit. It's a little more awkward for classes and other data objects
60225         than it is for functions, but still relatively straightforward, with no changes needed to the
60226         client code. Added using namespace directives. Made a cuePointTimerInterval constant and put
60227         it at the top of the file. Use 0 consistently instead of sometimes 0 and sometimes 0.0f.
60228         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Removed unneeded initialization of RetainPtr
60229         members to nil.
60230         (WebCore::MediaPlayerPrivate::createQTMovie): Use adoptNS instead of autorelease.
60231         (WebCore::MediaPlayerPrivate::createQTMovieView): Ditto. Also use -[NSColor clearColor].
60232         (WebCore::MediaPlayerPrivate::createQTTime): Remove an unneeded type cast that had no effect.
60233         Changed to use long instead of int because that's the type for a QTTime time scale anyway.
60234         (WebCore::MediaPlayerPrivate::duration): Use a static_cast instead of a C-style cast.
60235         (WebCore::MediaPlayerPrivate::currentTime): Ditto. Also merged into a single expression.
60236         (WebCore::MediaPlayerPrivate::cuePointTimerFired): Added code to make a copy of the cue
60237         points set to avoid a potential problem with a set being modified as we iterate it.
60238         (WebCore::MediaPlayerPrivate::bytesLoaded): Removed unneeded null check of m_qtMovie.
60239         (WebCore::MediaPlayerPrivate::updateStates): Instead of comments explaining the numeric
60240         values, used the constants from the headers directly.
60241         (WebCore::MediaPlayerPrivate::getSupportedTypes): Instead of (QTMovieFileTypeOptions)0,
60242         pass the named constant with value 0, QTIncludeCommonTypes. Skipped the intermediate type
60243         of NSString to remove one cast. Replaced C-style cast with reinterpret_cast (arguably
60244         no better). Used RetainPtr instead of explicit CFRelease calls.
60246         * platform/mac/SoftLinking.h: Added macros to do soft linking for classes and for pointers.
60247         It's not quite as automatic as the soft linking we can do for functions, since these define
60248         functions to get the values, so you need to define macros to make what look like variable
60249         accesses turn into function calls. See MediaPlayerPrivateQTKit for the details.
60251         * html/HTMLMediaElement.h:
60252         * html/TimeRanges.h:
60253         * html/VoidCallback.h:
60254         * platform/graphics/MediaPlayer.h:
60255         Use angle brackets for wtf includes. Omit unneeded includes.
60257 2007-12-07  Dan Bernstein  <mitz@apple.com>
60259         Reviewed by Darin Adler.
60261         - fix http://bugs.webkit.org/show_bug.cgi?id=16334
60262           <rdar://problem/5634923> REGRESSION (r28299): Homepage of any DotMac Web Gallery won't load completely
60264         Test: fast/dynamic/subtree-no-common-root-static-y.html
60266         * rendering/RenderObject.cpp:
60267         (WebCore::RenderObject::markContainingBlocksForLayout): Changed the call
60268         to setChildNeedsLayout() to not mark containing blocks and added a
60269         separate call to markContainingBlocksForLayout() that will not schedule
60270         a layout if we are already in the middle of scheduleRelayoutOfSubtree().
60272 2007-12-07  Alexey Proskuryakov  <ap@webkit.org>
60274         Reviewed by Darin.
60276         http://bugs.webkit.org/show_bug.cgi?id=16325
60277         <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
60278         
60279         Test: http/tests/misc/empty-cookie.html
60281         * platform/mac/CookieJar.mm:
60282         (WebCore::setCookies): Don't store empty cookies.
60283         (WebCore::cookies): Filter out empty cookies if we have them, as they could have been set
60284         with an earlier version of Leopard!
60286 2007-12-06  Ada Chan  <adachan@apple.com>
60288         Fixed the if statement (ERROR_SUCCESS is 0 and we were actually
60289         returning true when there's an error).
60291         Reviewed by Steve.
60293         * platform/win/FileSystemWin.cpp:
60294         (WebCore::makeAllDirectories):
60296 2007-12-06  Darin Adler  <darin@apple.com>
60298         - fix broken regression test
60300         * bindings/js/kjs_binding.cpp:
60301         (KJS::setDOMException): Oops, this was just supposed to be PERMISSION_DENIED.
60303 2007-12-06  Darin Adler  <darin@apple.com>
60305         Reviewed by Sam Weinig.
60307         - fix http://bugs.webkit.org/show_bug.cgi?id=16332
60308           ObjC DOM exception object descriptions should include the exception name
60310         * WebCore.pro: Added ExceptionCode.cpp.
60311         * WebCore.vcproj/WebCore.vcproj: Added ExceptionCode.cpp.
60312         * WebCore.xcodeproj/project.pbxproj: Added ExceptionCode.cpp.
60313         * WebCoreSources.bkl: Added ExceptionCode.cpp.
60315         * bindings/js/kjs_binding.cpp: (KJS::setDOMException): Moved the code to decompose an
60316         ExceptionCode into ExceptionCode.h/cpp -- getExceptionCodeDescription. Also removed
60317         the many unneeded includes that were here. Had to keep one special case here, for
60318         SECURITY_ERR.
60320         * bindings/objc/ExceptionHandlers.mm: (WebCore::raiseDOMException): Changed to use the
60321         new getExceptionCodeDescription function so that this shares the exception name
60322         information that was previously only available to JavaScript.
60324         * dom/ExceptionCode.cpp: Copied from bindings/js/kjs_binding.cpp.
60325         (WebCore::getExceptionCodeDescription): Added some assertions, and made the function
60326         handle exception names in a slightly more robust way that is not subject to integer
60327         overflow. (Not a real world issue since we should never receive a bad exception code.)
60329         * dom/ExceptionCode.h: Added the ExceptionCodeDescription struct and the
60330         getExceptionCodeDescription function.
60332         * svg/SVGException.h: Added a missing #include and got rid of some comments. Some of
60333         the comments were mildly helpful, but others were incorrect. This now matches the other
60334         exception-related headers such as RangeException.h.
60336 2007-12-06  Brady Eidson  <beidson@apple.com>
60338         Reviewed by Darin
60340         Fixed a glaring bug that would prevent a statement from getting run a second time
60342         * storage/SQLStatement.cpp:
60343         (WebCore::SQLStatement::execute): Clear failure due to quota *before* we check the error
60344           and return early
60345         (WebCore::SQLStatement::clearFailureDueToQuota): Only clear the error if it was a quota error
60347 2007-12-06  Timothy Hatcher  <timothy@apple.com>
60349         Reviewed by Oliver Hunt.
60351         Use keydown instead of keypress so keyIdentifier can be used.
60353         * page/inspector/ConsolePanel.js: Use keydown instead of keypress.
60354         * page/inspector/DatabasePanel.js: Ditto.
60355         * page/inspector/inspector.js: Ditto. Plus call removeEventListener
60356         before deleting windowLoaded.
60358 2007-12-06  Adam Roben  <aroben@apple.com>
60360         Rename FontsTable.plist to FontsList.plist
60362         Rubberstamped by Hyatt.
60364         * platform/graphics/win/FontDatabase.cpp:
60366 2007-12-06  Brady Eidson  <beidson@apple.com>
60368         Reviewed by Darin
60370         Tweaked a comment and a few assertions from my last checkin
60372         * storage/SQLStatement.cpp:
60373         (WebCore::SQLStatement::execute):
60374         (WebCore::SQLStatement::clearFailureDueToQuota):
60375         (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
60377 2007-12-06  Brady Eidson <beidson@apple.com>
60379         Reviewed by Darin
60381         Finished hooking up UI Delegate for databases - Database operations will now enforce a size quota and
60382         will ask the UI Delegate for more space when that quota is met
60384         * platform/sql/SQLiteDatabase.cpp: Add the new SQLResultFull constant
60385         * platform/sql/SQLiteDatabase.h: Ditto
60387         * storage/Database.cpp:
60388         (WebCore::Database::securityOriginData): Added this accessor, copying for thread safety
60389         (WebCore::Database::stringIdentifier): Ditto
60390         * storage/Database.h:
60392         * storage/SQLStatement.cpp:
60393         (WebCore::SQLStatement::SQLStatement):
60394         (WebCore::SQLStatement::execute): Change to return an enum that represents 3 states - success, error, and quota.
60395           If the result is quota, this statement expects that it might be run again, presumably after the user increases 
60396           the quota
60397         (WebCore::SQLStatement::setFailureDueToQuota): Setup a quota failure, including a flag and the error
60398         (WebCore::SQLStatement::clearFailureDueToQuota): Clear a quota failure, for when the statement is rerun
60399         (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
60400         * storage/SQLStatement.h:
60402         * storage/SQLTransaction.cpp:
60403         (WebCore::SQLTransaction::SQLTransaction):
60404         (WebCore::SQLTransaction::performPendingCallback): Added an acceptable callback pointer
60405         (WebCore::SQLTransaction::openTransactionAndPreflight): Setup the quota in the database that will remain for this 
60406           transaction.  Note that in this patch, the quota being set is wrong - it makes sense to fix that in a follow up patch
60407         (WebCore::SQLTransaction::runStatements): Modified to add the ability to re-run a statement based on the UI delegate
60408           decision and whether the current statement was already run
60409         (WebCore::SQLTransaction::runCurrentStatement): Added another result condition - the Quota result - and handle it
60410         (WebCore::SQLTransaction::handleCurrentStatementError): Statements can now error-out from two places, so the code
60411           that handles a statement error was moved here
60412         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Added - Consult the UI delegate for more quota, then 
60413           reschedule the current statement on the database thread
60414         * storage/SQLTransaction.h:
60416 2007-12-06  Steve Falkenburg  <sfalken@apple.com>
60418         <rdar://problem/5614257> Crash in timer / hashtable code due to uncaught exception
60419         
60420         Don't use callback-based timers, since these cause Windows to eat Windows crashes
60421         in code the timers call.
60422         
60423         Windows appears to be defending against "shatter" attacks partially by setting
60424         up a structured exception block while dispatching callback-based WM_TIMERs.
60425         
60426         I verified this by adding a divide by zero into some timer callback code.
60427         In the case where the timer was dispatched via a callback, the divide by zero
60428         exception was silently handled and ignored, with execution continuing after
60429         our call to DispatchMessage.  When processed via the WNDPROC, no SEH
60430         block was established by Windows, and our divide by zero generated a real
60431         crash (which is what we wanted).
60432         
60433         Windows handling our crashes for us led us to leave the timer data structures
60434         in an invalid state so the next time a timer was set, we'd crash accessing an
60435         invalid HashMap of timer data.
60436         
60437         Reviewed by Hyatt.
60439         * platform/win/SharedTimerWin.cpp:
60440         (WebCore::TimerWindowWndProc):
60441         (WebCore::setSharedTimerFireTime):
60443 2007-12-06  Adam Roben  <aroben@apple.com>
60445         Fix <rdar://5108390> Feed title is too low in blue banner
60447         Way back in r23069 we started applying the same font ascent hack that
60448         Mac WebKit applies to Helvetica, Times, and Courier. We did this so
60449         that those fonts would match the Mac metrics when we run the
60450         regression tests. However, this hack was applying to Arial on Windows
60451         when a site would specify the Helvetica font face because Windows will
60452         alias the font names. Instead of removing the hack entirely, we
60453         turn it off by default but provide some SPI so that DumpRenderTree can
60454         turn it on.
60456         Reviewed by Hyatt.
60458         All tests pass.
60460         * platform/graphics/FontData.h: Add a new static method to turn on the
60461         hack on Windows only.
60462         * platform/graphics/win/FontDataWin.cpp:
60463         (WebCore::FontData::setShouldApplyMacAscentHack): Added.
60464         (WebCore::FontData::platformInit): Only perform the hack if
60465         shouldApplyMacAscentHack is true.
60467 2007-12-06  Geoffrey Garen  <ggaren@apple.com>
60469         Reviewed by Sam Weinig.
60471         Fixed http://bugs.webkit.org/show_bug.cgi?id=16328
60472         REGRESSION (r28470): Crash expanding a GMail conversation
60473         
60474         * page/Frame.cpp:
60475         (WebCore::Frame::scriptProxy): Only return 0 if JS seems disabled *and*
60476         we haven't created the proxy yet. If we've created the proxy already, a
60477         script may be in the midst of execution, even though we've lost our
60478         settings object. During execution, scripts assume they have free access
60479         to the proxy.
60481 2007-12-06  Adele Peterson  <adele@apple.com>
60483         Reviewed by Oliver.
60485         Fix for <rdar://problem/5631356> Toggling display property on video causes controls to get lost
60487         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::attach): Call updateFromElement.
60488         * html/HTMLMediaElement.h:
60490 2007-12-05  Antti Koivisto  <antti@apple.com>
60492         Reviewed by Oliver.
60494         Rename
60496         Movie -> MediaPlayer
60497         MoviePrivate -> MediaPlayerPrivate
60498         
60499         Movie is QuickTime terminology and clashes with its C API.
60501         * WebCore.xcodeproj/project.pbxproj:
60502         * html/HTMLMediaElement.cpp:
60503         (WebCore::HTMLMediaElement::HTMLMediaElement):
60504         (WebCore::HTMLMediaElement::~HTMLMediaElement):
60505         (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
60506         (WebCore::HTMLMediaElement::bufferingRate):
60507         (WebCore::HTMLMediaElement::load):
60508         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
60509         (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
60510         (WebCore::HTMLMediaElement::setReadyState):
60511         (WebCore::HTMLMediaElement::progressEventTimerFired):
60512         (WebCore::HTMLMediaElement::seek):
60513         (WebCore::HTMLMediaElement::currentTime):
60514         (WebCore::HTMLMediaElement::duration):
60515         (WebCore::HTMLMediaElement::playbackRate):
60516         (WebCore::HTMLMediaElement::setPlaybackRate):
60517         (WebCore::HTMLMediaElement::play):
60518         (WebCore::HTMLMediaElement::pause):
60519         (WebCore::HTMLMediaElement::setVolume):
60520         (WebCore::HTMLMediaElement::setMuted):
60521         (WebCore::HTMLMediaElement::pickMedia):
60522         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
60523         (WebCore::HTMLMediaElement::mediaPlayerVolumeChanged):
60524         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
60525         (WebCore::HTMLMediaElement::mediaPlayerCuePointReached):
60526         (WebCore::HTMLMediaElement::addCuePoint):
60527         (WebCore::HTMLMediaElement::buffered):
60528         (WebCore::HTMLMediaElement::seekable):
60529         (WebCore::HTMLMediaElement::effectiveStart):
60530         (WebCore::HTMLMediaElement::effectiveEnd):
60531         (WebCore::HTMLMediaElement::effectiveLoopStart):
60532         (WebCore::HTMLMediaElement::effectiveLoopEnd):
60533         (WebCore::HTMLMediaElement::updateMediaPlayer):
60534         (WebCore::HTMLMediaElement::willSaveToCache):
60535         * html/HTMLMediaElement.h:
60536         (WebCore::HTMLMediaElement::player):
60537         * html/HTMLVideoElement.cpp:
60538         (WebCore::HTMLVideoElement::videoWidth):
60539         (WebCore::HTMLVideoElement::videoHeight):
60540         * platform/MIMETypeRegistry.cpp:
60541         (WebCore::initialiseSupportedMediaMIMETypes):
60542         (WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
60543         (WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
60544         * platform/MIMETypeRegistry.h:
60545         * platform/graphics/MediaPlayer.cpp: Copied from WebCore/platform/graphics/Movie.cpp.
60546         (WebCore::MediaPlayer::MediaPlayer):
60547         (WebCore::MediaPlayer::~MediaPlayer):
60548         (WebCore::MediaPlayer::load):
60549         (WebCore::MediaPlayer::cancelLoad):
60550         (WebCore::MediaPlayer::play):
60551         (WebCore::MediaPlayer::pause):
60552         (WebCore::MediaPlayer::duration):
60553         (WebCore::MediaPlayer::currentTime):
60554         (WebCore::MediaPlayer::seek):
60555         (WebCore::MediaPlayer::paused):
60556         (WebCore::MediaPlayer::seeking):
60557         (WebCore::MediaPlayer::naturalSize):
60558         (WebCore::MediaPlayer::hasVideo):
60559         (WebCore::MediaPlayer::networkState):
60560         (WebCore::MediaPlayer::readyState):
60561         (WebCore::MediaPlayer::volume):
60562         (WebCore::MediaPlayer::setVolume):
60563         (WebCore::MediaPlayer::rate):
60564         (WebCore::MediaPlayer::setRate):
60565         (WebCore::MediaPlayer::muted):
60566         (WebCore::MediaPlayer::setMuted):
60567         (WebCore::MediaPlayer::dataRate):
60568         (WebCore::MediaPlayer::setEndTime):
60569         (WebCore::MediaPlayer::addCuePoint):
60570         (WebCore::MediaPlayer::removeCuePoint):
60571         (WebCore::MediaPlayer::clearCuePoints):
60572         (WebCore::MediaPlayer::maxTimeBuffered):
60573         (WebCore::MediaPlayer::maxTimeSeekable):
60574         (WebCore::MediaPlayer::bytesLoaded):
60575         (WebCore::MediaPlayer::totalBytesKnown):
60576         (WebCore::MediaPlayer::totalBytes):
60577         (WebCore::MediaPlayer::setRect):
60578         (WebCore::MediaPlayer::visible):
60579         (WebCore::MediaPlayer::setVisible):
60580         (WebCore::MediaPlayer::paint):
60581         (WebCore::MediaPlayer::getSupportedTypes):
60582         (WebCore::MediaPlayer::networkStateChanged):
60583         (WebCore::MediaPlayer::readyStateChanged):
60584         (WebCore::MediaPlayer::volumeChanged):
60585         (WebCore::MediaPlayer::timeChanged):
60586         (WebCore::MediaPlayer::cuePointReached):
60587         * platform/graphics/MediaPlayer.h: Copied from WebCore/platform/graphics/Movie.h.
60588         (WebCore::MediaPlayerClient::~MediaPlayerClient):
60589         (WebCore::MediaPlayerClient::mediaPlayerNetworkStateChanged):
60590         (WebCore::MediaPlayerClient::mediaPlayerReadyStateChanged):
60591         (WebCore::MediaPlayerClient::mediaPlayerVolumeChanged):
60592         (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
60593         (WebCore::MediaPlayerClient::mediaPlayerCuePointReached):
60594         * platform/graphics/Movie.cpp: Removed.
60595         * platform/graphics/Movie.h: Removed.
60596         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.cpp.
60597         (WebCore::mediaPlayerPrivateErrorCallback):
60598         (WebCore::mediaPlayerPrivateEOSCallback):
60599         (WebCore::mediaPlayerPrivateStateCallback):
60600         (WebCore::mediaPlayerPrivateBufferingCallback):
60601         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
60602         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
60603         (WebCore::MediaPlayerPrivate::load):
60604         (WebCore::MediaPlayerPrivate::play):
60605         (WebCore::MediaPlayerPrivate::pause):
60606         (WebCore::MediaPlayerPrivate::duration):
60607         (WebCore::MediaPlayerPrivate::currentTime):
60608         (WebCore::MediaPlayerPrivate::seek):
60609         (WebCore::MediaPlayerPrivate::setEndTime):
60610         (WebCore::MediaPlayerPrivate::addCuePoint):
60611         (WebCore::MediaPlayerPrivate::removeCuePoint):
60612         (WebCore::MediaPlayerPrivate::clearCuePoints):
60613         (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
60614         (WebCore::MediaPlayerPrivate::cancelSeek):
60615         (WebCore::MediaPlayerPrivate::cuePointTimerFired):
60616         (WebCore::MediaPlayerPrivate::paused):
60617         (WebCore::MediaPlayerPrivate::seeking):
60618         (WebCore::MediaPlayerPrivate::naturalSize):
60619         (WebCore::MediaPlayerPrivate::hasVideo):
60620         (WebCore::MediaPlayerPrivate::setVolume):
60621         (WebCore::MediaPlayerPrivate::setMuted):
60622         (WebCore::MediaPlayerPrivate::setRate):
60623         (WebCore::MediaPlayerPrivate::dataRate):
60624         (WebCore::MediaPlayerPrivate::networkState):
60625         (WebCore::MediaPlayerPrivate::readyState):
60626         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
60627         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
60628         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
60629         (WebCore::MediaPlayerPrivate::bytesLoaded):
60630         (WebCore::MediaPlayerPrivate::totalBytesKnown):
60631         (WebCore::MediaPlayerPrivate::totalBytes):
60632         (WebCore::MediaPlayerPrivate::cancelLoad):
60633         (WebCore::MediaPlayerPrivate::updateStates):
60634         (WebCore::MediaPlayerPrivate::loadStateChanged):
60635         (WebCore::MediaPlayerPrivate::rateChanged):
60636         (WebCore::MediaPlayerPrivate::sizeChanged):
60637         (WebCore::MediaPlayerPrivate::timeChanged):
60638         (WebCore::MediaPlayerPrivate::volumeChanged):
60639         (WebCore::MediaPlayerPrivate::didEnd):
60640         (WebCore::MediaPlayerPrivate::loadingFailed):
60641         (WebCore::MediaPlayerPrivate::setRect):
60642         (WebCore::MediaPlayerPrivate::setVisible):
60643         (WebCore::MediaPlayerPrivate::paint):
60644         (WebCore::MediaPlayerPrivate::getSupportedTypes):
60645         (WebCore::MediaPlayerPrivate::createGSTPlayBin):
60646         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.h.
60647         * platform/graphics/gtk/MoviePrivateGStreamer.cpp: Removed.
60648         * platform/graphics/gtk/MoviePrivateGStreamer.h: Removed.
60649         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.h.
60650         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.mm.
60651         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
60652         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
60653         (WebCore::MediaPlayerPrivate::createQTMovie):
60654         (WebCore::MediaPlayerPrivate::createQTMovieView):
60655         (WebCore::MediaPlayerPrivate::createQTTime):
60656         (WebCore::MediaPlayerPrivate::load):
60657         (WebCore::MediaPlayerPrivate::play):
60658         (WebCore::MediaPlayerPrivate::pause):
60659         (WebCore::MediaPlayerPrivate::duration):
60660         (WebCore::MediaPlayerPrivate::currentTime):
60661         (WebCore::MediaPlayerPrivate::seek):
60662         (WebCore::MediaPlayerPrivate::doSeek):
60663         (WebCore::MediaPlayerPrivate::cancelSeek):
60664         (WebCore::MediaPlayerPrivate::seekTimerFired):
60665         (WebCore::MediaPlayerPrivate::setEndTime):
60666         (WebCore::MediaPlayerPrivate::addCuePoint):
60667         (WebCore::MediaPlayerPrivate::removeCuePoint):
60668         (WebCore::MediaPlayerPrivate::clearCuePoints):
60669         (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
60670         (WebCore::MediaPlayerPrivate::cuePointTimerFired):
60671         (WebCore::MediaPlayerPrivate::paused):
60672         (WebCore::MediaPlayerPrivate::seeking):
60673         (WebCore::MediaPlayerPrivate::naturalSize):
60674         (WebCore::MediaPlayerPrivate::hasVideo):
60675         (WebCore::MediaPlayerPrivate::setVolume):
60676         (WebCore::MediaPlayerPrivate::setMuted):
60677         (WebCore::MediaPlayerPrivate::setRate):
60678         (WebCore::MediaPlayerPrivate::dataRate):
60679         (WebCore::MediaPlayerPrivate::networkState):
60680         (WebCore::MediaPlayerPrivate::readyState):
60681         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
60682         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
60683         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
60684         (WebCore::MediaPlayerPrivate::bytesLoaded):
60685         (WebCore::MediaPlayerPrivate::totalBytesKnown):
60686         (WebCore::MediaPlayerPrivate::totalBytes):
60687         (WebCore::MediaPlayerPrivate::cancelLoad):
60688         (WebCore::MediaPlayerPrivate::updateStates):
60689         (WebCore::MediaPlayerPrivate::loadStateChanged):
60690         (WebCore::MediaPlayerPrivate::rateChanged):
60691         (WebCore::MediaPlayerPrivate::sizeChanged):
60692         (WebCore::MediaPlayerPrivate::timeChanged):
60693         (WebCore::MediaPlayerPrivate::volumeChanged):
60694         (WebCore::MediaPlayerPrivate::didEnd):
60695         (WebCore::MediaPlayerPrivate::setRect):
60696         (WebCore::MediaPlayerPrivate::setVisible):
60697         (WebCore::MediaPlayerPrivate::paint):
60698         (WebCore::MediaPlayerPrivate::getSupportedTypes):
60699         (-[WebCoreMovieObserver initWithCallback:WebCore::]):
60700         * platform/graphics/mac/MoviePrivateQTKit.h: Removed.
60701         * platform/graphics/mac/MoviePrivateQTKit.mm: Removed.
60702         * rendering/RenderMedia.cpp:
60703         (WebCore::RenderMedia::player):
60704         * rendering/RenderMedia.h:
60705         * rendering/RenderVideo.cpp:
60706         (WebCore::RenderVideo::RenderVideo):
60707         (WebCore::RenderVideo::~RenderVideo):
60708         (WebCore::RenderVideo::videoSizeChanged):
60709         (WebCore::RenderVideo::paintReplaced):
60710         (WebCore::RenderVideo::layout):
60711         (WebCore::RenderVideo::updateFromElement):
60712         (WebCore::RenderVideo::updatePlayer):
60713         * rendering/RenderVideo.h:
60715 2007-12-06  Geoffrey Garen  <ggaren@apple.com>
60717         Build fix: access global object directly.
60719         * plugins/win/PluginViewWin.cpp:
60720         (WebCore::PluginViewWin::bindingInstance):
60722 2007-12-06  Mark Rowe  <mrowe@apple.com>
60724         Reviewed by Eric.
60726         Fix bug spotted by GCC 4.2.
60728         * bindings/js/kjs_window.cpp:
60729         (KJS::allowPopUp): Remove extraneous semicolon that completely changed the meaning of allowPopUp.
60731 2007-12-06  Holger Hans Peter Freyther <holger.freyther@trolltech.com>
60733         Reviewed by Alp Toker.
60735         http://bugs.webkit.org/show_bug.cgi?id=16173
60736         Licensing change
60738         Change license from BSD to LGPL.
60740         * platform/gtk/FileSystemGtk.cpp:
60742 2007-12-05  Rob Buis  <buis@kde.org>
60744         Reviewed by Mitz.
60746         http://bugs.webkit.org/show_bug.cgi?id=15289
60747         WebKit does not respect clip paths of a 0x0 rect
60749         Make empty clip paths clip the whole referencing graphic.
60751         * svg/SVGClipPathElement.cpp:
60752         (WebCore::SVGClipPathElement::canvasResource):
60753         * svg/graphics/SVGResourceClipper.h:
60754         (WebCore::ClipDataList::isEmpty):
60756 2007-12-05  Darin Adler  <darin@apple.com>
60758         Reviewed by Maciej.
60760         - fix http://bugs.webkit.org/show_bug.cgi?id=16266
60761           <rdar://problem/5625279> REGRESSION: crash loading CNN.com at
60762           Interpreter::createObjectsForGlobalObjectProperties()
60764         I don't know how to reproduce this in a test.
60766         * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::mark):
60767         Call JSEventTargetNode::mark instead of DOMObject::mark. There's no difference
60768         right now, but it's best to call your base class, not your base's base.
60770         * bindings/js/kjs_events.h: Removed unneeded virtual from the
60771         JSUnprotectedEventListener::mark() function; it neither derives from or is
60772         derived from anyone else with a mark() function so there's no need for virtual.
60774         * bindings/js/kjs_window.cpp: (KJS::Window::mark): Call JSGlobalObject::mark,
60775         not JSObject::mark. This is the actual bug fix.
60777 2007-12-05  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
60779         http://bugs.webkit.org/show_bug.cgi?id=16145
60780         [gtk] Implement media support in GTK backend
60782         Reviewed by Alp Toker.
60784         Remove old comments, fix variable names, match WebKit coding style.
60786         * platform/graphics/gtk/MoviePrivateGStreamer.cpp:
60787         (WebCore::moviePrivateEOSCallback):
60788         (WebCore::MoviePrivate::MoviePrivate):
60789         (WebCore::MoviePrivate::load):
60790         (WebCore::MoviePrivate::play):
60791         (WebCore::MoviePrivate::pause):
60792         (WebCore::MoviePrivate::currentTime):
60793         (WebCore::MoviePrivate::seek):
60794         (WebCore::MoviePrivate::cancelSeek):
60795         (WebCore::MoviePrivate::seeking):
60796         (WebCore::MoviePrivate::naturalSize):
60797         (WebCore::MoviePrivate::setVolume):
60798         (WebCore::MoviePrivate::setMuted):
60799         (WebCore::MoviePrivate::maxTimeBuffered):
60800         (WebCore::MoviePrivate::bytesLoaded):
60801         (WebCore::MoviePrivate::totalBytesKnown):
60802         (WebCore::MoviePrivate::totalBytes):
60803         (WebCore::MoviePrivate::updateStates):
60804         (WebCore::MoviePrivate::didEnd):
60805         (WebCore::MoviePrivate::paint):
60806         (WebCore::MoviePrivate::createGSTPlayBin):
60807         * platform/graphics/gtk/MoviePrivateGStreamer.h:
60809 2007-12-05  Mark Rowe  <mrowe@apple.com>
60811         Speculative wx build fix.  Add PlugInInfoStore::pluginNameForMIMEType to the temporary link stubs.
60813         * platform/wx/TemporaryLinkStubs.cpp:
60815 2007-12-05  Alp Toker  <alp@atoker.com>
60817         Rubber stamped by Mark Rowe.
60819         Remove DEPENDPATH on the generated sources directory. This causes
60820         trouble and is no longer necessary following the glib-genmarshal
60821         generator split.
60823         * WebCore.pro:
60825 2007-12-04  Geoffrey Garen  <ggaren@apple.com>
60827         Reviewed by Darin Adler.
60829         Third step in refactoring JSGlobalObject: Moved data members and data
60830         member access from Interpreter to JSGlobalObject. Changed Interpreter
60831         member functions to static functions. Same for the subclass, 
60832         ScriptInterpreter.
60833         
60834         This is a big change, but it's mostly code motion and renaming.
60835         
60836 2007-12-05  Darin Adler  <darin@apple.com>
60838         "Reviewed" by Geoff.
60840         * loader/FrameLoader.cpp:
60841         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Removed assertion.
60842         (WebCore::FrameLoader::dispatchDidCommitLoad): This one too.
60843         The assertions are firing like crazy. Not sure why yet.
60845 2007-12-05  Darin Adler  <darin@apple.com>
60847         Reviewed by Adam Roben.
60849         - fix http://bugs.webkit.org/show_bug.cgi?id=16306
60850           Assertion failed in WebCore/loader/FrameLoader.cpp:4642
60852         * loader/FrameLoader.cpp:
60853         (WebCore::FrameLoader::dispatchDidCommitLoad): Check m_creatingInitialEmptyDocument
60854         and don't deliver the client call in that case.
60856 2007-12-05  Mark Rowe  <mrowe@apple.com>
60858         Reviewed by Kevin Decker.
60860         Fix 64-bit debug build.
60862         * platform/text/mac/TextCodecMac.cpp:
60863         (WebCore::TextCodecMac::decode): OSStatus is a long for 32-bit but int on 64-bit,
60864         so we need to cast it to be able to use a single format specifier on both.
60866 2007-12-05  Kevin Decker  <kdecker@apple.com>
60868         Reviewed by Hyatt.
60870         <rdar://problem/5613106> Acordex: REGRESSION (Tiger-Leopard): plug-ins can no longer take over TIFF images (affects uspto.gov)
60871        
60872         * loader/FrameLoader.cpp:
60873         (WebCore::FrameLoader::shouldUsePlugin): Allow plug-ins (with the exception of QuickTime) to
60874         takeover TIFF once again.
60875         
60876 2007-12-05  Luca Bruno  <lethalman88@gmail.com>
60878         Reviewed by Alp Toker.
60880         http://bugs.webkit.org/show_bug.cgi?id=16290
60881         [GTK] Pasting clipboard in rich text.
60883         * platform/gtk/PasteboardGtk.cpp:
60884         (Pasteboard::documentFragment): Implement rich text paste support.
60886 2007-12-05  Adele Peterson  <adele@apple.com>
60888         Reviewed by Hyatt.
60890         Reverting fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
60892         We need to just fix the underlying focus ring repaint problem.
60894         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):
60896 2007-12-04  Kevin McCullough  <kmccullough@apple.com>
60898         Reviewed by Darin.
60900         - <rdar://5621435>
60901         - Security Fix. Instead of having it off by default, WebKit now must
60902         explicitly turn off local-resource restriction when needed for backwards
60903         compatibility reasons.
60905         * loader/FrameLoader.cpp:
60907 2007-12-05  Adam Roben  <aroben@apple.com>
60909         Set the menu item identifier for all menu items
60911         This allows WebKit clients to distinguish between submenus in the
60912         context menu.
60914         Reviewed by Darin.
60916         No test possible.
60918         * platform/win/ContextMenuItemWin.cpp:
60919         (WebCore::ContextMenuItem::ContextMenuItem):
60921 2007-12-05  Dan Bernstein  <mitz@apple.com>
60923         Reviewed by Darin Adler.
60925         - WebCore part of fixing <rdar://problem/5111082> Flash popup video ad doesn't close when clicked at http://www.firestonecompleteautocare.com/
60927         * manual-tests/nested-plug-ins.html: Added.
60928         * manual-tests/resources/nested-plug-ins-inner-frame.html: Added.
60929         * manual-tests/resources/nested-plug-ins-outer-frame.html: Added.
60930         * platform/ScrollView.h:
60931         * platform/Widget.h:
60932         (WebCore::Widget::attachToWindow): Added. Tells the widget that it is connected
60933         via visible ScrollViews to the root ScrollView of the WebView.
60934         (WebCore::Widget::detachFromWindow): Added. Tells the widget that it is no longer
60935         connected via visible ScrollViews to the root ScrollView of the WebView.
60936         * platform/win/ScrollViewWin.cpp:
60937         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate): Added
60938         m_visible and m_attachedToWindow members.
60939         (WebCore::ScrollView::attachToWindow): Added. Attaches all children if this
60940         view is visible.
60941         (WebCore::ScrollView::detachFromWindow): Added. Detaches all children if this
60942         view is visible (otherwise they would be detached already).
60943         (WebCore::ScrollView::show): Added. Attaches all children if this view
60944         is attached.
60945         (WebCore::ScrollView::hide): Added. Detaches all children if this view
60946         is attached (otherwise they would be detached already).
60947         (WebCore::ScrollView::isAttachedToWindow): Added.
60948         * platform/win/WidgetWin.cpp:
60949         (WebCore::Widget::setParent): Added calls to attachToWindow() and detachFromWindow()
60950         depending on whether the parent is set and attached or not.
60951         * plugins/win/PluginViewWin.cpp:
60952         (WebCore::PluginViewWin::setFocus):
60953         (WebCore::PluginViewWin::show): Changed to show the plug-in only if
60954         this view is attached.
60955         (WebCore::PluginViewWin::hide): Changed to hide the plug-in only if this
60956         view is attached (otherwise it would be hidden already).
60957         (WebCore::PluginViewWin::attachToWindow): Added. Shows the plug-in if this view
60958         is visible.
60959         (WebCore::PluginViewWin::detachFromWindow): Added. Hides the plug-in if this view
60960         is visible (otherwise it would be hidden already).
60961         (WebCore::PluginViewWin::PluginViewWin):
60962         * plugins/win/PluginViewWin.h: Added m_attachedToWindow member.
60964 2007-12-04  Alp Toker  <alp@atoker.com>
60966         Potential GTK+ build fix for the glib-genmarshal issue.
60968         Split the glib-genmarshal qmake generator in two; one for the source
60969         file, another for the header.
60971         * WebCore.pro:
60973 2007-12-04  Alp Toker  <alp@atoker.com>
60975         GTK+ build fix.
60977         * platform/PlugInInfoStore.h:
60979 2007-12-04  Kevin Decker  <kdecker@apple.com>
60981         Reviewed by Anders.
60983         <rdar://problem/5629125> PluginInfoStore needs the ability to return the name of a plug-in for a given MIME type
60985         * page/mac/WebCoreViewFactory.h: Added pluginNameForMIMEType: method.
60986         * platform/PlugInInfoStore.h:
60987         * platform/gtk/TemporaryLinkStubs.cpp: Added stub version of pluginNameForMIMEType.
60988         (PlugInInfoStore::pluginNameForMIMEType):
60989         * platform/mac/PlugInInfoStoreMac.mm:
60990         (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added.
60991         * platform/qt/PlugInInfoStoreQt.cpp: 
60992         (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.
60993         * plugins/win/PlugInInfoStoreWin.cpp: 
60994         (WebCore::PlugInInfoStore::pluginNameForMIMEType): Added stub version of pluginNameForMIMEType.
60996 2007-12-04  Adele Peterson  <adele@apple.com>
60998         Reviewed by Darin.
61000         Fix for <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
61002         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setStyle):
61003         Adjust outline-offset so it doesn't extend beyond the border to interfere with typing
61005 2007-12-04  Anders Carlsson  <andersca@apple.com>
61007         Reviewed by Jon.
61009         Always call NPP_NewStream, NPP_DestroyStream and NPP_URLNotify for JavaScript
61010         result streams, even if the JavaScript expression threw an exception or returned undefined.
61011         This matches what Firefox does.
61012         
61013         * plugins/win/PluginStreamWin.cpp:
61014         (WebCore::PluginStreamWin::sendJavaScriptStream):
61015         Handle the result string being null, and set the correct NPReason if it is.
61016         
61017         * plugins/win/PluginViewWin.cpp:
61018         (WebCore::PluginViewWin::performRequest):
61019         Always send the JavaScript stream, regardless of the result could be converted to a string or not.
61021 2007-12-04  Adele Peterson  <adele@apple.com>
61023         Reviewed by Hyatt.
61025         Fix for <rdar://problem/5622464> controls should show up for audio element
61027         * css/html4.css: Added styles for audio controls.  This will need to be refined, since we may want a different look for audio controls.
61028         * html/HTMLMediaElement.cpp:
61029         (WebCore::HTMLMediaElement::attributeChanged): When the controls attribute changes detach and reattach if necessary. 
61030         (WebCore::HTMLMediaElement::rendererIsNeeded): Added.
61031         (WebCore::HTMLMediaElement::createRenderer): Added.  Uses RenderMedia.
61032         * html/HTMLMediaElement.h:
61033         * rendering/RenderMedia.cpp: (WebCore::RenderMedia::RenderMedia): Added constructor that doesn't take intrinsic size.
61034         * rendering/RenderMedia.h:
61036 2007-12-04  Anders Carlsson  <andersca@apple.com>
61038         Reviewed by Sam.
61040         Add isSafeScript(const JSGlobalObject*) so we won't get the JSGlobalObject
61041         implementation, which always returns true(!).
61042         
61043         * bindings/js/kjs_window.cpp:
61044         (KJS::Window::isSafeScript):
61045         Make the static isSafeScript method take two JSGlobalObjects.
61046         
61047         * bindings/js/kjs_window.h:
61048         (KJS::Window::isSafeScript):
61049         Implement isSafeScript and have it call the static method.
61051 2007-11-27  Adam Roben  <aroben@apple.com>
61053         Make the implementation of Frame::setNeedsReapplyStyles cross-platform
61055         Reviewed by Hyatt.
61057         No change in functionality.
61059         * page/Frame.cpp:
61060         (WebCore::Frame::setNeedsReapplyStyles): Added. Invalidates the
61061         FrameView so that FrameView::layout will be called, which ends up
61062         calling reapplyStyles.
61063         (WebCore::Frame::needsReapplyStyles): Added.
61064         (WebCore::Frame::reapplyStyles): Renamed from reparseConfiguration.
61065         (WebCore::FramePrivate::FramePrivate):
61066         * page/Frame.h:
61067         * page/FramePrivate.h: Added new boolean member.
61068         * page/FrameView.cpp:
61069         (WebCore::FrameView::layout): Call Frame::reapplyStyles if needed.
61070         (WebCore::FrameView::needsLayout): Say that we need layout if the
61071         Frame needs styles reapplied.
61072         * page/mac/WebCoreFrameBridge.h: Removed setNeedsReapplyStyles.
61073         * page/mac/WebCoreFrameBridge.mm:
61074         (-[WebCoreFrameBridge reapplyStylesForDeviceType:]): Updated for
61075         rename.
61077         * bridge/win/FrameWin.cpp: Removed Frame::setNeedsReapplyStyles.
61078         * page/gtk/FrameGtk.cpp: Ditto.
61079         * page/mac/FrameMac.mm: Ditto.
61080         * page/qt/FrameQt.cpp: Ditto.
61081         * platform/wx/TemporaryLinkStubs.cpp: Ditto.
61083 2007-12-04  Antti Koivisto  <antti@apple.com>
61085         Reviewed by Adele.
61087         Pass intrinsic size to the base class.
61089         * rendering/RenderMedia.cpp:
61090         (WebCore::RenderMedia::RenderMedia):
61092 2007-12-04  Adele Peterson  <adele@apple.com>
61094         Reviewed by Darin.
61096         Fix for <rdar://problem/5578209> REGRESSION: Crash in WebCore::DeprecatedValueListImpl::Private::copyList when going back on zoomerang.com/survey
61098         * loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation):
61099           When the new url is exactly the same as the old url, don't treat it like a fragment navigation, since its going to cause a reload.
61101 2007-12-04  Darin Adler  <darin@apple.com>
61103         Reviewed by Kevin Decker.
61105         - added an assertion for a situation that leads to a Safari assertion:
61106           a commit that is not followed by a load completion
61108         - removed some unneeded FrameLoader stuff -- maybe some day we'll get this
61109           class cut down to size
61111         * loader/FrameLoader.cpp:
61112         (WebCore::FrameLoader::FrameLoader): Added boolean for assertion.
61113         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Added code to assert
61114         that we already sent a commit before sending a complete.
61115         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): Call
61116         client directly instead of indirecting through a function.
61117         (WebCore::FrameLoader::loadItem): Ditto.
61118         (WebCore::FrameLoader::goToItem): Ditto.
61119         (WebCore::FrameLoader::addHistoryForCurrentLocation): Get the private browsing
61120         state from Settings instead of FrameLoaderClient. Also call client directly
61121         instead of indirecting through a function.
61122         (WebCore::FrameLoader::updateHistoryForReload): Call client directly instead
61123         of indirecting through a function.
61124         (WebCore::FrameLoader::dispatchDidCommitLoad): Added code to assert
61125         that we did not yet send a commit and set the flag that will be used to check
61126         that we don't do this twice in a row without an intervening completion call.
61128         * loader/FrameLoader.h: Added a boolean for the assertion. Removed six
61129         now-unneeded functions.
61131         * loader/FrameLoaderClient.h: Removed now-unneeded privateBrowsingEnabled function.
61133         * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willCacheResponse): Get
61134         the private browsing state from Settings instead of FrameLoaderClient.
61136         * svg/graphics/SVGImageEmptyClients.h: Removed obsolete privateBrowsingEnabled.
61138 2007-12-03  Antti Koivisto  <antti@apple.com>
61140         Reviewed by Adele.
61141         
61142         Fix <rdar://problem/5624802> 
61143         Controller displays outside of <video> element when width and height aren't specified 
61145         - Explicitly adjust size of the controls tree root.
61146         - Switch RenderMedia base class back to RenderReplaced. It is easier to manage the shadow tree
61147           by hand. This also allows better code sharing with other replaced element classes.
61148         - Move duplicated layout and painting code from subclasses up to RenderReplaced.
61150         Test: media/video-controls-rendering.html
61152         * rendering/RenderHTMLCanvas.cpp:
61153         (WebCore::RenderHTMLCanvas::paintReplaced):
61154         * rendering/RenderHTMLCanvas.h:
61155             Share code.
61156         * rendering/RenderImage.cpp:
61157         (WebCore::RenderImage::paintReplaced):
61158         (WebCore::RenderImage::minimumReplacedHeight):
61159         * rendering/RenderImage.h:
61160             Share code.
61161         * rendering/RenderMedia.cpp:
61162         (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
61163         (WebCore::RenderMediaControlShadowRoot::setParent):
61164             Add a subclass just to get through encapsulation to use setParent().
61165         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
61166             Move initialization to the constructor.
61167         (WebCore::RenderMedia::RenderMedia):
61168         (WebCore::RenderMedia::~RenderMedia):
61169         (WebCore::RenderMedia::layout):
61170             Resize and layout the controller root by hand.
61171         (WebCore::RenderMedia::firstChild):
61172         (WebCore::RenderMedia::lastChild):
61173         (WebCore::RenderMedia::removeChild):
61174             Support one child renderer for controls.
61175         (WebCore::RenderMedia::createControlsShadowRoot):
61176         * rendering/RenderMedia.h:
61177         (WebCore::RenderMedia::isMedia):
61178             Switch base class to RenderReplaced, delete the now unnecessary stuff.
61179         * rendering/RenderReplaced.cpp:
61180         (WebCore::RenderReplaced::layout):
61181         (WebCore::RenderReplaced::paint):
61182         * rendering/RenderReplaced.h:
61183         (WebCore::RenderReplaced::minimumReplacedHeight):
61184         (WebCore::RenderReplaced::paintReplaced):
61185             Share code.
61186         * rendering/RenderVideo.cpp:
61187         (WebCore::RenderVideo::videoSizeChanged):
61188             Simplify, just request relayout.
61189         (WebCore::RenderVideo::paintReplaced):
61190         (WebCore::RenderVideo::layout):
61191         * rendering/RenderVideo.h:
61192             Share code.
61194 2007-12-04  Michael Natterer  <mitch@imendio.com>
61196         Reviewed by Alp Toker.
61198         * WebCore.pro: fix build of webkit-marshal by building the
61199         functions into a separate .cpp file instead of including them in
61200         the header. This way we can use the marshallers from more than one
61201         file without using bad hacks.
61203         Add the generated sources directory to DEPENDPATH.
61205 2007-12-04  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
61207         Reviewed by Alp Toker.
61209         http://bugs.webkit.org/show_bug.cgi?id=16145
61210         [gtk] Implement media support in GTK backend
61212         This implements the media tags of HTML5 on the GTK+ port based on the 
61213         Mac port. Media tests pass although some tests required a small modifications: 
61214         As per the HTML5 spec, the loading of the clip should start only after 
61215         all script are done.  But in the case of the tests, the loading starts 
61216         before some callbacks get registered.  This has been discussed with 
61217         Antti Koivisto, and the tests should be updated.
61219         There is only one known issue: one time in 10 tries, loading a buffered 
61220         clip will never end buffering.  The buffering will stall at 97% for no 
61221         apparent reasons.  Reloading the page usually works around the problem.
61222         On the GStreamer side, some codecs don't return correct values, therefore
61223         they make the tests fail.  For instance H.264 will make the video-end 
61224         test fail.  This should be fixed in GStreamer 0.10.15.
61226         This version displays video in a pop up window.  A place holder is drawn
61227         on the page where the video should appear.
61229         By default, it is turned off in WebCore.pro until GStreamer/X
61230         detection issues are sorted out.
61232         * WebCore.pro:
61233         Disable video for now
61234         * platform/Logging.cpp:
61235         * platform/Logging.h:
61236         Added a logging level for Media stuff
61237         * platform/graphics/Movie.cpp:
61238         * platform/graphics/gtk/MoviePrivateGStreamer.cpp: Added.
61239         (WebCore::moviePrivateErrorCallback):
61240         (WebCore::moviePrivateEOSCallback):
61241         (WebCore::moviePrivateStateCallback):
61242         (WebCore::moviePrivateBufferingCallback):
61243         (WebCore::moviePrivateWindowIDCallback):
61244         (WebCore::MoviePrivate::MoviePrivate):
61245         (WebCore::MoviePrivate::~MoviePrivate):
61246         (WebCore::MoviePrivate::load):
61247         (WebCore::MoviePrivate::play):
61248         (WebCore::MoviePrivate::pause):
61249         (WebCore::MoviePrivate::duration):
61250         (WebCore::MoviePrivate::currentTime):
61251         (WebCore::MoviePrivate::seek):
61252         (WebCore::MoviePrivate::setEndTime):
61253         (WebCore::MoviePrivate::addCuePoint):
61254         (WebCore::MoviePrivate::removeCuePoint):
61255         (WebCore::MoviePrivate::clearCuePoints):
61256         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
61257         (WebCore::MoviePrivate::cancelSeek):
61258         (WebCore::MoviePrivate::cuePointTimerFired):
61259         (WebCore::MoviePrivate::paused):
61260         (WebCore::MoviePrivate::seeking):
61261         (WebCore::MoviePrivate::naturalSize):
61262         (WebCore::MoviePrivate::hasVideo):
61263         (WebCore::MoviePrivate::setVolume):
61264         (WebCore::MoviePrivate::setMuted):
61265         (WebCore::MoviePrivate::setRate):
61266         (WebCore::MoviePrivate::dataRate):
61267         (WebCore::MoviePrivate::networkState):
61268         (WebCore::MoviePrivate::readyState):
61269         (WebCore::MoviePrivate::maxTimeBuffered):
61270         (WebCore::MoviePrivate::maxTimeSeekable):
61271         (WebCore::MoviePrivate::maxTimeLoaded):
61272         (WebCore::MoviePrivate::bytesLoaded):
61273         (WebCore::MoviePrivate::totalBytesKnown):
61274         (WebCore::MoviePrivate::totalBytes):
61275         (WebCore::MoviePrivate::cancelLoad):
61276         (WebCore::MoviePrivate::updateStates):
61277         (WebCore::MoviePrivate::loadStateChanged):
61278         (WebCore::MoviePrivate::rateChanged):
61279         (WebCore::MoviePrivate::sizeChanged):
61280         (WebCore::MoviePrivate::timeChanged):
61281         (WebCore::MoviePrivate::volumeChanged):
61282         (WebCore::MoviePrivate::didEnd):
61283         (WebCore::MoviePrivate::loadingFailed):
61284         (WebCore::MoviePrivate::setRect):
61285         (WebCore::MoviePrivate::setVisible):
61286         (WebCore::MoviePrivate::paint):
61287         (WebCore::MoviePrivate::getSupportedTypes):
61288         (WebCore::MoviePrivate::createGSTPlayBin):
61289         * platform/graphics/gtk/MoviePrivateGStreamer.h: Added.
61291 2007-12-04  Holger Hans Peter Freyther <holger.freyther@trolltech.com>
61293         Reviewed by Simon.
61295         * Implement the InspectorClient for the Qt port
61296         * It does not support highlighting of nodes yet
61297         * Use QRC to open the internal page. The important thing is the
61298         '/' in the URL to make WebCore::Document::completeURL behave the
61299         way we want.
61300         * To make the InspectorClient work we will have to mark qrc as secure.
61302         * WebCore.pro:
61303         * loader/FrameLoader.cpp:
61304         (WebCore::localSchemes):
61305         * page/inspector/WebKit.qrc: Added.
61307 2007-12-04  Alp Toker  <alp@atoker.com>
61309         Rubber stamped by Mark Rowe.
61311         Remove two unused variables to silence warnings.
61313         * html/CanvasRenderingContext2D.cpp:
61314         (WebCore::CanvasRenderingContext2D::fill):
61315         (WebCore::CanvasRenderingContext2D::stroke):
61317 2007-12-03  Dan Bernstein  <mitz@apple.com>
61319         Reviewed by Darin Adler.
61321         - fix <rdar://problem/5134044> fast/frames/frame-src-attribute.html fails on Windows
61323         * platform/win/ScrollViewWin.cpp:
61324         (WebCore::ScrollView::visibleWidth): Do not return negative values.
61325         (WebCore::ScrollView::visibleHeight): Ditto.
61327 2007-12-03  Dan Bernstein  <mitz@apple.com>
61329         Reviewed by Dave Hyatt.
61331         - fix <rdar://problem/5346452> Resize event doesn't fire on body element inside a frame
61333         Test: fast/events/resize-subframe.html
61335         * page/FrameView.cpp:
61336         (WebCore::FrameViewPrivate::FrameViewPrivate): Added a timer used when
61337         deferring tasks that need to be done after layout.
61338         (WebCore::FrameViewPrivate::reset):
61339         (WebCore::FrameView::~FrameView):
61340         (WebCore::FrameView::layout): Moved the updating of widget positions,
61341         loading plug-ins and sending events queued up during layout into
61342         performPostLayoutTasks(). performPostLayoutTasks() is called after
61343         layout unless the layout was triggered by a previous layout's post-
61344         layout tasks. In the latter case, performPostLayoutTasks() is scheduled
61345         to run later.
61346         (WebCore::FrameView::performPostLayoutTasks): Performs work that needs
61347         to be done after layout but which can result in arbitrary code
61348         execution and therefore may re-invalidate the layout. This includes
61349         updating widget positions, loading plug-ins, and dispatching layout-
61350         related DOM events (scroll, overflow and resize).
61351         (WebCore::FrameView::postLayoutTimerFired):
61352         (WebCore::FrameView::dispatchScheduledEvents):
61353         * page/FrameView.h:
61354         * page/mac/WebCoreFrameBridge.h:
61355         * page/mac/WebCoreFrameBridge.mm: Removed -sendResizeEvent since this
61356         is handled by FrameView now.
61358 2007-12-03  Rob Buis  <buis@kde.org>
61360         Reviewed by Darin.
61362         http://bugs.webkit.org/show_bug.cgi?id=15767
61363         Text decorations do not respect "visibility" property
61365         Only paint decorations if visibility is "visible".
61367         * rendering/SVGInlineTextBox.cpp:
61368         (WebCore::SVGInlineTextBox::paintDecoration):
61370 2007-12-03  Steve Falkenburg  <sfalken@apple.com>
61372         Fix build.
61374         * WebCore.vcproj/WebCore.vcproj:
61376 2007-12-03  Nikolas Zimmermann  <zimmermann@kde.org>
61378         Reviewed by David.
61380         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15645
61381         Don't allow selectors to interfere with the SVG shadow tree (<use> internal non-exposed tree).
61383         * css/CSSStyleSelector.cpp:
61384         (WebCore::CSSStyleSelector::checkSelector):
61386 2007-12-03  Dan Bernstein  <mitz@apple.com>
61388         Reviewed by Adam Roben.
61390         - fix <rdar://problem/5538651> REGRESSSION: domfuzz: null deref in WebCore::Document::canReplaceChild
61392         Test: fast/dom/Document/replaceChild-null-oldChild.html
61394         * dom/Document.cpp:
61395         (WebCore::Document::canReplaceChild):
61397 2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
61399         Reviewed by Simon.
61401         * Avoid crashes by making sure everything is layouted before
61402         we start painting. This avoids a crash in Widget::invalidateRect
61403         because QPainter::begin would fail
61404         * The QWebFrame::layout() methods and calls are left untouched because
61405         this would be an API decision.
61406         
61408         WARNING: NO TEST CASES ADDED OR CHANGED
61410         * page/FrameView.cpp:
61411         (WebCore::FrameView::updateControlTints):
61412         * page/FrameView.h:
61413         * platform/ScrollView.h:
61414         * platform/qt/ScrollViewQt.cpp:
61415         (WebCore::ScrollView::children):
61417 2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
61419         Reviewed by Simon.
61421         * Implement GraphicsContext::fillRoundedRect similiar to the
61422         CoreGraphics implementation only addPath is not called this
61423         seems to be only needed for CoreGraphics.
61424         
61426         WARNING: NO TEST CASES ADDED OR CHANGED
61428         * platform/graphics/qt/GraphicsContextQt.cpp:
61429         (WebCore::GraphicsContext::fillRoundedRect):
61431 2007-12-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
61433         Reviewed by Simon.
61435         * Coding Style fixes
61436         
61438         WARNING: NO TEST CASES ADDED OR CHANGED
61440         * platform/qt/ScrollViewQt.cpp:
61441         (WebCore::ScrollView::addChild):
61442         (WebCore::ScrollView::removeChild):
61444 2007-12-03  Alp Toker  <alp@atoker.com>
61446         Reviewed by Mark Rowe.
61448         Don't delete the decoder if it's already been created. The one we have
61449         is fine.
61451         Cairo image cleanups. Nothing substantial.
61453         Notify ImageObservers where appropriate.
61455         * platform/graphics/cairo/ImageCairo.cpp:
61456         (WebCore::BitmapImage::draw):
61457         (WebCore::Image::drawPattern):
61458         * platform/graphics/cairo/ImageSourceCairo.cpp:
61459         (WebCore::ImageSource::setData):
61460         * platform/graphics/gtk/ImageGtk.cpp:
61462 2007-12-03  Simon Hausmann  <hausmann@webkit.org>
61464         Reviewed by Lars.
61466         Fixed crash when rendering form elements with Qt 4.4
61468         QPainter::device() is not guaranteed to return a QWidget, so do the safe "cast" with the
61469         help of QPaintDevice::devType().
61470         Also fall back to the QApplication::style() if we don't have a widget.
61472         * platform/qt/RenderThemeQt.cpp:
61473         (WebCore::RenderThemeQt::paintButton):
61474         (WebCore::RenderThemeQt::paintTextField):
61475         (WebCore::RenderThemeQt::paintMenuList):
61476         (WebCore::RenderThemeQt::getStylePainterAndWidgetFromPaintInfo):
61478 2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
61480         Reviewed by Sam Weinig.
61482         * Add FrameLoader::shouldTreatSchemeAsLocal which is similar to
61483         shouldTreatURLAsLocal.
61484         * Make use of FrameLoader::shouldTreatSchemeAsLocal in SecurityOrigin
61485         and do not hardcode "file". This is needed for the WebKit/qt port to make
61486         the Web Inspector work as it using the qrc protocol instead of file.
61489         * loader/FrameLoader.cpp:
61490         (WebCore::FrameLoader::shouldTreatSchemeAsLocal):
61491         * loader/FrameLoader.h:
61492         * platform/SecurityOrigin.cpp:
61493         (WebCore::SecurityOrigin::isSecureTransitionTo):
61495 2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
61497         Rubber stamped by Sam Weinig.
61499         Only add applewebdata to the localSchemes when building for the
61500         mac. This is in preparation of adding qrc for the Qt port there
61501         as well and http://bugs.webkit.org/show_bug.cgi?id=15938.
61503         According to Anders applewebdata is not used on the win port.
61505         * loader/FrameLoader.cpp:
61506         (WebCore::localSchemes):
61508 2007-12-02  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
61510         Rubber stamped by Sam Weinig.
61512         Fix a typo. It is contains and not containts
61514         * loader/FrameLoader.cpp:
61516 2007-12-03  Alp Toker  <alp@atoker.com>
61518         Add another missing DEPENDPATH.
61520         Noticed when fixing the build.
61522         * WebCore.pro:
61524 2007-12-03  Adam Roben  <aroben@apple.com>
61526         Speculative Windows build fix
61528         * plugins/win/PluginViewWin.cpp:
61529         (WebCore::getString):
61531 2007-12-03  Geoffrey Garen  <ggaren@apple.com>
61533         Build fix: added symbols to the right .exp file.
61535         * WebCore.base.exp:
61537 2007-12-02  Geoffrey Garen  <ggaren@apple.com>
61539         Reviewed by Eric Seidel.
61541         Updated to match the JavaScriptCore change to move virtual methods from
61542         Interpreter to JSGlobalObject.
61543         
61544         Moved virtual ScriptInterpreter functions to Window.
61546 2007-12-02  Darin Adler  <darin@apple.com>
61548         Reviewed by Mitz.
61550         - fix <rdar://problem/5601995> Hang/crash on http://ebay-uk.custhelp.com/
61552         There were two problems here:
61554             1) Incorrect HTMLCollection behavior led to us trying to insert a
61555                new row inside an existing row instead of next to it. The fix for
61556                this is to make HTMLCollection work better for table-related
61557                collections.
61559             2) HTMLTableRowElement::insertCell would return a bad pointer if
61560                the insertion failed. The code should have failed, but not crashed,
61561                so it's worth fixing that too.
61563         While fixing the HTMLCollection issues, I did some clean-up of that
61564         class and its derived classes.
61566         Test: fast/dom/HTMLTableElement/rows.html
61567         Test: fast/dom/HTMLTableElement/tBodies.html
61568         Test: fast/dom/HTMLTableRowElement/cells.html
61569         Test: fast/dom/HTMLTableRowElement/insertCell.html
61570         Test: fast/dom/HTMLTableSectionElement/rows.html
61572         * bindings/js/JSHTMLCollectionCustom.cpp:
61573         (WebCore::toJS): Updated because collectionType() was renamed to type().
61575         * html/HTMLCollection.cpp:
61576         (WebCore::HTMLCollection::HTMLCollection): Updated for data member name
61577         changes. Also added a protected constructor for use by derived classes
61578         that pass in a CollectionInfo.
61579         (WebCore::HTMLCollection::CollectionInfo::copyCacheMap): Moved out of
61580         the header.
61581         (WebCore::isTableSection): Added.
61582         (WebCore::HTMLCollection::itemAfter): Renamed from traverseNextItem,
61583         because the old name was grammatically incorrect and thus a bit confusing.
61584         Changed to operate on Element* instead of Node*, and use 0 to start
61585         rather than passing in the base node (required since the base node can be
61586         a document, which is not an element). Generalized the code that made
61587         NodeChildren not descend into deeper descendants so it can be used for
61588         TRCells, TSectionRows, TableTBodies, and TableRows. Reformatted the
61589         switch statement and got rid of the "found" boolean since we can just
61590         return when we find something. Got rid of the default case, and instead
61591         listed all the enum values. Also changed to use a for loop for clarity.
61592         (WebCore::HTMLCollection::calcLength): Updated for itemAfter changes.
61593         (WebCore::HTMLCollection::item): Ditto.
61594         (WebCore::HTMLCollection::nextItem): Ditto.
61595         (WebCore::HTMLCollection::checkForNameMatch): Updated to take an Element
61596         instead of a Node pointer.
61597         (WebCore::HTMLCollection::namedItem): More of the same.
61598         (WebCore::HTMLCollection::updateNameCache): Ditto.
61599         (WebCore::HTMLCollection::namedItems): Ditto.
61600         (WebCore::HTMLCollection::nextNamedItem): Ditto.
61601         (WebCore::HTMLCollection::tags): Ditto.
61603         * html/HTMLCollection.h: Added a type FormElements, so that the
61604         HTMLFormCollection would not have a type of DocImages, which is what
61605         it previously did. Changed the base parameter to be a PassRefPtr to
61606         make it clear we take ownership of it. Added a comment explaining
61607         why we should change the name CollectionInfo. Made a lot more members
61608         private instead of protected. Renamed traverseNextItem to itemAfter.
61609         Changed most functions to take Element* instead of Node*.
61611         * html/HTMLFormCollection.cpp:
61612         (WebCore::HTMLFormCollection::formCollectionInfo): Added.
61613         (WebCore::HTMLFormCollection::HTMLFormCollection): Updated to pass
61614         collection info into the base class.
61615         (WebCore::HTMLFormCollection::calcLength): Updated to use base() so we
61616         don't need to get at m_base directly.
61617         (WebCore::HTMLFormCollection::item): Same, but for info().
61618         (WebCore::HTMLFormCollection::getNamedItem): Removed unused first
61619         argument.
61620         (WebCore::HTMLFormCollection::getNamedFormItem): Got rid of unneeded
61621         checks that the base is still an element and still a form, since that's
61622         guaranteed.
61623         (WebCore::HTMLFormCollection::nextItem): Use info().
61624         (WebCore::HTMLFormCollection::nextNamedItemInternal): Node instead of
61625         Element, some name changes.
61626         (WebCore::HTMLFormCollection::namedItem): Update for changes elsewhere.
61627         (WebCore::HTMLFormCollection::nextNamedItem): Ditto, also rewrote loop
61628         to be much simpler.
61629         (WebCore::HTMLFormCollection::updateNameCache): More of the same.
61631         * html/HTMLFormCollection.h: Changed constructor to take an
61632         HTMLFormElement, using a PassRefPtr to communicate transfer of
61633         ownership. Made everything private instead of protected. Removed
61634         unneeded override of firstItem. Made getNamedItem and
61635         nextNamedItemInternal non-virtual. Removed unused first argument of
61636         getNamedItem. Added declaration of formCollectionInfo.
61638         * html/HTMLNameCollection.cpp:
61639         (WebCore::HTMLNameCollection::HTMLNameCollection): Updated to pass
61640         collection info into the base class.
61641         (WebCore::HTMLNameCollection::itemAfter): Reformatted a bit and
61642         changed into a for loop.
61644         * html/HTMLNameCollection.h: Updated for name changes. Made function
61645         private instead of public. Used PassRefPtr in constructor.
61647         * html/HTMLOptionsCollection.cpp:
61648         (WebCore::HTMLOptionsCollection::HTMLOptionsCollection): Updated to
61649         pass collection info into the base class.
61650         (WebCore::HTMLOptionsCollection::add): Updated for public/private
61651         changes in the base class.
61652         (WebCore::HTMLOptionsCollection::selectedIndex): Ditto.
61653         (WebCore::HTMLOptionsCollection::setSelectedIndex): Ditto.
61654         (WebCore::HTMLOptionsCollection::setLength): Ditto.
61656         * html/HTMLOptionsCollection.h: Changed constructor parameter to be a
61657         PassRefPtr.
61659         * html/HTMLTableRowElement.cpp:
61660         (WebCore::HTMLTableRowElement::insertCell): Changed code to use RefPtr
61661         and PassRefPtr since this creates a new object. This alone fixed the
61662         crash. Also cleaned up logic a bit to be more readable.
61664         * html/HTMLTableRowElement.h: Changed insertCell to return a PassRefPtr.
61665         Also reordered functions a bit to make things a little more logical and
61666         removed the unused ncols data member.
61668         * html/HTMLTableSectionElement.cpp:
61669         (WebCore::HTMLTableSectionElement::rows): Pass TSectionRows, not
61670         TableRows. This mistake was harmless before because TableRows and
61671         TSectionRows were handled identically inside HTMLCollection, but that is
61672         no longer the case with this fix.
61674         * bindings/scripts/CodeGeneratorJS.pm: Add an include to cope with the
61675         fact that HTMLOptionsCollection no longer includes HTMLOptionElement.
61676         I don't think this really should be a special case -- might be worth
61677         returning later to see if this can be optimized.
61679 2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>
61681         Reviewed by Adam.
61683         RenderSVGViewportContainer sets wrong width/height.
61684         Share code with RenderSVGContainer in a central calcBounds() function.
61686         Fixes:
61687         - svg/custom/use-css-events.svg (http://bugs.webkit.org/show_bug.cgi?id=15403)
61688         - svg/custom/deep-dynamic-updates.svg
61689         - svg/custom/use-clipped-hit.svg
61690         - svg/custom/image-clipped-hit.svg
61692         * rendering/RenderSVGContainer.cpp:
61693         (WebCore::RenderSVGContainer::layout):
61694         (WebCore::RenderSVGContainer::calcBounds):
61695         * rendering/RenderSVGContainer.h:
61696         * rendering/RenderSVGViewportContainer.cpp:
61697         (WebCore::RenderSVGViewportContainer::layout):
61699 2007-12-02  Brady Eidson <beidson@apple.com>
61701         Reviewed by Darin
61703         databaseChanged notifications were being sent out on the database thread - they need to be on the main thread
61704         like all other notifications we send out!
61706         * platform/SecurityOriginData.cpp:
61707         (WebCore::SecurityOriginData::copy): Add a deep copy method, for when an object thread hops
61708         * platform/SecurityOriginData.h:
61710         * storage/DatabaseTracker.cpp:
61711         (WebCore::notificationMutex):
61712         (WebCore::notificationQueue):
61713         (WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged): Add the origin/name pair to a queue
61714         (WebCore::DatabaseTracker::scheduleForNotification): Schedule to deliver this queue of notifications
61715           on the main thread
61716         (WebCore::DatabaseTracker::notifyDatabasesChanged): Deliver all notifications in the queue
61717         * storage/DatabaseTracker.h:
61719         * storage/SQLTransaction.cpp:
61720         (WebCore::SQLTransaction::postflightAndCommit): scheduleNotifyDatabaseChanged() instead of "notify now!"
61721         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto
61723 2007-12-02  Rob Buis  <buis@kde.org>
61725         Reviewed by Darin.
61727         http://bugs.webkit.org/show_bug.cgi?id=16002
61728         Load SVG (and other) UA StyleSheets dynamically when needed
61730         Load svg sheet when needed.
61732         * css/CSSStyleSelector.cpp:
61733         (WebCore::screenEval):
61734         (WebCore::printEval):
61735         (WebCore::CSSStyleSelector::CSSStyleSelector):
61736         (WebCore::CSSStyleSelector::loadDefaultStyle):
61737         (WebCore::CSSStyleSelector::styleForElement):
61738         (WebCore::CSSRuleSet::addRulesFromSheet):
61740 2007-12-02  Mark Rowe  <mrowe@apple.com>
61742         Try and fix the Windows build.
61744         * plugins/win/PluginViewWin.cpp:
61745         (WebCore::PluginViewWin::bindingInstance):
61747 2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>
61749         Rubber stamped by Eric.
61751         Move platform/graphics/svg to graphics/svg as discussed on webkit-dev.
61752         Updated all project files.
61754         * WebCore.pro:
61755         * WebCore.vcproj/WebCore.vcproj:
61756         * WebCore.xcodeproj/project.pbxproj:
61757         * platform/graphics/svg: Removed.
61758         * platform/graphics/svg/SVGImage.cpp: Removed.
61759         * platform/graphics/svg/SVGImage.h: Removed.
61760         * platform/graphics/svg/SVGImageEmptyClients.h: Removed.
61761         * platform/graphics/svg/SVGPaintServer.cpp: Removed.
61762         * platform/graphics/svg/SVGPaintServer.h: Removed.
61763         * platform/graphics/svg/SVGPaintServerGradient.cpp: Removed.
61764         * platform/graphics/svg/SVGPaintServerGradient.h: Removed.
61765         * platform/graphics/svg/SVGPaintServerLinearGradient.cpp: Removed.
61766         * platform/graphics/svg/SVGPaintServerLinearGradient.h: Removed.
61767         * platform/graphics/svg/SVGPaintServerPattern.cpp: Removed.
61768         * platform/graphics/svg/SVGPaintServerPattern.h: Removed.
61769         * platform/graphics/svg/SVGPaintServerRadialGradient.cpp: Removed.
61770         * platform/graphics/svg/SVGPaintServerRadialGradient.h: Removed.
61771         * platform/graphics/svg/SVGPaintServerSolid.cpp: Removed.
61772         * platform/graphics/svg/SVGPaintServerSolid.h: Removed.
61773         * platform/graphics/svg/SVGResource.cpp: Removed.
61774         * platform/graphics/svg/SVGResource.h: Removed.
61775         * platform/graphics/svg/SVGResourceClipper.cpp: Removed.
61776         * platform/graphics/svg/SVGResourceClipper.h: Removed.
61777         * platform/graphics/svg/SVGResourceFilter.cpp: Removed.
61778         * platform/graphics/svg/SVGResourceFilter.h: Removed.
61779         * platform/graphics/svg/SVGResourceListener.h: Removed.
61780         * platform/graphics/svg/SVGResourceMarker.cpp: Removed.
61781         * platform/graphics/svg/SVGResourceMarker.h: Removed.
61782         * platform/graphics/svg/SVGResourceMasker.cpp: Removed.
61783         * platform/graphics/svg/SVGResourceMasker.h: Removed.
61784         * platform/graphics/svg/cairo: Removed.
61785         * platform/graphics/svg/cairo/RenderPathCairo.cpp: Removed.
61786         * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp: Removed.
61787         * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp: Removed.
61788         * platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp: Removed.
61789         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp: Removed.
61790         * platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp: Removed.
61791         * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp: Removed.
61792         * platform/graphics/svg/cg: Removed.
61793         * platform/graphics/svg/cg/CgSupport.cpp: Removed.
61794         * platform/graphics/svg/cg/CgSupport.h: Removed.
61795         * platform/graphics/svg/cg/RenderPathCg.cpp: Removed.
61796         * platform/graphics/svg/cg/SVGPaintServerCg.cpp: Removed.
61797         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp: Removed.
61798         * platform/graphics/svg/cg/SVGPaintServerPatternCg.cpp: Removed.
61799         * platform/graphics/svg/cg/SVGPaintServerSolidCg.cpp: Removed.
61800         * platform/graphics/svg/cg/SVGResourceClipperCg.cpp: Removed.
61801         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp: Removed.
61802         * platform/graphics/svg/cg/SVGResourceFilterCg.mm: Removed.
61803         * platform/graphics/svg/cg/SVGResourceMaskerCg.cpp: Removed.
61804         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm: Removed.
61805         * platform/graphics/svg/filters: Removed.
61806         * platform/graphics/svg/filters/SVGDistantLightSource.h: Removed.
61807         * platform/graphics/svg/filters/SVGFEBlend.cpp: Removed.
61808         * platform/graphics/svg/filters/SVGFEBlend.h: Removed.
61809         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp: Removed.
61810         * platform/graphics/svg/filters/SVGFEColorMatrix.h: Removed.
61811         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp: Removed.
61812         * platform/graphics/svg/filters/SVGFEComponentTransfer.h: Removed.
61813         * platform/graphics/svg/filters/SVGFEComposite.cpp: Removed.
61814         * platform/graphics/svg/filters/SVGFEComposite.h: Removed.
61815         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp: Removed.
61816         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h: Removed.
61817         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp: Removed.
61818         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h: Removed.
61819         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp: Removed.
61820         * platform/graphics/svg/filters/SVGFEDisplacementMap.h: Removed.
61821         * platform/graphics/svg/filters/SVGFEFlood.cpp: Removed.
61822         * platform/graphics/svg/filters/SVGFEFlood.h: Removed.
61823         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp: Removed.
61824         * platform/graphics/svg/filters/SVGFEGaussianBlur.h: Removed.
61825         * platform/graphics/svg/filters/SVGFEImage.cpp: Removed.
61826         * platform/graphics/svg/filters/SVGFEImage.h: Removed.
61827         * platform/graphics/svg/filters/SVGFEMerge.cpp: Removed.
61828         * platform/graphics/svg/filters/SVGFEMerge.h: Removed.
61829         * platform/graphics/svg/filters/SVGFEMorphology.cpp: Removed.
61830         * platform/graphics/svg/filters/SVGFEMorphology.h: Removed.
61831         * platform/graphics/svg/filters/SVGFEOffset.cpp: Removed.
61832         * platform/graphics/svg/filters/SVGFEOffset.h: Removed.
61833         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp: Removed.
61834         * platform/graphics/svg/filters/SVGFESpecularLighting.h: Removed.
61835         * platform/graphics/svg/filters/SVGFETile.h: Removed.
61836         * platform/graphics/svg/filters/SVGFETurbulence.cpp: Removed.
61837         * platform/graphics/svg/filters/SVGFETurbulence.h: Removed.
61838         * platform/graphics/svg/filters/SVGFilterEffect.cpp: Removed.
61839         * platform/graphics/svg/filters/SVGFilterEffect.h: Removed.
61840         * platform/graphics/svg/filters/SVGLightSource.cpp: Removed.
61841         * platform/graphics/svg/filters/SVGLightSource.h: Removed.
61842         * platform/graphics/svg/filters/SVGPointLightSource.h: Removed.
61843         * platform/graphics/svg/filters/SVGSpotLightSource.h: Removed.
61844         * platform/graphics/svg/filters/cg: Removed.
61845         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm: Removed.
61846         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm: Removed.
61847         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm: Removed.
61848         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm: Removed.
61849         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm: Removed.
61850         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm: Removed.
61851         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm: Removed.
61852         * platform/graphics/svg/filters/cg/SVGFEGaussianBlurCg.mm: Removed.
61853         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h: Removed.
61854         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.mm: Removed.
61855         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm: Removed.
61856         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm: Removed.
61857         * platform/graphics/svg/filters/cg/SVGFEOffsetCg.mm: Removed.
61858         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm: Removed.
61859         * platform/graphics/svg/filters/cg/SVGFETileCg.mm: Removed.
61860         * platform/graphics/svg/filters/cg/SVGFilterEffectCg.mm: Removed.
61861         * platform/graphics/svg/filters/cg/WKArithmeticFilter.cikernel: Removed.
61862         * platform/graphics/svg/filters/cg/WKArithmeticFilter.h: Removed.
61863         * platform/graphics/svg/filters/cg/WKArithmeticFilter.m: Removed.
61864         * platform/graphics/svg/filters/cg/WKComponentMergeFilter.cikernel: Removed.
61865         * platform/graphics/svg/filters/cg/WKComponentMergeFilter.h: Removed.
61866         * platform/graphics/svg/filters/cg/WKComponentMergeFilter.m: Removed.
61867         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.cikernel: Removed.
61868         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.h: Removed.
61869         * platform/graphics/svg/filters/cg/WKDiffuseLightingFilter.m: Removed.
61870         * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.cikernel: Removed.
61871         * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.h: Removed.
61872         * platform/graphics/svg/filters/cg/WKDiscreteTransferFilter.m: Removed.
61873         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.cikernel: Removed.
61874         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.h: Removed.
61875         * platform/graphics/svg/filters/cg/WKDisplacementMapFilter.m: Removed.
61876         * platform/graphics/svg/filters/cg/WKDistantLightFilter.cikernel: Removed.
61877         * platform/graphics/svg/filters/cg/WKDistantLightFilter.h: Removed.
61878         * platform/graphics/svg/filters/cg/WKDistantLightFilter.m: Removed.
61879         * platform/graphics/svg/filters/cg/WKGammaTransferFilter.cikernel: Removed.
61880         * platform/graphics/svg/filters/cg/WKGammaTransferFilter.h: Removed.
61881         * platform/graphics/svg/filters/cg/WKGammaTransferFilter.m: Removed.
61882         * platform/graphics/svg/filters/cg/WKIdentityTransferFilter.h: Removed.
61883         * platform/graphics/svg/filters/cg/WKIdentityTransferFilter.m: Removed.
61884         * platform/graphics/svg/filters/cg/WKLinearTransferFilter.cikernel: Removed.
61885         * platform/graphics/svg/filters/cg/WKLinearTransferFilter.h: Removed.
61886         * platform/graphics/svg/filters/cg/WKLinearTransferFilter.m: Removed.
61887         * platform/graphics/svg/filters/cg/WKNormalMapFilter.cikernel: Removed.
61888         * platform/graphics/svg/filters/cg/WKNormalMapFilter.h: Removed.
61889         * platform/graphics/svg/filters/cg/WKNormalMapFilter.m: Removed.
61890         * platform/graphics/svg/filters/cg/WKPointLightFilter.cikernel: Removed.
61891         * platform/graphics/svg/filters/cg/WKPointLightFilter.h: Removed.
61892         * platform/graphics/svg/filters/cg/WKPointLightFilter.m: Removed.
61893         * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.cikernel: Removed.
61894         * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.h: Removed.
61895         * platform/graphics/svg/filters/cg/WKSpecularLightingFilter.m: Removed.
61896         * platform/graphics/svg/filters/cg/WKSpotLightFilter.cikernel: Removed.
61897         * platform/graphics/svg/filters/cg/WKSpotLightFilter.h: Removed.
61898         * platform/graphics/svg/filters/cg/WKSpotLightFilter.m: Removed.
61899         * platform/graphics/svg/filters/cg/WKTableTransferFilter.cikernel: Removed.
61900         * platform/graphics/svg/filters/cg/WKTableTransferFilter.h: Removed.
61901         * platform/graphics/svg/filters/cg/WKTableTransferFilter.m: Removed.
61902         * platform/graphics/svg/mac: Removed.
61903         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h: Removed.
61904         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm: Removed.
61905         * platform/graphics/svg/qt: Removed.
61906         * platform/graphics/svg/qt/RenderPathQt.cpp: Removed.
61907         * platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp: Removed.
61908         * platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp: Removed.
61909         * platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp: Removed.
61910         * platform/graphics/svg/qt/SVGPaintServerQt.cpp: Removed.
61911         * platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp: Removed.
61912         * platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp: Removed.
61913         * platform/graphics/svg/qt/SVGResourceClipperQt.cpp: Removed.
61914         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp: Removed.
61915         * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp: Removed.
61916         * svg/graphics: Copied from platform/graphics/svg.
61918 2007-12-02  Nikolas Zimmermann  <zimmermann@kde.org>
61920         Reviewed by Maciej.
61922         Fix IDL lookup in subdirectories. Missing 'my' prefix for the 'thisDir' variable.
61923         When entering subdirectories the 'thisDir' variable got altered - see snippet:
61925         THISDIR: WebCore/page FOUND FILE: FrameView.h (endCondition: 0)
61926         ..
61927         -> ENTER: WebCore/page/gtk (THIS DIR: WebCore/page)
61928         ...
61929         <- LEAVE: WebCore/page/gtk (THIS DIR: WebCore/page/gtk)
61930         THISDIR: WebCore/page/gtk FOUND FILE: History.cpp (endCondition: 0)
61932         'History.cpp' is located in WebCore/page not WebCore/page/gtk.
61934         * bindings/scripts/CodeGenerator.pm:
61936 2007-12-01  Alp Toker  <alp@atoker.com>
61938         Reviewed by Adam Roben.
61940         Add the newly introduced webkit.h convenience header.
61942         * WebCore.pro:
61944 2007-12-01  Antti Koivisto  <antti@apple.com>
61946         Reviewed by Adam.
61947         
61948         - Fix crash when removing a loading media element from the tree.
61949         - Follow the spec by invoking pause() when element is removed from the tree instead of unloading.
61951         Tests: http/tests/media/remove-while-loading.html
61952                media/remove-from-document.html
61954         * html/HTMLMediaElement.cpp:
61955         (WebCore::HTMLMediaElement::removedFromDocument):
61957 2007-12-01  Geoffrey Garen  <ggaren@apple.com>
61959         Reviewed by Beth Dakin.
61961         Restored the test string in this test.
61963         * manual-tests/window-open-features-parsing.html:
61965 2007-11-30  Geoffrey Garen  <ggaren@apple.com>
61967         Reviewed by Beth Dakin.
61968         
61969         Modified WebCore to follow the new JSGlobalObject/Interpreter ownership
61970         rules in JavaScriptCore.
61972         * bindings/js/kjs_binding.cpp:
61973         * bindings/js/kjs_binding.h: Removed stale, unused 
61974         interpreterForGlobalObject().
61976         * bindings/js/kjs_proxy.cpp: Changed to store a global object, rather
61977         than an interpreter.
61978         (WebCore::KJSProxy::finishedWithEvent): Need to NULL check 
61979         m_globalObject here because we no longer unnecessarily instantiate it.
61981         * bindings/js/kjs_window.cpp:
61982         (KJS::ScheduledAction::execute):
61983         * bindings/js/kjs_window.h: Removed redundant and less efficient 
61984         interpreter() function -- global objects have direct access to their
61985         interpreters now.
61987         Changed these functions to pass around JSGlobalObjects instead of 
61988         Interpreters:
61990         * page/Frame.cpp:
61991         (WebCore::Frame::bindingRootObject):
61992         (WebCore::Frame::createRootObject):
61993         * page/Frame.h:
61994         * page/mac/WebCoreFrameBridge.mm:
61995         (createRootObject):
61997 2007-12-01  Darin Adler  <darin@apple.com>
61999         Reviewed by Mitz.
62001         - fix problem tracked by these bugs:
62002           http://bugs.webkit.org/show_bug.cgi?id=16097
62003           <rdar://problem/5619305> Safari crashes during load of LexisNexis search results
62004           <rdar://problem/5510779> CrashTracer: [USER] 25 crashes in Safari at
62005           WebCore::DocumentLoader::isLoadingMultipartContent const
62007         * loader/ImageDocument.cpp:
62008         (WebCore::ImageDocument::createDocumentStructure): Create an ImageDocumentElement
62009         instead of an HTMLImageElement.
62010         (WebCore::ImageDocument::scale): Added a null check for m_imageElement.
62011         (WebCore::ImageDocument::resizeImageToFit): Ditto.
62012         (WebCore::ImageDocument::restoreImageSize): Ditto.
62013         (WebCore::ImageDocument::imageFitsInWindow): Ditto.
62014         (WebCore::ImageDocument::windowSizeChanged): Ditto.
62015         (WebCore::ImageDocumentElement::~ImageDocumentElement): Call
62016         disconnectImageElement so m_imageElement will be set to 0
62017          if we're still connected to the document.
62018         (WebCore::ImageDocumentElement::willMoveToNewOwnerDocument): Ditto.
62020         * loader/ImageDocument.h: Changed image element type to be
62021         ImageDocumentElement instead of HTMLImageElement. Also added
62022         a disconnectImageElement function that sets m_imageElement to 0.
62024 2007-12-01  Darin Adler  <darin@apple.com>
62026         - remove the empty directories
62028         * ksvg2: Removed.
62029         * ksvg2/css: Removed.
62030         * ksvg2/events: Removed.
62031         * ksvg2/misc: Removed.
62032         * ksvg2/scripts: Removed.
62034 2007-12-01  Julien Chaffraix  <julien.chaffraix@gmail.com>
62036         Bug 16189: XMLHttpRequest::setRequestHeader() should not set certain headers
62038         Reviewed by Darin Adler.
62040         * xml/XMLHttpRequest.cpp:
62041         (WebCore::canSetRequestHeader):
62043         Test: http/tests/xmlhttprequest/set-dangerous-headers.html
62045 2007-12-01  Rahul Abrol  <ra5ul@comcast.net>
62047         Reviewed by Adam Roben.
62049         http://bugs.webkit.org/show_bug.cgi?id=16128
62050         Ignore resizable=no for window.open().
62052         * bindings/js/kjs_window.cpp:
62053         (KJS::setWindowFeature):
62054         (KJS::parseWindowFeatures):
62055         * manual-tests/window-open-features-parsing.html:
62057 2007-12-01  Dan Bernstein  <mitz@apple.com>
62059         Reviewed by Darin Adler.
62061         - fix <rdar://problem/5619240> REGRESSION (Leopard-r28069): Reproducible crash with a Mootools-based calendar picker (jump to null in FrameView::layout)
62063         Test: fast/dynamic/subtree-common-root.html
62065         * page/FrameView.cpp:
62066         (WebCore::FrameView::layoutRoot): Added a parameter to let this method
62067         return the layout root for a pending layout as well.
62068         (WebCore::FrameView::scheduleRelayoutOfSubtree): Pass the new root
62069         to markContainingBlocksForLayout(). Otherwise,
62070         markContainingBlocksForLayout() could mark past the new root, if it had
62071         previously been marked as having a normal child needing layout and then
62072         was reached via a positioned child.
62073         * page/FrameView.h:
62074         * rendering/RenderBox.cpp:
62075         (WebCore::RenderBox::calcWidth):
62076         * rendering/RenderObject.cpp:
62077         (WebCore::RenderObject::~RenderObject): Fixed the ASSERT so that
62078         it would really catch deletion of the layout root.
62079         (WebCore::RenderObject::markContainingBlocksForLayout): Added the
62080         newRoot parameter, which tells this method where to stop marking.
62081         * rendering/RenderObject.h:
62083 2007-12-01  Dan Bernstein  <mitz@apple.com>
62085         Reviewed by Darin Adler.
62087         - fold FontStyle into TextRun
62089         * WebCore.xcodeproj/project.pbxproj:
62090         * platform/graphics/Font.cpp:
62091         (WebCore::WidthIterator::WidthIterator):
62092         (WebCore::WidthIterator::advance):
62093         (WebCore::Font::width):
62094         (WebCore::Font::drawSimpleText):
62095         (WebCore::Font::drawGlyphBuffer):
62096         (WebCore::Font::drawText):
62097         (WebCore::Font::floatWidth):
62098         (WebCore::Font::floatWidthForSimpleText):
62099         (WebCore::Font::selectionRectForText):
62100         (WebCore::Font::selectionRectForSimpleText):
62101         (WebCore::Font::offsetForPosition):
62102         (WebCore::Font::offsetForPositionForSimpleText):
62103         * platform/graphics/Font.h:
62104         (WebCore::TextRun::TextRun):
62105         (WebCore::TextRun::setText):
62106         (WebCore::TextRun::allowTabs):
62107         (WebCore::TextRun::xPos):
62108         (WebCore::TextRun::padding):
62109         (WebCore::TextRun::rtl):
62110         (WebCore::TextRun::ltr):
62111         (WebCore::TextRun::directionalOverride):
62112         (WebCore::TextRun::applyRunRounding):
62113         (WebCore::TextRun::applyWordRounding):
62114         (WebCore::TextRun::spacingDisabled):
62115         (WebCore::TextRun::disableSpacing):
62116         (WebCore::TextRun::disableRoundingHacks):
62117         (WebCore::TextRun::setRTL):
62118         (WebCore::TextRun::setDirectionalOverride):
62119         * platform/graphics/FontStyle.h: Removed.
62120         * platform/graphics/GraphicsContext.cpp:
62121         (WebCore::GraphicsContext::drawText):
62122         (WebCore::GraphicsContext::drawBidiText):
62123         (WebCore::GraphicsContext::drawHighlightForText):
62124         * platform/graphics/GraphicsContext.h:
62125         * platform/graphics/StringTruncator.cpp:
62126         (WebCore::stringWidth):
62127         * platform/graphics/gtk/FontGtk.cpp:
62128         (WebCore::Font::drawComplexText):
62129         (WebCore::Font::floatWidthForComplexText):
62130         (WebCore::Font::offsetForPositionForComplexText):
62131         (WebCore::Font::selectionRectForComplexText):
62132         * platform/graphics/mac/FontMac.mm:
62133         (WebCore::ATSULayoutParameters::ATSULayoutParameters):
62134         (WebCore::addDirectionalOverride):
62135         (WebCore::overrideLayoutOperation):
62136         (WebCore::ATSULayoutParameters::initialize):
62137         (WebCore::Font::selectionRectForComplexText):
62138         (WebCore::Font::drawComplexText):
62139         (WebCore::Font::floatWidthForComplexText):
62140         (WebCore::Font::offsetForPositionForComplexText):
62141         * platform/graphics/qt/FontQt.cpp:
62142         (WebCore::generateComponents):
62143         (WebCore::Font::drawText):
62144         (WebCore::Font::width):
62145         (WebCore::Font::offsetForPosition):
62146         (WebCore::cursorToX):
62147         (WebCore::Font::selectionRectForText):
62148         * platform/graphics/win/FontWin.cpp:
62149         (WebCore::Font::selectionRectForComplexText):
62150         (WebCore::Font::drawComplexText):
62151         (WebCore::Font::floatWidthForComplexText):
62152         (WebCore::Font::offsetForPositionForComplexText):
62153         * platform/graphics/wx/FontWx.cpp:
62154         (WebCore::Font::selectionRectForComplexText):
62155         (WebCore::Font::drawComplexText):
62156         (WebCore::Font::floatWidthForComplexText):
62157         (WebCore::Font::offsetForPositionForComplexText):
62158         * platform/mac/WebCoreTextRenderer.mm:
62159         (WebCoreDrawTextAtPoint):
62160         (WebCoreTextFloatWidth):
62161         * platform/win/PopupMenuWin.cpp:
62162         (WebCore::PopupMenu::paint):
62163         * platform/win/UniscribeController.cpp:
62164         (WebCore::UniscribeController::UniscribeController):
62165         (WebCore::UniscribeController::offsetForPosition):
62166         (WebCore::UniscribeController::advance):
62167         (WebCore::UniscribeController::itemizeShapeAndPlace):
62168         (WebCore::UniscribeController::resetControlAndState):
62169         (WebCore::UniscribeController::shapeAndPlaceItem):
62170         * platform/win/UniscribeController.h:
62171         * platform/win/WebCoreTextRenderer.cpp:
62172         (WebCore::doDrawTextAtPoint):
62173         * rendering/EllipsisBox.cpp:
62174         (WebCore::EllipsisBox::paint):
62175         * rendering/InlineTextBox.cpp:
62176         (WebCore::InlineTextBox::selectionRect):
62177         (WebCore::InlineTextBox::paint):
62178         (WebCore::InlineTextBox::paintSelection):
62179         (WebCore::InlineTextBox::paintCompositionBackground):
62180         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
62181         (WebCore::InlineTextBox::paintTextMatchMarker):
62182         (WebCore::InlineTextBox::offsetForPosition):
62183         (WebCore::InlineTextBox::positionForOffset):
62184         * rendering/RenderFileUploadControl.cpp:
62185         (WebCore::RenderFileUploadControl::paintObject):
62186         (WebCore::RenderFileUploadControl::calcPrefWidths):
62187         * rendering/RenderImage.cpp:
62188         * rendering/RenderListBox.cpp:
62189         (WebCore::RenderListBox::updateFromElement):
62190         (WebCore::RenderListBox::paintItemForeground):
62191         * rendering/RenderMenuList.cpp:
62192         (WebCore::RenderMenuList::updateOptionsWidth):
62193         * rendering/RenderText.cpp:
62194         (WebCore::RenderText::widthFromCache):
62195         (WebCore::RenderText::calcPrefWidths):
62196         (WebCore::RenderText::width):
62197         * rendering/RenderText.h:
62198         (WebCore::RenderText::allowTabs):
62199         * rendering/RenderTextControl.cpp:
62200         (WebCore::RenderTextControl::calcPrefWidths):
62201         * rendering/SVGInlineTextBox.cpp:
62202         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
62203         (WebCore::SVGInlineTextBox::paintCharacters):
62204         (WebCore::SVGInlineTextBox::paintSelection):
62205         * rendering/SVGRootInlineBox.cpp:
62206         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
62207         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
62208         (WebCore::svgTextRunForInlineTextBox):
62209         * rendering/SVGRootInlineBox.h:
62211 2007-12-01  Adam Treat  <treat@kde.org>
62213         Reviewed by Simon.
62215         * Don't hide symbols when in Debug mode
62216         * On Linux (glibc) provide a backtrace in the test output for debugging purposes
62218         * WebCore.pro:
62220 2007-11-30  Alp Toker  <alp@atoker.com>
62222         Reviewed by Adam Roben.
62224         http://bugs.webkit.org/show_bug.cgi?id=15691
62225         [GTK] Public API does not follow GTK+ conventions
62227         Refactor the WebKit/GTK+ public API. Changes:
62228           WebKitPage -> WebKitWebView
62229           WebKitFrame -> WebKitWebFrame
62231         Public API source and header names have been updated to mirror the API
62232         changes.
62234         The API is now kept in WebKit/gtk/WebView to match other ports in the
62235         same class such as Mac and Win.
62237         * WebCore.pro:
62239 2007-11-30   Anders Carlsson  <andersca@apple.com>
62241         Add platform/text project group.
62242         
62243         * WebCore.vcproj/WebCore.vcproj:
62245 2007-11-30   Anders Carlsson  <andersca@apple.com>
62247         Remove extra </Filter> tag which prevented the vcproj from being parsed correctly.
62248         
62249         * WebCore.vcproj/WebCore.vcproj:
62251 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
62253         Not reviewed. Try to fix qt/gtk build.
62255         * WebCore.pro:
62257 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
62259         Rubber stamped by Eric.
62261         Final integration of ksvg2 in WebKit. Moving ksvg2/ to svg/ and killing all it's subdirectories,
62262         by moving the files into approriate locations (css, rendering, ...) - as dicsussed on the
62263         mailing list and on IRC with David/Darin & Eric.
62265         Updated all build files - though I can't guarantee it builds on non-mac. Need buildbot to verify.
62267         * DerivedSources.make:
62268         * WebCore.pro:
62269         * WebCore.vcproj/WebCore.vcproj:
62270         * WebCore.xcodeproj/project.pbxproj:
62271         * bindings/js/JSSVGLazyEventListener.cpp: Copied from ksvg2/events/JSSVGLazyEventListener.cpp.
62272         * bindings/js/JSSVGLazyEventListener.h: Copied from ksvg2/events/JSSVGLazyEventListener.h.
62273         * css/SVGCSSComputedStyleDeclaration.cpp: Copied from ksvg2/css/SVGCSSComputedStyleDeclaration.cpp.
62274         * css/SVGCSSParser.cpp: Copied from ksvg2/css/SVGCSSParser.cpp.
62275         * css/SVGCSSPropertyNames.in: Copied from ksvg2/css/SVGCSSPropertyNames.in.
62276         * css/SVGCSSStyleSelector.cpp: Copied from ksvg2/css/SVGCSSStyleSelector.cpp.
62277         * css/SVGCSSValueKeywords.in: Copied from ksvg2/css/SVGCSSValueKeywords.in.
62278         * dom/make_names.pl: Copied from ksvg2/scripts/make_names.pl.
62279         * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp: Removed.
62280         * ksvg2/css/SVGCSSParser.cpp: Removed.
62281         * ksvg2/css/SVGCSSPropertyNames.in: Removed.
62282         * ksvg2/css/SVGCSSStyleSelector.cpp: Removed.
62283         * ksvg2/css/SVGCSSValueKeywords.in: Removed.
62284         * ksvg2/css/SVGRenderStyle.cpp: Removed.
62285         * ksvg2/css/SVGRenderStyle.h: Removed.
62286         * ksvg2/css/SVGRenderStyleDefs.cpp: Removed.
62287         * ksvg2/css/SVGRenderStyleDefs.h: Removed.
62288         * ksvg2/events/JSSVGLazyEventListener.cpp: Removed.
62289         * ksvg2/events/JSSVGLazyEventListener.h: Removed.
62290         * ksvg2/events/SVGZoomEvent.cpp: Removed.
62291         * ksvg2/events/SVGZoomEvent.h: Removed.
62292         * ksvg2/events/SVGZoomEvent.idl: Removed.
62293         * ksvg2/misc/PointerEventsHitRules.cpp: Removed.
62294         * ksvg2/misc/PointerEventsHitRules.h: Removed.
62295         * ksvg2/misc/SVGDocumentExtensions.cpp: Removed.
62296         * ksvg2/misc/SVGDocumentExtensions.h: Removed.
62297         * ksvg2/misc/SVGImageLoader.cpp: Removed.
62298         * ksvg2/misc/SVGImageLoader.h: Removed.
62299         * ksvg2/misc/SVGTimer.cpp: Removed.
62300         * ksvg2/misc/SVGTimer.h: Removed.
62301         * ksvg2/misc/TimeScheduler.cpp: Removed.
62302         * ksvg2/misc/TimeScheduler.h: Removed.
62303         * ksvg2/misc/xlinkattrs.in: Removed.
62304         * ksvg2/scripts/make_names.pl: Removed.
62305         * ksvg2/svg: Removed.
62306         * ksvg2/svg/ColorDistance.cpp: Removed.
62307         * ksvg2/svg/ColorDistance.h: Removed.
62308         * ksvg2/svg/GradientAttributes.h: Removed.
62309         * ksvg2/svg/LinearGradientAttributes.h: Removed.
62310         * ksvg2/svg/PatternAttributes.h: Removed.
62311         * ksvg2/svg/RadialGradientAttributes.h: Removed.
62312         * ksvg2/svg/SVGAElement.cpp: Removed.
62313         * ksvg2/svg/SVGAElement.h: Removed.
62314         * ksvg2/svg/SVGAElement.idl: Removed.
62315         * ksvg2/svg/SVGAngle.cpp: Removed.
62316         * ksvg2/svg/SVGAngle.h: Removed.
62317         * ksvg2/svg/SVGAngle.idl: Removed.
62318         * ksvg2/svg/SVGAnimateColorElement.cpp: Removed.
62319         * ksvg2/svg/SVGAnimateColorElement.h: Removed.
62320         * ksvg2/svg/SVGAnimateColorElement.idl: Removed.
62321         * ksvg2/svg/SVGAnimateElement.cpp: Removed.
62322         * ksvg2/svg/SVGAnimateElement.h: Removed.
62323         * ksvg2/svg/SVGAnimateElement.idl: Removed.
62324         * ksvg2/svg/SVGAnimateMotionElement.cpp: Removed.
62325         * ksvg2/svg/SVGAnimateMotionElement.h: Removed.
62326         * ksvg2/svg/SVGAnimateTransformElement.cpp: Removed.
62327         * ksvg2/svg/SVGAnimateTransformElement.h: Removed.
62328         * ksvg2/svg/SVGAnimateTransformElement.idl: Removed.
62329         * ksvg2/svg/SVGAnimatedAngle.idl: Removed.
62330         * ksvg2/svg/SVGAnimatedBoolean.idl: Removed.
62331         * ksvg2/svg/SVGAnimatedEnumeration.idl: Removed.
62332         * ksvg2/svg/SVGAnimatedInteger.idl: Removed.
62333         * ksvg2/svg/SVGAnimatedLength.idl: Removed.
62334         * ksvg2/svg/SVGAnimatedLengthList.idl: Removed.
62335         * ksvg2/svg/SVGAnimatedNumber.idl: Removed.
62336         * ksvg2/svg/SVGAnimatedNumberList.idl: Removed.
62337         * ksvg2/svg/SVGAnimatedPathData.cpp: Removed.
62338         * ksvg2/svg/SVGAnimatedPathData.h: Removed.
62339         * ksvg2/svg/SVGAnimatedPathData.idl: Removed.
62340         * ksvg2/svg/SVGAnimatedPoints.cpp: Removed.
62341         * ksvg2/svg/SVGAnimatedPoints.h: Removed.
62342         * ksvg2/svg/SVGAnimatedPoints.idl: Removed.
62343         * ksvg2/svg/SVGAnimatedPreserveAspectRatio.idl: Removed.
62344         * ksvg2/svg/SVGAnimatedRect.idl: Removed.
62345         * ksvg2/svg/SVGAnimatedString.idl: Removed.
62346         * ksvg2/svg/SVGAnimatedTemplate.h: Removed.
62347         * ksvg2/svg/SVGAnimatedTransformList.idl: Removed.
62348         * ksvg2/svg/SVGAnimationElement.cpp: Removed.
62349         * ksvg2/svg/SVGAnimationElement.h: Removed.
62350         * ksvg2/svg/SVGAnimationElement.idl: Removed.
62351         * ksvg2/svg/SVGCircleElement.cpp: Removed.
62352         * ksvg2/svg/SVGCircleElement.h: Removed.
62353         * ksvg2/svg/SVGCircleElement.idl: Removed.
62354         * ksvg2/svg/SVGClipPathElement.cpp: Removed.
62355         * ksvg2/svg/SVGClipPathElement.h: Removed.
62356         * ksvg2/svg/SVGClipPathElement.idl: Removed.
62357         * ksvg2/svg/SVGColor.cpp: Removed.
62358         * ksvg2/svg/SVGColor.h: Removed.
62359         * ksvg2/svg/SVGColor.idl: Removed.
62360         * ksvg2/svg/SVGComponentTransferFunctionElement.cpp: Removed.
62361         * ksvg2/svg/SVGComponentTransferFunctionElement.h: Removed.
62362         * ksvg2/svg/SVGComponentTransferFunctionElement.idl: Removed.
62363         * ksvg2/svg/SVGCursorElement.cpp: Removed.
62364         * ksvg2/svg/SVGCursorElement.h: Removed.
62365         * ksvg2/svg/SVGCursorElement.idl: Removed.
62366         * ksvg2/svg/SVGDefinitionSrcElement.cpp: Removed.
62367         * ksvg2/svg/SVGDefinitionSrcElement.h: Removed.
62368         * ksvg2/svg/SVGDefinitionSrcElement.idl: Removed.
62369         * ksvg2/svg/SVGDefsElement.cpp: Removed.
62370         * ksvg2/svg/SVGDefsElement.h: Removed.
62371         * ksvg2/svg/SVGDefsElement.idl: Removed.
62372         * ksvg2/svg/SVGDescElement.cpp: Removed.
62373         * ksvg2/svg/SVGDescElement.h: Removed.
62374         * ksvg2/svg/SVGDescElement.idl: Removed.
62375         * ksvg2/svg/SVGDocument.cpp: Removed.
62376         * ksvg2/svg/SVGDocument.h: Removed.
62377         * ksvg2/svg/SVGDocument.idl: Removed.
62378         * ksvg2/svg/SVGElement.cpp: Removed.
62379         * ksvg2/svg/SVGElement.h: Removed.
62380         * ksvg2/svg/SVGElement.idl: Removed.
62381         * ksvg2/svg/SVGElementInstance.cpp: Removed.
62382         * ksvg2/svg/SVGElementInstance.h: Removed.
62383         * ksvg2/svg/SVGElementInstance.idl: Removed.
62384         * ksvg2/svg/SVGElementInstanceList.cpp: Removed.
62385         * ksvg2/svg/SVGElementInstanceList.h: Removed.
62386         * ksvg2/svg/SVGElementInstanceList.idl: Removed.
62387         * ksvg2/svg/SVGEllipseElement.cpp: Removed.
62388         * ksvg2/svg/SVGEllipseElement.h: Removed.
62389         * ksvg2/svg/SVGEllipseElement.idl: Removed.
62390         * ksvg2/svg/SVGException.h: Removed.
62391         * ksvg2/svg/SVGException.idl: Removed.
62392         * ksvg2/svg/SVGExternalResourcesRequired.cpp: Removed.
62393         * ksvg2/svg/SVGExternalResourcesRequired.h: Removed.
62394         * ksvg2/svg/SVGExternalResourcesRequired.idl: Removed.
62395         * ksvg2/svg/SVGFEBlendElement.cpp: Removed.
62396         * ksvg2/svg/SVGFEBlendElement.h: Removed.
62397         * ksvg2/svg/SVGFEBlendElement.idl: Removed.
62398         * ksvg2/svg/SVGFEColorMatrixElement.cpp: Removed.
62399         * ksvg2/svg/SVGFEColorMatrixElement.h: Removed.
62400         * ksvg2/svg/SVGFEColorMatrixElement.idl: Removed.
62401         * ksvg2/svg/SVGFEComponentTransferElement.cpp: Removed.
62402         * ksvg2/svg/SVGFEComponentTransferElement.h: Removed.
62403         * ksvg2/svg/SVGFEComponentTransferElement.idl: Removed.
62404         * ksvg2/svg/SVGFECompositeElement.cpp: Removed.
62405         * ksvg2/svg/SVGFECompositeElement.h: Removed.
62406         * ksvg2/svg/SVGFECompositeElement.idl: Removed.
62407         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp: Removed.
62408         * ksvg2/svg/SVGFEDiffuseLightingElement.h: Removed.
62409         * ksvg2/svg/SVGFEDiffuseLightingElement.idl: Removed.
62410         * ksvg2/svg/SVGFEDisplacementMapElement.cpp: Removed.
62411         * ksvg2/svg/SVGFEDisplacementMapElement.h: Removed.
62412         * ksvg2/svg/SVGFEDisplacementMapElement.idl: Removed.
62413         * ksvg2/svg/SVGFEDistantLightElement.cpp: Removed.
62414         * ksvg2/svg/SVGFEDistantLightElement.h: Removed.
62415         * ksvg2/svg/SVGFEDistantLightElement.idl: Removed.
62416         * ksvg2/svg/SVGFEFloodElement.cpp: Removed.
62417         * ksvg2/svg/SVGFEFloodElement.h: Removed.
62418         * ksvg2/svg/SVGFEFloodElement.idl: Removed.
62419         * ksvg2/svg/SVGFEFuncAElement.cpp: Removed.
62420         * ksvg2/svg/SVGFEFuncAElement.h: Removed.
62421         * ksvg2/svg/SVGFEFuncAElement.idl: Removed.
62422         * ksvg2/svg/SVGFEFuncBElement.cpp: Removed.
62423         * ksvg2/svg/SVGFEFuncBElement.h: Removed.
62424         * ksvg2/svg/SVGFEFuncBElement.idl: Removed.
62425         * ksvg2/svg/SVGFEFuncGElement.cpp: Removed.
62426         * ksvg2/svg/SVGFEFuncGElement.h: Removed.
62427         * ksvg2/svg/SVGFEFuncGElement.idl: Removed.
62428         * ksvg2/svg/SVGFEFuncRElement.cpp: Removed.
62429         * ksvg2/svg/SVGFEFuncRElement.h: Removed.
62430         * ksvg2/svg/SVGFEFuncRElement.idl: Removed.
62431         * ksvg2/svg/SVGFEGaussianBlurElement.cpp: Removed.
62432         * ksvg2/svg/SVGFEGaussianBlurElement.h: Removed.
62433         * ksvg2/svg/SVGFEGaussianBlurElement.idl: Removed.
62434         * ksvg2/svg/SVGFEImageElement.cpp: Removed.
62435         * ksvg2/svg/SVGFEImageElement.h: Removed.
62436         * ksvg2/svg/SVGFEImageElement.idl: Removed.
62437         * ksvg2/svg/SVGFELightElement.cpp: Removed.
62438         * ksvg2/svg/SVGFELightElement.h: Removed.
62439         * ksvg2/svg/SVGFEMergeElement.cpp: Removed.
62440         * ksvg2/svg/SVGFEMergeElement.h: Removed.
62441         * ksvg2/svg/SVGFEMergeElement.idl: Removed.
62442         * ksvg2/svg/SVGFEMergeNodeElement.cpp: Removed.
62443         * ksvg2/svg/SVGFEMergeNodeElement.h: Removed.
62444         * ksvg2/svg/SVGFEMergeNodeElement.idl: Removed.
62445         * ksvg2/svg/SVGFEOffsetElement.cpp: Removed.
62446         * ksvg2/svg/SVGFEOffsetElement.h: Removed.
62447         * ksvg2/svg/SVGFEOffsetElement.idl: Removed.
62448         * ksvg2/svg/SVGFEPointLightElement.cpp: Removed.
62449         * ksvg2/svg/SVGFEPointLightElement.h: Removed.
62450         * ksvg2/svg/SVGFEPointLightElement.idl: Removed.
62451         * ksvg2/svg/SVGFESpecularLightingElement.cpp: Removed.
62452         * ksvg2/svg/SVGFESpecularLightingElement.h: Removed.
62453         * ksvg2/svg/SVGFESpecularLightingElement.idl: Removed.
62454         * ksvg2/svg/SVGFESpotLightElement.cpp: Removed.
62455         * ksvg2/svg/SVGFESpotLightElement.h: Removed.
62456         * ksvg2/svg/SVGFESpotLightElement.idl: Removed.
62457         * ksvg2/svg/SVGFETileElement.cpp: Removed.
62458         * ksvg2/svg/SVGFETileElement.h: Removed.
62459         * ksvg2/svg/SVGFETileElement.idl: Removed.
62460         * ksvg2/svg/SVGFETurbulenceElement.cpp: Removed.
62461         * ksvg2/svg/SVGFETurbulenceElement.h: Removed.
62462         * ksvg2/svg/SVGFETurbulenceElement.idl: Removed.
62463         * ksvg2/svg/SVGFilterElement.cpp: Removed.
62464         * ksvg2/svg/SVGFilterElement.h: Removed.
62465         * ksvg2/svg/SVGFilterElement.idl: Removed.
62466         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp: Removed.
62467         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.h: Removed.
62468         * ksvg2/svg/SVGFilterPrimitiveStandardAttributes.idl: Removed.
62469         * ksvg2/svg/SVGFitToViewBox.cpp: Removed.
62470         * ksvg2/svg/SVGFitToViewBox.h: Removed.
62471         * ksvg2/svg/SVGFitToViewBox.idl: Removed.
62472         * ksvg2/svg/SVGFontFaceElement.cpp: Removed.
62473         * ksvg2/svg/SVGFontFaceElement.h: Removed.
62474         * ksvg2/svg/SVGFontFaceElement.idl: Removed.
62475         * ksvg2/svg/SVGFontFaceFormatElement.cpp: Removed.
62476         * ksvg2/svg/SVGFontFaceFormatElement.h: Removed.
62477         * ksvg2/svg/SVGFontFaceFormatElement.idl: Removed.
62478         * ksvg2/svg/SVGFontFaceNameElement.cpp: Removed.
62479         * ksvg2/svg/SVGFontFaceNameElement.h: Removed.
62480         * ksvg2/svg/SVGFontFaceNameElement.idl: Removed.
62481         * ksvg2/svg/SVGFontFaceSrcElement.cpp: Removed.
62482         * ksvg2/svg/SVGFontFaceSrcElement.h: Removed.
62483         * ksvg2/svg/SVGFontFaceSrcElement.idl: Removed.
62484         * ksvg2/svg/SVGFontFaceUriElement.cpp: Removed.
62485         * ksvg2/svg/SVGFontFaceUriElement.h: Removed.
62486         * ksvg2/svg/SVGFontFaceUriElement.idl: Removed.
62487         * ksvg2/svg/SVGForeignObjectElement.cpp: Removed.
62488         * ksvg2/svg/SVGForeignObjectElement.h: Removed.
62489         * ksvg2/svg/SVGForeignObjectElement.idl: Removed.
62490         * ksvg2/svg/SVGGElement.cpp: Removed.
62491         * ksvg2/svg/SVGGElement.h: Removed.
62492         * ksvg2/svg/SVGGElement.idl: Removed.
62493         * ksvg2/svg/SVGGradientElement.cpp: Removed.
62494         * ksvg2/svg/SVGGradientElement.h: Removed.
62495         * ksvg2/svg/SVGGradientElement.idl: Removed.
62496         * ksvg2/svg/SVGImageElement.cpp: Removed.
62497         * ksvg2/svg/SVGImageElement.h: Removed.
62498         * ksvg2/svg/SVGImageElement.idl: Removed.
62499         * ksvg2/svg/SVGLangSpace.cpp: Removed.
62500         * ksvg2/svg/SVGLangSpace.h: Removed.
62501         * ksvg2/svg/SVGLangSpace.idl: Removed.
62502         * ksvg2/svg/SVGLength.cpp: Removed.
62503         * ksvg2/svg/SVGLength.h: Removed.
62504         * ksvg2/svg/SVGLength.idl: Removed.
62505         * ksvg2/svg/SVGLengthList.cpp: Removed.
62506         * ksvg2/svg/SVGLengthList.h: Removed.
62507         * ksvg2/svg/SVGLengthList.idl: Removed.
62508         * ksvg2/svg/SVGLineElement.cpp: Removed.
62509         * ksvg2/svg/SVGLineElement.h: Removed.
62510         * ksvg2/svg/SVGLineElement.idl: Removed.
62511         * ksvg2/svg/SVGLinearGradientElement.cpp: Removed.
62512         * ksvg2/svg/SVGLinearGradientElement.h: Removed.
62513         * ksvg2/svg/SVGLinearGradientElement.idl: Removed.
62514         * ksvg2/svg/SVGList.h: Removed.
62515         * ksvg2/svg/SVGListTraits.h: Removed.
62516         * ksvg2/svg/SVGLocatable.cpp: Removed.
62517         * ksvg2/svg/SVGLocatable.h: Removed.
62518         * ksvg2/svg/SVGLocatable.idl: Removed.
62519         * ksvg2/svg/SVGMPathElement.cpp: Removed.
62520         * ksvg2/svg/SVGMPathElement.h: Removed.
62521         * ksvg2/svg/SVGMarkerElement.cpp: Removed.
62522         * ksvg2/svg/SVGMarkerElement.h: Removed.
62523         * ksvg2/svg/SVGMarkerElement.idl: Removed.
62524         * ksvg2/svg/SVGMaskElement.cpp: Removed.
62525         * ksvg2/svg/SVGMaskElement.h: Removed.
62526         * ksvg2/svg/SVGMaskElement.idl: Removed.
62527         * ksvg2/svg/SVGMatrix.idl: Removed.
62528         * ksvg2/svg/SVGMetadataElement.cpp: Removed.
62529         * ksvg2/svg/SVGMetadataElement.h: Removed.
62530         * ksvg2/svg/SVGMetadataElement.idl: Removed.
62531         * ksvg2/svg/SVGNumber.idl: Removed.
62532         * ksvg2/svg/SVGNumberList.cpp: Removed.
62533         * ksvg2/svg/SVGNumberList.h: Removed.
62534         * ksvg2/svg/SVGNumberList.idl: Removed.
62535         * ksvg2/svg/SVGPaint.cpp: Removed.
62536         * ksvg2/svg/SVGPaint.h: Removed.
62537         * ksvg2/svg/SVGPaint.idl: Removed.
62538         * ksvg2/svg/SVGParserUtilities.cpp: Removed.
62539         * ksvg2/svg/SVGParserUtilities.h: Removed.
62540         * ksvg2/svg/SVGPathElement.cpp: Removed.
62541         * ksvg2/svg/SVGPathElement.h: Removed.
62542         * ksvg2/svg/SVGPathElement.idl: Removed.
62543         * ksvg2/svg/SVGPathSeg.h: Removed.
62544         * ksvg2/svg/SVGPathSeg.idl: Removed.
62545         * ksvg2/svg/SVGPathSegArc.cpp: Removed.
62546         * ksvg2/svg/SVGPathSegArc.h: Removed.
62547         * ksvg2/svg/SVGPathSegArcAbs.idl: Removed.
62548         * ksvg2/svg/SVGPathSegArcRel.idl: Removed.
62549         * ksvg2/svg/SVGPathSegClosePath.cpp: Removed.
62550         * ksvg2/svg/SVGPathSegClosePath.h: Removed.
62551         * ksvg2/svg/SVGPathSegClosePath.idl: Removed.
62552         * ksvg2/svg/SVGPathSegCurvetoCubic.cpp: Removed.
62553         * ksvg2/svg/SVGPathSegCurvetoCubic.h: Removed.
62554         * ksvg2/svg/SVGPathSegCurvetoCubicAbs.idl: Removed.
62555         * ksvg2/svg/SVGPathSegCurvetoCubicRel.idl: Removed.
62556         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp: Removed.
62557         * ksvg2/svg/SVGPathSegCurvetoCubicSmooth.h: Removed.
62558         * ksvg2/svg/SVGPathSegCurvetoCubicSmoothAbs.idl: Removed.
62559         * ksvg2/svg/SVGPathSegCurvetoCubicSmoothRel.idl: Removed.
62560         * ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp: Removed.
62561         * ksvg2/svg/SVGPathSegCurvetoQuadratic.h: Removed.
62562         * ksvg2/svg/SVGPathSegCurvetoQuadraticAbs.idl: Removed.
62563         * ksvg2/svg/SVGPathSegCurvetoQuadraticRel.idl: Removed.
62564         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp: Removed.
62565         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.h: Removed.
62566         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl: Removed.
62567         * ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl: Removed.
62568         * ksvg2/svg/SVGPathSegLineto.cpp: Removed.
62569         * ksvg2/svg/SVGPathSegLineto.h: Removed.
62570         * ksvg2/svg/SVGPathSegLinetoAbs.idl: Removed.
62571         * ksvg2/svg/SVGPathSegLinetoHorizontal.cpp: Removed.
62572         * ksvg2/svg/SVGPathSegLinetoHorizontal.h: Removed.
62573         * ksvg2/svg/SVGPathSegLinetoHorizontalAbs.idl: Removed.
62574         * ksvg2/svg/SVGPathSegLinetoHorizontalRel.idl: Removed.
62575         * ksvg2/svg/SVGPathSegLinetoRel.idl: Removed.
62576         * ksvg2/svg/SVGPathSegLinetoVertical.cpp: Removed.
62577         * ksvg2/svg/SVGPathSegLinetoVertical.h: Removed.
62578         * ksvg2/svg/SVGPathSegLinetoVerticalAbs.idl: Removed.
62579         * ksvg2/svg/SVGPathSegLinetoVerticalRel.idl: Removed.
62580         * ksvg2/svg/SVGPathSegList.cpp: Removed.
62581         * ksvg2/svg/SVGPathSegList.h: Removed.
62582         * ksvg2/svg/SVGPathSegList.idl: Removed.
62583         * ksvg2/svg/SVGPathSegMoveto.cpp: Removed.
62584         * ksvg2/svg/SVGPathSegMoveto.h: Removed.
62585         * ksvg2/svg/SVGPathSegMovetoAbs.idl: Removed.
62586         * ksvg2/svg/SVGPathSegMovetoRel.idl: Removed.
62587         * ksvg2/svg/SVGPatternElement.cpp: Removed.
62588         * ksvg2/svg/SVGPatternElement.h: Removed.
62589         * ksvg2/svg/SVGPatternElement.idl: Removed.
62590         * ksvg2/svg/SVGPoint.idl: Removed.
62591         * ksvg2/svg/SVGPointList.cpp: Removed.
62592         * ksvg2/svg/SVGPointList.h: Removed.
62593         * ksvg2/svg/SVGPointList.idl: Removed.
62594         * ksvg2/svg/SVGPolyElement.cpp: Removed.
62595         * ksvg2/svg/SVGPolyElement.h: Removed.
62596         * ksvg2/svg/SVGPolygonElement.cpp: Removed.
62597         * ksvg2/svg/SVGPolygonElement.h: Removed.
62598         * ksvg2/svg/SVGPolygonElement.idl: Removed.
62599         * ksvg2/svg/SVGPolylineElement.cpp: Removed.
62600         * ksvg2/svg/SVGPolylineElement.h: Removed.
62601         * ksvg2/svg/SVGPolylineElement.idl: Removed.
62602         * ksvg2/svg/SVGPreserveAspectRatio.cpp: Removed.
62603         * ksvg2/svg/SVGPreserveAspectRatio.h: Removed.
62604         * ksvg2/svg/SVGPreserveAspectRatio.idl: Removed.
62605         * ksvg2/svg/SVGRadialGradientElement.cpp: Removed.
62606         * ksvg2/svg/SVGRadialGradientElement.h: Removed.
62607         * ksvg2/svg/SVGRadialGradientElement.idl: Removed.
62608         * ksvg2/svg/SVGRect.idl: Removed.
62609         * ksvg2/svg/SVGRectElement.cpp: Removed.
62610         * ksvg2/svg/SVGRectElement.h: Removed.
62611         * ksvg2/svg/SVGRectElement.idl: Removed.
62612         * ksvg2/svg/SVGRenderingIntent.h: Removed.
62613         * ksvg2/svg/SVGRenderingIntent.idl: Removed.
62614         * ksvg2/svg/SVGSVGElement.cpp: Removed.
62615         * ksvg2/svg/SVGSVGElement.h: Removed.
62616         * ksvg2/svg/SVGSVGElement.idl: Removed.
62617         * ksvg2/svg/SVGScriptElement.cpp: Removed.
62618         * ksvg2/svg/SVGScriptElement.h: Removed.
62619         * ksvg2/svg/SVGScriptElement.idl: Removed.
62620         * ksvg2/svg/SVGSetElement.cpp: Removed.
62621         * ksvg2/svg/SVGSetElement.h: Removed.
62622         * ksvg2/svg/SVGSetElement.idl: Removed.
62623         * ksvg2/svg/SVGStopElement.cpp: Removed.
62624         * ksvg2/svg/SVGStopElement.h: Removed.
62625         * ksvg2/svg/SVGStopElement.idl: Removed.
62626         * ksvg2/svg/SVGStringList.cpp: Removed.
62627         * ksvg2/svg/SVGStringList.h: Removed.
62628         * ksvg2/svg/SVGStringList.idl: Removed.
62629         * ksvg2/svg/SVGStylable.cpp: Removed.
62630         * ksvg2/svg/SVGStylable.h: Removed.
62631         * ksvg2/svg/SVGStylable.idl: Removed.
62632         * ksvg2/svg/SVGStyleElement.cpp: Removed.
62633         * ksvg2/svg/SVGStyleElement.h: Removed.
62634         * ksvg2/svg/SVGStyleElement.idl: Removed.
62635         * ksvg2/svg/SVGStyledElement.cpp: Removed.
62636         * ksvg2/svg/SVGStyledElement.h: Removed.
62637         * ksvg2/svg/SVGStyledLocatableElement.cpp: Removed.
62638         * ksvg2/svg/SVGStyledLocatableElement.h: Removed.
62639         * ksvg2/svg/SVGStyledTransformableElement.cpp: Removed.
62640         * ksvg2/svg/SVGStyledTransformableElement.h: Removed.
62641         * ksvg2/svg/SVGSwitchElement.cpp: Removed.
62642         * ksvg2/svg/SVGSwitchElement.h: Removed.
62643         * ksvg2/svg/SVGSwitchElement.idl: Removed.
62644         * ksvg2/svg/SVGSymbolElement.cpp: Removed.
62645         * ksvg2/svg/SVGSymbolElement.h: Removed.
62646         * ksvg2/svg/SVGSymbolElement.idl: Removed.
62647         * ksvg2/svg/SVGTRefElement.cpp: Removed.
62648         * ksvg2/svg/SVGTRefElement.h: Removed.
62649         * ksvg2/svg/SVGTRefElement.idl: Removed.
62650         * ksvg2/svg/SVGTSpanElement.cpp: Removed.
62651         * ksvg2/svg/SVGTSpanElement.h: Removed.
62652         * ksvg2/svg/SVGTSpanElement.idl: Removed.
62653         * ksvg2/svg/SVGTests.cpp: Removed.
62654         * ksvg2/svg/SVGTests.h: Removed.
62655         * ksvg2/svg/SVGTests.idl: Removed.
62656         * ksvg2/svg/SVGTextContentElement.cpp: Removed.
62657         * ksvg2/svg/SVGTextContentElement.h: Removed.
62658         * ksvg2/svg/SVGTextContentElement.idl: Removed.
62659         * ksvg2/svg/SVGTextElement.cpp: Removed.
62660         * ksvg2/svg/SVGTextElement.h: Removed.
62661         * ksvg2/svg/SVGTextElement.idl: Removed.
62662         * ksvg2/svg/SVGTextPathElement.cpp: Removed.
62663         * ksvg2/svg/SVGTextPathElement.h: Removed.
62664         * ksvg2/svg/SVGTextPathElement.idl: Removed.
62665         * ksvg2/svg/SVGTextPositioningElement.cpp: Removed.
62666         * ksvg2/svg/SVGTextPositioningElement.h: Removed.
62667         * ksvg2/svg/SVGTextPositioningElement.idl: Removed.
62668         * ksvg2/svg/SVGTitleElement.cpp: Removed.
62669         * ksvg2/svg/SVGTitleElement.h: Removed.
62670         * ksvg2/svg/SVGTitleElement.idl: Removed.
62671         * ksvg2/svg/SVGTransform.cpp: Removed.
62672         * ksvg2/svg/SVGTransform.h: Removed.
62673         * ksvg2/svg/SVGTransform.idl: Removed.
62674         * ksvg2/svg/SVGTransformDistance.cpp: Removed.
62675         * ksvg2/svg/SVGTransformDistance.h: Removed.
62676         * ksvg2/svg/SVGTransformList.cpp: Removed.
62677         * ksvg2/svg/SVGTransformList.h: Removed.
62678         * ksvg2/svg/SVGTransformList.idl: Removed.
62679         * ksvg2/svg/SVGTransformable.cpp: Removed.
62680         * ksvg2/svg/SVGTransformable.h: Removed.
62681         * ksvg2/svg/SVGTransformable.idl: Removed.
62682         * ksvg2/svg/SVGURIReference.cpp: Removed.
62683         * ksvg2/svg/SVGURIReference.h: Removed.
62684         * ksvg2/svg/SVGURIReference.idl: Removed.
62685         * ksvg2/svg/SVGUnitTypes.h: Removed.
62686         * ksvg2/svg/SVGUnitTypes.idl: Removed.
62687         * ksvg2/svg/SVGUseElement.cpp: Removed.
62688         * ksvg2/svg/SVGUseElement.h: Removed.
62689         * ksvg2/svg/SVGUseElement.idl: Removed.
62690         * ksvg2/svg/SVGViewElement.cpp: Removed.
62691         * ksvg2/svg/SVGViewElement.h: Removed.
62692         * ksvg2/svg/SVGViewElement.idl: Removed.
62693         * ksvg2/svg/SVGViewSpec.cpp: Removed.
62694         * ksvg2/svg/SVGViewSpec.h: Removed.
62695         * ksvg2/svg/SVGViewSpec.idl: Removed.
62696         * ksvg2/svg/SVGZoomAndPan.cpp: Removed.
62697         * ksvg2/svg/SVGZoomAndPan.h: Removed.
62698         * ksvg2/svg/SVGZoomAndPan.idl: Removed.
62699         * ksvg2/svg/svgattrs.in: Removed.
62700         * ksvg2/svg/svgtags.in: Removed.
62701         * rendering/PointerEventsHitRules.cpp: Copied from ksvg2/misc/PointerEventsHitRules.cpp.
62702         * rendering/PointerEventsHitRules.h: Copied from ksvg2/misc/PointerEventsHitRules.h.
62703         * rendering/SVGRenderStyle.cpp: Copied from ksvg2/css/SVGRenderStyle.cpp.
62704         * rendering/SVGRenderStyle.h: Copied from ksvg2/css/SVGRenderStyle.h.
62705         * rendering/SVGRenderStyleDefs.cpp: Copied from ksvg2/css/SVGRenderStyleDefs.cpp.
62706         * rendering/SVGRenderStyleDefs.h: Copied from ksvg2/css/SVGRenderStyleDefs.h.
62707         * svg: Copied from ksvg2/svg.
62708         * svg/SVGDocumentExtensions.cpp: Copied from ksvg2/misc/SVGDocumentExtensions.cpp.
62709         * svg/SVGDocumentExtensions.h: Copied from ksvg2/misc/SVGDocumentExtensions.h.
62710         * svg/SVGImageLoader.cpp: Copied from ksvg2/misc/SVGImageLoader.cpp.
62711         * svg/SVGImageLoader.h: Copied from ksvg2/misc/SVGImageLoader.h.
62712         * svg/SVGTimer.cpp: Copied from ksvg2/misc/SVGTimer.cpp.
62713         * svg/SVGTimer.h: Copied from ksvg2/misc/SVGTimer.h.
62714         * svg/SVGZoomEvent.cpp: Copied from ksvg2/events/SVGZoomEvent.cpp.
62715         * svg/SVGZoomEvent.h: Copied from ksvg2/events/SVGZoomEvent.h.
62716         * svg/SVGZoomEvent.idl: Copied from ksvg2/events/SVGZoomEvent.idl.
62717         * svg/TimeScheduler.cpp: Copied from ksvg2/misc/TimeScheduler.cpp.
62718         * svg/TimeScheduler.h: Copied from ksvg2/misc/TimeScheduler.h.
62719         * svg/xlinkattrs.in: Copied from ksvg2/misc/xlinkattrs.in.
62721 2007-11-30  Kevin Ollivier  <kevino@theolliviers.com>
62723         wx build fix. Add WebCore/platform/graphics/wx to includes.
62725         * webcore-wx.bkl:
62727 2007-11-30  Brady Eidson  <beidson@apple.com>
62729         Reviewed by Geoff
62731         Further hookup of Database API
62732         With this change, any database operation that writes to the database (UPDATE, INSERT, CREATE, etc) will
62733         result in a didModifyDatabase notification when the transaction is successfully committed
62735         * storage/DatabaseAuthorizer.cpp: Global rename of "m_lastActionIncreasedSize" to "m_lastActionChangedDatabase"
62736         (WebCore::DatabaseAuthorizer::reset):
62737         (WebCore::DatabaseAuthorizer::createTable):
62738         (WebCore::DatabaseAuthorizer::allowAlterTable):
62739         (WebCore::DatabaseAuthorizer::createIndex):
62740         (WebCore::DatabaseAuthorizer::createTrigger):
62741         (WebCore::DatabaseAuthorizer::createVTable):
62742         (WebCore::DatabaseAuthorizer::allowInsert):
62743         (WebCore::DatabaseAuthorizer::allowUpdate):
62744         * storage/DatabaseAuthorizer.h:
62745         (WebCore::DatabaseAuthorizer::lastActionChangedDatabase):
62747         * storage/DatabaseTracker.cpp:
62748         (WebCore::DatabaseTracker::notifyDatabaseChanged): Added.  Allow external entities (SQLTransaction) to be able
62749           to request a didModifyDatabase notification to the delegate
62750         * storage/DatabaseTracker.h:
62752         * storage/SQLTransaction.cpp: Added m_modifiedDatabase flag which tracks if any statement over the course of 
62753           a transaction resulted in a change to the database.
62754         (WebCore::SQLTransaction::SQLTransaction):
62755         (WebCore::SQLTransaction::runCurrentStatement): Set m_modifiedDatabase to true if the authorizer reports a mutation
62756           statement occurred
62757         (WebCore::SQLTransaction::postflightAndCommit): If the transaction successfully commits, call DatabaseTracker::notifyDatabaseChanged
62758         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Ditto
62759         * storage/SQLTransaction.h:
62761 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
62763         Rubber stamped by David.
62765         Next round of moves - platform reorganization.
62766         Move text/font/glyph related files from the individual port directories
62767         into platform/text/<port> or platform/graphics/<port>.
62769         * DerivedSources.make:
62770         * WebCore.pro:
62771         * WebCore.vcproj/WebCore.vcproj:
62772         * WebCore.xcodeproj/project.pbxproj:
62773         * platform/cf/StringCF.cpp: Removed.
62774         * platform/cf/StringImplCF.cpp: Removed.
62775         * platform/graphics/gtk/FontCacheGtk.cpp: Copied from platform/gtk/FontCacheGtk.cpp.
62776         * platform/graphics/gtk/FontDataGtk.cpp: Copied from platform/gtk/FontDataGtk.cpp.
62777         * platform/graphics/gtk/FontGtk.cpp: Copied from platform/gtk/FontGtk.cpp.
62778         * platform/graphics/gtk/FontPlatformData.h: Copied from platform/gtk/FontPlatformData.h.
62779         * platform/graphics/gtk/FontPlatformDataGtk.cpp: Copied from platform/gtk/FontPlatformDataGtk.cpp.
62780         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp: Copied from platform/gtk/GlyphPageTreeNodeGtk.cpp.
62781         * platform/graphics/mac/FontCacheMac.mm: Copied from platform/mac/FontCacheMac.mm.
62782         * platform/graphics/mac/FontCustomPlatformData.cpp: Copied from platform/mac/FontCustomPlatformData.cpp.
62783         * platform/graphics/mac/FontCustomPlatformData.h: Copied from platform/mac/FontCustomPlatformData.h.
62784         * platform/graphics/mac/FontDataMac.mm: Copied from platform/mac/FontDataMac.mm.
62785         * platform/graphics/mac/FontMac.mm: Copied from platform/mac/FontMac.mm.
62786         * platform/graphics/mac/FontPlatformData.h: Copied from platform/mac/FontPlatformData.h.
62787         * platform/graphics/mac/FontPlatformDataMac.mm: Copied from platform/mac/FontPlatformDataMac.mm.
62788         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp: Copied from platform/mac/GlyphPageTreeNodeMac.cpp.
62789         * platform/graphics/qt/FontCacheQt.cpp: Copied from platform/qt/FontCacheQt.cpp.
62790         * platform/graphics/qt/FontCustomPlatformData.cpp: Copied from platform/qt/FontCustomPlatformData.cpp.
62791         * platform/graphics/qt/FontCustomPlatformData.h: Copied from platform/qt/FontCustomPlatformData.h.
62792         * platform/graphics/qt/FontDataQt.cpp: Copied from platform/qt/FontDataQt.cpp.
62793         * platform/graphics/qt/FontPlatformData.h: Copied from platform/qt/FontPlatformData.h.
62794         * platform/graphics/qt/FontQt.cpp: Copied from platform/qt/FontQt.cpp.
62795         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp: Copied from platform/qt/GlyphPageTreeNodeQt.cpp.
62796         * platform/graphics/win/FontCacheWin.cpp: Copied from platform/win/FontCacheWin.cpp.
62797         * platform/graphics/win/FontCustomPlatformData.cpp: Copied from platform/win/FontCustomPlatformData.cpp.
62798         * platform/graphics/win/FontCustomPlatformData.h: Copied from platform/win/FontCustomPlatformData.h.
62799         * platform/graphics/win/FontDataWin.cpp: Copied from platform/win/FontDataWin.cpp.
62800         * platform/graphics/win/FontDatabase.cpp: Copied from platform/win/FontDatabase.cpp.
62801         * platform/graphics/win/FontDatabase.h: Copied from platform/win/FontDatabase.h.
62802         * platform/graphics/win/FontPlatformData.h: Copied from platform/win/FontPlatformData.h.
62803         * platform/graphics/win/FontPlatformDataWin.cpp: Copied from platform/win/FontPlatformDataWin.cpp.
62804         * platform/graphics/win/FontWin.cpp: Copied from platform/win/FontWin.cpp.
62805         * platform/graphics/win/GlyphPageTreeNodeWin.cpp: Copied from platform/win/GlyphPageTreeNodeWin.cpp.
62806         * platform/graphics/wx/FontCacheWx.cpp: Copied from platform/wx/FontCacheWx.cpp.
62807         * platform/graphics/wx/FontDataWx.cpp: Copied from platform/wx/FontDataWx.cpp.
62808         * platform/graphics/wx/FontPlatformData.h: Copied from platform/wx/FontPlatformData.h.
62809         * platform/graphics/wx/FontPlatformDataWx.cpp: Copied from platform/wx/FontPlatformDataWx.cpp.
62810         * platform/graphics/wx/FontWx.cpp: Copied from platform/wx/FontWx.cpp.
62811         * platform/graphics/wx/GlyphMapWx.cpp: Copied from platform/wx/GlyphMapWx.cpp.
62812         * platform/gtk/FontCacheGtk.cpp: Removed.
62813         * platform/gtk/FontDataGtk.cpp: Removed.
62814         * platform/gtk/FontGtk.cpp: Removed.
62815         * platform/gtk/FontPlatformData.h: Removed.
62816         * platform/gtk/FontPlatformDataGtk.cpp: Removed.
62817         * platform/gtk/GlyphPageTreeNodeGtk.cpp: Removed.
62818         * platform/gtk/TextBreakIteratorInternalICUGtk.cpp: Removed.
62819         * platform/mac/FontCacheMac.mm: Removed.
62820         * platform/mac/FontCustomPlatformData.cpp: Removed.
62821         * platform/mac/FontCustomPlatformData.h: Removed.
62822         * platform/mac/FontDataMac.mm: Removed.
62823         * platform/mac/FontMac.mm: Removed.
62824         * platform/mac/FontPlatformData.h: Removed.
62825         * platform/mac/FontPlatformDataMac.mm: Removed.
62826         * platform/mac/GlyphPageTreeNodeMac.cpp: Removed.
62827         * platform/mac/ShapeArabic.c: Removed.
62828         * platform/mac/ShapeArabic.h: Removed.
62829         * platform/mac/StringImplMac.mm: Removed.
62830         * platform/mac/StringMac.mm: Removed.
62831         * platform/mac/TextBoundaries.mm: Removed.
62832         * platform/mac/TextBreakIteratorInternalICUMac.mm: Removed.
62833         * platform/mac/TextCodecMac.cpp: Removed.
62834         * platform/mac/TextCodecMac.h: Removed.
62835         * platform/mac/character-sets.txt: Removed.
62836         * platform/mac/mac-encodings.txt: Removed.
62837         * platform/mac/make-charset-table.pl: Removed.
62838         * platform/qt/FontCacheQt.cpp: Removed.
62839         * platform/qt/FontCustomPlatformData.cpp: Removed.
62840         * platform/qt/FontCustomPlatformData.h: Removed.
62841         * platform/qt/FontDataQt.cpp: Removed.
62842         * platform/qt/FontPlatformData.h: Removed.
62843         * platform/qt/FontQt.cpp: Removed.
62844         * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
62845         * platform/qt/StringQt.cpp: Removed.
62846         * platform/qt/TextBoundaries.cpp: Removed.
62847         * platform/qt/TextBreakIteratorQt.cpp: Removed.
62848         * platform/qt/TextCodecQt.cpp: Removed.
62849         * platform/qt/TextCodecQt.h: Removed.
62850         * platform/symbian/StringImplSymbian.cpp: Removed.
62851         * platform/symbian/StringSymbian.cpp: Removed.
62852         * platform/text/cf: Added.
62853         * platform/text/cf/StringCF.cpp: Copied from platform/cf/StringCF.cpp.
62854         * platform/text/cf/StringImplCF.cpp: Copied from platform/cf/StringImplCF.cpp.
62855         * platform/text/gtk: Added.
62856         * platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp: Copied from platform/gtk/TextBreakIteratorInternalICUGtk.cpp.
62857         * platform/text/mac/ShapeArabic.c: Copied from platform/mac/ShapeArabic.c.
62858         * platform/text/mac/ShapeArabic.h: Copied from platform/mac/ShapeArabic.h.
62859         * platform/text/mac/StringImplMac.mm: Copied from platform/mac/StringImplMac.mm.
62860         * platform/text/mac/StringMac.mm: Copied from platform/mac/StringMac.mm.
62861         * platform/text/mac/TextBoundaries.mm: Copied from platform/mac/TextBoundaries.mm.
62862         * platform/text/mac/TextBreakIteratorInternalICUMac.mm: Copied from platform/mac/TextBreakIteratorInternalICUMac.mm.
62863         * platform/text/mac/TextCodecMac.cpp: Copied from platform/mac/TextCodecMac.cpp.
62864         * platform/text/mac/TextCodecMac.h: Copied from platform/mac/TextCodecMac.h.
62865         * platform/text/mac/character-sets.txt: Copied from platform/mac/character-sets.txt.
62866         * platform/text/mac/mac-encodings.txt: Copied from platform/mac/mac-encodings.txt.
62867         * platform/text/mac/make-charset-table.pl: Copied from platform/mac/make-charset-table.pl.
62868         * platform/text/qt: Added.
62869         * platform/text/qt/StringQt.cpp: Copied from platform/qt/StringQt.cpp.
62870         * platform/text/qt/TextBoundaries.cpp: Copied from platform/qt/TextBoundaries.cpp.
62871         * platform/text/qt/TextBreakIteratorQt.cpp: Copied from platform/qt/TextBreakIteratorQt.cpp.
62872         * platform/text/qt/TextCodecQt.cpp: Copied from platform/qt/TextCodecQt.cpp.
62873         * platform/text/qt/TextCodecQt.h: Copied from platform/qt/TextCodecQt.h.
62874         * platform/text/symbian: Added.
62875         * platform/text/symbian/StringImplSymbian.cpp: Copied from platform/symbian/StringImplSymbian.cpp.
62876         * platform/text/symbian/StringSymbian.cpp: Copied from platform/symbian/StringSymbian.cpp.
62877         * platform/text/win: Added.
62878         * platform/text/win/TextBreakIteratorInternalICUWin.cpp: Copied from platform/win/TextBreakIteratorInternalICUWin.cpp.
62879         * platform/text/wx: Added.
62880         * platform/text/wx/StringWx.cpp: Copied from platform/wx/StringWx.cpp.
62881         * platform/win/FontCacheWin.cpp: Removed.
62882         * platform/win/FontCustomPlatformData.cpp: Removed.
62883         * platform/win/FontCustomPlatformData.h: Removed.
62884         * platform/win/FontDataWin.cpp: Removed.
62885         * platform/win/FontDatabase.cpp: Removed.
62886         * platform/win/FontDatabase.h: Removed.
62887         * platform/win/FontPlatformData.h: Removed.
62888         * platform/win/FontPlatformDataWin.cpp: Removed.
62889         * platform/win/FontWin.cpp: Removed.
62890         * platform/win/GlyphPageTreeNodeWin.cpp: Removed.
62891         * platform/win/TextBreakIteratorInternalICUWin.cpp: Removed.
62892         * platform/wx/FontCacheWx.cpp: Removed.
62893         * platform/wx/FontDataWx.cpp: Removed.
62894         * platform/wx/FontPlatformData.h: Removed.
62895         * platform/wx/FontPlatformDataWx.cpp: Removed.
62896         * platform/wx/FontWx.cpp: Removed.
62897         * platform/wx/GlyphMapWx.cpp: Removed.
62898         * platform/wx/StringWx.cpp: Removed.
62899         * webcore-wx.bkl:
62901 2007-11-30  Kevin Ollivier  <kevino@theolliviers.com>
62903         Build fix for wx port. Adding editing/RemoveFormatCommand.cpp
62905         * WebCoreSources.bkl:
62907 2007-11-30  Simon Hausmann  <hausmann@webkit.org>
62909         Reviewed by Adam Roben.
62911         Fix the build with DATABASE=0.
62913         * page/Settings.cpp:
62914         (WebCore::Settings::setDefaultDatabaseOriginQuota):
62915         (WebCore::Settings::defaultDatabaseOriginQuota):
62917 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
62919         Rubber stamped by Darin.
62921         Fix misplaced file. The name "FontStyle" is not correct though - it probably
62922         needs yet another move - but this time inside platform/graphics - as soon
62923         as we agree on a better name.
62925         * WebCore.xcodeproj/project.pbxproj:
62926         * platform/graphics/FontStyle.h: Copied from platform/text/FontStyle.h.
62927         * platform/text/FontStyle.h: Removed.
62929 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
62931         Reviewed by Sam.
62933         Rename "FontStyle FontStyle(...)" to "FontStyle fontStyle(...)".
62934         I scripted a bit too much while doing the TextStyle -> FontStyle change.
62936         * platform/win/PopupMenuWin.cpp:
62937         (WebCore::PopupMenu::paint):
62938         * rendering/EllipsisBox.cpp:
62939         (WebCore::EllipsisBox::paint):
62940         * rendering/RenderFileUploadControl.cpp:
62941         (WebCore::RenderFileUploadControl::paintObject):
62942         * rendering/RenderListBox.cpp:
62943         (WebCore::RenderListBox::updateFromElement):
62944         (WebCore::RenderListBox::paintItemForeground):
62945         * rendering/RenderTextControl.cpp:
62946         (WebCore::RenderTextControl::setStyle):
62947         (WebCore::RenderTextControl::createInnerTextStyle):
62948         (WebCore::RenderTextControl::createSubtreeIfNeeded):
62949         * rendering/RenderTextControl.h:
62950         * rendering/SVGRootInlineBox.cpp:
62951         (WebCore::svgFontStyleForInlineTextBox):
62953 2007-11-30  Alp Toker  <alp@atoker.com>
62955         GTK+ build fix following the recent text reorganization.
62957         * WebCore.pro:
62959 2007-11-29  Jon Honeycutt  <jhoneycutt@apple.com>
62961         Reviewed by Adam.
62963         Part of <rdar://problem/5506522> Seed: cannot type into text box in
62964         Facebook, don't see plugin content (Adobe Flash)
62966         * plugins/win/PluginViewWin.cpp:
62967         (WebCore::PluginViewWin::handleMouseEvent): Focus the plugin's parent
62968         frame  
62970 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
62972         Not reviewed. Trying to fix gtk/qt/wx build. (I expected problems because of the moves)
62974         * WebCore.pro:
62975         * webcore-base.bkl:
62977 2007-11-30  Nikolas Zimmermann  <zimmermann@kde.org>
62979         Rubber stamped by Brady.
62981         Started platform reorganization (platform/text addition).
62982         Moving string/text/font related classes into new places - as discussed on webkit-dev.
62984         In a follow-up commit I'll move classes out of platform/{mac,win,...} into
62985         platform/text/{mac,win,...}, and also do the ksvg2/ -> svg/ move.
62987         * WebCore.order:
62988         * WebCore.pro:
62989         * WebCore.vcproj/WebCore.vcproj:
62990         * WebCore.xcodeproj/project.pbxproj:
62991         * WebCoreSources.bkl:
62992         * editing/ReplaceSelectionCommand.cpp:
62993         (WebCore::ReplacementFragment::insertFragmentForTestRendering):
62994         * platform/AtomicString.cpp: Removed.
62995         * platform/AtomicString.h: Removed.
62996         * platform/AtomicStringImpl.h: Removed.
62997         * platform/Base64.cpp: Removed.
62998         * platform/Base64.h: Removed.
62999         * platform/BidiContext.cpp: Removed.
63000         * platform/BidiContext.h: Removed.
63001         * platform/BidiResolver.h: Removed.
63002         * platform/CString.cpp: Removed.
63003         * platform/CString.h: Removed.
63004         * platform/CharacterNames.h: Removed.
63005         * platform/CharsetData.h: Removed.
63006         * platform/Font.cpp: Removed.
63007         * platform/Font.h: Removed.
63008         * platform/FontCache.cpp: Removed.
63009         * platform/FontCache.h: Removed.
63010         * platform/FontData.cpp: Removed.
63011         * platform/FontData.h: Removed.
63012         * platform/FontDescription.h: Removed.
63013         * platform/FontFallbackList.cpp: Removed.
63014         * platform/FontFallbackList.h: Removed.
63015         * platform/FontFamily.cpp: Removed.
63016         * platform/FontFamily.h: Removed.
63017         * platform/FontSelector.h: Removed.
63018         * platform/GlyphBuffer.h: Removed.
63019         * platform/GlyphPageTreeNode.cpp: Removed.
63020         * platform/GlyphPageTreeNode.h: Removed.
63021         * platform/GlyphWidthMap.cpp: Removed.
63022         * platform/GlyphWidthMap.h: Removed.
63023         * platform/PlatformString.h: Removed.
63024         * platform/RegularExpression.cpp: Removed.
63025         * platform/RegularExpression.h: Removed.
63026         * platform/SegmentedString.cpp: Removed.
63027         * platform/SegmentedString.h: Removed.
63028         * platform/String.cpp: Removed.
63029         * platform/StringHash.h: Removed.
63030         * platform/StringImpl.cpp: Removed.
63031         * platform/StringImpl.h: Removed.
63032         * platform/StringTruncator.cpp: Removed.
63033         * platform/StringTruncator.h: Removed.
63034         * platform/TextBoundaries.h: Removed.
63035         * platform/TextBoundariesICU.cpp: Removed.
63036         * platform/TextBreakIterator.h: Removed.
63037         * platform/TextBreakIteratorICU.cpp: Removed.
63038         * platform/TextBreakIteratorInternalICU.h: Removed.
63039         * platform/TextCodec.cpp: Removed.
63040         * platform/TextCodec.h: Removed.
63041         * platform/TextCodecICU.cpp: Removed.
63042         * platform/TextCodecICU.h: Removed.
63043         * platform/TextCodecLatin1.cpp: Removed.
63044         * platform/TextCodecLatin1.h: Removed.
63045         * platform/TextCodecUTF16.cpp: Removed.
63046         * platform/TextCodecUTF16.h: Removed.
63047         * platform/TextCodecUserDefined.cpp: Removed.
63048         * platform/TextCodecUserDefined.h: Removed.
63049         * platform/TextDecoder.cpp: Removed.
63050         * platform/TextDecoder.h: Removed.
63051         * platform/TextDirection.h: Removed.
63052         * platform/TextEncoding.cpp: Removed.
63053         * platform/TextEncoding.h: Removed.
63054         * platform/TextEncodingRegistry.cpp: Removed.
63055         * platform/TextEncodingRegistry.h: Removed.
63056         * platform/TextStream.cpp: Removed.
63057         * platform/TextStream.h: Removed.
63058         * platform/TextStyle.h: Removed.
63059         * platform/UnicodeRange.cpp: Removed.
63060         * platform/UnicodeRange.h: Removed.
63061         * platform/graphics/Font.cpp: Copied from platform/Font.cpp.
63062         (WebCore::WidthIterator::WidthIterator):
63063         (WebCore::Font::width):
63064         (WebCore::Font::drawSimpleText):
63065         (WebCore::Font::drawGlyphBuffer):
63066         (WebCore::Font::drawText):
63067         (WebCore::Font::floatWidth):
63068         (WebCore::Font::floatWidthForSimpleText):
63069         (WebCore::Font::selectionRectForText):
63070         (WebCore::Font::selectionRectForSimpleText):
63071         (WebCore::Font::offsetForPosition):
63072         (WebCore::Font::offsetForPositionForSimpleText):
63073         * platform/graphics/Font.h: Copied from platform/Font.h.
63074         * platform/graphics/FontCache.cpp: Copied from platform/FontCache.cpp.
63075         * platform/graphics/FontCache.h: Copied from platform/FontCache.h.
63076         * platform/graphics/FontData.cpp: Copied from platform/FontData.cpp.
63077         * platform/graphics/FontData.h: Copied from platform/FontData.h.
63078         * platform/graphics/FontDescription.h: Copied from platform/FontDescription.h.
63079         * platform/graphics/FontFallbackList.cpp: Copied from platform/FontFallbackList.cpp.
63080         * platform/graphics/FontFallbackList.h: Copied from platform/FontFallbackList.h.
63081         * platform/graphics/FontFamily.cpp: Copied from platform/FontFamily.cpp.
63082         * platform/graphics/FontFamily.h: Copied from platform/FontFamily.h.
63083         * platform/graphics/FontSelector.h: Copied from platform/FontSelector.h.
63084         * platform/graphics/GlyphBuffer.h: Copied from platform/GlyphBuffer.h.
63085         * platform/graphics/GlyphPageTreeNode.cpp: Copied from platform/GlyphPageTreeNode.cpp.
63086         * platform/graphics/GlyphPageTreeNode.h: Copied from platform/GlyphPageTreeNode.h.
63087         * platform/graphics/GlyphWidthMap.cpp: Copied from platform/GlyphWidthMap.cpp.
63088         * platform/graphics/GlyphWidthMap.h: Copied from platform/GlyphWidthMap.h.
63089         * platform/graphics/GraphicsContext.cpp:
63090         (WebCore::GraphicsContext::drawText):
63091         (WebCore::GraphicsContext::drawBidiText):
63092         (WebCore::GraphicsContext::drawHighlightForText):
63093         * platform/graphics/GraphicsContext.h:
63094         * platform/graphics/StringTruncator.cpp: Copied from platform/StringTruncator.cpp.
63095         (WebCore::stringWidth):
63096         * platform/graphics/StringTruncator.h: Copied from platform/StringTruncator.h.
63097         * platform/graphics/qt/GraphicsContextQt.cpp:
63098         * platform/gtk/FontGtk.cpp:
63099         (WebCore::Font::drawComplexText):
63100         (WebCore::Font::floatWidthForComplexText):
63101         (WebCore::Font::offsetForPositionForComplexText):
63102         (WebCore::Font::selectionRectForComplexText):
63103         * platform/mac/FontMac.mm:
63104         (WebCore::ATSULayoutParameters::ATSULayoutParameters):
63105         (WebCore::Font::selectionRectForComplexText):
63106         (WebCore::Font::drawComplexText):
63107         (WebCore::Font::floatWidthForComplexText):
63108         (WebCore::Font::offsetForPositionForComplexText):
63109         * platform/mac/WebCoreTextRenderer.mm:
63110         (WebCoreDrawTextAtPoint):
63111         (WebCoreTextFloatWidth):
63112         * platform/qt/FontQt.cpp:
63113         (WebCore::generateComponents):
63114         (WebCore::Font::drawText):
63115         (WebCore::Font::width):
63116         (WebCore::Font::floatWidth):
63117         (WebCore::Font::offsetForPosition):
63118         (WebCore::cursorToX):
63119         (WebCore::Font::selectionRectForText):
63120         * platform/text: Added.
63121         * platform/text/AtomicString.cpp: Copied from platform/AtomicString.cpp.
63122         * platform/text/AtomicString.h: Copied from platform/AtomicString.h.
63123         * platform/text/AtomicStringImpl.h: Copied from platform/AtomicStringImpl.h.
63124         * platform/text/Base64.cpp: Copied from platform/Base64.cpp.
63125         * platform/text/Base64.h: Copied from platform/Base64.h.
63126         * platform/text/BidiContext.cpp: Copied from platform/BidiContext.cpp.
63127         * platform/text/BidiContext.h: Copied from platform/BidiContext.h.
63128         * platform/text/BidiResolver.h: Copied from platform/BidiResolver.h.
63129         * platform/text/CString.cpp: Copied from platform/CString.cpp.
63130         * platform/text/CString.h: Copied from platform/CString.h.
63131         * platform/text/CharacterNames.h: Copied from platform/CharacterNames.h.
63132         * platform/text/FontStyle.h: Copied from platform/TextStyle.h.
63133         (WebCore::FontStyle::FontStyle):
63134         * platform/text/PlatformString.h: Copied from platform/PlatformString.h.
63135         * platform/text/RegularExpression.cpp: Copied from platform/RegularExpression.cpp.
63136         * platform/text/RegularExpression.h: Copied from platform/RegularExpression.h.
63137         * platform/text/SegmentedString.cpp: Copied from platform/SegmentedString.cpp.
63138         * platform/text/SegmentedString.h: Copied from platform/SegmentedString.h.
63139         * platform/text/String.cpp: Copied from platform/String.cpp.
63140         * platform/text/StringHash.h: Copied from platform/StringHash.h.
63141         * platform/text/StringImpl.cpp: Copied from platform/StringImpl.cpp.
63142         * platform/text/StringImpl.h: Copied from platform/StringImpl.h.
63143         * platform/text/TextBoundaries.h: Copied from platform/TextBoundaries.h.
63144         * platform/text/TextBoundariesICU.cpp: Copied from platform/TextBoundariesICU.cpp.
63145         (WebCore::findNextWordFromIndex):
63146         * platform/text/TextBreakIterator.h: Copied from platform/TextBreakIterator.h.
63147         * platform/text/TextBreakIteratorICU.cpp: Copied from platform/TextBreakIteratorICU.cpp.
63148         * platform/text/TextBreakIteratorInternalICU.h: Copied from platform/TextBreakIteratorInternalICU.h.
63149         * platform/text/TextCodec.cpp: Copied from platform/TextCodec.cpp.
63150         * platform/text/TextCodec.h: Copied from platform/TextCodec.h.
63151         * platform/text/TextCodecICU.cpp: Copied from platform/TextCodecICU.cpp.
63152         * platform/text/TextCodecICU.h: Copied from platform/TextCodecICU.h.
63153         * platform/text/TextCodecLatin1.cpp: Copied from platform/TextCodecLatin1.cpp.
63154         * platform/text/TextCodecLatin1.h: Copied from platform/TextCodecLatin1.h.
63155         * platform/text/TextCodecUTF16.cpp: Copied from platform/TextCodecUTF16.cpp.
63156         * platform/text/TextCodecUTF16.h: Copied from platform/TextCodecUTF16.h.
63157         * platform/text/TextCodecUserDefined.cpp: Copied from platform/TextCodecUserDefined.cpp.
63158         * platform/text/TextCodecUserDefined.h: Copied from platform/TextCodecUserDefined.h.
63159         * platform/text/TextDecoder.cpp: Copied from platform/TextDecoder.cpp.
63160         * platform/text/TextDecoder.h: Copied from platform/TextDecoder.h.
63161         * platform/text/TextDirection.h: Copied from platform/TextDirection.h.
63162         * platform/text/TextEncoding.cpp: Copied from platform/TextEncoding.cpp.
63163         * platform/text/TextEncoding.h: Copied from platform/TextEncoding.h.
63164         * platform/text/TextEncodingRegistry.cpp: Copied from platform/TextEncodingRegistry.cpp.
63165         * platform/text/TextEncodingRegistry.h: Copied from platform/TextEncodingRegistry.h.
63166         * platform/text/TextStream.cpp: Copied from platform/TextStream.cpp.
63167         * platform/text/TextStream.h: Copied from platform/TextStream.h.
63168         * platform/text/UnicodeRange.cpp: Copied from platform/UnicodeRange.cpp.
63169         * platform/text/UnicodeRange.h: Copied from platform/UnicodeRange.h.
63170         * platform/text/mac: Added.
63171         * platform/text/mac/CharsetData.h: Copied from platform/CharsetData.h.
63172         * platform/win/FontWin.cpp:
63173         (WebCore::Font::selectionRectForComplexText):
63174         (WebCore::Font::drawComplexText):
63175         (WebCore::Font::floatWidthForComplexText):
63176         (WebCore::Font::offsetForPositionForComplexText):
63177         * platform/win/PopupMenuWin.cpp:
63178         (WebCore::PopupMenu::paint):
63179         * platform/win/UniscribeController.cpp:
63180         (WebCore::UniscribeController::UniscribeController):
63181         * platform/win/UniscribeController.h:
63182         * platform/win/WebCoreTextRenderer.cpp:
63183         (WebCore::doDrawTextAtPoint):
63184         * platform/wx/FontWx.cpp:
63185         (WebCore::Font::selectionRectForComplexText):
63186         (WebCore::Font::drawComplexText):
63187         (WebCore::Font::floatWidthForComplexText):
63188         (WebCore::Font::offsetForPositionForComplexText):
63189         * rendering/EllipsisBox.cpp:
63190         (WebCore::EllipsisBox::paint):
63191         * rendering/InlineTextBox.cpp:
63192         (WebCore::InlineTextBox::selectionRect):
63193         (WebCore::InlineTextBox::paint):
63194         (WebCore::InlineTextBox::paintSelection):
63195         (WebCore::InlineTextBox::paintCompositionBackground):
63196         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
63197         (WebCore::InlineTextBox::paintTextMatchMarker):
63198         (WebCore::InlineTextBox::offsetForPosition):
63199         (WebCore::InlineTextBox::positionForOffset):
63200         * rendering/RenderFileUploadControl.cpp:
63201         (WebCore::RenderFileUploadControl::paintObject):
63202         (WebCore::RenderFileUploadControl::calcPrefWidths):
63203         * rendering/RenderImage.cpp:
63204         * rendering/RenderListBox.cpp:
63205         (WebCore::RenderListBox::updateFromElement):
63206         (WebCore::RenderListBox::paintItemForeground):
63207         * rendering/RenderMenuList.cpp:
63208         (WebCore::RenderMenuList::updateOptionsWidth):
63209         * rendering/RenderText.cpp:
63210         (WebCore::RenderText::widthFromCache):
63211         (WebCore::RenderText::calcPrefWidths):
63212         (WebCore::RenderText::width):
63213         * rendering/RenderTextControl.cpp:
63214         (WebCore::RenderTextControl::setStyle):
63215         (WebCore::RenderTextControl::createInnerFontStyle):
63216         (WebCore::RenderTextControl::createSubtreeIfNeeded):
63217         (WebCore::RenderTextControl::calcPrefWidths):
63218         * rendering/RenderTextControl.h:
63219         * rendering/SVGInlineTextBox.cpp:
63220         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
63221         (WebCore::SVGInlineTextBox::paintCharacters):
63222         (WebCore::SVGInlineTextBox::paintSelection):
63223         * rendering/SVGRootInlineBox.cpp:
63224         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
63225         (WebCore::svgFontStyleForInlineTextBox):
63226         * rendering/SVGRootInlineBox.h:
63228 2007-11-30  Adele Peterson  <adele@apple.com>
63230         Reviewed by Darin.
63232         Fix for http://bugs.webkit.org/show_bug.cgi?id=16072
63233         <rdar://problem/5463821> REGRESSION: Mousemove event isn't fired when mouse moves over scrollbar with pressed button (16072)
63235         Test: fast/events/mousemove-after-drag-over-scrollbar.html
63237         * page/EventHandler.cpp:
63238         (WebCore::EventHandler::handleMouseMoveEvent): If the mouse is pressed, and we've moved over a new scrollbar, then we can clear m_lastScrollbarUnderMouse.
63239          We should only need to show the hover effect when the mouse isn't pressed.
63241 2007-11-29  Brady Eidson <beidson@apple.com>
63243         Reviewed by Tim
63245         Part of <rdar://problem/5556377> - Need to accurately track and enforce database quota
63247         SQLite has the ability to enforce the page usage for databases.  This gives us bulletproof
63248         enforcement of the database size limit with reasonable granularity (within 1023 bytes by 
63249         default on OS X with SQLite 3.4.0)
63251         This also involved enhancing the ability to install/remove the authorizer to run the PRAGMA
63252         statements involved
63254         Note this patch does not actually use the new maximumSize() functionality of the 
63255         SQLiteDatabase class - that can be reviewed/landed seperately
63256         
63257         * platform/sql/SQLiteDatabase.cpp:
63258         (WebCore::SQLiteDatabase::SQLiteDatabase): 
63259         (WebCore::SQLiteDatabase::maximumSize): Return the current maximum size in bytes
63260         (WebCore::SQLiteDatabase::setMaximumSize): Based on m_pageSize, set the maximum page count
63261           to enforce the maximum size in bytes
63262         (WebCore::SQLiteDatabase::pageSize): Fetch m_pageSize if it hasn't been fetched, or return
63263           the cached value
63264         (WebCore::SQLiteDatabase::setAuthorizer): Use enableAuthorizer for the sqlite_* level 
63265           authorizer setup
63266         (WebCore::SQLiteDatabase::enableAuthorizer): Install or remove the sqlite authorizer handler
63267         * platform/sql/SQLiteDatabase.h: Add the m_pageSize member so we only have to fetch it once
63269 2007-11-29  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
63271         Reviewed by Maciej.
63273         * Fix fast/events/mousedown_in_scrollbar.html
63274         * This test used to crash in PlatformScrollbarQt::mouse*Event due parent() returning 0.
63275         * Extend the current check that the scrollbar in the mev can be go away.
63276         This happens if we destroy a RenderLayer as the result of a click. In the
63277         case of Qt we can have this scrollbar in m_lastScrollbarUnderMouse. The RenderLayer
63278         is the ScrollbarClient, m_lastScrollbarUnderMouse is a RefPtr and keeps the
63279         last reference. When calling into this scrollbar the m_client pointer is a dangling pointer.
63280         We extend the check to set m_lastScrollbarUnderMouse back to zero when it was the
63281         scrollbar in the old mev and is gone in the new one.
63282         * This happens only on the Qt port because we send more/different move events.
63284         * page/EventHandler.cpp:
63285         (WebCore::EventHandler::handleMousePressEvent):
63287 2007-11-29  Antti Koivisto  <antti@apple.com>
63289         Reviewed by Mitz.
63291         Fix aspect ratio calculation of video.
63292         
63293         Video should always be treated as a replaced element in size calculation.
63294         
63295         Test: media/video-aspect-ratio.html
63297         * rendering/RenderBox.cpp:
63298         (WebCore::RenderBox::calcWidth):
63299         (WebCore::RenderBox::calcHeight):
63300         * rendering/RenderBox.h:
63301         (WebCore::RenderBox::shouldCalculateSizeAsReplaced):
63302         * rendering/RenderMedia.h:
63303         (WebCore::RenderMedia::shouldCalculateSizeAsReplaced):
63305 2007-11-29  Sam Weinig  <sam@webkit.org>
63307         Reviewed by Oliver.
63309         Additional fix for <rdar://problem/5592988> / http://bugs.webkit.org/show_bug.cgi?id=15936
63310         - More closely match IE's policy for frame navigation.
63312         * bindings/js/kjs_window.cpp:
63313         (KJS::WindowProtoFuncOpen::callAsFunction):
63314         * loader/FrameLoader.cpp:
63315         (WebCore::FrameLoader::shouldAllowNavigation):
63316         * page/FrameTree.cpp:
63317         (WebCore::FrameTree::top):
63318         * page/FrameTree.h:
63320 2007-11-29  Dan Bernstein  <mitz@apple.com>
63322         Reviewed by Adam Roben and John Sullivan.
63324         - make the recent searches popup extend only along the straight part of
63325           the search field (unless it needs to be wider).
63327         * platform/PopupMenuClient.h:
63328           Added clientInsetLeft() and clientInsetRight() for clients to
63329           specify desired horizontal insets for the menu.
63330         * platform/win/PopupMenuWin.cpp:
63331         (WebCore::PopupMenu::calculatePositionAndSize):
63332         (WebCore::PopupMenu::paint):
63333         * rendering/RenderMenuList.cpp:
63334         (WebCore::RenderMenuList::clientInsetLeft): Added. Returns 0.
63335         (WebCore::RenderMenuList::clientInsetRight): Ditto.
63336         * rendering/RenderMenuList.h:
63337         * rendering/RenderTextControl.cpp:
63338         (WebCore::RenderTextControl::clientInsetLeft): Added. Returns half the
63339         control's height, which is the radius of the cap on the left.
63340         (WebCore::RenderTextControl::clientInsetRight): Added.
63341         * rendering/RenderTextControl.h:
63343 2007-11-30  Alp Toker  <alp@atoker.com>
63345         Reviewed by Maciej.
63347         http://bugs.webkit.org/show_bug.cgi?id=16173
63348         Licensing change
63350         Change license from BSD to LGPL.
63352         This is being done to encourage vendors to contribute their fixes back
63353         upstream.
63355         * platform/graphics/gtk/ColorGtk.cpp:
63356         * platform/graphics/gtk/IntPointGtk.cpp:
63357         * platform/graphics/gtk/IntRectGtk.cpp:
63358         * platform/graphics/svg/cairo/RenderPathCairo.cpp:
63359         * platform/graphics/svg/cairo/SVGPaintServerCairo.cpp:
63360         * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp:
63361         * platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp:
63362         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
63363         * platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp:
63364         * platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp:
63365         * platform/gtk/Language.cpp:
63366         * platform/gtk/LoggingGtk.cpp:
63367         * platform/gtk/SoundGtk.cpp:
63368         * platform/gtk/SystemTimeGtk.cpp:
63369         * platform/gtk/TextBreakIteratorInternalICUGtk.cpp:
63371 2007-11-29  Darin Adler  <darin@apple.com>
63373         Reviewed by Adele.
63375         - fix http://bugs.webkit.org/show_bug.cgi?id=16191
63376           REGRESSION: cannot tab to radio input after setting checked to false
63378         Test: fast/forms/input-radio-checked-tab.html
63380         * html/HTMLFormElement.cpp:
63381         (WebCore::HTMLFormElement::CheckedRadioButtons::addButton): Fix this code
63382         so that it doesn't call setChecked(false) until after the map has been updated.
63383         Otherwise, we can end up deallocating the map before manipulating it. As long
63384         as I was changing the function, I decided to make it do only a single hash
63385         table lookup.
63387         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setChecked):
63388         Remove the button from the radio buttons set before changing the checked
63389         state. This matches the idiom used elsewhere and fixes the problem where
63390         setting checked to false would not remove it from the set.
63392 2007-11-29  Justin Garcia  <justin.garcia@apple.com>
63394         Reviewed by Darin Adler.
63396         <rdar://problem/5620093> Brief hang when Safari caches page text of XML document
63398         * editing/TextIterator.cpp:
63399         (WebCore::TextIterator::representNodeOffsetZero): When we haven't been emitting any 
63400         characters, shouldRepresentNodeOffsetZero() can create VisiblePositions, which is
63401         expensive.  So, we perform the inexpensive checks on m_node to see if it necessitates 
63402         emitting a character first and will early return before encountering 
63403         shouldRepresentNodeOffsetZero()s worse case behavior.
63405 2007-11-29  Anders Carlsson  <andersca@apple.com>
63407         Reviewed by Sam.
63409         Don't install event handlers or set the zoom cursor if auto-shrink has been disabled.
63411         * loader/ImageDocument.cpp:
63412         (WebCore::ImageDocument::createDocumentStructure):
63413         (WebCore::ImageDocument::imageChanged):
63415 2007-11-29  Beth Dakin  <bdakin@apple.com>
63417         Reviewed by Geoff.
63419         Fix for <rdar://problem/5620151> Disable JavaScript for SVG as 
63420         image for <img> and CSS images
63422         * platform/graphics/svg/SVGImage.cpp:
63423         (WebCore::SVGImage::dataChanged): When we create the empty clients, 
63424         explicitly disable JavaScript in the settings.
63426 2007-11-29  Brady Eidson  <beidson@apple.com>
63428         Reviewed by Anders
63430         Support for <rdar://problem/5556381> and <rdar://problem/5556379>
63432         The Database feature in the engine needs to support delegate calls for policy decisions and
63433         also provide notifications when origins and databases change their state.
63435         This patch also polishes off the missing features of the management API
63437         * page/Chrome.cpp: Implement the two UIDelegate methods
63438         (WebCore::Chrome::requestQuotaIncreaseForNewDatabase): Ask for more space to create a new database if it won't fit
63439         (WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation): Ask for more space to complete an in-progress operation
63440         * page/Chrome.h:
63441         * page/ChromeClient.h:
63442         * platform/graphics/svg/SVGImageEmptyClients.h:
63443         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
63444         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):
63446         * storage/Database.cpp:
63447         (WebCore::Database::openDatabase): Check to see if this database can be opened - the quota must be high 
63448           enough and if it isn't, the UIDelegate should have a change to bump the quota.
63449           Also update the UI-relevant details (display name and estimated size) upon successful opening of the database
63451         * storage/DatabaseDetails.h: Remove the version parameter as it is a programatic detail of a
63452           site database and is not important to API clients
63453         (WebCore::DatabaseDetails::DatabaseDetails):
63454         (WebCore::DatabaseDetails::isValid):
63455         (WebCore::DatabaseDetails::name):
63457         * storage/DatabaseTracker.cpp:
63458         (WebCore::DatabaseTracker::openTrackerDatabase): Tweaked the schema here - there was a horrible bug with the old schema that would
63459           prevent you from having two databases of the same name from two different origins.  Also simplify the origin-management schema
63460         (WebCore::DatabaseTracker::canEstablishDatabase): Added.  Does some estimated size vs quota checks, and asks the UI delegate for 
63461           more space if necessary
63462         (WebCore::DatabaseTracker::hasEntryForOrigin):
63463         (WebCore::DatabaseTracker::establishEntryForOrigin): Establishes a tracker entry for the given origin with the current default quota
63464           Also notifies the client of the new origin
63465         (WebCore::DatabaseTracker::setDatabaseDetails): Update the display name and estimated size for the given database
63466         (WebCore::DatabaseTracker::fullPathForDatabase): Tweak to add the ability to get the path without creating it - for management purposes
63467         (WebCore::DatabaseTracker::populateOrigins): Populate origins from the Origins table instead of the Databases table
63468         (WebCore::DatabaseTracker::origins):
63469         (WebCore::DatabaseTracker::detailsForNameAndOrigin): For API management
63470         (WebCore::DatabaseTracker::usageForDatabase):
63471         (WebCore::DatabaseTracker::usageForOrigin):
63472         (WebCore::DatabaseTracker::quotaForOrigin):
63473         (WebCore::DatabaseTracker::setQuota): Notify the client
63474         (WebCore::DatabaseTracker::addDatabase): Notify the client 
63475         (WebCore::DatabaseTracker::deleteAllDatabases):
63476         (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
63477         (WebCore::DatabaseTracker::deleteDatabase):
63478         (WebCore::DatabaseTracker::deleteDatabaseFile):
63479         * storage/DatabaseTracker.h:
63481 2007-11-29  Dan Bernstein  <mitz@apple.com>
63483         Reviewed by Beth Dakin and Darin Adler.
63485         - manual test for <rdar://problem/5346394> Contextmenu event doesn't fire on body element inside frame
63487         * manual-tests/context-click-unfocused-frame.html: Added.
63489 2007-11-28  Antti Koivisto  <antti@apple.com>
63491         Reviewed by Geoff.
63492         
63493         Fallback content inside media elements should not be rendered.
63495         Test: media/fallback.html
63497         * rendering/RenderMedia.h:
63498         (WebCore::RenderMedia::canHaveChildren):
63500 2007-11-28  Mark Rowe  <mrowe@apple.com>
63502         Windows build fix.
63504         * WebCore.vcproj/WebCore.vcproj:
63506 2007-11-28  Mark Rowe  <mrowe@apple.com>
63508         Gtk build fix.
63510         * WebCore.pro:
63512 2007-11-28  Antti Koivisto  <antti@apple.com>
63514         Reviewed by Oliver.
63516         Make QTMovieView fill color transparent. This behavior matches the specification
63517         (and allows nice alpha blended video).
63519         * platform/graphics/mac/MoviePrivateQTKit.mm:
63520         (WebCore::MoviePrivate::createQTMovieView):
63522 2007-11-28  Antti Koivisto  <antti@apple.com>
63524         Reviewed by Darin.
63526         Test: media/video-controls.html
63527         
63528         <rdar://problem/5605668>
63529         Implement controls attribute for video element
63530         
63531         - Add RenderMedia and make RenderVideo its subclass. Controls code goes to RenderMedia while
63532           video specific (painting etc) code stays in RenderVideo. For example audio controls can be implemented
63533           later by just instantiating RenderMedia as renderer.
63534         - Make media renderer hierarchy inherit from RenderBlock instead of RenderReplaced so it can 
63535           have child nodes (for controls).
63536         - Controls are implemented as a shadow DOM.
63537         - Current look is a placeholder. It is defined purely in CSS.
63538         - Some things like volume controls are not yet implemented.
63539         - Fade-in/out is done manually, CSS animations don't work well in shadow trees.
63540           
63541         * WebCore.xcodeproj/project.pbxproj:
63542         * css/html4.css:
63543         * html/HTMLMediaElement.cpp:
63544         (WebCore::HTMLMediaElement::attributeChanged):
63545         (WebCore::HTMLMediaElement::updateMovie):
63546         (WebCore::HTMLMediaElement::defaultEventHandler):
63547         * html/HTMLMediaElement.h:
63548         * rendering/RenderMedia.cpp: Added.
63549         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
63550         (WebCore::MediaControlShadowRootElement::isShadowNode):
63551         (WebCore::MediaControlShadowRootElement::shadowParentNode):
63552         (WebCore::MediaControlInputElement::MediaControlInputElement):
63553         (WebCore::MediaControlInputElement::attachToParent):
63554         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
63555         (WebCore::MediaControlPlayButtonElement::inPausedState):
63556         (WebCore::MediaControlPlayButtonElement::defaultEventHandler):
63557         (WebCore::MediaControlPlayButtonElement::update):
63558         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
63559         (WebCore::MediaControlTimelineElement::defaultEventHandler):
63560         (WebCore::MediaControlTimelineElement::update):
63561         (WebCore::RenderMedia::RenderMedia):
63562         (WebCore::RenderMedia::~RenderMedia):
63563         (WebCore::RenderMedia::mediaElement):
63564         (WebCore::RenderMedia::movie):
63565         (WebCore::RenderMedia::setStyle):
63566         (WebCore::RenderMedia::createControlsShadowRoot):
63567         (WebCore::RenderMedia::createPanel):
63568         (WebCore::RenderMedia::createPlayButton):
63569         (WebCore::RenderMedia::createTimeline):
63570         (WebCore::RenderMedia::createTimeDisplay):
63571         (WebCore::RenderMedia::updateFromElement):
63572         (WebCore::RenderMedia::updateControls):
63573         (WebCore::RenderMedia::timeUpdateTimerFired):
63574         (WebCore::RenderMedia::updateTimeDisplay):
63575         (WebCore::RenderMedia::updateControlVisibility):
63576         (WebCore::RenderMedia::changeOpacity):
63577         (WebCore::RenderMedia::opacityAnimationTimerFired):
63578         (WebCore::RenderMedia::forwardEvent):
63579         * rendering/RenderMedia.h: Added.
63580         (WebCore::RenderMedia::renderName):
63581         (WebCore::RenderMedia::isMedia):
63582         (WebCore::RenderMedia::intrinsicSize):
63583         * rendering/RenderObject.h:
63584         (WebCore::RenderObject::isMedia):
63585         * rendering/RenderVideo.cpp:
63586         (WebCore::RenderVideo::RenderVideo):
63587         (WebCore::RenderVideo::videoSizeChanged):
63588         (WebCore::RenderVideo::paintObject):
63589         (WebCore::RenderVideo::layout):
63590         (WebCore::RenderVideo::updateFromElement):
63591         (WebCore::RenderVideo::calcAspectRatioWidth):
63592         (WebCore::RenderVideo::calcAspectRatioHeight):
63593         * rendering/RenderVideo.h:
63595 2007-11-28  Justin Garcia  <justin.garcia@apple.com>
63597         Reviewed by Darin Adler.
63599         <rdar://problem/5573879> GMail Beta: Crash in when undoing Remove Formating
63600         
63601         In the new beta, Google has added some custom code on top of our RemoveFormat
63602         to work around a bug where fully selected lists aren't removed.  This code corrupts
63603         the undo stack and causes crashes.  This change fixes two problems with RemoveFormat
63604         so that Google doesn't have to have any custom code. After checking this in I'll 
63605         work on bulletproofing the undo stack
63607         * WebCore.xcodeproj/project.pbxproj: 
63608         * editing/CompositeEditCommand.cpp:
63609         (WebCore::CompositeEditCommand::insertLineBreak): Added this convenience method.
63610         (WebCore::CompositeEditCommand::inputText): Added code to select all inserted text, not
63611         just the last paragraph.  Added code to support an input string with '\n's.
63612         * editing/CompositeEditCommand.h:
63613         * editing/Editor.cpp:
63614         (WebCore::Editor::removeFormattingAndStyle): Moved code to its own EditCommand.
63615         * editing/RemoveFormatCommand.cpp: Added. Moved code from removeFormattingAndStyle here.
63616         (WebCore::RemoveFormatCommand::RemoveFormatCommand):
63617         (WebCore::RemoveFormatCommand::doApply): Added code to remove fully selected lists.
63618         * editing/RemoveFormatCommand.h: Added.
63619         (WebCore::RemoveFormatCommand::editingAction):
63621 2007-11-28  Dan Bernstein  <mitz@apple.com>
63623         Reviewed by Dave Hyatt.
63625         - fix <rdar://problem/5612459> CrashTracer: [REGRESSION] 61 crashes in Safari at com.apple.WebCore: WebCore::AutoTableLayout::layout + 2046
63627         Test: fast/table/empty-auto-column-zero-divide.html
63629         * rendering/AutoTableLayout.cpp:
63630         (WebCore::AutoTableLayout::recalcColumn):
63631         (WebCore::AutoTableLayout::fullRecalc):
63632         (WebCore::AutoTableLayout::calcEffectiveWidth):
63633         (WebCore::AutoTableLayout::layout): When distributing the remaining
63634         width among columns, skip those whose effective (rather than
63635         specified) width is auto and contain only empty cells.
63637 2007-11-28  Peter Kasting  <zerodpx@gmail.com>
63639         Reviewed by Alp Toker.
63641         http://bugs.webkit.org/show_bug.cgi?id=16169
63642         GIF decoder needs to set hasAlpha() correctly on subsequent frames.
63643         
63644         This also removes the workaround for this problem in
63645         ImageSourceCairo.cpp.
63647         * platform/graphics/cairo/ImageSourceCairo.cpp:
63648         (WebCore::ImageSource::frameHasAlphaAtIndex):
63649         * platform/image-decoders/gif/GIFImageDecoder.cpp:
63650         (WebCore::GIFImageDecoder::initFrameBuffer):
63652 2007-11-28  Dan Bernstein  <mitz@apple.com>
63654         Reviewed by Darin Adler and Adam Roben.
63656         - <rdar://problem/5057218> Reenable "recent searches" search field menu when menu is fully implemented
63658         * platform/win/SearchPopupMenuWin.cpp:
63659         (WebCore::SearchPopupMenu::enabled): Changed to return true.
63660         (WebCore::autosaveKey): Added. Returns a preferences key for the
63661         autosave name by prefixing it with "com.apple.WebKit.searchField:".
63662         (WebCore::SearchPopupMenu::saveRecentSearches): Implemented.
63663         (WebCore::SearchPopupMenu::loadRecentSearches): Implemented.
63665 2007-11-28  Alp Toker  <alp@atoker.com>
63667         Reviewed by Mark Rowe.
63669         http://bugs.webkit.org/show_bug.cgi?id=15689
63670         [GTK] Background of loading images is always black
63672         frameHasAlphaAtIndex() exists only to allow optimization for cases we
63673         are certain the image can be blitted rather than composited.
63675         Thus we need to be conservative, returning false only when we are
63676         absolutely certain there is no need for composited copying, and true
63677         otherwise.
63679         CG doesn't even bother with this optimization at all and always
63680         returns true.
63682         Patch includes a workaround for
63683           http://bugs.webkit.org/show_bug.cgi?id=16169
63684           GIF ImageDecoder hasAlpha() return value incorrect
63686         * platform/graphics/cairo/ImageSourceCairo.cpp:
63687         (WebCore::ImageSource::frameHasAlphaAtIndex):
63689 2007-11-27  Alp Toker  <alp@atoker.com>
63691         Reviewed by Mark Rowe.
63693         Install the JavaScriptCore headers as part of the GTK+ port.
63695         * WebCore.pro:
63697 2007-11-27  Beth Dakin  <bdakin@apple.com>
63699         Reviewed by Oliver.
63701         Fix for <rdar://problem/5616052> SVGs with width or height of 100% 
63702         hang when used as a background-image (16164)
63704         * platform/graphics/svg/SVGImage.cpp:
63705         (WebCore::SVGImage::size): Use valueAsPercentage() for percents 
63706         instead of valueInSpecifiedUnits(). valueInSpecifiedUnits() 
63707         returns, for example, 50 for 50%, so multiplying percentages by the 
63708         default size of 300 x 150 led to ridiculously huge dimensions for 
63709         SVG images, and the subsequent hang. 
63711 2007-11-27  Jon Honeycutt  <jhoneycutt@apple.com>
63713         Reviewed by Adam.
63715         Set haveRegisteredWindowClass when we register the window class.
63717         * plugins/win/PluginViewWin.cpp:
63718         (WebCore::registerPluginView):
63720 2007-11-27  Timothy Hatcher  <timothy@apple.com>
63722         Reviewed by Sam Weinig.
63724         Bug 16165: Dragging the inspector toolbar should move the window
63725         http://bugs.webkit.org/show_bug.cgi?id=16165
63727         * page/inspector/DocumentPanel.js: Call the new drag functions, and cleanup code.
63728         * page/inspector/inspector.css: Only make the toolbar transparent in detached mode.
63729         * page/inspector/inspector.js: Call the new drag functions, and cleanup code. Add
63730           toolbar drag functions that move the window.
63732 2007-11-27  Antti Koivisto  <antti@apple.com>
63734         Reviewed by Mitz.
63736         Small changes to make RenderSlider a bit more generic so it can be used in video controls.
63738         * html/HTMLInputElement.cpp:
63739         (WebCore::HTMLInputElement::defaultEventHandler): Fix coordinates with forwarded events.
63740         * rendering/RenderSlider.cpp:
63741         (WebCore::HTMLSliderThumbElement::defaultEventHandler): Fix coordinates with forwarded events.
63742         (WebCore::RenderSlider::setStyle):
63743         (WebCore::RenderSlider::createThumbStyle): Copy thumb left and top from the orginal style so position does not reset.
63744         (WebCore::RenderSlider::mouseEventIsInThumb): Make this work with forwarded events.
63745         * rendering/RenderSlider.h:
63747 2007-11-27  Antti Koivisto  <antti@apple.com>
63749         Reviewed by Darin.
63751         - Don't use hasPseudoId() optimization for pseudo styles used in shadow trees. These styles
63752           generally exist when asked for so the optimization does not do much. This reverses the continuing
63753           growth of the _pseudoBits bitfield in RenderStyle.
63754         - Add some pseudo elements for media controls
63756         * css/CSSSelector.cpp:
63757         (WebCore::CSSSelector::extractPseudoType):
63758         * css/CSSSelector.h:
63759         (WebCore::CSSSelector::):
63760         * css/CSSStyleSelector.cpp:
63761         (WebCore::CSSStyleSelector::matchRulesForList):
63762         (WebCore::CSSStyleSelector::checkOneSelector):
63763         * rendering/RenderObject.cpp:
63764         (WebCore::RenderObject::getPseudoStyle):
63765         * rendering/RenderStyle.cpp:
63766         (WebCore::pseudoBit):
63767         (WebCore::RenderStyle::hasPseudoStyle):
63768         (WebCore::RenderStyle::setHasPseudoStyle):
63769         * rendering/RenderStyle.h:
63770         (WebCore::RenderStyle::):
63772 2007-11-27  Timothy Hatcher  <timothy@apple.com>
63774         Reviewed by Kevin McCullough.
63776         Bug 16161: window.moveBy(0, 0) moves the window by -22px vertically
63777         http://bugs.webkit.org/show_bug.cgi?id=16161
63779         Removed the "Adjust the window rect to be in the coordinate space of
63780         the screen rect" step which was always adding (0,22) to the window
63781         position (on the main screen). Instead, account for screen X and Y
63782         in the bottom and right constrain step.
63784         Added more test cases to: fast/dom/Window/window-resize.html
63786         * bindings/js/kjs_window.cpp:
63787         (KJS::adjustWindowRect):
63789 2007-11-27  Timothy Hatcher  <timothy@apple.com>
63791         Reviewed by Adam Roben.
63793         * page/inspector/inspector.css: Make the text in the Network
63794         panel legend more readable.
63796 2007-11-27  Timothy Hatcher  <timothy@apple.com>
63798         Reviewed by Adam Roben.
63800         Don't call setNeedsReapplyStylesInAllFrames if the
63801         authorAndUserStylesEnabled setting didn't change.
63803         * page/Settings.cpp:
63804         (WebCore::Settings::setAuthorAndUserStylesEnabled):
63806 2007-11-27  Alp Toker  <alp@atoker.com>
63808         Fix potential broken build due to a missing DEPENDPATH.
63810         * WebCore.pro:
63812 2007-11-26  Timothy Hatcher  <timothy@apple.com>
63814         Reviewed by Dave Hyatt.
63816         <rdar://problem/5569233> Add the ability to disable author and user CSS styles
63818         * WebCore.base.exp: Add the Settings::setAuthorAndUserStylesEnabled symbol.
63819         * css/CSSStyleSelector.cpp:
63820         (WebCore::CSSStyleSelector::CSSStyleSelector): Add a new matchAuthorAndUserStyles parameter.
63821         (WebCore::CSSStyleSelector::styleForElement): Check m_matchAuthorAndUserStyles before
63822         matching user and author rules.
63823         (WebCore::CSSStyleSelector::pseudoStyleForElement): Ditto.
63824         (WebCore::CSSStyleSelector::styleRulesForElement): Ditto.
63825         * css/CSSStyleSelector.h: Add m_matchAuthorAndUserStyles and new constructor parameter.
63826         * dom/Document.cpp:
63827         (WebCore::Document::Document): Pass Settings::authorAndUserStylesEnabled to the CSSStyleSelector.
63828         (WebCore::Document::recalcStyleSelector): Skip collecting the author stylesheets if
63829         Settings::authorAndUserStylesEnabled is false, and pass that to the CSSStyleSelector.
63830         * page/Settings.cpp:
63831         (WebCore::Settings::Settings): Initialize m_authorAndUserStylesEnabled to true.
63832         (WebCore::Settings::setAuthorAndUserStylesEnabled): Recalc style in all the frames
63833         when the setting changes.
63834         * page/Settings.h: Add m_authorAndUserStylesEnabled.
63835         (WebCore::Settings::authorAndUserStylesEnabled): Return m_authorAndUserStylesEnabled.
63837 2007-11-27  Alp Toker  <alp@atoker.com>
63839         Reviewed by Mark Rowe.
63841         Based on changes by Mike Emmel.
63843         CURL HTTP backend local file fixes:
63845         Set a MIME type for local files based on the file extension.
63847         Remove any HTTP query part sent to a local file.
63849         * platform/network/curl/ResourceHandleManager.cpp:
63850         (WebCore::ResourceHandleManager::startJob):
63852 2007-11-26  Brady Eidson  <beidson@apple.com>
63854         Reviewed by Mark Rowe
63856         Allow setting the default storage quota per database origin
63858         * WebCore.base.exp:
63860         * page/Settings.cpp:
63861         (WebCore::Settings::setDefaultDatabaseOriginQuota):
63862         (WebCore::Settings::defaultDatabaseOriginQuota):
63863         * page/Settings.h:
63865         * storage/DatabaseTracker.cpp:
63866         (WebCore::DatabaseTracker::DatabaseTracker):
63867         (WebCore::DatabaseTracker::setDefaultOriginQuota):
63868         (WebCore::DatabaseTracker::defaultOriginQuota):
63869         * storage/DatabaseTracker.h:
63871 2007-11-26  Peter Kasting  <zerodpx@gmail.com>
63873         Reviewed by Alp Toker.
63875         http://bugs.webkit.org/show_bug.cgi?id=15974
63876         GIF decoding should respect frames' specified disposal methods.
63878         * platform/image-decoders/ImageDecoder.h:
63879         (WebCore::RGBA32Buffer::):
63880         (WebCore::RGBA32Buffer::RGBA32Buffer):
63881         (WebCore::RGBA32Buffer::disposalMethod):
63882         (WebCore::RGBA32Buffer::setDisposalMethod):
63883         * platform/image-decoders/gif/GIFImageDecoder.cpp:
63884         (WebCore::GIFImageDecoder::frameBufferAtIndex):
63885         (WebCore::GIFImageDecoder::initFrameBuffer):
63886         (WebCore::GIFImageDecoder::prepEmptyFrameBuffer):
63887         (WebCore::GIFImageDecoder::haveDecodedRow):
63888         (WebCore::GIFImageDecoder::frameComplete):
63889         * platform/image-decoders/gif/GIFImageDecoder.h:
63890         * platform/image-decoders/gif/GIFImageReader.cpp:
63891         (GIFImageReader::read):
63892         * platform/image-decoders/gif/GIFImageReader.h:
63893         (GIFFrameReader::GIFFrameReader):
63895 2007-11-26  Adam Roben  <aroben@apple.com>
63897         Add a Color(CGColorRef) constructor
63899         Reviewed by Darin.
63901         * platform/graphics/Color.h:
63902         * platform/graphics/cg/ColorCG.cpp:
63903         (WebCore::Color::Color): Added.
63905 2007-11-26  Adele Peterson  <adele@apple.com>
63907         Reviewed by Darin.
63909         Update to last change.  Moved addPendingSheet call to within nil check for m_cachedSheet.
63911         * page/Frame.cpp:
63912         (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
63914 2007-11-26  Adele Peterson  <adele@apple.com>
63916         Reviewed by Darin.
63918         Fix for <rdar://problem/5591583> CrashTracer: [USER] 157 in Mail crashes at -[WebCoreFrameBridge reapplyStylesForDeviceType:]
63920         * page/Frame.cpp: Add nil checks since every other caller of requestCSSStyleSheet checks for nil.
63921         (WebCore::UserStyleSheetLoader::UserStyleSheetLoader):
63922         (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader):
63924 2007-11-26  Mark Rowe  <mrowe@apple.com>
63926         GCC 4.2 build fix.
63928         * xml/XSLTUnicodeSort.cpp: Add another WTF_ATTRIBUTE_PRINTF.
63930 2007-11-26  Feng Qian <ian.eng.webkit@gmail.com>
63932         Reviewed and touched up by Sam Weinig.
63934         Fix for http://bugs.webkit.org/show_bug.cgi?id=16073
63936         Test: http/tests/security/xss-DENIED-invalid-domain-change.html
63938         * dom/Document.cpp:
63939         (WebCore::Document::setDomain): Don't set the securityOrigin policy unless
63940         the set succeeds.  Adds some early returns as well.
63942 2007-11-26  Steve Falkenburg  <sfalken@apple.com>
63944         Build fix.
63946         * WebCore.vcproj/WebCore.make:
63947         * WebCore.vcproj/migrate-idls.sh:
63949 2007-11-26  Sam Weinig  <sam@webkit.org>
63951         Fix potential null-dereference.
63953         Reviewed by Adam Roben.
63955         * page/FrameTree.cpp:
63956         (WebCore::FrameTree::isDescendantOf):
63958 2007-11-26  Sam Weinig  <sam@webkit.org>
63960         Reviewed by Darin.
63962         Fix for <rdar://problem/5592988>
63963         - Enforce tighter restrictions on what frames in other domains
63964           can be navigated.
63966         Tests: http/tests/security/frameNavigation/xss-ALLOWED-parent-navigation-change.html
63967                http/tests/security/frameNavigation/xss-ALLOWED-targeted-subframe-navigation-change.html
63969         * bindings/js/kjs_window.cpp:
63970         (KJS::Window::put):
63971         (KJS::Location::put):
63972         (KJS::LocationProtoFuncReplace::callAsFunction):
63973         (KJS::LocationProtoFuncAssign::callAsFunction):
63974         * loader/FrameLoader.cpp:
63975         (WebCore::FrameLoader::createWindow):
63976         (WebCore::FrameLoader::load):
63977         (WebCore::FrameLoader::shouldAllowNavigation): Move and update logic from canTarget().
63978         * loader/FrameLoader.h:
63979         * page/FrameTree.cpp:
63980         (WebCore::FrameTree::isDescendantOf): Make this O(1) in the case when both frames are not
63981         in the same page.
63983 2007-11-26  Steve Falkenburg  <sfalken@apple.com>
63985         Build fix.
63987         * WebCore.vcproj/migrate-idls.sh:
63989 2007-11-26  Dan Bernstein  <mitz@apple.com>
63991         Reviewed by Dave Hyatt.
63993         - fix <rdar://problem/5609337> Making a float shorter does not remove it from the floating object list of a nested block it intruded into
63995         Test: fast/dynamic/float-withdrawal-2.html
63997         * rendering/RenderBlock.cpp:
63998         (WebCore::RenderBlock::layoutBlockChildren): When a float may have
63999         been withdrawn from a child, mark all descendants if necessary and not
64000         just the child.
64002 2007-11-26  Steve Falkenburg  <sfalken@apple.com>
64004         Build fix.
64006         * WebCore.vcproj/MigrateIDLAndScripts: Copied from WebCore.vcproj/MigrateIDLAndScripts.make.
64007         * WebCore.vcproj/MigrateIDLAndScripts.make: Removed.
64008         * WebCore.vcproj/migrate-idls.sh:
64010 2007-11-26  Brady Eidson  <beidson@apple.com>
64012         Reviewed by Anders (and typo lovingly found by Adam)
64014         Change Databases to be stored in a per-origin directory hierarchy - this will make
64015         storage quotas much easier to enforce
64017         * platform/SecurityOriginData.cpp:
64018         (WebCore::SecurityOriginData::SecurityOriginData): Parse string based on '_' instead of ':'
64019         (WebCore::SecurityOriginData::stringIdentifier): Change to use '_' as a separator instead of ':'.  
64020           '_' still works due to not being allowed in domain names, but also is a valid filename character '
64021           on all filesystems we care about
64023         * storage/DatabaseTracker.cpp:
64024         (WebCore::DatabaseTracker::fullPathForDatabase): Create a per-origin directory hierarchy to categorize
64025           databases by origin
64027 2007-11-26  Timothy Hatcher  <timothy@apple.com>
64029         Reviewed by Adam Roben.
64031         Bug 16137: Web Inspector window on Leopard should have a unified toolbar and window title
64032         http://bugs.webkit.org/show_bug.cgi?id=16137
64034         On Leopard the toolbar background will be transparent, to allow the
64035         window background to show through the transparent WebView. The 
64036         search results divs needed to move inside the "main" div, so they
64037         would be clipped and not show where the toolbar is.
64039         * page/InspectorController.cpp:
64040         (WebCore::platform): Return a string for which platform we are.
64041         (WebCore::InspectorController::windowScriptObjectAvailable):
64042         Define the platform function on the JavaScript class.
64043         * page/inspector/Panel.js: Add panels to the panels div.
64044         * page/inspector/inspector.css: On the Leopard platform make
64045         the toolbar background transparent so the window background shows.
64046         * page/inspector/inspector.html: Add a panels div and move search
64047         result divs inside the main div.
64048         * page/inspector/inspector.js: Tweak the resize code to acount for
64049         the search results divs moving inside the main div.
64051 2007-11-25  Rodney Dawes  <dobey@wayofthemonkey.com>
64053         Reviewed by Maciej Stachowiak.
64055         Remove the unneeded CFNETWORK #ifdefs.
64057         * loader/NetscapePlugInStreamLoader.h:
64059 2007-11-24  Laszlo Gombos  <laszlo.gombos@gmail.com>
64061         Reviewed by Sam Weinig.
64063         Add printf format attribute to several functions. Use the the new WTF_ATTRIBUTE_PRINTF define.
64065         * dom/XMLTokenizer.cpp:
64066         * dom/XMLTokenizer.h:
64067         * platform/DeprecatedString.h:
64068         * platform/PlatformString.h:
64070 2007-11-25  Dan Bernstein  <mitz@apple.com>
64072         Reviewed by Adam Roben.
64074         - fix off-center error images
64076         Covered by many pixel tests with missing images
64078         * rendering/RenderImage.cpp:
64079         (WebCore::RenderImage::paint): Account for the 1 pixel outline when
64080         positioning the error image.
64082 2007-11-25  Kevin Ollivier  <kevino@theolliviers.com>
64084         wx build fix. Fix filename case for case-sensitive filesystems.
64086         * WebCoreSources.bkl:
64088 2007-11-22  Nikolas Zimmermann  <zimmermann@kde.org>
64090         Reviewed by Adam Roben.
64092         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15564
64094         Fix problems with hidden glyphs. They were taken into account for quite
64095         some operations (hit testing, length calulcations etc..) except painting.
64096         Especially fixes boundaries of <textPath> (see using Web Inspector) if
64097         text-anchor isn't equal to 'start'.
64099         Added testcase:
64100         svg/text/textPathBoundsBug.svg
64102         Fixed testcase: (all showed text selection problems on text paths)
64103         svg/batik/text/textGlyphOrientationHorizontal.svg
64104         svg/batik/text/textOnPath.svg
64105         svg/batik/text/textOnPath3.svg
64106         svg/batik/text/verticalTextOnPath.svg
64107         svg/text/text-align-04-b.svg
64108         svg/W3C-SVG-1.1/text-align-04-b.svg
64110         * rendering/SVGCharacterLayoutInfo.cpp:
64111         (WebCore::SVGChar::isHidden):
64112         * rendering/SVGCharacterLayoutInfo.h:
64113         (WebCore::SVGCharOnPath::SVGCharOnPath):
64114         * rendering/SVGInlineTextBox.cpp:
64115         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
64116         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
64117         * rendering/SVGRootInlineBox.cpp:
64118         (WebCore::topLeftPositionOfCharacterRange):
64119         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
64120         (WebCore::cummulatedWidthOrHeightOfTextChunk):
64121         (WebCore::applyTextAnchorToTextChunk):
64122         (WebCore::applyTextLengthCorrectionToTextChunk):
64123         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
64124         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
64125         (WebCore::SVGRootInlineBox::buildTextChunks):
64127 2007-11-25  Alexey Proskuryakov  <ap@webkit.org>
64129         Reviewed by Maciej.
64131         http://bugs.webkit.org/show_bug.cgi?id=15919
64132         XSLTProcessor.transformToFragment creates an extra not defined TEXT_NODE at the end
64134         Test: fast/xsl/extra-lf-at-end.html
64136         * xml/XSLTProcessor.cpp:
64137         (WebCore::writeToVector): Changed to use Vector to avoid slow String::apend().
64138         (WebCore::saveResultToString): Remove trailing line feed if present.
64140 2007-11-24  Mark Rowe  <mrowe@apple.com>
64142         Reviewed by Tim Hatcher.
64144         Fix <rdar://problem/5432686> 333MB RPRVT seems to leak @ www.43folders.com (1hr plug-in stream).
64145         http://bugs.webkit.org/show_bug.cgi?id=13705
64147         Don't buffer the entire stream contents in memory in the ResourceLoader.
64149         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
64150         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
64151         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
64152         * loader/mac/WebPlugInStreamLoaderDelegate.h:
64154 2007-11-23  Adam Roben  <aroben@apple.com>
64156         Get rid of WebCoreSystemInterface on Windows
64158         The one function defined in that file is now in WebKitSystemInterface.
64160         Reviewed by Tim.
64162         * WebCore.vcproj/WebCore.vcproj: Removed
64163         WebCoreSystemInterface.{cpp,h}.
64164         * platform/graphics/cg/ImageCG.cpp: Made #include of
64165         WebCoreSystemInterface.h Mac-only.
64166         * platform/win/GraphicsContextWin.cpp: Ditto.
64167         * platform/win/WebCoreSystemInterface.cpp: Removed.
64168         * platform/win/WebCoreSystemInterface.h: Removed.
64170 2007-11-24  Adam Roben  <aroben@apple.com>
64172         Replace uses of %@ with %s in the inspector
64174         Rubberstamped by Tim.
64176         * English.lproj/InspectorLocalizedStrings.js: Changed %@ to %s.
64177         * page/inspector/DatabasePanel.js: Ditto.
64178         * page/inspector/StylesSidebarPane.js: Ditto.
64179         * page/inspector/inspector.js: Ditto.
64180         * page/inspector/utilities.js:
64181         (String.vsprintf): Removed @ as a format specifier.
64183 2007-11-24  Adam Roben  <aroben@apple.com>
64185         Windows build fix
64187         Turn off the change made in r27984 on Windows for now.
64189         * xml/XSLTProcessor.cpp:
64190         (WebCore::XSLTProcessor::transformToString):
64191         * xml/XSLTUnicodeSort.cpp:
64193 2007-11-24  Timothy Hatcher  <timothy@apple.com>
64195         Reviewed by Adam Roben.
64197         Bug 16121: Web Inspector needs helper functions that pass a 'this' object to
64198         addEventListener and setTimeout
64199         http://bugs.webkit.org/show_bug.cgi?id=16121
64201         Add Function.prototype.bind. This helper will return a wrapper function
64202         that will call the original function with the supplied arguments
64203         and using the supplied 'this' object.
64205         * page/inspector/Database.js: Remove a use of setTimeout by
64206           inheriting some common functions from Resource.
64207         * page/inspector/DatabasePanel.js: Use the new bind function.
64208         * page/inspector/ConsolePanel.js: Ditto.
64209         * page/inspector/DocumentPanel.js: Ditto.
64210         * page/inspector/NetworkPanel.js: Ditto.
64211         * page/inspector/PropertiesSection.js: Ditto.
64212         * page/inspector/Resource.js: Ditto.
64213         * page/inspector/SidebarPane.js: Ditto.
64214         * page/inspector/inspector.html: Moved Database.js after Resource.js,
64215           now that Database.js uses it.
64216         * page/inspector/inspector.js: Use the new bind function. Also
64217           removed a setTimeout used for the localized strings code. There is
64218           now a load event listener added to the localized strings script
64219           element that will call WebInspector.loaded.
64220         * page/inspector/utilities.js: Add Function.prototype.bind.
64222 2007-11-24  Timothy Hatcher  <timothy@apple.com>
64224         Reviewed by Adam Roben.
64226         Bug 16112: Some Web Inspector UI elements use offsetWidth and offsetHeight before the stylesheet loads
64227         http://bugs.webkit.org/show_bug.cgi?id=16112
64229         In the places where we use offsetWidth and offsetHeight before
64230         the stylesheet loads there is now a check. If the body's
64231         offsetWidth is not greater than zero, then set a timeout
64232         to do the updates requiring the stylesheet later.
64234         The three places this happened:
64235         - DOM tree selection highlight would show up at the wrong height
64236           when using Inspect Element to open the inspector.
64237         - DOM tree breadcrumbs would not collapse when using Inspect Element
64238           to open the inspector.
64239         - Network Timeline divider lines would not show when opening directly
64240           into the timeline.
64242         * page/inspector/DocumentPanel.js: Check if the stylesheet loaded.
64243         * page/inspector/NetworkPanel.js: Ditto.
64244         * page/inspector/inspector.html: Include the stylesheet before
64245           any scripts, this will help get it loaded sooner.
64247 2007-11-24  Kevin Ollivier  <kevino@theolliviers.com>
64249         Add wx implementation for pathGetFilename
64251         Reviewed by David D. Kilzer.
64253         * html/HTMLFormElement.cpp:
64254         (WebCore::pathGetFilename):
64256 2007-11-23  Timothy Hatcher  <timothy@apple.com>
64258         Reviewed by Adam Roben.
64260         Bug 16110: Clicking inside the resource headers in the network timeline collapses them
64261         http://bugs.webkit.org/show_bug.cgi?id=16110
64263         Toggle the resource headers only if the click happens on the
64264         resource row, not within the headers area.
64266         * WebCore.xcodeproj/project.pbxproj:
64267         * page/inspector/NetworkPanel.js:
64269 2007-11-23  Kevin Ollivier  <kevino@theolliviers.com>
64271         Win build fixes. CURL needs winsock, so don't disable it, and
64272         include pthreads.h to get the threadsafe *_r functions.
64274         Reviewed by Adam Roben.
64276         * config.h:
64277         * loader/FTPDirectoryDocument.cpp:
64278         * loader/FTPDirectoryParser.cpp:
64280 2007-11-23  Kevin Ollivier  <kevino@theolliviers.com>
64282         wx build fix. Move wx settings to project build settings,
64283         remove some old settings that were masking a build problem,
64284         and fix include ordering to ensure proper config.h and
64285         unicode/utf8.h headers are used. 
64287         * webcore-base.bkl:
64288         * webcore-wx.bkl:
64290 2007-11-23  Simon Hausmann  <hausmann@webkit.org>
64292         Reviewed by George Staikos <staikos@kde.org>.
64294         Another build fix specific to trunk (instead of the stable branch) to fix make clean (which the buildbots call).
64296         * WebCore.pro:
64298 2007-11-23  Alexey Proskuryakov  <ap@webkit.org>
64300         Not reviewed, trivial leak fix.
64302         Fix xsltUnicodeSortFunction() memory leaks.
64304         * xml/XSLTUnicodeSort.cpp:
64305         (WebCore::xsltUnicodeSortFunction):
64307 2007-11-23  Alexey Proskuryakov  <ap@webkit.org>
64309         Reviewed by Maciej.
64311         <rdar://problem/5539306> REGRESSION: redirect fails when subframe's document is opened but
64312         not closed (affects digg.com)
64314         Tests: fast/loader/meta-refresh-vs-open.html
64315                fast/loader/redirect-with-open-subframe-2.html
64316                fast/loader/redirect-with-open-subframe.html
64317                http/tests/loading/onload-vs-immediate-refresh.pl
64319         * loader/FrameLoader.cpp:
64320         (WebCore::FrameLoader::scheduleRedirection): Only check whether the load is complete for
64321         HTTP redirects - JavaScript-initiated ones are effective immediately.
64323 2007-11-23  Dan Bernstein  <mitz@apple.com>
64325         Reviewed by Alexey Proskuryakov.
64327         - apply matrix transforms on the correct side of the transformation
64328           matrix (not on the side where the vector is multiplied).
64330         Test: fast/transforms/matrix-02.html
64332         * rendering/RenderStyle.h:
64333         (WebCore::MatrixTransformOperation::apply):
64335 2007-11-23  Alexey Proskuryakov  <ap@webkit.org>
64337         Reviewed by Maciej.
64339         http://bugs.webkit.org/show_bug.cgi?id=16077
64340         <rdar://problem/5609785> XSLT processor <xsl:sort> algorithm is incompatible with other
64341         browser implementations
64343         Test: fast/xsl/sort-unicode.xml
64345         * xml/XSLTProcessor.cpp:
64346         (WebCore::XSLTProcessor::transformToString): Set a custom sort function.
64348         * xml/XSLTUnicodeSort.cpp: Added.
64349         (init_xsltTransformError):
64350         (xsltTransformError):
64351         (WebCore::xsltUnicodeSortFunction):
64352         * xml/XSLTUnicodeSort.h: Added.
64353         ICU-based implementation of xsl:sort, using an example from libxslt distribution.
64354         Only minimal coding style fixes to ease synchronization with upstream in the future.
64356         * icu/unicode/ucol.h: Added.
64357         * icu/unicode/uset.h: Added.
64358         Taken from ICU 3.2
64360         * WebCore.pro:
64361         * WebCore.vcproj/WebCore.vcproj:
64362         * WebCore.xcodeproj/project.pbxproj:
64363         * WebCoreSources.bkl:
64364         Added XSLTUnicodeSort.cpp.
64366 2007-11-22  Alexey Proskuryakov  <ap@webkit.org>
64368         Reviewed by Maciej.
64370         http://bugs.webkit.org/show_bug.cgi?id=14977
64371         Hixie's DOM Core performance test shows insert >10x slower than append
64373         Each invocation of Element.childNodes[n] was creating and registering a new ChildNodeList,
64374         which persisted and listened to notifications until GC.
64376         A fix is to avoid registering child node lists for notifications - they don't need them, as
64377         they share a common cache in Node.
64379         * dom/Node.cpp:
64380         (WebCore::Node::registerNodeList):
64381         (WebCore::Node::unregisterNodeList):
64382         (WebCore::Node::notifyLocalNodeListsAttributeChanged):
64383         (WebCore::Node::notifyLocalNodeListsChildrenChanged):
64384         * dom/NodeList.h:
64385         (WebCore::NodeList::needsNotifications):
64387 2007-11-22  Dan Bernstein  <mitz@apple.com>
64389         Reviewed by Antti Koivisto.
64391         - fix http://bugs.webkit.org/show_bug.cgi?id=15811
64392           WebKit plug-ins can re-enter WebKit under attach()
64393           <rdar://problem/5577978>
64395         Defer plug-in loading until after attach and recalcStyle using the
64396         post-attach callback mechanism. Netscape plug-ins are still loaded only
64397         after layout.
64399         * dom/ContainerNode.cpp:
64400         Made NodeCallbackQueue elements retain the Node because callbacks might
64401         delete nodes that are in the callback queue.
64402         (WebCore::ContainerNode::suspendPostAttachCallbacks): Added. Needed to
64403         prevent post-attach callbacks from being dispatched under recalcStyle().
64404         (WebCore::ContainerNode::resumePostAttachCallbacks): Ditto.
64405         (WebCore::ContainerNode::dispatchPostAttachCallbacks): Factored out from
64406         attach().
64407         (WebCore::ContainerNode::attach):
64408         * dom/ContainerNode.h:
64409         * dom/Document.cpp:
64410         (WebCore::Document::recalcStyle): Added calls to
64411         suspendPostAttachCallbacks() and resumePostAttachCallbacks().
64412         * html/HTMLEmbedElement.cpp:
64413         (WebCore::HTMLEmbedElement::HTMLEmbedElement):
64414         (WebCore::HTMLEmbedElement::attach): Changed to queue the widget update
64415         for post-attach.
64416         (WebCore::HTMLEmbedElement::updateWidget): Added. Called by the
64417         post-attach callback.
64418         * html/HTMLEmbedElement.h: Added an m_needWidgetUpdate member needed to
64419         prevent a double update if another plug-in's post-attach updateWidget()
64420         triggers a layout which updates the widget before this plug-in's
64421         post-attach callback is invoked.
64422         (WebCore::HTMLEmbedElement::setNeedWidgetUpdate): Added a setter for
64423         m_needWidgetUpdate.
64424         * html/HTMLObjectElement.cpp:
64425         (WebCore::HTMLObjectElement::attach): Changed to queue the widget update
64426         for post-attach.
64427         (WebCore::HTMLObjectElement::updateWidget): Added. Called by the
64428         post-attach callback.
64429         * html/HTMLObjectElement.h:
64430         (WebCore::HTMLObjectElement::setNeedWidgetUpdate): Added a setter for
64431         m_needWidgetUpdate.
64432         * html/HTMLPlugInElement.cpp:
64433         (WebCore::HTMLPlugInElement::updateWidgetCallback): Added.
64434         * html/HTMLPlugInElement.h:
64435         (WebCore::HTMLPlugInElement::updateWidget):
64436         * rendering/RenderPartObject.cpp:
64437         (WebCore::RenderPartObject::updateWidget): Added calls to
64438         setNeedWidgetUpdate(false) so that if this method is called from
64439         FrameView::layout() during post-attach dispatch of another plug-in,
64440         it will not be called again when this plug-in's post-attach callback
64441         is dispatched.
64442         * rendering/RenderPartObject.h:
64443         (WebCore::RenderPartObject::updateWidget) Renamed argument to match
64444         the method definition.
64446 2007-11-22  Timothy Hatcher  <timothy@apple.com>
64448         Reviewed by Dan Bernstein.
64450         Fix the Element.hasStyleClass and Element.removeStyleClass helpers
64451         to not find and replace substrings, but whole class names at the
64452         beginning or end of the string or surrounded by whitespace.
64454         * page/inspector/utilities.js:
64456 2007-11-22  Timothy Hatcher  <timothy@apple.com>
64458         Revert part of my r27935 change that made the Tip balloons
64459         animate with CSS transitions. The balloon was only opacity 0,
64460         so it would cause its row to highlight when hovering over
64461         another row.
64463         * page/inspector/NetworkPanel.js:
64464         * page/inspector/inspector.css:
64466 2007-11-22  Dan Bernstein  <mitz@apple.com>
64468         Reviewed by Maciej Stachowiak.
64470         - fix http://bugs.webkit.org/show_bug.cgi?id=15943
64471           -webkit-transform matrix does not work
64473         Test: fast/transforms/matrix-01.html
64475         Parse all six matrix entries as numbers.
64477         * css/CSSParser.cpp:
64478         (WebCore::TransformOperationInfo::TransformOperationInfo):
64479         (WebCore::CSSParser::parseTransform):
64480         * css/CSSStyleSelector.cpp:
64481         (WebCore::CSSStyleSelector::applyProperty):
64482         * rendering/RenderStyle.cpp:
64483         (WebCore::MatrixTransformOperation::blend):
64484         * rendering/RenderStyle.h:
64485         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
64486         (WebCore::MatrixTransformOperation::apply):
64488 2007-11-22  Laszlo Gombos  <laszlo.gombos@gmail.com>
64490         Reviewed by Alp Toker.
64492         Fix some compilation warnings.  Do not reference undefined (platform) specific type (WebCore::CachedFont::m_fontData)
64494         * loader/CachedFont.cpp:
64495         (WebCore::CachedFont::~CachedFont):
64496         (WebCore::CachedFont::allReferencesRemoved):
64498 2007-11-22  Alp Toker  <alp@atoker.com>
64500         Reviewed by Mark Rowe.
64502         GTK+ drawing fix.
64504         Add a check to avoid crashing when the GraphicsContext is not
64505         associated with a GdkEventExpose. This was noticed when adding
64506         printing support but might be triggered in other situations too.
64508         * platform/gtk/WidgetGtk.cpp:
64509         (WebCore::Widget::paint):
64511 2007-11-22  Julien Chaffraix  <julien.chaffraix@gmail.com>
64513         Reviewed by Alexey.
64515         Bug 15530: XMLHttpRequest should not support certain methods
64517         Test: http/tests/xmlhttprequest/xmlhttprequest-forbidden-methods-exception.html
64519         * xml/XMLHttpRequest.cpp:
64520         (WebCore::XMLHttpRequest::open):
64522 2007-11-22  Simon Hausmann  <hausmann@kde.org>
64524         Reviewed by George.
64526         For the build inside Qt include qbase.pri and don't duplicate what qbase.pri otherwise does (install targets, etc.)
64528         * WebCore.pro:
64530 2007-11-22  Simon Hausmann  <hausmann@kde.org>
64532         Reviewed by George.
64534         Don't set OBJECTS_DIR when building inside Qt
64536         * WebCore.pro:
64538 2007-11-22  Simon Hausmann  <hausmann@kde.org>
64540         Reviewed by George.
64542         Use ../generated as path for the generated sources for builds inside Qt
64544         * WebCore.pro:
64546 2007-11-22  Simon Hausmann  <hausmann@kde.org>
64548         Reviewed by George.
64550         Make the directory of where to put the generated sources configurable through the GENERATED_SOURCE_DIR variable
64552         * WebCore.pro:
64554 2007-11-22  Simon Hausmann  <hausmann@kde.org>
64556         Reviewed by George.
64558         Centralize the setup for all the extra compilers in a addExtraCompiler function.
64559         
64560         This allows adding a "generated_files" target that builds all generated files using "make generated_files".
64561         For the build inside Qt we do not generate actual rules for the extra compilers but instead
64562         do the variable substitution of compiler.output manually and add the generated sources to SOURCES.
64564         * WebCore.pro:
64566 2007-11-21  Timothy Hatcher  <timothy@apple.com>
64568         Reviewed by Eric Seidel.
64570         Show Fonts as Yellow in the network timeline.
64572         * page/inspector/NetworkPanel.js:
64573         * page/inspector/inspector.css:
64575 2007-11-21  Dan Bernstein  <mitz@apple.com>
64577         Reviewed by Eric Seidel.
64579         - fix <rdar://problem/5607037> REGRESSION (r27351): Departure date does not repaint when changed on Google Maps public transit planner (16034)
64581         Test: fast/repaint/subtree-root-skipped.html
64583         * page/FrameView.cpp:
64584         (WebCore::FrameViewPrivate::FrameViewPrivate): Initialize the layout
64585         root to 0.
64586         (WebCore::FrameView::layoutRoot): Changed to return a RenderObject
64587         instead of a Node.
64588         (WebCore::FrameView::layout): Changed for layout root being a renderer
64589         rather than a DOM node. Also replaced clearing the repaint rects
64590         set with asserting that it is empty if this is the top-level call to
64591         layout(). If it is not, the set may contain rects from enclosing
64592         layout() and those should not be removed.
64593         (WebCore::FrameView::scheduleRelayout): Changed for layout root being
64594         a renderer rather than a DOM node.
64595         (WebCore::isObjectAncestorContainerOf): Added this helper function that
64596         tests whether one object will be marked by calling
64597         markContainingBlocksForLayout() on the other.
64598         (WebCore::FrameView::scheduleRelayoutOfSubtree): Changed for layout
64599         root being a renderer rather than a DOM node. Changed the check if new
64600         and current layout roots are on the same path from the root to use
64601         the subgraph of the render tree defined by container()hood instead of
64602         the DOM tree and parenthood.
64603         * page/FrameView.h:
64604         * rendering/RenderBox.cpp: 
64605         (WebCore::RenderBox::calcWidth): Changed for layout root being a
64606         renderer rather than a DOM node.
64607         * rendering/RenderObject.cpp:
64608         (WebCore::RenderObject::~RenderObject): Added an assertion that the
64609         object being deleted is not currently the layout root.
64610         (WebCore::RenderObject::scheduleRelayout): Changed for layout root being
64611         a renderer rather than a DOM node.
64613 2007-11-21  Mark Rowe  <mrowe@apple.com>
64615         Reviewed by Eric.
64617         Fix WebCore to build without warnings under GCC 4.2.
64619         * Configurations/Base.xcconfig:
64620         * css/CSSRuleList.cpp:
64621         (WebCore::CSSRuleList::deleteRule):
64622         * css/CSSStyleSelector.cpp:
64623         (WebCore::CSSStyleSelector::locateSharedStyle):
64624         * html/HTMLParser.cpp:
64625         (WebCore::HTMLParser::allowNestedRedundantTag):
64626         * rendering/RenderBlock.cpp:
64627         (WebCore::RenderBlock::fillInlineSelectionGaps):
64628         (WebCore::RenderBlock::fillBlockSelectionGaps):
64629         * rendering/RenderLayer.cpp:
64630         (WebCore::RenderLayer::stackingContext):
64631         (WebCore::RenderLayer::enclosingPositionedAncestor):
64632         (WebCore::RenderLayer::transparentAncestor):
64633         * rendering/RenderStyle.cpp:
64634         (WebCore::BackgroundLayer::fillUnsetProperties):
64635         (WebCore::Transition::fillUnsetProperties):
64636         * rendering/RenderText.cpp:
64637         (WebCore::RenderText::containsOnlyWhitespace):
64638         * rendering/bidi.cpp:
64639         (WebCore::RenderBlock::determineStartPosition):
64641 2007-11-21  Alp Toker  <alp@atoker.com>
64643         Reviewed by Mark Rowe.
64645         http://bugs.webkit.org/show_bug.cgi?id=16071
64646         Curl backend handles EINTR incorrectly
64648         Defer timers during select() to avoid interruption by timer signals.
64650         * platform/network/curl/ResourceHandleManager.cpp:
64651         (WebCore::ResourceHandleManager::downloadTimerCallback):
64653 2007-11-21  Mark Rowe  <mrowe@apple.com>
64655         Reviewed by Tim Hatcher.
64657         Changes due to <rdar://problem/5602936> Need to resolve new GCC 4.2 warnings
64659         Update format strings to use format specifiers that match the argument types.
64661         * loader/icon/IconDatabase.cpp:
64662         (WebCore::IconDatabase::performURLImport):
64663         (WebCore::IconDatabase::writeToDatabase):
64664         * platform/mac/TextCodecMac.cpp:
64665         (WebCore::TextCodecMac::decode):
64666         * storage/Database.cpp:
64667         (WebCore::Database::deliverAllPendingCallbacks):
64669 2007-11-21  Xan Lopez  <xan@gnome.org>
64671         Reviewed by Alp Toker.
64673         Clarify scroll event processing with a comment.
64675         * platform/gtk/PlatformScrollBarGtk.cpp:
64676         (gtkScrollEventCallback):
64678 2007-11-21  Timothy Hatcher  <timothy@apple.com>
64680         Reviewed by Adam Roben.
64682         Bug 16085: Web Inspector's Network Timeline graph code clean up and misc. fixes
64683         http://bugs.webkit.org/show_bug.cgi?id=16085
64684         
64685         Changes include:
64686         - Refactor the drawing code as nested functions instead of global functions.
64687         - Compute the segment percentages only once per call to drawSummaryGraph.
64688         - Account for percentages that rounded down to total less-than 100%.
64689         - Draw the pill shadow better using the canvas shadow drawing properties.
64690         - Removes a couple canvas context saves and restores.
64692         * page/inspector/NetworkPanel.js:
64694 2007-11-21  Alexey Proskuryakov  <ap@webkit.org>
64696         Reviewed by Adam Roben.
64698         http://bugs.webkit.org/show_bug.cgi?id=16056
64699         Unicode not being interpreted correctly in Web Inspector source view
64701         Cannot be tested automatically.
64703         * loader/CachedCSSStyleSheet.cpp:
64704         (WebCore::CachedCSSStyleSheet::encoding):
64705         * loader/CachedCSSStyleSheet.h:
64706         * loader/CachedResource.h:
64707         (WebCore::CachedResource::encoding):
64708         * loader/CachedScript.cpp:
64709         (WebCore::CachedScript::encoding):
64710         * loader/CachedScript.h:
64711         * loader/CachedXBLDocument.cpp:
64712         (WebCore::CachedXBLDocument::encoding):
64713         * loader/CachedXBLDocument.h:
64714         * loader/CachedXSLStyleSheet.cpp:
64715         (WebCore::CachedXSLStyleSheet::encoding):
64716         * loader/CachedXSLStyleSheet.h:
64717         Teach textual CachedResources to report their encodings.
64719         * page/InspectorController.cpp:
64720         (WebCore::addSourceToFrame):
64721         (WebCore::updateResourceResponse):
64722         Use the actual encoding - the network layer has little idea about it.
64724 2007-11-20  Mark Rowe  <mrowe@apple.com>
64726         Reviewed by Maciej Stachowiak.
64728         Fix <rdar://problem/5609579> (DOMParser().parseFromString() freezes Safari when parsing large nodes with XML entities)
64729         http://bugs.webkit.org/show_bug.cgi?id=16076
64731         XMLTokenizer was calling CharacterData::appendData twice per entity in the fragment of XML being
64732         parsed (once for text before the entity, once for the entity itself).  This triggered O(n^2) copying
64733         of the CharacterData's string due to resizing.  We now prevent this happening by buffering all the
64734         content for a given Text node in the XMLTokenizer before sending it out to the node in a single go.
64736         * dom/XMLTokenizer.cpp:
64737         (WebCore::XMLTokenizer::characters): Append the characters to the buffer.
64738         (WebCore::XMLTokenizer::endDocument): Ensure the buffer is flushed when the document has ended.
64739         (WebCore::endDocumentHandler):
64740         (WebCore::XMLTokenizer::enterText):
64741         (WebCore::XMLTokenizer::exitText): Append the contents of the buffer to the node.
64742         (WebCore::XMLTokenizer::initializeParserContext): Add the endDocument handler.
64743         (WebCore::parseXMLDocumentFragment): Force endDocument to be called when parsing a fragment to ensure
64744         that the buffer gets flushed to the node.
64745         * dom/XMLTokenizer.h:
64747 2007-11-20  Timothy Hatcher  <timothy@apple.com>
64749         Reviewed by Mark Rowe.
64751         Animate the status area and tip balloons in the Web Inspector
64752         with CSS animations.
64754         * page/inspector/NetworkPanel.js:
64755         * page/inspector/inspector.css:
64756         * page/inspector/inspector.js:
64758 2007-11-20  Kevin Ollivier  <kevino@theolliviers.com>
64760         wx build fix for Windows. Don't use WebCore/move-js-headers.sh as
64761         it indiscriminately copies any headers inside JavaScriptCore,
64762         which includes Tiger ICU headers. 
64764         * webcore-base.bkl:
64765         Remove references to the WebCore/include dir generated by
64766         move-js-headers.sh, and also get headers from JavaScriptCore
64767         directly rather than from WebCore/ForwardingHeaders. 
64769 2007-11-20  Alp Toker  <alp@atoker.com>
64771         Reviewed by Mark Rowe.
64773         Avoid pointlessly mallocing and freeing this transform matrix.
64775         * platform/gtk/FontPlatformDataGtk.cpp:
64776         (WebCore::FontPlatformData::FontPlatformData):
64778 2007-11-20  Naiem Shaik  <naiem.shaik@gmail.com>
64780         Reviewed by Alp Toker.
64782         http://bugs.webkit.org/show_bug.cgi?id=15763
64783         [GTK] Enter key does not take to the link highlighted.
64785         Add missing keycode cases.
64787         * platform/gtk/KeyEventGtk.cpp:
64788         (WebCore::keyIdentifierForGdkKeyCode):
64789         (WebCore::windowsKeyCodeForKeyEvent):
64790         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
64792 2007-11-20  Mark Rowe  <mrowe@apple.com>
64794         Reviewed by Sam Weinig.
64796         Fix http://bugs.webkit.org/show_bug.cgi?id=16074
64797         Bug 16074: execCommand("InsertHorizontalRule", false, "") results in id="" being inserted
64799         For consistency with InsertOrderedList and InsertUnorderedList a value parameter of "" should
64800         not result in an id being set.
64802         * editing/JSEditor.cpp: Don't set the id attribute if value is empty.
64804 2007-11-20  Dan Bernstein  <mitz@apple.com>
64806         Reviewed by Adam Roben.
64808         - fix <rdar://problem/5090708> Textareas render broken-looking scrollbars when too short to show full scrollbar
64810         * platform/win/PlatformScrollBar.h:
64811         * platform/win/PlatformScrollBarSafari.cpp:
64812         Added the "hit inset" constants (representing how far the track eats
64813         into the button).
64814         (WebCore::PlatformScrollbar::paint): Changed to paint the buttons and
64815         the thumb only if they should be showing.
64816         (WebCore::PlatformScrollbar::hasButtons): Added. Returns whether the
64817         arrows should be drawn.
64818         (WebCore::PlatformScrollbar::hasThumb): Added. Returns whether the thumb
64819         should be drawn.
64820         (WebCore::PlatformScrollbar::forwardButtonRect):
64821         (WebCore::PlatformScrollbar::trackRect): Changed to return the entire
64822         bounds of the scrollbar if the scrollbar has no buttons.
64823         (WebCore::PlatformScrollbar::paintTrack): Changed to paint a disabled
64824         track along the entire scrollbar if it has not buttons.
64825         (WebCore::PlatformScrollbar::hitTest): Changed to hit test only the
64826         parts that the scrollbar has in its current dimensions.
64828 2007-11-20  Mark Rowe  <mrowe@apple.com>
64830         Reviewed by Alp Toker.
64832         * config.h: Change #if to #ifdef to silence warnings on non-Apple platforms.
64834 2007-11-20  Simon Hausmann  <hausmann@kde.org>
64836         Reviewed by Adam Treat <treat@kde.org>.
64838         Remove static linkage of QtWebKit against the ICO image format plugin.
64839         Instead build the support for the ICO image format as a proper standalone qt image format plugin and install it.
64841         * WebCore.pro:
64842         * platform/graphics/qt/ImageDecoderQt.cpp:
64844 2007-11-20  David D. Kilzer  <ddkilzer@webkit.org>
64846         no-svg build broken after r27278
64847         <http://bugs.webkit.org/show_bug.cgi?id=16061>
64849         Reviewed by Eric.
64851         * bindings/scripts/CodeGeneratorObjC.pm: Always generate DOMHTMLEmbedElementPrivate.h
64852         and DOMHTMLObjectElementPrivate.h for no-svg build.
64854 2007-11-20  Adam Treat  <treat@kde.org>
64856         Reviewed by Simon.
64858         * Don't use so much heap memory.
64860         * platform/graphics/qt/ImageDecoderQt.cpp:
64861         * platform/graphics/qt/ImageDecoderQt.h:
64862         * platform/graphics/qt/ImageSourceQt.cpp:
64863         (WebCore::ImageSource::createFrameAtIndex):
64865 2007-11-20  Lars Knoll  <lars@trolltech.com>
64867         Reviewed by Simon.
64869         Fix text break interators.
64870         
64871         The break iterators where trying to be smart about the input
64872         string and caching their results. Unfortunately a pointer/string length
64873         comparison is not good enough in all cases (since some input is stack based
64874         temp strings). Removed the caching but at the same time started to use a more
64875         efficient constructor of QTextBoundaryFinder that doesn't need to malloc for
64876         most strings.
64877         
64878         Fixes two test cases that test "text-transform: capitalize".
64880         * platform/qt/TextBreakIteratorQt.cpp:
64881         (WebCore::wordBreakIterator):
64882         (WebCore::characterBreakIterator):
64883         (WebCore::lineBreakIterator):
64884         (WebCore::sentenceBreakIterator):
64886 2007-11-20  Adam Treat  <treat@kde.org>
64888         Reviewed by George.
64890         * Make gif animations work for instance.
64892         * platform/graphics/qt/ImageDecoderQt.cpp:
64893         (WebCore::ImageDecoderQt::reset):
64894         (WebCore::ImageDecoderQt::setData):
64895         (WebCore::ImageDecoderQt::frameCount):
64896         (WebCore::ImageDecoderQt::repetitionCount):
64897         * platform/graphics/qt/ImageDecoderQt.h:
64899 2007-11-20  Adam Treat  <treat@kde.org>
64901         * Build in release mode
64903         * platform/NotImplemented.h:
64905 2007-11-20  Adam Treat  <treat@kde.org>
64907         Reviewed by Simon and George.
64909         * Be quiet and allow suppression of NotImplemented calls at runtime.
64911         * platform/NotImplemented.h:
64913 2007-11-19  Doug Turner  <dougt@meer.net>
64915         Reviewed by Alp Toker.
64917         http://bugs.webkit.org/show_bug.cgi?id=16054
64918         Crash when GlyphPage::fill is called with more than 256 bytes of data
64920         http://bugs.webkit.org/show_bug.cgi?id=14446
64921         [GDK] Crash on http://www.wikipedia.org/
64923         setGlyphDataForIndex() uses a fixed array of size 256 which we can't
64924         exceed. We need to return failure if the buffer has Unicode
64925         supplementary characters for now.
64927         This strategy matches the Win port, which also doesn't support this
64928         case yet.
64930         Add an assertion so nobody makes this mistake again.
64932         * platform/GlyphPageTreeNode.h:
64933         (WebCore::GlyphPage::setGlyphDataForIndex):
64934         * platform/gtk/GlyphPageTreeNodeGtk.cpp:
64935         (WebCore::GlyphPage::fill):
64937 2007-11-19  Doug Turner  <dougt@meer.net>
64939         Reviewed by Timothy Hatcher.
64941         http://bugs.webkit.org/show_bug.cgi?id=16050
64942         sqlite3_prepare16_v2 build bustage.
64944         Using the correct SQLITE_VERSION_NUMBER around sqlite_prepare16_v2
64945         to fix build bustage.
64947         * platform/sql/SQLiteStatement.cpp:
64948         (WebCore::SQLiteStatement::prepare):
64950 2007-11-19  Mark Rowe  <mrowe@apple.com>
64952         Build fix.  Don't over-qualify the constructor name.
64954         * storage/DatabaseDetails.h:
64956 2007-11-19  Brady Eidson <beidson@apple.com>
64958         Reviewed by Maciej
64960         Stub out the WebCore parts of the WebKit API
64962         * WebCore.base.exp:
64963         * WebCore.xcodeproj/project.pbxproj:
64965         * storage/DatabaseDetails.h: Added.  Simple container for vitals on a specific database
64966         (WebCore::DatabaseDetails::DatabaseDetails::DatabaseDetails):
64967         (WebCore::DatabaseDetails::DatabaseDetails):
64968         (WebCore::DatabaseDetails::isValid):
64969         (WebCore::DatabaseDetails::name):
64970         (WebCore::DatabaseDetails::version):
64971         (WebCore::DatabaseDetails::displayName):
64972         (WebCore::DatabaseDetails::expectedUsage):
64973         (WebCore::DatabaseDetails::currentUsage):
64975         * storage/DatabaseTracker.cpp:  Added various methods for API usage
64976         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
64977         (WebCore::DatabaseTracker::usageForOrigin):
64978         (WebCore::DatabaseTracker::quotaForOrigin):
64979         (WebCore::DatabaseTracker::setQuota):
64980         * storage/DatabaseTracker.h:
64982 2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>
64984         wx port build fix.
64986         * platform/graphics/wx/AffineTransformWx.cpp:
64987         (WebCore::AffineTransform::operator== ):
64988         m_transform is only available when using wxGraphicsContext.
64990 2007-11-19  Alp Toker  <alp@atoker.com>
64992         Reviewed by Mark Rowe.
64994         GTK+ drawing fixes.
64996         Add a check to avoid crashing when the GraphicsContext is not
64997         associated with a GdkDrawable. This was noticed when adding printing
64998         support but might be triggered in other situations too.
65000         Do not render themes when painting is disabled. This is an
65001         optimisation for cases where GraphicsContext is used to calculate page
65002         dimensions etc. without actually rendering.
65004         * platform/graphics/cairo/GraphicsContextCairo.cpp:
65005         (WebCore::GraphicsContext::gdkDrawable):
65006         * platform/gtk/RenderThemeGtk.cpp:
65007         (WebCore::paintMozWidget):
65009 2007-11-13  Rahul Abrol  <ra5ul@comcast.net>
65011         Reviewed by Tim Hatcher.
65013         http://bugs.webkit.org/show_bug.cgi?id=15977
65014         Resizing images preference now toggles default image state.
65016         * loader/ImageDocument.cpp:
65017         (WebCore::ImageDocument::ImageDocument):
65018         (WebCore::ImageDocument::createDocumentStructure):
65019         (WebCore::ImageDocument::imageChanged):
65021 2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>
65023         Update wx port build sources with recent changes, update
65024         wx FontPlatformData to be a class (MSVC7 gets confused
65025         otherwise...) and implement its hash() method.
65027         Reviewed by Adam.
65029         * WebCoreSources.bkl:
65030         * platform/wx/FontPlatformData.h:
65031         (WebCore::FontPlatformData::hash):
65033 2007-11-19  Julien Chaffraix  <julien.chaffraix@gmail.com>
65035         Reviewed by Darin.
65037         http://bugs.webkit.org/show_bug.cgi?id=12194
65038         Bug 12194: Trying to access XMLHttpRequest.responseText or responseXML when they 
65039         are not available should raise an exception
65041         Tests: http/tests/xmlhttprequest/xmlhttprequest-responseText-exception.html
65042                http/tests/xmlhttprequest/xmlhttprequest-responseXML-exception.html
65044         * bindings/js/JSXMLHttpRequest.cpp:
65045         (KJS::JSXMLHttpRequest::getValueProperty):
65046         * xml/XMLHttpRequest.cpp:
65047         (WebCore::XMLHttpRequest::getResponseText):
65048         (WebCore::XMLHttpRequest::getResponseXML):
65049         * xml/XMLHttpRequest.h:
65051 2007-11-19  Peter Kasting  <zerodpx@gmail.com>
65053         Reviewed by Darin Adler.
65055         http://bugs.webkit.org/show_bug.cgi?id=15971
65056         The GIF decoder should not fail decoding if the caller asks it to
65057         decode again when no new data has arrived since the last call.
65059         * platform/image-decoders/gif/GIFImageReader.cpp:
65060         (GIFImageReader::read):
65062 2007-11-18  Brady Eidson <beidson@apple.com>
65064         Reviewed by Eric
65066         Fix a crash hashing a default SecurityOriginData object 
65068         * storage/DatabaseTracker.cpp:
65069         (WebCore::SecurityOriginDataHash::hash): The default object has some default strings with NULL
65070           StringImpls - don't try to hash those!
65072 2007-11-18  Timothy Hatcher  <timothy@apple.com>
65074         Reviewed by Sam Weinig.
65076         Bug 16043: Remove InspectorController.log now that console.log works
65077         http://bugs.webkit.org/show_bug.cgi?id=16043
65079         Remove the last uses of InspectorController.log. Once use was no longer needed,
65080         checking an erro case that can't happen anymore. The other case now uses console.error.
65082         * page/InspectorController.cpp: Remove the log function.
65083         (WebCore::InspectorController::windowScriptObjectAvailable): Remove the log function from
65084         InspectorController script class.
65085         * page/inspector/DocumentPanel.js: Remove a use of InspectorController.log that isn't needed.
65086         * page/inspector/Panel.js: Change InspectorController.log to console.log and early return.
65088 2007-11-18  Timothy Hatcher  <timothy@apple.com>
65090         Reviewed by Brady.
65092         Bug 16041: REGRESSION: the Database panel in the Inspector stopped showing errors
65093         http://bugs.webkit.org/show_bug.cgi?id=16041
65095         * page/inspector/DatabasePanel.js: Implement error callbacks to pass to executeSql()
65096           and transaction(). Refactored some code for the success and error callbacks to use.
65098 2007-11-18  Alexey Proskuryakov  <ap@webkit.org>
65100         Reviewed by Maciej.
65102         <rdar://problem/5546393> Whitespace handling doesn't match HTML5.
65104         HTML5 definition is the same as MSIE's, with the exception that the latter strips null
65105         characters. Firefox also treats U+0008 as whitespace, but not U+000B or U+000C.
65107         Test: fast/parser/html-whitespace.html
65109         * html/HTMLTokenizer.cpp:
65110         (WebCore::HTMLTokenizer::parseSpecial):
65111         (WebCore::HTMLTokenizer::parseTag):
65112         Use isASCIISpace, which matches HTML5 definition of whitespace, and also what we use to
65113         check for whitespace almost everywhere.
65115 2007-11-17  Mark Rowe  <mrowe@apple.com>
65117         Reviewed by Darin Adler.
65119         Fix: <rdar://problem/5607032> REGRESSION: testapi exits with assertion failure in debug build
65120              <rdar://problem/5440659> JSGlobalContextCreate throws away globalObjectClass's prototype
65121              http://bugs.webkit.org/show_bug.cgi?id=16033
65123         Update for changes in Interpreter method signatures.
65125         * bindings/js/kjs_binding.cpp:
65126         (KJS::ScriptInterpreter::ScriptInterpreter):
65127         * bindings/js/kjs_window.cpp:
65128         (KJS::Window::clear):
65130 2007-11-17  Timothy Hatcher  <timothy@apple.com>
65132         Reviewed by Mark Rowe.
65134         Bug 13470: i18n: The Web Inspector is not localizable
65135         http://bugs.webkit.org/show_bug.cgi?id=13470
65137         Add support for localization to the Web Inspector. Clients need to
65138         implement localizedStringsURL() to return the URL of the
65139         InspectorLocalizedStrings.js that best matches the user's language.
65141         * English.lproj: Added.
65142         * English.lproj/InspectorLocalizedStrings.js: Added.
65143         * WebCore.xcodeproj/project.pbxproj: Add InspectorLocalizedStrings.js.
65144         * page/InspectorClient.h: Add localizedStringsURL.
65145         * page/InspectorController.cpp: Add localizedStringsURL that calls
65146           the client. Also added a version exposed to JavaScript.
65147         * page/InspectorController.h: Add localizedStringsURL.
65148         * page/inspector/ConsolePanel.js: Call WebInspector.UIString
65149           for user visible strings.
65150         * page/inspector/DatabasePanel.js: Ditto.
65151         * page/inspector/DocumentPanel.js: Ditto.
65152         * page/inspector/ImagePanel.js: Ditto.
65153         * page/inspector/MetricsSidebarPane.js: Ditto.
65154         * page/inspector/NetworkPanel.js: Ditto.
65155         * page/inspector/Panel.js: Ditto.
65156         * page/inspector/PropertiesSidebarPane.js: Ditto.
65157         * page/inspector/Resource.js: Ditto.
65158         * page/inspector/ResourceCategory.js: Ditto.
65159         * page/inspector/SourcePanel.js: Ditto.
65160         * page/inspector/StylesSidebarPane.js: Ditto.
65161         * page/inspector/inspector.css: Use pre-wrap so database errors can use \n.
65162         * page/inspector/inspector.html: Remove some user visible strings.
65163         * page/inspector/inspector.js: Added WebInspector.UIString and call
65164           WebInspector.UIString for user visible strings. Some code needed to be 
65165           moved to WebInspector.loaded to use UIString after the localized strings
65166           get loaded.
65167         * platform/graphics/svg/SVGImageEmptyClients.h:
65168         (WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin): Remove WebCore:: prefix.
65169         (WebCore::SVGEmptyInspectorClient::createPage): Ditto.
65170         (WebCore::SVGEmptyInspectorClient::localizedStringsURL): Add empty stub.
65171         (WebCore::SVGEmptyInspectorClient::highlight): Remove WebCore:: prefix.
65172         (WebCore::SVGEmptyInspectorClient::inspectedURLChanged): Ditto.
65174 2007-11-17  Timothy Hatcher  <timothy@apple.com>
65176         Reviewed by Adam.
65178         Reworte String.sprintf to fix many bad bugs and to not use RegExp. Also added
65179         String.vsprintf so it can be used later for the localization function.
65181         This version only supports argument reordering, precision for floats, and these
65182         format characters: d, f, s and @. Any unsupported format characters are logged
65183         and substituted like strings.
65185         * page/inspector/utilities.js:
65187 2007-11-17  Alexey Proskuryakov  <ap@webkit.org>
65189         Windows build fix.
65191         * editing/Editor.h: Made canSmartCopyOrDelete public, as Windows WebView still needs it.
65193 2007-11-17  Alexey Proskuryakov  <ap@webkit.org>
65195         Reviewed by Darin.
65197         http://bugs.webkit.org/show_bug.cgi?id=15969
65198         Eliminate Editor::deleteRange()
65200         No change in functionality.
65202         * editing/CompositeEditCommand.h: Removed unimplemented deleteKeyPressed().
65204         * editing/Editor.cpp:
65205         (WebCore::Editor::deleteWithDirection):
65206         (WebCore::Editor::cut):
65207         (WebCore::Editor::performDelete):
65208         * editing/Editor.h:
65209         Moved relevant Editor::deleteRange() functionality to its callers.
65210         Removed deleteSelectionWithSmartDelete(void), which was more confusing than helpful
65211         in my opinion.
65213         * editing/mac/EditorMac.mm:
65214         (WebCore::initializeKillRingIfNeeded):
65215         (WebCore::Editor::addToKillRing):
65216         (WebCore::Editor::yank):
65217         (WebCore::Editor::yankAndSelect):
65218         (WebCore::Editor::setMark):
65219         (WebCore::unionDOMRanges):
65220         (WebCore::Editor::deleteToMark):
65221         (WebCore::Editor::selectToMark):
65222         (WebCore::Editor::swapWithMark):
65223         Pushed kill ring handling down from WebCore.
65225         * page/mac/WebCoreFrameBridge.h:
65226         * page/mac/WebCoreFrameBridge.mm:
65227         Removed setMarkDOMRange (the corresponding getter is still needed).
65229         * WebCore.base.exp: No longer need to export Editor::deleteRange() and Editor::insertTextWithoutSendingTextEvent().
65230         Export the new kill ring functions.
65232 2007-11-16  Ryan Leavengood  <leavengood@gmail.com>
65234         Reviewed by David Kilzer.
65236         Build fix: the needed headers for POSIX file functions were not
65237         included.
65239         * platform/posix/FileSystemPOSIX.cpp:
65241 2007-11-16  Dan Bernstein  <mitz@apple.com>
65243         Reviewed by Darin Adler.
65245         - fix the common case of <http://bugs.webkit.org/show_bug.cgi?id=15994>
65246           REGRESSION: Incomplete repaint of CSS image substitution
65248         Test: fast/repaint/clip-with-layout-delta.html
65250         * rendering/LayoutState.cpp:
65251         (WebCore::LayoutState::LayoutState): Account for layout delta when
65252         pushing additional clip.
65254 2007-11-16  Antti Koivisto  <antti@apple.com>
65256         Reviewed by Adele.
65257         
65258         Seeking related fixes, updates to match the latest specification
65259         - rename loopCount of HTMLMediaElement to playCount
65260         - add explicit seeking attribute to HTMLMediaElement to get semantics right
65261         - implement the specification behavior that currentTime must immediately return seeked position in HTMLMediaElement 
65262           instead of MoviePrivateQTKit 
65263         - fix broken behavior when seeking past end of the media, add tests
65264         - replace Movie didEnd callback with broader timeChanged callback (which gets called in didEnd case too)
65265         - use setDelayCallbacks: in various MoviePrivateQTKit methods to avoid bug prone synchronous callbacks from QT, make
65266           HTMLMediaElement not depend on synchronous callbacks
65267         - do some cleanups and simplifications in MoviePrivateQTKit, get rid of m_rateBeforeSeek and m_blockStateUpdate variables
65269         Tests: http/tests/media/video-seekable-stall.html
65270                media/video-seeking.html
65271                media/video-seek-past-end-paused.html
65272                media/video-seek-past-end-playing.html
65274         * html/HTMLAttributeNames.in: 
65275         * html/HTMLMediaElement.cpp:
65276         (WebCore::HTMLMediaElement::HTMLMediaElement):
65277         (WebCore::HTMLMediaElement::load):
65278         (WebCore::HTMLMediaElement::movieNetworkStateChanged):
65279         (WebCore::HTMLMediaElement::setReadyState):
65280         (WebCore::HTMLMediaElement::seek):
65281         (WebCore::HTMLMediaElement::seeking):
65282         (WebCore::HTMLMediaElement::currentTime):
65283         (WebCore::HTMLMediaElement::ended):
65284         (WebCore::HTMLMediaElement::play):
65285         (WebCore::HTMLMediaElement::pause):
65286         (WebCore::HTMLMediaElement::playCount):
65287         (WebCore::HTMLMediaElement::setPlayCount):
65288         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
65289         (WebCore::HTMLMediaElement::movieTimeChanged):
65290         (WebCore::HTMLMediaElement::endedPlayback):
65291         (WebCore::HTMLMediaElement::updateMovie):
65292         * html/HTMLMediaElement.h:
65293         * html/HTMLMediaElement.idl:
65294         * platform/graphics/Movie.cpp:
65295         (WebCore::Movie::timeChanged):
65296         * platform/graphics/Movie.h:
65297         (WebCore::MovieClient::movieTimeChanged):
65298         * platform/graphics/mac/MoviePrivateQTKit.h:
65299         * platform/graphics/mac/MoviePrivateQTKit.mm:
65300         (WebCore::MoviePrivate::MoviePrivate):
65301         (WebCore::MoviePrivate::load):
65302         (WebCore::MoviePrivate::play):
65303         (WebCore::MoviePrivate::pause):
65304         (WebCore::MoviePrivate::currentTime):
65305         (WebCore::MoviePrivate::seek):
65306         (WebCore::MoviePrivate::doSeek):
65307         (WebCore::MoviePrivate::cancelSeek):
65308         (WebCore::MoviePrivate::seekTimerFired):
65309         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
65310         (WebCore::MoviePrivate::paused):
65311         (WebCore::MoviePrivate::updateStates):
65312         (WebCore::MoviePrivate::timeChanged):
65313         (WebCore::MoviePrivate::didEnd):
65315 2007-11-16  Anders Carlsson  <andersca@apple.com>
65317         Reviewed by Adam.
65319         <rdar://problem/5603832>
65320         XMLHttpRequest readyState 3 & responseText buffer issues.
65322         * platform/network/cf/ResourceHandleCFNet.cpp:
65323         (WebCore::makeFinalRequest):
65324         Add new parameter which controls whether content sniffing should be turned off.
65325         
65326         (WebCore::ResourceHandle::loadResourceSynchronously):
65327         Always content sniff sync loads.
65328         
65329         * platform/network/cf/ResourceRequestCFNet.cpp:
65330         (WebCore::ResourceRequest::doUpdatePlatformRequest):
65331         If the ResourceRequest already has a backing CFURLRequest, make a copy of it. This preserves
65332         any properties set on the CFURLRequest.
65334 2007-11-16  Jon Honeycutt  <jhoneycutt@apple.com>
65336         Reviewed by Ollie.
65338         <rdar://problem/5605175> Crash closing or leaving window with ViewPoint 
65339         Media player plugin
65341         ViewPoint plugin requires that we pass a valid NPSavedData* to
65342         NPP_Destroy.
65344         * plugins/win/PluginViewWin.cpp: Pass a valid NPSavedData* to
65345         NPP_Destroy. If the plugin allocates data, discard it
65347 2007-11-16  Mark Rowe  <mrowe@apple.com>
65349         Reviewed by Tim Hatcher.
65351         Build WebCore as a sub-framework of WebKit in all configurations.
65353         * Configurations/WebCore.xcconfig:
65354         * WebCore.xcodeproj/project.pbxproj:
65356 2007-11-16  Doug Turner  <dougt@meer.net>
65358         Reviewed by Alp.
65360         http://bugs.webkit.org/show_bug.cgi?id=16018
65361         build bustage when building on debian 4.0
65363         Fix build bustage on GTK+ with older versions of Pango.
65365         Don't cache the return value since the docs say it can change.
65367         * platform/gtk/Language.cpp:
65368         (WebCore::defaultLanguage):
65370 2007-11-16  Brady Eidson  <beidson@apple.com>
65372         Build fix
65374         * platform/SecurityOriginData.h:
65375         (WebCore::operator!=): Whoops!
65377 2007-11-16  Brady Eidson  <beidson@apple.com>
65379         Reviewed by Sam
65381         Further purify DatabaseTracker to use SecurityOriginData instead of "a String"
65383         * WebCore.base.exp:
65384         * WebCore.xcodeproj/project.pbxproj:
65385         * WebCore.vcproj/WebCore.vcproj
65386         * WebCore.pro
65388         * platform/SecurityOriginData.cpp: Added.
65389         (WebCore::SecurityOriginData::SecurityOriginData): Add a constructor that takes a "stringIdentifier"-style string,
65390           since that form is what will be stored in the Databases.db on disk
65391         (WebCore::SecurityOriginData::stringIdentifier):
65392         * platform/SecurityOriginData.h:
65393         (WebCore::SecurityOriginData::protocol):
65394         (WebCore::SecurityOriginData::host):
65395         (WebCore::SecurityOriginData::port):
65397         * storage/DatabaseTracker.cpp:
65398         (WebCore::SecurityOriginDataHash::hash): Follow the pattern Darin set in FontCache.cpp to make a decent hash for 
65399           a SecurityOriginData object
65400         (WebCore::SecurityOriginDataHash::equal):
65401         (WebCore::SecurityOriginDataTraits::deletedValue): "file::1" will never exist in normal operation
65402         (WebCore::SecurityOriginDataTraits::emptyValue): "file::2" will never exist in normal operation
65403         (WebCore::DatabaseTracker::fullPathForDatabase):
65404         (WebCore::DatabaseTracker::populateOrigins):
65405         (WebCore::DatabaseTracker::origins):
65406         (WebCore::DatabaseTracker::addDatabase):
65407         * storage/DatabaseTracker.h:
65409 2007-11-16  Alexey Proskuryakov  <ap@webkit.org>
65411         Windows build fix.
65413         * WebCore.vcproj/WebCore.vcproj: Removed VoidCallback.cpp, added JSCustomVoidCallback.{h,cpp}.
65415 2007-11-16  Nikolas Zimmermann  <zimmermann@kde.org>
65417         Reviewed by Eric.
65419         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12290
65421         Implement all SVGTextContentElement DOM methods.
65422         This is the last missing SVG text feature. SVG fonts is next.
65424         Added testcase: svg/custom/text-dom-01-f.svg (tests all new methods)
65426         * ksvg2/svg/SVGTextContentElement.cpp:
65427         (WebCore::cummulatedCharacterRangeLength):
65428         (WebCore::SVGInlineTextBoxQueryWalker::):
65429         (WebCore::SVGInlineTextBoxQueryWalker::SVGInlineTextBoxQueryWalker):
65430         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
65431         (WebCore::SVGInlineTextBoxQueryWalker::setQueryInputParameters):
65432         (WebCore::SVGInlineTextBoxQueryWalker::longResult):
65433         (WebCore::SVGInlineTextBoxQueryWalker::floatResult):
65434         (WebCore::SVGInlineTextBoxQueryWalker::pointResult):
65435         (WebCore::SVGInlineTextBoxQueryWalker::rectResult):
65436         (WebCore::SVGInlineTextBoxQueryWalker::stopProcessing):
65437         (WebCore::findInlineTextBoxInTextChunks):
65438         (WebCore::rootInlineBoxForTextContentElement):
65439         (WebCore::executeTextQuery):
65440         (WebCore::SVGTextContentElement::getNumberOfChars):
65441         (WebCore::SVGTextContentElement::getComputedTextLength):
65442         (WebCore::SVGTextContentElement::getSubStringLength):
65443         (WebCore::SVGTextContentElement::getStartPositionOfChar):
65444         (WebCore::SVGTextContentElement::getEndPositionOfChar):
65445         (WebCore::SVGTextContentElement::getExtentOfChar):
65446         (WebCore::SVGTextContentElement::getRotationOfChar):
65447         (WebCore::SVGTextContentElement::getCharNumAtPosition):
65448         (WebCore::SVGTextContentElement::selectSubString):
65449         * ksvg2/svg/SVGTextContentElement.h:
65450         * rendering/SVGInlineTextBox.h:
65452 2007-11-15  Adele Peterson  <adele@apple.com>
65454         Reviewed by Oliver.
65456         Fix for <rdar://problem/5566652> CrashTracer: [USER] 3 crashes in Safari at HTMLSelectElement::menuListDefaultEventHandler (reproducible on mactc30.com)
65458         Test: fast/forms/menulist-no-renderer-onmousedown.html
65460         * html/HTMLSelectElement.cpp:
65461         (WebCore::HTMLSelectElement::defaultEventHandler): Nil check the renderer here.  None of the default behavior makes sense if there's no renderer.
65462         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Moved the nil check to the main defaultEventHandler.
65464 2007-11-15  Antti Koivisto  <antti@apple.com>
65466         Reviewed by Adele.
65468         Fix <rdar://problem/5601598>
65469         The movie tag should do initialization on need and not during startup.
65470         
65471         Initialize Movie MIME type hash on demand
65473         * platform/MIMETypeRegistry.cpp:
65474         (WebCore::initialiseSupportedMovieMIMETypes):
65475         (WebCore::initialiseMIMETypeRegistry):
65476         (WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
65477         (WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
65479 2007-11-15  Mark Rowe  <mrowe@apple.com>
65481         Build fix for Qt on Windows.
65483         * xml/XPathStep.cpp:
65484         (WebCore::XPath::Step::nodesInAxis):
65486 2007-11-15  Timothy Hatcher  <timothy@apple.com>
65488         Reviewed by Mark Rowe.
65490         Bug 14761: Web Inspector leaks JS objects and DOM nodes
65491         http://bugs.webkit.org/show_bug.cgi?id=14761
65493         * page/InspectorController.cpp:
65494         (WebCore::InspectorController::~InspectorController):
65495         Change the tear down order so that inspectorDestroyed() is called before
65496         InspectorController private data is set to Zero. The inspectorDestroyed()
65497         call ends up closing the WebView and triggering InspectorController::close()
65498         which unprotects m_scriptObject. This didn't happen when the private data
65499         was cleared before calling inspectorDestroyed().
65501 2007-11-15  Mark Rowe  <mrowe@apple.com>
65503         Gtk build fix.
65505         * WebCore.pro:
65507 2007-11-15  Alexey Proskuryakov  <ap@webkit.org>
65509         Reviewed by Darin.
65511         http://bugs.webkit.org/show_bug.cgi?id=15989
65512         XPath queries with predicates incorrectly retains the current node across unions
65514         Test: fast/xpath/union-context-node.xhtml
65516         * xml/XPathPath.cpp:
65517         (WebCore::XPath::LocationPath::evaluate): Restore context after evaluation.
65518         * xml/XPathStep.cpp:
65519         (WebCore::XPath::Step::evaluate): Do not backup context, as we can easily re-create it.
65521 2007-11-15  Alexey Proskuryakov  <ap@webkit.org>
65523         Reviewed by Darin.
65525         http://bugs.webkit.org/show_bug.cgi?id=15988
65526         REGRESSION: XPath preceding-axis query misses nested elements
65528         Test: fast/xpath/preceding-axis.xhtml
65530         * xml/XPathStep.cpp:
65531         (WebCore::XPath::Step::nodesInAxis): Hopefully correct this time.
65533 2007-11-15  Timothy Hatcher  <timothy@apple.com>
65535         Reviewed by Mark Rowe and Sam.
65537         This corrects a couple of issues in the Web Inspector where selected search results
65538         would not have the right text color when the window is inactive or the results are focused.
65540         * page/inspector/inspector.css:
65542 2007-11-15  Timothy Hatcher  <timothy@apple.com>
65544         Reviewed by Sam.
65546         Bug 16007: REGRESSION: Disclosure triangle click zone for resource categories is off by 10 pixels
65547         http://bugs.webkit.org/show_bug.cgi?id=16007
65549         Makes the click width an option on TreeElement and make ResourceCategoryTreeElement
65550         a true subclass of TreeElement. The click width for ResourceCategoryTreeElement is 
65551         20 pixels, and the default is 10 pixels.
65553         * page/inspector/ResourceCategory.js:
65554         * page/inspector/treeoutline.js:
65556 2007-11-15  Anders Carlsson  <andersca@apple.com>
65558         Reviewed by Brady.
65560         Pass a VoidCallback to Database::transaction and Database::changeVersion.
65561         This is not yet hooked up to the database machinery.
65562         
65563         * WebCore.vcproj/WebCore.vcproj:
65564         * bindings/js/JSDatabaseCustom.cpp:
65565         (WebCore::JSDatabase::changeVersion):
65566         (WebCore::JSDatabase::transaction):
65567         * storage/Database.cpp:
65568         (WebCore::Database::changeVersion):
65569         (WebCore::Database::transaction):
65570         * storage/Database.h:
65572 2007-11-15  Timothy Hatcher  <timothy@apple.com>
65574         Reviewed by Adam.
65576         Bug 16005: Hovering in the breadcrumbs causes jumpy behavior
65577         http://bugs.webkit.org/show_bug.cgi?id=16005
65579         Hovering over cumbs no longer exposes new crumbs. Clicking on a collapsed
65580         crumb will expose as many hidden crumbs as possible to the user. Also crumbs
65581         that have ID attributes will compact to the ID over the tag name.
65583         * page/inspector/DocumentPanel.js:
65585 2007-11-15  Anders Carlsson  <andersca@apple.com>
65587         Reviewed by Sam.
65589         Make the VoidCallback DOM interface behave more like our other DOM interfaces.
65590         
65591         * bindings/js/JSCustomVoidCallback.h: Added.
65592         * bindings/js/JSCustomVoidCallback.cpp: Added.
65593         (WebCore::JSCustomVoidCallback::JSCustomVoidCallback):
65594         (WebCore::JSCustomVoidCallback::handleEvent):
65595         VoidCallback implementation that wraps a JS object.
65596         
65597         (WebCore::toVoidCallback):
65598         New method that creates a VoidCallback implementation given a JS object.
65599         
65600         * bindings/scripts/CodeGeneratorJS.pm:
65601         Specify that VoidCallback can fail conversion and add a custom conversion function.
65602         
65603         * html/HTMLMediaElement.cpp:
65604         (WebCore::HTMLMediaElement::movieCuePointReached):
65605         Call handleEvent on the callback.
65606         
65607         (WebCore::HTMLMediaElement::removeCuePoint):
65608         Comment out parts of this method, it has already been removed in the HTML5 spec and it relies
65609         on overriding VoidCallback equality.
65610         
65611         * html/VoidCallback.cpp: Removed.
65612         
65613         * html/VoidCallback.h:
65614         (WebCore::VoidCallback::VoidCallback):
65615         (WebCore::VoidCallback::~VoidCallback):
65616         Make this an abstract class with a pure virtual handleEvent method.
65617         
65618 2007-11-15  Adam Roben  <aroben@apple.com>
65620         Fix <rdar://5485108> Type-select while a <select> menu is open doesn't work
65622         There were two things broken here:
65623            - WebView now requires a WM_CHAR message to be sent before it will
65624              create a keyboard event with a charCode, but we were only sending
65625              a WM_KEYDOWN event.
65626            - The popup menu was not updating its focused index when the
65627              <select> element's selectedIndex changed.
65629         Reviewed by Adele.
65631         * platform/win/PopupMenuWin.cpp:
65632         (WebCore::PopupMenu::updateFromElement): Update the focused index from
65633         the client's selected index.
65634         (WebCore::PopupWndProc): When we receive a WM_CHAR message for a
65635         printable character, manufacture a WM_KEYDOWN message for it and post
65636         both that and the current WM_CHAR message to the WebView.
65638 2007-11-15  Brady Eidson  <beidson@apple.com>
65640         Build fix
65642         * storage/DatabaseTracker.cpp:
65643         (WebCore::DatabaseTracker::fullPathForDatabase):
65644         (WebCore::DatabaseTracker::databaseNamesForOrigin):
65646 2007-11-15  Brady Eidson  <beidson@apple.com>
65648         Reviewed by John and Sam
65650         Stubbing out everything required for a WebKit API for databases
65652         Biggest change in WebCore is that we passed around SecurityOriginData as the representation
65653         of a SecurityOrigin, instead of a String or a SecurityOrigin itself (which is an opaque object
65654         that has a different purpose besides just hanging on to the data)
65656         * WebCore.base.exp:
65657         * WebCore.xcodeproj/project.pbxproj:
65659         * platform/SecurityOrigin.cpp:
65660         * platform/SecurityOrigin.h:
65661         * platform/SecurityOriginData.h: Added.  Simple object to encapsulate the 3
65662           pieces of data in the SecurityOrigin tuple
65663         (WebCore::SecurityOriginData::SecurityOriginData):
65664         (WebCore::SecurityOriginData::protocol):
65665         (WebCore::SecurityOriginData::host):
65666         (WebCore::SecurityOriginData::port):
65667         (WebCore::SecurityOriginData::toString): Simple concatenation of the 3 components,
65668           colon separated
65670         * storage/Database.cpp:
65671         (WebCore::Database::Database): Use SecurityOriginData instead
65673         * storage/DatabaseTracker.cpp:
65674         (WebCore::DatabaseTracker::fullPathForDatabase):
65675         (WebCore::DatabaseTracker::databaseNamesForOrigin):
65676         (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
65677         (WebCore::DatabaseTracker::deleteDatabase):
65678         * storage/DatabaseTracker.h:
65680         * storage/DatabaseTrackerClient.h: Added.  For dispatching notifications up to WebKit
65681         (WebCore::DatabaseTrackerClient::~DatabaseTrackerClient):2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>
65683 2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>
65685         Reviewed by Anders.
65687         NP_ASFILEONLY streams should not buffer data in m_deliveryData.
65689         * plugins/win/PluginStreamWin.cpp:
65690         (WebCore::PluginStreamWin::didReceiveData):
65692 2007-11-15  Justin Garcia  <justin.garcia@apple.com>
65694         Reviewed by Adele Peterson.
65696         <rdar://problem/5497643> Crash at Node::isDescendantOf when switching out of Edit HTML Source mode
65697         
65698         A textarea that contained the selection was removed but the selection wasn't cleared,
65699         and we'd crash in code that assumed a valid, in-document selection.
65701         * editing/SelectionController.cpp:
65702         (WebCore::removingNodeRemovesPosition): Clear the selection if the node being removed is the
65703         shadowAncestorNode of the node that contains the position, not just if the node being removed
65704         contains that shadowAncestorNode.
65706 2007-11-15  Nikolas Zimmermann  <zimmermann@kde.org>
65708         Reviewed by Maciej.
65710         Fix logic error: calculateGlyphBoundaries takes RTL text into account itself, no need to adjust offsets before.
65712         * rendering/SVGInlineTextBox.cpp:
65713         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
65714         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
65716 2007-11-15  Anders Carlsson  <andersca@apple.com>
65718         Reviewed by Brady.
65720         <rdar://problem/5562470>
65721         openDatabase does not work when the version string is empty
65723         If the string is empty, pass a real empty string to sqlite3_bind_text16.
65724         
65725         * platform/sql/SQLiteStatement.cpp:
65726         (WebCore::SQLiteStatement::bindText):
65728 2007-11-15  Anders Carlsson  <andersca@apple.com>
65730         Reviewed by Brady.
65732         Get rid of SQLiteStatement::bindText and rename bindText16 to bindText.
65733         Remove the copy parameter from bindText and bindBlob and always copy passed in data instead.
65735         * loader/icon/IconDatabase.cpp:
65736         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
65737         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
65738         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
65739         (WebCore::IconDatabase::addIconURLToSQLDatabase):
65740         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
65741         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
65742         * platform/sql/SQLiteStatement.cpp:
65743         (WebCore::SQLiteStatement::prepare):
65744         * platform/sql/SQLiteStatement.h:
65745         * storage/Database.cpp:
65746         (WebCore::setTextValueInDatabase):
65747         * storage/DatabaseTracker.cpp:
65748         (WebCore::DatabaseTracker::fullPathForDatabase):
65749         (WebCore::DatabaseTracker::databaseNamesForOrigin):
65750         (WebCore::DatabaseTracker::addDatabase):
65752 2007-11-14  Brady Eidson <beidson@apple.com>
65754         Rubberstamped by Sam
65756         * platform/SecurityOrigin.h: Lets make this an unsigned short and *not* rule out half the possible ports?
65758 2007-11-14  Alexey Proskuryakov  <ap@webkit.org>
65760         Reviewed by Justin Garcia.
65762         http://bugs.webkit.org/show_bug.cgi?id=15781
65763         REGRESSION: Ligatures fail to form when typing in Devanagari (because WebKit can't handle
65764         a marked range that covers half of a composed character sequence)
65766         Test: platform/mac/editing/input/devanagari-ligature.html
65768         This fix is somewhat of a hack, as it asks editing commands to work with invalid selections.
65769         However, this is not entirely new for them, as Roman accents are typed in a similar manner.
65771         In the future, we probably want to make commands work with ranges (or Positions explicitly).
65773         * editing/Editor.cpp:
65774         (WebCore::Editor::selectComposition): Force selection to composition range.
65775         * editing/InsertTextCommand.cpp:
65776         (WebCore::InsertTextCommand::input): Force ending selection to inserted text range.
65778 2007-11-14  Beth Dakin  <bdakin@apple.com>
65780         Reviewed by Hyatt.
65782         Fix for <rdar://problem/5540855> REGRESSION: Combination of client-
65783         side image map and <a> tag is not working properly (15522)
65785         * html/HTMLMapElement.cpp:
65786         (WebCore::HTMLMapElement::checkDTD): Allow <map> to have both block 
65787         and inline children rather than just block children. This matches 
65788         Firefox. 
65790 2007-11-14  Justin Garcia  <justin.garcia@apple.com>
65792         Reviewed by Alexey Proskuryakov.
65794         <rdar://problem/5546763> CrashTracer: [USER] 362 crashes at WebCore::DeleteSelectionCommand::mergeParagraphs
65796         * editing/DeleteSelectionCommand.cpp:
65797         (WebCore::DeleteSelectionCommand::handleGeneralDelete): 
65798         Removed an irrelevant FIXME.
65799         (WebCore::DeleteSelectionCommand::mergeParagraphs): If the block that contained the end of the selection
65800         hasn't been removed but has been emptied by deletion, we would to try and fail to create a VisiblePosition
65801         inside that block, which could lead to a crash.  If that happens, there's no content in the block to move,
65802         so just remove the block and return.
65803         Preserve m_needPlaceholder during the call to moveParagraphs, since it may change it and since it does
65804         its own placeholder insertion when necessary.
65805         (WebCore::DeleteSelectionCommand::doApply): No need to check m_needPlaceholder before calling mergeParagraphs,
65806         because it handles preserving m_needPlaceholder when it calls moveParagraphs.
65807         
65808 2007-11-14  Timothy Hatcher  <timothy@apple.com>
65810         Reviewed by Adam.
65812         Bug 14380: Long DOM ancestry breadcrumb lists get cut off
65813         http://bugs.webkit.org/show_bug.cgi?id=14380
65815         The breadcumbs will now be compacted and collapsed if there isn't enough room
65816         to show everything. The collapsing algorithm always affects the crumbs that
65817         are farthest away from the selected or hovered crumb first.
65819         * page/inspector/DocumentPanel.js:
65820         * page/inspector/inspector.css:
65822 2007-11-14  Anders Carlsson  <andersca@apple.com>
65824         Use the correct include path.
65825         
65826         * platform/Cursor.h:
65827         * plugins/win/PluginPackageWin.h:
65828         * plugins/win/PluginStreamWin.h:
65830 2007-11-13  Brady Eidson  <beidson@apple.com>
65832         Reviewed by Adam
65834         http://bugs.webkit.org/show_bug.cgi?id=15976 - ASSERT/crash when SQLTransactionCallback throws an exception
65836         * storage/SQLTransaction.cpp:
65837         (WebCore::SQLTransaction::deliverTransactionCallback): Make a transaction error for the case where the 
65838           SQLTransactionCallback fails
65839         (WebCore::SQLTransaction::deliverTransactionErrorCallback): Don't assert on the error callback, but null check it
65840           and make the commit/rollback decision accordingly
65842 2007-11-13  Oliver Hunt  <oliver@apple.com>
65844         Reviewed by Anders.
65846         <rdar://problem/5365030> calling dataWithPDFInsideRect on an SVG with a gradient crashes (14780)
65848         When drawing directly to PDF CG may delay the use of the gradient function until outside our
65849         standard drawing path, which in turn could let us invalidate the caches before they were used.
65851         To work around this we now store the cached stops in a RefCounted object, so that we can ensure
65852         that cache exists as long as required.
65853         
65854         * platform/graphics/svg/SVGPaintServerGradient.cpp:
65855         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
65856         * platform/graphics/svg/SVGPaintServerGradient.h:
65857         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
65858         (WebCore::cgGradientCallback):
65859         (WebCore::CGShadingRefForLinearGradient):
65860         (WebCore::CGShadingRefForRadialGradient):
65861         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
65863 2007-11-13  Anders Carlsson  <andersca@apple.com>
65865         Fix Windows build.
65866         
65867         * platform/Cursor.h:
65868         * plugins/win/PluginPackageWin.h:
65869         * plugins/win/PluginStreamWin.h:
65871 2007-11-13  Geoffrey Garen  <ggaren@apple.com>
65873         Reviewed by Anders Carlsson.
65875         Renamed Shared to RefCounted.
65877         * ForwardingHeaders/wtf/RefCounted.h: Copied from WebCore/ForwardingHeaders/wtf/Shared.h.
65878         * ForwardingHeaders/wtf/Shared.h: Removed.
65879         * bindings/js/JSSVGPODTypeWrapper.h:
65880         * css/CSSFontFace.h:
65881         * css/CSSRuleList.h:
65882         * css/Counter.h:
65883         * css/Pair.h:
65884         * css/Rect.h:
65885         * css/StyleBase.h:
65886         * css/StyleSheetList.h:
65887         * dom/Attribute.h:
65888         * dom/Clipboard.h:
65889         * dom/DOMImplementation.h:
65890         * dom/Event.h:
65891         * dom/EventListener.h:
65892         * dom/NamedNodeMap.h:
65893         * dom/NodeFilter.h:
65894         * dom/NodeFilterCondition.h:
65895         * dom/NodeList.h:
65896         * dom/QualifiedName.h:
65897         * dom/Range.h:
65898         * dom/RangeException.h:
65899         * dom/RegisteredEventListener.h:
65900         * dom/Traversal.h:
65901         * editing/EditCommand.h:
65902         * history/BackForwardList.h:
65903         * history/CachedPage.h:
65904         * history/HistoryItem.cpp:
65905         (WebCore::HistoryItem::HistoryItem):
65906         * history/HistoryItem.h:
65907         * html/CanvasGradient.h:
65908         * html/CanvasPattern.h:
65909         * html/CanvasRenderingContext2D.h:
65910         * html/CanvasStyle.h:
65911         * html/HTMLCollection.h:
65912         * html/MediaError.h:
65913         * html/TimeRanges.h:
65914         * html/VoidCallback.h:
65915         * ksvg2/css/SVGRenderStyle.cpp:
65916         (WebCore::SVGRenderStyle::SVGRenderStyle):
65917         * ksvg2/css/SVGRenderStyle.h:
65918         * ksvg2/css/SVGRenderStyleDefs.cpp:
65919         (StyleFillData::StyleFillData):
65920         (StyleStrokeData::StyleStrokeData):
65921         (StyleStopData::StyleStopData):
65922         (StyleTextData::StyleTextData):
65923         (StyleClipData::StyleClipData):
65924         (StyleMaskData::StyleMaskData):
65925         (StyleMarkerData::StyleMarkerData):
65926         (StyleMiscData::StyleMiscData):
65927         * ksvg2/css/SVGRenderStyleDefs.h:
65928         * ksvg2/svg/SVGAngle.cpp:
65929         (WebCore::SVGAngle::SVGAngle):
65930         * ksvg2/svg/SVGAngle.h:
65931         * ksvg2/svg/SVGAnimatedTemplate.h:
65932         * ksvg2/svg/SVGElementInstanceList.h:
65933         * ksvg2/svg/SVGException.h:
65934         * ksvg2/svg/SVGList.h:
65935         * ksvg2/svg/SVGPathSeg.h:
65936         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
65937         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
65938         * ksvg2/svg/SVGPreserveAspectRatio.h:
65939         * ksvg2/svg/SVGRenderingIntent.h:
65940         * ksvg2/svg/SVGTransform.h:
65941         * ksvg2/svg/SVGUnitTypes.h:
65942         * loader/DocumentLoader.h:
65943         * loader/FormState.h:
65944         * loader/ResourceLoader.h:
65945         * loader/TextResourceDecoder.h:
65946         * loader/icon/IconRecord.h:
65947         * page/BarInfo.h:
65948         * page/Console.h:
65949         * page/DOMSelection.h:
65950         * page/DOMWindow.h:
65951         * page/Frame.h:
65952         * page/History.h:
65953         * page/InspectorController.cpp:
65954         * page/Plugin.h:
65955         * page/Screen.h:
65956         * platform/ArrayImpl.h:
65957         * platform/CString.h:
65958         * platform/Cursor.h:
65959         * platform/DeprecatedValueListImpl.cpp:
65960         (WebCore::DeprecatedValueListImpl::Private::Private):
65961         * platform/FileChooser.h:
65962         * platform/FontFallbackList.h:
65963         * platform/FontFamily.cpp:
65964         (WebCore::FontFamily::FontFamily):
65965         * platform/FontFamily.h:
65966         * platform/FontSelector.h:
65967         * platform/GlyphPageTreeNode.h:
65968         * platform/PopupMenu.h:
65969         * platform/RegularExpression.cpp:
65970         * platform/ScrollBar.h:
65971         * platform/SharedBuffer.h:
65972         * platform/StringImpl.h:
65973         * platform/graphics/Icon.h:
65974         * platform/graphics/svg/SVGResource.h:
65975         * platform/network/FormData.cpp:
65976         (WebCore::FormData::FormData):
65977         * platform/network/FormData.h:
65978         * platform/network/ResourceHandle.h:
65979         * platform/network/ResourceHandleClient.h:
65980         * rendering/RenderStyle.cpp:
65981         (WebCore::StyleSurroundData::StyleSurroundData):
65982         (WebCore::StyleBoxData::StyleBoxData):
65983         (WebCore::StyleVisualData::StyleVisualData):
65984         (WebCore::StyleBackgroundData::StyleBackgroundData):
65985         (WebCore::StyleMarqueeData::StyleMarqueeData):
65986         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
65987         (WebCore::StyleMultiColData::StyleMultiColData):
65988         (WebCore::StyleTransformData::StyleTransformData):
65989         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
65990         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
65991         (WebCore::StyleInheritedData::StyleInheritedData):
65992         * rendering/RenderStyle.h:
65993         * rendering/SVGCharacterLayoutInfo.h:
65994         (WebCore::SVGCharOnPath::SVGCharOnPath):
65995         * storage/SQLResultSetRowList.h:
65996         * xml/DOMParser.h:
65997         * xml/XMLHttpRequest.h:
65998         * xml/XMLSerializer.h:
65999         * xml/XPathEvaluator.h:
66000         * xml/XPathExpression.h:
66001         * xml/XPathNSResolver.h:
66002         * xml/XPathResult.h:
66003         * xml/XPathValue.h:
66004         * xml/XSLTProcessor.h:
66006 2007-11-13  Brady Eidson  <beidson@apple.com>
66008         Reviewed by Mark Rowe
66010         Remove errantly added files, and fix the idl (for reference's sake)
66012         * storage/JSCustomSQLStatementCallback.h: Removed.
66013         * storage/JSCustomSQLStatementErrorCallback.h: Removed.
66014         * storage/JSCustomSQLTransactionCallback.h: Removed.
66015         * storage/JSCustomSQLTransactionErrorCallback.h: Removed.
66016         * storage/SQLStatementCallback.idl:
66018 2007-11-13  Adam Roben  <aroben@apple.com>
66020         Fix a bug and improve upon Brady's fix
66022         Reviewed by Anders.
66024         * bindings/js/JSSQLTransactionCustom.cpp:
66025         (WebCore::JSSQLTransaction::executeSql): Made the code a little
66026         clearer and more correct.
66027         * loader/icon/IconDatabase.cpp: Put parentheses around the expansion
66028         of IS_ICON_SYNC_THREAD() so that ASSERT_NOT_SYNC_THREAD() does the
66029         comparison it meant to.
66031 2007-11-13  Sam Weinig  <sam@webkit.org>
66033         Fix Qt and Gtk builds.
66035         * WebCore.pro: Remove non-generated idl files.
66037 2007-11-13  Mark Rowe  <mrowe@apple.com>
66039         Remove removed file from the project.
66041         * WebCore.pro:
66043 2007-11-13  Brady Eidson  <beidson@apple.com>
66045         Release build fix
66047         * bindings/js/JSSQLTransactionCustom.cpp:
66048         (WebCore::JSSQLTransaction::executeSql):
66050 2007-11-13  Adam Roben  <aroben@apple.com>
66052         Add WindowMessageBroadcaster
66054         This class is used to listen in on messages sent to HWNDs. Multiple
66055         WindowMessageListeners can be notified about messages sent to a single
66056         HWND, and one WindowMessageListener can listen to messages from
66057         multiple HWNDs.
66059         Reviewed by Ada.
66061         * WebCore.vcproj/WebCore.vcproj: Added new files to project.
66062         * platform/win/WindowMessageBroadcaster.cpp: Added.
66063         (WebCore::instancesMap): Static helper.
66064         (WebCore::WindowMessageBroadcaster::addListener): Registers a listener
66065         for a particular HWND.
66066         (WebCore::WindowMessageBroadcaster::removeListener): Removes a
66067         listener for a particular HWND.
66068         (WebCore::WindowMessageBroadcaster::WindowMessageBroadcaster):
66069         (WebCore::WindowMessageBroadcaster::~WindowMessageBroadcaster):
66070         (WebCore::WindowMessageBroadcaster::destroy): Removes this broadcaster
66071         from the instancesMap, removes all of its listeners, unsubclasses the
66072         window, and deletes the broadcaster.
66073         (WebCore::WindowMessageBroadcaster::unsubclassWindow): Unsubclasses
66074         the window (which means that SubclassedWndProc won't be called again
66075         for this window).
66076         (WebCore::WindowMessageBroadcaster::SubclassedWndProc): Notifies all
66077         the listeners about every message sent to the HWND
66078         * platform/win/WindowMessageBroadcaster.h: Added.
66079         (WebCore::WindowMessageBroadcaster::listeners):
66080         (WebCore::WindowMessageBroadcaster::originalWndProc):
66081         * platform/win/WindowMessageListener.h: Added.
66083 2007-11-13  Geoffrey Garen  <ggaren@apple.com>
66085         Reviewed by Sam Weinig.
66087         Moved Shared.h into wtf so it could be used in more places. Retained 
66088         TreeShared, but moved it to its own file, TreeShared.h.
66090         * ForwardingHeaders/wtf/Shared.h: Added.
66091         * WebCore.xcodeproj/project.pbxproj:
66092         * bindings/js/JSSVGPODTypeWrapper.h:
66093         * css/CSSFontFace.h:
66094         * css/CSSRuleList.h:
66095         * css/Counter.h:
66096         * css/Pair.h:
66097         * css/Rect.h:
66098         * css/StyleBase.h:
66099         * css/StyleSheetList.h:
66100         * dom/Clipboard.h:
66101         * dom/DOMImplementation.h:
66102         * dom/Event.h:
66103         * dom/EventListener.h:
66104         * dom/NamedNodeMap.h:
66105         * dom/NodeFilterCondition.h:
66106         * dom/NodeList.h:
66107         * dom/Range.h:
66108         * dom/RangeException.h:
66109         * dom/RegisteredEventListener.h:
66110         * dom/Traversal.h:
66111         * history/BackForwardList.h:
66112         * history/CachedPage.h:
66113         * history/HistoryItem.h:
66114         * html/CanvasGradient.h:
66115         * html/CanvasPattern.h:
66116         * html/HTMLCollection.h:
66117         * html/MediaError.h:
66118         * html/TimeRanges.h:
66119         * html/VoidCallback.h:
66120         * ksvg2/css/SVGRenderStyleDefs.h:
66121         * ksvg2/svg/SVGAnimatedTemplate.h:
66122         * ksvg2/svg/SVGElementInstanceList.h:
66123         * ksvg2/svg/SVGList.h:
66124         * ksvg2/svg/SVGPathSeg.h:
66125         * ksvg2/svg/SVGPreserveAspectRatio.h:
66126         * ksvg2/svg/SVGRenderingIntent.h:
66127         * ksvg2/svg/SVGTransform.h:
66128         * ksvg2/svg/SVGUnitTypes.h:
66129         * loader/DocumentLoader.h:
66130         * loader/FormState.h:
66131         * loader/ResourceLoader.h:
66132         * loader/TextResourceDecoder.h:
66133         * loader/icon/IconRecord.h:
66134         * page/BarInfo.h:
66135         * page/Console.h:
66136         * page/DOMSelection.h:
66137         * page/DOMWindow.h:
66138         * page/History.h:
66139         * page/InspectorController.cpp:
66140         * page/Plugin.h:
66141         * page/Screen.h:
66142         * platform/ArrayImpl.h:
66143         * platform/CString.h:
66144         * platform/DeprecatedValueListImpl.cpp:
66145         * platform/FontFallbackList.h:
66146         * platform/FontFamily.h:
66147         * platform/FontSelector.h:
66148         * platform/GlyphPageTreeNode.h:
66149         * platform/PopupMenu.h:
66150         * platform/RegularExpression.cpp:
66151         * platform/ScrollBar.h:
66152         * platform/Shared.h: Removed.
66153         * platform/SharedBuffer.h:
66154         * platform/StringImpl.h:
66155         * platform/graphics/Icon.h:
66156         * platform/graphics/svg/SVGResource.h:
66157         * platform/network/FormData.h:
66158         * platform/network/ResourceHandleClient.h:
66159         * rendering/RenderStyle.h:
66160         * rendering/SVGCharacterLayoutInfo.h:
66161         * storage/SQLResultSetRowList.h:
66162         * xml/DOMParser.h:
66163         * xml/XMLSerializer.h:
66164         * xml/XPathEvaluator.h:
66165         * xml/XPathExpression.h:
66166         * xml/XPathNSResolver.h:
66167         * xml/XPathResult.h:
66169 2007-11-13  Brady Eidson  <beidson@apple.com>
66171         JS bindings by Anders, reviewed by Brady
66172         WebCore changes by Brady, reviewed by Anders and Tim
66174         Adapt to the new iteration of the HTML5 client-side storage spec.
66176         Based largely on implementation feedback we generated in landing our first version of this API and also
66177         on the input of others in the community, the database spec went through a large overhaul that addresses
66178         many concerns.  Amongst other changes/improvements:
66179         - SQLTransaction object is added and all transactions are explicit.  In addition, since the API manages
66180           transactions explicitly, transaction-related language in SQL statements is disallowed
66181         - executeSql() is now on a transaction object instead of the database object.
66182         - Database.changeVersion() now takes place within the context of a transaction.  Therefore the version 
66183           change can be atomic along with the statements that modify the DB schema
66185         Most of the logic now takes place during the "transaction steps," which the specification clearly lays out
66186         as a chain of events on the SQLTransaction object where processing is handed off between being processed 
66187         asynchronously and calling back up to javascript.  To accomplish this voodoo, SQLTransaction has a series of 
66188         methods that roughly match up with the "transaction steps" and it keeps a pointer to the next step.
66190         * DerivedSources.make:
66191         * WebCore.xcodeproj/project.pbxproj:
66193         * bindings/js/JSDatabaseCustom.cpp:
66194         (WebCore::JSDatabase::changeVersion): Adapt to the new API
66195         (WebCore::JSDatabase::transaction): Added
66197         * bindings/js/JSSQLTransactionCustom.cpp: Added.
66198         (WebCore::JSSQLTransaction::executeSql): Added
66200         * page/DOMWindow.cpp:
66201         (WebCore::DOMWindow::openDatabase): Add the new arguments
66202         * page/DOMWindow.h:
66203         * page/DOMWindow.idl:
66205         * page/inspector/DatabasePanel.js: Use the new API
66207         * storage/ChangeVersionWrapper.cpp: Added.  Implementation of "SQLTransactionWrapper" that enforces
66208           changing the version of the database
66209         (WebCore::ChangeVersionWrapper::ChangeVersionWrapper):
66210         (WebCore::ChangeVersionWrapper::performPreflight):
66211         (WebCore::ChangeVersionWrapper::performPostflight):
66212         * storage/ChangeVersionWrapper.h: Added.
66213         (WebCore::ChangeVersionWrapper::sqlError):
66215         * storage/Database.cpp: Removed the "main thread" and "background thread" sqlite handles as all sqlite operations can now
66216           happen solely on the background thread - most of these changes result from that change
66217         (WebCore::Database::Database): Removed an obsolete FIXME
66218         (WebCore::Database::openAndVerifyVersion): 
66219         (WebCore::Database::getVersionFromDatabase):
66220         (WebCore::Database::setVersionInDatabase):
66221         (WebCore::Database::versionMatchesExpected): Atomically guarantee that the current version and expected version are the same
66222         (WebCore::Database::performOpenAndVerify):
66223         (WebCore::Database::performTransactionStep): Added, as a hook for the DatabaseTransactionTask on the DatabaseThread
66224         (WebCore::Database::changeVersion): Changed for the new API from JS
66225         (WebCore::Database::transaction): Added, for the new API from JS
66226         (WebCore::Database::scheduleTransaction): Add a transaction to this Database's transaction queue
66227         (WebCore::Database::scheduleTransactionStep): Schedule the current transaction to be called on the background thread
66228         (WebCore::Database::scheduleTransactionCallback): Schedule the current transaction to perform a callback on the main thread
66229         (WebCore::Database::performGetTableNames):
66230         (WebCore::Database::deliverAllPendingCallbacks):
66231         (WebCore::Database::deliverPendingCallback):
66232         (WebCore::Database::setExpectedVersion):
66233         * storage/Database.h: 
66234         * storage/Database.idl:
66236         * storage/DatabaseTask.cpp:  Changed DatabaseTask to create a mutex on demand, and use the existence of that mutex
66237           to replace the m_synchronous flag
66238         (WebCore::DatabaseTask::performTask):
66239         (WebCore::DatabaseTask::lockForSynchronousScheduling):
66240         (WebCore::DatabaseTask::waitForSynchronousCompletion):
66241         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
66242         * storage/DatabaseTask.h:
66244         * storage/SQLError.h: New API object
66246         * storage/SQLResultSet.cpp:
66247         (WebCore::SQLResultSet::SQLResultSet): Small changes to the API object
66248         * storage/SQLResultSet.h:
66249         * storage/SQLResultSet.idl:
66251         * storage/SQLStatement.cpp: Added.
66252         (WebCore::SQLStatement::SQLStatement):
66253         (WebCore::SQLStatement::execute): Actually execute the sql statement on the SQLiteDatabase if it's still valid
66254         (WebCore::SQLStatement::setVersionMismatchedError): Flag this statement as bad before it even starts in case
66255           of an actual version vs. expected version mismatch
66256         (WebCore::SQLStatement::performCallback): Call the right callback (SQLStatement or SQLStatementError) for this statement
66257         * storage/SQLStatement.h: Added.
66258         (WebCore::SQLStatement::hasStatementCallback):
66259         (WebCore::SQLStatement::hasStatementErrorCallback):
66260         (WebCore::SQLStatement::sqlError): Get the error for this statement, if any
66262         * storage/SQLTransaction.cpp: Added.
66263         (WebCore::SQLTransaction::SQLTransaction):
66264         (WebCore::SQLTransaction::executeSQL): Entry point for the API from JS
66265         (WebCore::SQLTransaction::enqueueStatement): Add a new statement onto the queue
66266         (WebCore::SQLTransaction::performNextStep): Call the method for the next step
66267         (WebCore::SQLTransaction::performPendingCallback): Call the method for the pending callback
66268         (WebCore::SQLTransaction::openTransactionAndPreflight): Open a transaction to the database and preflight 
66269           using the SQLTransactionWrapper, if any
66270         (WebCore::SQLTransaction::deliverTransactionCallback): Deliver the transaction callback to the javascript thread
66271         (WebCore::SQLTransaction::scheduleToRunStatements): Convinience to schedule this transaction on the database thread 
66272           and make runStatements() the next step
66273         (WebCore::SQLTransaction::runStatements): Start running the sql statements queued up for this transaction 
66274         (WebCore::SQLTransaction::getNextStatement): Bring the next statement off the queue
66275         (WebCore::SQLTransaction::runCurrentStatement): Execute the current statement
66276         (WebCore::SQLTransaction::deliverStatementCallback): Deliver the SQLStatementCallback for this statement
66277         (WebCore::SQLTransaction::postflightAndCommit): Postflight the transaction using SQLTransactionWrapper and commit it
66278         (WebCore::SQLTransaction::handleTransactionError): Make the right call for any error that occurred on the Transaction
66279         (WebCore::SQLTransaction::deliverTransactionErrorCallback): Deliver the SQLTransactionErrorCallback
66280         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Either do a final commit or rollback to cleanup the
66281           transaction after it error'ed out
66282         * storage/SQLTransaction.h:
66283         (WebCore::SQLTransactionWrapper::~SQLTransactionWrapper): 
66284         (WebCore::SQLTransaction::database):
66285         * storage/SQLTransaction.idl:
66287         The following were made obsolete by the new version of the API:
66288         * bindings/js/JSCustomSQLCallback.cpp: Removed.
66289         * bindings/js/JSCustomSQLCallback.h: Removed.
66290         * bindings/js/JSCustomVersionChangeCallback.cpp: Removed.
66291         * bindings/js/JSCustomVersionChangeCallback.h: Removed.
66292         * storage/DatabaseCallback.cpp: Removed.
66293         * storage/DatabaseCallback.h: Removed.
66294         * storage/SQLCallback.h: Removed.
66295         * storage/SQLCallback.idl: Removed.
66296         * storage/VersionChangeCallback.h: Removed.
66297         * storage/VersionChangeCallback.idl: Removed.
66299 2007-11-13  Dan Bernstein  <mitz@apple.com>
66301         Reviewed by Beth Dakin.
66303         - fix <rdar://problem/5551163> REGRESSION: Cursor does not change to arrow on "X" button in google maps, making it hard to click
66305         * css/html4.css: Added a 'cursor: auto' rule for links.
66306         * manual-tests/link-cursor-auto.html: Added.
66308 2007-11-13  Dan Bernstein  <mitz@apple.com>
66310         Reviewed by Beth Dakin.
66312         - fix <rdar://problem/5516272> Reproducible crash in RenderObject::setStyle involving going Back from a non-HTML document (Bookmarks view, PDF view)
66314         The root cause for the crash is that when a non-HTML view enters the
66315         frame, the frame's document pointer keeps pointing at the last HTML-type
66316         document it contained. This patch does not address the root cause, but
66317         makes changes to account for that condition.
66319         * loader/FrameLoader.cpp:
66320         (WebCore::FrameLoader::receivedMainResourceError): Do not change the
66321         frame's current document's page cache state here.
66322         (WebCore::FrameLoader::invalidateCurrentItemCachedPage): If the frame's
66323         current document is in fact the history item being invalidated, then
66324         set its page cache state here.
66326 2007-11-12  Antti Koivisto  <antti@apple.com>
66328         Reviewed by Adele.
66330         Fix that 'timeupdate' and 'waiting' events were never dispatched.
66331         
66332         Add explicit m_paused attribute instead of trying to derive paused state from
66333         underlying media. Call updatePlayState() to start/stop media playback
66334         when any attribute that affects active playback state changes. This matches 
66335         specification text.
66336         
66337         Test: http/tests/media/video-play-stall.html
66339         * html/HTMLMediaElement.cpp:
66340         (WebCore::HTMLMediaElement::HTMLMediaElement):
66341         (WebCore::HTMLMediaElement::setReadyState):
66342         (WebCore::HTMLMediaElement::paused):
66343         (WebCore::HTMLMediaElement::play):
66344         (WebCore::HTMLMediaElement::pause):
66345         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
66346         (WebCore::HTMLMediaElement::movieDidEnd):
66347         (WebCore::HTMLMediaElement::updatePlayState):
66348         * html/HTMLMediaElement.h:
66350 2007-11-13  John Sullivan  <sullivan@apple.com>
66352         Reviewed by Darin.
66354         removed recently-added PreferredType concept; we found a better way to do what
66355         ths was accomplishing
66357         * bridge/WindowFeatures.h:
66358         (WebCore::WindowFeatures::WindowFeatures):
66359         removed definition of PreferredType
66360                         
66361         * page/ContextMenuController.cpp:
66362         (WebCore::openNewWindow):
66363         removed use of PreferredType
66365 2007-11-12  Alexey Proskuryakov  <ap@webkit.org>
66367         Reviewed by Darin.
66369         http://bugs.webkit.org/show_bug.cgi?id=15954
66370         Move DOM Selection operations out of SelectionController
66372         No change in functionality.
66374         * editing/SelectionController.cpp:
66375         (WebCore::SelectionController::setSelectedRange):
66376         * editing/SelectionController.h:
66377         * page/DOMSelection.cpp:
66378         (WebCore::DOMSelection::anchorNode):
66379         (WebCore::DOMSelection::baseNode):
66380         (WebCore::DOMSelection::anchorOffset):
66381         (WebCore::DOMSelection::baseOffset):
66382         (WebCore::DOMSelection::focusNode):
66383         (WebCore::DOMSelection::extentNode):
66384         (WebCore::DOMSelection::focusOffset):
66385         (WebCore::DOMSelection::extentOffset):
66386         (WebCore::DOMSelection::isCollapsed):
66387         (WebCore::DOMSelection::type):
66388         (WebCore::DOMSelection::rangeCount):
66389         (WebCore::DOMSelection::collapse):
66390         (WebCore::DOMSelection::collapseToEnd):
66391         (WebCore::DOMSelection::collapseToStart):
66392         (WebCore::DOMSelection::empty):
66393         (WebCore::DOMSelection::setBaseAndExtent):
66394         (WebCore::DOMSelection::setPosition):
66395         (WebCore::DOMSelection::modify):
66396         (WebCore::DOMSelection::extend):
66397         (WebCore::DOMSelection::getRangeAt):
66398         (WebCore::DOMSelection::removeAllRanges):
66399         (WebCore::DOMSelection::addRange):
66400         (WebCore::DOMSelection::deleteFromDocument):
66401         (WebCore::DOMSelection::containsNode):
66402         (WebCore::DOMSelection::selectAllChildren):
66403         (WebCore::DOMSelection::toString):
66404         * page/DOMSelection.h:
66405         Moved all DOM API methods to DOMSelection; changed SelectionController::setSelectedRange()
66406         to return its result directly instead of via an ExceptionCode that no caller wanted.
66408         * editing/Editor.cpp:
66409         (WebCore::Editor::deleteRange):
66410         (WebCore::Editor::removeFormattingAndStyle):
66411         (WebCore::Editor::selectComposition):
66412         (WebCore::Editor::setComposition):
66413         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
66414         Adapted for SelectionController::setSelectedRange() now returning a bool.
66415         SelectionController::toString() is no longer avasilable, use plainText() explicitly.
66417         * WebCore.base.exp: Changed SelectionController::setSelectedRange() signature.
66419 2007-11-12  Dan Bernstein  <mitz@apple.com>
66421         Reviewed by Darin Adler.
66423         - <http://bugs.webkit.org/show_bug.cgi?id=15890>
66424           Most of www.aol.com still redraws unnecessarily when headline/photo section changes
66426         Test: fast/repaint/invisible-objects.html
66428         Avoid repainting invisible blocks if they are enclosed in a layer that
66429         contains no visible objects.
66431         * rendering/RenderBlock.cpp:
66432         (WebCore::RenderBlock::layoutBlock):
66433         * rendering/RenderBox.cpp:
66434         (WebCore::RenderBox::absoluteClippedOverflowRect):
66436 2007-11-12  Timothy Hatcher  <timothy@apple.com>
66438         Reviewed by Mark Rowe.
66440         Prevent selecting a word in the breadcrumb or the styles section when double
66441         clicking on a DOM node in the outline tree.
66443         * page/inspector/DocumentPanel.js: Call preventDefault() when a mousedown event
66444           with a detail of 2 or higher comes in. This prevents the selection.
66445         * page/inspector/inspector.css: Mark the breadcrumb as user-select: none.
66447 2007-11-12  Oliver Hunt  <oliver@apple.com>
66449         Reviewed by John S.
66451         <rdar://problem/5537289> REGRESSION: Dragging a link or an image from an IFrame causes the page to not respond to clicks afterwards (15460)
66452         
66453         EventHandler needs to reset these fields when a drag terminates, otherwise
66454         EventHandler is left in an inconsistent state when a drag is initiated on a
66455         page with multiple frames.
66457         * page/EventHandler.cpp:
66458         (WebCore::EventHandler::cancelDragAndDrop):
66459         (WebCore::EventHandler::performDragAndDrop):
66460         (WebCore::EventHandler::clearDragState):
66461         * page/EventHandler.h:
66463 2007-11-12  Oliver Hunt  <oliver@apple.com>
66465         Reviewed by Darin and Antti.
66467         Return behaviour for 0 sized pattern back to what it was prior to r27704
66469         This change in behaviour broke two layout tests in DRT, so correcting it
66470         corrects existing tests.
66472         * platform/graphics/cg/ImageBufferCG.cpp:
66474 2007-11-12  Timothy Hatcher  <timothy@apple.com>
66476         Reviewed by John.
66478         <rdar://problem/5268311> REGRESSION (Safari 2-3): Exception thrown when calling -[WebDataSource subresources]
66480         * page/mac/WebCoreFrameBridge.mm:
66481         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
66482         If the SharedBuffer is null insert an empty NSData instead of nil.
66484 2007-11-12  Darin Adler  <darin@apple.com>
66486         Reviewed by Tim.
66488         - http://bugs.webkit.org/show_bug.cgi?id=15947
66489           speed up page loading a bit by inlining
66491         * loader/FrameLoader.cpp: (WebCore::FrameLoader::isLocationChange):
66492         Factored out the slow case of isScheduledLocationChangePending into this.
66494         * loader/FrameLoader.h:
66495         (WebCore::FrameLoader::isScheduledLocationChangePending): Added an
66496         inline check of the far and away most common case, where m_scheduledRedirection
66497         is 0; the rest is in the isLocationChange function.
66499 2007-11-12  George Staikos  <staikos@kde.org>
66501         Reviewed by Tim.
66503         Extract the text match marker highlight color into RenderTheme instead
66504         of the hardcoded yellow.
66506         * rendering/InlineTextBox.cpp:
66507         (WebCore::InlineTextBox::paintTextMatchMarker):
66508         * rendering/RenderTheme.cpp:
66509         (WebCore::RenderTheme::platformTextSearchHighlightColor):
66510         * rendering/RenderTheme.h:
66512 2007-11-12  Mark Rowe  <mrowe@apple.com>
66514         Fix deadlock on launch on the Mac.
66516         * loader/icon/IconDatabase.cpp:
66517         (WebCore::IconDatabase::open): Restore unlock that was mistakenly removed in r27717.
66519 2007-11-12  Justin Haygood  <jhaygood@reaktix.com>
66521         Reviewed by Brady.
66523         http://bugs.webkit.org/show_bug.cgi?id=15955
66524         Reimplement threading functions in IconDatabase and SQLiteDatabase in terms of the threading abstractions
66526         * loader/icon/IconDatabase.cpp:
66527         (WebCore::IconDatabase::open):
66528         (WebCore::IconDatabase::close):
66529         * loader/icon/IconDatabase.h:
66530         * platform/sql/SQLiteDatabase.cpp:
66531         (WebCore::SQLiteDatabase::SQLiteDatabase):
66532         (WebCore::SQLiteDatabase::open):
66533         (WebCore::SQLiteDatabase::close):
66534         * platform/sql/SQLiteDatabase.h:
66536 2007-11-12  Adam Roben  <aroben@apple.com>
66538         Windows build fix
66540         * config.h: Touch because VS apparently can't figure out which files
66541         depend on ResourceResponse.h.
66542         * WebCore.vcproj/WebCore.vcproj: Add ResourceResponseBase files to
66543         project and remove old ResourceResponse files.
66545 2007-11-12  Julien Chaffraix  <julien.chaffraix@gmail.com>
66547         Reviewed by Darin.
66549         http://bugs.webkit.org/show_bug.cgi?id=15334
66550         Split ResourceResponse into platform specific files
66552         * WebCore.base.exp:
66553         * WebCore.pro:
66554         * WebCore.vcproj/WebCore.vcproj:
66555         * WebCore.xcodeproj/project.pbxproj:
66556         * platform/network/ResourceResponse.cpp: Removed.
66557         * platform/network/ResourceResponse.h: Removed.
66558         * platform/network/ResourceResponseBase.cpp: Copied from platform/network/ResourceResponse.cpp.
66559         (WebCore::ResourceResponseBase::asResourceResponse):
66560         (WebCore::ResourceResponseBase::isHTTP):
66561         (WebCore::ResourceResponseBase::url):
66562         (WebCore::ResourceResponseBase::setUrl):
66563         (WebCore::ResourceResponseBase::mimeType):
66564         (WebCore::ResourceResponseBase::setMimeType):
66565         (WebCore::ResourceResponseBase::expectedContentLength):
66566         (WebCore::ResourceResponseBase::setExpectedContentLength):
66567         (WebCore::ResourceResponseBase::textEncodingName):
66568         (WebCore::ResourceResponseBase::setTextEncodingName):
66569         (WebCore::ResourceResponseBase::suggestedFilename):
66570         (WebCore::ResourceResponseBase::setSuggestedFilename):
66571         (WebCore::ResourceResponseBase::httpStatusCode):
66572         (WebCore::ResourceResponseBase::setHTTPStatusCode):
66573         (WebCore::ResourceResponseBase::httpStatusText):
66574         (WebCore::ResourceResponseBase::setHTTPStatusText):
66575         (WebCore::ResourceResponseBase::httpHeaderField):
66576         (WebCore::ResourceResponseBase::setHTTPHeaderField):
66577         (WebCore::ResourceResponseBase::httpHeaderFields):
66578         (WebCore::ResourceResponseBase::isAttachment):
66579         (WebCore::ResourceResponseBase::setExpirationDate):
66580         (WebCore::ResourceResponseBase::expirationDate):
66581         (WebCore::ResourceResponseBase::setLastModifiedDate):
66582         (WebCore::ResourceResponseBase::lastModifiedDate):
66583         (WebCore::ResourceResponseBase::updateResourceResponse):
66584         * platform/network/ResourceResponseBase.h: Copied from platform/network/ResourceResponse.h.
66585         (WebCore::ResourceResponseBase::ResourceResponseBase):
66586         * platform/network/cf/ResourceResponse.h: Added.
66587         (WebCore::ResourceResponse::ResourceResponse):
66588         * platform/network/curl/ResourceResponse.h: Added.
66589         (WebCore::ResourceResponse::ResourceResponse):
66590         (WebCore::ResourceResponse::doUpdateResourceResponse):
66591         * platform/network/mac/ResourceResponse.h: Added.
66592         (WebCore::ResourceResponse::ResourceResponse):
66593         * platform/network/qt/ResourceResponse.h: Added.
66594         (WebCore::ResourceResponse::ResourceResponse):
66595         (WebCore::ResourceResponse::doUpdateResourceResponse):
66597 2007-11-11  Justin Haygood  <jhaygood@reaktix.com>
66599         Reviewed by Adam Roben.
66601         http://bugs.webkit.org/show_bug.cgi?id=15939
66602         Adds a currentThread API for use by SQLiteDatabase, etc.
66604         * platform/Threading.h:
66605         * platform/ThreadingNone.cpp:
66606         (WebCore::currentThread):
66607         * platform/gtk/ThreadingGtk.cpp:
66608         (WebCore::identifierByGthreadHandle):
66609         * platform/pthreads/ThreadingPthreads.cpp:
66610         (WebCore::identifierByPthreadHandle):
66611         (WebCore::currentThread):
66613 2007-11-11  Dan Bernstein  <mitz@apple.com>
66615         Reviewed by Adam Roben.
66617         - fix http://bugs.webkit.org/show_bug.cgi?id=15942
66618           REGRESSION: Selecting "Edit Html" tab in Blogger causes crash (Assertion failed: isRange())
66620         Test: editing/selection/cleared-by-relayout.html
66622         * editing/Selection.cpp:
66623         (WebCore::Selection::toRange): Check if the selection has been cleared
66624         by updating layout.
66626 2007-11-11  Darin Adler  <darin@apple.com>
66628         Reviewed by Mark Rowe.
66630         - fix line numbers that were off since my recent patch
66632         * platform/SegmentedString.h:
66633         (WebCore::SegmentedSubstring::SegmentedSubstring): Reversed the sense of m_excludeLineNumbers
66634         and rename it to m_doNotExcludeLineNumbers.
66635         (WebCore::SegmentedSubstring::excludeLineNumbers): Updated.
66636         (WebCore::SegmentedSubstring::doNotExcludeLineNumbers): Added.
66637         (WebCore::SegmentedSubstring::setExcludeLineNumbers): Updated.
66638         (WebCore::SegmentedString::advance): Use doNotExcludeLineNumbers to reverse the sense and fix
66639         the regression, but keep the speediness. I accidentally had removed a ! here.
66641         * platform/SegmentedString.cpp:
66642         (WebCore::SegmentedString::advanceSlowCase): Use doNotExcludeLineNumbers.
66644 2007-11-11  Oliver Hunt  <oliver@apple.com>
66646         Reviewed by Darin.
66648         Fix for <rdar://problem/5585334> numfuzz: integer overflows opening
66649         malformed SVG file in WebCore::ImageBuffer::create. Add protection
66650         against a potential overflow.
66652         * platform/graphics/cg/ImageBufferCG.cpp:
66654 2007-11-11  Antti Koivisto  <antti@apple.com>
66656         Reviewed by Darin.
66658         Fix a bunch of cases where the exception code is checked by the function but is not zeroed first.
66660         * bindings/js/kjs_binding.cpp:
66661         (KJS::setDOMException):
66662         * dom/Attr.cpp:
66663         (WebCore::Attr::setPrefix):
66664         * dom/Document.cpp:
66665         (WebCore::Document::createElement):
66666         * dom/Element.cpp:
66667         (WebCore::Element::setPrefix):
66668         * dom/Range.cpp:
66669         (WebCore::Range::setStart):
66670         (WebCore::Range::setEnd):
66671         (WebCore::Range::isPointInRange):
66672         (WebCore::Range::comparePoint):
66673         (WebCore::Range::compareBoundaryPoints):
66674         (WebCore::Range::deleteContents):
66675         (WebCore::Range::processContents):
66676         (WebCore::Range::extractContents):
66677         (WebCore::Range::insertNode):
66678         (WebCore::Range::setStartAfter):
66679         (WebCore::Range::setEndBefore):
66680         (WebCore::Range::setEndAfter):
66681         (WebCore::Range::selectNode):
66682         (WebCore::Range::surroundContents):
66683         (WebCore::Range::setStartBefore):
66684         * editing/TextIterator.cpp:
66685         (WebCore::TextIterator::TextIterator):
66686         * html/CanvasRenderingContext2D.cpp:
66687         (WebCore::CanvasRenderingContext2D::createPattern):
66688         * html/HTMLMediaElement.cpp:
66689         (WebCore::HTMLMediaElement::play):
66690         (WebCore::HTMLMediaElement::pause):
66691         * html/HTMLSelectElement.cpp:
66692         (WebCore::HTMLSelectElement::add):
66693         (WebCore::HTMLSelectElement::setOption):
66694         * xml/XPathEvaluator.cpp:
66695         (WebCore::XPathEvaluator::evaluate):
66697 2007-11-11  Darin Adler  <darin@apple.com>
66699         Reviewed by Mitz.
66701         - http://bugs.webkit.org/show_bug.cgi?id=15945
66702           speed up GraphicsContextCG typical case by skipping roundToDevicePixels
66704         * platform/graphics/cg/GraphicsContextCG.cpp:
66705         (WebCore::GraphicsContext::restorePlatformState): Clear the flag since we no
66706         longer know if the transform is identity or not.
66707         (WebCore::GraphicsContext::strokeArc): Removed an extra set of redundant
66708         CGContextSave/RestoreGState.
66709         (WebCore::GraphicsContext::beginTransparencyLayer): Clear the flag since we no
66710         longer know if the transform is identity or not.
66711         (WebCore::GraphicsContext::endTransparencyLayer): Ditto.
66712         (WebCore::GraphicsContext::scale): Ditto.
66713         (WebCore::GraphicsContext::rotate): Ditto.
66714         (WebCore::GraphicsContext::translate): Ditto.
66715         (WebCore::GraphicsContext::concatCTM): Ditto.
66716         (WebCore::GraphicsContext::roundToDevicePixels): Return quickly if the transform
66717         is known to be identity, and record that fact when we discover it otherwise.
66719         * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
66720         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
66721         Added a m_userToDeviceTransformKnownToBeIdentity flag, initialized to false.
66723 2007-11-11  Darin Adler  <darin@apple.com>
66725         Reviewed by Mitz.
66727         - http://bugs.webkit.org/show_bug.cgi?id=15944
66728           streamline SegmentedString to speed up parsing
66730         I measured a speed-up of the page load test while developing this patch. I don't
66731         have a precise figure, though.
66733         * html/HTMLTokenizer.h: Removed unneeded lineNumberPtr() function. Also renamed
66734         lineno to m_lineNumber.
66735         * html/HTMLTokenizer.cpp:
66736         (WebCore::HTMLTokenizer::processListing): Don't pass 0 to the advance function
66737         since we don't want to update a line number.
66738         (WebCore::HTMLTokenizer::parseSpecial): Ditto.
66739         (WebCore::HTMLTokenizer::parseComment): Pass the line number data member directly
66740         instead of lineNumberPtr() since the advance function now takes a reference.
66741         (WebCore::HTMLTokenizer::parseServer): Ditto.
66742         (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
66743         (WebCore::HTMLTokenizer::parseText): Ditto.
66744         (WebCore::HTMLTokenizer::parseEntity): Ditto.
66745         (WebCore::HTMLTokenizer::parseTag): Ditto.
66746         (WebCore::HTMLTokenizer::write): Ditto.
66748         * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryTokenizer::write):
66749         * loader/TextDocument.cpp: (WebCore::TextTokenizer::write):
66750         Don't pass 0 to the advance function.
66752         * platform/SegmentedString.h: (WebCore::SegmentedString::advance): Streamlined
66753         the most common case, and pushed less common cases into a separate function
66754         that is not inlined. Also got rid of a branch by separating the case with a
66755         line number from the case without one.
66757         * platform/SegmentedString.cpp: (WebCore::SegmentedString::advanceSlowCase):
66758         Added. The aforementioned less common cases are here.
66760 2007-11-11  Antti Koivisto  <antti@apple.com>
66762         Forgot to do this review change (and test HTTP commit).
66764         * html/HTMLMediaElement.cpp:
66765         (WebCore::HTMLMediaElement::play):
66767 2007-11-11  Antti Koivisto  <antti@apple.com>
66769         Reviewed by Darin.
66770         
66771         - Update play() and pause() to match current HTML5 draft
66772             - send events asynchronously
66773             - add timeupdate event to pause
66774             - rethrow load() exception, not others
66775         - Use list for async events to get ordering right
66777         Tests: media/video-pause-empty-events.html
66778                media/video-play-empty-events.html
66779                media/video-play-pause-events.html
66780                media/video-play-pause-exception.html
66782         * html/HTMLMediaElement.cpp:
66783         (WebCore::HTMLMediaElement::dispatchEventAsync): 
66784         (WebCore::HTMLMediaElement::asyncEventTimerFired):
66785         (WebCore::HTMLMediaElement::play):
66786         (WebCore::HTMLMediaElement::pause):
66787         * html/HTMLMediaElement.h:
66789 2007-11-11  Nikolas Zimmermann  <zimmermann@kde.org>
66791         Reviewed by Eric.
66793         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6424 (<text>, <tspan> dominant-baseline attribute is not respected)
66795         Add (basic) support for dominant-baseline / alignment-baseline text properties.
66796         Note: there are no official testcases, and no-one implemented it before. Only ASV3
66797               supported dominant-baseline, but not correct it seems.
66799         * rendering/SVGRootInlineBox.cpp:
66800         (WebCore::dominantBaselineToShift):
66801         (WebCore::alignmentBaselineToShift):
66802         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
66804 2007-11-11  Adam Roben  <aroben@apple.com>
66806         Add wrappers around CoCreateInstance to COMPtr
66808         I followed the example of the Query constructor and query method by
66809         adding a Create constructor and create method.
66811         Reviewed by Darin.
66813         * platform/win/COMPtr.h:
66814         (COMPtr::COMPtr): Added a new constructor that calls
66815         CoCreateInstance.
66816         (COMPtr::create): Added.
66817         (COMPtr::createInstance): Added.
66819 2007-11-11  Alexey Proskuryakov  <ap@nypop.com>
66821         Reviewed by Darin.
66823         http://bugs.webkit.org/show_bug.cgi?id=15896
66824         More editing cleanup
66826         No functionality changes.
66828         * dom/Node.h: Moved several editing-related methods elsewhere.
66829         * dom/Node.cpp: (WebCore::Node::maxCharacterOffset): Renamed from maxOffset()
66830         to highlight that it is a match to offsetInCharacters(), and much different from other
66831         offset-related methods. Added ASSERT_NOT_REACHED(), as callers are supposed to check
66832         offsetInCharacters() before calling this.
66834         * dom/CharacterData.cpp: (WebCore::CharacterData::maxCharacterOffset):
66835         * dom/CharacterData.h: (WebCore::CharacterData::isCharacterDataNode):
66836         Updated for above renamings.
66838         * dom/Comment.{h,cpp}: Removed an override for offsetInCharacters(), which is already present in CharacterData.
66840         * dom/Document.{h,cpp}: Folded updateSelection() into Frame::selectionLayoutChanged().
66842         * dom/Position.h:
66843         * dom/Position.cpp:
66844         (WebCore::Position::uncheckedPreviousOffset): Moved from Node::previousOffset().
66845         (WebCore::Position::uncheckedNextOffset): Moved from Node::NextOffset().
66846         (WebCore::Position::previous): Adapted to the above move.
66847         (WebCore::Position::next): Ditto.
66848         (WebCore::Position::upstream): Removed an isBR() check, since a non-BR element cannot have a BR renderer (I think),
66849         and BR elements are covered by editingIgnoresContent().
66850         (WebCore::Position::downstream): Ditto.
66851         (WebCore::caretMaxRenderedOffset): Moved from Node::caretMaxRenderedOffset().
66852         (WebCore::Position::rendersInDifferentPosition): Updated for the above moves.
66854         * dom/PositionIterator.h: Added a comment describing this class from the original check-in.
66855         * dom/PositionIterator.cpp:
66856         (WebCore::PositionIterator::increment): Updated for the above moves.
66857         (WebCore::PositionIterator::decrement): Ditto.
66859         * dom/ProcessingInstruction.h:
66860         * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::maxCharacterOffset):
66861         ProcessingInstruction was already returning true from offsetInCharacters(), but didn't override maxCharacterOffset().
66862         I think that implementing it has no actual effect, as PIs are not rendered, but it looks cleaner this way.
66864         * dom/Range.cpp:
66865         (WebCore::Range::selectNodeContents):
66866         * editing/ApplyStyleCommand.cpp:
66867         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
66868         (WebCore::ApplyStyleCommand::applyInlineStyle):
66869         (WebCore::maxRangeOffset):
66870         (WebCore::ApplyStyleCommand::removeInlineStyle):
66871         (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
66872         (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
66873         (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
66874         (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
66875         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
66876         * editing/CompositeEditCommand.cpp:
66877         (WebCore::CompositeEditCommand::insertNodeAt):
66878         (WebCore::CompositeEditCommand::positionOutsideTabSpan):
66879         * editing/DeleteSelectionCommand.cpp:
66880         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
66881         * editing/InsertLineBreakCommand.cpp:
66882         (WebCore::InsertLineBreakCommand::doApply):
66883         * editing/InsertParagraphSeparatorCommand.cpp:
66884         (WebCore::InsertParagraphSeparatorCommand::doApply):
66885         * editing/InsertTextCommand.cpp:
66886         (WebCore::InsertTextCommand::insertTab):
66887         * editing/visible_units.cpp:
66888         (WebCore::previousLinePosition):
66889         (WebCore::nextLinePosition):
66890         Updated for the above moves.
66892         * editing/Editor.cpp:
66893         (WebCore::Editor::advanceToNextMisspelling): Added a missing rangeCompliantEquivalent() call.
66895         * editing/TextIterator.cpp:
66896         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Changed the condition to obviously
66897         match a maxCharacterOffset() call made after it; hopefully, this doesn't break any border cases.
66898         (WebCore::SimplifiedBackwardsTextIterator::advance): Updated for the above moves.
66900         * editing/htmlediting.h:
66901         * editing/htmlediting.cpp:
66902         (WebCore::canHaveChildrenForEditing): Removed a bogus comment: I don't thin BRs have a special ability to accept
66903         child nodes, other than via DOM manipulation, which is not specific to BRs.
66904         (WebCore::rangeCompliantEquivalent): Removed a check for BR, which is already covered by editingIgnoresContent().
66905         (WebCore::maxDeepOffset): Ditto.
66906         (WebCore::caretMinOffset): Moved from Node. Changed some runtime checks that seemingly cannot fail into assertions.
66907         (WebCore::caretMaxOffset): Ditto.
66909         * page/EventHandler.cpp:
66910         (WebCore::EventHandler::handleMousePressEventSingleClick): Pass 0 to VisiblePosition constructor instead of
66911         caretMinOffset. I didn't want to include htmlediting.h here, and I think that VisiblePosition constructor
66912         will take care of adjusting the offset.
66914         * page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Folded Document::updateSelection() here.
66915         * page/mac/WebCoreFrameBridge.mm:
66916         (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]): Added missing rangeCompliantEquivalent() calls.
66917         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForRenderer): Changed to not round-trip via editing.
66918         Changed some runtime checks that seemingly cannot fail into assertions.
66920 2007-11-11  Darin Adler  <darin@apple.com>
66922         Reviewed by Sam.
66924         - updated for JSRegExp function changes
66926         * platform/RegularExpression.cpp:
66927         (WebCore::RegularExpression::Private::compile):
66928         (WebCore::RegularExpression::match):
66930 2007-11-10  Mark Rowe  <mrowe@apple.com>
66932         Qt Linux build fix.
66934         * platform/UnicodeRange.h:
66936 2007-11-10  Mark Rowe  <mrowe@apple.com>
66938         Qt Windows build fix.
66940         * platform/UnicodeRange.h:
66942 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
66944         Reviewed by Eric.
66946         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
66947         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)
66949         Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
66950         Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)
66952         * WebCore.pro: Add platform/UnicodeRange.cpp to build
66953         * WebCore.xcodeproj/project.pbxproj: Dito.
66954         * rendering/SVGCharacterLayoutInfo.cpp: Respect orientationShiftX/Y & angle in characterTransform()
66955         (WebCore::SVGChar::characterTransform):
66956         * rendering/SVGCharacterLayoutInfo.h: New variables.
66957         (WebCore::SVGCharOnPath::SVGCharOnPath):
66958         (WebCore::SVGChar::SVGChar):
66959         * rendering/SVGRootInlineBox.cpp: Added glyph-orientation-* handling.
66960         (WebCore::glyphOrientationToAngle):
66961         (WebCore::glyphOrientationIsMultiplyOf180Degrees):
66962         (WebCore::calculateGlyphAdvanceAndShiftRespectingOrientation):
66963         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
66964         (WebCore::cummulatedWidthOrHeightOfTextChunk):
66965         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
66967 2007-11-10  Timothy Hatcher  <timothy@apple.com>
66969         Reviewed by Sam Weinig.
66971         * page/inspector/StylesSidebarPane.js: Fix the wording of a comment
66972           and switch over to use getUniqueProperties in another place.
66974 2007-11-10  John Sullivan  <sullivan@apple.com>
66976         Reviewed by Sam Weinig
66978         Rest of fix for 5394877
66980         * bindings/js/kjs_window.cpp:
66981         (KJS::Window::isSafeScript):
66982         Don't log unsafe JavaScript attempts in the other version of isSafeScript() if in
66983         private browsing mode either.
66985 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
66987         Reviewed by Oliver.
66989         Fix function name difference - header said 'unicodeRangeForCharacter', actually
66990         implemented function is 'findCharUnicodeRange'. They are not compiled yet.
66992         * platform/UnicodeRange.h:
66994 2007-11-10  Dan Bernstein  <mitz@apple.com>
66996         Reviewed by Darin Adler.
66998         - fix <rdar://problem/5450655> Control-clicking text in a link can surprisingly select only part of the link, should select entire link
67000         No test because context menu events cannot be tested in DumpRenderTree.
67002         * page/EventHandler.cpp:
67003         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Added.
67004         If the click occurred in an active link, selects the entire link
67005         element. Otherwise selects the closest word.
67006         (WebCore::EventHandler::sendContextMenuEvent): Call
67007         selectClosestWordOrLinkFromMouseEvent().
67008         * page/EventHandler.h:
67010 2007-11-10  John Sullivan  <sullivan@apple.com>
67012         Reviewed by Tim Hatcher
67014         - fixed <rdar://problem/5394877> Safari should not log unsafe JavaScript attempts when 
67015           in private browsing mode (only an issue if Log JavaScript Exceptions is turned on)
67017         * bindings/js/kjs_window.cpp:
67018         (KJS::Window::isSafeScript):
67019         Don't log unsafe JavaScript attempts to console or chromeClient if in private browsing mode
67021 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
67023         Reviewed by Darin.
67025         http://bugs.webkit.org/show_bug.cgi?id=15922
67026         Implement more of Mozilla Selection API
67028         Tests: editing/selection/containsNode.html
67029                editing/selection/deleteFromDocument.html
67030                editing/selection/extend.html
67031                editing/selection/selectAllChildren.html
67033         * editing/SelectionController.cpp:
67034         (WebCore::SelectionController::deleteFromDocument):
67035         (WebCore::SelectionController::containsNode):
67036         (WebCore::SelectionController::selectAllChildren):
67037         (WebCore::SelectionController::extend):
67038         * editing/SelectionController.h:
67039         Added deleteFromDocument(), containsNode(), and selectAllChildren(). Reimplemented extend(),
67040         which existed, but didn't match Firefox behavior and wasn't exposed via bindings.
67041         Removed a comment mentioning removeRange(), as this method makes no sense without multiple
67042         selection range support.
67044         * page/DOMSelection.cpp:
67045         (WebCore::DOMSelection::extend):
67046         (WebCore::DOMSelection::deleteFromDocument):
67047         (WebCore::DOMSelection::containsNode):
67048         (WebCore::DOMSelection::selectAllChildren):
67049         * page/DOMSelection.h:
67050         * page/DOMSelection.idl:
67051         Exposed the new methods.
67053 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
67055         Reviewed by Darin.
67057         http://bugs.webkit.org/show_bug.cgi?id=15892
67058         DOM Range operations are not implemented for ProcessingInstruction nodes
67060         Test: fast/dom/Range/range-processing-instructions.html
67062         * dom/Range.cpp:
67063         (WebCore::Range::processContents): Implemented ProcessingInstruction cases.
67064         (WebCore::Range::checkNodeWOffset): Removed a FIXME - yes, I think that we are supposed
67065         to use ProcessingInstruction.data.
67067 2007-11-09  Timothy Hatcher  <timothy@apple.com>
67069         Reviewed by Mark Rowe.
67071         Bug 12054: Ability to serialize an element subtree (into clipboard?) from the DOM inspector
67072         http://bugs.webkit.org/show_bug.cgi?id=12054
67074         - Add support code for routing copy events to the focused element.
67075         - Implement copying the currently selected DOM node. The node
67076           and it's subtree is copied to the clipboard. If the node has no
67077           outerHTML, the nodeValue is copied (text nodes, etc.)
67078         - Implement copy for the resource sidebar. The URL is copied for the
67079           currently selected resource.
67081         * page/inspector/DocumentPanel.js:
67082         * page/inspector/inspector.js:
67084 2007-11-09  Antti Koivisto  <antti@apple.com>
67086         Reviewed by Adele.
67088         Fix occasional blank video with poster attribute.
67090         * html/HTMLMediaElement.cpp:
67091         (WebCore::HTMLMediaElement::load):
67092         (WebCore::HTMLMediaElement::didRestoreFromCache):
67093         Just calling updateFromElement() does the right thing for both poster image and video.
67095 2007-11-04  Sam Weinig  <sam@webkit.org>
67097         Reviewed by Adam Roben.
67099         <rdar://problem/5435940>
67100         The COM bindings for the DOM should be autogenerated like the other DOM bindings
67102         Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
67103         is being introduced in this patch and to insure that no conflicts arise, a temporary
67104         prefix of "GEN_" has been used for all the new classes.
67106         The build architecture for these bindings differs slightly from the other autogenerated
67107         bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
67108         is done for the Objective-C bindigs currently), the IDLs and generation scripts are
67109         migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.
67111         This commit includes:
67112             - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
67113               and ref-counting.
67114             - Generating all of the Core DOM and most of HTML and CSS
67115             - Generating Event, EventTarget, and EventListener
67117         * WebCore.vcproj/MigrateIDLAndScripts.make: Added.
67118         * WebCore.vcproj/WebCore.vcproj:
67119         * WebCore.vcproj/migrate-idls.sh: Added.
67120         * bindings/scripts/CodeGenerator.pm:
67121         * bindings/scripts/CodeGeneratorCOM.pm: Added.
67122         * dom/EventListener.h: Make the isWindowEvent parameter default to false
67123         to allow autogeneration based on the IDL.
67125 2007-11-09  Tristan O'Tierney  <tristan@apple.com>
67127         Reviewed by Timothy Hatcher.
67128         
67129         This patch is for the WebKit side of <rdar://problem/5591115>.
67130         We need a way to tell context menu navigations, such as "Open in New Window"
67131         to override any sort of browser preference for tab based navigation.
67133         * bridge/WindowFeatures.h:
67134         (WebCore::WindowFeatures::WindowFeatures):
67135         Added a new struct member var, preferredType
67136         and an accompanying enum type PreferredType
67137         to send a window type recommendation up to the Chrome. 
67138         
67139         * page/ContextMenuController.cpp:
67140         (WebCore::openNewWindow):
67141         Set the window features to recommend a new Window for
67142         "Open in New Window" context menu action.
67144 2007-11-08  Adam Roben  <aroben@apple.com>
67146         Fix <rdar://5483519> Pressing Enter on selected buttons should fire onclick
67148         We now match the behavior of Firefox and IE, which is to always just
67149         send a click event to the focused button when the Enter key is pressed
67150         (previously we were submitting forms directly in some cases).
67152         Reviewed by Adele.
67154         Test: fast/forms/enter-clicks-buttons.html
67156         * html/HTMLButtonElement.cpp:
67157         (WebCore::HTMLButtonElement::defaultEventHandler): Don't do anything
67158         fancy when Enter is pressed on a <button type=button> -- just send a
67159         click event like we do for other button types.
67160         * html/HTMLInputElement.cpp:
67161         (WebCore::HTMLInputElement::defaultEventHandler): Treat type=button
67162         the same way we treat type=submit and type=reset: just send a click
67163         event when Enter is pressed.
67165 2007-11-09  Dan Bernstein  <mitz@apple.com>
67167         Reviewed by Antti Koivisto.
67169         - fix a bug in invisible layer culling: dynamically changing a 
67170           descendant of an invisible layer to be visible did not work
67172         Test: fast/layers/layer-content-visibility-change.html
67174         * rendering/RenderLayer.cpp:
67175         (WebCore::RenderLayer::setHasVisibleContent): If we got visible content,
67176         make sure that our stacking context rebuilds its z-order lists to
67177         include us.
67179 2007-11-09  David Hyatt  <hyatt@apple.com>
67181         Clean up matrix() parsing.  Make sure the first four arguments can be lengths or numbers.  The last two
67182         args can be lengths or numbers or percents.
67184         Reviewed by Beth
67186         * WebCore.xcodeproj/project.pbxproj:
67187         * css/CSSParser.cpp:
67188         (WebCore::TransformOperationInfo::TransformOperationInfo):
67189         (WebCore::CSSParser::parseTransform):
67190         * rendering/RenderStyle.h:
67191         (WebCore::MatrixTransformOperation::apply):
67193 2007-11-09  Beth Dakin  <bdakin@apple.com>
67195         Reviewed by Oliver.
67197         Fix for <rdar://problem/5586370> CSS Transform - incorrect matrix 
67198         math leads to crazy problems
67200         Transform matrices accept the first four parameters as CSS lengths. 
67201         CSS lengths get mapped into WebCore::Lengths as percents by 
67202         WebCore::convertToLength(). Percent lengths cannot call value(). It 
67203         does not yield a correct result and it asserts on Debug builds. 
67205         * rendering/RenderStyle.h:
67206         (WebCore::MatrixTransformOperation::apply): Instead of calling 
67207         value() on the lengths, call calcValue. This fixes the assert and 
67208         the bad rendering. 
67210 2007-11-09  Simon Hausmann  <hausmann@kde.org>
67212         build/link fix for Qt/Windows.
67214         userIdleTime() is stubbed in win/SystemTimeWin.cpp, so don't
67215         define it twice.
67217         * platform/qt/TemporaryLinkStubs.cpp:
67219 2007-11-09  Simon Hausmann  <hausmann@kde.org>
67221         Reviewed by Holger.
67223         Fix ContextMenu allocation in the Qt port.
67225         Store all items and submenus value based in ContextMenu and ContextMenuItem.
67226         That fixes the crashes when the context menu was populated with sub-menus because
67227         of the use of temporary ContextMenu objects like this:
67229         ContextMenu subMenu(...);
67230         subMenu.appendItem(...);
67231         subMenu.appendItem(...);
67233         subMenuItem.setSubMenu(&subMenu); // temporary pointer, need to _copy_ contents
67235         * platform/ContextMenu.h:
67236         * platform/ContextMenuItem.h:
67237         * platform/PlatformMenuDescription.h:
67238         * platform/qt/ContextMenuItemQt.cpp:
67239         (WebCore::ContextMenuItem::ContextMenuItem):
67240         (WebCore::ContextMenuItem::platformSubMenu):
67241         * platform/qt/ContextMenuQt.cpp:
67242         (WebCore::ContextMenu::ContextMenu):
67243         (WebCore::ContextMenu::~ContextMenu):
67244         (WebCore::ContextMenu::appendItem):
67245         (WebCore::ContextMenu::itemCount):
67247 2007-11-09  Peter Kasting  <zerodpx@gmail.com>
67249         Reviewed by Mark Rowe.
67251         http://bugs.webkit.org/show_bug.cgi?id=15909
67252         Malformed GIFs should not result in memory corruption.
67254         * platform/image-decoders/gif/GIFImageDecoder.cpp:
67255         (WebCore::GIFImageDecoder::haveDecodedRow):
67257 2007-11-08  Timothy Hatcher  <timothy@apple.com>
67259         Reviewed by Sam Weinig.
67261         Some Web Inspector CSS editing changes.
67262         - Only delete the property if all the text is delete or the new user input correctly parses.
67263           This prevents deleting the existing property if the new text is invalid.
67264         - Intercept the Escape key and cancel editing, not saving any changes.
67266         * page/inspector/StylesSidebarPane.js:
67268 2007-11-08  Kevin Ollivier  <kevino@theolliviers.com>
67270         Bakefiles for building WebCore, needed by wx port.
67272         Reviewed by Mark Rowe.
67274         * WebCoreSources.bkl: Added.
67275         * webcore-base.bkl: Added.
67276         * webcore-wx.bkl: Added.
67278 2007-11-08  Justin Haygood  <jhaygood@reaktix.com>
67280         Reviewed by Mark Rowe.
67282         http://bugs.webkit.org/show_bug.cgi?id=15905
67284         Fix builds with HTML 5 Storage support disabled.
67285         ENABLE(DATABASE) needs to be added in a few places.
67287         * page/InspectorController.cpp:
67288         * storage/Database.h:
67290 2007-11-08  Steve Falkenburg  <sfalken@apple.com>
67292         <rdar://problem/5524082> Allow images to be dragged out directly into other apps
67293         
67294         We weren't including CF_HDROP in our image drops.  This broke drag of
67295         images out of the browser window directly into other apps (examples
67296         include notepad, mspaint, msword).
67297         
67298         Reviewed by Oliver, Ada.
67300         * platform/win/ClipboardWin.cpp:
67301         (WebCore::createGlobalImageFileContent): Removed unused variable.
67302         (WebCore::createGlobalHDropContent): Added
67303         (WebCore::writeFileToDataObject): Write HDROP data if available.
67304         (WebCore::writeImageToDataObject): Write HDROP for dragged images.
67305         (WebCore::ClipboardWin::writeURL): Don't write HDROP for dragged URLs.
67307 2007-11-08  Xan Lopez  <xan@gnome.org>
67309         Reviewed by Alp.
67311         http://bugs.webkit.org/show_bug.cgi?id=15908
67312         Use g_object_ref_sink when available
67314         * platform/gtk/PopupMenuGtk.cpp:
67315         (WebCore::PopupMenu::show):
67316         * platform/gtk/ScrollViewGtk.cpp:
67317         (WebCore::ScrollView::setGtkAdjustments):
67319 2007-11-08  Dan Bernstein  <mitz@apple.com>
67321         Reviewed by Beth Dakin.
67323         - fix <rdar://problem/5491922> REGRESSION (Safari 2-3): Flash-based "Cash Optimizer" on etrade.com does not draw completely
67325         Test: fast/dom/length-attribute-mapping.html
67327         * dom/StyledElement.cpp:
67328         (WebCore::StyledElement::addCSSLength): Changed the garbage-stripping
67329         logic to stop after the first "%" or "*" in the string. This allows for
67330         "100%25" to be mapped to "100%" like it is in Firefox and WinIE.
67332 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
67334         - Build fix.
67336         * loader/FrameLoaderClient.h:
67337         * platform/graphics/svg/SVGImageEmptyClients.h:
67338         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
67340 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
67342         Reviewed by Sam.
67344         - windowObjectCleared() is no longer const.  It needs to setup the
67345         script debugger and cannot be const to do so.
67347         * loader/FrameLoaderClient.h:
67348         * platform/graphics/svg/SVGImageEmptyClients.h:
67349         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
67351 2007-11-08  Adam Roben  <aroben@apple.com>
67353         Hopeful Windows build fix
67355         * rendering/RenderObject.cpp: Touch this file to make it recompile.
67357 2007-11-08  Sam Weinig  <sam@webkit.org>
67359         Reviewed by Darin.
67361         Convert JavaScript internal function objects to use one class per
67362         function.  This avoids a switch statement inside what used to be
67363         the shared function classes and will allow Shark to better analyze
67364         the code.
67366         To make this switch, the value property of the HashEntry was changed
67367         to a union of an intptr_t (which is used to continue handle valueGetters)
67368         and function pointer which points to a static constructor for the
67369         individual new function objects.
67371         SunSpider claims this is a 1.0% speedup.
67373         - On the WebCore side, I updated CodeGeneratorJS.pm to generate the
67374           new classes and hand updated the remain non-generated (groan) classes.
67376         * bindings/js/JSDOMWindowCustom.cpp:
67377         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
67378         * bindings/js/JSEventTargetNode.cpp:
67379         (WebCore::JSEventTargetNodePrototypeFunctionAddEventListener::callAsFunction):
67380         (WebCore::JSEventTargetNodePrototypeFunctionRemoveEventListener::callAsFunction):
67381         (WebCore::JSEventTargetNodePrototypeFunctionDispatchEvent::callAsFunction):
67382         * bindings/js/JSEventTargetNode.h:
67383         * bindings/js/JSHTMLInputElementBase.cpp:
67384         (WebCore::JSHTMLInputElementBaseFunctionSetSelectionRange::callAsFunction):
67385         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
67386         * bindings/js/JSHTMLInputElementBase.h:
67387         (WebCore::JSHTMLInputElementBase::):
67388         * bindings/js/JSXMLHttpRequest.cpp:
67389         (KJS::JSXMLHttpRequestPrototypeFunctionAbort::callAsFunction):
67390         (KJS::JSXMLHttpRequestPrototypeFunctionGetAllResponseHeaders::callAsFunction):
67391         (KJS::JSXMLHttpRequestPrototypeFunctionGetResponseHeader::callAsFunction):
67392         (KJS::JSXMLHttpRequestPrototypeFunctionOpen::callAsFunction):
67393         (KJS::JSXMLHttpRequestPrototypeFunctionSend::callAsFunction):
67394         (KJS::JSXMLHttpRequestPrototypeFunctionSetRequestHeader::callAsFunction):
67395         (KJS::JSXMLHttpRequestPrototypeFunctionOverrideMIMEType::callAsFunction):
67396         (KJS::JSXMLHttpRequestPrototypeFunctionAddEventListener::callAsFunction):
67397         (KJS::JSXMLHttpRequestPrototypeFunctionRemoveEventListener::callAsFunction):
67398         (KJS::JSXMLHttpRequestPrototypeFunctionDispatchEvent::callAsFunction):
67399         * bindings/js/JSXMLHttpRequest.h:
67400         (KJS::JSXMLHttpRequest::impl):
67401         * bindings/js/JSXSLTProcessor.cpp:
67402         (KJS::JSXSLTProcessorPrototypeFunctionImportStylesheet::callAsFunction):
67403         (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
67404         (KJS::JSXSLTProcessorPrototypeFunctionTransformToDocument::callAsFunction):
67405         (KJS::JSXSLTProcessorPrototypeFunctionSetParameter::callAsFunction):
67406         (KJS::JSXSLTProcessorPrototypeFunctionGetParameter::callAsFunction):
67407         (KJS::JSXSLTProcessorPrototypeFunctionRemoveParameter::callAsFunction):
67408         (KJS::JSXSLTProcessorPrototypeFunctionClearParameters::callAsFunction):
67409         (KJS::JSXSLTProcessorPrototypeFunctionReset::callAsFunction):
67410         * bindings/js/JSXSLTProcessor.h:
67411         * bindings/js/kjs_events.cpp:
67412         (WebCore::JSClipboardPrototypeFunctionClearData::callAsFunction):
67413         (WebCore::JSClipboardPrototypeFunctionGetData::callAsFunction):
67414         (WebCore::JSClipboardPrototypeFunctionSetData::callAsFunction):
67415         (WebCore::JSClipboardPrototypeFunctionSetDragImage::callAsFunction):
67416         * bindings/js/kjs_events.h:
67417         * bindings/js/kjs_navigator.cpp:
67418         (KJS::Plugins::):
67419         (KJS::Navigator::getOwnPropertySlot):
67420         (KJS::Plugins::getOwnPropertySlot):
67421         (KJS::PluginsFunctionRefresh::callAsFunction):
67422         (KJS::NavigatorProtoFuncJavaEnabled::callAsFunction):
67423         * bindings/js/kjs_navigator.h:
67424         (KJS::Navigator::):
67425         * bindings/js/kjs_window.cpp:
67426         (KJS::Window::getOwnPropertySlot):
67427         (KJS::Window::put):
67428         (KJS::WindowProtoFuncAToB::callAsFunction):
67429         (KJS::WindowProtoFuncBToA::callAsFunction):
67430         (KJS::WindowProtoFuncOpen::callAsFunction):
67431         (KJS::WindowProtoFuncScrollBy::callAsFunction):
67432         (KJS::WindowProtoFuncScrollTo::callAsFunction):
67433         (KJS::WindowProtoFuncMoveBy::callAsFunction):
67434         (KJS::WindowProtoFuncMoveTo::callAsFunction):
67435         (KJS::WindowProtoFuncResizeBy::callAsFunction):
67436         (KJS::WindowProtoFuncResizeTo::callAsFunction):
67437         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
67438         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
67439         (KJS::WindowProtoFuncSetInterval::callAsFunction):
67440         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
67441         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
67442         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
67443         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
67444         (KJS::Location::getOwnPropertySlot):
67445         (KJS::Location::put):
67446         (KJS::LocationProtoFuncReplace::callAsFunction):
67447         (KJS::LocationProtoFuncReload::callAsFunction):
67448         (KJS::LocationProtoFuncAssign::callAsFunction):
67449         (KJS::LocationProtoFuncToString::callAsFunction):
67450         * bindings/js/kjs_window.h:
67451         (KJS::Window::):
67452         * bindings/scripts/CodeGeneratorJS.pm:
67454 2007-11-08  Mark Rowe  <mrowe@apple.com>
67456         Fix the Gtk, Qt and Wx builds.
67458         * platform/gtk/TemporaryLinkStubs.cpp:
67459         * platform/qt/TemporaryLinkStubs.cpp:
67460         * platform/wx/TemporaryLinkStubs.cpp:
67462 2007-11-08  Mark Rowe  <mrowe@apple.com>
67464         Not reviewed.  Fix two instances of includes using the wrong case in the filename.
67466         * platform/graphics/mac/MoviePrivateQTKit.mm:
67467         * platform/wx/MimeTypeRegistryWx.cpp:
67469 2007-11-08  Darin Adler  <darin@apple.com>
67471         Reviewed by Adam.
67473         - fix <rdar://problem/5552943> accesskey does not focus <button> elements
67475         Test: fast/forms/access-key.html
67477         * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::accessKeyAction):
67478         Added a call to focus.
67480 2007-11-07  Darin Adler  <darin@apple.com>
67482         Reviewed by Steve.
67484         - cut down on notImplemented() functions on Windows
67486         * bridge/AXObjectCache.h: Put #if around the accessibility
67487         global.
67489         * bridge/win/FrameWin.cpp: (WebCore::Frame::setNeedsReapplyStyles):
67490         Moved here from TemporaryLinkStubs.
67492         * dom/Document.cpp: (WebCore::Document::lastModified): Re-implemented
67493         using the ResourceResponse that's now available from the DocumentLoader.
67495         * editing/JSEditor.cpp: (execTranspose): Changed to call transpose() on
67496         the Editor instead of the obsolete one on the Frame.
67498         * loader/DocumentLoader.h: Removed getResponseModifiedHeader.
67499         * loader/FrameLoader.h: Removed overrideMediaType.
67501         * loader/gtk/DocumentLoaderGtk.cpp: Removed.
67502         * loader/mac/DocumentLoaderMac.mm: Removed.
67503         * loader/qt/DocumentLoaderQt.cpp: Removed.
67505         * page/Frame.cpp: Removed transpose.
67506         * page/Frame.h: Ditto.
67507         * page/FrameView.h: Removed updateBorder.
67508         * page/gtk/FrameGtk.cpp: Removed issueTransposeCommand.
67509         * page/mac/FrameMac.mm: Ditto.
67510         * page/mac/WebCoreFrameBridge.h: Removed issueTransposeCommand and
67511         overrideMediaType.
67512         * page/qt/FrameQt.cpp: Removed issueTransposeCommand.
67514         * platform/gtk/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled.
67515         * platform/qt/TemporaryLinkStubs.cpp: Ditto.
67516         * platform/win/TemporaryLinkStubs.cpp: Removed or moved all but 3 of the stubs.
67517         * platform/wx/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled,
67518         issueTransposeCommand, and overrideMediaType.
67520         * platform/network/cf/ResourceHandleCFNet.cpp:
67521         (WebCore::ResourceHandle::loadsBlocked): Moved here from TemporaryLinkStubs.
67522         (WebCore::ResourceHandle::willLoadFromCache): Ditto.
67523         * platform/win/GraphicsContextWin.cpp:
67524         (WebCore::GraphicsContextPlatformPrivate::clip): Ditto.
67525         * platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::inWindow): Ditto.
67526         * platform/win/SystemTimeWin.cpp: (WebCore::userIdleTime): Ditto.
67527         * platform/win/WidgetWin.cpp: (WebCore::Widget::setIsSelected): Ditto.
67529         * WebCore.pro: Updated for removed files.
67530         * WebCore.xcodeproj/project.pbxproj: Updated for removed file.
67532 2007-11-08  Mark Rowe  <mrowe@apple.com>
67534        Build fix for case-sensitive file systems.  Fix case of file names
67535        in #include's.
67537         * html/HTMLMediaElement.cpp:
67538         * platform/graphics/Movie.cpp:
67540 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
67542         Reviewed by Lars Knoll <lars@trolltech.com>.
67544         Remove some warnings about not implemented methods.
67546         * ResourceHandle::loadsBlocked and ResourceHandle::supportsBufferedData are
67547         specific to the NS API and won't be implemented on Qt.
67548         * ResourceHandle::bufferedData can not be reached as we return false in
67549         ResourceHandle::supportsBufferedData.
67552         * platform/network/qt/ResourceHandleQt.cpp:
67553         (WebCore::ResourceHandle::supportsBufferedData):
67555 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
67557         Reviewed by Lars Knoll <lars@trolltech.com>.
67559         Cleanup checking for the request method.
67561         * Check the request method only in QWebNetworkManager::add.
67562         * Currently HEAD, GET, POST are allowed and for everything else
67563         QWebNetworkManager::add returns false.
67564         * Returning false is compatible with ResourceHandle::start and it
67565         can be used in ResourceHandle::loadResourceSynchronously to generate
67566         a ResourceError
67569         * platform/network/qt/ResourceHandleQt.cpp:
67570         (WebCore::ResourceHandle::start):
67571         (WebCore::ResourceHandle::loadResourceSynchronously):
67573 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
67575         Reviewed by Lars Knoll <lars@trolltech.com>.
67577         Implement WebCore::callOnMainThread
67579         Implemented using a global QObject, that is moved to the main thread
67580         and then sending a custom event to it.
67581         Picked a number below QEvent::User but above any other documented value.
67584         * platform/qt/ThreadingQt.cpp:
67585         (WebCore::PerformFunctionEvent::PerformFunctionEvent):
67586         (WebCore::MainThreadInvoker::MainThreadInvoker):
67587         (WebCore::MainThreadInvoker::event):
67588         (WebCore::callOnMainThread):
67590 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
67592         Reviewed by Lars Knoll <lars@trolltech.com>.
67594         Avoid problems with calling QPainter::begin() on an already active paintdevice
67596         * Partial pick from 6200e04c3e0a77873c3b3f3969b65bc701020326 to avoid getting
67597         crashes on Qt/Mac 4.4 with QPainter::begin to fail because we already draw.
67598         * If we are in a layout or need one do not paint. This can happen for the PlatformScrollBar
67599         used by the ScrollView on a layout triggered by QWebPage::paintEvent.
67602         * platform/qt/WidgetQt.cpp:
67603         (WebCore::Widget::invalidateRect):
67605 2007-11-08  Eric Seidel  <eric@webkit.org>
67607         No review.
67609         * ksvg2/svg/SVGPathElement.h: remove old comment
67611 2007-11-07  Antti Koivisto  <antti@apple.com>
67613         Reviewed by Ollie.
67615         Ensure video renderer has correct size if video has already been loaded
67616         when it is constructed.
67618         * rendering/RenderVideo.cpp:
67619         (WebCore::RenderVideo::RenderVideo):
67621 2007-11-07  Antti Koivisto  <antti@apple.com>
67623         Reviewed by Ollie.
67625         Ensure video is visible when it should be.
67627         * rendering/RenderVideo.cpp:
67628         (WebCore::RenderVideo::updateMovie):
67630 2007-11-07  Dan Bernstein  <mitz@apple.com>
67632         Reviewed by Darin Adler.
67634         - fix <rdar://problem/5523503> Safari crashes clicking scroll bar in FaceBook 'Trips'
67636         Layers and listboxes are two kinds of ScrollBarClient that can be
67637         removed while the scrollbar is tracking the mouse. The scrollbar is not
67638         destroyed until later, and meanwhile it can try to call the client,
67639         which results in a crash.
67641         * manual-tests/stale-scrollbar-client-crash.html: Added.
67642         * platform/ScrollBar.h:
67643         (WebCore::Scrollbar::setClient): Added.
67644         * rendering/RenderLayer.cpp:
67645         (WebCore::RenderLayer::destroyScrollbar): Call Scrollbar::setClient().
67646         * rendering/RenderListBox.cpp:
67647         (WebCore::RenderListBox::~RenderListBox): Ditto.
67649 2007-11-07  Adam Roben  <aroben@apple.com>
67651         Fix <rdar://5569268> Crash when opening any FTP site in second tab/window
67653         Reviewed by Sam.
67655         No test possible.
67657         * platform/win/SharedBufferWin.cpp:
67658         (WebCore::SharedBuffer::createWithContentsOfFile): Bail if we get an
67659         empty path, because _wfopen_s will crash if we pass it a null pointer.
67661 2007-11-07  David Kilzer  <ddkilzer@apple.com>
67663         WebKit confuses width/height for Media Queries device-aspect-ratio evaluation
67664         <http://bugs.webkit.org/show_bug.cgi?id=14893>
67665         <rdar://problem/5380295>
67667         Reviewed by Darin.
67669         Tests: fast/css/device-aspect-ratio.html
67670                fast/css/max-device-aspect-ratio.html
67671                fast/css/min-device-aspect-ratio.html
67673         * css/MediaQueryEvaluator.cpp:
67674         (WebCore::parseAspectRatio): Renamed method parameters from a/b to h/v.
67675         (WebCore::device_aspect_ratioMediaFeatureEval): Renamed local variables from
67676         a/b to h/v.  Switched first two arguments of the call to cmpvalue() to fix
67677         the bug.
67679 2007-11-07  Dan Bernstein  <mitz@apple.com>
67681         Reviewed by Dave Hyatt.
67683         - fix http://bugs.webkit.org/show_bug.cgi?id=15887
67684           REGRESSION (r27576): Crash in RenderStyle::affectedByHoverRules clicking link on Digg
67686         Test: fast/css/display-none-inline-style-change-crash.html
67688         * dom/Element.cpp:
67689         (WebCore::Element::recalcStyle): Fixed the crash by null-checking
67690         the current style and removed other checks that are not strictly
67691         necessary.
67693 2007-11-07  Brady Eidson  <beidson@apple.com>
67695         Rubberstamped by Sam
67697         Remove FrameLoaderClient methods from SVG that were pruned awhile ago
67699         * platform/graphics/svg/SVGImageEmptyClients.h:
67701 2007-11-07  Dan Bernstein  <mitz@apple.com>
67703         Reviewed by Darin Adler.
67705         - fix a bug where CSS rules with :hover in the ancestor chain stopped
67706           working after changing the inline style declaration of the ancestor
67708         Test: fast/css/affected-by-hover-after-style-change.html
67710         * dom/Element.cpp:
67711         (WebCore::Element::recalcStyle): If we are not forcing style
67712         recalculation for all descendants, preserve any "affected by
67713         {hover|active|drag} bits that we may have acquired from them.
67714         Also renamed _style to currentStyle.
67716 2007-11-06  Timothy Hatcher  <timothy@apple.com>
67718         Reviewed by Adam.
67720         Bug 11920: Web Inspector should have Firebug-like CSS editing
67721         http://bugs.webkit.org/show_bug.cgi?id=11920
67723         * css/CSSComputedStyleDeclaration.h:
67724           (WebCore::CSSComputedStyleDeclaration::isPropertyImplicit): Return false. I'm not sure why
67725           this was true, but computed style has no concept of implicit. So false makes more sense
67726           and makes the code simpler in the inspector. This function was added for the inspector,
67727           so this isn't a compatibility change.
67728         * page/inspector/PropertiesSection.js: Add a getter/setter to reset populated status.
67729         * page/inspector/StylesSidebarPane.js: Some refactoring along with the main support for
67730           style editing.
67731         * page/inspector/inspector.css: Style changes for propery editing and focus correctness.
67732         * page/inspector/inspector.js: Look for a handleKeyEvent function of the focus element before
67733           trying to call a function based on the element's id. Call focused and blurred on the focused
67734           element when currentFocusElement is changed. Use the new listItemElement getter instead of
67735           the private property.
67736         * page/inspector/treeoutline.js: No longer expand on double click if ondblclick is implemented.
67737           Shrink the toggle zone to 10px to better match the size of the arrow. Add an onattach call
67738           to allow generation of the title using the DOM element. Add listItemElement and
67739           childrenListElement getters.
67740         * page/inspector/utilities.js: Add new helper prototype methods on CSSStyleDeclaration.
67741         * page/inspector/DocumentPanel.js: Use the new listItemElement getter instead of the private
67742           property. Also expand the DOM node on double click now that the TreeOutline dosen't do it.
67743         * page/inspector/Resource.js: Use the new listItemElement and childrenListElement getters
67744           instead of the private properties.
67746 2007-11-07  Simon Hausmann  <hausmann@kde.org>
67748         Reviewed by Alexey Proskuryakov.
67750         Coding style fix, don't use inline explicitly.
67752         * bridge/WindowFeatures.h:
67754 2007-11-07  Simon Hausmann  <hausmann@kde.org>
67756         Reviewed by Maciej.
67758         For safety provide a default constructor for WindowFeatures().
67759         ContextMenuController.cpp: createNewWindow as well as QWebPage need to
67760         create a default initialized WindowFeatures object on the fly.
67762         * bridge/WindowFeatures.h:
67763         (WebCore::WindowFeatures::WindowFeatures):
67765 2007-11-07  Simon Hausmann  <shausman@trolltech.com>
67767         Reviewed by Lars.
67769         Fix "nmake clean" for the Qt/Windows build by replacing tmp/ with a variable that ends with the correct type of slash/backslash depending on the choice of compiler/make tool.
67771         * WebCore.pro:
67773 2007-11-07  Simon Hausmann  <hausmann@kde.org>
67775         Reviewed by Lars.
67777         Made the QWebSettings::webGraphic functions static. The implementation was using QWebSettings::global() anyway.
67779         * platform/graphics/qt/ImageQt.cpp:
67780         (loadResourcePixmap):
67782 2007-11-07  Simon Hausmann  <hausmann@kde.org>
67784         Reviewed by Lars.
67786         Moved the WebCore::Image specific function loadResourcePixmap from qwebsettings.cpp to ImageQt.cpp and made it static.
67788         * platform/graphics/qt/ImageQt.cpp:
67789         (loadResourcePixmap):
67791 2007-11-07  Simon Hausmann  <hausmann@kde.org>
67793         Reviewed by Lars.
67795         Restructure the context menu classes for the Qt port. ContextMenu and ContextMenuItem don't store
67796         QActions/QMenus anymore but just store the action type, tag, title and optionally submenu as created
67797         in ContextMenu::populate().
67798         For the actual Qt context menu we traverse this structure after sendContextMenuEvent and create a QMenu
67799         out of it. That menu is currently not functional anymore though.
67801         * platform/ContextMenu.h:
67802         * platform/ContextMenuItem.h:
67803         (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
67804         * platform/PlatformMenuDescription.h:
67805         * platform/qt/ContextMenuItemQt.cpp:
67806         (WebCore::ContextMenuItem::ContextMenuItem):
67807         (WebCore::ContextMenuItem::type):
67808         (WebCore::ContextMenuItem::setType):
67809         (WebCore::ContextMenuItem::action):
67810         (WebCore::ContextMenuItem::setAction):
67811         (WebCore::ContextMenuItem::title):
67812         (WebCore::ContextMenuItem::setTitle):
67813         (WebCore::ContextMenuItem::platformSubMenu):
67814         (WebCore::ContextMenuItem::setSubMenu):
67815         (WebCore::ContextMenuItem::setChecked):
67816         (WebCore::ContextMenuItem::setEnabled):
67817         * platform/qt/ContextMenuQt.cpp:
67818         (WebCore::ContextMenu::ContextMenu):
67819         (WebCore::ContextMenu::~ContextMenu):
67820         (WebCore::ContextMenu::appendItem):
67821         (WebCore::ContextMenu::itemCount):
67822         (WebCore::ContextMenu::insertItem):
67823         (WebCore::ContextMenu::setPlatformDescription):
67824         (WebCore::ContextMenu::platformDescription):
67826 2007-11-07  Simon Hausmann  <hausmann@kde.org>
67828         Reviewed by Lars.
67830         Changed ContextMenu::setPlatformDescription for the Qt port to not show the qmenu right away
67831         but instead just behave as a normal setter that takes ownership of the platform menu description (the qmenu).
67832         Instead now QWebPage::contextMenuEvent() retrieves the QMenu after calling sendContextMenuEvent and calls exec()
67833         on it.
67835         * platform/qt/ContextMenuQt.cpp:
67837 2007-11-07  Simon Hausmann  <hausmann@kde.org>
67839         Reviewed by Lars.
67841         Changed to PlatformMouseEvent constructor to allow construction from a QContextMenuEvent.
67842         Call sendContextMenuEvent on the event handler from a QWidget::contextMenuEvent re-implementation instead of in mousePressEvent.
67844         * platform/PlatformMouseEvent.h:
67845         * platform/qt/PlatformMouseEventQt.cpp:
67846         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
67848 2007-11-07  Lars Knoll  <lars@trolltech.com>
67850         Reviewed by Simon.
67852         don't put nbsp's into the plan text paste
67853         
67854         Fix both ClipboardQt and PasteboardQt to replace
67855         nbsp's with spaces before putting the text onto the
67856         native clipboard. This is consistent with Mac and Win
67857         and fixes at least editing/pasteboard/4076267-3.html
67859         * platform/qt/ClipboardQt.cpp:
67860         (WebCore::ClipboardQt::writeRange):
67861         * platform/qt/PasteboardQt.cpp:
67862         (WebCore::Pasteboard::writeSelection):
67864 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
67866         Reviewed by Lars Knoll <lars@trolltech.com>.
67868         Implement Pasteboard::writeImage()
67869         
67870         * Pasteboard is now fully implemented. Copying of Images into the Clipboard
67871         is now supported.
67872         * As with URLs we only copy into the Clipboard (and not additionally to the
67873         Selection)
67875         * platform/qt/PasteboardQt.cpp:
67876         (WebCore::Pasteboard::writeImage):
67878 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
67880         Reviewed by Lars Knoll <lars@trolltech.com>.
67882         Apple CodingStyle fixes
67884         * platform/qt/PasteboardQt.cpp:
67885         (WebCore::Pasteboard::documentFragment):
67887 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
67889         Reviewed by Lars Knoll <lars@trolltech.com>.
67891         Implement Pasteboard::writeURL()
67892         * The URL currently gets written as text/plain and text/uri-list.
67893         The win and mac port have some more types which we currently do
67894         not support. When supporting them we can use the 'titleString'
67895         as well.
67896         * As with writeSelection we only copy into the Clipboard. We could
67897         consider copying into the Selection as well.
67899         * platform/qt/PasteboardQt.cpp:
67900         (WebCore::Pasteboard::writeURL):
67902 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
67904         Reviewed by Lars Knoll <lars@trolltech.com>.
67906         Kill whitespace
67908         * platform/qt/PasteboardQt.cpp:
67909         (WebCore::Pasteboard::documentFragment):
67911 2007-11-07  Lars Knoll  <lars@trolltech.com>
67913         Reviewed by Simon.
67915         Use the correct function calls to convert a selection to
67916         HTML or plain text.
67918         * platform/qt/ClipboardQt.cpp:
67919         (WebCore::ClipboardQt::setData):
67920         (WebCore::ClipboardQt::writeRange):
67921         * platform/qt/PasteboardQt.cpp:
67922         (WebCore::Pasteboard::writeSelection):
67924 2007-11-07  Lars Knoll  <lars@trolltech.com>
67926         Reviewed by Simon.
67928         Some more clipboard fixes.
67929         
67930         We have to set things immediately on the QClipBoard if the
67931         Clipboard object is not for dragging.
67932         
67933         This is due to the fact that the Clipboard object might be
67934         rather long lived if accessed through javascript (it'll only
67935         get deleted by JS garbage collection). We have to transfer
67936         the data over to the QClipboard before that to make things work.
67937         
67938         Fixes editing/execCommand/copy-without-selection.html
67940         * platform/qt/ClipboardQt.cpp:
67941         (WebCore::ClipboardQt::ClipboardQt):
67942         (WebCore::ClipboardQt::~ClipboardQt):
67943         (WebCore::ClipboardQt::clearData):
67944         (WebCore::ClipboardQt::clearAllData):
67945         (WebCore::ClipboardQt::getData):
67946         (WebCore::ClipboardQt::setData):
67947         (WebCore::ClipboardQt::declareAndWriteDragImage):
67948         (WebCore::ClipboardQt::writeURL):
67949         (WebCore::ClipboardQt::writeRange):
67951 2007-11-07  Simon Hausmann  <hausmann@kde.org>
67953         Reviewed by Mark.
67955         Fix compilation on Windows with non-cygwin perl. open FILE, "|-" is
67956         not supported due to implicit forks, use IPC::Open2 instead.
67958         * bindings/scripts/IDLParser.pm:
67960 2007-11-07  Dan Bernstein  <mitz@apple.com>
67962         Reviewed by Brady Eidson.
67964         - fix http://bugs.webkit.org/show_bug.cgi?id=15877
67965           REGRESSION: r27486 caused a layout regression at my bank's website
67967         Test: fast/block/float/overhanging-after-height-decrease-offsets.html
67969         * rendering/RenderBlock.cpp:
67970         (WebCore::RenderBlock::layoutBlock):
67972 2007-11-06  Beth Dakin  <bdakin@apple.com>
67974         Reviewed by Sam.
67976         <rdar://problem/5575812> REGRESSION:When using absolute positioning 
67977         with overflow:auto div, WebKit seems to add an additional 15px
67979         * rendering/RenderBox.cpp:
67980         (WebCore::RenderBox::containingBlockWidthForPositioned): We need to 
67981         subtract off the vertical scrollbar width too.
67983 2007-11-06  Justin Garcia  <justin.garcia@apple.com>
67985         Reviewed by Dan Bernstein.
67986         
67987         <rdar://problem/5583387> ASSERTION FAILED: !refChild->hasTagName(bodyTag) when pasting newline in plain text into rich text Mail
67988         <rdar://problem/5583362> REGRESSION (5523.10.3-TOT): Newlines stripped when pasting plain text in Mail
67990         * editing/markup.cpp:
67991         (WebCore::createFragmentFromText): Put paragraphs of text into clones of the block
67992         that encloses the input context, unless that block is the body, which shouldn't
67993         be cloned.  In that case, use regular divs, as we did before r27369.
67995 2007-11-06  Christian Dywan  <christian@twotoasts.de>
67997         Reviewed by Darin.
67999         Fix http://bugs.webkit.org/show_bug.cgi?id=15828
68000         Bug 15828: WebKit GTK include and lib directory is installed in qt4-named directory
68002         * WebCore.pro: Use sane default install paths for the gtk port.
68004 2007-11-06  Justin Garcia  <justin.garcia@apple.com>
68006         Reviewed by Darin Adler.
68007         
68008         <rdar://problem/5576619> 
68009         REGRESSION: Caret disappears after deleting the last character in inline hole (15714)
68011         * editing/TypingCommand.cpp:
68012         (WebCore::TypingCommand::deleteSelection): Like the other TypingCommands, including
68013         both of the other deletion commands, call typingAddedToOpenCommand(), which takes 
68014         the command's endingSelection and sets it as selection.
68016 2007-11-06  Dan Bernstein  <mitz@apple.com>
68018         Reviewed by Antti Koivisto and Dave Hyatt.
68020         - fix <rdar://problem/5582961> Incorrect layout and floating object list corruption when CSS decreases a block's height
68022         Test: fast/block/float/overhanging-after-height-decrease.html
68024         * rendering/RenderBlock.cpp:
68025         (WebCore::RenderBlock::layoutBlock): If after calculating the height
68026         it turns out that there are overhanging floats that were not overhanging
68027         before, rescan children with overhanging floats and add them. 
68028         (WebCore::RenderBlock::layoutBlockChildren): Added a parameter that
68029         returns the lowest float bottom of any of the children.
68030         (WebCore::RenderBlock::addOverhangingFloats): Changed to return the
68031         lowest float bottom.
68032         * rendering/RenderBlock.h:
68034 2007-11-06  Adele Peterson  <adele@apple.com>
68036         Reviewed by Darin.
68038         Switched all uses of HTMLImageLoader to use OwnPtrs.
68040         * html/HTMLInputElement.h:
68041         * html/HTMLInputElement.cpp:
68042         (WebCore::HTMLInputElement::init):
68043         (WebCore::HTMLInputElement::~HTMLInputElement):
68044         (WebCore::HTMLInputElement::setInputType):
68045         (WebCore::HTMLInputElement::parseMappedAttribute):
68046         (WebCore::HTMLInputElement::attach):
68047         * html/HTMLObjectElement.h:
68048         * html/HTMLObjectElement.cpp:
68049         (WebCore::HTMLObjectElement::HTMLObjectElement):
68050         (WebCore::HTMLObjectElement::~HTMLObjectElement):
68051         (WebCore::HTMLObjectElement::parseMappedAttribute):
68052         (WebCore::HTMLObjectElement::attach):
68053         * html/HTMLVideoElement.h:
68054         * html/HTMLVideoElement.cpp:
68055         (WebCore::HTMLVideoElement::HTMLVideoElement):
68056         (WebCore::HTMLVideoElement::attach):
68057         (WebCore::HTMLVideoElement::detach):
68058         (WebCore::HTMLVideoElement::parseMappedAttribute):
68060 2007-11-06  Antti Koivisto  <antti@apple.com>
68062         Reviewed by Darin.
68063         
68064         Trigger media load on on src attribute changes as specified in new HTML5 draft.
68066         Tests: media/video-src-change.html
68067                media/video-src-remove.html
68068                media/video-src-set.html
68070         * html/HTMLMediaElement.cpp:
68071         (WebCore::HTMLMediaElement::attributeChanged):
68072         * html/HTMLMediaElement.h:
68074 2007-11-06  Dan Bernstein  <mitz@apple.com>
68076         Reviewed by Darin Adler.
68078         - fix http://bugs.webkit.org/show_bug.cgi?id=15838
68079           Incomplete repaint toggling "How you know this person" on Facebook
68081         Test: fast/repaint/make-children-non-inline.html
68083         * rendering/RenderBlock.cpp:
68084         (WebCore::RenderBlock::makeChildrenNonInline): Repaint the block. This
68085         is needed because the inline children may be repositioned as they move
68086         into new anonymous blocks, but those blocks have no knowledge of where
68087         their children used to be, so they cannot invalidate those areas.
68089 2007-11-06  Alexey Proskuryakov  <ap@webkit.org>
68091         Reviewed by Darin.
68093         http://bugs.webkit.org/show_bug.cgi?id=15847
68094         Some editing cleanup
68096         No change in functionality.
68098         * editing/TextIterator.cpp:
68099         (WebCore::plainText):
68100         * editing/TextIterator.h:
68101         Made WebCore::plainText() return String instead of DeprecatedString.
68103         * bridge/mac/WebCoreAXObject.mm:
68104         (-[WebCoreAXObject textUnderElement]):
68105         (-[WebCoreAXObject value]):
68106         (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
68107         (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
68108         (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
68109         Updated for the above change. There is no need to explicitly convert to NSString now.
68111         * editing/EditCommand.cpp:
68112         (WebCore::EditCommand::EditCommand): m_startingSelection and m_endingSelection are actually
68113         initialized in constructor body, so the work done in initializer list was wasted.
68115         (WebCore::EditCommand::apply): Moved some stars.
68116         (WebCore::EditCommand::unapply): Ditto.
68117         (WebCore::EditCommand::reapply): Ditto.
68118         (WebCore::EditCommand::setStartingSelection): The loop exit condition was evaluated twice,
68119         removed one of the checks.
68121         * editing/SelectionController.cpp:
68122         (WebCore::SelectionController::toString): plainText() result type now matches what we need here.
68124         * page/mac/WebCoreFrameBridge.h:
68125         * page/mac/WebCoreFrameBridge.mm:
68126         Removed unused -[WebCoreFrameBridge deleteKeyPressedWithSmartDelete:granularity:] and
68127         -[WebCoreFrameBridge forwardDeleteKeyPressedWithSmartDelete:granularity:].
68129 2007-11-05  Mark Rowe  <mrowe@apple.com>
68131         Mac build fix.
68133         * bindings/js/JSHTMLDocumentCustom.cpp:
68134         (WebCore::writeHelper):
68136 2007-11-05  Adam Roben  <aroben@apple.com>
68138         Don't crash if SafariTheme can't be loaded
68140         PlatformScrollBarSafari and RenderThemeSafari were not checking
68141         whether SafariTheme was successfully loaded. All other uses of
68142         SafariTheme already check this.
68144         Reviewed by Steve.
68146         * platform/win/PlatformScrollBarSafari.cpp: Don't paint if SafariTheme
68147         couldn't be loaded.
68148         (WebCore::PlatformScrollbar::paintButton):
68149         (WebCore::PlatformScrollbar::paintTrack):
68150         (WebCore::PlatformScrollbar::paintThumb):
68151         * rendering/RenderThemeSafari.cpp:
68152         (WebCore::RenderThemeSafari::isControlStyled): Always return true if
68153         we couldn't load SafariTheme. This way we should never try to paint
68154         themed controls (and we assert as such in the paint functions).
68155         (WebCore::RenderThemeSafari::paintCheckbox):
68156         (WebCore::RenderThemeSafari::paintRadio):
68157         (WebCore::RenderThemeSafari::paintButton):
68158         (WebCore::RenderThemeSafari::paintTextField):
68159         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
68160         (WebCore::RenderThemeSafari::paintTextArea):
68161         (WebCore::RenderThemeSafari::paintMenuList):
68162         (WebCore::RenderThemeSafari::paintSliderThumb):
68163         (WebCore::RenderThemeSafari::paintSearchField):
68164         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
68165         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
68166         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
68168 2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>
68170         Adding the rest of wx port's graphics impl. 
68172         Rubber-stamped by Maciej Stachowiak.
68174         * platform/graphics/wx/AffineTransformWx.cpp: Added.
68175         * platform/graphics/wx/GraphicsContextWx.cpp: Added.
68176         * platform/graphics/wx/ImageBufferWx.cpp: Added.
68177         * platform/graphics/wx/ImageSourceWx.cpp: Added.
68178         * platform/graphics/wx/ImageWx.cpp: Added.
68179         * platform/graphics/wx/PathWx.cpp: Added.
68181 2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>
68183         wx port bug fixes and new files to get platform/wx building on trunk.
68185         Rubber-stamped by Maciej Stachowiak.
68187         * platform/wx/CursorWx.cpp:
68188         * platform/wx/FileSystemWx.cpp: Added.
68189         * platform/wx/FontCacheWx.cpp:
68190         * platform/wx/FontPlatformDataWx.cpp:
68191         * platform/wx/FontWx.cpp:
68192         * platform/wx/KeyboardEventWx.cpp:
68193         * platform/wx/LocalizedStringsWx.cpp: Added.
68194         * platform/wx/LoggingWx.cpp: Added.
68195         * platform/wx/RenderThemeWx.cpp:
68196         * platform/wx/ScrollViewWx.cpp:
68197         * platform/wx/SharedTimerWx.cpp:
68198         * platform/wx/StringWx.cpp:
68199         * platform/wx/ThreadingWx.cpp: Added.
68200         * platform/wx/WidgetWx.cpp:
68202 2007-11-05  Adele Peterson  <adele@apple.com>
68204         Reviewed by Maciej.
68206         Fix for <rdar://problem/5579999> Add poster attribute for video element
68208         * html/HTMLAttributeNames.in: Added poster attribute.
68210         * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement):
68211           Calls imageSourceAttributeName instead of having special cases for the different kinds of elements. 
68212         * dom/Element.cpp: (WebCore::Element::imageSourceAttributeName): Added.
68213         * dom/Element.h:
68214         * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::imageSourceAttributeName): Added.
68215         * html/HTMLObjectElement.h:
68217         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::movieNetworkStateChanged):
68218           Calls updatePosterImage when the network state is empty and when the first frame has been loaded.
68219         * html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::rendererIsNeeded): Made this inline.  HTMLVideoElement now also implements this.
68221         * html/HTMLVideoElement.idl: Added case for poster attribute.
68222         * html/HTMLVideoElement.h: Added image loader and flag to keep track of whether or not the poster image should be shown.
68223         * html/HTMLVideoElement.cpp:
68224         (WebCore::HTMLVideoElement::HTMLVideoElement): Initialize m_imageLoader and m_shouldShowPosterImage.
68225         (WebCore::HTMLVideoElement::rendererIsNeeded): Calls HTMLElement::rendererIsNeeded since HTMLMediaElements have renderer by default.
68226         (WebCore::HTMLVideoElement::createRenderer): Create a RenderImage or RenderVideo depending on whether or not the poster image should be shown.
68227         (WebCore::HTMLVideoElement::attach): Set up image loader and RenderImage if necessary.
68228         (WebCore::HTMLVideoElement::detach): Delete image loader if its no longer needed.
68229         (WebCore::HTMLVideoElement::parseMappedAttribute): Added case to process poster attribute.
68230         (WebCore::HTMLVideoElement::poster): Added getter for poster attribute.
68231         (WebCore::HTMLVideoElement::setPoster): Added setter for poster attribute.
68232         (WebCore::HTMLVideoElement::isURLAttribute): Added.
68233         (WebCore::HTMLVideoElement::imageSourceAttributeName): Added.
68234         (WebCore::HTMLVideoElement::updatePosterImage): Added.  Updates m_shouldShowPosterImage and if its changed, detaches and attaches so the renderer is correct.
68236 2007-11-05  Adam Roben  <aroben@apple.com>
68238         Fix <rdar://5563572> SVG image support is turned off
68240         Turned on SVG images for all platforms.
68242         Reviewed by Eric.
68244         * WebCore.vcproj/WebCore.vcproj: Added SVGImage.{cpp,h}
68245         * loader/CachedImage.cpp:
68246         (WebCore::CachedImage::createImage): Removed platform checks for
68247         SVGImage.
68249 2007-11-05  Antti Koivisto  <antti@apple.com>
68251         Reviewed by Darin.
68253         QTMovieView can generate callbacks during paint. This can lead to crashes.
68254         
68255         Delay callbacks so they get handled after painting is completed. No test case,
68256         I don't know how to reliably reproduce this.
68258         * platform/graphics/mac/MoviePrivateQTKit.mm:
68259         (WebCore::MoviePrivate::MoviePrivate):
68260         (WebCore::MoviePrivate::~MoviePrivate):
68261         (WebCore::MoviePrivate::paint):
68262         (-[WebCoreMovieObserver initWithCallback:WebCore::]):
68263         (-[WebCoreMovieObserver disconnect]):
68264         (-[WebCoreMovieObserver loadStateChanged:]):
68265         (-[WebCoreMovieObserver rateChanged:]):
68266         (-[WebCoreMovieObserver sizeChanged:]):
68267         (-[WebCoreMovieObserver timeChanged:]):
68268         (-[WebCoreMovieObserver volumeChanged:]):
68269         (-[WebCoreMovieObserver didEnd:]):
68270         (-[WebCoreMovieObserver setDelayCallbacks:]):
68272 2007-11-05  Antti Koivisto  <antti@apple.com>
68274         Reviewed by Adam.
68276         Add some missing WebCore* prefixes to ObjC classes
68278         * platform/mac/FileChooserMac.mm:
68279         (WebCore::FileChooser::FileChooser):
68280         * platform/mac/SharedBufferMac.mm:
68281         (WebCore::SharedBuffer::createNSData):
68282         (WebCore::SharedBuffer::createCFData):
68283         * platform/mac/SharedTimerMac.cpp:
68284         (WebCore::setSharedTimerFireTime):
68286 2007-11-05  Ada Chan  <adachan@apple.com>
68288         <rdar://problem/5579772> Regression: AltGr does not work
68289         We now store the system key event info in PlatforkKeyboardEvent().
68291         Reviewed by Oliver.
68293         * platform/PlatformKeyboardEvent.h:
68294         (WebCore::PlatformKeyboardEvent::isSystemKey):
68295         * platform/win/KeyEventWin.cpp:
68296         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
68298 2007-11-02  Tristan O'Tierney  <tristan@apple.com>
68300         Reviewed by Darin Adler.
68302         * WebCore.xcodeproj/project.pbxproj:
68303         Set WindowFeatures.h as a Private header.
68304         
68305         * loader/FrameLoader.cpp:
68306         (WebCore::FrameLoader::createWindow):
68307         Revised to use a single createWindow function instead of
68308         two createWindow functions and one createModalDialog function.
68309         The logic for this is now addressed in WebKit in an effort
68310         to make this easier to follow.
68311         
68312         * page/Chrome.cpp:
68313         (WebCore::Chrome::createWindow):
68314         * page/Chrome.h:
68315         * page/ChromeClient.h:
68316         * page/ContextMenuController.cpp:
68317         (WebCore::openNewWindow):
68318         * platform/graphics/svg/SVGImageEmptyClients.h:
68319         (WebCore::SVGEmptyChromeClient::createWindow):
68320         Revised to take new additional windowFeatures parameter.
68322 2007-11-04  Geoffrey Garen  <ggaren@apple.com>
68324         Reviewed by Darin Adler.
68325         
68326         http://bugs.webkit.org/show_bug.cgi?id=15835
68328         Small adaptations to new KJS::List class.
68330         * bindings/js/kjs_window.cpp:
68331         (KJS::WindowFunc::callAsFunction):
68332         (KJS::ScheduledAction::ScheduledAction):
68334 2007-11-05  Adam Roben  <aroben@apple.com>
68336         Allow passing a base class pointer to COMPtr::copyRefTo
68338         Reviewed by Sam.
68340         * platform/win/COMPtr.h:
68342 2007-11-05  Dan Bernstein  <mitz@apple.com>
68344         Reviewed by Oliver Hunt.
68346         - fix ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) when a class attribute is all-whitespace
68348         Test: fast/dom/class-all-whitespace.html
68350         * dom/StyledElement.cpp:
68351         (WebCore::StyledElement::parseMappedAttribute): Check if there is any
68352         non-whitespace character in the class attribute.
68354 2007-11-05  Brady Eidson  <beidson@apple.com>
68356         Reviewed by Sam
68358         Add transaction blocking to the DatabaseAuthorizer in preparation for the new version
68359         of the sql storage API
68361         * storage/DatabaseAuthorizer.cpp:
68362         (WebCore::DatabaseAuthorizer::allowTransaction):
68363         * storage/DatabaseAuthorizer.h:
68365 2007-11-05  Mark Rowe  <mrowe@apple.com>
68367         Reviewed by Alp Toker.
68369         Have getMIMETypeForExtension return a null string when no MIME type is known
68370         for the extension rather than returning "text/plain".  This prevents plugin data
68371         being dumped into object elements when plugins are disabled.
68373         * platform/gtk/MIMETypeRegistryGtk.cpp:
68374         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
68376 2007-11-04  Sam Weinig  <sam@webkit.org>
68378         Rubber-stamped by Adam Roben.
68380         Rename SecurityOrigin::allowsAccessFrom to SecurityOrigin::canAccess to 
68381         clear up ambiguity.
68383         * bindings/js/kjs_window.cpp:
68384         (KJS::Window::isSafeScript):
68385         * platform/SecurityOrigin.cpp:
68386         (WebCore::SecurityOrigin::canAccess):
68387         * platform/SecurityOrigin.h:
68389 2007-11-04  Timothy Hatcher  <timothy@apple.com>
68391         Reviewed by Adam.
68393         Bug 15834: There are many subtle bugs in the Styles pane of the Web Inspector
68394         http://bugs.webkit.org/show_bug.cgi?id=15834
68396         - Broke up DocumentPanel and added three SidebarPane sub-classes.
68397         - Fixed many Style pane bugs, including:
68398           * Poor handling of duplicate properties in the same rule. Some of this can't be
68399             fixed since we can't only get the "winning" value for duplicate properties.
68400             So we should only show one entry per unique property name.
68401           * Computed style does not show font shorthand sub-properties if 'font' was used.
68402           * Property priority was broken, the wrong properties were crossed out.
68403           * The 'border' shorthand shows null for the shorthand value.
68404           * Shorthands didn't show their priority (e.g. !important).
68405           * HSL and HTML hex colors didn't have preview swatch blocks.
68406           * Code refactoring, making it easier to reuse for console.log later.
68408         * page/inspector/DocumentPanel.js: Move sidebar pane code to three seperate
68409           classes in new files.
68410         * page/inspector/MetricsSidebarPane.js: Added.
68411         * page/inspector/Panel.js: Remove an InspectorController.log() call.
68412         * page/inspector/PropertiesSection.js: Add the section to the TreeOutline.
68413           So TreeElements can access properties on their section.
68414         * page/inspector/PropertiesSidebarPane.js: Added.
68415         * page/inspector/SidebarPane.js: Remove the explicit asignment of the
68416           onexpand and oncollapse to null. These were hiding prototypes.
68417         * page/inspector/StylesSidebarPane.js: Added.
68418         * page/inspector/inspector.html: Include the new script files.
68419         * page/inspector/treeoutline.js: If a null representedObject is passed
68420           in just use a empty object.
68422 2007-11-04  David D. Kilzer  <ddkilzer@webkit.org>
68424         Fix build when spaces appear in the WebKit source path.
68426         Reviewed by Mark Rowe.
68428         * bindings/scripts/IDLParser.pm: Use safer open() method which lists
68429         arguments individually and prevents the need to work around spaces
68430         in the path.
68432 2007-11-04  Alp Toker  <alp@atoker.com>
68434         Reviewed by Alexey Proskuryakov.
68436         Fix a crash when no clipboard text is available
68438         * platform/gtk/PasteboardGtk.cpp:
68439         (WebCore::Pasteboard::plainText):
68441 2007-11-03  Darin Adler  <darin@apple.com>
68443         Reviewed by Maciej.
68445         - WebCore part of http://bugs.webkit.org/show_bug.cgi?id=15821
68446           remove unused PCRE features for speed
68448         * page/Frame.cpp: (WebCore::Frame::matchLabelsAgainstElement):
68449         * page/mac/FrameMac.mm: (WebCore::Frame::matchLabelsAgainstElement):
68450         Remove use of "[[:digit:]]" syntax. This hasn't worked for some time.
68451         Use "\d" instead.
68453         * platform/RegularExpression.h: Remove the unused cap function. We can
68454         add it back later if we find we need it.
68455         * platform/RegularExpression.cpp:
68456         (WebCore::RegularExpression::Private::compile): Update for JavaScriptCore
68457         regular expression entry point changes.
68458         (WebCore::RegularExpression::Private::~Private): Ditto.
68459         (WebCore::RegularExpression::match): Remove the code to set PCRE_NOTBOL.
68460         This means that regular expressions with metacharactesr like ^ in them
68461         won't work any more with non-whole-string searches, but we don't use
68462         any regular expressions like that.
68464 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
68466         Update the link stubs to match the current build,
68467         and fix coding style issues.
68469         Reviewed by Mark Rowe.
68471         * platform/wx/TemporaryLinkStubs.cpp:
68472         (loadResourceIntoArray):
68473         (findNextSentenceFromIndex):
68474         (findSentenceBoundary):
68475         (Frame::dashboardRegionsChanged):
68476         (WebCore::historyContains):
68477         (CachedPage::close):
68478         (Editor::showStylesPanel):
68479         (EventHandler::passSubframeEventToSubframe):
68480         (EventHandler::passWheelEventToWidget):
68481         (WebCore::currentTextBreakLocaleID):
68483 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
68485         wx <-> WebKit conversions for IntPoint, IntRect and FloatRect
68487         Reviewed by Mark Rowe.
68489         * platform/graphics/wx/FloatRectWx.cpp: Added.
68490         * platform/graphics/wx/IntPointWx.cpp: Added.
68491         * platform/graphics/wx/IntRectWx.cpp: Added.
68493 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
68495         wx <-> WebKit data type conversions for Pen and Color.
68497         Reviewed by Darin Adler.
68499         * platform/graphics/wx: Added.
68500         * platform/graphics/wx/ColorWx.cpp: Added.
68501         * platform/graphics/wx/PenWx.cpp: Added.
68503 2007-11-03  Sam Weinig  <sam@webkit.org>
68505         Reviewed by Oliver.
68507         Remove dummy variable from ClassInfo reducing the size of the struct by 1 word.
68508         The variable had been kept around for binary compatibility, but since nothing
68509         else is there is no point in continuing to keep it around.
68511         * bindings/js/JSDOMExceptionConstructor.cpp:
68512         * bindings/js/JSHTMLInputElementBase.cpp:
68513         * bindings/js/JSNamedNodesCollection.cpp:
68514         * bindings/js/JSXMLHttpRequest.cpp:
68515         * bindings/js/JSXSLTProcessor.cpp:
68516         * bindings/js/kjs_css.cpp:
68517         * bindings/js/kjs_events.cpp:
68518         * bindings/js/kjs_navigator.cpp:
68519         * bindings/js/kjs_window.cpp:
68520         * bindings/scripts/CodeGeneratorJS.pm:
68522 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
68524         Build fixes to get wx impls. building on trunk.
68526         Reviewed by Mark Rowe.
68528         * platform/wx/DragDataWx.cpp:
68529         (WebCore::DragData::containsFiles):
68530         (WebCore::DragData::asFilenames):
68531         * platform/wx/DragImageWx.cpp:
68532         (WebCore::scaleDragImage):
68533         * platform/wx/MimeTypeRegistryWx.cpp:
68534         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
68535         * platform/wx/MouseEventWx.cpp:
68536         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
68537         * platform/wx/MouseWheelEventWx.cpp:
68538         * platform/wx/PasteboardWx.cpp:
68539         (WebCore::Pasteboard::writeImage):
68540         * platform/wx/WidgetWx.cpp:
68541         (WebCore::Widget::setCursor):
68543 2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>
68545         Sort files(...); sections of Xcode project files.
68547         Rubber-stamped by Darin.
68549         * WebCore.xcodeproj/project.pbxproj:
68550         * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj:
68552 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
68554         Coding style fixes for platform/wx files.
68556         Reviewed by Mark Rowe.
68558         * platform/wx/ClipboardWx.cpp:
68559         * platform/wx/GlyphMapWx.cpp:
68560         * platform/wx/ScreenWx.cpp:
68562 2007-11-03  Alp Toker  <alp@atoker.com>
68564         Reviewed by Mark Rowe.
68566         Implement platform scrollbar static width/height getters
68568         * platform/gtk/PlatformScrollBar.h:
68569         * platform/gtk/PlatformScrollBarGtk.cpp:
68570         (scrollbarSize):
68571         (PlatformScrollbar::horizontalScrollbarHeight):
68573 2007-11-03  Alp Toker  <alp@atoker.com>
68575         Reviewed by Mark Rowe.
68577         Cast function pointers to gpointer.
68579         * platform/gtk/PlatformScrollBarGtk.cpp:
68580         (PlatformScrollbar::~PlatformScrollbar):
68582 2007-11-03  Alp Toker  <alp@atoker.com>
68584         Reviewed by Adam Roben.
68586         RenderThemeGtk implementation based on Mozilla's GTK+ style code
68588         There is still work needed to complete this feature.
68590         * WebCore.pro:
68591         * platform/gtk/RenderThemeGtk.cpp:
68592         (WebCore::theme):
68593         (WebCore::RenderThemeGtk::RenderThemeGtk):
68594         (WebCore::supportsFocus):
68595         (WebCore::RenderThemeGtk::supportsFocusRing):
68596         (WebCore::RenderThemeGtk::controlSupportsTints):
68597         (WebCore::RenderThemeGtk::baselinePosition):
68598         (WebCore::adjustMozStyle):
68599         (WebCore::setMozState):
68600         (WebCore::paintMozWidget):
68601         (WebCore::setButtonPadding):
68602         (WebCore::setToggleSize):
68603         (WebCore::RenderThemeGtk::setCheckboxSize):
68604         (WebCore::RenderThemeGtk::paintCheckbox):
68605         (WebCore::RenderThemeGtk::setRadioSize):
68606         (WebCore::RenderThemeGtk::paintRadio):
68607         (WebCore::RenderThemeGtk::adjustButtonStyle):
68608         (WebCore::RenderThemeGtk::paintButton):
68609         (WebCore::RenderThemeGtk::adjustMenuListStyle):
68610         (WebCore::RenderThemeGtk::paintMenuList):
68611         (WebCore::RenderThemeGtk::adjustTextFieldStyle):
68612         (WebCore::RenderThemeGtk::paintTextField):
68613         (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
68614         (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
68615         (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationStyle):
68616         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
68617         (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
68618         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
68619         (WebCore::RenderThemeGtk::adjustSearchFieldStyle):
68620         (WebCore::RenderThemeGtk::paintSearchField):
68621         (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
68622         (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
68623         (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
68624         (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
68625         (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
68626         (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
68627         (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
68628         (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
68629         (WebCore::RenderThemeGtk::caretBlinkFrequency):
68630         (WebCore::RenderThemeGtk::systemFont):
68631         (WebCore::gtkStyleSetCallback):
68632         (WebCore::RenderThemeGtk::gtkContainer):
68633         (WebCore::RenderThemeGtk::gtkEntry):
68634         (WebCore::RenderThemeGtk::gtkTreeView):
68635         * platform/gtk/RenderThemeGtk.h:
68636         * platform/gtk/gtk2drawing.c: Added.
68637         (moz_gtk_enable_style_props):
68638         (ensure_window_widget):
68639         (setup_widget_prototype):
68640         (ensure_button_widget):
68641         (ensure_checkbox_widget):
68642         (ensure_radiobutton_widget):
68643         (ensure_scrollbar_widget):
68644         (ensure_spin_widget):
68645         (ensure_scale_widget):
68646         (ensure_entry_widget):
68647         (ensure_option_menu_widget):
68648         (ensure_arrow_widget):
68649         (ensure_handlebox_widget):
68650         (ensure_toolbar_widget):
68651         (ensure_tooltip_widget):
68652         (ensure_tab_widget):
68653         (ensure_progress_widget):
68654         (ensure_frame_widget):
68655         (ensure_menu_bar_widget):
68656         (ensure_menu_bar_item_widget):
68657         (ensure_menu_popup_widget):
68658         (ensure_menu_item_widget):
68659         (ensure_check_menu_item_widget):
68660         (ConvertGtkState):
68661         (TSOffsetStyleGCArray):
68662         (TSOffsetStyleGCs):
68663         (moz_gtk_button_paint):
68664         (moz_gtk_init):
68665         (moz_gtk_checkbox_get_metrics):
68666         (moz_gtk_radio_get_metrics):
68667         (moz_gtk_checkbox_get_focus):
68668         (moz_gtk_radio_get_focus):
68669         (moz_gtk_button_get_focus):
68670         (moz_gtk_option_menu_get_metrics):
68671         (moz_gtk_toggle_paint):
68672         (calculate_arrow_dimensions):
68673         (moz_gtk_scrollbar_button_paint):
68674         (moz_gtk_scrollbar_trough_paint):
68675         (moz_gtk_scrollbar_thumb_paint):
68676         (moz_gtk_spin_paint):
68677         (moz_gtk_scale_paint):
68678         (moz_gtk_scale_thumb_paint):
68679         (moz_gtk_gripper_paint):
68680         (moz_gtk_entry_paint):
68681         (moz_gtk_option_menu_paint):
68682         (moz_gtk_dropdown_arrow_paint):
68683         (moz_gtk_container_paint):
68684         (moz_gtk_toggle_label_paint):
68685         (moz_gtk_toolbar_paint):
68686         (moz_gtk_tooltip_paint):
68687         (moz_gtk_frame_paint):
68688         (moz_gtk_progressbar_paint):
68689         (moz_gtk_progress_chunk_paint):
68690         (moz_gtk_tab_paint):
68691         (moz_gtk_tabpanels_paint):
68692         (moz_gtk_menu_bar_paint):
68693         (moz_gtk_menu_popup_paint):
68694         (moz_gtk_menu_item_paint):
68695         (moz_gtk_check_menu_item_paint):
68696         (moz_gtk_window_paint):
68697         (moz_gtk_get_widget_border):
68698         (moz_gtk_get_dropdown_arrow_size):
68699         (moz_gtk_get_scalethumb_metrics):
68700         (moz_gtk_get_scrollbar_metrics):
68701         (moz_gtk_widget_paint):
68702         (moz_gtk_get_scrollbar_widget):
68703         (moz_gtk_shutdown):
68704         * platform/gtk/gtkdrawing.h: Added.
68706 2007-11-03  Alp Toker  <alp@atoker.com>
68708         Reviewed by Mark Rowe.
68710         Do not allow scrollbars to handle wheel events
68711         
68712         We bubble the wheel event up so the parent can handle it instead.
68714         * platform/gtk/PlatformScrollBarGtk.cpp:
68715         (gtkScrollEventCallback):
68716         (PlatformScrollbar::PlatformScrollbar):
68717         (PlatformScrollbar::~PlatformScrollbar):
68719 2007-11-03  Alp Toker  <alp@atoker.com>
68721         Reviewed by Mark Rowe.
68723         Frame scrolling and invalidation fixes
68725         Make upward scroll events have a positive delta to match other ports.
68727         Fix the invalidation rect offset for frames so that scrolling works properly.
68729         Avoid allocating negative sizes to widgets to avoid GTK+ warnings.
68731         Allow tabbing to all widgets and links.
68733         Fix event returns, improving the focus situation and correcting scroll wheel
68734         behavior.
68736         * page/gtk/EventHandlerGtk.cpp:
68737         (WebCore::EventHandler::tabsToAllControls):
68738         (WebCore::EventHandler::passWheelEventToWidget):
68739         * platform/gtk/ScrollViewGtk.cpp:
68740         (WebCore::ScrollViewScrollbar::geometryChanged):
68741         (WebCore::ScrollView::updateContents):
68742         (WebCore::ScrollView::update):
68743         (WebCore::ScrollView::wheelEvent):
68744         (WebCore::ScrollView::updateScrollbars):
68745         * platform/gtk/WheelEventGtk.cpp:
68746         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
68748 2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>
68750         LGPL'ed files contain incorrect FSF address
68751         <http://bugs.webkit.org/show_bug.cgi?id=14885>
68753         * bindings/js/JSSVGTransformListCustom.cpp:
68754         * ksvg2/svg/SVGException.idl:
68755         * ksvg2/svg/SVGTextPathElement.cpp:
68756         * ksvg2/svg/SVGTextPathElement.h:
68757         * ksvg2/svg/SVGViewSpec.cpp:
68758         * ksvg2/svg/SVGViewSpec.h:
68759         * platform/mac/FontCustomPlatformData.cpp:
68760         * platform/mac/FontCustomPlatformData.h:
68761         * platform/mac/FontPlatformDataMac.mm:
68762         * platform/win/FontCustomPlatformData.cpp:
68763         * platform/win/FontCustomPlatformData.h:
68764         * rendering/RenderSVGRoot.cpp:
68765         * rendering/RenderSVGRoot.h:
68766         * rendering/RenderSVGTextPath.cpp:
68767         * rendering/RenderSVGTextPath.h:
68768         * rendering/RenderSVGTransformableContainer.h:
68769         * rendering/RenderSVGViewportContainer.cpp:
68770         * rendering/RenderSVGViewportContainer.h:
68771         * rendering/SVGCharacterLayoutInfo.cpp:
68772         * rendering/SVGCharacterLayoutInfo.h:
68773         * rendering/SVGRenderSupport.cpp:
68774         * rendering/SVGRenderSupport.h:
68776 2007-11-02  Antti Koivisto  <antti@apple.com>
68778         Reviewed by Adam.
68779         
68780         Add video width/height DOM and content attributes from latest HTML5 draft.
68782         Test: media/video-width-height.html
68784         * html/HTMLVideoElement.cpp:
68785         (WebCore::HTMLVideoElement::parseMappedAttribute):
68786         (WebCore::HTMLVideoElement::width):
68787         (WebCore::HTMLVideoElement::setWidth):
68788         (WebCore::HTMLVideoElement::height):
68789         (WebCore::HTMLVideoElement::setHeight):
68790         * html/HTMLVideoElement.h:
68791         * html/HTMLVideoElement.idl:
68793 2007-11-02  Darin Adler  <darin@apple.com>
68795         Reviewed by Maciej.
68797         * DerivedSources.make: Remove a few explicit filenames from some rules by using
68798         make variables a little more.
68799         * WebCore.LP64.exp: Fix typo, grammar.
68801 2007-11-02  Darin Adler  <darin@apple.com>
68803         Reviewed by Maciej.
68805         - use the new HashMap::take function where appropriate
68807         * bindings/js/kjs_binding.cpp:
68808         (KJS::addWrapper): Made an inline rather than a macro; inlines good, macros bad.
68809         (KJS::removeWrapper): Ditto.
68810         (KJS::removeWrappers): Ditto.
68811         (KJS::ScriptInterpreter::putDOMObject): Use the inline instead of the macro.
68812         (KJS::ScriptInterpreter::forgetDOMObject): Ditto. This involves using take instead
68813         of remove -- in theory ever so slightly less efficient, but I think it's fine.
68814         (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Ditto.
68815         (KJS::ScriptInterpreter::putDOMNodeForDocument): Use the inline instead of the macro.
68816         (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Use take instead of find/remove.
68817         (KJS::ScriptInterpreter::updateDOMNodeDocument): Use the inlines instead of the macros.
68819         * bindings/js/kjs_window.cpp: (KJS::Window::clearTimeout): Use take instead of find/remove.
68820         * bridge/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::remove): Ditto.
68821         * page/AnimationController.cpp: (WebCore::AnimationControllerPrivate::clear): Ditto.
68822         * rendering/RenderBlock.cpp:
68823         (WebCore::RenderBlock::~RenderBlock): Ditto.
68824         (WebCore::RenderBlock::setDesiredColumnCountAndWidth): Ditto.
68825         * rendering/RootInlineBox.cpp: Ditto.(WebCore::RootInlineBox::detachEllipsisBox): Ditto.
68827 2007-11-02  Antti Koivisto  <antti@apple.com>
68829         Reviewed by Darin.
68831         Enable video composition.
68833         * WebCore.base.exp:
68834         * platform/graphics/mac/MoviePrivateQTKit.mm:
68835         (WebCore::MoviePrivate::createQTMovieView):
68836         * platform/mac/WebCoreSystemInterface.h:
68837         * platform/mac/WebCoreSystemInterface.mm:
68839 2007-11-02  Darin Adler  <darin@apple.com>
68841         Reviewed by Mitz.
68843         - fix http://bugs.webkit.org/show_bug.cgi?id=15806
68844           <rdar://problem/5561626> ASSERT(element->isRadioButton()) fires destroying form elements
68846         Test: fast/forms/remove-radio-button-assert.html
68848         * html/HTMLGenericFormElement.cpp: (WebCore::HTMLGenericFormElement::removeFromForm):
68849         Added protected function to be used by derived classes that need to do the same sort
68850         of removal from form that's automatically done by the base class in certain circumstances.
68851         * html/HTMLGenericFormElement.h: Added removeFromForm.
68853         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::~HTMLInputElement):
68854         Call removeFromForm here so the element is removed before we destroy the HTMLInputElement
68855         part of this object. By the time we get to the base class's destructor it's too late.
68856         The problem is specific to radio buttons so we don't have to worry about other classes
68857         derived from HTMLGenericFormElement.
68859 2007-11-02  Darin Adler  <darin@apple.com>
68861         Reviewed by Mitz.
68863         - speculative fix for http://bugs.webkit.org/show_bug.cgi?id=15805
68864           <rdar://problem/5510779> crashes in isLoadingMultipartContent
68866         * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::isLoadingMultipartContent):
68867         Instead of asserting the frame loader is non-0, return false if it is 0.
68869 2007-11-02  Darin Adler  <darin@apple.com>
68871         Reviewed by Mitz.
68873         - fix <rdar://problem/5530185> WebKit does not show <object> fallback content when both
68874           URL and MIME type is omitted
68876         Already covered by existing tests (that had incorrect results).
68878         * loader/FrameLoader.cpp: (WebCore::FrameLoader::requestObject): Return false to indicate
68879         failure when both URL and MIME type are empty. The old code would not attempt a load, but
68880         it would indicate success.
68882         * rendering/RenderPartObject.cpp: (WebCore::RenderPartObject::updateWidget): Remove
68883         non-helpful early exit for the case where there is no URL and no type. Returning early
68884         prevents the fallback code from running.
68886 2007-11-02  Alp Toker  <alp@atoker.com>
68888         Reviewed by Darin.
68890         Include Cairo headers properly
68892         * platform/graphics/AffineTransform.h:
68893         * platform/graphics/ImageBuffer.h:
68894         * platform/graphics/cairo/AffineTransformCairo.cpp:
68895         * platform/gtk/FontPlatformDataGtk.cpp:
68897 2007-11-01  Oliver Hunt  <oliver@apple.com>
68899         Reviewed by Alexey.
68901         Make sure we send the correct events for Capslock, Shift, Ctrl, Alt and the Windows key        
68903         * platform/win/KeyEventWin.cpp:
68904         (WebCore::keyIdentifierForWindowsKeyCode):
68905         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
68907 2007-11-01  Geoffrey Garen  <ggaren@apple.com>
68909         Reviewed by Maciej Stachowiak.
68910         
68911         In preparation for making List a simple stack-allocated Vector:
68913         Removed all instances of List copying, assignment, and/or storage.
68914         
68915         Layout tests and JS tests pass.
68917         * bindings/js/kjs_window.cpp:
68918         (KJS::WindowFunc::callAsFunction): Stores a Vector of protected 
68919         JSValue*'s instead of a List now. Converts to List on the fly when 
68920         calling the timer function. This is slightly less efficient, but the 
68921         common case is 0-2 arguments, so it's no biggie.
68923         (HTML iBench shows no regression. PLT does not use JS timers.)
68924         
68925         (KJS::ScheduledAction::execute): Uses the more efficient and non-copying
68926         List::slice now.
68927         (KJS::ScheduledAction::ScheduledAction): ditto
68929         * bindings/objc/WebScriptObject.mm:
68930         (getListFromNSArray): Takes a List out parameter now, to avoid copying.
68932 2007-11-01  Oliver Hunt  <oliver@apple.com>
68934         Reviewed by Geoff.
68936         Correct event behaviour on certain control keys
68938         Make sure we send the correct keyDown and keyUp events for the
68939         control keys CapsLock, Shift, Ctrl, Alt, and Meta/Command, and
68940         uses Windows key codes for the event keyCode.
68942         * WebCore.base.exp:
68943         * page/EventHandler.cpp:
68944         (WebCore::EventHandler::keyEvent):
68945         * platform/PlatformKeyboardEvent.h:
68946         * platform/gtk/KeyEventGtk.cpp:
68947         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
68948         * platform/mac/KeyEventMac.mm:
68949         (WebCore::keyIdentifierForKeyEvent):
68950         (WebCore::WindowsKeyCodeForKeyEvent):
68951         (WebCore::isKeyUpEvent):
68952         (WebCore::textFromEvent):
68953         (WebCore::unmodifiedTextFromEvent):
68954         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
68955         * platform/win/KeyEventWin.cpp:
68956         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
68957         * platform/wx/KeyEventWin.cpp:
68958         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
68960 2007-11-01  Timothy Hatcher  <timothy@apple.com>
68962         Reviewed by Sam.
68964         * page/inspector/inspector.css: Use the white disclosure triangles
68965           when a parent DOM element is sepected.
68967 2007-11-01  Justin Garcia  <justin.garcia@apple.com>
68969         Reviewed by Oliver Hunt.
68971         <rdar://problem/5195056> Huge plain text pastes are slow, time spent in ApplyStyleCommand::doApply
68973         * editing/ReplaceSelectionCommand.cpp:
68974         (WebCore::ReplaceSelectionCommand::doApply): No need to match style when pasting
68975         into a plaintext-only region, since when we build the fragment to insert from
68976         plain text, we don't put any style information on it, so it will automatically
68977         match style with no intervention.
68978         * editing/markup.cpp:
68979         (WebCore::createFragmentFromText): Place paragraphs into clones of the
68980         block being inserted into, instead of default paragraph elements,
68981         so that when inserted content will match the surrounding paragraph style.
68982         This was broken before, but I haven't added a layout test yet because
68983         there currently isn't a way to get only plain text onto the pasteboard
68984         in a layout test.
68986 2007-11-01  Sam Weinig  <sam@webkit.org>
68988         Reviewed by Adam Roben. 
68990         Add a releaseRef method to COMPtr which matches the behavior
68991         of the method by the same name in PassRefPtr.  This is in
68992         preparation of adding autogenerated COM DOM bindings.
68994         * platform/win/COMPtr.h:
68995         (COMPtr::releaseRef):
68997 2007-11-01  Kevin Ollivier  <kevino@theolliviers.com>
68999         wx impl. for DragController and EventHandler interfaces.
69001         Reviewed by Adam Roben.
69003         * page/wx: Added.
69004         * page/wx/DragControllerWx.cpp: Added.
69005         (WebCore::DragController::isCopyKeyDown):
69006         (WebCore::DragController::dragOperation):
69007         (WebCore::DragController::maxDragImageSize):
69008         * page/wx/EventHandlerWx.cpp: Added.
69009         (WebCore::EventHandler::passMousePressEventToSubframe):
69010         (WebCore::EventHandler::passMouseMoveEventToSubframe):
69011         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
69012         (WebCore::EventHandler::passMousePressEventToScrollbar):
69013         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
69014         (WebCore::EventHandler::focusDocumentView):
69015         (WebCore::EventHandler::eventActivatedView):
69016         (WebCore::EventHandler::createDraggingClipboard):
69018 2007-11-01  Kevin Ollivier  <kevino@theolliviers.com>
69020         Adding files for wx impl. of editing interfaces.
69022         Reviewed by Adam Roben.
69024         * editing/wx: Added.
69025         * editing/wx/EditorWx.cpp: Added.
69026         (WebCore::Editor::newGeneralClipboard):
69028 2007-11-01  Sam Weinig  <sam@webkit.org>
69030         Reviewed by Adam Roben.
69032         Make implicit conversions from LPCSTRs and BSTRs to WebCore string
69033         types possible in preparation of adding autogenerated COM DOM bindings.
69035         * platform/AtomicString.cpp: 
69036         (WebCore::AtomicString::add):
69037         * platform/AtomicString.h:
69038         (WebCore::AtomicString::AtomicString):
69039         * platform/PlatformString.h:
69040         * platform/win/BString.cpp:
69041         (WebCore::BString::BString):
69042         * platform/win/BString.h:
69044 2007-11-01  Brady Eidson  <beidson@apple.com>
69046         Reviewed by Anders
69048         Renamed a flag inside of SQLiteTransaction and added an accessor (for future work)
69050         * platform/sql/SQLiteTransaction.cpp:
69051         (WebCore::SQLiteTransaction::SQLiteTransaction):
69052         (WebCore::SQLiteTransaction::~SQLiteTransaction):
69053         (WebCore::SQLiteTransaction::begin):
69054         (WebCore::SQLiteTransaction::commit):
69055         (WebCore::SQLiteTransaction::rollback):
69056         * platform/sql/SQLiteTransaction.h:
69057         (WebCore::SQLiteTransaction::inProgress):
69059 2007-11-01  Adam Roben  <aroben@apple.com>
69061         Remove all duplicate xcopy commands from WebCore's post-build step
69063         Also add the /d option to the copy of platform/sql.
69065         Rubberstamped by Sam.
69067         * WebCore.vcproj/WebCore.vcproj:
69069 2007-11-01  Adele Peterson  <adele@apple.com>
69071         Reviewed by Maciej.
69073         Add support for the animation of the -webkit-border-raduis properties.
69075         * page/AnimationController.cpp:
69076         (WebCore::blendFunc): Added for IntSize.
69077         (WebCore::ImplicitAnimation::animate): Added cases for border radius properties.
69079 2007-11-01  Alp Toker  <alp@atoker.com>
69081         Reviewed by Mitz Pettel.
69083         Fix an unbalanced save/restore.
69085         * platform/graphics/cg/ImageCG.cpp:
69086         (WebCore::BitmapImage::draw):
69088 2007-11-01  David Hyatt  <hyatt@apple.com>
69090         Add support for the animation of the visibility property.
69092         Reviewed by oliver, aroben
69094         * page/AnimationController.cpp:
69095         (WebCore::blendFunc):
69096         (WebCore::ImplicitAnimation::animate):
69098 2007-11-01  Kevin McCullough  <kmccullough@apple.com>
69100         Reviewed by Adam.
69102         - Made COMPtr be able to be used by certain other templates,
69103         specifically HashSet.
69105         * platform/win/COMPtr.h:
69106         (WTF::):
69108 2007-11-01  Dan Bernstein  <mitz@apple.com>
69110         Reviewed by Dave Hyatt.
69112         - fix http://bugs.webkit.org/show_bug.cgi?id=15015
69113           <rdar://problem/5420308> Most of www.aol.com redraws unnecessarily when headline/photo section changes
69115         Test: fast/repaint/overflow-clip-subtree-layout.html
69117         This patch does not address the bigger issue of doing a full relayout
69118         of inline flows containing floats, but it addresses the problem on
69119         aol.com, where the changes that trigger layout are confined to an
69120         overflow area inside the float.
69122         * page/FrameView.cpp:
69123         (WebCore::FrameView::scheduleRelayoutOfSubtree): If the new and old
69124         layout roots are different but one descends from the other, make (or
69125         keep) the ancestor as the layout root.
69126         * rendering/RenderObject.cpp:
69127         (WebCore::objectIsRelayoutBoundary): Made boxes with overflow
69128         clipping and non-auto width and height relayout boundaries.
69130 2007-11-01  Alexey Proskuryakov  <ap@webkit.org>
69132         Reviewed by Mark Rowe.
69134         Fixed line endings that got confused in this file somehow.
69136         * platform/network/ResourceResponse.cpp:
69137         (WebCore::ResourceResponse::isAttachment):
69139 2007-11-01  Peter Kasting  <zerodpx@gmail.com>
69141         Reviewed by Dave Hyatt.
69143         http://bugs.webkit.org/show_bug.cgi?id=15778
69144         Malformed GIFs should not result in memory corruption.
69146         * platform/image-decoders/gif/GIFImageDecoder.cpp:
69147         (WebCore::GIFImageDecoder::haveDecodedRow):
69148         * platform/image-decoders/gif/GIFImageReader.cpp:
69149         (GIFImageReader::output_row):
69150         (GIFImageReader::read):
69152 2007-10-31  Adam Roben  <aroben@apple.com>
69154         Fix a crash when parsing a cubic-bezier function
69156         Reviewed by Hyatt.
69158         Test: fast/css/parse-timing-function-crash.html
69160         * WebCore.vcproj/WebCore.vcproj:
69161         * css/CSSParser.cpp:
69162         (WebCore::CSSParser::parseTimingFunctionValue): Don't walk off the end
69163         of the ValueList.
69165 2007-10-31  David Hyatt  <hyatt@apple.com>
69167         Fix a merge error from when I applied my patch to ToT.  A couple of lines should be part of an if.
69169         * rendering/RenderStyle.cpp:
69170         (WebCore::RenderStyle::adjustTransitions):
69172 2007-10-31  Anders Carlsson  <andersca@apple.com>
69174         Reviewed by Sam.
69176         Add new SQL callback interfaces and JS implementations of them.
69177         
69178         * DerivedSources.make:
69179         * WebCore.xcodeproj/project.pbxproj:
69180         * bindings/js/JSCustomSQLStatementCallback.cpp: Added.
69181         (WebCore::JSCustomSQLStatementCallback::JSCustomSQLStatementCallback):
69182         (WebCore::JSCustomSQLStatementCallback::handleEvent):
69183         * bindings/js/JSCustomSQLStatementCallback.h: Added.
69184         * bindings/js/JSCustomSQLStatementErrorCallback.cpp: Added.
69185         (WebCore::JSCustomSQLStatementErrorCallback::JSCustomSQLStatementErrorCallback):
69186         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
69187         * bindings/js/JSCustomSQLStatementErrorCallback.h: Added.
69188         * bindings/js/JSCustomSQLTransactionCallback.cpp: Added.
69189         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
69190         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
69191         * bindings/js/JSCustomSQLTransactionCallback.h: Added.
69192         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: Added.
69193         (WebCore::JSCustomSQLTransactionErrorCallback::JSCustomSQLTransactionErrorCallback):
69194         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
69195         * bindings/js/JSCustomSQLTransactionErrorCallback.h: Added.
69196         * storage/JSCustomSQLStatementCallback.h: Added.
69197         * storage/JSCustomSQLStatementErrorCallback.h: Added.
69198         * storage/JSCustomSQLTransactionCallback.h: Added.
69199         * storage/JSCustomSQLTransactionErrorCallback.h: Added.
69200         * storage/SQLStatementCallback.h: Added.
69201         (WebCore::SQLStatementCallback::~SQLStatementCallback):
69202         * storage/SQLStatementCallback.idl: Added.
69203         * storage/SQLStatementErrorCallback.h: Added.
69204         (WebCore::SQLStatementErrorCallback::~SQLStatementErrorCallback):
69205         * storage/SQLStatementErrorCallback.idl: Added.
69206         * storage/SQLTransaction.h: Added.
69207         * storage/SQLTransaction.idl: Added.
69208         * storage/SQLTransactionCallback.h: Added.
69209         (WebCore::SQLTransactionCallback::~SQLTransactionCallback):
69210         * storage/SQLTransactionCallback.idl: Added.
69211         * storage/SQLTransactionErrorCallback.h: Added.
69212         (WebCore::SQLTransactionErrorCallback::~SQLTransactionErrorCallback):
69213         * storage/SQLTransactionErrorCallback.idl: Added.
69215 2007-10-31  Justin Garcia  <justin.garcia@apple.com>
69217         Reviewed by Dave Harrison.
69219         <rdar://problem/5569741> Pasting content with a line break into a list can remove the list
69221         * editing/htmlediting.cpp:
69222         (WebCore::enclosingEmptyListItem): A single list item can contain multiple 
69223         paragraphs, so if the incoming VisiblePosition is in an empty paragraph in a 
69224         list item, that list item isn't necessarily empty.
69226 2007-10-31  David Hyatt  <hyatt@apple.com>
69228         Disable style sharing for animating styles.
69230         Reviewed by mitzpettel
69232         * css/CSSStyleSelector.cpp:
69233         (WebCore::CSSStyleSelector::canShareStyleWithElement):
69235 2007-10-31  Dan Bernstein  <mitz@apple.com>
69237         Reviewed by Darin Adler.
69239         - fix intermediate length calculation
69241         * rendering/Length.h:
69242         (WebCore::Length::blend):
69244 2007-10-31  Anders Carlsson  <andersca@apple.com>
69246         Reviewed by Darin.
69248         Add new SQLError implementation.
69249         
69250         * DerivedSources.make:
69251         * WebCore.vcproj/WebCore.vcproj:
69252         * WebCore.xcodeproj/project.pbxproj:
69253         * storage/SQLError.h: Added.
69254         (WebCore::SQLError::SQLError):
69255         (WebCore::SQLError::code):
69256         (WebCore::SQLError::message):
69257         * storage/SQLError.idl: Added.
69259 2007-10-31  David Hyatt  <hyatt@apple.com>
69261         Change the initial value of transition-property to all.  Change the initial value of
69262         transition-duration to 0.
69264         Reviewed by antti
69266         * rendering/RenderStyle.h:
69267         (WebCore::RenderStyle::initialTransitionDuration):
69268         (WebCore::RenderStyle::initialTransitionProperty):
69270 2007-10-31  Alp Toker  <alp@atoker.com>
69272         Reviewed by Mark Rowe.
69274         The new Color must be marked valid.
69276         * platform/graphics/gtk/ColorGtk.cpp:
69278 2007-10-31  Simon Hausmann  <hausmann@kde.org>
69280         Reviewed by Maciej;
69282         Build fix for non-Qt builds.
69284         * dom/XMLTokenizer.cpp:
69285         (WebCore::XMLTokenizer::XMLTokenizer):
69287 2007-10-31  Simon Hausmann  <hausmann@kde.org>
69289         Reviewed by Lars.
69291         Fix dependency path to header files of the public API of the Qt port.
69293         * WebCore.pro:
69295 2007-10-31  Holger Freyther  <zecke@selfish.org>
69297         Reviewed by Simon.
69299         * QXmlStreamNamespaceDeclaration doesn't have the constructor we
69300         want to use for Qt4.3. Reenable the old code path which is likely
69301         to be dead as I have not checked if m_prefixToNamespaceMap is actually
69302         used.
69303         * Guard the entity resolver with the QT_VERSION as well.
69304         * Partially reverts 369506279abdaa863e15efed649ca19e062f2c30 and
69305         d2b54d0fc1b07a2480f4f7a1417abd7a636b0107 for Qt4.3.
69307         * dom/XMLTokenizer.cpp:
69308         (WebCore::XMLTokenizer::XMLTokenizer):
69309         * dom/XMLTokenizer.h:
69311 2007-10-31  Holger Freyther  <zecke@selfish.org>
69313         Reviewed by Lars Knoll <lars@trolltech.com>.
69315         * QMimeData::removeData will be new in Qt4.4, don't use it for Qt4.3 
69316         * Provide a bad fallback implementation to filter the format list.
69318         * platform/qt/ClipboardQt.cpp:
69319         (WebCore::ClipboardQt::clearData):
69321 2007-10-31  Lars Knoll  <lars@trolltech.com>
69323         Reviewed by Simon.
69325         add an entitiy resolver to QXmlStream.
69326         Fixes fast/parser/entities-in-attributes.xhtml.
69328         * dom/XMLTokenizer.cpp:
69329         (WebCore::EntityResolver::resolveUndeclaredEntity):
69330         (WebCore::XMLTokenizer::XMLTokenizer):
69331         (WebCore::XMLTokenizer::~XMLTokenizer):
69333 2007-10-31  Lars Knoll  <lars@trolltech.com>
69335         Reviewed by Simon.
69337         Fixes in the XML tokenizer when using QXmlStream.
69338         
69339         Use new functionality of QXmlStream in Qt 4.4 to simplify
69340         the code (but keep the old code for now to still support Qt 4.3).
69341         
69342         Add proper support for namespace handling when parsing into
69343         a document fragment.
69345         * dom/XMLTokenizer.cpp:
69346         (WebCore::XMLTokenizer::XMLTokenizer):
69347         (WebCore::XMLTokenizer::write):
69348         (WebCore::XMLTokenizer::startElementNs):
69349         * dom/XMLTokenizer.h:
69351 2007-10-31  Lars Knoll  <lars@trolltech.com>
69353         Reviewed by Simon.
69355         add support for dragging images.
69357         * platform/DragImage.h:
69358         * platform/qt/ClipboardQt.cpp:
69359         (WebCore::ClipboardQt::clearData):
69360         (WebCore::ClipboardQt::setDragImage):
69361         (WebCore::ClipboardQt::setDragImageElement):
69362         (WebCore::ClipboardQt::createDragImage):
69363         (WebCore::getCachedImage):
69364         (WebCore::ClipboardQt::declareAndWriteDragImage):
69365         * platform/qt/ClipboardQt.h:
69367 2007-10-31  Lars Knoll  <lars@trolltech.com>
69369         Reviewed by Simon.
69371         fix most of the issues I found with Clipboard and DnD.
69373         * editing/qt/EditorQt.cpp:
69374         * platform/qt/ClipboardQt.cpp:
69375         (WebCore::ClipboardQt::ClipboardQt):
69376         (WebCore::ClipboardQt::~ClipboardQt):
69377         (WebCore::ClipboardQt::clearData):
69378         (WebCore::ClipboardQt::clearAllData):
69379         (WebCore::ClipboardQt::getData):
69380         (WebCore::ClipboardQt::setData):
69381         (WebCore::ClipboardQt::types):
69382         (WebCore::ClipboardQt::setDragImage):
69383         (WebCore::ClipboardQt::setDragImageElement):
69384         (WebCore::ClipboardQt::declareAndWriteDragImage):
69385         (WebCore::ClipboardQt::writeURL):
69386         (WebCore::ClipboardQt::writeRange):
69387         (WebCore::ClipboardQt::hasData):
69388         * platform/qt/ClipboardQt.h:
69389         * platform/qt/DragDataQt.cpp:
69390         (WebCore::DragData::asURL):
69392 2007-10-30  Mark Rowe  <mrowe@apple.com>
69394         Fix the Gtk and Qt builds by stubbing out PlatformKeyboardEvent::currentCapsLockState.
69396         * platform/gtk/KeyEventGtk.cpp:
69397         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
69398         * platform/qt/PlatformKeyboardEventQt.cpp:
69399         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
69401 2007-10-31  Alexey Proskuryakov  <ap@webkit.org>
69403         Reviewed by Anders.
69405         http://bugs.webkit.org/show_bug.cgi?id=15762
69406         XSLStylesheet loads subresources from a wrong URL
69408         Covered by corrected existing tests.
69410         * xml/XSLStyleSheet.cpp:
69411         (WebCore::XSLStyleSheet::parseString): Pass stylesheet URL, not
69412         the document one.
69414 2007-10-31  Alexey Proskuryakov  <ap@webkit.org>
69416         Reviewed by Darin.
69418         http://bugs.webkit.org/show_bug.cgi?id=10818
69419         String::append does 2 full copies instead of 1 (or zero!)
69421         No change in functionality, thus no test.
69423         * platform/String.cpp:
69424         (WebCore::String::append): Rewrote to copy once. Also removed an ancient
69425         FIXME that doesn't seem to make any sense. Note that append() behavior doesn't 
69426         match documented String behavior ("modifications to one instance will
69427         also modify all others"), but there are a lot of methods that don't.
69429 2007-10-31  Adam Roben  <aroben@apple.com>
69431         Windows build fix
69433         * WebCore.vcproj/WebCore.vcproj: Add [JS]ProgressEvent.{cpp,h} files.
69435 2007-10-30  Adam Roben  <aroben@apple.com>
69437         Windows build fixes
69439         I'm not completely sure why these const issues weren't caught by GCC,
69440         but MSVC was certainly not happy with them.
69442         * editing/IndentOutdentCommand.cpp:
69443         (WebCore::isIndentBlockquote):
69444         * editing/markup.cpp:
69445         (WebCore::styleFromMatchedRulesAndInlineDecl):
69447 2007-10-30  David Hyatt  <hyatt@apple.com>
69449         transition-property was defaulting to all when it should default to none.  
69451         It was taking a string type.  I figured out how to make it take an ident instead, so you can write:
69453         transition-property: opacity
69455         instead of
69457         transition-property: "opacity"
69459         Transition layers also weren't properly repeating patterns the way they were supposed to.  I fixed that.
69461         Finally, I fixed a bug in the code to fix up transition layers where something was misplaced that should have been inside a null check.
69463         Reviewed by aroben
69465         * css/CSSHelper.h:
69466         * css/CSSParser.cpp:
69467         (WebCore::CSSParser::parseTransitionProperty):
69468         * css/CSSStyleSelector.cpp:
69469         (WebCore::CSSStyleSelector::adjustRenderStyle):
69470         * page/AnimationController.cpp:
69471         (WebCore::ImplicitAnimation::animate):
69472         * rendering/RenderStyle.cpp:
69473         (WebCore::RenderStyle::adjustTransitions):
69474         * rendering/RenderStyle.h:
69475         (WebCore::RenderStyle::initialTransitionProperty):
69477 2007-10-30  Antti Koivisto  <antti@apple.com>
69479         Reviewed by Geoff.
69481         Leak fix
69483         * platform/graphics/mac/MoviePrivateQTKit.mm:
69484         (WebCore::MoviePrivate::getSupportedTypes):
69486 2007-10-30  Dan Bernstein  <mitz@apple.com>
69488         Reviewed by Stephanie Lewis.
69490         - fix <rdar://problem/5547237> REGRESSION (304-ToT): Repro font-related crash in fontdatawin.cpp Line 93 (many sites)
69492         * platform/win/FontDataWin.cpp:
69493         (WebCore::FontData::platformInit): Handle the case where the font has no
69494         glyphs on page zero.
69496 2007-10-30  David Hyatt  <hyatt@apple.com>
69498         Make sure CSS transforms can be animated using the CSS transition property.
69500         Reviewed by Dan and Antti
69502         * css/CSSStyleSelector.cpp:
69503         (WebCore::CSSStyleSelector::applyProperty):
69504         * page/AnimationController.cpp:
69505         (WebCore::blendFunc):
69506         (WebCore::ImplicitAnimation::animate):
69507         * rendering/Length.h:
69508         (WebCore::Length::blend):
69509         * rendering/RenderStyle.cpp:
69510         (WebCore::StyleTransformData::operator==):
69511         (WebCore::TransformOperations::operator==):
69512         (WebCore::blendLengths):
69513         (WebCore::ScaleTransformOperation::blend):
69514         (WebCore::RotateTransformOperation::blend):
69515         (WebCore::SkewTransformOperation::blend):
69516         (WebCore::TranslateTransformOperation::blend):
69517         (WebCore::MatrixTransformOperation::blend):
69518         * rendering/RenderStyle.h:
69519         (WebCore::TransformOperations::operator!=):
69520         (WebCore::TransformOperations::isEmpty):
69521         (WebCore::TransformOperations::size):
69522         (WebCore::TransformOperations::operator[]):
69523         (WebCore::TransformOperations::append):
69524         (WebCore::RenderStyle::transform):
69525         (WebCore::RenderStyle::setTransform):
69526         (WebCore::RenderStyle::initialTransform):
69528 2007-10-30  Antti Koivisto  <antti@apple.com>
69530         Another Qt/GTK build fix.
69532         * bindings/js/JSHTMLElementWrapperFactory.cpp:
69534 2007-10-30  Antti Koivisto  <antti@apple.com>
69536         Attempt to fix Qt/GTK build.
69538         * WebCore.pro:
69540 2007-10-30  Justin Garcia  <justin.garcia@apple.com>
69542         Reviewed by Darin Adler.
69544         <rdar://problem/5549929> CrashTracer: [USER] 35 crashes at WebCore::CharacterData::insertData
69545         
69546         We were trying to insert a tab into a br, after the br incorrectly ended up inside
69547         a tab span.
69548         
69549         * editing/DeleteButtonController.cpp: 
69550         (WebCore::isDeletableElement): Changed to take in a const Node* instead of a Node*.
69551         * editing/DeleteSelectionCommand.cpp:
69552         (WebCore::isTableRow): Ditto.
69553         * editing/IndentOutdentCommand.cpp:
69554         (WebCore::isIndentBlockquote): Ditto.
69555         (WebCore::isListOrIndentBlockquote): Ditto.
69556         * editing/InsertLineBreakCommand.cpp:
69557         (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Added, moved code from
69558         doApply here.
69559         (WebCore::InsertLineBreakCommand::doApply): 
69560         Don't upstream() the insertion position.  upstream()ing it will only have an effect
69561         when the insertion position is the first in its paragraph (since we canonicalize
69562         VisiblePositions to the upstream() candidate).  In this start of paragraph case, 
69563         upstream() can move outside inline elements like tab spans or elements that might
69564         have a different whitespace mode (added two test cases to cover these).
69565         Moved code to decide whether to insert a br or a '\n' to its own method.
69566         Removed special case code for inserting at a position inside a tab span.  We instead
69567         adjust the insertion position before insertion if it is inside a tab span and
69568         handle insertion in the appropriate if-block.  This fixes a bug where we would 
69569         only insert one line break when two were needed (added a testcase).
69570         Removed special case code for inserting before and after tables and horizontal
69571         rules.  We handle these insertions in the appropriate if-block.
69572         * editing/InsertLineBreakCommand.h:
69573         * editing/ReplaceSelectionCommand.cpp:
69574         (WebCore::isMailPasteAsQuotationNode): Change to take in a const Node*.
69575         * editing/htmlediting.cpp:
69576         (WebCore::isContentEditable): Ditto.
69577         (WebCore::isBlock): Ditto.
69578         (WebCore::enclosingNodeOfType): Changed to take a function pointer to a function
69579         that takes in a const Node*.
69580         (WebCore::isTabSpanTextNode): Check to see that the node actually a text node,
69581         and not, say, a br.
69582         * editing/htmlediting.h:
69583         * editing/markup.cpp:
69584         (WebCore::styleFromMatchedRulesAndInlineDecl): Changed to take in a const Node*.
69585         (WebCore::elementHasTextDecorationProperty): Ditto.
69587 2007-10-30  Antti Koivisto  <antti@apple.com>
69589         Add missing files.
69591         * html/VoidCallback.cpp: Added.
69592         (VoidCallback::VoidCallback):
69593         (VoidCallback::~VoidCallback):
69594         (VoidCallback::handleEvent):
69595         (VoidCallback::execute):
69596         (VoidCallback::operator==):
69597         (WebCore::toVoidCallback):
69598         * html/VoidCallback.h: Added.
69599         * html/VoidCallback.idl: Added.
69601 2007-10-30  David Kilzer  <ddkilzer@webkit.org>
69603         Generated files missing from WebCore's Xcode project file
69604         <http://bugs.webkit.org/show_bug.cgi?id=15406>
69606         Reviewed by Darin.
69608         Added the following files to the Xcode project file (note that
69609         JSHTMLInputElementBaseTable.cpp is used as a header file):
69611         - DOMCSSStyleSheetPrivate.h
69612         - DOMEventPrivate.h
69613         - DOMHTMLCollectionPrivate.h
69614         - DOMHTMLEmbedElementPrivate.h
69615         - DOMHTMLIFrameElementPrivate.h
69616         - DOMHTMLObjectElementPrivate.h
69617         - DOMHTMLSelectElementPrivate.h
69618         - DOMTextEventInternal.h
69619         - JSHTMLInputElementBaseTable.cpp
69621         * DerivedSources.make: Removed DOMSVGException.h and JSSVGAnimatedPoints.h
69622         since their generated code was not used.
69623         * WebCore.xcodeproj/project.pbxproj: Added missing header files.
69625 2007-10-29  Antti Koivisto  <antti@apple.com>
69627         Rubber stamped by Adele.
69629         Initial media (<video> and <audio>) support from feature branch and 
69630         QTKit based platform implementation.
69631         
69632         This will need to be updated to match current draft specification.
69634         * Configurations/WebCore.xcconfig:
69635         * DerivedSources.make:
69636         * WebCore.base.exp:
69637         * WebCore.xcodeproj/project.pbxproj:
69638         * bindings/js/JSEventCustom.cpp:
69639         (WebCore::toJS):
69640         * bindings/js/JSHTMLAudioElementConstructor.cpp: Added.
69641         (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
69642         (WebCore::JSHTMLAudioElementConstructor::implementsConstruct):
69643         (WebCore::JSHTMLAudioElementConstructor::construct):
69644         * bindings/js/JSHTMLAudioElementConstructor.h: Added.
69645         * bindings/js/JSHTMLElementWrapperFactory.cpp:
69646         (WebCore::createJSHTMLWrapper):
69647         * bindings/js/kjs_window.cpp:
69648         (KJS::Window::getValueProperty):
69649         * bindings/js/kjs_window.h:
69650         (KJS::Window::):
69651         * bindings/scripts/CodeGeneratorJS.pm:
69652         * dom/Document.cpp:
69653         (WebCore::Document::createEvent):
69654         (WebCore::Document::willSaveToCache):
69655         (WebCore::Document::didRestoreFromCache):
69656         (WebCore::Document::registerForCacheCallbacks):
69657         (WebCore::Document::unregisterForCacheCallbacks):
69658         * dom/Document.h:
69659         * dom/Element.cpp:
69660         (WebCore::Element::setBooleanAttribute):
69661         * dom/Element.h:
69662         (WebCore::Element::willSaveToCache):
69663         * dom/Event.cpp:
69664         (WebCore::Event::isProgressEvent):
69665         * dom/Event.h:
69666         * dom/EventNames.h:
69667         * dom/EventTargetNode.cpp:
69668         (WebCore::EventTargetNode::dispatchProgressEvent):
69669         * dom/EventTargetNode.h:
69670         * dom/ProgressEvent.cpp: Added.
69671         (WebCore::ProgressEvent::ProgressEvent):
69672         (WebCore::ProgressEvent::initProgressEvent):
69673         (WebCore::ProgressEvent::initProgressEventNS):
69674         * dom/ProgressEvent.h: Added.
69675         (WebCore::ProgressEvent::lengthComputable):
69676         (WebCore::ProgressEvent::loaded):
69677         (WebCore::ProgressEvent::total):
69678         (WebCore::ProgressEvent::isProgressEvent):
69679         * dom/ProgressEvent.idl: Added.
69680         * history/CachedPage.cpp:
69681         (WebCore::CachedPage::CachedPage):
69682         * html/HTMLAttributeNames.in:
69683         * html/HTMLAudioElement.cpp: Added.
69684         (WebCore::HTMLAudioElement::HTMLAudioElement):
69685         * html/HTMLAudioElement.h: Added.
69686         (WebCore::HTMLAudioElement::tagPriority):
69687         * html/HTMLAudioElement.idl: Added.
69688         * html/HTMLElement.cpp:
69689         (WebCore::inlineTagList):
69690         * html/HTMLElementFactory.cpp:
69691         (WebCore::audioConstructor):
69692         (WebCore::videoConstructor):
69693         (WebCore::sourceConstructor):
69694         (WebCore::createFunctionMap):
69695         * html/HTMLInputElement.cpp:
69696         (WebCore::HTMLInputElement::~HTMLInputElement):
69697         (WebCore::HTMLInputElement::setInputType):
69698         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
69699         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
69700         * html/HTMLMediaElement.cpp: Added.
69701         (WebCore::HTMLMediaElement::HTMLMediaElement):
69702         (WebCore::HTMLMediaElement::~HTMLMediaElement):
69703         (WebCore::HTMLMediaElement::checkDTD):
69704         (WebCore::HTMLMediaElement::rendererIsNeeded):
69705         (WebCore::HTMLMediaElement::createRenderer):
69706         (WebCore::HTMLMediaElement::insertedIntoDocument):
69707         (WebCore::HTMLMediaElement::removedFromDocument):
69708         (WebCore::HTMLMediaElement::scheduleLoad):
69709         (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
69710         (WebCore::HTMLMediaElement::dispatchEventAsync):
69711         (WebCore::HTMLMediaElement::loadTimerFired):
69712         (WebCore::HTMLMediaElement::asyncEventTimerFired):
69713         (WebCore::serializeTimeOffset):
69714         (WebCore::parseTimeOffset):
69715         (WebCore::HTMLMediaElement::getTimeOffsetAttribute):
69716         (WebCore::HTMLMediaElement::setTimeOffsetAttribute):
69717         (WebCore::HTMLMediaElement::error):
69718         (WebCore::HTMLMediaElement::src):
69719         (WebCore::HTMLMediaElement::HTMLMediaElement::setSrc):
69720         (WebCore::HTMLMediaElement::currentSrc):
69721         (WebCore::HTMLMediaElement::networkState):
69722         (WebCore::HTMLMediaElement::bufferingRate):
69723         (WebCore::HTMLMediaElement::load):
69724         (WebCore::HTMLMediaElement::movieNetworkStateChanged):
69725         (WebCore::HTMLMediaElement::movieReadyStateChanged):
69726         (WebCore::HTMLMediaElement::setReadyState):
69727         (WebCore::HTMLMediaElement::progressEventTimerFired):
69728         (WebCore::HTMLMediaElement::seek):
69729         (WebCore::HTMLMediaElement::readyState):
69730         (WebCore::HTMLMediaElement::seeking):
69731         (WebCore::HTMLMediaElement::currentTime):
69732         (WebCore::HTMLMediaElement::setCurrentTime):
69733         (WebCore::HTMLMediaElement::duration):
69734         (WebCore::HTMLMediaElement::paused):
69735         (WebCore::HTMLMediaElement::defaultPlaybackRate):
69736         (WebCore::HTMLMediaElement::setDefaultPlaybackRate):
69737         (WebCore::HTMLMediaElement::playbackRate):
69738         (WebCore::HTMLMediaElement::setPlaybackRate):
69739         (WebCore::HTMLMediaElement::ended):
69740         (WebCore::HTMLMediaElement::autoplay):
69741         (WebCore::HTMLMediaElement::setAutoplay):
69742         (WebCore::HTMLMediaElement::play):
69743         (WebCore::HTMLMediaElement::pause):
69744         (WebCore::HTMLMediaElement::loopCount):
69745         (WebCore::HTMLMediaElement::setLoopCount):
69746         (WebCore::HTMLMediaElement::start):
69747         (WebCore::HTMLMediaElement::setStart):
69748         (WebCore::HTMLMediaElement::end):
69749         (WebCore::HTMLMediaElement::setEnd):
69750         (WebCore::HTMLMediaElement::loopStart):
69751         (WebCore::HTMLMediaElement::setLoopStart):
69752         (WebCore::HTMLMediaElement::loopEnd):
69753         (WebCore::HTMLMediaElement::setLoopEnd):
69754         (WebCore::HTMLMediaElement::currentLoop):
69755         (WebCore::HTMLMediaElement::setCurrentLoop):
69756         (WebCore::HTMLMediaElement::controls):
69757         (WebCore::HTMLMediaElement::setControls):
69758         (WebCore::HTMLMediaElement::volume):
69759         (WebCore::HTMLMediaElement::setVolume):
69760         (WebCore::HTMLMediaElement::muted):
69761         (WebCore::HTMLMediaElement::setMuted):
69762         (WebCore::HTMLMediaElement::pickMedia):
69763         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
69764         (WebCore::HTMLMediaElement::movieVolumeChanged):
69765         (WebCore::HTMLMediaElement::movieDidEnd):
69766         (WebCore::HTMLMediaElement::movieCuePointReached):
69767         (WebCore::HTMLMediaElement::addCuePoint):
69768         (WebCore::HTMLMediaElement::removeCuePoint):
69769         (WebCore::HTMLMediaElement::buffered):
69770         (WebCore::HTMLMediaElement::played):
69771         (WebCore::HTMLMediaElement::seekable):
69772         (WebCore::HTMLMediaElement::effectiveStart):
69773         (WebCore::HTMLMediaElement::effectiveEnd):
69774         (WebCore::HTMLMediaElement::effectiveLoopStart):
69775         (WebCore::HTMLMediaElement::effectiveLoopEnd):
69776         (WebCore::HTMLMediaElement::activelyPlaying):
69777         (WebCore::HTMLMediaElement::endedPlayback):
69778         (WebCore::HTMLMediaElement::willSaveToCache):
69779         (WebCore::HTMLMediaElement::didRestoreFromCache):
69780         * html/HTMLMediaElement.h: Added.
69781         (WebCore::HTMLMediaElement::movie):
69782         (WebCore::HTMLMediaElement::isVideo):
69783         (WebCore::HTMLMediaElement::):
69784         (WebCore::HTMLMediaElement::CallbackEntry::CallbackEntry):
69785         * html/HTMLMediaElement.idl: Added.
69786         * html/HTMLSourceElement.cpp: Added.
69787         (WebCore::HTMLSourceElement::HTMLSourceElement):
69788         (WebCore::HTMLSourceElement::~HTMLSourceElement):
69789         (WebCore::HTMLSourceElement::insertedIntoDocument):
69790         (WebCore::HTMLSourceElement::src):
69791         (WebCore::HTMLSourceElement::setSrc):
69792         (WebCore::HTMLSourceElement::media):
69793         (WebCore::HTMLSourceElement::setMedia):
69794         (WebCore::HTMLSourceElement::type):
69795         (WebCore::HTMLSourceElement::setType):
69796         * html/HTMLSourceElement.h: Added.
69797         (WebCore::HTMLSourceElement::endTagRequirement):
69798         (WebCore::HTMLSourceElement::tagPriority):
69799         * html/HTMLSourceElement.idl: Added.
69800         * html/HTMLTagNames.in:
69801         * html/HTMLVideoElement.cpp: Added.
69802         (WebCore::HTMLVideoElement::HTMLVideoElement):
69803         (WebCore::HTMLVideoElement::videoWidth):
69804         (WebCore::HTMLVideoElement::videoHeight):
69805         * html/HTMLVideoElement.h: Added.
69806         (WebCore::HTMLVideoElement::tagPriority):
69807         (WebCore::HTMLVideoElement::isVideo):
69808         * html/HTMLVideoElement.idl: Added.
69809         * html/MediaError.h: Added.
69810         (WebCore::MediaError::):
69811         (WebCore::MediaError::MediaError):
69812         (WebCore::MediaError::code):
69813         * html/MediaError.idl: Added.
69814         * html/TimeRanges.cpp: Added.
69815         (TimeRanges::TimeRanges):
69816         (TimeRanges::start):
69817         (TimeRanges::end):
69818         (TimeRanges::add):
69819         (TimeRanges::contain):
69820         * html/TimeRanges.h: Added.
69821         (WebCore::TimeRanges::TimeRanges):
69822         (WebCore::TimeRanges::length):
69823         (WebCore::TimeRanges::Range::Range):
69824         * html/TimeRanges.idl: Added.
69825         * page/DOMWindow.idl:
69826         * platform/MIMETypeRegistry.cpp:
69827         (WebCore::initialiseSupportedMovieMIMETypes):
69828         (WebCore::initialiseMIMETypeRegistry):
69829         (WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
69830         (WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
69831         * platform/MIMETypeRegistry.h:
69832         * platform/graphics/Movie.cpp: Added.
69833         (WebCore::Movie::Movie):
69834         (WebCore::Movie::~Movie):
69835         (WebCore::Movie::load):
69836         (WebCore::Movie::cancelLoad):
69837         (WebCore::Movie::play):
69838         (WebCore::Movie::pause):
69839         (WebCore::Movie::duration):
69840         (WebCore::Movie::currentTime):
69841         (WebCore::Movie::seek):
69842         (WebCore::Movie::paused):
69843         (WebCore::Movie::seeking):
69844         (WebCore::Movie::naturalSize):
69845         (WebCore::Movie::hasVideo):
69846         (WebCore::Movie::networkState):
69847         (WebCore::Movie::readyState):
69848         (WebCore::Movie::volume):
69849         (WebCore::Movie::setVolume):
69850         (WebCore::Movie::rate):
69851         (WebCore::Movie::setRate):
69852         (WebCore::Movie::muted):
69853         (WebCore::Movie::setMuted):
69854         (WebCore::Movie::dataRate):
69855         (WebCore::Movie::setEndTime):
69856         (WebCore::Movie::addCuePoint):
69857         (WebCore::Movie::removeCuePoint):
69858         (WebCore::Movie::clearCuePoints):
69859         (WebCore::Movie::maxTimeBuffered):
69860         (WebCore::Movie::maxTimeSeekable):
69861         (WebCore::Movie::bytesLoaded):
69862         (WebCore::Movie::totalBytesKnown):
69863         (WebCore::Movie::totalBytes):
69864         (WebCore::Movie::setRect):
69865         (WebCore::Movie::visible):
69866         (WebCore::Movie::setVisible):
69867         (WebCore::Movie::paint):
69868         (WebCore::Movie::getSupportedTypes):
69869         (WebCore::Movie::networkStateChanged):
69870         (WebCore::Movie::readyStateChanged):
69871         (WebCore::Movie::volumeChanged):
69872         (WebCore::Movie::didEnd):
69873         (WebCore::Movie::cuePointReached):
69874         * platform/graphics/Movie.h: Added.
69875         (WebCore::MovieClient::~MovieClient):
69876         (WebCore::MovieClient::movieNetworkStateChanged):
69877         (WebCore::MovieClient::movieReadyStateChanged):
69878         (WebCore::MovieClient::movieVolumeChanged):
69879         (WebCore::MovieClient::movieDidEnd):
69880         (WebCore::MovieClient::movieCuePointReached):
69881         (WebCore::Movie::parentWidget):
69882         (WebCore::Movie::setParentWidget):
69883         (WebCore::Movie::rect):
69884         (WebCore::Movie::):
69885         * platform/graphics/mac/MoviePrivateQTKit.h: Added.
69886         * platform/graphics/mac/MoviePrivateQTKit.mm: Added.
69887         (WebCore::MoviePrivate::MoviePrivate):
69888         (WebCore::MoviePrivate::~MoviePrivate):
69889         (WebCore::MoviePrivate::createQTMovie):
69890         (WebCore::MoviePrivate::createQTMovieView):
69891         (WebCore::MoviePrivate::createQTTime):
69892         (WebCore::MoviePrivate::load):
69893         (WebCore::MoviePrivate::play):
69894         (WebCore::MoviePrivate::pause):
69895         (WebCore::MoviePrivate::duration):
69896         (WebCore::MoviePrivate::currentTime):
69897         (WebCore::MoviePrivate::seek):
69898         (WebCore::MoviePrivate::setEndTime):
69899         (WebCore::MoviePrivate::addCuePoint):
69900         (WebCore::MoviePrivate::removeCuePoint):
69901         (WebCore::MoviePrivate::clearCuePoints):
69902         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
69903         (WebCore::MoviePrivate::cancelSeek):
69904         (WebCore::MoviePrivate::seekTimerFired):
69905         (WebCore::MoviePrivate::cuePointTimerFired):
69906         (WebCore::MoviePrivate::paused):
69907         (WebCore::MoviePrivate::seeking):
69908         (WebCore::MoviePrivate::naturalSize):
69909         (WebCore::MoviePrivate::hasVideo):
69910         (WebCore::MoviePrivate::setVolume):
69911         (WebCore::MoviePrivate::setMuted):
69912         (WebCore::MoviePrivate::setRate):
69913         (WebCore::MoviePrivate::dataRate):
69914         (WebCore::MoviePrivate::networkState):
69915         (WebCore::MoviePrivate::readyState):
69916         (WebCore::MoviePrivate::maxTimeBuffered):
69917         (WebCore::MoviePrivate::maxTimeSeekable):
69918         (WebCore::MoviePrivate::maxTimeLoaded):
69919         (WebCore::MoviePrivate::bytesLoaded):
69920         (WebCore::MoviePrivate::totalBytesKnown):
69921         (WebCore::MoviePrivate::totalBytes):
69922         (WebCore::MoviePrivate::cancelLoad):
69923         (WebCore::MoviePrivate::updateStates):
69924         (WebCore::MoviePrivate::loadStateChanged):
69925         (WebCore::MoviePrivate::rateChanged):
69926         (WebCore::MoviePrivate::sizeChanged):
69927         (WebCore::MoviePrivate::timeChanged):
69928         (WebCore::MoviePrivate::volumeChanged):
69929         (WebCore::MoviePrivate::didEnd):
69930         (WebCore::MoviePrivate::setRect):
69931         (WebCore::MoviePrivate::setVisible):
69932         (WebCore::MoviePrivate::paint):
69933         (WebCore::MoviePrivate::getSupportedTypes):
69934         (-[WebCoreMovieObserver loadStateChanged:]):
69935         (-[WebCoreMovieObserver rateChanged:]):
69936         (-[WebCoreMovieObserver sizeChanged:]):
69937         (-[WebCoreMovieObserver timeChanged:]):
69938         (-[WebCoreMovieObserver volumeChanged:]):
69939         (-[WebCoreMovieObserver didEnd:]):
69940         (-[WebCoreMovieObserver setCallback:WebCore::]):
69941         * platform/mac/WebCoreSystemInterface.h:
69942         * platform/mac/WebCoreSystemInterface.mm:
69943         * rendering/RenderLayer.cpp:
69944         (WebCore::RenderLayer::collectLayers):
69945         * rendering/RenderVideo.cpp: Added.
69946         (WebCore::RenderVideo::RenderVideo):
69947         (WebCore::RenderVideo::~RenderVideo):
69948         (WebCore::RenderVideo::movie):
69949         (WebCore::RenderVideo::videoSizeChanged):
69950         (WebCore::RenderVideo::paint):
69951         (WebCore::RenderVideo::layout):
69952         (WebCore::RenderVideo::updateFromElement):
69953         (WebCore::RenderVideo::updateMovie):
69954         (WebCore::RenderVideo::isWidthSpecified):
69955         (WebCore::RenderVideo::isHeightSpecified):
69956         (WebCore::RenderVideo::calcReplacedWidth):
69957         (WebCore::RenderVideo::calcReplacedHeight):
69958         (WebCore::RenderVideo::calcAspectRatioWidth):
69959         (WebCore::RenderVideo::calcAspectRatioHeight):
69960         (WebCore::RenderVideo::calcPrefWidths):
69961         * rendering/RenderVideo.h: Added.
69962         (WebCore::RenderVideo::renderName):
69964 2007-10-30  Sam Weinig  <sam@webkit.org>
69966         Reviewed by Adam Roben.
69968         Add Interface and Class UUIDs to the IDLs in preparation of adding
69969         autogeneration of the COM DOM bindings.
69971         * bindings/scripts/IDLParser.pm: Relax parsing rules to allow newlines as whitespace.
69972         * css/CSSCharsetRule.idl:
69973         * css/CSSFontFaceRule.idl:
69974         * css/CSSImportRule.idl:
69975         * css/CSSMediaRule.idl:
69976         * css/CSSPageRule.idl:
69977         * css/CSSPrimitiveValue.idl:
69978         * css/CSSRule.idl:
69979         * css/CSSRuleList.idl:
69980         * css/CSSStyleDeclaration.idl:
69981         * css/CSSStyleRule.idl:
69982         * css/CSSStyleSheet.idl:
69983         * css/CSSUnknownRule.idl:
69984         * css/CSSValue.idl:
69985         * css/CSSValueList.idl:
69986         * css/Counter.idl:
69987         * css/MediaList.idl:
69988         * css/RGBColor.idl:
69989         * css/Rect.idl:
69990         * css/StyleSheet.idl:
69991         * css/StyleSheetList.idl:
69992         * dom/Attr.idl:
69993         * dom/CDATASection.idl:
69994         * dom/CharacterData.idl:
69995         * dom/Comment.idl:
69996         * dom/DOMImplementation.idl:
69997         * dom/Document.idl:
69998         * dom/DocumentFragment.idl:
69999         * dom/DocumentType.idl:
70000         * dom/Element.idl:
70001         * dom/Entity.idl:
70002         * dom/EntityReference.idl:
70003         * dom/Event.idl:
70004         * dom/EventListener.idl:
70005         * dom/EventTarget.idl:
70006         * dom/NamedNodeMap.idl:
70007         * dom/Node.idl:
70008         * dom/NodeList.idl:
70009         * dom/Notation.idl:
70010         * dom/ProcessingInstruction.idl:
70011         * dom/Text.idl:
70012         * html/CanvasGradient.idl:
70013         * html/CanvasPattern.idl:
70014         * html/CanvasRenderingContext2D.idl:
70015         * html/HTMLAnchorElement.idl:
70016         * html/HTMLAppletElement.idl:
70017         * html/HTMLAreaElement.idl:
70018         * html/HTMLBRElement.idl:
70019         * html/HTMLBaseElement.idl:
70020         * html/HTMLBaseFontElement.idl:
70021         * html/HTMLBlockquoteElement.idl:
70022         * html/HTMLBodyElement.idl:
70023         * html/HTMLButtonElement.idl:
70024         * html/HTMLCanvasElement.idl:
70025         * html/HTMLCollection.idl:
70026         * html/HTMLDListElement.idl:
70027         * html/HTMLDirectoryElement.idl:
70028         * html/HTMLDivElement.idl:
70029         * html/HTMLDocument.idl:
70030         * html/HTMLElement.idl:
70031         * html/HTMLEmbedElement.idl:
70032         * html/HTMLFieldSetElement.idl:
70033         * html/HTMLFontElement.idl:
70034         * html/HTMLFormElement.idl:
70035         * html/HTMLFrameElement.idl:
70036         * html/HTMLFrameSetElement.idl:
70037         * html/HTMLHRElement.idl:
70038         * html/HTMLHeadElement.idl:
70039         * html/HTMLHeadingElement.idl:
70040         * html/HTMLHtmlElement.idl:
70041         * html/HTMLIFrameElement.idl:
70042         * html/HTMLImageElement.idl:
70043         * html/HTMLInputElement.idl:
70044         * html/HTMLIsIndexElement.idl:
70045         * html/HTMLLIElement.idl:
70046         * html/HTMLLabelElement.idl:
70047         * html/HTMLLegendElement.idl:
70048         * html/HTMLLinkElement.idl:
70049         * html/HTMLMapElement.idl:
70050         * html/HTMLMarqueeElement.idl:
70051         * html/HTMLMenuElement.idl:
70052         * html/HTMLMetaElement.idl:
70053         * html/HTMLModElement.idl:
70054         * html/HTMLOListElement.idl:
70055         * html/HTMLObjectElement.idl:
70056         * html/HTMLOptGroupElement.idl:
70057         * html/HTMLOptionElement.idl:
70058         * html/HTMLOptionsCollection.idl:
70059         * html/HTMLParagraphElement.idl:
70060         * html/HTMLParamElement.idl:
70061         * html/HTMLPreElement.idl:
70062         * html/HTMLQuoteElement.idl:
70063         * html/HTMLScriptElement.idl:
70064         * html/HTMLSelectElement.idl:
70065         * html/HTMLStyleElement.idl:
70066         * html/HTMLTableCaptionElement.idl:
70067         * html/HTMLTableCellElement.idl:
70068         * html/HTMLTableColElement.idl:
70069         * html/HTMLTableElement.idl:
70070         * html/HTMLTableRowElement.idl:
70071         * html/HTMLTableSectionElement.idl:
70072         * html/HTMLTextAreaElement.idl:
70073         * html/HTMLTitleElement.idl:
70074         * html/HTMLUListElement.idl:
70076 2007-10-30  Adele Peterson  <adele@apple.com>
70078         RS by Darin.
70080         * page/AnimationController.cpp: (WebCore::blendFunc): Use lround instead of round.
70082 2007-10-29  Timothy Hatcher  <timothy@apple.com>
70084         Reviewed by John Sullivan.
70086         - Allow showing and closing the inspector programatically.
70087         - Add showConsole() and showTimeline() methods. 
70089         * WebCore.base.exp: Add exports for WebKit.
70090         * page/InspectorController.cpp:
70091         (WebCore::callSimpleFunction): Renamed from callClearFunction().
70092         (WebCore::unloading): Renamed to close().
70093         (WebCore::InspectorController::InspectorController):
70094         (WebCore::InspectorController::inspect): Moved showing code to show().
70095         (WebCore::InspectorController::setWindowVisible): Show the timeline or console if needed.
70096         (WebCore::InspectorController::show): Code factored out of inspect().
70097         (WebCore::InspectorController::showConsole): Call show() and the JS showConsole().
70098         (WebCore::InspectorController::showTimeline): Call show() and the JS showTimeline().
70099         (WebCore::InspectorController::close):
70100         (WebCore::InspectorController::clearScriptResources): Call the new callSimpleFunction.
70101         (WebCore::InspectorController::clearDatabaseScriptResources): Ditto.
70102         (WebCore::InspectorController::clearScriptConsoleMessages): Ditto.
70103         (WebCore::InspectorController::clearNetworkTimeline): Ditto.
70104         * page/InspectorController.h: Add and rename methods.
70105         * page/inspector/inspector.js: Add showConsole() and showTimeline().
70107 2007-10-30  Adele Peterson  <adele@apple.com>
70109         Reviewed by Sam.
70111         Build fix.
70113         * page/AnimationController.cpp: (WebCore::blendFunc):
70115 2007-10-30  Adele Peterson  <adele@apple.com>
70117         Reviewed by Darin.
70119         WebCore part of fix for http://bugs.webkit.org/show_bug.cgi?id=10577
70120         <rdar://problem/5103625> REGRESSION: Caps lock icon should show in password fields
70122         Test: manual-tests/password-caps-lock.html
70124         * WebCore.base.exp: Added symbol for capsLockStateMayHaveChanged.
70126         * page/Frame.cpp: (WebCore::Frame::setIsActive): Calls capsLockStateMayHaveChanged.
70127         * page/EventHandler.cpp: (WebCore::EventHandler::capsLockStateMayHaveChanged): Added. Tells the focused node's renderer that the capsLockStateMayHaveChanged.
70128         * page/EventHandler.h:
70130         * platform/PlatformKeyboardEvent.h:
70131         * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.
70132         * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.
70134         * rendering/RenderTextControl.cpp:
70135         (WebCore::RenderTextControl::RenderTextControl):
70136         (WebCore::RenderTextControl::paint): Added.  If m_shouldDrawCapsLockIndicator is true, paints the caps lock indicator after the background.
70137         (WebCore::RenderTextControl::forwardEvent): When the control gets and loses focus, update the caps lock state.
70138         (WebCore::RenderTextControl::capsLockStateMayHaveChanged): Added. Updates m_shouldDrawCapsLockIndicator, which is true if the field is a password field, 
70139          and the frame is active, and the element is focused, and the caps lock is on.  Causes a repaint when m_shouldDrawCapsLockIndicator changes state.
70140         * rendering/RenderTextControl.h: Added m_shouldDrawCapsLockIndicator.
70141         * rendering/RenderObject.h: (WebCore::RenderObject::capsLockStateMayHaveChanged): Added.
70143         * rendering/RenderTheme.h: (WebCore::RenderTheme::paintCapsLockIndicator): Added.
70144         * rendering/RenderThemeMac.h:
70145         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintCapsLockIndicator): Added.  Calls wkDrawCapsLockIndicator.
70146         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintCapsLockIndicator): Added.  Calls paintThemePart for the CapsLockPart.
70147         * rendering/RenderThemeSafari.h:
70149 2007-10-30  David Hyatt  <hyatt@apple.com>
70151         Land support for implicit animation in CSS.
70153         Reviewed by mitz, darin
70155         * css/CSSParser.cpp:
70156         (WebCore::CSSParser::parseTimingFunctionValue):
70157         (WebCore::CSSParser::parseTransitionTimingFunction):
70158         (WebCore::CSSParser::parseTransitionProperty):
70159         * css/CSSStyleSelector.cpp:
70160         (WebCore::CSSStyleSelector::mapTransitionDuration):
70161         (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
70162         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
70163         (WebCore::CSSStyleSelector::mapTransitionProperty):
70164         * css/CSSTimingFunctionValue.h:
70165         (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
70166         (WebCore::CSSTimingFunctionValue::x1):
70167         (WebCore::CSSTimingFunctionValue::y1):
70168         (WebCore::CSSTimingFunctionValue::x2):
70169         (WebCore::CSSTimingFunctionValue::y2):
70170         * dom/Element.cpp:
70171         (WebCore::Element::styleForRenderer):
70172         (WebCore::Element::createRenderer):
70173         * dom/Node.cpp:
70174         (WebCore::Node::createRendererIfNeeded):
70175         (WebCore::Node::setRenderStyle):
70176         * page/AnimationController.cpp:
70177         (WebCore::CurveData::CurveData):
70178         (WebCore::CurveData::sampleCurveX):
70179         (WebCore::CurveData::sampleCurveY):
70180         (WebCore::CurveData::sampleCurveDerivativeX):
70181         (WebCore::CurveData::solveCurveX):
70182         (WebCore::solveEpsilon):
70183         (WebCore::solveCubicBezierFunction):
70184         (WebCore::ImplicitAnimation::finished):
70185         (WebCore::CompositeImplicitAnimation::~CompositeImplicitAnimation):
70186         (WebCore::CompositeImplicitAnimation::hasAnimationForProperty):
70187         (WebCore::ImplicitAnimation::ImplicitAnimation):
70188         (WebCore::ImplicitAnimation::~ImplicitAnimation):
70189         (WebCore::ImplicitAnimation::reset):
70190         (WebCore::ImplicitAnimation::progress):
70191         (WebCore::blendFunc):
70192         (WebCore::ImplicitAnimation::animate):
70193         (WebCore::CompositeImplicitAnimation::animate):
70194         (WebCore::CompositeImplicitAnimation::animating):
70195         (WebCore::CompositeImplicitAnimation::reset):
70196         (WebCore::AnimationControllerPrivate::hasImplicitAnimations):
70197         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
70198         (WebCore::AnimationControllerPrivate::~AnimationControllerPrivate):
70199         (WebCore::AnimationControllerPrivate::get):
70200         (WebCore::AnimationControllerPrivate::clear):
70201         (WebCore::AnimationControllerPrivate::updateTimer):
70202         (WebCore::AnimationControllerPrivate::timerFired):
70203         (WebCore:::m_data):
70204         (WebCore::AnimationController::~AnimationController):
70205         (WebCore::AnimationController::cancelImplicitAnimations):
70206         (WebCore::AnimationController::updateImplicitAnimations):
70207         (WebCore::AnimationController::suspendAnimations):
70208         (WebCore::AnimationController::resumeAnimations):
70209         * page/AnimationController.h:
70210         * page/Frame.cpp:
70211         (WebCore::FramePrivate::FramePrivate):
70212         * rendering/RenderBox.cpp:
70213         (WebCore::RenderBox::setStyle):
70214         (WebCore::RenderBox::destroy):
70215         * rendering/RenderObject.cpp:
70216         (WebCore::RenderObject::setAnimatableStyle):
70217         (WebCore::RenderObject::destroy):
70218         * rendering/RenderObject.h:
70219         * rendering/RenderStyle.h:
70220         (WebCore::TimingFunction::TimingFunction):
70221         (WebCore::TimingFunction::operator==):
70222         (WebCore::TimingFunction::x1):
70223         (WebCore::TimingFunction::y1):
70224         (WebCore::TimingFunction::x2):
70225         (WebCore::TimingFunction::y2):
70226         (WebCore::TimingFunction::type):
70227         (WebCore::Transition::transitionProperty):
70228         (WebCore::Transition::setTransitionProperty):
70229         (WebCore::RenderStyle::initialTransitionProperty):
70230         * rendering/RenderWidget.cpp:
70231         (WebCore::RenderWidget::destroy):
70233 2007-10-29  Beth Dakin  <bdakin@apple.com>
70235         Reviewed by Hyatt.
70237         Fix for <rdar://problem/5399614> anchor tag is not rendered without 
70238         text content, works in Firefox with CSS background-image (13237)
70240         This patch allows empty inlines that have box decorations or width 
70241         from border/padding/margin to have line boxes.
70243         * rendering/bidi.cpp:
70244         (WebCore::inlineFlowAllowsLineBox): Convenience function that 
70245         defines when we allow an inline flow to have a line box.
70246         (WebCore::requiresLineBox): Call inlineFlowAllowsLineBox.
70247         (WebCore::shouldSkipWhitespaceAfterStartObject): New function to 
70248         merge some shared code between list markers and empty inline flows 
70249         that fall at the beginning of a line.
70250         (WebCore::RenderBlock::findNextLineBreak): Make flows more like 
70251         list markers.
70253         One interesting side effect of this bug appeared in our xhtml/svg 
70254         tests that generate parser error tags. The tag we generate was 
70255         actually an empty inline with box decorations. This patch causes 
70256         those inlines to draw now, and the parser errors looked strange. So 
70257         I changed it so that the parsererror tag is display:block. This 
70258         matches Firefox, and I think was the original intent of the tag 
70259         since that causes its red background and border to show up.
70260         * dom/XMLTokenizer.cpp:
70261         (WebCore::createXHTMLParserErrorHeader):
70263 2007-10-29  Dan Bernstein  <mitz@apple.com>
70265         Reviewed by Dave Hyatt.
70267         - fix crashing tests fast/frames/inline-object-inside-frameset.html and
70268           fast/forms/form-hides-table.html
70270         * rendering/RenderBox.cpp:
70271         (WebCore::RenderBox::destroy):
70272         * rendering/RenderWidget.cpp:
70273         (WebCore::RenderWidget::destroy):
70275 2007-10-29  Dan Bernstein  <mitz@apple.com>
70277         Reviewed by Adam Roben.
70279         - fix http://bugs.webkit.org/show_bug.cgi?id=15750
70280           REGRESSION(r27173): Web Inspector freezes beneath Image::drawPattern()
70282         Test: fast/backgrounds/size/zero.html
70284         * platform/graphics/cg/ImageCG.cpp:
70285         (WebCore::Image::drawPattern): Added an ASSERT and an early return
70286         to guard against singular pattern transforms.
70287         * rendering/RenderBox.cpp:
70288         (WebCore::cacluateBackgroundSize): Changed to ensure a minimum tile
70289         size of 1x1.
70291 2007-10-29  Alp Toker  <alp@atoker.com>
70293         Reviewed by Maciej.
70295         Add GTK+ convenience conversions for various primitives
70297         * WebCore.pro:
70298         * platform/graphics/Color.h:
70299         * platform/graphics/IntPoint.h:
70300         * platform/graphics/IntRect.h:
70301         * platform/graphics/gtk/ColorGtk.cpp: Added.
70302         (WebCore::Color::Color):
70303         * platform/graphics/gtk/IntPointGtk.cpp: Added.
70304         (WebCore::IntPoint::IntPoint):
70305         (WebCore::IntPoint::operator GdkPoint):
70306         * platform/graphics/gtk/IntRectGtk.cpp: Added.
70307         (WebCore::IntRect::IntRect):
70308         (WebCore::IntRect::operator GdkRectangle):
70310 2007-10-29  Jon Honeycutt  <jhoneycutt@apple.com>
70312         Reviewed by Anders.
70314         Speculative fix for <rdar://5538489> Safari 3.0.4 seed hangs at
70315         http://tgmonline.futuregamer.it/ (works fine on Safari 2.0.4 and Safari
70316         Beta for Mac)
70317         
70318         I cannot reproduce this hang, but it is likely due to our not limiting
70319         WM_USER+1 messages or InvalidateRect calls for a plugin with initially-
70320         unknown MIME type. The embed tag on the page is missing a type
70321         attribute, so as fallback, we choose to load the Flash plugin based on
70322         the file extension of "swf." However, we do not record this determined
70323         MIME type, and so our quirks cannot be established.
70324         
70325         Changed findPlugin() so that, if it fails to find a plugin for the
70326         given MIME type, it will lookup the MIME type for the file extension -
70327         overwriting its passed MIME type parameter - and search for a plugin
70328         for that MIME type.
70330         * plugins/win/PluginDatabaseWin.cpp:
70331         (WebCore::PluginDatabaseWin::pluginForMIMEType): Added an early return
70332         if the MIME type is empty
70333         (WebCore::PluginDatabaseWin::MIMETypeForExtension): Added to replace
70334         pluginForExtension. Returns a String with the MIME type for the file
70335         extension. Also, changed to use case-insensitive compares
70336         (WebCore::PluginDatabaseWin::findPlugin): If we fail to find a plugin
70337         for the given extension, overwrite the incoming MIME type parameter
70338         with the MIME type for the file extension, and search for a plugin for
70339         that MIME type. Also, changed the way that the extension is determined
70340         (WebCore::PluginDatabaseWin::createPluginView): Pass a mutable String
70341         to findPlugin() so that it can be updated if necessary
70342         * plugins/win/PluginDatabaseWin.h: Changed findPlugin() to take a non-
70343         const String, removed definition of pluginForExtension, added
70344         definition for MIMETypeForExtension
70345         * plugins/win/PluginPackageWin.cpp: 
70346         (WebCore::PluginPackageWin::fetchInfo): Store the MIME type in
70347         lowercase for easier compares
70349 2007-10-29  Andrew Wellington  <proton@wiretapped.net>
70351         Not reviewed - build fix
70353         Fix Mac Build.
70354         
70355         WebKit/WebCore/xml/XSLTProcessor.cpp:79: warning: 'level' may be used uninitialized
70356         in this function
70358         * xml/XSLTProcessor.cpp:
70359         (WebCore::XSLTProcessor::parseErrorFunc):
70361 2007-10-29  Alp Toker  <alp@atoker.com>
70363         Reviewed by Adam Roben.
70365         http://bugs.webkit.org/show_bug.cgi?id=15725
70366         [GTK] WebCore.pro header dependencies are incorrect
70368         Fix header dependencies in the build system
70370         INCLUDEPATH and DEPENDPATH are now up to date.
70372         * WebCore.pro:
70374 2007-10-29  Beth Dakin  <bdakin@apple.com>
70376         Build fix.
70378         * css/CSSParser.cpp:
70379         (WebCore::CSSParser::parseTimingFunctionValue):
70380         * css/CSSStyleSelector.cpp:
70381         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
70383 2007-10-29  David Hyatt  <hyatt@apple.com>
70385         Land the back end for CSS animated property transitions.  I am landing this in stages, so the AnimationController
70386         class is deliberately left empty.
70388         Reviewed by darin/aroben
70390         * WebCore.pro:
70391         * WebCore.vcproj/WebCore.vcproj:
70392         * WebCore.xcodeproj/project.pbxproj:
70393         * css/CSSComputedStyleDeclaration.cpp:
70394         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
70395         * css/CSSPropertyNames.in:
70396         * css/CSSTimingFunctionValue.cpp: Added.
70397         (WebCore::CSSTimingFunctionValue::cssText):
70398         * css/CSSTimingFunctionValue.h: Added.
70399         (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
70400         (WebCore::CSSTimingFunctionValue::firstPoint):
70401         (WebCore::CSSTimingFunctionValue::secondPoint):
70402         * css/CSSValueKeywords.in:
70403         * history/CachedPage.cpp:
70404         (WebCore::CachedPage::restore):
70405         * page/AnimationController.cpp: Added.
70406         (WebCore::AnimationController::AnimationController):
70407         (WebCore::AnimationController::~AnimationController):
70408         (WebCore::AnimationController::cancelTransitions):
70409         (WebCore::AnimationController::updateTransitions):
70410         (WebCore::AnimationController::suspendAnimations):
70411         (WebCore::AnimationController::resumeAnimations):
70412         * page/AnimationController.h: Added.
70413         * page/Frame.cpp:
70414         (WebCore::Frame::animationController):
70415         (WebCore::Frame::clearTimers):
70416         * page/Frame.h:
70417         * page/FramePrivate.h:
70418         * rendering/RenderBox.cpp:
70419         (WebCore::RenderBox::setStyle):
70420         (WebCore::RenderBox::destroy):
70421         * rendering/RenderObject.cpp:
70422         (WebCore::RenderObject::animationController):
70423         * rendering/RenderObject.h:
70424         * rendering/RenderStyle.cpp:
70425         (WebCore::Transition::Transition):
70426         (WebCore::Transition::~Transition):
70427         (WebCore::Transition::operator=):
70428         (WebCore::Transition::operator==):
70429         (WebCore::Transition::fillUnsetProperties):
70430         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
70431         (WebCore::StyleRareNonInheritedData::~StyleRareNonInheritedData):
70432         (WebCore::StyleRareNonInheritedData::operator==):
70433         (WebCore::StyleRareNonInheritedData::transitionDataEquivalent):
70434         (WebCore::RenderStyle::diff):
70435         (WebCore::RenderStyle::adjustTransitions):
70436         (WebCore::RenderStyle::accessTransitions):
70437         * rendering/RenderStyle.h:
70438         (WebCore::BackgroundLayer::next):
70439         (WebCore::TimingFunction::TimingFunction):
70440         (WebCore::TimingFunction::operator==):
70441         (WebCore::Transition::next):
70442         (WebCore::Transition::isTransitionDurationSet):
70443         (WebCore::Transition::isTransitionRepeatCountSet):
70444         (WebCore::Transition::isTransitionTimingFunctionSet):
70445         (WebCore::Transition::isTransitionPropertySet):
70446         (WebCore::Transition::isEmpty):
70447         (WebCore::Transition::clearTransitionDuration):
70448         (WebCore::Transition::clearTransitionRepeatCount):
70449         (WebCore::Transition::clearTransitionTimingFunction):
70450         (WebCore::Transition::clearTransitionProperty):
70451         (WebCore::Transition::transitionDuration):
70452         (WebCore::Transition::transitionRepeatCount):
70453         (WebCore::Transition::transitionTimingFunction):
70454         (WebCore::Transition::transitionProperty):
70455         (WebCore::Transition::setTransitionDuration):
70456         (WebCore::Transition::setTransitionRepeatCount):
70457         (WebCore::Transition::setTransitionTimingFunction):
70458         (WebCore::Transition::setTransitionProperty):
70459         (WebCore::Transition::setNext):
70460         (WebCore::Transition::operator!=):
70461         (WebCore::RenderStyle::transitions):
70462         (WebCore::RenderStyle::clearTransitions):
70463         (WebCore::RenderStyle::inheritTransitions):
70464         (WebCore::RenderStyle::initialTransitionDuration):
70465         (WebCore::RenderStyle::initialTransitionRepeatCount):
70466         (WebCore::RenderStyle::initialTransitionTimingFunction):
70467         (WebCore::RenderStyle::initialTransitionProperty):
70468         * rendering/RenderWidget.cpp:
70469         (WebCore::RenderWidget::destroy):
70471 2007-10-29  Alexey Proskuryakov  <ap@webkit.org>
70473         Reviewed by Darin.
70475         http://bugs.webkit.org/show_bug.cgi?id=6040
70476         XSLT does not report errors to the user
70478         Made parseErrorFunc a static member function of XSLTProcessor to be reusable from XSLStylesheet.
70479         Switched to xmlSetStructuredErrorFunc to get an error structure instead of pre-formatted console
70480         output. Got rid of DeprecatedString in XSLTProcessor.
70482         * dom/Document.cpp:
70483         (WebCore::Document::applyXSLTransform):
70484         * xml/XSLStyleSheet.cpp:
70485         (WebCore::XSLStyleSheet::parseString):
70486         * xml/XSLTProcessor.cpp:
70487         (WebCore::XSLTProcessor::parseErrorFunc):
70488         (WebCore::docLoaderFunc):
70489         (WebCore::setXSLTLoadCallBack):
70490         (WebCore::writeToString):
70491         (WebCore::saveResultToString):
70492         (WebCore::transformTextStringToXHTMLDocumentString):
70493         (WebCore::xsltParamArrayFromParameterMap):
70494         (WebCore::freeXsltParamArray):
70495         (WebCore::XSLTProcessor::createDocumentFromSource):
70496         (WebCore::createFragmentFromSource):
70497         (WebCore::xsltStylesheetPointer):
70498         (WebCore::xmlDocPtrFromNode):
70499         (WebCore::resultMIMEType):
70500         (WebCore::XSLTProcessor::transformToString):
70501         (WebCore::XSLTProcessor::transformToDocument):
70502         (WebCore::XSLTProcessor::transformToFragment):
70503         * xml/XSLTProcessor.h:
70504         (WebCore::XSLTProcessor::setXSLStylesheet):
70505         (WebCore::XSLTProcessor::importStylesheet):
70506         (WebCore::XSLTProcessor::xslStylesheet):
70508 2007-10-29  Dan Bernstein  <mitz@apple.com>
70510         Reviewed by John Sullivan.
70512         - fix <rdar://problem/5424455> REGRESSION (r21168-r21193, Tiger only): Safari scrollbar is clipped at top when loading particular RSS page
70514         Test: fast/repaint/layout-state-only-positioned.html
70516         * rendering/RenderBlock.cpp:
70517         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Pop layout state
70518         before updating scroll info, which possibly repaints us.
70520 2007-10-29  David Kilzer  <ddkilzer@webkit.org>
70522         REGRESSION (r17701): Favicons should be viewable as image documents
70523         <http://bugs.webkit.org/show_bug.cgi?id=15640>
70525         Reviewed by Darin.
70527         On Tiger and Leopard, the image/x-icon MIME type is not returned from
70528         CGImageSourceCopyTypeIdentifiers(), so opening a URL to a favicon caused
70529         the icon to be downloaded instead being displayed in an image document.
70531         Test: fast/images/favicon-as-image.html
70533         * platform/MIMETypeRegistry.cpp:
70534         (WebCore::initialiseSupportedImageMIMETypes): Manually add image/x-icon to
70535         supportedImageMIMETypes and supportedImageResourceMIMETypes.  Also fixed
70536         comment about the image/bmp MIME type since it applies to both Tiger and
70537         Leopard.
70539 2007-10-29  Maciej Stachowiak  <mjs@apple.com>
70541         Reviewed by Mark.
70543         - fixed assertion failures detected by the new assertions
70545         * bindings/objc/DOMRGBColor.mm:
70546         (-[DOMRGBColor dealloc]): Clear _internal before calling [super dealloc]
70547         because it's not a pointer and shouldn't be in the normal wrapper cache.
70548         * dom/Document.cpp:
70549         (WebCore::Document::addImageMap): Don't access hashmap if name is null.
70550         (WebCore::Document::removeImageMap): ditto
70551         * dom/StyledElement.cpp:
70552         (WebCore::StyledElement::parseMappedAttribute): Don't claim we have a class
70553         when the class attribute is empty.
70554         * platform/TextCodecICU.cpp:
70555         (WebCore::gbkCallbackEscape): Don't look up 0 code points.
70557 2007-10-28  Alexey Proskuryakov  <ap@webkit.org>
70559         Reviewed by Darin.
70561         http://bugs.webkit.org/show_bug.cgi?id=10734
70562         Made HTMLOptionElement.index read-only, matching IE and DOM standard.
70564         Test: fast/dom/HTMLOptionElement/set-option-index-text.html
70566         * html/HTMLOptionElement.idl: Marked index as readonly.
70568         * html/HTMLOptionElement.cpp:
70569         * html/HTMLOptionElement.h:
70570         Removed setIndex().
70572 2007-10-28  Eric Seidel  <eric@webkit.org>
70574         Reviewed by darin.
70576         Fix leaks on TOT and prevent Path code from logging to console so frequently
70578         * platform/graphics/svg/SVGResourceFilter.h:
70579         (WebCore::SVGResourceFilterPlatformData::SVGResourceFilterPlatformData):
70580         (WebCore::SVGResourceFilterPlatformData::~SVGResourceFilterPlatformData):
70581         * platform/graphics/svg/cg/CgSupport.cpp:
70582         (WebCore::strokeBoundingBox):
70583         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
70584         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
70586 2007-10-28  Mark Rowe  <mrowe@apple.com>
70588         Reviewed by Maciej.
70590         Replace uses of isNaN and isInf with isnan and isinf.
70592         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
70593         (WebCore::JSHTMLOptionsCollection::setLength):
70595 2007-10-28  Maciej Stachowiak  <mjs@apple.com>
70597         Reviewed by Mark.
70599         - fixed REGRESSION(r27176): Reproducible crash while trying to order dinner makes bdash sad
70600         http://bugs.webkit.org/show_bug.cgi?id=15731
70602         * bindings/js/kjs_window.cpp:
70603         (KJS::Window::installTimeout): Avoid putting in or accessing empty or deleted keys.
70604         (KJS::Window::clearTimeout): ditto
70605         * manual-tests/bad-clearTimeout-crash.html: Added. Automated test not possible.
70607 2007-10-28  Kevin Ollivier  <kevino@theolliviers.com>
70609         wx port defines for graphics and network layers.
70611         Reviewed by Darin Adler.
70613         * platform/graphics/AffineTransform.h:
70614         * platform/graphics/BitmapImage.h:
70615         * platform/graphics/Color.h:
70616         * platform/graphics/FloatRect.h:
70617         * platform/graphics/GraphicsContext.h:
70618         * platform/graphics/ImageSource.h:
70619         * platform/graphics/IntPoint.h:
70620         * platform/graphics/IntRect.h:
70621         * platform/graphics/Path.h:
70622         * platform/graphics/Pen.h:
70623         * platform/network/ResourceHandle.h:
70626 2007-10-28  Alp Toker  <alp@atoker.com>
70628         Reviewed by Anders Carlsson.
70630         http://bugs.webkit.org/show_bug.cgi?id=14124
70631         [CURL] Support data URLs
70633         Add data URL support (both Base64 and percent-encoded formats).
70635         Inspired by code from the Qt port.
70637         * platform/Base64.cpp:
70638         (WebCore::base64Decode):
70639         * platform/Base64.h:
70640         * platform/network/curl/ResourceHandleManager.cpp:
70641         (WebCore::ResourceHandleManager::startScheduledJobs):
70642         (WebCore::parseDataUrl):
70644 2007-10-28  Alp Toker  <alp@atoker.com>
70646         Reviewed by Adam Roben.
70648         http://bugs.webkit.org/show_bug.cgi?id=15701
70649         The curl http backend does not deal properly with redirects
70651         Implement http redirect support.
70653         * platform/network/curl/ResourceHandleManager.cpp:
70654         (WebCore::headerCallback):
70656 2007-10-28  Kevin Ollivier  <kevino@theolliviers.com>
70658         Define types and accessors needed for wx implementation
70659         of platform classes. Also, turn off DisallowCTypes.h because
70660         disallowed methods appear in wx headers.
70662         Reviewed by Adam Roben.
70664         * config.h:
70665         * platform/ContextMenuItem.h:
70666         * platform/Cursor.h:
70667         * platform/DeprecatedString.h:
70668         * platform/DragData.h:
70669         * platform/DragImage.h:
70670         * platform/FontData.h:
70671         (WebCore::FontData::getWxFont):
70672         * platform/GlyphBuffer.h:
70673         (WebCore::GlyphBuffer::glyphAt):
70674         (WebCore::GlyphBuffer::advanceAt):
70675         (WebCore::GlyphBuffer::add):
70676         * platform/PlatformKeyboardEvent.h:
70677         (WebCore::PlatformKeyboardEvent::isWxCharEvent):
70678         * platform/PlatformMenuDescription.h:
70679         * platform/PlatformMouseEvent.h:
70680         * platform/PlatformString.h:
70681         * platform/PlatformWheelEvent.h:
70682         * platform/ScrollView.h:
70683         * platform/Widget.h:
70684         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
70685         * platform/image-decoders/gif/GIFImageDecoder.cpp:
70686         * platform/image-decoders/gif/GIFImageReader.cpp:
70687         * platform/image-decoders/ico/ICOImageDecoder.cpp:
70688         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
70689         * platform/image-decoders/png/PNGImageDecoder.cpp:
70690         * platform/image-decoders/xbm/XBMImageDecoder.cpp:
70692 2007-10-28  Mark Rowe  <mrowe@apple.com>
70694         We don't include "config.h" in headers.
70696         * dom/XMLTokenizer.h:
70697         * platform/graphics/svg/SVGResourceFilter.h:
70698         * platform/image-decoders/ImageDecoder.h:
70699         * platform/wx/FontPlatformData.h:
70701 2007-10-28  Darin Adler  <darin@apple.com>
70703         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
70704         We don't include "config.h" in headers. Hope this desn't break
70705         the non-SVG build again.
70707 2007-10-28  Eric Seidel  <eric@webkit.org>
70709         Build fix for non-SVG build, no review.
70711         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h:
70712         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm:
70714 2007-10-28  Eric Seidel  <eric@webkit.org>
70716         Reviewed by Oliver.
70718         Push SVGResourceFilter platform specific data down into m_platformData
70719         in preparation for implementing a non-mac filter solution.
70720         
70721         Also update a very old email address in copyright headers
70723         * WebCore.xcodeproj/project.pbxproj:
70724         * platform/graphics/FloatPoint3D.cpp:
70725         (WebCore::FloatPoint3D::FloatPoint3D):
70726         * platform/graphics/FloatPoint3D.h:
70727         * platform/graphics/svg/SVGResourceFilter.cpp:
70728         (WebCore::SVGResourceFilter::SVGResourceFilter):
70729         * platform/graphics/svg/SVGResourceFilter.h:
70730         (WebCore::SVGResourceFilter::platformData):
70731         (WebCore::SVGResourceFilter::effects):
70732         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
70733         (WebCore::SVGResourceFilter::createPlatformData):l
70734         (WebCore::SVGResourceFilter::prepareFilter):
70735         (WebCore::SVGResourceFilter::applyFilter):
70736         * platform/graphics/svg/filters/SVGDistantLightSource.h:
70737         * platform/graphics/svg/filters/SVGFEBlend.cpp:
70738         * platform/graphics/svg/filters/SVGFEBlend.h:
70739         * platform/graphics/svg/filters/SVGFEColorMatrix.cpp:
70740         * platform/graphics/svg/filters/SVGFEColorMatrix.h:
70741         * platform/graphics/svg/filters/SVGFEComponentTransfer.cpp:
70742         * platform/graphics/svg/filters/SVGFEComponentTransfer.h:
70743         * platform/graphics/svg/filters/SVGFEComposite.cpp:
70744         * platform/graphics/svg/filters/SVGFEComposite.h:
70745         * platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp:
70746         * platform/graphics/svg/filters/SVGFEConvolveMatrix.h:
70747         * platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp:
70748         * platform/graphics/svg/filters/SVGFEDiffuseLighting.h:
70749         * platform/graphics/svg/filters/SVGFEDisplacementMap.cpp:
70750         * platform/graphics/svg/filters/SVGFEDisplacementMap.h:
70751         * platform/graphics/svg/filters/SVGFEFlood.cpp:
70752         * platform/graphics/svg/filters/SVGFEFlood.h:
70753         * platform/graphics/svg/filters/SVGFEGaussianBlur.cpp:
70754         * platform/graphics/svg/filters/SVGFEGaussianBlur.h:
70755         * platform/graphics/svg/filters/SVGFEImage.cpp:
70756         * platform/graphics/svg/filters/SVGFEImage.h:
70757         * platform/graphics/svg/filters/SVGFEMerge.cpp:
70758         * platform/graphics/svg/filters/SVGFEMerge.h:
70759         * platform/graphics/svg/filters/SVGFEMorphology.cpp:
70760         * platform/graphics/svg/filters/SVGFEMorphology.h:
70761         * platform/graphics/svg/filters/SVGFEOffset.cpp:
70762         * platform/graphics/svg/filters/SVGFEOffset.h:
70763         * platform/graphics/svg/filters/SVGFESpecularLighting.cpp:
70764         * platform/graphics/svg/filters/SVGFESpecularLighting.h:
70765         * platform/graphics/svg/filters/SVGFETile.h:
70766         * platform/graphics/svg/filters/SVGFETurbulence.cpp:
70767         * platform/graphics/svg/filters/SVGFETurbulence.h:
70768         * platform/graphics/svg/filters/SVGFilterEffect.cpp:
70769         * platform/graphics/svg/filters/SVGFilterEffect.h:
70770         * platform/graphics/svg/filters/SVGLightSource.cpp:
70771         * platform/graphics/svg/filters/SVGLightSource.h:
70772         * platform/graphics/svg/filters/SVGPointLightSource.h:
70773         * platform/graphics/svg/filters/SVGSpotLightSource.h:
70774         * platform/graphics/svg/filters/cg/SVGFEBlendCg.mm:
70775         (WebCore::SVGFEBlend::getCIFilter):
70776         * platform/graphics/svg/filters/cg/SVGFEColorMatrixCg.mm:
70777         (WebCore::SVGFEColorMatrix::getCIFilter):
70778         * platform/graphics/svg/filters/cg/SVGFEComponentTransferCg.mm:
70779         (WebCore::SVGFEComponentTransfer::getCIFilter):
70780         * platform/graphics/svg/filters/cg/SVGFECompositeCg.mm:
70781         (WebCore::SVGFEComposite::getCIFilter):
70782         * platform/graphics/svg/filters/cg/SVGFEDiffuseLightingCg.mm:
70783         (WebCore::SVGFEDiffuseLighting::getCIFilter):
70784         * platform/graphics/svg/filters/cg/SVGFEDisplacementMapCg.mm:
70785         (WebCore::SVGFEDisplacementMap::getCIFilter):
70786         * platform/graphics/svg/filters/cg/SVGFEFloodCg.mm:
70787         (WebCore::SVGFEFlood::getCIFilter):
70788         * platform/graphics/svg/filters/cg/SVGFEHelpersCg.h:
70789         * platform/graphics/svg/filters/cg/SVGFEImageCg.mm:
70790         (WebCore::SVGFEImage::getCIFilter):
70791         * platform/graphics/svg/filters/cg/SVGFEMergeCg.mm:
70792         (WebCore::SVGFEMerge::getCIFilter):
70793         * platform/graphics/svg/filters/cg/SVGFESpecularLightingCg.mm:
70794         (WebCore::SVGFESpecularLighting::getCIFilter):
70795         * platform/graphics/svg/mac: Added.
70796         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.h: Added.
70797         * platform/graphics/svg/mac/SVGResourceFilterPlatformDataMac.mm: Added.
70798         (WebCore::SVGResourceFilterPlatformDataMac::SVGResourceFilterPlatformDataMac):
70799         (WebCore::SVGResourceFilterPlatformDataMac::~SVGResourceFilterPlatformDataMac):
70800         (WebCore::SVGResourceFilterPlatformDataMac::getCIFilterStack):
70801         (WebCore::alphaImageForImage):
70802         (WebCore::SVGResourceFilterPlatformDataMac::imageForName):
70803         (WebCore::SVGResourceFilterPlatformDataMac::setImageForName):
70804         (WebCore::SVGResourceFilterPlatformDataMac::setOutputImage):
70805         (WebCore::SVGResourceFilterPlatformDataMac::inputImage):
70807 2007-10-28  Alexey Proskuryakov  <ap@webkit.org>
70809         Reviewed by Adam Roben.
70811         http://bugs.webkit.org/show_bug.cgi?id=15217
70812         Plugin complains that xpcom_core.dll missing
70814         * plugins/win/PluginDatabaseWin.cpp:
70815         (WebCore::PluginDatabaseWin::isPluginBlacklisted): Blacklist npmozax.dll.
70817 2007-10-28  Timothy Hatcher  <timothy@apple.com>
70819         Reviewed by Adam.
70821         Pass the Document's domain to InspectorController:didOpenDatabase. This matches
70822         what the Inspector shows for other resources.
70824         * storage/Database.cpp:
70825         (WebCore::Database::openDatabase):
70827         * dom/Document.h: Remove KURL.h, no longer needed.
70829 2007-10-28  Timothy Hatcher  <timothy@apple.com>
70831         Reviewed by Adam.
70833         Bug 15728: Selected Resource background image gradient has banding
70834         http://bugs.webkit.org/show_bug.cgi?id=15728
70836         - Reduced images to 1px wide that are tiled horizontally in CSS.
70837         - Corrected the -webkit-background-size usage to specify auto for the width.
70839         * page/inspector/Images/attachedShadow.png:
70840         * page/inspector/Images/bottomShadow.png:
70841         * page/inspector/Images/darkShadow.png:
70842         * page/inspector/Images/gradient.png:
70843         * page/inspector/Images/gradientHighlight.png:
70844         * page/inspector/Images/gradientHighlightBottom.png:
70845         * page/inspector/Images/sidebarSelection.png:
70846         * page/inspector/Images/sidebarSelectionBlurred.png:
70847         * page/inspector/Images/sidebarSelectionBlurredTall.png:
70848         * page/inspector/Images/sidebarSelectionGray.png:
70849         * page/inspector/Images/sidebarSelectionGrayTall.png:
70850         * page/inspector/Images/sidebarSelectionTall.png:
70851         * page/inspector/inspector.css:
70853 2007-10-27  Timothy Hatcher  <timothy@apple.com>
70855         Reviewed by Adam.
70857         Bug 15727: Resizing the resource sidebar doesn't scale the font preview or network timeline
70858         http://bugs.webkit.org/show_bug.cgi?id=15727
70860         Add one window resize listener and call the new resize function on the currentPanel.
70861         Also call the currentPanel's resize function when resizing the sidebar.
70863         * page/inspector/DocumentPanel.js: Implement resize and call updateTreeSelection() when
70864           the panel is shown and when resizing the DOM sidebar.
70865         * page/inspector/FontPanel.js: Implement resize.
70866         * page/inspector/NetworkPanel.js: Ditto.
70867         * page/inspector/inspector.js: Add a window resize listener.
70869 2007-10-27  Maciej Stachowiak  <mjs@apple.com>
70871         Reviewed by Oliver.
70872         
70873         - update for HashTable changes
70875         * bindings/js/JSSVGPODTypeWrapper.h:
70876         * dom/Document.h:
70877         * dom/QualifiedName.cpp:
70878         * dom/StyledElement.cpp:
70879         * ksvg2/svg/SVGAnimatedTemplate.h:
70880         * platform/FontCache.cpp:
70881         * platform/StringHash.h:
70882         (WTF::):
70883         * platform/TextEncodingRegistry.cpp:
70884         * platform/graphics/IntSizeHash.h:
70885         (WTF::):
70886         * plugins/win/PluginPackageWin.h:
70888 2007-10-28  Alp Toker  <alp@atoker.com>
70890         Reviewed by Adam Roben.
70892         http://bugs.webkit.org/show_bug.cgi?id=15646
70893         [GTK] caretBlinkFrequency is hard-coded in Frame.cpp
70895         Abstract caretBlinkFrequency to RenderTheme.
70897         * page/Frame.cpp:
70898         (WebCore::Frame::selectionLayoutChanged):
70899         * platform/gtk/RenderThemeGtk.cpp:
70900         (WebCore::RenderThemeGtk::caretShouldBlink):
70901         (WebCore::RenderThemeGtk::caretBlinkFrequency):
70902         * platform/gtk/RenderThemeGtk.h:
70903         * rendering/RenderTheme.h:
70905 2007-10-27  Timothy Hatcher  <timothy@apple.com>
70907         Reviewed by Adam.
70909         Don't print the line number in the Inspector Console if it is Zero.
70911         * page/inspector/ConsolePanel.js:
70913 2007-10-27  Sam Weinig  <sam@webkit.org>
70915         Reviewed by Adam Roben.
70917         Fix http://bugs.webkit.org/show_bug.cgi?id=14953
70918         Implement window.console in WebCore
70920         - Adds a window.console object that has 4 methods (log, info, warn, and error)
70921           that send messages to the Chrome.  This moves functionality that was in the
70922           app down into WebCore.
70924         * DerivedSources.make:
70925         * WebCore.pro:
70926         * WebCore.vcproj/WebCore.vcproj:
70927         * WebCore.xcodeproj/project.pbxproj:
70928         * bindings/scripts/CodeGeneratorJS.pm: Add extended attribute
70929         to mark attributes as [Replacable] which indicates they can 
70930         overridden when set.
70931         * page/Chrome.cpp:
70932         (WebCore::Chrome::addMessageToConsole): Allow all messages to go
70933         up to the ChromeClient.
70934         * page/Console.cpp: Added.
70935         (WebCore::Console::Console):
70936         (WebCore::Console::disconnectFrame):
70937         (WebCore::Console::error):
70938         (WebCore::Console::info):
70939         (WebCore::Console::log):
70940         (WebCore::Console::warn):
70941         * page/Console.h: Added.
70942         * page/Console.idl: Added.
70943         * page/DOMWindow.cpp:
70944         (WebCore::DOMWindow::clear):
70945         (WebCore::DOMWindow::console):
70946         * page/DOMWindow.h:
70947         * page/DOMWindow.idl:
70949 2007-10-27  Eric Seidel  <eric@webkit.org>
70951         Reviewed by aroben.
70952         
70953         Remove legacy createFilterEffect function (causing extra filter tests to fail on windows)
70955         No functional changes, thus no tests.
70957         * ksvg2/svg/SVGFEBlendElement.cpp:
70958         (WebCore::SVGFEBlendElement::filterEffect):
70959         * ksvg2/svg/SVGFEColorMatrixElement.cpp:
70960         (WebCore::SVGFEColorMatrixElement::filterEffect):
70961         * ksvg2/svg/SVGFEComponentTransferElement.cpp:
70962         (WebCore::SVGFEComponentTransferElement::filterEffect):
70963         * ksvg2/svg/SVGFECompositeElement.cpp:
70964         (WebCore::SVGFECompositeElement::filterEffect):
70965         * ksvg2/svg/SVGFEDiffuseLightingElement.cpp:
70966         (WebCore::SVGFEDiffuseLightingElement::filterEffect):
70967         * ksvg2/svg/SVGFEDisplacementMapElement.cpp:
70968         (WebCore::SVGFEDisplacementMapElement::filterEffect):
70969         * ksvg2/svg/SVGFEFloodElement.cpp:
70970         (WebCore::SVGFEFloodElement::filterEffect):
70971         * ksvg2/svg/SVGFEGaussianBlurElement.cpp:
70972         (WebCore::SVGFEGaussianBlurElement::filterEffect):
70973         * ksvg2/svg/SVGFEImageElement.cpp:
70974         (WebCore::SVGFEImageElement::filterEffect):
70975         * ksvg2/svg/SVGFEMergeElement.cpp:
70976         (WebCore::SVGFEMergeElement::filterEffect):
70977         * ksvg2/svg/SVGFEOffsetElement.cpp:
70978         (WebCore::SVGFEOffsetElement::filterEffect):
70979         * ksvg2/svg/SVGFESpecularLightingElement.cpp:
70980         (WebCore::SVGFESpecularLightingElement::filterEffect):
70981         * ksvg2/svg/SVGFETileElement.cpp:
70982         (WebCore::SVGFETileElement::filterEffect):
70983         * ksvg2/svg/SVGFETurbulenceElement.cpp:
70984         (WebCore::SVGFETurbulenceElement::filterEffect):
70985         * platform/graphics/svg/SVGResourceFilter.h:
70986         * platform/graphics/svg/cg/SVGResourceFilterCg.cpp:
70987         * platform/graphics/svg/cg/SVGResourceFilterCg.mm:
70988         * platform/graphics/svg/qt/SVGResourceFilterQt.cpp:
70990 2007-10-27  Dan Bernstein  <mitz@apple.com>
70992         Reviewed by Darin Adler.
70994         - fix a crash when opening Zenoss server history view
70995           <rdar://problem/5530657>
70997         Test: fast/table/colgroup-relative.html
70999         * rendering/LayoutState.cpp:
71000         (WebCore::LayoutState::LayoutState): Added a hasLayer() check before
71001         accessing layer().
71003 2007-10-27  Julien  <julien.chaffraix@gmail.com>
71005         Reviewed by Alexey.
71007         http://bugs.webkit.org/show_bug.cgi?id=13141
71008         XMLHttpRequest should set readyState to 0 after abort()
71009         
71010         Test: http/tests/xmlhttprequest/xmlhttprequest-abort-readyState.html
71012         * xml/XMLHttpRequest.cpp:
71013         (WebCore::XMLHttpRequest::open):
71014         (WebCore::XMLHttpRequest::abort):
71016 2007-10-27  Dan Bernstein  <mitz@apple.com>
71018         Reviewed by Dave Hyatt.
71020         - fix rotated border images by using a temporary subimage containing
71021           only the part we want to tile
71023         Test: fast/borders/border-image-rotate-transform.html
71025         * platform/graphics/cg/ImageCG.cpp:
71026         (WebCore::Image::drawPatternCallback):
71027         (WebCore::Image::drawPattern):
71029 2007-10-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
71031         Reviewed by Alp.
71033         http://bugs.webkit.org/show_bug.cgi?id=15722
71034         [GTK] Refactor gtk/RenderThemeGtk and implement a few more methods
71036         Refactor/enhance GTK RenderTheme
71038         * platform/gtk/RenderThemeGtk.cpp:
71039         (WebCore::RenderThemeGtk::supportsFocus): added TextArea, Menulist, Radio, and Checkbox Appearances
71040         (WebCore::RenderThemeGtk::supportsFocusRing): call supportsFocus() to check if focus on appearance is supported
71041         (WebCore::RenderThemeGtk::controlSupportsTints): copied from Qt and Safari ports
71042         (WebCore::RenderThemeGtk::baselinePosition): copied from Qt and Safari ports
71043         (WebCore::RenderThemeGtk::paintCheckbox): moved painting in paintButton
71044         (WebCore::RenderThemeGtk::paintRadio): moved painting in paintButton
71045         (WebCore::RenderThemeGtk::paintButton): paint the different buttons here, checking for the right appearance before doing so
71046         (WebCore::RenderThemeGtk::paintMenuList): use 0 instead of NULLs
71047         (WebCore::RenderThemeGtk::adjustTextFieldStyle):
71048         (WebCore::RenderThemeGtk::getThemeData):
71049         * platform/gtk/RenderThemeGtk.h:
71050         (WebCore::RenderThemeGtk::supportsControlTints):
71052 2007-10-27  Alexey Proskuryakov  <ap@webkit.org>
71054         Reviewed by Darin.
71056         http://bugs.webkit.org/show_bug.cgi?id=15555
71057         XMLHttpRequest does not support charset "x-user-defined", which can
71058         facilitate loading of binary data
71060         Test: http/tests/xmlhttprequest/binary-x-user-defined.html
71062         * WebCore.pro:
71063         * WebCore.vcproj/WebCore.vcproj:
71064         * WebCore.xcodeproj/project.pbxproj:
71065         * platform/TextCodecUserDefined.cpp: Added.
71066         (WebCore::TextCodecUserDefined::registerEncodingNames):
71067         (WebCore::newStreamingTextDecoderUserDefined):
71068         (WebCore::TextCodecUserDefined::registerCodecs):
71069         (WebCore::TextCodecUserDefined::decode):
71070         (WebCore::encodeComplexUserDefined):
71071         (WebCore::TextCodecUserDefined::encode):
71072         * platform/TextCodecUserDefined.h: Added.
71073         * platform/TextEncodingRegistry.cpp:
71074         (WebCore::buildBaseTextCodecMaps):
71076 2007-10-27  Alexey Proskuryakov  <ap@webkit.org>
71078         Reviewed by Darin.
71080         http://bugs.webkit.org/show_bug.cgi?id=15467
71081         Setting innerHTML to blank string in application/xhtml+xml mode
71082         throws DOM Exception 7
71084         Test: fast/dom/blank-innerHTML.xhtml
71086         * dom/XMLTokenizer.cpp:
71087         (WebCore::parseXMLDocumentFragment): Bail out early if the input string is empty.
71089 2007-10-26  Sam Weinig  <sam@webkit.org>
71091         Enable dragging the left sidebar using the separator.
71093         Reviewed by Anders (unless Mitz says otherwise).
71095         * page/inspector/DocumentPanel.js:
71096         * page/inspector/inspector.css:
71097         * page/inspector/inspector.html:
71098         * page/inspector/inspector.js:
71100 2007-10-26  Sam Weinig  <sam@webkit.org>
71102         Fix an off by one error when resizing the Inspector find window.
71104         Reviewed by Hyatt.
71106         * page/inspector/inspector.js:
71108 2007-10-26  Jon Honeycutt  <jhoneycutt@apple.com>
71110         Reviewed by Adam.
71112         Fix fallout from r26072, which leads to all plugin streams for local
71113         resources being cancelled
71115         * loader/win/NetscapePlugInStreamLoaderWin.cpp:
71116         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse): Ensure this
71117         is an HTTP response before checking the HTTP response code
71119 2007-10-26  David Hyatt  <hyatt@apple.com>
71121         Fix for http://bugs.webkit.org/show_bug.cgi?id=15719, transformed box doesn't repaint properly
71122         when only translation changes.
71124         Move the updating of the transform to in between the old repaint and the new repaint.
71126         Reviewed by mitz
71128         fast/repaint/transform-translate.html
71130         * rendering/RenderLayer.cpp:
71131         (WebCore::RenderLayer::updateLayerPositions):
71133 2007-10-26  Jon Honeycutt  <jhoneycutt@apple.com>
71135         Reviewed by Darin.
71137         <rdar://5557379> Crash in Silverlight when opening microsoft.com
71139         The crash is within Silverlight, and the latest version of the plugin
71140         does not exhibit this crash, so just avoid loading this version of the
71141         plugin.
71143         * plugins/win/PluginDatabaseWin.cpp: Added isPluginBlacklisted() and
71144         constants silverlightPluginMinRequiredVersionMSDWORD and
71145         silverlightPluginMinRequiredVersionLSDWORD. Their values are taken from 
71146         the version info of Silverlight 1.0.20926.0, which is a version known
71147         not to exhibit this crash
71148         (WebCore::PluginDatabaseWin::isPluginBlacklisted): Determine whether
71149         this plugin is blacklisted
71150         * plugins/win/PluginDatabaseWin.h:
71151         * plugins/win/PluginPackageWin.cpp:
71152         (WebCore::PluginPackageWin::PluginPackageWin): Initialize m_fileVersion*
71153         (WebCore::PluginPackageWin::getFileVersion):
71154         (WebCore::PluginPackageWin::storeFileVersion): Read version info for
71155         the plugin, and store the file version
71156         (WebCore::PluginPackageWin::fetchInfo): After determining the name,
71157         description, and file version, determine whether this plug-in is
71158         blacklisted. If so, return false so this plug-in isn't loaded
71159         * plugins/win/PluginPackageWin.h:
71161 2007-10-26  Sam Weinig  <sam@webkit.org>
71163         Reviewed by Adele Peterson.
71165         Fix for <rdar://problem/5421754>
71166         m_frameName member variable in HTMLPlugInElement unnecessary
71168         - Refactor the willRemove() method down into HTMLFrameOwnerElement now that
71169           we no longer need to use the m_frameName variable.
71171         * html/HTMLFrameElementBase.cpp:
71172         * html/HTMLFrameElementBase.h:
71173         * html/HTMLFrameOwnerElement.cpp:
71174         (WebCore::HTMLFrameOwnerElement::willRemove):
71175         * html/HTMLFrameOwnerElement.h:
71176         * html/HTMLPlugInElement.cpp:
71177         * html/HTMLPlugInElement.h:
71178         * loader/FrameLoader.cpp:
71179         (WebCore::FrameLoader::requestObject):
71181 2007-10-26  Adele Peterson  <adele@apple.com>
71183         Export _wkDrawCapsLockIndicator.
71185         * WebCore.base.exp:
71187 2007-10-26  Adele Peterson  <adele@apple.com>
71189         Reviewed by Oliver.
71191         Adding WebKitSystemInterface support for the caps lock indicator
71193         * platform/mac/WebCoreSystemInterface.h:
71194         * platform/mac/WebCoreSystemInterface.mm:
71196 2007-10-26  Tristan O'Tierney  <tristan@apple.com>
71198         Reviewed by Darin Adler.
71200         <rdar://problem/5555053> REGRESSION:9A581: Window disappears when opening http://research.microsoft.com/users/darkok/
71201         The problem was caused by checkin r24654. This change moved explicit bounds checking into adjustWindowRect
71202         but failed to account for bounds checking (instead replaced with bounds clipping).  This caused issues
71203         when NaN was used. This patch goes one step further and does NaN checking to prevent the possibility of
71204         setting window bounds to NaN before an update occurs.
71206         Test: fast/dom/Window/window-resize-nan.html
71207         
71208         * bindings/js/kjs_window.cpp:
71209         (KJS::adjustWindowRect):
71210         Added a new parameter, pendingChanges, which takes pending changes to the window
71211         rect, and if they are valid (not NaN) sets them on window.
71212         
71213         (KJS::WindowFunc::callAsFunction):
71214         Adjusted uses of adjustWindowRect to take new update parameter.
71216 2007-10-26  Sam Weinig  <sam@webkit.org>
71218         Reviewed by Tim Hatcher.
71220         Fix for http://bugs.webkit.org/show_bug.cgi?id=15175
71221         Cannot copy text of errors from Web Inspector from Console view
71223         * page/inspector/inspector.css: add -webkit-user-select: text for console messages.
71225 2007-10-26  Sam Weinig  <sam@webkit.org>
71227         Reviewed by Tim Hatcher.
71229         Fix for http://bugs.webkit.org/show_bug.cgi?id=15446
71230         Web Inspector find window is not resizable
71232         - Adds ability to resize the find window.
71233         - Fixes bug that messed up the find window when resizing the left sidebar. 
71235         * page/inspector/inspector.css:
71236         * page/inspector/inspector.html:
71237         * page/inspector/inspector.js:
71239 2007-10-26  Ada Chan  <adachan@apple.com>
71241         Update m_current index after we've removed an item:
71242         - if item removed is before m_current, decrement m_current
71243         - if the current item is removed, make sure m_current is within bounds.
71245         Reviewed by Darin.
71247         * history/BackForwardList.cpp:
71248         (WebCore::BackForwardList::removeItem):
71250 2007-10-26  Mark Rowe  <mrowe@apple.com>
71252         Debug build fix.
71254         * bindings/js/kjs_proxy.cpp:
71255         (WebCore::KJSProxy::~KJSProxy):
71257 2007-10-26  Maciej Stachowiak  <mjs@apple.com>
71259         No review, build fix.
71261         * bindings/objc/WebScriptObject.mm:
71262         (+[WebScriptObject throwException:]):
71263         (-[WebScriptObject setException:]):
71265 2007-10-26  Maciej Stachowiak  <mjs@apple.com>
71267         Rubber Stamped by Mark.
71269         - fix build
71271         * bridge/mac/WebCoreScriptDebugger.mm:
71272         (-[WebCoreScriptCallFrame scopeChain]):
71273         (-[WebCoreScriptCallFrame functionName]):
71274         (-[WebCoreScriptCallFrame evaluateWebScript:]):
71276 2007-10-26  Maciej Stachowiak  <mjs@apple.com>
71278         Reviewed by Oliver.
71280         - update for JavaScriptCore header changes
71282         * bindings/objc/WebScriptObject.mm:
71283         * bridge/mac/WebCoreScriptDebugger.mm:
71285 2007-10-26  Alp Toker  <alp@atoker.com>
71287         Reviewed by Mark Rowe.
71289         http://bugs.webkit.org/show_bug.cgi?id=15693
71290         [GTK] Paging does not work when widget is added to a GtkScrolledWindow
71292         Eliminate MagicGtkScrollConstant in favour of the same calculations as
71293         GtkTextView for step and page increments. This also makes paging work,
71294         as the page increment was previously always 0.
71296         * platform/gtk/ScrollViewGtk.cpp:
71297         (WebCore::ScrollView::updateScrollbars):
71299 2007-10-25  Dan Bernstein  <mitz@apple.com>
71301         Reviewed by Dave Hyatt and Sam Weinig.
71303         Build fix
71305         * platform/graphics/cg/ImageCG.cpp:
71306         (WebCore::Image::drawPattern):
71308 2007-10-23  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
71310         Reviewed by Alp.
71312         http://bugs.webkit.org/show_bug.cgi?id=15656
71313         [GTK] Implement WebCore::Widget::isEnabled/setEnabled
71315         * platform/gtk/WidgetGtk.cpp:
71316         (WebCore::Widget::isEnabled):
71317         (WebCore::Widget::setEnabled): Implemented.
71319 2007-10-25  David Hyatt  <hyatt@apple.com>
71321         Fix for bug 15672, background images don't tile properly inside transforms.  This patch fixes background
71322         tiling to work in the presence of transforms and fixes bugs in both SVG and CSS transforms.
71324         Reviewed by aroben and mitz
71326         * WebCore.base.exp:
71327         * platform/graphics/Image.cpp:
71328         (WebCore::Image::setData):
71329         * platform/graphics/cg/ImageCG.cpp:
71330         (WebCore::ImageInfo::ImageInfo):
71331         (WebCore::Image::drawPatternCallback):
71332         (WebCore::Image::drawPattern):
71333         * platform/graphics/mac/GraphicsContextMac.mm:
71334         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
71335         * platform/mac/WebCoreSystemInterface.h:
71336         * platform/mac/WebCoreSystemInterface.mm:
71338 2007-10-25  Brady Eidson  <beidson@apple.com>
71340         Blind build fix attempt
71342         * WebCore.pro:
71344 2007-10-25  Brady Eidson  <beidson@apple.com>
71346         Reviewed by Anders and Sam
71348         Bulk rename of platform/sql/SQL* to platform/sql/SQLite*
71349         
71350         This is more accurate in that there is no realistic "SQL" abstraction, the classes are obviously
71351         tied extremely close to SQLite, and is necessitated by the introduction of "SQLTransaction" in 
71352         the HTML5 database API which we are adopting.
71354         * WebCore.vcproj/WebCore.vcproj:
71355         * WebCore.xcodeproj/project.pbxproj:
71356         * loader/icon/IconDatabase.cpp:
71357         (WebCore::IconDatabase::iconDatabaseSyncThread):
71358         (WebCore::databaseVersionNumber):
71359         (WebCore::isValidDatabase):
71360         (WebCore::createDatabaseTables):
71361         (WebCore::IconDatabase::performOpenInitialization):
71362         (WebCore::IconDatabase::checkIntegrity):
71363         (WebCore::IconDatabase::performURLImport):
71364         (WebCore::IconDatabase::writeToDatabase):
71365         (WebCore::IconDatabase::pruneUnretainedIcons):
71366         (WebCore::IconDatabase::checkForDanglingPageURLs):
71367         (WebCore::IconDatabase::imported):
71368         (WebCore::IconDatabase::setImported):
71369         (WebCore::readySQLiteStatement):
71370         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
71371         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
71372         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
71373         (WebCore::IconDatabase::addIconURLToSQLDatabase):
71374         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
71375         (WebCore::IconDatabase::removeIconFromSQLDatabase):
71376         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
71377         * loader/icon/IconDatabase.h:
71378         * loader/icon/IconRecord.cpp:
71379         * platform/sql/SQLAuthorizer.cpp: Removed.
71380         * platform/sql/SQLAuthorizer.h: Removed.
71381         * platform/sql/SQLDatabase.cpp: Removed.
71382         * platform/sql/SQLDatabase.h: Removed.
71383         * platform/sql/SQLStatement.cpp: Removed.
71384         * platform/sql/SQLStatement.h: Removed.
71385         * platform/sql/SQLTransaction.cpp: Removed.
71386         * platform/sql/SQLTransaction.h: Removed.
71387         * platform/sql/SQLiteAuthorizer.cpp: Copied from platform/sql/SQLAuthorizer.cpp.
71388         * platform/sql/SQLiteAuthorizer.h: Copied from platform/sql/SQLAuthorizer.h.
71389         (WebCore::SQLiteAuthorizer::~SQLiteAuthorizer):
71390         * platform/sql/SQLiteDatabase.cpp: Copied from platform/sql/SQLDatabase.cpp.
71391         (WebCore::SQLiteDatabase::SQLiteDatabase):
71392         (WebCore::SQLiteDatabase::~SQLiteDatabase):
71393         (WebCore::SQLiteDatabase::open):
71394         (WebCore::SQLiteDatabase::close):
71395         (WebCore::SQLiteDatabase::setFullsync):
71396         (WebCore::SQLiteDatabase::setSynchronous):
71397         (WebCore::SQLiteDatabase::setBusyTimeout):
71398         (WebCore::SQLiteDatabase::setBusyHandler):
71399         (WebCore::SQLiteDatabase::executeCommand):
71400         (WebCore::SQLiteDatabase::returnsAtLeastOneResult):
71401         (WebCore::SQLiteDatabase::tableExists):
71402         (WebCore::SQLiteDatabase::clearAllTables):
71403         (WebCore::SQLiteDatabase::runVacuumCommand):
71404         (WebCore::SQLiteDatabase::lastInsertRowID):
71405         (WebCore::SQLiteDatabase::lastChanges):
71406         (WebCore::SQLiteDatabase::lastError):
71407         (WebCore::SQLiteDatabase::lastErrorMsg):
71408         (WebCore::SQLiteDatabase::authorizerFunction):
71409         (WebCore::SQLiteDatabase::setAuthorizer):
71410         (WebCore::SQLiteDatabase::lock):
71411         (WebCore::SQLiteDatabase::unlock):
71412         * platform/sql/SQLiteDatabase.h: Copied from platform/sql/SQLDatabase.h.
71413         * platform/sql/SQLiteStatement.cpp: Copied from platform/sql/SQLStatement.cpp.
71414         (WebCore::SQLiteStatement::SQLiteStatement):
71415         (WebCore::SQLiteStatement::~SQLiteStatement):
71416         (WebCore::SQLiteStatement::prepare):
71417         * platform/sql/SQLiteStatement.h: Copied from platform/sql/SQLStatement.h.
71418         (WebCore::SQLiteStatement::database):
71419         * platform/sql/SQLiteTransaction.cpp: Copied from platform/sql/SQLTransaction.cpp.
71420         (WebCore::SQLiteTransaction::SQLiteTransaction):
71421         (WebCore::SQLiteTransaction::~SQLiteTransaction):
71422         (WebCore::SQLiteTransaction::begin):
71423         (WebCore::SQLiteTransaction::commit):
71424         (WebCore::SQLiteTransaction::rollback):
71425         * platform/sql/SQLiteTransaction.h: Copied from platform/sql/SQLTransaction.h.
71426         * storage/Database.cpp:
71427         (WebCore::retrieveTextResultFromDatabase):
71428         (WebCore::setTextValueInDatabase):
71429         (WebCore::Database::performExecuteSql):
71430         (WebCore::Database::performGetTableNames):
71431         (WebCore::Database::executeSql):
71432         * storage/Database.h:
71433         * storage/DatabaseAuthorizer.h:
71434         * storage/DatabaseTracker.cpp:
71435         (WebCore::DatabaseTracker::fullPathForDatabase):
71436         (WebCore::DatabaseTracker::populateOrigins):
71437         (WebCore::DatabaseTracker::databaseNamesForOrigin):
71438         (WebCore::DatabaseTracker::addDatabase):
71439         * storage/DatabaseTracker.h:
71441 2007-10-25  Alexey Proskuryakov  <ap@webkit.org>
71443         Reviewed by Darin.
71445         http://bugs.webkit.org/show_bug.cgi?id=15650
71446         XML attribute nodes are not importable
71448         Tests: fast/dom/import-attribute-node.html
71449                fast/dom/import-document-fragment.html
71451         * dom/Document.cpp:
71452         (WebCore::Document::importNode): Implemented for Attribute and DocumentFragment nodes.
71454 2007-10-25  Dan Bernstein  <mitz@apple.com>
71456         Reviewed by Dave Hyatt.
71458         - fix http://bugs.webkit.org/show_bug.cgi?id=15362
71459           <rdar://problem/5558715> Safari Crashes when opening a JS TreeGrid widget
71461         Test: fast/dynamic/insert-before-table-part-in-continuation.html
71463         * rendering/RenderFlow.cpp:
71464         (WebCore::RenderFlow::addChildWithContinuation): If beforeChild's
71465         parent is an anonymous table part, let the table figure out where to
71466         insert the new child.
71468 2007-10-25  Alp Toker  <alp@atoker.com>
71470         Reviewed by Brady.
71472         http://bugs.webkit.org/show_bug.cgi?id=15686
71473         GtkLauncher aborts on launch due to uninitialized threading subsystem
71475         Re-enable database support in the GTK+ port, with a fix.
71477         * WebCore.pro:
71479 2007-10-25  Jon Honeycutt  <jhoneycutt@apple.com>
71481         Reviewed by Steve.
71483         <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
71484         java page
71486         Previous patch erroneously compared a path and a
71487         path-including-filename. This corrects that. It also caches the result
71488         of safariPluginsPath() and uses shell API funcs for determining filename
71489         and parent directory from a full path.
71491         * plugins/win/PluginDatabaseWin.cpp:
71492         (WebCore::safariPluginsPath): Cache return value. Use API functions to
71493         build the path
71494         (WebCore::PluginDatabaseWin::pluginForMIMEType): Compare again plugin's
71495         parent directory, not full path
71496         (WebCore::PluginDatabaseWin::pluginForExtension): Same
71497         * plugins/win/PluginPackageWin.cpp:
71498         (WebCore::PluginPackageWin::PluginPackageWin): Store parent directory
71499         * plugins/win/PluginPackageWin.h:
71500         (WebCore::PluginPackageWin::parentDirectory):
71501         * plugins/win/PluginStreamWin.cpp:
71502         (WebCore::PluginStreamWin::didReceiveData):
71504 2007-10-25  Alp Toker  <alp@atoker.com>
71506         Unreviewed fix to make the GTK+ port run.
71508         http://bugs.webkit.org/show_bug.cgi?id=15686
71509         GtkLauncher aborts on launch due to uninitialized threading subsystem
71511         Disable database support until #15686 is fixed.
71513         * WebCore.pro:
71515 2007-10-25  Simon Hausmann  <hausmann@kde.org>
71517         Reviewed by Lars.
71519         Fixed a crash in the Qt 4.4 based text iterators when they're called with a null string.
71521         * platform/qt/TextBreakIteratorQt.cpp:
71522         (WebCore::wordBreakIterator):
71523         (WebCore::characterBreakIterator):
71524         (WebCore::lineBreakIterator):
71525         (WebCore::sentenceBreakIterator):
71527 2007-10-25  Holger Freyther  <zecke@selfish.org>
71529         Reviewed by Simon Hausmann <hausmann@kde.org>.
71531         * We need to set a != 0 status code for the fast/loader/xmlhttprequest-missing-file-exception.html
71532         * libxml2 has the semantic that when writing an empty string and finishing it will report an error. For QXmlStreamReader this is valid.
71533         * This is causing some regressions...
71534         
71536         * dom/XMLTokenizer.cpp:
71537         (WebCore::XMLTokenizer::XMLTokenizer):
71538         (WebCore::XMLTokenizer::write):
71539         (WebCore::XMLTokenizer::end):
71540         * dom/XMLTokenizer.h:
71542 2007-10-25  Holger Freyther  <zecke@selfish.org>
71544         Reviewed by Simon Hausmann <hausmann@kde.org>.
71546         * fast/dom/onerror-img.html regressed due checking the JobStates because in case of error (e.g. not being able to connect) the job will no be started.
71547         * Use the error message from Qt. It might or might not be translated.
71549         * platform/network/qt/ResourceHandleQt.cpp:
71550         (WebCore::WebCoreSynchronousLoader::didFail):
71552 2007-10-25  Holger Freyther  <zecke@selfish.org>
71554         Reviewed by Simon Hausmann <hausmann@kde.org>.
71556         * Implement our own queuing of network jobs to allow special handling of synchronous jobs. This makes us pass the fast/dom/xmlhttprequest-html-response-encoding.html test without a crash. Sync jobs will get a special treatment over the normals ones and in theory more than one sync job is supported.
71557         * This should be thread-safe besides QWebNetworkJob::{ref,deref}
71558         
71560         * platform/network/qt/ResourceHandleQt.cpp:
71561         (WebCore::ResourceHandle::loadResourceSynchronously):
71563 2007-10-25  Alp Toker  <alp@atoker.com>
71565         Reviewed by Mark Rowe.
71567         Add support for list box theme colors and styled menu list buttons.
71569         Remove obsolete FIXMEs.
71571         * platform/gtk/RenderThemeGtk.cpp:
71572         (WebCore::RenderThemeGtk::RenderThemeGtk):
71573         (WebCore::RenderThemeGtk::paintCheckbox):
71574         (WebCore::RenderThemeGtk::paintRadio):
71575         (WebCore::RenderThemeGtk::paintButton):
71576         (WebCore::RenderThemeGtk::adjustMenuListStyle):
71577         (WebCore::RenderThemeGtk::paintMenuList):
71578         (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
71579         (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
71580         (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
71581         (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
71582         (WebCore::RenderThemeGtk::gtkTreeView):
71583         * platform/gtk/RenderThemeGtk.h:
71585 2007-10-25  Eric Seidel  <eric@webkit.org>
71587         Reviewed by Geoff.
71589         * bindings/js/kjs_window.h: fix bogus comment, s/DOMNode/DOMObject/
71591 2007-10-24  Eric Seidel  <eric@webkit.org>
71593         Reviewed by Maciej.
71594         
71595         Make Window subclass from JSGlobalObject (for a .5% win in Sunspider)
71596         http://bugs.webkit.org/show_bug.cgi?id=15681
71598         No test cases necessary, no functional changes.
71600         * WebCore.xcodeproj/project.pbxproj:
71601         * bindings/js/kjs_binding.cpp:
71602         (KJS::ScriptInterpreter::ScriptInterpreter):
71603         * bindings/js/kjs_binding.h:
71604         * bindings/js/kjs_proxy.cpp:
71605         (WebCore::KJSProxy::initScriptIfNeeded):
71606         * bindings/js/kjs_window.cpp:
71607         (KJS::Window::Window):
71608         * bindings/js/kjs_window.h:
71609         * bindings/objc/WebScriptObject.mm:
71610         (_didExecute):
71611         * bridge/mac/WebCoreScriptDebugger.mm:
71613 2007-10-24  Adam Roben  <aroben@apple.com>
71615         Add font database initialization code to WebCore
71617         Reviewed by Ada.
71619         * WebCore.vcproj/WebCore.vcproj: Added FontDatabase.{cpp,h}.
71620         * platform/win/FontDatabase.cpp: Added.
71621         (WebCore::systemFontsDirectory):
71622         (WebCore::fontsPlistPath):
71623         (WebCore::systemHasFontsNewerThanFontsPlist):
71624         (WebCore::readFontPlist):
71625         (WebCore::populateFontDatabaseFromPlist):
71626         (WebCore::populateFontDatabaseFromFileSystem):
71627         (WebCore::writeFontDatabaseToPlist):
71628         (WebCore::populateFontDatabase): This is the only function callable
71629         from outside this file. It populates the font database once, either
71630         from the fonts plist, or from the filesystem (and then saves a new
71631         fonts plist).
71632         * platform/win/FontDatabase.h: Added.
71634 2007-10-24  Justin Garcia  <justin.garcia@apple.com>
71636         Reviewed by Darin Adler.
71638         Correcting the fix for:
71639         <rdar://problem/5544856> 
71640         REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
71641         
71642         Made removal of the previous composition part of the current Undo step in the 
71643         case where the new composition is the empty string, too.
71645         * editing/Editor.cpp:
71646         (WebCore::Editor::confirmComposition): Call the new TypingCommand::deleteSelection,
71647         which either has the currently open typing command delete the current selection, or
71648         opens a new typing command (of type DeleteSelection) if one is not already open.
71649         (WebCore::Editor::setComposition): Ditto.
71650         * editing/TypingCommand.cpp:
71651         (WebCore::TypingCommand::deleteSelection): Added.
71652         (WebCore::TypingCommand::doApply): Handle DeleteSelection.
71653         (WebCore::TypingCommand::deleteKeyPressed): Clarified which deleteSelection
71654         is called.
71655         (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
71656         (WebCore::TypingCommand::preservesTypingStyle): Handle DeleteSelection.
71657         * editing/TypingCommand.h:
71659 2007-10-24  Sam Weinig  <sam@webkit.org>
71661         Build fix.
71663         * WebCore.vcproj/WebCore.vcproj:
71665 2007-10-24  Alice Liu  <alice.liu@apple.com>
71667         Reviewed by Oliver.
71669         Fix <rdar://5410959>  editing/selection/drag-to-contenteditable-iframe.html fails on Windows
71670         
71671         * page/win/EventHandlerWin.cpp:
71672         (WebCore::EventHandler::passMouseMoveEventToSubframe):
71673         Some mouse move events are actually drags, which on mac return early from this function.
71674         Adding the same logic to its Windows equivalent.  
71676 2007-10-24  Brady Eidson  <beidson@apple.com>
71678         Reviewed by Anders
71680         <rdar://5554130> DatabaseTracker.o has a global initializer
71682         Since DatabaseTracker is a singleton, it makes much more sense to keep the database path as a member variable.
71683         Now constructing the shared DatabaseTracker no longer implicitly opens it - It is only opened when the databases 
71684         path is set.
71685         
71686         * WebCore.vcproj/WebCore.vcproj: Copy WebCore/storage headers for WebKit build
71687         
71688         * storage/Database.cpp:
71689         (WebCore::Database::~Database): Remove bogus assertion
71690         
71691         * storage/DatabaseTracker.cpp:
71692         (WebCore::DatabaseTracker::DatabaseTracker): Does nothing now!  Move this code to openTrackerDatabase
71693         (WebCore::DatabaseTracker::setDatabasePath): Set the member variable, also closing/opening the database if needed
71694         (WebCore::DatabaseTracker::databasePath):
71695         (WebCore::DatabaseTracker::openTrackerDatabase): To open and validate the Databases db, moved from the c'tor
71696         (WebCore::DatabaseTracker::fullPathForDatabase): Return the member variable
71697         * storage/DatabaseTracker.h:
71699 2007-10-24  David Hyatt  <hyatt@apple.com>
71701         Don't try to gap fill transformed selections.  Fix the invalidation of selection to use the clip to visible content
71702         code path so that it works with multi-column layouts and transforms.
71704         Reviewed by aroben
71706         * rendering/RenderBlock.cpp:
71707         (WebCore::RenderBlock::isSelectionRoot):
71708         (WebCore::RenderBlock::fillSelectionGaps):
71709         * rendering/RenderView.cpp:
71710         (WebCore::RenderView::setSelection):
71712 2007-10-24  Eric Seidel  <eric@webkit.org>
71714         No review, I want to tickle the CIA bot to test changes,
71715         and took this as an opportunity to clean up some old change logs.
71717         * ChangeLog-2005-08-23: update email address
71718         * ChangeLog-2006-12-31: fix spelling mistakes
71720 2007-10-24  Dan Bernstein  <mitz@apple.com>
71722         Reviewed by Oliver Hunt.
71724         - add "(anonymous)" to the renderName of anonymous table cells, rows and sections
71726         * rendering/RenderTableCell.h:
71727         (WebCore::RenderTableCell::renderName):
71728         * rendering/RenderTableRow.h:
71729         (WebCore::RenderTableRow::renderName):
71730         * rendering/RenderTableSection.h:
71731         (WebCore::RenderTableSection::renderName):
71733 2007-10-24  Timothy Hatcher  <timothy@apple.com>
71735         Reviewed by Adam.
71737         Bug 15476: DOM tree fully expands some elements when arrowing up
71738         http://bugs.webkit.org/show_bug.cgi?id=15476
71740         Add a new expandTreeElementsWhenArrowing option to TreeOutline. This option
71741         is used only for the sidebar and search results.
71743         * page/inspector/inspector.js: Opt-in for the sidebar and search results.
71744         * page/inspector/treeoutline.js: Add expandTreeElementsWhenArrowing and pass
71745           this option to traverseNextTreeElement and traversePreviousTreeElement.
71747 2007-10-24  Anders Carlsson  <andersca@apple.com>
71749         Reviewed by Geoff and Mitz.
71751         <rdar://problem/5493833>
71752         REGRESSION: ~5MB of image data leaked @ cuteoverload.com (often seen while browsing other sites, too)
71754         * bindings/js/kjs_binding.cpp:
71755         (KJS::ScriptInterpreter::markDOMNodesForDocument):
71756         If an image element that is currently loading an image is not in the document,
71757         it should still be marked.
71758         
71759         * bindings/js/kjs_html.cpp:
71760         (WebCore::ImageConstructorImp::construct):
71761         Force the document wrapper to be created.
71762         
71763         * html/HTMLImageElement.h:
71764         (WebCore::HTMLImageElement::haveFiredLoadEvent):
71765         New method which calls down to the image loader.
71766         
71767         * html/HTMLImageLoader.cpp:
71768         (WebCore::HTMLImageLoader::HTMLImageLoader):
71769         (WebCore::HTMLImageLoader::~HTMLImageLoader):
71770         (WebCore::HTMLImageLoader::setLoadingImage):
71771         (WebCore::HTMLImageLoader::dispatchLoadEvent):
71772         Remove code that's not needed anymore.
71773         
71774         * html/HTMLImageLoader.h:
71775         (WebCore::HTMLImageLoader::haveFiredLoadEvent):
71776         Make this public.
71778 2007-10-23  Adam Roben  <aroben@apple.com>
71780         Move Windows safe file creation code into WebCore from WebPreferences
71782         Reviewed by Brady.
71784         * platform/FileSystem.h:
71785         * platform/win/FileSystemWin.cpp:
71786         (WebCore::safeCreateFile): Moved here from WebKit/win/WebPreferences.cpp.
71788 2007-10-23  Adam Roben  <aroben@apple.com>
71790         Add methods to FileSystemWin to get some user profile directories
71792         These directories are used to hold things like preferences, caches,
71793         etc.
71795         Reviewed by Brady.
71797         * platform/FileSystem.h: Added new method declarations for Windows
71798         only.
71799         * platform/win/FileSystemWin.cpp:
71800         (WebCore::bundleName): Added.
71801         (WebCore::storageDirectory): Added.
71802         (WebCore::cachedStorageDirectory): Added.
71803         (WebCore::localUserSpecificStorageDirectory): Added. Returns the
71804         directory where WebKit should store any user-specific data that should
71805         stay local to the current machine (i.e., shouldn't be stored in a
71806         roaming profile).
71807         (WebCore::roamingUserSpecificStorageDirectory): Added. Returns the
71808         directory where WebKit should store any user-specific data that should
71809         move with the user from machine to machine (i.e., should be stored in
71810         a roaming profile).
71812 2007-10-24  Alp Toker  <alp@atoker.com>
71814         Reviewed by Mark Rowe.
71816         http://bugs.webkit.org/show_bug.cgi?id=15659
71817         InlineTextBox does not setStrokeStyle() as needed
71819         GraphicsContextCairo workaround to support a GraphicsContextCG quirk:
71821         Save and restore the StrokeStyle manually.
71823         * platform/graphics/cairo/GraphicsContextCairo.cpp:
71824         (WebCore::GraphicsContext::drawLineForText):
71826 2007-10-24  Julien Chaffraix  <julien.chaffraix@gmail.com>
71828         Reviewed by Darin.
71830         Patch for http://bugs.webkit.org/show_bug.cgi?id=15356
71831         Bug 15356: getResponseHeader and getAllResponseHeaders do not throw exceptions
71833         - getAllResponseHeaders and getResponseHeader throws INVALID_STATE_ERR exception as specified in the specification
71835         - Add the check to field-name production in getResponseHeader (call to isValidToken) and returns an empty string if the header is not valid (Opera and IE behaviour)
71837         - Updated XMLHttpRequest::responseMIMEType() to keep its behaviour
71839         Tests: http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders.html
71840                http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader.html
71841                http/tests/xmlhttprequest/xmlhttprequest-invalidHeader-getRequestHeader.html
71843         * bindings/js/JSXMLHttpRequest.cpp:
71844         (KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction):
71845         * xml/XMLHttpRequest.cpp:
71846         (WebCore::XMLHttpRequest::getAllResponseHeaders):
71847         (WebCore::XMLHttpRequest::getResponseHeader):
71848         (WebCore::XMLHttpRequest::responseMIMEType):
71849         * xml/XMLHttpRequest.h:
71851 2007-10-24  Lars Knoll  <lars@trolltech.com>
71853         Reviewed by Simon.
71855         implement most of DragData.
71857         * platform/qt/DragDataQt.cpp:
71858         (WebCore::DragData::containsColor):
71859         (WebCore::DragData::containsFiles):
71860         (WebCore::DragData::asFilenames):
71861         (WebCore::DragData::containsPlainText):
71862         (WebCore::DragData::asPlainText):
71863         (WebCore::DragData::asColor):
71864         (WebCore::DragData::containsCompatibleContent):
71865         (WebCore::DragData::containsURL):
71867 2007-10-24  Lars Knoll  <lars@trolltech.com>
71869         Reviewed by Simon.
71871         remove a stupid notImplemented() warning and implement PasteBoad::clear().
71873         * platform/qt/PasteboardQt.cpp:
71875 2007-10-24  Lars Knoll  <lars@trolltech.com>
71877         Reviewed by Simon.
71879         implement Pasteboard::documentFragment(), and fix a mem leak.
71881         * platform/qt/PasteboardQt.cpp:
71882         (WebCore::Pasteboard::generalPasteboard):
71883         (WebCore::Pasteboard::documentFragment):
71885 2007-10-24  Lars Knoll  <lars@trolltech.com>
71887         Reviewed by Simon.
71889         Simplify the PlatformKeyEvent constructor. No need to have an extra boolean for isKeyUp in there, as the QKeyEvent has the information.
71891         * platform/PlatformKeyboardEvent.h:
71892         * platform/qt/PlatformKeyboardEventQt.cpp:
71893         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
71895 2007-10-24  Lars Knoll  <lars@trolltech.com>
71897         Reviewed by Simon.
71899         use the new QTextBoundaryFinder class in Qt.
71901         * platform/qt/TextBoundaries.cpp:
71902         (WebCore::findNextWordFromIndex):
71903         (WebCore::findWordBoundary):
71904         * platform/qt/TextBreakIteratorQt.cpp:
71905         (WebCore::wordBreakIterator):
71906         (WebCore::characterBreakIterator):
71907         (WebCore::lineBreakIterator):
71908         (WebCore::sentenceBreakIterator):
71909         (WebCore::textBreakFirst):
71910         (WebCore::textBreakNext):
71911         (WebCore::textBreakPreceding):
71912         (WebCore::textBreakFollowing):
71913         (WebCore::textBreakCurrent):
71914         (WebCore::isTextBreak):
71916 2007-10-24  Darin Adler  <darin@apple.com>
71918         Reviewed by Maciej.
71920         - http://bugs.webkit.org/show_bug.cgi?id=15657
71921           change static hash tables to use powers of two for speed
71923         * bindings/scripts/CodeGeneratorJS.pm: Updated to generate new format.
71925 2007-10-24  Simon Hausmann  <hausmann@kde.org>
71927         Reviewed by Lars.
71929         Make the implementation of pathByAppendingComponent use QDir.
71931         * platform/qt/FileSystemQt.cpp:
71933 2007-10-24  David Hyatt  <hyatt@apple.com>
71935         Make repainting work with transforms.
71937         Reviewed by John Sullivan
71939         * rendering/RenderBox.cpp:
71940         (WebCore::RenderBox::computeAbsoluteRepaintRect):
71942 2007-10-23  Alp Toker  <alp@atoker.com>
71944         Reviewed by Maciej.
71946         http://bugs.webkit.org/show_bug.cgi?id=14412
71947         [GDK] Clipboard support
71949         Initial clipboard implementation for the GTK+ port.
71951         * platform/gtk/ClipboardGtk.cpp:
71952         (WebCore::Editor::newGeneralClipboard):
71953         * platform/gtk/PasteboardGtk.cpp:
71954         (WebCore::Pasteboard::generalPasteboard):
71955         (WebCore::Pasteboard::Pasteboard):
71956         (WebCore::Pasteboard::~Pasteboard):
71957         (WebCore::Pasteboard::writeSelection):
71958         (WebCore::Pasteboard::writeImage):
71959         (WebCore::Pasteboard::clear):
71960         (WebCore::Pasteboard::plainText):
71961         * platform/gtk/TemporaryLinkStubs.cpp:
71963 2007-10-23  Timothy Hatcher  <timothy@apple.com>
71965         Reviewed by Adam.
71967         Fixes the Network panel so that it refreshes as needed.
71969         * page/inspector/ConsolePanel.js: Call the base class show() and hide() first.
71970         * page/inspector/NetworkPanel.js: Add refreshNeeded and refreshIfNeeded back. Ditto.
71972 2007-10-23  Justin Garcia  <justin.garcia@apple.com>
71974         Reviewed by Oliver Hunt.
71976         <rdar://problem/5544856> 
71977         REGRESSION: After typing 2-byte text, undo only undoes one keystroke at a time
71978         
71979         No layout test for now because I'm having trouble getting Undo during a layout
71980         test to only undo the last Undo step, and I want to write a test that fails
71981         without the code change.
71983         * editing/Editor.cpp:
71984         (WebCore::Editor::confirmComposition): When we replace the previous composition,
71985         delete it with a sub-command of the command used to insert the new composition,
71986         instead of with a separate command.  No new code was added because insertText
71987         already deletes the current selection.
71988         (WebCore::Editor::setComposition): Ditto.
71990 2007-10-23  Adam Roben  <aroben@apple.com>
71992         Fix the behavior of pathByAppendingComponent when path is empty
71994         We now use the Windows Shell API function PathAppendW instead of
71995         rolling our own broken implementation.
71997         Reviewed by Anders.
71999         * platform/win/FileSystemWin.cpp:
72000         (WebCore::pathByAppendingComponent):
72002 2007-10-23  Adele Peterson  <adele@apple.com>
72004         Reviewed by Darin.
72006         Fix for <rdar://problem/5543228> CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::HTMLInputElement::defaultEventHandler + 872
72008         Test: fast/forms/textfield-onchange-deletion.html
72010         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
72011           Refetch the renderer since arbitrary JS code run during onchange can do anything, including destroying it.
72013 2007-10-23  Timothy Hatcher  <timothy@apple.com>
72015         Reviewed by Sam Weinig.
72017         - Made seperate files for the various classes in ResourcePanel.js.
72018         - Broke up ResourcePanel.js and created seperate panel classes for different resource types.
72019         - Moved View code down to the Panel base-class.
72020         - Reduced code duplication in DatabasePanel.js by sub-classing from the new ResourcePanel.
72022         * page/inspector/DatabasePanel.js:
72023         * page/inspector/DocumentPanel.js: Added.
72024         * page/inspector/FontPanel.js: Added.
72025         * page/inspector/ImagePanel.js: Added.
72026         * page/inspector/Panel.js: Added.
72027         * page/inspector/PropertiesSection.js: Added.
72028         * page/inspector/Resource.js:
72029         * page/inspector/ResourcePanel.js:
72030         * page/inspector/SidebarPane.js: Added.
72031         * page/inspector/SourcePanel.js: Added.
72032         * page/inspector/inspector.css:
72033         * page/inspector/inspector.html:
72034         * page/inspector/inspector.js:
72036 2007-10-23  Anders Carlsson  <andersca@apple.com>
72038         Correct the version #if check.
72039         
72040         * platform/sql/SQLDatabase.cpp:
72041         (WebCore::SQLDatabase::authorizerFunction):
72043 2007-10-23  Jon Honeycutt  <jhoneycutt@apple.com>
72045         Reviewed by Anders.
72047         <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
72048         java page
72050         It is possible to load Mozilla's Java plugin instead of our own, which
72051         can lead to a crash. The fix is to prefer plugins in our own Plugins
72052         directory when searching for a plugin.
72054         * plugins/win/PluginDatabaseWin.cpp:
72055         (WebCore::safariPluginsPath): Return the path to our own Plugins
72056         directory
72057         (WebCore::PluginDatabaseWin::defaultPluginPaths): Use new method
72058         safariPluginsPath()
72059         (WebCore::PluginDatabaseWin::pluginForMIMEType): If the plugin's path is
72060         our Plugins path, return this plugin. Otherwise, continue scanning the
72061         list of plugins
72062         (WebCore::PluginDatabaseWin::pluginForExtension): Same
72063         * plugins/win/PluginPackageWin.h:
72064         (WebCore::PluginPackageWin::path): Return this plugin's path
72066 2007-10-23  Jasper Bryant-Greene  <m@ni.ac.nz>
72068         Reviewed by Darin.
72070         http://bugs.webkit.org/show_bug.cgi?id=15058
72071         Precedence fault in KeyEventGdk causes shift, control, alt etc to work incorrectly
72073         Corrected precendence fault which was causing Shift, Alt, Control and
72074         Meta to behave incorrectly on GTK.
72076         Coding style fix by Alp.
72078         * platform/gtk/KeyEventGtk.cpp:
72079         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
72081 2007-10-23  Sam Weinig  <sam@webkit.org>
72083         Reviewed by Tim Hatcher.
72085         Add resizing of the DOM view right sidebar.  This allows us to actually see the values now.
72087         * page/inspector/ResourcePanel.js:
72088         * page/inspector/inspector.css:
72089         * page/inspector/inspector.js:
72090         * page/inspector/utilities.js:
72092 2007-10-23  David Hyatt  <hyatt@apple.com>
72094         Get basic hit testing right for transforms.
72096         Reviewed by ollliej
72098         * platform/graphics/AffineTransform.cpp:
72099         (WebCore::AffineTransform::mapPoint):
72100         * platform/graphics/AffineTransform.h:
72101         * rendering/InlineBox.cpp:
72102         (WebCore::InlineBox::nodeAtPoint):
72103         * rendering/RenderBlock.cpp:
72104         (WebCore::RenderBlock::nodeAtPoint):
72105         * rendering/RenderLayer.cpp:
72106         (WebCore::RenderLayer::paintLayer):
72107         (WebCore::RenderLayer::hitTest):
72108         (WebCore::RenderLayer::hitTestLayer):
72109         * rendering/RenderLayer.h:
72110         * rendering/RenderObject.cpp:
72111         (WebCore::RenderObject::hitTest):
72112         * rendering/RenderObject.h:
72114 2007-10-23  Eric Seidel  <eric@webkit.org>
72116         Reviewed by Mark Rowe.
72118         Fix leaks seen on TOT from new font-face code.
72120         * ksvg2/svg/SVGFontFaceElement.cpp:
72121         (WebCore::SVGFontFaceElement::rebuildFontFace): use a stack allocated CSSProperty instead of mallocing
72123 2007-10-23  Eric Seidel  <eric@webkit.org>
72125         Build fix only, no review.
72127         Sacrifice three virgin hours upon the altar of the heathen XCode gods
72128         and pray that our build troubles are finally over. :(
72130         * DerivedSources.make: add DOMSVGException.h
72131         * WebCore.xcodeproj/project.pbxproj: Remove DOMSVG*Interal.h files from "Copy Generated Headers" phase. Why?  Who knows.
72133 2007-10-22  Steve Falkenburg  <sfalken@apple.com>
72135         Fix build.
72137         * plugins/win/PluginViewWin.cpp:
72139 2007-10-22  Eric Seidel  <eric@webkit.org>
72141         Build fix only, no review.
72143         * WebCore.xcodeproj/project.pbxproj: re-add all DOMSVG headers to copy-files phase to make sure.
72145 2007-10-22  Eric Seidel  <eric@webkit.org>
72147         Build fix only, no review.
72149         * WebCore.xcodeproj/project.pbxproj: make sure DOMSVGAnimateElement.h is copied into headers.
72151 2007-10-22  Eric Seidel  <eric@webkit.org>
72153         Reviewed by Maciej.
72155         Fix build by properly exposing SVG font-face dom bindings.
72157         * DerivedSources.make:
72158         * WebCore.vcproj/WebCore.vcproj: add font-face files to build
72159         * WebCore.xcodeproj/project.pbxproj: add missing DOM bindings files
72160         * bindings/js/JSSVGElementWrapperFactory.cpp:
72161         * bindings/objc/DOM.mm:
72162         (WebCore::createElementClassMap):
72163         * bindings/objc/DOMSVG.h:
72164         * ksvg2/svg/SVGDefinitionSrcElement.idl: inherit from SVGElement
72166 2007-10-22  Mark Rowe  <mrowe@apple.com>
72168         Gtk build fix.
72170         * WebCore.pro:
72172 2007-10-22  Darin Adler  <darin@apple.com>
72174         - a first cut at fixing the Qt and GTK builds
72176         * WebCore.pro: Add new .idl and .cpp files.
72177         * DerivedSources.make: Re-sorted.
72179 2007-10-22  Eric Seidel  <eric@webkit.org>
72181         Reviewed by hyatt.
72183         Implement <font-face> and friends for SVG.
72184         http://bugs.webkit.org/show_bug.cgi?id=10652
72186         * DerivedSources.make:
72187         * WebCore.xcodeproj/project.pbxproj:
72188         * bindings/js/JSSVGElementWrapperFactory.cpp:
72189         * dom/Document.cpp:
72190         (WebCore::Document::mappedElementSheet):
72191         (WebCore::Document::recalcStyleSelector):
72192         * dom/Document.h:
72193         * ksvg2/scripts/make_names.pl:
72194         * ksvg2/svg/SVGDefinitionSrcElement.cpp: Added.
72195         (WebCore::SVGDefinitionSrcElement::SVGDefinitionSrcElement):
72196         (WebCore::SVGDefinitionSrcElement::~SVGDefinitionSrcElement):
72197         (WebCore::SVGDefinitionSrcElement::childrenChanged):
72198         * ksvg2/svg/SVGDefinitionSrcElement.h: Added.
72199         * ksvg2/svg/SVGDefinitionSrcElement.idl: Added.
72200         * ksvg2/svg/SVGFontFaceElement.cpp: Added.
72201         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
72202         (WebCore::SVGFontFaceElement::~SVGFontFaceElement):
72203         (WebCore::cssPropertyIdForName):
72204         (WebCore::mapAttributeToCSSProperty):
72205         (WebCore::cssPropertyIdForSVGAttributeName):
72206         (WebCore::SVGFontFaceElement::parseMappedAttribute):
72207         (WebCore::SVGFontFaceElement::rebuildFontFace):
72208         (WebCore::SVGFontFaceElement::childrenChanged):
72209         * ksvg2/svg/SVGFontFaceElement.h: Added.
72210         * ksvg2/svg/SVGFontFaceElement.idl: Added.
72211         * ksvg2/svg/SVGFontFaceFormatElement.cpp: Added.
72212         (WebCore::SVGFontFaceFormatElement::SVGFontFaceFormatElement):
72213         (WebCore::SVGFontFaceFormatElement::~SVGFontFaceFormatElement):
72214         (WebCore::SVGFontFaceFormatElement::childrenChanged):
72215         * ksvg2/svg/SVGFontFaceFormatElement.h: Added.
72216         * ksvg2/svg/SVGFontFaceFormatElement.idl: Added.
72217         * ksvg2/svg/SVGFontFaceNameElement.cpp: Added.
72218         (WebCore::SVGFontFaceNameElement::SVGFontFaceNameElement):
72219         (WebCore::SVGFontFaceNameElement::~SVGFontFaceNameElement):
72220         (WebCore::SVGFontFaceNameElement::srcValue):
72221         * ksvg2/svg/SVGFontFaceNameElement.h: Added.
72222         * ksvg2/svg/SVGFontFaceNameElement.idl: Added.
72223         * ksvg2/svg/SVGFontFaceSrcElement.cpp: Added.
72224         (WebCore::SVGFontFaceSrcElement::SVGFontFaceSrcElement):
72225         (WebCore::SVGFontFaceSrcElement::~SVGFontFaceSrcElement):
72226         (WebCore::SVGFontFaceSrcElement::srcValue):
72227         (WebCore::SVGFontFaceSrcElement::childrenChanged):
72228         * ksvg2/svg/SVGFontFaceSrcElement.h: Added.
72229         * ksvg2/svg/SVGFontFaceSrcElement.idl: Added.
72230         * ksvg2/svg/SVGFontFaceUriElement.cpp: Added.
72231         (WebCore::SVGFontFaceUriElement::SVGFontFaceUriElement):
72232         (WebCore::SVGFontFaceUriElement::~SVGFontFaceUriElement):
72233         (WebCore::SVGFontFaceUriElement::srcValue):
72234         (WebCore::SVGFontFaceUriElement::childrenChanged):
72235         * ksvg2/svg/SVGFontFaceUriElement.h: Added.
72236         * ksvg2/svg/SVGFontFaceUriElement.idl: Added.
72237         * ksvg2/svg/svgtags.in:
72239 2007-10-22  Jon Honeycutt  <jhoneycutt@apple.com>
72241         Reviewed by Anders.
72243         <rdar://5548217>: [NTS] Java 6 update 3 crashes Safari when loading a 
72244         java page
72246         We purposefully do not destroy our Java VM when its reference count
72247         reaches 0, but we were unloading our JavaPlugin.dll when its reference
72248         count reached 0, which lost the reference to the VM. This led to our
72249         process trying to create a new VM the next time a page using Java was
72250         loaded, and the JNI spec states that a single process is not allowed to
72251         create more than one VM. The fix is to avoid unloading the Java plugin
72252         via our PluginQuirkDontUnloadPlugin. 
72254         * plugins/win/PluginViewWin.cpp:
72255         (WebCore::PluginViewWin::determineQuirks):
72257 2007-10-22  David Hyatt  <hyatt@apple.com>
72259         Fix for bug 15624, make transforms work properly with opacity.
72261         Make sure a unitless 0 is allowed as an angle argument to rotation/skew.
72263         Reviewed by Mitz Pettel
72265         fast/transforms/transforms-with-opacity.html
72266         fast/transforms/skew-with-unitless-zero.html
72268         * css/CSSParser.cpp:
72269         (WebCore::CSSParser::validUnit):
72270         * rendering/RenderLayer.cpp:
72271         (WebCore::transparencyClipBox):
72272         (WebCore::RenderLayer::beginTransparencyLayers):
72273         (WebCore::RenderLayer::paintLayer):
72274         (WebCore::RenderLayer::calculateClipRects):
72275         * rendering/RenderLayer.h:
72276         (WebCore::RenderLayer::transform):
72278 2007-10-22  Adam Roben  <aroben@apple.com>
72280         Windows build fix
72282         * WebCore.vcproj/WebCore.vcproj: Copy header files from platform/sql.
72283         * page/Page.cpp: Touched to force the header files to be copied.
72285 2007-10-22  Nikolas Zimmermann  <zimmermann@kde.org>
72287         Reviewed by Simon.
72289         Move textPath related SVGChar data in it's own structure SVGCharOnPath.
72290         Store a pointer to that datastructure inside SVGChar, instead of 4 floats & one bool.
72292         Saves space for the common case. And allows me to add more data (another float) to support
72293         glyph-orientation-* on textPath later on...
72295         * rendering/SVGCharacterLayoutInfo.cpp:
72296         (WebCore::SVGChar::characterTransform):
72297         * rendering/SVGCharacterLayoutInfo.h:
72298         * rendering/SVGRootInlineBox.cpp:
72299         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
72300         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
72302 2007-10-22  Alp Toker  <alp@atoker.com>
72304         Reviewed by Nikolas Zimmermann.
72306         Implement more GraphicsContextCairo stubs.
72308         Remove a hack "to work around no current point bug" that was breaking
72309         canvas tests.
72311         Fix warnings.
72313         * platform/graphics/cairo/CairoPath.h:
72314         (WebCore::CairoPath::CairoPath):
72315         * platform/graphics/cairo/GraphicsContextCairo.cpp:
72316         (WebCore::GraphicsContext::addInnerRoundedRectClip):
72317         (WebCore::GraphicsContext::strokeRect):
72318         * platform/graphics/cairo/PathCairo.cpp:
72319         (WebCore::Path::isEmpty):
72320         * platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp:
72321         (WebCore::SVGPaintServerGradient::setup):
72322         * platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp:
72323         (WebCore::SVGPaintServerSolid::setup):
72325 2007-10-22  Simon Hausmann  <hausmann@kde.org>
72327         Reviewed by Nikolas.
72329         Fix compilation from a clean build with the database feature disabled.
72330         JSCustomVersionChangeCallback.cpp doesn't actually need the SQL header file, just ScriptInterpreter.
72332         * bindings/js/JSCustomVersionChangeCallback.cpp:
72333         * page/InspectorController.cpp:
72335 2007-10-22  Andrew Wellington  <proton@wiretapped.net>
72337         Reviewed by Mark Rowe.
72339         Fix for local database support after r26879
72340         Ensure that ENABLE_DATABASE and ENABLE_ICONDATABASE are correctly set
72342         * Configurations/WebCore.xcconfig:
72343         * WebCore.pro:
72344         * WebCore.vcproj/build-generated-files.sh:
72346 2007-10-22  Simon Hausmann  <hausmann@kde.org>
72348         Reviewed by Lars.
72350         Disable the Database feature for the qmake build for now.
72352         * WebCore.pro:
72354 2007-10-22  Simon Hausmann  <hausmann@kde.org>
72356         Reviewed by Lars.
72358         Make disabling the database feature (ENABLE_DATABASE=0) work by
72359         placing various #ifdefs into the code and making the compilation of
72360         some files optional.
72362         * WebCore.pro:
72363         * dom/Document.cpp:
72364         (WebCore::Document::~Document):
72365         (WebCore::Document::defaultEventHandler):
72366         * dom/Document.h:
72367         * page/DOMWindow.cpp:
72368         * page/DOMWindow.h:
72369         * page/DOMWindow.idl:
72370         * page/InspectorController.cpp:
72371         (WebCore::InspectorController::windowScriptObjectAvailable):
72372         (WebCore::InspectorController::populateScriptResources):
72373         (WebCore::InspectorController::clearDatabaseScriptResources):
72374         (WebCore::InspectorController::didCommitLoad):
72375         * page/InspectorController.h:
72377 2007-10-22  Alp Toker  <alp@atoker.com>
72379         Reviewed by Mark Rowe.
72381         http://bugs.webkit.org/show_bug.cgi?id=15611
72382         [GTK] Text selection behaviour different in Debug and Release builds
72384         http://bugs.webkit.org/show_bug.cgi?id=15578
72385         [GTK] Text editor caret does not blink
72387         Never allow control to reach the end of non-void functions.
72389         Return more sensible values, or in some cases, nulls.
72391         * page/gtk/EventHandlerGtk.cpp:
72392         (WebCore::isKeyboardOptionTab):
72393         (WebCore::EventHandler::tabsToAllControls):
72394         (WebCore::EventHandler::eventActivatedView):
72396 2007-10-22  Holger Freyther  <zecke@selfish.org>
72398         Reviewed by Simon Hausmann <hausmann@kde.org>.
72400         Implement ResourceHandle::loadResourceSynchronously using ResourceHandle and a special ResourceHandleClient. This approach has the possible danger of reentrancy.
72402         * platform/network/qt/ResourceHandleQt.cpp:
72403         (WebCore::WebCoreSynchronousLoader::resourceResponse):
72404         (WebCore::WebCoreSynchronousLoader::resourceError):
72405         (WebCore::WebCoreSynchronousLoader::data):
72406         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
72407         (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
72408         (WebCore::WebCoreSynchronousLoader::didReceiveData):
72409         (WebCore::WebCoreSynchronousLoader::didFinishLoading):
72410         (WebCore::WebCoreSynchronousLoader::didFail):
72411         (WebCore::WebCoreSynchronousLoader::waitForCompletion):
72412         (WebCore::ResourceHandle::loadResourceSynchronously):
72414 2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>
72416         Reviewed by Lars Knoll <lars@trolltech.com>.
72418         Style fix. It is allowed to attempt to delete 0.
72420         * platform/qt/ClipboardQt.cpp:
72422 2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>
72424         Reviewed by Lars Knoll <lars@trolltech.com>.
72426         Make it actually localizable....
72428         * platform/qt/Localizations.cpp:
72429         (WebCore::submitButtonDefaultLabel):
72430         (WebCore::inputElementAltText):
72431         (WebCore::searchableIndexIntroduction):
72432         (WebCore::fileButtonChooseFileLabel):
72433         (WebCore::fileButtonNoFileSelectedLabel):
72434         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
72435         (WebCore::contextMenuItemTagDownloadLinkToDisk):
72436         (WebCore::contextMenuItemTagCopyLinkToClipboard):
72437         (WebCore::contextMenuItemTagOpenImageInNewWindow):
72438         (WebCore::contextMenuItemTagDownloadImageToDisk):
72439         (WebCore::contextMenuItemTagCopyImageToClipboard):
72440         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
72441         (WebCore::contextMenuItemTagCopy):
72442         (WebCore::contextMenuItemTagGoBack):
72443         (WebCore::contextMenuItemTagGoForward):
72444         (WebCore::contextMenuItemTagStop):
72445         (WebCore::contextMenuItemTagReload):
72446         (WebCore::contextMenuItemTagCut):
72447         (WebCore::contextMenuItemTagPaste):
72448         (WebCore::contextMenuItemTagNoGuessesFound):
72449         (WebCore::contextMenuItemTagIgnoreSpelling):
72450         (WebCore::contextMenuItemTagLearnSpelling):
72451         (WebCore::contextMenuItemTagSearchWeb):
72452         (WebCore::contextMenuItemTagLookUpInDictionary):
72453         (WebCore::contextMenuItemTagOpenLink):
72454         (WebCore::contextMenuItemTagIgnoreGrammar):
72455         (WebCore::contextMenuItemTagSpellingMenu):
72456         (WebCore::contextMenuItemTagShowSpellingPanel):
72457         (WebCore::contextMenuItemTagCheckSpelling):
72458         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
72459         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
72460         (WebCore::contextMenuItemTagFontMenu):
72461         (WebCore::contextMenuItemTagBold):
72462         (WebCore::contextMenuItemTagItalic):
72463         (WebCore::contextMenuItemTagUnderline):
72464         (WebCore::contextMenuItemTagOutline):
72465         (WebCore::contextMenuItemTagWritingDirectionMenu):
72466         (WebCore::contextMenuItemTagDefaultDirection):
72467         (WebCore::contextMenuItemTagLeftToRight):
72468         (WebCore::contextMenuItemTagRightToLeft):
72469         (WebCore::contextMenuItemTagInspectElement):
72470         (WebCore::searchMenuNoRecentSearchesText):
72471         (WebCore::searchMenuRecentSearchesText):
72473 2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>
72475         Reviewed by Lars Knoll <lars@trolltech.com>.
72477         Adjust the code to obey the Coding Style.
72479         * platform/qt/Localizations.cpp:
72480         (WebCore::submitButtonDefaultLabel):
72481         (WebCore::inputElementAltText):
72482         (WebCore::resetButtonDefaultLabel):
72483         (WebCore::defaultLanguage):
72484         (WebCore::searchableIndexIntroduction):
72485         (WebCore::fileButtonChooseFileLabel):
72486         (WebCore::fileButtonNoFileSelectedLabel):
72487         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
72488         (WebCore::contextMenuItemTagDownloadLinkToDisk):
72489         (WebCore::contextMenuItemTagCopyLinkToClipboard):
72490         (WebCore::contextMenuItemTagOpenImageInNewWindow):
72491         (WebCore::contextMenuItemTagDownloadImageToDisk):
72492         (WebCore::contextMenuItemTagCopyImageToClipboard):
72493         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
72494         (WebCore::contextMenuItemTagCopy):
72495         (WebCore::contextMenuItemTagGoBack):
72496         (WebCore::contextMenuItemTagGoForward):
72497         (WebCore::contextMenuItemTagStop):
72498         (WebCore::contextMenuItemTagReload):
72499         (WebCore::contextMenuItemTagCut):
72500         (WebCore::contextMenuItemTagPaste):
72501         (WebCore::contextMenuItemTagNoGuessesFound):
72502         (WebCore::contextMenuItemTagIgnoreSpelling):
72503         (WebCore::contextMenuItemTagLearnSpelling):
72504         (WebCore::contextMenuItemTagSearchWeb):
72505         (WebCore::contextMenuItemTagLookUpInDictionary):
72506         (WebCore::contextMenuItemTagOpenLink):
72507         (WebCore::contextMenuItemTagIgnoreGrammar):
72508         (WebCore::contextMenuItemTagSpellingMenu):
72509         (WebCore::contextMenuItemTagShowSpellingPanel):
72510         (WebCore::contextMenuItemTagCheckSpelling):
72511         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
72512         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
72513         (WebCore::contextMenuItemTagFontMenu):
72514         (WebCore::contextMenuItemTagBold):
72515         (WebCore::contextMenuItemTagItalic):
72516         (WebCore::contextMenuItemTagUnderline):
72517         (WebCore::contextMenuItemTagOutline):
72518         (WebCore::contextMenuItemTagWritingDirectionMenu):
72519         (WebCore::contextMenuItemTagDefaultDirection):
72520         (WebCore::contextMenuItemTagLeftToRight):
72521         (WebCore::contextMenuItemTagRightToLeft):
72522         (WebCore::contextMenuItemTagInspectElement):
72523         (WebCore::searchMenuNoRecentSearchesText):
72524         (WebCore::searchMenuRecentSearchesText):
72525         (WebCore::searchMenuClearRecentSearchesText):
72526         (WebCore::AXWebAreaText):
72527         (WebCore::AXLinkText):
72528         (WebCore::AXListMarkerText):
72529         (WebCore::AXImageMapText):
72530         (WebCore::AXHeadingText):
72531         (WebCore::unknownFileSizeText):
72533 2007-10-22 Holger Hans Peter Freyther <zecke@selfish.org>
72535         Reviewed by Lars Knoll <lars@trolltech.com>.
72537         Return a non empty string in more functions.
72539         * platform/qt/Localizations.cpp:
72540         (WebCore::contextMenuItemTagShowSpellingPanel):
72542 2007-10-22  Holger Hans Peter Freyther <zecke@selfish.org>
72544         Reviewed by Lars Knoll <lars@trolltech.com>.
72546         Shrink the TemporaryLinkStubs and move the
72547         Frame::setNeedsReapplyStyles stub to FrameQt.cpp
72549         * page/qt/FrameQt.cpp:
72550         (WebCore::Frame::setNeedsReapplyStyles):
72551         * platform/qt/TemporaryLinkStubs.cpp:
72553 2007-10-22  Holger Freyther  <zecke@selfish.org>
72555         Reviewed by Lars Knoll <lars@trolltech.com>.
72557         Implement the WebCore::fileSize function. The
72558         implementation assumes that QFileInfo will cache
72559         the result of the stat so that info.size() and
72560         info.exists() use the same stat result.
72562         * platform/qt/FileSystemQt.cpp:
72563         (WebCore::deleteFile):
72564         * platform/qt/TemporaryLinkStubs.cpp:
72566 2007-10-21  Alp Toker  <alp@atoker.com>
72568         Reviewed by Mark Rowe.
72570         Use the portable GLib time function.
72572         Use event timestamps rather than the current time where available.
72574         Rename SharedTimerLinux.cpp since it isn't Linux-specific.
72576         * WebCore.pro:
72577         * platform/gtk/MouseEventGtk.cpp:
72578         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
72579         * platform/gtk/SystemTimeGtk.cpp: Added.
72580         (WebCore::currentTime):
72581         * platform/gtk/SharedTimerGtk.cpp: Copied from platform/gtk/SharedTimerLinux.cpp.
72582         * platform/gtk/SharedTimerLinux.cpp: Removed.
72584 2007-10-22  David Hyatt  <hyatt@apple.com>
72586         Fix for 15596, regression from my transform changes.  Preserve null checks on the clip rects calls for parent(),
72587         since the method is called on orphaned layers.  This is not very well understood.
72589         Reviewed by eric
72591         * rendering/RenderLayer.cpp:
72592         (WebCore::RenderLayer::calculateClipRects):
72593         (WebCore::RenderLayer::calculateRects):
72595 2007-10-21  Mark Rowe  <mrowe@apple.com>
72597         Reviewed by Alp.
72599         http://bugs.webkit.org/show_bug.cgi?id=15575
72600         Bug 15575: [GTK] Implement threading using GThread
72602         * WebCore.pro: Remove ThreadingPthreads.cpp from the Gtk build and link against libgthreads.
72603         * loader/icon/IconDatabase.cpp: Initialize threading before the mutex is created to be compatible with gthreads.
72604         (WebCore::iconDatabase):
72605         (WebCore::IconDatabase::open):
72606         * platform/Threading.h:
72607         * platform/gtk/ThreadingGtk.cpp: Threading implementation in terms of GThread, based heavily on the pthreads implementation.
72608         (WebCore::initializeThreading):
72609         (WebCore::threadMapMutex):
72610         (WebCore::threadMap):
72611         (WebCore::establishIdentifierForThread):
72612         (WebCore::threadForIdentifier):
72613         (WebCore::clearThreadForIdentifier):
72614         (WebCore::createThread):
72615         (WebCore::waitForThreadCompletion):
72616         (WebCore::detachThread):
72617         (WebCore::Mutex::Mutex):
72618         (WebCore::Mutex::~Mutex):
72619         (WebCore::Mutex::lock):
72620         (WebCore::Mutex::tryLock):
72621         (WebCore::Mutex::unlock):
72622         (WebCore::ThreadCondition::ThreadCondition):
72623         (WebCore::ThreadCondition::~ThreadCondition):
72624         (WebCore::ThreadCondition::wait):
72625         (WebCore::ThreadCondition::signal):
72626         (WebCore::ThreadCondition::broadcast):
72627         * storage/Database.cpp:
72628         (WebCore::Database::Database): Initialize threading when Database is used so that it will be initialized even
72629         if the icon database is compiled out
72631 2007-10-21  Mark Rowe  <mrowe@apple.com>
72633         Build fix.
72635         * ksvg2/css/SVGCSSStyleSelector.cpp: Use fabsf when dealing with a float to prevent the
72636         implicit conversion warning.
72638 2007-10-21  Alp Toker  <alp@atoker.com>
72640         Reviewed by Mark Rowe.
72642         Implement spelling and grammar mistake underlining with Pango/Cairo.
72644         This change does not add any actual support for spelling or grammar
72645         checking to any port.
72647         * platform/graphics/cairo/GraphicsContextCairo.cpp:
72648         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
72650 2007-10-21  Alp Toker  <alp@atoker.com>
72652         Reviewed by Mark Rowe.
72654         Cairo canvas fixes:
72656         Fix a refcounting issue leading to leaks and crashes on canvas
72657         content.
72659         Delegate memory management of canvas images to Cairo.
72661         Mark unhandled conditions with notImplemented() instead of silently
72662         ignoring them.
72664         * html/CanvasRenderingContext2D.cpp:
72665         (WebCore::CanvasRenderingContext2D::drawImage):
72666         * html/CanvasStyle.cpp:
72667         (WebCore::CanvasStyle::applyStrokeColor):
72668         * html/CanvasStyle.h:
72669         * html/HTMLCanvasElement.cpp:
72670         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
72671         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
72672         (WebCore::HTMLCanvasElement::reset):
72673         (WebCore::HTMLCanvasElement::paint):
72674         (WebCore::HTMLCanvasElement::createDrawingContext):
72675         (WebCore::HTMLCanvasElement::createPlatformImage):
72677 2007-10-21  Nikolas Zimmermann  <zimmermann@kde.org>
72679         Reviewed by Eric.
72681         Handle glyph-orientation-vertical / glyph-orientation-horizontal SVG CSS properties.
72683         The SVG layouting code itself doesn't handle these properties yet,
72684         it's just about recognizing them in the SVG CSS engine.
72686         * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
72687         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
72688         * ksvg2/css/SVGCSSParser.cpp:
72689         (WebCore::CSSParser::parseSVGValue):
72690         * ksvg2/css/SVGCSSStyleSelector.cpp:
72691         (WebCore::CSSStyleSelector::applySVGProperty):
72692         * ksvg2/css/SVGRenderStyle.h:
72693         (WebCore::SVGRenderStyle::InheritedFlags::operator==):
72694         (WebCore::SVGRenderStyle::InheritedFlags::operator!=):
72695         (WebCore::SVGRenderStyle::setBitDefaults):
72696         * ksvg2/css/SVGRenderStyleDefs.h:
72698 2007-10-21  Christian Dywan  <christian@twotoasts.de>
72700         Reviewed by Alp.
72702         http://bugs.webkit.org/show_bug.cgi?id=15589
72703         Use glib's path separator on gtk
72705         * platform/gtk/FileSystemGtk.cpp:
72706         (WebCore::pathByAppendingComponent):
72708 2007-10-21  Dan Bernstein  <mitz@apple.com>
72710         Reviewed by Dave Hyatt.
72712         - fix http://bugs.webkit.org/show_bug.cgi?id=15259
72713           <rdar://problem/5499902> REGRESSION: Text overflows when using word spacing and centering (affects myspace.com music videos page)
72715         Test: fast/text/word-space.html
72717         * rendering/RenderBlock.cpp:
72718         (WebCore::stripTrailingSpace): Added word-spacing to the width of the
72719         space being stripped out.
72720         * rendering/RenderText.cpp:
72721         (WebCore::RenderText::trimmedPrefWidths): Changed handling of
72722         leading space. Since Font::width includes leading space width but not
72723         leading word spacing, this method needs to either remove the width of a
72724         space character or add word spacing,
72725         depending on stripFrontSpaces. 
72726         (WebCore::RenderText::calcPrefWidths): Corrected the check for adding
72727         trailing word spacing so that it would work in the case where the last
72728         space is ignored.
72729         * rendering/bidi.cpp:
72730         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Changed to
72731         actually add word spacing to the total width.
72733 2007-10-20  David Hyatt  <hyatt@apple.com>
72735         Land support for the transform CSS property.  Basic painting now works properly. There are many open issues
72736         that will have to be covered by individual bugs.
72738         Reviewed by olliej
72740         * css/CSSParser.cpp:
72741         (WebCore::CSSParser::validUnit):
72742         (WebCore::CSSParser::parseTransform):
72743         * rendering/RenderLayer.cpp:
72744         (WebCore::RenderLayer::RenderLayer):
72745         (WebCore::RenderLayer::~RenderLayer):
72746         (WebCore::RenderLayer::updateLayerPositions):
72747         (WebCore::RenderLayer::updateTransform):
72748         (WebCore::transparencyClipBox):
72749         (WebCore::RenderLayer::beginTransparencyLayers):
72750         (WebCore::RenderLayer::paintLayer):
72751         (WebCore::RenderLayer::calculateClipRects):
72752         (WebCore::RenderLayer::calculateRects):
72753         (WebCore::RenderLayer::childrenClipRect):
72754         (WebCore::RenderLayer::selfClipRect):
72755         (WebCore::RenderLayer::intersectsDamageRect):
72756         (WebCore::RenderLayer::boundingBox):
72757         * rendering/RenderLayer.h:
72758         * rendering/RenderObject.cpp:
72759         (WebCore::RenderObject::containingBlock):
72760         (WebCore::RenderObject::container):
72761         * rendering/RenderStyle.cpp:
72762         (WebCore::RenderStyle::applyTransform):
72763         * rendering/RenderStyle.h:
72764         (WebCore::TransformOperation::isScaleOperation):
72765         (WebCore::TransformOperation::isRotateOperation):
72766         (WebCore::TransformOperation::isSkewOperation):
72767         (WebCore::TransformOperation::isTranslateOperation):
72768         (WebCore::TransformOperation::isMatrixOperation):
72769         (WebCore::ScaleTransformOperation::isScaleOperation):
72770         (WebCore::RotateTransformOperation::isRotateOperation):
72771         (WebCore::SkewTransformOperation::isSkewOperation):
72772         (WebCore::TranslateTransformOperation::isTranslateOperation):
72773         (WebCore::MatrixTransformOperation::isMatrixOperation):
72774         * rendering/RenderTableRow.h:
72775         (WebCore::RenderTableRow::requiresLayer):
72776         * rendering/RenderTreeAsText.cpp:
72777         (WebCore::writeLayers):
72779 2007-10-20  Timothy Hatcher  <timothy@apple.com>
72781         Reviewed by Adam.
72783         Add basic @font-face to the Web Inspector.
72785         * page/InspectorController.cpp:
72786         (WebCore::InspectorResource::type): Check for CachedResource::FontResource.
72787         * page/inspector/Resource.js: Add support for Font types and font preview in the icon.
72788         * page/inspector/ResourcePanel.js: Show a font preview for font resources.
72789         * page/inspector/inspector.css: Style for the font preview and font icon.
72790         * page/inspector/inspector.js: Add font mime types.
72792 2007-10-20  Sam Weinig  <sam@webkit.org>
72794         Reviewed by Mark Rowe.
72796         Fixes:
72797             - http://bugs.webkit.org/show_bug.cgi?id=14393
72798               Column on the left side of the Web Inspector should have a smaller minimum width for resizing
72799             - http://bugs.webkit.org/show_bug.cgi?id=14394
72800               Left pane of the Web Inspector "shakes" when resizing it to maximum width
72802         * page/inspector/inspector.js: Change the constraint logic to only enforce a 100px min-width
72803           and window.innerWidth - 100 max-width for the sidebar.  The change also makes the viewbuttons
72804           move with the sidebar.
72806 2007-10-20  Dan Bernstein  <mitz@apple.com>
72808         Reviewed by Dave Hyatt.
72810         - fix http://bugs.webkit.org/show_bug.cgi?id=15208
72811           display:table causes the collapsed text to show at a different position when expanded
72813         Test: fast/table/insert-before-anonymous-ancestors.html
72815         * rendering/RenderTable.cpp:
72816         (WebCore::RenderTable::addChild): Rolled out r11579. I think whatever
72817         that change was supposed to accomplish has since been done in other
72818         places in the code.
72820 2007-10-20  Mark Rowe  <mrowe@apple.com>
72822         Reviewed by Dave Hyatt.
72824         Fix http://bugs.webkit.org/show_bug.cgi?id=15584
72825         Bug 15584: REGRESSION(r26696): GtkLauncher segfaults on WebCore::WidthIterator::advance
72827         * platform/Font.cpp:
72828         (WebCore::Font::glyphDataForCharacter): If the fallback page exists but does not have a
72829         glyph for the character, fall back to the missing glyph data rather than returning an
72830         invalid GlyphData.
72832 2007-10-20  Jasper Bryant-Greene  <m@ni.ac.nz>
72834         Reviewed by Maciej.
72836         Changed the hard-coded scroll delta in WheelEventGtk from 120 to 0.25,
72837         as suggested by George Wright in #15108 (which this patch will
72838         resolve).
72840         This gives a more sane scrolling behaviour, rather than the
72841         jumping to the end or start of the document as occurred previously.
72843         * platform/gtk/WheelEventGtk.cpp:
72844         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
72846 2007-10-20  Alp Toker  <alp@atoker.com>
72848         Reviewed by Eric.
72850         Support text boundary detection.
72851         Move TextBoundariesWin.cpp to platform/ since it's portable and useful.
72852         Split out and implement some TemporaryLinkStubs.
72854         * WebCore.pro:
72855         * WebCore.vcproj/WebCore.vcproj:
72856         * platform/TextBoundariesICU.cpp: Copied from WebCore/platform/win/TextBoundariesWin.cpp.
72857         * platform/gtk/Language.cpp: Added.
72858         (WebCore::defaultLanguage):
72859         * platform/gtk/TemporaryLinkStubs.cpp:
72860         * platform/gtk/TextBreakIteratorInternalICUGtk.cpp: Added.
72861         (WebCore::currentTextBreakLocaleID):
72862         * platform/win/TextBoundariesWin.cpp: Removed.
72864 2007-10-20  Mark Rowe  <mrowe@apple.com>
72866         Reviewed by Tim Hatcher.
72868         Workaround for http://bugs.webkit.org/show_bug.cgi?id=15574
72869         Bug 15574: Web Inspector doesn't work with the new Database feature
72871         The executeSql callback is executed in the security domain of the web page that owns the database,
72872         while the inspector's window object is in the callback functions scope chain.  This is leading to a
72873         security violation when the callback attempts to access "document".  We can work around this by
72874         ensuring that "document" can be found in the scope chain before the window object.
72876         * page/inspector/DatabasePanel.js:
72878 2007-10-20  Darin Adler  <darin@apple.com>
72880         Reviewed by Maciej.
72882         - http://bugs.webkit.org/show_bug.cgi?id=15567
72883           speed up hashing const char* by removing call to strlen
72885         This includes one other fix as well. Both were from a day where I did some
72886         profiling to find hot spots when running the page load test.
72888         * platform/StringImpl.cpp:
72889         (WebCore::StringImpl::computeHash): Compute the hash without calling strlen.
72890         Also change the argument names to not confusingly use m_ prefixes.
72891         (WebCore::StringImpl::createStrippingNull): Added a faster case for strings that
72892         don't have null.
72894 2007-10-20  Mark Rowe  <mrowe@apple.com>
72896         Reviewed by Alp.
72898         Gtk changes needed to enable HTML 5 client-side database storage.
72900         * WebCore.pro: Have Gtk use ThreadingPthreads.cpp.
72901         * platform/pthreads/ThreadingPthreads.cpp: Include errno so that EDEADLK and EBUSY are available.
72903 2007-10-20  Mark Rowe  <mrowe@apple.com>
72905         Reviewed by Alp.
72907         Implement callOnMainThread for Gtk+ via a one-shot zero-delay timer that will be dispatched
72908         from the main event loop.
72910         * WebCore.pro:
72911         * platform/gtk/TemporaryLinkStubs.cpp:
72912         * platform/gtk/ThreadingGtk.cpp: Added.
72913         (WebCore::callFunctionOnMainThread):
72914         (WebCore::callOnMainThread):
72916 2007-10-20  Nikolas Zimmermann  <zimmermann@kde.org>
72918         Reviewed by Eric.
72920         Fix non-functional display="inline" / display="none" for SVG text.
72922         Fixes: svg/W3C-SVG-1.1/animate-elem-39-t.svg (display="inline" support)
72923         Fixes: svg/batik/text/textProperties2.svg (display="inline/none" support)
72924         Fixes: svg/carto.net/tabgroup.svg (display="none" support, stray content before layouting)
72925         
72926         * css/svg.css: Remove "important" flag on text/foreignObject display: block property
72927         * rendering/RenderSVGBlock.cpp:
72928         (WebCore::RenderSVGBlock::setStyle):
72930 2007-10-20  Mark Rowe  <mrowe@apple.com>
72932         Reviewed by Alp.
72934         Replace #ifdef'd code with the appropriate use of a forwarding header.
72936         * ForwardingHeaders/kjs/array_instance.h: Added.
72937         * bindings/js/JSDatabaseCustom.cpp:
72939 2007-10-20  Nikolas Zimmermann  <zimmermann@kde.org>
72941         Reviewed by Oliver.
72943         Add support for 'kerning' property in SVG text layout code.
72944         Support all textLength/lengthAdjust modes on normal text & textPaths.
72946         Support letter & word spacing on textPath.
72947         Fix text selection when any spacing (letter/word/kerning) is involved.
72949         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15571
72950         Fixes: svg/batik/text/textOnPathSpaces.svg (spacing)
72951                svg/batik/text/textLayout.svg (kerning support)
72952                svg/text/text-spacing-01-b.svg (text selection)
72954         * platform/Font.cpp:
72955         (WebCore::WidthIterator::advance):
72956         * platform/TextStyle.h:
72957         (WebCore::TextStyle::TextStyle):
72958         (WebCore::TextStyle::spacingDisabled):
72959         (WebCore::TextStyle::disableSpacing):
72960         * rendering/SVGCharacterLayoutInfo.cpp:
72961         (WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
72962         (WebCore::SVGCharacterLayoutInfo::nextPathLayoutPointAndAngle):
72963         (WebCore::SVGCharacterLayoutInfo::setInPathLayout):
72964         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
72965         (WebCore::SVGChar::characterTransform):
72966         * rendering/SVGCharacterLayoutInfo.h:
72967         (WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
72968         * rendering/SVGRootInlineBox.cpp:
72969         (WebCore::closeTextChunk):
72970         (WebCore::calculateKerning):
72971         (WebCore::SVGRootInlineBox::placeBoxesHorizontally):
72972         (WebCore::svgTextStyleForInlineTextBox):
72973         (WebCore::calculateTextAnchorShiftForTextChunk):
72974         (WebCore::applyTextAnchorToTextChunk):
72975         (WebCore::calculateTextLengthCorrectionForTextChunk):
72976         (WebCore::applyTextLengthCorrectionToTextChunk):
72977         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
72978         (WebCore::SVGRootInlineBox::buildLayoutInformation):
72979         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
72980         (WebCore::SVGRootInlineBox::buildTextChunks):
72981         (WebCore::SVGRootInlineBox::layoutTextChunks):
72982         * rendering/SVGRootInlineBox.h:
72984 2007-10-20  Rodney Dawes  <dobey@wayofthemonkey.com>
72986         Reviewd by Darin.
72988         http://bugs.webkit.org/show_bug.cgi?id=15563
72989         Fix conflict with X11 Window type in WebCore
72991         * WebCore/bindings/js/JSDocumentCustom.cpp:
72992         * WebCore/bindings/js/JSHTMLDocumentCustom.cpp:
72993         * WebCore/bindings/js/JSHTMLFrameSetElementCustom.cpp:
72994         * WebCore/bindings/js/kjs_dom.cpp:
72995         * WebCore/bindings/js/kjs_events.cpp:
72996         * WebCore/bindings/js/kjs_proxy.cpp:
72997         * WebCore/history/CachedPage.cpp:
72998         * WebCore/page/Chrome.cpp:
72999         * WebCore/page/Frame.cpp:
73001 2007-10-20  Simon Hausmann  <hausmann@kde.org>
73003         Build fix, not reviewed.
73005         Fix the Qt build by adding the two missing FileSystem functions.
73007         * platform/qt/FileSystemQt.cpp:
73008         (WebCore::makeAllDirectories):
73009         (WebCore::pathByAppendingComponent):
73011 2007-10-19  Alp Toker  <alp@atoker.com>
73013         Reviewed by Oliver.
73015         GTK+ build fix enabling the new local database storage feature.
73016         There is also a prospective Qt build fix.
73018         * WebCore.pro:
73019         * bindings/js/JSDatabaseCustom.cpp:
73020         * platform/gtk/FileSystemGtk.cpp:
73021         (WebCore::pathByAppendingComponent):
73022         (WebCore::makeAllDirectories):
73024 2007-10-19  Andrew Wellington  <proton@wiretapped.net>
73026         Reviewed by Brady Eidson.
73028         Mac build fix.
73030         * WebCore.xcodeproj/project.pbxproj:
73032 2007-10-19  Alp Toker  <alp@atoker.com>
73034         Reviewed by Oliver.
73036         Use platform colors for text selection.
73037         Update the cache when the GTK style is changed.
73039         * platform/gtk/RenderThemeGtk.cpp:
73040         (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
73041         (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
73042         (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
73043         (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
73044         (WebCore::RenderThemeGtk::gtkStyleSet):
73045         (WebCore::RenderThemeGtk::gtkEntry):
73046         * platform/gtk/RenderThemeGtk.h:
73048 2007-10-19  Adele Peterson  <adele@apple.com>
73050         Reviewed by Beth.
73052         Fix for: <rdar://problem/5518461> REGRESSION (2.0.4-3): Popup arrows are missing in small popups at homedepot.com
73054         Test: fast/forms/menulist-no-overflow.html
73056         * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::setStyle): Don't allow overflow on menu lists.
73058 2007-10-19  Anders Carlsson  <andersca@apple.com>
73060         Reviewed by Brady.
73062         Move some SQL-related classes to platform/sql.
73063         
73064         * WebCore.vcproj/WebCore.vcproj:
73065         * WebCore.xcodeproj/project.pbxproj:
73066         * loader/icon/SQLDatabase.cpp: Removed.
73067         * loader/icon/SQLDatabase.h: Removed.
73068         * loader/icon/SQLStatement.cpp: Removed.
73069         * loader/icon/SQLStatement.h: Removed.
73070         * loader/icon/SQLTransaction.cpp: Removed.
73071         * loader/icon/SQLTransaction.h: Removed.
73072         * platform/sql/SQLDatabase.cpp: Copied from loader/icon/SQLDatabase.cpp.
73073         * platform/sql/SQLDatabase.h: Copied from loader/icon/SQLDatabase.h.
73074         * platform/sql/SQLStatement.cpp: Copied from loader/icon/SQLStatement.cpp.
73075         * platform/sql/SQLStatement.h: Copied from loader/icon/SQLStatement.h.
73076         * platform/sql/SQLTransaction.cpp: Copied from loader/icon/SQLTransaction.cpp.
73077         * platform/sql/SQLTransaction.h: Copied from loader/icon/SQLTransaction.h.
73079 2007-10-19  Anders Carlsson  <andersca@apple.com>
73081         Reviewed by Adam.
73083         Update to match the latest version of the spec. Now, executeSQL takes an array
73084         of SQL parameters instead of them being passed as arguments.
73085         
73086         * bindings/js/JSDatabaseCustom.cpp:
73087         (WebCore::JSDatabase::executeSql):
73088         * page/inspector/DatabasePanel.js:
73089         * storage/Database.idl:
73091 2007-10-19  Brady Eidson  <beidson@apple.com>
73093         Reviewed by Tim
73095         Tiger's SQLite doesn't support CREATE TABLE IF NOT EXISTS :(
73097         * storage/Database.cpp:
73098         (WebCore::Database::performOpenAndVerify):
73099         * storage/DatabaseTracker.cpp:
73100         (WebCore::DatabaseTracker::DatabaseTracker):
73102 2007-10-19  Anders Carlsson  <andersca@apple.com>
73104         Release build fix.
73105         
73106         * WebCore.vcproj/WebCore.vcproj:
73108 2007-10-19  Brady Eidson  <beidson@apple.com>
73110         Remove stray printfs
73112         * dom/Document.cpp:
73113         (WebCore::Document::Document):
73114         (WebCore::Document::~Document):
73116 2007-10-19  Anders Carlsson  <andersca@apple.com>
73118         Reviewed by Brady.
73120         Apparently the Win32 pthreads impl we use does not allow unlocking a mutex that has not
73121         already been locked, so lock the mutex first.
73122         
73123         * storage/DatabaseThread.cpp:
73124         (WebCore::DatabaseThread::databaseThread):
73126 2007-10-19  Brady Eidson  <beidson@apple.com>
73128         Better build fix
73130         * loader/icon/SQLDatabase.cpp:
73131         (WebCore::SQLDatabase::authorizerFunction):  Definite works by 3.3.13
73133 2007-10-19  Brady Eidson  <beidson@apple.com>
73135         Build fix
73137         * loader/icon/SQLDatabase.cpp:
73138         (WebCore::SQLDatabase::authorizerFunction): I don't know *when* these constants were
73139           added to SQLite, but I know they were by 3.4.0
73141 2007-10-19  Brady Eidson  <beidson@apple.com>
73142         Reviewed by Anders
73144         Windows specific changes, as well as renaming Queue -> Deque
73146         * ForwardingHeaders/wtf/Deque.h: Added.
73147         * ForwardingHeaders/wtf/Queue.h: Removed.
73148         * platform/win/FileSystemWin.cpp:
73149         (WebCore::fileSize):
73150         (WebCore::fileExists):
73151         (WebCore::deleteFile):
73152         (WebCore::pathByAppendingComponent):
73153         (WebCore::fileSystemRepresentation):
73154         (WebCore::makeAllDirectories):
73155         (WebCore::homeDirectoryPath):
73156         * storage/Database.h:
73157         * storage/DatabaseThread.cpp:
73158         (WebCore::DatabaseThread::documentGoingAway):
73159         (WebCore::DatabaseThread::databaseGoingAway):
73160         (WebCore::DatabaseThread::dispatchNextTaskIdentifier):
73161         (WebCore::DatabaseThread::scheduleTask):
73162         (WebCore::DatabaseThread::scheduleImmediateTask):
73163         * storage/DatabaseThread.h:
73165 2007-10-19  Brady Eidson <beidson@apple.com>
73167         Reviewed by Tim and Anders
73169         Preliminary support for HTML5 local database storage (http://www.whatwg.org/specs/web-apps/current-work/)
73171         The specification is still in flux but the fundamentals are pretty solid and we can start using and testing 
73172         this implementation even while filing bugs to track changes in the spec as it becomes more final
73174         There are some implementation details in this patch that seem unused or useless, but they remain in place 
73175         while the spec is in flux and might go one way or another.
73177         * platform/Logging.cpp: Add StorageAPI logging channel
73178         * platform/Logging.h:
73180         * storage/Database.cpp: Added.
73181         (WebCore::Database::databaseInfoTableName):
73182         (WebCore::databaseVersionKey):
73183         (WebCore::Database::openDatabase): C++ version of the window.openDatabase() javascript API
73184         (WebCore::Database::Database):
73185         (WebCore::Database::~Database):
73186         (WebCore::Database::openAndVerifyVersion):
73187         (WebCore::retrieveTextResultFromDatabase):
73188         (WebCore::Database::getVersionFromDatabase):
73189         (WebCore::setTextValueInDatabase):
73190         (WebCore::Database::setVersionInDatabase):
73191         (WebCore::Database::databaseThreadGoingAway): May be removed in the future
73192         (WebCore::Database::disableAuthorizer): For internal (WebInspector) use to get around the authorizer's restrictions
73193         (WebCore::Database::enableAuthorizer):
73194         (WebCore::Database::guidForOriginAndName): Candidate for refactoring and/or moving to the database tracker.  
73195           The GUID for each database identifier is currently for tracking the database version, but might be rescoped in the future
73196         (WebCore::Database::resetAuthorizer):
73197         (WebCore::Database::performPolicyChecks): Currently, the only post-executeSql policy check planned is the origin size usage 
73198         (WebCore::Database::scheduleDatabaseCallback):
73199         (WebCore::Database::performOpenAndVerify): 
73200         (WebCore::Database::performChangeVersion):
73201         (WebCore::Database::performExecuteSql):
73202         (WebCore::Database::performCloseTransaction):
73203         (WebCore::Database::performGetTableNames):
73204         (WebCore::Database::version): C++ version of the javascript API
73205         (WebCore::Database::changeVersion): Ditto
73206         (WebCore::Database::executeSql): Ditto
73207         (WebCore::Database::closeTransaction): Ditto
73208         (WebCore::Database::tableNames): For internal (WebInspector) use
73209         (WebCore::Database::deliverAllPendingCallbacks):
73210         (WebCore::Database::deliverPendingCallbacks):
73211         * storage/Database.h: Added.
73212         (WebCore::Database::databaseDebugName): For debug logging purposes
73213         * storage/Database.idl: Added.
73215         * storage/DatabaseAuthorizer.cpp: Added.
73216           The DatabaseAuthorizer is used to both prevent the script from doing "illegal" things in sql as well as
73217           tracking when effects certain sql statements might have (such as increasing the size of the database)
73218         (WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
73219         (WebCore::DatabaseAuthorizer::reset):
73220         (WebCore::DatabaseAuthorizer::createTable):
73221         (WebCore::DatabaseAuthorizer::createTempTable):
73222         (WebCore::DatabaseAuthorizer::dropTable):
73223         (WebCore::DatabaseAuthorizer::dropTempTable):
73224         (WebCore::DatabaseAuthorizer::allowAlterTable):
73225         (WebCore::DatabaseAuthorizer::createIndex):
73226         (WebCore::DatabaseAuthorizer::createTempIndex):
73227         (WebCore::DatabaseAuthorizer::dropIndex):
73228         (WebCore::DatabaseAuthorizer::dropTempIndex):
73229         (WebCore::DatabaseAuthorizer::createTrigger):
73230         (WebCore::DatabaseAuthorizer::createTempTrigger):
73231         (WebCore::DatabaseAuthorizer::dropTrigger):
73232         (WebCore::DatabaseAuthorizer::dropTempTrigger):
73233         (WebCore::DatabaseAuthorizer::createVTable):
73234         (WebCore::DatabaseAuthorizer::dropVTable):
73235         (WebCore::DatabaseAuthorizer::allowDelete):
73236         (WebCore::DatabaseAuthorizer::allowInsert):
73237         (WebCore::DatabaseAuthorizer::allowUpdate):
73238         (WebCore::DatabaseAuthorizer::allowRead):
73239         (WebCore::DatabaseAuthorizer::allowAnalyze):
73240         (WebCore::DatabaseAuthorizer::allowPragma):
73241         (WebCore::DatabaseAuthorizer::allowAttach):
73242         (WebCore::DatabaseAuthorizer::allowDetach):
73243         (WebCore::DatabaseAuthorizer::allowFunction):
73244         (WebCore::DatabaseAuthorizer::disable):
73245         (WebCore::DatabaseAuthorizer::enable):
73246         (WebCore::DatabaseAuthorizer::denyBasedOnTableName): Don't allow access to the __WebKit meta info table as
73247           it should be invisible to scripts
73248         * storage/DatabaseAuthorizer.h: Added.
73249         (WebCore::DatabaseAuthorizer::lastActionWasInsert):
73250         (WebCore::DatabaseAuthorizer::lastActionIncreasedSize):
73252         * storage/DatabaseCallback.cpp: Added.
73253           Generic item to queue up for callbacks on the main thread for database activities that take place on 
73254           a secondary thread
73255         (WebCore::DatabaseChangeVersionCallback::DatabaseChangeVersionCallback):
73256         (WebCore::DatabaseChangeVersionCallback::performCallback):
73257         (WebCore::DatabaseExecuteSqlCallback::DatabaseExecuteSqlCallback):
73258         (WebCore::DatabaseExecuteSqlCallback::performCallback):
73259         * storage/DatabaseCallback.h: Added.
73260         (WebCore::DatabaseCallback::~DatabaseCallback):
73261         (WebCore::DatabaseChangeVersionCallback::~DatabaseChangeVersionCallback):
73262         (WebCore::DatabaseExecuteSqlCallback::~DatabaseExecuteSqlCallback):
73264         * storage/DatabaseTask.h: Added.
73265           Generic work-item to be queued up on the background database thread
73266         (WebCore::DatabaseTask::isComplete):
73267         (WebCore::DatabaseOpenTask::exceptionCode):
73268         (WebCore::DatabaseOpenTask::openSuccessful):
73269         (WebCore::DatabaseTableNamesTask::tableNames):
73270         * storage/DatabaseTask.cpp: Added.
73271         (WebCore::DatabaseTask::DatabaseTask):
73272         (WebCore::DatabaseTask::~DatabaseTask):
73273         (WebCore::DatabaseTask::performTask):
73274         (WebCore::DatabaseTask::lockForSynchronousScheduling): Used when the main thread needs this task accomplished 
73275           synchronously
73276         (WebCore::DatabaseTask::waitForSynchronousCompletion):
73278         (WebCore::DatabaseOpenTask::DatabaseOpenTask):
73279         (WebCore::DatabaseOpenTask::doPerformTask):
73281         (WebCore::DatabaseExecuteSqlTask::DatabaseExecuteSqlTask):
73282         (WebCore::DatabaseExecuteSqlTask::doPerformTask):
73284         (WebCore::DatabaseChangeVersionTask::DatabaseChangeVersionTask):
73285         (WebCore::DatabaseChangeVersionTask::doPerformTask):
73287         (WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
73288         (WebCore::DatabaseTableNamesTask::doPerformTask):
73290         * storage/DatabaseThread.cpp: Added.
73291           The current design is that each Document will have its own DatabaseThread.  This makes scripts on each
73292           individual document more response at the cost of adding more threads and potentially creating concurrency
73293           issues when the same database is open twice from two different documents
73294         (WebCore::DatabaseThread::DatabaseThread):
73295         (WebCore::DatabaseThread::~DatabaseThread):
73296         (WebCore::DatabaseThread::start):
73297         (WebCore::DatabaseThread::documentGoingAway): Called to shut the thread down when the document is destroyed
73298         (WebCore::DatabaseThread::databaseGoingAway): Remove all pending tasks for this database
73299         (WebCore::DatabaseThread::databaseThreadStart):
73300         (WebCore::DatabaseThread::databaseThread):
73301         (WebCore::DatabaseThread::dispatchNextTaskIdentifier):
73302         (WebCore::DatabaseThread::scheduleTask):
73303         (WebCore::DatabaseThread::scheduleImmediateTask): Schedule a task that gets to "cut to the front of the line" when
73304           the main thread requires a task be performed synchronously
73305         (WebCore::DatabaseThread::wakeWorkThread):
73306         * storage/DatabaseThread.h: Added.
73308         * storage/DatabaseTracker.cpp: Added.
73309           The DatabaseTracker is the master management of all databases.  It will keep track of the filename for a given
73310           unique database, keep track of the total disk usage per-origin, and policys per database/origin
73311         (WebCore::DatabaseTracker::setDatabasePath):
73312         (WebCore::DatabaseTracker::databasePath):
73313         (WebCore::DatabaseTracker::tracker):
73314         (WebCore::DatabaseTracker::DatabaseTracker):
73315         (WebCore::DatabaseTracker::fullPathForDatabase):
73316         (WebCore::DatabaseTracker::populateOrigins):
73317         (WebCore::DatabaseTracker::origins):
73318         (WebCore::DatabaseTracker::databaseNamesForOrigin):
73319         (WebCore::DatabaseTracker::addDatabase):
73320         (WebCore::DatabaseTracker::deleteAllDatabases):
73321         (WebCore::DatabaseTracker::deleteAllDatabasesForOrigin):
73322         * storage/DatabaseTracker.h: Added.
73324         * storage/SQLCallback.h: Added. C++ version of the javascript executeSql() callback
73325         (WebCore::SQLCallback::~SQLCallback):
73326         * storage/SQLCallback.idl: Added.
73328         * storage/SQLResultSet.cpp: Added. C++ version of the javascript SQLResultSet object
73329         (WebCore::SQLResultSet::SQLResultSet):
73330         (WebCore::SQLResultSet::insertId):
73331         (WebCore::SQLResultSet::rowsAffected):
73332         (WebCore::SQLResultSet::errorCode):
73333         (WebCore::SQLResultSet::error):
73334         (WebCore::SQLResultSet::rows):
73335         (WebCore::SQLResultSet::setInsertId):
73336         (WebCore::SQLResultSet::setRowsAffected):
73337         (WebCore::SQLResultSet::setErrorCode):
73338         (WebCore::SQLResultSet::setErrorMessage):
73339         * storage/SQLResultSet.h: Added.
73340         * storage/SQLResultSet.idl: Added.
73342         * storage/SQLResultSetRowList.cpp: Added. C++ version of the javascript SQLResultSetRowList object
73343         (WebCore::SQLResultSetRowList::length):
73344         * storage/SQLResultSetRowList.h: Added.
73345         (WebCore::SQLResultSetRowList::columnNames):
73346         (WebCore::SQLResultSetRowList::values):
73347         (WebCore::SQLResultSetRowList::addColumn):
73348         (WebCore::SQLResultSetRowList::addResult):
73349         * storage/SQLResultSetRowList.idl: Added.
73351         * storage/VersionChangeCallback.h: Added. C++ version of the javascript changeVersion() callback
73352         (WebCore::VersionChangeCallback::~VersionChangeCallback):
73353         * storage/VersionChangeCallback.idl: Added.
73355 2007-10-19  Brady Eidson <beidson@apple.com>
73357         Reviewed by Oliver + Same
73359         Forwarding header for the new wtf/Queue.h
73361         * ForwardingHeaders/wtf/Queue.h: Added.
73363 2007-10-19  Anders Carlsson <beidson@apple.com>
73365         Reviewed by Sam Weinig
73367         Most of the Javascript binding support for the Storage API
73369         * bindings/js/JSCustomSQLCallback.cpp: Added.
73370         (WebCore::JSCustomSQLCallback::JSCustomSQLCallback):
73371         (WebCore::JSCustomSQLCallback::handleEvent):
73372         * bindings/js/JSCustomSQLCallback.h: Added.
73373                 Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
73374                 handleEvent to a JS function or a JS object with a handleEvent function.
73376         * bindings/js/JSCustomVersionChangeCallback.cpp: Added.
73377         (WebCore::JSCustomVersionChangeCallback::JSCustomVersionChangeCallback):
73378         (WebCore::JSCustomVersionChangeCallback::handleEvent):
73379         * bindings/js/JSCustomVersionChangeCallback.h: Added.
73380                 Add JSCustomSQLCallback which is an SQLCallback implementation that dispatches
73381                 handleEvent to a JS function or a JS object with a handleEvent function.
73383         * bindings/js/JSDatabaseCustom.cpp: Added.
73384         (WebCore::JSDatabase::executeSql):
73385                 Custom implementation of executeSql that takes an array of parameters.
73386                 
73387         (WebCore::JSDatabase::changeVersion):
73388                 Custom implementation of changeVersion.
73389                 
73390         * bindings/js/JSSQLResultSetRowListCustom.cpp: Added.
73391         (WebCore::JSSQLResultSetRowList::item):
73392                 Custom method that returns a JS object that corresponds to a given row in the database.
73394         * bindings/scripts/CodeGeneratorJS.pm:
73396         * page/DOMWindow.cpp:
73397         (WebCore::DOMWindow::openDatabase):
73398         * page/DOMWindow.h:
73399         * page/DOMWindow.idl:
73400                 Add openDatabase implementation.
73402 2007-10-19  Brady Eidson <beidson@apple.com>
73404         Reviewed by Oliver
73406         Added tons of utility to the FileSystem abstractions, including moving
73407         some stuff over from IconDatabase
73409         * platform/FileSystem.h:
73411         * platform/cf/FileSystemCF.cpp: Added.
73412         (WebCore::fileSystemRepresentation):
73414         * platform/mac/FileSystemMac.mm:
73416         * platform/posix/FileSystemPOSIX.cpp: Added.
73417         (WebCore::fileExists):
73418         (WebCore::deleteFile):
73419         (WebCore::fileSize):
73420         (WebCore::pathByAppendingComponent):
73421         (WebCore::makeAllDirectories):
73423 2007-10-19  Timothy Hatcher  <timothy@apple.com>
73425         Reviewed by Adam Roben
73427         Preliminary Web Inspector support for the Storage API
73428         (This patch does not include the support artwork)
73430         * page/InspectorController.cpp:
73431         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
73432         (WebCore::InspectorDatabaseResource::setScriptObject):
73433         (WebCore::databaseTableNames): Return the table names for a Database object.
73434         (WebCore::InspectorController::setWindowVisible):
73435         (WebCore::InspectorController::windowScriptObjectAvailable):
73436         (WebCore::InspectorController::populateScriptResources):
73437         (WebCore::InspectorController::addDatabaseScriptResource): Add the script object for the database.
73438         (WebCore::InspectorController::removeDatabaseScriptResource): Remove the script object for the database.
73439         (WebCore::InspectorController::clearDatabaseScriptResources): Remove all the database resources.
73440         (WebCore::InspectorController::didCommitLoad): Call clearDatabaseScriptResources().
73441         (WebCore::InspectorController::didOpenDatabase): Make a new InspectorDatabaseResource and add it to m_databaseResources.
73442         * page/InspectorController.h:
73443         * page/inspector/Database.js: Added.
73444         * page/inspector/DatabasePanel.js: Added.
73445         * page/inspector/ResourceCategory.js: Make resource categories assume less about the resource.
73446         * page/inspector/inspector.css: Add styles for the database panel.
73447         * page/inspector/inspector.html: Include DatabasePanel.js
73448         * page/inspector/inspector.js: Support for adding and removing Database resources.
73450 2007-10-19  Brady Eidson <beidson@apple.com>
73452         Reviewed by Tim Hatcher
73454         Added support for Chrome prompts required by the Storage API
73456         * page/Chrome.cpp:
73457         (WebCore::Chrome::runDatabaseSizeLimitPrompt):
73458         * page/Chrome.h:
73459         * page/ChromeClient.h:
73460         * platform/graphics/svg/SVGImageEmptyClients.h:
73462 2007-10-19  Brady Eidson <beidson@apple.com>
73464         Contributions and Review by Anders
73466         Various SQLite tweaks in preparation for the storage API
73468         * loader/icon/SQLDatabase.cpp:
73469         (WebCore::SQLDatabase::~SQLDatabase):
73470         (WebCore::SQLDatabase::authorizerFunction): Static callback from sqlite for authorizer functions
73471         (WebCore::SQLDatabase::setAuthorizer):
73472         (WebCore::SQLDatabase::lock):
73473         (WebCore::SQLDatabase::unlock):
73474         * loader/icon/SQLDatabase.h:
73476         * loader/icon/SQLStatement.cpp:
73477         (WebCore::SQLStatement::prepare): Switch to prepare16_v2
73478         (WebCore::SQLStatement::bindDouble): Added
73479         (WebCore::SQLStatement::bindValue): Bind a wrapped SQLValue object (described later)
73480         (WebCore::SQLStatement::bindParameterCount): Accessor to the sqlite3 API for validating statements
73481         * loader/icon/SQLStatement.h:
73482         (WebCore::SQLStatement::isPrepared):
73484         * platform/sql/SQLAuthorizer.cpp: Added.  Fully virtual interface to implement your own SQLite authorizer
73485         * platform/sql/SQLAuthorizer.h: Added.
73486         (WebCore::SQLAuthorizer::~SQLAuthorizer):
73487         (WebCore::SQLAuthorizer::createTable):
73488         (WebCore::SQLAuthorizer::createTempTable):
73489         (WebCore::SQLAuthorizer::dropTable):
73490         (WebCore::SQLAuthorizer::dropTempTable):
73491         (WebCore::SQLAuthorizer::allowAlterTable):
73492         (WebCore::SQLAuthorizer::createIndex):
73493         (WebCore::SQLAuthorizer::createTempIndex):
73494         (WebCore::SQLAuthorizer::dropIndex):
73495         (WebCore::SQLAuthorizer::dropTempIndex):
73496         (WebCore::SQLAuthorizer::createTrigger):
73497         (WebCore::SQLAuthorizer::createTempTrigger):
73498         (WebCore::SQLAuthorizer::dropTrigger):
73499         (WebCore::SQLAuthorizer::dropTempTrigger):
73500         (WebCore::SQLAuthorizer::createView):
73501         (WebCore::SQLAuthorizer::createTempView):
73502         (WebCore::SQLAuthorizer::dropView):
73503         (WebCore::SQLAuthorizer::dropTempView):
73504         (WebCore::SQLAuthorizer::createVTable):
73505         (WebCore::SQLAuthorizer::dropVTable):
73506         (WebCore::SQLAuthorizer::allowDelete):
73507         (WebCore::SQLAuthorizer::allowInsert):
73508         (WebCore::SQLAuthorizer::allowUpdate):
73509         (WebCore::SQLAuthorizer::allowTransaction):
73510         (WebCore::SQLAuthorizer::allowSelect):
73511         (WebCore::SQLAuthorizer::allowRead):
73512         (WebCore::SQLAuthorizer::allowAttach):
73513         (WebCore::SQLAuthorizer::allowDetach):
73514         (WebCore::SQLAuthorizer::allowReindex):
73515         (WebCore::SQLAuthorizer::allowAnalyze):
73516         (WebCore::SQLAuthorizer::allowFunction):
73518         * platform/sql/SQLValue.cpp: Added.  Contains a value for a SQLite database that can be one of a few types.  
73519           For now, just a String or a double
73520         (WebCore::SQLValue::SQLValue):
73521         (WebCore::SQLValue::string):
73522         (WebCore::SQLValue::number):
73523         * platform/sql/SQLValue.h: Added.
73524         (WebCore::SQLValue::):
73525         (WebCore::SQLValue::SQLValue):
73526         (WebCore::SQLValue::type):
73528 2007-10-19  Brady Eidson <beidson@apple.com>
73530         Reviewed by Maciej
73532         Changed IconDatabase over to use new FileSystem apis
73534         * loader/icon/IconDatabase.cpp:
73535         (WebCore::IconDatabase::open):
73537 2007-10-19  David Hyatt  <hyatt@apple.com>
73539         Fix for ebay parser crash.
73541         Reviewed by Beth
73543         fast/invalid/table-residual-style-crash.html added as a test
73545         * html/HTMLParser.cpp:
73546         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
73548 2007-10-19  Sam Weinig  <sam@webkit.org>
73550         Fix Windows, Qt and GTK builds.
73552         * WebCore.pro:
73553         * WebCore.vcproj/WebCore.vcproj:
73555 2007-10-19  Sam Weinig  <sam@webkit.org>
73557         Reviewed by Darin.
73559         Encapsulate the same origin check into the new SecurityOrigin class.
73561         * WebCore.xcodeproj/project.pbxproj:
73562         * bindings/js/kjs_window.cpp:
73563         (KJS::Window::isSafeScript):
73564         * dom/Document.cpp:
73565         (WebCore::Document::Document):
73566         (WebCore::Document::defaultEventHandler):
73567         * dom/Document.h:
73568         (WebCore::Document::securityOrigin):
73569         * loader/FrameLoader.cpp:
73570         (WebCore::FrameLoader::begin):
73571         (WebCore::FrameLoader::setOpener):
73572         * loader/FrameLoader.h:
73573         * platform/SecurityOrigin.cpp: Added.
73574         (WebCore::SecurityOrigin::SecurityOrigin):
73575         (WebCore::SecurityOrigin::clear):
73576         (WebCore::SecurityOrigin::isEmpty):
73577         (WebCore::SecurityOrigin::setForFrame):
73578         (WebCore::SecurityOrigin::setDomainFromDOM):
73579         (WebCore::SecurityOrigin::allowsAccessFrom):
73580         (WebCore::SecurityOrigin::isSecureTransitionTo):
73581         * platform/SecurityOrigin.h: Added.
73583 2007-10-19  Simon Hausmann  <hausmann@kde.org>
73585         Fix the Qt/Windows build: Added missing FontSelector.h include.
73587         * platform/qt/FontQt.cpp:
73589 2007-10-19  Simon Hausmann  <hausmann@kde.org>
73591         Reviewed by Lars.
73593         Qt/Windows build fix: Threading.h uses int32_t but doesn't include stdint.h.
73595         * platform/Threading.h:
73597 2007-10-19  Simon Hausmann  <hausmann@kde.org>
73599         Reviewed by Lars.
73601         Fix the Qt/Windows build, don't use cat but use the perl print trick
73602         instead.
73604         * WebCore.pro:
73606 2007-10-18  Justin Garcia  <justin.garcia@apple.com>
73608         Reviewed by Kevin McCullough.
73610         <rdar://problem/5483526> 
73611         GoogleDocs: A hang occurs when applying list styling to a selection containing a table and line breaks
73613         * editing/TextIterator.cpp:
73614         (WebCore::TextIterator::exitNode): For selection preservation, we must emit a character
73615         between every VisiblePosition.  We weren't emitting a space after some tables, because
73616         we won't try to emit a space if shouldEmitNewlineAFterNode is true, even if no newline
73617         was emitted.
73619 2007-10-18  Dan Bernstein  <mitz@apple.com>
73621         Reviewed by Adam Roben.
73623         - fix <rdar://problem/5313523>
73624         REGRESSION(Leopard): http/tests/incremental/slow-utf8-text.pl fails on Leopard
73626         * platform/network/mac/ResourceResponseMac.mm:
73627         (WebCore::ResourceResponse::doUpdateResourceResponse): Work around
73628         <rdar://problem/5321972> by testing for the case of a response
73629         with a MIME type of application/octet-stream and a Content-Type header
73630         starting with text/plain and setting the MIME type to text/plain in
73631         that case.
73633 2007-10-18  Mark Rowe  <mrowe@apple.com>
73635         Fix the no-SVG build.
73637         * css/CSSPrimitiveValueMappings.h: Move the CSSPrimitiveValue implementations for
73638         LineCap, LineJoin and WindRule inside #if ENABLE(SVG).
73640 2007-10-18  Darin Adler  <darin@apple.com>
73642         Reviewed by Anders.
73644         - some small tweaks to the threading implementation
73646         I had trouble building on Windows. Either the problem went away by itself
73647         or one of these changes fixed it.
73649         * platform/Threading.h: Eliminated the use of friend, and shared a single
73650         declaration for the initializeThreading function.
73652         * platform/pthreads/ThreadingPthreads.cpp: (WebCore::ThreadCondition::wait):
73653         Call impl() here.
73655         * platform/win/ThreadingWin.cpp: Got rid of two globals here with static
73656         constructors. Also added a typedef for the type of the function queue.
73657         (WebCore::functionQueueMutex): Added function.
73658         (WebCore::functionQueue): Ditto.
73659         (WebCore::callFunctionsOnMainThread): Use functions instead of using the
73660         globals directly.
73661         (WebCore::callOnMainThread): Ditto.
73663         * css/CSSParser.cpp: Had to touch this file to make things build.
73665 2007-10-18  Adam Roben  <aroben@apple.com>
73667         Fix <rdar://5547462> Need to copy Inspector resources in Production builds
73669         I also added an excludes file for the xcopy command to avoid copying
73670         .svn folders.
73672         Reviewed by Geoff.
73674         * WebCore.vcproj/WebCore.make: Make sure we copy the Inspector
73675         resources.
73676         * WebCore.vcproj/WebCore.vcproj: Pass /exclude:xcopy.excludes to
73677         xcopy.
73678         * WebCore.vcproj/xcopy.excludes: Added.
73680 2007-10-18  Darin Adler  <darin@apple.com>
73682         Reviewed by Sam.
73684         - fix http://bugs.webkit.org/show_bug.cgi?id=15541
73685           REGRESSION (r26616): prompt with one argument uses the literal "undefined" as default reply
73687         * page/DOMWindow.idl: Add ConvertUndefinedOrNullToNullString back for defaultValue.
73689 2007-10-18  Nikolas Zimmermann  <zimmermann@kde.org>
73691         Build fix. Not reviewed.
73693         Hopefully fix win build by including wtf/MathExtras.h.
73695         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
73697 2007-10-18  Dan Bernstein  <mitz@apple.com>
73699         Reviewed by Nikolas Zimmermann.
73701         - fix http://bugs.webkit.org/show_bug.cgi?id=15367
73702           Assertion failure inspecting a document including soft hyphen code (0xad)
73704         Test: fast/text/word-break-soft-hyphen.html
73706         * rendering/RenderText.cpp:
73707         (WebCore::RenderText::calcPrefWidths): Changed to treat soft hyphens as 
73708         word boundaries. This fixes the bug and is consistent with the fact that
73709         run rounding does occur at soft hyphens.
73711 2007-10-18  Nikolas Zimmermann  <zimmermann@kde.org>
73713         Reviewed by Anders.
73715         Fix last layout test failure seen on buildbot "trunk-mac-ppc-release".
73716         Problem: "svg/custom/mask-excessive-malloc.svg -> crashed"
73718         Clamp any ImageBuffer allocation within SVG to the RenderView's visibleSize
73719         to avoid excessive mallocs (in the testcase above 1000000x1000000)
73721         * ksvg2/svg/SVGMaskElement.cpp:
73722         (WebCore::SVGMaskElement::drawMaskerContent):
73723         * ksvg2/svg/SVGPatternElement.cpp:
73724         (WebCore::SVGPatternElement::buildPattern):
73725         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
73726         (WebCore::SVGPaintServerGradient::teardown):
73727         (WebCore::SVGPaintServerGradient::setup):
73728         * platform/graphics/svg/cg/SVGResourceMaskerCg.mm:
73729         (WebCore::SVGResourceMasker::applyMask):
73730         * rendering/SVGRenderSupport.cpp:
73731         (WebCore::clampImageBufferSizeToViewport):
73732         * rendering/SVGRenderSupport.h:
73734 2007-10-18  Alexey Proskuryakov  <ap@webkit.org>
73736         Windows build fix.
73738         * css/CSSStyleSelector.cpp:
73739         (WebCore::CSSStyleSelector::applyProperty): Add braces around cases that have local variables now.
73741 2007-10-18  Alexey Proskuryakov  <ap@webkit.org>
73743         Release build fix.
73745         * css/CSSStyleSelector.cpp:
73746         (WebCore::CSSStyleSelector::applyProperty): 
73748 2007-10-18  Alexey Proskuryakov  <ap@webkit.org>
73750         Reviewed by Darin.
73752         Split most of CSSPrimitiveValue enum mapping out of CSSComputedStyleDeclaration::getPropertyCSSValue()
73753         and CSSStyleSelector::applyProperty() (and their SVG counterparts). This should make the code more readable.
73755         * WebCore.xcodeproj/project.pbxproj:
73756         * css/CSSComputedStyleDeclaration.cpp:
73757         (WebCore::getPositionOffsetValue):
73758         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
73759         * css/CSSPrimitiveValue.cpp:
73760         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
73761         (WebCore::CSSPrimitiveValue::init):
73762         * css/CSSPrimitiveValue.h:
73763         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
73764         * css/CSSPrimitiveValueMappings.h: Added.
73765         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
73766         (WebCore::CSSPrimitiveValue::operator EBorderStyle):
73767         (WebCore::CSSPrimitiveValue::operator CompositeOperator):
73768         (WebCore::CSSPrimitiveValue::operator EAppearance):
73769         (WebCore::CSSPrimitiveValue::operator EBackgroundBox):
73770         (WebCore::CSSPrimitiveValue::operator EBackgroundRepeat):
73771         (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
73772         (WebCore::CSSPrimitiveValue::operator EBoxDirection):
73773         (WebCore::CSSPrimitiveValue::operator EBoxLines):
73774         (WebCore::CSSPrimitiveValue::operator EBoxOrient):
73775         (WebCore::CSSPrimitiveValue::operator ECaptionSide):
73776         (WebCore::CSSPrimitiveValue::operator EClear):
73777         (WebCore::CSSPrimitiveValue::operator ECursor):
73778         (WebCore::CSSPrimitiveValue::operator EDisplay):
73779         (WebCore::CSSPrimitiveValue::operator EEmptyCell):
73780         (WebCore::CSSPrimitiveValue::operator EFloat):
73781         (WebCore::CSSPrimitiveValue::operator EKHTMLLineBreak):
73782         (WebCore::CSSPrimitiveValue::operator EListStylePosition):
73783         (WebCore::CSSPrimitiveValue::operator EListStyleType):
73784         (WebCore::CSSPrimitiveValue::operator EMarginCollapse):
73785         (WebCore::CSSPrimitiveValue::operator EMarqueeBehavior):
73786         (WebCore::CSSPrimitiveValue::operator EMarqueeDirection):
73787         (WebCore::CSSPrimitiveValue::operator EMatchNearestMailBlockquoteColor):
73788         (WebCore::CSSPrimitiveValue::operator ENBSPMode):
73789         (WebCore::CSSPrimitiveValue::operator EOverflow):
73790         (WebCore::CSSPrimitiveValue::operator EPageBreak):
73791         (WebCore::CSSPrimitiveValue::operator EPosition):
73792         (WebCore::CSSPrimitiveValue::operator EResize):
73793         (WebCore::CSSPrimitiveValue::operator ETableLayout):
73794         (WebCore::CSSPrimitiveValue::operator ETextAlign):
73795         (WebCore::CSSPrimitiveValue::operator ETextSecurity):
73796         (WebCore::CSSPrimitiveValue::operator ETextTransform):
73797         (WebCore::CSSPrimitiveValue::operator EUnicodeBidi):
73798         (WebCore::CSSPrimitiveValue::operator EUserDrag):
73799         (WebCore::CSSPrimitiveValue::operator EUserModify):
73800         (WebCore::CSSPrimitiveValue::operator EUserSelect):
73801         (WebCore::CSSPrimitiveValue::operator EVisibility):
73802         (WebCore::CSSPrimitiveValue::operator EWhiteSpace):
73803         (WebCore::CSSPrimitiveValue::operator EWordBreak):
73804         (WebCore::CSSPrimitiveValue::operator EWordWrap):
73805         (WebCore::CSSPrimitiveValue::operator LineCap):
73806         (WebCore::CSSPrimitiveValue::operator LineJoin):
73807         (WebCore::CSSPrimitiveValue::operator TextDirection):
73808         (WebCore::CSSPrimitiveValue::operator WindRule):
73809         (WebCore::CSSPrimitiveValue::operator EAlignmentBaseline):
73810         (WebCore::CSSPrimitiveValue::operator EColorInterpolation):
73811         (WebCore::CSSPrimitiveValue::operator EColorRendering):
73812         (WebCore::CSSPrimitiveValue::operator EDominantBaseline):
73813         (WebCore::CSSPrimitiveValue::operator EImageRendering):
73814         (WebCore::CSSPrimitiveValue::operator EPointerEvents):
73815         (WebCore::CSSPrimitiveValue::operator EShapeRendering):
73816         (WebCore::CSSPrimitiveValue::operator ETextAnchor):
73817         (WebCore::CSSPrimitiveValue::operator ETextRendering):
73818         (WebCore::CSSPrimitiveValue::operator EWritingMode):
73819         * css/CSSStyleSelector.cpp:
73820         (WebCore::CSSStyleSelector::checkSelector):
73821         (WebCore::CSSStyleSelector::checkOneSelector):
73822         (WebCore::CSSRuleSet::addRulesFromSheet):
73823         (WebCore::convertToLength):
73824         (WebCore::CSSStyleSelector::applyDeclarations):
73825         (WebCore::CSSStyleSelector::applyProperty):
73826         (WebCore::CSSStyleSelector::mapBackgroundAttachment):
73827         (WebCore::CSSStyleSelector::mapBackgroundClip):
73828         (WebCore::CSSStyleSelector::mapBackgroundComposite):
73829         (WebCore::CSSStyleSelector::mapBackgroundOrigin):
73830         (WebCore::CSSStyleSelector::mapBackgroundRepeat):
73831         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
73832         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
73833         * ksvg2/css/SVGCSSComputedStyleDeclaration.cpp:
73834         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
73835         * ksvg2/css/SVGCSSStyleSelector.cpp:
73836         (WebCore::CSSStyleSelector::applySVGProperty):
73838 2007-10-18  Eric Seidel  <eric@webkit.org>
73840         Reviewed by Maciej.
73842         Fix crashers in SVGViewSpec::parseViewSpec
73843         http://bugs.webkit.org/show_bug.cgi?id=15504
73845         Test is blocked by bug 15503, landed as:
73846         * svg/dom/viewspec-parser.html-disabled
73848         * bindings/scripts/CodeGeneratorObjC.pm: support classes where all parents are interfaces
73849         * ksvg2/svg/SVGViewSpec.cpp:
73850         (WebCore::SVGViewSpec::parseViewSpec):
73851         * ksvg2/svg/SVGViewSpec.idl: Added.
73853 2007-10-17  Rob Buis  <buis@kde.org>
73855         Reviewed by Darin, Adam, and Maciej.
73857         http://bugs.webkit.org/show_bug.cgi?id=12988
73858         First element (in document order) is not returned when other duplicate ID-ed elements were created first
73860         Reset the element id cache when an id is added and there is a duplicate for that id.
73862         * dom/Document.cpp:
73863         (WebCore::Document::addElementById):
73865 2007-10-17  Mark Rowe  <mrowe@apple.com>
73867         Mac build fix.
73869         * Configurations/WebCore.xcconfig:  Make it possible to include CoreGraphics header files.
73871 2007-10-17  Adam Roben  <aroben@apple.com>
73873         Fix an ASSERT on launch on Windows
73875         Fix dictated to me by Brady.
73877         * loader/icon/IconDatabase.cpp:
73878         (WebCore::IconDatabase::syncThreadMainLoop): Make sure we hold
73879         m_syncLock before going into the loop.
73881 2007-10-17  Adam Roben  <aroben@apple.com>
73883         Windows build fix
73885         * platform/graphics/AffineTransform.h: Don't #include
73886         ApplicationServices.h.
73887         * platform/graphics/cg/GraphicsContextCG.cpp: Add an #include that's
73888         needed now that we're not #including ApplicationServices.h.
73890 2007-10-17  Mark Rowe  <mrowe@apple.com>
73892         Gtk build fix.  Move non-pthread stubs from Threading.h to ThreadingNone.cpp to prevent
73893         multiple-definition link errors.
73895         * WebCore.pro:
73896         * platform/Threading.h:
73897         * platform/ThreadingNone.cpp: Added.
73898         (WebCore::createThread):
73899         (WebCore::waitForThreadCompletion):
73900         (WebCore::detachThread):
73901         (WebCore::Mutex::Mutex):
73902         (WebCore::Mutex::~Mutex):
73903         (WebCore::Mutex::lock):
73904         (WebCore::Mutex::tryLock):
73905         (WebCore::Mutex::unlock):
73906         (WebCore::ThreadCondition::ThreadCondition):
73908 2007-10-17  Anders Carlsson  <andersca@apple.com>
73910         Reviewed by Oliver.
73912         * WebCore.xcodeproj/project.pbxproj:
73913         * WebCore.vcproj/WebCore.vcproj:
73914         
73915         * config.h:
73916         #define USE_PTHREADS on Windows.
73917         
73918         * loader/icon/IconDatabase.cpp:
73919         (WebCore::IconDatabase::getOrCreateIconRecord):
73920         (WebCore::IconDatabase::getOrCreatePageURLRecord):
73921         Update for mutex changes.
73922         
73923         * platform/Threading.h:
73924         (WebCore::ThreadSafeShared::ThreadSafeShared):
73925         (WebCore::ThreadSafeShared::ref):
73926         (WebCore::ThreadSafeShared::deref):
73927         (WebCore::ThreadSafeShared::hasOneRef):
73928         (WebCore::ThreadSafeShared::refCount):
73929         (WebCore::ThreadSafeShared::isThreadSafe):
73930         Add a new Shared base class that uses a mutex to manage its refcount.
73931         
73932         (WebCore::createThread):
73933         (WebCore::waitForThreadCompletion):
73934         (WebCore::detachThread):
73935         New functions for thread creation.
73936         
73937         (WebCore::Mutex::Mutex):
73938         (WebCore::Mutex::~Mutex):
73939         (WebCore::Mutex::lock):
73940         (WebCore::Mutex::tryLock):
73941         (WebCore::Mutex::unlock):
73942         Move the definitions to ThreadingPthreads.cpp
73943         
73944         (WebCore::ThreadCondition::ThreadCondition):
73945         (WebCore::ThreadCondition::~ThreadCondition):
73946         (WebCore::ThreadCondition::wait):
73947         (WebCore::ThreadCondition::signal):
73948         (WebCore::ThreadCondition::broadcast):
73949         Move the definitions to ThreadingPthreads.cpp
73950         
73951         * platform/pthreads: Added.
73952         * platform/pthreads/ThreadingPthreads.cpp: Added.
73953         Add pthread specific implementation of the thread creation functions, Mutex and ThreadCondition.
73955 2007-10-17  David Hyatt  <hyatt@apple.com>
73957         Add support for creating a layer when a transform is in effect.  Add support to RenderStyle for
73958         handing back a computed AffineTransform.
73960         Reviewed by Mitz Pettel
73962         * css/CSSStyleSelector.cpp:
73963         (WebCore::CSSStyleSelector::adjustRenderStyle):
73964         * rendering/RenderBox.cpp:
73965         (WebCore::RenderBox::setStyle):
73966         * rendering/RenderObject.cpp:
73967         (WebCore::RenderObject::RenderObject):
73968         (WebCore::RenderObject::requiresLayer):
73969         (WebCore::RenderObject::setStyle):
73970         * rendering/RenderObject.h:
73971         (WebCore::RenderObject::hasTransform):
73972         (WebCore::RenderObject::setHasTransform):
73973         * rendering/RenderStyle.cpp:
73974         (WebCore::RenderStyle::applyTransform):
73975         * rendering/RenderStyle.h:
73976         (WebCore::RenderStyle::hasTransform):
73977         * rendering/RenderTableCell.cpp:
73978         (WebCore::RenderTableCell::requiresLayer):
73979         * rendering/RenderTableRow.h:
73980         (WebCore::RenderTableRow::requiresLayer):
73982 2007-10-17  David Hyatt  <hyatt@apple.com>
73984         Add support for mapping of the transform CSS property into RenderStyles.  Everything is now ready for the front
73985         end to use.
73987         Reviewed by Mitz Pettel
73989         * WebCore.xcodeproj/project.pbxproj:
73990         * css/CSSStyleSelector.cpp:
73991         (WebCore::CSSStyleSelector::applyProperty):
73992         * css/CSSTransformValue.h:
73993         (WebCore::CSSTransformValue::type):
73994         (WebCore::CSSTransformValue::values):
73995         * platform/graphics/AffineTransform.cpp:
73996         (WebCore::AffineTransform::skew):
73997         * platform/graphics/AffineTransform.h:
73998         * rendering/RenderStyle.cpp:
73999         (WebCore::StyleTransformData::StyleTransformData):
74000         (WebCore::StyleTransformData::operator==):
74001         (WebCore::StyleTransformData::transformDataEquivalent):
74002         * rendering/RenderStyle.h:
74003         (WebCore::TransformOperation::~TransformOperation):
74004         (WebCore::TransformOperation::operator!=):
74005         (WebCore::TransformOperation::isScaleOperation):
74006         (WebCore::TransformOperation::isRotateOperation):
74007         (WebCore::TransformOperation::isSkewOperation):
74008         (WebCore::TransformOperation::isTranslateOperation):
74009         (WebCore::TransformOperation::isMatrixOperation):
74010         (WebCore::ScaleTransformOperation::ScaleTransformOperation):
74011         (WebCore::ScaleTransformOperation::isScaleOperation):
74012         (WebCore::ScaleTransformOperation::operator==):
74013         (WebCore::ScaleTransformOperation::apply):
74014         (WebCore::RotateTransformOperation::RotateTransformOperation):
74015         (WebCore::RotateTransformOperation::isRotateOperation):
74016         (WebCore::RotateTransformOperation::operator==):
74017         (WebCore::RotateTransformOperation::apply):
74018         (WebCore::SkewTransformOperation::SkewTransformOperation):
74019         (WebCore::SkewTransformOperation::isSkewOperation):
74020         (WebCore::SkewTransformOperation::operator==):
74021         (WebCore::SkewTransformOperation::apply):
74022         (WebCore::TranslateTransformOperation::TranslateTransformOperation):
74023         (WebCore::TranslateTransformOperation::isTranslateOperation):
74024         (WebCore::TranslateTransformOperation::operator==):
74025         (WebCore::TranslateTransformOperation::apply):
74026         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
74027         (WebCore::MatrixTransformOperation::isMatrixOperation):
74028         (WebCore::MatrixTransformOperation::operator==):
74029         (WebCore::MatrixTransformOperation::apply):
74030         (WebCore::StyleTransformData::operator!=):
74031         (WebCore::RenderStyle::transform):
74032         (WebCore::RenderStyle::setTransform):
74033         (WebCore::RenderStyle::initialTransform):
74035 2007-10-17  Adam Roben  <aroben@apple.com>
74037         * page/Frame.cpp: I had to touch this file when fixing the Windows
74038         build. Checking it in in case it helps others, too.
74040 2007-10-17  Eric Seidel  <eric@webkit.org>
74042         Reviewed by Mark Rowe.
74043         
74044         Remove a couple more uses of svg_dynamic_cast.
74046         No functional changes, no tests.
74048         * ksvg2/svg/SVGPatternElement.cpp:
74049         (WebCore::SVGPatternElement::buildPattern):
74051 2007-10-17  Mark Rowe  <mrowe@apple.com>
74053         Reviewed by Eric and Geoff.
74055         <rdar://problem/5453743> Repro ASSERT in CachedResource::setEncodedSize() loading image in background tab
74056         http://bugs.webkit.org/show_bug.cgi?id=15191
74058         * loader/DocLoader.cpp:
74059         (WebCore::DocLoader::setAutoLoadImages): Don't start a load if the CachedImage is already loading.
74061 2007-10-17  Justin Garcia  <justin.garcia@apple.com>
74063         Reviewed by Harrison.
74064         
74065         <rdar://problem/5481523> 
74066         GoogleDocs: Safari hangs when indenting a particular table twice
74067         
74068         Fixed by fixing problems with the selection preservation done by IndentOutdentCommand.
74069         It is now more difficult to create selections that cause hangs.  Those are covered by:
74070         <rdar://problem/5543472>
74072         * editing/IndentOutdentCommand.cpp:
74073         (WebCore::indexForVisiblePosition): Compute indices from the first VisiblePosition
74074         in the document, instead of the first Position.
74075         Use rangeCompliantEquivalents when creating the Range that we pass to rangeLength.
74076         Tell TextIterator::rangeLength that we're doing selection preservation, so that it
74077         will emit characters between all VisiblePositions.
74078         (WebCore::IndentOutdentCommand::indentRegion): Fixed a bug where the range and location
74079         passed to rangeFromLocationAndLength were reversed.
74080         Tell rangeFromLocationAndLength that we're doing doing selection preservation, as
74081         above.
74082         * editing/TextIterator.cpp:
74083         (WebCore::CharacterIterator::CharacterIterator): 
74084         (WebCore::TextIterator::rangeLength): Rename emitSpacesForReplacedElements
74085         to forSelectionPreservation, to match the name of the boolean inside TextIterator and
74086         to match its meaning after r25522.
74087         (WebCore::TextIterator::rangeFromLocationAndLength): Ditto.
74089 2007-10-16  Darin Adler  <darin@apple.com>
74091         Reviewed by Mitz.
74093         - fix http://bugs.webkit.org/show_bug.cgi?id=15536
74094           need to cache missing glyph so we're not slow on pages that show missing glyphs
74096         - <rdar://problem/5404359> UI thread stall (>60sec) in MLANG running stress test
74097           (related to font data caching)
74099         * platform/Font.cpp: (WebCore::Font::glyphDataForCharacter): Check for a null value
74100         for fontData rather than for glyph to detect non-cached entries in the glyph data.
74102         * platform/gtk/GlyphPageTreeNodeGtk.cpp: (WebCore::GlyphPage::fill):
74103         * platform/mac/GlyphPageTreeNodeMac.cpp: (WebCore::GlyphPage::fill):
74104         * platform/win/GlyphPageTreeNodeWin.cpp: (WebCore::GlyphPage::fill):
74105         Set fontData to 0 for missing glyph entries. Also fixed the Windows and GTK versions
74106         to return the proper value for haveGlyphs.
74108 2007-10-16  Mark Rowe  <mrowe@apple.com>
74110         Gtk build fix.  Replace use of assert with ASSERT_NOT_REACHED.
74112         * platform/gtk/FontCacheGtk.cpp:
74113         (WebCore::FontCache::platformInit):
74115 2007-10-16  Darin Adler  <darin@apple.com>
74117         Reviewed by Adam.
74119         - fix http://bugs.webkit.org/show_bug.cgi?id=15534
74120           WebScriptObject.h has some formatting and editorial mistakes
74122         * bindings/objc/WebScriptObject.h: Fix wording and formatting.
74124 2007-10-16  Darin Adler  <darin@apple.com>
74126         - try to fix the Qt build
74128         * config.h: Don't use DisallowCType.h, since it's incompatible with some C++ headers
74129         that are used in some Qt-specific source files.
74131 2007-10-16  Darin Adler  <darin@apple.com>
74133         Reviewed by Adele.
74135         - fix http://bugs.webkit.org/show_bug.cgi?id=15525
74136           transpose (control-T) should do the last two characters on a line if at end of line
74137         - remove unused CommandByName class
74138         - move transpose command implementation here from Mac OS X WebKit
74140         * editing/Editor.h:
74141         * editing/Editor.cpp:
74142         (WebCore::execTranspose): Added.
74143         (WebCore::Editor::transpose): Added. This has the transpose implementation from
74144         WebCoreFrameBridge and WebHTMLView, translated into WebCore-style C++ and with
74145         a special case for the end of a paragraph.
74147         * page/Frame.h: Removed unused command() function member.
74148         * page/FramePrivate.h: Removed unused m_command data member.
74149         * page/Frame.cpp: Ditto.
74151         * page/mac/WebCoreFrameBridge.h: Removed rangeOfCharactersAroundCaret method.
74152         * page/mac/WebCoreFrameBridge.mm: Ditto.
74154         * WebCore.pro: Removed CommandByName.h/cpp.
74155         * WebCore.vcproj/WebCore.vcproj: Ditto.
74156         * WebCore.xcodeproj/project.pbxproj: Ditto.
74158         * editing/CommandByName.cpp: Removed.
74159         * editing/CommandByName.h: Removed.
74161 2007-10-16  Darin Adler  <darin@apple.com>
74163         Reviewed by Maciej and Geoff (and looked over by Eric).
74165         - http://bugs.webkit.org/show_bug.cgi?id=15519
74166           eliminate use of <ctype.h> for processing ASCII
74168         * ForwardingHeaders/wtf/ASCIICType.h: Added.
74169         * ForwardingHeaders/wtf/DisallowCType.h: Added.
74171         * WebCorePrefix.h: Get rid of inclusion of <ctype.h>.
74172         * config.h: Include DisallowCType.h.
74174         * css/CSSParser.cpp:
74175         (WebCore::ParseString::lower):
74176         * css/CSSPrimitiveValue.cpp:
74177         (WebCore::isCSSTokenizerIdentifier):
74178         * css/CSSStyleDeclaration.cpp:
74179         (WebCore::propertyID):
74180         * html/HTMLSelectElement.cpp:
74181         (WebCore::stripLeadingWhiteSpace):
74182         * html/HTMLTokenizer.cpp:
74183         (WebCore::tagMatch):
74184         * loader/FTPDirectoryParser.cpp:
74185         (WebCore::parseOneFTPLine):
74186         * loader/TextResourceDecoder.cpp:
74187         (WebCore::TextResourceDecoder::checkForHeadCharset):
74188         * platform/DeprecatedCString.cpp:
74189         (WebCore::DeprecatedCString::lower):
74190         (WebCore::DeprecatedCString::upper):
74191         (WebCore::DeprecatedCString::find):
74192         (WebCore::DeprecatedCString::contains):
74193         * platform/DeprecatedString.cpp:
74194         (WebCore::equalCaseInsensitive):
74195         (WebCore::isCharacterAllowedInBase):
74196         (WebCore::DeprecatedString::find):
74197         (WebCore::DeprecatedString::contains):
74198         (WebCore::toIntegralType):
74199         * platform/DeprecatedString.h:
74200         (WebCore::DeprecatedChar::isSpace):
74201         (WebCore::DeprecatedChar::lower):
74202         (WebCore::DeprecatedChar::upper):
74203         * platform/KURL.cpp:
74204         (WebCore::KURL::parse):
74205         * platform/StringImpl.cpp:
74206         (WebCore::isSpace):
74207         (WebCore::StringImpl::containsOnlyWhitespace):
74208         (WebCore::StringImpl::isLower):
74209         (WebCore::StringImpl::lower):
74210         (WebCore::StringImpl::find):
74211         (WebCore::StringImpl::reverseFind):
74212         (WebCore::equalIgnoringCase):
74213         * platform/TextEncodingRegistry.cpp:
74214         (WebCore::TextEncodingNameHash::equal):
74215         (WebCore::TextEncodingNameHash::hash):
74216         (WebCore::atomicCanonicalTextEncodingName):
74217         * platform/mac/KeyEventMac.mm:
74218         (WebCore::keyIdentifierForKeyEvent):
74219         * platform/win/KeyEventWin.cpp:
74220         (WebCore::keyIdentifierForWindowsKeyCode):
74221         * platform/win/PopupMenuWin.cpp:
74222         (WebCore::isASCIIPrintable):
74223         (WebCore::PopupWndProc):
74224         * plugins/win/PluginViewWin.cpp:
74225         (WebCore::capitalizeRFC822HeaderFieldName):
74226         * rendering/RenderText.cpp:
74227         (WebCore::RenderText::widthFromCache):
74228         Use ASCIICType.h functions instead of ctype.h ones.
74230 2007-10-16  Mitz Pettel  <mitz@webkit.org>
74232         Reviewed by Dave Hyatt.
74234         - fix http://bugs.webkit.org/show_bug.cgi?id=15296
74235           REGRESSION (r19716-r19719): width not specified for <marquee> tag is causing the alignment issue.
74237         Test: fast/block/float/marquee-shrink-to-avoid-floats.html
74239         * rendering/RenderObject.cpp:
74240         (WebCore::RenderObject::shrinkToAvoidFloats): Changed to return 'true' for <marquee>s with auto width.
74242 2007-10-16  Beth Dakin  <bdakin@apple.com>
74244         Reviewed by Darin.
74246         Fix for <rdar://problem/5517118> REGRESSION: 9A570 - Safari renders 
74247         Amazon seller page way too small
74249         The font size at Amazon was way too small because the calls to 
74250         getComputedStyle and getPropertyValue did not cause the div to 
74251         attach because there was a pending stylesheet. The fix is to call 
74252         updateLayoutIgnorePendingStylesheets() instead of just 
74253         updateLayout().
74255         * css/CSSComputedStyleDeclaration.cpp:
74256         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
74258 2007-10-16  David Hyatt  <hyatt@apple.com>
74260         Get transform-origin(x/y) mapped into the front end RenderStyle.  Adds a new StyleTransformData struct that
74261         holds transform-origin (and that will also eventually hold the parsed transform operations as well).
74263         Reviewed by Beth
74265         * css/CSSStyleSelector.cpp:
74266         (WebCore::CSSStyleSelector::applyProperty):
74267         * rendering/RenderStyle.cpp:
74268         (WebCore::StyleTransformData::StyleTransformData):
74269         (WebCore::StyleTransformData::operator==):
74270         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
74271         (WebCore::StyleRareNonInheritedData::operator==):
74272         (WebCore::RenderStyle::RenderStyle):
74273         (WebCore::RenderStyle::diff):
74274         * rendering/RenderStyle.h:
74275         (WebCore::StyleTransformData::operator!=):
74276         (WebCore::RenderStyle::transformOriginX):
74277         (WebCore::RenderStyle::transformOriginY):
74278         (WebCore::RenderStyle::setTransformOriginX):
74279         (WebCore::RenderStyle::setTransformOriginY):
74280         (WebCore::RenderStyle::initialTransformOriginX):
74281         (WebCore::RenderStyle::initialTransformOriginY):
74283 2007-10-16  Adele Peterson  <adele@apple.com>
74285         Reviewed by Alice.
74287         Fix for <rdar://problem/5538793> REGRESSION: Failing layout test: fast/forms/select-change-listbox-to-popup.html (due to landing feature branch)
74289         * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::parseMappedAttribute):  When switching between types of select elements, call setRecalcListItems
74290           since recalcListItems updates the default selection in different ways for the different controls. 
74292 2007-10-16  Alice Liu  <alice.liu@apple.com>
74294         rubber-stamped by Darin.
74296         flipping my previous fix around so that mac is special-cased instead of win.
74298         * dom/Document.cpp:
74299         (WebCore::Document::defaultEventHandler):
74301 2007-10-16  David Hyatt  <hyatt@apple.com>
74303         Clean up transform parsing.  Fix a crash, ditch the extra parse context class, and use RefPtr/PassRefPtr more
74304         to simplify the code.
74306         Reviewed by aroben
74308         * css/CSSParser.cpp:
74309         (WebCore::CSSParser::parseValue):
74310         (WebCore::CSSParser::parseTransform):
74311         * css/CSSParser.h:
74313 2007-10-16  Alice Liu  <alice.liu@apple.com>
74315         Reviewed by Adele.
74317         fixed <rdar://5085596> Accesskeys don't work
74318         
74319         * dom/Document.cpp:
74320         (WebCore::Document::defaultEventHandler):
74321         accesskey modifier is platform-depedent.
74323 2007-10-15  Mark Rowe  <mrowe@apple.com>
74325         Reviewed by John.
74327         <rdar://problem/5494040> Reproducible assertion failure in WebCore::IconDatabase::iconForPageURL
74329         A race condition between icon database import and Safari asking for an icon for the empty URL
74330         was resulting in a PageURLRecord being created for a URL that can never be retained.  By enforcing
74331         that PageURLRecord's cannot be created for the empty URL we can prevent the assertion from failing.
74333         * loader/icon/IconDatabase.cpp:
74334         (WebCore::IconDatabase::iconForPageURL):
74335         (WebCore::IconDatabase::getOrCreatePageURLRecord): Bail out early if the URL is empty.
74336         (WebCore::IconDatabase::performURLImport): Don't create the PageURLRecord if the URL is empty.
74338 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
74340         Reviewed by Ollie.
74342         Use OwnPtr for m_deliveryData, and fix a bug where we were memmove()ing
74343         over m_deliveryData instead of its data buffer
74345         * plugins/win/PluginStreamWin.cpp:
74346         (WebCore::PluginStreamWin::~PluginStreamWin): Don't delete
74347         m_deliveryData
74348         (WebCore::PluginStreamWin::deliverData): Fix memmove() call
74349         (WebCore::PluginStreamWin::didReceiveData): Assign using OwnPtr::set()
74350         * plugins/win/PluginStreamWin.h: Use OwnPtr
74352 2007-10-15  Steve Falkenburg  <sfalken@apple.com>
74354         Reviewed by Oliver.
74356         Add missing null check.
74358         * platform/network/cf/AuthenticationCF.cpp:
74359         (WebCore::core):
74361 2007-10-15  Mark Rowe  <mrowe@apple.com>
74363         Fix the no-SVG build again.  Add new transform CSS properties to the switch statements.
74365         * css/CSSComputedStyleDeclaration.cpp:
74366         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
74367         * css/CSSStyleSelector.cpp:
74368         (WebCore::CSSStyleSelector::applyProperty):
74370 2007-10-15  Darin Adler  <darin@apple.com>
74372         Reviewed by Mitz.
74374         - http://bugs.webkit.org/show_bug.cgi?id=15518
74375           Remove the unused attemptFontSubstitution feature and do some
74376           cleanup of glyphDataForCharacter.
74378         * platform/Font.h:
74379         * platform/Font.cpp:
74380         (WebCore::WidthIterator::advance): Eliminated uneeded attemptFontSubstitution
74381         and cluster parameters to the glyphDataForCharacter function.
74382         (WebCore::Font::glyphDataForCharacter): Removed the cluster parameter and
74383         attemptFontSubstitution parameter. Removed the isUpper check before calling
74384         toUpper in the small caps code path. Split up the inner loop into separate
74385         copies for non-small-caps and small caps. Broke out the system fallback
74386         page handling so it's not inside the loop. Changed system fallback so it uses
74387         the character and breaks it up into UTF-16 as needed, instead of using a
74388         passed-in "character cluster".
74390         * platform/TextStyle.h:
74391         (WebCore::TextStyle::TextStyle): Removed attemptFontSubstitution.
74392         (WebCore::TextStyle::applyWordRounding): Ditto.
74394 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
74396         Reviewed by Ollie.
74398         Remove an operator precedence warning on Windows
74400         * editing/markup.cpp:
74401         (WebCore::escapeContentText): Use (a) | (b)
74402         (WebCore::appendEscapedContent): Use (a) | (b)
74404 2007-10-15  Kevin McCullough  <kmccullough@apple.com>
74406         Reviewed by Darin.
74408         - <rdar://problem/5238818> window.resizeTo doesn't restrict the resized window to the size of the screen
74409         - Now we take the doc into account when resizing.
74410         - Also I found an issue where we would resize to outside the window, because
74411           the resize would be smaller than the window size but the location of the
74412           window would make the resize go off-screen. Now we move the window back into the screen.
74414         * bindings/js/kjs_window.cpp:
74415         (KJS::adjustWindowRect):
74416         (KJS::WindowFunc::callAsFunction):
74418 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
74420         Reviewed by Anders.
74422         <rdar://5510700> Repro crash loading embedded Windows Media Player
74423         content
74425         Anders noticed that the older Windows Media Player plugin (npdsplay.dll)
74426         will crash if it receives its resource requests out of order, whereas we
74427         were immediately fulfilling untargeted, non-JavaScript requests and
74428         scheduling targeted or JavaScript resource requests. Implement his
74429         suggested fix, which is to schedule PluginRequests for all resource
74430         requests 
74432         * plugins/win/PluginViewWin.cpp:
74433         (WebCore::getString):
74434         (WebCore::PluginViewWin::performRequest): If this non-JavaScript request
74435         has no target, create a stream for it
74436         (WebCore::PluginViewWin::load): Schedule PluginRequests for all resource
74437         requests
74439 2007-10-15  Mark Rowe  <mrowe@apple.com>
74441         Gtk and Qt build fix.  Add new .cpp file to project.
74443         * WebCore.pro:
74445 2007-10-15  John Sullivan  <sullivan@apple.com>
74447         * platform/mac/FontDataMac.mm:
74448         D'oh! Added missing #import to fix build
74450 2007-10-15  John Sullivan  <sullivan@apple.com>
74452         Reviewed by Geoff
74454         * platform/mac/FontDataMac.mm:
74455         (WebCore::FontData::smallCapsFontData):
74456         replace NS_DURING/NS_HANDLER with WebCore-style BEGIN/END_BLOCK_OBJC_EXCEPTIONS
74458 2007-10-15  David Hyatt  <hyatt@apple.com>
74460         The CSS WG has been discussing the concept of rotation.  In the latest draft specification, two properties
74461         have been introduced: rotation and rotation-point.  I believe these properties should be generalized to
74462         allow for arbitrary transformations (e.g., translation, skew, rotate, scale).
74464         This patch adds support for the back-end parsing of two new CSS properties: transform and transform-origin.
74465         They are directly analogous to the properties specified by the CSS WG, except that they are designed to allow
74466         for arbitrary affine transforms rather than just rotation.
74468         Reviewed by Beth Dakin
74470         * WebCore.xcodeproj/project.pbxproj:
74471         * WebCore.vcproj/WebCore.vcproj:
74472         * css/CSSComputedStyleDeclaration.cpp:
74473         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
74474         * css/CSSParser.cpp:
74475         (WebCore::CSSParser::parseValue):
74476         (WebCore::TransformParseContext:::m_list):
74477         (WebCore::TransformParseContext::list):
74478         (WebCore::TransformParseContext::failed):
74479         (WebCore::TransformParseContext::addValue):
74480         (WebCore::TransformOperationInfo::TransformOperationInfo):
74481         (WebCore::TransformOperationInfo::type):
74482         (WebCore::TransformOperationInfo::argCount):
74483         (WebCore::TransformOperationInfo::unit):
74484         (WebCore::TransformOperationInfo::unknown):
74485         (WebCore::TransformOperationInfo::hasCorrectArgCount):
74486         (WebCore::CSSParser::parseTransform):
74487         (WebCore::CSSParser::parseTransformOrigin):
74488         * css/CSSParser.h:
74489         * css/CSSPropertyNames.in:
74490         * css/CSSTransformValue.cpp: Added.
74491         (WebCore::CSSTransformValue::CSSTransformValue):
74492         (WebCore::CSSTransformValue::~CSSTransformValue):
74493         (WebCore::CSSTransformValue::addValue):
74494         (WebCore::CSSTransformValue::cssText):
74495         * css/CSSTransformValue.h: Added.
74496         (WebCore::CSSTransformValue::):
74498 2007-10-15  Mark Rowe  <mrowe@apple.com>
74500         Reviewed by Oliver.
74502         Fix the no-SVG build.
74504         * DerivedSources.make: Use the correct file as input to generate CSSPropertyNames.h.
74505         * rendering/RenderObject.cpp:
74506         (WebCore::objectIsRelayoutBoundary):
74508 2007-10-15  Darin Adler  <darin@apple.com>
74510         Reviewed by Sam.
74512         - fix http://bugs.webkit.org/show_bug.cgi?id=15520
74513           alert(undefined) should say "undefined" in the alert
74515         Test: fast/dom/Window/alert-undefined.html
74517         * page/DOMWindow.idl: Remove ConvertUndefinedOrNullToNullString from alert, confirm, and prompt.
74518         It turns out that the default behavior is what the other browsers do (browsers tested: IE 7,
74519         Firefox 2).
74521 2007-10-15  Adele Peterson  <adele@apple.com>
74523         Reviewed by Darin.
74525         Fix for http://bugs.webkit.org/show_bug.cgi?id=15252
74526         <rdar://problem/5498184> REGRESSION: <select multiple> doesn't scroll to top when old options are removed and new ones are added, leaving listbox empty-looking
74528         * rendering/RenderListBox.cpp: (WebCore::RenderListBox::calcHeight): If the scrollbar is disabled, make sure the scroll offset gets reset to 0.  In general,
74529           we don't want to unnecessarily adjust the scroll offset, but in this case, there won't be an obvious way for the user to adjust the scroller position once it's disabled.
74531 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
74533         Reviewed by Maciej.
74535         Return a more appropriate error from NPN_RequestRange, which is
74536         currently unimplemented
74538         * plugins/win/npapi.cpp: return NPERR_STREAM_NOT_SEEKABLE 
74539         (NPN_RequestRead):
74541 2007-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
74543         Reviewed by Maciej.
74545         Add a missing function pointer to the m_browserFuncs structure
74547         * plugins/win/PluginPackageWin.cpp:
74548         (WebCore::PluginPackageWin::load):
74550 2007-10-15  Simon Hausmann  <hausmann@kde.org>
74552         Reviewed by Lars.
74554         Fix the compilation of the Font code in the Qt port by adding the necessary stubs to support downloadable fonts through the @font-face rules.
74556         * WebCore.pro:
74557         * loader/CachedFont.cpp:
74558         * platform/qt/FontCacheQt.cpp: Removed.
74559         * platform/qt/FontCustomPlatformData.cpp: Removed.
74560         * platform/qt/FontCustomPlatformData.h: Removed.
74561         * platform/qt/FontDataQt.cpp: Removed.
74562         * platform/qt/FontPlatformData.h: Removed.
74563         * platform/qt/FontQt.cpp:
74564         * platform/qt/GlyphPageTreeNodeQt.cpp: Removed.
74566 2007-10-15  Simon Hausmann  <hausmann@kde.org>
74568         Reviewed by Lars.
74570         Adapt to the latest API changes in the SVG API/Code.
74572         * platform/graphics/svg/qt/RenderPathQt.cpp:
74573         (WebCore::RenderPath::strokeContains):
74574         (WebCore::getPathStroke):
74575         * platform/graphics/svg/qt/SVGPaintServerQt.cpp:
74576         (WebCore::SVGPaintServer::setPenProperties):
74577         * platform/graphics/svg/qt/SVGResourceMaskerQt.cpp:
74579 2007-10-14  Nikolas Zimmermann  <zimmermann@kde.org>
74581         Reviewed by Eric.
74583         Fix bad abstraction in ImageBuffer class.
74584         While the class itself is platform-aware and thus it's location in platform/graphics
74585         is fine, it contains the "renderSubtreeToImage" method which operates on RenderObject.
74587         As it's SVG specific I decided to move this method into SVGRenderSupport, to avoid
74588         implicit platform/ <-> rendering/ dependencies.
74590         * WebCore.pro:
74591         * WebCore.vcproj/WebCore.vcproj:
74592         * WebCore.xcodeproj/project.pbxproj:
74593         * ksvg2/svg/SVGMaskElement.cpp:
74594         (WebCore::SVGMaskElement::drawMaskerContent):
74595         * ksvg2/svg/SVGPatternElement.cpp:
74596         (WebCore::SVGPatternElement::buildPattern):
74597         * platform/graphics/ImageBuffer.cpp: Removed.
74598         * platform/graphics/ImageBuffer.h:
74599         (WebCore::ImageBuffer::size):
74600         * platform/graphics/svg/SVGImage.cpp:
74601         (WebCore::SVGImage::nativeImageForCurrentFrame):
74602         * rendering/SVGRenderSupport.cpp:
74603         (WebCore::renderSubtreeToImage):
74604         * rendering/SVGRenderSupport.h:
74606 2007-10-14  Peter Kasting  <zerodpx@gmail.com>
74608         Reviewed by Maciej.
74610         http://bugs.webkit.org/show_bug.cgi?id=15210
74611         Draw the image outline even for broken images.
74613         * rendering/RenderImage.cpp:
74614         (WebCore::RenderImage::paint):
74616 2007-10-14  Kevin Ollivier  <kevino@theolliviers.com>
74618         Reviewed by Adam.
74620         Add support for MSVC7, and fix cases where PLATFORM(WIN) should
74621         be PLATFORM(WIN_OS) for other ports building on Windows.
74623         * dom/XMLTokenizer.cpp:
74624         * page/FrameTree.cpp:
74625         * platform/StaticConstructors.h:
74626         * platform/String.cpp:
74628 2007-10-14  Maxime Britto  <mbritto@pleyo.com>
74630         Reviewed by Mitz.
74632         Fix an error in the goBackOrForward() function : confusion between forwardListCount and backListCount.
74633         http://bugs.webkit.org/show_bug.cgi?id=15212
74635         * loader/FrameLoader.cpp:
74636         (WebCore::FrameLoader::goBackOrForward):
74638 2007-10-14  Mitz Pettel  <mitz@webkit.org>
74640         Reviewed by Darin.
74642         - fix http://bugs.webkit.org/show_bug.cgi?id=15181
74643           text-transform: uppercase not working in input (submit, reset, button) elements
74644           <rdar://problem/5474647>
74646         Test: fast/forms/button-text-transform.html
74648         Text transformations require access to the original text. The button's inner
74649         text was an anonymous RenderText, meaning it did not have a node to retrieve
74650         the original text from. The patch fixes this by changing the inner text into a
74651         RenderTextFragment, which stores its own original text.
74653         * rendering/RenderButton.cpp:
74654         (WebCore::RenderButton::setText):
74655         * rendering/RenderButton.h:
74657 2007-10-14  Eric Seidel  <eric@webkit.org>
74659         Reviewed by Maciej.
74661         REGRESSION: Javascript bug in getElementsByName
74662         http://bugs.webkit.org/show_bug.cgi?id=15274
74664         Test: fast/dom/getelementbyname-invalidation.html
74666         * dom/NameNodeList.h: remove empty rootNodeChildrenChanged override
74668 2007-10-14  Mitz Pettel  <mitz@webkit.org>
74670         Reviewed by Maciej.
74672         - http://bugs.webkit.org/show_bug.cgi?id=15303
74673           Remove now-redundant code to restore dialog arguments after clear
74675         This patch reverts the kjs_window.* parts of r25576 because following
74676         r25783, window properties, including dialog arguments, are not cleared
74677         when the newly created modal dialog transitions to the document.
74679         * bindings/js/kjs_window.cpp:
74680         (KJS::WindowPrivate::WindowPrivate):
74681         (KJS::createWindow):
74682         (KJS::showModalDialog):
74683         (KJS::Window::clear):
74684         (KJS::WindowFunc::callAsFunction):
74685         (KJS::Window::setReturnValueSlot):
74686         * bindings/js/kjs_window.h:
74688 2007-10-14  Mitz Pettel  <mitz@webkit.org>
74690         Reviewed by Dave Hyatt.
74692         - fix http://bugs.webkit.org/show_bug.cgi?id=15309
74693           <rdar://problem/5512020> Crash due to infinite recursion in RenderTable::addChild
74695         Test: fast/table/generated-caption.html
74697         * rendering/RenderTable.cpp:
74698         (WebCore::RenderTable::addChild): Changed to make sure that the child is
74699         not added into generated after content. Also made adding a child before
74700         a table caption work correctly instead of adding the child after the caption.
74702 2007-10-14  Peter Kasting  <zerodpx@gmail.com>
74704         Reviewed by Maciej.
74706         http://bugs.webkit.org/show_bug.cgi?id=15141
74707         Feed GIF reader data from the point in the stream it expects.  Also,
74708         mirror the reader's failure state up to the wrapping decoder.
74710         * platform/image-decoders/gif/GIFImageReader.cpp:
74711         (GIFImageReader::read):
74713 2007-10-14  Peter Kasting  <zerodpx@gmail.com>
74715         Reviewed by Maciej.
74717         http://bugs.webkit.org/show_bug.cgi?id=15142
74718         Return correct frame count in GIFImageDecoder::frameBufferAtIndex(),
74719         even if more data has arrived since the last decoding pass.
74721         * platform/image-decoders/gif/GIFImageDecoder.cpp:
74722         (WebCore::GIFImageDecoder::frameBufferAtIndex):
74724 == Rolled over to ChangeLog-2007-10-14 ==