Fix <rdar://problem/5652740> Crash occurs at WebCore::Widget::getView() after draggin...
[WebKit-https.git] / WebCore / ChangeLog
1 2008-01-08  Oliver Hunt  <oliver@apple.com>
2
3         Reviewed by Adele and John.
4
5         Fix <rdar://problem/5652740> Crash occurs at WebCore::Widget::getView() after
6         dragging file into window that contains web page ( http://www.econocraft.com/flood_arch.htm )
7
8         We hit this crash if the page reloads between DragController::dragUpdated
9         and DragController::performDrag, meaning that m_document starts pointing to
10         a now viewless document.  This is picked up by an assertion in performDrag
11         which I have now replaced with an assignment given that the assertion is 
12         invalid -- it is possible for m_document to be changed between dragUpdated
13         performDrag
14
15         * page/DragController.cpp:
16         (WebCore::DragController::performDrag):
17
18 2008-01-08  Alexey Proskuryakov  <ap@webkit.org>
19
20         Reviewed by Darin.
21
22         <rdar://problem/5659812> CrashTracer: 462 crashes in Safari at com.apple.WebCore:
23         WebCore::Node::setChanged + 96
24
25         Test: fast/dom/cssTarget-crash.html
26
27         * dom/Node.cpp: (WebCore::Node::removedFromDocument):
28         Check to see if the node being removed is currently set as the Document's cssTarget.
29         If it is, clear the cssTarget to prevent a hanging reference to it.
30
31 2008-01-08  Adam Roben  <aroben@apple.com>
32
33         * svg/svgtags.in: Touch this again for the sake of the Windows bots.
34
35 2008-01-08  Timothy Hatcher  <timothy@apple.com>
36
37         Reviewed by Adam Roben.
38
39         Use JSRetainPtr in the Web Inspector everywhere we own a JSStringRef.
40         Also added some #pragma marks to help find places in the file.
41
42         * page/InspectorController.cpp:
43         (WebCore::callSimpleFunction): Use JSRetainPtr<JSStringRef>.
44         And return the result of JSObjectCallAsFunction.
45         (WebCore::search): Use JSRetainPtr<JSStringRef>.
46         (WebCore::databaseTableNames): Ditto.
47         (WebCore::localizedStrings): Ditto.
48         (WebCore::InspectorController::~InspectorController): Ditto.
49         (WebCore::InspectorController::focusNode): Ditto.
50         (WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
51         (WebCore::InspectorController::scriptObjectReady): Ditto.
52         (WebCore::addHeaders): Ditto.
53         (WebCore::InspectorController::addScriptResource): Ditto.
54         (WebCore::InspectorController::removeScriptResource): Ditto.
55         (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
56         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
57         (WebCore::InspectorController::updateScriptResource): Ditto.
58         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
59         (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
60         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
61
62 2008-01-08  Dan Bernstein  <mitz@apple.com>
63
64         Rubber-stamped by Sam Weinig.
65
66         - rename FontDataBaseClass.{cpp,h} back to FontData.{cpp,h}
67
68         * GNUmakefile.am:
69         * WebCore.pro:
70         * WebCore.vcproj/WebCore.vcproj:
71         * WebCore.xcodeproj/project.pbxproj:
72         * WebCoreSources.bkl:
73         * editing/Editor.cpp:
74         * platform/graphics/FontData.cpp: Copied from WebCore/platform/graphics/FontDataBaseClass.cpp.
75         * platform/graphics/FontData.h: Copied from WebCore/platform/graphics/FontDataBaseClass.h.
76         * platform/graphics/FontDataBaseClass.cpp: Removed.
77         * platform/graphics/FontDataBaseClass.h: Removed.
78         * platform/graphics/SegmentedFontData.h:
79         * platform/graphics/SimpleFontData.h:
80
81 2008-01-08  Dan Bernstein  <mitz@apple.com>
82
83         Fix a Wx build error.
84
85         * platform/graphics/wx/GlyphMapWx.cpp:
86         (WebCore::GlyphPage::fill):
87
88 2008-01-08  Dan Bernstein  <mitz@apple.com>
89
90         Fix a Qt build error.
91
92         * platform/graphics/qt/SimpleFontDataQt.cpp:
93         (WebCore::SimpleFontData::containsCharacters):
94         (WebCore::SimpleFontData::fontDataForCharacter):
95         (WebCore::SimpleFontData::isSegmented):
96
97 2008-01-08  Adam Roben  <aroben@apple.com>
98
99         Windows build fix.
100
101         Touch config.h to force a rebuild (apparently changing preprocessor
102         definitions in the .vcproj doesn't force a rebuild).
103
104         * config.h:
105
106 2008-01-08  Dan Bernstein  <mitz@apple.com>
107
108         Fix a Wx build failure.
109
110         * webcore-wx.bkl:
111
112 2008-01-08  Dan Bernstein  <mitz@apple.com>
113
114         Fix a Qt build failure.
115
116         * WebCore.pro:
117
118 2008-01-08  John Sullivan  <sullivan@apple.com>
119
120         Reviewed by Adam Roben
121         
122         - fixed <rdar://problem/5671668> REGRESSION (r28711-r28730): With caret in an empty form field, 
123           Delete menu item is enabled but shouldn't be
124
125         The enabled logic was incorrect for the Delete menu item. To fix this, I added an EditorCommandSource
126         parameter to the enabled functions so that they can have parallel logic to the execute functions.
127
128         * editing/EditorCommand.cpp:
129         added EditorCommandSource parameter to isEnabled function prototype
130         (WebCore::enabled):
131         added unused EditorCommandSource parameter to these isEnabled functions:
132         (WebCore::enabledAnySelection):
133         (WebCore::enabledAnySelectionAndMark):
134         (WebCore::enableCaretInEditableText):
135         (WebCore::enabledCopy):
136         (WebCore::enabledCut):
137
138         (WebCore::enabledDelete):
139         new function, uses logic previously used by Delete command for DOM sources; uses logic in enabledCut
140         for menu source
141
142         added unused EditorCommandSource parameter to these isEnabled functions:
143         (WebCore::enabledInEditableText):
144         (WebCore::enabledInRichlyEditableText):
145         (WebCore::enabledPaste):
146         (WebCore::enabledRangeInEditableText):
147         (WebCore::enabledRangeInRichlyEditableText):
148         (WebCore::enabledRedo):
149         (WebCore::enabledUndo):
150         
151         (WebCore::CommandEntry::):
152         wire up new enabledDelete function as delete function for Delete command
153         
154         (WebCore::Editor::Command::isEnabled):
155         pass EditorCommandSource parameter to isEnabled function
156
157 2008-01-08  Adam Roben  <aroben@apple.com>
158
159         Visual C++ Express build fix
160
161         * WebCore.vcproj/QTMovieWin.vcproj: Explicitly link against user32.lib
162         and advapi32.lib. VS implicitly links against these, VC++ Express
163         doesn't.
164
165 2008-01-08  Dan Bernstein  <mitz@apple.com>
166
167         - add bug number
168
169         * platform/graphics/mac/FontCustomPlatformData.cpp:
170         (WebCore::createFontCustomPlatformData):
171
172 2008-01-08  Dan Bernstein  <mitz@apple.com>
173
174         Try to fix the Qt build.
175
176         * WebCore.pro:
177
178 2008-01-08  Nikolas Zimmermann  <zimmermann@kde.org>
179
180         Not reviewed. Try to fix Qt builds after Timothy's inspector changes.
181
182         * page/inspector/WebKit.qrc:
183
184 2008-01-08  Maciej Stachowiak  <mjs@apple.com>
185
186         Reviewed by Mark.
187
188         - remove duplicate definition of getElementById from HTMLDocument IDL (and ObjC bindings)
189
190         * bindings/objc/PublicDOMInterfaces.h:
191         * html/HTMLDocument.idl:
192
193 2008-01-08  David D. Kilzer  <ddkilzer@webkit.org>
194
195         Renamed CharacterData::str to m_str to match coding style
196
197         Rubber-stamped by Adam.
198
199         No test cases added since there is no change in behavior.
200
201         * dom/CDATASection.cpp:
202         * dom/CharacterData.cpp:
203         (WebCore::CharacterData::CharacterData):
204         (WebCore::CharacterData::setData):
205         (WebCore::CharacterData::substringData):
206         (WebCore::CharacterData::appendData):
207         (WebCore::CharacterData::insertData):
208         (WebCore::CharacterData::deleteData):
209         (WebCore::CharacterData::replaceData):
210         (WebCore::CharacterData::nodeValue):
211         (WebCore::CharacterData::containsOnlyWhitespace):
212         (WebCore::CharacterData::dispatchModifiedEvent):
213         (WebCore::CharacterData::checkCharDataOperation):
214         (WebCore::CharacterData::dump):
215         * dom/CharacterData.h:
216         * dom/Comment.cpp:
217         * dom/Text.cpp:
218         (WebCore::Text::splitText):
219         (WebCore::Text::createRenderer):
220         (WebCore::Text::recalcStyle):
221
222 2008-01-08  Oliver Hunt  <oliver@apple.com>
223
224         Reviewed by NOBODY (Build fix).
225
226         Set the ENABLE_SVG_FONTS flag in Windows build, now builds, 
227         I'm not sure if it just caused the right files to regenerate,
228         or if there's some configuration weirdness in the non-SVG-fonts
229         build. 
230
231         * WebCore.vcproj/WebCore.vcproj:
232
233 2008-01-07  Maciej Stachowiak  <mjs@apple.com>
234
235         Reviewed by Brady.
236
237         - fixed <rdar://problem/5644300> Back/Forward Cache should not include pages with databases
238         
239         Track whether a document has ever opened a database; if so, exclude it from b/f caching (for now)
240         
241         * dom/Document.cpp:
242         (WebCore::Document::Document):
243         * dom/Document.h:
244         (WebCore::Document::setHasOpenDatabases):
245         (WebCore::Document::hasOpenDatabases):
246         * loader/FrameLoader.cpp:
247         (WebCore::FrameLoader::canCachePage):
248         * storage/Database.cpp:
249         (WebCore::Database::openDatabase):
250
251 2008-01-07  Dan Bernstein  <mitz@apple.com>
252
253         Reviewed by Oliver Hunt.
254
255         - fix leaks seen on the build bot
256
257         * css/CSSFontSelector.cpp:
258         (WebCore::CSSFontSelector::addFontFaceRule): Avoid creating a
259         CSSFontFaceSource for SVG font-face elements going into an
260         SVGCSSFontFace because it just leaks them. Avoid adding SVG font-
261         face elements to a CSSFontFace because it will not work as expected.
262
263 2008-01-07  Mark Rowe  <mrowe@apple.com>
264
265         Tiger build fix.
266
267         * platform/graphics/mac/FontCustomPlatformData.cpp:
268         (WebCore::createFontCustomPlatformData): Only include this code on Leopard.
269         It's not needed on Tiger, and breaks the build.
270
271 2008-01-07  Antti Koivisto  <antti@apple.com>
272
273         Reviewed by Steve.
274
275         Re-enable media support in Windows build.
276
277         * WebCore.vcproj/QTMovieWin.vcproj:
278         * WebCore.vcproj/WebCore.vcproj:
279         * WebCore.vcproj/build-generated-files.sh:
280
281 2008-01-07  Steve Falkenburg  <sfalken@apple.com>
282
283         Add version resource to QTMovieWin.dll
284         
285         Reviewed by Adam.
286
287         * WebCore.vcproj/PRODUCTVERSION: Copied from ../WebKit/win/WebKit.vcproj/PRODUCTVERSION.
288         * WebCore.vcproj/QTMovieWin.rc: Added.
289         * WebCore.vcproj/QTMovieWin.vcproj:
290         * WebCore.vcproj/VERSION: Copied from ../WebKit/win/WebKit.vcproj/VERSION.
291         * WebCore.vcproj/auto-version.sh: Copied from ../WebKit/win/WebKit.vcproj/auto-version.sh.
292
293 2008-01-07  Dan Bernstein  <mitz@apple.com>
294
295         Build fix.
296
297         * platform/graphics/qt/FontCustomPlatformData.cpp:
298         (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added.
299         Calls QFontDatabase::removeApplicationFont().
300         * platform/graphics/qt/FontCustomPlatformData.h:
301         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
302         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData): Removed the
303         implementation because Qt does not use the WebCore glyph cache.
304
305 2008-01-07  Dan Bernstein  <mitz@apple.com>
306
307         Reviewed by Oliver Hunt.
308
309         - fix an assertion failure in svg/W3C-SVG-1.1/fonts-elem-03-b.svg on
310           Tiger and multiple SVG layout test failures on Leopard.
311
312         * css/CSSSegmentedFontFace.cpp:
313         (WebCore::CSSSegmentedFontFace::getFontData): Avoid returning an
314         empty SegmentedFontData.
315         * platform/graphics/mac/FontCustomPlatformData.cpp:
316         (WebCore::createFontCustomPlatformData): Avoid creating a font that
317         contains no glyphs. On Leopard, ATS might create such a font given
318         data in an unsupported format (such as SVG).
319
320 2008-01-07  Steve Falkenburg  <sfalken@apple.com>
321
322         Build fix.
323
324         * WebCore.vcproj/WebCore.sln:
325         * WebCore.vcproj/WebCore.submit.sln:
326
327 2008-01-07  Oliver Hunt  <oliver@apple.com>
328
329         Reviewed by Niko.
330
331         Fix painting of SVG <image> when the image must be scaled to retain aspect ratio
332
333         Test: svg/custom/image-with-aspect-ratio-stretch.svg
334
335         * rendering/RenderSVGImage.cpp:
336         (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
337
338 2008-01-07  Dan Bernstein  <mitz@apple.com>
339
340         Build fix.
341
342         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
343         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
344
345 2008-01-07  Adele Peterson  <adele@apple.com>
346
347         Add missing newline.
348
349         * rendering/MediaControlElements.cpp:
350
351 2008-01-07  Jon Honeycutt  <jhoneycutt@apple.com>
352
353         Reviewed by Hyatt.
354
355         <rdar://problem/5673489> Safari does not render windowless plugins in an
356         iframe when opacity < 1.0
357
358         Plugins in transparency layers handle their own world transforms, so
359         only apply the horizontal/vertical transform if we are not in a
360         transparency layer.
361
362         * platform/graphics/GraphicsContext.h: Add a Windows-platform-only
363         inTransparencyLayer() function
364         * platform/win/GraphicsContextWin.cpp:
365         (WebCore::GraphicsContext::getWindowsContext): Use inTransparencyLayer()
366         (WebCore::GraphicsContext::inTransparencyLayer):
367         (WebCore::GraphicsContext::releaseWindowsContext): Use
368         inTransparencyLayer()
369         * plugins/win/PluginViewWin.cpp:
370         (WebCore::PluginViewWin::paint): When retrieving the HDC, use the rect
371         relative to the window. Pass m_isTransparent to
372         get/releaseWindowsContext(). Only set the world transform if we are not
373         in a transparency layer.
374
375 2008-01-07  Adele Peterson  <adele@apple.com>
376
377         Build fix.  Need to wrap these classes in #if ENABLE(VIDEO)
378
379         * rendering/MediaControlElements.cpp:
380         * rendering/MediaControlElements.h:
381
382 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
383
384         Reviewed by Mark.
385
386         Enable SVG_FONTS by default.
387
388         * Configurations/WebCore.xcconfig:
389         * WebCore.vcproj/build-generated-files.sh:
390
391 2008-01-07  Dan Bernstein  <mitz@apple.com>
392
393         Build fix.
394
395         * platform/graphics/qt/SimpleFontDataQt.cpp:
396         (WebCore::SimpleFontData::SimpleFontData):
397         (WebCore::SimpleFontData::~SimpleFontData):
398
399 2008-01-07  Adam Barth  <hk9565@gmail.com>
400
401         Reviewed by Sam Weinig
402
403         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16523
404         <rdar://problem/5657447>
405
406         When a frame is created with the URL "about:blank" or "", it should
407         inherit its SecurityOrigin from its opener.  However, once it has
408         decided on that SecurityOrigin, it should not change its mind.
409         Prior to this patch, several events could induce the frame to change
410         its SecurityOrigin, permitting an attacker to inject script into an
411         arbitrary SecurityOrigin.
412
413         This patch makes several changes:
414
415         1) Documents refuse to change from one SecurityOrigin to another
416            unless explicitly instructed to do so.
417
418         2) Navigating to a JavaScript URL that produces a value
419            preserves the current SecurityOrigin explicitly instead of
420            relying on the URL to preserve the origin (which fails for
421            about:blank URLs and SecurityOrigins with document.domain set).
422
423            Ideally, we should not preserve the URL at all.  Instead, the
424            frame's URL should be the JavaScript URL, as in Firefox, but this
425            would require changes that are too risky for this patch.  I'll
426            file this as a separate issue.
427
428         3) Various methods of navigating to JavaScript URLs were not
429            properly handling JavaScript that returned a value (and should
430            therefore replace the current document).  This patch unifies
431            those code paths with the path that works.
432
433            There are still a handful of bugs relating to the handling of
434            JavaScript URLs, but I'll file those as separate issues.
435
436         Tests: http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html
437                http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html
438                http/tests/security/aboutBlank/xss-DENIED-set-opener.html
439
440         * dom/Document.cpp:
441         (WebCore::Document::initSecurityOrigin):
442         * dom/Document.h:
443         (WebCore::Document::setSecurityOrigin):
444         * loader/FrameLoader.cpp:
445         (WebCore::FrameLoader::changeLocation):
446         (WebCore::FrameLoader::urlSelected):
447         (WebCore::FrameLoader::requestFrame):
448         (WebCore::FrameLoader::submitForm):
449         (WebCore::FrameLoader::executeIfJavaScriptURL):
450         (WebCore::FrameLoader::begin):
451         * loader/FrameLoader.h:
452         * platform/SecurityOrigin.cpp:
453         (WebCore::SecurityOrigin::setForURL):
454         (WebCore::SecurityOrigin::createForFrame):
455         * platform/SecurityOrigin.h:
456
457 2008-01-07  Adele Peterson  <adele@apple.com>
458
459         Forgot to check in these changes in my last checkin.
460
461         * rendering/RenderThemeSafari.cpp:
462
463 2008-01-07  Dan Bernstein  <mitz@apple.com>
464
465         Build fixes.
466
467         * WebCore.pro:
468         * platform/graphics/qt/FontCacheQt.cpp:
469         (WebCore::FontCache::getCachedFontData):
470
471 2008-01-07  Timothy Hatcher  <timothy@apple.com>
472
473         Reviewed by John Sullivan.
474
475         <rdar://problem/5674119> Make the Web Inspector toolbar the normal size when not docked
476
477         * page/inspector/inspector.css: Changed CSS rules to have the toolbar and buttons be
478           normal height when not docked, and small when docked. Also added some cursor properties
479           prevent showing the text cursor over areas that are not selectable.
480         * page/inspector/Images: A few images added and old ones removed or renamed.
481
482 2008-01-07  Alp Toker  <alp@atoker.com>
483
484         Prospective GTK+ autotools/qmake VIDEO build fix for breakage
485         introduced in r29257.
486
487         * GNUmakefile.am:
488         * WebCore.pro:
489
490 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
491
492         Reviewed by Oliver.
493
494         Build fix affecting all builds - again related to the unicode-range addition.
495
496         * css/CSSFontSelector.cpp:
497         (WebCore::CSSFontSelector::addFontFaceRule):
498         * css/SVGCSSFontFace.cpp:
499         (WebCore::SVGCSSFontFace::SVGCSSFontFace):
500         * css/SVGCSSFontFace.h:
501         * rendering/RenderSVGText.cpp:
502         * svg/SVGFont.cpp:
503         (WebCore::svgFontAndFontFaceElementForFontData):
504         (WebCore::floatWidthMissingGlyphCallback):
505         (WebCore::drawTextMissingGlyphCallback):
506         * svg/SVGFontFaceElement.cpp:
507
508 2008-01-07  Adele Peterson  <adele@apple.com>
509
510         Reviewed by Antti, Adam, and Mitz.
511
512         WebCore part of fix for 
513         <rdar://problem/5619073> Updated look for <video> controls
514         <rdar://problem/5619057> Add volume control to video controls
515
516         * WebCore.base.exp: Added symbols for WebKitSystemInterface drawing methods.
517         * WebCore.xcodeproj/project.pbxproj: Added MediaControlElements.h/cpp
518         * WebCore.vcproj/WebCore.vcproj: ditto.
519
520         * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added cases for new appearances.
521         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Added cases for new types.
522         * css/CSSSelector.h: (WebCore::CSSSelector::): Added new pseudo elements.
523         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::checkOneSelector): ditto.
524         * css/CSSValueKeywords.in: Added keywords for new control appearance styles.
525         * css/html4.css: Added new styles for new controls.
526
527         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::canPlay): Added. Takes loading state into account.
528         * html/HTMLMediaElement.h:
529
530         * page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): Make sure the events always go to the capturing node, if there is one.
531
532         * platform/mac/WebCoreSystemInterface.h: Added drawing methods for controls.
533         * platform/mac/WebCoreSystemInterface.mm: ditto.
534
535         * rendering/MediaControlElements.cpp: Added.
536         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): Moved from RenderMedia.  Made this relatively positioned, instead of absolute.
537         (WebCore::MediaControlInputElement::MediaControlInputElement): Moved from RenderMedia.  Removed call to updateFromElement, 
538          since its too early to do this here, and causes crashes for the slider.
539         (WebCore::MediaControlInputElement::attachToParent): Moved from RenderMedia.
540         (WebCore::MediaControlInputElement::update): ditto.
541         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Added.
542         (WebCore::MediaControlMuteButtonElement::defaultEventHandler): ditto.
543         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Moved from RenderMedia.
544         (WebCore::MediaControlPlayButtonElement::defaultEventHandler): ditto.
545         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Added.
546         (WebCore::MediaControlSeekButtonElement::defaultEventHandler): ditto.
547         (WebCore::MediaControlSeekButtonElement::seekTimerFired): ditto.
548         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Moved from RenderMedia.
549         (WebCore::MediaControlTimelineElement::defaultEventHandler): ditto.
550         (WebCore::MediaControlTimelineElement::update): ditto. 
551         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Added.
552         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): ditto.
553         * rendering/MediaControlElements.h: Added. Moved from RenderMedia.
554         (WebCore::MediaControlShadowRootElement::isShadowNode):
555         (WebCore::MediaControlShadowRootElement::shadowParentNode):
556         (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
557         (WebCore::RenderMediaControlShadowRoot::setParent):
558
559         * rendering/RenderMedia.cpp: Moved control element classes to MediaControlElements files.
560         (WebCore::RenderMedia::RenderMedia): No need to initialize RefPtrs.
561         (WebCore::RenderMedia::layout): Set the position for the controlsRenderer.
562         (WebCore::RenderMedia::createPanel): Added nil check for the renderer.
563         (WebCore::RenderMedia::createMuteButton): Added.
564         (WebCore::RenderMedia::createSeekBackButton): ditto.
565         (WebCore::RenderMedia::createSeekForwardButton): ditto.
566         (WebCore::RenderMedia::createTimeDisplay): Added nil check for the renderer.
567         (WebCore::RenderMedia::createFullscreenButton): Added.
568         (WebCore::RenderMedia::updateControls): Create, delete, and update new controls when appropriate.
569         (WebCore::RenderMedia::updateControlVisibility): Don't fade controls for audio controls. 
570         (WebCore::RenderMedia::forwardEvent): Forward events for new controls.
571         * rendering/RenderMedia.h: Added new methods for creating new controls.
572
573         * rendering/RenderObject.cpp: (WebCore::RenderObject::containingBlock): Updated special case for media elements, which are replaced elements, 
574           but also can contain children (the controls' container) that may need to look for the containing block.
575
576         * rendering/RenderSlider.cpp: (WebCore::RenderSlider::createThumbStyle): Added case for MediaSliderAppearance.
577
578         * rendering/RenderStyle.h: Added appearance constants and pseudo ids for new controls.
579         (WebCore::):
580         (WebCore::RenderStyle::):
581
582         * rendering/RenderTheme.cpp:
583         (WebCore::RenderTheme::adjustStyle): Added cases for new appearances.
584         (WebCore::RenderTheme::paint): ditto.
585         * rendering/RenderTheme.h: Added new methods for painting new appearances.
586         (WebCore::RenderTheme::paintMediaBackground):
587         (WebCore::RenderTheme::paintMediaFullscreenButton):
588         (WebCore::RenderTheme::paintMediaPlayButton):
589         (WebCore::RenderTheme::paintMediaMuteButton):
590         (WebCore::RenderTheme::paintMediaSeekBackButton):
591         (WebCore::RenderTheme::paintMediaSeekForwardButton):
592         (WebCore::RenderTheme::paintMediaSliderThumb):
593         * rendering/RenderThemeMac.h:
594         * rendering/RenderThemeMac.mm:
595         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_mediaControlBackgroundImage.
596         (WebCore::RenderThemeMac::~RenderThemeMac): Delete m_mediaControlBackgroundImage.
597         (WebCore::RenderThemeMac::paintCapsLockIndicator): Use LocalCurrentGraphicsContext here too, since we use it in all other painting methods.
598         (WebCore::RenderThemeMac::paintSliderTrack): Added case for MediaSliderAppearance.
599         (WebCore::RenderThemeMac::adjustSliderThumbSize): Added case for MediaSliderThumbAppearance.
600         (WebCore::RenderThemeMac::paintMediaBackground): Draws the new artwork for the controls.
601         (WebCore::RenderThemeMac::paintMediaFullscreenButton): ditto.
602         (WebCore::RenderThemeMac::paintMediaMuteButton): ditto.
603         (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
604         (WebCore::RenderThemeMac::paintMediaSeekBackButton): ditto.
605         (WebCore::RenderThemeMac::paintMediaSeekForwardButton): ditto.
606         (WebCore::RenderThemeMac::paintMediaSliderThumb): ditto.
607         * rendering/RenderThemeSafari.cpp: Draws the new artwork on Windows.
608         (WebCore::RenderThemeSafari::paintSliderTrack):
609         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
610         (WebCore::RenderThemeSafari::paintMediaBackground):
611         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
612         (WebCore::RenderThemeSafari::paintMediaMuteButton):
613         (WebCore::RenderThemeSafari::paintMediaPlayButton):
614         (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
615         (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
616         (WebCore::RenderThemeSafari::paintMediaSliderThumb):
617         * rendering/RenderThemeSafari.h:
618
619 2008-01-07  Timothy Hatcher  <timothy@apple.com>
620
621         Reviewed by Darin Adler.
622
623         Fix ASSERTION FAILED: dstOffset + srcSegmentLength == static_cast<int>(data.size())
624         when the replacment string is a different length.
625
626         * platform/text/StringImpl.cpp:
627         (WebCore::StringImpl::replace): Move the parenthesis to be around only the subtraction in
628         the Vector size calculation, correcting the order of math operations.
629
630 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
631
632         Reviewed by Eric. Hopefully fix build with mac tiger after the unicode-range addition. NSInteger not available there.
633
634         * platform/graphics/mac/FontCacheMac.mm:
635
636 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
637
638         Reviewed by Oliver. Fix build error introduced by Dan's unicode-range support patch & enabling SVG_FONTS by default.
639
640         * css/CSSFontSelector.cpp:
641         (WebCore::CSSFontSelector::getFontData):
642
643 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
644
645         Not reviewed. Next try to fix wx/mac leopard build.
646
647         * css/CSSFontSelector.cpp: Need to wrap a SVG* include in ENABLE(SVG) blocks, as this port doesn't build this generated file.
648         * svg/SVGFontFaceElement.cpp:
649         (WebCore::SVGFontFaceElement::createFontData): Fix double<->float conversion issue.
650         * webcore-base.bkl: Undo svg/ include.
651
652 2008-01-07  Dan Bernstein  <mitz@apple.com>
653
654         Reviewed by Dave Hyatt.
655
656         - <rdar://problem/5665216> Support the unicode-range property in @font-face rules
657
658         * GNUmakefile.am:
659         * WebCore.pro:
660         * WebCore.vcproj/WebCore.vcproj:
661         * WebCore.xcodeproj/project.pbxproj:
662         * WebCoreSources.bkl:
663         * bindings/objc/DOM.mm:
664         * bridge/mac/WebCoreAXObject.mm:
665         * css/CSSComputedStyleDeclaration.cpp:
666         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
667         * css/CSSFontFace.cpp:
668         (WebCore::CSSFontFace::fontLoaded): Changed to call the owning segmented
669         font face.
670         (WebCore::CSSFontFace::getFontData):
671         * css/CSSFontFace.h:
672         (WebCore::CSSFontFace::CSSFontFace):
673         (WebCore::CSSFontFace::setSegmentedFontFace):
674         * css/CSSFontFaceSource.cpp:
675         (WebCore::CSSFontFaceSource::pruneTable): Removed the calls to
676         GlyphPageTreeNode::pruneTreeCustomFontData because the fonts in the
677         font table are not exposed in the glyph page tree. Only the segmented
678         font is, and that is taken care of by the segmented font face.
679         (WebCore::CSSFontFaceSource::getFontData):
680         * css/CSSFontFaceSource.h:
681         * css/CSSFontSelector.cpp:
682         (WebCore::CSSFontSelector::addFontFaceRule): Changed to collect
683         @font-face rules with the same family and traits into a single
684         segmented font face, instead of just retaining the most recent one.
685         (WebCore::CSSFontSelector::fontLoaded):
686         (WebCore::CSSFontSelector::getFontData):
687         * css/CSSFontSelector.h:
688         * css/CSSGrammar.y:
689         * css/CSSParser.cpp:
690         (WebCore::CSSParser::parseValue):
691         (WebCore::CSSParser::parseFontFaceUnicodeRange): Added. Parses a unicode
692         range value.
693         * css/CSSParser.h:
694         * css/CSSPrimitiveValue.h:
695         (WebCore::CSSPrimitiveValue::):
696         * css/CSSPropertyNames.in:
697         * css/CSSSegmentedFontFace.cpp: Added.
698         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
699         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
700         (WebCore::CSSSegmentedFontFace::pruneTable):
701         (WebCore::CSSSegmentedFontFace::isLoaded):
702         (WebCore::CSSSegmentedFontFace::isValid):
703         (WebCore::CSSSegmentedFontFace::fontLoaded):
704         (WebCore::CSSSegmentedFontFace::overlayRange):
705         (WebCore::CSSSegmentedFontFace::getFontData):
706         * css/CSSSegmentedFontFace.h: Added.
707         (WebCore::FontFaceRange::FontFaceRange):
708         (WebCore::FontFaceRange::from):
709         (WebCore::FontFaceRange::to):
710         (WebCore::FontFaceRange::fontFace):
711         (WebCore::CSSSegmentedFontFace::fontSelector):
712         * css/CSSStyleSelector.cpp:
713         (WebCore::CSSStyleSelector::applyProperty):
714         * css/CSSUnicodeRangeValue.cpp: Added.
715         (WebCore::CSSUnicodeRangeValue::~CSSUnicodeRangeValue):
716         (WebCore::CSSUnicodeRangeValue::cssText):
717         * css/CSSUnicodeRangeValue.h: Added.
718         (WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue):
719         (WebCore::CSSUnicodeRangeValue::from):
720         (WebCore::CSSUnicodeRangeValue::to):
721         * css/SVGCSSFontFace.cpp:
722         (WebCore::SVGCSSFontFace::getFontData):
723         * css/SVGCSSFontFace.h:
724         * editing/Editor.cpp:
725         (WebCore::Editor::fontForSelection):
726         * editing/Editor.h:
727         * page/mac/FrameMac.mm:
728         * page/mac/WebCoreFrameBridge.mm:
729         (-[WebCoreFrameBridge fontForSelection:]):
730         * platform/graphics/Font.cpp:
731         (WebCore::WidthIterator::advance):
732         (WebCore::Font::glyphDataForCharacter):
733         (WebCore::Font::primaryFont): Changed to return the simple font data
734         used for the space character.
735         (WebCore::Font::fontDataAt):
736         (WebCore::Font::fontDataForCharacters):
737         (WebCore::Font::drawGlyphBuffer):
738         * platform/graphics/Font.h:
739         * platform/graphics/FontCache.cpp:
740         (WebCore::FontCache::getCachedFontData):
741         (WebCore::FontCache::getFontData):
742         * platform/graphics/FontCache.h:
743         * platform/graphics/FontData.cpp: Renamed to SimpleFontData.cpp
744         * platform/graphics/FontData.h: Renamed to SimpleFontData.cpp.
745         * platform/graphics/FontDataBaseClass.cpp: Added. This will be renamed
746         FontData.cpp.
747         (WebCore::FontData::~FontData):
748         * platform/graphics/FontDataBaseClass.h: Added. This will be renamed
749         FontData.h.
750         * platform/graphics/FontFallbackList.cpp:
751         (WebCore::FontFallbackList::determinePitch):
752         (WebCore::FontFallbackList::fontDataAt):
753         (WebCore::FontFallbackList::fontDataForCharacters):
754         * platform/graphics/FontFallbackList.h:
755         (WebCore::FontFallbackList::primaryFont):
756         * platform/graphics/FontSelector.h:
757         * platform/graphics/GlyphBuffer.h:
758         (WebCore::GlyphBuffer::fontDataAt):
759         (WebCore::GlyphBuffer::swap):
760         (WebCore::GlyphBuffer::add):
761         * platform/graphics/GlyphPageTreeNode.cpp:
762         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
763         (WebCore::GlyphPageTreeNode::initializePage): Added code to initialize
764         pages for segmented font data.
765         (WebCore::GlyphPageTreeNode::getChild):
766         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
767         * platform/graphics/GlyphPageTreeNode.h:
768         (WebCore::GlyphPage::setGlyphDataForCharacter):
769         (WebCore::GlyphPage::setGlyphDataForIndex):
770         (WebCore::GlyphPageTreeNode::getRootChild):
771         * platform/graphics/SegmentedFontData.cpp: Added.
772         (WebCore::SegmentedFontData::~SegmentedFontData):
773         (WebCore::SegmentedFontData::fontDataForCharacter):
774         (WebCore::SegmentedFontData::containsCharacters):
775         (WebCore::SegmentedFontData::isCustomFont):
776         (WebCore::SegmentedFontData::isLoading):
777         (WebCore::SegmentedFontData::isSegmented):
778         * platform/graphics/SegmentedFontData.h: Added.
779         (WebCore::FontDataRange::FontDataRange):
780         (WebCore::FontDataRange::from):
781         (WebCore::FontDataRange::to):
782         (WebCore::FontDataRange::fontData):
783         (WebCore::SegmentedFontData::appendRange):
784         (WebCore::SegmentedFontData::numRanges):
785         (WebCore::SegmentedFontData::rangeAt):
786         * platform/graphics/SimpleFontData.cpp: Copied from WebCore/platform/graphics/FontData.cpp.
787         (WebCore::SimpleFontData::SimpleFontData):
788         (WebCore::SimpleFontData::~SimpleFontData):
789         (WebCore::SimpleFontData::ascent):
790         (WebCore::SimpleFontData::descent):
791         (WebCore::SimpleFontData::widthForGlyph):
792         (WebCore::SimpleFontData::fontDataForCharacter):
793         (WebCore::SimpleFontData::isSegmented):
794         * platform/graphics/SimpleFontData.h: Copied from WebCore/platform/graphics/FontData.h.
795         (WebCore::SimpleFontData::isCustomFont):
796         (WebCore::SimpleFontData::isLoading):
797         * platform/graphics/cairo/GraphicsContextCairo.cpp:
798         (WebCore::GraphicsContext::setPlatformFont):
799         * platform/graphics/gtk/FontCacheGtk.cpp:
800         (WebCore::FontCache::getFontDataForCharacters):
801         * platform/graphics/gtk/FontDataGtk.cpp: Renamed to
802         SimpleFontDataGtk.cpp.
803         * platform/graphics/gtk/FontGtk.cpp:
804         (WebCore::Font::drawGlyphs):
805         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
806         (WebCore::GlyphPage::fill):
807         * platform/graphics/gtk/SimpleFontDataGtk.cpp: Copied from WebCore/platform/graphics/gtk/FontDataGtk.cpp.
808         (WebCore::SimpleFontData::platformInit):
809         (WebCore::SimpleFontData::platformDestroy):
810         (WebCore::SimpleFontData::smallCapsFontData):
811         (WebCore::SimpleFontData::containsCharacters):
812         (WebCore::SimpleFontData::determinePitch):
813         (WebCore::SimpleFontData::platformWidthForGlyph):
814         (WebCore::SimpleFontData::setFont):
815         * platform/graphics/mac/FontCacheMac.mm:
816         (WebCore::FontCache::getFontDataForCharacters):
817         * platform/graphics/mac/FontDataMac.mm: Renamed to SimpleFontDataMac.mm.
818         * platform/graphics/mac/FontMac.mm:
819         (WebCore::initializeATSUStyle):
820         (WebCore::overrideLayoutOperation):
821         (WebCore::ATSULayoutParameters::initialize):
822         (WebCore::Font::drawGlyphs):
823         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
824         (WebCore::GlyphPage::fill):
825         * platform/graphics/mac/SimpleFontDataMac.mm: Copied from WebCore/platform/graphics/mac/FontDataMac.mm.
826         (WebCore::initFontData):
827         (WebCore::SimpleFontData::platformInit):
828         (WebCore::SimpleFontData::platformDestroy):
829         (WebCore::SimpleFontData::smallCapsFontData):
830         (WebCore::SimpleFontData::containsCharacters):
831         (WebCore::SimpleFontData::determinePitch):
832         (WebCore::SimpleFontData::platformWidthForGlyph):
833         (WebCore::SimpleFontData::checkShapesArabic):
834         * platform/graphics/qt/FontDataQt.cpp: Renamed to SimpleFontDataQt.cpp.
835         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
836         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
837         * platform/graphics/qt/SimpleFontDataQt.cpp: Copied from WebCore/platform/graphics/qt/FontDataQt.cpp.
838         * platform/graphics/win/FontCacheWin.cpp:
839         (WebCore::FontCache::getFontDataForCharacters):
840         * platform/graphics/win/FontDataWin.cpp: Renamed to
841         SimpleFontDataWin.cpp.
842         * platform/graphics/win/FontWin.cpp:
843         (WebCore::Font::drawGlyphs):
844         * platform/graphics/win/GlyphPageTreeNodeWin.cpp:
845         (WebCore::GlyphPage::fill):
846         * platform/graphics/win/SimpleFontDataWin.cpp: Copied from WebCore/platform/graphics/win/FontDataWin.cpp.
847         (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
848         (WebCore::SimpleFontData::platformInit):
849         (WebCore::SimpleFontData::platformDestroy):
850         (WebCore::SimpleFontData::smallCapsFontData):
851         (WebCore::SimpleFontData::containsCharacters):
852         (WebCore::SimpleFontData::determinePitch):
853         (WebCore::SimpleFontData::platformWidthForGlyph):
854         (WebCore::SimpleFontData::scriptFontProperties):
855         * platform/graphics/wx/FontCacheWx.cpp:
856         (WebCore::FontCache::getFontDataForCharacters):
857         * platform/graphics/wx/FontDataWx.cpp: Renamed to SimpleFontDataWx.cpp.
858         * platform/graphics/wx/FontWx.cpp:
859         (WebCore::Font::drawGlyphs):
860         * platform/graphics/wx/GlyphMapWx.cpp:
861         (WebCore::GlyphPage::fill):
862         * platform/graphics/wx/SimpleFontDataWx.cpp: Copied from WebCore/platform/graphics/wx/FontDataWx.cpp.
863         (WebCore::SimpleFontData::platformInit):
864         (WebCore::SimpleFontData::platformDestroy):
865         (WebCore::SimpleFontData::smallCapsFontData):
866         (WebCore::SimpleFontData::containsCharacters):
867         (WebCore::SimpleFontData::determinePitch):
868         (WebCore::SimpleFontData::platformWidthForGlyph):
869         * platform/mac/FileChooserMac.mm:
870         * platform/mac/PopupMenuMac.mm:
871         * platform/mac/WebCoreTextRenderer.mm:
872         * platform/win/PopupMenuWin.cpp:
873         * platform/win/UniscribeController.cpp:
874         (WebCore::UniscribeController::advance):
875         (WebCore::UniscribeController::itemizeShapeAndPlace):
876         (WebCore::UniscribeController::shapeAndPlaceItem):
877         (WebCore::UniscribeController::shape):
878         * platform/win/UniscribeController.h:
879         * svg/SVGFont.cpp:
880         (WebCore::Font::drawGlyphsWithSVGFont):
881         * svg/SVGFontElement.cpp:
882         (WebCore::SVGFontElement::collectGlyphs):
883         * svg/SVGFontFaceElement.cpp:
884         (WebCore::SVGFontFaceElement::createFontData):
885         * svg/SVGFontFaceElement.h:
886         * svg/SVGGlyphElement.cpp:
887
888 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
889
890         Not reviewed. Try to fix mac build by forcing SVGNames regeneration.
891
892         * svg/svgtags.in:
893
894 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
895
896         Not reviewed. Proposed build fix for wx.
897
898         * webcore-base.bkl:
899
900 2008-01-07  Dan Bernstein  <mitz@apple.com>
901
902         64-bit build fix
903
904         * platform/graphics/mac/FontCustomPlatformData.cpp:
905         (WebCore::FontCustomPlatformData::fontPlatformData): Have to use a
906         cast here since FMGetFontFromATSFontRef() is not available on 64-bit.
907
908 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
909
910         Reviewed by Oliver. Parts reviewed by Eric, David Hyatt & Dan & Alexey.
911         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15741 (REGRESSION: svg/W3C-SVG-1.1/fonts-elem-03-b.svg shows worse behavior on TOT)
912
913         Display SVG Fonts, fill svg/SVGFont.cpp with life by adding all needed code to
914         measure & render glyphs contained in SVG Fonts, including ligature lookup support.
915
916         Implement floatWidth/selectionRectForText for SVG Fonts, fixing text selection.
917
918         Support horiz-origin-x/y, horiz-adv-x, vert-adv-y, vert-origin-x/y & arabic-form.
919         Implement simple algorithm to determine the arabic forms for a string (initial, isolated, medial, terminal).
920
921         Removed drawGlyphsWithSVGFont - create a new function drawTextWithSVGFont instead.
922         This doesn't involve creating/using a 'GlyphBuffer' object anymore, which is not
923         required for SVG Fonts anyway (we already know all our offsets/advances/etc..)
924
925         Don't call it from drawSimpleText anymore, but directly in drawText - as Dan suggested.
926
927         <glyph> elements now register themselves in the SVGFontElement's glyph cache.
928         (insertedIntoDocument / removedFromDocument take care of this)
929
930         The cache is built once now, and is kept updated - it's not rebuild anymore
931         on painting (!) - which was a crude hack for testing.
932
933         W3C testcase which include SVG Fonts:
934         svg/W3C-SVG-1.1/animate-elem-03-t.svg (Fixed, of course not the anim itself, but it's SVG Fonts usage)
935         svg/W3C-SVG-1.1/animate-elem-24-t.svg (Ditto)
936         svg/W3C-SVG-1.1/animate-elem-36-t.svg (Ditto)
937         svg/W3C-SVG-1.1/animate-elem-40-t.svg (Ditto)
938         svg/W3C-SVG-1.1/fonts-kern-01-t.svg (missing <vkern>/<hkern> support)
939         svg/W3C-SVG-1.1/fonts-desc-02-t.svg (Fixed, tests CSS font matching based on font-variant attribute)
940         svg/W3C-SVG-1.1/fonts-elem-01-t.svg (Fixed, basic SVG font test)
941         svg/W3C-SVG-1.1/fonts-elem-02-t.svg (Fixed, accuracy test for embedded SVG font)
942         svg/W3C-SVG-1.1/fonts-elem-05-t.svg (Fixed, checks horiz-origin-x support, note: W3C reference image is wrong)
943         svg/W3C-SVG-1.1/fonts-elem-06-t.svg (Fixed, checks horiz-adv-x support)
944         svg/W3C-SVG-1.1/fonts-glyph-02-t.svg (Fixed, checks arabic-form support)
945         svg/W3C-SVG-1.1/fonts-glyph-03-t.svg (Fixed, checks glyph matching based on xml:lang)
946         svg/W3C-SVG-1.1/masking-mask-01-b.svg (Fixed, SVG Fonts & masking)
947         svg/W3C-SVG-1.1/pservers-grad-08-b.svg (Fixed, SVG Fonts & gradient on fill/stroke)
948         svg/W3C-SVG-1.1/render-elems-06-t.svg (Fixed, simple 'fill' property test)
949         svg/W3C-SVG-1.1/render-elems-07-t.svg (Fixed, simple 'stroke' property test - shows SVG Font interprets stroke-width in glyph coordinate system, as demanded by spec)
950         svg/W3C-SVG-1.1/render-elems-08-t.svg (Fixed, simple 'fill' & 'stroke' property test)
951         svg/W3C-SVG-1.1/render-groups-01-b.svg (missing <vkern>/<hkern> support)
952         svg/W3C-SVG-1.1/render-groups-03-t.svg (Ditto)
953         svg/W3C-SVG-1.1/text-altglyph-01-b.svg (no <altGlyph> support yet)
954         svg/W3C-SVG-1.1/text-text-04-t.svg (Fixed, absolute placing of characters pixel perfect now)
955         svg/W3C-SVG-1.1/text-text-05-t.svg (FIXME: problem with text-anchor)
956         svg/W3C-SVG-1.1/text-text-06-t.svg (highlights problem with ligatures & absolute positioned characters)
957
958         Questionable testcases:
959         svg/W3C-SVG-1.1/fonts-glyph-04-t.svg (tests that glyph selection is done in the order in the definition of the font element.)
960         I am not sure why this behaviour is desired, no comment given in spec - doesn't make much sense to me, ignoring it for now.
961
962         Several other batik testcases fixed, which use SVG Fonts in combination with gradients & filters.
963
964         * css/CSSFontSelector.cpp:
965         (WebCore::CSSFontSelector::addFontFaceRule):
966         (WebCore::CSSFontSelector::getFontData):
967         * platform/graphics/Font.cpp:
968         (WebCore::Font::lineSpacing):
969         (WebCore::Font::xHeight):
970         (WebCore::Font::canUseGlyphCache):
971         (WebCore::Font::drawGlyphBuffer):
972         (WebCore::Font::drawText):
973         (WebCore::Font::floatWidth):
974         (WebCore::Font::selectionRectForText):
975         * platform/graphics/Font.h:
976         (WebCore::TextRun::TextRun):
977         (WebCore::TextRun::activePaintServer):
978         (WebCore::TextRun::setActivePaintServer):
979         * platform/graphics/FontData.cpp:
980         (WebCore::FontData::lineSpacing):
981         (WebCore::FontData::lineGap):
982         (WebCore::FontData::xHeight):
983         * platform/graphics/FontData.h:
984         * platform/graphics/win/FontWin.cpp:
985         (WebCore::Font::drawGlyphs):
986         * rendering/RenderSVGText.cpp:
987         (WebCore::RenderSVGText::relativeBBox):
988         * rendering/SVGInlineTextBox.cpp:
989         (WebCore::SVGInlineTextBox::paintCharacters):
990         * rendering/SVGInlineTextBox.h:
991         * rendering/SVGRootInlineBox.cpp:
992         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
993         * svg/SVGFont.cpp:
994         (WebCore::):
995         (WebCore::processArabicFormDetection):
996         (WebCore::charactersWithArabicForm):
997         (WebCore::isCompatibleArabicForm):
998         (WebCore::isCompatibleGlyph):
999         (WebCore::svgFontAndFontFaceElementForFontData):
1000         (WebCore::SVGTextRunWalker::SVGTextRunWalker):
1001         (WebCore::SVGTextRunWalker::walk):
1002         (WebCore::floatWidthUsingSVGFontCallback):
1003         (WebCore::floatWidthMissingGlyphCallback):
1004         (WebCore::floatWidthOfSubStringUsingSVGFont):
1005         (WebCore::Font::floatWidthUsingSVGFont):
1006         (WebCore::drawTextUsingSVGFontCallback):
1007         (WebCore::drawTextMissingGlyphCallback):
1008         (WebCore::Font::drawTextUsingSVGFont):
1009         (WebCore::Font::selectionRectForTextUsingSVGFont):
1010         * svg/SVGFontElement.cpp:
1011         (WebCore::SVGFontElement::SVGFontElement):
1012         (WebCore::SVGFontElement::addGlyphToCache):
1013         (WebCore::SVGFontElement::removeGlyphFromCache):
1014         (WebCore::SVGFontElement::firstMissingGlyphElement):
1015         (WebCore::SVGFontElement::glyphIdentifiersForString):
1016         * svg/SVGFontElement.h:
1017         (WebCore::SVGFontElement::maximumHashKeyLength):
1018         * svg/SVGFontFaceElement.cpp:
1019         (WebCore::SVGFontFaceElement::createFontData):
1020         (WebCore::SVGFontFaceElement::rebuildFontFace):
1021         (WebCore::SVGFontFaceElement::associatedFontElement):
1022         * svg/SVGFontFaceElement.h:
1023         * svg/SVGGlyphElement.cpp:
1024         (WebCore::SVGGlyphElement::insertedIntoDocument):
1025         (WebCore::SVGGlyphElement::removedFromDocument):
1026         (WebCore::parseArabicForm):
1027         (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
1028         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
1029         * svg/SVGGlyphElement.h:
1030         (WebCore::SVGGlyphIdentifier::):
1031         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
1032         (WebCore::SVGGlyphIdentifier::inheritedValue):
1033         (WebCore::SVGGlyphIdentifier::operator==):
1034         (WebCore::SVGGlyphElement::~SVGGlyphElement):
1035
1036 2008-01-07  David Hyatt  <hyatt@apple.com>
1037
1038         Fix for bug 13095, CSS3 multiple backgrounds don't work on table cells.
1039
1040         Reviewed by Dan
1041
1042         * rendering/RenderBox.h:
1043         * rendering/RenderTableCell.cpp:
1044         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
1045
1046 2008-01-07  Holger Freyther  <zecke@selfish.org>
1047
1048         Reviewed by Alp Toker.
1049
1050         * Fix indention
1051
1052         * platform/gtk/ContextMenuGtk.cpp:
1053         (WebCore::ContextMenu::~ContextMenu):
1054
1055 2008-01-07  Holger Freyther  <zecke@selfish.org>
1056
1057         Reviewed by Alp Toker.
1058
1059         * The ContextMenuController is going to live longer than the ContextMenu. It is
1060         going to live as long as the WebCore::Page is around where the ContextMenu, specially
1061         in the case of a SubMenu, is gone before we popup the menu.
1062
1063         * platform/gtk/ContextMenuGtk.cpp:
1064         (WebCore::menuItemActivated):
1065         (WebCore::ContextMenu::appendItem):
1066
1067 2008-01-07  Holger Freyther  <zecke@selfish.org>
1068
1069         Reviewed by Alp Toker.
1070
1071         * Fix SubMenu handling
1072         * Do not connect to the activated signal if we are a separator or submenu
1073         * Change our type from ActionType to SubMenuType when we have a submenu
1074         * Initialize the SubMenu
1075
1076         * platform/gtk/ContextMenuGtk.cpp:
1077         (WebCore::ContextMenu::appendItem):
1078         * platform/gtk/ContextMenuItemGtk.cpp:
1079         (WebCore::ContextMenuItem::ContextMenuItem):
1080         (WebCore::ContextMenuItem::createNativeMenuItem):
1081         (WebCore::ContextMenuItem::setSubMenu):
1082
1083 2008-01-07  Holger Freyther  <zecke@selfish.org>
1084
1085         Reviewed by Alp Toker.
1086
1087         * Qt and Gtk must know if a ContextMenuItem is checkable. Add a new ContextMenuItemType for checkable
1088         actions.
1089         * Use this information in the Gtk platform to create a GtkCheckMenuItem when needed.
1090         * Update the ContextMenuController to accept CheckableActionTypes as well.
1091         * Change ContextMenu.cpp to use the CheckableActionType. The information if a item is checkable
1092         was extracted from ContextMenu::checkOrEnableIfNeeded.
1093         * Update the Qt and Windows port.
1094
1095
1096         * page/ContextMenuController.cpp:
1097         * platform/ContextMenu.cpp:
1098         (WebCore::createAndAppendFontSubMenu):
1099         (WebCore::createAndAppendSpellingAndGrammarSubMenu):
1100         (WebCore::createAndAppendSpellingSubMenu):
1101         (WebCore::createAndAppendWritingDirectionSubMenu):
1102         * platform/ContextMenuItem.h:
1103         * platform/gtk/ContextMenuItemGtk.cpp:
1104         (WebCore::ContextMenuItem::ContextMenuItem):
1105         (WebCore::ContextMenuItem::createNativeMenuItem):
1106
1107 2008-01-07  Luca Bruno  <lethalman88@gmail.com>
1108
1109         Reviewed by Alp Toker.
1110
1111         http://bugs.webkit.org/show_bug.cgi?id=16745
1112         [GTK] Context menu doesn't feel or look native - no icons
1113
1114         Use GTK+ stock icons for menu items where possible.
1115
1116         * platform/gtk/ContextMenuItemGtk.cpp:
1117         (WebCore::gtkStockIDFromContextMenuAction):
1118         (WebCore::ContextMenuItem::createNativeMenuItem):
1119         (WebCore::ContextMenuItem::setAction):
1120
1121 2008-01-07  Dan Bernstein  <mitz@apple.com>
1122
1123         Reviewed by John Sullivan.
1124
1125         - make the ATSUI code path work with custom fonts rather than crash
1126
1127         * platform/graphics/mac/FontCustomPlatformData.cpp:
1128         (WebCore::FontCustomPlatformData::fontPlatformData):
1129         * platform/graphics/mac/FontMac.mm:
1130         (WebCore::initializeATSUStyle):
1131
1132 2008-01-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1133
1134         Reviewed by Simon.
1135
1136         abort() now emits the signals, so disconnect them before you abort()
1137
1138         * platform/network/qt/QNetworkReplyHandler.cpp:
1139         (WebCore::QNetworkReplyHandler::abort):
1140
1141 2008-01-07  Simon Hausmann  <hausmann@webkit.org>
1142
1143         Reviewed by Lars.
1144
1145         Use a faster and safer way of flattening the form data.
1146
1147         * platform/network/qt/QNetworkReplyHandler.cpp:
1148         (WebCore::QNetworkReplyHandler::start):
1149
1150 2008-01-07  Simon Hausmann  <hausmann@webkit.org>
1151
1152         Reviewed by Lars.
1153
1154         Ported of the network backend of the Qt platform to Qt 4.4's new networking API.
1155
1156         * WebCore.pro:
1157         * platform/network/ResourceHandleInternal.h:
1158         * platform/network/qt/QNetworkReplyHandler.cpp: Added.
1159         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
1160         (WebCore::QNetworkReplyHandler::abort):
1161         (WebCore::QNetworkReplyHandler::finish):
1162         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
1163         (WebCore::QNetworkReplyHandler::forwardData):
1164         (WebCore::QNetworkReplyHandler::start):
1165         * platform/network/qt/QNetworkReplyHandler.h: Added.
1166         (WebCore::QNetworkReplyHandler::reply):
1167         * platform/network/qt/ResourceHandleQt.cpp:
1168         (WebCore::ResourceHandle::start):
1169         (WebCore::ResourceHandle::cancel):
1170         (WebCore::ResourceHandle::loadResourceSynchronously):
1171         * platform/network/qt/ResourceRequest.h:
1172         (WebCore::ResourceRequest::ResourceRequest):
1173         * platform/network/qt/ResourceRequestQt.cpp: Added.
1174         (WebCore::ResourceRequest::toNetworkRequest):
1175         * platform/qt/MIMETypeRegistryQt.cpp:
1176         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
1177         * platform/qt/PlugInInfoStoreQt.cpp:
1178         (WebCore::PlugInInfoStore::createPluginInfoForPluginAtIndex):
1179         (WebCore::PlugInInfoStore::pluginCount):
1180         (WebCore::PlugInInfoStore::pluginNameForMIMEType):
1181
1182 2008-01-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
1183
1184         Reviewed by Lars.
1185
1186         * Remove m_dirtyRegion as it is not used as we pass every dirty region
1187         directly to the ChromeClient
1188
1189         * platform/qt/ScrollViewQt.cpp:
1190         (WebCore::ScrollView::paint):
1191
1192 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
1193
1194         Reviewed by Oliver.
1195
1196         Small CG paint server cleanups - use more GraphicsContext method where possible.
1197
1198         * svg/graphics/cg/CgSupport.cpp:
1199         (WebCore::applyStrokeStyleToContext):
1200         (WebCore::strokeBoundingBox):
1201         * svg/graphics/cg/CgSupport.h:
1202         * svg/graphics/cg/RenderPathCg.cpp:
1203         (WebCore::RenderPath::strokeContains):
1204         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
1205         (WebCore::SVGPaintServerGradient::setup):
1206         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
1207         (WebCore::SVGPaintServerPattern::setup):
1208         * svg/graphics/cg/SVGPaintServerSolidCg.cpp:
1209         (WebCore::SVGPaintServerSolid::setup):
1210
1211 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
1212
1213         Reviewed by Dan.
1214
1215         Use new helper function isArabicChar() - which also calls ublock_getCode() == UBLOCK_ARABIC on mac.
1216
1217         * platform/graphics/mac/FontMac.mm:
1218         (WebCore::ATSULayoutParameters::initialize):
1219
1220 2008-01-06  Andrew Wellington  <proton@wiretapped.net>
1221
1222         Reviewed by Darin.
1223         
1224         DOMRange doesn't correctly re-size when inserting items (Acid3)
1225         http://bugs.webkit.org/show_bug.cgi?id=16764
1226         
1227         Update the offset for the range when inserting items into the range.
1228
1229         Test: fast/dom/Range/range-modifycontents.html
1230
1231         * dom/Range.cpp:
1232         (WebCore::Range::insertNode):
1233
1234 2008-01-06  Alexey Proskuryakov  <ap@webkit.org>
1235
1236         Reviewed by Darin.
1237
1238         http://bugs.webkit.org/show_bug.cgi?id=16731
1239         Incorrect node type for whitespace when setting innerHTML in an XHTML document
1240
1241         Test: fast/dom/xhtml-fragment-whitespace.xhtml
1242
1243         * dom/XMLTokenizer.cpp: (WebCore::parseXMLDocumentFragment):
1244         Use balancedCharactersHandler for ignorable whitespace.
1245
1246 2008-01-06  Alexey Proskuryakov  <ap@webkit.org>
1247
1248         Reviewed by Darin.
1249
1250         http://bugs.webkit.org/show_bug.cgi?id=16701
1251         <rdar://problem/5666580> REGRESSION: URL-encoded space (%20) in livejournal url
1252         causes page load error
1253
1254         Test: http/tests/misc/location-with-space.php
1255
1256         * platform/network/cf/ResourceRequestCFNet.cpp:
1257         (WebCore::ResourceRequest::doUpdatePlatformRequest): Do update its URL, too.
1258
1259 2008-01-06  Andrew Wellington  <proton@wiretapped.net>
1260
1261         Reviewed by Darin.
1262         
1263         DOMRange.cloneContents does not work (Acid3 bug)
1264         http://bugs.webkit.org/show_bug.cgi?id=16748
1265         
1266         When cloning an empty range, return an empty DocmentFragment instead of
1267         null or undefined.
1268
1269         Test: fast/dom/Range/range-clone-empty.html
1270
1271         * dom/Range.cpp:
1272         (WebCore::Range::processContents):
1273
1274 2008-01-06  Luca Bruno  <lethalman88@gmail.com>
1275
1276         Reviewed by Alp Toker.
1277
1278         Remove curl handles immediately if the timer is not running.
1279
1280         * platform/network/curl/ResourceHandleManager.cpp:
1281         (WebCore::ResourceHandleManager::cancel):
1282
1283 2008-01-06  Alp Toker  <alp@atoker.com>
1284
1285         Reviewed by Eric.
1286
1287         Cairo canvas refcounting fix. Reference the surface in the constructor
1288         to match its destruction in the destructor.
1289
1290         Fixes a crash triggered by leaving this page:
1291           http://philip.html5.org/tests/canvas/misc/globalalpha-pattern.html
1292
1293         * html/CanvasPattern.cpp:
1294         (WebCore::CanvasPattern::CanvasPattern):
1295
1296 2008-01-06  Eric Seidel  <eric@webkit.org>
1297
1298         Reviewed by darin.
1299
1300         Make attr selectors case-insensitive for certain HTML attributes
1301         http://bugs.webkit.org/show_bug.cgi?id=15470
1302
1303         Test: fast/css/html-attr-case-sensitivity.html
1304
1305         * css/CSSStyleSelector.cpp:
1306         (WebCore::addLocalNameToSet):
1307         (WebCore::createHtmlCaseInsensitiveAttributesSet):
1308         (WebCore::htmlAttributeHasCaseInsensitiveValue):
1309         (WebCore::CSSStyleSelector::checkOneSelector):
1310
1311 2008-01-06  Eric Seidel  <eric@webkit.org>
1312
1313         Reviewed by Sam.
1314
1315         Fix :checked matching type='text' and add test case
1316         http://bugs.webkit.org/show_bug.cgi?id=16750
1317
1318         Test: fast/dom/HTMLInputElement/checked-pseudo-selector.html
1319
1320         * html/HTMLInputElement.h: isChecked() can only be true for RADIO or CHECKBOX
1321
1322 2008-01-05  Sam Weinig  <sam@webkit.org>
1323
1324         Reviewed by Eric Seidel.
1325
1326         Patch for http://bugs.webkit.org/show_bug.cgi?id=16758
1327         ASSERT when using TreeWalker methods for a current node outside of the root (Acid3)
1328
1329         - Ensure that returned nodes are within the root node, or return 0, in adherence with the spec.
1330
1331         Test: fast/dom/TreeWalker/TreeWalker-currentNode.html
1332
1333         * dom/TreeWalker.cpp:
1334         (WebCore::TreeWalker::parentNode):
1335         (WebCore::TreeWalker::firstChild):
1336         (WebCore::TreeWalker::lastChild):
1337         (WebCore::TreeWalker::previousSibling):
1338         (WebCore::TreeWalker::nextSibling):
1339         (WebCore::TreeWalker::previousNode):
1340         (WebCore::TreeWalker::nextNode):
1341
1342 2008-01-04  Oliver Hunt  <oliver@apple.com>
1343
1344         Reviewed by Beth Dakin.
1345
1346         Fix bounds computation bugs responsible for http://bugs.webkit.org/show_bug.cgi?id=16015
1347         and other image repaint bugs.
1348
1349         We now cache the full local bounds for the <image> element, as otherwise certain
1350         combinations of attribute changes could result in incorrect dirty rects.
1351         Additionally we no longer use any of the integer bounds fields on RenderObject for
1352         determining repaint bounds (this was the principle cause of bug #16015).
1353
1354         I also removed the outline painting code as it was both wrong, and not correctly
1355         repainted.  I feel safe doing this as no other browser or viewer supports outline
1356         properties on svg elements.
1357
1358         I was unable to make a testcase for this unfortunately, despite seemingly deterministic 
1359         behaviour :(
1360
1361         * rendering/RenderSVGImage.cpp:
1362         (WebCore::RenderSVGImage::layout):
1363         (WebCore::RenderSVGImage::paint):
1364         (WebCore::RenderSVGImage::nodeAtPoint):
1365         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
1366         * rendering/RenderSVGImage.h:
1367
1368 2008-01-04  Beth Dakin  <bdakin@apple.com>
1369
1370         Reviewed by Oliver.
1371
1372         Fix for http://bugs.webkit.org/show_bug.cgi?id=16704 input with 
1373         type="hidden" matches :enabled/:disabled (Acid3 bug)
1374
1375         Prevent :enabled and :disabled from applying to input type="hidden" 
1376
1377         * css/CSSStyleSelector.cpp:
1378         (WebCore::CSSStyleSelector::checkOneSelector): Rather than 
1379         allowing :enabled and :disabled to apply to all controls, only 
1380         allow it to apply to non-"hidden" controls
1381         * dom/Element.h:
1382         (WebCore::Element::isInputTypeHidden): 
1383         * html/HTMLInputElement.h:
1384         (WebCore::HTMLInputElement::isInputTypeHidden):
1385
1386 2008-01-04  Sam Weinig  <sam@webkit.org>
1387
1388         Reviewed by Oliver Hunt.
1389
1390         - Match the spec when calling getFloatValue, getStringValue, getCounterValue,
1391           getRectValue and getRGBColorValue of CSSPrimitiveValue by throwing exceptions
1392           if the type of the CSSPrimitiveValue is not the same as the type requested.
1393         - Fix the intermittent assertion failure seen in svg/css/glyph-orientation-rounding-test.xhtml
1394
1395         Test: fast/css/CSSPrimitiveValue-exceptions.html
1396
1397         * css/CSSPrimitiveValue.cpp:
1398         (WebCore::CSSPrimitiveValue::getDoubleValue):
1399         (WebCore::CSSPrimitiveValue::getStringValue):
1400         (WebCore::CSSPrimitiveValue::getCounterValue):
1401         (WebCore::CSSPrimitiveValue::getRectValue):
1402         (WebCore::CSSPrimitiveValue::getRGBColorValue):
1403         (WebCore::CSSPrimitiveValue::getPairValue):
1404         * css/CSSPrimitiveValue.h:
1405         (WebCore::CSSPrimitiveValue::getFloatValue):
1406         (WebCore::CSSPrimitiveValue::getIntValue):
1407         (WebCore::CSSPrimitiveValue::getCounterValue):
1408         (WebCore::CSSPrimitiveValue::getRectValue):
1409         (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
1410         * css/CSSPrimitiveValue.idl:
1411
1412 2008-01-04  Antti Koivisto  <antti@apple.com>
1413
1414         Reviewed by Darin.
1415         
1416         Windows part of <rdar://problem/5647034>
1417         Media tests crash if an old version of QuickTime is installed
1418
1419         Check QuickTime version on Windows too.
1420
1421         * platform/graphics/MediaPlayer.cpp:
1422         (WebCore::MediaPlayer::isAvailable):
1423         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
1424         (WebCore::MediaPlayerPrivate::isAvailable):
1425         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
1426         (WebCore::MediaPlayerPrivate::isAvailable):
1427         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
1428         * platform/graphics/win/QTMovieWin.cpp:
1429         (QTMovieWin::initializeQuickTime):
1430
1431 2008-01-04  Darin Adler  <darin@apple.com>
1432
1433         Reviewed by Maciej and Alice.
1434
1435         - fix <rdar://problem/4404302> Borders where there should be none (canadasmountains.com)
1436
1437         Test: fast/images/border.html
1438
1439         * html/HTMLImageElement.cpp:
1440         (WebCore::HTMLImageElement::parseMappedAttribute): Change the code that handles cases
1441         where the border value is not a number to use the value "0" for the border width instead
1442         of not setting the border width and style at all. This matches other browsers, and makes
1443         more sense.
1444
1445 2008-01-04  Antti Koivisto  <antti@apple.com>
1446
1447         Try to fix 64-bit build
1448
1449         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1450         (WebCore::MediaPlayerPrivate::isAvailable):
1451
1452 2008-01-04  Stephanie  <slewis@apple.com>
1453
1454         Reviewed by Oliver.
1455
1456         WARNING: NO TEST CASES ADDED OR CHANGED
1457
1458         Fix another stringImpl leak.
1459
1460         * platform/text/StringImpl.cpp: remove an extra allocation
1461         (WebCore::StringImpl::StringImpl):
1462
1463 2008-01-04  Alice Liu  <alice.liu@apple.com>
1464
1465         Reviewed by Mitz.
1466
1467         * platform/graphics/win/FontCacheWin.cpp:
1468         fix loop condition that was causing crash
1469
1470 2008-01-04  Timothy Hatcher  <timothy@apple.com>
1471
1472         Reviewed by Adam Roben.
1473
1474         <rdar://problem/5671059> Always show the Timeline and Console buttons in the Inspector
1475
1476         * page/inspector/inspector.css: Remove styles related to the toggle button
1477           and make the area always visible. 
1478         * page/inspector/inspector.html: Remove the toggle button.
1479         * page/inspector/inspector.js: Remove code to toggle the status area.
1480
1481 2008-01-04  Alexey Proskuryakov  <ap@webkit.org>
1482
1483         Reviewed by Adam Roben.
1484
1485         Temporarily restore BackwardDelete for Windows nightlies to work correctly.
1486
1487         * editing/EditorCommand.cpp: (WebCore::CommandEntry::):
1488
1489 2008-01-04  Alexey Proskuryakov  <ap@webkit.org>
1490
1491         Reviewed by Darin.
1492
1493         <rdar://problem/5611712> xsl:sort does not use a case folding sort, and the 'case-order' attribute is ignored (16077)
1494
1495         Enable the fix on Windows.
1496
1497         * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::transformToString):
1498         Always set a custom sort function, even if it doesn't implement proper collation on the platform.
1499
1500         * xml/XSLTUnicodeSort.cpp:
1501         (WebCore::xsltUnicodeSortFunction):
1502         * xml/XSLTUnicodeSort.h:
1503         If the platform does not use ICU, or ICU has collation support disabled, fall back to binary comparison.
1504
1505 2008-01-04  Antti Koivisto  <antti@apple.com>
1506
1507         Fix build.
1508
1509         * bindings/js/JSHTMLElementWrapperFactory.cpp:
1510
1511 2008-01-04  Antti Koivisto  <antti@apple.com>
1512
1513         Reviewed by Darin.
1514         
1515         Partial fix for <rdar://problem/5647034>
1516         Media tests crash if an old version of QuickTime is installed
1517
1518         Disable media support if QuickTime is not current enough (>=7.3).
1519         
1520         Windows patch coming soon.
1521
1522         * bindings/js/JSHTMLElementWrapperFactory.cpp:
1523         (WebCore::createJSHTMLWrapper):
1524         * bindings/js/kjs_window.cpp:
1525         (KJS::Window::getValueProperty):
1526         * html/HTMLElementFactory.cpp:
1527         (WebCore::audioConstructor):
1528         (WebCore::videoConstructor):
1529         (WebCore::sourceConstructor):
1530         * platform/graphics/MediaPlayer.cpp:
1531         (WebCore::MediaPlayer::isAvailable):
1532         * platform/graphics/MediaPlayer.h:
1533         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1534         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1535         (WebCore::MediaPlayerPrivate::isAvailable):
1536
1537 2008-01-04  Timothy Hatcher  <timothy@apple.com>
1538
1539         Reviewed by Darin Adler.
1540
1541         <rdar://problem/5604409> JavaScript privilege escalation when Web Inspector accesses page unsafely (16011)
1542
1543         Check if the property is a getter before asking for the value.
1544         If the property is a getter, we no longer show the value.
1545
1546         * page/inspector/PropertiesSidebarPane.js:
1547         * page/inspector/inspector.css:
1548
1549 2008-01-04  Dan Bernstein  <mitz@apple.com>
1550
1551         Reviewed by Darin Adler.
1552
1553         - fix synthetic bold and italic on Windows
1554
1555         Covered by an existing test.
1556
1557         * platform/graphics/win/FontPlatformDataWin.cpp:
1558         (WebCore::FontPlatformData::FontPlatformData):
1559
1560 2008-01-04  Alp Toker  <alp@atoker.com>
1561
1562         GTK+ autotools build fix. Terminate empty rules.
1563
1564         * GNUmakefile.am:
1565
1566 2008-01-04  Lars Knoll  <lars@trolltech.com>
1567
1568         Reviewed by Simon.
1569
1570         Remove most dependencies of Widget/ScrollView onto native QWidgets.
1571
1572         This also brings the code closer in line with the Windows code. Seems
1573         to work nicely on first try :)
1574
1575         * page/qt/FrameQt.cpp:
1576         (WebCore::Frame::createScriptInstanceForWidget):
1577         * platform/Widget.h:
1578         * platform/qt/PlatformScreenQt.cpp:
1579         (WebCore::screenDepth):
1580         (WebCore::screenDepthPerComponent):
1581         (WebCore::screenIsMonochrome):
1582         (WebCore::screenRect):
1583         * platform/qt/PlatformScrollBarQt.cpp:
1584         (WebCore::PlatformScrollbar::thumbPosition):
1585         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
1586         * platform/qt/ScrollViewQt.cpp:
1587         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
1588         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
1589         (WebCore::ScrollView::updateContents):
1590         (WebCore::ScrollView::update):
1591         (WebCore::ScrollView::scrollRectIntoViewRecursively):
1592         (WebCore::ScrollView::updateScrollbars):
1593         (WebCore::ScrollView::addChild):
1594         (WebCore::ScrollView::removeChild):
1595         (WebCore::ScrollView::paint):
1596         * platform/qt/WidgetQt.cpp:
1597         (WebCore::WidgetPrivate::WidgetPrivate):
1598         (WebCore::WidgetPrivate::~WidgetPrivate):
1599         (WebCore::Widget::frameGeometry):
1600         (WebCore::Widget::setFrameGeometry):
1601         (WebCore::Widget::setCursor):
1602         (WebCore::Widget::show):
1603         (WebCore::Widget::hide):
1604         (WebCore::Widget::nativeWidget):
1605         (WebCore::Widget::setNativeWidget):
1606         (WebCore::Widget::suppressInvalidation):
1607         (WebCore::Widget::setSuppressInvalidation):
1608         (WebCore::Widget::invalidateRect):
1609         (WebCore::Widget::topLevel):
1610         (WebCore::Widget::containingWindow):
1611
1612 2008-01-04  Lars Knoll  <lars@trolltech.com>
1613
1614         Reviewed by Simon.
1615
1616         make QWebPage a QObject and get things to compile.
1617
1618         Nothing works currently though.
1619
1620         * platform/qt/ScrollViewQt.cpp:
1621         (WebCore::ScrollView::updateContents):
1622         (WebCore::ScrollView::update):
1623         * platform/qt/WidgetQt.cpp:
1624         (WebCore::Widget::qwidget):
1625         (WebCore::Widget::invalidateRect):
1626
1627 2008-01-04  Alp Toker  <alp@atoker.com>
1628
1629         Reviewed by Mark Rowe.
1630
1631         http://bugs.webkit.org/show_bug.cgi?id=16667
1632         make -j is failing with the autotools based system
1633
1634         Support parallel code generation. Nearly every use of explicit
1635         multiple targets was a potential concurrency bug, though in practice
1636         the bison rules were the first to be noticed because they took longer
1637         to complete and broke the build immediately.
1638
1639         * GNUmakefile.am:
1640
1641 2008-01-04  Alp Toker  <alp@atoker.com>
1642
1643         Reviewed by Mark Rowe.
1644
1645         Re-use a single static dummy surface rather than creating and
1646         destroying a surface for each CairoPath.
1647
1648         * platform/graphics/cairo/CairoPath.h:
1649         (WebCore::CairoPath::CairoPath):
1650
1651 2008-01-04  Mark Rowe  <mrowe@apple.com>
1652
1653         Tiger build fix.
1654
1655         * platform/Threading.h: The OSAtomic functions take non-volatile pointers on Tiger.
1656
1657 2008-01-03  Mark Rowe  <mrowe@apple.com>
1658
1659         Reviewed by Maciej Stachowiak.
1660
1661         Use platform-provided atomic operations in place of inline assembly to
1662         increase portability.
1663
1664         * platform/Threading.h:
1665         (WebCore::atomicIncrement):
1666         (WebCore::atomicDecrement):
1667
1668 2008-01-03  Oliver Hunt  <oliver@apple.com>
1669
1670         Reviewed by Maciej.
1671
1672         Fix <rdar://problem/5668517> REGRESSION: Major under painting issues in SVG (carto.net dock example)
1673
1674         We need to cache the absolute bounds of the <image>,
1675         as there's no reliable way to recompute the old bounding
1676         box one we have started layout.
1677
1678         * rendering/RenderSVGImage.cpp:
1679         (WebCore::RenderSVGImage::layout):
1680         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
1681         * rendering/RenderSVGImage.h:
1682
1683 2008-01-03  Alp Toker  <alp@atoker.com>
1684
1685         Reviewed by Mark Rowe.
1686
1687         Support building in Scratchbox, which has a version of make that fails
1688         on wildcard syntax. Use a vpath to match IDL files instead.
1689
1690         * GNUmakefile.am:
1691
1692 2008-01-03  Jon Honeycutt  <jhoneycutt@apple.com>
1693
1694         Reviewed by Darin.
1695
1696         <rdar://problem/5504775> PDF page will not load first time after Adobe
1697         Reader install, unless browser is relaunched
1698
1699         Refresh and re-search the plugin database if the MIME type is not
1700         registered.
1701
1702         * plugins/win/PluginDatabaseWin.cpp:
1703         (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
1704         * plugins/win/PluginDatabaseWin.h:
1705
1706 2008-01-03  Dan Bernstein  <mitz@apple.com>
1707
1708         Reviewed by Darin Adler.
1709
1710         - fix http://bugs.webkit.org/show_bug.cgi?id=16548
1711           <rdar://problem/5659452> REGRESSION(r28810): Font style and sizes are weird for Japanese text
1712
1713         * platform/graphics/win/FontCacheWin.cpp:
1714         (WebCore::linkedFontEnumProc): Added. This callback is used to fetch
1715         a valid LOGFONT for a given family.
1716         (WebCore::getLinkedFonts): Added. Returns a vector of font families
1717         linked to the given font family by the Windows registry key
1718         HKLM\Software\...\FontLink\SystemLink. The registry values typically
1719         differ based on the installed language version of Windows.
1720         (WebCore::FontCache::getFontDataForCharacters): Changed to not use MLang
1721         font mapping, which is Windows code page based, except for characters in
1722         the range U+2000..U+200F. Instead, this function gets the font Uniscribe
1723         would use for the character. However, that font might not actually
1724         contain the character, in which case GDI font linking would substitute a
1725         different font. Therefore, this function walks the linked font list
1726         until it finds a font that actually contains the character.
1727
1728 2008-01-03  Darin Adler  <darin@apple.com>
1729
1730         Reviewed by Mitz.
1731
1732         - fix http://bugs.webkit.org/show_bug.cgi?id=16723
1733           tables/mozilla/bugs/bug30418.html test failing due to problems updating dynamic border rules
1734
1735         Test: fast/table/border-changes.html
1736
1737         * html/HTMLTableElement.h:
1738         * html/HTMLTableElement.cpp:
1739         (WebCore::HTMLTableElement::parseMappedAttribute): Check the border type before and after
1740         parsing attributes, rather than doing this only for the rules attribute.
1741         (WebCore::HTMLTableElement::cellBorders): Added.
1742         (WebCore::HTMLTableElement::getSharedCellDecl): Changed to use cellBorders to factor out the
1743         rule about what type of borders to use.
1744
1745 2008-01-02  Sam Weinig  <sam@webkit.org>
1746
1747         Reviewed by Darin.
1748
1749         Pass the prototype of WebCore JS objects up the constructor chain
1750         rather than explicitly setting using setPrototype.  This removes many
1751         redundant settings of the prototype on construction.  To avoid a CG 
1752         hazard, the prototype must be constructed before calling the
1753         constructor of the JS object.
1754
1755         - JS objects that inherit from DOMObject, which all bindings objects
1756           (except Window) do, now can't implicitly have a jsNull prototype, but
1757           must explicitly pass it up the construction chain.
1758
1759         * bindings/js/JSCSSRuleCustom.cpp:
1760         (WebCore::toJS):
1761         * bindings/js/JSCSSValueCustom.cpp:
1762         (WebCore::toJS):
1763         * bindings/js/JSDocumentCustom.cpp:
1764         (WebCore::toJS):
1765         * bindings/js/JSEventCustom.cpp:
1766         (WebCore::toJS):
1767         * bindings/js/JSEventTargetNode.cpp:
1768         (WebCore::JSEventTargetNode::JSEventTargetNode):
1769         * bindings/js/JSEventTargetNode.h:
1770         * bindings/js/JSHTMLAllCollection.h:
1771         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
1772         * bindings/js/JSHTMLAudioElementConstructor.cpp:
1773         (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
1774         * bindings/js/JSHTMLCollectionCustom.cpp:
1775         (WebCore::getNamedItems):
1776         (WebCore::toJS):
1777         * bindings/js/JSHTMLElementWrapperFactory.cpp:
1778         (WebCore::createJSHTMLWrapper):
1779         * bindings/js/JSHTMLFormElementCustom.cpp:
1780         (WebCore::JSHTMLFormElement::nameGetter):
1781         * bindings/js/JSHTMLInputElementBase.cpp:
1782         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
1783         * bindings/js/JSHTMLInputElementBase.h:
1784         * bindings/js/JSHTMLOptionElementConstructor.cpp:
1785         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
1786         * bindings/js/JSLocation.cpp:
1787         (WebCore::JSLocation::JSLocation):
1788         * bindings/js/JSLocation.h:
1789         * bindings/js/JSNamedNodesCollection.cpp:
1790         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
1791         * bindings/js/JSNamedNodesCollection.h:
1792         * bindings/js/JSNodeCustom.cpp:
1793         (WebCore::toJS):
1794         * bindings/js/JSSVGElementWrapperFactory.cpp:
1795         (WebCore::createJSSVGWrapper):
1796         * bindings/js/JSSVGPathSegCustom.cpp:
1797         (WebCore::toJS):
1798         * bindings/js/JSStyleSheetCustom.cpp:
1799         (WebCore::toJS):
1800         * bindings/js/JSXMLHttpRequest.cpp:
1801         (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
1802         (KJS::JSXMLHttpRequestConstructorImp::construct):
1803         (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
1804         * bindings/js/JSXMLHttpRequest.h:
1805         * bindings/js/JSXSLTProcessor.cpp:
1806         (KJS::JSXSLTProcessor::JSXSLTProcessor):
1807         (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
1808         (KJS::XSLTProcessorConstructorImp::implementsConstruct):
1809         (KJS::XSLTProcessorConstructorImp::construct):
1810         * bindings/js/JSXSLTProcessor.h:
1811         * bindings/js/kjs_binding.h:
1812         (KJS::DOMObject::DOMObject):
1813         (KJS::cacheDOMObject):
1814         (KJS::cacheSVGDOMObject):
1815         * bindings/js/kjs_css.cpp:
1816         (WebCore::JSRGBColor::JSRGBColor):
1817         (WebCore::getJSRGBColor):
1818         * bindings/js/kjs_css.h:
1819         * bindings/js/kjs_events.cpp:
1820         (WebCore::JSClipboard::JSClipboard):
1821         (WebCore::toJS):
1822         * bindings/js/kjs_events.h:
1823         * bindings/js/kjs_html.cpp:
1824         (WebCore::ImageConstructorImp::ImageConstructorImp):
1825         * bindings/js/kjs_navigator.cpp:
1826         (KJS::Navigator::Navigator):
1827         (KJS::PluginBase::PluginBase):
1828         * bindings/js/kjs_navigator.h:
1829         * bindings/js/kjs_window.cpp:
1830         (KJS::Window::Window):
1831         (KJS::Window::location):
1832         (KJS::Window::getValueProperty):
1833         * bindings/js/kjs_window.h:
1834         * bindings/scripts/CodeGeneratorJS.pm:
1835
1836 2008-01-03  Holger Hans Peter Freyther  <zecke@selfish.org>
1837
1838         Reviewed by Alp.
1839
1840         -This is from http://bugs.webkit.org/show_bug.cgi?id=16115
1841
1842         Change the Gtk ContextMenuItem code to generate the GtkMenuItem
1843         or GtkCheckMenuItem on the fly. Currently we will create a
1844         GtkCheckMenuItem if the ContextMenuItem has been checked. What needs
1845         to be done is to change WebCore to tell the platform code if an item
1846         is checkable or not.
1847
1848         * platform/ContextMenuItem.h:
1849         (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
1850         * platform/gtk/ContextMenuGtk.cpp:
1851         (WebCore::ContextMenu::appendItem):
1852         * platform/gtk/ContextMenuItemGtk.cpp:
1853         (WebCore::ContextMenuItem::ContextMenuItem):
1854         (WebCore::ContextMenuItem::~ContextMenuItem):
1855         (WebCore::ContextMenuItem::createNativeMenuItem):
1856         (WebCore::ContextMenuItem::releasePlatformDescription):
1857         (WebCore::ContextMenuItem::type):
1858         (WebCore::ContextMenuItem::setType):
1859         (WebCore::ContextMenuItem::action):
1860         (WebCore::ContextMenuItem::setAction):
1861         (WebCore::ContextMenuItem::platformSubMenu):
1862         (WebCore::ContextMenuItem::setSubMenu):
1863         (WebCore::ContextMenuItem::setChecked):
1864
1865 2008-01-03  Dan Bernstein  <mitz@apple.com>
1866
1867         Rubber-stamped by Adam Roben.
1868
1869         - update the project hierarchy to match the on-disk organization of
1870           the platform directory.
1871
1872         * WebCore.vcproj/WebCore.vcproj:
1873
1874 2008-01-03  Adam Roben  <aroben@apple.com>
1875
1876         Fix a buffer overrun and a leak introduced in r29098
1877
1878         Reviewed by Mark.
1879
1880         * platform/text/StringImpl.cpp:
1881         (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
1882         it be big enough to hold the string contents plus the null terminator.
1883
1884 2008-01-03  Simon Hausmann  <hausmann@webkit.org>
1885
1886         Reviewed by Lars.
1887
1888         Added the first revision of QWebView and started moving functionality from QWebPave over to QWebView and QWebFrame.
1889
1890         * WebCore.pro:
1891
1892 2008-01-03  Alp Toker  <alp@atoker.com>
1893
1894         Suggested by Mark Rowe.
1895
1896         Fix indentation and remove trailing whitespace.
1897
1898         * platform/network/curl/ResourceHandleManager.cpp:
1899
1900 2008-01-03  Luca Bruno  <lethalman88@gmail.com>
1901
1902         Reviewed by Alp Toker.
1903
1904         Fix HTTP POST-based logins to sites like Facebook, GMail by ensuring
1905         that the two POST methods don't conflict.
1906
1907         * platform/network/curl/ResourceHandleManager.cpp:
1908         (WebCore::ResourceHandleManager::setupPOST):
1909
1910 2008-01-02  Darin Adler  <darin@apple.com>
1911
1912         - touched some files to try to get the Windows buildbot building again
1913
1914 2008-01-02  Dan Bernstein  <mitz@apple.com>
1915
1916         Reviewed by Sam Weinig.
1917
1918         - fix small caps rendering
1919
1920         Covered by an existing test.
1921
1922         * platform/graphics/win/FontDataWin.cpp:
1923         (WebCore::FontData::smallCapsFontData):
1924
1925 2008-01-02  Antti Koivisto  <antti@apple.com>
1926
1927         Reviewed by Oliver.
1928
1929         Calculate video position and size within the renderer box in WebCore. This
1930         way the aspect ratio calculation is not needed in each MediaPlayer implementation.
1931         
1932         This fixes video aspect ratio on Windows.
1933         
1934         Covered by an existing pixel test.
1935
1936         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1937         (WebCore::MediaPlayerPrivate::createQTMovieView):
1938         * rendering/RenderVideo.cpp:
1939         (WebCore::RenderVideo::videoBox):
1940         (WebCore::RenderVideo::paintReplaced):
1941         (WebCore::RenderVideo::updatePlayer):
1942         * rendering/RenderVideo.h:
1943
1944 2008-01-02  Ada Chan  <adachan@apple.com>
1945
1946         Fix windows build.
1947
1948         * WebCore.vcproj/WebCore.vcproj:
1949
1950 2008-01-02  John Sullivan  <sullivan@apple.com>
1951
1952         Reviewed by Dan Bernstein
1953         
1954         - fixed <rdar://problem/5579010> REGRESSION: Safari inserts newlines in tab names when U+2028 is present
1955
1956         * loader/DocumentLoader.cpp:
1957         (WebCore::canonicalizedTitle):
1958         in the code that replaces control characters with white space, also replace the unicode line separator
1959         and paragraph separator characters
1960
1961 2008-01-02  Darin Adler  <darin@apple.com>
1962
1963         - fix buffer overruns seen on buildbot
1964
1965         * platform/text/StringImpl.cpp:
1966         (WebCore::countCharacter): Added this.
1967         (WebCore::StringImpl::toCoordsArray): Use countCharacter instead of incorrect find expression.
1968         (WebCore::StringImpl::toLengthArray): Ditto.
1969         (WebCore::StringImpl::replace): Added assertions.
1970
1971 2008-01-02  Darin Adler  <darin@apple.com>
1972
1973         Reviewed by Maciej.
1974
1975         - fix http://bugs.webkit.org/show_bug.cgi?id=16657
1976           Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild
1977         - fix http://bugs.webkit.org/show_bug.cgi?id=16659
1978           Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>
1979
1980         Tests: dom/html/level2/html/HTMLCollection07.html
1981                dom/html/level2/html/HTMLCollection08.html
1982                dom/html/level2/xhtml/HTMLCollection07.xhtml
1983                dom/html/level2/xhtml/HTMLCollection08.xhtml
1984                fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
1985                fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
1986
1987         * GNUmakefile.am: Added HTMLTableRowsCollection.
1988         * WebCore.pro: Ditto.
1989         * WebCore.vcproj/WebCore.vcproj: Ditto.
1990         * WebCore.xcodeproj/project.pbxproj: Ditto.
1991         * WebCoreSources.bkl: Ditto.
1992
1993         * dom/XMLTokenizer.cpp: Took out stray include.
1994
1995         * html/HTMLCollection.cpp:
1996         (WebCore::HTMLCollection::itemAfter): Removed all the table rows code, since we now use
1997         a separate class for that collection. Also got rid of the distinct types for custom collections
1998         that don't need them (use Other for both).
1999         * html/HTMLCollection.h: Also made firstItem non-virtual because it doesn't need to be virtual.
2000
2001         * html/HTMLFormCollection.cpp:
2002         (WebCore::HTMLFormCollection::HTMLFormCollection): Use Other instead of FormElements
2003         for the HTMLCollection type.
2004
2005         * html/HTMLTableElement.cpp:
2006         (WebCore::HTMLTableElement::HTMLTableElement): Eliminated m_head, m_foot, m_firstBody, and m_caption.
2007         (WebCore::HTMLTableElement::caption): Added non-inline version. Finds the caption rather than
2008         keeping a pointer to it.
2009         (WebCore::HTMLTableElement::setCaption): Rewrote.
2010         (WebCore::HTMLTableElement::tHead): Ditto.
2011         (WebCore::HTMLTableElement::setTHead): Ditto.
2012         (WebCore::HTMLTableElement::tFoot): Ditto.
2013         (WebCore::HTMLTableElement::setTFoot): Ditto.
2014         (WebCore::HTMLTableElement::createTHead): Ditto.
2015         (WebCore::HTMLTableElement::deleteTHead): Ditto.
2016         (WebCore::HTMLTableElement::createTFoot): Ditto.
2017         (WebCore::HTMLTableElement::deleteTFoot): Ditto.
2018         (WebCore::HTMLTableElement::createCaption): Ditto.
2019         (WebCore::HTMLTableElement::deleteCaption): Ditto.
2020         (WebCore::HTMLTableElement::lastBody): Added.
2021         (WebCore::HTMLTableElement::insertRow): Rewrote to use a loop based on code in HTMLTableRowsCollection.
2022         This is different from the old code mainly in how it handles rows outside any section.
2023         (WebCore::HTMLTableElement::deleteRow): Ditto.
2024         (WebCore::HTMLTableElement::addChild): Removed code to set the various members. Keeping pointers to
2025         these was a possible source of serious bugs too, including crashes with stale pointers, although I
2026         didn't write any test cases to prove those bugs existed.
2027         (WebCore::HTMLTableElement::parseMappedAttribute): Changed the rules code to visit all cells, not
2028         just the cells of the first body. I believe this fixed rendering on some table tests. I think the code
2029         visits too many cells and also the use of recursion is overkill, but I didn't try to fix that.
2030         (WebCore::HTMLTableElement::rows): Changed to use the new HTMLTableRowsCollection.
2031         * html/HTMLTableElement.h: Changed functions to return PassRefPtr, which can be important if strange
2032         things like DOM mutation events take things ot of the tree before they are safely referenced by
2033         JavaScript wrappers. Also changed functions to take PassRefPtr and added exceptions. Removed unneeded
2034         firstTBody and setTBody functions and childrenChanged function override, as well as unused Rules and
2035         Frame enums. Removed m_head, m_foot, m_firstBody, and m_caption, and added lastBody function. Removed
2036         unneeded friend declaration for HTMLTableCellElement.
2037         * html/HTMLTableElement.idl: Allow the setteres for caption, tHead, and tFoot to raise exceptions.
2038
2039         * html/HTMLTableRowsCollection.cpp: Added. Implements the HTML 5 rule for which rows are in the
2040         collection in which order.
2041         * html/HTMLTableRowsCollection.h: Added.
2042
2043         * loader/FTPDirectoryDocument.cpp:
2044         (WebCore::FTPDirectoryTokenizer::appendEntry): Use the standard insertRow function instead of
2045         coming up with our own way of inserting a row. Simplifies things -- we can remove the code to
2046         create a tbody element.
2047
2048 2008-01-02  Darin Adler  <darin@apple.com>
2049
2050         Reviewed by Alice and Tim.
2051
2052         - try to fix GTK and Qt builds
2053
2054         * platform/win/ScrollViewWin.cpp:
2055         (WebCore::ScrollView::scroll): Improve logic slightly for the case of
2056         vertical scrolling when there's no vertical scroll bar.
2057
2058         * platform/gtk/ScrollViewGtk.cpp:
2059         (WebCore::ScrollView::scroll): Copy the code from Windows. Maybe this
2060         should be factored differently.
2061         * platform/qt/ScrollViewQt.cpp:
2062         (WebCore::ScrollView::scroll): Ditto.
2063
2064 2008-01-02  Darin Adler  <darin@apple.com>
2065
2066         Reviewed by Anders.
2067
2068         - http://bugs.webkit.org/show_bug.cgi?id=16712
2069           change StringImpl to take and return PassRefPtr instead of raw pointers
2070
2071         Also eliminated use of const StringImpl. Since StringImpl is immutable there
2072         is no distinction between a const and non-const one at the moment.
2073
2074         * WebCore.base.exp: Updated.
2075
2076         * css/CSSHelper.cpp:
2077         (WebCore::parseURL): Make String directly, not by making a StringImpl.
2078         * dom/Attr.cpp:
2079         (WebCore::Attr::createTextChild): Convert AtomicString to String with domString,
2080         not via StringImpl.
2081         (WebCore::Attr::setValue): Remove unneed call to impl() when passing a String
2082         to a function that takes a String.
2083
2084         * dom/CDATASection.cpp: Removed unused constructor.
2085         (WebCore::CDATASection::cloneNode): Added a now-needed .get().
2086         (WebCore::CDATASection::createNew): Changed function to take a PassRefPtr.
2087         * dom/CDATASection.h:
2088
2089         * dom/CharacterData.cpp:
2090         (WebCore::CharacterData::CharacterData): Removed unneeded initialization and
2091         ref() now that the string is a RefPtr. Also updated to not call "new StringImpl".
2092         (WebCore::CharacterData::~CharacterData): Removed unneeded deref() since it's
2093         a RefPtr.
2094         (WebCore::CharacterData::setData): More of that.
2095         (WebCore::CharacterData::substringData): Ditto.
2096         (WebCore::CharacterData::appendData): Ditto.
2097         (WebCore::CharacterData::insertData): Ditto.
2098         (WebCore::CharacterData::deleteData): Ditto.
2099         (WebCore::CharacterData::replaceData): Ditto.
2100         (WebCore::CharacterData::nodeValue): Ditto.
2101         (WebCore::CharacterData::dispatchModifiedEvent): Ditto.
2102         (WebCore::CharacterData::dump): Ditto.
2103         * dom/CharacterData.h: Changed to use a RefPtr. I could have used a String
2104         instead, but since String adds extra branches to handle 0, I figured it was
2105         more conservative to just use RefPtr. Later it would be good to figure out
2106         which is preferred style and be more consistent. Maybe we'll phase out
2107         StringImpl, or maybe we'll go the other way and use it more since it can be
2108         more efficient.
2109
2110         * dom/DOMImplementation.cpp:
2111         (WebCore::addString): Changed set to use String rather than StringImpl.
2112         (WebCore::isSVG10Feature): Ditto.
2113         (WebCore::isSVG11Feature): Ditto.
2114         (WebCore::DOMImplementation::createDocument): Replaced custom code to
2115         find a colon with a call to String::find.
2116
2117         * dom/Range.cpp:
2118         (WebCore::Range::insertNode): Updated since the result of splitText is now
2119         a PassRefPtr.
2120
2121         * dom/Text.cpp:
2122         (WebCore::Text::splitText): Updated since str is now a RefPtr. Also made the
2123         result of this function be a PassRefPtr.
2124         (WebCore::Text::createRenderer): Ditto.
2125         (WebCore::Text::createNew): Made the parameter and result both be PassRefPtr.
2126         * dom/Text.h:
2127
2128         * html/HTMLElement.cpp:
2129         (WebCore::HTMLElement::nodeName): Use String::upper.
2130
2131         * html/HTMLInputElement.cpp:
2132         (WebCore::numGraphemeClusters): Remove now-unneeded const.
2133         (WebCore::numCharactersInGraphemeClusters): Ditto.
2134
2135         * html/HTMLTokenizer.cpp:
2136         (WebCore::HTMLTokenizer::processToken): Updated for function name change.
2137
2138         * platform/text/AtomicString.cpp:
2139         (WebCore::CStringTranslator::translate): Updated since there is no longer
2140         a constructor that takes a string.
2141
2142         * platform/text/PlatformString.h: Added new constructors that take
2143         PassRefPtr and RefPtr. Removed misleading comment.
2144
2145         * platform/text/String.cpp:
2146         (WebCore::String::String): Changed to use StringImpl::create, which handles
2147         the empty string automatically.
2148         (WebCore::String::append): Ditto.
2149         (WebCore::String::charactersWithNullTermination): Similar.
2150         (WebCore::String::format): Ditto.
2151
2152         * platform/text/StringHash.h: Took out unneeded const.
2153
2154         * platform/text/StringImpl.cpp:
2155         (WebCore::deleteUCharVector): Changed to take a const pointer since the
2156         buffers are now const UChar buffers.
2157         (WebCore::StringImpl::StringImpl): Removed some constructors. Got rid of the
2158         separate init functions. The constructors are now private and used only in
2159         the create functions and one or two other places.
2160         (WebCore::StringImpl::containsOnlyWhitespace): Removed now-meaningless const.
2161         (WebCore::StringImpl::substring): Ditto. Also changed return value to be a
2162         PassRefPtr.
2163         (WebCore::StringImpl::characterStartingAt): Ditto.
2164         (WebCore::StringImpl::toLength): Ditto.
2165         (WebCore::StringImpl::toCoordsArray): Ditto.
2166         (WebCore::StringImpl::toLengthArray): Ditto.
2167         (WebCore::StringImpl::isLower): Ditto.
2168         (WebCore::StringImpl::lower): Ditto. Changed to use Vector and adopt so we
2169         don't have to use new directly here. Makes empty string handling more consistent.
2170         (WebCore::StringImpl::upper): Ditto.
2171         (WebCore::StringImpl::secure): Ditto.
2172         (WebCore::StringImpl::foldCase): Ditto.
2173         (WebCore::StringImpl::stripWhiteSpace): Ditto.
2174         (WebCore::StringImpl::simplifyWhiteSpace): Ditto.
2175         (WebCore::StringImpl::capitalize): Ditto.
2176         (WebCore::StringImpl::toInt): Removed now-meaningless const.
2177         (WebCore::StringImpl::toInt64): Ditto.
2178         (WebCore::StringImpl::toUInt64): Ditto.
2179         (WebCore::StringImpl::toDouble): Ditto.
2180         (WebCore::StringImpl::toFloat): Ditto.
2181         (WebCore::StringImpl::find): Ditto.
2182         (WebCore::StringImpl::reverseFind): Ditto.
2183         (WebCore::StringImpl::endsWith): Ditto.
2184         (WebCore::StringImpl::replace): Ditto.
2185         (WebCore::equal): Ditto.
2186         (WebCore::equalIgnoringCase): Ditto.
2187         (WebCore::StringImpl::ascii): Ditto.
2188         (WebCore::StringImpl::defaultWritingDirection): Ditto.
2189         (WebCore::StringImpl::createStrippingNullCharacters): Ditto.
2190         (WebCore::StringImpl::adopt): Added special case so this uses the shared
2191         empty string like other functions. Also optimized the common case where the
2192         vector happens to already have the right size so we don't do a fastRealloc
2193         at all in those cases.
2194         (WebCore::StringImpl::create): Added. These are now the public functions for
2195         creating new StringImpl objects. They all implement the shared empty string.
2196         (WebCore::StringImpl::createWithTerminatingNullCharacter):
2197         * platform/text/StringImpl.h:
2198
2199         * platform/text/cf/StringCF.cpp:
2200         (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
2201         * platform/text/cf/StringImplCF.cpp:
2202         (WebCore::StringImpl::createCFString): Removed now-obsolete const.
2203         * platform/text/mac/StringImplMac.mm:
2204         (WebCore::StringImpl::operator NSString *): Ditto.
2205         * platform/text/mac/StringMac.mm:
2206         (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
2207         * platform/text/qt/StringQt.cpp:
2208         (WebCore::String::String): Ditto.
2209         * platform/text/wx/StringWx.cpp:
2210         (WebCore::String::String): Ditto.
2211         * rendering/RenderBR.cpp:
2212         (WebCore::RenderBR::RenderBR): Ditto.
2213
2214         * rendering/RenderSVGInlineText.cpp:
2215         (WebCore::RenderSVGInlineText::RenderSVGInlineText): Use PassRefPtr.
2216         * rendering/RenderSVGInlineText.h:
2217
2218         * rendering/RenderText.cpp:
2219         (WebCore::charactersAreAllASCII): Removed now-unneeded const.
2220         * rendering/RenderTextFragment.cpp:
2221         (WebCore::RenderTextFragment::originalText): Use RefPtr.
2222
2223 2008-01-02  Timothy Hatcher  <timothy@apple.com>
2224
2225         Reviewed by Oliver Hunt.
2226
2227         <rdar://problem/5618086> WebInspector does not expand the DOM tree after being closed
2228
2229         Closing the Web Inspector causes the DOM tree outline to be torn down, clearing the
2230         internal element lookup tables. The represented DOM node object still holds the identifier
2231         it was assigned, and a later call to findTreeElement will use that original identifier
2232         against a cleared lookup table. In that case we need to fallback on DOM ancestor lookup.
2233
2234         * page/inspector/treeoutline.js:
2235         (TreeOutline.prototype.findTreeElement): If the DOM node already had a __treeElementIdentifier,
2236         but the TreeOutline no longer has the element in the _knownTreeElements list do an ancestor lookup
2237         instead of an early return.
2238
2239 2008-01-02  Alice Liu  <alice.liu@apple.com>
2240
2241         Reviewed by Maciej.
2242
2243         Fixed <rdar://5283861> (problems scrolling in gmail message content area)
2244
2245         * platform/ScrollView.h:
2246         * platform/win/ScrollViewWin.cpp:
2247         (WebCore::ScrollView::scroll):
2248          Changed return value to bool to reflect success of scroll attempt
2249
2250 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
2251
2252         Fixed a typo (pointed out in review, but I somehow missed it at first).
2253
2254         * editing/EditorCommand.cpp: (WebCore::executeDelete):
2255
2256 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
2257
2258         Reviewed by Darin.
2259
2260         Resolved several FIXMEs in EditorCommand.
2261         Made recently added commands hidden from JS again.
2262         Removed BackwardDelete implementation, which used to be dead code, but got exposed now.
2263
2264         Tests: editing/execCommand/delete-no-scroll.html
2265                editing/execCommand/forward-delete-no-scroll.html
2266                editing/execCommand/insert-line-break-no-scroll.html
2267
2268         * editing/EditorCommand.cpp:
2269         (WebCore::executeDelete):
2270         (WebCore::executeForwardDelete):
2271         (WebCore::executeInsertLineBreak):
2272         (WebCore::supportedFromMenuOrKeyBinding):
2273         (WebCore::CommandEntry::):
2274
2275 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
2276
2277         Reviewed by Darin.
2278
2279         http://bugs.webkit.org/show_bug.cgi?id=14555
2280         action=mailto + method=get - The generated mailto URI is incorrect and the hvalues are encoded twice
2281
2282         http://bugs.webkit.org/show_bug.cgi?id=14774
2283         Submitted data only includes first input item
2284
2285         Reworked encoding of mailto URLs to match other browsers.
2286         Moved most of related logic from FrameLoader::submitForm() to HTMLFormElement::submit().
2287
2288         Tests: fast/forms/mailto/advanced-get.html
2289                fast/forms/mailto/advanced-put.html
2290                fast/forms/mailto/get-multiple-items-text-plain.html
2291                fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
2292                fast/forms/mailto/get-multiple-items.html
2293                fast/forms/mailto/get-non-ascii.html
2294                fast/forms/mailto/get-non-ascii-text-plain.html
2295                fast/forms/mailto/get-overwrite-query.html
2296                fast/forms/mailto/post-append-query.html
2297                fast/forms/mailto/post-multiple-items-multipart-form-data.html
2298                fast/forms/mailto/post-multiple-items-text-plain.html
2299                fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
2300                fast/forms/mailto/post-multiple-items.html
2301
2302         * html/HTMLFormElement.cpp:
2303         (WebCore::HTMLFormElement::submit):
2304         * loader/FrameLoader.cpp:
2305         (WebCore::FrameLoader::submitForm):
2306
2307 2008-01-02  Mark Rowe  <mrowe@apple.com>
2308
2309         Autotools build fix.
2310
2311         * GNUmakefile.am: Remove files before generating them, not after.
2312
2313 2008-01-02  Mark Rowe  <mrowe@apple.com>
2314
2315         Rubber-stamped by Alp Toker.
2316
2317         Add missing dependencies to some GNUmakefile.am rules.
2318
2319         * GNUmakefile.am:
2320
2321 2008-01-02  Mark Rowe  <mrowe@apple.com>
2322
2323         Reviewed by Alp Toker.
2324
2325         Autotools build fix.  Make can expand $@ to any of the targets for the rule,
2326         while we always want to use the name of the .cpp file as the output file.
2327
2328         * GNUmakefile.am:
2329
2330 2008-01-02  Luca Bruno  <lethalman88@gmail.com>
2331
2332         Reviewed by Alp Toker.
2333
2334         http://bugs.webkit.org/show_bug.cgi?id=16115
2335         [GTK] ContextMenu and ContextMenuItem lacks an implementation
2336
2337         Add context menu support.
2338
2339         Based on a patch by Holger Freyther.
2340
2341         * platform/gtk/ContextMenuGtk.cpp:
2342         (WebCore::menuItemActivated):
2343         (WebCore::ContextMenu::ContextMenu):
2344         (WebCore::ContextMenu::~ContextMenu):
2345         (WebCore::ContextMenu::appendItem):
2346         (WebCore::ContextMenu::setPlatformDescription):
2347         (WebCore::ContextMenu::releasePlatformDescription):
2348         * platform/gtk/ContextMenuItemGtk.cpp:
2349         (WebCore::ContextMenuItem::ContextMenuItem):
2350         (WebCore::ContextMenuItem::~ContextMenuItem):
2351         (WebCore::ContextMenuItem::releasePlatformDescription):
2352         (WebCore::ContextMenuItem::type):
2353         (WebCore::ContextMenuItem::action):
2354         (WebCore::ContextMenuItem::setAction):
2355         (WebCore::ContextMenuItem::platformSubMenu):
2356         (WebCore::ContextMenuItem::setSubMenu):
2357         (WebCore::ContextMenuItem::setChecked):
2358         (WebCore::ContextMenuItem::setEnabled):
2359
2360 2008-01-02  Alp Toker  <alp@atoker.com>
2361
2362         GTK+ autotools build fix. Track changes in r29073.
2363
2364         * GNUmakefile.am:
2365
2366 2008-01-01  Darin Adler  <darin@apple.com>
2367
2368         - fix release build
2369
2370         * bindings/js/kjs_binding.cpp:
2371         (KJS::setDOMException): Initialize to avoid uninitialized variable warning.
2372         Removed default so we get a warning if there's a missing case.
2373
2374 2008-01-01  David D. Kilzer  <ddkilzer@webkit.org>
2375
2376         Scripting MIME Types application/ecmascript, application/javascript not viewable
2377         <http://bugs.webkit.org/show_bug.cgi?id=11063>
2378
2379         Reviewed by Darin.
2380
2381         This patch consolidates the list of acceptable MIME types for JavaScript
2382         source into the MIMETypeRegistry class, and replaces checks for these
2383         types with a call to MIMETypeRegistry::isSupportedJavaScriptMIMEType().
2384
2385         No tests added since viewing JavaScript source is not testable.
2386
2387         * dom/DOMImplementation.cpp:
2388         (WebCore::DOMImplementation::isTextMIMEType): Use
2389         MIMETypeRegistry::isSupportedJavaScriptMIMEType() instead of a single
2390         hard-coded MIME type, "application/x-javascript".
2391
2392         * html/HTMLScriptElement.cpp:
2393         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): Moved list of
2394         JavaScript MIME types from here to
2395         MIMETypeRegistry::initialiseSupportedJavaScriptMIMETypes().
2396
2397         * platform/MIMETypeRegistry.cpp:
2398         (WebCore::initialiseSupportedJavaScriptMIMETypes): Added. List of
2399         MIME types came from HTMLScriptElement::shouldExecuteAsJavaScript().
2400         (WebCore::initialiseSupportedNonImageMimeTypes): Remove single
2401         hard-coded MIME type, "application/x-javascript", from the list.
2402         (WebCore::initialiseMIMETypeRegistry): Initialise
2403         supportedJavaScriptMIMETypes, then pre-populate supportedNonImageMIMETypes
2404         with values in supportedJavaScriptMIMETypes.
2405         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Added.
2406
2407         * platform/MIMETypeRegistry.h: Added isSupportedJavaScriptMIMEType().
2408
2409 2008-01-01  Sam Weinig  <sam@webkit.org>
2410
2411         Reviewed by Darin.
2412
2413         Patch for http://bugs.webkit.org/show_bug.cgi?id=16691
2414         Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)
2415
2416         - Create JS objects for all the different types of exceptions, each with there own prototype and constructor.
2417         - Abstract all the logic and storage for exception classes in to an ExceptionBase class.
2418         - Move specialized ExceptionCodes into the exception classes. (ie. the EventExceptionCode enum is now in EventException).
2419
2420         Tests: fast/dom/DOMException/EventException.html
2421                fast/dom/DOMException/RangeException.html
2422                fast/dom/DOMException/XPathException.html
2423                http/tests/xmlhttprequest/XMLHttpRequestException.html
2424                svg/custom/SVGException.html
2425
2426         * DerivedSources.make:
2427         * WebCore.pro:
2428         * WebCore.vcproj/WebCore.vcproj:
2429         * WebCore.xcodeproj/project.pbxproj:
2430         * WebCoreSources.bkl:
2431         * bindings/js/JSSVGMatrixCustom.cpp:
2432         (WebCore::JSSVGMatrix::inverse):
2433         (WebCore::JSSVGMatrix::rotateFromVector):
2434         * bindings/js/kjs_binding.cpp:
2435         (KJS::setDOMException):
2436         * bindings/scripts/CodeGeneratorJS.pm: Use the constant values defined
2437         in the IDL as the ObjC bindings do.
2438         * bindings/scripts/CodeGeneratorObjC.pm:
2439         * dom/DOMCoreException.cpp: Removed.
2440         * dom/DOMCoreException.h:
2441         (WebCore::DOMCoreException::DOMCoreException):
2442         * dom/DOMCoreException.idl:
2443         * dom/Event.h:
2444         * dom/EventException.h: Copied from WebCore/dom/DOMCoreException.h.
2445         (WebCore::EventException::EventException):
2446         (WebCore::EventException::):
2447         * dom/EventException.idl: Copied from WebCore/dom/DOMCoreException.idl.
2448         * dom/EventTargetNode.cpp:
2449         (WebCore::EventTargetNode::dispatchEvent):
2450         * dom/ExceptionBase.cpp: Copied from WebCore/dom/DOMCoreException.cpp.
2451         (WebCore::ExceptionBase::ExceptionBase):
2452         (WebCore::ExceptionBase::toString):
2453         * dom/ExceptionBase.h: Copied from WebCore/dom/DOMCoreException.h.
2454         (WebCore::ExceptionBase::code):
2455         * dom/ExceptionCode.cpp:
2456         (WebCore::getExceptionCodeDescription):
2457         * dom/ExceptionCode.h:
2458         (WebCore::):
2459         * dom/Range.cpp:
2460         (WebCore::Range::insertNode):
2461         (WebCore::Range::checkNodeWOffset):
2462         (WebCore::Range::checkNodeBA):
2463         (WebCore::Range::selectNode):
2464         (WebCore::Range::selectNodeContents):
2465         (WebCore::Range::surroundContents):
2466         * dom/RangeException.h:
2467         (WebCore::RangeException::RangeException):
2468         (WebCore::RangeException::):
2469         * dom/RangeException.idl:
2470         * page/DOMWindow.idl:
2471         * svg/SVGColor.cpp:
2472         (WebCore::SVGColor::setRGBColor):
2473         * svg/SVGException.h:
2474         (WebCore::SVGException::SVGException):
2475         (WebCore::SVGException::):
2476         * svg/SVGException.idl:
2477         * svg/SVGLocatable.cpp:
2478         (WebCore::SVGLocatable::getTransformToElement):
2479         * xml/XMLHttpRequest.cpp:
2480         (WebCore::XMLHttpRequest::dispatchEvent):
2481         (WebCore::XMLHttpRequest::open):
2482         (WebCore::XMLHttpRequest::send):
2483         * xml/XMLHttpRequest.h:
2484         * xml/XMLHttpRequestException.h: Copied from WebCore/dom/DOMCoreException.h.
2485         (WebCore::XMLHttpRequestException::XMLHttpRequestException):
2486         (WebCore::XMLHttpRequestException::):
2487         * xml/XMLHttpRequestException.idl: Copied from WebCore/dom/DOMCoreException.idl.
2488         * xml/XPathEvaluator.h:
2489         * xml/XPathException.h: Copied from WebCore/dom/DOMCoreException.h.
2490         (WebCore::XPathException::XPathException):
2491         (WebCore::XPathException::):
2492         * xml/XPathException.idl: Copied from WebCore/dom/DOMCoreException.idl.
2493         * xml/XPathParser.cpp:
2494         (WebCore::XPath::Parser::parseStatement):
2495         * xml/XPathResult.cpp:
2496         (WebCore::XPathResult::convertTo):
2497         (WebCore::XPathResult::numberValue):
2498         (WebCore::XPathResult::stringValue):
2499         (WebCore::XPathResult::booleanValue):
2500         (WebCore::XPathResult::singleNodeValue):
2501         (WebCore::XPathResult::snapshotLength):
2502         (WebCore::XPathResult::iterateNext):
2503         (WebCore::XPathResult::snapshotItem):
2504
2505 2008-01-01  Sam Weinig  <sam@webkit.org>
2506
2507         Remove JSDomExceptionConstructor.lut.h from clean step
2508         as it no longer exists.
2509
2510         * GNUmakefile.am:
2511
2512 2008-01-01  Dan Bernstein  <mitz@apple.com>
2513
2514         - Windows build fix
2515
2516         * WebCore.vcproj/WebCore.vcproj:
2517
2518 2008-01-01  Sam Weinig  <sam@webkit.org>
2519
2520         Try again to fix the builds
2521
2522         * DerivedSources.make:
2523
2524 2008-01-01  Sam Weinig  <sam@webkit.org>
2525
2526         Fix non-mac builds.
2527
2528         * WebCore.pro:
2529         * WebCore.vcproj/WebCore.vcproj:
2530         * WebCoreSources.bkl:
2531
2532 2008-01-01  Eric Seidel  <eric@webkit.org>
2533
2534         Reviewed by Alexey.
2535
2536         Don't replace \ with / in data: urls
2537         http://bugs.webkit.org/show_bug.cgi?id=16692
2538
2539         Test: fast/loader/url-data-replace-backslash.html
2540
2541         * platform/KURL.cpp:
2542         (WebCore::KURL::init):
2543
2544 2008-01-01  Alp Toker  <alp@atoker.com>
2545
2546         GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
2547         correct parameter to AM_INIT_AUTOMAKE.
2548
2549         * GNUmakefile.am:
2550
2551 2007-12-31  Sam Weinig  <sam@webkit.org>
2552
2553         Reviewed by Darin.
2554
2555         Patch for http://bugs.webkit.org/show_bug.cgi?id=16637
2556         Acid3 expects ExeceptionCode constants to be defined on DOMException objects
2557
2558         - Make DOMException a real JS object.
2559
2560         Test: fast/dom/DOMException/prototype-object.html
2561
2562         * DerivedSources.make:
2563         * WebCore.xcodeproj/project.pbxproj:
2564
2565         This is no longer needed as the autogenerated classes now includes the
2566         constructor.
2567         * bindings/js/JSDOMExceptionConstructor.cpp: Removed.
2568         * bindings/js/JSDOMExceptionConstructor.h: Removed.
2569
2570         Create on demand and use the new class for DOMExceptions.
2571         * bindings/js/kjs_binding.cpp:
2572         (KJS::setDOMException):
2573
2574         Remove no longer needed custom constructor getter.
2575         * bindings/js/kjs_window.cpp:
2576         (KJS::Window::getValueProperty):
2577
2578         Don't expose DOMCoreException as the name of class by special casing
2579         the user visible class name to be DOMException.
2580         * bindings/scripts/CodeGeneratorJS.pm:
2581
2582         The DOMException class/file needs to be named DOMCoreException because there is
2583         name conflict with one of the Objective-C bindings classes.  It should be renamed
2584         to DOMException when the Objective-C bindings are moved into WebKit.
2585         * dom/DOMCoreException.cpp: Added.
2586         (WebCore::DOMCoreException::DOMCoreException):
2587         (WebCore::DOMCoreException::toString):
2588         * dom/DOMCoreException.h: Added.
2589         (WebCore::DOMCoreException::):
2590         (WebCore::DOMCoreException::code):
2591         (WebCore::DOMCoreException::name):
2592         (WebCore::DOMCoreException::message):
2593         * dom/DOMCoreException.idl: Added.
2594         * page/DOMWindow.idl:
2595
2596 2007-12-31  Sam Weinig  <sam@webkit.org>
2597
2598         Re-enable querySelector and querySelectorAll and touch the necessary files to not
2599         kill the windows build.
2600
2601         * WebCore.vcproj/build-generated-files.sh:
2602         * bindings/scripts/CodeGeneratorCOM.pm:
2603         * dom/Document.idl:
2604         * dom/Element.idl:
2605
2606 2007-12-31  Darin Adler  <darin@apple.com>
2607
2608         - fix Windows build
2609
2610         * dom/Document.idl: Temporarily disable querySelector and querySelectorAll, since they are showing
2611         up as pure virtual functions. Sam can fix this later.
2612         * dom/Element.idl: Ditto.
2613
2614 2007-12-31  Dan Bernstein  <mitz@apple.com>
2615
2616         Reviewed by Darin Adler.
2617
2618         - fix http://bugs.webkit.org/show_bug.cgi?id=14134
2619           <rdar://problem/5655160> REGRESSION (r25353): Whitespace nodes ignored between inline list items
2620
2621         Test: fast/dynamic/create-renderer-for-whitespace-only-text.html
2622
2623         * dom/Node.cpp:
2624         (WebCore::Node::attach): Added code to check if this node's renderer
2625         has become the "previous renderer" of any sibling text node, and if so,
2626         ensure that that node gets a renderer if it now needs one.
2627         (WebCore::Node::createRendererIfNeeded): Removed the assertion that the
2628         node is not attached.
2629
2630 2007-12-31  Darin Adler  <darin@apple.com>
2631
2632         Reviewed by Mitz.
2633
2634         - fix http://bugs.webkit.org/show_bug.cgi?id=16641
2635           Acid3 reveals HTMLFormElement.elements fails to update when element name changes
2636
2637         Test: fast/dom/HTMLFormElement/elements-not-in-document.html
2638
2639         This was a bug specific to forms that are not in the document tree.
2640         The fix was to change the code to increment the document version number to match
2641         up with other document change tracking. Maybe at some point we can clean these up
2642         so we don't have so many competing change notification systems.
2643
2644         * dom/ContainerNode.cpp:
2645         (WebCore::ContainerNode::replaceChild): Removed bogus comment.
2646         (WebCore::ContainerNode::addChild): Added an explicit incDOMTreeVersion
2647         call here, since this code path bypasses the subtree-modified event code.
2648
2649         * dom/Element.cpp:
2650         (WebCore::Element::setAttribute): Remove the inDocument() check -- not all HTML
2651         collections are for things in the document.
2652         (WebCore::Element::setAttributeMap): Ditto.
2653
2654         * dom/EventTargetNode.cpp:
2655         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): Added a call to
2656         incDOMTreeVersion here; covers most cases of tree structure changes.
2657
2658         * dom/Node.cpp:
2659         (WebCore::Node::attach): Remove call to incDOMTreeVersion -- creating a renderer
2660         has nothing to do with changes to the DOM tree!
2661         (WebCore::Node::detach): Ditto.
2662
2663         * html/HTMLFormElement.cpp:
2664         (WebCore::HTMLFormElement::registerFormElement): Remove call to incDOMTreeVersion.
2665         This is handled at a lower level and doesn't need to be here.
2666         (WebCore::HTMLFormElement::removeFormElement): Ditto.
2667
2668 2007-12-31  Henry Mason  <hmason@mac.com>
2669
2670         Reviewed by Darin.
2671
2672         Patch for http://bugs.webkit.org/show_bug.cgi?id=14994
2673         Support for MessageEvent and cross-domain messaging
2674
2675         Test: http/tests/messaging/cross-domain-message-send.html
2676
2677         * DerivedSources.make:
2678         * WebCore.pro:
2679         * WebCore.vcproj/WebCore.vcproj:
2680         * WebCore.xcodeproj/project.pbxproj:
2681         * WebCoreSources.bkl:
2682         * bindings/js/JSDOMWindowCustom.cpp:
2683         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Allow cross-domain access to the
2684         postMessage function.
2685         (WebCore::JSDOMWindow::postMessage):
2686         * bindings/js/JSEventCustom.cpp:
2687         (WebCore::toJS):
2688         * dom/Event.cpp:
2689         (WebCore::Event::isMessageEvent):
2690         * dom/Event.h:
2691         * dom/EventNames.h: New event name
2692         * dom/MessageEvent.cpp: Added.
2693         * dom/MessageEvent.h: Added.
2694         * dom/MessageEvent.idl: Added.
2695         * page/DOMWindow.cpp:
2696         (WebCore::DOMWindow::postMessage): Added.
2697         * page/DOMWindow.h:
2698         * page/DOMWindow.idl:
2699
2700 2007-12-31  Darin Adler  <darin@apple.com>
2701
2702         Suggested by Antti.
2703
2704         - turn ENABLE_VIDEO back off for Windows until we can install QuickTime on the build bots
2705
2706         * WebCore.vcproj/WebCore.vcproj: Removed ENABLE_VIDEO.
2707         * WebCore.vcproj/build-generated-files.sh: Ditto.
2708
2709 2007-12-30  Alp Toker  <alp@atoker.com>
2710
2711         Reviewed by Dan Bernstein.
2712
2713         Silence warning.
2714
2715         * dom/NodeList.h:
2716
2717 2007-12-30  Sam Weinig  <sam@webkit.org>
2718
2719         Reviewed by Oliver Hunt.
2720
2721         Fix for http://bugs.webkit.org/show_bug.cgi?id=16387
2722         Variable names can be enumerated across domains
2723         <rdar://problem/5640454>
2724
2725         Test: http/tests/security/cross-frame-access-enumeration.html
2726
2727         * bindings/js/kjs_window.cpp:
2728         (KJS::Window::getPropertyNames): Override method to test same-origin policy.
2729         * bindings/js/kjs_window.h:
2730
2731 2007-12-30  Sam Weinig  <sam@webkit.org>
2732
2733         Reviewed by Oliver Hunt.
2734
2735         Patch for http://bugs.webkit.org/show_bug.cgi?id=10686
2736         event instanceof MouseEvent throws exception
2737
2738         Add JS constructors for all the Event types.
2739
2740         Test: fast/events/event-instanceof.html
2741
2742         * WebCore.xcodeproj/project.pbxproj:
2743         * dom/KeyboardEvent.idl:
2744         * dom/MouseEvent.idl:
2745         * dom/MutationEvent.idl:
2746         * dom/OverflowEvent.idl:
2747         * dom/ProgressEvent.idl:
2748         * dom/TextEvent.idl:
2749         * dom/UIEvent.idl:
2750         * dom/WheelEvent.idl:
2751         * page/DOMWindow.idl:
2752
2753 2007-12-30  David Kilzer  <ddkilzer@webkit.org>
2754
2755         Reviewed by Darin.
2756
2757         - fix http://bugs.webkit.org/show_bug.cgi?id=15359
2758           JPEG image not shown when height is specified as percentage inside a table
2759
2760         The problem occurs when a replaced element (image, canvas, etc.) with
2761         a percent-height attribute is contained by a table cell with an auto-
2762         or percent-height attribute.  If there are no other conditions to cause
2763         the table cell's height to expand, an available height of zero will
2764         always be returned.  In these cases, the intrinsic height of the
2765         replaced element should be used if it is greater than the available
2766         height of the table cell.
2767
2768         Tests: fast/replaced/table-percent-height.html
2769                tables/mozilla/bugs/bug137388-1.html
2770                tables/mozilla/bugs/bug137388-2.html
2771
2772         * rendering/RenderBox.cpp:
2773         (WebCore::RenderBox::calcReplacedHeightUsing):
2774
2775 2007-12-30  Luca Bruno  <lethalman88@gmail.com>
2776
2777         Reviewed by Alp Toker.
2778
2779         http://bugs.webkit.org/show_bug.cgi?id=16099
2780         Crash in CURL for empty POST
2781
2782         We have to set POST even when the data is empty, otherwise cURL will
2783         hang while waiting for a response.
2784
2785         * platform/network/curl/ResourceHandleManager.cpp
2786         (ResourceHandleManager::setupPOST): allow empty POST
2787
2788 2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
2789
2790         Reviewed by Alp Toker.
2791
2792         Move all SVG related stuff inside SVG block. Don't include
2793         SVGNames, SVGElementFactory, and XLinkNames when SVG is not
2794         enabled
2795
2796         * GNUmakefile.am:
2797
2798 2007-12-29  Alexey Proskuryakov  <ap@webkit.org>
2799
2800         Reviewed by Darin.
2801
2802         http://bugs.webkit.org/show_bug.cgi?id=14428
2803         FCKEditor: Images disappear on drag/drop and copy/paste
2804
2805         Test: editing/pasteboard/drag-image-in-about-blank-frame.html
2806
2807         * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Don't use "about:blank" as a
2808         base URL, just like we don't use an empty one.
2809
2810 2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
2811
2812         Reviewed by Alp Toker.
2813
2814         http://bugs.webkit.org/show_bug.cgi?id=16669
2815         autotools update and fixes
2816
2817         Autotools update and database/icon database inclusion guard fixes
2818
2819         * GNUmakefile.am:
2820           - Update autotools config as per -r29012 changes
2821           - Fix CSSGrammar.h/cpp generation (Seo Sanghyeon, sanxiyn)
2822         * dom/Document.cpp:
2823         * loader/icon/IconDatabase.h:
2824         * page/DOMWindow.cpp:
2825         * page/InspectorController.cpp:
2826         * page/Settings.cpp:
2827         * storage/Database.h:
2828           - Remove ENABLE(DATABASE) inclusion guard. Let the includer add the guard instead.
2829
2830 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
2831
2832         Reviewed by Alexey.
2833
2834         Respect horiz-origin-x / horiz-origin-y / vert-origin-x / vert-origin-y properties when drawing SVG Fonts.
2835         (Fixes fonts-elem-05-t.svg in a --svg-fonts build)
2836
2837         * svg/SVGFont.cpp:
2838         (WebCore::Font::drawGlyphsWithSVGFont):
2839
2840 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
2841
2842         Reviewed by Oliver.
2843
2844         Further SVG Font work. Parse all <glyph> attributes, using SVGGlyphElement::buildGlyphIdentifier.
2845         SVGFontElement::collectGlyphs() now uses this method. Per character advance values work well now.
2846
2847         * platform/graphics/FontData.cpp:
2848         (WebCore::SVGFontData::convertEmUnitToPixel): Add helper function.
2849         (WebCore::FontData::ascent):
2850         (WebCore::FontData::descent):
2851         * platform/graphics/FontData.h:
2852         * svg/SVGFont.cpp:
2853         (WebCore::isVerticalWritingMode): Add helper function.
2854         (WebCore::Font::drawGlyphsWithSVGFont):
2855         * svg/SVGFontElement.cpp:
2856         (WebCore::SVGFontElement::collectGlyphs): Simplified implementation - SVGGlyphIdentifier now build by SVGGlyphElement.
2857         * svg/SVGGlyphElement.cpp:
2858         (WebCore::parseArabicForm): Helper function.
2859         (WebCore::parseOrientation): Ditto.
2860         (WebCore::parsePathData): Ditto.
2861         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
2862         * svg/SVGGlyphElement.h:
2863         (WebCore::SVGGlyphElement::rendererIsNeeded):
2864
2865 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
2866
2867         Reviewed by Oliver.
2868
2869         Refactor SVGAnimationElement::parseValues into a generic function parseDelimitedString.
2870         SVGAnimationElement needs to parse semicolon-seperated strings, SVGGlyphElement comma-seperated.
2871
2872         * svg/SVGAnimationElement.cpp:
2873         (WebCore::SVGAnimationElement::parseMappedAttribute):
2874         * svg/SVGParserUtilities.cpp:
2875         (WebCore::parseDelimitedString):
2876         * svg/SVGParserUtilities.h:
2877
2878 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
2879
2880         Reviewed by Maciej.
2881
2882         Add new helper structure SVGFontData - FontData holds this object as OwnPtr.
2883         Store several attribute values there (horiz-adv-x, horiz-origin-x etc..)
2884
2885         To optimize for the common case ('FontData' used for HTML rendering) it feels
2886         better to hold one OwnPtr in FontData, than several floats.
2887
2888         Parse all <font> attributes in SVGFontFaceElement::createFontData.
2889
2890         * platform/graphics/FontData.cpp:
2891         (WebCore::SVGFontData::SVGFontData):
2892         (WebCore::FontData::FontData):
2893         (WebCore::FontData::ascent):
2894         (WebCore::FontData::descent):
2895         * platform/graphics/FontData.h:
2896         (WebCore::FontData::isSVGFont):
2897         (WebCore::FontData::svgFontData):
2898         * svg/SVGFont.cpp:
2899         (WebCore::Font::drawGlyphsWithSVGFont):
2900         * svg/SVGFontElement.cpp:
2901         * svg/SVGFontElement.h:
2902         (WebCore::SVGFontElement::rendererIsNeeded):
2903         * svg/SVGFontFaceElement.cpp:
2904         (WebCore::SVGFontFaceElement::unitsPerEm):
2905         (WebCore::SVGFontFaceElement::createFontData):
2906
2907 2007-12-28  Darin Adler  <darin@apple.com>
2908
2909         - try to fix Windows and WX builds (broken by SVG Fonts check-in)
2910
2911         * platform/graphics/win/FontWin.cpp:
2912         (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent, now that it requires it.
2913         I can't see how it can be right to require the font size for ascent and descent,
2914         but not for other metrics functions in FontData.
2915
2916         * platform/graphics/wx/FontWx.cpp:
2917         (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent and FontData::descent.
2918
2919 2007-12-28  Dan Bernstein  <mitz@apple.com>
2920
2921         Reviewed by Mark Rowe.
2922
2923         - fix http://bugs.webkit.org/show_bug.cgi?id=16650
2924           <rdar://problem/5664872> REGRESSION (r28278-r28314): ATSUI uses LTR writing direction for all text runs
2925
2926         Covered by existing pixel tests.
2927
2928         * platform/graphics/mac/FontMac.mm:
2929         (WebCore::Font::drawComplexText): Corrected to maintain the style
2930         information in the adjusted text run when passing it to
2931         ATSUILayoutParameters. Prior to r28298 the style was passed separately.
2932
2933 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
2934
2935         Build fix, not reviewed.
2936
2937         Add wtf/OwnPtr.h include, to fix --svg-fonts build.
2938
2939         * css/SVGCSSFontFace.h:
2940
2941 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
2942
2943         Reviewed by Eric.
2944
2945         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)
2946
2947         Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
2948         Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
2949         are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).
2950
2951         Limited to single char <-> glyph mapping, no ligatures supported yet.
2952         (ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)
2953
2954         Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.
2955
2956         No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
2957         attributes are not processed yet, the rendering looks wrong - hence disabled by default.)
2958
2959         * DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
2960         * WebCore.pro: Updated build system.
2961         * WebCore.vcproj/WebCore.vcproj: Ditto.
2962         * WebCore.xcodeproj/project.pbxproj: Ditto.
2963         * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
2964         * bindings/objc/DOM.mm: Ditto (for DOMSVG*).
2965         (WebCore::createElementClassMap):
2966         * bindings/objc/DOMInternal.h: Ditto.
2967         * bindings/objc/DOMSVG.h: Ditto.
2968         * css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
2969         * css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
2970         (WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
2971         (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
2972         (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
2973         * css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
2974         (WebCore::CSSFontSelector::addFontFaceRule):
2975         * css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
2976         (WebCore::SVGCSSFontFace::SVGCSSFontFace):
2977         (WebCore::SVGCSSFontFace::~SVGCSSFontFace):
2978         (WebCore::SVGCSSFontFace::isValid):
2979         (WebCore::SVGCSSFontFace::addSource):
2980         (WebCore::SVGCSSFontFace::getFontData):
2981         * css/SVGCSSFontFace.h: Added.
2982         * platform/graphics/cg/PathCG.cpp:
2983         (WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
2984         * platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
2985         (WebCore::Font::ascent): Pass font size to FontData::ascent() call
2986         (WebCore::Font::descent): Pass font size to FontData::descent() call
2987         (WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
2988         (WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
2989         * platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
2990         (WebCore::TextRun::TextRun):
2991         (WebCore::TextRun::referencingRenderObject):
2992         (WebCore::TextRun::setReferencingRenderObject):
2993         * platform/graphics/FontData.cpp:
2994         (WebCore::FontData::FontData):
2995         (WebCore::FontData::ascent):
2996         (WebCore::FontData::descent):
2997         * platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
2998         (WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
2999         (WebCore::FontData::svgFontFace):
3000         * rendering/SVGInlineTextBox.cpp:
3001         (WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
3002         * rendering/SVGRootInlineBox.cpp:
3003         (WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
3004         * svg/SVGFont.cpp: Added.
3005         (WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
3006         * svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
3007         (WebCore::SVGFontElement::SVGFontElement):
3008         (WebCore::SVGFontElement::~SVGFontElement):
3009         (WebCore::SVGFontElement::parseMappedAttribute):
3010         (WebCore::SVGFontElement::collectGlyphs):
3011         (WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
3012         * svg/SVGFontElement.h: Added.
3013         (WebCore::GlyphHash::hash):
3014         (WebCore::GlyphHash::equal):
3015         (WebCore::GlyphHashTraits::deletedValue):
3016         (WebCore::SVGFontElement::rendererIsNeeded):
3017         (WebCore::SVGFontElement::contextElement):
3018         * svg/SVGFontElement.idl: Added.
3019         * svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
3020         (WebCore::SVGFontFaceElement::unitsPerEm):
3021         (WebCore::SVGFontFaceElement::fontFamily):
3022         (WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
3023         (WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
3024         (WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
3025         (WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
3026         * svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
3027         * svg/SVGFontFaceElement.idl: Ditto.
3028         * svg/SVGFontFaceFormatElement.cpp: Ditto.
3029         * svg/SVGFontFaceFormatElement.h: Ditto.
3030         * svg/SVGFontFaceFormatElement.idl: Ditto.
3031         * svg/SVGFontFaceNameElement.cpp: Ditto.
3032         * svg/SVGFontFaceNameElement.h: Ditto.
3033         * svg/SVGFontFaceNameElement.idl: Ditto.
3034         * svg/SVGFontFaceSrcElement.cpp: Ditto.
3035         * svg/SVGFontFaceSrcElement.h: Ditto.
3036         * svg/SVGFontFaceSrcElement.idl: Ditto.
3037         * svg/SVGFontFaceUriElement.cpp: Ditto.
3038         * svg/SVGFontFaceUriElement.h: Ditto.
3039         * svg/SVGFontFaceUriElement.idl: Ditto.
3040         * svg/SVGDefinitionSrcElement.cpp: Ditto.
3041         * svg/SVGDefinitionSrcElement.h: Ditto.
3042         * svg/SVGDefinitionSrcElement.idl: Ditto.
3043         * svg/SVGGlyphElement.cpp: Added.
3044         (WebCore::SVGGlyphElement::SVGGlyphElement):
3045         (WebCore::SVGGlyphElement::parseMappedAttribute):
3046         (WebCore::SVGGlyphElement::childrenChanged):
3047         * svg/SVGGlyphElement.h: Added.
3048         (WebCore::SVGGlyphElement::rendererIsNeeded):
3049         (WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
3050         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
3051         * svg/SVGGlyphElement.idl: Added.
3052         * svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
3053         (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
3054         (WebCore::SVGMissingGlyphElement::parseMappedAttribute):
3055         (WebCore::SVGMissingGlyphElement::childrenChanged):
3056         * svg/SVGMissingGlyphElement.h: Added.
3057         (WebCore::SVGMissingGlyphElement::rendererIsNeeded):
3058         * svg/SVGMissingGlyphElement.idl: Added.
3059         * svg/svgtags.in: Wrap all SVGFont* elements in ENABLE(SVG_FONTS) block - to assure --no-svg-fonts compilation works (which is the default for now!).
3060
3061 2007-12-27  Dan Bernstein  <mitz@apple.com>
3062
3063         Reviewed by Alexey Proskuryakov.
3064
3065         - fix http://bugs.webkit.org/show_bug.cgi?id=16628
3066           ASSERTION FAILED: m_resizeLayer (running layout tests)
3067
3068         * rendering/RenderLayer.cpp:
3069         (WebCore::RenderLayer::~RenderLayer): Avoid calling
3070         EventHandler::resizeLayerDestroyed() if the document is being destroyed.
3071
3072 2007-12-27  Dan Bernstein  <mitz@apple.com>
3073
3074         Reviewed by Oliver Hunt.
3075
3076         - fix http://bugs.webkit.org/show_bug.cgi?id=16603
3077           <rdar://problem/5664199> Crash when resizing text field
3078
3079         Test: fast/layers/resize-layer-deletion-crash.html
3080
3081         The event handler has only a weak reference to the layer that is
3082         currently in resize mode, so it is the layer's responsibility to let
3083         the event handler know if it has been destroyed while in that mode.
3084
3085         * page/EventHandler.cpp:
3086         (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
3087         m_resizeLayer to 0.
3088         * page/EventHandler.h:
3089         * rendering/RenderLayer.cpp:
3090         (WebCore::RenderLayer::~RenderLayer): Added a call to
3091         EventHandler::resizeLayerDestroyed() if the layer is in resize mode.
3092
3093 2007-12-27  Collin Jackson  <webkit@collinjackson.com>
3094
3095         Reviewed by Sam Weinig.
3096
3097         http://bugs.webkit.org/show_bug.cgi?id=16539
3098         <rdar://problem/5659269>
3099
3100         The same-origin check was missing in the implementation of 
3101         setTimeout, setInterval, addEventListener, and removeEventListener.
3102
3103         Suppose <http://www.badguy.com/> contains an iframe to 
3104         <http://www.goodguy.com/>. Now www.badguy.com can steal
3105         www.goodguy.com cookies by running this code:
3106
3107         setTimeout.call(frames[0], "alert(document.cookie)", 1000);
3108
3109         This patch changes the behavior so that setTimeout to does 
3110         nothing and returns an undefined value if the caller is not
3111         permitted to script the window whose setTimeout method is being
3112         called. The same applies to setInterval, addEventListener, and 
3113         removeEventListener.
3114
3115         Tests: http/tests/security/cross-frame-access-call.html
3116
3117         * bindings/js/kjs_window.cpp:
3118         (KJS::WindowProtoFuncSetTimeout::callAsFunction)
3119         (KJS::WindowProtoFuncSetInterval::callAsFunction)
3120         (KJS::WindowProtoFuncAddEventListener::callAsFunction)
3121         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction)
3122
3123 2007-12-27  Dan Bernstein  <mitz@apple.com>
3124
3125         Reviewed by Dave Hyatt and Sam Weinig.
3126
3127         - fix <rdar://problem/5605937> Inspector: Disclosure triangle not drawn in node's properties panel until click
3128
3129         Test: fast/layers/add-layer-with-nested-stacking.html
3130         Test: fast/layers/remove-layer-with-nested-stacking.html
3131
3132         * rendering/RenderLayer.cpp:
3133         (WebCore::RenderLayer::addChild): If the new child is overflow-only
3134         but has children of its own, dirty the stacking context's z-order lists
3135         since the grandchildren might need to be in them.
3136         (WebCore::RenderLayer::removeChild): Similarly for the old child.
3137
3138 2007-12-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
3139
3140         Reviewed by Alp Toker.
3141
3142         http://bugs.webkit.org/show_bug.cgi?id=16353
3143         [GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)
3144
3145         Added the flags mentioned in the bug only when doing 'debug'
3146         builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.
3147
3148         * GNUmakefile.am:
3149         * WebCore.pro:
3150
3151 2007-12-27  Dan Bernstein  <mitz@apple.com>
3152
3153         Reviewed by Eric Seidel.
3154
3155         - fix http://bugs.webkit.org/show_bug.cgi?id=16490
3156           ASSERT in ~FrameView while viewing/reloading WICD test case
3157
3158         Test: fast/dynamic/paused-event-dispatch.html
3159
3160         * page/FrameView.cpp:
3161         (WebCore::FrameView::~FrameView):
3162         (WebCore::FrameView::layout): Changed to always pause event dispatch and
3163         always resume event dispatch, regardless of whether the post-layout
3164         task timer is active. However, if it is active, assert that event
3165         dispatch is still paused.
3166
3167 2007-12-27  Alexey Proskuryakov  <ap@webkit.org>
3168
3169         Reviewed by Maciej.
3170
3171         http://bugs.webkit.org/show_bug.cgi?id=14500
3172         need to be more generous about charset declaration with meta tag
3173         
3174         http://bugs.webkit.org/show_bug.cgi?id=12526
3175         <rdar://problem/4867183> Safari ignores encoding description "charset=Shift_JIS" in invalid html
3176
3177         <rdar://problem/4892428> Unlike other browsers, WebKit ignores <meta> charset definitions outside the head
3178
3179         <rdar://problem/5643774> REGRESSION: Text is garbled when clicking a link inside an Arabic website
3180
3181         Tests: fast/encoding/ahram-org-eg.html
3182                fast/encoding/bandai-co-jp-releases.html
3183                fast/encoding/floraexpress-ru.html
3184                fast/encoding/hanarei-blog32-fc2-com.html
3185                fast/encoding/yahoo-mail.html
3186
3187         * loader/TextResourceDecoder.cpp:
3188         (WebCore::TextResourceDecoder::checkForHeadCharset): Don't stop looking for <meta> until we've
3189         seen at least 512 bytes of input.
3190
3191 2007-12-26  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
3192
3193         Reviewed by Alp Toker.
3194
3195         http://bugs.webkit.org/show_bug.cgi?id=16390
3196         Use autotools or GNU make as the build system for the GTK port
3197
3198         * GNUmakefile.am: Added.
3199
3200 2007-12-26  Alexey Proskuryakov  <ap@webkit.org>
3201
3202         Reviewed by Sam Weinig.
3203
3204         http://bugs.webkit.org/show_bug.cgi?id=16609
3205         Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic
3206
3207         * manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).
3208
3209 2007-12-26  Mark Rowe  <mrowe@apple.com>
3210
3211         Windows build fix.
3212
3213         * platform/Threading.h:
3214
3215 2007-12-25  Rob Buis  <buis@kde.org>
3216
3217         Reviewed by Eric.
3218
3219         http://bugs.webkit.org/show_bug.cgi?id=15514
3220         <clipPath> with <use> not respected
3221         http://bugs.webkit.org/show_bug.cgi?id=16557
3222         SVG circle elements have been clipped away completely, instead of partially.
3223
3224         Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.
3225
3226         * svg/SVGClipPathElement.cpp:
3227         (WebCore::SVGClipPathElement::canvasResource):
3228         * svg/SVGStyledTransformableElement.h:
3229         (WebCore::SVGStyledTransformableElement::toClipPath):
3230         * svg/SVGUseElement.cpp:
3231         (WebCore::isDirectReference):
3232         (WebCore::SVGUseElement::toClipPath):
3233         * svg/SVGUseElement.h:
3234
3235 2007-12-25  Sam Weinig  <sam@webkit.org>
3236
3237         Reviewed by Eric Seidel.
3238
3239         Clean up the files relating to NodeLists.
3240
3241         * dom/ChildNodeList.cpp:
3242         (WebCore::ChildNodeList::ChildNodeList):
3243         (WebCore::ChildNodeList::length):
3244         (WebCore::ChildNodeList::item):
3245         (WebCore::ChildNodeList::nodeMatches):
3246         * dom/ChildNodeList.h:
3247         * dom/DynamicNodeList.cpp:
3248         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
3249         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
3250         (WebCore::DynamicNodeList::itemWithName):
3251         * dom/DynamicNodeList.h:
3252         (WebCore::DynamicNodeList::needsNotifications):
3253         * dom/NameNodeList.cpp:
3254         (WebCore::NameNodeList::NameNodeList):
3255         (WebCore::NameNodeList::rootNodeAttributeChanged):
3256         (WebCore::NameNodeList::nodeMatches):
3257         * dom/NameNodeList.h:
3258         * dom/NodeList.h:
3259         * dom/SelectorNodeList.h:
3260
3261 2007-12-25  Sam Weinig  <sam@webkit.org>
3262
3263         Fix non-mac builds.
3264
3265         * WebCore.pro:
3266         * WebCore.vcproj/WebCore.vcproj:
3267         * WebCoreSources.bkl:
3268
3269 2007-12-25  Sam Weinig  <sam@webkit.org>
3270
3271         Rubber stamped by Eric Seidel.
3272
3273         Move TagNodeList into its own file.
3274
3275         * WebCore.xcodeproj/project.pbxproj:
3276         * dom/Node.cpp:
3277         * dom/TagNodeList.cpp: Copied from dom/Node.cpp.
3278         (WebCore::TagNodeList::TagNodeList):
3279         * dom/TagNodeList.h: Copied from dom/Node.cpp.
3280
3281 2007-12-25  Sam Weinig  <sam@webkit.org>
3282
3283         Reviewed by Eric Seidel.
3284
3285         Simplify the NodeList architecture.
3286         - Rename recursiveItem() to item(), since it is not recursive.
3287         - Make recursiveLength() iterative and rename to length().
3288         - Remove now unneeded overrides of item() and length() that used 
3289           to call the recursive variants.
3290
3291         * dom/ClassNodeList.cpp:
3292         * dom/ClassNodeList.h:
3293         * dom/DynamicNodeList.cpp:
3294         (WebCore::DynamicNodeList::length):
3295         (WebCore::DynamicNodeList::item):
3296         (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation 
3297         into the .cpp file since virtual methods can't be inlined.
3298         * dom/DynamicNodeList.h:
3299         * dom/NameNodeList.cpp:
3300         * dom/NameNodeList.h:
3301         * dom/Node.cpp:
3302
3303 2007-12-25  Alp Toker  <alp@atoker.com>
3304
3305         More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
3306         r28981.
3307
3308         * WebCore.pro:
3309         * WebCore.vcproj/WebCore.vcproj:
3310         * WebCoreSources.bkl:
3311
3312 2007-12-25  Alp Toker  <alp@atoker.com>
3313
3314         Win build fix for breakage introduced in r28981.
3315
3316         * WebCore.vcproj/WebCore.vcproj:
3317
3318 2007-12-25  Alp Toker  <alp@atoker.com>
3319
3320         Wx build fix for breakage introduced in r28981.
3321
3322         * WebCoreSources.bkl:
3323
3324 2007-12-25  Alp Toker  <alp@atoker.com>
3325
3326         GTK+/Qt build fix for breakage introduced in r28981.
3327
3328         * WebCore.pro:
3329
3330 2007-12-25  David Smith  <catfish.man@gmail.com> and Sam Weinig  <sam@webkit.org>
3331
3332         Reviewed by Oliver.
3333         
3334         - http://bugs.webkit.org/show_bug.cgi?id=16587
3335         Implement the most useful part of the W3C Selectors API.
3336
3337         * WebCore.xcodeproj/project.pbxproj:
3338         * css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
3339         * dom/ChildNodeList.cpp:
3340         (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
3341         * dom/ChildNodeList.h:
3342         * dom/ClassNodeList.cpp:
3343         (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
3344         * dom/ClassNodeList.h:
3345         * dom/Document.idl: Add the new functions
3346         * dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
3347         (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
3348         (WebCore::DynamicNodeList::~DynamicNodeList):
3349         (WebCore::DynamicNodeList::recursiveLength):
3350         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
3351         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
3352         (WebCore::DynamicNodeList::recursiveItem):
3353         (WebCore::DynamicNodeList::itemWithName):
3354         (WebCore::DynamicNodeList::rootNodeChildrenChanged):
3355         (WebCore::DynamicNodeList::Caches::Caches):
3356         (WebCore::DynamicNodeList::Caches::reset):
3357         * dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
3358         (WebCore::DynamicNodeList::rootNodeAttributeChanged):
3359         * dom/Element.idl: Add the new functions
3360         * dom/NameNodeList.cpp: Change to being a DynamicNodeList
3361         (WebCore::NameNodeList::NameNodeList):
3362         * dom/NameNodeList.h:
3363         (WebCore::NameNodeList::rootNodeAttributeChanged):
3364         * dom/Node.cpp:
3365         (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
3366         (WebCore::Node::registerDynamicNodeList):
3367         (WebCore::Node::unregisterDynamicNodeList):
3368         (WebCore::Node::getElementsByName):
3369         (WebCore::Node::getElementsByClassName):
3370         (WebCore::Node::querySelector): new
3371         (WebCore::Node::querySelectorAll): new
3372         * dom/Node.h:
3373         * dom/NodeList.cpp: Removed.
3374         * dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
3375         (WebCore::NodeList::NodeList):
3376         (WebCore::NodeList::~NodeList):
3377         * dom/SelectorNodeList.cpp: Added.
3378         (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
3379         * dom/SelectorNodeList.h: Added.
3380         * dom/StaticNodeList.cpp: Added.
3381         (WebCore::StaticNodeList::length):
3382         (WebCore::StaticNodeList::item):
3383         (WebCore::StaticNodeList::itemWithName):
3384         * dom/StaticNodeList.h: Added.
3385         (WebCore::StaticNodeList::StaticNodeList):
3386         (WebCore::StaticNodeList::~StaticNodeList):
3387
3388 2007-12-25  Mark Rowe  <mrowe@apple.com>
3389
3390         Reviewed by Sam Weinig.
3391
3392         Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
3393         http://bugs.webkit.org/show_bug.cgi?id=16596
3394
3395         This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
3396         of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
3397         access to a single ThreadSafeShared object.
3398
3399         The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.
3400
3401         * platform/Threading.h:
3402         (WebCore::atomicIncrement):
3403         (WebCore::atomicDecrement):
3404         (WebCore::ThreadSafeShared::ThreadSafeShared):
3405         (WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
3406         (WebCore::ThreadSafeShared::deref): Ditto.
3407         (WebCore::ThreadSafeShared::hasOneRef):
3408         (WebCore::ThreadSafeShared::refCount):
3409         (WebCore::ThreadSafeShared::isThreadSafe):
3410
3411 2007-12-24  Darin Adler  <darin@apple.com>
3412
3413         * platform/text/PlatformString.h: Removed now-incorrect comment.
3414         Added a comment about copy().
3415         * platform/text/StringImpl.h: Added a comment about copy().
3416
3417 2007-12-24  Darin Adler  <darin@apple.com>
3418
3419         Reviewed by Maciej.
3420
3421         - http://bugs.webkit.org/show_bug.cgi?id=16550
3422           make StringImpl immutable
3423
3424         I tried to keep the changes to a minimum. In some cases there is
3425         room for optimization -- I didn't try to add in the "single ref count"
3426         optimizations and there might be a tiny bit more string copying than
3427         we had before.
3428
3429         * WebCore.base.exp: Updated.
3430
3431         * dom/CharacterData.cpp:
3432         (WebCore::CharacterData::appendData): Changed to use String since
3433         StringImpl doesn't have mutating functions any more.
3434         (WebCore::CharacterData::insertData): Ditto.
3435         (WebCore::CharacterData::deleteData): Ditto.
3436         (WebCore::CharacterData::replaceData): Ditto.
3437         * dom/Text.cpp:
3438         (WebCore::Text::splitText): Changed to use substring instead of
3439         remove since StringImpl does't have mutating functions any more.
3440         * editing/CompositeEditCommand.cpp:
3441         (WebCore::CompositeEditCommand::deleteInsignificantText): Changed
3442         to use String instead of StringImpl so we can use remove.
3443
3444         * platform/text/PlatformString.h: Removed newUninitialized.
3445         Added append that takes a character pointer and length.
3446
3447         * platform/text/String.cpp:
3448         (WebCore::String::insert): Added an implementation that does not
3449         rely on an underlying StringImpl function.
3450         (WebCore::String::append): Ditto.
3451         (WebCore::String::truncate): Ditto.
3452         (WebCore::String::remove): Ditto.
3453         (WebCore::String::charactersWithNullTermination): Added an
3454         implementation that uses the new StringImpl null termination feature,
3455         which does not require modifying a string.
3456
3457         * platform/text/StringImpl.cpp:
3458         (WebCore::isSpace): Fix comment.
3459         (WebCore::StringImpl::StringImpl): Added a new constructor that makes
3460         a string with a trailing null character.
3461         (WebCore::StringImpl::substring): Marked const.
3462         (WebCore::StringImpl::replace): Marked const; had to add quite a few
3463         const_cast. Also rewrote one of these to work without modifying the
3464         existing string.
3465
3466         * platform/text/StringImpl.h: Fixed a mistake where the empty string had
3467         m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
3468         for creating strings that have a trailing null character. Added a
3469         hasTerminatingNullCharacter function. Removed newUninitialized,
3470         charactersWithNullTermination, append, insert, truncate, and remove.
3471         Marked lots of other functions const.
3472
3473         * platform/text/TextCodecLatin1.cpp:
3474         (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
3475         newUninitialized.
3476         * platform/text/TextCodecUTF16.cpp:
3477         (WebCore::TextCodecUTF16::decode): Ditto.
3478         * platform/text/TextCodecUserDefined.cpp:
3479         (WebCore::TextCodecUserDefined::decode): Ditto.
3480
3481         * rendering/RenderStyle.cpp:
3482         (WebCore::RenderStyle::setContent): Changed to use String since
3483         StringImpl doesn't have mutating functions any more.
3484
3485 2007-12-24  Alexey Proskuryakov  <ap@webkit.org>
3486
3487         Reviewed by Oliver.
3488
3489         Fix fast/events/arrow-keys-on-body.html, failing on Windows.
3490
3491         * platform/win/KeyEventWin.cpp:
3492         (WebCore::isKeypadEvent):
3493         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3494         Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).
3495
3496 2007-12-23  Alexey Proskuryakov  <ap@webkit.org>
3497
3498         Fix Debug and Release QTMovieWin bulds.
3499
3500         * WebCore.vcproj/QTMovieWin.vcproj:
3501         * WebCore.vcproj/debug.vsprops:
3502         * WebCore.vcproj/debug_internal.vsprops:
3503         * WebCore.vcproj/release.vsprops:
3504         Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
3505         Build release import lib into \lib, not \bin.
3506
3507 2007-12-23  Alp Toker  <alp@atoker.com>
3508
3509         Reviewed by Holger Freyther.
3510
3511         http://bugs.webkit.org/show_bug.cgi?id=15382
3512         [CAIRO] Canvas pattern support
3513
3514         http://bugs.webkit.org/show_bug.cgi?id=16577
3515         Merge Cairo enhancements from Apollo project
3516
3517         Add support for canvas patterns.
3518
3519         Make Image::nativeImageForCurrentFrame() public.
3520
3521         Fix some typos along the way.
3522
3523         The globalAlpha canvas fixes are not included in this patch as
3524         they're slightly more intrusive and may conflict conceptually with
3525         GraphicsContext::setAlpha().
3526
3527         * html/CanvasPattern.cpp:
3528         (WebCore::CanvasPattern::CanvasPattern):
3529         (WebCore::CanvasPattern::~CanvasPattern):
3530         (WebCore::CanvasPattern::createPattern):
3531         * html/CanvasPattern.h:
3532         (WebCore::CanvasPattern::platformImage):
3533         * html/CanvasRenderingContext2D.cpp:
3534         (WebCore::CanvasRenderingContext2D::setShadow):
3535         (WebCore::CanvasRenderingContext2D::applyShadow):
3536         (WebCore::CanvasRenderingContext2D::drawImage):
3537         (WebCore::CanvasRenderingContext2D::createPattern):
3538         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
3539         (WebCore::CanvasRenderingContext2D::applyFillPattern):
3540         * platform/graphics/Image.h:
3541         (WebCore::Image::nativeImageForCurrentFrame):
3542
3543 2007-12-23  Kevin Ollivier  <kevino@theolliviers.com>
3544
3545         Reviewed by Eric Seidel.
3546
3547         Remove getWxBitmap as we have nativeImageForCurrentFrame now,
3548         and don't draw a border in fillRect.
3549
3550         * platform/graphics/BitmapImage.h:
3551         * platform/graphics/wx/GraphicsContextWx.cpp:
3552         (WebCore::GraphicsContext::fillRect):
3553         * platform/graphics/wx/ImageWx.cpp:
3554
3555 2007-12-23  Alp Toker  <alp@atoker.com>
3556
3557         Reviewed by Holger Freyther.
3558
3559         http://bugs.webkit.org/show_bug.cgi?id=16577
3560         Merge Cairo enhancements from Apollo project
3561
3562         This patch is based on initial merging work by Brent Fulgham. Adobe's
3563         code has been modified in a few places to better suit the existing
3564         coding style.
3565
3566         Implement more clipping and drawing functions.
3567
3568         Save and restore the fill rule manually when clipping.
3569
3570         Avoid image surface creation when the image buffer has height zero.
3571
3572         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3573         (WebCore::GraphicsContext::clip):
3574         (WebCore::GraphicsContext::addInnerRoundedRectClip):
3575         (WebCore::GraphicsContext::addPath):
3576         (WebCore::GraphicsContext::clipOut):
3577