ffff3a8105a20381d42efd1139daca120027f4d6
[WebKit.git] / WebCore / ChangeLog
1 2007-12-26  Alexey Proskuryakov  <ap@webkit.org>
2
3         Reviewed by Sam Weinig.
4
5         http://bugs.webkit.org/show_bug.cgi?id=16609
6         Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic
7
8         * manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).
9
10 2007-12-26  Mark Rowe  <mrowe@apple.com>
11
12         Windows build fix.
13
14         * platform/Threading.h:
15
16 2007-12-25  Rob Buis  <buis@kde.org>
17
18         Reviewed by Eric.
19
20         http://bugs.webkit.org/show_bug.cgi?id=15514
21         <clipPath> with <use> not respected
22         http://bugs.webkit.org/show_bug.cgi?id=16557
23         SVG circle elements have been clipped away completely, instead of partially.
24
25         Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.
26
27         * svg/SVGClipPathElement.cpp:
28         (WebCore::SVGClipPathElement::canvasResource):
29         * svg/SVGStyledTransformableElement.h:
30         (WebCore::SVGStyledTransformableElement::toClipPath):
31         * svg/SVGUseElement.cpp:
32         (WebCore::isDirectReference):
33         (WebCore::SVGUseElement::toClipPath):
34         * svg/SVGUseElement.h:
35
36 2007-12-25  Sam Weinig  <sam@webkit.org>
37
38         Reviewed by Eric Seidel.
39
40         Clean up the files relating to NodeLists.
41
42         * dom/ChildNodeList.cpp:
43         (WebCore::ChildNodeList::ChildNodeList):
44         (WebCore::ChildNodeList::length):
45         (WebCore::ChildNodeList::item):
46         (WebCore::ChildNodeList::nodeMatches):
47         * dom/ChildNodeList.h:
48         * dom/DynamicNodeList.cpp:
49         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
50         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
51         (WebCore::DynamicNodeList::itemWithName):
52         * dom/DynamicNodeList.h:
53         (WebCore::DynamicNodeList::needsNotifications):
54         * dom/NameNodeList.cpp:
55         (WebCore::NameNodeList::NameNodeList):
56         (WebCore::NameNodeList::rootNodeAttributeChanged):
57         (WebCore::NameNodeList::nodeMatches):
58         * dom/NameNodeList.h:
59         * dom/NodeList.h:
60         * dom/SelectorNodeList.h:
61
62 2007-12-25  Sam Weinig  <sam@webkit.org>
63
64         Fix non-mac builds.
65
66         * WebCore.pro:
67         * WebCore.vcproj/WebCore.vcproj:
68         * WebCoreSources.bkl:
69
70 2007-12-25  Sam Weinig  <sam@webkit.org>
71
72         Rubber stamped by Eric Seidel.
73
74         Move TagNodeList into its own file.
75
76         * WebCore.xcodeproj/project.pbxproj:
77         * dom/Node.cpp:
78         * dom/TagNodeList.cpp: Copied from dom/Node.cpp.
79         (WebCore::TagNodeList::TagNodeList):
80         * dom/TagNodeList.h: Copied from dom/Node.cpp.
81
82 2007-12-25  Sam Weinig  <sam@webkit.org>
83
84         Reviewed by Eric Seidel.
85
86         Simplify the NodeList architecture.
87         - Rename recursiveItem() to item(), since it is not recursive.
88         - Make recursiveLength() iterative and rename to length().
89         - Remove now unneeded overrides of item() and length() that used 
90           to call the recursive variants.
91
92         * dom/ClassNodeList.cpp:
93         * dom/ClassNodeList.h:
94         * dom/DynamicNodeList.cpp:
95         (WebCore::DynamicNodeList::length):
96         (WebCore::DynamicNodeList::item):
97         (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation 
98         into the .cpp file since virtual methods can't be inlined.
99         * dom/DynamicNodeList.h:
100         * dom/NameNodeList.cpp:
101         * dom/NameNodeList.h:
102         * dom/Node.cpp:
103
104 2007-12-25  Alp Toker  <alp@atoker.com>
105
106         More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
107         r28981.
108
109         * WebCore.pro:
110         * WebCore.vcproj/WebCore.vcproj:
111         * WebCoreSources.bkl:
112
113 2007-12-25  Alp Toker  <alp@atoker.com>
114
115         Win build fix for breakage introduced in r28981.
116
117         * WebCore.vcproj/WebCore.vcproj:
118
119 2007-12-25  Alp Toker  <alp@atoker.com>
120
121         Wx build fix for breakage introduced in r28981.
122
123         * WebCoreSources.bkl:
124
125 2007-12-25  Alp Toker  <alp@atoker.com>
126
127         GTK+/Qt build fix for breakage introduced in r28981.
128
129         * WebCore.pro:
130
131 2007-12-25  David Smith  <catfish.man@gmail.com> and Sam Weinig  <sam@webkit.org>
132
133         Reviewed by Oliver.
134         
135         - http://bugs.webkit.org/show_bug.cgi?id=16587
136         Implement the most useful part of the W3C Selectors API.
137
138         * WebCore.xcodeproj/project.pbxproj:
139         * css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
140         * dom/ChildNodeList.cpp:
141         (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
142         * dom/ChildNodeList.h:
143         * dom/ClassNodeList.cpp:
144         (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
145         * dom/ClassNodeList.h:
146         * dom/Document.idl: Add the new functions
147         * dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
148         (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
149         (WebCore::DynamicNodeList::~DynamicNodeList):
150         (WebCore::DynamicNodeList::recursiveLength):
151         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
152         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
153         (WebCore::DynamicNodeList::recursiveItem):
154         (WebCore::DynamicNodeList::itemWithName):
155         (WebCore::DynamicNodeList::rootNodeChildrenChanged):
156         (WebCore::DynamicNodeList::Caches::Caches):
157         (WebCore::DynamicNodeList::Caches::reset):
158         * dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
159         (WebCore::DynamicNodeList::rootNodeAttributeChanged):
160         * dom/Element.idl: Add the new functions
161         * dom/NameNodeList.cpp: Change to being a DynamicNodeList
162         (WebCore::NameNodeList::NameNodeList):
163         * dom/NameNodeList.h:
164         (WebCore::NameNodeList::rootNodeAttributeChanged):
165         * dom/Node.cpp:
166         (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
167         (WebCore::Node::registerDynamicNodeList):
168         (WebCore::Node::unregisterDynamicNodeList):
169         (WebCore::Node::getElementsByName):
170         (WebCore::Node::getElementsByClassName):
171         (WebCore::Node::querySelector): new
172         (WebCore::Node::querySelectorAll): new
173         * dom/Node.h:
174         * dom/NodeList.cpp: Removed.
175         * dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
176         (WebCore::NodeList::NodeList):
177         (WebCore::NodeList::~NodeList):
178         * dom/SelectorNodeList.cpp: Added.
179         (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
180         * dom/SelectorNodeList.h: Added.
181         * dom/StaticNodeList.cpp: Added.
182         (WebCore::StaticNodeList::length):
183         (WebCore::StaticNodeList::item):
184         (WebCore::StaticNodeList::itemWithName):
185         * dom/StaticNodeList.h: Added.
186         (WebCore::StaticNodeList::StaticNodeList):
187         (WebCore::StaticNodeList::~StaticNodeList):
188
189 2007-12-25  Mark Rowe  <mrowe@apple.com>
190
191         Reviewed by Sam Weinig.
192
193         Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
194         http://bugs.webkit.org/show_bug.cgi?id=16596
195
196         This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
197         of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
198         access to a single ThreadSafeShared object.
199
200         The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.
201
202         * platform/Threading.h:
203         (WebCore::atomicIncrement):
204         (WebCore::atomicDecrement):
205         (WebCore::ThreadSafeShared::ThreadSafeShared):
206         (WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
207         (WebCore::ThreadSafeShared::deref): Ditto.
208         (WebCore::ThreadSafeShared::hasOneRef):
209         (WebCore::ThreadSafeShared::refCount):
210         (WebCore::ThreadSafeShared::isThreadSafe):
211
212 2007-12-24  Darin Adler  <darin@apple.com>
213
214         * platform/text/PlatformString.h: Removed now-incorrect comment.
215         Added a comment about copy().
216         * platform/text/StringImpl.h: Added a comment about copy().
217
218 2007-12-24  Darin Adler  <darin@apple.com>
219
220         Reviewed by Maciej.
221
222         - http://bugs.webkit.org/show_bug.cgi?id=16550
223           make StringImpl immutable
224
225         I tried to keep the changes to a minimum. In some cases there is
226         room for optimization -- I didn't try to add in the "single ref count"
227         optimizations and there might be a tiny bit more string copying than
228         we had before.
229
230         * WebCore.base.exp: Updated.
231
232         * dom/CharacterData.cpp:
233         (WebCore::CharacterData::appendData): Changed to use String since
234         StringImpl doesn't have mutating functions any more.
235         (WebCore::CharacterData::insertData): Ditto.
236         (WebCore::CharacterData::deleteData): Ditto.
237         (WebCore::CharacterData::replaceData): Ditto.
238         * dom/Text.cpp:
239         (WebCore::Text::splitText): Changed to use substring instead of
240         remove since StringImpl does't have mutating functions any more.
241         * editing/CompositeEditCommand.cpp:
242         (WebCore::CompositeEditCommand::deleteInsignificantText): Changed
243         to use String instead of StringImpl so we can use remove.
244
245         * platform/text/PlatformString.h: Removed newUninitialized.
246         Added append that takes a character pointer and length.
247
248         * platform/text/String.cpp:
249         (WebCore::String::insert): Added an implementation that does not
250         rely on an underlying StringImpl function.
251         (WebCore::String::append): Ditto.
252         (WebCore::String::truncate): Ditto.
253         (WebCore::String::remove): Ditto.
254         (WebCore::String::charactersWithNullTermination): Added an
255         implementation that uses the new StringImpl null termination feature,
256         which does not require modifying a string.
257
258         * platform/text/StringImpl.cpp:
259         (WebCore::isSpace): Fix comment.
260         (WebCore::StringImpl::StringImpl): Added a new constructor that makes
261         a string with a trailing null character.
262         (WebCore::StringImpl::substring): Marked const.
263         (WebCore::StringImpl::replace): Marked const; had to add quite a few
264         const_cast. Also rewrote one of these to work without modifying the
265         existing string.
266
267         * platform/text/StringImpl.h: Fixed a mistake where the empty string had
268         m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
269         for creating strings that have a trailing null character. Added a
270         hasTerminatingNullCharacter function. Removed newUninitialized,
271         charactersWithNullTermination, append, insert, truncate, and remove.
272         Marked lots of other functions const.
273
274         * platform/text/TextCodecLatin1.cpp:
275         (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
276         newUninitialized.
277         * platform/text/TextCodecUTF16.cpp:
278         (WebCore::TextCodecUTF16::decode): Ditto.
279         * platform/text/TextCodecUserDefined.cpp:
280         (WebCore::TextCodecUserDefined::decode): Ditto.
281
282         * rendering/RenderStyle.cpp:
283         (WebCore::RenderStyle::setContent): Changed to use String since
284         StringImpl doesn't have mutating functions any more.
285
286 2007-12-24  Alexey Proskuryakov  <ap@webkit.org>
287
288         Reviewed by Oliver.
289
290         Fix fast/events/arrow-keys-on-body.html, failing on Windows.
291
292         * platform/win/KeyEventWin.cpp:
293         (WebCore::isKeypadEvent):
294         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
295         Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).
296
297 2007-12-23  Alexey Proskuryakov  <ap@webkit.org>
298
299         Fix Debug and Release QTMovieWin bulds.
300
301         * WebCore.vcproj/QTMovieWin.vcproj:
302         * WebCore.vcproj/debug.vsprops:
303         * WebCore.vcproj/debug_internal.vsprops:
304         * WebCore.vcproj/release.vsprops:
305         Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
306         Build release import lib into \lib, not \bin.
307
308 2007-12-23  Alp Toker  <alp@atoker.com>
309
310         Reviewed by Holger Freyther.
311
312         http://bugs.webkit.org/show_bug.cgi?id=15382
313         [CAIRO] Canvas pattern support
314
315         http://bugs.webkit.org/show_bug.cgi?id=16577
316         Merge Cairo enhancements from Apollo project
317
318         Add support for canvas patterns.
319
320         Make Image::nativeImageForCurrentFrame() public.
321
322         Fix some typos along the way.
323
324         The globalAlpha canvas fixes are not included in this patch as
325         they're slightly more intrusive and may conflict conceptually with
326         GraphicsContext::setAlpha().
327
328         * html/CanvasPattern.cpp:
329         (WebCore::CanvasPattern::CanvasPattern):
330         (WebCore::CanvasPattern::~CanvasPattern):
331         (WebCore::CanvasPattern::createPattern):
332         * html/CanvasPattern.h:
333         (WebCore::CanvasPattern::platformImage):
334         * html/CanvasRenderingContext2D.cpp:
335         (WebCore::CanvasRenderingContext2D::setShadow):
336         (WebCore::CanvasRenderingContext2D::applyShadow):
337         (WebCore::CanvasRenderingContext2D::drawImage):
338         (WebCore::CanvasRenderingContext2D::createPattern):
339         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
340         (WebCore::CanvasRenderingContext2D::applyFillPattern):
341         * platform/graphics/Image.h:
342         (WebCore::Image::nativeImageForCurrentFrame):
343
344 2007-12-23  Kevin Ollivier  <kevino@theolliviers.com>
345
346         Reviewed by Eric Seidel.
347
348         Remove getWxBitmap as we have nativeImageForCurrentFrame now,
349         and don't draw a border in fillRect.
350
351         * platform/graphics/BitmapImage.h:
352         * platform/graphics/wx/GraphicsContextWx.cpp:
353         (WebCore::GraphicsContext::fillRect):
354         * platform/graphics/wx/ImageWx.cpp:
355
356 2007-12-23  Alp Toker  <alp@atoker.com>
357
358         Reviewed by Holger Freyther.
359
360         http://bugs.webkit.org/show_bug.cgi?id=16577
361         Merge Cairo enhancements from Apollo project
362
363         This patch is based on initial merging work by Brent Fulgham. Adobe's
364         code has been modified in a few places to better suit the existing
365         coding style.
366
367         Implement more clipping and drawing functions.
368
369         Save and restore the fill rule manually when clipping.
370
371         Avoid image surface creation when the image buffer has height zero.
372
373         * platform/graphics/cairo/GraphicsContextCairo.cpp:
374         (WebCore::GraphicsContext::clip):
375         (WebCore::GraphicsContext::addInnerRoundedRectClip):
376         (WebCore::GraphicsContext::addPath):
377         (WebCore::GraphicsContext::clipOut):
378         (WebCore::GraphicsContext::clipOutEllipseInRect):
379         (WebCore::GraphicsContext::fillRoundedRect):
380         * platform/graphics/cairo/ImageSourceCairo.cpp:
381         (WebCore::ImageSource::createFrameAtIndex):
382
383 2007-12-23  Nikolas Zimmermann  <zimmermann@kde.org>
384
385         Reviewed by Mark.
386
387         Fix wrong placed ifdef - wrapping SVGDefsElement, instead of SVGDefinitionSrcElement in SVG_FONTS block.
388
389         * bindings/objc/DOM.mm:
390         (WebCore::createElementClassMap):
391
392 2007-12-22  Alp Toker  <alp@atoker.com>
393
394         GTK+ build fix
395
396         GTK_TARGET_OTHER_APP is not available in older GTK+ versions. Pass
397         empty target flags for now.
398
399         Check GTK+, not GLib versions, since they are different.
400
401         * platform/gtk/PasteboardGtk.cpp:
402         (WebCore::Pasteboard::documentFragment):
403
404 2007-12-22  Luca Bruno  <lethalman88@gmail.com>
405
406         Reviewed by Alp Toker.
407
408         http://bugs.webkit.org/show_bug.cgi?id=16311
409         [Gtk] Copy rich text to clipboard as text/plain and text/html.
410
411         Hook into the WebView to get the correct clipboard object on the
412         appropriate display. This is necessary because GTK+ does not have
413         global clipboards.
414
415         * WebCore.pro:
416         * platform/Pasteboard.h:
417         (WebCore::Pasteboard::setHelper): added for GTK
418         (WebCore::Pasteboard::m_helper): private added for GTK
419         * platform/gtk/PasteboardGtk.cpp:
420         (WebCore::PasteboardSelectionData): added to support GTK selection data callback
421         (WebCore::clipboard_get_contents_cb): added
422         (WebCore::clipboard_clear_contents_cb): added
423         (WebCore::Pasteboard::~Pasteboard):
424         (WebCore::Pasteboard::setHelper):
425         (WebCore::Pasteboard::writeSelection): copy rich text
426         (WebCore::Pasteboard::documentFragment): 
427         (WebCore::Pasteboard::plainText): 
428         * platform/gtk/PasteboardHelper.h: Added.
429
430 2007-12-22  Nikolas Zimmermann  <zimmermann@kde.org>
431
432         Reviewed by Oliver.
433
434         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15966 (Crash in SVGRootInlineBox::walkTextChunks() on mouse hover)
435
436         Add new isSVGRootInlineBox() function to InlineBox to be able to differentiate between RootInlineBox/SVGRootInlineBox.
437         SVG assumed it's root inline box (for <text> elements) is always of type SVGRootInlineBox, which is not the case
438         for HTML text in <foreignObject>. Text selection doesn't work so far as line box offsets are wrong - which is visible
439         in Web Inspector.
440
441         * rendering/InlineBox.h:
442         (WebCore::InlineBox::isSVGRootInlineBox):
443         * rendering/SVGInlineTextBox.cpp:
444         (WebCore::SVGInlineTextBox::svgRootInlineBox):
445         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
446         (WebCore::SVGInlineTextBox::selectionRect):
447         * rendering/SVGRenderTreeAsText.cpp:
448         (WebCore::writeSVGInlineTextBox):
449         * rendering/SVGRootInlineBox.h:
450         (WebCore::SVGRootInlineBox::isSVGRootInlineBox):
451
452 2007-12-22  Alp Toker  <alp@atoker.com>
453
454         LOW_BANDWIDTH_DISPLAY build fix
455
456         Track recent KURL DeprecatedString changes.
457
458         * loader/FrameLoader.cpp:
459         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
460
461 2007-12-22  Dan Bernstein  <mitz@apple.com>
462
463         - Windows build fix
464
465         * WebCore.vcproj/WebCore.vcproj:
466
467 2007-12-22  Xan Lopez  <xan@gnome.org>
468
469         Reviewed by Alp Toker.
470
471         Add missing return 0 to fix a compile warning.
472
473         * page/gtk/FrameGtk.cpp:
474         (WebCore::Frame::createScriptInstanceForWidget):
475
476 2007-12-21  Antti Koivisto  <antti@apple.com>
477
478         Reviewed by Darin, Adam and Steve.
479
480         Add media playback support for Windows.
481         
482         The implementation uses low level QuickTime API. DLL is
483         needed to work around CF use in both WebKit and QuickTime.
484         
485         This makes Windows build depend on the QuickTime SDK 
486         
487         http://developer.apple.com/quicktime/download/
488         
489         but not QuickTime itself.
490         
491         QTMovieWinTimer contains some copy code from SharedTimerWin. It
492         is used in the QuickTime access DLL which can't use WebCore
493         SharedTimer due to dependency problems.
494
495         * WebCore.vcproj/QTMovieWin.vcproj: Added.
496         * WebCore.vcproj/WebCore.vcproj:
497         * WebCore.vcproj/build-generated-files.sh:
498         * html/HTMLMediaElement.cpp:
499         (WebCore::HTMLMediaElement::setSrc):
500         * platform/graphics/MediaPlayer.cpp:
501         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: Added.
502         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
503         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
504         (WebCore::MediaPlayerPrivate::load):
505         (WebCore::MediaPlayerPrivate::play):
506         (WebCore::MediaPlayerPrivate::pause):
507         (WebCore::MediaPlayerPrivate::duration):
508         (WebCore::MediaPlayerPrivate::currentTime):
509         (WebCore::MediaPlayerPrivate::seek):
510         (WebCore::MediaPlayerPrivate::doSeek):
511         (WebCore::MediaPlayerPrivate::cancelSeek):
512         (WebCore::MediaPlayerPrivate::seekTimerFired):
513         (WebCore::MediaPlayerPrivate::setEndTime):
514         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
515         (WebCore::MediaPlayerPrivate::endPointTimerFired):
516         (WebCore::MediaPlayerPrivate::paused):
517         (WebCore::MediaPlayerPrivate::seeking):
518         (WebCore::MediaPlayerPrivate::naturalSize):
519         (WebCore::MediaPlayerPrivate::hasVideo):
520         (WebCore::MediaPlayerPrivate::setVolume):
521         (WebCore::MediaPlayerPrivate::setMuted):
522         (WebCore::MediaPlayerPrivate::setRate):
523         (WebCore::MediaPlayerPrivate::dataRate):
524         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
525         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
526         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
527         (WebCore::MediaPlayerPrivate::bytesLoaded):
528         (WebCore::MediaPlayerPrivate::totalBytesKnown):
529         (WebCore::MediaPlayerPrivate::totalBytes):
530         (WebCore::MediaPlayerPrivate::cancelLoad):
531         (WebCore::MediaPlayerPrivate::updateStates):
532         (WebCore::MediaPlayerPrivate::didEnd):
533         (WebCore::MediaPlayerPrivate::setRect):
534         (WebCore::MediaPlayerPrivate::setVisible):
535         (WebCore::MediaPlayerPrivate::paint):
536         (WebCore::MediaPlayerPrivate::getSupportedTypes):
537         (WebCore::MediaPlayerPrivate::movieEnded):
538         (WebCore::MediaPlayerPrivate::movieLoadStateChanged):
539         (WebCore::MediaPlayerPrivate::movieTimeChanged):
540         (WebCore::MediaPlayerPrivate::movieNewImageAvailable):
541         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: Added.
542         (WebCore::MediaPlayerPrivate::networkState):
543         (WebCore::MediaPlayerPrivate::readyState):
544         * platform/graphics/win/QTMovieWin.cpp: Added.
545         (updateTaskTimer):
546         (QTMovieWinPrivate::QTMovieWinPrivate):
547         (QTMovieWinPrivate::~QTMovieWinPrivate):
548         (taskTimerFired):
549         (QTMovieWinPrivate::startTask):
550         (QTMovieWinPrivate::endTask):
551         (QTMovieWinPrivate::task):
552         (QTMovieWinPrivate::registerDrawingCallback):
553         (QTMovieWinPrivate::drawingComplete):
554         (QTMovieWinPrivate::createGWorld):
555         (QTMovieWinPrivate::setSize):
556         (QTMovieWinPrivate::deleteGWorld):
557         (QTMovieWin::QTMovieWin):
558         (QTMovieWin::~QTMovieWin):
559         (QTMovieWin::play):
560         (QTMovieWin::pause):
561         (QTMovieWin::rate):
562         (QTMovieWin::setRate):
563         (QTMovieWin::duration):
564         (QTMovieWin::currentTime):
565         (QTMovieWin::setCurrentTime):
566         (QTMovieWin::setVolume):
567         (QTMovieWin::setMuted):
568         (QTMovieWin::dataSize):
569         (QTMovieWin::maxTimeLoaded):
570         (QTMovieWin::loadState):
571         (QTMovieWin::getNaturalSize):
572         (QTMovieWin::setSize):
573         (QTMovieWin::setVisible):
574         (QTMovieWin::paint):
575         (QTMovieWin::load):
576         (movieDrawingCompleteProc):
577         (initializeSupportedTypes):
578         (QTMovieWin::countSupportedTypes):
579         (QTMovieWin::getSupportedType):
580         (QTMovieWin::initializeQuickTime):
581         (DllMain):
582         * platform/graphics/win/QTMovieWin.h: Added.
583         * platform/graphics/win/QTMovieWinTimer.cpp: Added.
584         (TimerWindowWndProc):
585         (initializeOffScreenTimerWindow):
586         (setSharedTimerFiredFunction):
587         (timerFired):
588         (setSharedTimerFireDelay):
589         (stopSharedTimer):
590         (setSharedTimerInstanceHandle):
591         (systemTime):
592         * platform/graphics/win/QTMovieWinTimer.h: Added.
593         * rendering/RenderMedia.cpp:
594         (WebCore::MediaControlPlayButtonElement::update):
595
596 2007-12-21  Brent Fulgham  <bfulgham@gmail.com>
597
598         Reviewed by Alp Toker.
599
600         http://bugs.webkit.org/show_bug.cgi?id=16558
601         Cairo WebCore Rendering Fails on arc drawing
602
603         Fix for bug reported (and patched) by Apollo team in which
604         arcs were draw in reverse (resulting in inverted images).
605         Review of the source found that the 'clockwise' term was
606         actually meant to mean 'anticlockwise' so the IDL and
607         supporting classes have been changed to match this. 
608
609         * html/CanvasRenderingContext2D.cpp:
610         (WebCore::CanvasRenderingContext2D::arc):
611         * html/CanvasRenderingContext2D.idl:
612         * platform/graphics/cairo/PathCairo.cpp:
613         (WebCore::Path::addArc):
614         (WebCore::Path::addEllipse):
615         * platform/graphics/Path.h:
616
617 2007-12-21  Alexey Proskuryakov  <ap@webkit.org>
618
619         Reviewed by Oliver.
620
621         <rdar://problem/5629995> Incorrect display of Danish characters on web site.
622
623         Test: http/tests/xmlhttprequest/response-encoding.html
624
625         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveData):
626         Default to UTF-8 for HTML, too. It's unfortunate that we have to use different
627         rules for main content and XHR responses, but this matches both IE and Firefox.
628
629 2007-12-20  Jon Honeycutt  <jhoneycutt@apple.com>
630
631         Reviewed by Kevin Decker.
632
633         <rdar://problem/5655797> REGRESSION(304-306A10) Safari does not find
634         shockwave plugin on freshly installed OS
635
636         Look for Director plugin in its native directory.
637
638         * plugins/win/PluginDatabaseWin.cpp:
639         (WebCore::PluginDatabaseWin::getPluginsInPaths): The Director plugin
640         doesn't start with "np," so special case its filename.
641         (WebCore::addMacromediaPluginPaths): Add Flash and "Shockwave 10"
642         directories to the plugin paths.
643         (WebCore::PluginDatabaseWin::defaultPluginPaths):
644
645 2007-12-20  Peter Kasting  <zerodpx@gmail.com>
646
647         Reviewed by Alp Toker.
648
649         http://bugs.webkit.org/show_bug.cgi?id=16508
650         Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly
651         decoded transparent areas.
652
653         * platform/image-decoders/gif/GIFImageDecoder.cpp:
654         (WebCore::GIFImageDecoder::haveDecodedRow):
655         * platform/image-decoders/gif/GIFImageDecoder.h:
656         * platform/image-decoders/gif/GIFImageReader.cpp:
657         (GIFImageReader::output_row):
658
659 2007-12-20  Justin Garcia  <justin.garcia@apple.com>
660
661         Reviewed by Oliver Hunt.
662
663         <rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection
664         
665         Still need to fix similar issues with the other operations that iterate 
666         over selected paragraphs, like FormatBlock, Indent and Outdent (<rdar://problem/5658933>).
667
668         * editing/IndentOutdentCommand.cpp:
669         (WebCore::IndentOutdentCommand::indentRegion): Added a FIXME.
670         * editing/IndentOutdentCommand.h: Removed an unused function.
671         * editing/InsertListCommand.cpp:
672         (WebCore::InsertListCommand::modifyRange): 
673         Renamed visibleStart to startOfSelection and visibleEnd to endOfSelection.
674         Call the new selectionForParagraphIteration, which a) prevents operations like this
675         one from being performed on a table that isn't fully selected (where the selection
676         starts just before the table and ends inside it), and b) helps prevent paragraph
677         iteration from going past the end of the selection.
678         Call the new startOfNextParagraph, instead of using endOfParagraph(v).next(),
679         since when v is in the last paragraph of the last cell of a table, that expression 
680         will return the position after the table, not the start of the next paragraph.
681         * editing/htmlediting.cpp:
682         (WebCore::enclosingListChild): Don't go above a table cell, so that list operations
683         take effect inside the table cell where they are performed.
684         (WebCore::selectionForParagraphIteration): Added, see above.
685         (WebCore::indexForVisiblePosition): Moved from IndentOutdentCommand.cpp.
686         * editing/htmlediting.h:
687         * editing/visible_units.cpp:
688         (WebCore::startOfNextParagraph): Added, see above.
689         * editing/visible_units.h:
690         * editing/TextIterator.h:
691         (WebCore::TextIterator::exitNode): Added a FIXME.
692
693 2007-12-20  Alp Toker  <alp@atoker.com>
694
695         Rubber-stamped by Maciej.
696
697         http://bugs.webkit.org/show_bug.cgi?id=16542
698         [GTK] Text is missing with old Pango version
699
700         Back out commits r28880, r28876, r28865, r28864 which added Pango font
701         selection support. These changes caused a regression where no text was
702         displayed with older Pango versions.
703
704         * platform/graphics/gtk/FontCacheGtk.cpp:
705         (WebCore::FontCache::fontExists):
706         * platform/graphics/gtk/FontDataGtk.cpp:
707         (WebCore::FontData::platformDestroy):
708         (WebCore::FontData::containsCharacters):
709         * platform/graphics/gtk/FontPlatformData.h:
710         (WebCore::FontPlatformData::FontPlatformData):
711         (WebCore::FontPlatformData::hash):
712         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
713         (WebCore::FontPlatformData::FontPlatformData):
714         (WebCore::FontPlatformData::init):
715         (WebCore::FontPlatformData::~FontPlatformData):
716         (WebCore::FontPlatformData::isFixedPitch):
717         (WebCore::FontPlatformData::operator==):
718         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
719         (WebCore::GlyphPage::fill):
720
721 2007-12-20  Timothy Hatcher  <timothy@apple.com>
722
723         Reviewed by Sam Weinig.
724
725         <rdar://problem/5604897> Double-clicking on JavaScript console error
726         won't show the line where it occurred
727
728         Make the URLs clickable in the console, since double clicking is used for
729         word text selection. Makes the word "line" localizable. Messages that don't
730         have a URL will no longer print "undefined". Messages that have a line number
731         less than or equal to 0 will no longer be printed.
732
733         * English.lproj/InspectorLocalizedStrings.js: Add "%s (line %d)".
734         * page/inspector/ConsolePanel.js: Tweak how the DOM nodes are created
735           and change the click handler to look for a link with the
736           "console-message-url" class name.
737         * page/inspector/SourcePanel.js: Call setupSourceFrameIfNeeded() if a
738           line row is needed. 
739         * page/inspector/inspector.css: Update the look of the URL in the console.
740
741 2007-12-20  Adam Barth  <hk9565@gmail.com>
742
743         Reviewed and landed by Sam Weinig.
744
745         http://bugs.webkit.org/show_bug.cgi?id=15313
746         <rdar://problem/5514516>
747
748         The same-origin check was incorrect in two cases (both fixed in this
749         patch):
750
751         A) If both the source and the target have set their document.domain
752            to the same value, the protocol must also match in order for
753            access to be allowed.  Without this requirement, the browser is
754            vulnerable to the following attack:
755
756            1) Suppose there is an HTTPS site (www.example.com) that sets
757               document.domain = "example.com".
758            2) A network attacker redirects the browser to http://www.example.com/
759               a) injects script to set document.domain = "example.com", and
760               b) opens a window to https://www.example.com/
761            3) Now the network attacker can inject script into the HTTPS page,
762               stealing cookies and issuing banking transactions.
763
764         B) If only one of the source and target has set document.domain, then
765            access should be denied.  With this behavior, the browser is
766            vulnerable to the following attack:
767
768            1) Suppose http://foo.example.com/ opens an iframe to
769               http://foo.example.com/frame.html that
770               a) sets document.domain = "example.com", and
771               b) opens an iframe to http://bar.example.com/
772               This is a common usage of document.domain for cross-domain
773               communication, see for example:
774                 http://www.collinjackson.com/research/papers/fp801-jackson.pdf
775            2) The inner-most iframe, which is from bar.example.com, sets
776               document.domain = "example.com".
777            3) Now the inner-most iframe can inject script into the middle
778               iframe (say via document.write).  This bar.example.com script
779               now has access to the outer-most frame (from foo.example.com).
780
781         Both these changes cause WebKit to match the behavior of Firefox 2 and
782         IE6 in these cases.  This patch includes regression tests for both
783         issues.
784
785         Internet Explorer 7 and Opera 9 are more strict in that they require
786         the port numbers to match when both pages have document.domain set.
787         Opera 9 allows access when only one page has set document.domain, but
788         this is a security vulnerability.
789
790         Tests: http/tests/security/cross-frame-access-child-explicit-domain.html
791                http/tests/security/cross-frame-access-parent-explicit-domain.html
792
793         * bindings/js/kjs_window.cpp:
794         (KJS::createWindow):
795         (KJS::Window::allowsAccessFrom):
796         * dom/Document.cpp:
797         (WebCore::Document::domain):
798         (WebCore::Document::setDomain):
799         (WebCore::Document::initSecurityOrigin):
800         * dom/Document.h:
801         (WebCore::Document::securityOrigin):
802         * loader/FrameLoader.cpp:
803         (WebCore::FrameLoader::begin):
804         (WebCore::FrameLoader::checkCallImplicitClose):
805         (WebCore::FrameLoader::shouldAllowNavigation):
806         * platform/SecurityOrigin.cpp:
807         (WebCore::SecurityOrigin::setForURL):
808         (WebCore::SecurityOrigin::createForFrame):
809         (WebCore::SecurityOrigin::canAccess):
810         * platform/SecurityOrigin.h:
811         (WebCore::SecurityOrigin::domain):
812         * storage/Database.cpp:
813         (WebCore::Database::openDatabase):
814         (WebCore::Database::Database):
815         (WebCore::Database::securityOriginData):
816         * storage/Database.h:
817         (WebCore::Database::databaseDebugName):
818         * storage/DatabaseTracker.cpp:
819         (WebCore::DatabaseTracker::canEstablishDatabase):
820         * storage/SQLTransaction.cpp:
821         (WebCore::SQLTransaction::postflightAndCommit):
822         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
823
824 2007-12-20  Rodney Dawes  <dobey@wayofthemonkey.com>
825
826         Reviewed by Darin Adler.
827
828         Define XP_UNIX when building with plugins on X11.
829         Use new npruntime_internal.h instead of npruntime.h.
830         http://bugs.webkit.org/show_bug.cgi?id=15669
831
832         * ForwardingHeaders/bindings/npruntime_internal.h
833         * WebCore.pro:
834         * html/HTMLPlugInElement.h:
835
836 2007-12-19  johnnyding.webkit  <johnnyding.webkit@gmail.com>
837
838         Reviewed by Alexey. Landed by Stephanie.
839
840         - fix http://bugs.webkit.org/show_bug.cgi?id=16179 | <rdar://problem/5619399>
841           Any attribute name start with a unicode which like #xx00(x could be any hex number[0-9a-f]) will cause HTMLTokenizer parse error
842           Actually any unicode characters which great than 255 in attribute name will cause Webkit parse the attribute name wrong. So after comparing 
843           the same scenario in IE 6/7, FireFox 2/3, Opera, we should treat those characters as part of attribute name.
844
845
846         * html/HTMLTokenizer.cpp:
847         (WebCore::HTMLTokenizer::parseEntity): Handle Unicode Entity Name by using ASCII version of findEntity.
848         (WebCore::HTMLTokenizer::parseTag): Let type of ptr match type of cBuffer.
849         * html/HTMLTokenizer.h: Change type of cBuffer from char to UChar.
850
851 2007-12-20  Eric Seidel  <eric@webkit.org>
852
853         Reviewed by Nikolas Zimmermann.
854
855         WebKit claims to support SVG feature strings it shouldn't
856         http://bugs.webkit.org/show_bug.cgi?id=15480
857
858         * dom/DOMImplementation.cpp:
859         (WebCore::isSVG10Feature):
860         (WebCore::isSVG11Feature):
861
862 2007-12-20  John Sullivan  <sullivan@apple.com>
863
864         Reviewed by Oliver and Geoff
865         
866         - fix <rdar://problem/5536858> Yellow highlight for find results is sometimes shorter 
867           than white "hole" behind it
868
869         * rendering/RenderText.cpp:
870         (WebCore::RenderText::addLineBoxRects):
871         respect useSelectionHeight in all cases; we were only respecting it in one of the two cases
872
873 2007-12-20  Dan Bernstein  <mitz@apple.com>
874
875         Reviewed by Darin Adler.
876
877         - fix <rdar://problem/5656368> REGRESSION(3.0.4-ToT): Acid2 test fails to render anything
878
879         * platform/win/ScrollViewWin.cpp:
880         (WebCore::ScrollView::maximumScroll): Changed back to return the maximum
881         scroll offsets even if scrolling is not allowed, because navigation and
882         scrollTo should still work.
883         (WebCore::ScrollView::wheelEvent): Added early return if scrolling is
884         not allowed.
885
886 2007-12-17  Tony Chang  <idealisms@gmail.com>
887
888         Reviewed by Darin.
889
890         - Fix for http://bugs.webkit.org/show_bug.cgi?id=16479
891           text selection does not always begin at mouse down point
892           Reset the m_dragSrc object on mouse down on all platforms.
893
894         Test: fast/text/reset-drag-on-mouse-down.html
895
896         * page/EventHandler.cpp:
897         (WebCore::EventHandler::handleMousePressEvent):
898         * page/mac/EventHandlerMac.mm:
899         (WebCore::EventHandler::mouseDown):
900
901 2007-12-19  Geoffrey Garen  <ggaren@apple.com>
902
903         Reviewed by Oliver Hunt.
904
905         Build support:
906         * ForwardingHeaders/kjs/SymbolTable.h: Added.
907         * ForwardingHeaders/wtf/VectorTraits.h: Added.
908
909         * bindings/js/JSDOMWindowCustom.cpp:
910         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Replaced use of
911         getDirectLocation with getOwnPropertySlot. getDirectLocation is no
912         longer valid, since global declarations are not stored in the property
913         map.
914
915         (WebCore::JSDOMWindow::customPut): Replaced use of JSObject::put with
916         JSGlobalObject::put. JSObject::put is no longer valid, since global
917         declarations are not stored in the property map.
918
919         * bindings/js/kjs_window.cpp: Replaced JSObject:: calls with Base::
920         calls, since JSObject is not our base class. This was always a bug, but
921         the bug is even more apparent after some of my changes.
922
923         (KJS::Window::clear): Removed call to clearProperties because
924         JSGlobalObject::reset takes care of that now.
925
926         * history/CachedPage.cpp:
927         * history/CachedPage.h: Added support for saving a symbol table and
928         localStorage to the page cache, and restoring it.
929
930 2007-12-19  Dan Bernstein  <mitz@apple.com>
931
932         Reviewed by Darin Adler and Dave Hyatt.
933
934         - Substitute the user's preferred standard font for an unknown primary
935           font before falling back on the platform's last resort font
936
937         Cannot be tested in DumpRenderTree because it sets the standard font to
938         Times, which is also the hard-coded last resort font on Mac.
939
940         * css/CSSFontSelector.cpp:
941         (WebCore::CSSFontSelector::getFontData): Changed the early bail out
942         condition to allow getting generic font families from settings even if
943         there are not @font-face rules. Fixed a typo that mapped fantasy to
944         cursive. Added a mapping from -webkit-standard to the standard family.
945         * css/CSSStyleSelector.cpp:
946         (WebCore::CSSStyleSelector::CSSStyleSelector): Changed to always create
947         a font selector.
948         (WebCore::CSSRuleSet::addRulesFromSheet):
949         (WebCore::CSSStyleSelector::applyProperty): Changed to always use the
950         font selector.
951         * css/CSSStyleSelector.h:
952         (WebCore::CSSStyleSelector::fontSelector):
953         * platform/graphics/FontCache.cpp:
954         (WebCore::FontCache::getFontData): Try the user's preferred standard
955         font before the platform's last resort font.
956
957 2007-12-19  Sven Herzberg  <sven@imendio.com>
958
959         Reviewed by Alp Toker.
960
961         Scaled font destruction takes place in FontData::platformDestroy(). No
962         need to do it in FontPlatformData::~FontPlatformData().
963
964         Destroying platform data in platformDestroy() is a convention we
965         borrow from the Mac and Win ports.
966
967         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
968
969 2007-12-19  Alice Liu  <alice.liu@apple.com>
970
971         build fix (Windows)
972
973         Changed uint to unsigned int.  uint caused Windows build breakage
974
975         * page/Page.cpp:
976         (WebCore::Page::markAllMatchesForText):
977         * page/Page.h:
978
979 2007-12-19  Christian Dywan  <christian@twotoasts.de> 
980
981         Reviewed by Alp Toker.
982
983         http://bugs.webkit.org/show_bug.cgi?id=16222
984         [GTK] Implement inline search and highlighting of matching strings.
985
986         Implement search and highlighting logic directly in WebCore.
987
988         * page/Page.cpp:
989         (WebCore::incrementFrame):
990         (WebCore::Page::findString):
991         (WebCore::Page::markAllMatchesForText):
992         (WebCore::Page::unmarkAllTextMatches):
993         * page/Page.h:
994
995 2007-12-19  Geoffrey Garen  <ggaren@apple.com>
996
997         Reviewed by Sam Weinig, Dan Bernstein.
998
999         Tiger build fix: restored some graphics code still needed on Tiger.
1000
1001         * platform/graphics/GraphicsTypes.h:
1002         * platform/graphics/cg/GraphicsContextCG.cpp:
1003         * platform/graphics/mac/GraphicsContextMac.mm:
1004         (WebCore::GraphicsContext::setCompositeOperation):
1005
1006 2007-12-19  Alp Toker  <alp@atoker.com>
1007
1008         Build fix for Pango < 1.18.0 breakage introduced in r28864. Use Fc and
1009         the Pango backend API in these cases.
1010
1011         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
1012         (WebCore::FontPlatformData::FontPlatformData):
1013         (WebCore::FontPlatformData::~FontPlatformData):
1014
1015 2007-12-19  Alice Liu  <alice.liu@apple.com>
1016
1017         Reviewed by Darin.
1018
1019         Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
1020         on Geico.com WebCore::Document::inPageCache()
1021
1022         Calling Node::willRemove on the focusedNode would immediately tell the document to remove
1023         the focused node, and trigger JS events.  This means that the document is mutated while
1024         the engine is trying to tell all child nodes that it's about to removed.  To avoid
1025         crashing, we need to hold off on mutating the document until node traversal is finished.
1026
1027         * dom/ContainerNode.cpp:
1028         (WebCore::ContainerNode::removeChild):
1029         (WebCore::ContainerNode::removeChildren):
1030         * dom/Node.cpp:
1031         * dom/Node.h:
1032         (WebCore::Node::willRemove):
1033         * loader/FrameLoader.cpp:
1034         (WebCore::FrameLoader::clear):
1035
1036 2007-12-19  Andre Boule  <aboule@apple.com>
1037
1038         Reviewed by Dan Bernstein.
1039
1040         Test: fast/canvas/canvas-composite.html
1041
1042         Fix for:
1043         <rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode
1044
1045         This fix makes setCompositeOperation consistent across all platforms that use CG.
1046
1047         The following compositing modes don't pass however that is covered by another bug:
1048         source-in
1049         source-out
1050         destination-in
1051         destination-atop
1052         copy
1053         <rdar://problem/5651783> Some canvas tag compositing modes don't render correctly
1054
1055         * platform/graphics/GraphicsTypes.h:
1056         * platform/graphics/cg/GraphicsContextCG.cpp:
1057         (WebCore::GraphicsContext::setCompositeOperation):
1058         * platform/graphics/mac/GraphicsContextMac.mm:
1059         * platform/win/GraphicsContextWin.cpp:
1060
1061 2007-12-19  Dan Bernstein  <mitz@apple.com>
1062
1063         Reviewed by Dave Hyatt.
1064
1065         - fix <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page
1066
1067         Test: fast/dynamic/subtree-boundary-percent-height.html
1068
1069         * rendering/RenderObject.cpp:
1070         (WebCore::objectIsRelayoutBoundary): Do not allow overflows with
1071         percent heights because sometimes they compute to 'auto'.
1072
1073 2007-12-19  Sam Weinig  <sam@webkit.org>
1074
1075         Reviewed by Maciej.
1076
1077         http://bugs.webkit.org/show_bug.cgi?id=16511
1078         Speed up ClassNodeList and NamedNodeList by using the caching mechanism employed by ChildNodeList.
1079         - This give a ~2.15x speedup on the native test @ http://ejohn.org/apps/classname/
1080
1081         * dom/ChildNodeList.cpp: Use the caching NodeList constructor to turn on caching.
1082         (WebCore::ChildNodeList::ChildNodeList):
1083         * dom/ClassNodeList.cpp:
1084         (WebCore::ClassNodeList::ClassNodeList):
1085         * dom/ClassNodeList.h:
1086
1087         Move getElementsByName and getElementsByClassName to Node so they
1088         can use easily employ the caching already used by ChildNodeLists.  In the case of 
1089         getElementsByClassName, this reduces code duplication in Element as well
1090         * dom/Document.cpp:
1091         * dom/Document.h:
1092
1093         Move getElementsByClassName to Node.
1094         * dom/Element.cpp:
1095         * dom/Element.h:
1096
1097         * dom/NameNodeList.cpp: Use the caching NodeList constructor to turn on caching.
1098         (WebCore::NameNodeList::NameNodeList):
1099         (WebCore::NameNodeList::item):
1100         * dom/NameNodeList.h:
1101
1102         Add maps of caches for ClassNodeLists and NameNodeList to NodeListsNodeData.
1103         * dom/Node.cpp:
1104         (WebCore::TagNodeList::TagNodeList):
1105         (WebCore::Node::Node):
1106         (WebCore::Node::~Node):
1107         (WebCore::Node::childNodes):
1108         (WebCore::Node::registerNodeList):
1109         (WebCore::Node::getElementsByName):
1110         (WebCore::Node::getElementsByClassName):
1111         * dom/Node.h: Make m_nodeLists an OwnPtr.  Moved getElementsByName and getElementsByClassName here
1112
1113         Allow subclasses to choose whether they want to receive the notifications using a new bit.
1114         * dom/NodeList.cpp:
1115         (WebCore::NodeList::NodeList):
1116         * dom/NodeList.h:
1117         (WebCore::NodeList::needsNotifications):
1118
1119 2007-12-19  Dave Hyatt  <hyatt@apple.com>
1120
1121         Add support for GDI text rendering to WebKit.
1122       
1123         Reviewed by mitz
1124         
1125         * css/CSSStyleSelector.cpp:
1126         (WebCore::CSSStyleSelector::applyProperty):
1127         * dom/Document.cpp:
1128         (WebCore::Document::recalcStyle):
1129         * page/Settings.cpp:
1130         (WebCore::Settings::setFontRenderingMode):
1131         (WebCore::Settings::fontRenderingMode):
1132         * page/Settings.h:
1133         * platform/graphics/Font.h:
1134         (WebCore::Font::renderingMode):
1135         * platform/graphics/FontCache.cpp:
1136         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
1137         (WebCore::FontPlatformDataCacheKey::operator==):
1138         (WebCore::computeHash):
1139         (WebCore::FontCache::getCachedFontPlatformData):
1140         * platform/graphics/FontDescription.h:
1141         (WebCore::):
1142         (WebCore::FontDescription::FontDescription):
1143         (WebCore::FontDescription::renderingMode):
1144         (WebCore::FontDescription::setRenderingMode):
1145         (WebCore::FontDescription::operator==):
1146         * platform/graphics/GraphicsContext.h:
1147         * platform/graphics/win/FontCacheWin.cpp:
1148         (WebCore::FontCache::fontExists):
1149         (WebCore::FontCache::createFontPlatformData):
1150         * platform/graphics/win/FontDataWin.cpp:
1151         (WebCore::FontData::platformInit):
1152         (WebCore::FontData::smallCapsFontData):
1153         (WebCore::FontData::containsCharacters):
1154         (WebCore::FontData::determinePitch):
1155         (WebCore::FontData::platformWidthForGlyph):
1156         * platform/graphics/win/FontPlatformData.h:
1157         (WebCore::FontPlatformData::FontPlatformData):
1158         (WebCore::FontPlatformData::useGDI):
1159         (WebCore::FontPlatformData::operator==):
1160         * platform/graphics/win/FontPlatformDataWin.cpp:
1161         (WebCore::FontPlatformData::FontPlatformData):
1162         * platform/graphics/win/FontWin.cpp:
1163         (WebCore::Font::drawGlyphs):
1164         * platform/graphics/win/IconWin.cpp:
1165         (WebCore::Icon::paint):
1166         * platform/win/GraphicsContextWin.cpp:
1167         (WebCore::GraphicsContext::getWindowsContext):
1168         (WebCore::GraphicsContext::releaseWindowsContext):
1169         * platform/win/UniscribeController.cpp:
1170         (WebCore::UniscribeController::shapeAndPlaceItem):
1171         * platform/win/UniscribeController.h:
1172         * plugins/win/PluginViewWin.cpp:
1173         (WebCore::PluginViewWin::paint):
1174
1175 2007-12-19  Sven Herzberg  <sven@imendio.com>
1176
1177         Reviewed by Alp Toker.
1178
1179         Replace the fontconfig/freetype based font management with a pango
1180         based one. Fixes:
1181         http://bugs.webkit.org/show_bug.cgi?id=15229
1182
1183         * platform/gtk/FontDataGtk.cpp (FontData::platformDestroy()): updated
1184         the platform specific destroy code
1185         (FontData::containsCharacters()): implemented font coverage with pango
1186         * platform/gtk/FontPlatformData.h: replaced fontconfig specific
1187         members with pango-specific ones
1188         * platform/gtk/FontPlatformDataGtk.cpp: added static members for the
1189         FontPlatformData class
1190         (FontPlatformData::FontPlatformData()): implemented the font-matching
1191         with a PangoFontDescription instead of an FcPattern; initialize the
1192         scaled font by using the API for PangoCairoFont
1193         (FontPlatformData::init()): initialize the PangoFontMap and set up a
1194         hash table to translate the font family name into a font family
1195         (FontPlatformData::isFixedPitch()): implemented by querying the
1196         PangoFontFamily
1197         (FontPlatformData::operator==): compare the FontPlatformData by
1198         comparing the font pointers or the described fonts
1199         * platform/gtk/GlyphPageTreeNodeGtk.cpp (pango_font_get_glyph()):
1200         added a function to query a glyph from a PangoFont
1201         (GlyphPage::fill()): implemented the fill function with Pango instead
1202         of fontconfig/freetype
1203
1204 2007-12-19  Alp Toker  <alp@atoker.com>
1205
1206         Reviewed by Holger Freyther.
1207
1208         Improve graphics operator approximations
1209         
1210         These changes match Cairo's own CG approximations.
1211
1212         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1213         (WebCore::toCairoOperator):
1214
1215 2007-12-19  Alp Toker  <alp@atoker.com>
1216
1217         Reviewed by Holger Freyther.
1218
1219         Check the bounding box before doing a full hit test
1220
1221         * platform/graphics/cairo/PathCairo.cpp:
1222         (WebCore::Path::contains):
1223
1224 2007-12-18  Sam Weinig  <sam@webkit.org>
1225
1226         Reviewed by Geoff.
1227
1228         Fix for <rdar://problem/5646478>
1229         REGRESSION: fast/events/event-view-toString fails on Leopard
1230
1231         This fixes an issue where we were incorrectly setting the lastInPrototypeChain
1232         for the JSDOMWindow (the global object) before a call to setPrototype overwrote
1233         it. This fixes it by passing the prototype up the constructor chain so that it
1234         is set before any calls can be made.
1235
1236         * bindings/js/kjs_window.cpp:
1237         (KJS::Window::Window):
1238         * bindings/js/kjs_window.h:
1239         * bindings/scripts/CodeGeneratorJS.pm:
1240
1241 2007-12-18  Beth Dakin  <bdakin@apple.com>
1242
1243         Reviewed by Oliver.
1244
1245         Fix for <rdar://problem/5616982> SVGs with width and height 100% 
1246         fail to render when used as <img> or CSS image (16167)
1247
1248         This final part of the work fixes the <img> tag.
1249
1250         This is the real fix. 
1251         * rendering/RenderImage.cpp:
1252         (WebCore::RenderImage::calcReplacedWidth): Set the container size 
1253         on the image. Setting the container size only actually sticks if 
1254         the values are non-zero, so if the container size really was set, 
1255         use the imageSize that is calculated using the container size. If 
1256         it did not stick but the image does have relative width (meaning 
1257         that the container size is 0), set the width to 0 by hand. We want 
1258         to avoid setting the width before we have a container size or we 
1259         will end up incorrectly using the default size of 300x150.
1260         (WebCore::RenderImage::calcReplacedHeight): Same as above, but for 
1261         height.
1262
1263         A few more pieces of information have to be exposed through cached 
1264         image to make this happen.
1265         * loader/CachedImage.cpp:
1266         (WebCore::CachedImage::usesImageContainerSize): As mentioned above, 
1267         when setContainerSize() is called, the container size is only 
1268         actually set if the values are non-zero. This call tells you if it 
1269         was set.
1270         (WebCore::CachedImage::imageHasRelativeWidth):
1271         (WebCore::CachedImage::imageHasRelativeHeight):
1272         * loader/CachedImage.h:
1273         * platform/graphics/Image.h:
1274         (WebCore::Image::usesContainerSize):
1275         * svg/graphics/SVGImage.cpp:
1276         (WebCore::SVGImage::usesContainerSize):
1277         * svg/graphics/SVGImage.h:
1278
1279 2007-12-18  Mark Rowe  <mrowe@apple.com>
1280
1281         Rubber-stamped by Maciej Stachowiak.
1282
1283         Remove outdated and non-functioning project files for the Apollo port.
1284
1285         * WebCore.apolloproj: Removed.
1286
1287 2007-12-18  Steve Falkenburg  <sfalken@apple.com>
1288
1289         <rdar://problem/5649911> REGRESSION (304-306A9): Typing 'p' in popup menu for type-to-select brings up Safari Help
1290         
1291         Need to translate the char back into a key code for posting our WM_KEYDOWN.
1292         
1293         Reviewed by Ada.
1294
1295         * platform/win/PopupMenuWin.cpp:
1296         (WebCore::PopupWndProc):
1297
1298 2007-12-18  Steve Falkenburg  <sfalken@apple.com>
1299
1300         <rdar://problem/5651534> REGRESSION(r28764-r28765): GDI leak drawing text when no appropriate font is available
1301         
1302         Our captured metafile from Uniscribe may contain multiple calls to CreateFontIndirect.
1303         Only create a font with the last one.
1304         
1305         Reviewed by Mitz, Darin.
1306
1307         * platform/graphics/win/FontCacheWin.cpp:
1308         (WebCore::metaFileEnumProc):
1309         (WebCore::FontCache::getFontDataForCharacters):
1310
1311 2007-12-17  Brent Fulgham  <bfulgham@gmail.com>
1312
1313         Reviewed by Darin.
1314
1315         http://bugs.webkit.org/show_bug.cgi?id=16464
1316         Modify WebCore to use win32 thread primitives
1317
1318         Updates to support native windows threading primitives
1319         rather than pthreads emulation library.
1320
1321         * WebCore.vcproj/WebCore.vcproj:
1322         * config.h:
1323         * platform/Threading.h:
1324         * platform/win/MutexWin.cpp: Added.
1325         (WebCore::Mutex::Mutex):
1326         (WebCore::Mutex::~Mutex):
1327         (WebCore::Mutex::lock):
1328         (WebCore::Mutex::tryLock):
1329         (WebCore::Mutex::unlock):
1330         * platform/win/ThreadConditionWin.cpp: Added.
1331         (WebCore::ThreadCondition::ThreadCondition):
1332         (WebCore::ThreadCondition::~ThreadCondition):
1333         (WebCore::ThreadCondition::wait):
1334         (WebCore::ThreadCondition::signal):
1335         (WebCore::ThreadCondition::broadcast):
1336         * platform/win/ThreadingWin.cpp:
1337         (WebCore::threadMapMutex):
1338         (WebCore::threadMap):
1339         (WebCore::storeThreadHandleByIdentifier):
1340         (WebCore::identifierByThreadHandle):
1341         (WebCore::threadHandleForIdentifier):
1342         (WebCore::clearThreadHandleForIdentifier):
1343         (WebCore::createThread):
1344         (WebCore::waitForThreadCompletion):
1345         (WebCore::detachThread):
1346         (WebCore::currentThread):
1347
1348 2007-12-18  Rodney Dawes  <dobey@wayofthemonkey.com>
1349
1350         Reviewed by Darin Adler.
1351
1352         Handle EINTR when set by select() and try the select() again
1353         http://bugs.webkit.org/show_bug.cgi?id=16071
1354
1355         * platform/network/curl/ResourceHandleManager.cpp:
1356         (ResourceHandleManager::downloadTimerCallback):
1357
1358 2007-12-18  Dan Bernstein  <mitz@apple.com>
1359
1360         Reviewed by Dave Hyatt.
1361
1362         - avoid the simplified Chinese font linking code for characters that are
1363           not in any Windows code page
1364
1365         * platform/graphics/win/FontCacheWin.cpp:
1366         (WebCore::FontCache::getFontDataForCharacters):
1367
1368 2007-12-18  Brady Eidson <beidson@apple.com>
1369
1370         Reviewed by Adele
1371
1372         <rdar://problem/5525770> REGRESSION: HTTP Auth protected favicon request results in a password sheet
1373
1374         Some http-auth protected sites have the main resource(s) unprotected, but many subresources are
1375         protected by authentication.  Occasionally one can view the main page of a site but the favicon
1376         is behind the iron curtain - in these cases, we should *not* prompt for a username and password
1377         solely for the favicon.
1378
1379         * loader/ResourceLoader.h: Make didReceiveAuthenticationChallenge virtual
1380
1381         * loader/SubresourceLoader.cpp:
1382         (WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Now that this method
1383           is virtual from ResourceLoader, SubresourceLoader can override.  First call to the 
1384           SubresourceLoaderClient.  If they cancel the resource load, return early. Otherwise, let
1385           ResourceLoader work its magic (resulting in the auth sheet coming down)
1386         * loader/SubresourceLoader.h:
1387
1388         * loader/SubresourceLoaderClient.h:
1389         (WebCore::SubresourceLoaderClient::didReceiveAuthenticationChallenge):
1390
1391         * loader/icon/IconLoader.cpp:
1392         (WebCore::IconLoader::didReceiveAuthenticationChallenge): Cancel the resource load, since we should
1393           never prompt the user for credentials just for a favicon.
1394         * loader/icon/IconLoader.h:
1395
1396 2007-12-18  John Sullivan  <sullivan@apple.com>
1397
1398         Reviewed by Brady
1399         
1400         - fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name
1401
1402         * storage/DatabaseTracker.cpp:
1403         (WebCore::DatabaseTracker::canEstablishDatabase):
1404         pass "name" instead of "displayName" if there's no displayName
1405
1406 2007-12-17  Dan Bernstein  <mitz@apple.com>
1407
1408         Reviewed by Maciej Stachowiak.
1409
1410         - restore ButtonFace and ThreeDFace to their previous values for non-Mac
1411           platforms. The Mac port also uses the same values for now instead
1412           of NSColor-based ones.
1413
1414         * rendering/RenderTheme.cpp:
1415         (WebCore::RenderTheme::systemColor):
1416
1417 2007-12-17  Rodney Dawes  <dobey@wayofthemonkey.com>
1418
1419         Reviewed by Maciej Stachowiak.
1420
1421         Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
1422         Add required Frame::createScriptInstanceForWidget to FrameGtk
1423
1424         * config.h:
1425         * page/gtk/FrameGtk.cpp (Frame::createScriptInstanceForWidget):
1426
1427 2007-12-17  Alice Liu  <alice.liu@apple.com>
1428
1429         Reviewed by Adam.
1430
1431         Fixed <rdar://5566435> window with no scrollbars can be scrolled
1432
1433         * platform/win/ScrollViewWin.cpp:
1434         (WebCore::ScrollView::maximumScroll):
1435         corrected maximumScroll() to account for scrolling not allowed.
1436         (WebCore::ScrollView::wheelEvent):
1437
1438 2007-12-14  Juan A. Suarez Romero  <jasuarez@igalia.com>
1439
1440         Reviewed by Alp Toker.
1441
1442         http://bugs.webkit.org/show_bug.cgi?id=16042
1443         [GTK] Eliminate webkit_init()
1444
1445         Move webkit initialization to WebView class init.
1446
1447         * WebCore.pro:
1448
1449 2007-12-17  Jon Honeycutt  <jhoneycutt@apple.com>
1450
1451         Reviewed by Darin.
1452
1453         <rdar://problem/5651291> REGRESSION: Flash content doesn't display
1454         (www.adobe.com)
1455
1456         We were passing NPEvent** instead of NPEvent* to NPP_HandleEvent.
1457
1458         * plugins/win/PluginViewWin.cpp:
1459         (WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not
1460         NPEvent*
1461         (WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent*
1462         (WebCore::PluginViewWin::handleKeyboardEvent): same
1463         (WebCore::PluginViewWin::handleMouseEvent): same
1464         * plugins/win/PluginViewWin.h:
1465
1466 2007-12-17  Alexey Proskuryakov  <ap@webkit.org>
1467
1468         Reviewed by Darin.
1469
1470         Live to the promise of never making AppKit special character codes visible via DOM.
1471
1472         Test: fast/events/arrow-keys-on-body.html
1473
1474         * page/EventHandler.cpp:
1475         (WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation,
1476         to let quirks-aware code strip special charactrers.
1477         * platform/mac/KeyEventMac.mm:
1478         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks
1479         mode, remove the text if it's a special character.
1480
1481 2007-12-17  Mark Rowe  <mrowe@apple.com>
1482
1483         Reviewed by Darin Adler.
1484
1485         Fix incorrect array size and incorrect array index in convertNSColorToColor.
1486
1487         * rendering/RenderThemeMac.mm:
1488         (WebCore::convertNSColorToColor):
1489
1490 2007-12-17  Darin Adler  <darin@apple.com>
1491
1492         Reviewed by Mark Rowe.
1493
1494         - fix http://bugs.webkit.org/show_bug.cgi?id=16468
1495           REGRESSION(r28781): Crash running storage/transaction_callback_exception_crash.html
1496
1497         * storage/DatabaseThread.cpp:
1498         (WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database
1499         because there's no guarantee it won't lose its last reference otherwise.
1500
1501 2007-12-17  Dan Bernstein  <mitz@apple.com>
1502
1503         Reviewed by Maciej Stachowiak.
1504
1505         - fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not
1506           and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac
1507
1508         * platform/graphics/win/FontCacheWin.cpp:
1509         (WebCore::FontCache::getFontDataForCharacters): To ensure that font
1510         linking gives consistent results for characters that are exclusive to
1511         the simplified Chinese code page and characters that belong to that
1512         code page and other code pages, always ask to map to simplified Chinese
1513         alone first.
1514
1515 2007-12-17  Christian Dywan  <christian@twotoasts.de>
1516
1517         Reviewed by Alp Toker.
1518
1519         http://bugs.webkit.org/show_bug.cgi?id=16378
1520         Implement Icon for Gtk
1521
1522         Icon provides a GdkPixbuf containing a themed icon.
1523         The icon theme is probed for an icon name according to the
1524         Icon Naming Specification or conventional Gnome icon names respectively.
1525
1526         See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
1527
1528         * platform/graphics/Icon.h:
1529         * platform/graphics/gtk/IconGtk.cpp:
1530         (WebCore::Icon::~Icon):
1531         (WebCore::lookupIconName):
1532         (WebCore::Icon::newIconForFile):
1533         (WebCore::Icon::paint):
1534
1535 2007-12-16  Sam Weinig  <sam@webkit.org>
1536
1537         Reviewed by Mitz.
1538
1539         Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
1540         Move the JS Location object to its own file
1541
1542         - Move Location into its own file and rename it JSLocation.
1543
1544         * DerivedSources.make:
1545         * WebCore.pro:
1546         * WebCore.vcproj/WebCore.vcproj:
1547         * WebCore.xcodeproj/project.pbxproj:
1548         * WebCoreSources.bkl:
1549         * bindings/js/JSDocumentCustom.cpp:
1550         * bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp.
1551         (WebCore::):
1552         (WebCore::JSLocation::JSLocation):
1553         (WebCore::JSLocation::getValueProperty):
1554         (WebCore::JSLocation::getOwnPropertySlot):
1555         (WebCore::JSLocation::put):
1556         (WebCore::JSLocationProtoFuncReplace::callAsFunction):
1557         (WebCore::JSLocationProtoFuncReload::callAsFunction):
1558         (WebCore::JSLocationProtoFuncAssign::callAsFunction):
1559         (WebCore::JSLocationProtoFuncToString::callAsFunction):
1560         * bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h.
1561         (WebCore::JSLocation::):
1562         (WebCore::JSLocation::frame):
1563         (WebCore::JSLocation::classInfo):
1564         * bindings/js/kjs_window.cpp:
1565         (KJS::Window::location):
1566         * bindings/js/kjs_window.h:
1567         * history/CachedPage.cpp:
1568
1569 2007-12-16  Dan Bernstein  <mitz@apple.com>
1570
1571         Reviewed by Sam Weinig.
1572
1573         - make 'cursor: copy' and 'cursor: none' work.
1574
1575         Already covered by manual-tests/cursor.html
1576
1577         * rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits,
1578         needed for the 33rd and 34th cursor values.
1579
1580 2007-12-16  Mark Rowe  <mrowe@apple.com>
1581
1582         Reviewed by Maciej Stachowiak.
1583
1584         Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.
1585
1586         * WebCore.base.exp:
1587         * WebCore.xcodeproj/project.pbxproj:
1588         * loader/NetscapePlugInStreamLoader.h:
1589         * loader/mac/NetscapePlugInStreamLoaderMac.mm: Removed.
1590         * loader/mac/WebPlugInStreamLoaderDelegate.h: Moved to WebKit.
1591
1592 2007-12-16  Sam Weinig  <sam@webkit.org>
1593
1594         Reviewed by Maciej.
1595
1596         Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
1597         Cleanup kjs_window
1598
1599         - Move ScheduledAction into its own file and put it in the WebCore namespace.
1600
1601         * WebCore.pro:
1602         * WebCore.vcproj/WebCore.vcproj:
1603         * WebCore.xcodeproj/project.pbxproj:
1604         * WebCoreSources.bkl:
1605         * bindings/js/PausedTimeouts.cpp:
1606         * bindings/js/PausedTimeouts.h:
1607         * bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp.
1608         (WebCore::ScheduledAction::ScheduledAction):
1609         (WebCore::ScheduledAction::execute):
1610         * bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h.
1611         (WebCore::ScheduledAction::ScheduledAction):
1612         * bindings/js/kjs_window.cpp:
1613         (KJS::DOMWindowTimer::DOMWindowTimer):
1614         (KJS::DOMWindowTimer::action):
1615         (KJS::DOMWindowTimer::takeAction):
1616         (KJS::Window::installTimeout):
1617         (KJS::Window::timerFired):
1618         * bindings/js/kjs_window.h:
1619
1620 2007-12-16  Alp Toker  <alp@atoker.com>
1621
1622         Reviewed by Maciej.
1623
1624         http://bugs.webkit.org/show_bug.cgi?id=16356
1625         [GTK] Integrate GStreamer video with the graphics backend
1626
1627         Integrate the GStreamer media backend with the Cairo graphics backend.
1628         There are still some issues: Data is copied more often than necessary,
1629         and repaint() is not called, causing transformed video not to update
1630         sometimes.
1631
1632         * WebCore.pro:
1633         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1634         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1635         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
1636         (WebCore::MediaPlayerPrivate::currentTime):
1637         (WebCore::MediaPlayerPrivate::setEndTime):
1638         (WebCore::MediaPlayerPrivate::seeking):
1639         (WebCore::MediaPlayerPrivate::naturalSize):
1640         (WebCore::MediaPlayerPrivate::setMuted):
1641         (WebCore::MediaPlayerPrivate::setRect):
1642         (WebCore::MediaPlayerPrivate::setVisible):
1643         (WebCore::MediaPlayerPrivate::repaint):
1644         (WebCore::MediaPlayerPrivate::paint):
1645         (WebCore::MediaPlayerPrivate::createGSTPlayBin):
1646         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
1647         * platform/graphics/gtk/VideoSinkGStreamer.cpp: Added.
1648         (webkit_video_sink_base_init):
1649         (webkit_video_sink_init):
1650         (webkit_video_sink_idle_func):
1651         (webkit_video_sink_render):
1652         (webkit_video_sink_set_caps):
1653         (webkit_video_sink_dispose):
1654         (webkit_video_sink_finalize):
1655         (webkit_video_sink_set_property):
1656         (webkit_video_sink_get_property):
1657         (webkit_video_sink_stop):
1658         (webkit_video_sink_class_init):
1659         (webkit_video_sink_new):
1660         (webkit_video_sink_set_surface):
1661         (plugin_init):
1662         * platform/graphics/gtk/VideoSinkGStreamer.h: Added.
1663
1664 2007-12-16  Mark Rowe  <mrowe@apple.com>
1665
1666         Mac build fix.
1667
1668         * WebCore.xcodeproj/project.pbxproj: Remove NetscapePlugInStreamLoader.cpp from the WebCore target.
1669         Mac currently has its own implementation in NetscapePlugInStreamLoaderMac.mm which conflicts with the
1670         new shared implementation.
1671
1672 2007-12-16  Rodney Dawes  <dobey@wayofthemonkey.com>
1673
1674         Reviewed by Maciej Stachowiak.
1675
1676         http://bugs.webkit.org/show_bug.cgi?id=16389
1677         Bug 16389: Common Implementation of NetscapePlugInStreamLoader
1678
1679         * WebCore.vcproj/WebCore.vcproj: Remove NetscapePlugInStreamLoaderWin.cpp.
1680         * loader/NetscapePlugInStreamLoader.cpp: Copy method implementations from NetscapePlugInStreamLoaderWin.cpp.
1681         * loader/win/NetscapePlugInStreamLoaderWin.cpp: Removed.
1682
1683 2007-12-16  Grace Kloba  <klobag@gmail.com>
1684
1685         Reviewed by Darin Adler.
1686
1687         Fix http://bugs.webkit.org/show_bug.cgi?id=16433.
1688         Bug 16433: LOW_BANDWIDTH_DISPLAY build is broken
1689
1690         * dom/Document.cpp:
1691         (WebCore::Document::Document):
1692         * loader/FrameLoader.cpp:
1693         (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
1694         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
1695
1696 2007-12-16  Darin Adler  <darin@apple.com>
1697
1698         Reviewed by Maciej.
1699
1700         - fix <rdar://problem/5636065> First form of SQLTransaction.executeSql() fails with TYPE_ERROR dom exception
1701
1702         Test: storage/execute-sql-args.html
1703
1704         * bindings/js/JSSQLTransactionCustom.cpp:
1705         (WebCore::JSSQLTransaction::executeSql): Added exception handling code so that once an
1706         exception happens, we won't try to do any more argument processing. Changed processing
1707         of the second argument so that we allow an undefined value or null, and simply omit the
1708         array. Changed processing of the second argument so that we don't require an actual
1709         JavaScript array. Instead, as with the JavaScript array operations themselves, we use
1710         the length property and corresponding numeric properties of the object, allowing other
1711         objects to act as arrays. Changed processing of the third and fourth arguments to
1712         allow the undefined value as well as null; we check the value of the argument rather
1713         than looking at the size of the passed-in arguments list.
1714
1715 2007-12-16  Sam Weinig  <sam@webkit.org>
1716
1717         Reviewed by Darin.
1718
1719         More of http://bugs.webkit.org/show_bug.cgi?id=16385
1720         Cleanup kjs_window
1721
1722         - Move PausedTimeouts into its own file and put it in the WebCore namespace.
1723
1724         * WebCore.pro:
1725         * WebCore.vcproj/WebCore.vcproj:
1726         * WebCore.xcodeproj/project.pbxproj:
1727         * WebCoreSources.bkl:
1728         * bindings/js/PausedTimeouts.cpp: Copied from bindings/js/kjs_window.cpp.
1729         * bindings/js/PausedTimeouts.h: Copied from bindings/js/kjs_window.h.
1730         * bindings/js/kjs_window.cpp:
1731         (KJS::Window::pauseTimeouts):
1732         * bindings/js/kjs_window.h:
1733         * history/CachedPage.cpp:
1734         * history/CachedPage.h:
1735         * page/Chrome.cpp:
1736
1737 2007-12-16  Beth Dakin  <bdakin@apple.com>
1738
1739         Reviewed by Geoff.
1740
1741         Make relative-size SVGs work in border-image.
1742
1743         * rendering/RenderBox.cpp:
1744         (WebCore::RenderBox::calculateBackgroundSize):
1745         * rendering/RenderObject.cpp:
1746         (WebCore::RenderObject::paintBorderImage):
1747
1748 2007-12-16  Darin Adler  <darin@apple.com>
1749
1750         - fix Tiger build (my fault it was broken)
1751
1752         * rendering/RenderThemeMac.mm: Define NSUInteger if on Tiger.
1753
1754 2007-12-16  Andrew Wellington  <proton@wiretapped.net>
1755
1756         Reviewed by Darin.
1757         
1758         http://bugs.webkit.org/show_bug.cgi?id=6129
1759         Incomplete implementation of CSS 2.1 system colors
1760
1761         Test: fast/css/css2-system-color.html
1762         
1763         Based on original patch by Rob Buis.
1764         
1765         System colors are retrieved from NSColor as appropriate. If the color is a pattern color
1766         (and therefore NSColor won't let us retrieve a color from it) we draw a 1x1 image of the
1767         color and sample that to get a solid color.
1768
1769         * css/CSSStyleSelector.cpp:
1770         (WebCore::):
1771         (WebCore::colorForCSSValue):
1772         * rendering/RenderTheme.cpp:
1773         (WebCore::RenderTheme::systemColor):
1774         * rendering/RenderTheme.h:
1775         * rendering/RenderThemeMac.h:
1776         * rendering/RenderThemeMac.mm:
1777         (WebCore::getSystemColor):
1778         (WebCore::RenderThemeMac::platformColorsDidChange):
1779         (WebCore::RenderThemeMac::systemColor):
1780
1781 2007-12-16  Dan Bernstein  <mitz@apple.com>
1782
1783         Reviewed by Darin Adler.
1784
1785         - fix http://bugs.webkit.org/show_bug.cgi?id=16426
1786           Divs with overflow:auto: scrollbars not correctly updated when contents change
1787
1788         Test: fast/overflow/scrollbar-position-update.html
1789
1790         * platform/mac/PlatformScrollBarMac.mm:
1791         (WebCore::PlatformScrollbar::updateThumbProportion): Update the
1792         NSScroller's value for the new proportions.
1793         * rendering/RenderLayer.cpp:
1794         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed unnecessary
1795         repaint(). Scrollbars repaint themselves as needed.
1796
1797 2007-12-16  Alexey Proskuryakov  <ap@webkit.org>
1798
1799         Reviewed by Darin.
1800
1801         http://bugs.webkit.org/show_bug.cgi?id=14140
1802         <rdar://problem/5270958> REGRESSION: Complex system KeyBindings don't work properly
1803
1804         * dom/KeyboardEvent.h:
1805         (WebCore::KeypressCommand::KeypressCommand):
1806         (WebCore::KeyboardEvent::keypressCommands):
1807         Change stored command class to preserve complete information about commands.
1808
1809         * editing/EditorCommand.cpp: (WebCore::CommandEntry::): Mark InsertText as a text insertion
1810         command, which it is. Previously, we couldn't do it because WebKit didn't really treat insertText:
1811         as a command.
1812
1813         * page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Copy commands saved while interpreting
1814         a keydown event into keypress, to avoid losing state when running interpretKeyEvents: again.
1815
1816 2007-12-16  Alexey Proskuryakov  <ap@webkit.org>
1817
1818         Reviewed by Darin.
1819
1820         http://bugs.webkit.org/show_bug.cgi?id=16462
1821         REGRESSION: access keys broken on Windows
1822
1823         * page/EventHandler.cpp:
1824         (WebCore::EventHandler::handleAccessKey):
1825         (WebCore::EventHandler::keyEvent):
1826         * page/EventHandler.h:
1827         Make handleAccessKey a class method; rely on WebKit to call it on Windows and wxWidgets.
1828
1829 2007-12-16  Xan Lopez  <xan@gnome.org>
1830
1831         Reviewed by Alexey Proskuryakov.
1832
1833         http://bugs.webkit.org/show_bug.cgi?id=16454
1834         [GTK] Text input doesn't work consistently on PPC
1835
1836         * platform/gtk/KeyEventGtk.cpp:
1837         (WebCore::singleCharacterString):
1838
1839         UChar is 2 bytes (UTF-16), so transform accordingly from
1840         gunichar (UCS-4). Fixes keyboard input on big endian systems.
1841
1842 2007-12-15  Darin Adler  <darin@apple.com>
1843
1844         Reviewed by Mark Rowe.
1845
1846         - better build fix for the problem affecting GTK and some other platforms
1847           "this time for sure"
1848
1849         * WebCore.xcodeproj/project.pbxproj:
1850         * bindings/js/JSEventTargetBase.cpp: Move the include of the .lut.h file here.
1851         * bindings/js/JSEventTargetBase.h: Instead of including the .lut.h file in the header,
1852         which won't work, declare the tables that are in the .lut.h file in the header.
1853
1854 2007-12-12  Kevin Watters  <kevin@dotsyntax.com>
1855
1856         Reviewed by Darin Adler.
1857
1858         Fixed the Wx port's FontPlatformData for use in HashTable.
1859         - FontPlatformData(Deleted) made unequal to FontPlatformData()
1860
1861         * platform/graphics/wx/FontPlatformData
1862
1863 2007-12-15  Dan Bernstein  <mitz@apple.com>
1864
1865         Reviewed by Darin Adler.
1866
1867         - fix <rdar://problem/5636090> Text in Georgia, Armenian, Inuktitut, Cree, or Cherokee (KA, HY, IU, CR, CHR) draws as all missing glyphs
1868
1869         * platform/graphics/win/FontCacheWin.cpp:
1870         (WebCore::metaFileEnumProc): Added. Called during metafile record
1871         enumeration and extracts the font from the create font record.
1872         (WebCore::FontCache::getFontDataForCharacters): If font linking fails,
1873         let Uniscribe draw the characters and see what font it chooses.
1874
1875 2007-12-15  Darin Adler  <darin@apple.com>
1876
1877         * WebCore.pro: Roll my last change out. Was wrong and didn't fix the build.
1878
1879 2007-12-15  Darin Adler  <darin@apple.com>
1880
1881         Another try at a GTK build fix.
1882
1883         * WebCore.pro: Add JSEventTargetBase.cpp to LUT_TABLE_FILES instead of LUT_FILES.
1884
1885 2007-12-15  Sam Weinig  <sam@webkit.org>
1886
1887         Force windows to regenerate COM DOM bindings.
1888
1889         * WebCore.vcproj/build-generated-files.sh: Add license. 
1890         * bindings/scripts/CodeGeneratorCOM.pm: Use shared WK_ucfirst.
1891
1892 2007-12-15  Sam Weinig  <sam@webkit.org>
1893
1894         Fix Windows and wx builds.
1895
1896         * WebCore.vcproj/WebCore.vcproj:
1897         * WebCoreSources.bkl:
1898
1899 2007-12-15  Mark Rowe  <mrowe@apple.com>
1900
1901         Gtk build fix.  Add JSEventTargetBase.cpp to SOURCES.
1902
1903         * WebCore.pro:
1904
1905 2007-12-15  Sam Weinig  <sam@webkit.org>
1906
1907         Fix wx build.
1908
1909         * WebCoreSources.bkl:
1910
1911 2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>
1912
1913         Not reviewed. Build fix for Qt/Gtk.
1914
1915         * WebCore.pro: Include JSEventTargetBase.lut.h in generation
1916
1917 2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>
1918
1919         Reviewed by Eric.
1920
1921         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16445 (Refactor EventTargetNode & JSEventTargetNode for an upcoming SVG patch)
1922
1923         Split up JSEventTargetNode in JSEventTargetNode & JSEventTargetBase - where most functionality has been moved down
1924         in the base class. Applied the same refactorization to EventTargetNode.
1925
1926         This makes it possible for the upcoming patch implementing the EventTarget interface for SVGElementInstance
1927         to share as much code as possible with the EventTargetNode classes.
1928
1929         * DerivedSources.make:
1930         * WebCore.xcodeproj/project.pbxproj:
1931         * bindings/js/JSEventTargetBase.cpp: Added.
1932         (WebCore::retrieveEventTargetAndCorrespondingNode):
1933         (WebCore::eventNameForPropertyToken):
1934         * bindings/js/JSEventTargetBase.h: Added.
1935         (WebCore::JSEventTargetProperties::):
1936         (WebCore::JSEventTargetPrototypeFunctionBase::JSEventTargetPrototypeFunctionBase):
1937         (WebCore::JSEventTargetPrototypeFunction::JSEventTargetPrototypeFunction):
1938         (WebCore::):
1939         (WebCore::::create):
1940         (WebCore::JSEventTargetBase::JSEventTargetBase):
1941         (WebCore::JSEventTargetBase::getValueProperty):
1942         (WebCore::JSEventTargetBase::putValueProperty):
1943         (WebCore::JSEventTargetBase::getOwnPropertySlot):
1944         (WebCore::JSEventTargetBase::put):
1945         (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
1946         (WebCore::JSEventTargetPrototype::self):
1947         (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
1948         (WebCore::JSEventTargetPrototype::classInfo):
1949         * bindings/js/JSEventTargetNode.cpp:
1950         (WebCore::JSEventTargetNode::getOwnPropertySlot):
1951         (WebCore::JSEventTargetNode::getValueProperty):
1952         (WebCore::JSEventTargetNode::put):
1953         (WebCore::JSEventTargetNode::putValueProperty):
1954         (WebCore::JSEventTargetNode::setListener):
1955         (WebCore::toEventTargetNode):
1956         * bindings/js/JSEventTargetNode.h:
1957         (WebCore::JSEventTargetPrototypeInformation::prototypeClassName):
1958         (WebCore::JSEventTargetPrototypeInformation::prototypeIdentifier):
1959         * dom/EventTarget.cpp:
1960         (WebCore::EventTarget::addEventListener):
1961         (WebCore::EventTarget::removeEventListener):
1962         (WebCore::EventTarget::dispatchGenericEvent):
1963         (WebCore::EventTarget::removeAllEventListeners):
1964         (WebCore::EventTarget::insertedIntoDocument):
1965         (WebCore::EventTarget::removedFromDocument):
1966         (WebCore::EventTarget::handleLocalEvents):
1967         (WebCore::EventTarget::applySVGEventTargetRules):
1968         (WebCore::forbidEventDispatch):
1969         (WebCore::allowEventDispatch):
1970         (WebCore::eventDispatchForbidden):
1971         * dom/EventTarget.h:
1972         (WebCore::EventTarget::preDispatchEventHandler):
1973         (WebCore::EventTarget::postDispatchEventHandler):
1974         (WebCore::forbidEventDispatch):
1975         (WebCore::allowEventDispatch):
1976         * dom/EventTargetNode.cpp:
1977         (WebCore::EventTargetNode::~EventTargetNode):
1978         (WebCore::EventTargetNode::insertedIntoDocument):
1979         (WebCore::EventTargetNode::removedFromDocument):
1980         (WebCore::EventTargetNode::addEventListener):
1981         (WebCore::EventTargetNode::removeEventListener):
1982         (WebCore::EventTargetNode::removeAllEventListeners):
1983         (WebCore::EventTargetNode::handleLocalEvents):
1984         (WebCore::EventTargetNode::dispatchEvent):
1985         (WebCore::EventTargetNode::dispatchWindowEvent):
1986         * dom/EventTargetNode.h:
1987         (WebCore::EventTargetNode::localEventListeners):
1988         * svg/SVGElement.cpp:
1989         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
1990         (WebCore::SVGElement::dispatchEvent):
1991
1992 2007-12-15  Eric Seidel  <eric@webkit.org>
1993
1994         Reviewed by Oliver.
1995         
1996         Width of SVG elements not applied to container elements
1997         http://bugs.webkit.org/show_bug.cgi?id=16305
1998         Added calcPrefWidths for RenderSVGRoot (copied from RenderReplaced)
1999         This is caused by poor factoring in the render tree.  RenderContainer probably should be a template.
2000
2001         svg/css/css-box-min-width.html
2002
2003         * rendering/RenderSVGRoot.cpp:
2004         (WebCore::RenderSVGRoot::calcPrefWidths): Added.
2005         * rendering/RenderSVGRoot.h:
2006         * css/SVGCSSStyleSelector::applySVGProperty: fixed ASSERT in debug builds
2007
2008 2007-12-15  David Kilzer  <ddkilzer@apple.com>
2009
2010         Fix comment after isSafeScript() was renamed to allowsAccessFrom().
2011
2012         * bindings/js/kjs_window.cpp:
2013         (KJS::createWindow):
2014
2015 2007-12-15  Alp Toker  <alp@atoker.com>
2016
2017         Reviewed by Mark Rowe.
2018
2019         http://bugs.webkit.org/show_bug.cgi?id=16449
2020         cairo_arc() functions hang or crash when passed inf as radius or start/end angle
2021
2022         Add checks. This matches a similar workaround for a CG bug in the CG
2023         graphics backend: <rdar://problem/5189233>
2024
2025         Fixes:
2026           fast/canvas/arc-crash.html
2027           fast/canvas/canvas-with-incorrect-args.html
2028
2029         * platform/graphics/cairo/PathCairo.cpp:
2030         (WebCore::Path::addArc):
2031
2032 2007-12-15  Alexey Proskuryakov  <ap@webkit.org>
2033
2034         Reviewed by Darin.
2035
2036         http://bugs.webkit.org/show_bug.cgi?id=16078
2037         Google Maps zooming via the scroll wheel (almost) always zooms IN only.
2038
2039         * dom/WheelEvent.cpp: (WebCore::WheelEvent::WheelEvent):
2040         Ensure that delta is never rounded down to zero - we are getting values less than 1 from 
2041         many mice on OS X, and Google Maps code assumes scrolling up if event.wheelDelta is zero.
2042
2043 2007-12-14  Dan Bernstein  <mitz@apple.com>
2044
2045         - Windows build fix
2046
2047         * WebCore.vcproj/WebCore.vcproj:
2048
2049 2007-12-14  Alp Toker  <alp@atoker.com>
2050
2051         GTK+/Qt build fix. Track added files in r28722.
2052
2053         * WebCore.pro:
2054
2055 2007-12-14  Sam Weinig  <sam@webkit.org>
2056
2057         Reviewed by Geoff.
2058
2059         Speed up getElementByClassName.
2060         - This makes getElementByClassName 33% faster on the stress test
2061           linked to at http://bugs.webkit.org/show_bug.cgi?id=15760.
2062
2063         * platform/text/StringImpl.cpp:
2064         (WebCore::StringImpl::foldCase): Optimize the case when all the characters are ASCII.
2065
2066 2007-12-14  Alp Toker  <alp@atoker.com>
2067
2068         Reviewed by Maciej.
2069
2070         http://bugs.webkit.org/show_bug.cgi?id=16432
2071         [GTK] Update license headers
2072
2073         Consent has been given by the authors of these files to change license
2074         to the LGPL as outlined in the bug report.
2075
2076         * platform/gtk/ClipboardGtk.cpp:
2077         * platform/gtk/ContextMenuGtk.cpp:
2078         * platform/gtk/ContextMenuItemGtk.cpp:
2079         * platform/gtk/CookieJarGtk.cpp:
2080         * platform/gtk/CursorGtk.cpp:
2081         * platform/gtk/DragDataGtk.cpp:
2082         * platform/gtk/DragImageGtk.cpp:
2083         * platform/gtk/PasteboardGtk.cpp:
2084         * platform/gtk/PlatformScreenGtk.cpp:
2085         * platform/gtk/PlatformScrollBarGtk.cpp:
2086         * platform/gtk/SearchPopupMenuGtk.cpp:
2087         * platform/gtk/WidgetGtk.cpp:
2088
2089 2007-12-14  Darin Adler  <darin@apple.com>
2090
2091         Reviewed by Adele.
2092
2093         - fix http://bugs.webkit.org/show_bug.cgi?id=16442
2094           navigation policy delegate gets called twice for each load
2095
2096         * loader/MainResourceLoader.cpp:
2097         (WebCore::MainResourceLoader::willSendRequest): Removed call to checkNavigationPolicy.
2098         That's handled by FrameLoader.
2099
2100         * loader/MainResourceLoader.h: Removed callContinueAfterNavigationPolicy
2101         and continueAfterNavigationPolicy.
2102
2103 2007-12-14  Anders Carlsson  <andersca@apple.com>
2104
2105         Reviewed by Brady.
2106
2107         Make document.open count as committing a document load, so that -[WebFrame dataSource:] won't
2108         return nil in that case.
2109         
2110         * loader/FrameLoader.cpp:
2111         (WebCore::FrameLoader::didExplicitOpen):
2112
2113 2007-12-14  David Smith  <catfish.man@gmail.com>
2114
2115         Reviewed by Mitz.
2116
2117         - fix http://bugs.webkit.org/show_bug.cgi?id=14955
2118           Implement getElementsByClassName.
2119
2120         This patch also renames AtomicStringList to ClassNames to better reflect its actual use,
2121         and takes advantage of admitting that it's class-specific to encapsulate class attribute 
2122         parsing so it can be shared.  It also changes the class to use a Vector, rather than a linked
2123         list to store the class names.
2124
2125         Tests: fast/dom/getElementsByClassName/001.html
2126                fast/dom/getElementsByClassName/002.html
2127                fast/dom/getElementsByClassName/003.html
2128                fast/dom/getElementsByClassName/004.html
2129                fast/dom/getElementsByClassName/005.html
2130                fast/dom/getElementsByClassName/006.html
2131                fast/dom/getElementsByClassName/007.html
2132                fast/dom/getElementsByClassName/008.html
2133                fast/dom/getElementsByClassName/009.html
2134                fast/dom/getElementsByClassName/010.xml
2135                fast/dom/getElementsByClassName/011.xml
2136                fast/dom/getElementsByClassName/012.html
2137                fast/dom/getElementsByClassName/013.html
2138                fast/dom/getElementsByClassName/014.html
2139                fast/dom/getElementsByClassName/array/001.html
2140                fast/dom/getElementsByClassName/array/002.html
2141                fast/dom/getElementsByClassName/array/003.html
2142                fast/dom/getElementsByClassName/array/004.html
2143                fast/dom/getElementsByClassName/dumpNodeList.html
2144
2145         * WebCore.xcodeproj/project.pbxproj:
2146         * css/CSSStyleSelector.cpp:
2147         (WebCore::CSSStyleSelector::matchRules):
2148         (WebCore::CSSStyleSelector::checkOneSelector):
2149         * dom/AtomicStringList.h: Removed.
2150         * dom/ClassNames.cpp: Added.
2151         (WebCore::ClassNames::contains):
2152         (WebCore::ClassNames::parseClassAttribute):
2153         * dom/ClassNames.h: Copied from WebCore/dom/AtomicStringList.h.
2154         (WebCore::ClassNames::ClassNames):
2155         (WebCore::ClassNames::size):
2156         (WebCore::ClassNames::clear):
2157         (WebCore::ClassNames::operator[]):
2158         (WebCore::isClassWhitespace):
2159         * dom/ClassNodeList.cpp: Added.
2160         (WebCore::ClassNodeList::ClassNodeList):
2161         (WebCore::ClassNodeList::length):
2162         (WebCore::ClassNodeList::item):
2163         (WebCore::ClassNodeList::nodeMatches):
2164         * dom/ClassNodeList.h: Added.
2165         * dom/Document.cpp:
2166         (WebCore::Document::getElementsByName):
2167         (WebCore::Document::getElementsByClassName):
2168         * dom/Document.h:
2169         * dom/Document.idl:
2170         * dom/Element.cpp:
2171         (WebCore::Element::getClassNames):
2172         (WebCore::Element::getElementsByClassName):
2173         * dom/Element.h:
2174         * dom/Element.idl:
2175         * dom/NameNodeList.cpp:
2176         (WebCore::NameNodeList::NameNodeList):
2177         (WebCore::NameNodeList::item):
2178         (WebCore::NameNodeList::nodeMatches):
2179         * dom/NameNodeList.h:
2180         * dom/NamedMappedAttrMap.cpp:
2181         (WebCore::NamedMappedAttrMap::clearAttributes):
2182         (WebCore::NamedMappedAttrMap::parseClassAttribute):
2183         * dom/NamedMappedAttrMap.h:
2184         (WebCore::NamedMappedAttrMap::getClassNames):
2185         * dom/StyledElement.cpp:
2186         (WebCore::StyledElement::getClassNames):
2187         * dom/StyledElement.h:
2188
2189 2007-12-14  Darin Adler  <darin@apple.com>
2190
2191         Reviewed by Sam.
2192
2193         - fix http://bugs.webkit.org/show_bug.cgi?id=16351
2194           FontFallbackList.h doesn't include wtf/PassRefPtr.h
2195           
2196         * platform/graphics/FontFallbackList.h: Added include of <wtf/Forward.h>
2197         * platform/graphics/GlyphPageTreeNode.h: Removed an unneeded include.
2198
2199 2007-12-14  Darin Adler  <darin@apple.com>
2200
2201         Reviewed by Alexey.
2202
2203         - http://bugs.webkit.org/show_bug.cgi?id=16420
2204           change regression tests to use document.execCommand instead of textInputController.doCommand
2205
2206         Add a few more operations to document.execCommand.
2207
2208         Finished up the transition to the new Editor::Command, including removing
2209         the Editor::execCommand function.
2210
2211         * WebCore.base.exp: Added Editor::Command::isSupported.
2212         * editing/Editor.h: Removed execCommand.
2213         * editing/EditorCommand.cpp:
2214         (WebCore::expandSelectionToGranularity): Added.
2215         (WebCore::verticalScrollDistance): Added; replaces canScroll.
2216         (WebCore::executeDeleteBackward): Added. Moved code here from WebHTMLView.
2217         (WebCore::executeDeleteBackwardByDecomposingPreviousCharacter): Ditto.
2218         (WebCore::executeDeleteForward): Ditto.
2219         (WebCore::executeDeleteToBeginningOfLine): Ditto.
2220         (WebCore::executeDeleteToBeginningOfParagraph): Ditto.
2221         (WebCore::executeDeleteToEndOfLine): Ditto.
2222         (WebCore::executeDeleteToEndOfParagraph): Ditto.
2223         (WebCore::executeMovePageDown): Renamed this command to be consistent with all the other
2224         Move commands. They all modify the caret. Reimplemented to match the Mac OS X version by
2225         removing the explicit scrolling, and letting it be done automatically by code that makes
2226         the caret visible. In some cases the old code would scroll twice which was harmless but
2227         unnecessary.
2228         (WebCore::executeMovePageDownAndModifySelection): Added. Moved code here from WebHTMLView.
2229         (WebCore::executeMovePageUp): See MovePageDown above.
2230         (WebCore::executeMovePageUpAndModifySelection): Added. Moved code here from WebHTMLView.
2231         (WebCore::executeSelectLine): Ditto.
2232         (WebCore::executeSelectParagraph): Ditto.
2233         (WebCore::executeSelectSentence): Ditto.
2234         (WebCore::executeSelectWord): Ditto.
2235         (WebCore::executeSwapWithMark): Some small tweaks.
2236
2237         * page/ContextMenuController.cpp:
2238         (WebCore::ContextMenuController::contextMenuItemSelected): Changed to use Editor::command()
2239         instead of Editor::execCommand(). This code could be changed to use Editor::Command quite a
2240         bit more, but I didn't do that this time.
2241
2242         - Removed some obsolete unused code.
2243
2244         * page/mac/EventHandlerMac.mm:
2245         (WebCore::EventHandler::passMouseDownEventToWidget): Removed the special case code for
2246         NSTextView. This was left over from when we used NSTextField and NSTextView for form
2247         elements and is no longer used at all.
2248
2249         * page/mac/WebCoreFrameBridge.h: Removed 20 unused methods that were still on one side
2250         of the bridge or another. We really need to find a time to tear down the rest of the
2251         bridge, but that's not this patch.
2252
2253         * page/mac/WebCoreFrameBridge.mm:
2254         (-[WebCoreFrameBridge addData:]): Changed to get at the _shouldCreateRenderers field directly
2255         instead of using a method.
2256         (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
2257         Took out obsolete comment about matching enums (we use a single enum now and have for some
2258         time).
2259         (-[WebCoreFrameBridge selectionGranularity]): Ditto.
2260
2261 2007-12-14  Justin Garcia  <justin.garcia@apple.com>
2262
2263         Reviewed by Darin Adler.
2264
2265         <rdar://problem/5575101> GoogleDocs: Hang in SplitElementCommand::doApply when outdenting a list item in a particular list
2266
2267         * editing/CompositeEditCommand.cpp:
2268         (WebCore::CompositeEditCommand::splitTreeToNode): Moved here.
2269         * editing/CompositeEditCommand.h:
2270         * editing/IndentOutdentCommand.cpp: Moved splitTreeToNode.
2271         * editing/IndentOutdentCommand.h: Ditto, and removed unimplemented splitTreeTo.
2272         * editing/InsertListCommand.cpp:
2273         (WebCore::InsertListCommand::doApply): Split ancestors of listChildNode between
2274         it and listNode, if they exists, so that moving listChildNode doesn't put it out
2275         of order.  Added a test case to cover each change.
2276         * editing/SplitElementCommand.cpp:
2277         (WebCore::SplitElementCommand::doApply): Added an ASSERT to catch code that
2278         tries to split a container at a bogus child, and an early return to avoid a
2279         hang in that case.
2280
2281 2007-12-14  Anders Carlsson  <andersca@apple.com>
2282
2283         Reviewed by Darin and Geoff.
2284
2285         <rdar://problem/5619295> 
2286         REGRESSION: 303-304: Embedded YouTube video fails to render- JS errors (16150) (Flash 9)
2287
2288         _NPN_CreateScriptObject doesn't take an origin root object anymore.
2289         
2290         * html/HTMLPlugInElement.cpp:
2291         (WebCore::HTMLPlugInElement::createNPObject):
2292         * page/Frame.cpp:
2293         (WebCore::Frame::windowScriptNPObject):
2294
2295 2007-12-14  Dan Bernstein  <mitz@apple.com>
2296
2297         Reviewed by Darin Adler.
2298
2299         - fix <rdar://problem/5643663> text-shadow and box-shadow offsets 1px smaller than specified
2300           which is the root cause of:
2301           http://bugs.webkit.org/show_bug.cgi?id=12943
2302           box-shadow: small values don't affect shadow position
2303           http://bugs.webkit.org/show_bug.cgi?id=14736
2304           Safari implementation of text-shadow off by 1px
2305
2306         * platform/graphics/cg/GraphicsContextCG.cpp:
2307         (WebCore::GraphicsContext::setShadow): Slightly increase the magnitude
2308         of the offsets passed to CGContextSetShadow* to ensure that the end
2309         result after truncation is the desired integer offsets.
2310
2311 2007-12-13  Alp Toker  <alp@atoker.com>
2312
2313         curl backend build fix for breakage introduced in r28709.
2314
2315         * platform/network/ResourceHandleInternal.h:
2316         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
2317
2318 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
2319
2320         Reviewed by Oliver Hunt.
2321
2322         <rdar://problem/5607069> In Mail, a crash occurs at WebCore::AppendNodeCommand() after dragging image into a <FORM> element
2323
2324         * editing/InsertLineBreakCommand.cpp:
2325         (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Equip this function to
2326         handle editing positions, like [input, 0];
2327         * editing/InsertParagraphSeparatorCommand.cpp:
2328         (WebCore::InsertParagraphSeparatorCommand::doApply): Pass enclosingBlock a node peeled
2329         off of a non-editing position, to fix a bug where the enclosing block of [input, 0] was
2330         the input element itself.
2331         Insert a <br> when a <form> element is the enclosing block instead of splitting/cloning or
2332         nesting a <div>.
2333
2334 2007-12-13  Alp Toker  <alp@atoker.com>
2335
2336         Reviewed by Oliver Hunt.
2337
2338         http://bugs.webkit.org/show_bug.cgi?id=16365
2339         [cURL] Acid2 test segmentation fault
2340
2341         This patch makes the Acid2 test pass.
2342
2343         Defer the cleanup of cancelled jobs and halt further transfer as early
2344         as possible.
2345
2346         Bug found by and initial patch provided by Luca Bruno.
2347
2348         * platform/network/curl/ResourceHandleManager.cpp:
2349         (WebCore::writeCallback):
2350         (WebCore::headerCallback):
2351         (WebCore::ResourceHandleManager::downloadTimerCallback):
2352         (WebCore::ResourceHandleManager::cancel):
2353
2354 2007-12-13  Sam Weinig  <sam@webkit.org>
2355
2356         Reviewed by Mark Rowe.
2357
2358         Fix typos and rename InspectorController::moveByUnrestricted to InspectorController::moveWindowBy.
2359
2360         * page/InspectorController.cpp:
2361         (WebCore::moveByUnrestricted):
2362         (WebCore::InspectorController::windowScriptObjectAvailable):
2363         (WebCore::InspectorController::moveWindowBy):
2364         * page/InspectorController.h:
2365         * page/inspector/inspector.js:
2366
2367 2007-12-13  Dan Bernstein  <mitz@apple.com>
2368
2369         Reviewed by Dave Hyatt.
2370
2371         - fix <rdar://problem/5642426> explicit cubic-bezier curves all treated as "default" for transition-timing-function
2372
2373         Test: fast/css/transition-timing-function.html
2374
2375         * css/CSSStyleSelector.cpp: Changed the HANDLE_MULTILAYER_VALUE macro to
2376         not reject non-primitive non-list values, and instead made sure that the
2377         mapping functions rejected them if necessary. This allows non-primitive
2378         timing functions to be mapped.
2379         (WebCore::CSSStyleSelector::mapBackgroundAttachment):
2380         (WebCore::CSSStyleSelector::mapBackgroundClip):
2381         (WebCore::CSSStyleSelector::mapBackgroundComposite):
2382         (WebCore::CSSStyleSelector::mapBackgroundOrigin):
2383         (WebCore::CSSStyleSelector::mapBackgroundImage):
2384         (WebCore::CSSStyleSelector::mapBackgroundRepeat):
2385         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
2386         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
2387         (WebCore::CSSStyleSelector::mapTransitionDuration):
2388         (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
2389         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
2390         (WebCore::CSSStyleSelector::mapTransitionProperty):
2391         * css/CSSTimingFunctionValue.cpp:
2392         (WebCore::CSSTimingFunctionValue::cssText): Implemented for use in the
2393         regression test.
2394         * css/CSSTimingFunctionValue.h:
2395         (WebCore::CSSTimingFunctionValue::isTransitionTimingFunctionValue):
2396         Added. Returns true.
2397         * css/CSSValue.h:
2398         (WebCore::CSSValue::isTransitionTimingFunctionValue): Added. Returns
2399         false.
2400
2401 2007-12-13  Steve Falkenburg  <sfalken@apple.com>
2402
2403         Move source file generation into its own vcproj to fix build dependencies.
2404
2405         Reviewed by Adam.
2406
2407         * WebCore.vcproj/WebCore.make:
2408         * WebCore.vcproj/WebCore.sln:
2409         * WebCore.vcproj/WebCore.submit.sln:
2410         * WebCore.vcproj/WebCore.vcproj:
2411         * WebCore.vcproj/WebCoreGenerated.vcproj: Added.
2412
2413 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
2414
2415         Reviewed by Oliver Hunt.
2416         
2417         <rdar://problem/4145786> Undoing a color change of text in a compose window always changes it back to black
2418         
2419         Some of the operations performed in removeHTMLFontStyle were non-undoable.
2420         
2421         I'm having trouble writing a layout test for this because I can't get DRT to
2422         perform editing operations in separate Undo steps without adding unacceptably long
2423         wait times between operations.  I filed:
2424         
2425         <rdar://problem/5646779> Can't get DRT to perform editing operations in separate Undo steps
2426
2427         * editing/ApplyStyleCommand.cpp:
2428         (WebCore::ApplyStyleCommand::removeHTMLFontStyle):
2429
2430 2007-12-13  Sam Weinig  <sam@webkit.org>
2431
2432         Reviewed by Anders.
2433
2434         Fix for http://bugs.webkit.org/show_bug.cgi?id=16352
2435         Toolbar dragged inspector cannot be moved beyond screen edges
2436
2437         * page/InspectorController.cpp:
2438         (WebCore::moveByUnrestricted):
2439         (WebCore::InspectorController::windowScriptObjectAvailable):
2440         (WebCore::InspectorController::moveByUnrestricted):
2441         * page/InspectorController.h:
2442         * page/inspector/inspector.js:
2443
2444 2007-12-13  Adam Roben  <aroben@apple.com>
2445
2446         Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked
2447
2448         Windows Media Player has a modal message loop that will deliver
2449         messages to us at inappropriate times and we will crash if we handle
2450         them when they are delivered. In PluginViewWin, we add a quirk for
2451         Media Player to set a flag whenever we give the plugin a chance to
2452         execute code, and in SharedTimerWin we check if the plugin is
2453         executing code and repost messages if so.
2454
2455         Reviewed by Anders.
2456
2457         * platform/win/SharedTimerWin.cpp:
2458         (WebCore::TimerWindowWndProc): Repost messages if we're calling a
2459         plugin.
2460         * plugins/win/PluginViewWin.cpp: Surround all calls to the plugin with
2461         setCallingPlugin(true/false).
2462         (WebCore::PluginViewWin::updateWindow):
2463         (WebCore::PluginViewWin::dispatchNPEvent):
2464         (WebCore::PluginViewWin::setNPWindowRect):
2465         (WebCore::PluginViewWin::start):
2466         (WebCore::PluginViewWin::stop):
2467         (WebCore::PluginViewWin::performRequest):
2468         (WebCore::PluginViewWin::bindingInstance):
2469         (WebCore::PluginViewWin::determineQuirks):
2470         (WebCore::PluginViewWin::setCallingPlugin): Added.
2471         (WebCore::PluginViewWin::isCallingPlugin): Added.
2472         * plugins/win/PluginViewWin.h: Added a new quirk.
2473
2474 2007-12-13  Alp Toker  <alp@atoker.com>
2475
2476         Add a missing DEPENDPATH. Fixes non-clean builds following networking
2477         header changes.
2478
2479         * WebCore.pro:
2480
2481 2007-12-13  Dan Bernstein  <mitz@apple.com>
2482
2483         Reviewed by Anders Carlsson.
2484
2485         - fix regression in fast/text/international/bidi-override on Tiger
2486
2487         * platform/graphics/GlyphPageTreeNode.cpp:
2488         (WebCore::GlyphPageTreeNode::initializePage): Add bidi overrides here
2489         too. I forgot to add them when I added them to treatAsZeroWidthSpace in
2490         an earlier patch.
2491
2492 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
2493
2494         Reviewed by Darin Adler.
2495
2496         <rdar://problem/5601583> GMail Editor: Copied link doesn't paste as a link, just colored text
2497         
2498         The code that checks the selected Range to see if it's inside an anchor
2499         checks ancestors of the Range's commonAncestor() but not the
2500         commonAncestor() itself, and so we'd fail to add markup for the enclosing
2501         anchor to the pasteboard.
2502         
2503         Some enclosing element getters check the node passed to the getter and some
2504         don't.  There were a few places where we incorrectly assumed that enclosing 
2505         element getters check the node passed to the getter, but this is the only 
2506         case that I'm able to write a test case for at the moment.
2507         
2508         In this patch I've:
2509         Changed enclosingNodeWithType and enclosingNodeWithTag to take in positions,
2510         like the newer enclosing element getters.  This is important because we must
2511         soon add code to the getters so that they understand that some editing positions
2512         inside nodes don't actually refer to positions inside those nodes but positions
2513         before and after them.  Like [table, 0].
2514         Changed enclosingNodeWithType and enclosingNodeWithTag to check nodes starting with
2515         n where [n, o] is the position passed to the getter, instead of starting the the parent
2516         of n.  This makes all but a few of the enclosing element getters behave consistently.
2517         Changed enclosingNodeWithType and enclosingNodeWithTag to not return non-editable 
2518         nodes if the input position was editable.  This fixes a bug that that the above change
2519         exposed.
2520         Changed enclosingTableCell to simply call enclosingNodeWithType.  We should do
2521         this for the rest of the getters, or simply remove them in favor of enclosingNodeWithType
2522         unless doing so would affect readability, like it would in the case of enclosingTableCell.
2523         Ditto for enclosingBlock.
2524
2525         * editing/AppendNodeCommand.cpp:
2526         (WebCore::AppendNodeCommand::doApply):
2527         * editing/DeleteButtonController.cpp:
2528         (WebCore::enclosingDeletableElement):
2529         * editing/DeleteSelectionCommand.cpp:
2530         (WebCore::DeleteSelectionCommand::initializePositionData):
2531         (WebCore::DeleteSelectionCommand::saveFullySelectedAnchor):
2532         * editing/Editor.cpp:
2533         (WebCore::Editor::selectionUnorderedListState):
2534         (WebCore::Editor::selectionOrderedListState):
2535         * editing/IndentOutdentCommand.cpp:
2536         (WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
2537         (WebCore::IndentOutdentCommand::outdentParagraph):
2538         * editing/InsertNodeBeforeCommand.cpp:
2539         (WebCore::InsertNodeBeforeCommand::doApply):
2540         * editing/InsertParagraphSeparatorCommand.cpp:
2541         (WebCore::InsertParagraphSeparatorCommand::doApply):
2542         * editing/ReplaceSelectionCommand.cpp:
2543         (WebCore::ReplaceSelectionCommand::shouldMerge):
2544         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
2545         (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
2546         * editing/TextIterator.cpp:
2547         * editing/htmlediting.cpp:
2548         (WebCore::enclosingBlock):
2549         (WebCore::enclosingNodeWithTag):
2550         (WebCore::enclosingNodeOfType):
2551         (WebCore::enclosingTableCell):
2552         (WebCore::isTableCell):
2553         * editing/htmlediting.h:
2554         * editing/markup.cpp:
2555         (WebCore::appendStartMarkup):
2556         (WebCore::createMarkup):
2557
2558 2007-12-13  Alexey Proskuryakov  <ap@webkit.org>
2559
2560         Reviewed by Darin.
2561
2562         Turn on keyboard event processing quirks for feed views and old applications on Mac OS X.
2563
2564         * WebCore.base.exp:
2565         * dom/KeyboardEvent.cpp:
2566         (WebCore::KeyboardEvent::charCode):
2567         * page/EventHandler.cpp:
2568         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
2569         (WebCore::EventHandler::keyEvent):
2570         * page/EventHandler.h:
2571         * page/Settings.cpp:
2572         (WebCore::Settings::Settings):
2573         (WebCore::Settings::setNeedsKeyboardEventDisambiguationQuirks):
2574         * page/Settings.h:
2575         (WebCore::Settings::needsKeyboardEventDisambiguationQuirks):
2576         * page/mac/EventHandlerMac.mm:
2577         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
2578         * platform/PlatformKeyboardEvent.h:
2579         * platform/mac/KeyEventMac.mm:
2580         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2581         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
2582
2583 2007-12-13  Dan Bernstein  <mitz@apple.com>
2584
2585         - build fix
2586
2587         * platform/network/cf/ResourceErrorCF.cpp:
2588
2589 2007-12-13  Antti Koivisto  <antti@apple.com>
2590
2591         Reviewed by Tim Hatcher.
2592
2593         Fix <rdar://problem/5605674> 
2594         Make <video> display WebKit context menu instead of the QTKit one.
2595     
2596         It doesn't really matter where the QTMovieView is.
2597
2598         * ChangeLog:
2599         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2600         (WebCore::MediaPlayerPrivate::createQTMovieView):
2601         (WebCore::MediaPlayerPrivate::setRect):
2602
2603 2007-12-13  Dan Bernstein  <mitz@apple.com>
2604
2605         Reviewed by Adam Roben.
2606
2607         - ensure that Unicode bidi control characters are rendered as zero width
2608           spaces
2609
2610         Test: fast/text/international/bidi-control-chars-treated-as-ZWS.html
2611
2612         * platform/graphics/Font.h:
2613         (WebCore::Font::treatAsZeroWidthSpace):
2614         * platform/graphics/GlyphPageTreeNode.cpp:
2615         (WebCore::GlyphPageTreeNode::initializePage):
2616         * platform/text/CharacterNames.h:
2617
2618 2007-12-13  Brady Eidson  <beidson@apple.com>
2619
2620         Build fix
2621
2622         * platform/wx/TemporaryLinkStubs.cpp:
2623
2624 2007-12-12  Brady Eidson  <beidson@apple.com>
2625
2626         Build fix
2627
2628         * platform/gtk/TemporaryLinkStubs.cpp:
2629
2630 2007-12-12  Brady Eidson  <beidson@apple.com>
2631
2632         Build fix
2633
2634         * WebCore.pro:
2635         * history/qt/CachedPageQt.cpp: Removed. Whole purpose for this method being platform-specific has been removed
2636
2637 2007-12-12  Brady Eidson  <beidson@apple.com>
2638
2639         Build fix
2640
2641         * platform/win/TemporaryLinkStubs.cpp:
2642
2643 2007-12-12  Brady Eidson  <beidson@apple.com>
2644
2645         Reviewed by Sam Weinig
2646
2647         Fix for <rdar://problem/4886844> and lay groundwork for <rdar://problem/4516170> (Back/Forward Cache on Windows)
2648
2649         All back/forward list and page cache related items used to be in WebKit.
2650         When they were pushed into WebCore, some sloppy compromises were made to keep the Back/Forward cache working on Mac.
2651         Namely, a WebCore::HistoryItem had to know how to keep a WebDocumentView alive.  We accomplished this via some #ifdefs
2652         in CachedPage and having the Mac-only CachedPageMac.mm
2653
2654         To get rid of that nastiness and pave the way for adding Back/Forward cache on other platforms, this patch adds the 
2655         concept of "CachedPagePlatformData" which can contain anything the platform API wants.  
2656
2657         I also took the opportunity to do other cleanup and renaming client methods to better fit their new purposes.
2658
2659         * WebCore.base.exp:
2660         * WebCore.xcodeproj/project.pbxproj:
2661
2662         * history/CachedPage.cpp:
2663         (WebCore::CachedPage::~CachedPage): Combined "close()" and "clear()" to just "clear()" - call it from here.
2664         (WebCore::CachedPage::clear): Call clear() on the CachedPagePlatformData if it exists.  Also delete the CachedPagePlatformData.
2665         (WebCore::CachedPage::setCachedPagePlatformData):
2666         (WebCore::CachedPage::cachedPagePlatformData):
2667         * history/CachedPage.h:
2668
2669         * history/CachedPagePlatformData.h: Added.
2670         (WebCore::CachedPagePlatformData::~CachedPagePlatformData): Virtual d'tor.
2671         (WebCore::CachedPagePlatformData::clear): Virtual method for platforms that need to do cleanup at the same time as CachedPage::clear().
2672
2673         * history/PageCache.cpp:
2674         (WebCore::PageCache::releaseAutoreleasedPagesNow): Call "clear()" instead of "close()"
2675
2676         * history/mac/CachedPageMac.mm: Removed. Functionality replaced with CachedPagePlatformData.
2677
2678         * loader/FrameLoader.cpp:
2679         (WebCore::FrameLoader::transitionToCommitted): Call the new client methods.  Make some work previously done by WebKitMac cross platform 
2680           (setting the cached DocumentLoader to the Frame).
2681         (WebCore::FrameLoader::cachePageForHistoryItem):  Renamed the client methods
2682
2683         * loader/FrameLoaderClient.h:  The very Mac-centric "makeDocumentView", "setDocumentViewFromCachedPage", and "saveDocumentViewToCachedPage"
2684           become "transitionToCommittedForNewPage", "transitionToCommittedFromCachedPage", and "savePlatformDataToCachedPage" accordingly
2685
2686         * svg/graphics/SVGImageEmptyClients.h:
2687         (WebCore::SVGEmptyFrameLoaderClient::savePlatformDataToCachedPage):
2688         (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedFromCachedPage):
2689         (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedForNewPage):
2690
2691 2007-12-12  Dan Bernstein  <mitz@apple.com>
2692
2693         Reviewed by Oliver Hunt.
2694
2695         - fix <rdar://problem/5074620> text with font:initial; fails to appear (causes fast/text/font-initial.html to fail)
2696
2697         * css/CSSStyleSelector.cpp:
2698         (WebCore::CSSStyleSelector::applyProperty): When the font property is
2699         set to 'initial', set the font size to its initial value, 'medium',
2700         and the font family to the standard family.
2701
2702 2007-12-12  Justin Garcia  <justin.garcia@apple.com>
2703
2704         Reviewed by Darin Adler.
2705
2706         <rdar://problem/5433862> Mail crashes at WebCore::highestAncestor() when deleting a particular selection
2707
2708         * editing/DeleteSelectionCommand.cpp:
2709         (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
2710         Don't remove the table row that contained the end of the selection if it is where we are
2711         about to place the ending selection.
2712         Don't remove all empty rows after the row that contained the start of the selection,
2713         they might come after the row that contained the end of the selection.
2714
2715 2007-12-12  Sam Weinig  <sam@webkit.org>
2716
2717         Reviewed by Anders Carlsson.
2718
2719         Add button to clear the Web Inspector's console.
2720
2721         * English.lproj/InspectorLocalizedStrings.js:
2722         * page/inspector/ConsolePanel.js:
2723         * page/inspector/inspector.css:
2724
2725 2007-12-12  Anders Carlsson  <andersca@apple.com>
2726
2727         Reviewed by Adam and Jon.
2728
2729         <rdar://problem/5349282>
2730         popup blocking is not applied to plugins on Windows.
2731         
2732         Implement popup blocking. If the plug-in supports the new 
2733         NPN_PushPopupsEnabledState/NPN_PopPopupsEnabledState API we just use that
2734         to determine if a plug-in request can open new windows.
2735         
2736         If a plug-in does not support the new API, we assume that a plug-in can open new windows
2737         in response to either mouse click or key press events.
2738         
2739         * plugins/win/PluginViewWin.cpp:
2740         (WebCore::PluginRequestWin::PluginRequestWin):
2741         (WebCore::PluginRequestWin::shouldAllowPopups):
2742         Add new shouldAllowPopups member.
2743         
2744         (WebCore::PluginViewWin::popPopupsStateTimerFired):
2745         Reset the popup state.
2746         
2747         (WebCore::isWindowsMessageUserGesture):
2748         New function that given a windows message id returns whether it's a user gesture or not.
2749         
2750         (WebCore::PluginViewWin::wndProc):
2751         Allow popups if the window message is a user gesture.
2752         
2753         (WebCore::PluginViewWin::dispatchNPEvent):
2754         New method that dispatches an NPEvent, turning on popups if necessary.
2755         
2756         (WebCore::PluginViewWin::paint):
2757         (WebCore::PluginViewWin::handleKeyboardEvent):
2758         (WebCore::PluginViewWin::handleMouseEvent):
2759         Call dispatchNPEvent().
2760         
2761         (WebCore::PluginViewWin::performRequest):
2762         (WebCore::PluginViewWin::load):
2763         Add calls to shouldAllowPopups().
2764         
2765         (WebCore::PluginViewWin::pushPopupsEnabledState):
2766         (WebCore::PluginViewWin::popPopupsEnabledState):
2767         New methods that maintain the popup state stack.
2768         
2769         (WebCore::PluginViewWin::arePopupsAllowed):
2770         New method that returns whether popups are allowed.
2771         
2772         (WebCore::PluginViewWin::PluginViewWin):
2773         * plugins/win/PluginViewWin.h:
2774         Add new instance variables.
2775         
2776         * plugins/win/npapi.cpp:
2777         (NPN_PushPopupsEnabledState):
2778         (NPN_PopPopupsEnabledState):
2779         Implement these.
2780
2781 2007-12-12  Dan Bernstein  <mitz@apple.com>
2782
2783         Reviewed by John Sullivan.
2784
2785         - fix a bug in debug builds only where selecting an earlier item in
2786           a popup selects the first item
2787
2788         Test: fast/forms/menulist-selection-reset.html
2789
2790         * html/HTMLSelectElement.cpp:
2791         (WebCore::HTMLSelectElement::recalcListItems): Added an argument that
2792         tells that function whether it should update the selected state of
2793         option elements.
2794         (WebCore::HTMLSelectElement::checkListItems): Changed to pass false
2795         as the above argument.
2796         * html/HTMLSelectElement.h:
2797
2798 2007-12-12  Adele Peterson  <adele@apple.com>
2799
2800         Reviewed by Geoff.
2801
2802         Fix for <rdar://problem/5643054> Remove cue point implementation for media elements
2803
2804         When the specification for cue ranges is more final, we will implement those.
2805
2806         * html/HTMLMediaElement.cpp:
2807         (WebCore::HTMLMediaElement::~HTMLMediaElement):
2808         (WebCore::HTMLMediaElement::load):
2809         * html/HTMLMediaElement.h:
2810         * html/HTMLMediaElement.idl:
2811         * platform/graphics/MediaPlayer.cpp:
2812         * platform/graphics/MediaPlayer.h:
2813         (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
2814         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2815         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2816         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
2817         (WebCore::MediaPlayerPrivate::load):
2818         (WebCore::MediaPlayerPrivate::play):
2819         (WebCore::MediaPlayerPrivate::pause):
2820         (WebCore::MediaPlayerPrivate::setEndTime):
2821         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
2822         (WebCore::MediaPlayerPrivate::endPointTimerFired):
2823         (WebCore::MediaPlayerPrivate::timeChanged):
2824         (WebCore::MediaPlayerPrivate::didEnd):
2825         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
2826         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
2827         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
2828         (WebCore::MediaPlayerPrivate::endPointTimerFired):
2829         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
2830
2831 2007-12-12  MorganL  <morganl.webkit@yahoo.com>
2832
2833         Reviewed by Maciej.
2834
2835         Fixes:
2836         http://bugs.webkit.org/show_bug.cgi?id=16408
2837
2838         When navigating back/forward to a http:// link, we should prefer to
2839         load from cache if possible.
2840
2841         * loader/FrameLoader.cpp:
2842
2843 2007-12-12  Anders Carlsson  <andersca@apple.com>
2844
2845         Reviewed by Sam.
2846
2847         <rdar://problem/5132003>
2848         dumpResourceLoadCallbacks is not implemented in DRT on Windows.
2849         
2850         * platform/network/cf/ResourceErrorCF.cpp:
2851         (WebCore::ResourceError::unpackPlatformError):
2852         Handle kCFErrorDomainWinSock.
2853         
2854         * platform/network/cf/ResourceHandleCFNet.cpp:
2855         (WebCore::willSendRequest):
2856         Ignore willSendRequest calls where the redirect response is null, like we do in 
2857         the Mac version.
2858
2859 2007-12-12  Steve Falkenburg  <sfalken@apple.com>
2860
2861         <rdar://problem/5643785> Fix iBench regression caused by mis-placed nested timer check.
2862         
2863         Reviewed by Anders.
2864
2865         * platform/win/SharedTimerWin.cpp:
2866         (WebCore::TimerWindowWndProc): Don't set high-resolution timer flag inside non-high-resolution timer proc.
2867
2868 2007-12-12  Beth Dakin  <bdakin@apple.com>
2869
2870         Reviewed by Oliver.
2871
2872         Fix for <rdar://problem/5643770> REGRESSION: Free-standing SVGs 
2873         with width and height 100% clip to 300 x 150
2874
2875         Though it was correct in an earlier iteration of my patch, it is 
2876         not sufficient in the final, committed version to ask if the 
2877         relativeWidthValue() or relativeHeightValue() is greater than 0 
2878         just to determine if one has been set, for, they are now 
2879         initialized to 300 and 150 respectively! This patch instead adds a 
2880         bool to keep track of whether a container size has been set, and 
2881         only used the relative value if it has.
2882
2883         * rendering/RenderSVGRoot.cpp:
2884         (WebCore::RenderSVGRoot::calcViewport):
2885         * svg/SVGSVGElement.cpp:
2886         (WebCore::SVGSVGElement::SVGSVGElement):
2887         * svg/SVGSVGElement.h:
2888         (WebCore::SVGSVGElement::setContainerSize):
2889         (WebCore::SVGSVGElement::hasSetContainerSize):
2890
2891 2007-12-12  Brady Eidson  <beidson@apple.com>
2892
2893         Reviewed by Steve Falkenburg 
2894
2895         <rdar://problem/5012636> - WebURLProtectionSpace::realm returns the hostname rather than the authentication realm
2896
2897         * platform/network/ProtectionSpace.cpp:
2898         (WebCore::ProtectionSpace::ProtectionSpace): Assign the realm to m_realm, instead of the host
2899
2900 2007-12-12  Alp Toker  <alp@atoker.com>
2901
2902         Reviewed by Maciej.
2903
2904         http://bugs.webkit.org/show_bug.cgi?id=16388
2905         [GTK] Widget::setCursor() gets called frequently
2906
2907         Cache the current cursor to avoid calling gdk_window_set_cursor() when
2908         there's no change in cursor.
2909
2910         * platform/gtk/WidgetGtk.cpp:
2911         (WebCore::Widget::Widget):
2912         (WebCore::Widget::cursor):
2913         (WebCore::Widget::setCursor):
2914
2915 2007-12-12  Rodney Dawes  <dobey@wayofthemonkey.com>
2916
2917         Reviewed by Maciej.
2918
2919         http://bugs.webkit.org/show_bug.cgi?id=16342
2920         Build Warning and Error fixes in WebCore GTK+
2921
2922         Use C-style casts for casting function pointers to gpointer
2923         Use static_cast<int> to cast a float to int to fix a warning
2924
2925         * platform/gtk/PlatformScrollBarGtk.cpp:
2926         (PlatformScrollbar::PlatformScrollbar):
2927         (PlatformScrollbar::~PlatformScrollbar):
2928         (PlatformScrollbar::gtkValueChanged):
2929         * platform/gtk/ThreadingGtk.cpp:
2930         (callFunctionOnMainThread):
2931         (callOnMainThread):
2932
2933 2007-12-12  Dan Bernstein  <mitz@apple.com>
2934
2935         Reviewed by Darin Adler.
2936
2937         - better fix for a crash when pressing a key that is not associated
2938           with a command
2939
2940         * editing/EditorCommand.cpp:
2941         (WebCore::Editor::command): Return the empty command if the command name
2942         is empty.
2943
2944 2007-12-12  Alexey Proskuryakov  <ap@webkit.org>
2945
2946         Reviewed by Darin.
2947
2948         http://bugs.webkit.org/show_bug.cgi?id=16410
2949         Implement isKeypadEvent() on Windows
2950
2951         Test: platform/win/fast/events/keyLocation-numpad.html
2952
2953         * platform/win/KeyEventWin.cpp:
2954         (WebCore::isKeypadEvent): Added.
2955         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Also fixed a mistake with autorepeat.
2956
2957 2007-12-12  Oliver Hunt  <oliver@apple.com>
2958
2959         Reviewed by Maciej.
2960
2961         <rdar://problem/5071781> window.mouseout events are not sent 
2962         to window when mouse moves out of window 
2963
2964         Make PlatformMouseEvent recognise WM_MOUSELEAVE.
2965
2966         * platform/win/PlatformMouseEventWin.cpp:
2967         (WebCore::messageToEventType):
2968         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
2969
2970 2007-12-12  Sam Weinig  <sam@webkit.org>
2971
2972         Fix Mac release build.
2973
2974         * WebCore.base.exp:
2975
2976 2007-12-12  Sam Weinig  <sam@webkit.org>
2977
2978         Build fix for Qt, Gtk, and Wx.
2979
2980         * css/CSSParser.cpp:
2981         (WebCore::CSSParser::parseValue):
2982         * loader/win/FrameLoaderWin.cpp:
2983         (WebCore::FrameLoader::urlSelected):
2984         * platform/network/curl/ResourceHandleManager.cpp:
2985         (WebCore::parseDataUrl):
2986         (WebCore::ResourceHandleManager::startJob):
2987         * platform/network/win/CookieJarWin.cpp:
2988         (WebCore::setCookies):
2989         (WebCore::cookies):
2990         * platform/network/win/ResourceHandleWin.cpp:
2991         (WebCore::ResourceHandle::start):
2992         * platform/qt/PasteboardQt.cpp:
2993         (WebCore::Pasteboard::writeURL):
2994
2995 2007-12-11  Dan Bernstein  <mitz@apple.com>
2996
2997         Reviewed by Maciej Stachowiak.
2998
2999         - allow non-integer font sizes on Windows for small caps
3000
3001         * platform/graphics/win/FontDataWin.cpp:
3002         (WebCore::FontData::smallCapsFontData):
3003         * platform/graphics/win/FontPlatformData.h:
3004         (WebCore::FontPlatformData::size):
3005         (WebCore::FontPlatformData::setSize):
3006         * platform/graphics/win/FontPlatformDataWin.cpp:
3007         (WebCore::FontPlatformData::FontPlatformData):
3008
3009 2007-12-11  Sam Weinig  <sam@webkit.org>
3010
3011         Build fix for Qt, Gtk, and Wx.
3012
3013         * platform/gtk/CookieJarGtk.cpp:
3014         (WebCore::setCookies):
3015         (WebCore::cookies):
3016         * platform/qt/ClipboardQt.cpp:
3017         (WebCore::ClipboardQt::writeURL):
3018         * platform/qt/CookieJarQt.cpp:
3019         (WebCore::setCookies):
3020         (WebCore::cookies):
3021         * platform/wx/PasteboardWx.cpp:
3022         (WebCore::Pasteboard::writeURL):
3023
3024 2007-12-11  Sam Weinig  <sam@webkit.org>
3025
3026         Reviewed by Darin Adler.
3027
3028         Scrub URL out of the tree in preparation for renaming KURL to URL.
3029             - Renames Document::URL() -> Document::url()
3030             - Renames DocumentLoader::URL() -> DocumentLoader::url()
3031             - Renames KURL::url() to KURL::string() and KURL::deprecatedString()
3032             - Remove FrameLoader::URL()
3033             - Various variable renames.
3034
3035         The change from Document::URL() to Document::url() required changes
3036         to the bindings scripts as well, because URL() is the name of a DOM
3037         method.  The code generation scripts now have code to special case URL()
3038         to url().
3039
3040         * WebCore.base.exp:
3041         * bindings/js/kjs_events.cpp:
3042         (WebCore::JSLazyEventListener::parseCode):
3043         * bindings/js/kjs_navigator.cpp:
3044         (KJS::Navigator::getValueProperty):
3045         * bindings/js/kjs_proxy.cpp:
3046         (WebCore::KJSProxy::initScript):
3047         * bindings/js/kjs_window.cpp:
3048         (KJS::Window::put):
3049         (KJS::Window::allowsAccessFrom):
3050         (KJS::Location::put):
3051         (KJS::LocationProtoFuncReplace::callAsFunction):
3052         (KJS::LocationProtoFuncReload::callAsFunction):
3053         (KJS::LocationProtoFuncAssign::callAsFunction):
3054         * bindings/scripts/CodeGenerator.pm:
3055         * bindings/scripts/CodeGeneratorCOM.pm:
3056         * bindings/scripts/CodeGeneratorJS.pm:
3057         * bindings/scripts/CodeGeneratorObjC.pm:
3058         * css/CSSImportRule.cpp:
3059         (WebCore::CSSImportRule::insertedIntoParent):
3060         * css/CSSParser.cpp:
3061         (WebCore::CSSParser::parseValue):
3062         (WebCore::CSSParser::parseContent):
3063         (WebCore::CSSParser::parseBackgroundImage):
3064         (WebCore::CSSParser::parseFontFaceSrc):
3065         (WebCore::CSSParser::parseBorderImage):
3066         (WebCore::CSSParser::createImportRule):
3067         * css/CSSStyleSelector.cpp:
3068         (WebCore::CSSStyleSelector::setEncodedURL):
3069         * dom/Document.cpp:
3070         (WebCore::Document::processHttpEquiv):
3071         (WebCore::Document::cookie):
3072         (WebCore::Document::setCookie):
3073         (WebCore::Document::domain):
3074         (WebCore::Document::setDomain):
3075         (WebCore::Document::getImageMap):
3076         (WebCore::Document::completeURL):
3077         * dom/Document.h:
3078         (WebCore::Document::url):
3079         (WebCore::Document::baseURL):
3080         * dom/Element.cpp:
3081         (WebCore::Element::baseURI):
3082         * dom/ProcessingInstruction.h:
3083         * dom/StyledElement.cpp:
3084         (WebCore::StyledElement::addCSSImageProperty):
3085         * dom/StyledElement.h:
3086         * dom/XMLTokenizer.cpp:
3087         (WebCore::XMLTokenizer::endElementNs):
3088         (WebCore::XMLTokenizer::end):
3089         (WebCore::):
3090         * dom/XMLTokenizer.h:
3091         * editing/Editor.cpp:
3092         (WebCore::Editor::copy):
3093         * editing/markup.cpp:
3094         (WebCore::completeURLs):
3095         * history/CachedPage.h:
3096         (WebCore::CachedPage::url):
3097         * history/HistoryItem.cpp:
3098         (WebCore::HistoryItem::HistoryItem):
3099         (WebCore::HistoryItem::setURL):
3100         (WebCore::HistoryItem::isCurrentDocument):
3101         * html/HTMLBaseElement.cpp:
3102         (WebCore::HTMLBaseElement::process):
3103         * html/HTMLParser.cpp:
3104         (WebCore::HTMLParser::reportErrorToConsole):
3105         * html/HTMLScriptElement.cpp:
3106         (WebCore::HTMLScriptElement::childrenChanged):
3107         (WebCore::HTMLScriptElement::insertedIntoDocument):
3108         (WebCore::HTMLScriptElement::evaluateScript):
3109         * html/HTMLScriptElement.h:
3110         * html/HTMLTokenizer.cpp:
3111         (WebCore::HTMLTokenizer::scriptExecution):
3112         * loader/Cache.cpp:
3113         (WebCore::createResource):
3114         (WebCore::Cache::requestResource):
3115         * loader/CachedCSSStyleSheet.cpp:
3116         (WebCore::CachedCSSStyleSheet::checkNotify):
3117         * loader/CachedResource.cpp:
3118         (WebCore::CachedResource::CachedResource):
3119         * loader/CachedResource.h:
3120         (WebCore::CachedResource::):
3121         * loader/CachedScript.h:
3122         * loader/DocLoader.cpp:
3123         (WebCore::DocLoader::checkForReload):
3124         (WebCore::DocLoader::requestResource):
3125         * loader/DocumentLoader.cpp:
3126         (WebCore::DocumentLoader::url):
3127         (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
3128         (WebCore::DocumentLoader::setRequest):
3129         (WebCore::DocumentLoader::startLoadingMainResource):
3130         * loader/DocumentLoader.h:
3131         * loader/FrameLoader.cpp:
3132         (WebCore::FormSubmission::FormSubmission):
3133         (WebCore::ScheduledRedirection::ScheduledRedirection):
3134         (WebCore::FrameLoader::changeLocation):
3135         (WebCore::FrameLoader::urlSelected):
3136         (WebCore::FrameLoader::requestFrame):
3137         (WebCore::FrameLoader::loadSubframe):
3138         (WebCore::FrameLoader::submitFormAgain):
3139         (WebCore::FrameLoader::submitForm):
3140         (WebCore::FrameLoader::didExplicitOpen):
3141         (WebCore::FrameLoader::replaceContentsWithScriptResult):
3142         (WebCore::FrameLoader::executeScript):
3143         (WebCore::FrameLoader::receivedFirstData):
3144         (WebCore::FrameLoader::begin):
3145         (WebCore::FrameLoader::startIconLoader):
3146         (WebCore::FrameLoader::commitIconURLToIconDatabase):
3147         (WebCore::FrameLoader::scheduleRefresh):
3148         (WebCore::FrameLoader::redirectionTimerFired):
3149         (WebCore::FrameLoader::loadPlugin):
3150         (WebCore::FrameLoader::didNotOpenURL):
3151         (WebCore::FrameLoader::updatePolicyBaseURL):
3152         (WebCore::FrameLoader::scrollToAnchor):
3153         (WebCore::FrameLoader::startRedirectionTimer):
3154         (WebCore::FrameLoader::load):
3155         (WebCore::FrameLoader::canLoad):
3156         (WebCore::FrameLoader::shouldHideReferrer):
3157         (WebCore::FrameLoader::shouldAllowNavigation):
3158         (WebCore::FrameLoader::commitProvisionalLoad):
3159         (WebCore::FrameLoader::clientRedirected):
3160         (WebCore::FrameLoader::open):
3161         (WebCore::FrameLoader::didTellBridgeAboutLoad):
3162         (WebCore::FrameLoader::haveToldBridgeAboutLoad):
3163         (WebCore::FrameLoader::post):
3164         (WebCore::FrameLoader::loadResourceSynchronously):
3165         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
3166         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
3167         (WebCore::FrameLoader::createHistoryItem):
3168         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
3169         (WebCore::FrameLoader::loadItem):
3170         (WebCore::FrameLoader::urlsMatchItem):
3171         (WebCore::FrameLoader::recursiveGoToItem):
3172         (WebCore::FrameLoader::updateHistoryForStandardLoad):
3173         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
3174         * loader/FrameLoader.h:
3175         (WebCore::FrameLoader::url):
3176         * loader/ImageDocument.cpp:
3177         (WebCore::ImageDocument::createDocumentStructure):
3178         * loader/MainResourceLoader.cpp:
3179         (WebCore::shouldLoadAsEmptyDocument):
3180         (WebCore::MainResourceLoader::didFinishLoading):
3181         * loader/NavigationAction.cpp:
3182         (WebCore::NavigationAction::NavigationAction):
3183         * loader/NavigationAction.h:
3184         (WebCore::NavigationAction::url):
3185         * loader/PluginDocument.cpp:
3186         (WebCore::PluginTokenizer::createDocumentStructure):
3187         * loader/SubresourceLoader.cpp:
3188         (WebCore::SubresourceLoader::load):
3189         (WebCore::SubresourceLoader::create):
3190         * loader/icon/IconLoader.cpp:
3191         (WebCore::IconLoader::startLoading):
3192         (WebCore::IconLoader::finishLoading):
3193         * loader/loader.cpp:
3194         (WebCore::Loader::servePendingRequests):
3195         * loader/mac/LoaderNSURLExtras.m:
3196         (urlOriginalData):
3197         * page/Chrome.cpp:
3198         (WebCore::Chrome::setToolTip):
3199         * page/ContextMenuController.cpp:
3200         (WebCore::ContextMenuController::contextMenuItemSelected):
3201         * page/Frame.cpp:
3202         (WebCore::Frame::setUserStyleSheetLocation):
3203         * page/InspectorController.cpp:
3204         (WebCore::InspectorResource::type):
3205         (WebCore::addSourceToFrame):
3206         (WebCore::InspectorController::addScriptResource):
3207         (WebCore::InspectorController::updateScriptResourceRequest):
3208         (WebCore::InspectorController::didCommitLoad):
3209         * page/mac/WebCoreFrameBridge.mm:
3210         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
3211         * platform/KURL.h:
3212         (WebCore::KURL::string):
3213         (WebCore::KURL::deprecatedString):
3214         * platform/mac/ClipboardMac.mm:
3215         (WebCore::ClipboardMac::getData):
3216         * platform/mac/CookieJar.mm:
3217         (WebCore::cookies):
3218         (WebCore::setCookies):
3219         * platform/mac/PasteboardMac.mm:
3220         (WebCore::Pasteboard::writeURL):
3221         (WebCore::fileWrapperForImage):
3222         (WebCore::Pasteboard::writeImage):
3223         (WebCore::Pasteboard::plainText):
3224         * platform/network/ResourceHandle.cpp:
3225         (WebCore::ResourceHandle::portAllowed):
3226         * platform/network/ResourceRequestBase.cpp:
3227         (WebCore::ResourceRequestBase::isNull):
3228         * platform/network/cf/ResourceHandleCFNet.cpp:
3229         (WebCore::willSendRequest):
3230         (WebCore::didReceiveResponse):
3231         (WebCore::didReceiveData):
3232         (WebCore::didFinishLoading):
3233         (WebCore::didFail):
3234         (WebCore::didReceiveChallenge):
3235         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
3236         (WebCore::ResourceHandle::~ResourceHandle):
3237         (WebCore::ResourceHandle::start):
3238         * platform/win/ClipboardUtilitiesWin.cpp:
3239         (WebCore::createGlobalData):
3240         (WebCore::urlToMarkup):
3241         * platform/win/ClipboardWin.cpp:
3242         (WebCore::writeURL):
3243         (WebCore::writeImageToDataObject):
3244         (WebCore::ClipboardWin::writeURL):
3245         (WebCore::ClipboardWin::writeRange):
3246         * platform/win/PasteboardWin.cpp:
3247         (WebCore::Pasteboard::writeSelection):
3248         (WebCore::Pasteboard::writeURL):
3249         * plugins/win/PluginDatabaseWin.cpp:
3250         (WebCore::PluginDatabaseWin::findPlugin):
3251         * plugins/win/PluginStreamWin.cpp:
3252         (WebCore::PluginStreamWin::startStream):
3253         (WebCore::PluginStreamWin::destroyStream):
3254         * plugins/win/PluginViewWin.cpp:
3255         (WebCore::scriptStringIfJavaScriptURL):
3256         (WebCore::PluginViewWin::performRequest):
3257         * svg/SVGImageLoader.cpp:
3258         (WebCore::SVGImageLoader::updateFromElement):
3259         * xml/XMLHttpRequest.cpp:
3260         (WebCore::XMLHttpRequest::getResponseXML):
3261         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
3262         * xml/XSLImportRule.cpp:
3263         (WebCore::XSLImportRule::loadSheet):
3264         * xml/XSLTProcessor.cpp:
3265         (WebCore::XSLTProcessor::createDocumentFromSource):
3266         (WebCore::xsltStylesheetPointer):
3267         (WebCore::xmlDocPtrFromNode):
3268
3269 2007-12-11  Beth Dakin  <bdakin@apple.com>
3270
3271         Reviewed by Darin.
3272
3273         Fix for <rdar://problem/5641255> SVGs with width and height 100% 
3274         fail to render when used as background images
3275
3276         CachedImage now has a setImageContainerSize function. It is only 
3277         needed for SVG right now.
3278         * loader/CachedImage.cpp:
3279         (WebCore::CachedImage::setImageContainerSize):
3280         * loader/CachedImage.h:
3281
3282         Relatively sized SVGs have no intrinsic size. Because this call is 
3283         low-level enough that we cannot pass in the container size and get 
3284         the real size of the SVG, we need to know if it has relative 
3285         dimensions, and if so, we need to get the size from scaledTileSize.
3286         * platform/graphics/Image.cpp:
3287         (WebCore::Image::drawTiled):
3288         * platform/graphics/Image.h:
3289         (WebCore::Image::setContainerSize):
3290         (WebCore::Image::hasRelativeWidth):
3291         (WebCore::Image::hasRelativeHeight):
3292
3293         Re-factored calculateBackgroundSize a bit so that it returns an 
3294         IntSize. Made it a member function so that it can send m_width and 
3295         m_height along to setImageContainerSize.
3296         * rendering/RenderBox.cpp:
3297         (WebCore::RenderBox::calculateBackgroundSize):
3298         (WebCore::RenderBox::calculateBackgroundImageGeometry):
3299         * rendering/RenderBox.h:
3300
3301         Need to account for relatively sized SVGs in calcViewport()
3302         * rendering/RenderSVGRoot.cpp:
3303         (WebCore::RenderSVGRoot::calcViewport):
3304         
3305         Added new member variables to store the size of the SVG container. 
3306         relativeWidthValue() and relativeHeightValue() use the stored SVG 
3307         container size to correctly calculate the width and height of a 
3308         relatively sized SVG.
3309         * svg/SVGSVGElement.cpp:
3310         (WebCore::SVGSVGElement::SVGSVGElement):
3311         (WebCore::SVGSVGElement::setContainerSize):
3312         (WebCore::SVGSVGElement::relativeWidthValue):
3313         (WebCore::SVGSVGElement::relativeHeightValue):
3314         * svg/SVGSVGElement.h:
3315         (WebCore::SVGSVGElement::containerSize):
3316         
3317         Re-factored size calculations to use the size of the container.
3318         * svg/graphics/SVGImage.cpp:
3319         (WebCore::SVGImage::setContainerSize):
3320         (WebCore::SVGImage::size):
3321         (WebCore::SVGImage::hasRelativeWidth):
3322         (WebCore::SVGImage::hasRelativeHeight):
3323         * svg/graphics/SVGImage.h:
3324
3325 2007-12-11  Darin Adler  <darin@apple.com>
3326
3327         * editing/Editor.cpp:
3328         (WebCore::Editor::yankFromKillRing): Try to fix non-Mac builds by adding
3329         a missing return statement.
3330
3331 2007-12-11  Darin Adler  <darin@apple.com>
3332
3333         Reviewed by Geoff.
3334
3335         - exposed many new commands to the DOM Document executeCommand function by
3336           merging the JSEditor and Editor executeCommand implementations
3337         - replaced the execCommand function with a EditorCommand class
3338         - replaced the WTF::StrHash<> class template with the WebCore::StringHash class
3339         - replaced the WTF::CaseInsensitiveHash<> class template with the
3340           WebCore::CaseFoldingHash class
3341
3342         * WebCore.base.exp: Updated.
3343         * WebCore.pro: Added EditorCommand.cpp, removed JSEditor.cpp.
3344         * WebCore.vcproj/WebCore.vcproj: Ditto.
3345         * WebCore.xcodeproj/project.pbxproj: Ditto.
3346         * WebCoreSources.bkl: Ditto.
3347
3348         * dom/Document.cpp:
3349         (WebCore::Document::Document): Removed code to set up m_jsEditor.
3350         (WebCore::Document::~Document): Removed code to delete m_jsEditor.
3351         (WebCore::command): Added. Helper function that gets an Editor::Command.
3352         (WebCore::Document::executeCommand): Changed to use Editor::Command instead of
3353         JSEditor.
3354         (WebCore::Document::queryCommandEnabled): Ditto.
3355         (WebCore::Document::queryCommandIndeterm):
3356         (WebCore::Document::queryCommandState): Ditto.
3357         (WebCore::Document::queryCommandSupported): Ditto.
3358         (WebCore::Document::queryCommandValue): Ditto.
3359
3360         * dom/Document.h: Removed JSEditor, jsEditor, m_jsEditor. Changed to
3361         use CaseFoldingHash.
3362
3363         * editing/Editor.cpp:
3364         (WebCore::Editor::selectionForCommand): Renamed from selectionForEvent and
3365         made into a member function so it is accessible from the new EditorCommand.cpp file.
3366         Also changed to get the selection from the passed-in frame instead of from the
3367         page, because this should work on the targeted frame unless the event overrides it.
3368         (WebCore::Editor::handleKeypress): Updated for selectionForCommand change.
3369         (WebCore::Editor::handleInputMethodKeypress): Ditto.
3370         (WebCore::imageElementFromImageDocument): Renamed and changed to return
3371         a HTMLImageElement instead of a Node*.
3372         (WebCore::Editor::canCopy): Updated for name change.
3373         (WebCore::Editor::selectionUnorderedListState): Updated for TriState change.
3374         (WebCore::Editor::selectionOrderedListState): Ditto.
3375         (WebCore::Editor::selectionStartHasStyle): Make type of local more specific.
3376         (WebCore::updateState): Moved here from Frame.
3377         (WebCore::Editor::selectionHasStyle): Ditto.
3378         (WebCore::Editor::Editor): Initialize m_shouldStartNewKillRingSequence.
3379         (WebCore::Editor::insertTextWithoutSendingTextEvent): Updated for
3380         selectionForCommand change.
3381         (WebCore::Editor::copy): Updated for imageElementFromImageDocument change.
3382         (WebCore::Editor::toggleBold): Call the ToggleBold command via the command
3383         machinery since it's no longer in this file as a local function.
3384         (WebCore::Editor::toggleUnderline): Call the ToggleUnderline command.
3385         (WebCore::Editor::setBaseWritingDirection): Change type of argument and of
3386         local variable.
3387         (WebCore::Editor::addToKillRing): Moved here from EditorMac. Not useful
3388         without a kill ring, but it's relatively straightforward to implement one.
3389         (WebCore::Editor::appendToKillRing): Put default implementation here for
3390         platforms other than Mac. We should probably put a simple kill ring
3391         implementation here -- doesn't need to be shared with the OS oh platforms
3392         other than Mac.
3393         (WebCore::Editor::prependToKillRing): Ditto.
3394         (WebCore::Editor::yankFromKillRing): Ditto.
3395         (WebCore::Editor::startNewKillRingSequence): Ditto.
3396         (WebCore::Editor::setKillRingToYankedState): Ditto.
3397
3398         * editing/Editor.h: Moved the TriState enum here instead of inside the
3399         Frame class. Added EditorCommandSource enum. Moved selectionHasStyle
3400         here from the Frame class. Added Editor::Command class with five functions
3401         for the various things you can do with a command (execute it, check if it
3402         can be used, and its state and value). Changed hte parameter of
3403         setBaseWritingDirection to be a const String& rather than a String.
3404         Got rid of the kill-ring-related operations, but added the kill ring
3405         functions themselves. Made selectedRange() public. Made the
3406         m_startNewKillRingSequence not Mac-specific and added "should" to its
3407         name.
3408
3409         * editing/EditorCommand.cpp: Copied from WebCore/editing/Editor.cpp.
3410         Retained only the editing commands.
3411         (WebCore::targetFrame): Moved to the top of the file.
3412         (WebCore::executeApplyStyle): Added. Helper function for commands
3413         that need to apply styles.
3414         (WebCore::executeToggleStyle): Added. Helper function for commands
3415         that need to toggle styles based on the style of the start of selection.
3416         (WebCore::executeApplyParagraphStyle): Added. Like executeApplyStyle, but
3417         for paragraph styles.
3418         (WebCore::executeInsertFragment): Added. Helper function for commands
3419         that need to insert a DOM fragment.
3420         (WebCore::executeInsertNode): Added. Helper function for commands that
3421         need to insert a tree rooted in a single DOM node.
3422         (WebCore::stateStyle): Added. Helper function for the state of commands
3423         that represent style.
3424         (WebCore::valueStyle): Added. Helper function for the value of commands
3425         that represent style.
3426         (WebCore::canScroll): Added. Helper functions for some move and scroll
3427         commands that need to determine if the renderer they are in can scroll.
3428         (WebCore::unionDOMRanges): Moved here from EditorMac.
3429         (WebCore::executeBackColor):
3430         (WebCore::executeBackwardDelete):
3431         (WebCore::executeCopy):
3432         (WebCore::executeCreateLink):
3433         (WebCore::executeCut):
3434         (WebCore::executeDelete):
3435         (WebCore::executeDeleteToMark):
3436         (WebCore::executeDeleteWordBackward):
3437         (WebCore::executeDeleteWordForward):
3438         (WebCore::executeFindString):
3439         (WebCore::executeFontName):
3440         (WebCore::executeFontSize):
3441         (WebCore::executeFontSizeDelta):
3442         (WebCore::executeForeColor):
3443         (WebCore::executeFormatBlock):
3444         (WebCore::executeForwardDelete):
3445         (WebCore::executeIndent):
3446         (WebCore::executeInsertBacktab):
3447         (WebCore::executeInsertHorizontalRule):
3448         (WebCore::executeInsertHTML):
3449         (WebCore::executeInsertImage):
3450         (WebCore::executeInsertLineBreak):
3451         (WebCore::executeInsertNewline):
3452         (WebCore::executeInsertNewlineInQuotedContent):
3453         (WebCore::executeInsertOrderedList):
3454         (WebCore::executeInsertParagraph):
3455         (WebCore::executeInsertTab):
3456         (WebCore::executeInsertText):
3457         (WebCore::executeInsertUnorderedList):
3458         (WebCore::executeJustifyCenter):
3459         (WebCore::executeJustifyFull):
3460         (WebCore::executeJustifyLeft):
3461         (WebCore::executeJustifyRight):
3462         (WebCore::executeMoveBackward):
3463         (WebCore::executeMoveBackwardAndModifySelection):
3464         (WebCore::executeMoveDown):
3465         (WebCore::executeMoveDownAndModifySelection):
3466         (WebCore::executeMoveDownByPageAndModifyCaret):
3467         (WebCore::executeMoveForward):
3468         (WebCore::executeMoveForwardAndModifySelection):
3469         (WebCore::executeMoveLeft):
3470         (WebCore::executeMoveLeftAndModifySelection):
3471         (WebCore::executeMoveRight):
3472         (WebCore::executeMoveRightAndModifySelection):
3473         (WebCore::executeMoveToBeginningOfDocument):
3474         (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
3475         (WebCore::executeMoveToBeginningOfLine):
3476         (WebCore::executeMoveToBeginningOfLineAndModifySelection):
3477         (WebCore::executeMoveToBeginningOfParagraph):
3478         (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
3479         (WebCore::executeMoveToBeginningOfSentence):
3480         (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
3481         (WebCore::executeMoveToEndOfDocument):
3482         (WebCore::executeMoveToEndOfDocumentAndModifySelection):
3483         (WebCore::executeMoveToEndOfSentence):
3484         (WebCore::executeMoveToEndOfSentenceAndModifySelection):
3485         (WebCore::executeMoveToEndOfLine):
3486         (WebCore::executeMoveToEndOfLineAndModifySelection):
3487         (WebCore::executeMoveToEndOfParagraph):
3488         (WebCore::executeMoveToEndOfParagraphAndModifySelection):
3489         (WebCore::executeMoveParagraphBackwardAndModifySelection):
3490         (WebCore::executeMoveParagraphForwardAndModifySelection):
3491         (WebCore::executeMoveUp):
3492         (WebCore::executeMoveUpAndModifySelection):
3493         (WebCore::executeMoveUpByPageAndModifyCaret):
3494         (WebCore::executeMoveWordBackward):
3495         (WebCore::executeMoveWordBackwardAndModifySelection):
3496         (WebCore::executeMoveWordForward):
3497         (WebCore::executeMoveWordForwardAndModifySelection):
3498         (WebCore::executeMoveWordLeft):
3499         (WebCore::executeMoveWordLeftAndModifySelection):
3500         (WebCore::executeMoveWordRight):
3501         (WebCore::executeMoveWordRightAndModifySelection):
3502         (WebCore::executeOutdent):
3503         (WebCore::executePaste):
3504         (WebCore::executePasteAndMatchStyle):
3505         (WebCore::executePrint):
3506         (WebCore::executeRedo):
3507         (WebCore::executeRemoveFormat):
3508         (WebCore::executeSelectAll):
3509         (WebCore::executeSelectToMark):
3510         (WebCore::executeSetMark):
3511         (WebCore::executeStrikethrough):
3512         (WebCore::executeSubscript):
3513         (WebCore::executeSuperscript):
3514         (WebCore::executeSwapWithMark):
3515         (WebCore::executeToggleBold):
3516         (WebCore::executeToggleItalic):
3517         (WebCore::executeTranspose):
3518         (WebCore::executeUnderline):
3519         (WebCore::executeUndo):
3520         (WebCore::executeUnlink):
3521         (WebCore::executeUnscript):
3522         (WebCore::executeUnselect):
3523         (WebCore::executeYank):
3524         (WebCore::executeYankAndSelect):
3525         (WebCore::supported):
3526         (WebCore::supportedPaste):
3527         (WebCore::enabled):
3528         (WebCore::enabledAnySelection):
3529         (WebCore::enabledAnySelectionAndMark):
3530         (WebCore::enableCaretInEditableText):
3531         (WebCore::enabledCopy):
3532         (WebCore::enabledCut):
3533         (WebCore::enabledInEditableText):
3534         (WebCore::enabledInRichlyEditableText):
3535         (WebCore::enabledPaste):
3536         (WebCore::enabledRangeInEditableText):
3537         (WebCore::enabledRangeInRichlyEditableText):
3538         (WebCore::enabledRedo):
3539         (WebCore::enabledUndo):
3540         (WebCore::stateNone):
3541         (WebCore::stateBold):
3542         (WebCore::stateItalic):
3543         (WebCore::stateOrderedList):
3544         (WebCore::stateStrikethrough):
3545         (WebCore::stateSubscript):
3546         (WebCore::stateSuperscript):
3547         (WebCore::stateUnderline):
3548         (WebCore::stateUnorderedList):
3549         (WebCore::valueNull):
3550         (WebCore::valueBackColor):
3551         (WebCore::valueFontName):
3552         (WebCore::valueFontSize):
3553         (WebCore::valueFontSizeDelta):
3554         (WebCore::valueForeColor):
3555         (WebCore::createCommandMap): Added lots of commands, including all the commands
3556         from JSEditor. A few commands needed different behavior based on whether they are
3557         invoked from the DOM or a keyboard binding.
3558         (WebCore::Editor::command): Added. Gets a command object given a name.
3559         (WebCore::Editor::Command::Command): Added.
3560         (WebCore::Editor::Command::execute): Added.
3561         (WebCore::Editor::Command::isSupported): Added.
3562         (WebCore::Editor::Command::isEnabled): Added.
3563         (WebCore::Editor::Command::state): Added.
3564         (WebCore::Editor::Command::value): Added.
3565         (WebCore::Editor::execCommand): Changed to call command().execute().
3566
3567         * editing/JSEditor.cpp: Removed.
3568         * editing/JSEditor.h: Removed.
3569
3570         * editing/mac/EditorMac.mm: Changed to provide kill ring primitives intead of
3571         kill ring commands, so the kill ring commands can be cross-platform.
3572         (WebCore::Editor::appendToKillRing): Added.
3573         (WebCore::Editor::prependToKillRing): Added.
3574         (WebCore::Editor::yankFromKillRing): Added.
3575         (WebCore::Editor::startNewKillRingSequence): Added.
3576         (WebCore::Editor::setKillRingToYankedState): Added.
3577
3578         * page/Frame.cpp: Removed selectionHasStyle, TriState, and updateState.
3579         * page/Frame.h: Ditto.
3580
3581         * page/mac/WebCoreFrameBridge.mm: Removed selectionHasStyle.
3582         * page/mac/WebCoreFrameBridge.h: Ditto.
3583
3584         * platform/ContextMenu.cpp:
3585         (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for TriState change.
3586
3587         * platform/text/StringHash.h:
3588         (WebCore::StringHash::hash): Merged the StrHash<> template classes into this.
3589         (WebCore::StringHash::equal): Ditto.
3590         (WebCore::CaseFoldingHash::hash): Merged the CaseInsensitiveHash<> template
3591         classes into this.
3592         (WebCore::CaseFoldingHash::equal): Ditto.
3593
3594         * platform/text/StringImpl.cpp:
3595         (WebCore::equal): Changed to invoke StringHash.
3596         (WebCore::equalIgnoringCase): Changed to invoke CaseFoldingHash.
3597
3598         * dom/DOMImplementation.cpp:
3599         (WebCore::addString): Updated to use StringHash and CaseFoldingHash.
3600         (WebCore::isSVG10Feature): Ditto.
3601         (WebCore::isSVG11Feature): Ditto.
3602         * loader/FrameLoader.cpp:
3603         (WebCore::localSchemes): Ditto.
3604         * platform/graphics/FontCache.cpp:
3605         (WebCore::computeHash): Ditto.
3606         * platform/network/HTTPHeaderMap.h: Ditto.
3607         * platform/text/PlatformString.h: Ditto.
3608         * platform/text/StringImpl.h: Ditto.
3609         * rendering/RenderPartObject.cpp:
3610         (WebCore::RenderPartObject::updateWidget): Ditto.
3611         * xml/XMLHttpRequest.cpp:
3612         (WebCore::canSetRequestHeader): Ditto.
3613
3614         * rendering/RenderTreeAsText.cpp: Removed stray include of JSEditor.h.
3615
3616 2007-12-11  Darin Adler  <darin@apple.com>
3617
3618         * platform/wx/KeyboardEventWx.cpp:
3619         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Another try at fixing the
3620         WX build. Changes the code around a little bit.
3621
3622 2007-12-11  Darin Adler  <darin@apple.com>
3623
3624         * platform/wx/KeyboardEventWx.cpp:
3625         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Quick try at fixing build.
3626
3627 2007-12-11  Dan Bernstein  <mitz@apple.com>
3628
3629         Reviewed by Darin Adler.
3630
3631         - fix <rdar://problem/5631507> Text doesn't wrap properly at Tamil version of Wikipedia
3632
3633         Test: fast/text/international/complex-character-based-fallback.html
3634
3635         * platform/graphics/Font.cpp:
3636         (WebCore::Font::glyphDataForCharacter): Added a forceSmallCaps argument
3637         that forces this function to use the small caps font. It is used for
3638         combining marks that need to combine with a small cap.
3639         * platform/graphics/Font.h:
3640         * platform/win/UniscribeController.cpp:
3641         (WebCore::UniscribeController::advance): Changed to split the string
3642         into runs of characters that will be rendered using the same FontData.
3643         This is done by calling glyphDataForCharacter() for each cahracter to
3644         find the FontData it should be rendered with.
3645         (WebCore::UniscribeController::itemizeShapeAndPlace): Added a fontData
3646         argument that is passed on to shapeAndPlaceItem() instead of the
3647         smallCaps argument.
3648         (WebCore::UniscribeController::shapeAndPlaceItem): Added a fontData
3649         argument and removed the font fallback logic from this function, as
3650         it is now expected to be called with an item all of whose characters
3651         can be rendered with the given fontData.
3652         * platform/win/UniscribeController.h:
3653
3654 2007-12-07  Alexey Proskuryakov  <ap@webkit.org>
3655
3656         Reviewed by Darin.
3657
3658         <rdar://problem/5535636>
3659         Have to press 4 times instead of 2 times to get the expected result of ^^ with german keyboard.
3660
3661         http://bugs.webkit.org/show_bug.cgi?id=13916
3662         JavaScript detects Tab as a character input on a textfield validation
3663
3664         Test: platform/win/fast/events/double-dead-char.html
3665
3666         * platform/PlatformKeyboardEvent.h:
3667         (WebCore::PlatformKeyboardEvent::):
3668         (WebCore::PlatformKeyboardEvent::type):
3669         (WebCore::PlatformKeyboardEvent::windowsVirtualKeyCode):
3670         (WebCore::PlatformKeyboardEvent::setWindowsVirtualKeyCode):
3671         (WebCore::PlatformKeyboardEvent::keyIdentifier):
3672         (WebCore::PlatformKeyboardEvent::setIsAutoRepeat):
3673         Added an explicit type member to differentiate different kinds of events:
3674           RawKeyDown == keydown == WM_KEYDOWN
3675           KeyUp == keyup == WM_KEYUP
3676           Char == keypress == WM_CHAR
3677           KeyDown == e.g. NSKeyDown or NSFlagsChanged, used on platforms that have a different model for
3678           event processing, and needs to be converted to RawKeyDown (+ Char) for processing in DOM.
3679
3680         * platform/mac/KeyEventMac.mm:
3681         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
3682         Fix Enter (numeric keypad) charCode to match Return, as we check for it from keypress default handlers.
3683         (WebCore::windowsKeyCodeForKeyEvent): 
3684         (WebCore::isKeyUpEvent): Made it do something closer to what it claims; added a FIXME explaining
3685         that it still fails.
3686         (WebCore::disambiguateKeyDownEvent): Downgrade from KeyDown to RawKeyDown or Char, removing information that
3687         should not be available in those (because it cannot be provided on Windows).
3688
3689         * platform/win/KeyEventWin.cpp:
3690         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
3691         Used standard Windows constants for bit masks instead of our own ones.
3692         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Should never be called on Windows.
3693
3694         * platform/gtk/KeyEventGtk.cpp:
3695         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3696         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
3697         * platform/qt/PlatformKeyboardEventQt.cpp:
3698         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3699         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
3700         * platform/wx/KeyboardEventWx.cpp:
3701         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3702         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
3703         Updated for cross-platform changes as much as it was possible without appropriate build
3704         environments.
3705
3706         * WebCore.base.exp: Export PlatformKeyboardEvent::disambiguateKeyDownEvent(), used by platforms that need to
3707         convert their fancy key events to RawKeyDown/Char pairs. Export Editor::isTextInsertionCommand().
3708
3709         * bridge/EditorClient.h:
3710         Renamed handleKeypress() to handleKeyboardEvent(), as it gets both keydowns and keypresses.
3711         Renamed handleInputMethodKeypress() to handleInputMethodKeydown(), as IMs work with raw keydowns.
3712
3713         * dom/Document.h:
3714         * dom/Document.cpp:
3715         (WebCore::Document::defaultEventHandler): Moved accesskey processing to EventHandler.
3716
3717         * dom/KeyboardEvent.h: Added comments describing keyCode/charCode behavior.
3718
3719         * dom/KeyboardEvent.cpp:
3720         (WebCore::eventTypeForKeyboardEventType):
3721         (WebCore::KeyboardEvent::KeyboardEvent): Conversion between platform and DOM event types is
3722         now straightforward, so scary hacks such as using autorepeat to distinguish types are
3723         not needed.
3724         (WebCore::KeyboardEvent::keyCode): Added a comment describing other browsers' behavior.
3725         (WebCore::KeyboardEvent::charCode): Added a comment describing other browsers' behavior.
3726         Changed to a more compatible behavior: raw keydown/keyup events do not and can not have
3727         character codes.
3728
3729         * editing/Editor.h:
3730         * editing/Editor.cpp:
3731         (WebCore::Editor::isTextInsertionCommand): Is this command actually text input in disguise?
3732         (WebCore::Editor::handleKeyboardEvent): Updated for new function names.
3733         (WebCore::Editor::handleInputMethodKeydown): Ditto.
3734
3735         * html/HTMLButtonElement.cpp:
3736         (WebCore::HTMLButtonElement::defaultEventHandler): Perform the default action when handling an
3737         appropriate event. Enter is processed on keypress (and thus should be checked for via charCode,
3738         not keyIdentifier), Space is processed on keydown+keyup! We now match IE in that a button is
3739         highlighted when Space is pressed.
3740
3741         * html/HTMLInputElement.cpp:
3742         (WebCore::HTMLInputElement::defaultEventHandler):
3743         * html/HTMLSelectElement.cpp:
3744         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
3745         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
3746         Made a number of fixes to when default actions take place, similar to HTMLButtonElement ones
3747         described above.
3748
3749         * page/EventHandler.cpp:
3750         (WebCore::EventHandler::keyEvent): Unless we have a combined KeyDown, just forward the event
3751         to the target. Call accesskey handling directly, as it doesn't seem to be part of normal event
3752         handling in IE. Also streamlined the code in KeyDown case, thanks to handleInputMethodKeypress()
3753         now being handleInputMethodKeydown().
3754         (WebCore::EventHandler::handleTextInputEvent): Check that we were not called from keydown.
3755         (WebCore::EventHandler::defaultTextInputEventHandler): Removed a call to defaultTabEventHandler,
3756         as default tab handling happens when processing keydown.
3757         (WebCore::handleAccessKey): Moved from Document, as access keys are processed outside normal
3758         event handling. Fixed accesskey processing to use information that's available in a raw keydown
3759         event.
3760
3761         (WebCore::EventHandler::defaultKeyboardEventHandler): Do not ignore keydown; in particular,
3762         handle tabs during keydown processing.
3763
3764         * page/mac/EventHandlerMac.mm:
3765         (WebCore::EventHandler::currentKeyboardEvent): Disambiguate KeyDown as RawKeyDown, as this is
3766         what callers want.
3767
3768         * platform/text/PlatformString.h:
3769         * platform/text/String.cpp:
3770         (WebCore::String::characterStartingAt):
3771         * platform/text/StringImpl.cpp:
3772         (WebCore::StringImpl::characterStartingAt):
3773         * platform/text/StringImpl.h:
3774         Added a UChar32 accessor.
3775
3776         * svg/graphics/SVGImageEmptyClients.h:
3777         (WebCore::SVGEmptyEditorClient::handleKeyboardEvent):
3778         (WebCore::SVGEmptyEditorClient::handleInputMethodKeydown):
3779         Updated for new function names.
3780
3781 2007-12-11  John Sullivan  <sullivan@apple.com>
3782
3783         Reviewed by Adele
3784
3785         Tiger build fix -- don't call QTMovieView setDelegate: directly because it's not public
3786
3787         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3788         (WebCore::MediaPlayerPrivate::createQTMovieView):
3789         (WebCore::MediaPlayerPrivate::detachQTMovieView):
3790
3791 2007-12-11  Alexey Proskuryakov  <ap@webkit.org>
3792
3793         Reviewed by Darin.
3794
3795         http://bugs.webkit.org/show_bug.cgi?id=16325
3796         <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
3797
3798         Fix this on Windows, too!
3799
3800         Test: http/tests/misc/empty-cookie.html
3801
3802         * platform/network/win/CookieJarWin.cpp:
3803         (WebCore::setCookies):
3804         (WebCore::cookies):
3805         Same fix as on Mac, translated into CF.
3806
3807         * platform/win/CookieJarWin.cpp: Removed - the real one is in platform/network/win.
3808
3809 2007-12-11  Christian Dywan  <christian@twotoasts.de>
3810
3811         Reviewed by Alp Toker.
3812
3813         http://bugs.webkit.org/show_bug.cgi?id=16371
3814         Implement additional mouse cursors for Gtk
3815
3816         Added cursor bitmaps from Mozilla:
3817         http://lxr.mozilla.org/mozilla1.8/source/widget/src/gtk2/nsGtkCursors.h
3818
3819         * platform/gtk/CursorGtk.cpp:
3820         (WebCore::customCursorNew):
3821         (WebCore::verticalTextCursor):
3822         (WebCore::cellCursor):
3823         (WebCore::contextMenuCursor):
3824         (WebCore::noDropCursor):
3825         (WebCore::copyCursor):
3826         (WebCore::progressCursor):
3827         (WebCore::aliasCursor):
3828         (WebCore::noneCursor):
3829         (WebCore::notAllowedCursor):
3830         (WebCore::zoomInCursor):
3831         (WebCore::zoomOutCursor):
3832         * platform/gtk/CursorGtk.h: Added.
3833
3834 2007-12-10  Oliver Hunt  <oliver@apple.com>
3835
3836         Reviewed by Weinig, Dan, and Alexey.
3837
3838         Fix character set used for dynamically loaded scripts.
3839
3840         Fix for:
3841             <rdar://problem/5333163> Safari can not display the mouse over pop menu on ChinaTimes News site correctly.
3842             <rdar://problem/5530048> [Safari]? :Leopard9A576: The typed CH characters displays as garbage in Sina website after reloading the webpage.
3843             <rdar://problem/5416588> All menus for chinese IBM site have wrong encoding
3844             
3845         Use the same logic to determine the charset for a script loaded dynamically
3846         as we do for a statically loaded script.
3847
3848         * html/HTMLScriptElement.cpp:
3849         (WebCore::HTMLScriptElement::insertedIntoDocument):
3850
3851 2007-12-10  Justin Garcia  <justin.garcia@apple.com>
3852
3853         Reviewed by Oliver Hunt.
3854
3855         <rdar://problem/5482023> GoogleDocs: After FormatBlock in an empty document, certain functions are disabled
3856         
3857         We were trying to insert a block of the requested type before the body element.
3858         
3859         * editing/FormatBlockCommand.cpp:
3860         (WebCore::FormatBlockCommand::doApply): 
3861         Removed unnecessary ()s in the if condition.
3862         Removed "|| !upstreamStart.node()->isDescendantOf(root)" from the if condition, since
3863         a) upstreamStart will never be outside the root editable element, since in that case
3864         there would be no block inside the editable root to Format, and b) if upstreamStart.node() 
3865         *is* the root, then refNode is the root, and we shouldn't insert before the root, we should insert
3866         at [root, 0].
3867         Added comments to explain the use of upstream() in the second if-clause.
3868         Added an early return for case where there is nothing selected, in that case, there is nothing
3869         to move.
3870
3871 2007-12-10  Adele Peterson  <adele@apple.com>
3872
3873         Reviewed and partially fixed by Tim Hatcher.
3874
3875         Remaining part of fix for <rdar://problem/5633400>
3876         Transformed <video> is not clipped correctly until a repaint is forced
3877
3878         Replace the implementation of a QTKit method to avoid repaints from the NSView system associated with the QTMovie
3879         from clobbering the WebCore repaints.
3880
3881         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerRepaint): Added.
3882         * html/HTMLMediaElement.h:
3883         * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::repaint): Added.
3884         * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerRepaint): Added.
3885
3886         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
3887         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3888         (method_setImplementation): Added for Tiger.
3889
3890         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call detachQTMovieView, which now does more cleanup.
3891         (WebCore::MediaPlayerPrivate::cancelLoad): ditto.
3892         (WebCore::MediaPlayerPrivate::setVisible): ditto.
3893         (WebCore::MediaPlayerPrivate::detachQTMovieView): Clear the delegate as well as m_qtMovieView pointer.
3894
3895         (WebCore::MediaPlayerPrivate::repaint): Added.  Triggers a repaint on the video renderer.
3896         (-[WebCoreMovieObserver repaint]): ditto.
3897
3898         (WebCore::mainThreadSetNeedsDisplay): Added.
3899          Does a WebCore repaint instead of going through the view repaint system for QTMovieView.
3900         (WebCore::MediaPlayerPrivate::createQTMovieView): Replace the implementation of _mainThreadSetNeedsDisplay.
3901
3902 2007-12-10  Geoffrey Garen  <ggaren@apple.com>
3903
3904         Reviewed by Sam Weinig.
3905
3906         Updated for rename in JavaScriptCore.
3907
3908         * bridge/mac/WebCoreScriptDebugger.mm:
3909         (-[WebCoreScriptCallFrame scopeChain]):
3910         (-[WebCoreScriptCallFrame functionName]):
3911         (-[WebCoreScriptCallFrame evaluateWebScript:]):
3912
3913 2007-12-10  Rodney Dawes  <dobey@wayofthemonkey.com>
3914
3915         Bug 16383: Ambiguous Window Usage in kjs_dom.cpp
3916         <http://bugs.webkit.org/show_bug.cgi?id=16383>
3917
3918         Use KJS::Window not the ambiguous Window
3919
3920         Reviewed by ddkilzer.
3921
3922         * bindings/js/kjs_dom.cpp (checkNodeSecurity):
3923
3924 2007-12-10  Sam Weinig  <sam@webkit.org>
3925
3926         Fix non-mac builds.
3927
3928         * page/WindowFeatures.cpp: #include <wtf/MathExtras.h> for isnan.
3929
3930 2007-12-10  Marvin Decker  <marv.decker@gmail.com>
3931
3932         Reviewed by Darin.
3933
3934         Fix a divide by 0 in the progress tracker.
3935         http://bugs.webkit.org/show_bug.cgi?id=15055
3936
3937         * loader/ProgressTracker.cpp:
3938         (WebCore::ProgressTracker::incrementProgress):
3939
3940 2007-12-09  Sam Weinig  <sam@webkit.org>
3941
3942         Reviewed by Darin.
3943
3944         More cleanup of kjs_window.
3945         - Move WindowFeatures from bridge/ to page/
3946         - Move functions related to WindowFeatures (boolFeature,
3947           floatFeature, setWindowFeature, parseWindowFeatures) into the class.
3948         - Fix up whitespace.
3949
3950         * WebCore.vcproj/WebCore.vcproj:
3951         * WebCore.xcodeproj/project.pbxproj:
3952         * bindings/js/kjs_window.cpp:
3953         (KJS::DOMWindowTimer::~DOMWindowTimer):
3954         (KJS::createWindow):
3955         (KJS::showModalDialog):
3956         (KJS::Window::getOwnPropertySlot):
3957         (KJS::Window::allowsAccessFrom):
3958         (KJS::Window::shouldInterruptScript):
3959         (KJS::WindowProtoFuncAToB::callAsFunction):
3960         (KJS::WindowProtoFuncOpen::callAsFunction):
3961         (KJS::Window::setReturnValueSlot):
3962         (KJS::ScheduledAction::execute):
3963         (KJS::Window::timerFired):
3964         (KJS::Location::Location):
3965         (KJS::Location::getValueProperty):
3966         (KJS::Location::getOwnPropertySlot):
3967         (KJS::Location::put):
3968         (KJS::LocationProtoFuncReplace::callAsFunction): Use better variable names.
3969         (KJS::LocationProtoFuncAssign::callAsFunction): Ditto.
3970         (KJS::LocationProtoFuncToString::callAsFunction): Remove extraneous calls to
3971         allowsAccessFrom, cleanup the function a little.
3972         (KJS::PausedTimeouts::~PausedTimeouts):
3973         * bridge/WindowFeatures.h: Removed.
3974         * page/WindowFeatures.cpp: Added.
3975         (WebCore::isSeparator):
3976         (WebCore::WindowFeatures::WindowFeatures):
3977         (WebCore::WindowFeatures::setWindowFeature):
3978         (WebCore::WindowFeatures::boolFeature):
3979         (WebCore::WindowFeatures::floatFeature):
3980         * page/WindowFeatures.h: Copied from WebCore/bridge/WindowFeatures.h.
3981         (WebCore::WindowFeatures::WindowFeatures):
3982
3983 2007-12-10  Timothy Hatcher  <timothy@apple.com>
3984
3985         Reviewed by Mark Rowe.
3986
3987         <rdar://problem/5639463> Bundle versions on Tiger should be 4523.x not 523.x
3988
3989         * Configurations/Version.xcconfig: Some Tiger versions of Xcode don't set MAC_OS_X_VERSION_MAJOR,
3990           so assume Tiger and use a 4 for the SYSTEM_VERSION_PREFIX.
3991
3992 2007-12-10  Alp Toker  <alp@atoker.com>
3993
3994         Reviewed by Niko.
3995
3996         Cairo implementation of GraphicsContext::setUseAntialiasing().
3997
3998         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3999         (WebCore::GraphicsContext::setUseAntialiasing):
4000
4001 2007-12-10  Rob Buis  <buis@kde.org>
4002
4003         Reviewed by Darin.
4004
4005         http://bugs.webkit.org/show_bug.cgi?id=16182
4006         SVG should disable antialiasing for shape-rendering="crispEdges"
4007
4008         Turn off anti-aliasing of shapes when shape-rendering="crispEdges".
4009
4010         * platform/graphics/GraphicsContext.h:
4011         * platform/graphics/cairo/GraphicsContextCairo.cpp:
4012         (WebCore::GraphicsContext::setUseAntialiasing):
4013         * platform/graphics/cg/GraphicsContextCG.cpp:
4014         (WebCore::GraphicsContext::setUseAntialiasing):
4015         * platform/graphics/qt/GraphicsContextQt.cpp:
4016         (WebCore::GraphicsContext::setUseAntialiasing):
4017         * platform/graphics/wx/GraphicsContextWx.cpp:
4018         (WebCore::GraphicsContext::setUseAntialiasing):
4019         * rendering/RenderPath.cpp:
4020         (WebCore::RenderPath::paint):
4021
4022 2007-12-09  Rob Buis  <buis@kde.org>
4023
4024         Reviewed by Niko.
4025
4026         http://bugs.webkit.org/show_bug.cgi?id=16163
4027         SVG crash in Node::setChanged() on Debug builds only (trashed parent)
4028
4029         Fix the crash by properly unregistering as client from SVGResource
4030         when deleting a styled svg node.
4031
4032         * svg/SVGStyledElement.cpp:
4033         (WebCore::SVGStyledElement::~SVGStyledElement):
4034
4035 2007-12-10  Brady Eidson  <beidson@apple.com>
4036
4037         Rubberstamped by John
4038
4039         * storage/DatabaseTracker.cpp:
4040         (WebCore::DatabaseTracker::canEstablishDatabase): If the UI Delegate returns *exactly* the estimated size
4041           for the new quota, we should allow the database to be created
4042
4043 2007-12-10  David D. Kilzer  <ddkilzer@webkit.org>
4044
4045         Bug 9683: Implement select.options.remove() method
4046         <http://bugs.webkit.org/show_bug.cgi?id=9683>
4047
4048         Reviewed by Maciej.
4049
4050         Implement select.options.remove() by calling select.remove()
4051         with the same arguments.  This is what MSIE 7 does, although its
4052         select.remove() method differs from WebKit's by throwing an
4053         exception when called with no arguments or with a negative
4054         integer argument.  Note that the DOM Level 1 documentation
4055         specifies that select.remove() does not throw an exception.
4056
4057         Tests: fast/js/select-options-remove-gc.html
4058                fast/js/select-options-remove.html
4059
4060         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
4061         (WebCore::JSHTMLOptionsCollection::remove): Added.
4062         * html/HTMLOptionsCollection.cpp:
4063         (WebCore::HTMLOptionsCollection::remove): Added.
4064         * html/HTMLOptionsCollection.h:
4065         * html/HTMLOptionsCollection.idl:
4066
4067 2007-12-09  Sam Weinig  <sam@webkit.org>
4068
4069         Rubber stamped by Mark Rowe.
4070
4071         * WebCore.xcodeproj/project.pbxproj: Add missing DerivedSources files.
4072
4073 2007-12-09  Oliver Hunt  <oliver@apple.com>
4074
4075         Reviewed by Niko.
4076
4077         Correction, 'z' and 'Z' are the only commands that cannot have an extended
4078         list of arguments.
4079
4080         * svg/SVGParserUtilities.cpp:
4081         (WebCore::SVGPathParser::parseSVG):
4082
4083 2007-12-09  Oliver Hunt  <oliver@apple.com>
4084
4085         Reviewed by Niko.
4086
4087         Prevent unlimited iteration in the case of invalid path data.
4088         
4089         The only path commands that can leave numbers trailing the command processing
4090         are 'm' and 'M', in which trailing numbers are parsed as arguments to an
4091         implicit lineto command.  In any case we should just terminate as an invalid
4092         path.
4093
4094         * svg/SVGParserUtilities.cpp:
4095         (WebCore::SVGPathParser::parseSVG):
4096
4097 2007-12-09  Luca Bruno  <lethalman88@gmail.com>
4098
4099         Reviewed by Alp Toker.
4100
4101         http://bugs.webkit.org/show_bug.cgi?id=15825
4102         [GTK] curl - slow dns causing hangs.
4103
4104         Create a vector of jobs, to satisfy requests in the right order.
4105         Set a limit to the number of simultaneous connections.
4106
4107         * platform/network/curl/ResourceHandleManager.cpp:
4108         (WebCore::maxRunningJobs): added
4109         (WebCore::ResourceHandleManager::ResourceHandleManager):
4110         (WebCore::ResourceHandleManager::removeFromCurl):
4111         (WebCore::ResourceHandleManager::startScheduledJobs):
4112
4113         * platform/network/curl/ResourceHandleManager.h:
4114         (WebCore::ResourceHandleList): removed
4115         (WebCore::ResourceHandleManager::m_runningJobs): added
4116         (WebCore::ResourceHandleManager::m_resourceHandleListHead): removed
4117         (WebCore::ResourceHandleManager::m_resourceHandleList): added
4118
4119 2007-12-08  Sam Weinig  <sam@webkit.org>
4120
4121         Reviewed by Oliver.
4122
4123         Cleanup kjs_window.h/cpp.
4124
4125         * bindings/js/kjs_window.cpp:
4126         (KJS::WindowPrivate::WindowPrivate):
4127         (KJS::DOMWindowTimer::DOMWindowTimer):
4128         (KJS::Window::Window):
4129         (KJS::Window::retrieveWindow):
4130         (KJS::Window::retrieveActive):
4131         (KJS::Window::retrieve):
4132         (KJS::Window::location):
4133         (KJS::Window::mark):
4134         (KJS::allowPopUp):
4135         (KJS::parseModalDialogFeatures):
4136         (KJS::floatFeature):
4137         (KJS::canShowModalDialog):
4138         (KJS::canShowModalDialogNow):
4139         (KJS::showModalDialog):
4140         (KJS::Window::getValueProperty):
4141         (KJS::Window::getOwnPropertySlot):
4142         (KJS::Window::globalExec):
4143         (KJS::Window::setListener):
4144         (KJS::Window::getListener):
4145         (KJS::Window::findOrCreateJSEventListener):
4146         (KJS::Window::findOrCreateJSUnprotectedEventListener):
4147         (KJS::Window::clearHelperObjectProperties):
4148         (KJS::Window::setCurrentEvent):
4149         (KJS::WindowProtoFuncAToB::callAsFunction):
4150         (KJS::WindowProtoFuncBToA::callAsFunction):
4151         (KJS::WindowProtoFuncOpen::callAsFunction):
4152         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
4153         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
4154         (KJS::WindowProtoFuncSetInterval::callAsFunction):
4155         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
4156         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
4157         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
4158         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
4159         * bindings/js/kjs_window.h:
4160         (KJS::PausedTimeouts::PausedTimeouts):
4161         (KJS::PausedTimeouts::takeTimeouts):
4162         (KJS::ScheduledAction::ScheduledAction):
4163
4164 2007-12-08  Sam Weinig  <sam@webkit.org>
4165
4166         Reviewed by Mitz.
4167
4168         Move window scrolling, moving and resizing methods from KJS::Window
4169         to WebCore::DOMWindow so that there bindings can be autogenerated.
4170
4171         Tests: fast/dom/Window/window-resize-and-move-arguments.html
4172                fast/dom/Window/window-scroll-arguments.html
4173
4174         * WebCore.xcodeproj/project.pbxproj:
4175         * bindings/js/kjs_window.cpp:
4176         (KJS::Window::getValueProperty): Remove extraneous allowsAccessFrom check.
4177         (KJS::WindowProtoFuncOpen::callAsFunction):
4178         (KJS::WindowProtoFuncNotImplemented::callAsFunction): Remove extraneous allowsAccessFrom check.
4179         * bindings/js/kjs_window.h:
4180         * bindings/scripts/CodeGeneratorJS.pm: Add new extended attribute
4181         to ensure that the no less than the declared number of attributes
4182         is allowed.
4183         * page/DOMWindow.cpp:
4184         (WebCore::DOMWindow::adjustWindowRect): Moved from kjs_window.
4185         (WebCore::DOMWindow::scrollBy):
4186         (WebCore::DOMWindow::scrollTo):
4187         (WebCore::DOMWindow::moveBy):
4188         (WebCore::DOMWindow::moveTo):
4189         (WebCore::DOMWindow::resizeBy):
4190         (WebCore::DOMWindow::resizeTo):
4191         * page/DOMWindow.h:
4192         (WebCore::DOMWindow::scroll):
4193         * page/DOMWindow.idl:
4194
4195 2007-12-08  Kevin Ollivier  <kevino@theolliviers.com>
4196
4197         Reviewed by Alp Toker.
4198
4199         http://bugs.webkit.org/show_bug.cgi?id=14651
4200         [CURL] didReceiveResponse() only called for HTTP loads
4201
4202         http://bugs.webkit.org/show_bug.cgi?id=14583
4203         [GDK] file:// relative CSS include URLs handled incorrectly
4204
4205         Make sure CURL sets the ResourceResponse URL and calls
4206         didReceiveResponse for local files too. 
4207
4208         * platform/network/curl/ResourceHandleManager.cpp:
4209         (WebCore::writeCallback):
4210
4211 2007-12-08  Oliver Hunt  <oliver@apple.com>
4212
4213         Reviewed by Sam W.
4214
4215         Split the ENABLE_SVG_EXPERIMENTAL_FEATURES flag into separate flags.
4216         
4217         Fixes <rdar://problem/5620249> Must disable SVG animation
4218         <rdar://problem/5612772> Disable SVG filters on Mac to match Windows behavior
4219         
4220         In order to allow finer grained control over the set of SVG features
4221         this patch splits ENABLE_SVG_EXPERIMENTAL_FEATURES into the following
4222         distinct flags:
4223         ENABLE_SVG_ANIMATION
4224         ENABLE_SVG_FILTERS
4225         ENABLE_SVG_FONTS
4226         ENABLE_SVG_AS_IMAGE
4227         ENABLE_SVG_USE
4228         
4229         by default only ENABLE_SVG_AS_IMAGE and ENABLE_SVG_USE are set.
4230
4231         * Configurations/WebCore.xcconfig:
4232         * DerivedSources.make:
4233           Handle the increased number of build flags that may be necessary
4234           
4235         * WebCore.SVG.Animation.exp: Added.
4236         * WebCore.SVG.Filters.exp: Added.
4237         * WebCore.SVG.exp:
4238           We now may not need the animation or filter exports so 
4239           these need to be separate.
4240           
4241         * WebCore.vcproj/WebCore.vcproj:
4242         * WebCore.vcproj/build-generated-files.sh:
4243           Update for new flags
4244           
4245         Remainder of changes are to swap ENABLE(SVG_EXPERIMENTAL_FEATURES) 
4246         with the appropriate specific feature flag.  
4247         * bindings/js/JSSVGElementWrapperFactory.cpp:
4248         (WebCore::createJSSVGWrapper):
4249         * bindings/objc/DOM.mm:
4250         (WebCore::createElementClassMap):
4251         * dom/make_names.pl:
4252         * loader/CachedImage.cpp:
4253         (WebCore::CachedImage::createImage):
4254         * page/DOMWindow.idl:
4255         * rendering/RenderPath.cpp:
4256         (WebCore::RenderPath::absoluteClippedOverflowRect):
4257         * rendering/RenderSVGContainer.cpp:
4258         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
4259         * rendering/RenderSVGImage.cpp:
4260         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
4261         * rendering/RenderSVGRoot.cpp:
4262         (WebCore::RenderSVGRoot::paint):
4263         (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
4264         * rendering/RenderSVGText.cpp:
4265         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
4266         * rendering/SVGRenderSupport.cpp:
4267         (WebCore::prepareToRenderSVGContent):
4268         (WebCore::finishRenderSVGContent):
4269         * svg/SVGAnimateElement.cpp:
4270         * svg/SVGAnimateElement.h:
4271         * svg/SVGAnimateElement.idl:
4272         * svg/SVGAnimateMotionElement.cpp:
4273         * svg/SVGAnimateMotionElement.h:
4274         * svg/SVGAnimateTransformElement.cpp:
4275         * svg/SVGAnimateTransformElement.h:
4276         * svg/SVGAnimateTransformElement.idl:
4277         * svg/SVGComponentTransferFunctionElement.cpp:
4278         * svg/SVGComponentTransferFunctionElement.h:
4279         * svg/SVGComponentTransferFunctionElement.idl:
4280         * svg/SVGDocumentExtensions.cpp:
4281         (WebCore::SVGDocumentExtensions::startAnimations):
4282         * svg/SVGFEBlendElement.cpp:
4283         * svg/SVGFEBlendElement.h:
4284         * svg/SVGFEBlendElement.idl:
4285         * svg/SVGFEColorMatrixElement.cpp:
4286         * svg/SVGFEColorMatrixElement.h:
4287         * svg/SVGFEColorMatrixElement.idl:
4288         * svg/SVGFEComponentTransferElement.cpp:
4289         * svg/SVGFEComponentTransferElement.h:
4290         * svg/SVGFEComponentTransferElement.idl:
4291         * svg/SVGFECompositeElement.cpp:
4292         * svg/SVGFECompositeElement.h:
4293         * svg/SVGFECompositeElement.idl:
4294         * svg/SVGFEDiffuseLightingElement.cpp:
4295         * svg/SVGFEDiffuseLightingElement.h:
4296         * svg/SVGFEDiffuseLightingElement.idl:
4297         * svg/SVGFEDisplacementMapElement.cpp:
4298         * svg/SVGFEDisplacementMapElement.h:
4299         * svg/SVGFEDisplacementMapElement.idl:
4300         * svg/SVGFEDistantLightElement.cpp:
4301         * svg/SVGFEDistantLightElement.h:
4302         * svg/SVGFEDistantLightElement.idl:
4303         * svg/SVGFEFloodElement.cpp:
4304         * svg/SVGFEFloodElement.h:
4305         * svg/SVGFEFloodElement.idl:
4306         * svg/SVGFEFuncAElement.cpp:
4307         * svg/SVGFEFuncAElement.h: