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