2adccbefc1b42394968977a2e0497fd2b00f56b6
[WebKit-https.git] / WebCore / ChangeLog
1 2008-04-04  Jon Honeycutt  <jhoneycutt@apple.com>
2
3         Reviewed by Beth.
4
5         Some clean up of AccessibilityObject:
6         - Use existing isImage() in more places.
7         - Use existing isTextControl() in more places.
8         - Added isRenderImage(). Check this before casting to RenderImage,
9           since other, non-RenderImage derived RenderObjects (e.g.
10           RenderListMarker) can return true for isImage().
11         - Fix two copy/paste errors with improper semicolons.
12
13         * page/AccessibilityObject.cpp:
14         (WebCore::AccessibilityObject::isImageButton): Use isImage().
15         (WebCore::AccessibilityObject::isRenderImage): Added.
16         (WebCore::AccessibilityObject::isAnchor): Use isImage().
17         (WebCore::AccessibilityObject::isAttachment): Same.
18         (WebCore::AccessibilityObject::accessibilityDescription): Same.
19         (WebCore::AccessibilityObject::accessibilityIsIgnored): Use
20         isRenderImage() instead of isImage().
21         (WebCore::AccessibilityObject::url): Use isImage().
22         (WebCore::AccessibilityObject::textControl): Remove improper semicolon, 
23         and use isTextControl().
24         (WebCore::AccessibilityObject::textMarkerForIndex): Same.
25         (WebCore::AccessibilityObject::indexForTextMarker): Use isTextControl().
26         (WebCore::AccessibilityObject::doAXRangeForLine): Same.
27         (WebCore::AccessibilityObject::doAXRangeForIndex): Same
28         (WebCore::AccessibilityObject::doAXStringForRange): Same.
29         (WebCore::AccessibilityObject::roleValue):  Use isImage().
30         (WebCore::AccessibilityObject::addChildren): Use isRenderImage().
31         * page/AccessibilityObject.h:
32
33 2008-04-04  Timothy Hatcher  <timothy@apple.com>
34
35         Fixes a null exception when hovering in some areas of the DOM tree.
36
37         Reviewed by Adam Roben.
38
39         * page/inspector/treeoutline.js:
40         (TreeOutline.prototype.treeElementFromPoint): Check listNode for null/undefined
41         before accessing any properties. Return null if listNode is null.
42
43 2008-04-04  Timothy Hatcher  <timothy@apple.com>
44
45         Changing WebInspector.currentFocusElement to/from an input element
46         does not change the actual focus of that input element. You see this
47         in the search field.
48
49         Reviewed by Adam Roben.
50
51         * page/inspector/inspector.js:
52         (WebInspector.set currentFocusElement): Call blur and focus if the
53         node implements them.
54
55 2008-04-04  David Hyatt  <hyatt@apple.com>
56
57         Improve the background size heuristic for SVGs used as background images with no intrinsic size specified.
58         Treat them as having a background-size of 100%.  This means their maximal size will be the box established
59         by background-origin.
60
61         Reviewed by Beth
62
63         * rendering/RenderBox.cpp:
64         (WebCore::RenderBox::calculateBackgroundSize):
65
66 2008-04-04  Timothy Hatcher  <timothy@apple.com>
67
68         Correctly show DOCTYPE in the breadcrumbs and match the CSS rules
69         from view-source.css for the DOCTYPE in the DOM tree.
70
71         Reviewed by Adam Roben.
72
73         * css/view-source.css: Add and correct comments about keeping
74         in-sync with inspector.css.
75         * page/inspector/ElementsPanel.js:
76         (WebInspector.DocumentPanel.prototype.updateBreadcrumb):
77         Add a case for Node.DOCUMENT_TYPE_NODE.
78         * page/inspector/inspector.css: Add a rule for .webkit-html-doctype.
79         * page/inspector/utilities.js:
80         (nodeTitleInfo): Use the webkit-html-doctype class for nodes
81         with Node.DOCUMENT_TYPE_NODE.
82
83 2008-04-04  Dan Bernstein  <mitz@apple.com>
84
85         - try to fix the Tiger build
86
87         * icu/unicode/uscript.h: Copied from WebKit/mac/icu/unicode/uscript.h.
88
89 2008-04-04  Adam Roben  <aroben@apple.com>
90
91         Copy icu/ to PrivateHeaders for WebKit's benefit
92
93         Rubberstamped by Tim Hatcher.
94
95         * WebCore.xcodeproj/project.pbxproj: Renamed the Copy Forwarding
96         Headers build phase to Copy Forwarding and ICU Headers, and added the
97         icu/ directory to it.
98
99 2008-04-04  Adam Roben  <aroben@apple.com>
100
101         Fix <rdar://problem/5804776> Would like to use WebCore's
102         ForwardingHeaders in WebKit without manually creating copies
103
104         Patch by Tim Hatcher, typed by me.
105
106         * WebCore.xcodeproj/project.pbxproj: Added a new build phase, Copy
107         Forwarding Headers, that copies the ForwardingHeaders directory to
108         WebCore's PrivateHeaders directory.
109
110 2008-04-04  Ada Chan  <adachan@apple.com>
111
112         Changed the signature of imageTitleForFilename so we can pass in the width
113         and height as integers.
114
115         Reviewed by Dan.
116
117         * page/mac/WebCoreViewFactory.h:
118         * platform/mac/LocalizedStringsMac.mm:
119         (WebCore::imageTitle):
120
121 2008-04-03  Dan Bernstein  <mitz@apple.com>
122
123         - Windows build fix
124
125         * platform/graphics/win/FontCacheWin.cpp:
126         (WebCore::matchImprovingEnumProc):
127
128 2008-04-03  Kevin Ollivier  <kevino@theolliviers.com>
129
130         Fix PlatformGradient so that it's a pointer on all platforms.
131
132         * platform/graphics/Gradient.h:
133
134 2008-04-03  Dan Bernstein  <mitz@apple.com>
135
136         - 64-bit build fix
137
138         * platform/mac/WebFontCache.mm:
139         (+[WebFontCache internalFontWithFamily:traits:weight:size:]):
140
141 2008-04-03  Kevin Ollivier  <kevino@theolliviers.com>
142
143         wx build fix. Add stubs for gradient class platform functions.
144
145         * platform/graphics/wx/GradientWx.cpp: Added.
146         (WebCore::Gradient::platformDestroy):
147         (WebCore::Gradient::platformGradient):
148
149 2008-04-03  Kevin Ollivier  <kevino@theolliviers.com>
150
151         Reviewed by Dan Bernstein.
152
153         Refactor Gradient.h to have the same API on platforms 
154         without a gradient class.
155
156         * platform/graphics/Gradient.h:
157
158 2008-04-03  Dan Bernstein  <mitz@apple.com>
159
160         - Qt build fix
161
162         * platform/graphics/qt/FontQt.cpp:
163         (WebCore::Font::Font):
164
165 2008-04-03  Dan Bernstein  <mitz@apple.com>
166
167         - Tiger build fix
168
169         * platform/mac/WebFontCache.mm:
170         * rendering/RenderThemeMac.mm:
171
172 2008-04-03  Dan Bernstein  <mitz@apple.com>
173
174         - Gtk build fix
175
176         * platform/graphics/gtk/FontPlatformData.h:
177         (WebCore::FontPlatformData::size):
178         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
179         (WebCore::FontPlatformData::FontPlatformData):
180         * platform/graphics/gtk/FontPlatformDataPango.cpp:
181         (WebCore::FontPlatformData::FontPlatformData):
182
183 2008-04-03  Dan Bernstein  <mitz@apple.com>
184
185         - project file updates in preparation for build fixes
186
187         * GNUmakefile.am:
188         * WebCore.pro:
189         * WebCoreSources.bkl:
190
191 2008-04-03  Nicholas Shanks  <webkit@nickshanks.com>
192
193         Updated by Dan Bernstein. Reviewed by Dave Hyatt.
194
195         - WebCore part of fixing http://bugs.webkit.org/show_bug.cgi?id=6484
196           font-weight does not properly support graded weights
197
198         Tests to come: <http://bugs.webkit.org/show_bug.cgi?id=18306>
199
200         Build fixes for platforms other than Mac and Windows to come.
201
202         * WebCore.vcproj/WebCore.vcproj: Added FontDescription.cpp.
203
204         * WebCore.xcodeproj/project.pbxproj: Ditto.
205
206         * css/CSSComputedStyleDeclaration.cpp:
207         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed to
208         return additional weight value keywords 100, 200, 300, 500, 600, 800
209         and 900.
210
211         * css/CSSFontSelector.cpp:
212         (WebCore::hashForFont): Changed the bold parameter into a weight
213         parameter and added the weight to the string to be hashed.
214         (WebCore::CSSFontSelector::addFontFaceRule): Changed to apply all CSS
215         weight values to the font description.
216         (WebCore::CSSFontSelector::getFontData): Updated the fallback logic to
217         go through all weights equal or lighter from the desired weight. For
218         SVG, to also consider heavier weights.
219
220         * css/CSSParser.cpp:
221         (WebCore::CSSParser::parseValue): Cleaned up parsing of the font-weight
222         property.
223
224         * css/CSSStyleSelector.cpp:
225         (WebCore::CSSStyleSelector::applyProperty): Changed to apply all CSS
226         weight values to the font description.
227
228         * platform/graphics/Font.h:
229         (WebCore::Font::weight): Updated for the change to
230         FontDescription::weight().
231
232         * platform/graphics/FontCache.cpp:
233         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Replaced
234         the bold component of the key with a weight component.
235         (WebCore::FontPlatformDataCacheKey::operator==): Updated for the above.
236         (WebCore::computeHash): Ditto.
237         (WebCore::FontPlatformDataCacheKeyTraits::deletedValue): Removed
238         unnecessary parameters.
239         (WebCore::FontPlatformDataCacheKeyTraits::emptyValue): Ditto.
240         (WebCore::FontCache::getCachedFontPlatformData): Updated for the change
241         in FontPlatformDataCacheKey.
242
243         * platform/graphics/FontDescription.cpp: Added.
244         (WebCore::FontDescription::lighterWeight): Added. Returns a lighter CSS
245         font-weight value if there is one, or the lightest value.
246         (WebCore::FontDescription::bolderWeight): Added. Returns a heavier CSS
247         font-weight value if there is one, or the heaviest value.
248
249         * platform/graphics/FontDescription.h:
250         (WebCore::FontWeight): Added this enumeration.
251         (WebCore::FontDescription::FontDescription):
252         (WebCore::FontDescription::bold): Removed.
253         (WebCore::FontDescription::weight): Changed to return a FontWeight.
254         (WebCore::FontDescription::setBold): Removed.
255         (WebCore::FontDescription::setWeight): Changed to take a FontWeight.
256
257         * platform/graphics/mac/FontCacheMac.mm:
258         (WebCore::toAppKitFontWeight): Added. Maps a FontWeight to the AppKit
259         font weight scale of 0-15.
260         (WebCore::isAppKitFontWeightBold): Added.
261         (WebCore::FontCache::getFontDataForCharacters): Changed to use a weight
262         instead of the bold trait for custom fonts, and to decide whether to
263         synthesize bold based on the weights rather than the bold trait.
264         (WebCore::FontCache::fontExists): Updated for the change in
265         WebFontCache .
266         (WebCore::FontCache::createFontPlatformData): Ditto. Also changed to
267         decide whether to synthesize bold based on the weights rather than on
268         the bold trait.
269
270         * platform/graphics/win/FontCacheWin.cpp:
271         (WebCore::toGDIFontWeight): Added. Maps a FontWeight to a GDI font
272         weight constant.
273         (WebCore::isGDIFontWeightBold): Added.
274         (WebCore::adjustedGDIFontWeight): Added.
275         (WebCore::MatchImprovingProcData::MatchImprovingProcData): Added this
276         data structure for use by the following callback.
277         (WebCore::matchImprovingEnumProc): Added. The logic of this method is a
278         simplification of the betterChoice() predicate in WebFontCache.mm, which
279         considers only the italic trait and the weight.
280         (WebCore::createGDIFont): Added. Similarly to
281         +[WebFontCache fontWithFamily:traits:weight:size:], this function
282         finds the closest match in the family for the desired italic bit and
283         weight.
284         (WebCore::FontCache::fontExists): Changed to call createGDIFont().
285         (WebCore::FontCache::createFontPlatformData): Ditto. Also changed to
286         compute the synthetic bold and synthetic italic flags based on weights
287         and italic bits and pass them to the FontPlatformData constructor.
288
289         * platform/graphics/win/FontPlatformDataWin.cpp:
290         (WebCore::FontPlatformData::FontPlatformData): Changed the bold and
291         oblique parameters to mean whether these should be synthesized and
292         removed the font enumeration code that used to decide that.
293
294         * platform/graphics/win/SimpleFontDataWin.cpp:
295         (WebCore::SimpleFontData::smallCapsFontData): Changed to pass the
296         synthetic bold and oblique flags from the full-size FontPlatformData to
297         the FontPlatformData constructor for the small caps font.
298
299         * platform/mac/WebCoreTextRenderer.h:
300         * platform/mac/WebCoreTextRenderer.mm:
301         (WebCoreFindFont): Added a weight parameter, which is passed to
302         +[WebFontCache fontWithFamily:traits:weight:size:].
303
304         * platform/mac/WebFontCache.h:
305         * platform/mac/WebFontCache.mm:
306         (acceptableChoice):
307         (betterChoice): Changed to ignore the bold trait. Changed the logic for
308         deciding based on weights to prefer the font whose weight is closer to
309         the desired one, or, if both candidates' weights are the same distance
310         from the desired weight, the one that is more "off-center". 
311         (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Changed to
312         check for weight when matching by full name. Changed to pass
313         the actual desired weight instead of the constant 5 to
314         acceptableChoice() and betterChoice(). Changed to use weights to decide
315         whether to synthesize bold.
316         (+[WebFontCache fontWithFamily:traits:weight:size:]): Added a weight
317         parameter, which is passed to the internal method.
318
319         * platform/win/PopupMenuWin.cpp:
320         (WebCore::PopupMenu::paint): Updated for the change to FontDescription.
321
322         * rendering/RenderListBox.cpp:
323         (WebCore::RenderListBox::updateFromElement): Ditto.
324         (WebCore::RenderListBox::paintItemForeground): Ditto.
325
326         * rendering/RenderThemeMac.mm:
327         (WebCore::toFontWeight): Added. Maps the AppKit font weight range of
328         0-15 to the FontWeight range.
329         (WebCore::RenderThemeMac::systemFont): Updated for the change to
330         FontDescription.
331
332         * rendering/RenderThemeSafari.cpp:
333         (WebCore::RenderThemeSafari::systemFont): Ditto.
334
335 2008-04-03  Dan Bernstein  <mitz@apple.com>
336
337         - another Gtk build fix attempt
338
339         * platform/graphics/cairo/GradientCairo.cpp:
340         (WebCore::Gradient::platformDestroy):
341
342 2008-04-03  Dan Bernstein  <mitz@apple.com>
343
344         - attempted Gtk build fix
345
346         * GNUmakefile.am:
347
348 2008-04-03  Dan Bernstein  <mitz@apple.com>
349
350         - attempted Qt build fix
351
352         * platform/graphics/qt/GradientQt.cpp:
353         (WebCore::Gradient::platformDestroy):
354
355 2008-04-03  Dan Bernstein  <mitz@apple.com>
356
357         - attempted Gtk build fix
358
359         * html/CanvasRenderingContext2D.cpp:
360         (WebCore::CanvasRenderingContext2D::stroke):
361
362 2008-04-03  Dan Bernstein  <mitz@apple.com>
363
364         - attempted Qt build fix
365
366         * html/CanvasRenderingContext2D.cpp:
367         (WebCore::CanvasRenderingContext2D::stroke):
368
369 2008-04-03  Beth Dakin  <bdakin@apple.com>
370
371         Reviewed by Alice.
372
373         Build fix for non-Macs.
374
375         * page/AXObjectCache.h:
376         (WebCore::AXObjectCache::isIDinUse):
377
378 2008-04-03  Brent Fulgham  <bfulgham@gmail.com>
379
380         Reviewed by Darin.
381
382         Correct build error due to incomplete merging of changes to project
383         files from Issue 17985.  This small project file patch corrects
384         the build issue (see http://bugs.webkit.org/show_bug.cgi?id=18195).
385
386         * WebCore.vcproj/WebCore.vcproj:
387
388 2008-04-02  Beth Dakin  <bdakin@apple.com>
389
390         Reviewed by Hyatt.
391
392         This patch eliminates AccessibilityObjectMac. All of the platform-
393         specific code is now in AccessibilityObjectWrapper.
394
395         * WebCore.xcodeproj/project.pbxproj:
396         * dom/Element.h:
397         (WebCore::Element::isPasswordField):
398         * html/HTMLInputElement.h:
399         (WebCore::HTMLInputElement::isPasswordField):
400         * page/AXObjectCache.h:
401         (WebCore::AXObjectCache::isIDinUse):
402         * page/AccessibilityObject.cpp:
403         (WebCore::AccessibilityObject::isPasswordField):
404         (WebCore::AccessibilityObject::press):
405         (WebCore::AccessibilityObject::widgetForAttachmentView):
406         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
407         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
408         * page/AccessibilityObject.h:
409         (WebCore::AccessibilityObject::areaElement):
410         (WebCore::AccessibilityObject::setWrapper):
411         * page/mac/AXObjectCacheMac.mm:
412         * page/mac/AccessibilityObjectMac.mm: Removed.
413         * page/mac/AccessibilityObjectWrapper.h:
414         * page/mac/AccessibilityObjectWrapper.mm:
415         (-[AccessibilityObjectWrapper attachmentView]):
416         (textMarkerForVisiblePosition):
417         (visiblePositionForTextMarker):
418         (visiblePositionForStartOfTextMarkerRange):
419         (visiblePositionForEndOfTextMarkerRange):
420         (textMarkerRangeFromMarkers):
421         (AXAttributeStringSetFont):
422         (CreateCGColorIfDifferent):
423         (AXAttributeStringSetColor):
424         (AXAttributeStringSetNumber):
425         (AXAttributeStringSetStyle):
426         (blockquoteLevel):
427         (AXAttributeStringSetBlockquoteLevel):
428         (AXAttributeStringSetSpelling):
429         (AXAttributeStringSetHeadingLevel):
430         (AXLinkElementForNode):
431         (AXAttributeStringSetElement):
432         (AXAttributedStringAppendText):
433         (nsStringForReplacedNode):
434         (-[AccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
435         (textMarkerRangeFromVisiblePositions):
436         (-[AccessibilityObjectWrapper accessibilityActionNames]):
437         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
438         (-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
439         (-[AccessibilityObjectWrapper textMarkerRangeForSelection]):
440         (-[AccessibilityObjectWrapper position]):
441         (createAccessibilityRoleMap):
442         (RoleEntry::):
443         (roleValueToNSString):
444         (-[AccessibilityObjectWrapper role]):
445         (-[AccessibilityObjectWrapper subrole]):
446         (-[AccessibilityObjectWrapper roleDescription]):
447         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
448         (-[AccessibilityObjectWrapper accessibilityIsIgnored]):
449         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
450         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
451         (-[AccessibilityObjectWrapper doAXRTFForRange:]):
452         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
453         (-[AccessibilityObjectWrapper accessibilityShouldUseUniqueId]):
454         * platform/ScrollView.h:
455         * platform/mac/ScrollViewMac.mm:
456         (WebCore::ScrollView::viewRectToScreen):
457         (WebCore::ScrollView::absolutePointToView):
458
459 2008-04-03  David Hyatt  <hyatt@apple.com>
460
461         Create a new cross-platform Gradient abstraction and make CanvasGradient wrap it.  This first
462         step just cleans up CanvasGradient.  The code that calls it remains ifdef'd however.
463
464         Reviewed by olliej
465
466         * WebCore.pro:
467         * WebCore.vcproj/WebCore.vcproj:
468         * WebCore.xcodeproj/project.pbxproj:
469         * WebCoreSources.bkl:
470         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
471         (WebCore::toJS):
472         * html/CanvasGradient.cpp:
473         (WebCore::CanvasGradient::CanvasGradient):
474         * html/CanvasGradient.h:
475         (WebCore::CanvasGradient::gradient):
476         (WebCore::CanvasGradient::addColorStop):
477         (WebCore::CanvasGradient::getColor):
478         * html/CanvasRenderingContext2D.cpp:
479         (WebCore::CanvasRenderingContext2D::fill):
480         (WebCore::CanvasRenderingContext2D::stroke):
481         (WebCore::CanvasRenderingContext2D::fillRect):
482         * html/CanvasStyle.h:
483         (WebCore::CanvasStyle::canvasGradient):
484         * platform/graphics/Gradient.cpp: Added.
485         (WebCore::Gradient::Gradient):
486         (WebCore::Gradient::~Gradient):
487         (WebCore::Gradient::addColorStop):
488         (WebCore::compareStops):
489         (WebCore::Gradient::getColor):
490         (WebCore::Gradient::findStop):
491         * platform/graphics/Gradient.h: Added.
492         (WebCore::Gradient::ColorStop::ColorStop):
493         (WebCore::Gradient::platformInit):
494         * platform/graphics/cairo/GradientCairo.cpp: Added.
495         (WebCore::Gradient::platformDestroy):
496         (WebCore::Gradient::platformGradient):
497         * platform/graphics/cg/GradientCG.cpp: Added.
498         (WebCore::Gradient::platformDestroy):
499         (WebCore::gradientCallback):
500         (WebCore::Gradient::platformGradient):
501         * platform/graphics/qt/GradientQt.cpp: Added.
502         (WebCore::Gradient::platformDestroy):
503         (WebCore::Gradient::platformGradient):
504
505 2008-04-03  Simon Hausmann  <hausmann@webkit.org>
506
507         Reviewed by Mark Rowe.
508
509         Roll out r31599 and r31605 again after discussion with Mark Rowe.
510
511         * history/HistoryItem.cpp:
512         * loader/FrameLoader.cpp:
513         (WebCore::FrameLoader::startIconLoader):
514         * loader/icon/IconDatabase.cpp:
515         (WebCore::IconDatabase::iconForPageURL):
516         (WebCore::IconDatabase::readIconForPageURLFromDisk):
517         * loader/icon/IconDatabase.h:
518         * loader/icon/IconDatabaseNone.cpp:
519
520 2008-04-03  David Hyatt  <hyatt@apple.com>
521
522         Fix for bug 18194, resizable text fields get messed up when resizing in the presence of zoom.
523
524         Reviewed by adele
525
526         * rendering/RenderLayer.cpp:
527         (WebCore::RenderLayer::resize):
528
529 2008-04-03  Oliver Hunt  <oliver@apple.com>
530
531         Reviewed by NOBODY (Rollout).
532
533         Rollout r31566 as there were a few issues i missed during review (thanks to antti for pointing them out)
534
535         * dom/Element.h:
536         * dom/NamedAttrMap.h:
537         * rendering/SVGRootInlineBox.cpp:
538         (WebCore::SVGRootInlineBox::buildLayoutInformation):
539         (WebCore::SVGRootInlineBox::buildTextChunks):
540         * svg/SVGAElement.h:
541         (WebCore::SVGAElement::contextElement):
542         * svg/SVGAltGlyphElement.h:
543         (WebCore::SVGAltGlyphElement::contextElement):
544         * svg/SVGAnimateColorElement.h:
545         * svg/SVGAnimateElement.h:
546         * svg/SVGAnimateMotionElement.h:
547         * svg/SVGAnimateTransformElement.h:
548         * svg/SVGAnimatedTemplate.h:
549         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
550         (WebCore::lookupOrCreateWrapper):
551         * svg/SVGAnimationElement.h:
552         * svg/SVGCircleElement.h:
553         (WebCore::SVGCircleElement::contextElement):
554         * svg/SVGClipPathElement.h:
555         (WebCore::SVGClipPathElement::contextElement):
556         * svg/SVGComponentTransferFunctionElement.cpp:
557         * svg/SVGComponentTransferFunctionElement.h:
558         * svg/SVGCursorElement.cpp:
559         (WebCore::SVGCursorElement::SVGCursorElement):
560         * svg/SVGCursorElement.h:
561         (WebCore::SVGCursorElement::contextElement):
562         * svg/SVGDefsElement.h:
563         (WebCore::SVGDefsElement::contextElement):
564         * svg/SVGElement.cpp:
565         * svg/SVGElement.h:
566         (WebCore::SVGElement::svgAttributeChanged):
567         * svg/SVGEllipseElement.cpp:
568         (WebCore::SVGEllipseElement::SVGEllipseElement):
569         * svg/SVGEllipseElement.h:
570         (WebCore::SVGEllipseElement::contextElement):
571         * svg/SVGExternalResourcesRequired.h:
572         * svg/SVGFEBlendElement.h:
573         * svg/SVGFEColorMatrixElement.cpp:
574         * svg/SVGFEColorMatrixElement.h:
575         * svg/SVGFEComponentTransferElement.h:
576         * svg/SVGFECompositeElement.h:
577         * svg/SVGFEDiffuseLightingElement.h:
578         * svg/SVGFEDisplacementMapElement.h:
579         * svg/SVGFEFloodElement.h:
580         * svg/SVGFEGaussianBlurElement.h:
581         * svg/SVGFEImageElement.cpp:
582         * svg/SVGFEImageElement.h:
583         (WebCore::SVGFEImageElement::contextElement):
584         * svg/SVGFELightElement.h:
585         * svg/SVGFEMergeElement.h:
586         * svg/SVGFEMergeNodeElement.h:
587         * svg/SVGFEOffsetElement.h:
588         * svg/SVGFESpecularLightingElement.h:
589         * svg/SVGFETileElement.h:
590         * svg/SVGFETurbulenceElement.h:
591         * svg/SVGFilterElement.cpp:
592         (WebCore::SVGFilterElement::SVGFilterElement):
593         * svg/SVGFilterElement.h:
594         (WebCore::SVGFilterElement::contextElement):
595         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
596         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
597         * svg/SVGFilterPrimitiveStandardAttributes.h:
598         * svg/SVGFitToViewBox.cpp:
599         * svg/SVGFitToViewBox.h:
600         * svg/SVGFontElement.h:
601         * svg/SVGForeignObjectElement.cpp:
602         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
603         * svg/SVGForeignObjectElement.h:
604         (WebCore::SVGForeignObjectElement::contextElement):
605         * svg/SVGGElement.h:
606         (WebCore::SVGGElement::contextElement):
607         * svg/SVGGradientElement.cpp:
608         * svg/SVGGradientElement.h:
609         * svg/SVGImageElement.cpp:
610         (WebCore::SVGImageElement::SVGImageElement):
611         * svg/SVGImageElement.h:
612         (WebCore::SVGImageElement::contextElement):
613         * svg/SVGLength.cpp:
614         * svg/SVGLength.h:
615         * svg/SVGLengthList.cpp:
616         * svg/SVGLengthList.h:
617         * svg/SVGLineElement.cpp:
618         (WebCore::SVGLineElement::SVGLineElement):
619         * svg/SVGLineElement.h:
620         (WebCore::SVGLineElement::contextElement):
621         * svg/SVGLinearGradientElement.cpp:
622         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
623         (WebCore::SVGLinearGradientElement::collectGradientProperties):
624         * svg/SVGLinearGradientElement.h:
625         * svg/SVGMPathElement.h:
626         * svg/SVGMarkerElement.cpp:
627         (WebCore::SVGMarkerElement::SVGMarkerElement):
628         * svg/SVGMarkerElement.h:
629         (WebCore::SVGMarkerElement::contextElement):
630         * svg/SVGMaskElement.cpp:
631         (WebCore::SVGMaskElement::SVGMaskElement):
632         * svg/SVGMaskElement.h:
633         * svg/SVGNumberList.cpp:
634         * svg/SVGNumberList.h:
635         * svg/SVGPathElement.h:
636         (WebCore::SVGPathElement::contextElement):
637         * svg/SVGPatternElement.cpp:
638         (WebCore::SVGPatternElement::SVGPatternElement):
639         (WebCore::SVGPatternElement::collectPatternProperties):
640         * svg/SVGPatternElement.h:
641         * svg/SVGPolyElement.h:
642         (WebCore::SVGPolyElement::contextElement):
643         * svg/SVGPreserveAspectRatio.cpp:
644         * svg/SVGPreserveAspectRatio.h:
645         * svg/SVGRadialGradientElement.cpp:
646         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
647         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
648         (WebCore::SVGRadialGradientElement::collectGradientProperties):
649         * svg/SVGRadialGradientElement.h:
650         * svg/SVGRectElement.cpp:
651         (WebCore::SVGRectElement::SVGRectElement):
652         * svg/SVGRectElement.h:
653         (WebCore::SVGRectElement::contextElement):
654         * svg/SVGSVGElement.cpp:
655         (WebCore::SVGSVGElement::SVGSVGElement):
656         (WebCore::SVGSVGElement::currentView):
657         * svg/SVGSVGElement.h:
658         * svg/SVGScriptElement.h:
659         (WebCore::SVGScriptElement::contextElement):
660         * svg/SVGSetElement.h:
661         * svg/SVGStyledElement.h:
662         * svg/SVGStyledTransformableElement.cpp:
663         * svg/SVGStyledTransformableElement.h:
664         * svg/SVGSwitchElement.h:
665         (WebCore::SVGSwitchElement::contextElement):
666         * svg/SVGSymbolElement.h:
667         (WebCore::SVGSymbolElement::contextElement):
668         * svg/SVGTRefElement.h:
669         (WebCore::SVGTRefElement::contextElement):
670         * svg/SVGTSpanElement.h:
671         * svg/SVGTextContentElement.cpp:
672         (WebCore::SVGTextContentElement::SVGTextContentElement):
673         * svg/SVGTextContentElement.h:
674         * svg/SVGTextElement.cpp:
675         * svg/SVGTextElement.h:
676         (WebCore::SVGTextElement::contextElement):
677         * svg/SVGTextPathElement.cpp:
678         (WebCore::SVGTextPathElement::SVGTextPathElement):
679         * svg/SVGTextPathElement.h:
680         (WebCore::SVGTextPathElement::contextElement):
681         * svg/SVGTextPositioningElement.cpp:
682         * svg/SVGTextPositioningElement.h:
683         * svg/SVGTransformList.cpp:
684         * svg/SVGTransformList.h:
685         * svg/SVGURIReference.h:
686         * svg/SVGUseElement.cpp:
687         (WebCore::SVGUseElement::SVGUseElement):
688         * svg/SVGUseElement.h:
689         (WebCore::SVGUseElement::contextElement):
690         * svg/SVGViewElement.h:
691         (WebCore::SVGViewElement::contextElement):
692         * svg/SVGViewSpec.cpp:
693         * svg/SVGViewSpec.h:
694
695 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
696
697         Reviewed by Simon.
698
699         * Change IconDatabase::iconForPageURL to return more information. E.g. if
700         an image has been found, or if the loading of an image has been scheduled.
701         * Update FrameLoader to use another method to trigger reading from disk
702         * Update the QWebFrame and QWebSettings
703
704         * history/HistoryItem.cpp:
705         * loader/FrameLoader.cpp:
706         * loader/icon/IconDatabase.cpp:
707         (WebCore::IconDatabase::iconForPageURL):
708         (WebCore::IconDatabase::readIconForPageURLFromDisk):
709         (WebCore::IconDatabase::iconURLForPageURL):
710         (WebCore::IconDatabase::defaultIcon):
711         * loader/icon/IconDatabase.h:
712         (WebCore::):
713
714 2008-04-03  Dan Bernstein  <mitz@apple.com>
715
716         - Mac build fix
717
718         * WebCore.base.exp:
719
720 2008-04-03  Simon Hausmann  <hausmann@webkit.org>
721
722         Fix the build when building without icondatabase.
723
724         * loader/icon/IconDatabaseNone.cpp: Fix the function signature, no
725         bool cache anymore.
726
727 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
728
729         Reviewed by Simon.
730
731         * Remove the unused 'cache' parameter
732
733         * loader/icon/IconDatabase.cpp:
734         (WebCore::IconDatabase::iconForPageURL):
735         * loader/icon/IconDatabase.h:
736
737 2008-04-03  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
738
739         Reviewed by Simon.
740
741         * Add WebCore/loader/icon to the DEPENDPATH as well
742
743         * WebCore.pro:
744
745 2008-04-02  Brady Eidson  <beidson@apple.com>
746
747         Reviewed by Mitz Pettel
748
749         <rdar://problem/5838347> and http://bugs.webkit.org/show_bug.cgi?id=11839
750         Webarchive fails to save CSS files in @import statements
751
752         * css/CSSStyleSheet.cpp:
753         (WebCore::CSSStyleSheet::addSubresourceURLStrings): Recursively add the URL each @import rule under the current style sheet.
754         * css/CSSStyleSheet.h:
755         * css/StyleSheet.h:
756         (WebCore::StyleSheet::addSubresourceURLStrings):
757
758         * html/HTMLLinkElement.cpp:
759         (WebCore::HTMLLinkElement::getSubresourceAttributeStrings): Add the linked URL as well as all @import
760           rules rooted at the linked stylesheet.
761
762         * html/HTMLStyleElement.cpp:
763         (WebCore::HTMLStyleElement::getSubresourceAttributeStrings): Walk all @import rules rooted at this
764           stylesheet to add to the list.
765         * html/HTMLStyleElement.h:
766
767 2008-04-02  Mark Rowe  <mrowe@apple.com>
768
769         Reviewed by Oliver Hunt.
770
771         Ensure that debug symbols are generated for x86_64 and ppc64 builds.
772
773         * Configurations/Base.xcconfig:
774
775 2008-04-02  Christian Persch  <chpe@gnome.org>
776
777         Reviewed by Alp Toker.
778
779         GTK+/Pango font backend build fix.
780
781         * platform/graphics/gtk/FontCustomPlatformDataPango.cpp:
782         (WebCore::FontCustomPlatformData::fontPlatformData):
783
784 2008-04-02  Eric Seidel  <eric@webkit.org>
785
786         No review, build fix only.
787
788         Speculative build fix for no-svg build.
789         Use #if ENABLE(SVG) instead of #if ENABLE_SVG
790
791         * css/CSSMutableStyleDeclaration.cpp:
792         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
793
794 2008-04-02  Adam Roben  <aroben@apple.com>
795
796         Rename instances of ExecState from "state" to "exec" in
797         JavaScriptDebugServer
798
799         Rename requested by Darin Adler.
800
801         * page/JavaScriptDebugServer.cpp:
802
803 2008-04-02  Adam Roben  <aroben@apple.com>
804
805         Make it possible for JavaScriptDebugListeners to listen to specific Pages
806
807         JavaScriptDebugServer now has overloads of its
808         addListener/removeListener methods that take a Page* to indicate for
809         which Page the JavaScriptDebugListener wishes to receive messages.
810
811         Reviewed by Darin.
812
813         * page/JavaScriptDebugServer.cpp:
814         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer): Delete all
815         ListenerSets being held in m_pageListenersMap.
816         (WebCore::JavaScriptDebugServer::addListener): Changed to call
817         hasListeners().
818         (WebCore::JavaScriptDebugServer::removeListener): Ditto.
819         (WebCore::JavaScriptDebugServer::addListener): Added. This overload
820         takes a Page* and puts the listener in the appropriate ListenerSet
821         within m_pageListenersMap. The ListenerSet is allocated and added to
822         m_pageListenersMap when its first listener is added.
823         (WebCore::JavaScriptDebugServer::removeListener): Added. This overload
824         takes a Page* and removes the listener from the appropriate
825         ListenerSet in m_pageListenersMap. The ListenerSet is deleted and
826         removed from m_pageListenersMap when its last listener is removed.
827         (WebCore::toPage): Added. Retrieves the parent Page from an ExecState.
828         (WebCore::JavaScriptDebugServer::sourceParsed): Changed to call
829         dispatchDidParseSource/dispatchDidFailToParseSource for both the
830         global listeners and the Page listeners.
831         (WebCore::dispatchFunctionToListeners): Added. This code was extracted
832         from the JavaScriptDebugServer method of the same name.
833         (WebCore::JavaScriptDebugServer::dispatchFunctionToListeners): Call
834         dispatchFunctionToListeners for both the global listeners and the Page
835         listeners.
836         * page/JavaScriptDebugServer.h:
837           - Added declarations for new methods.
838           - Made JavaScriptExecutionCallback typedef public so that it could
839             be used by a helper method.
840           - Added new m_pageListenersMap member.
841 2008-04-02  Simon Hausmann  <hausmann@webkit.org>
842
843         Fix compilation on case-sensitive file systems.
844
845         * svg/SVGGradientElement.h: Include SVGTransformList.h instead of
846         SVGTRansformlist.h
847
848 2008-04-02  Nikolas Zimmermann  <zimmermann@kde.org>
849
850         Reviewed by Oliver.
851
852         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17779 (SVG 1.1 Errata demands "SVG JavaScript Liveness" support)
853
854         SVG Errata states: "All SVG DOM objects that directly correspond to an
855         attribute, e.g. the SVGAnimatedLength 'ry' in an SVGRectElement, are live. This
856         means that any changes made to the attribute are immediately reflected in the
857         corresponding SVG DOM object." (see linked URL on bug report)
858
859         Until now only XML -> SVG DOM changes took affect, aka. changing the 'rx' attribute of a <rect>
860         element resuted in changes when accessing 'rx' through SVG DOM (rx.baseVal.value).
861
862         Add a new synchronization layer to handle SVG DOM -> XML changes.
863
864         Added Test: svg/custom/svg-xml-dom-sync.html
865
866         * dom/Element.h:
867         * dom/NamedAttrMap.h:
868         * rendering/SVGRootInlineBox.cpp:
869         (WebCore::nodeToTextContentElement):
870         (WebCore::nodeToTextPositioningElement):
871         (WebCore::SVGRootInlineBox::buildLayoutInformation):
872         (WebCore::SVGRootInlineBox::buildTextChunks):
873         * svg/SVGAElement.h:
874         (WebCore::SVGAElement::contextElement):
875         * svg/SVGAltGlyphElement.h:
876         (WebCore::SVGAltGlyphElement::contextElement):
877         * svg/SVGAnimateColorElement.h:
878         (WebCore::SVGAnimateColorElement::contextElement):
879         * svg/SVGAnimateElement.h:
880         (WebCore::SVGAnimateElement::contextElement):
881         * svg/SVGAnimateMotionElement.h:
882         (WebCore::SVGAnimateMotionElement::contextElement):
883         * svg/SVGAnimateTransformElement.h:
884         (WebCore::SVGAnimateTransformElement::contextElement):
885         * svg/SVGAnimatedTemplate.h:
886         (WebCore::SVGAnimatedTemplate::toString):
887         (WebCore::SVGAnimatedTemplate::associatedAttributeName):
888         (WebCore::lookupOrCreateWrapper):
889         (WebCore::SVGAnimatedAngle::SVGAnimatedAngle):
890         (WebCore::SVGAnimatedAngle::toString):
891         (WebCore::SVGAnimatedBoolean::SVGAnimatedBoolean):
892         (WebCore::SVGAnimatedBoolean::toString):
893         (WebCore::SVGAnimatedEnumeration::SVGAnimatedEnumeration):
894         (WebCore::SVGAnimatedEnumeration::toString):
895         (WebCore::SVGAnimatedInteger::SVGAnimatedInteger):
896         (WebCore::SVGAnimatedInteger::toString):
897         (WebCore::SVGAnimatedLength::SVGAnimatedLength):
898         (WebCore::SVGAnimatedLength::toString):
899         (WebCore::SVGAnimatedLengthList::SVGAnimatedLengthList):
900         (WebCore::SVGAnimatedLengthList::toString):
901         (WebCore::SVGAnimatedNumber::SVGAnimatedNumber):
902         (WebCore::SVGAnimatedNumber::toString):
903         (WebCore::SVGAnimatedNumberList::SVGAnimatedNumberList):
904         (WebCore::SVGAnimatedNumberList::toString):
905         (WebCore::SVGAnimatedPreserveAspectRatio::SVGAnimatedPreserveAspectRatio):
906         (WebCore::SVGAnimatedPreserveAspectRatio::toString):
907         (WebCore::SVGAnimatedRect::SVGAnimatedRect):
908         (WebCore::SVGAnimatedRect::toString):
909         (WebCore::SVGAnimatedString::SVGAnimatedString):
910         (WebCore::SVGAnimatedString::toString):
911         (WebCore::SVGAnimatedTransformList::SVGAnimatedTransformList):
912         (WebCore::SVGAnimatedTransformList::toString):
913         (WebCore::SVGAnimatedType::SVGAnimatedType):
914         * svg/SVGAnimationElement.h:
915         * svg/SVGCircleElement.h:
916         (WebCore::SVGCircleElement::contextElement):
917         * svg/SVGClipPathElement.h:
918         (WebCore::SVGClipPathElement::contextElement):
919         * svg/SVGComponentTransferFunctionElement.cpp:
920         * svg/SVGComponentTransferFunctionElement.h:
921         * svg/SVGCursorElement.cpp:
922         (WebCore::SVGCursorElement::SVGCursorElement):
923         * svg/SVGCursorElement.h:
924         (WebCore::SVGCursorElement::contextElement):
925         * svg/SVGDefsElement.h:
926         (WebCore::SVGDefsElement::contextElement):
927         * svg/SVGElement.cpp:
928         (WebCore::SVGElement::getAttribute):
929         * svg/SVGElement.h:
930         (LazilyUpdatedType::LazilyUpdatedType):
931         (LazilyUpdatedType::operator=):
932         (LazilyUpdatedType::operator==):
933         (LazilyUpdatedType::operator!=):
934         (LazilyUpdatedType::operator StoredType):
935         (WebCore::SVGElement::invokeSVGPropertySynchronizer):
936         (WebCore::SVGElement::addSVGPropertySynchronizer):
937         * svg/SVGEllipseElement.cpp:
938         (WebCore::SVGEllipseElement::SVGEllipseElement):
939         * svg/SVGEllipseElement.h:
940         (WebCore::SVGEllipseElement::contextElement):
941         * svg/SVGExternalResourcesRequired.h:
942         * svg/SVGFEBlendElement.h:
943         (WebCore::SVGFEBlendElement::contextElement):
944         * svg/SVGFEColorMatrixElement.cpp:
945         * svg/SVGFEColorMatrixElement.h:
946         (WebCore::SVGFEColorMatrixElement::contextElement):
947         * svg/SVGFEComponentTransferElement.h:
948         (WebCore::SVGFEComponentTransferElement::contextElement):
949         * svg/SVGFECompositeElement.h:
950         (WebCore::SVGFECompositeElement::contextElement):
951         * svg/SVGFEDiffuseLightingElement.h:
952         (WebCore::SVGFEDiffuseLightingElement::contextElement):
953         * svg/SVGFEDisplacementMapElement.h:
954         (WebCore::SVGFEDisplacementMapElement::contextElement):
955         * svg/SVGFEFloodElement.h:
956         (WebCore::SVGFEFloodElement::contextElement):
957         * svg/SVGFEGaussianBlurElement.h:
958         (WebCore::SVGFEGaussianBlurElement::contextElement):
959         * svg/SVGFEImageElement.cpp:
960         * svg/SVGFEImageElement.h:
961         (WebCore::SVGFEImageElement::contextElement):
962         * svg/SVGFELightElement.h:
963         * svg/SVGFEMergeElement.h:
964         (WebCore::SVGFEMergeElement::contextElement):
965         * svg/SVGFEMergeNodeElement.h:
966         (WebCore::SVGFEMergeNodeElement::contextElement):
967         * svg/SVGFEOffsetElement.h:
968         (WebCore::SVGFEOffsetElement::contextElement):
969         * svg/SVGFESpecularLightingElement.h:
970         (WebCore::SVGFESpecularLightingElement::contextElement):
971         * svg/SVGFETileElement.h:
972         (WebCore::SVGFETileElement::contextElement):
973         * svg/SVGFETurbulenceElement.h:
974         (WebCore::SVGFETurbulenceElement::contextElement):
975         * svg/SVGFilterElement.cpp:
976         (WebCore::SVGFilterElement::SVGFilterElement):
977         * svg/SVGFilterElement.h:
978         (WebCore::SVGFilterElement::contextElement):
979         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
980         (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
981         * svg/SVGFilterPrimitiveStandardAttributes.h:
982         (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement):
983         * svg/SVGFitToViewBox.cpp:
984         * svg/SVGFitToViewBox.h:
985         * svg/SVGFontElement.h:
986         (WebCore::SVGFontElement::contextElement):
987         * svg/SVGForeignObjectElement.cpp:
988         (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
989         * svg/SVGForeignObjectElement.h:
990         (WebCore::SVGForeignObjectElement::contextElement):
991         * svg/SVGGElement.h:
992         (WebCore::SVGGElement::contextElement):
993         * svg/SVGGradientElement.cpp:
994         * svg/SVGGradientElement.h:
995         * svg/SVGImageElement.cpp:
996         (WebCore::SVGImageElement::SVGImageElement):
997         * svg/SVGImageElement.h:
998         (WebCore::SVGImageElement::contextElement):
999         * svg/SVGLength.cpp:
1000         (WebCore::SVGLength::SVGLength):
1001         (WebCore::SVGLength::operator=):
1002         (WebCore::SVGLength::operator==):
1003         (WebCore::SVGLength::operator!=):
1004         * svg/SVGLength.h:
1005         * svg/SVGLengthList.cpp:
1006         (WebCore::SVGLengthList::valueAsString):
1007         * svg/SVGLengthList.h:
1008         * svg/SVGLineElement.cpp:
1009         (WebCore::SVGLineElement::SVGLineElement):
1010         * svg/SVGLineElement.h:
1011         (WebCore::SVGLineElement::contextElement):
1012         * svg/SVGLinearGradientElement.cpp:
1013         (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
1014         (WebCore::SVGLinearGradientElement::collectGradientProperties):
1015         * svg/SVGLinearGradientElement.h:
1016         (WebCore::SVGLinearGradientElement::contextElement):
1017         * svg/SVGMPathElement.h:
1018         (WebCore::SVGMPathElement::contextElement):
1019         * svg/SVGMarkerElement.cpp:
1020         (WebCore::SVGMarkerElement::SVGMarkerElement):
1021         * svg/SVGMarkerElement.h:
1022         (WebCore::SVGMarkerElement::contextElement):
1023         * svg/SVGMaskElement.cpp:
1024         (WebCore::SVGMaskElement::SVGMaskElement):
1025         * svg/SVGMaskElement.h:
1026         (WebCore::SVGMaskElement::contextElement):
1027         * svg/SVGNumberList.cpp:
1028         (WebCore::SVGNumberList::valueAsString):
1029         * svg/SVGNumberList.h:
1030         * svg/SVGPathElement.h:
1031         (WebCore::SVGPathElement::contextElement):
1032         * svg/SVGPatternElement.cpp:
1033         (WebCore::SVGPatternElement::SVGPatternElement):
1034         (WebCore::SVGPatternElement::collectPatternProperties):
1035         * svg/SVGPatternElement.h:
1036         (WebCore::SVGPatternElement::contextElement):
1037         * svg/SVGPolyElement.h:
1038         (WebCore::SVGPolyElement::contextElement):
1039         * svg/SVGPreserveAspectRatio.cpp:
1040         (WebCore::SVGPreserveAspectRatio::valueAsString):
1041         * svg/SVGPreserveAspectRatio.h:
1042         * svg/SVGRadialGradientElement.cpp:
1043         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
1044         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
1045         (WebCore::SVGRadialGradientElement::collectGradientProperties):
1046         * svg/SVGRadialGradientElement.h:
1047         (WebCore::SVGRadialGradientElement::contextElement):
1048         * svg/SVGRectElement.cpp:
1049         (WebCore::SVGRectElement::SVGRectElement):
1050         * svg/SVGRectElement.h:
1051         (WebCore::SVGRectElement::contextElement):
1052         * svg/SVGSVGElement.cpp:
1053         (WebCore::SVGSVGElement::SVGSVGElement):
1054         (WebCore::SVGSVGElement::currentView):
1055         * svg/SVGSVGElement.h:
1056         (WebCore::SVGSVGElement::contextElement):
1057         * svg/SVGScriptElement.h:
1058         (WebCore::SVGScriptElement::contextElement):
1059         * svg/SVGSetElement.h:
1060         (WebCore::SVGSetElement::contextElement):
1061         * svg/SVGStyledElement.h:
1062         * svg/SVGStyledTransformableElement.cpp:
1063         * svg/SVGStyledTransformableElement.h:
1064         * svg/SVGSwitchElement.h:
1065         (WebCore::SVGSwitchElement::contextElement):
1066         * svg/SVGSymbolElement.h:
1067         (WebCore::SVGSymbolElement::contextElement):
1068         * svg/SVGTRefElement.h:
1069         (WebCore::SVGTRefElement::contextElement):
1070         * svg/SVGTSpanElement.h:
1071         (WebCore::SVGTSpanElement::contextElement):
1072         * svg/SVGTextContentElement.cpp:
1073         (WebCore::SVGTextContentElement::SVGTextContentElement):
1074         * svg/SVGTextContentElement.h:
1075         * svg/SVGTextElement.cpp:
1076         * svg/SVGTextElement.h:
1077         (WebCore::SVGTextElement::contextElement):
1078         * svg/SVGTextPathElement.cpp:
1079         (WebCore::SVGTextPathElement::SVGTextPathElement):
1080         * svg/SVGTextPathElement.h:
1081         (WebCore::SVGTextPathElement::contextElement):
1082         * svg/SVGTextPositioningElement.cpp:
1083         * svg/SVGTextPositioningElement.h:
1084         * svg/SVGTransformList.cpp:
1085         (SVGTransformList::valueAsString):
1086         * svg/SVGTransformList.h:
1087         * svg/SVGURIReference.h:
1088         * svg/SVGUseElement.cpp:
1089         (WebCore::SVGUseElement::SVGUseElement):
1090         * svg/SVGUseElement.h:
1091         (WebCore::SVGUseElement::contextElement):
1092         * svg/SVGViewElement.h:
1093         (WebCore::SVGViewElement::contextElement):
1094         * svg/SVGViewSpec.cpp:
1095         (WebCore::SVGViewSpec::SVGViewSpec):
1096         (WebCore::SVGViewSpec::contextElement):
1097         * svg/SVGViewSpec.h:
1098
1099 2008-04-02  Darin Adler  <darin@apple.com>
1100
1101         Reviewed by Alexey.
1102
1103         - fix storage leak seen on buildbot
1104
1105         * platform/graphics/cg/ImageBufferCG.cpp:
1106         (WebCore::utiFromMIMEType): Put the result of createCFString() into a RetainPtr. Changed
1107         result to be a RetainPtr.
1108         (WebCore::ImageBuffer::toDataURL): Tweak a little bit, removing one local variable and
1109         some unneeded explicit conversions.
1110
1111 2008-04-01  Darin Adler  <darin@apple.com>
1112
1113         * WebCore.vcproj/WebCore.vcproj: Added RangeBoundaryPoint.h -- not required, but convenient.
1114
1115 2008-04-01  Darin Adler  <darin@apple.com>
1116
1117         Reviewed by Sam and Antti.
1118
1119         - fix <rdar://problem/5829565> paste performance slowed down with the Range Acid3 changes
1120
1121         Added a new class, RangeBoundaryPoint, to use for range boundary points. The "truth" of
1122         the offset is now stored as a node pointer, and the offset is computed as and when needed.
1123         This allows us to efficiently update when the DOM tree is changed -- computation of the
1124         node offsets is deferred until the Range is used later.
1125
1126         * WebCore.base.exp: Export nodeIndex().
1127
1128         * WebCore.xcodeproj/project.pbxproj: Added RangeBoundaryPoint.h, removed NodeWithIndexBefore.h
1129         and NodeWIthIndexAfter.h. Also let Xcode tweak the file formatting.
1130
1131         * dom/ContainerNode.cpp:
1132         (WebCore::ContainerNode::childrenChanged): Pass fewer arguments to Document.
1133
1134         * dom/Document.cpp:
1135         (WebCore::Document::nodeChildrenChanged): Pass fewer arguments to Range.
1136         (WebCore::Document::nodeWillBeRemoved): Pass node to range as a raw node pointer; no need for
1137         the index.
1138         * dom/Document.h: Take fewer arguments.
1139
1140         * dom/NodeWithIndexAfter.h: Removed.
1141         * dom/NodeWithIndexBefore.h: Removed.
1142
1143         * dom/Range.cpp:
1144         (WebCore::Range::Range): Changed to use the new RangeBoundaryPoint constructor.
1145         (WebCore::Range::create): Updated to use RangeBoundaryPoint instead of Position.
1146         (WebCore::Range::~Range): Ditto.
1147         (WebCore::Range::startContainer): Ditto.
1148         (WebCore::Range::startOffset): Ditto.
1149         (WebCore::Range::endContainer): Ditto.
1150         (WebCore::Range::endOffset): Ditto.
1151         (WebCore::Range::commonAncestorContainer): Ditto.
1152         (WebCore::Range::collapsed): Ditto.
1153         (WebCore::Range::setStart): Ditto.
1154         (WebCore::Range::setEnd): Ditto.
1155         (WebCore::Range::collapse): Ditto.
1156         (WebCore::Range::isPointInRange): Ditto.
1157         (WebCore::Range::comparePoint): Ditto.
1158         (WebCore::Range::compareNode): Ditto.
1159         (WebCore::Range::compareBoundaryPoints): Ditto.
1160         (WebCore::Range::boundaryPointsValid): Ditto.
1161         (WebCore::Range::intersectsNode): Ditto.
1162         (WebCore::Range::processContents): Ditto.
1163         (WebCore::Range::cloneContents): Ditto.
1164         (WebCore::Range::insertNode): Updated to use RangeBoundaryPoint. Also simplified the code
1165         at the end that updates the range -- not all of it is needed now since most of the fixup
1166         is done automatically by the range document mutation machinery. The one bit that remains
1167         is arguably a bug, but we need to keep it to keep passing Acid3 until we get clarification
1168         that it is indeed a bug (and then Acid3 will probably have to change).
1169         (WebCore::Range::toString): Update to use RangeBoundaryPoint instead of Position.
1170         (WebCore::Range::text): Ditto.
1171         (WebCore::Range::createContextualFragment): Ditto.
1172         (WebCore::Range::detach): Ditto.
1173         (WebCore::Range::checkNodeWOffset): Changed case where the offset is a node offset to
1174         be more efficient by using childNode instead of childNodeCount, and also return the node
1175         before which is needed to set the value of a RangeBoundaryPoint.
1176         (WebCore::Range::cloneRange): Ditto.
1177         (WebCore::Range::setStartAfter): Ditto.
1178         (WebCore::Range::setEndBefore): Ditto.
1179         (WebCore::Range::setEndAfter): Ditto.
1180         (WebCore::Range::selectNode): Ditto.
1181         (WebCore::Range::selectNodeContents): Ditto.
1182         (WebCore::Range::surroundContents): Ditto.
1183         (WebCore::Range::setStartBefore): Ditto.
1184         (WebCore::Range::checkDeleteExtract): Ditto.
1185         (WebCore::Range::containedByReadOnly): Ditto.
1186         (WebCore::Range::firstNode): Ditto.
1187         (WebCore::Range::editingStartPosition): Ditto.
1188         (WebCore::Range::pastLastNode): Ditto.
1189         (WebCore::Range::addLineBoxRects): Ditto.
1190         (WebCore::Range::formatForDebugger): Ditto.
1191         (WebCore::Range::maxStartOffset): Ditto.
1192         (WebCore::Range::maxEndOffset): Ditto.
1193         (WebCore::boundaryNodeChildrenChanged): Updated to use RangeBoundaryPoint instead of
1194         Position. Also changed name and changed to just call invalidateOffset.
1195         (WebCore::Range::nodeChildrenChanged): Changed to take just a container node.
1196         (WebCore::boundaryNodeWillBeRemoved): Updated to use RangeBoundaryPoint instead of
1197         Position. Also changed name and changed to update childBefore.
1198         (WebCore::Range::nodeWillBeRemoved): Changed to just take a Node*.
1199         (WebCore::boundaryTextInserted): Updated to use RangeBoundaryPoint instead of
1200         Position. Also changed name.
1201         (WebCore::Range::textInserted): Ditto.
1202         (WebCore::boundaryTextRemoved): Ditto.
1203         (WebCore::Range::textRemoved): Ditto.
1204         (WebCore::boundaryTextNodesMerged): Ditto.
1205         (WebCore::Range::textNodesMerged): Ditto.
1206         (WebCore::boundaryTextNodesSplit): Ditto.
1207         (WebCore::Range::textNodeSplit): Ditto.
1208
1209         * dom/Range.h: Updated to use RangeBoundaryPoint instead of Position.
1210
1211         * dom/RangeBoundaryPoint.h: Added.
1212
1213 2008-04-01  Anders Carlsson  <andersca@apple.com>
1214
1215         Reviewed by Sam.
1216
1217         Get rid of old "bindings" forwarding headers.
1218
1219         * ForwardingHeaders/bindings: Removed.
1220         * ForwardingHeaders/bindings/NP_jsobject.h: Removed.
1221         * ForwardingHeaders/bindings/npruntime.h: Removed.
1222         * ForwardingHeaders/bindings/npruntime_impl.h: Removed.
1223         * ForwardingHeaders/bindings/npruntime_internal.h: Removed.
1224         * ForwardingHeaders/bindings/runtime.h: Removed.
1225         * ForwardingHeaders/bindings/runtime_object.h: Removed.
1226         * ForwardingHeaders/bindings/runtime_root.h: Removed.
1227
1228 2008-04-01  Timothy Hatcher  <timothy@apple.com>
1229
1230         Rename DatabasePanel.js to DatabasesPanel.js to facilitate the up-coming UI refresh changes.
1231
1232         http://bugs.webkit.org/show_bug.cgi?id=17773
1233
1234         Rubber-stamped by Brady Eidson.
1235
1236         * WebCore.vcproj/WebCore.vcproj: Reference DatabasesPanel.js.
1237         * page/inspector/DatabasePanel.js: Removed.
1238         * page/inspector/DatabasesPanel.js: Copied from page/inspector/DatabasePanel.js.
1239         * page/inspector/WebKit.qrc: Reference DatabasesPanel.js.
1240         * page/inspector/inspector.html: Reference DatabasesPanel.js.
1241
1242 2008-04-01  Brady Eidson  <beidson@apple.com>
1243
1244         Touch a file to get Windows to rebuild WebCore
1245
1246         * platform/ContextMenu.cpp: Alphabetize headers
1247
1248 2008-04-01  Brady Eidson  <beidson@apple.com>
1249
1250         Reviewed by Adam Roben
1251
1252         Export loader/archive and loader/archive/cf headers for WebKitWin to use
1253
1254         * WebCore.vcproj/WebCore.vcproj:
1255
1256 2008-04-01  Brady Eidson  <beidson@apple.com>
1257
1258         Reviewed by Darin
1259
1260         WebArchives need to load on Windows the same way as on Mac, and this change in the 
1261         finished-loading code path was a big part of that
1262
1263         * loader/FrameLoader.cpp:
1264         (WebCore::FrameLoader::finishedLoadingDocument): Only call the client's finishedLoading()
1265           for non-archive loads
1266
1267 2008-04-01  Dan Bernstein  <mitz@apple.com>
1268
1269         - Mac build fix
1270
1271         * WebCore.xcodeproj/project.pbxproj: Made FontRenderingMode.h private.
1272
1273 2008-04-01  Dan Bernstein  <mitz@apple.com>
1274
1275         Reviewed by Darin Adler.
1276
1277         - move the FontRenderingMode enumeration into its own header file
1278
1279         * WebCore.vcproj/WebCore.vcproj:
1280         * WebCore.xcodeproj/project.pbxproj:
1281         * loader/CachedFont.h:
1282         * platform/graphics/FontDescription.h:
1283         * platform/graphics/FontRenderingMode.h: Added.
1284         (WebCore::):
1285         * platform/graphics/gtk/FontCustomPlatformData.h:
1286         * platform/graphics/mac/FontCustomPlatformData.h:
1287         * platform/graphics/qt/FontCustomPlatformData.h:
1288         * platform/graphics/win/FontCustomPlatformData.h:
1289
1290 2008-04-01  Darin Adler  <darin@apple.com>
1291
1292         Reviewed by Mitz.
1293
1294         - fix <rdar://problem/5833351> REGRESSION: Leak in JSCustomXPathNSResolver::create
1295         - fix <rdar://problem/5833216> REGRESSION: Leak in CSSStyleSelector::addViewportDependentMediaQueryResult
1296
1297         * bindings/js/JSCustomXPathNSResolver.cpp:
1298         (WebCore::JSCustomXPathNSResolver::create): Added a missing adoptRef.
1299         * css/CSSStyleSelector.cpp:
1300         (WebCore::CSSStyleSelector::~CSSStyleSelector): Added a missing call to deleteAllValues.
1301
1302 2008-04-01  Darin Adler  <darin@apple.com>
1303
1304         Reviewed by Sam.
1305
1306         - speed up hasChildNodes, which does not need to be virtual
1307
1308         * dom/ContainerNode.cpp: Removed hasChildNodes.
1309         * dom/ContainerNode.h: Added non-virtual inline hasChildNodes.
1310         * dom/Node.cpp: Removed hasChildNodes.
1311         * dom/Node.h: Added non-vritual inline hasChildNodes.
1312
1313 2008-04-01  Simon Hausmann  <hausmann@webkit.org>
1314
1315         Fix the non-mac build.
1316
1317         * page/AXObjectCache.h: Don't reference AccessibilityObjects when
1318         building without accessibility.
1319         * page/AccessibilityObject.h: Don't include RetainPtr.h for non-mac
1320         builds.
1321
1322 2008-04-01  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
1323
1324         Reviewed by Simon.
1325
1326         * Do not store the QWebFrame associated with a ScrollView/FrameView
1327         in the WebCore::Widget.
1328         * Instead of asking the Widget for the QWebFrame use the QWebFramePrivate::core
1329         and QWebFramePrivate::kit function to convert from and to QWebFrame.
1330
1331         * platform/Widget.h:
1332         * platform/qt/WidgetQt.cpp:
1333         (WebCore::WidgetPrivate::WidgetPrivate):
1334         (WebCore::Widget::containingWindow):
1335
1336 2008-04-01  Alice Liu  <alice.liu@apple.com>
1337         Patch by Beth Dakin <bdakin@apple.com> and Alice Liu
1338
1339         Reviewed by Darin.
1340
1341         Refactored WebCore Accessibility code.  Prior to this patch, WebCore
1342         accessibility was implemented in an ObjC class named WebCoreAXObject,
1343         with much of the "guts" in C++.  This patch the next natural step of
1344         factoring out the C++ code into a class named AccessibilityObject, and 
1345         in order to maintain the required ObjC object ties, also implements an
1346         ObjC class named AccessibilityObjectWrapper as a thin wrapper around the
1347         C++ object.  Internally within WebCore we operate on the C++ object as
1348         much as possible, and the ObjC object gets used mostly when we need to
1349         return something to AppKit or call something implemented on NSObject.
1350         The AXObjectCache still keeps one HashMap, now of RenderObjects to
1351         AccessibilityObjects instead of WebCoreAXObjects, and the
1352         AccessibilityObject keeps track of its ObjC wrapper.
1353
1354         * WebCore.xcodeproj/project.pbxproj:
1355         * page/AXObjectCache.h:
1356         (WebCore::AXObjectCache::get):
1357         (WebCore::AXObjectCache::removeAXID):
1358         * page/AccessibilityObject.cpp: Added.
1359         (WebCore::AccessibilityObject::AccessibilityObject):
1360         (WebCore::AccessibilityObject::~AccessibilityObject):
1361         (WebCore::AccessibilityObject::create):
1362         (WebCore::AccessibilityObject::detach):
1363         (WebCore::AccessibilityObject::firstChild):
1364         (WebCore::AccessibilityObject::lastChild):
1365         (WebCore::AccessibilityObject::previousSibling):
1366         (WebCore::AccessibilityObject::nextSibling):
1367         (WebCore::AccessibilityObject::parentObject):
1368         (WebCore::AccessibilityObject::parentObjectUnignored):
1369         (WebCore::AccessibilityObject::isWebArea):
1370         (WebCore::AccessibilityObject::isImageButton):
1371         (WebCore::AccessibilityObject::isAnchor):
1372         (WebCore::AccessibilityObject::isTextControl):
1373         (WebCore::AccessibilityObject::isImage):
1374         (WebCore::AccessibilityObject::isAttachment):
1375         (WebCore::isPasswordFieldElement):
1376         (WebCore::AccessibilityObject::isPasswordField):
1377         (WebCore::AccessibilityObject::headingLevel):
1378         (WebCore::AccessibilityObject::isHeading):
1379         (WebCore::AccessibilityObject::anchorElement):
1380         (WebCore::isCheckboxOrRadio):
1381         (WebCore::AccessibilityObject::actionElement):
1382         (WebCore::AccessibilityObject::mouseButtonListener):
1383         (WebCore::AccessibilityObject::helpText):
1384         (WebCore::AccessibilityObject::textUnderElement):
1385         (WebCore::AccessibilityObject::hasIntValue):
1386         (WebCore::AccessibilityObject::intValue):
1387         (WebCore::AccessibilityObject::stringValue):
1388         (WebCore::labelForElement):
1389         (WebCore::AccessibilityObject::title):
1390         (WebCore::AccessibilityObject::accessibilityDescription):
1391         (WebCore::AccessibilityObject::boundingBoxRect):
1392         (WebCore::AccessibilityObject::size):
1393         (WebCore::AccessibilityObject::linkedUIElement):
1394         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
1395         (WebCore::AccessibilityObject::accessibilityIsIgnored):
1396         (WebCore::AccessibilityObject::loaded):
1397         (WebCore::AccessibilityObject::layoutCount):
1398         (WebCore::AccessibilityObject::textLength):
1399         (WebCore::AccessibilityObject::selectedText):
1400         (WebCore::AccessibilityObject::selection):
1401         (WebCore::AccessibilityObject::selectedTextRange):
1402         (WebCore::AccessibilityObject::setSelectedText):
1403         (WebCore::AccessibilityObject::setSelectedTextRange):
1404         (WebCore::AccessibilityObject::makeRangeVisible):
1405         (WebCore::AccessibilityObject::url):
1406         (WebCore::AccessibilityObject::isVisited):
1407         (WebCore::AccessibilityObject::isFocused):
1408         (WebCore::AccessibilityObject::setFocused):
1409         (WebCore::AccessibilityObject::setValue):
1410         (WebCore::AccessibilityObject::isEnabled):
1411         (WebCore::AccessibilityObject::press):
1412         (WebCore::AccessibilityObject::topRenderer):
1413         (WebCore::AccessibilityObject::textControl):
1414         (WebCore::AccessibilityObject::widget):
1415         (WebCore::AccessibilityObject::axObjectCache):
1416         (WebCore::AccessibilityObject::documentLinks):
1417         (WebCore::AccessibilityObject::documentFrameView):
1418         (WebCore::AccessibilityObject::frameViewIfRenderView):
1419         (WebCore::AccessibilityObject::visiblePositionRange):
1420         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
1421         (WebCore::AccessibilityObject::doAXTextMarkerRangeForUnorderedTextMarkers):
1422         (WebCore::AccessibilityObject::doAXLeftWordTextMarkerRangeForTextMarker):
1423         (WebCore::AccessibilityObject::doAXRightWordTextMarkerRangeForTextMarker):
1424         (WebCore::updateAXLineStartForVisiblePosition):
1425         (WebCore::AccessibilityObject::doAXLeftLineTextMarkerRangeForTextMarker):
1426         (WebCore::AccessibilityObject::doAXRightLineTextMarkerRangeForTextMarker):
1427         (WebCore::AccessibilityObject::doAXSentenceTextMarkerRangeForTextMarker):
1428         (WebCore::AccessibilityObject::doAXParagraphTextMarkerRangeForTextMarker):
1429         (WebCore::startOfStyleRange):
1430         (WebCore::endOfStyleRange):
1431         (WebCore::AccessibilityObject::doAXStyleTextMarkerRangeForTextMarker):
1432         (WebCore::AccessibilityObject::textMarkerRangeForRange):
1433         (WebCore::AccessibilityObject::stringForReplacedNode):
1434         (WebCore::AccessibilityObject::doAXStringForTextMarkerRange):
1435         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
1436         (WebCore::AccessibilityObject::doAXLengthForTextMarkerRange):
1437         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
1438         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
1439         (WebCore::AccessibilityObject::doAXNextTextMarkerForTextMarker):
1440         (WebCore::AccessibilityObject::doAXPreviousTextMarkerForTextMarker):
1441         (WebCore::AccessibilityObject::doAXNextWordEndTextMarkerForTextMarker):
1442         (WebCore::AccessibilityObject::doAXPreviousWordStartTextMarkerForTextMarker):
1443         (WebCore::AccessibilityObject::doAXNextLineEndTextMarkerForTextMarker):
1444         (WebCore::AccessibilityObject::doAXPreviousLineStartTextMarkerForTextMarker):
1445         (WebCore::AccessibilityObject::doAXNextSentenceEndTextMarkerForTextMarker):
1446         (WebCore::AccessibilityObject::doAXPreviousSentenceStartTextMarkerForTextMarker):
1447         (WebCore::AccessibilityObject::doAXNextParagraphEndTextMarkerForTextMarker):
1448         (WebCore::AccessibilityObject::doAXPreviousParagraphStartTextMarkerForTextMarker):
1449         (WebCore::AccessibilityObject::textMarkerForIndex):
1450         (WebCore::AccessibilityObject::doAXUIElementForTextMarker):
1451         (WebCore::AccessibilityObject::doAXLineForTextMarker):
1452         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
1453         (WebCore::AccessibilityObject::indexForTextMarker):
1454         (WebCore::AccessibilityObject::doAXRangeForLine):
1455         (WebCore::AccessibilityObject::doAXRangeForPosition):
1456         (WebCore::AccessibilityObject::doAXRangeForIndex):
1457         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
1458         (WebCore::AccessibilityObject::doAXStringForRange):
1459         (WebCore::AccessibilityObject::doAXBoundsForRange):
1460         (WebCore::AccessibilityObject::doAXLineForIndex):
1461         (WebCore::AccessibilityObject::doAccessibilityHitTest):
1462         (WebCore::AccessibilityObject::focusedUIElement):
1463         (WebCore::AccessibilityObject::observableObject):
1464         (WebCore::AccessibilityObject::roleValue):
1465         (WebCore::AccessibilityObject::canSetFocusAttribute):
1466         (WebCore::AccessibilityObject::canSetValueAttribute):
1467         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
1468         (WebCore::AccessibilityObject::childrenChanged):
1469         (WebCore::AccessibilityObject::clearChildren):
1470         (WebCore::AccessibilityObject::hasChildren):
1471         (WebCore::AccessibilityObject::addChildren):
1472         (WebCore::AccessibilityObject::axObjectID):
1473         (WebCore::AccessibilityObject::setAXObjectID):
1474         (WebCore::AccessibilityObject::removeAXObjectID):
1475         * page/AccessibilityObject.h: Added.
1476         (WebCore::):
1477         (WebCore::VisiblePositionRange::VisiblePositionRange):
1478         (WebCore::VisiblePositionRange::isNull):
1479         (WebCore::AccessibilityObject::detached):
1480         (WebCore::AccessibilityObject::PlainTextRange::PlainTextRange):
1481         (WebCore::AccessibilityObject::PlainTextRange::isNull):
1482         (WebCore::AccessibilityObject::renderer):
1483         (WebCore::AccessibilityObject::children):
1484         (WebCore::AccessibilityObject::wrapper):
1485         (WebCore::AccessibilityObject::setWrapper):
1486         * page/mac/AXObjectCacheMac.mm:
1487         (WebCore::AXObjectCache::~AXObjectCache):
1488         (WebCore::AXObjectCache::get):
1489         (WebCore::AXObjectCache::remove):
1490         (WebCore::AXObjectCache::getAXID):
1491         (WebCore::AXObjectCache::removeAXID):
1492         (WebCore::AXObjectCache::textMarkerForVisiblePosition):
1493         (WebCore::AXObjectCache::childrenChanged):
1494         (WebCore::AXObjectCache::postNotification):
1495         (WebCore::AXObjectCache::postNotificationToElement):
1496         * page/mac/AccessibilityObjectMac.mm: Added.
1497         (createAccessibilityRoleMap):
1498         (RoleEntry::):
1499         (roleValueToNSString):
1500         (AccessibilityObject::attachmentView):
1501         (AccessibilityObject::performPressActionForAttachment):
1502         (AccessibilityObject::textMarkerRange):
1503         (AccessibilityObject::textMarkerForVisiblePosition):
1504         (AccessibilityObject::startTextMarker):
1505         (AccessibilityObject::visiblePositionForTextMarker):
1506         (AccessibilityObject::visiblePositionForStartOfTextMarkerRange):
1507         (AccessibilityObject::visiblePositionForEndOfTextMarkerRange):
1508         (AccessibilityObject::textMarkerRangeFromVisiblePositions):
1509         (AccessibilityObject::textMarkerRangeForSelection):
1510         (AccessibilityObject::textMarkerRangeFromMarkers):
1511         (AccessibilityObject::convertViewRectToScreenCoords):
1512         (AccessibilityObject::convertAbsolutePointToViewCoords):
1513         (AccessibilityObject::convertWidgetChildrenToNSArray):
1514         (AccessibilityObject::position):
1515         (AccessibilityObject::role):
1516         (AccessibilityObject::subrole):
1517         (AccessibilityObject::roleDescription):
1518         (blockquoteLevel):
1519         (AccessibilityObject::AXAttributeStringSetElement):
1520         (AXAttributeStringSetBlockquoteLevel):
1521         (CreateCGColorIfDifferent):
1522         (AXAttributeStringSetColor):
1523         (AXAttributeStringSetNumber):
1524         (AXAttributeStringSetFont):
1525         (AXAttributeStringSetStyle):
1526         (AccessibilityObject::AXAttributeStringSetHeadingLevel):
1527         (AccessibilityObject::AXLinkElementForNode):
1528         (AXAttributeStringSetSpelling):
1529         (AccessibilityObject::AXAttributedStringAppendText):
1530         (nsStringForReplacedNode):
1531         (AccessibilityObject::doAXAttributedStringForTextMarkerRange):
1532         (AccessibilityObject::doAXAttributedStringForRange):
1533         (AccessibilityObject::doAXRTFForRange):
1534         * page/mac/AccessibilityObjectWrapper.h: Added.
1535         * page/mac/AccessibilityObjectWrapper.mm: Added.
1536         (-[AccessibilityObjectWrapper initWithAccessibilityObject:]):
1537         (-[AccessibilityObjectWrapper unregisterUniqueIdForUIElement]):
1538         (-[AccessibilityObjectWrapper detach]):
1539         (-[AccessibilityObjectWrapper accessibilityObject]):
1540         (-[AccessibilityObjectWrapper accessibilityActionNames]):
1541         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1542         (-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
1543         (-[AccessibilityObjectWrapper renderWidgetChildren]):
1544         (convertToNSArray):
1545         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1546         (-[AccessibilityObjectWrapper accessibilityFocusedUIElement]):
1547         (-[AccessibilityObjectWrapper accessibilityHitTest:]):
1548         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
1549         (-[AccessibilityObjectWrapper accessibilityIsIgnored]):
1550         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1551         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
1552         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
1553         (rendererForView):
1554         (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
1555         (-[AccessibilityObjectWrapper accessibilityActionDescription:]):
1556         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1557         (-[AccessibilityObjectWrapper accessibilityShouldUseUniqueId]):
1558         * page/mac/WebCoreAXObject.h: Removed.
1559         * page/mac/WebCoreAXObject.mm: Removed.
1560         * rendering/RenderMenuList.cpp:
1561         (WebCore::RenderMenuList::selectElement):
1562         * rendering/RenderMenuList.h:
1563
1564 2008-03-31  Dan Bernstein  <mitz@apple.com>
1565
1566         - fix previous attempted fixes
1567
1568         * platform/qt/TemporaryLinkStubs.cpp:
1569         (PluginDatabase::getPluginPathsInDirectories):
1570         * platform/wx/TemporaryLinkStubs.cpp:
1571         (PluginDatabase::getPluginPathsInDirectories):
1572
1573 2008-03-31  Dan Bernstein  <mitz@apple.com>
1574
1575         - fix Qt link stubs
1576
1577         * platform/qt/TemporaryLinkStubs.cpp:
1578         (PluginDatabase::getPluginPathsInDirectories):
1579         (PluginDatabase::isPreferredPluginDirectory):
1580
1581 2008-03-31  Dan Bernstein  <mitz@apple.com>
1582
1583         - try to fix the Wx build
1584
1585         * platform/wx/TemporaryLinkStubs.cpp:
1586         (PluginDatabase::getPluginPathsInDirectories):
1587         (PluginDatabase::isPreferredPluginDirectory):
1588
1589 2008-03-31  Dan Bernstein  <mitz@apple.com>
1590
1591         - Gtk and Qt build fixes
1592
1593         * platform/graphics/gtk/FontCustomPlatformData.cpp:
1594         (WebCore::FontCustomPlatformData::fontPlatformData):
1595         * platform/graphics/gtk/FontCustomPlatformData.h:
1596         * platform/graphics/qt/FontCustomPlatformData.cpp:
1597         (WebCore::FontCustomPlatformData::fontPlatformData):
1598         * platform/graphics/qt/FontCustomPlatformData.h:
1599
1600 2008-03-31  Dan Bernstein  <mitz@apple.com>
1601
1602         - Mac build fix
1603
1604         * platform/graphics/mac/FontCustomPlatformData.cpp:
1605         (WebCore::FontCustomPlatformData::fontPlatformData):
1606         * platform/graphics/mac/FontCustomPlatformData.h:
1607
1608 2008-03-31  Dan Bernstein  <mitz@apple.com>
1609
1610         Reviewed by Darin Adler.
1611
1612         - fix <rdar://problem/5792638> @font-face with downloadable fonts doesn't work with GDI text
1613
1614         * WebCore.vcproj/WebCore.vcproj: Added GetEOTHeader.{h,cpp}
1615
1616         * css/CSSFontFaceSource.cpp:
1617         (WebCore::CSSFontFaceSource::getFontData): Changed to pass the rendering
1618         mode to CachedFont::platformDataFromCustomData().
1619
1620         * loader/CachedFont.cpp:
1621         (WebCore::CachedFont::platformDataFromCustomData): Added a rendering
1622         mode parameter which is passed down to
1623         FontCustomPlatformData::fontPlatformData().
1624
1625         * loader/CachedFont.h:
1626
1627         * platform/graphics/win/FontCacheWin.cpp:
1628         (WebCore::FontCache::fontExists): Changed the number 5 to the named
1629         constant CLEARTYPE_QUALITY.
1630
1631         * platform/graphics/win/FontCustomPlatformData.cpp:
1632         (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added code
1633         to delete the embedded font reference.
1634         (WebCore::FontCustomPlatformData::fontPlatformData): Added code to
1635         create an HFONT from the embedded font reference and pass it along with
1636         the CGFontRef to the FontPlatformData constructor. Added a rendering
1637         mode parameter which is passed down to the FontPlatformData constructor.
1638         (WebCore::EOTStream::EOTStream): Added this helper class used to feed
1639         data to TTLoadEmbeddedFont().
1640         (WebCore::EOTStream::read): Added.
1641         (WebCore::readEmbedProc): Added this TTLoadEmbeddedFont() callback.
1642         (WebCore::createUniqueFontName): Added. Creates a unique GUID-derived
1643         font name. 
1644         (WebCore::createFontCustomPlatformData): Added code to make the font
1645         accessible to GDI by creating an Embedded OpenType stream and
1646         activating it in the process under a globally-unique name.
1647
1648         * platform/graphics/win/FontCustomPlatformData.h:
1649         Added a font reference data member which holds the embedded font.
1650         (WebCore::FontCustomPlatformData::FontCustomPlatformData): Added a
1651         rendering mode parameter.
1652
1653         * platform/graphics/win/FontPlatformData.h:
1654         (WebCore::FontPlatformData::FontPlatformData): Made this class always
1655         own the CGFontRef and the HFONT by turning these data members into a
1656         RetainPtr and a RefPtr around a RefCountedHFONT.
1657         Added an HFONT parameter to the CGFontRef-based constructor.
1658         Made platformDataInit() private.
1659         (WebCore::FontPlatformData::hfont):
1660         (WebCore::FontPlatformData::cgFont):
1661         (WebCore::FontPlatformData::hash):
1662         (WebCore::FontPlatformData::RefCountedHFONT::RefCountedHFONT): Added.
1663         (WebCore::FontPlatformData::RefCountedHFONT::~RefCountedHFONT):
1664         (WebCore::FontPlatformData::RefCountedHFONT::hfont):
1665         (WebCore::FontPlatformData::RefCountedHFONT::hash):
1666
1667         * platform/graphics/win/FontPlatformDataCGWin.cpp:
1668         (WebCore::FontPlatformData::platformDataInit): Changed to take
1669         ownership of the CGFontRef created here.
1670         (WebCore::FontPlatformData::FontPlatformData): Added an HFONT parameter
1671         and a useGDI flag.
1672
1673         * platform/graphics/win/FontPlatformDataWin.cpp:
1674         (WebCore::FontPlatformData::FontPlatformData): Changed to take ownership
1675         of the HFONT.
1676
1677         * platform/graphics/win/GetEOTHeader.cpp: Added.
1678         (WebCore::BigEndianUShort::operator unsigned short):
1679         (WebCore::BigEndianULong::operator unsigned):
1680         (WebCore::appendBigEndianStringToEOTHeader):
1681         (WebCore::getEOTHeader): Added. Creates an Embedded OpenType (.eot)
1682         header for the given font data, making it suitable as input for
1683         TTLoadEmbeddedFont.
1684
1685         * platform/graphics/win/GetEOTHeader.h: Added.
1686
1687         * platform/graphics/win/SimpleFontDataCGWin.cpp:
1688         (WebCore::SimpleFontData::platformDestroy): Removed code to delete parts
1689         of the FontPlatformData, since they are now always owned and managed
1690         by the FontPlatformData.
1691
1692 2008-03-31  Darin Adler  <darin@apple.com>
1693
1694         Reviewed by Anders.
1695
1696         - fix crash seen on buildbot (regression from a recent speedup)
1697
1698         * html/HTMLDocument.cpp:
1699         (WebCore::HTMLDocument::createElement): Check validity before calling isLower, since
1700         that takes care of the null string case.
1701
1702 2008-03-31  Dan Bernstein  <mitz@apple.com>
1703
1704         Reviewed by John Sullivan.
1705
1706         - fix <rdar://problem/5741075> Google Maps: cursor and placemarks don't match up
1707
1708         * platform/win/CursorWin.cpp:
1709         (WebCore::Cursor::Cursor): Set the 1-bit mask for full-alpha cursors
1710         to fully opaque. The mask is ignored and the alpha values from the
1711         32-bit image are used except in the case of a fully-transparent image,
1712         in which the fully-opaque 1-bit mask is required to get transparency.
1713
1714 2008-03-31  Brady Eidson  <beidson@apple.com>
1715
1716         Reviewed by Jon Honeycutt
1717
1718         Move a WebArchive loading check into WebCore
1719         
1720         * loader/FrameLoader.cpp:
1721         (WebCore::FrameLoader::committedLoad): Don't call the client method if currently loading a WebArchive
1722
1723 2008-03-31  Brady Eidson  <beidson@apple.com>
1724
1725         Reviewed by Oliver Hunt
1726
1727         "Turn on" WebArchives for Windows
1728         
1729         Thought I'd done this already, but I hadn't!
1730
1731         * platform/MIMETypeRegistry.cpp:
1732         (WebCore::initializeSupportedNonImageMimeTypes): Apply known ArchiveFactory MIME types
1733
1734 2008-03-31  Dan Bernstein  <mitz@apple.com>
1735
1736         Reviewed by Dave Hyatt.
1737
1738         - fix http://bugs.webkit.org/show_bug.cgi?id=18076
1739           Box disappears after CSS Transition completes
1740
1741         * page/AnimationController.cpp: Changed the BLEND_MAYBE_INVALID_COLOR
1742         macro to not blend two invalid colors.
1743         * rendering/RenderStyle.cpp:
1744         (WebCore::StyleBackgroundData::StyleBackgroundData): Added missing
1745         copying of the m_color data member.
1746
1747 2008-03-31  Julien Chaffraix  <jchaffraix@webkit.org>
1748
1749         Reviewed by Darin.
1750
1751         Bug 18177: m_encoding is used twice in XMLHttpRequest
1752         http://bugs.webkit.org/show_bug.cgi?id=18177
1753
1754         - Change XMLHttpRequest variable m_encoding to m_responseEncoding.
1755
1756         - Change send local variable m_encoding to encoding.
1757
1758         No test case (no functionnal change).
1759
1760         * platform/network/ResourceResponseBase.h: Removed unused variable.
1761         * xml/XMLHttpRequest.cpp:
1762         (WebCore::XMLHttpRequest::send): Changed local m_encoding to encoding.
1763         (WebCore::XMLHttpRequest::didReceiveResponse): m_encoding -> m_responseEncoding.
1764         (WebCore::XMLHttpRequest::didReceiveData): Ditto.
1765         * xml/XMLHttpRequest.h: Change m_encoding to m_responseEncoding to disambiguate
1766         the name as it is only used for response.
1767
1768 2008-03-27  Adam Roben  <aroben@apple.com>
1769
1770         Pass the right ExecStates to toJS when creating JS wrappers for
1771         objects from the inspected page
1772
1773         We now use an ExecState from the inspected page to create the JS
1774         wrappers for objects from the inspected page, rather than use an
1775         ExecState from the Inspector.
1776
1777         Reviewed by Tim Hatcher.
1778
1779         * page/InspectorController.cpp:
1780         (WebCore::getResourceDocumentNode):
1781         (WebCore::InspectorController::focusNode):
1782         (WebCore::InspectorController::addDatabaseScriptResource):
1783
1784 2008-03-31  Adam Roben  <aroben@apple.com>
1785
1786         Stop relying on functions added to prototypes in the Inspector being
1787         callable on objects from the inspected window
1788
1789         Reviewed by Tim Hatcher.
1790
1791         * page/inspector/Console.js:
1792         (WebInspector.ConsolePanel._formatnode): Use nodeTitleInfo.call(node)
1793         instead of node.titleInfo().
1794         * page/inspector/StylesSidebarPane.js: Changed uses of
1795         getShorthandValue, getShorthandPriority, getLonghandProperties, and
1796         getUniqueStyleProperties to call them as functions instead of as
1797         methods on the CSSStyleDeclaration objects.
1798         * page/inspector/utilities.js: Removed Node.prototype.titleInfo, and
1799         changed our CSSStyleDeclaration methods to just be standalone
1800         functions.
1801
1802 2008-03-26  Adam Roben  <aroben@apple.com>
1803
1804         Fix an exception while adding a message to the console
1805
1806         Reviewed by Mark Rowe.
1807
1808         * page/inspector/ConsolePanel.js: Don't call addMessageToSource if the
1809         panel has no such method. This can happen if we get a message for,
1810         e.g., a Database.
1811
1812 2008-03-31  Brady Eidson  <beidson@apple.com>
1813
1814         Reviewed by Darin and Mitz's rubber stamp
1815
1816         Remove dataForArchivedSelection(WebCore::Frame*) from the EditorClient - only usage is now directly in WebCore
1817
1818         * page/EditorClient.h:
1819         * svg/graphics/SVGImageEmptyClients.h:
1820
1821         * platform/mac/PasteboardMac.mm:
1822         (WebCore::Pasteboard::writeSelection): Make the archive and get the data directly
1823
1824 2008-03-31  Brady Eidson  <beidson@apple.com>
1825
1826         Reviewed by Mitz Pettel
1827
1828         Fix for http://bugs.webkit.org/show_bug.cgi?id=18183
1829
1830         Despite the bug reporter's instructions, I have still not been able to actually reproduce this crash and 
1831         therefore don't know how to make a layout test for it.
1832
1833         * loader/archive/ArchiveResource.cpp:
1834         (WebCore::ArchiveResource::response): Fix potential null dereference
1835
1836 2008-03-29  Adam Roben  <aroben@apple.com>
1837
1838         Fix Bug 18208: Acid3 test 65 takes >33ms due to plugin refreshing on
1839         Windows
1840
1841         <http://bugs.webkit.org/show_bug.cgi?id=18208>
1842
1843         We now keep track of all the plugin paths found each time refresh() is
1844         called. We'll only instantiate PluginPackages if there are new paths
1845         or paths with changed timestamps since the last time refresh() was
1846         called.
1847
1848         Reviewed by Darin Adler and Anders Carlsson.
1849
1850         * plugins/PluginDatabase.cpp:
1851         (WebCore::PluginDatabase::refresh):
1852           - Only instantiate PluginPackages if there is a new path or a path
1853             with a changed timestamp since we last ran refresh().
1854           - Cache the set of plugin paths found and their timestamps for the
1855             next call to refresh().
1856           - Only re-register MIME types if our set of plugins changed.
1857         * plugins/PluginDatabase.h: Added a new member to cache plugin paths
1858         and their timestamps.
1859
1860 2008-03-29  Adam Roben  <aroben@apple.com>
1861
1862         Separate filesystem crawling from PluginPackage instantiation
1863
1864         Part of Bug 18208: Acid3 test 65 takes >33ms due to plugin refreshing
1865         on Windows
1866         <http://bugs.webkit.org/show_bug.cgi?id=18208>
1867
1868         refresh() is now the only place where PluginPackages are instantiated.
1869         refresh() now asks for a set of plugins that no longer exist on disk,
1870         and the set of all plugin files in our plugin directories. Using these
1871         two sets we can update our instantiated plugins without copying any
1872         HashSets. The code in refresh() and in the platform-specific methods
1873         to crawl the filesystem is now quite a bit simpler.
1874
1875         PluginDatabase now stores both a PluginSet and a HashMap that maps
1876         plugin paths to PluginPackages. This allows us to quickly determine
1877         whether we already have a PluginPackage instantiated for a particular
1878         path. The new add/remove methods handle the modification of these two
1879         collections.
1880
1881         A nice side effect of all this is that refresh() no longer copies any
1882         HashSets.
1883
1884         Reviewed by Mitz Pettel.
1885
1886         * plugins/PluginDatabase.cpp:
1887         (WebCore::PluginDatabase::refresh): Unload any plugins that have been
1888         deleted from disk, and add any plugins that either weren't installed
1889         last time, or have changed since last time.
1890         (WebCore::PluginDatabase::getDeletedPlugins): Added.
1891         (WebCore::PluginDatabase::add): Added. Returns whether or not the
1892         PluginPackage was actually added to the database (duplicates won't be
1893         added).
1894         (WebCore::PluginDatabase::remove): Added.
1895         * plugins/PluginDatabase.h:
1896         * plugins/PluginPackage.h:
1897         (WebCore::PluginPackage::path): Added.
1898         (WebCore::PluginPackage::lastModified): Added.
1899         * plugins/gtk/PluginDatabaseGtk.cpp:
1900         (WebCore::PluginDatabase::getPluginPathsInDirectories): Renamed from
1901         getPluginsInDirectories. Now fills a HashSet of Strings instead of
1902         instantiated PluginPackages.
1903         * plugins/win/PluginDatabaseWin.cpp:
1904         (WebCore::addPluginPathsFromRegistry): Ditto.
1905         (WebCore::PluginDatabase::getPluginPathsInDirectories): Ditto.
1906
1907 2008-03-29  Adam Roben  <aroben@apple.com>
1908
1909         Change getPluginsInDirectories to use an out parameter
1910
1911         This avoids copying a HashSet.
1912
1913         Reviewed by Mitz Pettel.
1914
1915         * plugins/PluginDatabase.cpp:
1916         (WebCore::PluginDatabase::refresh):
1917         * plugins/PluginDatabase.h:
1918         * plugins/gtk/PluginDatabaseGtk.cpp:
1919         (WebCore::PluginDatabase::getPluginsInDirectories):
1920         * plugins/win/PluginDatabaseWin.cpp:
1921         (WebCore::PluginDatabase::getPluginsInDirectories):
1922
1923 2008-03-29  Adam Roben  <aroben@apple.com>
1924
1925         Make some PluginPackage methods return const String&
1926
1927         Reviewed by Mitz Pettel.
1928
1929         * plugins/PluginPackage.h:
1930
1931 2008-03-29  Adam Roben  <aroben@apple.com>
1932
1933         Rename PluginDatabase's "PluginPaths" to "PluginDirectories"
1934
1935         The code expects these paths to all be directories, so it seems good
1936         to refer to them as such.
1937
1938         This patch just changes "Paths" to "Directories" and "Path" to
1939         "Directory".
1940
1941         Reviewed by Mitz Pettel.
1942
1943         * platform/qt/TemporaryLinkStubs.cpp:
1944         * platform/wx/TemporaryLinkStubs.cpp:
1945         * plugins/PluginDatabase.cpp:
1946         (WebCore::PluginDatabase::installedPlugins):
1947         (WebCore::PluginDatabase::refresh):
1948         * plugins/PluginDatabase.h:
1949         (WebCore::PluginDatabase::setPluginDirectories):
1950         * plugins/gtk/PluginDatabaseGtk.cpp:
1951         (WebCore::PluginDatabase::getPluginsInDirectories):
1952         * plugins/win/PluginDatabaseWin.cpp:
1953         (WebCore::PluginDatabase::getPluginsInDirectories):
1954         (WebCore::safariPluginsDirectory):
1955         (WebCore::PluginDatabase::defaultPluginDirectories):
1956         (WebCore::PluginDatabase::isPreferredPluginDirectory):
1957         * plugins/win/PluginPackageWin.cpp:
1958         (WebCore::PluginPackage::compare):
1959
1960 2008-03-29  Adam Roben  <aroben@apple.com>
1961
1962         Remove PlatformFileTime
1963
1964         This typedef is time_t on all platforms, so we can just get rid of the
1965         typedef.
1966
1967         Reviewed by Mitz Pettel.
1968
1969         * platform/FileSystem.h:
1970         * plugins/PluginPackage.cpp:
1971         * plugins/PluginPackage.h:
1972
1973 2008-03-29  Adam Roben  <aroben@apple.com>
1974
1975         Change PlatformFileTime on Windows to be time_t
1976
1977         This matches other platforms and our existing functions in
1978         FileSystem.h. It will also let us get rid of PlatformFileTime
1979         altogether.
1980
1981         Reviewed by Mitz Pettel.
1982
1983         * platform/FileSystem.h: Change PlatformFileTime to time_t on Windows.
1984         * plugins/win/PluginDatabaseWin.cpp:
1985         (WebCore::addPluginsFromRegistry): Use getFileModificationTime to get
1986         the modification time to pass to PluginPackage::create.
1987         (WebCore::PluginDatabase::getPluginsInPaths): Ditto.
1988         * plugins/win/PluginPackageWin.cpp:
1989         (WebCore::PluginPackage::hash): Updated to use m_lastModified as a
1990         time_t.
1991         (WebCore::PluginPackage::equal): Ditto.
1992
1993 2008-03-29  Adam Roben  <aroben@apple.com>
1994
1995         Make PluginPackage work like our other RefCounted classes
1996
1997         PluginPackage now starts with a ref count of 1, and its createPackage
1998         method now returns a PassRefPtr instead of a raw pointer.
1999
2000         Reviewed by Darin Adler.
2001
2002         * plugins/PluginPackage.cpp:
2003         (WebCore::PluginPackage::PluginPackage): Removed explicit call to the
2004         RefCounted constructor so that we'll start with a ref count of 1.
2005         (WebCore::PluginPackage::createPackage): Changed to return a
2006         PassRefPtr.
2007         * plugins/PluginPackage.h:
2008         * plugins/gtk/PluginDatabaseGtk.cpp:
2009         (WebCore::PluginDatabase::getPluginsInPaths): Changed to store the
2010         newly-created PluginPackage in a RefPtr.
2011         * plugins/win/PluginDatabaseWin.cpp:
2012         (WebCore::addPluginsFromRegistry): Ditto.
2013         (WebCore::PluginDatabase::getPluginsInPaths): Ditto.
2014
2015 2008-03-29  Adam Roben  <aroben@apple.com>
2016
2017         Fix Bug 18214: WebKit will sometimes load duplicate plugins
2018
2019         <http://bugs.webkit.org/show_bug.cgi?id=18214>
2020
2021         We now compare 3 things to determine if two PluginPackages are equal:
2022           1) Name
2023           2) Description
2024           3) Supported MIME types
2025
2026         This matches Gecko's equality logic for plugins (implemented in
2027         nsPluginTag::Equals).
2028
2029         Reviewed by Darin Adler.
2030
2031         * plugins/win/PluginPackageWin.cpp:
2032         (WebCore::PluginPackage::hash): Use the above-mentioned 3 criteria to
2033         calculate the hash.
2034         (WebCore::PluginPackage::equal): Use the above-mentioned 3 criteria to
2035         determine equality.
2036
2037 2008-03-31  Simon Hausmann  <hausmann@webkit.org>
2038
2039         Fix the Qt build.
2040
2041         ResourceHandleInternal.h references ResourceHandle::fireFailure, so include
2042         ResourceHandle.h.
2043
2044         * platform/network/ResourceHandleInternal.h:
2045
2046 2008-03-31  Rob Buis  <buis@kde.org>
2047
2048         Reviewed by Darin.
2049
2050         http://bugs.webkit.org/show_bug.cgi?id=15595
2051         marker property doesn't show up correctly as "shorthand" in inspector
2052
2053         Make sure parsing the marker property sets the individual
2054         marker properties as implicit with marker as shorthand.
2055         Also let CSSStyleDecleration::getPropertyValue return
2056         the correct value for the marker property.
2057
2058         * css/CSSMutableStyleDeclaration.cpp:
2059         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
2060         * css/CSSParser.cpp:
2061         * css/CSSParser.h:
2062         (WebCore::ShorthandScope::ShorthandScope):
2063         (WebCore::ShorthandScope::~ShorthandScope):
2064         * css/SVGCSSParser.cpp:
2065         (WebCore::CSSParser::parseSVGValue):
2066
2067 2008-03-30  Eric Seidel  <eric@webkit.org>
2068
2069         Reviewed by Oliver.
2070
2071         Make AMatthews life easier -- fix the SVG_FILTERS build
2072
2073         Build fix only, no tests.
2074
2075         * svg/SVGComponentTransferFunctionElement.cpp:
2076         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
2077         * svg/SVGFEColorMatrixElement.cpp:
2078         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
2079         * svg/SVGFEDiffuseLightingElement.cpp:
2080         * svg/SVGFEGaussianBlurElement.cpp:
2081         * svg/SVGFEImageElement.cpp:
2082         (WebCore::SVGFEImageElement::SVGFEImageElement):
2083         * svg/SVGFESpecularLightingElement.cpp:
2084         * svg/SVGFETurbulenceElement.cpp:
2085         * svg/SVGFilterElement.cpp:
2086         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
2087         * svg/graphics/filters/SVGFEBlend.cpp:
2088         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
2089         * svg/graphics/filters/SVGFEComposite.cpp:
2090         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
2091         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
2092         * svg/graphics/filters/SVGFEImage.cpp:
2093         * svg/graphics/filters/SVGFEMerge.cpp:
2094         * svg/graphics/filters/SVGFEMorphology.cpp:
2095         * svg/graphics/filters/SVGFEOffset.cpp:
2096         * svg/graphics/filters/SVGFESpecularLighting.cpp:
2097         * svg/graphics/filters/SVGFETurbulence.cpp:
2098
2099 2008-03-30  Dan Bernstein  <mitz@apple.com>
2100
2101         Reviewed by Sam Weinig.
2102
2103         - fix http://bugs.webkit.org/show_bug.cgi?id=18115
2104           REGRESSION (r31250): Incomplete repaint of GoogleReader sidebar while reading unread posts
2105
2106         Test: fast/repaint/lines-with-layout-delta.html
2107
2108         * rendering/RenderObject.cpp:
2109         (WebCore::RenderObject::repaintRectangle): Made this method take layout
2110         delta into account.
2111
2112 2008-03-30  Dan Bernstein  <mitz@apple.com>
2113
2114         Reviewed by Maciej Stachowiak.
2115
2116         - fix assertion failure in CSSParser.cpp's equalIgnoringCase() when
2117           parsing certain transforms.
2118
2119         Test: fast/css/transform-function-lowercase-assert.html
2120
2121         * css/CSSParser.cpp:
2122         (WebCore::TransformOperationInfo::TransformOperationInfo): Changed to
2123         always pass a lowercase string as the second argument of
2124         equalIgnoringCase().
2125
2126 2008-03-30  Mark Rowe  <mrowe@apple.com>
2127
2128         ARM build fix.
2129
2130         * platform/text/AtomicString.cpp:
2131         (WebCore::equal): Use correct variable name.
2132
2133 2008-03-30  Hiroyuki Ikezoe  <poincare@ikezoe.net>
2134
2135         Reviewed by Alp Toker.
2136
2137         http://bugs.webkit.org/show_bug.cgi?id=18036
2138         Rendering invalid japanese characters with pango backend.
2139
2140         * platform/graphics/gtk/FontPlatformDataPango.cpp:
2141         (FontPlatformData::FontPlatformData): Set PangoFontDescription for
2142         PangoContext explicitly to use proper font.
2143
2144 2008-03-30  Rob Buis  <buis@kde.org>
2145
2146         Reviewed by Oliver.
2147
2148         http://bugs.webkit.org/show_bug.cgi?id=17633
2149         SVG: modifying x & y attribute of text element from JS fails
2150
2151         Make SVG text relayout when x, y attribute is changed from js.
2152
2153         * svg/SVGTextContentElement.cpp:
2154         (WebCore::SVGTextContentElement::isKnownAttribute):
2155         * svg/SVGTextContentElement.h:
2156         * svg/SVGTextElement.cpp:
2157         (WebCore::SVGTextElement::svgAttributeChanged):
2158         * svg/SVGTextElement.h:
2159         * svg/SVGTextPositioningElement.cpp:
2160         (WebCore::SVGTextPositioningElement::isKnownAttribute):
2161         * svg/SVGTextPositioningElement.h:
2162
2163 2008-03-28  Maciej Stachowiak  <mjs@apple.com>
2164
2165         Reviewed by Oliver.
2166
2167         - yet still more bindings speedup
2168         
2169         Make AtomicString straight from UString in handcoded bindings
2170
2171         * bindings/js/JSElementCustom.cpp:
2172         (WebCore::JSElement::setAttribute):
2173         (WebCore::JSElement::setAttributeNS):
2174         * dom/Document.cpp:
2175         (WebCore::Document::createElement):
2176         * dom/Document.h:
2177         * html/HTMLDocument.cpp:
2178         (WebCore::HTMLDocument::createElement):
2179         * html/HTMLDocument.h:
2180
2181 2008-03-29  Sam Weinig  <sam@webkit.org>
2182
2183         Reviewed by Darin Adler.
2184
2185         Fix for <rdar://problem/5828873>
2186
2187         Since NSURL is allowing invalid urls to be loaded, we need to
2188         check the URL validity at the ResourceHandle level and fire off
2189         a cannotShowURL error.
2190
2191         * loader/FrameLoader.cpp:
2192         (WebCore::FrameLoader::cannotShowURLError):
2193         * loader/FrameLoader.h:
2194         * loader/ResourceLoader.cpp:
2195         (WebCore::ResourceLoader::cannotShowURLError):
2196         (WebCore::ResourceLoader::wasBlocked):
2197         (WebCore::ResourceLoader::cannotShowURL):
2198         * loader/ResourceLoader.h:
2199         * platform/KURL.h:
2200         (WebCore::KURL::isValid):
2201         * platform/network/ResourceHandle.cpp:
2202         (WebCore::ResourceHandle::create):
2203         (WebCore::ResourceHandle::scheduleFailure):
2204         (WebCore::ResourceHandle::fireFailure):
2205         (WebCore::portAllowed):
2206         * platform/network/ResourceHandle.h:
2207         (WebCore::ResourceHandle::):
2208         * platform/network/ResourceHandleClient.h:
2209         (WebCore::ResourceHandleClient::cannotShowURL):
2210         * platform/network/ResourceHandleInternal.h:
2211         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
2212
2213 2008-03-29  Darin Adler  <darin@apple.com>
2214
2215         Reviewed by Mitz.
2216
2217         - more bindings speedup
2218
2219         When I changed the temporary variables to be UString that means that the
2220         valueToString functions also need to return UString to avoid converting
2221         from UString to String twice.
2222
2223         * bindings/js/kjs_binding.cpp:
2224         (WebCore::valueToStringWithNullCheck): Changed return value to UString.
2225         (WebCore::valueToStringWithUndefinedOrNullCheck): Ditto.
2226         * bindings/js/kjs_binding.h: Ditto.
2227
2228 2008-03-29  Darin Adler  <darin@apple.com>
2229
2230         Reviewed by Sam.
2231
2232         * DerivedSources.make: Removed temporary remove-stray-JSRGBColor build rule.
2233
2234 2008-03-29  Darin Adler  <darin@apple.com>
2235
2236         Reviewed by Sam.
2237
2238         - tweak handling of the class attribute to speed up code that
2239           sets it but never needs to parse it
2240
2241         6% speedup of Acid3 test 26
2242
2243         * css/CSSStyleSelector.cpp:
2244         (WebCore::CSSStyleSelector::matchRules): Change to use non-virtual
2245         classNames function since the hasClass bit can only be set for a
2246         StyledElement.
2247         (WebCore::CSSStyleSelector::checkOneSelector): Ditto. Also
2248         streamlined the code a bit for the tag matching as well.
2249
2250         * dom/ClassNames.cpp:
2251         (WebCore::hasNonASCIIOrUpper): Added. This function does what other
2252         callers seem to want isLower() to do. We should merge this with
2253         isLower() in a subsequent cleanup pass.
2254         (WebCore::ClassNamesData::createVector): Renamed from parseClassAttribute.
2255         Turns the string into a vector.
2256         (WebCore::ClassNamesData::containsAll): Added. Used by getElementsByClassName.
2257
2258         * dom/ClassNames.h: Added a separate ClassNameData class so we could hold
2259         the string and case folding flag as well as the vector. Changed ClassNames
2260         to have a set function rather than a parseClassAttribute function. Removed
2261         the "static" from isClassWhitespace. There's no reason to ask for internal linkage.
2262
2263         * dom/ClassNodeList.cpp:
2264         (WebCore::ClassNodeList::ClassNodeList): Use constructor instead of the
2265         parseClassAttribute function.
2266         (WebCore::ClassNodeList::nodeMatches): Get rid of unnneeded isElementNode
2267         check, since hasClass will only be true for StyledElement nodes. Use the new
2268         containsAll function in ClassNames instead of having a loop here.
2269
2270         * dom/ClassNodeList.h: Removed unneeded forward declaration.
2271
2272         * dom/Document.cpp: Removed unneeded include.
2273
2274         * dom/Element.cpp:
2275         (WebCore::Element::cloneNode): Changed code to copy attributes to use a
2276         function call instead of the assignment operator. This paves the way to
2277         making the function more efficient, using a virtual function.
2278         (WebCore::Element::setAttributeMap): Updated for PassRefPtr and for name change
2279         (element -> m_element).
2280         (WebCore::Element::createAttributeMap): Changed to use create function instead of
2281         calling the constructor directly.
2282         * dom/Element.h: Removed unneeded virtual getClassNames function.
2283         Changed the argument to setAttributeMap to be a PassRefPtr.
2284
2285         * dom/NamedAttrMap.cpp:
2286         (WebCore::NamedAttrMap::NamedAttrMap): Updated for name change (element -> m_element).
2287         (WebCore::NamedAttrMap::getNamedItem): Ditto.
2288         (WebCore::NamedAttrMap::removeNamedItem): Ditto.
2289         (WebCore::NamedAttrMap::setNamedItem): Ditto.
2290         (WebCore::NamedAttrMap::item): Ditto.
2291         (WebCore::NamedAttrMap::detachFromElement): Ditto.
2292         (WebCore::NamedAttrMap::setAttributes): Renamed this from the assignment operator.
2293         (WebCore::NamedAttrMap::addAttribute): Ditto.
2294         (WebCore::NamedAttrMap::removeAttribute): Ditto.
2295         (WebCore::NamedAttrMap::isReadOnlyNode): Ditto.
2296         * dom/NamedAttrMap.h: Removed the copy constructor and assignment operator and added
2297         a new function, setAttributes, possibly to be made virtual in the future. Made
2298         isReadOnlyNode non-virtual. Renamed element -> m_element. Made constructor protected
2299         and added a create function.
2300
2301         * dom/NamedMappedAttrMap.cpp:
2302         (WebCore::NamedMappedAttrMap::NamedMappedAttrMap): Changed constructor parameter to
2303         take a StyledElement.
2304         (WebCore::NamedMappedAttrMap::setClass): Changed to use the new set function.
2305
2306         * dom/NamedMappedAttrMap.h: Made constructor private and added a create function.
2307         Replaced theparseClassAttribute function with clearClass and setClass functions.
2308         Replaced the getClassNames function with a classNames function returning a reference
2309         instead of a pointer.
2310
2311         * dom/NamedNodeMap.h: Changed to start refcount at 1 instead of 0. Removed unneeded
2312         virtual function isReadOnlyNode.
2313
2314         * dom/StyledElement.cpp:
2315         (WebCore::StyledElement::parseMappedAttribute): Rewrote class attribute handling to
2316         use new function names and took out uneeded special case for null attribute.
2317         (WebCore::StyledElement::createAttributeMap): Changed to use create function instead
2318         of a direct call to new.
2319
2320         * dom/StyledElement.h: Replaced the virtual getClassNames function with a non-virtual
2321         inline classNames function.
2322
2323         * html/HTMLElement.cpp:
2324         (WebCore::HTMLElement::cloneNode): Changed code to copy attributes to use a
2325         function call instead of the assignment operator.
2326
2327         * html/HTMLTokenizer.cpp:
2328         (WebCore::Token::addAttribute): Use create function instead of a a direct call
2329         to new.
2330
2331         * html/HTMLViewSourceDocument.cpp:
2332         (WebCore::HTMLViewSourceDocument::createContainingTable): Use RefPtr and the new
2333         create function.
2334         (WebCore::HTMLViewSourceDocument::addViewSourceToken): Ditto.
2335         (WebCore::HTMLViewSourceDocument::addSpanWithClassName): Ditto.
2336         (WebCore::HTMLViewSourceDocument::addLine): Ditto.
2337         (WebCore::HTMLViewSourceDocument::addText): Ditto.
2338         (WebCore::HTMLViewSourceDocument::addLink): Ditto.
2339         * html/HTMLViewSourceDocument.h: Ditto.
2340
2341         * svg/SVGUseElement.cpp:
2342         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree): Changed code to copy
2343         attributes to use a function call instead of the assignment operator.
2344         (WebCore::SVGUseElement::transferUseAttributesToReplacedElement): Ditto.
2345
2346 2008-03-29  Sam Weinig  <sam@webkit.org>
2347
2348         Reviewed by Brady Eidson.
2349
2350         Fix crash when canceling a resource load while port blocked failure
2351         timer is going.
2352
2353         Test: fast/loader/cancel-load-during-port-block-timer.html
2354
2355         * platform/network/ResourceHandle.cpp:
2356         (WebCore::ResourceHandle::scheduleBlockedFailure):
2357         (WebCore::ResourceHandle::fireBlockedFailure):
2358         * platform/network/ResourceHandleInternal.h:
2359         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
2360         Make the Timer a member variable of ResourceHandleInternal so
2361         that it can be canceled if the ResourceHandle is destroyed.
2362
2363 2008-03-28  Stephanie  <slewis@apple.com>
2364
2365         Fix 64bit build
2366
2367         * WebCore.LP64.exp:
2368         * loader/archive/cf/LegacyWebArchiveMac.mm:
2369         (WebCore::createResourceResponseFromMacArchivedData):
2370
2371 2008-03-28  Steve Falkenburg  <sfalken@apple.com>
2372
2373         Enabled LTCG on files within "page".
2374
2375         Rubber stamped by Oliver.
2376
2377         * WebCore.vcproj/WebCore.vcproj:
2378
2379 2008-03-28  Dan Bernstein  <mitz@apple.com>
2380
2381         Reviewed by Dave Hyatt.
2382
2383         - fix a percentage background position regression from r31389
2384
2385         Test: fast/backgrounds/background-position-1.html
2386
2387         * rendering/Length.h:
2388         (WebCore::Length::calcValue): Divide by 100.
2389         (WebCore::Length::calcMinValue): Ditto.
2390
2391 2008-03-28  David Hyatt  <hyatt@apple.com>
2392
2393         Back out the Ahem font antialiasing hack, since it is now no longer required for LCD antialiased text
2394         to match the reference rendering on Acid 3.
2395
2396         * platform/graphics/SimpleFontData.h:
2397         * platform/graphics/mac/FontMac.mm:
2398         (WebCore::Font::drawGlyphs):
2399         * platform/graphics/mac/SimpleFontDataMac.mm:
2400         (WebCore::SimpleFontData::platformInit):
2401         * platform/graphics/win/FontCGWin.cpp:
2402         (WebCore::Font::drawGlyphs):
2403         * platform/graphics/win/SimpleFontDataCGWin.cpp:
2404         (WebCore::SimpleFontData::platformInit):
2405         * rendering/RenderBlock.cpp:
2406         (WebCore::RenderBlock::positionNewFloats):
2407
2408 2008-03-28  Brady Eidson  <beidson@apple.com>
2409
2410         Reviewed by Darin Adler
2411
2412         More Kit->Core WebArchive changes.
2413
2414         Create an archive from the current selection in a frame
2415
2416         * WebCore.base.exp:
2417
2418         * loader/archive/cf/LegacyWebArchive.cpp:
2419         (WebCore::LegacyWebArchive::createFromSelection):
2420         * loader/archive/cf/LegacyWebArchive.h:
2421
2422 2008-03-28  Kevin McCullough  <kmccullough@apple.com>
2423
2424         - Somehow managed to duplicate code :(
2425
2426         * xml/XMLHttpRequest.cpp:
2427         (WebCore::XMLHttpRequest::didFinishLoading):
2428
2429 2008-03-28  Kevin McCullough  <kmccullough@apple.com>
2430
2431         - Missed some changes in previous checkin.
2432
2433         * xml/XMLHttpRequest.cpp:
2434         (WebCore::XMLHttpRequest::send): Get identifier from synchronous loader.
2435         (WebCore::XMLHttpRequest::didFinishLoading):
2436
2437 2008-03-28  Kevin McCullough  <kmccullough@apple.com>
2438
2439         Reviewed by Adam.
2440
2441         -<rdar://problem/5712804> XMLHttpRequests do not show response contents, preview images (14313)
2442         -<rdar://problem/5712931> XMLHttpRequests should be shown separately and grouped (14315)
2443         -<rdar://problem/5732836> XMLHttpRequest: Inspector should show network activity/XHR in Console (17233)
2444         - Send the XMLHttpRequest data to the Inspector Controller.
2445
2446         * loader/FrameLoader.cpp: Return the identifier for this resource since we need it in the XHR case.
2447         (WebCore::FrameLoader::loadResourceSynchronously):
2448         * loader/FrameLoader.h: Ditto.
2449         * page/InspectorController.cpp:
2450         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource): We only need the data since the type will
2451         be XHR and the encoding is not used (we decoded earlier).
2452         (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource): Locking is necessary when setting and clearing
2453         the KJS::UString::Rep.
2454         (WebCore::InspectorResource::setXMLHttpRequestProperties):
2455         (WebCore::InspectorResource::sourceString): Return the decoded source.
2456         (WebCore::addSourceToFrame): No longer do the decoding here, it has been encapsulated in the InspectorResource.
2457         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
2458         * page/InspectorController.h: Pass a UString instead of copying to a WebCore::String.  In case we
2459         never ask for the string's contents this will save us an extra copy.
2460         * xml/XMLHttpRequest.cpp:
2461         (WebCore::XMLHttpRequest::send): In the synchronous load case we normally do not keep the identifier
2462         but we need it to find the InspectorResource in order to tell it that it was loaded via XHR.
2463         (WebCore::XMLHttpRequest::didFinishLoading): Tell the InspectorController that its resource was loaded
2464         via XHR.
2465         * xml/XMLHttpRequest.h: Ditto.
2466
2467 2008-03-28  Brady Eidson  <beidson@apple.com>
2468
2469         Reviewed by Sam Weinig
2470
2471         WebArchive saga continues - Can now make archives from ranges in WebCore
2472
2473         Again, previous layout test coverage exercised this code
2474
2475         * WebCore.base.exp:
2476
2477         * editing/markup.cpp:
2478         (WebCore::createFullMarkup): Added a "markup from range" variant that copies the previous WebKit implementation
2479         * editing/markup.h:
2480
2481         * loader/archive/cf/LegacyWebArchive.cpp:
2482         (WebCore::LegacyWebArchive::create):
2483         * loader/archive/cf/LegacyWebArchive.h:
2484
2485 2008-03-28  Stephanie Lewis  <slewis@apple.com>
2486
2487         windows build fix.
2488
2489         * platform/win/MainThreadWin.cpp:
2490         (WebCore::initializeThreadingAndMainThread):
2491
2492 2008-03-28  Brady Eidson  <beidson@apple.com>
2493
2494         Reviewed by Sam Weinig
2495
2496         More Kit->Core webarchive code movement
2497
2498         * WebCore.base.exp:
2499         * editing/markup.cpp:
2500         (WebCore::createFullMarkup): Replacement for [DOMNode markupString], creating full markup at this node including 
2501           the document type string, which the WebKit implementation did indirectly
2502         * editing/markup.h:
2503
2504 2008-03-28  Darin Adler  <darin@apple.com>
2505
2506         Reviewed by Maciej.
2507
2508         - cut down on copying and refcount churn a little by using references a bit more for
2509           KURL and String
2510
2511         * bindings/js/JSXMLHttpRequest.cpp:
2512         (WebCore::jsXMLHttpRequestPrototypeFunctionOpen): Use const KURL& instead of KURL.
2513         * css/StyleSheet.h:
2514         (WebCore::StyleSheet::href): Return const String& instead of String.
2515         (WebCore::StyleSheet::title): Ditto.
2516         * dom/Document.cpp:
2517         (WebCore::Document::completeURL): Use const KURL* for a local variable instead of
2518         KURL to avoid copying the KURL.
2519         * dom/Element.cpp:
2520         (WebCore::Element::baseURI): Use const KURL& instead of KURL.
2521         * html/HTMLAnchorElement.cpp:
2522         (WebCore::HTMLAnchorElement::hostname): Ditto.
2523         * html/HTMLFrameElementBase.cpp:
2524         (WebCore::HTMLFrameElementBase::isURLAllowed): Ditto.
2525         * html/HTMLKeygenElement.cpp: Removed unneeded include of KURL.
2526         * page/ContextMenuController.cpp:
2527         (WebCore::ContextMenuController::contextMenuItemSelected): Get rid of temporary
2528         KURL.
2529         * platform/SecurityOrigin.cpp:
2530         (WebCore::SecurityOrigin::createForFrame): Use const KURL& instead of KURL.
2531
2532 2008-03-28  Alexey Proskuryakov  <ap@webkit.org>
2533
2534         Reviewed by Sam Weinig.
2535
2536         Fix a dtoa thread safety issue.
2537
2538         * ForwardingHeaders/kjs/InitializeThreading.h: Added.
2539         * platform/MainThread.cpp:
2540         * platform/MainThread.h:
2541         (WebCore::initializeThreadingAndMainThread): Call KJS::initializeThreading instead of its
2542         WTF counterpart.
2543
2544 2008-03-28  Brent Fulgham  <bfulgham@gmail.com>
2545
2546         Reviewed by Maciej, landed by Brady
2547
2548         Correct build regression (http://bugs.webkit.org/show_bug.cgi?id=18148)
2549
2550         * platform/graphics/win/GraphicsContextCairoWin.cpp:
2551         (WebCore::GraphicsContext::getWindowsContext):
2552         (WebCore::GraphicsContext::releaseWindowsContext):
2553
2554 2008-03-28  Brady Eidson  <beidson@apple.com>
2555
2556         Reviewed by Darin
2557
2558         "Yet another transitional step" to empty out WebKit-based code for archiving.
2559
2560         With this patch, the key operation of "Creating a WebArchive rooted at a single Node" takes place
2561         entirely within WebCore, and opens the door to saving WebArchives on Windows.
2562
2563         This is another "zero behavior change" patch, and current editing/ and webarchive/ layout tests
2564         covered the relevant code
2565
2566         * WebCore.base.exp:
2567         * loader/archive/cf/LegacyWebArchive.cpp:
2568         (WebCore::LegacyWebArchive::create):
2569         * loader/archive/cf/LegacyWebArchive.h:
2570
2571 2008-03-28  Jasper Bryant-Greene  <jasper@unix.geek.nz>
2572
2573         Reviewed by Alp Toker.
2574
2575         http://bugs.webkit.org/show_bug.cgi?id=18061
2576         PlatformScrollBarGtk attempts to allocate negative width and/or height for widgets
2577
2578         Missing clampNegativeToZero() call meant that we tried to allocate widgets with negative width and/or height.
2579
2580         * platform/gtk/PlatformScrollBarGtk.cpp:
2581         (PlatformScrollbar::geometryChanged):
2582
2583 2008-03-28  Brady Eidson  <beidson@apple.com>
2584
2585         Reviewed by Darin
2586
2587         Using convertUTF16ToUTF8() from WTF, add a helper function that gives you a UTF8 SharedBuffer
2588         created from a String.
2589
2590         * ForwardingHeaders/wtf/unicode/UTF8.h: Added.
2591         * platform/text/PlatformString.h:
2592         * platform/text/String.cpp:
2593         (WebCore::utf8Buffer):
2594
2595 2008-03-28  Darin Adler  <darin@apple.com>
2596
2597         Reviewed by Adam.
2598
2599         - eliminate a tiny bit of unnecessary refcount churn
2600
2601         * bindings/js/JSEventTargetBase.cpp:
2602         (WebCore::eventNameForPropertyToken): Return const AtomicString&.
2603         * bindings/js/JSEventTargetBase.h:
2604         (WebCore::JSEventTargetBase::getValueProperty): Update for above change.
2605         (WebCore::JSEventTargetBase::putValueProperty): Ditto.
2606
2607 2008-03-28  Simon Hausmann  <hausmann@webkit.org>
2608
2609         Fix the Qt build.
2610
2611         * rendering/Length.h: Include wtf/MathExtras.h for round().
2612
2613 2008-03-28  David Hyatt  <hyatt@apple.com>
2614
2615         Fix a bug where background-position truncates instead of rounding when it evaluates to fractional
2616         pixel values.  This matches other browsers.
2617
2618         Reviewed by maciej
2619
2620         Added fast/backgrounds/background-position-rounding.html
2621
2622         * rendering/Length.h:
2623         (WebCore::Length::calcValue):
2624         (WebCore::Length::calcMinValue):
2625         * rendering/RenderBox.cpp:
2626         (WebCore::RenderBox::calculateBackgroundImageGeometry):
2627
2628 2008-03-27  Kevin Ollivier  <kevino@theolliviers.com>
2629
2630         wx build fix. Return a default value for operator == 
2631         when !USE(WXGC) (not implemented in that case).
2632
2633         * platform/graphics/wx/AffineTransformWx.cpp:
2634         (WebCore::AffineTransform::operator== ):
2635
2636 2008-03-27  Maciej Stachowiak  <mjs@apple.com>
2637
2638         - fix build
2639
2640         * svg/SVGGlyphMap.h:
2641         (WebCore::GlyphMapNode::create):
2642
2643 2008-03-27  Brady Eidson  <beidson@apple.com>
2644
2645         Forgot a small requested change before committing
2646
2647         * loader/DocumentLoader.cpp:
2648         (WebCore::DocumentLoader::mainResource):
2649
2650 2008-03-27  Brady Eidson  <beidson@apple.com>
2651
2652         Reviewed by Adam Roben
2653
2654         Move [WebDataSource mainResource] and [WebDataSource subresources] down into WebCore
2655         as the push to core-ify WebArchives continues.
2656
2657         This patch also introduces a behavior change.  WebCore allows ArchiveResources with null or empty data.  
2658         WebKit has had the inexplicable distinction of allowing empty Data in a WebResource, but not null.  
2659         Since WebResource is API, I decided to leave it be to avoid a behavior change.  But internally created resources 
2660         (as in "while archiving a page") are accepting of null or empty data.
2661
2662         This actually fixes a bug where not all subframes are archived, and resulted in a layout test change.
2663
2664         * WebCore.base.exp:
2665         * loader/DocumentLoader.cpp:
2666         (WebCore::DocumentLoader::archiveResourceForURL): Make this const
2667         (WebCore::DocumentLoader::mainResource):
2668         (WebCore::DocumentLoader::subresource): Make this const and relocate
2669         (WebCore::DocumentLoader::getSubresources):
2670         * loader/DocumentLoader.h:
2671
2672 2008-03-27  Maciej Stachowiak  <mjs@apple.com>
2673
2674         Reviewed by Darin.
2675
2676         - fixed many buildbot leaks in glyph map code
2677
2678         * svg/SVGGlyphMap.h:
2679         (WebCore::GlyphMapNode::create): Use explicit create pattern, to avoid overreffing and therefore leaking
2680         these objects.
2681         (WebCore::SVGGlyphMap::add): Call create instead of using new.
2682
2683 2008-03-27  Maciej Stachowiak  <mjs@apple.com>
2684
2685         Rubber stamped by Oliver.
2686
2687         - re-fix Acid3, some code was incorrectly moved when fixing the Qt build
2688
2689         * rendering/SVGRootInlineBox.cpp:
2690         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2691
2692 2008-03-27  Simon Hausmann  <hausmann@webkit.org>
2693
2694         Fix compilation against Qt 4.4 and one missing SVG_FONTS #ifdef.
2695
2696         * platform/graphics/qt/FontQt.cpp:
2697         (WebCore::Font::floatWidth): Forgot to adjust this signture for Qt 4.4.
2698         * bindings/js/JSSVGElementWrapperFactory.cpp: Added a missing #ifdef
2699         for SVG_FONTS
2700
2701 2008-03-27  Simon Hausmann  <hausmann@webkit.org>
2702
2703         Reviewed by Eric Seidel.
2704
2705         Fix the Qt build and the build without ENABLE(SVG_FONTS)
2706
2707         * WebCore.pro: Removed ElementTimeControl.idl as it's ObjC only and
2708         removed some SVG_FONTS specific idl files from IDL_BINDINGS for now
2709         * bindings/js/JSSVGElementWrapperFactory.cpp: altGlyph is
2710         ENABLE(SVG_FONTS) only
2711         * platform/graphics/qt/FontQt.cpp:
2712         (WebCore::Font::floatWidth): Adjust the function signature to Font.h
2713         * rendering/SVGRootInlineBox.cpp:
2714         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Fix
2715         compilation without SVG_FONTS
2716         * svg/SVGAltGlyphElement.cpp: Compile only if ENABLE(SVG_FONTS)
2717         * svg/SVGAltGlyphElement.h: Ditto
2718         * svg/svgtags.in: hkern and altGlyph are SVG_FONTS only.
2719         * svg/SVGTSpanElement.cpp:
2720         (WebCore::SVGTSpanElement::childShouldCreateRenderer): Compile without
2721         SVG_FONTS
2722         * svg/SVGTextElement.cpp:
2723         (WebCore::SVGTextElement::childShouldCreateRenderer): Ditto
2724         * svg/SVGTextPathElement.cpp:
2725         (WebCore::SVGTextPathElement::childShouldCreateRenderer):
2726
2727 2008-03-26  Timothy Hatcher  <timothy@apple.com>
2728
2729         Rename some Inspector files to facilitate the up-coming UI refresh changes.
2730
2731         http://bugs.webkit.org/show_bug.cgi?id=17773
2732
2733         Rubber-stamped by Adam Roben.
2734
2735         * WebCore.vcproj/WebCore.vcproj:
2736         * page/inspector/Console.js: Copied from page/inspector/ConsolePanel.js.
2737         * page/inspector/ConsolePanel.js: Removed.
2738         * page/inspector/DocumentPanel.js: Removed.
2739         * page/inspector/ElementsPanel.js: Copied from page/inspector/DocumentPanel.js.
2740         * page/inspector/FontPanel.js: Removed.
2741         * page/inspector/FontView.js: Copied from page/inspector/FontPanel.js.
2742         * page/inspector/ImagePanel.js: Removed.
2743         * page/inspector/ImageView.js: Copied from page/inspector/ImagePanel.js.
2744         * page/inspector/NetworkPanel.js: Removed.
2745         * page/inspector/ResourcePanel.js: Removed.
2746         * page/inspector/ResourceView.js: Copied from page/inspector/ResourcePanel.js.
2747         * page/inspector/ResourcesPanel.js: Copied from page/inspector/NetworkPanel.js.
2748         * page/inspector/SourcePanel.js: Removed.
2749         * page/inspector/SourceView.js: Copied from page/inspector/SourcePanel.js.
2750         * page/inspector/WebKit.qrc:
2751         * page/inspector/inspector.html:
2752
2753 2008-03-26  Steve Falkenburg  <sfalken@apple.com>
2754
2755         Enable LTCG on css, dom files in WebCore
2756
2757         Reviewed by Stephanie.
2758
2759         * WebCore.vcproj/WebCore.vcproj:
2760
2761 2008-03-26  Stephanie Lewis  <slewis@apple.com>
2762
2763         Fix Windows Build
2764
2765         * WebCore.vcproj/WebCore.vcproj:
2766
2767 2008-03-26  Mark Rowe  <mrowe@apple.com>
2768
2769         Speculative GTK build fix.
2770
2771         * GNUmakefile.am:
2772
2773 2008-03-26  Mark Rowe  <mrowe@apple.com>
2774
2775         Mac build fix.
2776
2777         * WebCore.base.exp:  Remove nonexistent symbol from the export file.
2778
2779 2008-03-26  Sam Weinig  <sam@webkit.org>
2780
2781         Try and fix Gtk+ again.
2782
2783         * GNUmakefile.am:
2784
2785 2008-03-26  Dan Bernstein  <mitz@apple.com>
2786
2787         Reviewed by Dave Hyatt.
2788
2789         - fix <rdar://problem/5816522> REGRESSION (r30111-30112): Tahoe web cam website has some text in Chinese or japanese
2790
2791         * html/HTMLParser.cpp:
2792         (WebCore::HTMLParser::insertNode): Added call to beginParsingChildren()
2793         on the new node.
2794         (WebCore::HTMLParser::handleError): Ditto.
2795         (WebCore::HTMLParser::reopenResidualStyleTags): Ditto.
2796         (WebCore::HTMLParser::pushBlock): Removed incorrect call to
2797         beginParsingChildren() on the current node.
2798         * manual-tests/applet-finish-parsing-children.html: Added.
2799         * manual-tests/resources/DrawMessage.class: Added.
2800
2801 2008-03-26  Brady Eidson  <beidson@apple.com>
2802
2803         Reviewed by Darin
2804
2805         When we create a WebArchive, we walk every node from some starting point, asking each node
2806         along the way "What are your subresource URLs?"
2807
2808         That logic is currently in DOMNode in WebKitMac - this patch moves that ability down into
2809         WebCore::Node
2810
2811         * WebCore.base.exp:
2812         
2813         * dom/Node.cpp:
2814         (WebCore::Node::getSubresourceURLs):
2815         (WebCore::Node::getSubresourceAttributeStrings):  Virtual and empty.  Subclasses of Node that have 
2816           subresources will override it.
2817
2818         * dom/ProcessingInstruction.cpp:
2819         (WebCore::ProcessingInstruction::getSubresourceAttributeStrings):
2820         * dom/ProcessingInstruction.h:
2821         * html/HTMLBodyElement.cpp:
2822         (WebCore::HTMLBodyElement::getSubresourceAttributeStrings):
2823         * html/HTMLBodyElement.h:
2824         * html/HTMLEmbedElement.cpp:
2825         (WebCore::HTMLEmbedElement::getSubresourceAttributeStrings):
2826         * html/HTMLEmbedElement.h:
2827         * html/HTMLImageElement.cpp:
2828         (WebCore::HTMLImageElement::getSubresourceAttributeStrings):
2829         * html/HTMLImageElement.h:
2830         * html/HTMLInputElement.cpp:
2831         (WebCore::HTMLInputElement::getSubresourceAttributeStrings):
2832         * html/HTMLInputElement.h:
2833         * html/HTMLLinkElement.cpp:
2834         (WebCore::HTMLLinkElement::getSubresourceAttributeStrings):
2835         * html/HTMLLinkElement.h:
2836         * html/HTMLObjectElement.cpp:
2837         (WebCore::HTMLObjectElement::getSubresourceAttributeStrings):
2838         * html/HTMLObjectElement.h:
2839         * html/HTMLParamElement.cpp:
2840         (WebCore::HTMLParamElement::getSubresourceAttributeStrings):
2841         * html/HTMLParamElement.h:
2842         * html/HTMLScriptElement.cpp:
2843         (WebCore::HTMLScriptElement::getSubresourceAttributeStrings):
2844         * html/HTMLScriptElement.h:
2845         * html/HTMLTableCellElement.cpp:
2846         (WebCore::HTMLTableCellElement::getSubresourceAttributeStrings):
2847         * html/HTMLTableCellElement.h:
2848         * html/HTMLTableElement.cpp:
2849         (WebCore::HTMLTableElement::getSubresourceAttributeStrings):
2850         * html/HTMLTableElement.h:
2851         * svg/SVGCursorElement.cpp:
2852         (WebCore::SVGCursorElement::getSubresourceAttributeStrings):
2853         * svg/SVGCursorElement.h:
2854         * svg/SVGFEImageElement.cpp:
2855         (WebCore::SVGFEImageElement::getSubresourceAttributeStrings):
2856         * svg/SVGFEImageElement.h:
2857         * svg/SVGImageElement.cpp:
2858         (WebCore::SVGImageElement::getSubresourceAttributeStrings):
2859         * svg/SVGImageElement.h:
2860         * svg/SVGScriptElement.cpp:
2861         (WebCore::SVGScriptElement::getSubresourceAttributeStrings):
2862         * svg/SVGScriptElement.h:
2863
2864 2008-03-26  Dan Bernstein  <mitz@apple.com>
2865
2866         Reviewed by Dave Hyatt.
2867
2868         - maintain subpixel-antialiasing when drawing text with a simple shadow
2869
2870         * platform/graphics/mac/FontMac.mm:
2871         (WebCore::Font::drawComplexText): If the shadow has a zero blur radius,
2872         draw the shadow by drawing the text at an offset instead of relying on
2873         Core Graphics shadows.
2874         (WebCore::Font::drawGlyphs): Ditto.
2875         * platform/graphics/win/FontCGWin.cpp:
2876         (WebCore::Font::drawGlyphs): Ditto.
2877
2878 2008-03-26  Brady Eidson  <beidson@apple.com>
2879
2880         Reviewed by Mark Rowe
2881
2882         Part of the continued push to move WebArchive-related code down to WebCore, this
2883         moves [WebDataSource subresourceForURL:] down to DocumentLoader->subresource()
2884
2885         * WebCore.base.exp:
2886         * loader/DocumentLoader.cpp:
2887         (WebCore::DocumentLoader::subresource): Create an ArchiveResource from a CachedResource if it exists
2888           Otherwise, fallback to an ArchiveResource from the current Archive if any.  Otherwise, return null
2889         * loader/DocumentLoader.h:
2890
2891         * loader/archive/ArchiveResource.cpp:
2892         (WebCore::ArchiveResource::create):
2893         (WebCore::ArchiveResource::ArchiveResource):
2894         * loader/archive/ArchiveResource.h:
2895
2896 2008-03-26  Sam Weinig  <sam@webkit.org>
2897
2898         Fix Gtk+ build.
2899
2900         * GNUmakefile.am:
2901
2902 2008-03-26  Mark Rowe  <mrowe@apple.com>
2903
2904         Rubber-stamped by Brady Eidson.
2905
2906         Update FEATURE_DEFINES to be consistent with the other locations in which it is defined.
2907
2908         * Configurations/WebCore.xcconfig:
2909
2910 2008-03-26  Brent Fulgham  <bfulgham@gmail.com>
2911
2912         Reviewed by Adam Roben.
2913
2914         Add necessary files and build commands to vcproj files to
2915         build a Curl-based Windows WebKit.  For details, see
2916         http://bugs.webkit.org/show_bug.cgi?id=17985
2917
2918         * WebCore.vcproj/WebCore.vcproj:
2919
2920 2008-03-26  Adam Roben  <aroben@apple.com>
2921
2922         Record JS exceptions triggered by the Inspector's use of JSC
2923
2924         We now dump all exceptions returned from JavaScriptCore into the
2925         Inspector's console.
2926
2927         The HANDLE_EXCEPTION macro records the line on which the exception was
2928         returned. It calls a new private handleException method on
2929         InspectorController.
2930
2931         Reviewed by Kevin McCullough.
2932
2933         * page/InspectorController.cpp:
2934         (WebCore::InspectorController::callSimpleFunction): Made this be a
2935         member of InspectorController so that it can call handleException.
2936         (WebCore::addSourceToFrame): Pass the exception pointer on to inner
2937         JSC calls, and check it after those calls return.
2938         (WebCore::getResourceDocumentNode): Ditto.
2939         (WebCore::search): Ditto. Also changed the name/type of an existing
2940         exception variable to ExceptionCode ec.
2941         (WebCore::databaseTableNames): Ditto.
2942         (WebCore::moveByUnrestricted): Ditto.
2943         (WebCore::InspectorController::~InspectorController): Check for and
2944         record exceptions as we call JSC.
2945         (WebCore::InspectorController::focusNode): Ditto.
2946         (WebCore::InspectorController::scriptObjectReady): Ditto.
2947         (WebCore::addHeaders): Added an exception parameter.
2948         (WebCore::scriptObjectForRequest): Ditto.
2949         (WebCore::scriptObjectForResponse): Ditto.
2950         (WebCore::InspectorController::addScriptResource): Check for and
2951         record exceptions as we call JSC.
2952         (WebCore::InspectorController::addAndUpdateScriptResource): Ditto.
2953         (WebCore::InspectorController::removeScriptResource): Ditto. Also
2954         moved the call to setScriptObject to before the JSC calls so that it
2955         will always be called even if we return early if JSC throws an
2956         exception.
2957         (WebCore::InspectorController::updateScriptResourceRequest): Check for
2958         and record exceptions as we call JSC.
2959         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
2960         (WebCore::InspectorController::updateScriptResource): Ditto.
2961         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
2962         (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
2963         Also moved the call to setScriptObject to before the JSC calls so that
2964         it will always be called even if we return early if JSC throws an
2965         exception.
2966         (WebCore::InspectorController::addScriptConsoleMessage): Check for and
2967         record exceptions as we call JSC.
2968         (WebCore::InspectorController::handleException): Added.
2969         * page/InspectorController.h:
2970
2971 2008-03-26  Darin Adler  <darin@apple.com>
2972
2973         Rubber stamped by Maciej.
2974
2975         - removed a couple log messages in error cases that are handled internally
2976
2977         * platform/text/TextCodecICU.cpp:
2978         (WebCore::TextCodecICU::decode): Removed the LOG_ERROR.
2979         * platform/text/mac/TextCodecMac.cpp:
2980         (WebCore::TextCodecMac::decode): Ditto.
2981
2982 2008-03-26  Sam Weinig  <sam@webkit.org>
2983
2984         Reviewed by Adam Roben.
2985
2986         * page/Location.idl: Don't enumerate toString.
2987
2988 2008-03-26  Mark Rowe  <mrowe@apple.com>
2989
2990         Release build fix.
2991
2992         * rendering/SVGRootInlineBox.cpp:
2993         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Initialize svgFont to zero.
2994
2995 2008-03-26  Maciej Stachowiak  <mjs@apple.com>
2996
2997         Reviewed by Hyatt and Adam.
2998
2999         Coded by me and Darin.
3000         
3001         - SVG kerning support (horizontal kerning only for now since we don't do vertical text layout right yet) 
3002         
3003         Acid3 100/100
3004
3005         * DerivedSources.make:
3006         * WebCore.vcproj/WebCore.vcproj:
3007         * WebCore.xcodeproj/project.pbxproj:
3008         * platform/graphics/Font.cpp:
3009         (WebCore::Font::floatWidth):
3010         (WebCore::Font::isSVGFont):
3011         * platform/graphics/Font.h:
3012         * rendering/SVGInlineTextBox.cpp:
3013         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
3014         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries):
3015         * rendering/SVGInlineTextBox.h:
3016         * rendering/SVGRootInlineBox.cpp:
3017         (WebCore::cummulatedWidthOrHeightOfTextChunk):
3018         (WebCore::SVGRootInlineBox::buildLayoutInformation):
3019         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
3020         * rendering/SVGRootInlineBox.h:
3021         (WebCore::LastGlyphInfo::LastGlyphInfo):
3022         * svg/SVGFont.cpp:
3023         (WebCore::SVGTextRunWalker::walk):
3024         (WebCore::Font::svgFont):
3025         (WebCore::floatWidthOfSubStringUsingSVGFont):
3026         (WebCore::Font::floatWidthUsingSVGFont):
3027         (WebCore::Font::drawTextUsingSVGFont):
3028         (WebCore::Font::selectionRectForTextUsingSVGFont):
3029         * svg/SVGFontElement.cpp:
3030         (WebCore::SVGFontElement::invalidateGlyphCache):
3031         (WebCore::SVGFontElement::ensureGlyphCache):
3032         (WebCore::parseUnicodeRange):
3033         (WebCore::parseUnicodeRangeList):
3034         (WebCore::stringMatchesUnicodeRange):
3035         (WebCore::matches):
3036         (WebCore::SVGFontElement::getHorizontalKerningPairForStringsAndGlyphs):
3037         * svg/SVGFontElement.h:
3038         * svg/SVGGlyphElement.cpp:
3039         (WebCore::SVGGlyphElement::insertedIntoDocument):
3040         (WebCore::SVGGlyphElement::removedFromDocument):
3041         * svg/SVGHKernElement.cpp: Added.
3042         (WebCore::SVGHKernElement::SVGHKernElement):
3043         (WebCore::SVGHKernElement::~SVGHKernElement):
3044         (WebCore::SVGHKernElement::insertedIntoDocument):
3045         (WebCore::SVGHKernElement::removedFromDocument):
3046         (WebCore::SVGHKernElement::buildHorizontalKerningPair):
3047         * svg/SVGHKernElement.h: Added.
3048         (WebCore::SVGHorizontalKerningPair::SVGHorizontalKerningPair):
3049         (WebCore::SVGHKernElement::rendererIsNeeded):
3050         * svg/SVGHKernElement.idl: Added.
3051         * svg/SVGTextContentElement.cpp:
3052         (WebCore::cummulatedCharacterRangeLength):
3053         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
3054         * svg/svgtags.in:
3055
3056 2008-03-26  Sam Weinig  <sam@webkit.org>
3057
3058         Reviewed by Adam Roben.
3059
3060         Autogenerate JSLocation.
3061
3062         * GNUmakefile.am:
3063         * WebCore.pro:
3064         * WebCore.vcproj/WebCore.vcproj:
3065         * WebCore.xcodeproj/project.pbxproj:
3066         * WebCoreSources.bkl:
3067         Add files.
3068
3069         * DerivedSources.make: Add Location, remove JSLocation.lut.h
3070         * bindings/js/JSDOMWindowBase.cpp:
3071         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
3072         (WebCore::JSDOMWindowBase::getValueProperty):
3073         (WebCore::JSDOMWindowBase::put):
3074         (WebCore::JSDOMWindowBase::clearHelperObjectProperties):
3075         (WebCore::JSDOMWindowBase::disconnectFrame):
3076         * bindings/js/JSDOMWindowBase.h:
3077         Remove manuel management of the Location object.
3078
3079         * bindings/js/JSDOMWindowCustom.cpp:
3080         (WebCore::JSDOMWindow::mark): Add marking of JSLocation.
3081         (WebCore::JSDOMWindow::setLocation): Add custom setLocation as we only want to do this when
3082         safe and we need to keep Dashboard quirks.
3083
3084         * bindings/js/JSDocumentCustom.cpp:
3085         (WebCore::JSDocument::location):
3086         Fetch the location object using the normal toJS route.
3087
3088         * bindings/js/JSLocation.cpp: Removed.
3089         * bindings/js/JSLocation.h: Removed.
3090         * bindings/js/JSLocationCustom.cpp: Added.
3091         (WebCore::JSLocation::customGetOwnPropertySlot):
3092         (WebCore::JSLocation::customPut):
3093         (WebCore::JSLocation::deleteProperty):
3094         (WebCore::JSLocation::customGetPropertyNames):
3095         (WebCore::navigateIfAllowed):
3096         (WebCore::JSLocation::setHref):
3097         (WebCore::JSLocation::setProtocol):
3098         (WebCore::JSLocation::setHost):
3099         (WebCore::JSLocation::setHostname):
3100         (WebCore::JSLocation::setPort):
3101         (WebCore::JSLocation::setPathname):
3102         (WebCore::JSLocation::setSearch):
3103         (WebCore::JSLocation::setHash):
3104         (WebCore::JSLocation::replace):
3105         (WebCore::JSLocation::reload):
3106         (WebCore::JSLocation::assign):
3107         (WebCore::JSLocation::toString):
3108         Setter and Functions need custom implementations as they rely on the dynamic
3109         global object for determining the behavior of the navigation.
3110
3111         * history/CachedPage.cpp:
3112         (WebCore::CachedPage::CachedPage):
3113         (WebCore::CachedPage::restore):
3114         (WebCore::CachedPage::clear):
3115         * history/CachedPage.h:
3116         Removed all the special casing for location as it should be treated like all
3117         the other objects hanging off the window.
3118
3119         * page/DOMWindow.cpp:
3120         (WebCore::DOMWindow::clear):
3121         (WebCore::DOMWindow::location):
3122         * page/DOMWindow.h:
3123         (WebCore::DOMWindow::optionalLocation):
3124         * page/DOMWindow.idl:
3125         Add Location accessor and pointer getter for marking.
3126
3127         * page/Location.cpp: Added.
3128         (WebCore::Location::Location):
3129         (WebCore::Location::disconnectFrame):
3130         (WebCore::Location::url):
3131         (WebCore::Location::href):
3132         (WebCore::Location::protocol):
3133         (WebCore::Location::host):
3134         (WebCore::Location::hostname):
3135         (WebCore::Location::port):
3136         (WebCore::Location::pathname):
3137         (WebCore::Location::search):
3138         (WebCore::Location::hash):
3139         (WebCore::Location::toString):
3140         * page/Location.h: Added.
3141         (WebCore::Location::create):
3142         (WebCore::Location::frame):
3143         * page/Location.idl: Added.
3144
3145 2008-03-26  David Hyatt  <hyatt@apple.com>
3146
3147         Add support for the rendering and measurement of the <altGlyph> element in SVG.  This patch brings
3148         is half of what's needed to reach 100/100 on Acid3 and pass the test.  Maciej has coded up the other half. :)
3149
3150         Reviewed by mjs
3151
3152         Added svg/custom/altGlyph.svg
3153
3154         * svg/SVGAltGlyphElement.cpp:
3155         (WebCore::SVGAltGlyphElement::childShouldCreateRenderer):
3156         (WebCore::SVGAltGlyphElement::glyphElement):
3157         * svg/SVGAltGlyphElement.h:
3158         * svg/SVGFont.cpp:
3159         (WebCore::SVGTextRunWalker::walk):
3160         * svg/SVGFontFaceElement.cpp:
3161         (WebCore::SVGFontFaceElement::insertedIntoDocument):
3162         * svg/SVGGlyphElement.cpp:
3163         (WebCore::SVGGlyphElement::insertedIntoDocument):
3164         (WebCore::SVGGlyphElement::removedFromDocument):
3165
3166 2008-03-26  Adam Roben  <aroben@apple.com>
3167
3168         Turn on SVG animation on Windows
3169
3170         Also touched some files to force things to rebuild/regenerate.
3171
3172         * WebCore.vcproj/WebCore.vcproj: Added ENABLE_SVG_ANIMATION.
3173         * WebCore.vcproj/build-generated-files.sh: Ditto.
3174         * bindings/scripts/CodeGenerator.pm: Touched.
3175         * config.h: Touched.
3176         * svg/svgtags.in: Touched.
3177
3178 2008-03-26  Justin Garcia  <justin.garcia@apple.com>
3179
3180         Reviewed by Harrison.
3181
3182         <rdar://problem/5820749> REGRESSION (Safari 3.1): Mail's plain text reply omits blank line following the attribution
3183
3184         * editing/markup.cpp:
3185         (WebCore::createFragmentFromText): When asked to create a fragment from "Attribution:\n"
3186         with a context from [html, 0] to [html, 0], we'd return "<html>Attribution</html><br>".
3187         Don't enclose paragraphs in clones of the context's enclosing block if that block is the
3188         html or body element.  Currently no way to test [DOMHTMLElement createFragmentFromText:].
3189
3190 2008-03-26  Antti Koivisto  <antti@apple.com>
3191
3192         Reviewed by Anders.
3193
3194         http://bugs.webkit.org/show_bug.cgi?id=17077
3195         Bug 17077: SVG SMIL animation is currently broken (and turned off) (affects Acid3 tests 75 and 76)
3196
3197         - enable SVG animation support.
3198         - basic implementation of beginElement()/endElement().
3199         
3200         Animation definitely will need more work than this, but it is a start!
3201
3202         * Configurations/WebCore.xcconfig:
3203         * svg/SVGAnimationElement.cpp:
3204         (WebCore::SVGAnimationElement::SVGAnimationElement):
3205         (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
3206         (WebCore::SVGAnimationElement::beginElement):
3207         (WebCore::SVGAnimationElement::beginElementAt):
3208         (WebCore::SVGAnimationElement::endElement):
3209         (WebCore::SVGAnimationElement::endElementAt):
3210         * svg/SVGAnimationElement.h:
3211
3212 2008-03-26  Mark Rowe  <mrowe@apple.com>
3213
3214         Reviewed by David Hyatt.
3215
3216         Make the Ahem font antialias correctly on Acid3 on Tiger.
3217
3218         * WebCore.Tiger.exp:
3219         * platform/graphics/mac/SimpleFontDataMac.mm:
3220         (WebCore::SimpleFontData::platformInit):
3221         * platform/mac/WebCoreSystemInterface.h:
3222         * platform/mac/WebCoreSystemInterface.mm:
3223
3224 2008-03-26  Simon Hausmann  <hausmann@webkit.org>
3225
3226         Attempt to fix the Qt build.
3227
3228         * platform/text/qt/TextCodecQt.cpp: Adjust function signature.
3229         (WebCore::TextCodecQt::decode):
3230         * platform/text/qt/TextCodecQt.h: Ditto.
3231
3232 2008-03-26  Dan Bernstein  <mitz@apple.com>
3233
3234         Reviewed by Anders Carlsson.
3235
3236         - fix http://bugs.webkit.org/show_bug.cgi?id=18104
3237           REGRESSION: LEAK: 2 InlineBox in editing/inserting/12882.html
3238
3239         * rendering/bidi.cpp:
3240         (WebCore::RenderBlock::layoutInlineChildren): When deciding to ditch
3241         old clean lines (due to changed or newly-added floats), keep the
3242         reference to those lines so they can be properly deleted in the end,
3243         and use a separate flag to signal that no matching should be attempted.
3244
3245 2008-03-26  Mark Rowe  <mrowe@apple.com>
3246
3247         Speculative Windows build fix.
3248
3249         * platform/graphics/win/SimpleFontDataCGWin.cpp:
3250
3251 2008-03-25  Steve Falkenburg  <sfalken@apple.com>
3252
3253         Turn on link-time-codegen in html and rendering related files.
3254
3255         Reviewed by Oliver.
3256
3257         * WebCore.vcproj/WebCore.vcproj:
3258
3259 2008-03-26  Maciej Stachowiak  <mjs@apple.com>
3260
3261         Reviewed by Darin.
3262
3263         - fixed "SVG multichar glyph matching matches longest instead of first (affects Acid3 test 79)"
3264         http://bugs.webkit.org/show_bug.cgi?id=18118
3265
3266         * svg/SVGFont.cpp:
3267         (WebCore::SVGTextRunWalker::walk):
3268         * svg/SVGFontElement.cpp:
3269         (WebCore::SVGFontElement::SVGFontElement):
3270         (WebCore::SVGFontElement::addGlyphToCache):
3271         (WebCore::SVGFontElement::removeGlyphFromCache):
3272         (WebCore::SVGFontElement::ensureGlyphCache):
3273         (WebCore::SVGFontElement::getGlyphIdentifiersForString):
3274         * svg/SVGFontElement.h:
3275         * svg/SVGGlyphElement.h:
3276         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
3277         * svg/SVGGlyphMap.h: Added. New radix tree based glyph map.
3278         (WebCore::GlyphMapNode::GlyphMapNode):
3279         (WebCore::SVGGlyphMap::SVGGlyphMap):
3280         (WebCore::SVGGlyphMap::add):
3281         (WebCore::SVGGlyphMap::compareGlyphPriority):
3282         (WebCore::SVGGlyphMap::get):
3283         (WebCore::SVGGlyphMap::clear):
3284
3285 2008-03-26  David Hyatt  <hyatt@apple.com>
3286
3287         Fix build bustage on Tiger.  Tiger will not have the bug fix.
3288
3289         * platform/graphics/mac/SimpleFontDataMac.mm:
3290         (WebCore::SimpleFontData::platformInit):
3291         * platform/graphics/win/SimpleFontDataCGWin.cpp:
3292         (WebCore::SimpleFontData::platformInit):
3293
3294 2008-03-26  David Hyatt  <hyatt@apple.com>
3295
3296         Make the Ahem font antialias correctly on Acid3.
3297
3298         Reviewed by Dan
3299
3300         * platform/graphics/SimpleFontData.h:
3301         * platform/graphics/mac/FontMac.mm:
3302         (WebCore::Font::drawGlyphs):
3303         * platform/graphics/mac/SimpleFontDataMac.mm:
3304         (WebCore::SimpleFontData::platformInit):
3305         * platform/graphics/win/FontCGWin.cpp:
3306         (WebCore::Font::drawGlyphs):
3307         * platform/graphics/win/SimpleFontDataCGWin.cpp:
3308         (WebCore::SimpleFontData::platformInit):
3309
3310 2008-03-26  Mark Rowe  <mrowe@apple.com>
3311
3312         Fix the Mac build.
3313
3314         * WebCore.xcodeproj/project.pbxproj:  Copy the newly generated header into the right place.
3315
3316 2008-03-26  Adam Roben  <aroben@apple.com>
3317
3318         Fix Bug 17768: REGRESSION (r30146): Inspector no longer shows elements
3319         properties
3320
3321         <http://bugs.webkit.org/show_bug.cgi?id=17768>
3322
3323         We were throwing an exception from Object.describe because of some
3324         undefined variables.
3325
3326         Reviewed by Tim Hatcher.
3327
3328         * page/inspector/utilities.js:
3329         (Object.describe): Reinstate the type1 and type2 variables that were
3330         removed in r30146. They're still used when formatting a function.
3331
3332 2008-03-26  Eric Seidel  <eric@webkit.org>
3333
3334         Reviewed by darin.
3335
3336         Forgot to add braces darin asked for during review.
3337
3338         * dom/XMLTokenizer.cpp:
3339         (WebCore::XMLTokenizer::write):
3340
3341 2008-03-26  Eric Seidel  <eric@webkit.org>
3342
3343         Reviewed by darin.
3344
3345         Fix, makes us pass Test 70
3346         XML documents should be strict about encoding checks
3347         http://bugs.webkit.org/show_bug.cgi?id=17079
3348
3349         Test: fast/encoding/invalid-xml.html
3350
3351         * WebCore.base.exp:
3352         * dom/XMLTokenizer.cpp:
3353         (WebCore::XMLTokenizer::write):
3354         * loader/CachedFont.cpp:
3355         (WebCore::CachedFont::ensureSVGFontData):
3356         * loader/TextResourceDecoder.cpp:
3357         (WebCore::TextResourceDecoder::TextResourceDecoder):
3358         (WebCore::TextResourceDecoder::decode):
3359         * loader/TextResourceDecoder.h:
3360         * platform/text/TextCodec.h:
3361         (WebCore::TextCodec::decode):
3362         * platform/text/TextCodecICU.cpp:
3363         (WebCore::TextCodecICU::decodeToBuffer):
3364         (WebCore::ErrorCallbackSetter::ErrorCallbackSetter):
3365         (WebCore::ErrorCallbackSetter::~ErrorCallbackSetter):
3366         (WebCore::TextCodecICU::decode):
3367         * platform/text/TextCodecICU.h:
3368         * platform/text/TextCodecLatin1.cpp:
3369         * platform/text/TextCodecLatin1.h:
3370         * platform/text/TextCodecUTF16.cpp:
3371         * platform/text/TextCodecUTF16.h:
3372         * platform/text/TextCodecUserDefined.cpp:
3373         * platform/text/TextCodecUserDefined.h:
3374         * platform/text/TextDecoder.cpp:
3375         (WebCore::TextDecoder::checkForBOM):
3376         * platform/text/TextDecoder.h:
3377         (WebCore::TextDecoder::decode):
3378         * platform/text/TextEncoding.cpp:
3379         (WebCore::TextEncoding::decode):
3380         * platform/text/TextEncoding.h:
3381         (WebCore::TextEncoding::decode):
3382         * platform/text/mac/TextCodecMac.cpp:
3383         (WebCore::TextCodecMac::decode):
3384         * platform/text/mac/TextCodecMac.h:
3385
3386 2008-03-26  Antti Koivisto  <antti@apple.com>
3387
3388         Reviewed by Adam.
3389
3390         Add ElementTimeControl interface to SVGAnimationElement.
3391         Passes Acid3 test 75.
3392
3393         * DerivedSources.make:
3394         * WebCore.pro:
3395         * WebCore.vcproj/WebCore.vcproj:
3396         * WebCore.xcodeproj/project.pbxproj:
3397         * bindings/scripts/CodeGeneratorObjC.pm:
3398         * svg/ElementTimeControl.h: Added.
3399         (WebCore::ElementTimeControl::~ElementTimeControl):
3400         * svg/ElementTimeControl.idl: Added.
3401         * svg/SVGAnimationElement.cpp:
3402         (WebCore::SVGAnimationElement::beginElement):
3403         (WebCore::SVGAnimationElement::beginElementAt):
3404         (WebCore::SVGAnimationElement::endElement):
3405         (WebCore::SVGAnimationElement::endElementAt):
3406         * svg/SVGAnimationElement.h:
3407         * svg/SVGAnimationElement.idl:
3408
3409 2008-03-26  Kevin McCullough  <kmccullough@apple.com>
3410
3411         - LayoutTest fix.  Null check.
3412
3413         * xml/XMLHttpRequest.cpp:
3414         (WebCore::XMLHttpRequest::send):
3415
3416 2008-03-26  Dan Bernstein  <mitz@apple.com>
3417
3418         Reviewed by Darin Adler.
3419
3420         - fix http://bugs.webkit.org/show_bug.cgi?id=17994
3421           REGRESSION (523-525+) View not updated when changing CSS size via JavaScript
3422         - fix http://bugs.webkit.org/show_bug.cgi?id=18063
3423           REGRESSION (r31250): Small bug that just cropped up in WebKit r31275
3424
3425         Tests: fast/repaint/subtree-root-clip.html
3426                fast/repaint/subtree-root-clip-2.html
3427                fast/repaint/subtree-root-clip-3.html
3428
3429         * rendering/LayoutState.cpp:
3430         (WebCore::LayoutState::LayoutState): Changed to not set an initial clip.
3431         Since the root is clipping, there is no need to set a clip, and setting
3432         the clip based on the container was wrong because often the root was
3433         not included in the container's overflow rect because it had its own
3434         layer.
3435         * rendering/RenderBox.cpp:
3436         (WebCore::RenderBox::absolutePosition): Removed code that added table
3437         cell's extra top offset only in the slow (recursive) code path.
3438         * rendering/RenderTableCell.cpp:
3439         (WebCore::RenderTableCell::absolutePosition): Added code to add the
3440         extra top offset in both code paths.
3441
3442 2008-03-26  Simon Hausmann  <hausmann@webkit.org>
3443
3444         Fix the Qt build.
3445
3446         * platform/graphics/qt/FontQt.cpp:
3447         (WebCore::Font::floatWidth):
3448
3449 2008-03-24  Maciej Stachowiak  <mjs@apple.com>
3450
3451         Reviewed by Eric.
3452
3453         - fixed "SVGTextElement.getStartPositionOfChar does not correctly account for multichar glyphs"
3454         http://bugs.webkit.org/show_bug.cgi?id=18046
3455
3456         * platform/graphics/Font.cpp:
3457         (WebCore::Font::floatWidth): Allow expressing a run that has extra "context" characters beyond the end,
3458         and reporting of how many characters were actually consumed, to support multichar glyphs in SVG fonts.
3459         * platform/graphics/Font.h:
3460         * rendering/SVGInlineTextBox.cpp:
3461         (WebCore::SVGInlineTextBox::calculateGlyphWidth): Pass along extra chars in argument and chars consumed out
3462         argument.
3463         (WebCore::SVGInlineTextBox::calculateGlyphHeight): Pass along extra chars in argument.
3464         (WebCore::SVGInlineTextBox::calculateGlyphBoundaries): Add boilerplate; may not handle multichar glyphs
3465         right but I don't know what effects this would have.
3466         * rendering/SVGInlineTextBox.h:
3467         * rendering/SVGRootInlineBox.cpp:
3468         (WebCore::cummulatedWidthOrHeightOfTextChunk): Add boilerplate; may not handle multichar glyphs right
3469         but again I am not sure what effect this would have.
3470         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox): Account for multichar glyphs - let glyph
3471         selection consider extra chars, and account for the fact that a glyph may have consumed multiple chars.
3472         * rendering/SVGRootInlineBox.h:
3473         * svg/SVGFont.cpp:
3474         (WebCore::SVGTextRunWalker::walk): This is the place where glyph selection happens, so this is where
3475         we accout for multichar glyphs (both looking at extra chars past the end of the run, and reporting how
3476         many chars were consumed).
3477         (WebCore::floatWidthOfSubStringUsingSVGFont): Pass aforementioned info through the layers.
3478         (WebCore::Font::floatWidthUsingSVGFont): ditto
3479         (WebCore::Font::drawTextUsingSVGFont): ditto
3480         (WebCore::Font::selectionRectForTextUsingSVGFont): ditto
3481         * svg/SVGTextContentElement.cpp:
3482         (WebCore::cummulatedCharacterRangeLength): ditto
3483         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback): ditto
3484
3485 2008-03-25  Beth Dakin  <bdakin@apple.com>
3486
3487         Reviewed by Oliver.
3488
3489         Fix for <rdar://problem/5811826> CSSValueList::item() does not 
3490         range-check index
3491
3492         Check bounds before accessing the item to avoid a crash. 
3493         itemWithoutBoundsCheck() is still inlined and not bounds-checked to 
3494         avoid slowing down our internal callers of item().
3495         * css/CSSValueList.cpp:
3496         (WebCore::CSSValueList::item):
3497         * css/CSSValueList.h:
3498         (WebCore::CSSValueList::itemWithoutBoundsCheck):
3499
3500         Call itemWithoutBoundsCheck() to avoid slowing down these internal 
3501         callers.
3502         * css/CSSFontSelector.cpp:
3503         (WebCore::CSSFontSelector::addFontFaceRule):
3504         * css/CSSMutableStyleDeclaration.cpp:
3505         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue):
3506         * css/CSSStyleSelector.cpp:
3507         (WebCore::applyCounterList):
3508         (WebCore::CSSStyleSelector::applyProperty):
3509         * css/MediaQueryEvaluator.cpp:
3510         (WebCore::parseAspectRatio):
3511         * svg/SVGFontFaceElement.cpp:
3512         (WebCore::SVGFontFaceElement::rebuildFontFace):
3513         * svg/graphics/SVGPaintServer.cpp:
3514         (WebCore::dashArrayFromRenderingStyle):
3515
3516 2008-03-25  Antti Koivisto  <antti@apple.com>
3517
3518         Reviewed by Oliver.
3519
3520         Fix http://bugs.webkit.org/show_bug.cgi?id=18082
3521         REGRESSION (r31287): GMail does not work if user stylesheet is set
3522         
3523         Oops, my cache refactoring patch was missing these rather essential lines for
3524         user stylesheets. They would get reloaded repeatedly.
3525
3526         * loader/Cache.cpp:
3527         (WebCore::Cache::requestUserCSSStyleSheet):
3528
3529 2008-03-25  Matt Lilek  <webkit@mattlilek.com>
3530
3531         Rubber stamped by Adam
3532
3533         Roll out r31300 since it causes assertion failures on page load.
3534         See http://bugs.webkit.org/show_bug.cgi?id=18093
3535
3536         * page/InspectorController.cpp:
3537         (WebCore::InspectorController::didFinishLoading):
3538         (WebCore::InspectorController::didFailLoading):
3539
3540 2008-03-25  Darin Adler  <darin@apple.com>
3541
3542         Reviewed by Anders.
3543
3544         - fix http://bugs.webkit.org/show_bug.cgi?id=17252
3545           Acid3 test removing Nodes during NodeIterator walk fails (affects Acid3 test 2)
3546
3547         Test: traversal/acid3-test-2.html
3548
3549         * bindings/js/JSNodeIteratorCustom.cpp:
3550         (WebCore::JSNodeIterator::nextNode): Update since result is PassRefPtr.
3551         (WebCore::JSNodeIterator::previousNode): Ditto.
3552         * dom/NodeIterator.cpp:
3553         (WebCore::NodeIterator::nextNode): Changed result to PassRefPtr. Added code to
3554         track both the current candidate (which needs to move along to the next node
3555         if current node is deleted) and the current provisional result (passed to acceptNode,
3556         and needs to be returned even if it's deleted).
3557         (WebCore::NodeIterator::previousNode): Ditto.
3558         (WebCore::NodeIterator::nodeWillBeRemoved): Call updateForNodeRemoval for
3559         m_candidateNode as well as m_referenceNode.
3560         * dom/NodeIterator.h: Use PassRefPtr for return values.
3561
3562 2008-03-25  Brady Eidson  <beidson@apple.com>
3563
3564         Reviewed by Anders
3565
3566         Add the ability to transform a CString into a SharedBuffer to avoid copying data
3567         This is valuable to avoid copying a block of data for an upcoming patch
3568
3569         * platform/SharedBuffer.cpp:
3570         (WebCore::SharedBuffer::adoptVector):
3571         * platform/SharedBuffer.h:
3572
3573         * platform/text/CString.cpp:
3574         (WebCore::CString::releaseBuffer):
3575         * platform/text/CString.h:
3576         (WebCore::CStringBuffer::releaseBuffer):
3577
3578 2008-03-25  Brady Eidson  <beidson@apple.com>
3579
3580         Attempt to fix .bkl build systems after recent archive additions
3581
3582         * webcore-base.bkl:
3583
3584 2008-03-25  Kevin McCullough  <kmccullough@apple.com>
3585
3586         Reviewed by Adam.
3587
3588         - Cleaned up the needless use of RefPtrs, which we may someday no longer use for
3589         InspectorResources.
3590
3591         * page/InspectorController.cpp:
3592         (WebCore::InspectorController::didFinishLoading):
3593         (WebCore::InspectorController::didFailLoading):
3594
3595 2008-03-25  Kevin McCullough  <kmccullough@apple.com>
3596
3597         Reviewed by Adam.
3598
3599         - Added a null check
3600
3601         * xml/XMLHttpRequest.cpp: Null check
3602         (WebCore::XMLHttpRequest::send):
3603
3604 2008-03-25  Kevin McCullough  <kmccullough@apple.com>
3605
3606         Reviewed by Tim.
3607
3608         -<rdar://problem/5712804> XMLHttpRequests do not show response contents, preview images (14313)
3609         -<rdar://problem/5712931> XMLHttpRequests should be shown separately and grouped (14315)
3610         -<rdar://problem/5732836> XMLHttpRequest: Inspector should show network activity/XHR in Console (17233)
3611         - XMLHttpRequestResources now identify themselves to the inspector which caches the data related to
3612         the request since no one else caches it.  However this is just the plumbing and the Inspector's UI
3613         has not been changed to show XHR resources yet. 
3614
3615         * page/InspectorController.cpp: Add ability to set XHR data on an InspectorResource.
3616         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
3617         (WebCore::XMLHttpRequestResource::data):
3618         (WebCore::XMLHttpRequestResource::encoding):
3619         (WebCore::InspectorResource::): Add new type.
3620         (WebCore::InspectorResource::~InspectorResource): No longer virtual since we are not using inheritance.
3621         (WebCore::InspectorResource::type): Ditto.
3622         (WebCore::InspectorResource::setXMLHttpRequestResource):
3623         (WebCore::InspectorResource::isXHR):
3624         (WebCore::InspectorResource::xmlHttpRequestData):
3625         (WebCore::InspectorResource::xmlHttpRequestEncoding):
3626         (WebCore::InspectorResource::InspectorResource):
3627         (WebCore::addSourceToFrame):
3628         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
3629         * page/InspectorController.h: Add accessor for setting the XHR data.
3630         * page/inspector/Resource.js: Keep the XHR resource types in sync with the Inspector Controller.
3631         * xml/XMLHttpRequest.cpp: Give the InspectorController the XHR information to cache.
3632         (WebCore::XMLHttpRequest::send):
3633
3634 2008-03-25  Adam Roben  <aroben@apple.com>
3635
3636         Add an UnusedParam.h forwarding header for use by testapi
3637
3638         Reviewed by Steve Falkenburg.
3639
3640         * ForwardingHeaders/wtf/UnusedParam.h: Added.
3641
3642 2008-03-25  Brady Eidson  <beidson@apple.com>
3643
3644         Reviewed by Adam Roben
3645
3646         <rdar://problem/5819308> - View Source is empty when view webarchives
3647
3648         * WebCore.base.exp:
3649         * loader/DocumentLoader.cpp:
3650         (WebCore::DocumentLoader::setParsedArchiveData):
3651         (WebCore::DocumentLoader::parsedArchiveData):
3652         * loader/DocumentLoader.h:
3653
3654         * loader/FrameLoader.cpp:
3655         (WebCore::FrameLoader::finishedLoadingDocument): Set the archive's MainResource data as the parsedArchiveData
3656           in the DocumentLoader
3657
3658 2008-03-25  Eric Seidel  <eric@webkit.org>
3659
3660         Reviewed by Oliver.
3661
3662         Speculative crash fix for Acid3 crasher.
3663         I couldn't figure out how to make a test case for this?
3664         Suggestions welcome.
3665
3666         * css/CSSFontSelector.cpp: null check document->renderer()
3667
3668 2008-03-25  Antti Koivisto  <antti@apple.com>
3669
3670         Reviewed by Geoff Garen.
3671
3672         Some memory cache cleanups:
3673         - Separate CachedResource loading from construction, initiate load using a separate load() method.
3674         - Add special case function to Cache for loading user stylesheets. This allows removal
3675           of a bunch of parameters from several methods and CachedResource constructors.
3676         - Construct CachedResources with m_inCache set to false which is quite a bit more logical as they
3677           are not yet in the cache at that point.
3678         - Pass encoding around as const String& instead of const String*.
3679
3680         * css/CSSImageValue.cpp:
3681         (WebCore::CSSImageValue::image):
3682         * html/HTMLImageLoader.cpp:
3683         (WebCore::HTMLImageLoader::updateFromElement):
3684         * loader/Cache.cpp:
3685         (WebCore::createResource):
3686         (WebCore::Cache::requestResource):
3687         (WebCore::Cache::requestUserCSSStyleSheet):
3688         (WebCore::Cache::remove):
3689         * loader/Cache.h:
3690         * loader/CachedCSSStyleSheet.cpp:
3691         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
3692         * loader/CachedCSSStyleSheet.h:
3693         * loader/CachedFont.cpp:
3694         (WebCore::CachedFont::CachedFont):
3695         (WebCore::CachedFont::load):
3696         (WebCore::CachedFont::ref):
3697         * loader/CachedFont.h:
3698         * loader/CachedImage.cpp:
3699         (WebCore::CachedImage::CachedImage):
3700         (WebCore::CachedImage::load):
3701         * loader/CachedImage.h:
3702         * loader/CachedResource.cpp:
3703         (WebCore::CachedResource::CachedResource):
3704         (WebCore::CachedResource::~CachedResource):
3705         (WebCore::CachedResource::load):
3706         * loader/CachedResource.h:
3707         (WebCore::CachedResource::load):
3708         * loader/CachedScript.cpp:
3709         (WebCore::CachedScript::CachedScript):
3710         * loader/CachedScript.h:
3711         * loader/CachedXBLDocument.cpp:
3712         (WebCore::CachedXBLDocument::CachedXBLDocument):
3713         * loader/CachedXBLDocument.h:
3714         * loader/CachedXSLStyleSheet.cpp:
3715         (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
3716         * loader/CachedXSLStyleSheet.h:
3717         * loader/DocLoader.cpp:
3718         (WebCore::DocLoader::requestImage):
3719         (WebCore::DocLoader::requestFont):
3720         (WebCore::DocLoader::requestCSSStyleSheet):
3721         (WebCore::DocLoader::requestUserCSSStyleSheet):
3722         (WebCore::DocLoader::requestScript):
3723         (WebCore::DocLoader::requestXSLStyleSheet):
3724         (WebCore::DocLoader::requestXBLDocument):
3725         (WebCore::DocLoader::requestResource):
3726         (WebCore::DocLoader::preload):
3727         * loader/DocLoader.h:
3728
3729 2008-03-25  Darin Adler  <darin@apple.com>
3730
3731         Reviewed by Anders.
3732
3733         - avoid converting UString to String and then later to AtomicString
3734
3735         1% speedup on Acid3 test 26
3736
3737         This is inefficient for the case where there's already an AtomicString.
3738         By first creating and destroying a String we waste time.
3739
3740         * bindings/scripts/CodeGeneratorJS.pm: Use const UString& for string
3741         arguments rather than using String; this uses the object as it's produced
3742         from toString rather than creating a new temporary object that might not
3743         be of the right type. The type conversion happens at the callsite instead.
3744         Also eliminate the ability to use the type AtomicString from IDL.
3745
3746         * dom/KeyboardEvent.idl: AtomicString -> DOMString.
3747         * dom/MouseEvent.idl: Ditto.
3748         * dom/MutationEvent.idl: Ditto.
3749         * dom/UIEvent.idl: Ditto.
3750         * svg/SVGStyleElement.idl: Ditto.
3751
3752 2008-03-25  Brady Eidson  <beidson@apple.com>
3753
3754         Build fix for non-CoreFoundation platforms
3755
3756         * loader/archive/ArchiveFactory.cpp:
3757
3758 2008-03-25  Brady Eidson  <beidson@apple.com>
3759
3760         Reviewed by Darin
3761
3762         Remove newly obsolete FrameLoaderClient methods
3763
3764         * loader/FrameLoaderClient.h:
3765         * svg/graphics/SVGImageEmptyClients.h:
3766         (WebCore::SVGEmptyFrameLoaderClient::setMainDocumentError):
3767         (WebCore::SVGEmptyFrameLoaderClient::finishedLoading):
3768
3769 2008-03-25  Brady Eidson  <beidson@apple.com>
3770
3771         Reviewed by Darin
3772
3773         <rdar://problem/4516169> - Support WebArchives on Windows
3774         And pave the way for many future WebArchive bug fixes and enhancements
3775
3776         This patch accomplishes two main goals:
3777         1 - Consolidates much of the spread out WebKitMac archive code into one place in WebCore.  This allows for cleaner refactoring 
3778             in the future as well as adding more archive formats with ease.
3779         2 - Hooks up WebArchive support on Windows.  Safari-style .webarchive files are nothing more than property lists readable by
3780             CoreFoundation.  While there are still some outstanding issues, including an NSKeyedArchiver chunk of data for the 
3781             ResourceResponse for each resource, this patch manually parses through the property list on CoreFoundation platforms and
3782             gets many archives loading on Windows
3783
3784         My goal for this first cut was zero behavior change.  As such, I went for a direct port of the WebKitMac code.  There will be
3785         opportunities for redesign and refactoring as followups.
3786
3787         * WebCore.base.exp:
3788
3789         * loader/DocumentLoader.cpp:
3790         (WebCore::DocumentLoader::setupForReplaceByMIMEType): Ported from WebKitMac, WebDataSource
3791         (WebCore::DocumentLoader::addAllArchiveResources):
3792         (WebCore::DocumentLoader::addArchiveResource):
3793         (WebCore::DocumentLoader::archiveResourceForURL):
3794         (WebCore::DocumentLoader::popArchiveForSubframe):
3795         (WebCore::DocumentLoader::clearArchiveResources):
3796         * loader/DocumentLoader.h:
3797
3798         * loader/FrameLoader.cpp: Moved WebFrameLoaderClient and WebFrame code down into their more appropriate FrameLoader home
3799         (WebCore::FrameLoader::FrameLoader):
3800         (WebCore::FrameLoader::setDefersLoading):
3801         (WebCore::FrameLoader::deliverArchivedResourcesAfterDelay):
3802         (WebCore::FrameLoader::archiveResourceDeliveryTimerFired):
3803         (WebCore::FrameLoader::loadURLIntoChildFrame):
3804         (WebCore::FrameLoader::loadArchive):
3805         (WebCore::FrameLoader::scheduleArchiveLoad):
3806         (WebCore::FrameLoader::stopAllLoaders):
3807         (WebCore::FrameLoader::cancelPendingArchiveLoad):
3808         (WebCore::FrameLoader::isArchiveLoadPending):
3809         (WebCore::FrameLoader::finishedLoadingDocument):
3810         * loader/FrameLoader.h:
3811
3812         * loader/ResourceLoader.cpp:
3813         (WebCore::ResourceLoader::load):
3814
3815         * loader/archive/Archive.h: Generic "Archive of web resources" class that is only useful when subclassed.  
3816             Contains a MainResource, subresources, and Archives for subframes
3817         (WebCore::Archive::mainResource):
3818         (WebCore::Archive::subresources):
3819         (WebCore::Archive::subframeArchives):
3820         (WebCore::Archive::setMainResource):
3821         (WebCore::Archive::addSubresource):
3822         (WebCore::Archive::addSubframeArchive):
3823
3824         * loader/archive/ArchiveFactory.cpp: A class that will take raw archive data and the MIMEtype, and create the
3825             appropriate Archive class for it.  Additionally it handles registering the known MIMEtypes for all known archive formats
3826         (WebCore::archiveFactoryCreate):
3827         (WebCore::archiveMIMETypes):
3828         (WebCore::ArchiveFactory::isArchiveMimeType):
3829         (WebCore::ArchiveFactory::create):
3830         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
3831         * loader/archive/ArchiveFactory.h:
3832
3833         * loader/archive/ArchiveResource.cpp: Analog to "WebResource" in WebKitMac.  Contains the data and other important
3834             attributes of an archived resource
3835         (WebCore::ArchiveResource::create):
3836         (WebCore::ArchiveResource::ArchiveResource):
3837         (WebCore::ArchiveResource::response):
3838         * loader/archive/ArchiveResource.h:
3839         (WebCore::ArchiveResource::data):
3840         (WebCore::ArchiveResource::url):
3841         (WebCore::ArchiveResource::mimeType):
3842         (WebCore::ArchiveResource::textEncoding):
3843         (WebCore::ArchiveResource::frameName):
3844         (WebCore::ArchiveResource::ignoreWhenUnarchiving):
3845         (WebCore::ArchiveResource::shouldIgnoreWhenUnarchiving):
3846
3847         * loader/archive/ArchiveResourceCollection.cpp: Analog of "WebUnarchivingState" in WebKitMac.  Contains a hash of
3848             all the resources for every frame in an archive, and contains the archives for each subframe needed to load a multi-frame archive
3849         (WebCore::ArchiveResourceCollection::ArchiveResourceCollection):
3850         (WebCore::ArchiveResourceCollection::addAllResources):
3851         (WebCore::ArchiveResourceCollection::addResource):
3852         (WebCore::ArchiveResourceCollection::archiveResourceForURL):
3853         (WebCore::ArchiveResourceCollection::popSubframeArchive):
3854         * loader/archive/ArchiveResourceCollection.h:
3855
3856         * loader/archive/cf/LegacyWebArchive.cpp: Subclass of Archive specifically for Webkit's Objective-C based ".webarchive" format.
3857             Mostly a collection of static methods involved in parsing and serializing a WebKit-style .webarchive.  Is mostly supported
3858             for any CF platform.
3859         (WebCore::createPropertyListRepresentationFromResource):
3860         (WebCore::createPropertyListRep):
3861         (WebCore::createResourceResponseFromPropertyListData):
3862         (WebCore::createResource):
3863         (WebCore::LegacyWebArchive::create):
3864         (WebCore::LegacyWebArchive::LegacyWebArchive):
3865         (WebCore::LegacyWebArchive::init):
3866         (WebCore::LegacyWebArchive::extract):
3867         (WebCore::LegacyWebArchive::rawDataRepresentation):
3868         (WebCore::createResourceResponseFromMacArchivedData):
3869         (WebCore::propertyListDataFromResourceResponse):
3870         * loader/archive/cf/LegacyWebArchive.h:
3871         * loader/archive/cf/LegacyWebArchiveMac.mm:
3872         (WebCore::createResourceResponseFromMacArchivedData):
3873         (WebCore::propertyListDataFromResourceResponse):
3874
3875         * platform/network/mac/ResourceRequest.h:
3876         * platform/network/mac/ResourceRequestMac.mm:
3877         (WebCore::ResourceRequest::applyWebArchiveHackForMail): Tweak the resource request for Mac clients when loading WebArchives
3878
3879 2008-03-25  David Hyatt  <hyatt@apple.com>
3880
3881         Cut and paste error in the zoom code.  A width() should have been a height().  Regression tests caught this.
3882
3883         * page/DOMWindow.cpp:
3884         (WebCore::DOMWindow::innerHeight):
3885
3886 2008-03-24  Darin Adler  <darin@apple.com>
3887
3888         - try to fix broken Wx build
3889
3890         * platform/wx/TemporaryLinkStubs.cpp:
3891         (GraphicsContext::setPlatformShadow):
3892         (GraphicsContext::clearPlatformShadow):
3893
3894 2008-03-24  Darin Adler  <darin@apple.com>
3895
3896         Reviewed by Sam.
3897
3898         - use AtomicString more consistently for attribute values
3899
3900         1% speedup on Acid3 test 26
3901
3902         * dom/Element.cpp:
3903         (WebCore::Element::setAttribute): Changed value argument to AtomicString.
3904         Also fixed call to lower() to only be done if the name isn't already lowercase.
3905         Also took out one unneeded condition in a cascade of if statements.
3906         (WebCore::Element::createAttribute): Ditto.
3907         (WebCore::Element::setAttributeNS): Ditto.
3908         * dom/Element.h: Ditto.
3909         * dom/StyledElement.cpp:
3910         (WebCore::StyledElement::createAttribute): Ditto.
3911         * dom/StyledElement.h: Ditto.
3912
3913 2008-03-24  Darin Adler  <darin@apple.com>
3914
3915         Reviewed by Sam.
3916
3917         - get rid of extra level of function call in toJS functions for Node
3918
3919         0.6% speedup on Acid3 test 26
3920
3921         * bindings/js/JSNodeCustom.cpp:
3922         (WebCore::toJS): Take a raw pointer, not a PassRefPtr, like other toJS functions.
3923
3924         * bindings/scripts/CodeGeneratorJS.pm: Add an inlined toJS for EventTargetNode*
3925         to avoid ambiguity that otherwise exists between the toJS for EventTarget* and
3926         for Node*.
3927
3928 2008-03-24  Darin Adler  <darin@apple.com>
3929
3930         Reviewed by Hyatt.
3931
3932         - add fast path to isValidName that does not use advanced Unicode functions
3933
3934         2% speedup on Acid3 test 26
3935
3936         * dom/Document.cpp:
3937         (WebCore::isValidNameNonASCII): Added. Contains the old isValidName function.
3938         (WebCore::isValidNameASCII): Added. Contains a simpler function that returns
3939         true for most valid names that are also all ASCII.
3940         (WebCore::Document::isValidName): Changed to call both of the above functions.
3941         The common case is that isValidNameASCII returns true so isValidNameNonASCII
3942         is never called.
3943
3944 2008-03-24  David Hyatt  <hyatt@apple.com>
3945
3946         Fix for bug 18052, window properties need to respect zoom factor.
3947
3948         Reviewed by Beth
3949
3950         * page/DOMWindow.cpp:
3951         (WebCore::DOMWindow::innerHeight):
3952         (WebCore::DOMWindow::innerWidth):
3953         (WebCore::DOMWindow::scrollX):
3954         (WebCore::DOMWindow::scrollY):
3955         (WebCore::DOMWindow::scrollTo):
3956         * page/FrameView.cpp:
3957         (WebCore::FrameViewPrivate::reset):
3958         (WebCore::FrameView::layout):
3959         (WebCore::FrameView::performPostLayoutTasks):
3960
3961 2008-03-24  Sam Weinig  <sam@webkit.org>
3962
3963         Reviewed by Darin Adler.
3964
3965         Fix http://bugs.webkit.org/show_bug.cgi?id=18048
3966         The "thisObject" parameter to JSEvaluateScript is not used properly
3967
3968         * bindings/js/kjs_proxy.cpp:
3969         (WebCore::KJSProxy::evaluate): No need to pass a thisObject since we want the global object to be used.
3970         * bridge/jni/jni_jsobject.mm:
3971         (JavaJSObject::eval): To avoid any change to this function, don't pass a thisObject to keep the same
3972         behavior.
3973
3974 2008-03-24  Brady Eidson  <beidson@apple.com>
3975
3976         Reviewed by Darin's rubberstamp
3977
3978         Land a load of empty files for upcoming work to make sure I'm not breaking any platform's build
3979
3980         * GNUmakefile.am:
3981         * WebCore.pro:
3982         * WebCore.vcproj/WebCore.vcproj:
3983         * WebCore.xcodeproj/project.pbxproj:
3984         * WebCoreSources.bkl:
3985         * loader/archive: Added.
3986         * loader/archive/Archive.h: Added.
3987         * loader/archive/ArchiveFactory.cpp: Added.
3988         * loader/archive/ArchiveFactory.h: Added.
3989         * loader/archive/ArchiveResource.cpp: Added.
3990         * loader/archive/ArchiveResource.h: Added.
3991         * loader/archive/ArchiveResourceCollection.cpp: Added.
3992         * loader/archive/ArchiveResourceCollection.h: Added.
3993         * loader/archive/cf: Added.
3994         * loader/archive/cf/LegacyWebArchive.cpp: Added.
3995         * loader/archive/cf/LegacyWebArchive.h: Added.
3996         * loader/archive/cf/LegacyWebArchiveMac.mm: Added.
3997
3998 2008-03-24  David Hyatt  <hyatt@apple.com>
3999
4000         Fix for bug 18009. Make sure the IE offset/client/scroll*** extensions respect full page zoom.
4001
4002         Reviewed by Beth
4003
4004         * dom/Element.cpp:
4005         (WebCore::localZoomForRenderer):
4006         (WebCore::adjustForLocalZoom):
4007         (WebCore::adjustForAbsoluteZoom):
4008         (WebCore::Element::offsetLeft):
4009         (WebCore::Element::offsetTop):
4010         (WebCore::Element::offsetWidth):
4011         (WebCore::Element::offsetHeight):
4012         (WebCore::Element::clientLeft):
4013         (WebCore::Element::clientTop):
4014         (WebCore::Element::clientWidth):
4015         (WebCore::Element::clientHeight):
4016         (WebCore::Element::scrollLeft):
4017         (WebCore::Element::scrollTop):
4018         (WebCore::Element::setScrollLeft):
4019         (WebCore::Element::setScrollTop):
4020         (WebCore::Element::scrollWidth):
4021         (WebCore::Element::scrollHeight):
4022         * rendering/RenderBox.cpp:
4023         (WebCore::RenderBox::setStyle):
4024         * rendering/RenderObject.cpp:
4025         (WebCore::RenderObject::offsetParent):
4026         * rendering/RenderObject.h:
4027
4028 2008-03-24  Brady Eidson  <beidson@apple.com>
4029
4030         Reviewed by Darin
4031
4032         Some style cleanup and add a logging channel for upcoming work
4033
4034         * platform/Logging.cpp:
4035         * platform/Logging.h:
4036
4037         * platform/MIMETypeRegistry.cpp:
4038         (WebCore::initializeSupportedImageMIMETypes):
4039         (WebCore::initializeSupportedNonImageMimeTypes):
4040
4041 2008-03-24  Dan Bernstein  <mitz@apple.com>
4042
4043         Reviewed by Sam Weinig.
4044
4045         - fix <rdar://problem/5812292> CrashTracer: [REGRESSION] 60 crashes in Safari at com.apple.WebCore: WebCore::RenderObject::repaintRectangle + 47
4046
4047         Test: fast/repaint/renderer-destruction-by-invalidateSelection-crash.html
4048
4049         * page/FrameView.cpp:
4050         (WebCore::FrameViewPrivate::reset): Removed repaintRects code.
4051         (WebCore::FrameView::layout): Ditto.
4052         (WebCore::FrameView::addRepaintInfo): Removed.
4053
4054         * page/FrameView.h: Removed addRepaintInfo().
4055
4056         * rendering/RenderBlock.cpp:
4057         (WebCore::RenderBlock::layoutBlock): Changed to call repaintRectangle
4058         instead of FrameView::addRepaintInfo().
4059         * rendering/RenderTable.cpp:
4060         (WebCore::RenderTable::layout): Ditto.
4061
4062 2008-03-24  Alp Toker  <alp@atoker.com>
4063
4064         GTK+/soup http backend build fix for breakage introduced in r31141.
4065         Fix suggested by Xan.
4066
4067         * platform/network/ResourceHandle.h:
4068
4069 2008-03-24  Dan Bernstein  <mitz@apple.com>
4070
4071         Reviewed by Sam Weinig.
4072
4073         - fix <rdar://problem/5792582> CSS opacity does not work with GDI text
4074         - fix <rdar://problem/5792619> non-opaque CSS colors do not work with GDI text (RGBA, HSLA)
4075         - fix <rdar://problem/5792624> GDI text can't be stroked/filled independently
4076         - make text-shadow work with GDI text
4077         - make -webkit-background-clip: text work with GDI text
4078
4079         * platform/graphics/GraphicsContext.cpp:
4080         (WebCore::GraphicsContext::setShadow): Made this a shared method that
4081         updates the state and calls the platform-specific method.
4082         (WebCore::GraphicsContext::clearShadow): Ditto.
4083         (WebCore::GraphicsContext::getShadow): Added.
4084
4085         * platform/graphics/GraphicsContext.h:
4086         (WebCore::GraphicsContext::WindowsBitmap): Added this class that
4087         represents a bitmap with a Windows device context that GDI can draw into.
4088
4089         * platform/graphics/GraphicsContextPrivate.h:
4090         (WebCore::GraphicsContextState::GraphicsContextState): Added the shadow
4091         parameters to the graphics state.
4092
4093         * platform/graphics/cairo/GraphicsContextCairo.cpp:
4094         (WebCore::GraphicsContext::setPlatformShadow): Renamed the platform-
4095         specific implementation to this.
4096         (WebCore::GraphicsContext::clearPlatformShadow): Renamed the platform-
4097         specific implementation to this.
4098
4099         * platform/graphics/cg/GraphicsContextCG.cpp:
4100         (WebCore::GraphicsContext::setPlatformShadow): Renamed the platform-
4101         specific implementation to this.
4102         (WebCore::GraphicsContext::clearPlatformShadow): Renamed the platform-
4103         specific implementation to this.
4104
4105         * platform/graphics/qt/GraphicsContextQt.cpp:
4106         (WebCore::GraphicsContext::setPlatformShadow): Renamed the platform-
4107         specific implementation to this.
4108         (WebCore::GraphicsContext::clearPlatformShadow): Renamed the platform-
4109         specific implementation to this.
4110
4111         * platform/graphics/win/FontCGWin.cpp:
4112         (WebCore::toCGFloat): Added. Converts a Windows FIXED.
4113         (WebCore::createPathForGlyph): Added. Retrieves a glyph's hinted
4114         outline from GDI and creates a CGPath containing it.
4115         (WebCore::Font::drawGlyphs): Added two code paths in the GDI case.
4116         The existing code path, which uses GDI to draw text directly to the
4117         graphics context, is used for opaque-colored, non-transformed,
4118         non-stroked, non-shadowed text in a GDI-backed graphics context that is
4119         not in a transparency layer.
4120         An additional code path is used for non-stroked text in all other cases.
4121         It uses GDI to draw black text into an all-white Windows bitmap, then
4122         uses the green channel as a mask to create a bitmap with the desired
4123         fill color and alpha. The bitmap is then drawn into the graphics
4124         context, at which time transparency layers, transforms and shadows are
4125         handled properly.
4126         A third code path is used for stroked text. It constructs a path from
4127         hinted glyph outlines retrieved from GDI and strokes (and optionally
4128         fills) it.
4129
4130         * platform/graphics/win/GraphicsContextCGWin.cpp:
4131         (WebCore::GraphicsContext::getWindowsContext): Added a mayCreateBitmap
4132         parameter. When false, prevents this method from creating a Windows
4133         device context if the graphics context does not already have one.
4134         (WebCore::GraphicsContext::releaseWindowsContext): Added a
4135         mayCreateBitmap parameter to match getWindowsContext().
4136         (WebCore::GraphicsContext::WindowsBitmap::WindowsBitmap):
4137         (WebCore::GraphicsContext::WindowsBitmap::~WindowsBitmap):
4138         (WebCore::GraphicsContext::createWindowsBitmap): Added.
4139         (WebCore::GraphicsContext::drawWindowsBitmap): Added. Draws the bitmap
4140         as a non-alpha-premultiplied image.
4141
4142 2008-03-24  Kevin McCullough <kmccullough@apple.com>
4143
4144           - Fixed Changelog
4145
4146 2008-03-24  Marco Barisione  <marco.barisione@collabora.co.uk>
4147
4148         Reviewed by Alp Toker.
4149
4150         http://bugs.webkit.org/show_bug.cgi?id=17845
4151         [GTK] combo box menu displayed in the wrong position
4152
4153         * platform/gtk/PopupMenuGtk.cpp:
4154         (WebCore::PopupMenu::show): Change the popup menu vertical position so
4155         that the active item is over the combo box.
4156         (WebCore::PopupMenu::menuPositionFunction): use the "push in" style
4157         like native GTK+ combo boxes to handle menus that don't fit in the
4158         screen.
4159
4160 2008-03-24  Adam Roben  <aroben@apple.com>
4161
4162         * WebCore.vcproj/WebCore.vcproj: Add files from WebCore/page/inspector
4163         to the project.
4164
4165 2008-03-24  Alexey Proskuryakov  <ap@webkit.org>
4166
4167         Build fix.
4168
4169         * WebCore.xcodeproj/project.pbxproj: Added DOMSVGAltGlyphElement.h and
4170         DOMSVGAltGlyphElementInternal.h to Copy Generated Headers phase.
4171
4172 2008-03-24  Eric Seidel  <eric@webkit.org>
4173
4174         Build fix, no review.
4175
4176         Fix project paths to be group relative instead of project relative
4177
4178         * WebCore.xcodeproj/project.pbxproj:
4179
4180 2008-03-23  Maciej Stachowiak  <mjs@apple.com>
4181
4182         Reviewed by Eric.
4183
4184         - fixed "SVGTextElement.getNumberOfChars is broken for altGlyph (affects Acid3 test 79)"
4185         http://bugs.webkit.org/show_bug.cgi?id=17062
4186
4187         * svg/SVGAltGlyphElement.cpp: Added. Implementation for new element.
4188         (WebCore::SVGAltGlyphElement::SVGAltGlyphElement):
4189         (WebCore::SVGAltGlyphElement::~SVGAltGlyphElement):
4190         (WebCore::SVGAltGlyphElement::setGlyphRef):
4191         (WebCore::SVGAltGlyphElement::glyphRef):
4192         (WebCore::SVGAltGlyphElement::setFormat):
4193         (WebCore::SVGAltGlyphElement::format):
4194         (WebCore::SVGAltGlyphElement::childShouldCreateRenderer):
4195         (WebCore::SVGAltGlyphElement::createRenderer): For now, this just renders as a tspan,
4196         which is right for everything besides the alternate glyph substitution itself.
4197         * svg/SVGAltGlyphElement.h: Added. Header for new element.
4198         (WebCore::SVGAltGlyphElement::contextElement):
4199         * svg/SVGAltGlyphElement.idl: Added. Interface for new element.
4200         * svg/SVGTSpanElement.cpp:
4201         (WebCore::SVGTSpanElement::childShouldCreateRenderer): Allow altGlyph to render here.
4202         * svg/SVGTextElement.cpp:
4203         (WebCore::SVGTextElement::childShouldCreateRenderer): ditto
4204         * svg/SVGTextPathElement.cpp:
4205         (WebCore::SVGTextPathElement::childShouldCreateRenderer): ditto
4206         * svg/svgtags.in: Add altGlyph
4207         * DerivedSources.make: Add new files
4208         * GNUmakefile.am: ditto
4209         * WebCore.SVG.exp: Add new ObjC DOM class
4210         * WebCore.pro: Add new files
4211         * WebCore.vcproj/WebCore.vcproj: ditto
4212         * WebCore.xcodeproj/project.pbxproj: ditto
4213         * bindings/js/JSSVGElementWrapperFactory.cpp: Handle altGlyph
4214         * bindings/objc/DOM.mm:
4215         (WebCore::createElementClassMap): ditto
4216         * bindings/objc/DOMInternal.h: Include altGlyph header
4217        &nb