2010-11-18 Sheriff Bot <webkit.review.bot@gmail.com>
[WebKit-https.git] / WebCore / ChangeLog
1 2010-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>
2
3         Unreviewed, rolling out r72292.
4         http://trac.webkit.org/changeset/72292
5         https://bugs.webkit.org/show_bug.cgi?id=49732
6
7         will break win build (Requested by loislo on #webkit).
8
9         * inspector/CodeGeneratorInspector.pm:
10
11 2010-11-18  Ilya Tikhonovsky  <loislo@chromium.org>
12
13         Reviewed by Yury Semikhatsky.
14
15         Web Inspector: reduce the footprint of InspectorBackendDispatcher.
16         InspectorBackendDispatcher is a generated file.
17         Its content is not optimal and loc may be reduced by a quarter.
18         In each generated function we have a code for getting 'in' values from
19         the arguments properties object. I've extracted this code into separate getters.
20         The side effect is better readability of the generated code.
21
22         https://bugs.webkit.org/show_bug.cgi?id=49729
23
24         * inspector/CodeGeneratorInspector.pm:
25
26 2010-11-18  Alexander Pavlov  <apavlov@chromium.org>
27
28         Reviewed by Pavel Feldman.
29
30         [v8] fast/css/getFloatValueForUnit.html fails since http://trac.webkit.org/changeset/72189
31         https://bugs.webkit.org/show_bug.cgi?id=49656
32
33         Explicitly specify indexerType for the generation of V8WebKitCSSTransformValue binding.
34
35         * bindings/scripts/CodeGeneratorV8.pm:
36
37 2010-11-18  Nikolas Zimmermann  <nzimmermann@rim.com>
38
39         Reviewed by Dirk Schulze.
40
41         Convert SVGPathSeg/SVGPathSegList to the new SVGPropertyTearOff concept
42         https://bugs.webkit.org/show_bug.cgi?id=49580
43
44         SVGPathElement.cloneNode loses generated pathSegList
45         https://bugs.webkit.org/show_bug.cgi?id=43388
46
47         SVG Path elements are not correctly updated through pathSegList manipulation on relative values
48         https://bugs.webkit.org/show_bug.cgi?id=30219
49
50         Changing an SVGPathSeg does not update a following Smooth Cubic Curveto
51         https://bugs.webkit.org/show_bug.cgi?id=19741
52
53         SVGPathElement should only build SVGPathSeg* list on demand
54         https://bugs.webkit.org/show_bug.cgi?id=10827
55
56         Tests: svg/W3C-SVG-1.1-SE/paths-dom-02-f.svg
57                svg/dom/SVGPathSegList-appendItem.xhtml
58                svg/dom/SVGPathSegList-clear-and-initialize.xhtml
59                svg/dom/SVGPathSegList-cloning.html
60                svg/dom/SVGPathSegList-insertItemBefore.xhtml
61                svg/dom/SVGPathSegList-removeItem.xhtml
62                svg/dom/SVGPathSegList-replaceItem.xhtml
63                svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml
64                svg/dom/SVGPathSegList-xml-dom-synchronization2.xhtml
65                svg/dom/SVGPathSegList-segment-modification.svg
66
67         Convert SVGPathSeg*/SVGPathSegList to the new SVG(Animated)PropertyTearOff concept.
68         Unlike all other SVG* types that use the SVGPropertyTearOff concept, SVGPathSegs are already refcounted,
69         and don't need to be wrapped in SVGPropertyTearOff objects. The consequence is that SVGPathSegs need to track
70         themselves to which list and path element they belong. Introduce new SVGAnimatedPathSegListPropertyTearOff
71         and SVGPathSegListPropertyTearOff classes, that encapsulate the special needed for SVGPathSegList.
72
73         Each SVGPathSeg now needs to store a RefPtr<SVGPathElement> - this makes it impossible to use SVGPathSegList
74         to represent the 'd' attribute internally in SVGPathElement. SVGPathSegList is now only used in the SVG DOM bindings
75         if someone explicitely requests 'pathElement.pathSegList' (eg. via JS). Switch to use SVGPathByteStream to store
76         the 'd' attribute data in SVGPathElement, which is much more compact, and less memory intensive.
77         Dirk already prepared SVGPathParserFactory some months ago, which allows easy conversion between
78         String/Path/SVGPathSegList/SVGPathByteStream in all directions, including normalizing the lists, when requested.
79
80         As consequence SVGPathSegList is now only built on demand, when explicitely requested. Using the SVGAnimatedProperty
81         concept gives us 'd' attribute <-> SVGPathSegList synchronization for free, fixing several bugs, listed above.
82
83         * Android.mk: Remove obsolete SVGPathSeg*.cpp files and SVGAnimatedPathData.cpp from build.
84         * CMakeLists.txt: Ditto.
85         * DerivedSources.make: Remove SVGAnimatedPathData IDL generation.
86         * GNUmakefile.am: Remove obsolete SVGPathSeg*.cpp files and SVGAnimatedPathData.cpp from build.
87         * WebCore.gyp/WebCore.gyp: Remove SVGAnimatedPathData IDL generation.
88         * WebCore.gypi: Remove obsolete SVGPathSeg*.cpp files and SVGAnimatedPathData.cpp from build.
89         * WebCore.order: Remove no-longer existant SVGAnimatedPathData symbols.
90         * WebCore.pro:  Remove obsolete SVGPathSeg*.cpp files and SVGAnimatedPathData.cpp / JSSVGPathSegCustom.* from build.
91         * WebCore.vcproj/WebCore.vcproj: Ditto.
92         * WebCore.xcodeproj/project.pbxproj: Ditto.
93         * bindings/js/JSBindingsAllInOne.cpp: Remove JSSVGPathSegCustom.cpp from build.
94         * bindings/js/JSDOMBinding.cpp: Adapt to toJS() changes, remove context parameter.
95         (WebCore::setDOMException):
96         * bindings/js/JSDOMBinding.h: Remove obsolete CREATE_SVG_OBJECT_WRAPPER macro, the context parameter is not existant anymore.
97         * bindings/js/JSSVGPathSegCustom.cpp: Replace CREATE_SVG_OBJECT_WRAPPER by CREATE_DOM_OBJECT_WRAPPER. Remove context parameter/handling.
98         (WebCore::toJS):
99         * bindings/js/JSSVGPathSegListCustom.cpp: Removed.
100         * bindings/scripts/CodeGenerator.pm: Map 'SVGPathSegList' IDL type to SVG 'SVGPathSegListPropertyTearOff' native type.
101         * bindings/scripts/CodeGeneratorJS.pm: Remove IsSVGTypeNeedingContextParameter() methods and usages. Handle SVGPathSegListPropertyTearOff.
102         * bindings/scripts/CodeGeneratorObjC.pm: Handle SVGPathSegListPropertyTearOff.
103         * bindings/scripts/CodeGeneratorV8.pm: Remove IsSVGTypeNeedingContextParameter() methods and usages.
104         * rendering/SVGRenderTreeAsText.cpp: Build path string from byte stream, not path segment list.
105         (WebCore::operator<<):
106         * svg/SVGAllInOne.cpp: Remove obsolete cpp files.
107         * svg/SVGAnimatedPathData.cpp: Removed.
108         * svg/SVGAnimatedPathData.h: Removed.
109         * svg/SVGAnimatedPathData.idl: Removed.
110         * svg/SVGPathElement.cpp: Build SVGPathList on demand. Use SVGPathByteStream to parse/store the 'd' attribute content.
111         (WebCore::SVGPathElement::SVGPathElement):
112         (WebCore::SVGPathElement::getPathSegAtLength): Use SVGPathByteStream, not SVGPathSegList to determine the getPathSegAtLength() information.
113         (WebCore::SVGPathElement::createSVGPathSegClosePath): Pass SVGPathElement to SVGPathSeg and a SVGPathSegRole parameter and store it to track the list origin.
114         (WebCore::SVGPathElement::createSVGPathSegMovetoAbs): Ditto.
115         (WebCore::SVGPathElement::createSVGPathSegMovetoRel): Ditto.
116         (WebCore::SVGPathElement::createSVGPathSegLinetoAbs): Ditto.
117         (WebCore::SVGPathElement::createSVGPathSegLinetoRel): Ditto.
118         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs): Ditto.
119         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel): Ditto.
120         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs): Ditto.
121         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel): Ditto.
122         (WebCore::SVGPathElement::createSVGPathSegArcAbs): Ditto.
123         (WebCore::SVGPathElement::createSVGPathSegArcRel): Ditto.
124         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs): Ditto.
125         (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel): Ditto.
126         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs): Ditto.
127         (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel): Ditto.
128         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs): Ditto.
129         (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel): Ditto.
130         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs): Ditto.
131         (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel): Ditto.
132         (WebCore::SVGPathElement::parseMappedAttribute): Build SVGPathByteStream from 'd' attribute, not a SVGPathSegList.
133         (WebCore::SVGPathElement::svgAttributeChanged): If a SVGPathSegList object has been built, synchronize it with the 'd' attribute.
134         (WebCore::SVGPathElement::synchronizeProperty): Synchronize 'd' attribute with the SVGPathSegList, if needed.
135         (WebCore::SVGPathElement::synchronizeD): Added.
136         (WebCore::SVGPathElement::pathSegList): Use same trick as in SVGPolyElement to expose the 'pathSegList' / 'animatedPathSegList' object to the SVG DOM bindings.
137         (WebCore::SVGPathElement::normalizedPathSegList): Ditto.
138         (WebCore::SVGPathElement::animatedPathSegList): Ditto.
139         (WebCore::SVGPathElement::animatedNormalizedPathSegList): Ditto.
140         (WebCore::SVGPathElement::toPathData): Build 'Path' object from SVGPathByteStream, not from SVGPathSegList.
141         (WebCore::SVGPathElement::pathSegListChanged): Used to synchronize the SVGPathSegLists and the d attribute, as well as any changes from any SVGPathSeg associated with this SVGPathElement.
142         * svg/SVGPathElement.h: Add new accessors...
143         (WebCore::SVGPathElement::pathByteStream): ... needed by SVGRenderTreeAsText.
144         (WebCore::SVGPathElement::animatablePathSegList): ... needed by SVGPathSegListPropertyTearOff.
145         * svg/SVGPathElement.idl: Merge SVGAnimatedPathData interface into SVGPathElement.
146         * svg/SVGPathParserFactory.cpp: Cleanup SVGPathParserFactory, remove obsolete methods, now that SVGPathElement switched to using SVGPathByteStream internally.
147         (WebCore::globalSVGPathSegListBuilder):
148         (WebCore::SVGPathParserFactory::buildSVGPathByteStreamFromSVGPathSegList):
149         (WebCore::SVGPathParserFactory::buildPathFromByteStream):
150         (WebCore::SVGPathParserFactory::buildSVGPathSegListFromByteStream):
151         (WebCore::SVGPathParserFactory::buildStringFromSVGPathSegList):
152         (WebCore::SVGPathParserFactory::buildSVGPathByteStreamFromString):
153         (WebCore::SVGPathParserFactory::buildAnimatedSVGPathByteStream):
154         (WebCore::SVGPathParserFactory::getSVGPathSegAtLengthFromSVGPathByteStream):
155         * svg/SVGPathParserFactory.h:
156         * svg/SVGPathSeg.cpp: Removed.
157         * svg/SVGPathSeg.h: Add new SVGPathSegRole enum, identifying to which list a path segment belongs.
158         (WebCore::SVGPathSeg::SVGPathSeg):
159         * svg/SVGPathSeg.idl: Reindented.
160         * svg/SVGPathSegArc.cpp: Removed.
161         * svg/SVGPathSegArc.h: All setters now call the commitChange() method.
162         * svg/SVGPathSegArcAbs.idl: Enable StrictTypeChecking.
163         * svg/SVGPathSegArcRel.idl: Ditto.
164         * svg/SVGPathSegClosePath.cpp: Removed.
165         * svg/SVGPathSegClosePath.h:
166         * svg/SVGPathSegCurvetoCubic.cpp: Removed.
167         * svg/SVGPathSegCurvetoCubic.h: All setters now call the commitChange() method.
168         * svg/SVGPathSegCurvetoCubicAbs.idl: Enable StrictTypeChecking.
169         * svg/SVGPathSegCurvetoCubicRel.idl: Ditto.
170         * svg/SVGPathSegCurvetoCubicSmooth.cpp: Removed.
171         * svg/SVGPathSegCurvetoCubicSmooth.h: All setters now call the commitChange() method.
172         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl: Enable StrictTypeChecking.
173         * svg/SVGPathSegCurvetoCubicSmoothRel.idl: Ditto.
174         * svg/SVGPathSegCurvetoQuadratic.cpp: Removed.
175         * svg/SVGPathSegCurvetoQuadratic.h: All setters now call the commitChange() method.
176         * svg/SVGPathSegCurvetoQuadraticAbs.idl: Enable StrictTypeChecking.
177         * svg/SVGPathSegCurvetoQuadraticRel.idl: Ditto.
178         * svg/SVGPathSegCurvetoQuadraticSmooth.cpp: Removed.
179         * svg/SVGPathSegCurvetoQuadraticSmooth.h: All setters now call the commitChange() method.
180         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl: Enable StrictTypeChecking.
181         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl: Ditto.
182         * svg/SVGPathSegLineto.cpp: Removed.
183         * svg/SVGPathSegLineto.h: All setters now call the commitChange() method.
184         * svg/SVGPathSegLinetoAbs.idl: Enable StrictTypeChecking.
185         * svg/SVGPathSegLinetoHorizontal.cpp: Removed.
186         * svg/SVGPathSegLinetoHorizontal.h: All setters now call the commitChange() method.
187         * svg/SVGPathSegLinetoHorizontalAbs.idl: Enable StrictTypeChecking.
188         * svg/SVGPathSegLinetoHorizontalRel.idl: Ditto.
189         * svg/SVGPathSegLinetoRel.idl: Enable StrictTypeChecking.
190         * svg/SVGPathSegLinetoVertical.cpp: Removed.
191         * svg/SVGPathSegLinetoVertical.h: All setters now call the commitChange() method.
192         * svg/SVGPathSegLinetoVerticalAbs.idl: Enable StrictTypeChecking.
193         * svg/SVGPathSegLinetoVerticalRel.idl: Ditto.
194         * svg/SVGPathSegList.cpp: Switch from SVGList<RefPtr<SVGPathSeg> > to a plain Vector<RefPtr<SVGPathSeg> >.
195         (WebCore::SVGPathSegList::valueAsString): Utilize SVGPathParserFactory to build a String from a SVGPathSegList.
196         (WebCore::SVGPathSegList::commitChange): Call SVGPathElement::pathSegListChanged().
197         * svg/SVGPathSegList.h:
198         (WebCore::SVGPathSegList::SVGPathSegList):
199         * svg/SVGPathSegList.idl: Remove [JSCCustom] flags, no longer needed. 
200         * svg/SVGPathSegListBuilder.cpp: Adapt to SVGPathSegList API changes.
201         (WebCore::SVGPathSegListBuilder::SVGPathSegListBuilder):
202         (WebCore::SVGPathSegListBuilder::moveTo):
203         (WebCore::SVGPathSegListBuilder::lineTo):
204         (WebCore::SVGPathSegListBuilder::lineToHorizontal):
205         (WebCore::SVGPathSegListBuilder::lineToVertical):
206         (WebCore::SVGPathSegListBuilder::curveToCubic):
207         (WebCore::SVGPathSegListBuilder::curveToCubicSmooth):
208         (WebCore::SVGPathSegListBuilder::curveToQuadratic):
209         (WebCore::SVGPathSegListBuilder::curveToQuadraticSmooth):
210         (WebCore::SVGPathSegListBuilder::arcTo):
211         (WebCore::SVGPathSegListBuilder::closePath):
212         * svg/SVGPathSegListBuilder.h: Ditto.
213         (WebCore::SVGPathSegListBuilder::setCurrentSVGPathElement):
214         (WebCore::SVGPathSegListBuilder::setCurrentSVGPathSegList):
215         (WebCore::SVGPathSegListBuilder::setCurrentSVGPathSegRole):
216         (WebCore::SVGPathSegListBuilder::cleanup):
217         * svg/SVGPathSegListSource.cpp: Ditto.
218         (WebCore::SVGPathSegListSource::SVGPathSegListSource):
219         (WebCore::SVGPathSegListSource::parseSVGSegmentType):
220         (WebCore::SVGPathSegListSource::nextCommand):
221         (WebCore::SVGPathSegListSource::parseMoveToSegment):
222         (WebCore::SVGPathSegListSource::parseLineToSegment):
223         (WebCore::SVGPathSegListSource::parseCurveToQuadraticSmoothSegment):
224         * svg/SVGPathSegListSource.h: Ditto.
225         (WebCore::SVGPathSegListSource::create):
226         * svg/SVGPathSegMoveto.cpp: Removed.
227         * svg/SVGPathSegMoveto.h: All setters now call the commitChange() method.
228         * svg/SVGPathSegMovetoAbs.idl: Enable StrictTypeChecking.
229         * svg/SVGPathSegMovetoRel.idl: Ditto.
230         * svg/SVGPathSegWithContext.h: Added. This is the new base class for all SVGPathSeg derived types, that's associated with a SVGPathElement and a 'role' (normalized/unaltered segment list).
231         (WebCore::SVGPathSegWithContext::SVGPathSegWithContext):
232         (WebCore::SVGPathSegWithContext::animatedProperty):
233         (WebCore::SVGPathSegWithContext::setContextAndRole):
234         (WebCore::SVGPathSegWithContext::commitChange):
235         (WebCore::SVGPathSegSingleCoordinate::x):
236         (WebCore::SVGPathSegSingleCoordinate::setX):
237         (WebCore::SVGPathSegSingleCoordinate::y):
238         (WebCore::SVGPathSegSingleCoordinate::setY):
239         (WebCore::SVGPathSegSingleCoordinate::SVGPathSegSingleCoordinate):
240         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h: Added. 
241         (WebCore::SVGAnimatedPathSegListPropertyTearOff::baseVal):
242         (WebCore::SVGAnimatedPathSegListPropertyTearOff::animVal):
243         (WebCore::SVGAnimatedPathSegListPropertyTearOff::removeItemFromList):
244         (WebCore::SVGAnimatedPathSegListPropertyTearOff::create):
245         (WebCore::SVGAnimatedPathSegListPropertyTearOff::SVGAnimatedPathSegListPropertyTearOff):
246         * svg/properties/SVGPathSegListPropertyTearOff.cpp: Added.
247         (WebCore::SVGPathSegListPropertyTearOff::clear): Added in the cpp file, not in the header, as it needs access to SVGPathSegWithContext, which we can't include from the header.
248         (WebCore::SVGPathSegListPropertyTearOff::getItem): Ditto.
249         (WebCore::SVGPathSegListPropertyTearOff::removeItem): Ditto.
250         (WebCore::SVGPathSegListPropertyTearOff::contextElement): Needs access to SVGPathElement, that's why it lives in the cpp file.
251         (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemValue): Needs access to SVGPathSegWithContext.
252         * svg/properties/SVGPathSegListPropertyTearOff.h: Added.
253         (WebCore::SVGPathSegListPropertyTearOff::create):
254         (WebCore::SVGPathSegListPropertyTearOff::removeItemFromList):
255         (WebCore::SVGPathSegListPropertyTearOff::numberOfItems):
256         (WebCore::SVGPathSegListPropertyTearOff::initialize):
257         (WebCore::SVGPathSegListPropertyTearOff::insertItemBefore):
258         (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
259         (WebCore::SVGPathSegListPropertyTearOff::appendItem):
260         (WebCore::SVGPathSegListPropertyTearOff::SVGPathSegListPropertyTearOff):
261         (WebCore::SVGPathSegListPropertyTearOff::commitChange):
262         (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemWrapper):
263
264 2010-11-18  Mario Sanchez Prada  <msanchez@igalia.com>
265
266         Reviewed by Martin Robinson.
267
268         [Gtk]  atk_text_get_selection returns the wrong offsets after a link
269         https://bugs.webkit.org/show_bug.cgi?id=49514
270
271         Consider possible embedded objects to calculate startOffset.
272
273         So far we were using offsetInContainerNode() to calculate the
274         value of startOffset when checking the offsets for the current
275         selection, which was wrong because that wouldn't work ok if any
276         embedded object was present in the paragraph before the
277         selection. Thus, we need to consider this fact when calculating
278         the startOffset from the point of view of the object this function
279         is called on, in order to return the right and actual values.
280
281         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
282         (getSelectionOffsetsForObject): Check range length from the first
283         position in the object the function is called on until the first
284         position of current selection, and use it as startOffset.
285
286 2010-11-12  Stephen White  <senorblanco@chromium.org>
287
288         Reviewed by Simon Fraser.
289
290         Fix for multiple urls in a background-image causing repeated repaints.
291         https://bugs.webkit.org/show_bug.cgi?id=42390
292
293         Change the key of RenderBoxModelObject's LastPaintSizeMap to include
294         the layer of the element being drawn, so that the same URL used
295         repeated in the same background-image, or another element's
296         background-image, can be uniquely identified.  The layer is a void
297         pointer, since it is only used as part of the key and using a
298         void pointer will discourage dereferencing it.  This pointer is NULL
299         when called from RenderImage (<img> elements).
300
301         Covered by fast/backgrounds/size/contain-and-cover.html
302
303         * rendering/RenderBoxModelObject.cpp:
304         (WebCore::ImageQualityController::keyDestroyed):
305         The old objectDestroyed() is renamed to keyDestroyed().
306         (WebCore::ImageQualityController::objectDestroyed):
307         The new objectDestroyed() iterates over all outstanding resizes
308         to remove any resizes pertaining to this object.
309         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
310         Retrieve the RenderBoxModelObject from the pair's "first" member.
311         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
312         Create a key from the {object, layer} pair, and use it to access
313         the repaint size map.
314         (WebCore::RenderBoxModelObject::shouldPaintAtLowQuality):
315         Plumb the layer through to the image quality controller.
316         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
317         Pass the bgLayer when checking 
318         * rendering/RenderBoxModelObject.h:
319         Add the void* layer parameter to shouldPaintAtLowQuality.
320         * rendering/RenderImage.cpp:
321         (WebCore::RenderImage::paintIntoRect):
322         Pass 0 (null) for the layer parameter in this case.
323
324 2010-11-18  Chris Rogers  <crogers@google.com>
325
326         Reviewed by Dimitri Glazkov.
327
328         Add loadPlatformAudioResource() and decodeAudioFileData() to ChromiumBridge
329         https://bugs.webkit.org/show_bug.cgi?id=49557
330
331         No new tests since audio API is not yet implemented.
332
333         * platform/chromium/ChromiumBridge.h:
334
335 2010-11-17  Sheriff Bot  <webkit.review.bot@gmail.com>
336
337         Unreviewed, rolling out r72228.
338         http://trac.webkit.org/changeset/72228
339         https://bugs.webkit.org/show_bug.cgi?id=49712
340
341         Caused many >10 regressions on Win and Linux gpu layout test
342         runs. (Requested by dave_levin on #webkit).
343
344         * html/canvas/WebGLFramebuffer.cpp:
345         (WebCore::WebGLFramebuffer::onAccess):
346         (WebCore::WebGLFramebuffer::initializeRenderbuffers):
347         * html/canvas/WebGLFramebuffer.h:
348         * html/canvas/WebGLRenderingContext.cpp:
349         (WebCore::WebGLRenderingContext::clear):
350         (WebCore::WebGLRenderingContext::copyTexImage2D):
351         (WebCore::WebGLRenderingContext::copyTexSubImage2D):
352         (WebCore::WebGLRenderingContext::drawArrays):
353         (WebCore::WebGLRenderingContext::drawElements):
354         (WebCore::WebGLRenderingContext::readPixels):
355         (WebCore::WebGLRenderingContext::texImage2DBase):
356
357 2010-11-17  Sheriff Bot  <webkit.review.bot@gmail.com>
358
359         Unreviewed, rolling out r72243.
360         http://trac.webkit.org/changeset/72243
361         https://bugs.webkit.org/show_bug.cgi?id=49710
362
363         Seemed to cause a large set of Chromium layout test to start
364         failing. (Requested by dave_levin on #webkit).
365
366         * bindings/v8/V8NPUtils.cpp:
367         (WebCore::convertV8ObjectToNPVariant):
368
369 2010-11-17  Adam Roben  <aroben@apple.com>
370
371         Fix Acid3 in Safari for Windows
372
373         Reviewed by Dave Hyatt.
374
375         * platform/graphics/win/SimpleFontDataWin.cpp:
376         (WebCore::SimpleFontData::initGDIFont): Initialize all our metrics to 0
377         if we have a font size of 0.
378
379 2010-11-17  Dimitri Glazkov  <dglazkov@chromium.org>
380
381         Reviewed by Darin Adler.
382
383         Converge means of querying a parent node into one way, which is Node::parentNode.
384         https://bugs.webkit.org/show_bug.cgi?id=49686
385
386         No change in behavior, so no new tests.
387
388         * accessibility/AccessibilityObject.cpp:
389         (WebCore::renderListItemContainerForNode): Changed to use parentNode.
390         * accessibility/AccessibilityRenderObject.cpp:
391         (WebCore::AccessibilityRenderObject::mouseButtonListener): Ditto.
392         (WebCore::siblingWithAriaRole): Ditto.
393         (WebCore::AccessibilityRenderObject::getDocumentLinks): Ditto.
394         (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest): Ditto.
395         * accessibility/mac/AccessibilityObjectWrapper.mm: Ditto.
396         (blockquoteLevel): Ditto.
397         * bindings/v8/V8GCController.cpp:
398         (WebCore::ObjectGrouperVisitor::visitDOMWrapper): Ditto.
399         * dom/ContainerNode.cpp: Ditto.
400         (WebCore::ContainerNode::insertBefore): Ditto.
401         (WebCore::ContainerNode::insertBeforeCommon): Ditto.
402         (WebCore::ContainerNode::replaceChild): Ditto.
403         (WebCore::ContainerNode::removeChild): Ditto.
404         (WebCore::ContainerNode::appendChild): Ditto.
405         (WebCore::ContainerNode::parserAddChild): Ditto.
406         * dom/DocumentType.cpp:
407         (WebCore::DocumentType::insertedIntoDocument): Ditto.
408         * dom/Element.cpp:
409         (WebCore::Element::computeInheritedLanguage): Ditto.
410         * dom/MouseRelatedEvent.cpp:
411         (WebCore::MouseRelatedEvent::receivedTarget): Ditto.
412         * dom/Position.cpp:
413         (WebCore::Position::isCandidate): Changed to use parentNode.
414         * dom/PositionIterator.cpp:
415         (WebCore::PositionIterator::isCandidate): Ditto.
416         * editing/AppendNodeCommand.cpp:
417         (WebCore::AppendNodeCommand::AppendNodeCommand): Ditto.
418         * editing/ApplyStyleCommand.cpp:
419         (WebCore::dummySpanAncestorForNode): Ditto.
420         (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi): Ditto.
421         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock): Ditto.
422         (WebCore::highestEmbeddingAncestor): Ditto.
423         (WebCore::ApplyStyleCommand::splitTextElementAtEnd): Ditto.
424         (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical): Ditto.
425         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical): Ditto.
426         * editing/CompositeEditCommand.cpp:
427         (WebCore::CompositeEditCommand::splitTreeToNode): Ditto.
428         * editing/DeleteSelectionCommand.cpp:
429         (WebCore::updatePositionForNodeRemoval): Ditto.
430         * editing/Editor.cpp:
431         (WebCore::Editor::textDirectionForSelection): Ditto.
432         * editing/MergeIdenticalElementsCommand.cpp:
433         (WebCore::MergeIdenticalElementsCommand::doUnapply): Ditto.
434         * editing/htmlediting.cpp:
435         (WebCore::isEmptyTableCell): Ditto.
436         * editing/markup.cpp:
437         (WebCore::StyledMarkupAccumulator::serializeNodes): Ditto.
438         * editing/visible_units.cpp:
439         (WebCore::previousLinePosition): Ditto.
440         (WebCore::nextLinePosition): Ditto.
441         * html/HTMLAreaElement.cpp:
442         (WebCore::HTMLAreaElement::imageElement): Ditto.
443         * html/HTMLElement.cpp:
444         (WebCore::HTMLElement::setOuterHTML): Ditto.
445         (WebCore::HTMLElement::insertAdjacent): Ditto.
446         (WebCore::HTMLElement::supportsFocus): Ditto.
447         * html/HTMLEmbedElement.cpp:
448         (WebCore::HTMLEmbedElement::insertedIntoDocument): Ditto.
449         (WebCore::HTMLEmbedElement::attributeChanged): Ditto.
450         * html/HTMLTableElement.cpp:
451         (WebCore::HTMLTableElement::insertRow): Ditto.
452         * html/HTMLTableRowsCollection.cpp: Ditto.
453         (WebCore::isInHead): Ditto.
454         (WebCore::isInBody): Ditto.
455         (WebCore::isInFoot): Ditto.
456         (WebCore::HTMLTableRowsCollection::rowAfter): Ditto.
457         * html/HTMLViewSourceDocument.cpp:
458         (WebCore::HTMLViewSourceDocument::addRange): Ditto.
459         * html/MediaDocument.cpp:
460         (WebCore::MediaDocument::replaceMediaElementTimerFired): Ditto.
461         * html/parser/HTMLConstructionSite.cpp:
462         (WebCore::HTMLConstructionSite::attach): Ditto.
463         (WebCore::HTMLConstructionSite::findFosterSite): Ditto.
464         * html/parser/HTMLTreeBuilder.cpp:
465         * page/FocusController.cpp:
466         (WebCore::FocusController::findFocusableNodeInDirection): Ditto.
467         * rendering/MediaControlElements.cpp:
468         (WebCore::MediaControlElement::rendererIsNeeded): Ditto.
469         (WebCore::MediaControlElement::attach): Ditto.
470         (WebCore::MediaControlElement::updateStyle): Ditto.
471         (WebCore::MediaControlInputElement::rendererIsNeeded): Ditto.
472         (WebCore::MediaControlInputElement::attach): Ditto.
473         (WebCore::MediaControlInputElement::updateStyle): Ditto.
474         * rendering/RenderSVGGradientStop.cpp:
475         (WebCore::RenderSVGGradientStop::gradientElement): Ditto.
476         * svg/SVGAElement.cpp:
477         (WebCore::SVGAElement::createRenderer): Ditto.
478         (WebCore::SVGAElement::childShouldCreateRenderer): Ditto.
479         * svg/SVGFELightElement.cpp:
480         (WebCore::SVGFELightElement::svgAttributeChanged): Ditto.
481         (WebCore::SVGFELightElement::childrenChanged): Ditto.
482         * svg/SVGFEMergeNodeElement.cpp:
483         (WebCore::SVGFEMergeNodeElement::svgAttributeChanged): Ditto.
484         * svg/SVGLength.cpp:
485         (WebCore::SVGLength::determineViewport): Ditto.
486         * svg/SVGStyledElement.cpp:
487         (WebCore::SVGStyledElement::updateRelativeLengthsInformation): Ditto.
488         * svg/SVGUseElement.cpp:
489         (WebCore::SVGUseElement::removeDisallowedElementsFromSubtree): Ditto.
490         * svg/animation/SVGSMILElement.cpp:
491         (WebCore::SVGSMILElement::insertedIntoDocument): Ditto.
492         * xml/XPathNodeSet.cpp:
493         (WebCore::XPath::NodeSet::sort): Ditto.
494         * xml/XPathStep.cpp:
495         (WebCore::XPath::Step::nodesInAxis): Ditto.
496         * xml/XSLTProcessorLibxslt.cpp:
497         (WebCore::xsltStylesheetPointer): Ditto.
498
499 2010-11-17  Kenneth Rohde Christiansen  <kenneth@webkit.org>
500
501         Reviewed by Andreas Kling.
502
503         ScrollView: Don't translate by scrollX/scrollY or clip when paintsEntireContents()
504
505         This makes paint() with paintEntireContents() do exactly what it's supposed to:
506         paint from 0,0 to contentsSize().
507
508         The clipping was a no-op anyway since visibleContentRect() will return the whole
509         rect in paintsEntireContents() mode.
510
511         * platform/ScrollView.cpp:
512         (WebCore::ScrollView::paint):
513
514 2010-11-17  Kenneth Rohde Christansen  <kenneth@webkit.org>
515
516         Reviewed by Andreas Kling.
517
518         ScrollView: Update the actualVisibleContentRect after delegating a scroll.
519
520         This lets us avoid updating the actualVisibleContentRect from the client
521         after each scroll. We had to do this synchronously for WebKit2 to support
522         programmatic "animated scrolling" from JS.
523
524         * platform/ScrollView.cpp:
525         (WebCore::ScrollView::setScrollPosition):
526
527 2010-11-17  Andreas Kling  <kling@webkit.org>
528
529         Reviewed by Kenneth Rohde Christiansen.
530
531         ScrollView: Decouple actualVisibleContentRect from visibleContentRect
532
533         Added actualVisibleContentRect() which will return the override provided
534         by setActualVisibleContentRect() or fall back to visibleContentRect()
535         if no override has been set.
536
537         This is similar to what the iPhone does.
538
539         * platform/ScrollView.cpp:
540         (WebCore::ScrollView::visibleContentRect):
541         * platform/ScrollView.h:
542         (WebCore::ScrollView::actualVisibleContentRect):
543         (WebCore::ScrollView::setActualVisibleContentRect): IntRect -> const IntRect&
544
545 2010-11-17  Tony Chang  <tony@chromium.org>
546
547         Reviewed by Adam Barth.
548
549         [chromium] fix get-int-identifier-special-values.html using TestNetscapePlugIn
550         https://bugs.webkit.org/show_bug.cgi?id=49036
551
552         No new tests: Covered by plugins/npruntime/get-int-identifier-special-values.html
553
554         In http://codereview.chromium.org/11574, the forked chromium test
555         plugin changed how it testGetIntIdentifier to work around a change
556         caused by a silverlight specific plugin fix:
557         http://codereview.chromium.org/11569/diff/1/2
558
559         It's not clear to me that this change is needed anymore since
560         silverlight has had multiple releases, testing without this patch
561         works on a test windows build, and safari win seems to run silverlight
562         without this either.  Since there's no test for this behavior, I'm
563         rolling it out so we can match the upstream test.
564
565         * bindings/v8/V8NPUtils.cpp:
566         (WebCore::convertV8ObjectToNPVariant):
567
568 2010-11-17  Andreas Kling  <kling@webkit.org>
569
570         Reviewed by Kenneth Rohde Christiansen.
571
572         ScrollView: Let visibleContentRect() return the contentsSize() if paintsEntireContents()
573
574         * platform/ScrollView.cpp:
575         (WebCore::ScrollView::visibleContentRect):
576
577 2010-11-17  James Simonsen  <simonjam@chromium.org>
578
579         Reviewed by Tony Chang.
580
581         [chromium] Fix negative letter spacing in complex text on linux
582         https://bugs.webkit.org/show_bug.cgi?id=49563
583
584         Test: fast/text/atsui-negative-spacing-features.html
585
586         * platform/graphics/chromium/FontLinux.cpp: Make spacing signed.
587
588 2010-11-17  Andreas Kling  <kling@webkit.org>
589
590         Reviewed by Kenneth Rohde Christiansen.
591
592         ScrollView: Avoid unnecessary work in setScrollPosition() when scrolling is delegated.
593
594         * platform/ScrollView.cpp:
595         (WebCore::ScrollView::setScrollPosition): If delegatesScrolling(), we never use the
596         newScrollPosition, so move that calculation below the delegation path.
597
598 2010-11-17  Dave Hyatt  <hyatt@apple.com>
599
600         Reviewed by Sam Weinig.
601
602         https://bugs.webkit.org/show_bug.cgi?id=48537
603
604         Fonts with no vertical metrics should synthesize baselines when they appear
605         on lines that do use fonts with vertical metrics.  Basically we want to make
606         sure that English text behaves like vertical-align:middle, i.e., its baseline
607         should be treated as though it cuts through the middle of the ascent+descent.
608         
609         The way this works is that each line in the line box tree is labeled as having
610         a baseline type that is either ideographic or alphabetic for the purposes of
611         vertical alignment.  A line becomes ideographic if any font with vertical tables
612         is either explicitly specified as the primary font or in any of the used fonts
613         in the text on that line.
614         
615         This baselineType is passed down to computeLogicalBoxHeights and placeBoxesInBlockDirection,
616         and passed to the ascent and descent methods of the fonts that are examined.
617         The underlying Font code selects an appropriate baseline given the type passed in.
618         
619         This patch also rewrites vertical alignment to lop 4 bytes off all RenderInlines and
620         to instead carry around the cached vertical positions for RenderInlines in a new
621         VerticalPositionCache object.  This cache only lives for a single layout
622         operation, but it does cache information across all the lines built and placed during the
623         layout.
624         
625         This matches the old behavior, since every call to layoutInlineChildren invalidated
626         all of the vertical positions in all of the RenderInlines anyway.
627         
628         The VerticalPositionCache consists of two HashMaps, and it caches vertical alignment
629         positions for both alphabetic and ideographic baseline types.
630         
631         The vertical-align computation has now been moved out of RenderBoxModelObject and
632         RenderInline and just placed right into verticalPositionForBox in InlineFlowBox.
633         This function has been changed to no longer be recursive when checking parents,
634         and it now relies on the fact that the parent vertical alignment computation result
635         has already been stored in the logicalTop() of that parent's line box.  By checking
636         the line box logicalTop() value instead of recurring, the performance of first lines
637         now significantly improves to no longer have O(n^2) behavior in the depth of the line
638         box tree on the first line.
639         
640         All of the baselinePosition functions on the various RenderObjects have been amended
641         to take a FontBaseline as the first argument.  This patch does not attempt to fix up
642         MathML or form controls yet and just hardcodes AlphabeticBaselines for those renderers.
643         
644         The RenderTableCell baselinePosition virtual method has been made non-virtual and had
645         all arguments removed, since it actually had no real connection with the rest of the 
646         baseline positioning system.  Cell baseline positioning works by calling firstLineBoxBaseline,
647         and that method has been patched to use the cached baselineType for the first line box
648         when computing the baseline of that line.
649          
650         Added fast/blockflow/vertical-baseline-alignment.html and fast/blockflow/vertical-align-table-baseline.html.
651
652         * WebCore.xcodeproj/project.pbxproj:
653         * mathml/RenderMathMLFraction.cpp:
654         (WebCore::RenderMathMLFraction::baselinePosition):
655         * mathml/RenderMathMLFraction.h:
656         * mathml/RenderMathMLOperator.cpp:
657         (WebCore::RenderMathMLOperator::baselinePosition):
658         * mathml/RenderMathMLOperator.h:
659         * mathml/RenderMathMLRow.cpp:
660         (WebCore::RenderMathMLRow::baselinePosition):
661         * mathml/RenderMathMLRow.h:
662         * mathml/RenderMathMLSubSup.cpp:
663         (WebCore::RenderMathMLSubSup::baselinePosition):
664         * mathml/RenderMathMLSubSup.h:
665         * mathml/RenderMathMLUnderOver.cpp:
666         (WebCore::RenderMathMLUnderOver::layout):
667         (WebCore::RenderMathMLUnderOver::baselinePosition):
668         * mathml/RenderMathMLUnderOver.h:
669         * platform/graphics/SimpleFontData.h:
670         * rendering/InlineBox.h:
671         (WebCore::InlineBox::baselinePosition):
672         * rendering/InlineFlowBox.cpp:
673         (WebCore::verticalPositionForBox):
674         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
675         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
676         * rendering/InlineFlowBox.h:
677         * rendering/InlineTextBox.cpp:
678         (WebCore::InlineTextBox::baselinePosition):
679         * rendering/InlineTextBox.h:
680         * rendering/RenderBlock.cpp:
681         (WebCore::RenderBlock::baselinePosition):
682         (WebCore::RenderBlock::firstLineBoxBaseline):
683         (WebCore::RenderBlock::lastLineBoxBaseline):
684         * rendering/RenderBlock.h:
685         * rendering/RenderBlockLineLayout.cpp:
686         (WebCore::RenderBlock::computeBlockDirectionPositionsForLine):
687         (WebCore::RenderBlock::layoutInlineChildren):
688         * rendering/RenderBox.cpp:
689         (WebCore::RenderBox::baselinePosition):
690         * rendering/RenderBox.h:
691         * rendering/RenderBoxModelObject.cpp:
692         * rendering/RenderBoxModelObject.h:
693         * rendering/RenderFileUploadControl.cpp:
694         (WebCore::RenderFileUploadControl::paintObject):
695         * rendering/RenderInline.cpp:
696         (WebCore::RenderInline::RenderInline):
697         (WebCore::RenderInline::baselinePosition):
698         * rendering/RenderInline.h:
699         * rendering/RenderListBox.cpp:
700         (WebCore::RenderListBox::baselinePosition):
701         * rendering/RenderListBox.h:
702         * rendering/RenderListMarker.cpp:
703         (WebCore::RenderListMarker::baselinePosition):
704         * rendering/RenderListMarker.h:
705         * rendering/RenderSlider.cpp:
706         (WebCore::RenderSlider::baselinePosition):
707         * rendering/RenderSlider.h:
708         * rendering/RenderTableCell.cpp:
709         (WebCore::RenderTableCell::baselinePosition):
710         * rendering/RenderTableCell.h:
711         * rendering/RenderTextControlMultiLine.cpp:
712         (WebCore::RenderTextControlMultiLine::baselinePosition):
713         * rendering/RenderTextControlMultiLine.h:
714         * rendering/RootInlineBox.cpp:
715         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
716         * rendering/RootInlineBox.h:
717         (WebCore::RootInlineBox::baselinePosition):
718         * rendering/VerticalPositionCache.h: Added.
719         (WebCore::VerticalPositionCache::VerticalPositionCache):
720         (WebCore::VerticalPositionCache::get):
721         (WebCore::VerticalPositionCache::set):
722         * rendering/svg/SVGInlineTextBox.cpp:
723         (WebCore::SVGInlineTextBox::calculateBoundaries):
724
725 2010-11-17  Sam Weinig  <sam@webkit.org>
726
727         Reviewed by Anders Carlsson.
728
729         Add stubbed out ScrollAnimator for the Mac
730         https://bugs.webkit.org/show_bug.cgi?id=49678
731
732         * WebCore.xcodeproj/project.pbxproj:
733         Add ScrollAnimator.h/cpp.
734
735         * platform/mac/ScrollAnimatorMac.cpp: Added.
736         (WebCore::ScrollAnimator::create):
737         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
738         (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
739         (WebCore::ScrollAnimatorMac::scroll):
740         (WebCore::ScrollAnimatorMac::setScrollPositionAndStopAnimation):
741         * platform/mac/ScrollAnimatorMac.h: Added.
742         ScrollAnimatorMac just calls through to the base class for now.
743
744 2010-11-17  Cris Neckar  <cdn@chromium.org>
745
746         Reviewed by Adam Barth.
747
748         Modified codepath for object fallback content which has failed to load.
749         Refactored CachedResource error handling to use more granular statuses instead of a boolean value.
750         https://bugs.webkit.org/show_bug.cgi?id=46921
751
752         Test: fast/html/object-image-nested-fallback.html
753
754         * html/HTMLObjectElement.cpp:
755         (WebCore::HTMLObjectElement::renderFallbackContent):
756         * loader/cache/CachedCSSStyleSheet.cpp:
757         (WebCore::CachedCSSStyleSheet::error):
758         * loader/cache/CachedCSSStyleSheet.h:
759         * loader/cache/CachedFont.cpp:
760         (WebCore::CachedFont::ensureCustomFontData):
761         (WebCore::CachedFont::error):
762         * loader/cache/CachedFont.h:
763         * loader/cache/CachedImage.cpp:
764         (WebCore::CachedImage::data):
765         (WebCore::CachedImage::error):
766         * loader/cache/CachedImage.h:
767         * loader/cache/CachedResource.cpp:
768         (WebCore::CachedResource::CachedResource):
769         (WebCore::CachedResource::canUseCacheValidator):
770         (WebCore::CachedResource::mustRevalidate):
771         * loader/cache/CachedResource.h:
772         (WebCore::CachedResource::error):
773         (WebCore::CachedResource::httpStatusCodeError):
774         (WebCore::CachedResource::errorOccurred):
775         * loader/cache/CachedScript.cpp:
776         (WebCore::CachedScript::error):
777         * loader/cache/CachedScript.h:
778         * loader/cache/CachedXSLStyleSheet.cpp:
779         (WebCore::CachedXSLStyleSheet::error):
780         * loader/cache/CachedXSLStyleSheet.h:
781         * loader/loader.cpp:
782         (WebCore::Loader::load):
783         (WebCore::Loader::didFinishLoading):
784         (WebCore::Loader::didFail):
785         (WebCore::Loader::didReceiveData):
786
787 2010-11-16  Zhenyao Mo  <zmo@google.com>
788
789         Reviewed by Kenneth Russell.
790
791         WebGLRenderingContext needs to zero textures and renderbuffers
792         https://bugs.webkit.org/show_bug.cgi?id=49355
793
794         Test: fast/canvas/webgl/uninitialized-test.html
795
796         * html/canvas/WebGLFramebuffer.cpp:
797         (WebCore::WebGLFramebuffer::onAccess): Use a parameter to decide if renderbuffer initialization is needed.
798         (WebCore::WebGLFramebuffer::initializeRenderbuffers): Don't return false if color buffer doesn't exist.
799         * html/canvas/WebGLFramebuffer.h: Modify onAccess function signature.
800         * html/canvas/WebGLRenderingContext.cpp:
801         (WebCore::WebGLRenderingContext::clear): Call onAccess with an added parameter.
802         (WebCore::WebGLRenderingContext::copyTexImage2D): Ditto.
803         (WebCore::WebGLRenderingContext::copyTexSubImage2D): Ditto.
804         (WebCore::WebGLRenderingContext::drawArrays): Ditto.
805         (WebCore::WebGLRenderingContext::drawElements): Ditto.
806         (WebCore::WebGLRenderingContext::readPixels): Ditto.
807         (WebCore::WebGLRenderingContext::texImage2DBase): Create buffer data of 0s if input is null to initialize textures.
808
809 2010-11-17  Ryosuke Niwa  <rniwa@webkit.org>
810
811         Reviewed by Darin Adler.
812
813         Merge ScriptElement and ScriptElementData
814         https://bugs.webkit.org/show_bug.cgi?id=49647
815
816         Merged two classes.
817
818         * dom/AsyncScriptRunner.cpp:
819         (WebCore::AsyncScriptRunner::executeScriptSoon): Takes ScriptElement* instead of ScriptElementData*.
820         (WebCore::AsyncScriptRunner::timerFired): Uses ScriptElement* instead of ScriptElementData*.
821         * dom/AsyncScriptRunner.h:
822         * dom/ScriptElement.cpp:
823         (WebCore::ScriptElement::ScriptElement): Merged with ScriptElementData::ScriptElementData.
824         (WebCore::ScriptElement::~ScriptElement): Merged with ScriptElementData::~ScriptElementData.
825         (WebCore::ScriptElement::insertedIntoDocument): Calls createdByParser, isAsynchronous, requestScript, and scriptContent.
826         (WebCore::ScriptElement::removedFromDocument): Calls stopLoadRequest.
827         (WebCore::ScriptElement::childrenChanged): Calls createdByParser and accesses m_element.
828         (WebCore::ScriptElement::finishParsingChildren): Calls scriptContent.
829         (WebCore::ScriptElement::handleSourceAttribute): Calls ignoresLoadRequest and requestScript.
830         (WebCore::ScriptElement::requestScript): Moved from ScriptElementData; calls dispatchErrorEvent.
831         (WebCore::ScriptElement::evaluateScript): Moved from ScriptElementData.
832         (WebCore::ScriptElement::executeScript): Ditto.
833         (WebCore::ScriptElement::stopLoadRequest): Ditto.
834         (WebCore::ScriptElement::execute): Moved from ScriptElementData; calls dispatchErrorEvent and dispatchLoadEvent.
835         (WebCore::ScriptElement::notifyFinished): Moved from ScriptElementData.
836         (WebCore::ScriptElement::ignoresLoadRequest): Ditto.
837         (WebCore::ScriptElement::shouldExecuteAsJavaScript): Moved from ScriptElementData; calls typeAttributeValue, languageAttributeValue,
838         forAttributeValue, and eventAttributeValue.
839         (WebCore::ScriptElement::scriptCharset): Moved from ScriptElementData.
840         (WebCore::ScriptElement::scriptContent): Ditto.
841         (WebCore::ScriptElement::isAsynchronous): Moved from ScriptElementData; calls sourceAttributeValue and asyncAttributeValue.
842         (WebCore::ScriptElement::isDeferred): Moved from ScriptElementData; calls sourceAttributeValue, asyncAttributeValue,
843         and deferAttributeValue.
844         * dom/ScriptElement.h:
845         (WebCore::ScriptElement::element):
846         (WebCore::ScriptElement::haveFiredLoadEvent):
847         (WebCore::ScriptElement::setHaveFiredLoadEvent):
848         (WebCore::ScriptElement::createdByParser):
849         (WebCore::ScriptElement::isEvaluated):
850
851 2010-11-17  Tenghui Zhu  <ztenghui@google.com>
852
853         Reviewed by Jeremy Orlow.
854
855         profileCallback and profileEndCallback  should be guarded with ENABLE_JAVASCRIPT_DEBUGGER
856         https://bugs.webkit.org/show_bug.cgi?id=49623
857
858         No new tests. Just a compiling error fix.
859
860         * bindings/v8/custom/V8ConsoleCustom.cpp:
861           Add the guard ENABLE_JAVA_SCRIPT_DEBUGGER to profileCallback and profileEndCallback
862
863 2010-11-17  John Knottenbelt  <jknotten@chromium.org>
864
865         Reviewed by Jeremy Orlow.
866
867         Introduce GeoNotifierVector typedef for increased readability
868         https://bugs.webkit.org/show_bug.cgi?id=49597
869
870         * page/Geolocation.cpp:
871         (WebCore::Geolocation::Watchers::getNotifiersVector):
872         (WebCore::Geolocation::sendError):
873         (WebCore::Geolocation::sendPosition):
874         (WebCore::Geolocation::stopTimer):
875         (WebCore::Geolocation::stopTimersForOneShots):
876         (WebCore::Geolocation::stopTimersForWatchers):
877         (WebCore::Geolocation::cancelRequests):
878         (WebCore::Geolocation::cancelAllRequests):
879         (WebCore::Geolocation::handleError):
880         (WebCore::Geolocation::makeSuccessCallbacks):
881         * page/Geolocation.h:
882
883 2010-11-17  John Knottenbelt  <jknotten@chromium.org>
884
885         Reviewed by Jeremy Orlow.
886
887         Convert correctly between GeolocationPosition and Geoposition
888         timestamp formats.
889         https://bugs.webkit.org/show_bug.cgi?id=48518
890
891         Test: fast/dom/Geolocation/timestamp.html
892
893         * page/Geolocation.cpp:
894         (WebCore::createGeoposition):
895
896 2010-11-17  Chang Shu  <chang.shu@nokia.com>
897
898         Reviewed by Antonio Gomes.
899
900         [Mac] Suppress single select popup menu when spatial navigation is enabled on Mac.
901         This makes spatial navigation work properly for single select box.
902
903         Test: fast/events/spatial-navigation/snav-single-select.html
904
905         * dom/SelectElement.cpp:
906         (WebCore::nextValidIndex):
907         (WebCore::SelectElement::menuListDefaultEventHandler):
908
909 2010-11-17  Satish Sampath  <satish@chromium.org>
910
911         Reviewed by Jeremy Orlow.
912
913         Clear the speech input mock explicitly before each test.
914         https://bugs.webkit.org/show_bug.cgi?id=49660
915
916         * platform/mock/SpeechInputClientMock.cpp:
917         (WebCore::SpeechInputClientMock::clearResults): Added clearResults method.
918         * platform/mock/SpeechInputClientMock.h:
919
920 2010-11-17  Alexander Pavlov  <apavlov@chromium.org>
921
922         [Chromium] Unreviewed, fix Chromium-Mac build from r72189.
923
924         * css/CSSPrimitiveValue.cpp:
925         (WebCore::CSSPrimitiveValue::getDoubleValue):
926
927 2010-11-17  Hans Wennborg  <hans@chromium.org>
928
929         Reviewed by Jeremy Orlow.
930
931         IndexedDB: IDBKey::whereSyntax should impose conditions on all columns
932         https://bugs.webkit.org/show_bug.cgi?id=49601
933
934         The WHERE clause should specifiy a condition for each key column to
935         make sure that the ObjectStoreData_composit index can be used when
936         querying the object store based on key. Not using the index causes
937         severe performance degradation for common IDB operations.
938
939         * storage/IDBKey.cpp:
940         (WebCore::IDBKey::whereSyntax):
941
942 2010-11-17  Eric Uhrhane  <ericu@chromium.org>
943
944         Reviewed by David Levin.
945
946         [Chromium] implementation of async FileWriter for workers
947         https://bugs.webkit.org/show_bug.cgi?id=47681
948
949         Tests are in a separate changelist.
950
951         * platform/CrossThreadCopier.h: Changed CrossThreadCopier[Base] to support PassRefPtrs
952
953 2010-11-17  Alejandro G. Castro  <alex@igalia.com>
954
955         Reviewed by Martin Robinson.
956
957         [gtk] r69119 modified just the gtk2 version of the
958         scrolled_window_paint function but not the gtk3 version
959         https://bugs.webkit.org/show_bug.cgi?id=49585
960
961         Use gtk_paint_shadow the same as the actual code from GTK+. Avoid
962         using state and use the same values we are using for gtk2 in the
963         paint function.
964
965         * platform/gtk/ScrollbarThemeGtk.cpp:
966         (WebCore::ScrollbarThemeGtk::paintButton): Initialized the
967         depressed attribute of the state variable to avoid using it
968         without initialization.
969         * platform/gtk/gtk3drawing.c:
970         (moz_gtk_scrolled_window_paint):
971
972 2010-11-16  Alexander Pavlov  <apavlov@chromium.org>
973
974         Reviewed by Simon Fraser.
975
976         CSSPrimitiveValue.getFloatValue does not convert sizes
977         https://bugs.webkit.org/show_bug.cgi?id=35770
978
979         Implemented all same-category unit conversions (length, angle, time, frequency) and retained
980         absolute-relative (cm, mm, in, pt, pc) length conversions intact.
981         Illegal unit conversion attempts will throw an INVALID_ACCESS_ERR DOMException.
982
983         * css/CSSPrimitiveValue.cpp:
984         (WebCore::unitCategory):
985         (WebCore::conversionToCanonicalUnitsScaleFactor):
986         (WebCore::CSSPrimitiveValue::getDoubleValue):
987         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
988         (WebCore::CSSPrimitiveValue::getDoubleValueInternal):
989         (WebCore::CSSPrimitiveValue::getIdent):
990         * css/CSSPrimitiveValue.h:
991         (WebCore::CSSPrimitiveValue::getFloatValue):
992         (WebCore::CSSPrimitiveValue::getIntValue):
993
994 2010-11-17  Ademar de Souza Reis Jr.  <ademar.reis@openbossa.org>
995
996         Reviewed by Andreas Kling.
997
998         Document::nodesFromRect() has wrong source code documentation
999         https://bugs.webkit.org/show_bug.cgi?id=49610
1000
1001         * dom/Document.h: fix nodesFromRect() documentation
1002
1003 2010-11-17  Alexis Menard  <alexis.menard@nokia.com>, Simon Hausmann  <simon.hausmann@nokia.com>
1004
1005         Reviewed by Kenneth Christiansen, Tor Arne Vestbø.
1006
1007         [Qt] Add support for use GStreamer with the Qt build
1008
1009         Make it possible to use gstreamer with the Qt build via the USE_GSTREAMER macro. The
1010         integration is rather basic at this point, allowing for software based rendering
1011         only at the moment. AC integration and fullscreen playback is still missing.
1012
1013         * WebCore.pro: Added a bunch of gstreamer files to the build and guard it as a
1014         build option with the USE_GSTREAMER macro.
1015         * platform/graphics/MediaPlayer.cpp:
1016         (WebCore::installedMediaEngines): Don't use the generic media player registration
1017         when using GStreamer. These #ifdefs should be removed, but the gstreamer folks want
1018         to be able to build with gstreamer _and_ another backend simultaenously.
1019         * platform/graphics/gstreamer/ImageGStreamer.h:
1020         * platform/graphics/gstreamer/ImageGStreamerQt.cpp: Added.
1021         (ImageGStreamer::createImage):
1022         (ImageGStreamer::ImageGStreamer):
1023         (ImageGStreamer::~ImageGStreamer):
1024         * platform/graphics/gstreamer/PlatformVideoWindowPrivate.h: Added.
1025         * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp: Added.
1026         (FullScreenVideoWindow::FullScreenVideoWindow):
1027         (FullScreenVideoWindow::keyPressEvent):
1028         (FullScreenVideoWindow::event):
1029         (PlatformVideoWindow::PlatformVideoWindow):
1030         (PlatformVideoWindow::~PlatformVideoWindow):
1031         (PlatformVideoWindow::prepareForOverlay):
1032
1033 2010-11-17  Alexander Pavlov  <apavlov@chromium.org>
1034
1035         Reviewed by Pavel Feldman.
1036
1037         Web Inspector: [REGRESSION] editing disabled styles breaks style bodies.
1038         https://bugs.webkit.org/show_bug.cgi?id=49602
1039
1040         * inspector/InspectorStyleSheet.cpp:
1041         (WebCore::InspectorStyle::setPropertyText):
1042         * inspector/front-end/StylesSidebarPane.js:
1043         (WebInspector.StylePropertyTreeElement.prototype.get name):
1044         (WebInspector.StylePropertyTreeElement.prototype.get priority):
1045         (WebInspector.StylePropertyTreeElement.prototype.get value):
1046
1047 2010-11-16  Adam Roben  <aroben@apple.com>
1048
1049         Move QTMovieWin's settings into a vsprops file
1050
1051         Fixes <http://webkit.org/b/49644> QTMovieWin should use a vsprops file
1052
1053         Reviewed by Steve Falkenburg.
1054
1055         * WebCore.vcproj/QTMovieWin.vcproj:
1056         * WebCore.vcproj/QTMovieWinCommon.vsprops: Added.
1057
1058 2010-11-16  Andy Estes  <aestes@apple.com>
1059
1060         Reviewed by Dave Hyatt.
1061
1062         WebKit mishandles line boxes where the content height exceeds the
1063         specified line-height.
1064         https://bugs.webkit.org/show_bug.cgi?id=49410
1065
1066         If a line height is explicitly specified on a text box and fallback
1067         fonts are in use, only the primary font should be considered when
1068         computing the box's ascent and descent. This prevents the inline box
1069         from being sized larger than the specified line height.
1070
1071         This patch also fixes a math error when computing a used font's descent
1072         in the case where line height isn't explicitly set. This change results
1073         in a number of layout tests needing re-baselining.
1074
1075         Test: fast/css/line-height-determined-by-primary-font.html
1076
1077         * rendering/InlineFlowBox.cpp:
1078         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
1079
1080 2010-11-15  Ryosuke Niwa  <rniwa@webkit.org>
1081
1082         Reviewed by Darin Adler.
1083
1084         ScriptElementData should be a private member of ScriptElement
1085         https://bugs.webkit.org/show_bug.cgi?id=49578
1086
1087         Privatized m_data of ScriptElement. Added haveFiredLoadEvent, setHaveFiredLoadEvent, createdByParser,
1088         and isEvaluated to ScriptElement to proxy calls from HTMLScriptElement and SVGScriptElement to ScriptElementData.
1089
1090         No tests are added since this is a cleanup.
1091
1092         * dom/ScriptElement.h:
1093         (WebCore::ScriptElement::haveFiredLoadEvent): Added.
1094         (WebCore::ScriptElement::setHaveFiredLoadEvent): Added.
1095         (WebCore::ScriptElement::createdByParser): Added.
1096         (WebCore::ScriptElement::isEvaluated): Added.
1097         * html/HTMLScriptElement.cpp:
1098         (WebCore::HTMLScriptElement::dispatchLoadEvent): Calls haveFiredLoadEvent and setHaveFiredLoadEvent.
1099         (WebCore::HTMLScriptElement::cloneElementWithoutAttributesAndChildren): Calls isEvaluated.
1100         * html/HTMLScriptElement.h:
1101         (WebCore::HTMLScriptElement::text): Calls scriptContent.
1102         (WebCore::HTMLScriptElement::haveFiredLoadEvent): Calls haveFiredLoadEvent.
1103         * svg/SVGScriptElement.cpp:
1104         (WebCore::SVGScriptElement::svgAttributeChanged): Calls haveFiredLoadEvent and createdByParser.
1105         (WebCore::SVGScriptElement::insertedIntoDocument): Calls createdByParser.
1106         (WebCore::SVGScriptElement::finishParsingChildren): Calls setHaveFiredLoadEvent.
1107         (WebCore::SVGScriptElement::haveLoadedRequiredResources): Ditto.
1108         (WebCore::SVGScriptElement::dispatchLoadEvent): Calls haveFiredLoadEvent.
1109         (WebCore::SVGScriptElement::cloneElementWithoutAttributesAndChildren): Calls createdByParser,
1110         haveFiredLoadEvent, and setHaveFiredLoadEvent.
1111
1112 2010-11-16  Antti Koivisto  <antti@apple.com>
1113
1114         Reviewed by Darin Adler.
1115
1116         https://bugs.webkit.org/show_bug.cgi?id=49320
1117         Minor ResourceLoadScheduler cleanups
1118
1119         * loader/ResourceLoadScheduler.cpp:
1120         (WebCore::ResourceLoadScheduler::scheduleLoad):
1121         (WebCore::ResourceLoadScheduler::servePendingRequests):
1122         (WebCore::ResourceLoadScheduler::HostInformation::~HostInformation):
1123         (WebCore::ResourceLoadScheduler::HostInformation::remove):
1124         (WebCore::ResourceLoadScheduler::HostInformation::hasRequests):
1125         * loader/ResourceLoadScheduler.h:
1126
1127 2010-11-16  Dave Hyatt  <hyatt@apple.com>
1128
1129         Reviewed by Sam Weinig.
1130
1131         Add a baselineType member to RootInlineBox that caches whether the default baseline behavior for that
1132         line should be ideographic or alphabetic.  Add a requiresIdeographicsBaseline recursive function to
1133         InlineFlowBox that scans for the use of any vertical fonts.
1134
1135         * rendering/InlineFlowBox.cpp:
1136         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
1137         * rendering/InlineFlowBox.h:
1138         * rendering/RootInlineBox.cpp:
1139         (WebCore::RootInlineBox::RootInlineBox):
1140         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
1141         * rendering/RootInlineBox.h:
1142         (WebCore::RootInlineBox::baselineType):
1143
1144 2010-11-16  Dave Hyatt  <hyatt@apple.com>
1145
1146         Reviewed by Sam Weinig.
1147
1148         Add FontBaseline.h and make ascent and descent take a baseline parameter so that both an
1149         alphabetic and ideographic baseline can be requested.
1150
1151         * WebCore.xcodeproj/project.pbxproj:
1152         * platform/graphics/Font.h:
1153         (WebCore::Font::ascent):
1154         (WebCore::Font::descent):
1155         * platform/graphics/FontBaseline.h: Added.
1156         * platform/graphics/SimpleFontData.h:
1157         (WebCore::SimpleFontData::ascent):
1158         (WebCore::SimpleFontData::descent):
1159         (WebCore::SimpleFontData::height):
1160
1161 2010-11-16  Antti Koivisto  <koivisto@iki.fi>
1162
1163         Reviewed by Adam Barth.
1164
1165         https://bugs.webkit.org/show_bug.cgi?id=31223
1166         Make primitive values immutable.
1167         
1168         Make CSSPrimitiveValue setFloatValue and setStringValue always throw NO_MODIFICATION_ALLOWED exception.
1169     
1170         Reasoning:
1171         - these setters never worked correctly, style was not invalidated so changing values would have no effect on rendering
1172         - computed style is immutable in all cases, and it wasn't
1173         - no other engine seems to support mutable primitives, as a result there is no content using these APIs
1174         - mutable primitive values are pointless, the usual way to change the value of a propertly is to replace it with a new value
1175         - allowing mutation of primitive values makes optimizations harder
1176
1177         * css/CSSPrimitiveValue.cpp:
1178         (WebCore::CSSPrimitiveValue::setFloatValue):
1179         (WebCore::CSSPrimitiveValue::setStringValue):
1180
1181 2010-11-16  Steve Falkenburg  <sfalken@apple.com>
1182
1183         Reviewed by Adam Roben.
1184
1185         Disable LTCG for Windows Release builds. Add new Release_LTCG configuration.
1186         https://bugs.webkit.org/show_bug.cgi?id=49632
1187
1188         * WebCore.vcproj/QTMovieWin.vcproj:
1189         * WebCore.vcproj/WebCore.make:
1190         * WebCore.vcproj/WebCore.sln:
1191         * WebCore.vcproj/WebCore.vcproj:
1192
1193 2010-11-16  Anders Carlsson  <andersca@apple.com>
1194
1195         Reviewed by John Sullivan.
1196
1197         Set the original URL for downloads
1198         https://bugs.webkit.org/show_bug.cgi?id=49628
1199
1200         Export symbols needed by WebKit2.
1201
1202         * WebCore.exp.in:
1203
1204 2010-11-16  Dave Hyatt  <hyatt@apple.com>
1205
1206         Reviewed by Dan Bernstein.
1207
1208         https://bugs.webkit.org/show_bug.cgi?id=11004
1209         
1210         font-size:0 is ignored.  Remove the minimum font size of 1 in CSSStyleSelector.
1211         Change the pref value for minimum font size from 1 to 0.  Make sure to never use the NSFont's size,
1212         since it doesn't honor a size of 0.  Instead pass the size in to the FontPlatformData(NSFont*) version
1213         of the constructor rather than using [NSFont pointSize].
1214
1215         https://bugs.webkit.org/show_bug.cgi?id=49582
1216         
1217         Negative leading is not handled correctly.  There are two bugs here.  The first is that
1218         maxAscent and maxDescent can be negative, so we need a notion of whether or not we have
1219         set them before so that we can allow them to be < 0.
1220         
1221         The second issue is that we should understand where fonts will end up relative to
1222         our baseline (excluding line height), and only allow those boxes to impact ascent and
1223         descent if the actual font box (without factoring in line height) is above or below the
1224         root line box baseline.
1225
1226         Added fast/css/negative-leading.html
1227         
1228         These two bug fixes have to land together to keep the Acid 3 test rendering correctly.
1229
1230         * WebCore.exp.in:
1231         * css/CSSStyleSelector.cpp:
1232         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
1233         * platform/graphics/cocoa/FontPlatformData.h:
1234         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
1235         (WebCore::FontPlatformData::FontPlatformData):
1236         * platform/graphics/mac/FontCacheMac.mm:
1237         (WebCore::FontCache::getFontDataForCharacters):
1238         (WebCore::FontCache::createFontPlatformData):
1239         * platform/graphics/mac/SimpleFontDataMac.mm:
1240         (WebCore::SimpleFontData::smallCapsFontData):
1241         * rendering/InlineFlowBox.cpp:
1242         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
1243         * rendering/InlineFlowBox.h:
1244         * rendering/RootInlineBox.cpp:
1245         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
1246
1247 2010-11-16  Darin Adler  <darin@apple.com>
1248
1249         https://bugs.webkit.org/show_bug.cgi?id=49611
1250         REGRESSION (r72115): 5 layout tests are broken
1251
1252         * loader/FrameLoader.cpp:
1253         (WebCore::FrameLoader::loadFrameRequest): Roll change from
1254         https://bugs.webkit.org/show_bug.cgi?id=48603 out. I'll roll
1255         it back in after fixing the failing tests.
1256
1257 2010-11-16  Dan Bernstein  <mitz@apple.com>
1258
1259         Reviewed by Simon Fraser.
1260
1261         <rdar://problem/8672000> REGRESSION (r72040): Error image with alt text can cause style to be frozen in a subtree
1262         https://bugs.webkit.org/show_bug.cgi?id=49579
1263
1264         r72040 introduced a call to setNeedsStyleRecalc() from RenderImage::imageChanged(). When imageChanged()
1265         got called beneath recalcStyle() on some ancestor element, the result was that the ancestor’s
1266         childNeedsStyleRecalc flag got cleared, but its descendants all the way down to the image did not.
1267         Thereafter, setNeedsStyleRecalc() would fail to propagate from that subtree up to the root. The fix
1268         is to avoid the newly-added setNeedsStyleRecalc() in most cases, including during reclacStyle(), and
1269         just keep it for when it is needed.
1270
1271         Tests: fast/block/float/015.html
1272                fast/images/style-access-during-imageChanged-style-freeze.html
1273
1274         * dom/Document.cpp:
1275         (WebCore::Document::isPendingStyleRecalc): Added.
1276         * dom/Document.h:
1277         * rendering/RenderImage.cpp:
1278         (WebCore::RenderImage::imageChanged): Only defer intrinsic size compoutation if a style recalc
1279         is coming (indicating that current style() is stale).
1280
1281 2010-11-11  Zhenyao Mo  <zmo@google.com>
1282
1283         Reviewed by Kenneth Russell.
1284
1285         Implement UNPACK_COLORSPACE_CONVERSION_WEBGL
1286         https://bugs.webkit.org/show_bug.cgi?id=47196
1287
1288         * html/canvas/WebGLRenderingContext.cpp:
1289         (WebCore::WebGLRenderingContext::texImage2DImpl): Apply UNPACK_COLORSPACE_CONVERSION settings to image uploading.
1290         (WebCore::WebGLRenderingContext::texSubImage2DImpl): Ditto.
1291         * platform/graphics/GraphicsContext3D.cpp:
1292         (WebCore::GraphicsContext3D::extractImageData): Ditto.
1293         * platform/graphics/GraphicsContext3D.h:
1294         * platform/graphics/ImageSource.cpp:
1295         (WebCore::ImageSource::ImageSource): Add ignoreGammaColorProfile parameter.
1296         (WebCore::ImageSource::setData): Ditto.
1297         * platform/graphics/ImageSource.h:
1298         * platform/graphics/cg/GraphicsContext3DCG.cpp:
1299         (WebCore::GraphicsContext3D::getImageData): Ditto.
1300         * platform/graphics/cg/ImageSourceCG.cpp:
1301         (WebCore::ImageSource::ImageSource): Ditto.
1302         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1303         (WebCore::GraphicsContext3D::getImageData): Ditto.
1304         * platform/graphics/qt/ImageDecoderQt.cpp:
1305         (WebCore::ImageDecoder::create): Ditto.
1306         (WebCore::ImageDecoderQt::ImageDecoderQt): Ditto.
1307         * platform/graphics/qt/ImageDecoderQt.h:
1308         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
1309         (WebCore::GraphicsContext3D::getImageData): Ditto.
1310         * platform/image-decoders/ImageDecoder.cpp:
1311         (WebCore::ImageDecoder::create): Ditto.
1312         * platform/image-decoders/ImageDecoder.h:
1313         (WebCore::ImageDecoder::ImageDecoder): Ditto.
1314         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
1315         (WebCore::BMPImageDecoder::BMPImageDecoder):
1316         * platform/image-decoders/bmp/BMPImageDecoder.h:
1317         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1318         (WebCore::GIFImageDecoder::GIFImageDecoder): Ditto.
1319         * platform/image-decoders/gif/GIFImageDecoder.h:
1320         * platform/image-decoders/ico/ICOImageDecoder.cpp:
1321         (WebCore::ICOImageDecoder::ICOImageDecoder): Ditto.
1322         (WebCore::ICOImageDecoder::decodeAtIndex): Ditto.
1323         * platform/image-decoders/ico/ICOImageDecoder.h:
1324         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1325         (WebCore::JPEGImageDecoder::JPEGImageDecoder): Ditto.
1326         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
1327         * platform/image-decoders/png/PNGImageDecoder.cpp:
1328         (WebCore::PNGImageDecoder::PNGImageDecoder): Ditto.
1329         (WebCore::PNGImageDecoder::headerAvailable): Ignore gamma settings if ignoreGammaAndColorProfile is true.
1330         * platform/image-decoders/png/PNGImageDecoder.h:
1331         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
1332         (WebCore::WEBPImageDecoder::WEBPImageDecoder): Add ignoreGammaAndColorProfile parameter.
1333         * platform/image-decoders/webp/WEBPImageDecoder.h:
1334
1335 2010-11-16  Eric Carlson  <eric.carlson@apple.com>
1336
1337         Unreviewed attempt to fix GTK build after http://trac.webkit.org/changeset/72117
1338
1339         * platform/graphics/MediaPlayer.cpp:
1340         (WebCore::installedMediaEngines):
1341
1342 2010-11-12  Zhenyao Mo  <zmo@google.com>
1343
1344         Reviewed by Kenneth Russell.
1345
1346         Refactor GL backend flags
1347         https://bugs.webkit.org/show_bug.cgi?id=49460
1348
1349         * html/canvas/WebGLRenderingContext.cpp:
1350         (WebCore::WebGLRenderingContext::WebGLRenderingContext): Call setupFlags().
1351         (WebCore::WebGLRenderingContext::initializeNewContext): Remove flag initialization to setupFlags().
1352         (WebCore::WebGLRenderingContext::setupFlags): Initialize GL flags.
1353         (WebCore::WebGLRenderingContext::getRenderbufferParameter): Use accessor function instead of member.
1354         (WebCore::WebGLRenderingContext::renderbufferStorage): Ditto.
1355         * html/canvas/WebGLRenderingContext.h: Use flags set in setupFlags instead of querying underlying GL implementation.
1356         (WebCore::WebGLRenderingContext::isGLES2Compliant):
1357         (WebCore::WebGLRenderingContext::isGLES2NPOTStrict):
1358         (WebCore::WebGLRenderingContext::isErrorGeneratedOnOutOfBoundsAccesses):
1359         (WebCore::WebGLRenderingContext::isResourceSafe):
1360         (WebCore::WebGLRenderingContext::isDepthStencilSupported):
1361         * platform/graphics/Extensions3D.h: Add NPOT extension.
1362         * platform/graphics/GraphicsContext3D.h: Remove GL flag queries at this level.
1363         * platform/graphics/chromium/Extensions3DChromium.h: Add resource_safe and strict_attribs extensions.
1364         * platform/graphics/mac/GraphicsContext3DMac.mm: Remove GL flag queries at this level.
1365
1366 2010-11-16  Kenneth Russell  <kbr@google.com>
1367
1368         Reviewed by Dimitri Glazkov.
1369
1370         WebIDL conversions from string to number and array to number should not generate TypeError
1371         https://bugs.webkit.org/show_bug.cgi?id=49218
1372
1373         Recent SVG-related changes to the StrictTypeChecking extended attribute in
1374         CodeGeneratorJS.pm and CodeGeneratorV8.pm were not correct according to the Web IDL and
1375         ECMA-262 specifications. In particular, when an attribute or function argument is specified
1376         as a number type (floating-point or integer), passing in a String or object is not supposed
1377         to raise an exception.
1378
1379         The original intent of the StrictTypeChecking extended attribute was to properly raise
1380         TypeError when an interface type is required, but the supplied object does not implement the
1381         interface type (http://dev.w3.org/2006/webapi/WebIDL/#es-interface). Historically WebKit has
1382         silently passed null to the C++ bindings in this case. The handling of strings in the
1383         original StrictTypeChecking implementation was also incorrect, raising exceptions when it
1384         should not.
1385
1386         The semantics of StrictTypeChecking have been changed to enforce only the restrictions on
1387         interface types. The V8 custom bindings for WebGL have been updated to match the behavior of
1388         the autogenerated code.
1389
1390         Test: fast/canvas/webgl/type-conversion-test.html
1391
1392         * bindings/scripts/CodeGeneratorJS.pm:
1393         * bindings/scripts/CodeGeneratorV8.pm:
1394         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1395         (WebCore::getObjectParameter):
1396         (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
1397         (WebCore::V8WebGLRenderingContext::getParameterCallback):
1398         (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
1399         (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
1400         (WebCore::vertexAttribAndUniformHelperf):
1401
1402 2010-11-16  Alexey Proskuryakov  <ap@apple.com>
1403
1404         Windows build fix.
1405
1406         * DerivedSources.cpp: Removing CSS Variables generated files.
1407
1408 2010-11-16  Eric Carlson  <eric.carlson@apple.com>
1409
1410         Reviewed by John Sullivan.
1411
1412         getMIMEType(s)ForExtension should consult system mapping
1413         https://bugs.webkit.org/show_bug.cgi?id=49497
1414
1415         No new tests possible.
1416
1417         * platform/MIMETypeRegistry.cpp:
1418         (WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): Add the type returned by getMIMETypeForExtension. 
1419         Put the result of mediaMIMETypeMap().get() in a local variable and test instead of calling
1420         constains() and then get().
1421         (WebCore::MIMETypeRegistry::getMediaMIMETypesForExtension): Ditto.
1422
1423 2010-11-16  Eric Carlson  <eric.carlson@apple.com>
1424
1425         Reviewed by Darin Adler.
1426
1427         Rename QTKit based media engine class name
1428         https://bugs.webkit.org/show_bug.cgi?id=36663
1429
1430         No new tests as this just renames a class and restructures existing code.
1431
1432         * platform/graphics/MediaPlayer.cpp:
1433         (WebCore::installedMediaEngines): Use a macro with the platform media player class name to reduce the
1434         number of #ifs in the code.
1435
1436         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Rename MediaPlayerPrivate to MediaPlayerPrivateQTKit.
1437         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1438         (WebCore::MediaPlayerPrivateQTKit::create):
1439         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
1440         (WebCore::MediaPlayerPrivateQTKit::MediaPlayerPrivateQTKit):
1441         (WebCore::MediaPlayerPrivateQTKit::~MediaPlayerPrivateQTKit):
1442         (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
1443         (WebCore::MediaPlayerPrivateQTKit::createQTMovieView):
1444         (WebCore::MediaPlayerPrivateQTKit::detachQTMovieView):
1445         (WebCore::MediaPlayerPrivateQTKit::createQTVideoRenderer):
1446         (WebCore::MediaPlayerPrivateQTKit::destroyQTVideoRenderer):
1447         (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
1448         (WebCore::MediaPlayerPrivateQTKit::destroyQTMovieLayer):
1449         (WebCore::MediaPlayerPrivateQTKit::currentRenderingMode):
1450         (WebCore::MediaPlayerPrivateQTKit::preferredRenderingMode):
1451         (WebCore::MediaPlayerPrivateQTKit::setUpVideoRendering):
1452         (WebCore::MediaPlayerPrivateQTKit::tearDownVideoRendering):
1453         (WebCore::MediaPlayerPrivateQTKit::hasSetUpVideoRendering):
1454         (WebCore::MediaPlayerPrivateQTKit::createQTTime):
1455         (WebCore::MediaPlayerPrivateQTKit::resumeLoad):
1456         (WebCore::MediaPlayerPrivateQTKit::load):
1457         (WebCore::MediaPlayerPrivateQTKit::loadInternal):
1458         (WebCore::MediaPlayerPrivateQTKit::prepareToPlay):
1459         (WebCore::MediaPlayerPrivateQTKit::platformMedia):
1460         (WebCore::MediaPlayerPrivateQTKit::platformLayer):
1461         (WebCore::MediaPlayerPrivateQTKit::play):
1462         (WebCore::MediaPlayerPrivateQTKit::pause):
1463         (WebCore::MediaPlayerPrivateQTKit::duration):
1464         (WebCore::MediaPlayerPrivateQTKit::currentTime):
1465         (WebCore::MediaPlayerPrivateQTKit::seek):
1466         (WebCore::MediaPlayerPrivateQTKit::doSeek):
1467         (WebCore::MediaPlayerPrivateQTKit::cancelSeek):
1468         (WebCore::MediaPlayerPrivateQTKit::seekTimerFired):
1469         (WebCore::MediaPlayerPrivateQTKit::paused):
1470         (WebCore::MediaPlayerPrivateQTKit::seeking):
1471         (WebCore::MediaPlayerPrivateQTKit::naturalSize):
1472         (WebCore::MediaPlayerPrivateQTKit::hasVideo):
1473         (WebCore::MediaPlayerPrivateQTKit::hasAudio):
1474         (WebCore::MediaPlayerPrivateQTKit::supportsFullscreen):
1475         (WebCore::MediaPlayerPrivateQTKit::setVolume):
1476         (WebCore::MediaPlayerPrivateQTKit::hasClosedCaptions):
1477         (WebCore::MediaPlayerPrivateQTKit::setClosedCaptionsVisible):
1478         (WebCore::MediaPlayerPrivateQTKit::setRate):
1479         (WebCore::MediaPlayerPrivateQTKit::setPreservesPitch):
1480         (WebCore::MediaPlayerPrivateQTKit::buffered):
1481         (WebCore::MediaPlayerPrivateQTKit::maxTimeSeekable):
1482         (WebCore::MediaPlayerPrivateQTKit::maxTimeLoaded):
1483         (WebCore::MediaPlayerPrivateQTKit::bytesLoaded):
1484         (WebCore::MediaPlayerPrivateQTKit::totalBytes):
1485         (WebCore::MediaPlayerPrivateQTKit::cancelLoad):
1486         (WebCore::MediaPlayerPrivateQTKit::cacheMovieScale):
1487         (WebCore::MediaPlayerPrivateQTKit::isReadyForVideoSetup):
1488         (WebCore::MediaPlayerPrivateQTKit::prepareForRendering):
1489         (WebCore::MediaPlayerPrivateQTKit::updateStates):
1490         (WebCore::MediaPlayerPrivateQTKit::loadStateChanged):
1491         (WebCore::MediaPlayerPrivateQTKit::rateChanged):
1492         (WebCore::MediaPlayerPrivateQTKit::sizeChanged):
1493         (WebCore::MediaPlayerPrivateQTKit::timeChanged):
1494         (WebCore::MediaPlayerPrivateQTKit::didEnd):
1495         (WebCore::MediaPlayerPrivateQTKit::setSize):
1496         (WebCore::MediaPlayerPrivateQTKit::setVisible):
1497         (WebCore::MediaPlayerPrivateQTKit::hasAvailableVideoFrame):
1498         (WebCore::MediaPlayerPrivateQTKit::repaint):
1499         (WebCore::MediaPlayerPrivateQTKit::paintCurrentFrameInContext):
1500         (WebCore::MediaPlayerPrivateQTKit::paint):
1501         (WebCore::MediaPlayerPrivateQTKit::getSupportedTypes):
1502         (WebCore::MediaPlayerPrivateQTKit::supportsType):
1503         (WebCore::MediaPlayerPrivateQTKit::isAvailable):
1504         (WebCore::MediaPlayerPrivateQTKit::disableUnsupportedTracks):
1505         (WebCore::MediaPlayerPrivateQTKit::sawUnsupportedTracks):
1506         (WebCore::MediaPlayerPrivateQTKit::supportsAcceleratedRendering):
1507         (WebCore::MediaPlayerPrivateQTKit::acceleratedRenderingStateChanged):
1508         (WebCore::MediaPlayerPrivateQTKit::hasSingleSecurityOrigin):
1509         (WebCore::MediaPlayerPrivateQTKit::movieLoadType):
1510         (WebCore::MediaPlayerPrivateQTKit::setPreload):
1511         (WebCore::MediaPlayerPrivateQTKit::mediaTimeForTimeValue):
1512         (-[WebCoreMovieObserver initWithCallback:]):
1513
1514 2010-11-16  Alexey Proskuryakov  <ap@apple.com>
1515
1516         Reviewed by Dave Hyatt.
1517
1518         https://bugs.webkit.org/show_bug.cgi?id=49483
1519         Remove CSS Variable support
1520
1521         * Android.derived.jscbindings.mk:
1522         * Android.derived.v8bindings.mk:
1523         * Android.mk:
1524         * CMakeLists.txt:
1525         * DerivedSources.make:
1526         * GNUmakefile.am:
1527         * WebCore.gypi:
1528         * WebCore.pri:
1529         * WebCore.pro:
1530         * WebCore.vcproj/WebCore.vcproj:
1531         * WebCore.xcodeproj/project.pbxproj:
1532         * bindings/js/JSCSSRuleCustom.cpp:
1533         (WebCore::toJS):
1534         * bindings/v8/custom/V8DOMWindowCustom.cpp
1535         * bindings/objc/DOMCSS.mm:
1536         (kitClass):
1537         * bindings/scripts/CodeGeneratorJS.pm:
1538         * css/CSSComputedStyleDeclaration.cpp:
1539         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1540         * css/CSSGrammar.y:
1541         * css/CSSMutableStyleDeclaration.cpp:
1542         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
1543         (WebCore::CSSMutableStyleDeclaration::removeProperty):
1544         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
1545         (WebCore::CSSMutableStyleDeclaration::copy):
1546         * css/CSSMutableStyleDeclaration.h:
1547         (WebCore::CSSMutableStyleDeclaration::create):
1548         * css/CSSParser.cpp:
1549         (WebCore::CSSParser::CSSParser):
1550         (WebCore::CSSParser::~CSSParser):
1551         (WebCore::CSSParser::parseValue):
1552         (WebCore::CSSParser::lex):
1553         (WebCore::CSSParser::recheckAtKeyword):
1554         (WebCore::CSSParser::text):
1555         (WebCore::CSSParser::createMediaRule):
1556         (WebCore::CSSParser::createKeyframesRule):
1557         (WebCore::CSSParser::createStyleRule):
1558         (WebCore::CSSParser::createFontFaceRule):
1559         (WebCore::CSSParser::addNamespace):
1560         (WebCore::CSSParser::createPageRule):
1561         * css/CSSParser.h:
1562         * css/CSSParserValues.cpp:
1563         (WebCore::CSSParserValueList::addValue):
1564         (WebCore::CSSParserValueList::deleteValueAt):
1565         (WebCore::CSSParserValue::createCSSValue):
1566         * css/CSSParserValues.h:
1567         (WebCore::CSSParserValueList::CSSParserValueList):
1568         * css/CSSPrimitiveValue.cpp:
1569         (WebCore::CSSPrimitiveValue::cleanup):
1570         (WebCore::CSSPrimitiveValue::getStringValue):
1571         (WebCore::CSSPrimitiveValue::cssText):
1572         (WebCore::CSSPrimitiveValue::parserValue):
1573         * css/CSSPrimitiveValue.h:
1574         * css/CSSProperty.cpp:
1575         (WebCore::CSSProperty::cssText):
1576         * css/CSSPropertyNames.in:
1577         * css/CSSRule.h:
1578         * css/CSSRule.idl:
1579         * css/CSSStyleDeclaration.cpp:
1580         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
1581         * css/CSSStyleSelector.cpp:
1582         (WebCore::CSSStyleSelector::addMatchedDeclaration):
1583         (WebCore::CSSRuleSet::addRulesFromSheet):
1584         (WebCore::CSSStyleSelector::applyProperty):
1585         * css/CSSStyleSelector.h:
1586         * css/CSSValue.h:
1587         * css/CSSVariableDependentValue.cpp: Removed.
1588         * css/CSSVariableDependentValue.h: Removed.
1589         * css/CSSVariablesDeclaration.cpp: Removed.
1590         * css/CSSVariablesDeclaration.h: Removed.
1591         * css/CSSVariablesDeclaration.idl: Removed.
1592         * css/CSSVariablesRule.cpp: Removed.
1593         * css/CSSVariablesRule.h: Removed.
1594         * css/CSSVariablesRule.idl: Removed.
1595         * css/StyleBase.h:
1596         (WebCore::StyleBase::isMediaRule):
1597         * css/tokenizer.flex:
1598         * page/DOMWindow.idl:
1599
1600 2010-11-16  Darin Adler  <darin@apple.com>
1601
1602         Reviewed by Sam Weinig.
1603
1604         https://bugs.webkit.org/show_bug.cgi?id=48603
1605         Boolean logic mistake in local file check
1606
1607         * loader/FrameLoader.cpp:
1608         (WebCore::FrameLoader::loadFrameRequest): Fix logic so that both checks have to pass
1609         before accepting a local file load.
1610
1611 2010-11-15  Darin Adler  <darin@apple.com>
1612
1613         Reviewed by Sam Weinig.
1614
1615         Harden additional string functions against large lengths
1616         https://bugs.webkit.org/show_bug.cgi?id=49574
1617
1618         * platform/text/TextCodecUTF16.cpp:
1619         (WebCore::TextCodecUTF16::encode): Check for length that is
1620         too large for size_t.
1621
1622         * platform/text/TextStream.cpp:
1623         (WebCore::TextStream::operator<<): Check for length that is
1624         too large for size_t.
1625
1626 2010-11-16  Pavel Feldman  <pfeldman@chromium.org>
1627
1628         Not reviewed. Touching inspector controller to make gtk / qt happier.
1629
1630         * inspector/InspectorController.cpp:
1631
1632 2010-11-16  Carlos Garcia Campos  <cgarcia@igalia.com>
1633
1634         Reviewed by Martin Robinson.
1635
1636         [GTK] Use gdk_pixbuf_get_from_surface() when available
1637         https://bugs.webkit.org/show_bug.cgi?id=49532
1638
1639         * platform/graphics/gtk/GdkCairoUtilities.cpp:
1640         (cairoImageSurfaceToGdkPixbuf):
1641
1642 2010-11-16  Pavel Feldman  <pfeldman@chromium.org>
1643
1644         Reviewed by Yury Semikhatsky.
1645
1646         Web Inspector: init front-end UI upon DOMContentLoaded, not load event.
1647         https://bugs.webkit.org/show_bug.cgi?id=49596
1648
1649         * inspector/front-end/inspector.js:
1650         (windowLoaded):
1651
1652 2010-11-15  Alexander Pavlov  <apavlov@chromium.org>
1653
1654         Reviewed by Pavel Feldman.
1655
1656         Web Inspector: Migrate frontend to the new CSS editing/retrieval API
1657         https://bugs.webkit.org/show_bug.cgi?id=49492
1658
1659         Test: inspector/styles-new-API.html
1660
1661         * inspector/front-end/AuditRules.js:
1662         (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.selectorsCallback):
1663         (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.routine):
1664         (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback):
1665         (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.styleSheetCallback):
1666         (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.allStylesCallback):
1667         (WebInspector.AuditRules.UnusedCssRule.prototype.doRun):
1668         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
1669         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.receivedImages):
1670         * inspector/front-end/CSSStyleModel.js:
1671         (WebInspector.CSSStyleModel.prototype.getStylesAsync):
1672         (WebInspector.CSSStyleModel.prototype.getComputedStyleAsync):
1673         (WebInspector.CSSStyleModel.prototype.getInlineStyleAsync):
1674         (WebInspector.CSSStyleModel.prototype.setRuleSelector):
1675         (WebInspector.CSSStyleModel.prototype.setRuleSelector.callback):
1676         (WebInspector.CSSStyleModel.prototype.addRule):
1677         (WebInspector.CSSStyleModel.prototype.addRule.callback):
1678         (WebInspector.CSSStyleDeclaration):
1679         (WebInspector.CSSStyleDeclaration.prototype.propertyAt):
1680         (WebInspector.CSSStyleDeclaration.prototype.pastLastSourcePropertyIndex):
1681         (WebInspector.CSSStyleDeclaration.prototype.newBlankProperty):
1682         (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
1683         (WebInspector.CSSStyleDeclaration.prototype.appendProperty):
1684         (WebInspector.CSSRule):
1685         (WebInspector.CSSProperty.prototype.get propertyText):
1686         (WebInspector.CSSProperty.prototype.setText):
1687         (WebInspector.CSSProperty.prototype.setDisabled):
1688         (WebInspector.CSSStyleSheet):
1689         (WebInspector.CSSStyleSheet.createForId):
1690         (WebInspector.CSSStyleSheet.prototype.getText):
1691         (WebInspector.CSSStyleSheet.prototype.setText):
1692         * inspector/front-end/Settings.js:
1693         * inspector/front-end/StylesSidebarPane.js:
1694         (WebInspector.StylePropertiesSection.prototype.onpopulate):
1695         (WebInspector.StylePropertiesSection.prototype.addNewBlankProperty):
1696         (WebInspector.StylePropertiesSection.prototype._debugShowStyle.removeStyleBox):
1697         (WebInspector.StylePropertiesSection.prototype._debugShowStyle):
1698         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
1699         (WebInspector.StylePropertyTreeElement.prototype):
1700         (WebInspector.StylePropertyTreeElement.prototype.):
1701         * inspector/front-end/inspector.css:
1702         (.styles-section .properties li.not-parsed-ok):
1703         (.styles-section .properties li.not-parsed-ok::before):
1704         (.styles-section .properties .inactive):
1705
1706 2010-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1707
1708         Unreviewed, rolling out r72082.
1709         http://trac.webkit.org/changeset/72082
1710         https://bugs.webkit.org/show_bug.cgi?id=49594
1711
1712         "broken SnowLeopard build" (Requested by apavlov on #webkit).
1713
1714         * css/CSSPrimitiveValue.cpp:
1715         (WebCore::scaleFactorForConversion):
1716         (WebCore::CSSPrimitiveValue::getDoubleValue):
1717         (WebCore::CSSPrimitiveValue::getIdent):
1718         * css/CSSPrimitiveValue.h:
1719         (WebCore::CSSPrimitiveValue::getFloatValue):
1720         (WebCore::CSSPrimitiveValue::getIntValue):
1721
1722 2010-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1723
1724         Unreviewed, rolling out r72087.
1725         http://trac.webkit.org/changeset/72087
1726         https://bugs.webkit.org/show_bug.cgi?id=49593
1727
1728         "broken build" (Requested by apavlov on #webkit).
1729
1730         * css/CSSPrimitiveValue.cpp:
1731         (WebCore::unitCategory):
1732
1733 2010-11-15  Pavel Feldman  <pfeldman@chromium.org>
1734
1735         Reviewed by Yury Semikhatsky.
1736
1737         Web Inspector: rename StoragePanel to ResourcesPanel.
1738         https://bugs.webkit.org/show_bug.cgi?id=49534
1739
1740         * WebCore.gypi:
1741         * WebCore.vcproj/WebCore.vcproj:
1742         * inspector/front-end/DatabaseQueryView.js:
1743         (WebInspector.DatabaseQueryView.prototype._queryFinished):
1744         * inspector/front-end/DatabaseTableView.js:
1745         (WebInspector.DatabaseTableView.prototype._queryFinished):
1746         * inspector/front-end/ExtensionServer.js:
1747         (WebInspector.ExtensionServer.prototype._onRevealAndSelectResource):
1748         * inspector/front-end/Images/storageIcon.png: Removed.
1749         * inspector/front-end/ResourceManager.js:
1750         (WebInspector.ResourceManager.prototype.setOverrideContent):
1751         (WebInspector.ResourceTreeModel.prototype.addOrUpdateFrame):
1752         (WebInspector.ResourceTreeModel.prototype.didCommitLoadForFrame):
1753         (WebInspector.ResourceTreeModel.prototype.frameDetachedFromParent):
1754         (WebInspector.ResourceTreeModel.prototype._clearChildFramesAndResources):
1755         (WebInspector.ResourceTreeModel.prototype.addResourceToFrame):
1756         * inspector/front-end/StoragePanel.js: Removed.
1757         * inspector/front-end/WebKit.qrc:
1758         * inspector/front-end/inspector.css:
1759         (.resources.panel .sidebar):
1760         (.resources.panel .sidebar li):
1761         (.resources.panel .sidebar li.parent):
1762         (.resources.panel .sidebar li.selected):
1763         (.resources.panel .sidebar li.selected .selection):
1764         (.resources.panel .sidebar :focus li.selected .selection):
1765         (body.inactive .resources.panel .sidebar li.selected .selection):
1766         (.resources.panel .sidebar .icon):
1767         (.resources.panel .base-storage-tree-element-title):
1768         (.resources.panel .status):
1769         (.resources.panel li .status .bubble):
1770         * inspector/front-end/inspector.html:
1771         * inspector/front-end/inspector.js:
1772         (WebInspector._createPanels):
1773         (WebInspector.openResource):
1774         (WebInspector.showPanel):
1775         (WebInspector.selectDatabase):
1776         (WebInspector.selectDOMStorage):
1777         (WebInspector.addDatabase):
1778         (WebInspector.addDOMStorage):
1779         (WebInspector.updateDOMStorage):
1780         (WebInspector.updateApplicationCacheStatus):
1781         (WebInspector.didGetFileSystemPath):
1782         (WebInspector.didGetFileSystemError):
1783         (WebInspector.didGetFileSystemDisabled):
1784         (WebInspector.updateNetworkState):
1785         (WebInspector._choosePanelToShowSourceLine):
1786
1787 2010-11-16  Alexander Pavlov  <apavlov@chromium.org>
1788
1789         Unreviewed SnowLeopard build fix.
1790
1791         * css/CSSPrimitiveValue.cpp:
1792         (WebCore::unitCategory):
1793
1794 2010-11-16  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1795
1796         Reviewed by Andreas Kling.
1797
1798         Viewport meta tag: Fix geometry computation
1799
1800         Available width and height should also be divided by the device pixel ratio.
1801
1802         * dom/ViewportArguments.cpp:
1803         (WebCore::computeViewportAttributes):
1804         * platform/network/qt/DnsPrefetchHelper.cpp:
1805
1806 2010-11-12  Alexander Pavlov  <apavlov@chromium.org>
1807
1808         Reviewed by Simon Fraser.
1809
1810         CSSPrimitiveValue.getFloatValue does not convert sizes
1811         https://bugs.webkit.org/show_bug.cgi?id=35770
1812
1813         Implemented all same-category unit conversions (length, angle, time, frequency) and retained
1814         absolute-relative (cm, mm, in, pt, pc) length conversions intact.
1815         Illegal unit conversion attempts will throw an INVALID_ACCESS_ERR DOMException.
1816
1817         * css/CSSPrimitiveValue.cpp:
1818         (WebCore::unitCategory):
1819         (WebCore::scaleFactorForConversion):
1820         (WebCore::CSSPrimitiveValue::getDoubleValue):
1821         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
1822         (WebCore::CSSPrimitiveValue::getDoubleValueInternal):
1823         * css/CSSPrimitiveValue.h:
1824
1825 2010-11-15  Pavel Feldman  <pfeldman@chromium.org>
1826
1827         Reviewed by Yury Semikhatsky.
1828
1829         Web Inspector: extract HTML title setter in treeoutline.js.
1830         https://bugs.webkit.org/show_bug.cgi?id=49540
1831
1832         * inspector/front-end/ElementsTreeOutline.js:
1833         (WebInspector.ElementsTreeElement.prototype.adjustCollapsedRange):
1834         (WebInspector.ElementsTreeElement.prototype.updateTitle):
1835         * inspector/front-end/treeoutline.js:
1836         (TreeElement.prototype.get titleHTML):
1837         (TreeElement.prototype.set titleHTML):
1838         (TreeElement.prototype._setListItemNodeContent):
1839
1840 2010-11-16  John Knottenbelt  <jknotten@chromium.org>
1841
1842         Reviewed by Jeremy Orlow.
1843
1844         Assert that DeviceOrientationClientMock is used by only one controller.
1845         https://bugs.webkit.org/show_bug.cgi?id=48506
1846
1847         This is a design constraint of the DeviceOrientationClientMock because the
1848         m_controller field can only store a pointer to a single instance of the
1849         corresponding DeviceOrientationController.
1850
1851         * platform/mock/DeviceOrientationClientMock.cpp:
1852         (WebCore::DeviceOrientationClientMock::setController):
1853
1854 2010-11-16  Mihai Parparita  <mihaip@chromium.org>
1855
1856         Reviewed by Adam Barth.
1857
1858         fast/images/size-failure.html results in malloc of 2 Gb after switching to WebKit image decoders
1859         https://bugs.webkit.org/show_bug.cgi?id=48634
1860         
1861         Specify the capacity when calling CFDataCreateMutable, which can signal
1862         malloc failures (by returning NULL), unlike CFDataSetLength.
1863
1864         * platform/image-decoders/cg/ImageDecoderCG.cpp:
1865         (WebCore::RGBA32Buffer::setSize):
1866
1867 2010-11-15  Rob Buis  <rwlbuis@gmail.com>
1868
1869         Reviewed by Dirk Schulze and Darin Adler.
1870
1871         requiredFeatures does not adapt to SVGStringList changes
1872         https://bugs.webkit.org/show_bug.cgi?id=40887
1873
1874         Centralize the const_cast handling and only do it if needed.
1875         Remove the const_cast in all svgAttributeChanged functions and move
1876         it to SVGTest::handleAttributeChange. Add an early return to
1877         handleAttributeChange to avoid unnecessary const_casts.
1878
1879         No tests necessary as functionality has not changed.
1880
1881         * svg/SVGCircleElement.cpp:
1882         (WebCore::SVGCircleElement::svgAttributeChanged):
1883         * svg/SVGEllipseElement.cpp:
1884         (WebCore::SVGEllipseElement::svgAttributeChanged):
1885         * svg/SVGForeignObjectElement.cpp:
1886         (WebCore::SVGForeignObjectElement::svgAttributeChanged):
1887         * svg/SVGGElement.cpp:
1888         (WebCore::SVGGElement::svgAttributeChanged):
1889         * svg/SVGImageElement.cpp:
1890         (WebCore::SVGImageElement::svgAttributeChanged):
1891         * svg/SVGLineElement.cpp:
1892         (WebCore::SVGLineElement::svgAttributeChanged):
1893         * svg/SVGPathElement.cpp:
1894         (WebCore::SVGPathElement::svgAttributeChanged):
1895         * svg/SVGPolyElement.cpp:
1896         (WebCore::SVGPolyElement::svgAttributeChanged):
1897         * svg/SVGRectElement.cpp:
1898         (WebCore::SVGRectElement::svgAttributeChanged):
1899         * svg/SVGSVGElement.cpp:
1900         (WebCore::SVGSVGElement::svgAttributeChanged):
1901         * svg/SVGTests.cpp:
1902         (WebCore::SVGTests::handleAttributeChange):
1903         * svg/SVGTests.h:
1904         * svg/SVGTextContentElement.cpp:
1905         (WebCore::SVGTextContentElement::svgAttributeChanged):
1906         * svg/SVGUseElement.cpp:
1907         (WebCore::SVGUseElement::svgAttributeChanged):
1908
1909 2010-11-15  Dimitri Glazkov  <dglazkov@chromium.org>
1910
1911         Reviewed by Darin Adler.
1912
1913         REGRESSION(r71934): Removing an element with a shadow DOM from under a cursor causes a crash.
1914         https://bugs.webkit.org/show_bug.cgi?id=49569
1915
1916         Test: fast/events/remove-shadow-host-crash.html
1917
1918         * rendering/TextControlInnerElements.h:
1919         (WebCore::TextControlInnerElement::isShadowNode):
1920         (WebCore::TextControlInnerElement::shadowParentNode):
1921
1922 2010-11-12  Ryosuke Niwa  <rniwa@webkit.org>
1923
1924         Reviewed by Darin Adler.
1925
1926         ScriptElement rather than HTMLScriptElement and SVGScriptElement should have ScriptElementData
1927         https://bugs.webkit.org/show_bug.cgi?id=49469
1928
1929         Moved m_data, scriptCharset, scriptContent, shouldExecuteAsJavaScript, and executeScript from
1930         HTMLScriptElement and SVGScriptElement to ScriptElementData.
1931
1932         Also made insertedIntoDocument, removedFromDocument, childrenChanged, finishParsingChildren,
1933         and handleSourceAttribute of ScriptElement non-static.
1934
1935         No new tests are added since this is a cleanup.
1936
1937         * dom/ScriptElement.cpp:
1938         (WebCore::ScriptElement::scriptCharset): Added.
1939         (WebCore::ScriptElement::scriptContent): Added.
1940         (WebCore::ScriptElement::shouldExecuteAsJavaScript): Added.
1941         (WebCore::ScriptElement::executeScript): Added.
1942         (WebCore::ScriptElement::insertedIntoDocument): Made non-static. Accesses m_data.
1943         (WebCore::ScriptElement::removedFromDocument): Ditto.
1944         (WebCore::ScriptElement::childrenChanged): Ditto.
1945         (WebCore::ScriptElement::finishParsingChildren): Ditto.
1946         (WebCore::ScriptElement::handleSourceAttribute): Ditto.
1947         * dom/ScriptElement.h: Moved the declaration of ScriptElement after that of ScriptElementData
1948         because ScriptElement has to instantiate ScriptElementData.
1949         (WebCore::ScriptElement::ScriptElement): Initializes m_data.
1950         * html/HTMLScriptElement.cpp: Removed scriptCharset, scriptContent, shouldExecuteAsJavaScript, and executeScript.
1951         (WebCore::HTMLScriptElement::HTMLScriptElement): Initializes ScriptElement instead of ScriptElementData.
1952         (WebCore::HTMLScriptElement::childrenChanged): Calls ScriptElement::childrenChanged.
1953         (WebCore::HTMLScriptElement::parseMappedAttribute): Calls ScriptElement::handleSourceAttribute.
1954         (WebCore::HTMLScriptElement::finishParsingChildren): Calls ScriptElement::finishParsingChildren.
1955         (WebCore::HTMLScriptElement::insertedIntoDocument): Calls ScriptElement::insertedIntoDocument.
1956         (WebCore::HTMLScriptElement::removedFromDocument): Calls ScriptElement::removedFromDocument.
1957         * html/HTMLScriptElement.h:
1958         * svg/SVGScriptElement.cpp: Removed scriptCharset, scriptContent, shouldExecuteAsJavaScript, and executeScript.
1959         (WebCore::SVGScriptElement::SVGScriptElement): Initializes ScriptElement instead of ScriptElementData.
1960         (WebCore::SVGScriptElement::svgAttributeChanged): Calls ScriptElement::handleSourceAttribute.
1961         (WebCore::SVGScriptElement::insertedIntoDocument): Calls ScriptElement::insertedIntoDocument.
1962         (WebCore::SVGScriptElement::removedFromDocument): Calls ScriptElement::removedFromDocument.
1963         (WebCore::SVGScriptElement::childrenChanged): Calls ScriptElement::childrenChanged.
1964         (WebCore::SVGScriptElement::finishParsingChildren): Calls ScriptElement::finishParsingChildren.
1965         * svg/SVGScriptElement.h:
1966
1967 2010-11-15  Kent Tamura  <tkent@chromium.org>
1968
1969         Reviewed by Darin Adler.
1970
1971         Refactor HTMLInputElement: Move a part of HTMLInputElement::
1972         defaultEventHandler() to InputTypes.
1973         https://bugs.webkit.org/show_bug.cgi?id=48317
1974
1975         Move out the followings to InputTypes:
1976          - click event processing,
1977          - the first keydown event processing, and
1978          - DOMActivate event processing.
1979
1980         Move m_xPos and m_yPos from HTMLInputElement to ImageInputType as
1981         m_clickLocation. It's ok to move them because they should be valid only
1982         when HTMLInputElement::m_activeSubmit is true. For type=image,
1983         m_activeSubmit is true only in DOMActivate event handling. So we reset
1984         m_clickLocation in handleDOMActivateEvent() with Event::underlyingEvent().
1985
1986         No new tests because this is just a refactoring.
1987
1988         * html/BaseDateAndTimeInputType.cpp:
1989         (WebCore::BaseDateAndTimeInputType::handleKeydownEvent):
1990         * html/BaseDateAndTimeInputType.h:
1991         * html/FileInputType.cpp:
1992         (WebCore::FileInputType::handleDOMActivateEvent):
1993         * html/FileInputType.h:
1994         * html/HTMLInputElement.cpp:
1995         (WebCore::HTMLInputElement::HTMLInputElement):
1996         (WebCore::HTMLInputElement::defaultEventHandler):
1997         * html/HTMLInputElement.h:
1998         * html/ImageInputType.cpp:
1999         (WebCore::ImageInputType::appendFormData):
2000         (WebCore::ImageInputType::handleDOMActivateEvent):
2001         * html/ImageInputType.h:
2002         * html/InputType.cpp:
2003         (WebCore::InputType::handleClickEvent):
2004         (WebCore::InputType::handleDOMActivateEvent):
2005         (WebCore::InputType::handleKeydownEvent):
2006         * html/InputType.h:
2007         * html/NumberInputType.cpp:
2008         (WebCore::NumberInputType::handleKeydownEvent):
2009         * html/NumberInputType.h:
2010         * html/RadioInputType.cpp:
2011         (WebCore::RadioInputType::handleClickEvent):
2012         * html/RadioInputType.h:
2013         * html/RangeInputType.cpp:
2014         (WebCore::RangeInputType::handleKeydownEvent):
2015         * html/RangeInputType.h:
2016         * html/ResetInputType.cpp:
2017         (WebCore::ResetInputType::handleDOMActivateEvent):
2018         * html/ResetInputType.h:
2019         * html/SubmitInputType.cpp:
2020         (WebCore::SubmitInputType::handleDOMActivateEvent):
2021         * html/SubmitInputType.h:
2022         * html/TextFieldInputType.cpp:
2023         (WebCore::TextFieldInputType::handleKeydownEvent):
2024         (WebCore::TextFieldInputType::handleKeydownEventForSpinButton):
2025         * html/TextFieldInputType.h:
2026
2027 2010-11-15  Chris Rogers  <crogers@google.com>
2028
2029         Reviewed by Kenneth Russell.
2030
2031         Add AudioNode custom bindings
2032         https://bugs.webkit.org/show_bug.cgi?id=49119
2033
2034         No new tests since audio API is not yet implemented.
2035
2036         * bindings/js/JSAudioNodeCustom.cpp: Added.
2037         (WebCore::JSAudioNode::connect):
2038         (WebCore::JSAudioNode::disconnect):
2039         * bindings/v8/custom/V8AudioNodeCustom.cpp: Added.
2040         (WebCore::V8AudioNode::connectCallback):
2041         (WebCore::V8AudioNode::disconnectCallback):
2042         * webaudio/AudioNode.idl:
2043
2044 2010-11-15  Dave Hyatt  <hyatt@apple.com>
2045
2046         Reviewed by Dan Bernstein.
2047
2048         https://bugs.webkit.org/show_bug.cgi?id=49570
2049         
2050         Put italics specialization check back in CSSFontSelector.  I had to back it out, since it broke
2051         a layout test, and the issue was that local font fallback fonts should not be considered by the
2052         specialization check (since you never want to pick a fallback over an actual @font-face rule if
2053         the @font-face rule can handle it).
2054  
2055         * css/CSSFontFace.h:
2056         (WebCore::CSSFontFace::create):
2057         (WebCore::CSSFontFace::isLocalFallback):
2058         (WebCore::CSSFontFace::CSSFontFace):
2059         * css/CSSFontSelector.cpp:
2060         (WebCore::CSSFontSelector::addFontFaceRule):
2061         (WebCore::compareFontFaces):
2062
2063 2010-11-15  Adele Peterson  <adele@apple.com>
2064
2065         Reviewed by Darin Adler.
2066
2067         Fix for: https://bugs.webkit.org/show_bug.cgi?id=49452
2068         Placeholder should not be swapped in and out of the text control's inner text element
2069
2070         There's no need to swap the placeholder text in and out of the inner text element.  Instead, just paint the text.
2071         This reduces complexity and makes it easier to make independent decisions about the placeholder text and the text control value.
2072
2073         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setValueFromRenderer):
2074         Since updatePlaceholderVisibility checks the value, set the value before calling updatePlaceholderVisibility.
2075         * rendering/RenderTextControl.cpp:
2076         (WebCore::RenderTextControl::updatePlaceholderVisibility): Remove code that set the inner text value with the placeholder text.
2077         (WebCore::RenderTextControl::paintObject):  Paint the placeholder text during the background phase.
2078         * rendering/RenderTextControl.h:
2079         * rendering/RenderTextControlMultiLine.cpp:
2080         (WebCore::RenderTextControlMultiLine::nodeAtPoint): Remove custom hit testing that tried to avoid hitting the placeholder text at the wrong time.
2081         (WebCore::RenderTextControlMultiLine::updateFromElement):  Remove code that set the inner text value with the placeholder text.
2082         (WebCore::RenderTextControlMultiLine::createInnerTextStyle): Remove code that created the inner text style based on the placeholder pseudoelement.
2083         (WebCore::RenderTextControlMultiLine::textBoxInsetLeft): Added.
2084         (WebCore::RenderTextControlMultiLine::textBoxInsetRight): Added.
2085         * rendering/RenderTextControlMultiLine.h:
2086         * rendering/RenderTextControlSingleLine.cpp:
2087         (WebCore::RenderTextControlSingleLine::updateFromElement): Remove code that set the inner text value with the placeholder text.
2088         (WebCore::RenderTextControlSingleLine::createInnerTextStyle): Remove code that created the inner text style based on the placeholder pseudoelement.
2089         (WebCore::RenderTextControlSingleLine::textBoxInsetLeft): Added.
2090         (WebCore::RenderTextControlSingleLine::textBoxInsetRight): Added.
2091         * rendering/RenderTextControlSingleLine.h:
2092         * rendering/TextControlInnerElements.cpp: Removed custom hit testing that tried to avoid hitting the placeholder text at the wrong time.
2093
2094 2010-11-15  Andreas Kling  <kling@webkit.org>
2095
2096         Unreviewed buildfix (Qt WebKit2 minimal)
2097
2098         * platform/qt/CookieJarQt.cpp: Add missing <QStringList> include.
2099
2100 2010-11-15  Chris Rogers  <crogers@google.com>
2101
2102         Reviewed by Kenneth Russell.
2103
2104         Add Event and EventListener hooks for JavaScriptAudioNode and AudioProcessingEvent
2105         https://bugs.webkit.org/show_bug.cgi?id=49357
2106
2107         No new tests since audio API is not yet implemented.
2108
2109         * bindings/js/JSEventCustom.cpp:
2110         (WebCore::toJS):
2111         * bindings/js/JSEventTarget.cpp:
2112         (WebCore::toJS):
2113         * bindings/v8/V8DOMWrapper.cpp:
2114         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
2115         * bindings/v8/custom/V8EventCustom.cpp:
2116         (WebCore::toV8):
2117         * dom/Event.cpp:
2118         (WebCore::Event::isAudioProcessingEvent):
2119         * dom/Event.h:
2120         * dom/EventNames.h:
2121         * dom/EventTarget.cpp:
2122         (WebCore::EventTarget::toJavaScriptAudioNode):
2123         * dom/EventTarget.h:
2124
2125 2010-11-15  Alexey Proskuryakov  <ap@apple.com>
2126
2127         Reviewed by Darin Adler.
2128
2129         A minor style fix in StyledElement.cpp.
2130
2131         * dom/StyledElement.cpp:
2132         (WebCore::StyledElement::addCSSProperty):
2133         (WebCore::StyledElement::addCSSImageProperty):
2134
2135 2010-11-15  Alexey Proskuryakov  <ap@apple.com>
2136
2137         Reviewed by Darin Adler.
2138
2139         https://bugs.webkit.org/show_bug.cgi?id=49565
2140         Remove Attr.style accessor
2141
2142         * dom/Attr.idl: Only keep the accessor for Objective C API. Inspector doesn't seem to need
2143         it any more.
2144
2145 2010-11-15  Beth Dakin  <bdakin@apple.com>
2146
2147         Reviewed by Darin Adler.
2148
2149         Fix for https://bugs.webkit.org/show_bug.cgi?id=49555 
2150         Frame::scalePage() should treat the origin as an absolute 
2151         coordinate
2152         -and corresponding-
2153         <rdar://problem/8667138>
2154
2155         * page/Frame.cpp:
2156         (WebCore::Frame::scalePage):
2157
2158 2010-11-15  Dan Bernstein  <mitz@apple.com>
2159
2160         Reviewed by Darin Adler.
2161
2162         <rdar://problem/8662770> Error image has incorrect size when a custom font is used
2163
2164         Test: fast/images/style-access-during-imageChanged-crash.html
2165
2166         * rendering/RenderImage.cpp:
2167         (WebCore::RenderImage::RenderImage): Added initialization of m_needsToSetSizeForAltText.
2168         (WebCore::RenderImage::imageSizeForError): Factored the non-alt-text dependent size computation
2169         out of setImageSizeForAltText() into this function.
2170         (WebCore::RenderImage::setImageSizeForAltText): Changed to use imageSizeForError().
2171         (WebCore::RenderImage::styleDidChange): Added. If m_needsToSetSizeForAltText is true, sets the
2172         intrinsic size and calls imageDimensionsChanged() as needed to cause layout or invalidation.
2173         (WebCore::RenderImage::imageChanged): Moved some code from here...
2174         (WebCore::RenderImage::imageDimensionsChanged): ...to here.
2175         * rendering/RenderImage.h:
2176
2177 2010-11-15  Anders Carlsson  <andersca@apple.com>
2178
2179         Reviewed by Dimitri Glazkov.
2180
2181         ASSERTION (r72003): Assertion failure when running layout tests
2182         https://bugs.webkit.org/show_bug.cgi?id=49561
2183
2184         r72003 added the 'formaction' URL attribute to HTMLButtonElement and HTMLInputElement,
2185         but did not add the attribute to the isURLAttribute which lead to assertion failures
2186         when running the layout tests with a debug build.
2187
2188         * html/HTMLButtonElement.cpp:
2189         (WebCore::HTMLButtonElement::isURLAttribute):
2190         * html/HTMLButtonElement.h:
2191         * html/HTMLInputElement.cpp:
2192         (WebCore::HTMLInputElement::isURLAttribute):
2193
2194 2010-11-15  Alexey Proskuryakov  <ap@apple.com>
2195
2196         Reviewed by Darin Adler.
2197
2198         https://bugs.webkit.org/show_bug.cgi?id=49559
2199         DOMWindow.getComputedStyle pseudo element argument lacks ConvertUndefinedOrNullToNullString
2200
2201         No observable change in behavior, so no tests.
2202
2203         * page/DOMWindow.idl: Added ConvertUndefinedOrNullToNullString.
2204
2205 2010-11-15  Andreas Kling  <kling@webkit.org>
2206
2207         Reviewed by Tor Arne Vestbø.
2208
2209         [Qt] Make WTF_USE_MEEGOTOUCH available for WebKit2 as well
2210
2211         Move this into WebCore/features.pri which is used by both WebCore and WebKit2.
2212
2213         * WebCore.pro:
2214         * features.pri:
2215
2216 2010-11-15  Martin Robinson  <mrobinson@igalia.com>
2217
2218         Build fix for GTK+.
2219
2220         * GNUmakefile.am: Add some missing generated files to the source list.
2221
2222 2010-11-15  Kenneth Russell  <kbr@google.com>
2223
2224         Reviewed by James Robinson.
2225
2226         [chromium] Avoid copying of SkBitmap in LayerRendererChromium
2227         https://bugs.webkit.org/show_bug.cgi?id=49560
2228
2229         Ran CSS 3D content to test. No other new tests.
2230
2231         * platform/graphics/chromium/LayerRendererChromium.cpp:
2232         (WebCore::LayerRendererChromium::updateRootLayerTextureRect):
2233
2234 2010-11-15  Vangelis Kokkevis  <vangelis@chromium.org>
2235
2236         Reviewed by Kenneth Russell.
2237
2238         [chromium] Fixes layer opacity implementation of composited layers
2239         https://bugs.webkit.org/show_bug.cgi?id=49233
2240
2241         This introduces a fairly drastic change in how LayerRendererChromium draws
2242         composited layers. Layers that have non-zero opacity as well as layers that
2243         clip their descendants (and have non-trivial transforms) are now first
2244         rendered onto off-screen surfaces (RenderSurfaceChromium's). The compositing
2245         operation now consists of two distinct phases: First a hierarchical traversal
2246         of the layer tree to compute the layer transforms, determine what the necessary
2247         RenderSurfaces are and sort layer that preserve-3d based on their z-value. A second
2248         pass goes through all the RenderSurfaces discovered by the first pass and updates
2249         their contents.
2250         Additional significant side-effects of this change are:
2251         1. Depth buffer and depth testing is no longer used. Drawing relies on a painter's
2252            algorithm to render layers with the preserves-3d property from back to front using
2253            the Z coordinate of their center. This will further be improved in the future with
2254            the intoduction of a BSP tree to properly deal with intersecting layers.
2255         2. Compositor no longer uses the stencil buffer to do clipping. Clipping is now performed
2256            by rendering layer subtrees into an offscreen buffer and setting the appropriate
2257            scissor and viewport transformation.
2258
2259         Tests: abs-position-inside-opacity.html (for the opacity implementation)
2260                and the rest of the compositing layout tests to verify that
2261                everything still works.
2262
2263         * WebCore.gypi:
2264         * platform/graphics/chromium/ContentLayerChromium.cpp:
2265         (WebCore::ContentLayerChromium::cleanupResources):
2266         (WebCore::ContentLayerChromium::requiresClippedUpdateRect):
2267         (WebCore::ContentLayerChromium::calculateClippedUpdateRect):
2268         (WebCore::ContentLayerChromium::updateContents):
2269         * platform/graphics/chromium/LayerChromium.cpp:
2270         (WebCore::LayerChromium::LayerChromium):
2271         (WebCore::LayerChromium::cleanupResources):
2272         (WebCore::LayerChromium::createRenderSurface):
2273         (WebCore::LayerChromium::descendantsDrawContent):
2274         (WebCore::LayerChromium::descendantsDrawContentRecursive):
2275         * platform/graphics/chromium/LayerChromium.h:
2276         (WebCore::LayerChromium::drawTransform):
2277         (WebCore::LayerChromium::layerRenderer):
2278         * platform/graphics/chromium/LayerRendererChromium.cpp:
2279         (WebCore::orthoMatrix):
2280         (WebCore::isScaleOrTranslation):
2281         (WebCore::LayerRendererChromium::compareLayerZ):
2282         (WebCore::LayerRendererChromium::LayerRendererChromium):
2283         (WebCore::LayerRendererChromium::prepareToDrawLayers):
2284         (WebCore::LayerRendererChromium::drawLayers):
2285         (WebCore::LayerRendererChromium::updateLayersRecursive):
2286         (WebCore::LayerRendererChromium::useRenderSurface):
2287         (WebCore::LayerRendererChromium::drawLayer):
2288         (WebCore::LayerRendererChromium::setScissorToRect):
2289         (WebCore::LayerRendererChromium::setDrawViewportRect):
2290         (WebCore::LayerRendererChromium::initializeSharedObjects):
2291         (WebCore::LayerRendererChromium::cleanupSharedObjects):
2292         * platform/graphics/chromium/LayerRendererChromium.h:
2293         * platform/graphics/chromium/RenderSurfaceChromium.cpp: Added.
2294         (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
2295         (WebCore::RenderSurfaceChromium::~RenderSurfaceChromium):
2296         (WebCore::RenderSurfaceChromium::cleanupResources):
2297         (WebCore::RenderSurfaceChromium::layerRenderer):
2298         (WebCore::RenderSurfaceChromium::prepareContentsTexture):
2299         * platform/graphics/chromium/RenderSurfaceChromium.h: Added.
2300         (WebCore::RenderSurfaceChromium::contentRectCenter):
2301         (WebCore::RenderSurfaceChromium::contentRect):
2302         * platform/graphics/chromium/VideoLayerChromium.cpp:
2303         (WebCore::VideoLayerChromium::cleanupResources):
2304
2305 2010-11-15  Martin Robinson  <mrobinson@igalia.com>
2306
2307         Reviewed by Andreas Kling.
2308
2309         [GTK] gdk_pixbuf_get_from_surface from GtkVersioning.h is broken on GTK+ 2 builds
2310         https://bugs.webkit.org/show_bug.cgi?id=49549
2311
2312         No new tests. This can be verified by loading any existing vertical text test
2313         in GtkLauncher and noticing the lack of CRITICAL GLib exceptions. There's currently
2314         no automatic way of verifying custom cursors.
2315
2316         * platform/gtk/GtkVersioning.c:
2317         (gdk_pixbuf_get_from_surface): Reverse a sanity check in this method to be correct.
2318
2319 2010-11-12  Jer Noble  <jer.noble@apple.com>
2320
2321         Reviewed by Brady Eidson.
2322
2323         Can't view HTML5 video when running Safari with an authenticated proxy server
2324         <rdar://problem/8351926>
2325         
2326         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2327         (WebCore::MediaPlayerPrivate::createQTMovie):
2328
2329 2010-11-14  Abhishek Arya  <inferno@chromium.org>
2330
2331         Reviewed by Dimitri Glazkov.
2332
2333         Event dispatch call can blow away the node's renderer initialized
2334         before the call in updateSelectionForMouseDrag function. We need
2335         to initialize it after the call.
2336         https://bugs.webkit.org/show_bug.cgi?id=49524
2337
2338         * page/EventHandler.cpp:
2339         (WebCore::EventHandler::updateSelectionForMouseDrag):
2340
2341 2010-11-15  Patrick Gansterer  <paroga@webkit.org>
2342
2343         Reviewed by Martin Robinson.
2344
2345         Make ContextShadow compile on all platforms
2346         https://bugs.webkit.org/show_bug.cgi?id=49535
2347
2348         Add a void* typedef for PlatformImage and PlatformContext for unsupported platforms
2349         and move them into the WebCore namespace like all other Platform* typedefs.
2350
2351         * platform/graphics/ContextShadow.h:
2352
2353 2010-11-15  Renata Hodovan  <reni@webkit.org>
2354
2355         Reviewed by Andreas Kling.
2356
2357         SVGFEImageElement doesn't support dynamic invalidation
2358         https://bugs.webkit.org/show_bug.cgi?id=49536
2359
2360         The dynamic changes are captured by the svgAttributeChanged function. Invalidate the filter primitive if necessary.
2361
2362         Tests: svg/dynamic-updates/SVGFEImageElement-dom-preserveAspectRatio-attr.html
2363                svg/dynamic-updates/SVGFEImageElement-svgdom-preserveAspectRatio-prop.html
2364
2365         * svg/SVGFEImageElement.cpp:
2366         (WebCore::SVGFEImageElement::svgAttributeChanged):
2367         * svg/SVGFEImageElement.h:
2368
2369 2010-11-15  Yael Aharon  <yael.aharon@nokia.com>
2370
2371         Reviewed by Antonio Gomes.
2372
2373         [Qt] Focus ring does not show on focused links.
2374         https://bugs.webkit.org/show_bug.cgi?id=49515
2375
2376         After http://trac.webkit.org/changeset/69766 the focus ring on links is no longer
2377         visible in Qt.
2378         The reason is that Qt always returned true in RenderTheme::supportsFocusRing(),
2379         but until r69766, we did not check that for links. Qt draws its own focus ring
2380         for controls that it draws, but not for links.
2381         Change the return value to false if the style's appearance is not something that Qt
2382         draws by itself or does not support.
2383         Added a Qt specific test result for the new test added in r69766.
2384
2385         * platform/qt/RenderThemeQt.cpp:
2386         (WebCore::RenderThemeQt::supportsFocusRing):
2387
2388 2010-11-15  Dai Mikurube  <dmikurube@google.com>
2389
2390         Reviewed by Kent Tamura.
2391
2392         Implement formaction, formenctype, formmethod and formtarget attributes for input and button tags
2393         https://bugs.webkit.org/show_bug.cgi?id=49240
2394
2395         Tests: fast/forms/formaction-attribute.html
2396                fast/forms/formmethod-attribute-button-html.html
2397                fast/forms/formmethod-attribute-input-html.html
2398                fast/forms/formtarget-attribute-button-html.html
2399                fast/forms/formtarget-attribute-input-html.html
2400                fast/forms/mailto/formenctype-attribute-button-html.html
2401                fast/forms/mailto/formenctype-attribute-input-html.html
2402                fast/forms/submit-form-attributes.html
2403
2404         * html/HTMLAttributeNames.in: Added formaction, formmethod, formtarget and formenctype attributes
2405         * html/HTMLButtonElement.idl:
2406         * html/HTMLInputElement.idl:
2407         * loader/FormSubmission.cpp: Modified to check the pressed button and its attributes
2408         (WebCore::FormSubmission::Attributes::copyFrom):
2409         (WebCore::FormSubmission::create):
2410         * loader/FormSubmission.h:
2411
2412 2010-11-15  Pavel Feldman  <pfeldman@chromium.org>
2413
2414         Reviewed by Yury Semikhatsky.
2415
2416         Web Inspector: Do not hide default Ctrl+A behavior on non-Mac.
2417         https://bugs.webkit.org/show_bug.cgi?id=49527
2418
2419         * inspector/front-end/TextPrompt.js:
2420         (WebInspector.TextPrompt.prototype._onKeyDown):
2421
2422 2010-11-15  Ilya Sherman  <isherman@chromium.org>
2423
2424         Reviewed by Kent Tamura.
2425
2426         Add capability for displaying warnings to autofill popup
2427         Warnings are displayed in dark gray italic.
2428         https://bugs.webkit.org/show_bug.cgi?id=49291
2429         http://code.google.com/p/chromium/issues/detail?id=58509
2430
2431         * platform/chromium/PopupMenuChromium.cpp:
2432         (WebCore::PopupListBox::getRowFont):
2433           Use item-specific font, not just the generic menu font.
2434         (WebCore::PopupListBox::selectIndex):
2435           Updated to clear the selection when hovering over a non-selectable item.
2436         * platform/chromium/PopupMenuChromium.h: Minor cleanup
2437
2438 2010-11-14  David Hyatt  <hyatt@apple.com>
2439
2440         Back out the italics portion of the previous patch until I can figure out why it
2441         doesn't work.
2442
2443         * css/CSSFontSelector.cpp:
2444         (WebCore::compareFontFaces):
2445
2446 2010-11-14  Kent Tamura  <tkent@chromium.org>
2447
2448         Reviewed by Dimitri Glazkov.
2449
2450         Improve API for form validation message strings
2451         https://bugs.webkit.org/show_bug.cgi?id=34945
2452         
2453         This change introduces three new functions;
2454         validationMessageTypeMismatchFor*Text(). The implementation for each
2455         platform is just a call to validationMessageTypeMismatchText().
2456
2457         Some validationMessage*() functions have new parameters.  The parameters
2458         are ignored in all platforms for now.
2459
2460         This change doesn't change any behavior. However a platform can add
2461         additional information to validation messages.  e.g. Changing "type
2462         mismatch" to "Please specify an e-mail address" for <input type=email>.
2463
2464         * html/EmailInputType.cpp:
2465         (WebCore::EmailInputType::typeMismatchText): Call validationMessageTypeMismatchForEmailText()
2466           or validationMessageTypeMismatchForMultipleEmailText().
2467         * html/EmailInputType.h:
2468         * html/HTMLFormControlElement.h: Add maxLength() and value() to access them from ValidityState.
2469         * html/HTMLInputElement.cpp: Add the following functions to pass extra
2470           information to validation message string functions.
2471         (WebCore::HTMLInputElement::minimumString):
2472         (WebCore::HTMLInputElement::maximumString):
2473         (WebCore::HTMLInputElement::stepBaseString):
2474         (WebCore::HTMLInputElement::stepString):
2475         (WebCore::HTMLInputElement::typeMismatchText):
2476         * html/HTMLInputElement.h:
2477         * html/HTMLTextAreaElement.h:
2478         * html/InputType.cpp:
2479         (WebCore::InputType::typeMismatchText): Call validationMessageTypeMismatchText().
2480         * html/InputType.h:
2481         * html/URLInputType.cpp:
2482         (WebCore::URLInputType::typeMismatchText): Call validationMessageTypeMismatchForURLText().
2483         * html/URLInputType.h:
2484         * html/ValidityState.cpp:
2485         (WebCore::ValidityState::validationMessage):
2486         * platform/LocalizedStrings.cpp:
2487         (WebCore::validationMessageTypeMismatchForEmailText):
2488         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
2489         (WebCore::validationMessageTypeMismatchForURLText):
2490         (WebCore::validationMessageTooLongText):
2491         (WebCore::validationMessageRangeUnderflowText):
2492         (WebCore::validationMessageRangeOverflowText):
2493         (WebCore::validationMessageStepMismatchText):
2494         * platform/LocalizedStrings.h:
2495           - Add validationMessageTypeMismatchForEmailText(),
2496             validationMessageTypeMismatchForMultipleEmailText() and
2497             validationMessageTypeMismatchForURLText()
2498           - Add length parameters to validationMessageTooLongText().
2499           - Add the minimum value parameter to validationMessageRangeUnderflowText()
2500           - Add the maximum value parameter to validationMessageRangeOverflowText()
2501           - Add parameters of the base value and the step value to validationMessageStepMismatchText()
2502         * platform/android/LocalizedStringsAndroid.cpp:
2503         (WebCore::validationMessageTypeMismatchForEmailText):
2504         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
2505         (WebCore::validationMessageTypeMismatchForURLText):
2506         (WebCore::validationMessageTooLongText):
2507         (WebCore::validationMessageRangeUnderflowText):
2508         (WebCore::validationMessageRangeOverflowText):
2509         (WebCore::validationMessageStepMismatchText):
2510         * platform/brew/LocalizedStringsBrew.cpp:
2511         (WebCore::validationMessageTypeMismatchForEmailText):
2512         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
2513         (WebCore::validationMessageTypeMismatchForURLText):
2514         (WebCore::validationMessageTooLongText):
2515         (WebCore::validationMessageRangeUnderflowText):
2516         (WebCore::validationMessageRangeOverflowText):
2517         (WebCore::validationMessageStepMismatchText):
2518         * platform/efl/LocalizedStringsEfl.cpp:
2519         (WebCore::validationMessageRangeOverflowText):
2520         (WebCore::validationMessageRangeUnderflowText):
2521         (WebCore::validationMessageStepMismatchText):
2522         (WebCore::validationMessageTooLongText):
2523         (WebCore::validationMessageTypeMismatchForEmailText):
2524         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
2525         (WebCore::validationMessageTypeMismatchForURLText):
2526         * platform/gtk/LocalizedStringsGtk.cpp:
2527         (WebCore::validationMessageTypeMismatchForEmailText):
2528         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
2529         (WebCore::validationMessageTypeMismatchForURLText):
2530         (WebCore::validationMessageTooLongText):
2531         (WebCore::validationMessageRangeUnderflowText):
2532         (WebCore::validationMessageRangeOverflowText):
2533         (WebCore::validationMessageStepMismatchText):
2534         * platform/haiku/LocalizedStringsHaiku.cpp:
2535         (WebCore::validationMessageTypeMismatchForEmailText):
2536         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
2537         (WebCore::validationMessageTypeMismatchForURLText):
2538         (WebCore::validationMessageTooLongText):
2539         (WebCore::validationMessageRangeUnderflowText):
2540         (WebCore::validationMessageRangeOverflowText):
2541         (WebCore::validationMessageStepMismatchText):
2542         * platform/wx/LocalizedStringsWx.cpp:
2543         (WebCore::validationMessageTypeMismatchForEmailText):
2544         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
2545         (WebCore::validationMessageTypeMismatchForURLText):
2546         (WebCore::validationMessageTooLongText):
2547         (WebCore::validationMessageRangeUnderflowText):
2548         (WebCore::validationMessageRangeOverflowText):
2549         (WebCore::validationMessageStepMismatchText):
2550
2551 2010-11-14  Kent Tamura  <tkent@chromium.org>
2552
2553         Reviewed by Andreas Kling.
2554
2555         KeyboardEvent::keyIdentifier() should return "const String&"
2556         https://bugs.webkit.org/show_bug.cgi?id=49426
2557
2558         No new tests. This shouldn't change the current behavior.
2559
2560         * dom/KeyboardEvent.h:
2561         (WebCore::KeyboardEvent::keyIdentifier): Change the return type; String -> const String&
2562         * dom/SelectElement.cpp:
2563         (WebCore::SelectElement::menuListDefaultEventHandler):
2564           Change the type of a variable to have keyIdentifier(); String -> const String&
2565         (WebCore::SelectElement::listBoxDefaultEventHandler): ditto.
2566         * html/HTMLInputElement.cpp:
2567         (WebCore::HTMLInputElement::defaultEventHandler): ditto.
2568         (WebCore::HTMLInputElement::handleKeyEventForRange): ditto.
2569         * page/EventHandler.cpp:
2570         (WebCore::EventHandler::handleKeyboardSelectionMovement): ditto.
2571
2572 2010-11-14  Kenichi Ishibashi  <bashi@google.com>
2573
2574         Reviewed by Kent Tamura.
2575
2576         [HTML5] "form" attribute support for form control elements
2577         https://bugs.webkit.org/show_bug.cgi?id=47813
2578
2579         Adds a list of form-associated elements with form attribute into
2580         the Document class to support form attribute.
2581         Adds a function to determine the right place to locate
2582         form-associated elements with form attribute into
2583         m_associatedElements of HTMLFormElement class.
2584
2585         Tests: fast/forms/form-attribute-elements-order.html
2586                fast/forms/form-attribute-elements-order2.html
2587                fast/forms/form-attribute-elements.html
2588                fast/forms/form-attribute.html
2589
2590         * dom/Document.cpp:
2591         (WebCore::Document::registerFormElementWithFormAttribute): Added.
2592         (WebCore::Document::unregisterFormElementWithFormAttribute): Added.
2593         (WebCore::Document::resetFormElementsOwner): Added.
2594         * dom/Document.h: Added the list for elements with form attribute.
2595         * html/HTMLAttributeNames.in: Added form attribute.
2596         * html/HTMLFormControlElement.cpp:
2597         (WebCore::HTMLFormControlElement::insertedIntoTree): Modified to handle
2598         form attribute.
2599         (WebCore::HTMLFormControlElement::removedFromTree): Ditto.
2600         (WebCore::HTMLFormControlElement::resetFormOwner): Added.
2601         (WebCore::HTMLFormControlElement::attributeChanged): Added.
2602         * html/HTMLFormControlElement.h:
2603         * html/HTMLFormElement.cpp:
2604         (WebCore::HTMLFormElement::HTMLFormElement): Modified to initialize
2605         newly-added variables.
2606         (WebCore::HTMLFormElement::insertedIntoDocument): Modified to reset
2607         form owner of form-associated elements.
2608         (WebCore::HTMLFormElement::removedFromDocument): Ditto.
2609         (WebCore::HTMLFormElement::formElementIndexWithFormAttribute): Added.
2610         (WebCore::HTMLFormElement::formElementIndex): Modified to treat
2611         form-associated elements with form attribute separately.
2612         (WebCore::HTMLFormElement::removeFormElement): Modified to handle
2613         form-associated elements with form attribute.
2614         * html/HTMLFormElement.h: Added three variables to handle form attribute.
2615         * html/HTMLOutputElement.cpp: Removed "FIXME" comment.
2616         (WebCore::HTMLOutputElement::parseMappedAttribute):
2617         * html/HTMLOutputElement.h: Removed setForm().
2618
2619 2010-11-14  David Hyatt  <hyatt@apple.com>
2620
2621         Reviewed by Dan Bernstein.
2622
2623         https://bugs.webkit.org/show_bug.cgi?id=49521
2624
2625         REGRESSION svg/W3C-SVG-1.1/fonts-desc-02-t.svg broken by r71979.
2626         
2627         Refine the font selection function for @font-face to be smarter about what fonts it prefers.  If
2628         a font is labeled as only supporting small-caps, then prefer it to one that claims to support both
2629         normal and small-caps.  The specialized font is more likely to be true small-caps and to not rely
2630         on synthesis.
2631         
2632         Added the same logic for italic as well.  Prefer the font that is specifically restricted to
2633         italic to one that claims it can support anything.
2634
2635         * css/CSSFontSelector.cpp:
2636         (WebCore::compareFontFaces):
2637
2638 2010-11-14  Ryuan Choi  <ryuan.choi@samsung.com>
2639
2640         Reviewed by Martin Robinson.
2641
2642         [EFL] add pango support
2643         https://bugs.webkit.org/show_bug.cgi?id=46029
2644
2645         Include pango related files.
2646         No new tests; functionality is unchanged.
2647
2648         * CMakeListsEfl.txt:
2649
2650 2010-11-12  Tenghui Zhu  <ztenghui@google.com>
2651
2652         Reviewed by Andreas Kling.
2653
2654         [V8] Code generation script error in generating the SVGStaticListPropertyTearOff
2655         https://bugs.webkit.org/show_bug.cgi?id=49463
2656
2657         * bindings/scripts/CodeGeneratorV8.pm: The svgNativeType is the one containing
2658         the SVGStaticListPropertyTearOff string, not the svgListPropertyType.
2659
2660 2010-11-14  Patrick Gansterer  <paroga@webkit.org>
2661
2662         Reviewed by Andreas Kling.
2663
2664         Sort CMakeLists.txt
2665         https://bugs.webkit.org/show_bug.cgi?id=49507
2666
2667         * CMakeLists.txt:
2668
2669 2010-11-13  Patrick Gansterer  <paroga@webkit.org>
2670
2671         Reviewed by Yury Semikhatsky.
2672
2673         Buildfix for !ENABLE(INSPECTOR)
2674         https://bugs.webkit.org/show_bug.cgi?id=49500
2675
2676         Also unify the position of the condition in the cpp files.
2677
2678         * inspector/ConsoleMessage.cpp:
2679         * inspector/InspectorResourceAgent.cpp:
2680         * inspector/InspectorState.cpp:
2681         * inspector/ScriptCallFrame.cpp:
2682         * inspector/ScriptCallStack.cpp:
2683
2684 2010-11-13  David Hyatt  <hyatt@apple.com>
2685
2686         Reviewed by Anders Carlsson.
2687
2688         https://bugs.webkit.org/show_bug.cgi?id=49506
2689
2690         Repaint is broken across writing mode boundaries.  It's not enough to add in flipped offsets.  You have
2691         to flip the rect itself.
2692
2693         Added fast/repaint/repaint-across-writing-mode-boundary.html
2694
2695         * rendering/RenderBox.cpp:
2696         (WebCore::RenderBox::computeRectForRepaint):
2697
2698 2010-11-13  David Hyatt  <hyatt@apple.com>
2699
2700         Reviewed by Dan Bernstein.
2701
2702         https://bugs.webkit.org/show_bug.cgi?id=49505
2703         
2704         REGRESSION: @font-face doesn't work with the small-caps variant.  This was broken by the addition of SVG fonts
2705         support long ago.  This patch fixes the SVG code so that it doesn't break non-SVG fonts.
2706
2707         Added fast/blockflow/broken-ideograph-small-caps.html
2708
2709         * css/CSSFontFace.cpp:
2710         (WebCore::CSSFontFace::hasSVGFontFaceSource):
2711         * css/CSSFontFace.h:
2712         * css/CSSFontFaceSource.cpp:
2713         (WebCore::CSSFontFaceSource::getFontData):
2714         * css/CSSFontFaceSource.h:
2715         * css/CSSFontSelector.cpp:
2716         (WebCore::CSSFontSelector::addFontFaceRule):
2717         (WebCore::CSSFontSelector::getFontData):
2718
2719 2010-11-13  Dan Bernstein  <mitz@apple.com>
2720
2721         Reviewed by Dave Hyatt.
2722
2723         fast/text/hyphen* tests have different results on Leopard
2724         https://bugs.webkit.org/show_bug.cgi?id=43296
2725
2726         * platform/text/mac/TextBreakIteratorInternalICUMac.mm:
2727         (WebCore::topLanguagePreference): Changed to look up the value of the AppleLanguages default
2728         through the normal NSUserDefaults search order rather than skipping the application domain.
2729         This makes this function respect DumpRenderTree’s setting of the default in the application
2730         domain.
2731
2732 2010-11-13  David Hyatt  <hyatt@apple.com>
2733
2734         Reviewed by Dan Bernstein.
2735
2736         https://bugs.webkit.org/show_bug.cgi?id=49499
2737         
2738         broken-ideographic-font.html causes layout test flakiness in release builds.  The reason for this is
2739         that the custom font data for m_brokenIdeographFontData was never getting pruned out of the tree.
2740         The same problem exists for custom small caps fonts, so I made sure that the small caps fonts get
2741         pruned as well.  In addition, custom small caps fonts were never getting deleted either.
2742         
2743         I also made allowsLigatures in FontPlatformData orientation-independent, and the callers check it
2744         instead.
2745         
2746         Unskip fast/blockflow/broken-ideographic-font.html
2747
2748         * platform/graphics/SimpleFontData.cpp:
2749         (WebCore::SimpleFontData::~SimpleFontData):
2750         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2751         (WebCore::SimpleFontData::platformDestroy):
2752         (WebCore::SimpleFontData::smallCapsFontData):
2753         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
2754         (WebCore::SimpleFontData::platformDestroy):
2755         (WebCore::SimpleFontData::smallCapsFontData):
2756         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
2757         (WebCore::FontPlatformData::allowsLigatures):
2758         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
2759         (WebCore::SimpleFontData::platformDestroy):
2760         (WebCore::SimpleFontData::smallCapsFontData):
2761         * platform/graphics/haiku/SimpleFontDataHaiku.cpp:
2762         (WebCore::SimpleFontData::platformDestroy):
2763         (WebCore::SimpleFontData::smallCapsFontData):
2764         * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
2765         (WebCore::disableLigatures):
2766         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
2767         (WebCore::SimpleFontData::getCFStringAttributes):
2768         * platform/graphics/mac/SimpleFontDataMac.mm:
2769         (WebCore::SimpleFontData::platformDestroy):
2770         * platform/graphics/win/SimpleFontDataWin.cpp:
2771         (WebCore::SimpleFontData::platformDestroy):
2772         (WebCore::SimpleFontData::smallCapsFontData):
2773         * platform/graphics/wx/SimpleFontDataWx.cpp:
2774         (WebCore::SimpleFontData::platformDestroy):
2775         (WebCore::SimpleFontData::smallCapsFontData):
2776
2777 2010-11-13  David Hyatt  <hyatt@apple.com>
2778
2779         https://bugs.webkit.org/show_bug.cgi?id=49496
2780
2781         Fix broken-ideographic-font.html.  I had the font installed locally on my machine, and this covered up
2782         the fact that CoreText was implicitly using it as fallback in the vertical case only.  The bots don't have
2783         the font installed locally, and so they showed the bug.
2784
2785         Make sure the GlyphPage is filled with horizontal glyphs for a broken ideograph font, so that CoreText is
2786         willing to fill.
2787
2788         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
2789         (WebCore::SimpleFontData::getCFStringAttributes):
2790
2791 2010-11-13  David Hyatt  <hyatt@apple.com>
2792
2793         Reviewed by Dan Bernstein.
2794
2795         https://bugs.webkit.org/show_bug.cgi?id=49464
2796         
2797         Fix bugs with the orientation of fonts when the font is brought in via fallback, when the font contains no
2798         vertical tables, or when the font is loaded via font-face in both horizontal and vertical forms.
2799         
2800         (1) Include orientation as part of the @font-face hashtables so that the fonts are treated as
2801         distinct when used in horizontal and vertical forms.
2802         
2803         (2) Let the orientation member of FontPlatformData represent the desired orientation rather than
2804         the supported one.  Add an orientation member to SimpleFontData that represents the actual
2805         supported orientation of the font.
2806         
2807         (3) For fonts with no vertical tables, add a brokenIdeographicsFont accessor that is invoked when
2808         CJK ideographs are encountered.  This is essentially identical to the small caps fallback mechanism
2809         but invoked only for ideographs.  The special ideograph font locks the orientation to vertical and
2810         renders the glyphs upright even when the font has no vertical tables.  Punctuation and such will
2811         still look funny, and really this is a bug in the font, but at least this way it will be apparent
2812         that the font is to blame.
2813
2814         Added fast/blockflow/broken-ideographic-font.html and fast/blockflow/vertical-font-fallback.html.
2815
2816         * css/CSSFontFaceSource.cpp:
2817         (WebCore::CSSFontFaceSource::getFontData):
2818         * css/CSSSegmentedFontFace.cpp:
2819         (WebCore::CSSSegmentedFontFace::getFontData):
2820         * platform/graphics/Font.cpp:
2821         (WebCore::Font::isCJKIdeograph):
2822         * platform/graphics/Font.h:
2823         * platform/graphics/FontFastPath.cpp:
2824         (WebCore::Font::glyphDataForCharacter):
2825         * platform/graphics/SimpleFontData.cpp:
2826         (WebCore::SimpleFontData::SimpleFontData):
2827         (WebCore::SimpleFontData::~SimpleFontData):
2828         (WebCore::SimpleFontData::brokenIdeographFontData):
2829         * platform/graphics/SimpleFontData.h:
2830         (WebCore::SimpleFontData::orientation):
2831         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
2832         (WebCore::FontPlatformData::FontPlatformData):
2833         * platform/graphics/mac/FontMac.mm:
2834         (WebCore::showGlyphsWithAdvances):
2835         * platform/graphics/mac/SimpleFontDataMac.mm:
2836         (WebCore::SimpleFontData::platformInit):
2837         (WebCore::SimpleFontData::platformBoundsForGlyph):
2838         (WebCore::SimpleFontData::platformWidthForGlyph):
2839
2840 2010-11-13  Rob Buis  <rwlbuis@gmail.com>
2841
2842         Reviewed by Dirk Schulze.
2843
2844         requiredFeatures does not adapt to SVGStringList changes
2845         https://bugs.webkit.org/show_bug.cgi?id=40887
2846
2847         Centralize logic of handling of SVGElement validity changes.
2848         The logic is to detach the SVGElement when changing from valid
2849         to invalid, and to attach when changing from invalid to valid.
2850
2851         Tests: svg/dynamic-updates/SVGCircleElement-dom-requiredFeatures.html
2852                svg/dynamic-updates/SVGCircleElement-svgdom-requiredFeatures.html
2853                svg/dynamic-updates/SVGEllipseElement-dom-requiredFeatures.html
2854                svg/dynamic-updates/SVGEllipseElement-svgdom-requiredFeatures.html
2855                svg/dynamic-updates/SVGForeignObjectElement-dom-requiredFeatures.html
2856                svg/dynamic-updates/SVGForeignObjectElement-svgdom-requiredFeatures.html
2857                svg/dynamic-updates/SVGGElement-dom-requiredFeatures.html
2858                svg/dynamic-updates/SVGGElement-svgdom-requiredFeatures.html
2859                svg/dynamic-updates/SVGImageElement-dom-requiredFeatures.html
2860                svg/dynamic-updates/SVGImageElement-svgdom-requiredFeatures.html
2861                svg/dynamic-updates/SVGLineElement-dom-requiredFeatures.html
2862                svg/dynamic-updates/SVGLineElement-svgdom-requiredFeatures.html
2863                svg/dynamic-updates/SVGPathElement-dom-requiredFeatures.html
2864                svg/dynamic-updates/SVGPathElement-svgdom-requiredFeatures.html
2865                svg/dynamic-updates/SVGPolygonElement-dom-requiredFeatures.html
2866                svg/dynamic-updates/SVGPolygonElement-svgdom-requiredFeatures.html
2867                svg/dynamic-updates/SVGPolylineElement-dom-requiredFeatures.html
2868                svg/dynamic-updates/SVGPolylineElement-svgdom-requiredFeatures.html
2869                svg/dynamic-updates/SVGRectElement-dom-requiredFeatures.html
2870                svg/dynamic-updates/SVGRectElement-svgdom-requiredFeatures.html
2871                svg/dynamic-updates/SVGSVGElement-dom-requiredFeatures.html
2872                svg/dynamic-updates/SVGSVGElement-svgdom-requiredFeatures.html
2873                svg/dynamic-updates/SVGTextElement-dom-requiredFeatures.html
2874                svg/dynamic-updates/SVGTextElement-svgdom-requiredFeatures.html
2875                svg/dynamic-updates/SVGUseElement-dom-requiredFeatures.html
2876                svg/dynamic-updates/SVGUseElement-svgdom-requiredFeatures.html
2877
2878         * svg/SVGCircleElement.cpp:
2879         (WebCore::SVGCircleElement::svgAttributeChanged):
2880         * svg/SVGEllipseElement.cpp:
2881         (WebCore::SVGEllipseElement::svgAttributeChanged):
2882         * svg/SVGForeignObjectElement.cpp:
2883         (WebCore::SVGForeignObjectElement::svgAttributeChanged):
2884         * svg/SVGGElement.cpp:
2885         (WebCore::SVGGElement::svgAttributeChanged):
2886         * svg/SVGImageElement.cpp:
2887         (WebCore::SVGImageElement::svgAttributeChanged):
2888         * svg/SVGLineElement.cpp:
2889         (WebCore::SVGLineElement::svgAttributeChanged):
2890         * svg/SVGPathElement.cpp:
2891         (WebCore::SVGPathElement::svgAttributeChanged):
2892         * svg/SVGPolyElement.cpp:
2893         (WebCore::SVGPolyElement::svgAttributeChanged):
2894         * svg/SVGRectElement.cpp:
2895         (WebCore::SVGRectElement::svgAttributeChanged):
2896         * svg/SVGSVGElement.cpp:
2897         (WebCore::SVGSVGElement::svgAttributeChanged):
2898         * svg/SVGTests.cpp:
2899         (WebCore::knownAttribute):
2900         (WebCore::SVGTests::isKnownAttribute):
2901         (WebCore::SVGTests::handleAttributeChange): Centralized handling of SVGElement validity changes.
2902         * svg/SVGTests.h:
2903         * svg/SVGTextContentElement.cpp:
2904         (WebCore::SVGTextContentElement::svgAttributeChanged):
2905         (WebCore::SVGTextContentElement::isKnownAttribute):
2906         * svg/SVGTextContentElement.h:
2907         * svg/SVGUseElement.cpp:
2908         (WebCore::SVGUseElement::svgAttributeChanged):
2909
2910 2010-11-13  Andrey Kosyakov  <caseq@chromium.org>
2911
2912         Reviewed by Pavel Feldman.
2913
2914         Web Inspector: [refactoring] support Views in TabbedPane and streamline tab selection in resource view
2915         https://bugs.webkit.org/show_bug.cgi?id=49493
2916
2917         * inspector/front-end/NetworkPanel.js:
2918         (WebInspector.NetworkPanel.prototype._showResource):
2919         * inspector/front-end/ResourceView.js:
2920         (WebInspector.ResourceView):
2921         (WebInspector.ResourceView.prototype.selectContentTab):
2922         (WebInspector.ResourceView.prototype._selectTab):
2923         (WebInspector.ResourceView.prototype._refreshCookies):
2924         (WebInspector.ResourceCookiesTab.prototype.show):
2925         * inspector/front-end/StoragePanel.js:
2926         (WebInspector.StoragePanel.prototype.showResource):
2927         * inspector/front-end/TabbedPane.js:
2928         (WebInspector.TabbedPane.prototype.appendTab):
2929         (WebInspector.TabbedPane.prototype.hasTab):
2930         (WebInspector.TabbedPane.prototype.selectTabById):
2931         (WebInspector.TabbedPane.prototype._hideTab):
2932         (WebInspector.TabbedPane.prototype._showTab):
2933         * inspector/front-end/inspector.css:
2934         (.resource-view-cookies):
2935         (.resource-view-cookies.visible):
2936
2937 2010-11-13  Yury Semikhatsky  <yurys@chromium.org>
2938
2939         Reviewed by Pavel Feldman.
2940
2941         REGRESSION(71515): Web Inspector: Safari crash calling console.log when Log JavaScript Exceptions to Console is checked
2942         https://bugs.webkit.org/show_bug.cgi?id=49362
2943
2944         * page/Console.cpp:
2945         (WebCore::Console::addMessage): avoid accessing ScriptArguments and ScriptCallStack after their ownership
2946         has been passed to the inspector.
2947
2948 2010-11-13  Yury Semikhatsky  <yurys@chromium.org>
2949
2950         Reviewed by Pavel Feldman.
2951
2952         Web Inspector: DOM event listener name is cropped in Elements panel
2953         https://bugs.webkit.org/show_bug.cgi?id=49387
2954
2955         * inspector/front-end/inspector.css:
2956         (.event-bar): use margin-left instead of left to fit child node into its parent
2957
2958 2010-11-13  Ilya Sherman  <isherman@chromium.org>
2959
2960         Reviewed by Shinichiro Hamaji.
2961
2962         Fixes regression from previous patch -- computes y offsets for elements
2963         that are scrolled out of the window.
2964         https://bugs.webkit.org/show_bug.cgi?id=49306
2965
2966         * manual-tests/select-scroll.html: Added.
2967         * platform/chromium/PopupMenuChromium.cpp:
2968         (WebCore::PopupListBox::layout):
2969
2970 2010-11-12  Daniel Bates  <dbates@rim.com>
2971
2972         Reviewed by Adam Barth.
2973
2974         Transferred <iframe>s may not have a unique internal name
2975         https://bugs.webkit.org/show_bug.cgi?id=48768
2976
2977         Fixes an issue where an <iframe> that is transferred from
2978         document A to document B, where A != B, may not have a
2979         unique internal name in B.
2980
2981         Test: fast/frames/iframe-reparenting-unique-name.html
2982
2983         * html/HTMLFrameElementBase.cpp:
2984         (WebCore::HTMLFrameElementBase::setNameAndOpenURL): Inlined code from
2985         HTMLFrameElementBase::setName() so that we can remove setName(), which
2986         was only called being called by HTMLFrameElementBase::setNameAndOpenURL().
2987         * html/HTMLFrameElementBase.h: Removed HTMLFrameElementBase::setName().
2988         * html/HTMLFrameOwnerElement.h: Removed HTMLFrameOwnerElement::setName().
2989         * page/Frame.cpp:
2990         (WebCore::Frame::transferChildFrameToNewDocument): Modified to call FrameTree::transferChild().
2991         * page/FrameTree.cpp:
2992         (WebCore::FrameTree::transferChild): Added.
2993         (WebCore::FrameTree::appendChild): Moved the majority of the code into FrameTree::actuallyAppendChild().
2994         (WebCore::FrameTree::actuallyAppendChild): Added.
2995         * page/FrameTree.h:
2996
2997 2010-11-12  Joseph Pecoraro  <joepeck@webkit.org>
2998
2999         Reviewed by Alexey Proskuryakov.
3000
3001         Some FrameLoader.h Cleanup
3002         https://bugs.webkit.org/show_bug.cgi?id=49484
3003
3004         Removed function signatures without any implementation. The functions
3005         used to exist, and were nicely refactored into PageCache in r60688 and
3006         the signatures were left behind.
3007
3008         Removed function signature setLoadType. Added in r17238 back when the
3009         file was named WebFrameLoader, and the implementation was lost during
3010         the transition from its mm implementation.
3011
3012         Removed function signature updateHistoryAfterClientRedirect. Implementation
3013         and call points were removed in r18541 but the signature was left behind,
3014         and jumped files!
3015
3016         Removed unused debug variable m_didDispatchDidCommitLoad. It was added
3017         and used in Assertions in r28399. It was removed soon after, in r28464
3018         because they were, "firing like crazy. Not sure why yet." It was
3019         never used again.
3020
3021         Added const qualifier and moved interruptionForPolicyChangeError to
3022         be more like its buddies.
3023
3024         * loader/FrameLoader.cpp:
3025         (WebCore::FrameLoader::FrameLoader):
3026         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
3027         (WebCore::FrameLoader::interruptionForPolicyChangeError):
3028         (WebCore::FrameLoader::dispatchDidCommitLoad):
3029         * loader/FrameLoader.h:
3030
3031 2010-11-12  Yael Aharon  <yael.aharon@nokia.com>
3032
3033         Reviewed by David Hyatt.
3034
3035         Spatial Navigation: Cannot focus on some ContainerNode
3036         https://bugs.webkit.org/show_bug.cgi?id=48393
3037
3038         ContainerNode::getLowerRightCorner() assumes that the lowest right corner of its last child 
3039         is its own lowest right corner. If that child is an empty text node after an image, it does 
3040         not have size and position information, so we should go to the previous child.
3041
3042         Tests: fast/events/spatial-navigation/snav-container-only-white-space.html
3043                fast/events/spatial-navigation/snav-container-white-space.html
3044
3045         * dom/ContainerNode.cpp:
3046         (WebCore::ContainerNode::getLowerRightCorner):
3047
3048 2010-11-12  James Simonsen  <simonjam@chromium.org>
3049
3050         Reviewed by Darin Fisher.
3051
3052         [Web Timing] Rename interfaces:
3053         - Navigation -> PerformanceNavigation
3054         - Timing -> PerformanceTiming
3055         https://bugs.webkit.org/show_bug.cgi?id=48919
3056
3057         * DerivedSources.cpp:
3058         * DerivedSources.make:
3059         * GNUmakefile.am:
3060         * WebCore.gypi:
3061         * WebCore.vcproj/WebCore.vcproj:
3062         * WebCore.xcodeproj/project.pbxproj:
3063         * page/Performance.cpp:
3064         (WebCore::Performance::navigation):
3065         (WebCore::Performance::timing):
3066         * page/Performance.h:
3067         * page/Performance.idl:
3068         * page/PerformanceNavigation.cpp: Renamed from WebCore/page/Navigation.cpp.
3069         (WebCore::PerformanceNavigation::PerformanceNavigation):
3070         (WebCore::PerformanceNavigation::frame):
3071         (WebCore::PerformanceNavigation::disconnectFrame):
3072         (WebCore::PerformanceNavigation::type):
3073         (WebCore::PerformanceNavigation::redirectCount):
3074         * page/PerformanceNavigation.h: Renamed from WebCore/page/Navigation.h.
3075         (WebCore::PerformanceNavigation::create):
3076         * page/PerformanceNavigation.idl: Renamed from WebCore/page/Navigation.idl.
3077         * page/PerformanceTiming.cpp: Renamed from WebCore/page/Timing.cpp.
3078         (WebCore::toIntegerMilliseconds):
3079         (WebCore::getPossiblySkewedTimeInKnownRange):
3080         (WebCore::PerformanceTiming::PerformanceTiming):
3081         (WebCore::PerformanceTiming::frame):
3082         (WebCore::PerformanceTiming::disconnectFrame):
3083         (WebCore::PerformanceTiming::navigationStart):
3084         (WebCore::PerformanceTiming::unloadEventEnd):
3085         (WebCore::PerformanceTiming::redirectStart):
3086         (WebCore::PerformanceTiming::redirectEnd):
3087         (WebCore::PerformanceTiming::fetchStart):
3088         (WebCore::PerformanceTiming::domainLookupStart):
3089         (WebCore::PerformanceTiming::domainLookupEnd):
3090         (WebCore::PerformanceTiming::connectStart):
3091         (WebCore::PerformanceTiming::connectEnd):
3092         (WebCore::PerformanceTiming::requestStart):
3093         (WebCore::PerformanceTiming::requestEnd):
3094         (WebCore::PerformanceTiming::responseStart):
3095         (WebCore::PerformanceTiming::responseEnd):
3096         (WebCore::PerformanceTiming::domLoading):
3097         (WebCore::PerformanceTiming::domInteractive):
3098         (WebCore::PerformanceTiming::domContentLoaded):
3099         (WebCore::PerformanceTiming::domComplete):
3100         (WebCore::PerformanceTiming::loadEventStart):
3101         (WebCore::PerformanceTiming::loadEventEnd):
3102         (WebCore::PerformanceTiming::documentLoader):
3103         (WebCore::PerformanceTiming::documentTiming):
3104         (WebCore::PerformanceTiming::documentLoadTiming):
3105         (WebCore::PerformanceTiming::resourceLoadTiming):
3106         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
3107         * page/PerformanceTiming.h: Renamed from WebCore/page/Timing.h.
3108         (WebCore::PerformanceTiming::create):
3109         * page/PerformanceTiming.idl: Renamed from WebCore/page/Timing.idl.
3110
3111 2010-11-12  Eric Carlson  <eric.carlson@apple.com>
3112
3113         Reviewed by Simon Fraser.
3114
3115         Remove unused code from HTMLMediaElement
3116         https://bugs.webkit.org/show_bug.cgi?id=49451
3117
3118         Just removing code, so no new tests.
3119
3120         * html/HTMLMediaElement.cpp: Removed unused functions.
3121         * html/HTMLMediaElement.h:
3122
3123 2010-11-12  Ryosuke Niwa  <rniwa@webkit.org>
3124
3125         Unreviewed Xcode project fix.
3126
3127         * WebCore.xcodeproj/project.pbxproj:
3128
3129 2010-11-12  Alexey Proskuryakov  <ap@apple.com>
3130
3131         Reviewed by Simon Fraser.
3132
3133         https://bugs.webkit.org/show_bug.cgi?id=49473
3134         WebKitCSSMatrix shouldn't inherit from StyleBase
3135
3136         No change in behavior, so no tests.
3137
3138         * css/WebKitCSSMatrix.cpp:
3139         (WebCore::WebKitCSSMatrix::WebKitCSSMatrix): We don't inherit from StyleBase any more, so
3140         no need to initialize always-null parent.
3141         (WebCore::WebKitCSSMatrix::setMatrixValue): Since there was never a parent, useStrictParsing()
3142         just returned true.
3143
3144         * css/WebKitCSSMatrix.h: Just inherit from RefCounted<WebKitCSSMatrix>. Removed unused default
3145         constructor and copy constructor.
3146
3147         * html/canvas/WebGLRenderingContext.h: Removed an unnneded forward declaration.
3148
3149 2010-11-12  Helder Correia  <helder@sencha.com>
3150
3151         Reviewed by Andreas Kling.
3152
3153         [Qt] Path::addArc() does not set right angle direction on full arcs
3154         https://bugs.webkit.org/show_bug.cgi?id=49138
3155
3156         Ensure correctness of nonzero winding rule for full arc paths.
3157         Invert the sign of the span if the direction is counterclockwise.
3158
3159         Test: fast/canvas/canvas-arc-360-winding.html
3160
3161         * platform/graphics/qt/PathQt.cpp:
3162         (WebCore::Path::addArc):
3163
3164 2010-11-05  Dimitri Glazkov  <dglazkov@chromium.org>
3165
3166         Reviewed by Darin Adler.
3167
3168         Implement shadow DOM-aware event targeting and introduce EventContext to track the context of each event dispatch.
3169         https://bugs.webkit.org/show_bug.cgi?id=46015
3170
3171         Test: fast/events/shadow-boundary-crossing-2.html
3172
3173         This patch adds the notion of EventContext (and a very similar-acting WindowEventContext, specifically
3174         for DOMWindow), an abstraction that carries information around dispatching an event for any given Node.
3175
3176         This abstraction is necessary to ensure that events, fired from shadow DOM nodes are properly retargeted to
3177         appear as if they are coming from their host, thus never exposing the shadow DOM nodes to the world outside.
3178
3179         * Android.mk: Added EventContext, WindowEventContext files.
3180         * CMakeLists.txt: Ditto.
3181         * GNUmakefile.am: Ditto.
3182         * WebCore.gypi: Ditto.
3183         * WebCore.pro: Ditto.
3184         * WebCore.xcodeproj/project.pbxproj: Ditto.
3185         * WebCore.vcproj/WebCore.vcproj: Ditto.
3186         * dom/ContainerNode.cpp:
3187         (WebCore::notifyChildInserted): Changed to be shadow DOM-aware.
3188         * dom/EventContext.cpp: Added.
3189         * dom/EventContext.h: Added.
3190         * dom/Node.cpp:
3191         (WebCore::Node::markAncestorsWithChildNeedsStyleRecalc): Changed to be shadow DOM-aware.
3192         (WebCore::Node::createRendererIfNeeded): Ditto.
3193         (WebCore::Node::parentOrHostNode): Added new helper method.
3194         (WebCore::Node::enclosingLinkEventParentOrSelf): Changed to be shadow DOM-aware.
3195         (WebCore::eventTargetRespectingSVGTargetRules): Collapsed two helper methods into one.
3196         (WebCore::Node::getEventAncestors): Renamed and refactored to collect a vector of EventContexts.
3197         (WebCore::Node::topEventContext): Added.
3198         (WebCore::eventHasListeners): Changed to use EventContexts.
3199         (WebCore::Node::dispatchGenericEvent): Ditto.
3200         * dom/Node.h: Removed eventParentNode that's no longer needed, added parentOrHostNode decl,
3201             and changed signature of eventAncestors to use EventContexts.
3202         * dom/Text.cpp:
3203         (WebCore::Text::createRenderer): Changed to be shadow DOM-aware.
3204         * dom/WindowEventContext.cpp: Added.
3205         * dom/WindowEventContext.h: Added.
3206         * inspector/InspectorDOMAgent.cpp:
3207         (WebCore::InspectorDOMAgent::getEventListenersForNode): Changed to use EventContexts.
3208         * page/EventHandler.cpp:
3209         (WebCore::EventHandler::updateMouseEventTargetNode): Removed code that's no longer necessary.
3210         * rendering/RenderTextControlMultiLine.cpp:
3211         (WebCore::RenderTextControlMultiLine::subtreeHasChanged): Removed event invocation that's
3212             no longer necessary.
3213         * rendering/ShadowElement.h: Made m_shadowParent a RefPtr to avoid stale references when parent
3214         is deleted.
3215         * rendering/TextControlInnerElements.cpp:
3216         (WebCore::TextControlInnerTextElement::defaultEventHandler): Flipped the condition back
3217             from where it was prior to r60418.
3218         * svg/SVGElement.cpp: Removed eventParentNode that's no longer needed.
3219         * svg/SVGElement.h: Ditto.
3220
3221 2010-11-12  Ryuan Choi  <ryuan.choi@samsung.com>
3222
3223         Reviewed by Martin Robinson.
3224
3225         [GTK] Remove unnecessary header for FontPlatformDataPango.cpp
3226         https://bugs.webkit.org/show_bug.cgi?id=46029
3227
3228         Remove unnecessary header includes.
3229         No new tests, as there's no functionality.
3230
3231         * platform/graphics/pango/FontPlatformDataPango.cpp:
3232
3233 2010-11-11  Abhishek Arya  <inferno@chromium.org>
3234
3235         Reviewed by Adam Barth.
3236
3237         Not allow drag and drop across different origins.
3238         https://bugs.webkit.org/show_bug.cgi?id=49098
3239
3240         Test: http/tests/security/drag-drop-different-origin.html
3241
3242         * page/DragController.cpp:
3243         (WebCore::DragController::tryDocumentDrag):
3244         * page/SecurityOrigin.cpp:
3245         (WebCore::SecurityOrigin::canDropOnTarget):
3246         * page/SecurityOrigin.h:
3247
3248 2010-11-11  Alexander Pavlov  <apavlov@chromium.org>
3249
3250         Reviewed by Yury Semikhatsky.
3251
3252         Web Inspector: Inspect element tooltip obscures element metrics
3253         https://bugs.webkit.org/show_bug.cgi?id=47822
3254
3255         * inspector/InspectorController.cpp:
3256         (WebCore::InspectorController::drawNodeHighlight):
3257         (WebCore::InspectorController::drawElementTitle):
3258
3259 2010-11-12  Luiz Agostini  <luiz.agostini@openbossa.org>
3260
3261         Reviewed by Kenneth Rohde Christiansen.
3262
3263         [Qt] Button's background style from default Qt Mobile Theme  is overriding facebook's button style
3264         https://bugs.webkit.org/show_bug.cgi?id=48198
3265
3266         Instead of creating gradients that goes from white to grey and cover the whole element the gradients
3267         are created by varying the alpha channel of a dark color. This way the effect will not override the
3268         background color of the elements.
3269
3270         * css/themeQtMobile.css:
3271
3272 2010-11-12  Justin Schuh  <jschuh@chromium.org>
3273
3274         Reviewed by Adam Barth.
3275
3276         Use a RefPtr inside ContainerNode::willRemove loop
3277         https://bugs.webkit.org/show_bug.cgi?id=49237
3278
3279         Test: fast/innerHTML/innerHTML-iframe.html
3280
3281         * dom/ContainerNode.cpp:
3282         (WebCore::ContainerNode::willRemove):
3283
3284 2010-11-12  Pavel Feldman  <pfeldman@chromium.org>
3285
3286         Reviewed by Yury Semikhatsky.
3287
3288         Web Inspector: add more event listener breakpoint types, add support for regular breakpoint hit state, beautify hit rendering.
3289         https://bugs.webkit.org/show_bug.cgi?id=49130
3290
3291         * English.lproj/localizedStrings.js:
3292         * inspector/front-end/BreakpointManager.js:
3293         (WebInspector.BreakpointManager.prototype.debuggerPaused):
3294         (WebInspector.Breakpoint.jsBreakpointId):
3295         (WebInspector.Breakpoint.prototype.get id):
3296         * inspector/front-end/BreakpointsSidebarPane.js:
3297         (WebInspector.EventListenerBreakpointsSidebarPane):
3298         (WebInspector.EventListenerBreakpointsSidebarPane.prototype._createCategory):
3299         * inspector/front-end/CallStackSidebarPane.js:
3300         (WebInspector.CallStackSidebarPane.prototype._breakpointHit): don't call populateStatusMessage for JS breakpoints
3301         since there is no specific message in that case.
3302         * inspector/front-end/ScriptsPanel.js:
3303         (WebInspector.ScriptsPanel):
3304         (WebInspector.ScriptsPanel.prototype.reset):
3305         * inspector/front-end/inspector.css:
3306         (#elements-sidebar):
3307         (.pane > .body):
3308         (#scripts-sidebar):
3309         (li.breakpoint-hit .breakpoint-hit-marker):
3310
3311 2010-11-12  Andrey Kosyakov  <caseq@chromium.org>
3312
3313         Reviewed by Yury Semikhatsky.
3314
3315         Web Inspector: [Extensions API] [refactoring] generate public API interfaces automatically
3316         https://bugs.webkit.org/show_bug.cgi?id=49441
3317
3318         * inspector/front-end/ExtensionAPI.js:
3319         (WebInspector.injectedExtensionAPI.PanelImpl):
3320         (WebInspector.injectedExtensionAPI):
3321         (WebInspector.injectedExtensionAPI.WatchExpressionSidebarPane):
3322         (WebInspector.injectedExtensionAPI.AuditCategoryImpl):
3323         (WebInspector.injectedExtensionAPI.AuditResultImpl):
3324         (WebInspector.injectedExtensionAPI.AuditResultImpl.prototype.get Severity):
3325         (WebInspector.injectedExtensionAPI.):
3326
3327 2010-11-12  Renata Hodovan  <reni@webkit.org>
3328
3329         Reviewed by Nikolas Zimmermann.
3330
3331         SVGFEDisplacementMapElement doesn't support dynamic invalidation
3332         https://bugs.webkit.org/show_bug.cgi?id=49430
3333
3334         The dynamic changes are captured by the svgAttributeChanged function. Invalidate the filter primitive if necessary.
3335
3336         Tests: svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr.html
3337                svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr.html
3338                svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr.html
3339                svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.html
3340                svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.html
3341                svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop.html
3342                svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop.html
3343                svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop.html
3344                svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.html
3345                svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.html
3346
3347         * svg/SVGFEDisplacementMapElement.cpp:
3348         (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
3349         * svg/SVGFEDisplacementMapElement.h:
3350
3351 2010-11-12  Andrey Kosyakov  <caseq@chromium.org>
3352
3353         Reviewed by Yury Semikhatsky.
3354
3355         Web Inspector: [refactoring] do not use absolute positioning for tabbed panes
3356         https://bugs.webkit.org/show_bug.cgi?id=49439
3357
3358         * inspector/front-end/TabbedPane.js:
3359         (WebInspector.TabbedPane):
3360         (WebInspector.TabbedPane.prototype.appendTab):
3361         * inspector/front-end/inspector.css:
3362         (.resource-view.visible):
3363         (.resource-view .tabbed-pane-header):
3364         (.resource-view-cookies):
3365         (.tabbed-pane):
3366         (.tabbed-pane-content):
3367         * inspector/front-end/networkPanel.css:
3368
3369 2010-11-12  John Knottenbelt  <jknotten@chromium.org>
3370
3371         Reviewed by Steve Block.
3372
3373         Rename GeolocationControllerClient to GeolocationClient.
3374         https://bugs.webkit.org/show_bug.cgi?id=49259
3375
3376         No new tests, renaming only.
3377
3378         * GNUmakefile.am:
3379         * WebCore.gypi:
3380         * WebCore.order:
3381         * WebCore.vcproj/WebCore.vcproj:
3382         * WebCore.xcodeproj/project.pbxproj:
3383         * page/GeolocationClient.h: Renamed from WebCore/page/GeolocationControllerClient.h.
3384         (WebCore::GeolocationClient::~GeolocationClient):
3385         * page/GeolocationController.cpp:
3386         (WebCore::GeolocationController::GeolocationController):
3387         * page/GeolocationController.h:
3388         * page/Page.h:
3389
3390 2010-11-12  Ilya Sherman  <isherman@chromium.org>
3391
3392         Reviewed by Eric Seidel.
3393
3394         Remove some trailing whitespace
3395         https://bugs.webkit.org/show_bug.cgi?id=49433
3396
3397         * platform/PopupMenuClient.h:
3398         * platform/chromium/PopupMenuChromium.cpp:
3399         (WebCore::PopupContainer::show):
3400         (WebCore::PopupListBox::paintRow):
3401         (WebCore::PopupListBox::scrollToRevealRow):
3402         * platform/chromium/PopupMenuChromium.h:
3403         * platform/chromium/SearchPopupMenuChromium.cpp:
3404         * rendering/RenderMenuList.h:
3405         (WebCore::RenderMenuList::toRenderMenuList):
3406         * rendering/RenderTextControlSingleLine.h:
3407         (WebCore::toRenderTextControlSingleLine):
3408
3409 2010-11-12  Ryosuke Niwa  <rniwa@webkit.org>
3410
3411         Reviewed by Csaba Osztrogonác.
3412
3413         [qt] script-clone tests added in r71895 fails on qt platform
3414         https://bugs.webkit.org/show_bug.cgi?id=49429
3415
3416         Fixed parseEndElement to call ScriptElement's executeScript as supposed to that of ScriptController.
3417
3418         * dom/XMLDocumentParserQt.cpp:
3419         (WebCore::XMLDocumentParser::parseEndElement):
3420
3421 2010-11-05  MORITA Hajime  <morrita@google.com>
3422
3423         Reviewed by Kent Tamura.
3424
3425         Refactoring: Return values of TextCheckingHelper::paragraphAlignedRange should form a class.
3426         https://bugs.webkit.org/show_bug.cgi?id=49053
3427
3428         Replaced paragraphAlignedRange() function call into
3429         TextCheckingParagraph class. The class encapsulates a range of a
3430         paragraph, and its relation within associated checking range.
3431         Instance variables of the class are computed lazily. So we can save unnecessary
3432         memory allocation and DOM tree traversal.
3433         
3434         No new tests, no behavior change. 
3435
3436         * editing/Editor.cpp:
3437         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Replaced paragraphAlignedRange() call.
3438         (WebCore::Editor::changeBackToReplacedString): Replaced paragraphAlignedRange() call.
3439         * editing/TextCheckingHelper.cpp:
3440         (WebCore::expandToParagraphBoundary):
3441         (WebCore::TextCheckingParagraph::TextCheckingParagraph):
3442         (WebCore::TextCheckingParagraph::~TextCheckingParagraph):
3443         (WebCore::TextCheckingParagraph::expandRangeToNextEnd):
3444         (WebCore::TextCheckingParagraph::invalidateParagraphRangeValues):
3445         (WebCore::TextCheckingParagraph::rangeLength):
3446         (WebCore::TextCheckingParagraph::paragraphRange):
3447         (WebCore::TextCheckingParagraph::subrange):
3448         (WebCore::TextCheckingParagraph::offsetTo):
3449         (WebCore::TextCheckingParagraph::isEmpty):
3450         (WebCore::TextCheckingParagraph::offsetAsRange):
3451         (WebCore::TextCheckingParagraph::text):
3452         (WebCore::TextCheckingParagraph::checkingStart):
3453         (WebCore::TextCheckingParagraph::checkingEnd):
3454         (WebCore::TextCheckingParagraph::checkingLength):
3455         (WebCore::TextCheckingHelper::findFirstBadGrammar): Replaced paragraphAlignedRange() call.
3456         (WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange): Replaced paragraphAlignedRange() call.
3457         * editing/TextCheckingHelper.h:
3458         (WebCore::TextCheckingParagraph::textLength):
3459         (WebCore::TextCheckingParagraph::textSubstring):
3460         (WebCore::TextCheckingParagraph::textCharacters):
3461         (WebCore::TextCheckingParagraph::textCharAt):
3462         (WebCore::TextCheckingParagraph::checkingSubstring):
3463         (WebCore::TextCheckingParagraph::checkingRangeMatches):
3464         (WebCore::TextCheckingParagraph::isCheckingRangeCoveredBy):
3465         (WebCore::TextCheckingParagraph::checkingRangeCovers):
3466         (WebCore::TextCheckingParagraph::checkingRange):
3467         (WebCore::TextCheckingParagraph::isTextEmpty):
3468         (WebCore::TextCheckingParagraph::isRangeEmpty):
3469
3470 2010-11-11  Ryosuke Niwa  <rniwa@webkit.org>
3471
3472         Reviewed by Darin Adler.
3473
3474         Script runs more than once after a clone
3475         https://bugs.webkit.org/show_bug.cgi?id=48966
3476
3477         The bug was caused by cloneElementWithoutChildren's not propagating isEvaluated flag,
3478         which indicates whether or not the script has already started, and the fact
3479         neither HTMLScriptRunner nor XMLDocumentParser was setting isEvaluated flag to true.
3480
3481         Fixed the bug by making cloneElementWithoutChildren call a virtual cloneElementWithoutAttributesAndChildren,
3482         and override it in HTMLScriptElement and SVGScriptElement to propagate isEvaluated flag,
3483         and replacing direct access to ScriptController by a call to new ScriptElementData::executeScript,
3484         which updates the isEvaluated flag properly.
3485
3486         See also: http://www.whatwg.org/specs/web-apps/current-work/#already-started
3487
3488         Tests: fast/dom/script-clone-rerun-self.html
3489                fast/dom/script-clone-rerun.html
3490                svg/dom/SVGScriptElement/script-clone-rerun-self.svg
3491                svg/dom/SVGScriptElement/script-clone-rerun.svg