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