Reviewed by Brady
[WebKit-https.git] / WebCore / ChangeLog
1 2007-12-18  John Sullivan  <sullivan@apple.com>
2
3         Reviewed by Brady
4         
5         - fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name
6
7         * storage/DatabaseTracker.cpp:
8         (WebCore::DatabaseTracker::canEstablishDatabase):
9         pass "name" instead of "displayName" if there's no displayName
10
11 2007-12-17  Dan Bernstein  <mitz@apple.com>
12
13         Reviewed by Maciej Stachowiak.
14
15         - restore ButtonFace and ThreeDFace to their previous values for non-Mac
16           platforms. The Mac port also uses the same values for now instead
17           of NSColor-based ones.
18
19         * rendering/RenderTheme.cpp:
20         (WebCore::RenderTheme::systemColor):
21
22 2007-12-17  Rodney Dawes  <dobey@wayofthemonkey.com>
23
24         Reviewed by Maciej Stachowiak.
25
26         Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
27         Add required Frame::createScriptInstanceForWidget to FrameGtk
28
29         * config.h:
30         * page/gtk/FrameGtk.cpp (Frame::createScriptInstanceForWidget):
31
32 2007-12-17  Alice Liu  <alice.liu@apple.com>
33
34         Reviewed by Adam.
35
36         Fixed <rdar://5566435> window with no scrollbars can be scrolled
37
38         * platform/win/ScrollViewWin.cpp:
39         (WebCore::ScrollView::maximumScroll):
40         corrected maximumScroll() to account for scrolling not allowed.
41         (WebCore::ScrollView::wheelEvent):
42
43 2007-12-14  Juan A. Suarez Romero  <jasuarez@igalia.com>
44
45         Reviewed by Alp Toker.
46
47         http://bugs.webkit.org/show_bug.cgi?id=16042
48         [GTK] Eliminate webkit_init()
49
50         Move webkit initialization to WebView class init.
51
52         * WebCore.pro:
53
54 2007-12-17  Jon Honeycutt  <jhoneycutt@apple.com>
55
56         Reviewed by Darin.
57
58         <rdar://problem/5651291> REGRESSION: Flash content doesn't display
59         (www.adobe.com)
60
61         We were passing NPEvent** instead of NPEvent* to NPP_HandleEvent.
62
63         * plugins/win/PluginViewWin.cpp:
64         (WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not
65         NPEvent*
66         (WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent*
67         (WebCore::PluginViewWin::handleKeyboardEvent): same
68         (WebCore::PluginViewWin::handleMouseEvent): same
69         * plugins/win/PluginViewWin.h:
70
71 2007-12-17  Alexey Proskuryakov  <ap@webkit.org>
72
73         Reviewed by Darin.
74
75         Live to the promise of never making AppKit special character codes visible via DOM.
76
77         Test: fast/events/arrow-keys-on-body.html
78
79         * page/EventHandler.cpp:
80         (WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation,
81         to let quirks-aware code strip special charactrers.
82         * platform/mac/KeyEventMac.mm:
83         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks
84         mode, remove the text if it's a special character.
85
86 2007-12-17  Mark Rowe  <mrowe@apple.com>
87
88         Reviewed by Darin Adler.
89
90         Fix incorrect array size and incorrect array index in convertNSColorToColor.
91
92         * rendering/RenderThemeMac.mm:
93         (WebCore::convertNSColorToColor):
94
95 2007-12-17  Darin Adler  <darin@apple.com>
96
97         Reviewed by Mark Rowe.
98
99         - fix http://bugs.webkit.org/show_bug.cgi?id=16468
100           REGRESSION(r28781): Crash running storage/transaction_callback_exception_crash.html
101
102         * storage/DatabaseThread.cpp:
103         (WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database
104         because there's no guarantee it won't lose its last reference otherwise.
105
106 2007-12-17  Dan Bernstein  <mitz@apple.com>
107
108         Reviewed by Maciej Stachowiak.
109
110         - fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not
111           and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac
112
113         * platform/graphics/win/FontCacheWin.cpp:
114         (WebCore::FontCache::getFontDataForCharacters): To ensure that font
115         linking gives consistent results for characters that are exclusive to
116         the simplified Chinese code page and characters that belong to that
117         code page and other code pages, always ask to map to simplified Chinese
118         alone first.
119
120 2007-12-17  Christian Dywan  <christian@twotoasts.de>
121
122         Reviewed by Alp Toker.
123
124         http://bugs.webkit.org/show_bug.cgi?id=16378
125         Implement Icon for Gtk
126
127         Icon provides a GdkPixbuf containing a themed icon.
128         The icon theme is probed for an icon name according to the
129         Icon Naming Specification or conventional Gnome icon names respectively.
130
131         See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
132
133         * platform/graphics/Icon.h:
134         * platform/graphics/gtk/IconGtk.cpp:
135         (WebCore::Icon::~Icon):
136         (WebCore::lookupIconName):
137         (WebCore::Icon::newIconForFile):
138         (WebCore::Icon::paint):
139
140 2007-12-16  Sam Weinig  <sam@webkit.org>
141
142         Reviewed by Mitz.
143
144         Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
145         Move the JS Location object to its own file
146
147         - Move Location into its own file and rename it JSLocation.
148
149         * DerivedSources.make:
150         * WebCore.pro:
151         * WebCore.vcproj/WebCore.vcproj:
152         * WebCore.xcodeproj/project.pbxproj:
153         * WebCoreSources.bkl:
154         * bindings/js/JSDocumentCustom.cpp:
155         * bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp.
156         (WebCore::):
157         (WebCore::JSLocation::JSLocation):
158         (WebCore::JSLocation::getValueProperty):
159         (WebCore::JSLocation::getOwnPropertySlot):
160         (WebCore::JSLocation::put):
161         (WebCore::JSLocationProtoFuncReplace::callAsFunction):
162         (WebCore::JSLocationProtoFuncReload::callAsFunction):
163         (WebCore::JSLocationProtoFuncAssign::callAsFunction):
164         (WebCore::JSLocationProtoFuncToString::callAsFunction):
165         * bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h.
166         (WebCore::JSLocation::):
167         (WebCore::JSLocation::frame):
168         (WebCore::JSLocation::classInfo):
169         * bindings/js/kjs_window.cpp:
170         (KJS::Window::location):
171         * bindings/js/kjs_window.h:
172         * history/CachedPage.cpp:
173
174 2007-12-16  Dan Bernstein  <mitz@apple.com>
175
176         Reviewed by Sam Weinig.
177
178         - make 'cursor: copy' and 'cursor: none' work.
179
180         Already covered by manual-tests/cursor.html
181
182         * rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits,
183         needed for the 33rd and 34th cursor values.
184
185 2007-12-16  Mark Rowe  <mrowe@apple.com>
186
187         Reviewed by Maciej Stachowiak.
188
189         Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.
190
191         * WebCore.base.exp:
192         * WebCore.xcodeproj/project.pbxproj:
193         * loader/NetscapePlugInStreamLoader.h:
194         * loader/mac/NetscapePlugInStreamLoaderMac.mm: Removed.
195         * loader/mac/WebPlugInStreamLoaderDelegate.h: Moved to WebKit.
196
197 2007-12-16  Sam Weinig  <sam@webkit.org>
198
199         Reviewed by Maciej.
200
201         Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
202         Cleanup kjs_window
203
204         - Move ScheduledAction into its own file and put it in the WebCore namespace.
205
206         * WebCore.pro:
207         * WebCore.vcproj/WebCore.vcproj:
208         * WebCore.xcodeproj/project.pbxproj:
209         * WebCoreSources.bkl:
210         * bindings/js/PausedTimeouts.cpp:
211         * bindings/js/PausedTimeouts.h:
212         * bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp.
213         (WebCore::ScheduledAction::ScheduledAction):
214         (WebCore::ScheduledAction::execute):
215         * bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h.
216         (WebCore::ScheduledAction::ScheduledAction):
217         * bindings/js/kjs_window.cpp:
218         (KJS::DOMWindowTimer::DOMWindowTimer):
219         (KJS::DOMWindowTimer::action):
220         (KJS::DOMWindowTimer::takeAction):
221         (KJS::Window::installTimeout):
222         (KJS::Window::timerFired):
223         * bindings/js/kjs_window.h:
224
225 2007-12-16  Alp Toker  <alp@atoker.com>
226
227         Reviewed by Maciej.
228
229         http://bugs.webkit.org/show_bug.cgi?id=16356
230         [GTK] Integrate GStreamer video with the graphics backend
231
232         Integrate the GStreamer media backend with the Cairo graphics backend.
233         There are still some issues: Data is copied more often than necessary,
234         and repaint() is not called, causing transformed video not to update
235         sometimes.
236
237         * WebCore.pro:
238         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
239         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
240         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
241         (WebCore::MediaPlayerPrivate::currentTime):
242         (WebCore::MediaPlayerPrivate::setEndTime):
243         (WebCore::MediaPlayerPrivate::seeking):
244         (WebCore::MediaPlayerPrivate::naturalSize):
245         (WebCore::MediaPlayerPrivate::setMuted):
246         (WebCore::MediaPlayerPrivate::setRect):
247         (WebCore::MediaPlayerPrivate::setVisible):
248         (WebCore::MediaPlayerPrivate::repaint):
249         (WebCore::MediaPlayerPrivate::paint):
250         (WebCore::MediaPlayerPrivate::createGSTPlayBin):
251         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
252         * platform/graphics/gtk/VideoSinkGStreamer.cpp: Added.
253         (webkit_video_sink_base_init):
254         (webkit_video_sink_init):
255         (webkit_video_sink_idle_func):
256         (webkit_video_sink_render):
257         (webkit_video_sink_set_caps):
258         (webkit_video_sink_dispose):
259         (webkit_video_sink_finalize):
260         (webkit_video_sink_set_property):
261         (webkit_video_sink_get_property):
262         (webkit_video_sink_stop):
263         (webkit_video_sink_class_init):
264         (webkit_video_sink_new):
265         (webkit_video_sink_set_surface):
266         (plugin_init):
267         * platform/graphics/gtk/VideoSinkGStreamer.h: Added.
268
269 2007-12-16  Mark Rowe  <mrowe@apple.com>
270
271         Mac build fix.
272
273         * WebCore.xcodeproj/project.pbxproj: Remove NetscapePlugInStreamLoader.cpp from the WebCore target.
274         Mac currently has its own implementation in NetscapePlugInStreamLoaderMac.mm which conflicts with the
275         new shared implementation.
276
277 2007-12-16  Rodney Dawes  <dobey@wayofthemonkey.com>
278
279         Reviewed by Maciej Stachowiak.
280
281         http://bugs.webkit.org/show_bug.cgi?id=16389
282         Bug 16389: Common Implementation of NetscapePlugInStreamLoader
283
284         * WebCore.vcproj/WebCore.vcproj: Remove NetscapePlugInStreamLoaderWin.cpp.
285         * loader/NetscapePlugInStreamLoader.cpp: Copy method implementations from NetscapePlugInStreamLoaderWin.cpp.
286         * loader/win/NetscapePlugInStreamLoaderWin.cpp: Removed.
287
288 2007-12-16  Grace Kloba  <klobag@gmail.com>
289
290         Reviewed by Darin Adler.
291
292         Fix http://bugs.webkit.org/show_bug.cgi?id=16433.
293         Bug 16433: LOW_BANDWIDTH_DISPLAY build is broken
294
295         * dom/Document.cpp:
296         (WebCore::Document::Document):
297         * loader/FrameLoader.cpp:
298         (WebCore::FrameLoader::addLowBandwidthDisplayRequest):
299         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
300
301 2007-12-16  Darin Adler  <darin@apple.com>
302
303         Reviewed by Maciej.
304
305         - fix <rdar://problem/5636065> First form of SQLTransaction.executeSql() fails with TYPE_ERROR dom exception
306
307         Test: storage/execute-sql-args.html
308
309         * bindings/js/JSSQLTransactionCustom.cpp:
310         (WebCore::JSSQLTransaction::executeSql): Added exception handling code so that once an
311         exception happens, we won't try to do any more argument processing. Changed processing
312         of the second argument so that we allow an undefined value or null, and simply omit the
313         array. Changed processing of the second argument so that we don't require an actual
314         JavaScript array. Instead, as with the JavaScript array operations themselves, we use
315         the length property and corresponding numeric properties of the object, allowing other
316         objects to act as arrays. Changed processing of the third and fourth arguments to
317         allow the undefined value as well as null; we check the value of the argument rather
318         than looking at the size of the passed-in arguments list.
319
320 2007-12-16  Sam Weinig  <sam@webkit.org>
321
322         Reviewed by Darin.
323
324         More of http://bugs.webkit.org/show_bug.cgi?id=16385
325         Cleanup kjs_window
326
327         - Move PausedTimeouts into its own file and put it in the WebCore namespace.
328
329         * WebCore.pro:
330         * WebCore.vcproj/WebCore.vcproj:
331         * WebCore.xcodeproj/project.pbxproj:
332         * WebCoreSources.bkl:
333         * bindings/js/PausedTimeouts.cpp: Copied from bindings/js/kjs_window.cpp.
334         * bindings/js/PausedTimeouts.h: Copied from bindings/js/kjs_window.h.
335         * bindings/js/kjs_window.cpp:
336         (KJS::Window::pauseTimeouts):
337         * bindings/js/kjs_window.h:
338         * history/CachedPage.cpp:
339         * history/CachedPage.h:
340         * page/Chrome.cpp:
341
342 2007-12-16  Beth Dakin  <bdakin@apple.com>
343
344         Reviewed by Geoff.
345
346         Make relative-size SVGs work in border-image.
347
348         * rendering/RenderBox.cpp:
349         (WebCore::RenderBox::calculateBackgroundSize):
350         * rendering/RenderObject.cpp:
351         (WebCore::RenderObject::paintBorderImage):
352
353 2007-12-16  Darin Adler  <darin@apple.com>
354
355         - fix Tiger build (my fault it was broken)
356
357         * rendering/RenderThemeMac.mm: Define NSUInteger if on Tiger.
358
359 2007-12-16  Andrew Wellington  <proton@wiretapped.net>
360
361         Reviewed by Darin.
362         
363         http://bugs.webkit.org/show_bug.cgi?id=6129
364         Incomplete implementation of CSS 2.1 system colors
365
366         Test: fast/css/css2-system-color.html
367         
368         Based on original patch by Rob Buis.
369         
370         System colors are retrieved from NSColor as appropriate. If the color is a pattern color
371         (and therefore NSColor won't let us retrieve a color from it) we draw a 1x1 image of the
372         color and sample that to get a solid color.
373
374         * css/CSSStyleSelector.cpp:
375         (WebCore::):
376         (WebCore::colorForCSSValue):
377         * rendering/RenderTheme.cpp:
378         (WebCore::RenderTheme::systemColor):
379         * rendering/RenderTheme.h:
380         * rendering/RenderThemeMac.h:
381         * rendering/RenderThemeMac.mm:
382         (WebCore::getSystemColor):
383         (WebCore::RenderThemeMac::platformColorsDidChange):
384         (WebCore::RenderThemeMac::systemColor):
385
386 2007-12-16  Dan Bernstein  <mitz@apple.com>
387
388         Reviewed by Darin Adler.
389
390         - fix http://bugs.webkit.org/show_bug.cgi?id=16426
391           Divs with overflow:auto: scrollbars not correctly updated when contents change
392
393         Test: fast/overflow/scrollbar-position-update.html
394
395         * platform/mac/PlatformScrollBarMac.mm:
396         (WebCore::PlatformScrollbar::updateThumbProportion): Update the
397         NSScroller's value for the new proportions.
398         * rendering/RenderLayer.cpp:
399         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed unnecessary
400         repaint(). Scrollbars repaint themselves as needed.
401
402 2007-12-16  Alexey Proskuryakov  <ap@webkit.org>
403
404         Reviewed by Darin.
405
406         http://bugs.webkit.org/show_bug.cgi?id=14140
407         <rdar://problem/5270958> REGRESSION: Complex system KeyBindings don't work properly
408
409         * dom/KeyboardEvent.h:
410         (WebCore::KeypressCommand::KeypressCommand):
411         (WebCore::KeyboardEvent::keypressCommands):
412         Change stored command class to preserve complete information about commands.
413
414         * editing/EditorCommand.cpp: (WebCore::CommandEntry::): Mark InsertText as a text insertion
415         command, which it is. Previously, we couldn't do it because WebKit didn't really treat insertText:
416         as a command.
417
418         * page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Copy commands saved while interpreting
419         a keydown event into keypress, to avoid losing state when running interpretKeyEvents: again.
420
421 2007-12-16  Alexey Proskuryakov  <ap@webkit.org>
422
423         Reviewed by Darin.
424
425         http://bugs.webkit.org/show_bug.cgi?id=16462
426         REGRESSION: access keys broken on Windows
427
428         * page/EventHandler.cpp:
429         (WebCore::EventHandler::handleAccessKey):
430         (WebCore::EventHandler::keyEvent):
431         * page/EventHandler.h:
432         Make handleAccessKey a class method; rely on WebKit to call it on Windows and wxWidgets.
433
434 2007-12-16  Xan Lopez  <xan@gnome.org>
435
436         Reviewed by Alexey Proskuryakov.
437
438         http://bugs.webkit.org/show_bug.cgi?id=16454
439         [GTK] Text input doesn't work consistently on PPC
440
441         * platform/gtk/KeyEventGtk.cpp:
442         (WebCore::singleCharacterString):
443
444         UChar is 2 bytes (UTF-16), so transform accordingly from
445         gunichar (UCS-4). Fixes keyboard input on big endian systems.
446
447 2007-12-15  Darin Adler  <darin@apple.com>
448
449         Reviewed by Mark Rowe.
450
451         - better build fix for the problem affecting GTK and some other platforms
452           "this time for sure"
453
454         * WebCore.xcodeproj/project.pbxproj:
455         * bindings/js/JSEventTargetBase.cpp: Move the include of the .lut.h file here.
456         * bindings/js/JSEventTargetBase.h: Instead of including the .lut.h file in the header,
457         which won't work, declare the tables that are in the .lut.h file in the header.
458
459 2007-12-12  Kevin Watters  <kevin@dotsyntax.com>
460
461         Reviewed by Darin Adler.
462
463         Fixed the Wx port's FontPlatformData for use in HashTable.
464         - FontPlatformData(Deleted) made unequal to FontPlatformData()
465
466         * platform/graphics/wx/FontPlatformData
467
468 2007-12-15  Dan Bernstein  <mitz@apple.com>
469
470         Reviewed by Darin Adler.
471
472         - fix <rdar://problem/5636090> Text in Georgia, Armenian, Inuktitut, Cree, or Cherokee (KA, HY, IU, CR, CHR) draws as all missing glyphs
473
474         * platform/graphics/win/FontCacheWin.cpp:
475         (WebCore::metaFileEnumProc): Added. Called during metafile record
476         enumeration and extracts the font from the create font record.
477         (WebCore::FontCache::getFontDataForCharacters): If font linking fails,
478         let Uniscribe draw the characters and see what font it chooses.
479
480 2007-12-15  Darin Adler  <darin@apple.com>
481
482         * WebCore.pro: Roll my last change out. Was wrong and didn't fix the build.
483
484 2007-12-15  Darin Adler  <darin@apple.com>
485
486         Another try at a GTK build fix.
487
488         * WebCore.pro: Add JSEventTargetBase.cpp to LUT_TABLE_FILES instead of LUT_FILES.
489
490 2007-12-15  Sam Weinig  <sam@webkit.org>
491
492         Force windows to regenerate COM DOM bindings.
493
494         * WebCore.vcproj/build-generated-files.sh: Add license. 
495         * bindings/scripts/CodeGeneratorCOM.pm: Use shared WK_ucfirst.
496
497 2007-12-15  Sam Weinig  <sam@webkit.org>
498
499         Fix Windows and wx builds.
500
501         * WebCore.vcproj/WebCore.vcproj:
502         * WebCoreSources.bkl:
503
504 2007-12-15  Mark Rowe  <mrowe@apple.com>
505
506         Gtk build fix.  Add JSEventTargetBase.cpp to SOURCES.
507
508         * WebCore.pro:
509
510 2007-12-15  Sam Weinig  <sam@webkit.org>
511
512         Fix wx build.
513
514         * WebCoreSources.bkl:
515
516 2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>
517
518         Not reviewed. Build fix for Qt/Gtk.
519
520         * WebCore.pro: Include JSEventTargetBase.lut.h in generation
521
522 2007-12-15  Nikolas Zimmermann  <zimmermann@kde.org>
523
524         Reviewed by Eric.
525
526         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16445 (Refactor EventTargetNode & JSEventTargetNode for an upcoming SVG patch)
527
528         Split up JSEventTargetNode in JSEventTargetNode & JSEventTargetBase - where most functionality has been moved down
529         in the base class. Applied the same refactorization to EventTargetNode.
530
531         This makes it possible for the upcoming patch implementing the EventTarget interface for SVGElementInstance
532         to share as much code as possible with the EventTargetNode classes.
533
534         * DerivedSources.make:
535         * WebCore.xcodeproj/project.pbxproj:
536         * bindings/js/JSEventTargetBase.cpp: Added.
537         (WebCore::retrieveEventTargetAndCorrespondingNode):
538         (WebCore::eventNameForPropertyToken):
539         * bindings/js/JSEventTargetBase.h: Added.
540         (WebCore::JSEventTargetProperties::):
541         (WebCore::JSEventTargetPrototypeFunctionBase::JSEventTargetPrototypeFunctionBase):
542         (WebCore::JSEventTargetPrototypeFunction::JSEventTargetPrototypeFunction):
543         (WebCore::):
544         (WebCore::::create):
545         (WebCore::JSEventTargetBase::JSEventTargetBase):
546         (WebCore::JSEventTargetBase::getValueProperty):
547         (WebCore::JSEventTargetBase::putValueProperty):
548         (WebCore::JSEventTargetBase::getOwnPropertySlot):
549         (WebCore::JSEventTargetBase::put):
550         (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
551         (WebCore::JSEventTargetPrototype::self):
552         (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
553         (WebCore::JSEventTargetPrototype::classInfo):
554         * bindings/js/JSEventTargetNode.cpp:
555         (WebCore::JSEventTargetNode::getOwnPropertySlot):
556         (WebCore::JSEventTargetNode::getValueProperty):
557         (WebCore::JSEventTargetNode::put):
558         (WebCore::JSEventTargetNode::putValueProperty):
559         (WebCore::JSEventTargetNode::setListener):
560         (WebCore::toEventTargetNode):
561         * bindings/js/JSEventTargetNode.h:
562         (WebCore::JSEventTargetPrototypeInformation::prototypeClassName):
563         (WebCore::JSEventTargetPrototypeInformation::prototypeIdentifier):
564         * dom/EventTarget.cpp:
565         (WebCore::EventTarget::addEventListener):
566         (WebCore::EventTarget::removeEventListener):
567         (WebCore::EventTarget::dispatchGenericEvent):
568         (WebCore::EventTarget::removeAllEventListeners):
569         (WebCore::EventTarget::insertedIntoDocument):
570         (WebCore::EventTarget::removedFromDocument):
571         (WebCore::EventTarget::handleLocalEvents):
572         (WebCore::EventTarget::applySVGEventTargetRules):
573         (WebCore::forbidEventDispatch):
574         (WebCore::allowEventDispatch):
575         (WebCore::eventDispatchForbidden):
576         * dom/EventTarget.h:
577         (WebCore::EventTarget::preDispatchEventHandler):
578         (WebCore::EventTarget::postDispatchEventHandler):
579         (WebCore::forbidEventDispatch):
580         (WebCore::allowEventDispatch):
581         * dom/EventTargetNode.cpp:
582         (WebCore::EventTargetNode::~EventTargetNode):
583         (WebCore::EventTargetNode::insertedIntoDocument):
584         (WebCore::EventTargetNode::removedFromDocument):
585         (WebCore::EventTargetNode::addEventListener):
586         (WebCore::EventTargetNode::removeEventListener):
587         (WebCore::EventTargetNode::removeAllEventListeners):
588         (WebCore::EventTargetNode::handleLocalEvents):
589         (WebCore::EventTargetNode::dispatchEvent):
590         (WebCore::EventTargetNode::dispatchWindowEvent):
591         * dom/EventTargetNode.h:
592         (WebCore::EventTargetNode::localEventListeners):
593         * svg/SVGElement.cpp:
594         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
595         (WebCore::SVGElement::dispatchEvent):
596
597 2007-12-15  Eric Seidel  <eric@webkit.org>
598
599         Reviewed by Oliver.
600         
601         Width of SVG elements not applied to container elements
602         http://bugs.webkit.org/show_bug.cgi?id=16305
603         Added calcPrefWidths for RenderSVGRoot (copied from RenderReplaced)
604         This is caused by poor factoring in the render tree.  RenderContainer probably should be a template.
605
606         svg/css/css-box-min-width.html
607
608         * rendering/RenderSVGRoot.cpp:
609         (WebCore::RenderSVGRoot::calcPrefWidths): Added.
610         * rendering/RenderSVGRoot.h:
611         * css/SVGCSSStyleSelector::applySVGProperty: fixed ASSERT in debug builds
612
613 2007-12-15  David Kilzer  <ddkilzer@apple.com>
614
615         Fix comment after isSafeScript() was renamed to allowsAccessFrom().
616
617         * bindings/js/kjs_window.cpp:
618         (KJS::createWindow):
619
620 2007-12-15  Alp Toker  <alp@atoker.com>
621
622         Reviewed by Mark Rowe.
623
624         http://bugs.webkit.org/show_bug.cgi?id=16449
625         cairo_arc() functions hang or crash when passed inf as radius or start/end angle
626
627         Add checks. This matches a similar workaround for a CG bug in the CG
628         graphics backend: <rdar://problem/5189233>
629
630         Fixes:
631           fast/canvas/arc-crash.html
632           fast/canvas/canvas-with-incorrect-args.html
633
634         * platform/graphics/cairo/PathCairo.cpp:
635         (WebCore::Path::addArc):
636
637 2007-12-15  Alexey Proskuryakov  <ap@webkit.org>
638
639         Reviewed by Darin.
640
641         http://bugs.webkit.org/show_bug.cgi?id=16078
642         Google Maps zooming via the scroll wheel (almost) always zooms IN only.
643
644         * dom/WheelEvent.cpp: (WebCore::WheelEvent::WheelEvent):
645         Ensure that delta is never rounded down to zero - we are getting values less than 1 from 
646         many mice on OS X, and Google Maps code assumes scrolling up if event.wheelDelta is zero.
647
648 2007-12-14  Dan Bernstein  <mitz@apple.com>
649
650         - Windows build fix
651
652         * WebCore.vcproj/WebCore.vcproj:
653
654 2007-12-14  Alp Toker  <alp@atoker.com>
655
656         GTK+/Qt build fix. Track added files in r28722.
657
658         * WebCore.pro:
659
660 2007-12-14  Sam Weinig  <sam@webkit.org>
661
662         Reviewed by Geoff.
663
664         Speed up getElementByClassName.
665         - This makes getElementByClassName 33% faster on the stress test
666           linked to at http://bugs.webkit.org/show_bug.cgi?id=15760.
667
668         * platform/text/StringImpl.cpp:
669         (WebCore::StringImpl::foldCase): Optimize the case when all the characters are ASCII.
670
671 2007-12-14  Alp Toker  <alp@atoker.com>
672
673         Reviewed by Maciej.
674
675         http://bugs.webkit.org/show_bug.cgi?id=16432
676         [GTK] Update license headers
677
678         Consent has been given by the authors of these files to change license
679         to the LGPL as outlined in the bug report.
680
681         * platform/gtk/ClipboardGtk.cpp:
682         * platform/gtk/ContextMenuGtk.cpp:
683         * platform/gtk/ContextMenuItemGtk.cpp:
684         * platform/gtk/CookieJarGtk.cpp:
685         * platform/gtk/CursorGtk.cpp:
686         * platform/gtk/DragDataGtk.cpp:
687         * platform/gtk/DragImageGtk.cpp:
688         * platform/gtk/PasteboardGtk.cpp:
689         * platform/gtk/PlatformScreenGtk.cpp:
690         * platform/gtk/PlatformScrollBarGtk.cpp:
691         * platform/gtk/SearchPopupMenuGtk.cpp:
692         * platform/gtk/WidgetGtk.cpp:
693
694 2007-12-14  Darin Adler  <darin@apple.com>
695
696         Reviewed by Adele.
697
698         - fix http://bugs.webkit.org/show_bug.cgi?id=16442
699           navigation policy delegate gets called twice for each load
700
701         * loader/MainResourceLoader.cpp:
702         (WebCore::MainResourceLoader::willSendRequest): Removed call to checkNavigationPolicy.
703         That's handled by FrameLoader.
704
705         * loader/MainResourceLoader.h: Removed callContinueAfterNavigationPolicy
706         and continueAfterNavigationPolicy.
707
708 2007-12-14  Anders Carlsson  <andersca@apple.com>
709
710         Reviewed by Brady.
711
712         Make document.open count as committing a document load, so that -[WebFrame dataSource:] won't
713         return nil in that case.
714         
715         * loader/FrameLoader.cpp:
716         (WebCore::FrameLoader::didExplicitOpen):
717
718 2007-12-14  David Smith  <catfish.man@gmail.com>
719
720         Reviewed by Mitz.
721
722         - fix http://bugs.webkit.org/show_bug.cgi?id=14955
723           Implement getElementsByClassName.
724
725         This patch also renames AtomicStringList to ClassNames to better reflect its actual use,
726         and takes advantage of admitting that it's class-specific to encapsulate class attribute 
727         parsing so it can be shared.  It also changes the class to use a Vector, rather than a linked
728         list to store the class names.
729
730         Tests: fast/dom/getElementsByClassName/001.html
731                fast/dom/getElementsByClassName/002.html
732                fast/dom/getElementsByClassName/003.html
733                fast/dom/getElementsByClassName/004.html
734                fast/dom/getElementsByClassName/005.html
735                fast/dom/getElementsByClassName/006.html
736                fast/dom/getElementsByClassName/007.html
737                fast/dom/getElementsByClassName/008.html
738                fast/dom/getElementsByClassName/009.html
739                fast/dom/getElementsByClassName/010.xml
740                fast/dom/getElementsByClassName/011.xml
741                fast/dom/getElementsByClassName/012.html
742                fast/dom/getElementsByClassName/013.html
743                fast/dom/getElementsByClassName/014.html
744                fast/dom/getElementsByClassName/array/001.html
745                fast/dom/getElementsByClassName/array/002.html
746                fast/dom/getElementsByClassName/array/003.html
747                fast/dom/getElementsByClassName/array/004.html
748                fast/dom/getElementsByClassName/dumpNodeList.html
749
750         * WebCore.xcodeproj/project.pbxproj:
751         * css/CSSStyleSelector.cpp:
752         (WebCore::CSSStyleSelector::matchRules):
753         (WebCore::CSSStyleSelector::checkOneSelector):
754         * dom/AtomicStringList.h: Removed.
755         * dom/ClassNames.cpp: Added.
756         (WebCore::ClassNames::contains):
757         (WebCore::ClassNames::parseClassAttribute):
758         * dom/ClassNames.h: Copied from WebCore/dom/AtomicStringList.h.
759         (WebCore::ClassNames::ClassNames):
760         (WebCore::ClassNames::size):
761         (WebCore::ClassNames::clear):
762         (WebCore::ClassNames::operator[]):
763         (WebCore::isClassWhitespace):
764         * dom/ClassNodeList.cpp: Added.
765         (WebCore::ClassNodeList::ClassNodeList):
766         (WebCore::ClassNodeList::length):
767         (WebCore::ClassNodeList::item):
768         (WebCore::ClassNodeList::nodeMatches):
769         * dom/ClassNodeList.h: Added.
770         * dom/Document.cpp:
771         (WebCore::Document::getElementsByName):
772         (WebCore::Document::getElementsByClassName):
773         * dom/Document.h:
774         * dom/Document.idl:
775         * dom/Element.cpp:
776         (WebCore::Element::getClassNames):
777         (WebCore::Element::getElementsByClassName):
778         * dom/Element.h:
779         * dom/Element.idl:
780         * dom/NameNodeList.cpp:
781         (WebCore::NameNodeList::NameNodeList):
782         (WebCore::NameNodeList::item):
783         (WebCore::NameNodeList::nodeMatches):
784         * dom/NameNodeList.h:
785         * dom/NamedMappedAttrMap.cpp:
786         (WebCore::NamedMappedAttrMap::clearAttributes):
787         (WebCore::NamedMappedAttrMap::parseClassAttribute):
788         * dom/NamedMappedAttrMap.h:
789         (WebCore::NamedMappedAttrMap::getClassNames):
790         * dom/StyledElement.cpp:
791         (WebCore::StyledElement::getClassNames):
792         * dom/StyledElement.h:
793
794 2007-12-14  Darin Adler  <darin@apple.com>
795
796         Reviewed by Sam.
797
798         - fix http://bugs.webkit.org/show_bug.cgi?id=16351
799           FontFallbackList.h doesn't include wtf/PassRefPtr.h
800           
801         * platform/graphics/FontFallbackList.h: Added include of <wtf/Forward.h>
802         * platform/graphics/GlyphPageTreeNode.h: Removed an unneeded include.
803
804 2007-12-14  Darin Adler  <darin@apple.com>
805
806         Reviewed by Alexey.
807
808         - http://bugs.webkit.org/show_bug.cgi?id=16420
809           change regression tests to use document.execCommand instead of textInputController.doCommand
810
811         Add a few more operations to document.execCommand.
812
813         Finished up the transition to the new Editor::Command, including removing
814         the Editor::execCommand function.
815
816         * WebCore.base.exp: Added Editor::Command::isSupported.
817         * editing/Editor.h: Removed execCommand.
818         * editing/EditorCommand.cpp:
819         (WebCore::expandSelectionToGranularity): Added.
820         (WebCore::verticalScrollDistance): Added; replaces canScroll.
821         (WebCore::executeDeleteBackward): Added. Moved code here from WebHTMLView.
822         (WebCore::executeDeleteBackwardByDecomposingPreviousCharacter): Ditto.
823         (WebCore::executeDeleteForward): Ditto.
824         (WebCore::executeDeleteToBeginningOfLine): Ditto.
825         (WebCore::executeDeleteToBeginningOfParagraph): Ditto.
826         (WebCore::executeDeleteToEndOfLine): Ditto.
827         (WebCore::executeDeleteToEndOfParagraph): Ditto.
828         (WebCore::executeMovePageDown): Renamed this command to be consistent with all the other
829         Move commands. They all modify the caret. Reimplemented to match the Mac OS X version by
830         removing the explicit scrolling, and letting it be done automatically by code that makes
831         the caret visible. In some cases the old code would scroll twice which was harmless but
832         unnecessary.
833         (WebCore::executeMovePageDownAndModifySelection): Added. Moved code here from WebHTMLView.
834         (WebCore::executeMovePageUp): See MovePageDown above.
835         (WebCore::executeMovePageUpAndModifySelection): Added. Moved code here from WebHTMLView.
836         (WebCore::executeSelectLine): Ditto.
837         (WebCore::executeSelectParagraph): Ditto.
838         (WebCore::executeSelectSentence): Ditto.
839         (WebCore::executeSelectWord): Ditto.
840         (WebCore::executeSwapWithMark): Some small tweaks.
841
842         * page/ContextMenuController.cpp:
843         (WebCore::ContextMenuController::contextMenuItemSelected): Changed to use Editor::command()
844         instead of Editor::execCommand(). This code could be changed to use Editor::Command quite a
845         bit more, but I didn't do that this time.
846
847         - Removed some obsolete unused code.
848
849         * page/mac/EventHandlerMac.mm:
850         (WebCore::EventHandler::passMouseDownEventToWidget): Removed the special case code for
851         NSTextView. This was left over from when we used NSTextField and NSTextView for form
852         elements and is no longer used at all.
853
854         * page/mac/WebCoreFrameBridge.h: Removed 20 unused methods that were still on one side
855         of the bridge or another. We really need to find a time to tear down the rest of the
856         bridge, but that's not this patch.
857
858         * page/mac/WebCoreFrameBridge.mm:
859         (-[WebCoreFrameBridge addData:]): Changed to get at the _shouldCreateRenderers field directly
860         instead of using a method.
861         (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
862         Took out obsolete comment about matching enums (we use a single enum now and have for some
863         time).
864         (-[WebCoreFrameBridge selectionGranularity]): Ditto.
865
866 2007-12-14  Justin Garcia  <justin.garcia@apple.com>
867
868         Reviewed by Darin Adler.
869
870         <rdar://problem/5575101> GoogleDocs: Hang in SplitElementCommand::doApply when outdenting a list item in a particular list
871
872         * editing/CompositeEditCommand.cpp:
873         (WebCore::CompositeEditCommand::splitTreeToNode): Moved here.
874         * editing/CompositeEditCommand.h:
875         * editing/IndentOutdentCommand.cpp: Moved splitTreeToNode.
876         * editing/IndentOutdentCommand.h: Ditto, and removed unimplemented splitTreeTo.
877         * editing/InsertListCommand.cpp:
878         (WebCore::InsertListCommand::doApply): Split ancestors of listChildNode between
879         it and listNode, if they exists, so that moving listChildNode doesn't put it out
880         of order.  Added a test case to cover each change.
881         * editing/SplitElementCommand.cpp:
882         (WebCore::SplitElementCommand::doApply): Added an ASSERT to catch code that
883         tries to split a container at a bogus child, and an early return to avoid a
884         hang in that case.
885
886 2007-12-14  Anders Carlsson  <andersca@apple.com>
887
888         Reviewed by Darin and Geoff.
889
890         <rdar://problem/5619295> 
891         REGRESSION: 303-304: Embedded YouTube video fails to render- JS errors (16150) (Flash 9)
892
893         _NPN_CreateScriptObject doesn't take an origin root object anymore.
894         
895         * html/HTMLPlugInElement.cpp:
896         (WebCore::HTMLPlugInElement::createNPObject):
897         * page/Frame.cpp:
898         (WebCore::Frame::windowScriptNPObject):
899
900 2007-12-14  Dan Bernstein  <mitz@apple.com>
901
902         Reviewed by Darin Adler.
903
904         - fix <rdar://problem/5643663> text-shadow and box-shadow offsets 1px smaller than specified
905           which is the root cause of:
906           http://bugs.webkit.org/show_bug.cgi?id=12943
907           box-shadow: small values don't affect shadow position
908           http://bugs.webkit.org/show_bug.cgi?id=14736
909           Safari implementation of text-shadow off by 1px
910
911         * platform/graphics/cg/GraphicsContextCG.cpp:
912         (WebCore::GraphicsContext::setShadow): Slightly increase the magnitude
913         of the offsets passed to CGContextSetShadow* to ensure that the end
914         result after truncation is the desired integer offsets.
915
916 2007-12-13  Alp Toker  <alp@atoker.com>
917
918         curl backend build fix for breakage introduced in r28709.
919
920         * platform/network/ResourceHandleInternal.h:
921         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
922
923 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
924
925         Reviewed by Oliver Hunt.
926
927         <rdar://problem/5607069> In Mail, a crash occurs at WebCore::AppendNodeCommand() after dragging image into a <FORM> element
928
929         * editing/InsertLineBreakCommand.cpp:
930         (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Equip this function to
931         handle editing positions, like [input, 0];
932         * editing/InsertParagraphSeparatorCommand.cpp:
933         (WebCore::InsertParagraphSeparatorCommand::doApply): Pass enclosingBlock a node peeled
934         off of a non-editing position, to fix a bug where the enclosing block of [input, 0] was
935         the input element itself.
936         Insert a <br> when a <form> element is the enclosing block instead of splitting/cloning or
937         nesting a <div>.
938
939 2007-12-13  Alp Toker  <alp@atoker.com>
940
941         Reviewed by Oliver Hunt.
942
943         http://bugs.webkit.org/show_bug.cgi?id=16365
944         [cURL] Acid2 test segmentation fault
945
946         This patch makes the Acid2 test pass.
947
948         Defer the cleanup of cancelled jobs and halt further transfer as early
949         as possible.
950
951         Bug found by and initial patch provided by Luca Bruno.
952
953         * platform/network/curl/ResourceHandleManager.cpp:
954         (WebCore::writeCallback):
955         (WebCore::headerCallback):
956         (WebCore::ResourceHandleManager::downloadTimerCallback):
957         (WebCore::ResourceHandleManager::cancel):
958
959 2007-12-13  Sam Weinig  <sam@webkit.org>
960
961         Reviewed by Mark Rowe.
962
963         Fix typos and rename InspectorController::moveByUnrestricted to InspectorController::moveWindowBy.
964
965         * page/InspectorController.cpp:
966         (WebCore::moveByUnrestricted):
967         (WebCore::InspectorController::windowScriptObjectAvailable):
968         (WebCore::InspectorController::moveWindowBy):
969         * page/InspectorController.h:
970         * page/inspector/inspector.js:
971
972 2007-12-13  Dan Bernstein  <mitz@apple.com>
973
974         Reviewed by Dave Hyatt.
975
976         - fix <rdar://problem/5642426> explicit cubic-bezier curves all treated as "default" for transition-timing-function
977
978         Test: fast/css/transition-timing-function.html
979
980         * css/CSSStyleSelector.cpp: Changed the HANDLE_MULTILAYER_VALUE macro to
981         not reject non-primitive non-list values, and instead made sure that the
982         mapping functions rejected them if necessary. This allows non-primitive
983         timing functions to be mapped.
984         (WebCore::CSSStyleSelector::mapBackgroundAttachment):
985         (WebCore::CSSStyleSelector::mapBackgroundClip):
986         (WebCore::CSSStyleSelector::mapBackgroundComposite):
987         (WebCore::CSSStyleSelector::mapBackgroundOrigin):
988         (WebCore::CSSStyleSelector::mapBackgroundImage):
989         (WebCore::CSSStyleSelector::mapBackgroundRepeat):
990         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
991         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
992         (WebCore::CSSStyleSelector::mapTransitionDuration):
993         (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
994         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
995         (WebCore::CSSStyleSelector::mapTransitionProperty):
996         * css/CSSTimingFunctionValue.cpp:
997         (WebCore::CSSTimingFunctionValue::cssText): Implemented for use in the
998         regression test.
999         * css/CSSTimingFunctionValue.h:
1000         (WebCore::CSSTimingFunctionValue::isTransitionTimingFunctionValue):
1001         Added. Returns true.
1002         * css/CSSValue.h:
1003         (WebCore::CSSValue::isTransitionTimingFunctionValue): Added. Returns
1004         false.
1005
1006 2007-12-13  Steve Falkenburg  <sfalken@apple.com>
1007
1008         Move source file generation into its own vcproj to fix build dependencies.
1009
1010         Reviewed by Adam.
1011
1012         * WebCore.vcproj/WebCore.make:
1013         * WebCore.vcproj/WebCore.sln:
1014         * WebCore.vcproj/WebCore.submit.sln:
1015         * WebCore.vcproj/WebCore.vcproj:
1016         * WebCore.vcproj/WebCoreGenerated.vcproj: Added.
1017
1018 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
1019
1020         Reviewed by Oliver Hunt.
1021         
1022         <rdar://problem/4145786> Undoing a color change of text in a compose window always changes it back to black
1023         
1024         Some of the operations performed in removeHTMLFontStyle were non-undoable.
1025         
1026         I'm having trouble writing a layout test for this because I can't get DRT to
1027         perform editing operations in separate Undo steps without adding unacceptably long
1028         wait times between operations.  I filed:
1029         
1030         <rdar://problem/5646779> Can't get DRT to perform editing operations in separate Undo steps
1031
1032         * editing/ApplyStyleCommand.cpp:
1033         (WebCore::ApplyStyleCommand::removeHTMLFontStyle):
1034
1035 2007-12-13  Sam Weinig  <sam@webkit.org>
1036
1037         Reviewed by Anders.
1038
1039         Fix for http://bugs.webkit.org/show_bug.cgi?id=16352
1040         Toolbar dragged inspector cannot be moved beyond screen edges
1041
1042         * page/InspectorController.cpp:
1043         (WebCore::moveByUnrestricted):
1044         (WebCore::InspectorController::windowScriptObjectAvailable):
1045         (WebCore::InspectorController::moveByUnrestricted):
1046         * page/InspectorController.h:
1047         * page/inspector/inspector.js:
1048
1049 2007-12-13  Adam Roben  <aroben@apple.com>
1050
1051         Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked
1052
1053         Windows Media Player has a modal message loop that will deliver
1054         messages to us at inappropriate times and we will crash if we handle
1055         them when they are delivered. In PluginViewWin, we add a quirk for
1056         Media Player to set a flag whenever we give the plugin a chance to
1057         execute code, and in SharedTimerWin we check if the plugin is
1058         executing code and repost messages if so.
1059
1060         Reviewed by Anders.
1061
1062         * platform/win/SharedTimerWin.cpp:
1063         (WebCore::TimerWindowWndProc): Repost messages if we're calling a
1064         plugin.
1065         * plugins/win/PluginViewWin.cpp: Surround all calls to the plugin with
1066         setCallingPlugin(true/false).
1067         (WebCore::PluginViewWin::updateWindow):
1068         (WebCore::PluginViewWin::dispatchNPEvent):
1069         (WebCore::PluginViewWin::setNPWindowRect):
1070         (WebCore::PluginViewWin::start):
1071         (WebCore::PluginViewWin::stop):
1072         (WebCore::PluginViewWin::performRequest):
1073         (WebCore::PluginViewWin::bindingInstance):
1074         (WebCore::PluginViewWin::determineQuirks):
1075         (WebCore::PluginViewWin::setCallingPlugin): Added.
1076         (WebCore::PluginViewWin::isCallingPlugin): Added.
1077         * plugins/win/PluginViewWin.h: Added a new quirk.
1078
1079 2007-12-13  Alp Toker  <alp@atoker.com>
1080
1081         Add a missing DEPENDPATH. Fixes non-clean builds following networking
1082         header changes.
1083
1084         * WebCore.pro:
1085
1086 2007-12-13  Dan Bernstein  <mitz@apple.com>
1087
1088         Reviewed by Anders Carlsson.
1089
1090         - fix regression in fast/text/international/bidi-override on Tiger
1091
1092         * platform/graphics/GlyphPageTreeNode.cpp:
1093         (WebCore::GlyphPageTreeNode::initializePage): Add bidi overrides here
1094         too. I forgot to add them when I added them to treatAsZeroWidthSpace in
1095         an earlier patch.
1096
1097 2007-12-13  Justin Garcia  <justin.garcia@apple.com>
1098
1099         Reviewed by Darin Adler.
1100
1101         <rdar://problem/5601583> GMail Editor: Copied link doesn't paste as a link, just colored text
1102         
1103         The code that checks the selected Range to see if it's inside an anchor
1104         checks ancestors of the Range's commonAncestor() but not the
1105         commonAncestor() itself, and so we'd fail to add markup for the enclosing
1106         anchor to the pasteboard.
1107         
1108         Some enclosing element getters check the node passed to the getter and some
1109         don't.  There were a few places where we incorrectly assumed that enclosing 
1110         element getters check the node passed to the getter, but this is the only 
1111         case that I'm able to write a test case for at the moment.
1112         
1113         In this patch I've:
1114         Changed enclosingNodeWithType and enclosingNodeWithTag to take in positions,
1115         like the newer enclosing element getters.  This is important because we must
1116         soon add code to the getters so that they understand that some editing positions
1117         inside nodes don't actually refer to positions inside those nodes but positions
1118         before and after them.  Like [table, 0].
1119         Changed enclosingNodeWithType and enclosingNodeWithTag to check nodes starting with
1120         n where [n, o] is the position passed to the getter, instead of starting the the parent
1121         of n.  This makes all but a few of the enclosing element getters behave consistently.
1122         Changed enclosingNodeWithType and enclosingNodeWithTag to not return non-editable 
1123         nodes if the input position was editable.  This fixes a bug that that the above change
1124         exposed.
1125         Changed enclosingTableCell to simply call enclosingNodeWithType.  We should do
1126         this for the rest of the getters, or simply remove them in favor of enclosingNodeWithType
1127         unless doing so would affect readability, like it would in the case of enclosingTableCell.
1128         Ditto for enclosingBlock.
1129
1130         * editing/AppendNodeCommand.cpp:
1131         (WebCore::AppendNodeCommand::doApply):
1132         * editing/DeleteButtonController.cpp:
1133         (WebCore::enclosingDeletableElement):
1134         * editing/DeleteSelectionCommand.cpp:
1135         (WebCore::DeleteSelectionCommand::initializePositionData):
1136         (WebCore::DeleteSelectionCommand::saveFullySelectedAnchor):
1137         * editing/Editor.cpp:
1138         (WebCore::Editor::selectionUnorderedListState):
1139         (WebCore::Editor::selectionOrderedListState):
1140         * editing/IndentOutdentCommand.cpp:
1141         (WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
1142         (WebCore::IndentOutdentCommand::outdentParagraph):
1143         * editing/InsertNodeBeforeCommand.cpp:
1144         (WebCore::InsertNodeBeforeCommand::doApply):
1145         * editing/InsertParagraphSeparatorCommand.cpp:
1146         (WebCore::InsertParagraphSeparatorCommand::doApply):
1147         * editing/ReplaceSelectionCommand.cpp:
1148         (WebCore::ReplaceSelectionCommand::shouldMerge):
1149         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
1150         (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
1151         * editing/TextIterator.cpp:
1152         * editing/htmlediting.cpp:
1153         (WebCore::enclosingBlock):
1154         (WebCore::enclosingNodeWithTag):
1155         (WebCore::enclosingNodeOfType):
1156         (WebCore::enclosingTableCell):
1157         (WebCore::isTableCell):
1158         * editing/htmlediting.h:
1159         * editing/markup.cpp:
1160         (WebCore::appendStartMarkup):
1161         (WebCore::createMarkup):
1162
1163 2007-12-13  Alexey Proskuryakov  <ap@webkit.org>
1164
1165         Reviewed by Darin.
1166
1167         Turn on keyboard event processing quirks for feed views and old applications on Mac OS X.
1168
1169         * WebCore.base.exp:
1170         * dom/KeyboardEvent.cpp:
1171         (WebCore::KeyboardEvent::charCode):
1172         * page/EventHandler.cpp:
1173         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
1174         (WebCore::EventHandler::keyEvent):
1175         * page/EventHandler.h:
1176         * page/Settings.cpp:
1177         (WebCore::Settings::Settings):
1178         (WebCore::Settings::setNeedsKeyboardEventDisambiguationQuirks):
1179         * page/Settings.h:
1180         (WebCore::Settings::needsKeyboardEventDisambiguationQuirks):
1181         * page/mac/EventHandlerMac.mm:
1182         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
1183         * platform/PlatformKeyboardEvent.h:
1184         * platform/mac/KeyEventMac.mm:
1185         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1186         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
1187
1188 2007-12-13  Dan Bernstein  <mitz@apple.com>
1189
1190         - build fix
1191
1192         * platform/network/cf/ResourceErrorCF.cpp:
1193
1194 2007-12-13  Antti Koivisto  <antti@apple.com>
1195
1196         Reviewed by Tim Hatcher.
1197
1198         Fix <rdar://problem/5605674> 
1199         Make <video> display WebKit context menu instead of the QTKit one.
1200     
1201         It doesn't really matter where the QTMovieView is.
1202
1203         * ChangeLog:
1204         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1205         (WebCore::MediaPlayerPrivate::createQTMovieView):
1206         (WebCore::MediaPlayerPrivate::setRect):
1207
1208 2007-12-13  Dan Bernstein  <mitz@apple.com>
1209
1210         Reviewed by Adam Roben.
1211
1212         - ensure that Unicode bidi control characters are rendered as zero width
1213           spaces
1214
1215         Test: fast/text/international/bidi-control-chars-treated-as-ZWS.html
1216
1217         * platform/graphics/Font.h:
1218         (WebCore::Font::treatAsZeroWidthSpace):
1219         * platform/graphics/GlyphPageTreeNode.cpp:
1220         (WebCore::GlyphPageTreeNode::initializePage):
1221         * platform/text/CharacterNames.h:
1222
1223 2007-12-13  Brady Eidson  <beidson@apple.com>
1224
1225         Build fix
1226
1227         * platform/wx/TemporaryLinkStubs.cpp:
1228
1229 2007-12-12  Brady Eidson  <beidson@apple.com>
1230
1231         Build fix
1232
1233         * platform/gtk/TemporaryLinkStubs.cpp:
1234
1235 2007-12-12  Brady Eidson  <beidson@apple.com>
1236
1237         Build fix
1238
1239         * WebCore.pro:
1240         * history/qt/CachedPageQt.cpp: Removed. Whole purpose for this method being platform-specific has been removed
1241
1242 2007-12-12  Brady Eidson  <beidson@apple.com>
1243
1244         Build fix
1245
1246         * platform/win/TemporaryLinkStubs.cpp:
1247
1248 2007-12-12  Brady Eidson  <beidson@apple.com>
1249
1250         Reviewed by Sam Weinig
1251
1252         Fix for <rdar://problem/4886844> and lay groundwork for <rdar://problem/4516170> (Back/Forward Cache on Windows)
1253
1254         All back/forward list and page cache related items used to be in WebKit.
1255         When they were pushed into WebCore, some sloppy compromises were made to keep the Back/Forward cache working on Mac.
1256         Namely, a WebCore::HistoryItem had to know how to keep a WebDocumentView alive.  We accomplished this via some #ifdefs
1257         in CachedPage and having the Mac-only CachedPageMac.mm
1258
1259         To get rid of that nastiness and pave the way for adding Back/Forward cache on other platforms, this patch adds the 
1260         concept of "CachedPagePlatformData" which can contain anything the platform API wants.  
1261
1262         I also took the opportunity to do other cleanup and renaming client methods to better fit their new purposes.
1263
1264         * WebCore.base.exp:
1265         * WebCore.xcodeproj/project.pbxproj:
1266
1267         * history/CachedPage.cpp:
1268         (WebCore::CachedPage::~CachedPage): Combined "close()" and "clear()" to just "clear()" - call it from here.
1269         (WebCore::CachedPage::clear): Call clear() on the CachedPagePlatformData if it exists.  Also delete the CachedPagePlatformData.
1270         (WebCore::CachedPage::setCachedPagePlatformData):
1271         (WebCore::CachedPage::cachedPagePlatformData):
1272         * history/CachedPage.h:
1273
1274         * history/CachedPagePlatformData.h: Added.
1275         (WebCore::CachedPagePlatformData::~CachedPagePlatformData): Virtual d'tor.
1276         (WebCore::CachedPagePlatformData::clear): Virtual method for platforms that need to do cleanup at the same time as CachedPage::clear().
1277
1278         * history/PageCache.cpp:
1279         (WebCore::PageCache::releaseAutoreleasedPagesNow): Call "clear()" instead of "close()"
1280
1281         * history/mac/CachedPageMac.mm: Removed. Functionality replaced with CachedPagePlatformData.
1282
1283         * loader/FrameLoader.cpp:
1284         (WebCore::FrameLoader::transitionToCommitted): Call the new client methods.  Make some work previously done by WebKitMac cross platform 
1285           (setting the cached DocumentLoader to the Frame).
1286         (WebCore::FrameLoader::cachePageForHistoryItem):  Renamed the client methods
1287
1288         * loader/FrameLoaderClient.h:  The very Mac-centric "makeDocumentView", "setDocumentViewFromCachedPage", and "saveDocumentViewToCachedPage"
1289           become "transitionToCommittedForNewPage", "transitionToCommittedFromCachedPage", and "savePlatformDataToCachedPage" accordingly
1290
1291         * svg/graphics/SVGImageEmptyClients.h:
1292         (WebCore::SVGEmptyFrameLoaderClient::savePlatformDataToCachedPage):
1293         (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedFromCachedPage):
1294         (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedForNewPage):
1295
1296 2007-12-12  Dan Bernstein  <mitz@apple.com>
1297
1298         Reviewed by Oliver Hunt.
1299
1300         - fix <rdar://problem/5074620> text with font:initial; fails to appear (causes fast/text/font-initial.html to fail)
1301
1302         * css/CSSStyleSelector.cpp:
1303         (WebCore::CSSStyleSelector::applyProperty): When the font property is
1304         set to 'initial', set the font size to its initial value, 'medium',
1305         and the font family to the standard family.
1306
1307 2007-12-12  Justin Garcia  <justin.garcia@apple.com>
1308
1309         Reviewed by Darin Adler.
1310
1311         <rdar://problem/5433862> Mail crashes at WebCore::highestAncestor() when deleting a particular selection
1312
1313         * editing/DeleteSelectionCommand.cpp:
1314         (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
1315         Don't remove the table row that contained the end of the selection if it is where we are
1316         about to place the ending selection.
1317         Don't remove all empty rows after the row that contained the start of the selection,
1318         they might come after the row that contained the end of the selection.
1319
1320 2007-12-12  Sam Weinig  <sam@webkit.org>
1321
1322         Reviewed by Anders Carlsson.
1323
1324         Add button to clear the Web Inspector's console.
1325
1326         * English.lproj/InspectorLocalizedStrings.js:
1327         * page/inspector/ConsolePanel.js:
1328         * page/inspector/inspector.css:
1329
1330 2007-12-12  Anders Carlsson  <andersca@apple.com>
1331
1332         Reviewed by Adam and Jon.
1333
1334         <rdar://problem/5349282>
1335         popup blocking is not applied to plugins on Windows.
1336         
1337         Implement popup blocking. If the plug-in supports the new 
1338         NPN_PushPopupsEnabledState/NPN_PopPopupsEnabledState API we just use that
1339         to determine if a plug-in request can open new windows.
1340         
1341         If a plug-in does not support the new API, we assume that a plug-in can open new windows
1342         in response to either mouse click or key press events.
1343         
1344         * plugins/win/PluginViewWin.cpp:
1345         (WebCore::PluginRequestWin::PluginRequestWin):
1346         (WebCore::PluginRequestWin::shouldAllowPopups):
1347         Add new shouldAllowPopups member.
1348         
1349         (WebCore::PluginViewWin::popPopupsStateTimerFired):
1350         Reset the popup state.
1351         
1352         (WebCore::isWindowsMessageUserGesture):
1353         New function that given a windows message id returns whether it's a user gesture or not.
1354         
1355         (WebCore::PluginViewWin::wndProc):
1356         Allow popups if the window message is a user gesture.
1357         
1358         (WebCore::PluginViewWin::dispatchNPEvent):
1359         New method that dispatches an NPEvent, turning on popups if necessary.
1360         
1361         (WebCore::PluginViewWin::paint):
1362         (WebCore::PluginViewWin::handleKeyboardEvent):
1363         (WebCore::PluginViewWin::handleMouseEvent):
1364         Call dispatchNPEvent().
1365         
1366         (WebCore::PluginViewWin::performRequest):
1367         (WebCore::PluginViewWin::load):
1368         Add calls to shouldAllowPopups().
1369         
1370         (WebCore::PluginViewWin::pushPopupsEnabledState):
1371         (WebCore::PluginViewWin::popPopupsEnabledState):
1372         New methods that maintain the popup state stack.
1373         
1374         (WebCore::PluginViewWin::arePopupsAllowed):
1375         New method that returns whether popups are allowed.
1376         
1377         (WebCore::PluginViewWin::PluginViewWin):
1378         * plugins/win/PluginViewWin.h:
1379         Add new instance variables.
1380         
1381         * plugins/win/npapi.cpp:
1382         (NPN_PushPopupsEnabledState):
1383         (NPN_PopPopupsEnabledState):
1384         Implement these.
1385
1386 2007-12-12  Dan Bernstein  <mitz@apple.com>
1387
1388         Reviewed by John Sullivan.
1389
1390         - fix a bug in debug builds only where selecting an earlier item in
1391           a popup selects the first item
1392
1393         Test: fast/forms/menulist-selection-reset.html
1394
1395         * html/HTMLSelectElement.cpp:
1396         (WebCore::HTMLSelectElement::recalcListItems): Added an argument that
1397         tells that function whether it should update the selected state of
1398         option elements.
1399         (WebCore::HTMLSelectElement::checkListItems): Changed to pass false
1400         as the above argument.
1401         * html/HTMLSelectElement.h:
1402
1403 2007-12-12  Adele Peterson  <adele@apple.com>
1404
1405         Reviewed by Geoff.
1406
1407         Fix for <rdar://problem/5643054> Remove cue point implementation for media elements
1408
1409         When the specification for cue ranges is more final, we will implement those.
1410
1411         * html/HTMLMediaElement.cpp:
1412         (WebCore::HTMLMediaElement::~HTMLMediaElement):
1413         (WebCore::HTMLMediaElement::load):
1414         * html/HTMLMediaElement.h:
1415         * html/HTMLMediaElement.idl:
1416         * platform/graphics/MediaPlayer.cpp:
1417         * platform/graphics/MediaPlayer.h:
1418         (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
1419         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1420         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1421         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1422         (WebCore::MediaPlayerPrivate::load):
1423         (WebCore::MediaPlayerPrivate::play):
1424         (WebCore::MediaPlayerPrivate::pause):
1425         (WebCore::MediaPlayerPrivate::setEndTime):
1426         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
1427         (WebCore::MediaPlayerPrivate::endPointTimerFired):
1428         (WebCore::MediaPlayerPrivate::timeChanged):
1429         (WebCore::MediaPlayerPrivate::didEnd):
1430         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1431         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1432         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
1433         (WebCore::MediaPlayerPrivate::endPointTimerFired):
1434         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
1435
1436 2007-12-12  MorganL  <morganl.webkit@yahoo.com>
1437
1438         Reviewed by Maciej.
1439
1440         Fixes:
1441         http://bugs.webkit.org/show_bug.cgi?id=16408
1442
1443         When navigating back/forward to a http:// link, we should prefer to
1444         load from cache if possible.
1445
1446         * loader/FrameLoader.cpp:
1447
1448 2007-12-12  Anders Carlsson  <andersca@apple.com>
1449
1450         Reviewed by Sam.
1451
1452         <rdar://problem/5132003>
1453         dumpResourceLoadCallbacks is not implemented in DRT on Windows.
1454         
1455         * platform/network/cf/ResourceErrorCF.cpp:
1456         (WebCore::ResourceError::unpackPlatformError):
1457         Handle kCFErrorDomainWinSock.
1458         
1459         * platform/network/cf/ResourceHandleCFNet.cpp:
1460         (WebCore::willSendRequest):
1461         Ignore willSendRequest calls where the redirect response is null, like we do in 
1462         the Mac version.
1463
1464 2007-12-12  Steve Falkenburg  <sfalken@apple.com>
1465
1466         <rdar://problem/5643785> Fix iBench regression caused by mis-placed nested timer check.
1467         
1468         Reviewed by Anders.
1469
1470         * platform/win/SharedTimerWin.cpp:
1471         (WebCore::TimerWindowWndProc): Don't set high-resolution timer flag inside non-high-resolution timer proc.
1472
1473 2007-12-12  Beth Dakin  <bdakin@apple.com>
1474
1475         Reviewed by Oliver.
1476
1477         Fix for <rdar://problem/5643770> REGRESSION: Free-standing SVGs 
1478         with width and height 100% clip to 300 x 150
1479
1480         Though it was correct in an earlier iteration of my patch, it is 
1481         not sufficient in the final, committed version to ask if the 
1482         relativeWidthValue() or relativeHeightValue() is greater than 0 
1483         just to determine if one has been set, for, they are now 
1484         initialized to 300 and 150 respectively! This patch instead adds a 
1485         bool to keep track of whether a container size has been set, and 
1486         only used the relative value if it has.
1487
1488         * rendering/RenderSVGRoot.cpp:
1489         (WebCore::RenderSVGRoot::calcViewport):
1490         * svg/SVGSVGElement.cpp:
1491         (WebCore::SVGSVGElement::SVGSVGElement):
1492         * svg/SVGSVGElement.h:
1493         (WebCore::SVGSVGElement::setContainerSize):
1494         (WebCore::SVGSVGElement::hasSetContainerSize):
1495
1496 2007-12-12  Brady Eidson  <beidson@apple.com>
1497
1498         Reviewed by Steve Falkenburg 
1499
1500         <rdar://problem/5012636> - WebURLProtectionSpace::realm returns the hostname rather than the authentication realm
1501
1502         * platform/network/ProtectionSpace.cpp:
1503         (WebCore::ProtectionSpace::ProtectionSpace): Assign the realm to m_realm, instead of the host
1504
1505 2007-12-12  Alp Toker  <alp@atoker.com>
1506
1507         Reviewed by Maciej.
1508
1509         http://bugs.webkit.org/show_bug.cgi?id=16388
1510         [GTK] Widget::setCursor() gets called frequently
1511
1512         Cache the current cursor to avoid calling gdk_window_set_cursor() when
1513         there's no change in cursor.
1514
1515         * platform/gtk/WidgetGtk.cpp:
1516         (WebCore::Widget::Widget):
1517         (WebCore::Widget::cursor):
1518         (WebCore::Widget::setCursor):
1519
1520 2007-12-12  Rodney Dawes  <dobey@wayofthemonkey.com>
1521
1522         Reviewed by Maciej.
1523
1524         http://bugs.webkit.org/show_bug.cgi?id=16342
1525         Build Warning and Error fixes in WebCore GTK+
1526
1527         Use C-style casts for casting function pointers to gpointer
1528         Use static_cast<int> to cast a float to int to fix a warning
1529
1530         * platform/gtk/PlatformScrollBarGtk.cpp:
1531         (PlatformScrollbar::PlatformScrollbar):
1532         (PlatformScrollbar::~PlatformScrollbar):
1533         (PlatformScrollbar::gtkValueChanged):
1534         * platform/gtk/ThreadingGtk.cpp:
1535         (callFunctionOnMainThread):
1536         (callOnMainThread):
1537
1538 2007-12-12  Dan Bernstein  <mitz@apple.com>
1539
1540         Reviewed by Darin Adler.
1541
1542         - better fix for a crash when pressing a key that is not associated
1543           with a command
1544
1545         * editing/EditorCommand.cpp:
1546         (WebCore::Editor::command): Return the empty command if the command name
1547         is empty.
1548
1549 2007-12-12  Alexey Proskuryakov  <ap@webkit.org>
1550
1551         Reviewed by Darin.
1552
1553         http://bugs.webkit.org/show_bug.cgi?id=16410
1554         Implement isKeypadEvent() on Windows
1555
1556         Test: platform/win/fast/events/keyLocation-numpad.html
1557
1558         * platform/win/KeyEventWin.cpp:
1559         (WebCore::isKeypadEvent): Added.
1560         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Also fixed a mistake with autorepeat.
1561
1562 2007-12-12  Oliver Hunt  <oliver@apple.com>
1563
1564         Reviewed by Maciej.
1565
1566         <rdar://problem/5071781> window.mouseout events are not sent 
1567         to window when mouse moves out of window 
1568
1569         Make PlatformMouseEvent recognise WM_MOUSELEAVE.
1570
1571         * platform/win/PlatformMouseEventWin.cpp:
1572         (WebCore::messageToEventType):
1573         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
1574
1575 2007-12-12  Sam Weinig  <sam@webkit.org>
1576
1577         Fix Mac release build.
1578
1579         * WebCore.base.exp:
1580
1581 2007-12-12  Sam Weinig  <sam@webkit.org>
1582
1583         Build fix for Qt, Gtk, and Wx.
1584
1585         * css/CSSParser.cpp:
1586         (WebCore::CSSParser::parseValue):
1587         * loader/win/FrameLoaderWin.cpp:
1588         (WebCore::FrameLoader::urlSelected):
1589         * platform/network/curl/ResourceHandleManager.cpp:
1590         (WebCore::parseDataUrl):
1591         (WebCore::ResourceHandleManager::startJob):
1592         * platform/network/win/CookieJarWin.cpp:
1593         (WebCore::setCookies):
1594         (WebCore::cookies):
1595         * platform/network/win/ResourceHandleWin.cpp:
1596         (WebCore::ResourceHandle::start):
1597         * platform/qt/PasteboardQt.cpp:
1598         (WebCore::Pasteboard::writeURL):
1599
1600 2007-12-11  Dan Bernstein  <mitz@apple.com>
1601
1602         Reviewed by Maciej Stachowiak.
1603
1604         - allow non-integer font sizes on Windows for small caps
1605
1606         * platform/graphics/win/FontDataWin.cpp:
1607         (WebCore::FontData::smallCapsFontData):
1608         * platform/graphics/win/FontPlatformData.h:
1609         (WebCore::FontPlatformData::size):
1610         (WebCore::FontPlatformData::setSize):
1611         * platform/graphics/win/FontPlatformDataWin.cpp:
1612         (WebCore::FontPlatformData::FontPlatformData):
1613
1614 2007-12-11  Sam Weinig  <sam@webkit.org>
1615
1616         Build fix for Qt, Gtk, and Wx.
1617
1618         * platform/gtk/CookieJarGtk.cpp:
1619         (WebCore::setCookies):
1620         (WebCore::cookies):
1621         * platform/qt/ClipboardQt.cpp:
1622         (WebCore::ClipboardQt::writeURL):
1623         * platform/qt/CookieJarQt.cpp:
1624         (WebCore::setCookies):
1625         (WebCore::cookies):
1626         * platform/wx/PasteboardWx.cpp:
1627         (WebCore::Pasteboard::writeURL):
1628
1629 2007-12-11  Sam Weinig  <sam@webkit.org>
1630
1631         Reviewed by Darin Adler.
1632
1633         Scrub URL out of the tree in preparation for renaming KURL to URL.
1634             - Renames Document::URL() -> Document::url()
1635             - Renames DocumentLoader::URL() -> DocumentLoader::url()
1636             - Renames KURL::url() to KURL::string() and KURL::deprecatedString()
1637             - Remove FrameLoader::URL()
1638             - Various variable renames.
1639
1640         The change from Document::URL() to Document::url() required changes
1641         to the bindings scripts as well, because URL() is the name of a DOM
1642         method.  The code generation scripts now have code to special case URL()
1643         to url().
1644
1645         * WebCore.base.exp:
1646         * bindings/js/kjs_events.cpp:
1647         (WebCore::JSLazyEventListener::parseCode):
1648         * bindings/js/kjs_navigator.cpp:
1649         (KJS::Navigator::getValueProperty):
1650         * bindings/js/kjs_proxy.cpp:
1651         (WebCore::KJSProxy::initScript):
1652         * bindings/js/kjs_window.cpp:
1653         (KJS::Window::put):
1654         (KJS::Window::allowsAccessFrom):
1655         (KJS::Location::put):
1656         (KJS::LocationProtoFuncReplace::callAsFunction):
1657         (KJS::LocationProtoFuncReload::callAsFunction):
1658         (KJS::LocationProtoFuncAssign::callAsFunction):
1659         * bindings/scripts/CodeGenerator.pm:
1660         * bindings/scripts/CodeGeneratorCOM.pm:
1661         * bindings/scripts/CodeGeneratorJS.pm:
1662         * bindings/scripts/CodeGeneratorObjC.pm:
1663         * css/CSSImportRule.cpp:
1664         (WebCore::CSSImportRule::insertedIntoParent):
1665         * css/CSSParser.cpp:
1666         (WebCore::CSSParser::parseValue):
1667         (WebCore::CSSParser::parseContent):
1668         (WebCore::CSSParser::parseBackgroundImage):
1669         (WebCore::CSSParser::parseFontFaceSrc):
1670         (WebCore::CSSParser::parseBorderImage):
1671         (WebCore::CSSParser::createImportRule):
1672         * css/CSSStyleSelector.cpp:
1673         (WebCore::CSSStyleSelector::setEncodedURL):
1674         * dom/Document.cpp:
1675         (WebCore::Document::processHttpEquiv):
1676         (WebCore::Document::cookie):
1677         (WebCore::Document::setCookie):
1678         (WebCore::Document::domain):
1679         (WebCore::Document::setDomain):
1680         (WebCore::Document::getImageMap):
1681         (WebCore::Document::completeURL):
1682         * dom/Document.h:
1683         (WebCore::Document::url):
1684         (WebCore::Document::baseURL):
1685         * dom/Element.cpp:
1686         (WebCore::Element::baseURI):
1687         * dom/ProcessingInstruction.h:
1688         * dom/StyledElement.cpp:
1689         (WebCore::StyledElement::addCSSImageProperty):
1690         * dom/StyledElement.h:
1691         * dom/XMLTokenizer.cpp:
1692         (WebCore::XMLTokenizer::endElementNs):
1693         (WebCore::XMLTokenizer::end):
1694         (WebCore::):
1695         * dom/XMLTokenizer.h:
1696         * editing/Editor.cpp:
1697         (WebCore::Editor::copy):
1698         * editing/markup.cpp:
1699         (WebCore::completeURLs):
1700         * history/CachedPage.h:
1701         (WebCore::CachedPage::url):
1702         * history/HistoryItem.cpp:
1703         (WebCore::HistoryItem::HistoryItem):
1704         (WebCore::HistoryItem::setURL):
1705         (WebCore::HistoryItem::isCurrentDocument):
1706         * html/HTMLBaseElement.cpp:
1707         (WebCore::HTMLBaseElement::process):
1708         * html/HTMLParser.cpp:
1709         (WebCore::HTMLParser::reportErrorToConsole):
1710         * html/HTMLScriptElement.cpp:
1711         (WebCore::HTMLScriptElement::childrenChanged):
1712         (WebCore::HTMLScriptElement::insertedIntoDocument):
1713         (WebCore::HTMLScriptElement::evaluateScript):
1714         * html/HTMLScriptElement.h:
1715         * html/HTMLTokenizer.cpp:
1716         (WebCore::HTMLTokenizer::scriptExecution):
1717         * loader/Cache.cpp:
1718         (WebCore::createResource):
1719         (WebCore::Cache::requestResource):
1720         * loader/CachedCSSStyleSheet.cpp:
1721         (WebCore::CachedCSSStyleSheet::checkNotify):
1722         * loader/CachedResource.cpp:
1723         (WebCore::CachedResource::CachedResource):
1724         * loader/CachedResource.h:
1725         (WebCore::CachedResource::):
1726         * loader/CachedScript.h:
1727         * loader/DocLoader.cpp:
1728         (WebCore::DocLoader::checkForReload):
1729         (WebCore::DocLoader::requestResource):
1730         * loader/DocumentLoader.cpp:
1731         (WebCore::DocumentLoader::url):
1732         (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
1733         (WebCore::DocumentLoader::setRequest):
1734         (WebCore::DocumentLoader::startLoadingMainResource):
1735         * loader/DocumentLoader.h:
1736         * loader/FrameLoader.cpp:
1737         (WebCore::FormSubmission::FormSubmission):
1738         (WebCore::ScheduledRedirection::ScheduledRedirection):
1739         (WebCore::FrameLoader::changeLocation):
1740         (WebCore::FrameLoader::urlSelected):
1741         (WebCore::FrameLoader::requestFrame):
1742         (WebCore::FrameLoader::loadSubframe):
1743         (WebCore::FrameLoader::submitFormAgain):
1744         (WebCore::FrameLoader::submitForm):
1745         (WebCore::FrameLoader::didExplicitOpen):
1746         (WebCore::FrameLoader::replaceContentsWithScriptResult):
1747         (WebCore::FrameLoader::executeScript):
1748         (WebCore::FrameLoader::receivedFirstData):
1749         (WebCore::FrameLoader::begin):
1750         (WebCore::FrameLoader::startIconLoader):
1751         (WebCore::FrameLoader::commitIconURLToIconDatabase):
1752         (WebCore::FrameLoader::scheduleRefresh):
1753         (WebCore::FrameLoader::redirectionTimerFired):
1754         (WebCore::FrameLoader::loadPlugin):
1755         (WebCore::FrameLoader::didNotOpenURL):
1756         (WebCore::FrameLoader::updatePolicyBaseURL):
1757         (WebCore::FrameLoader::scrollToAnchor):
1758         (WebCore::FrameLoader::startRedirectionTimer):
1759         (WebCore::FrameLoader::load):
1760         (WebCore::FrameLoader::canLoad):
1761         (WebCore::FrameLoader::shouldHideReferrer):
1762         (WebCore::FrameLoader::shouldAllowNavigation):
1763         (WebCore::FrameLoader::commitProvisionalLoad):
1764         (WebCore::FrameLoader::clientRedirected):
1765         (WebCore::FrameLoader::open):
1766         (WebCore::FrameLoader::didTellBridgeAboutLoad):
1767         (WebCore::FrameLoader::haveToldBridgeAboutLoad):
1768         (WebCore::FrameLoader::post):
1769         (WebCore::FrameLoader::loadResourceSynchronously):
1770         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
1771         (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
1772         (WebCore::FrameLoader::createHistoryItem):
1773         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
1774         (WebCore::FrameLoader::loadItem):
1775         (WebCore::FrameLoader::urlsMatchItem):
1776         (WebCore::FrameLoader::recursiveGoToItem):
1777         (WebCore::FrameLoader::updateHistoryForStandardLoad):
1778         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
1779         * loader/FrameLoader.h:
1780         (WebCore::FrameLoader::url):
1781         * loader/ImageDocument.cpp:
1782         (WebCore::ImageDocument::createDocumentStructure):
1783         * loader/MainResourceLoader.cpp:
1784         (WebCore::shouldLoadAsEmptyDocument):
1785         (WebCore::MainResourceLoader::didFinishLoading):
1786         * loader/NavigationAction.cpp:
1787         (WebCore::NavigationAction::NavigationAction):
1788         * loader/NavigationAction.h:
1789         (WebCore::NavigationAction::url):
1790         * loader/PluginDocument.cpp:
1791         (WebCore::PluginTokenizer::createDocumentStructure):
1792         * loader/SubresourceLoader.cpp:
1793         (WebCore::SubresourceLoader::load):
1794         (WebCore::SubresourceLoader::create):
1795         * loader/icon/IconLoader.cpp:
1796         (WebCore::IconLoader::startLoading):
1797         (WebCore::IconLoader::finishLoading):
1798         * loader/loader.cpp:
1799         (WebCore::Loader::servePendingRequests):
1800         * loader/mac/LoaderNSURLExtras.m:
1801         (urlOriginalData):
1802         * page/Chrome.cpp:
1803         (WebCore::Chrome::setToolTip):
1804         * page/ContextMenuController.cpp:
1805         (WebCore::ContextMenuController::contextMenuItemSelected):
1806         * page/Frame.cpp:
1807         (WebCore::Frame::setUserStyleSheetLocation):
1808         * page/InspectorController.cpp:
1809         (WebCore::InspectorResource::type):
1810         (WebCore::addSourceToFrame):
1811         (WebCore::InspectorController::addScriptResource):
1812         (WebCore::InspectorController::updateScriptResourceRequest):
1813         (WebCore::InspectorController::didCommitLoad):
1814         * page/mac/WebCoreFrameBridge.mm:
1815         (-[WebCoreFrameBridge getData:andResponse:forURL:]):
1816         * platform/KURL.h:
1817         (WebCore::KURL::string):
1818         (WebCore::KURL::deprecatedString):
1819         * platform/mac/ClipboardMac.mm:
1820         (WebCore::ClipboardMac::getData):
1821         * platform/mac/CookieJar.mm:
1822         (WebCore::cookies):
1823         (WebCore::setCookies):
1824         * platform/mac/PasteboardMac.mm:
1825         (WebCore::Pasteboard::writeURL):
1826         (WebCore::fileWrapperForImage):
1827         (WebCore::Pasteboard::writeImage):
1828         (WebCore::Pasteboard::plainText):
1829         * platform/network/ResourceHandle.cpp:
1830         (WebCore::ResourceHandle::portAllowed):
1831         * platform/network/ResourceRequestBase.cpp:
1832         (WebCore::ResourceRequestBase::isNull):
1833         * platform/network/cf/ResourceHandleCFNet.cpp:
1834         (WebCore::willSendRequest):
1835         (WebCore::didReceiveResponse):
1836         (WebCore::didReceiveData):
1837         (WebCore::didFinishLoading):
1838         (WebCore::didFail):
1839         (WebCore::didReceiveChallenge):
1840         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
1841         (WebCore::ResourceHandle::~ResourceHandle):
1842         (WebCore::ResourceHandle::start):
1843         * platform/win/ClipboardUtilitiesWin.cpp:
1844         (WebCore::createGlobalData):
1845         (WebCore::urlToMarkup):
1846         * platform/win/ClipboardWin.cpp:
1847         (WebCore::writeURL):
1848         (WebCore::writeImageToDataObject):
1849         (WebCore::ClipboardWin::writeURL):
1850         (WebCore::ClipboardWin::writeRange):
1851         * platform/win/PasteboardWin.cpp:
1852         (WebCore::Pasteboard::writeSelection):
1853         (WebCore::Pasteboard::writeURL):
1854         * plugins/win/PluginDatabaseWin.cpp:
1855         (WebCore::PluginDatabaseWin::findPlugin):
1856         * plugins/win/PluginStreamWin.cpp:
1857         (WebCore::PluginStreamWin::startStream):
1858         (WebCore::PluginStreamWin::destroyStream):
1859         * plugins/win/PluginViewWin.cpp:
1860         (WebCore::scriptStringIfJavaScriptURL):
1861         (WebCore::PluginViewWin::performRequest):
1862         * svg/SVGImageLoader.cpp:
1863         (WebCore::SVGImageLoader::updateFromElement):
1864         * xml/XMLHttpRequest.cpp:
1865         (WebCore::XMLHttpRequest::getResponseXML):
1866         (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
1867         * xml/XSLImportRule.cpp:
1868         (WebCore::XSLImportRule::loadSheet):
1869         * xml/XSLTProcessor.cpp:
1870         (WebCore::XSLTProcessor::createDocumentFromSource):
1871         (WebCore::xsltStylesheetPointer):
1872         (WebCore::xmlDocPtrFromNode):
1873
1874 2007-12-11  Beth Dakin  <bdakin@apple.com>
1875
1876         Reviewed by Darin.
1877
1878         Fix for <rdar://problem/5641255> SVGs with width and height 100% 
1879         fail to render when used as background images
1880
1881         CachedImage now has a setImageContainerSize function. It is only 
1882         needed for SVG right now.
1883         * loader/CachedImage.cpp:
1884         (WebCore::CachedImage::setImageContainerSize):
1885         * loader/CachedImage.h:
1886
1887         Relatively sized SVGs have no intrinsic size. Because this call is 
1888         low-level enough that we cannot pass in the container size and get 
1889         the real size of the SVG, we need to know if it has relative 
1890         dimensions, and if so, we need to get the size from scaledTileSize.
1891         * platform/graphics/Image.cpp:
1892         (WebCore::Image::drawTiled):
1893         * platform/graphics/Image.h:
1894         (WebCore::Image::setContainerSize):
1895         (WebCore::Image::hasRelativeWidth):
1896         (WebCore::Image::hasRelativeHeight):
1897
1898         Re-factored calculateBackgroundSize a bit so that it returns an 
1899         IntSize. Made it a member function so that it can send m_width and 
1900         m_height along to setImageContainerSize.
1901         * rendering/RenderBox.cpp:
1902         (WebCore::RenderBox::calculateBackgroundSize):
1903         (WebCore::RenderBox::calculateBackgroundImageGeometry):
1904         * rendering/RenderBox.h:
1905
1906         Need to account for relatively sized SVGs in calcViewport()
1907         * rendering/RenderSVGRoot.cpp:
1908         (WebCore::RenderSVGRoot::calcViewport):
1909         
1910         Added new member variables to store the size of the SVG container. 
1911         relativeWidthValue() and relativeHeightValue() use the stored SVG 
1912         container size to correctly calculate the width and height of a 
1913         relatively sized SVG.
1914         * svg/SVGSVGElement.cpp:
1915         (WebCore::SVGSVGElement::SVGSVGElement):
1916         (WebCore::SVGSVGElement::setContainerSize):
1917         (WebCore::SVGSVGElement::relativeWidthValue):
1918         (WebCore::SVGSVGElement::relativeHeightValue):
1919         * svg/SVGSVGElement.h:
1920         (WebCore::SVGSVGElement::containerSize):
1921         
1922         Re-factored size calculations to use the size of the container.
1923         * svg/graphics/SVGImage.cpp:
1924         (WebCore::SVGImage::setContainerSize):
1925         (WebCore::SVGImage::size):
1926         (WebCore::SVGImage::hasRelativeWidth):
1927         (WebCore::SVGImage::hasRelativeHeight):
1928         * svg/graphics/SVGImage.h:
1929
1930 2007-12-11  Darin Adler  <darin@apple.com>
1931
1932         * editing/Editor.cpp:
1933         (WebCore::Editor::yankFromKillRing): Try to fix non-Mac builds by adding
1934         a missing return statement.
1935
1936 2007-12-11  Darin Adler  <darin@apple.com>
1937
1938         Reviewed by Geoff.
1939
1940         - exposed many new commands to the DOM Document executeCommand function by
1941           merging the JSEditor and Editor executeCommand implementations
1942         - replaced the execCommand function with a EditorCommand class
1943         - replaced the WTF::StrHash<> class template with the WebCore::StringHash class
1944         - replaced the WTF::CaseInsensitiveHash<> class template with the
1945           WebCore::CaseFoldingHash class
1946
1947         * WebCore.base.exp: Updated.
1948         * WebCore.pro: Added EditorCommand.cpp, removed JSEditor.cpp.
1949         * WebCore.vcproj/WebCore.vcproj: Ditto.
1950         * WebCore.xcodeproj/project.pbxproj: Ditto.
1951         * WebCoreSources.bkl: Ditto.
1952
1953         * dom/Document.cpp:
1954         (WebCore::Document::Document): Removed code to set up m_jsEditor.
1955         (WebCore::Document::~Document): Removed code to delete m_jsEditor.
1956         (WebCore::command): Added. Helper function that gets an Editor::Command.
1957         (WebCore::Document::executeCommand): Changed to use Editor::Command instead of
1958         JSEditor.
1959         (WebCore::Document::queryCommandEnabled): Ditto.
1960         (WebCore::Document::queryCommandIndeterm):
1961         (WebCore::Document::queryCommandState): Ditto.
1962         (WebCore::Document::queryCommandSupported): Ditto.
1963         (WebCore::Document::queryCommandValue): Ditto.
1964
1965         * dom/Document.h: Removed JSEditor, jsEditor, m_jsEditor. Changed to
1966         use CaseFoldingHash.
1967
1968         * editing/Editor.cpp:
1969         (WebCore::Editor::selectionForCommand): Renamed from selectionForEvent and
1970         made into a member function so it is accessible from the new EditorCommand.cpp file.
1971         Also changed to get the selection from the passed-in frame instead of from the
1972         page, because this should work on the targeted frame unless the event overrides it.
1973         (WebCore::Editor::handleKeypress): Updated for selectionForCommand change.
1974         (WebCore::Editor::handleInputMethodKeypress): Ditto.
1975         (WebCore::imageElementFromImageDocument): Renamed and changed to return
1976         a HTMLImageElement instead of a Node*.
1977         (WebCore::Editor::canCopy): Updated for name change.
1978         (WebCore::Editor::selectionUnorderedListState): Updated for TriState change.
1979         (WebCore::Editor::selectionOrderedListState): Ditto.
1980         (WebCore::Editor::selectionStartHasStyle): Make type of local more specific.
1981         (WebCore::updateState): Moved here from Frame.
1982         (WebCore::Editor::selectionHasStyle): Ditto.
1983         (WebCore::Editor::Editor): Initialize m_shouldStartNewKillRingSequence.
1984         (WebCore::Editor::insertTextWithoutSendingTextEvent): Updated for
1985         selectionForCommand change.
1986         (WebCore::Editor::copy): Updated for imageElementFromImageDocument change.
1987         (WebCore::Editor::toggleBold): Call the ToggleBold command via the command
1988         machinery since it's no longer in this file as a local function.
1989         (WebCore::Editor::toggleUnderline): Call the ToggleUnderline command.
1990         (WebCore::Editor::setBaseWritingDirection): Change type of argument and of
1991         local variable.
1992         (WebCore::Editor::addToKillRing): Moved here from EditorMac. Not useful
1993         without a kill ring, but it's relatively straightforward to implement one.
1994         (WebCore::Editor::appendToKillRing): Put default implementation here for
1995         platforms other than Mac. We should probably put a simple kill ring
1996         implementation here -- doesn't need to be shared with the OS oh platforms
1997         other than Mac.
1998         (WebCore::Editor::prependToKillRing): Ditto.
1999         (WebCore::Editor::yankFromKillRing): Ditto.
2000         (WebCore::Editor::startNewKillRingSequence): Ditto.
2001         (WebCore::Editor::setKillRingToYankedState): Ditto.
2002
2003         * editing/Editor.h: Moved the TriState enum here instead of inside the
2004         Frame class. Added EditorCommandSource enum. Moved selectionHasStyle
2005         here from the Frame class. Added Editor::Command class with five functions
2006         for the various things you can do with a command (execute it, check if it
2007         can be used, and its state and value). Changed hte parameter of
2008         setBaseWritingDirection to be a const String& rather than a String.
2009         Got rid of the kill-ring-related operations, but added the kill ring
2010         functions themselves. Made selectedRange() public. Made the
2011         m_startNewKillRingSequence not Mac-specific and added "should" to its
2012         name.
2013
2014         * editing/EditorCommand.cpp: Copied from WebCore/editing/Editor.cpp.
2015         Retained only the editing commands.
2016         (WebCore::targetFrame): Moved to the top of the file.
2017         (WebCore::executeApplyStyle): Added. Helper function for commands
2018         that need to apply styles.
2019         (WebCore::executeToggleStyle): Added. Helper function for commands
2020         that need to toggle styles based on the style of the start of selection.
2021         (WebCore::executeApplyParagraphStyle): Added. Like executeApplyStyle, but
2022         for paragraph styles.
2023         (WebCore::executeInsertFragment): Added. Helper function for commands
2024         that need to insert a DOM fragment.
2025         (WebCore::executeInsertNode): Added. Helper function for commands that
2026         need to insert a tree rooted in a single DOM node.
2027         (WebCore::stateStyle): Added. Helper function for the state of commands
2028         that represent style.
2029         (WebCore::valueStyle): Added. Helper function for the value of commands
2030         that represent style.
2031         (WebCore::canScroll): Added. Helper functions for some move and scroll
2032         commands that need to determine if the renderer they are in can scroll.
2033         (WebCore::unionDOMRanges): Moved here from EditorMac.
2034         (WebCore::executeBackColor):
2035         (WebCore::executeBackwardDelete):
2036         (WebCore::executeCopy):
2037         (WebCore::executeCreateLink):
2038         (WebCore::executeCut):
2039         (WebCore::executeDelete):
2040         (WebCore::executeDeleteToMark):
2041         (WebCore::executeDeleteWordBackward):
2042         (WebCore::executeDeleteWordForward):
2043         (WebCore::executeFindString):
2044         (WebCore::executeFontName):
2045         (WebCore::executeFontSize):
2046         (WebCore::executeFontSizeDelta):
2047         (WebCore::executeForeColor):
2048         (WebCore::executeFormatBlock):
2049         (WebCore::executeForwardDelete):
2050         (WebCore::executeIndent):
2051         (WebCore::executeInsertBacktab):
2052         (WebCore::executeInsertHorizontalRule):
2053         (WebCore::executeInsertHTML):
2054         (WebCore::executeInsertImage):
2055         (WebCore::executeInsertLineBreak):
2056         (WebCore::executeInsertNewline):
2057         (WebCore::executeInsertNewlineInQuotedContent):
2058         (WebCore::executeInsertOrderedList):
2059         (WebCore::executeInsertParagraph):
2060         (WebCore::executeInsertTab):
2061         (WebCore::executeInsertText):
2062         (WebCore::executeInsertUnorderedList):
2063         (WebCore::executeJustifyCenter):
2064         (WebCore::executeJustifyFull):
2065         (WebCore::executeJustifyLeft):
2066         (WebCore::executeJustifyRight):
2067         (WebCore::executeMoveBackward):
2068         (WebCore::executeMoveBackwardAndModifySelection):
2069         (WebCore::executeMoveDown):
2070         (WebCore::executeMoveDownAndModifySelection):
2071         (WebCore::executeMoveDownByPageAndModifyCaret):
2072         (WebCore::executeMoveForward):
2073         (WebCore::executeMoveForwardAndModifySelection):
2074         (WebCore::executeMoveLeft):
2075         (WebCore::executeMoveLeftAndModifySelection):
2076         (WebCore::executeMoveRight):
2077         (WebCore::executeMoveRightAndModifySelection):
2078         (WebCore::executeMoveToBeginningOfDocument):
2079         (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
2080         (WebCore::executeMoveToBeginningOfLine):
2081         (WebCore::executeMoveToBeginningOfLineAndModifySelection):
2082         (WebCore::executeMoveToBeginningOfParagraph):
2083         (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
2084         (WebCore::executeMoveToBeginningOfSentence):
2085         (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
2086         (WebCore::executeMoveToEndOfDocument):
2087         (WebCore::executeMoveToEndOfDocumentAndModifySelection):
2088         (WebCore::executeMoveToEndOfSentence):
2089         (WebCore::executeMoveToEndOfSentenceAndModifySelection):
2090         (WebCore::executeMoveToEndOfLine):
2091         (WebCore::executeMoveToEndOfLineAndModifySelection):
2092         (WebCore::executeMoveToEndOfParagraph):
2093         (WebCore::executeMoveToEndOfParagraphAndModifySelection):
2094         (WebCore::executeMoveParagraphBackwardAndModifySelection):
2095         (WebCore::executeMoveParagraphForwardAndModifySelection):
2096         (WebCore::executeMoveUp):
2097         (WebCore::executeMoveUpAndModifySelection):
2098         (WebCore::executeMoveUpByPageAndModifyCaret):
2099         (WebCore::executeMoveWordBackward):
2100         (WebCore::executeMoveWordBackwardAndModifySelection):
2101         (WebCore::executeMoveWordForward):
2102         (WebCore::executeMoveWordForwardAndModifySelection):
2103         (WebCore::executeMoveWordLeft):
2104         (WebCore::executeMoveWordLeftAndModifySelection):
2105         (WebCore::executeMoveWordRight):
2106         (WebCore::executeMoveWordRightAndModifySelection):
2107         (WebCore::executeOutdent):
2108         (WebCore::executePaste):
2109         (WebCore::executePasteAndMatchStyle):
2110         (WebCore::executePrint):
2111         (WebCore::executeRedo):
2112         (WebCore::executeRemoveFormat):
2113         (WebCore::executeSelectAll):
2114         (WebCore::executeSelectToMark):
2115         (WebCore::executeSetMark):
2116         (WebCore::executeStrikethrough):
2117         (WebCore::executeSubscript):
2118         (WebCore::executeSuperscript):
2119         (WebCore::executeSwapWithMark):
2120         (WebCore::executeToggleBold):
2121         (WebCore::executeToggleItalic):
2122         (WebCore::executeTranspose):
2123         (WebCore::executeUnderline):
2124         (WebCore::executeUndo):
2125         (WebCore::executeUnlink):
2126         (WebCore::executeUnscript):
2127         (WebCore::executeUnselect):
2128         (WebCore::executeYank):
2129         (WebCore::executeYankAndSelect):
2130         (WebCore::supported):
2131         (WebCore::supportedPaste):
2132         (WebCore::enabled):
2133         (WebCore::enabledAnySelection):
2134         (WebCore::enabledAnySelectionAndMark):
2135         (WebCore::enableCaretInEditableText):
2136         (WebCore::enabledCopy):
2137         (WebCore::enabledCut):
2138         (WebCore::enabledInEditableText):
2139         (WebCore::enabledInRichlyEditableText):
2140         (WebCore::enabledPaste):
2141         (WebCore::enabledRangeInEditableText):
2142         (WebCore::enabledRangeInRichlyEditableText):
2143         (WebCore::enabledRedo):
2144         (WebCore::enabledUndo):
2145         (WebCore::stateNone):
2146         (WebCore::stateBold):
2147         (WebCore::stateItalic):
2148         (WebCore::stateOrderedList):
2149         (WebCore::stateStrikethrough):
2150         (WebCore::stateSubscript):
2151         (WebCore::stateSuperscript):
2152         (WebCore::stateUnderline):
2153         (WebCore::stateUnorderedList):
2154         (WebCore::valueNull):
2155         (WebCore::valueBackColor):
2156         (WebCore::valueFontName):
2157         (WebCore::valueFontSize):
2158         (WebCore::valueFontSizeDelta):
2159         (WebCore::valueForeColor):
2160         (WebCore::createCommandMap): Added lots of commands, including all the commands
2161         from JSEditor. A few commands needed different behavior based on whether they are
2162         invoked from the DOM or a keyboard binding.
2163         (WebCore::Editor::command): Added. Gets a command object given a name.
2164         (WebCore::Editor::Command::Command): Added.
2165         (WebCore::Editor::Command::execute): Added.
2166         (WebCore::Editor::Command::isSupported): Added.
2167         (WebCore::Editor::Command::isEnabled): Added.
2168         (WebCore::Editor::Command::state): Added.
2169         (WebCore::Editor::Command::value): Added.
2170         (WebCore::Editor::execCommand): Changed to call command().execute().
2171
2172         * editing/JSEditor.cpp: Removed.
2173         * editing/JSEditor.h: Removed.
2174
2175         * editing/mac/EditorMac.mm: Changed to provide kill ring primitives intead of
2176         kill ring commands, so the kill ring commands can be cross-platform.
2177         (WebCore::Editor::appendToKillRing): Added.
2178         (WebCore::Editor::prependToKillRing): Added.
2179         (WebCore::Editor::yankFromKillRing): Added.
2180         (WebCore::Editor::startNewKillRingSequence): Added.
2181         (WebCore::Editor::setKillRingToYankedState): Added.
2182
2183         * page/Frame.cpp: Removed selectionHasStyle, TriState, and updateState.
2184         * page/Frame.h: Ditto.
2185
2186         * page/mac/WebCoreFrameBridge.mm: Removed selectionHasStyle.
2187         * page/mac/WebCoreFrameBridge.h: Ditto.
2188
2189         * platform/ContextMenu.cpp:
2190         (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for TriState change.
2191
2192         * platform/text/StringHash.h:
2193         (WebCore::StringHash::hash): Merged the StrHash<> template classes into this.
2194         (WebCore::StringHash::equal): Ditto.
2195         (WebCore::CaseFoldingHash::hash): Merged the CaseInsensitiveHash<> template
2196         classes into this.
2197         (WebCore::CaseFoldingHash::equal): Ditto.
2198
2199         * platform/text/StringImpl.cpp:
2200         (WebCore::equal): Changed to invoke StringHash.
2201         (WebCore::equalIgnoringCase): Changed to invoke CaseFoldingHash.
2202
2203         * dom/DOMImplementation.cpp:
2204         (WebCore::addString): Updated to use StringHash and CaseFoldingHash.
2205         (WebCore::isSVG10Feature): Ditto.
2206         (WebCore::isSVG11Feature): Ditto.
2207         * loader/FrameLoader.cpp:
2208         (WebCore::localSchemes): Ditto.
2209         * platform/graphics/FontCache.cpp:
2210         (WebCore::computeHash): Ditto.
2211         * platform/network/HTTPHeaderMap.h: Ditto.
2212         * platform/text/PlatformString.h: Ditto.
2213         * platform/text/StringImpl.h: Ditto.
2214         * rendering/RenderPartObject.cpp:
2215         (WebCore::RenderPartObject::updateWidget): Ditto.
2216         * xml/XMLHttpRequest.cpp:
2217         (WebCore::canSetRequestHeader): Ditto.
2218
2219         * rendering/RenderTreeAsText.cpp: Removed stray include of JSEditor.h.
2220
2221 2007-12-11  Darin Adler  <darin@apple.com>
2222
2223         * platform/wx/KeyboardEventWx.cpp:
2224         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Another try at fixing the
2225         WX build. Changes the code around a little bit.
2226
2227 2007-12-11  Darin Adler  <darin@apple.com>
2228
2229         * platform/wx/KeyboardEventWx.cpp:
2230         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Quick try at fixing build.
2231
2232 2007-12-11  Dan Bernstein  <mitz@apple.com>
2233
2234         Reviewed by Darin Adler.
2235
2236         - fix <rdar://problem/5631507> Text doesn't wrap properly at Tamil version of Wikipedia
2237
2238         Test: fast/text/international/complex-character-based-fallback.html
2239
2240         * platform/graphics/Font.cpp:
2241         (WebCore::Font::glyphDataForCharacter): Added a forceSmallCaps argument
2242         that forces this function to use the small caps font. It is used for
2243         combining marks that need to combine with a small cap.
2244         * platform/graphics/Font.h:
2245         * platform/win/UniscribeController.cpp:
2246         (WebCore::UniscribeController::advance): Changed to split the string
2247         into runs of characters that will be rendered using the same FontData.
2248         This is done by calling glyphDataForCharacter() for each cahracter to
2249         find the FontData it should be rendered with.
2250         (WebCore::UniscribeController::itemizeShapeAndPlace): Added a fontData
2251         argument that is passed on to shapeAndPlaceItem() instead of the
2252         smallCaps argument.
2253         (WebCore::UniscribeController::shapeAndPlaceItem): Added a fontData
2254         argument and removed the font fallback logic from this function, as
2255         it is now expected to be called with an item all of whose characters
2256         can be rendered with the given fontData.
2257         * platform/win/UniscribeController.h:
2258
2259 2007-12-07  Alexey Proskuryakov  <ap@webkit.org>
2260
2261         Reviewed by Darin.
2262
2263         <rdar://problem/5535636>
2264         Have to press 4 times instead of 2 times to get the expected result of ^^ with german keyboard.
2265
2266         http://bugs.webkit.org/show_bug.cgi?id=13916
2267         JavaScript detects Tab as a character input on a textfield validation
2268
2269         Test: platform/win/fast/events/double-dead-char.html
2270
2271         * platform/PlatformKeyboardEvent.h:
2272         (WebCore::PlatformKeyboardEvent::):
2273         (WebCore::PlatformKeyboardEvent::type):
2274         (WebCore::PlatformKeyboardEvent::windowsVirtualKeyCode):
2275         (WebCore::PlatformKeyboardEvent::setWindowsVirtualKeyCode):
2276         (WebCore::PlatformKeyboardEvent::keyIdentifier):
2277         (WebCore::PlatformKeyboardEvent::setIsAutoRepeat):
2278         Added an explicit type member to differentiate different kinds of events:
2279           RawKeyDown == keydown == WM_KEYDOWN
2280           KeyUp == keyup == WM_KEYUP
2281           Char == keypress == WM_CHAR
2282           KeyDown == e.g. NSKeyDown or NSFlagsChanged, used on platforms that have a different model for
2283           event processing, and needs to be converted to RawKeyDown (+ Char) for processing in DOM.
2284
2285         * platform/mac/KeyEventMac.mm:
2286         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
2287         Fix Enter (numeric keypad) charCode to match Return, as we check for it from keypress default handlers.
2288         (WebCore::windowsKeyCodeForKeyEvent): 
2289         (WebCore::isKeyUpEvent): Made it do something closer to what it claims; added a FIXME explaining
2290         that it still fails.
2291         (WebCore::disambiguateKeyDownEvent): Downgrade from KeyDown to RawKeyDown or Char, removing information that
2292         should not be available in those (because it cannot be provided on Windows).
2293
2294         * platform/win/KeyEventWin.cpp:
2295         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
2296         Used standard Windows constants for bit masks instead of our own ones.
2297         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Should never be called on Windows.
2298
2299         * platform/gtk/KeyEventGtk.cpp:
2300         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2301         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
2302         * platform/qt/PlatformKeyboardEventQt.cpp:
2303         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2304         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
2305         * platform/wx/KeyboardEventWx.cpp:
2306         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2307         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
2308         Updated for cross-platform changes as much as it was possible without appropriate build
2309         environments.
2310
2311         * WebCore.base.exp: Export PlatformKeyboardEvent::disambiguateKeyDownEvent(), used by platforms that need to
2312         convert their fancy key events to RawKeyDown/Char pairs. Export Editor::isTextInsertionCommand().
2313
2314         * bridge/EditorClient.h:
2315         Renamed handleKeypress() to handleKeyboardEvent(), as it gets both keydowns and keypresses.
2316         Renamed handleInputMethodKeypress() to handleInputMethodKeydown(), as IMs work with raw keydowns.
2317
2318         * dom/Document.h:
2319         * dom/Document.cpp:
2320         (WebCore::Document::defaultEventHandler): Moved accesskey processing to EventHandler.
2321
2322         * dom/KeyboardEvent.h: Added comments describing keyCode/charCode behavior.
2323
2324         * dom/KeyboardEvent.cpp:
2325         (WebCore::eventTypeForKeyboardEventType):
2326         (WebCore::KeyboardEvent::KeyboardEvent): Conversion between platform and DOM event types is
2327         now straightforward, so scary hacks such as using autorepeat to distinguish types are
2328         not needed.
2329         (WebCore::KeyboardEvent::keyCode): Added a comment describing other browsers' behavior.
2330         (WebCore::KeyboardEvent::charCode): Added a comment describing other browsers' behavior.
2331         Changed to a more compatible behavior: raw keydown/keyup events do not and can not have
2332         character codes.
2333
2334         * editing/Editor.h:
2335         * editing/Editor.cpp:
2336         (WebCore::Editor::isTextInsertionCommand): Is this command actually text input in disguise?
2337         (WebCore::Editor::handleKeyboardEvent): Updated for new function names.
2338         (WebCore::Editor::handleInputMethodKeydown): Ditto.
2339
2340         * html/HTMLButtonElement.cpp:
2341         (WebCore::HTMLButtonElement::defaultEventHandler): Perform the default action when handling an
2342         appropriate event. Enter is processed on keypress (and thus should be checked for via charCode,
2343         not keyIdentifier), Space is processed on keydown+keyup! We now match IE in that a button is
2344         highlighted when Space is pressed.
2345
2346         * html/HTMLInputElement.cpp:
2347         (WebCore::HTMLInputElement::defaultEventHandler):
2348         * html/HTMLSelectElement.cpp:
2349         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
2350         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
2351         Made a number of fixes to when default actions take place, similar to HTMLButtonElement ones
2352         described above.
2353
2354         * page/EventHandler.cpp:
2355         (WebCore::EventHandler::keyEvent): Unless we have a combined KeyDown, just forward the event
2356         to the target. Call accesskey handling directly, as it doesn't seem to be part of normal event
2357         handling in IE. Also streamlined the code in KeyDown case, thanks to handleInputMethodKeypress()
2358         now being handleInputMethodKeydown().
2359         (WebCore::EventHandler::handleTextInputEvent): Check that we were not called from keydown.
2360         (WebCore::EventHandler::defaultTextInputEventHandler): Removed a call to defaultTabEventHandler,
2361         as default tab handling happens when processing keydown.
2362         (WebCore::handleAccessKey): Moved from Document, as access keys are processed outside normal
2363         event handling. Fixed accesskey processing to use information that's available in a raw keydown
2364         event.
2365
2366         (WebCore::EventHandler::defaultKeyboardEventHandler): Do not ignore keydown; in particular,
2367         handle tabs during keydown processing.
2368
2369         * page/mac/EventHandlerMac.mm:
2370         (WebCore::EventHandler::currentKeyboardEvent): Disambiguate KeyDown as RawKeyDown, as this is
2371         what callers want.
2372
2373         * platform/text/PlatformString.h:
2374         * platform/text/String.cpp:
2375         (WebCore::String::characterStartingAt):
2376         * platform/text/StringImpl.cpp:
2377         (WebCore::StringImpl::characterStartingAt):
2378         * platform/text/StringImpl.h:
2379         Added a UChar32 accessor.
2380
2381         * svg/graphics/SVGImageEmptyClients.h:
2382         (WebCore::SVGEmptyEditorClient::handleKeyboardEvent):
2383         (WebCore::SVGEmptyEditorClient::handleInputMethodKeydown):
2384         Updated for new function names.
2385
2386 2007-12-11  John Sullivan  <sullivan@apple.com>
2387
2388         Reviewed by Adele
2389
2390         Tiger build fix -- don't call QTMovieView setDelegate: directly because it's not public
2391
2392         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2393         (WebCore::MediaPlayerPrivate::createQTMovieView):
2394         (WebCore::MediaPlayerPrivate::detachQTMovieView):
2395
2396 2007-12-11  Alexey Proskuryakov  <ap@webkit.org>
2397
2398         Reviewed by Darin.
2399
2400         http://bugs.webkit.org/show_bug.cgi?id=16325
2401         <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
2402
2403         Fix this on Windows, too!
2404
2405         Test: http/tests/misc/empty-cookie.html
2406
2407         * platform/network/win/CookieJarWin.cpp:
2408         (WebCore::setCookies):
2409         (WebCore::cookies):
2410         Same fix as on Mac, translated into CF.
2411
2412         * platform/win/CookieJarWin.cpp: Removed - the real one is in platform/network/win.
2413
2414 2007-12-11  Christian Dywan  <christian@twotoasts.de>
2415
2416         Reviewed by Alp Toker.
2417
2418         http://bugs.webkit.org/show_bug.cgi?id=16371
2419         Implement additional mouse cursors for Gtk
2420
2421         Added cursor bitmaps from Mozilla:
2422         http://lxr.mozilla.org/mozilla1.8/source/widget/src/gtk2/nsGtkCursors.h
2423
2424         * platform/gtk/CursorGtk.cpp:
2425         (WebCore::customCursorNew):
2426         (WebCore::verticalTextCursor):
2427         (WebCore::cellCursor):
2428         (WebCore::contextMenuCursor):
2429         (WebCore::noDropCursor):
2430         (WebCore::copyCursor):
2431         (WebCore::progressCursor):
2432         (WebCore::aliasCursor):
2433         (WebCore::noneCursor):
2434         (WebCore::notAllowedCursor):
2435         (WebCore::zoomInCursor):
2436         (WebCore::zoomOutCursor):
2437         * platform/gtk/CursorGtk.h: Added.
2438
2439 2007-12-10  Oliver Hunt  <oliver@apple.com>
2440
2441         Reviewed by Weinig, Dan, and Alexey.
2442
2443         Fix character set used for dynamically loaded scripts.
2444
2445         Fix for:
2446             <rdar://problem/5333163> Safari can not display the mouse over pop menu on ChinaTimes News site correctly.
2447             <rdar://problem/5530048> [Safari]? :Leopard9A576: The typed CH characters displays as garbage in Sina website after reloading the webpage.
2448             <rdar://problem/5416588> All menus for chinese IBM site have wrong encoding
2449             
2450         Use the same logic to determine the charset for a script loaded dynamically
2451         as we do for a statically loaded script.
2452
2453         * html/HTMLScriptElement.cpp:
2454         (WebCore::HTMLScriptElement::insertedIntoDocument):
2455
2456 2007-12-10  Justin Garcia  <justin.garcia@apple.com>
2457
2458         Reviewed by Oliver Hunt.
2459
2460         <rdar://problem/5482023> GoogleDocs: After FormatBlock in an empty document, certain functions are disabled
2461         
2462         We were trying to insert a block of the requested type before the body element.
2463         
2464         * editing/FormatBlockCommand.cpp:
2465         (WebCore::FormatBlockCommand::doApply): 
2466         Removed unnecessary ()s in the if condition.
2467         Removed "|| !upstreamStart.node()->isDescendantOf(root)" from the if condition, since
2468         a) upstreamStart will never be outside the root editable element, since in that case
2469         there would be no block inside the editable root to Format, and b) if upstreamStart.node() 
2470         *is* the root, then refNode is the root, and we shouldn't insert before the root, we should insert
2471         at [root, 0].
2472         Added comments to explain the use of upstream() in the second if-clause.
2473         Added an early return for case where there is nothing selected, in that case, there is nothing
2474         to move.
2475
2476 2007-12-10  Adele Peterson  <adele@apple.com>
2477
2478         Reviewed and partially fixed by Tim Hatcher.
2479
2480         Remaining part of fix for <rdar://problem/5633400>
2481         Transformed <video> is not clipped correctly until a repaint is forced
2482
2483         Replace the implementation of a QTKit method to avoid repaints from the NSView system associated with the QTMovie
2484         from clobbering the WebCore repaints.
2485
2486         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerRepaint): Added.
2487         * html/HTMLMediaElement.h:
2488         * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::repaint): Added.
2489         * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerRepaint): Added.
2490
2491         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2492         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2493         (method_setImplementation): Added for Tiger.
2494
2495         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call detachQTMovieView, which now does more cleanup.
2496         (WebCore::MediaPlayerPrivate::cancelLoad): ditto.
2497         (WebCore::MediaPlayerPrivate::setVisible): ditto.
2498         (WebCore::MediaPlayerPrivate::detachQTMovieView): Clear the delegate as well as m_qtMovieView pointer.
2499
2500         (WebCore::MediaPlayerPrivate::repaint): Added.  Triggers a repaint on the video renderer.
2501         (-[WebCoreMovieObserver repaint]): ditto.
2502
2503         (WebCore::mainThreadSetNeedsDisplay): Added.
2504          Does a WebCore repaint instead of going through the view repaint system for QTMovieView.
2505         (WebCore::MediaPlayerPrivate::createQTMovieView): Replace the implementation of _mainThreadSetNeedsDisplay.
2506
2507 2007-12-10  Geoffrey Garen  <ggaren@apple.com>
2508
2509         Reviewed by Sam Weinig.
2510
2511         Updated for rename in JavaScriptCore.
2512
2513         * bridge/mac/WebCoreScriptDebugger.mm:
2514         (-[WebCoreScriptCallFrame scopeChain]):
2515         (-[WebCoreScriptCallFrame functionName]):
2516         (-[WebCoreScriptCallFrame evaluateWebScript:]):
2517
2518 2007-12-10  Rodney Dawes  <dobey@wayofthemonkey.com>
2519
2520         Bug 16383: Ambiguous Window Usage in kjs_dom.cpp
2521         <http://bugs.webkit.org/show_bug.cgi?id=16383>
2522
2523         Use KJS::Window not the ambiguous Window
2524
2525         Reviewed by ddkilzer.
2526
2527         * bindings/js/kjs_dom.cpp (checkNodeSecurity):
2528
2529 2007-12-10  Sam Weinig  <sam@webkit.org>
2530
2531         Fix non-mac builds.
2532
2533         * page/WindowFeatures.cpp: #include <wtf/MathExtras.h> for isnan.
2534
2535 2007-12-10  Marvin Decker  <marv.decker@gmail.com>
2536
2537         Reviewed by Darin.
2538
2539         Fix a divide by 0 in the progress tracker.
2540         http://bugs.webkit.org/show_bug.cgi?id=15055
2541
2542         * loader/ProgressTracker.cpp:
2543         (WebCore::ProgressTracker::incrementProgress):
2544
2545 2007-12-09  Sam Weinig  <sam@webkit.org>
2546
2547         Reviewed by Darin.
2548
2549         More cleanup of kjs_window.
2550         - Move WindowFeatures from bridge/ to page/
2551         - Move functions related to WindowFeatures (boolFeature,
2552           floatFeature, setWindowFeature, parseWindowFeatures) into the class.
2553         - Fix up whitespace.
2554
2555         * WebCore.vcproj/WebCore.vcproj:
2556         * WebCore.xcodeproj/project.pbxproj:
2557         * bindings/js/kjs_window.cpp:
2558         (KJS::DOMWindowTimer::~DOMWindowTimer):
2559         (KJS::createWindow):
2560         (KJS::showModalDialog):
2561         (KJS::Window::getOwnPropertySlot):
2562         (KJS::Window::allowsAccessFrom):
2563         (KJS::Window::shouldInterruptScript):
2564         (KJS::WindowProtoFuncAToB::callAsFunction):
2565         (KJS::WindowProtoFuncOpen::callAsFunction):
2566         (KJS::Window::setReturnValueSlot):
2567         (KJS::ScheduledAction::execute):
2568         (KJS::Window::timerFired):
2569         (KJS::Location::Location):
2570         (KJS::Location::getValueProperty):
2571         (KJS::Location::getOwnPropertySlot):
2572         (KJS::Location::put):
2573         (KJS::LocationProtoFuncReplace::callAsFunction): Use better variable names.
2574         (KJS::LocationProtoFuncAssign::callAsFunction): Ditto.
2575         (KJS::LocationProtoFuncToString::callAsFunction): Remove extraneous calls to
2576         allowsAccessFrom, cleanup the function a little.
2577         (KJS::PausedTimeouts::~PausedTimeouts):
2578         * bridge/WindowFeatures.h: Removed.
2579         * page/WindowFeatures.cpp: Added.
2580         (WebCore::isSeparator):
2581         (WebCore::WindowFeatures::WindowFeatures):
2582         (WebCore::WindowFeatures::setWindowFeature):
2583         (WebCore::WindowFeatures::boolFeature):
2584         (WebCore::WindowFeatures::floatFeature):
2585         * page/WindowFeatures.h: Copied from WebCore/bridge/WindowFeatures.h.
2586         (WebCore::WindowFeatures::WindowFeatures):
2587
2588 2007-12-10  Timothy Hatcher  <timothy@apple.com>
2589
2590         Reviewed by Mark Rowe.
2591
2592         <rdar://problem/5639463> Bundle versions on Tiger should be 4523.x not 523.x
2593
2594         * Configurations/Version.xcconfig: Some Tiger versions of Xcode don't set MAC_OS_X_VERSION_MAJOR,
2595           so assume Tiger and use a 4 for the SYSTEM_VERSION_PREFIX.
2596
2597 2007-12-10  Alp Toker  <alp@atoker.com>
2598
2599         Reviewed by Niko.
2600
2601         Cairo implementation of GraphicsContext::setUseAntialiasing().
2602
2603         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2604         (WebCore::GraphicsContext::setUseAntialiasing):
2605
2606 2007-12-10  Rob Buis  <buis@kde.org>
2607
2608         Reviewed by Darin.
2609
2610         http://bugs.webkit.org/show_bug.cgi?id=16182
2611         SVG should disable antialiasing for shape-rendering="crispEdges"
2612
2613         Turn off anti-aliasing of shapes when shape-rendering="crispEdges".
2614
2615         * platform/graphics/GraphicsContext.h:
2616         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2617         (WebCore::GraphicsContext::setUseAntialiasing):
2618         * platform/graphics/cg/GraphicsContextCG.cpp:
2619         (WebCore::GraphicsContext::setUseAntialiasing):
2620         * platform/graphics/qt/GraphicsContextQt.cpp:
2621         (WebCore::GraphicsContext::setUseAntialiasing):
2622         * platform/graphics/wx/GraphicsContextWx.cpp:
2623         (WebCore::GraphicsContext::setUseAntialiasing):
2624         * rendering/RenderPath.cpp:
2625         (WebCore::RenderPath::paint):
2626
2627 2007-12-09  Rob Buis  <buis@kde.org>
2628
2629         Reviewed by Niko.
2630
2631         http://bugs.webkit.org/show_bug.cgi?id=16163
2632         SVG crash in Node::setChanged() on Debug builds only (trashed parent)
2633
2634         Fix the crash by properly unregistering as client from SVGResource
2635         when deleting a styled svg node.
2636
2637         * svg/SVGStyledElement.cpp:
2638         (WebCore::SVGStyledElement::~SVGStyledElement):
2639
2640 2007-12-10  Brady Eidson  <beidson@apple.com>
2641
2642         Rubberstamped by John
2643
2644         * storage/DatabaseTracker.cpp:
2645         (WebCore::DatabaseTracker::canEstablishDatabase): If the UI Delegate returns *exactly* the estimated size
2646           for the new quota, we should allow the database to be created
2647
2648 2007-12-10  David D. Kilzer  <ddkilzer@webkit.org>
2649
2650         Bug 9683: Implement select.options.remove() method
2651         <http://bugs.webkit.org/show_bug.cgi?id=9683>
2652
2653         Reviewed by Maciej.
2654
2655         Implement select.options.remove() by calling select.remove()
2656         with the same arguments.  This is what MSIE 7 does, although its
2657         select.remove() method differs from WebKit's by throwing an
2658         exception when called with no arguments or with a negative
2659         integer argument.  Note that the DOM Level 1 documentation
2660         specifies that select.remove() does not throw an exception.
2661
2662         Tests: fast/js/select-options-remove-gc.html
2663                fast/js/select-options-remove.html
2664
2665         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2666         (WebCore::JSHTMLOptionsCollection::remove): Added.
2667         * html/HTMLOptionsCollection.cpp:
2668         (WebCore::HTMLOptionsCollection::remove): Added.
2669         * html/HTMLOptionsCollection.h:
2670         * html/HTMLOptionsCollection.idl:
2671
2672 2007-12-09  Sam Weinig  <sam@webkit.org>
2673
2674         Rubber stamped by Mark Rowe.
2675
2676         * WebCore.xcodeproj/project.pbxproj: Add missing DerivedSources files.
2677
2678 2007-12-09  Oliver Hunt  <oliver@apple.com>
2679
2680         Reviewed by Niko.
2681
2682         Correction, 'z' and 'Z' are the only commands that cannot have an extended
2683         list of arguments.
2684
2685         * svg/SVGParserUtilities.cpp:
2686         (WebCore::SVGPathParser::parseSVG):
2687
2688 2007-12-09  Oliver Hunt  <oliver@apple.com>
2689
2690         Reviewed by Niko.
2691
2692         Prevent unlimited iteration in the case of invalid path data.
2693         
2694         The only path commands that can leave numbers trailing the command processing
2695         are 'm' and 'M', in which trailing numbers are parsed as arguments to an
2696         implicit lineto command.  In any case we should just terminate as an invalid
2697         path.
2698
2699         * svg/SVGParserUtilities.cpp:
2700         (WebCore::SVGPathParser::parseSVG):
2701
2702 2007-12-09  Luca Bruno  <lethalman88@gmail.com>
2703
2704         Reviewed by Alp Toker.
2705
2706         http://bugs.webkit.org/show_bug.cgi?id=15825
2707         [GTK] curl - slow dns causing hangs.
2708
2709         Create a vector of jobs, to satisfy requests in the right order.
2710         Set a limit to the number of simultaneous connections.
2711
2712         * platform/network/curl/ResourceHandleManager.cpp:
2713         (WebCore::maxRunningJobs): added
2714         (WebCore::ResourceHandleManager::ResourceHandleManager):
2715         (WebCore::ResourceHandleManager::removeFromCurl):
2716         (WebCore::ResourceHandleManager::startScheduledJobs):
2717
2718         * platform/network/curl/ResourceHandleManager.h:
2719         (WebCore::ResourceHandleList): removed
2720         (WebCore::ResourceHandleManager::m_runningJobs): added
2721         (WebCore::ResourceHandleManager::m_resourceHandleListHead): removed
2722         (WebCore::ResourceHandleManager::m_resourceHandleList): added
2723
2724 2007-12-08  Sam Weinig  <sam@webkit.org>
2725
2726         Reviewed by Oliver.
2727
2728         Cleanup kjs_window.h/cpp.
2729
2730         * bindings/js/kjs_window.cpp:
2731         (KJS::WindowPrivate::WindowPrivate):
2732         (KJS::DOMWindowTimer::DOMWindowTimer):
2733         (KJS::Window::Window):
2734         (KJS::Window::retrieveWindow):
2735         (KJS::Window::retrieveActive):
2736         (KJS::Window::retrieve):
2737         (KJS::Window::location):
2738         (KJS::Window::mark):
2739         (KJS::allowPopUp):
2740         (KJS::parseModalDialogFeatures):
2741         (KJS::floatFeature):
2742         (KJS::canShowModalDialog):
2743         (KJS::canShowModalDialogNow):
2744         (KJS::showModalDialog):
2745         (KJS::Window::getValueProperty):
2746         (KJS::Window::getOwnPropertySlot):
2747         (KJS::Window::globalExec):
2748         (KJS::Window::setListener):
2749         (KJS::Window::getListener):
2750         (KJS::Window::findOrCreateJSEventListener):
2751         (KJS::Window::findOrCreateJSUnprotectedEventListener):
2752         (KJS::Window::clearHelperObjectProperties):
2753         (KJS::Window::setCurrentEvent):
2754         (KJS::WindowProtoFuncAToB::callAsFunction):
2755         (KJS::WindowProtoFuncBToA::callAsFunction):
2756         (KJS::WindowProtoFuncOpen::callAsFunction):
2757         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
2758         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
2759         (KJS::WindowProtoFuncSetInterval::callAsFunction):
2760         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
2761         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
2762         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
2763         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
2764         * bindings/js/kjs_window.h:
2765         (KJS::PausedTimeouts::PausedTimeouts):
2766         (KJS::PausedTimeouts::takeTimeouts):
2767         (KJS::ScheduledAction::ScheduledAction):
2768
2769 2007-12-08  Sam Weinig  <sam@webkit.org>
2770
2771         Reviewed by Mitz.
2772
2773         Move window scrolling, moving and resizing methods from KJS::Window
2774         to WebCore::DOMWindow so that there bindings can be autogenerated.
2775
2776         Tests: fast/dom/Window/window-resize-and-move-arguments.html
2777                fast/dom/Window/window-scroll-arguments.html
2778
2779         * WebCore.xcodeproj/project.pbxproj:
2780         * bindings/js/kjs_window.cpp:
2781         (KJS::Window::getValueProperty): Remove extraneous allowsAccessFrom check.
2782         (KJS::WindowProtoFuncOpen::callAsFunction):
2783         (KJS::WindowProtoFuncNotImplemented::callAsFunction): Remove extraneous allowsAccessFrom check.
2784         * bindings/js/kjs_window.h:
2785         * bindings/scripts/CodeGeneratorJS.pm: Add new extended attribute
2786         to ensure that the no less than the declared number of attributes
2787         is allowed.
2788         * page/DOMWindow.cpp:
2789         (WebCore::DOMWindow::adjustWindowRect): Moved from kjs_window.
2790         (WebCore::DOMWindow::scrollBy):
2791         (WebCore::DOMWindow::scrollTo):
2792         (WebCore::DOMWindow::moveBy):
2793         (WebCore::DOMWindow::moveTo):
2794         (WebCore::DOMWindow::resizeBy):
2795         (WebCore::DOMWindow::resizeTo):
2796         * page/DOMWindow.h:
2797         (WebCore::DOMWindow::scroll):
2798         * page/DOMWindow.idl:
2799
2800 2007-12-08  Kevin Ollivier  <kevino@theolliviers.com>
2801
2802         Reviewed by Alp Toker.
2803
2804         http://bugs.webkit.org/show_bug.cgi?id=14651
2805         [CURL] didReceiveResponse() only called for HTTP loads
2806
2807         http://bugs.webkit.org/show_bug.cgi?id=14583
2808         [GDK] file:// relative CSS include URLs handled incorrectly
2809
2810         Make sure CURL sets the ResourceResponse URL and calls
2811         didReceiveResponse for local files too. 
2812
2813         * platform/network/curl/ResourceHandleManager.cpp:
2814         (WebCore::writeCallback):
2815
2816 2007-12-08  Oliver Hunt  <oliver@apple.com>
2817
2818         Reviewed by Sam W.
2819
2820         Split the ENABLE_SVG_EXPERIMENTAL_FEATURES flag into separate flags.
2821         
2822         Fixes <rdar://problem/5620249> Must disable SVG animation
2823         <rdar://problem/5612772> Disable SVG filters on Mac to match Windows behavior
2824         
2825         In order to allow finer grained control over the set of SVG features
2826         this patch splits ENABLE_SVG_EXPERIMENTAL_FEATURES into the following
2827         distinct flags:
2828         ENABLE_SVG_ANIMATION
2829         ENABLE_SVG_FILTERS
2830         ENABLE_SVG_FONTS
2831         ENABLE_SVG_AS_IMAGE
2832         ENABLE_SVG_USE
2833         
2834         by default only ENABLE_SVG_AS_IMAGE and ENABLE_SVG_USE are set.
2835
2836         * Configurations/WebCore.xcconfig:
2837         * DerivedSources.make:
2838           Handle the increased number of build flags that may be necessary
2839           
2840         * WebCore.SVG.Animation.exp: Added.
2841         * WebCore.SVG.Filters.exp: Added.
2842         * WebCore.SVG.exp:
2843           We now may not need the animation or filter exports so 
2844           these need to be separate.
2845           
2846         * WebCore.vcproj/WebCore.vcproj:
2847         * WebCore.vcproj/build-generated-files.sh:
2848           Update for new flags
2849           
2850         Remainder of changes are to swap ENABLE(SVG_EXPERIMENTAL_FEATURES) 
2851         with the appropriate specific feature flag.  
2852         * bindings/js/JSSVGElementWrapperFactory.cpp:
2853         (WebCore::createJSSVGWrapper):
2854         * bindings/objc/DOM.mm:
2855         (WebCore::createElementClassMap):
2856         * dom/make_names.pl:
2857         * loader/CachedImage.cpp:
2858         (WebCore::CachedImage::createImage):
2859         * page/DOMWindow.idl:
2860         * rendering/RenderPath.cpp:
2861         (WebCore::RenderPath::absoluteClippedOverflowRect):
2862         * rendering/RenderSVGContainer.cpp:
2863         (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
2864         * rendering/RenderSVGImage.cpp:
2865         (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
2866         * rendering/RenderSVGRoot.cpp:
2867         (WebCore::RenderSVGRoot::paint):
2868         (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
2869         * rendering/RenderSVGText.cpp:
2870         (WebCore::RenderSVGText::absoluteClippedOverflowRect):
2871         * rendering/SVGRenderSupport.cpp:
2872         (WebCore::prepareToRenderSVGContent):
2873         (WebCore::finishRenderSVGContent):
2874         * svg/SVGAnimateElement.cpp:
2875         * svg/SVGAnimateElement.h:
2876         * svg/SVGAnimateElement.idl:
2877         * svg/SVGAnimateMotionElement.cpp:
2878         * svg/SVGAnimateMotionElement.h:
2879         * svg/SVGAnimateTransformElement.cpp:
2880         * svg/SVGAnimateTransformElement.h:
2881         * svg/SVGAnimateTransformElement.idl:
2882         * svg/SVGComponentTransferFunctionElement.cpp:
2883         * svg/SVGComponentTransferFunctionElement.h:
2884         * svg/SVGComponentTransferFunctionElement.idl:
2885         * svg/SVGDocumentExtensions.cpp:
2886         (WebCore::SVGDocumentExtensions::startAnimations):
2887         * svg/SVGFEBlendElement.cpp:
2888         * svg/SVGFEBlendElement.h:
2889         * svg/SVGFEBlendElement.idl:
2890         * svg/SVGFEColorMatrixElement.cpp:
2891         * svg/SVGFEColorMatrixElement.h:
2892         * svg/SVGFEColorMatrixElement.idl:
2893         * svg/SVGFEComponentTransferElement.cpp:
2894         * svg/SVGFEComponentTransferElement.h:
2895         * svg/SVGFEComponentTransferElement.idl:
2896         * svg/SVGFECompositeElement.cpp:
2897         * svg/SVGFECompositeElement.h:
2898         * svg/SVGFECompositeElement.idl:
2899         * svg/SVGFEDiffuseLightingElement.cpp:
2900         * svg/SVGFEDiffuseLightingElement.h:
2901         * svg/SVGFEDiffuseLightingElement.idl:
2902         * svg/SVGFEDisplacementMapElement.cpp:
2903         * svg/SVGFEDisplacementMapElement.h:
2904         * svg/SVGFEDisplacementMapElement.idl:
2905         * svg/SVGFEDistantLightElement.cpp:
2906         * svg/SVGFEDistantLightElement.h:
2907         * svg/SVGFEDistantLightElement.idl:
2908         * svg/SVGFEFloodElement.cpp:
2909         * svg/SVGFEFloodElement.h:
2910         * svg/SVGFEFloodElement.idl:
2911         * svg/SVGFEFuncAElement.cpp:
2912         * svg/SVGFEFuncAElement.h:
2913         * svg/SVGFEFuncAElement.idl:
2914         * svg/SVGFEFuncBElement.cpp:
2915         * svg/SVGFEFuncBElement.h:
2916         * svg/SVGFEFuncBElement.idl:
2917         * svg/SVGFEFuncGElement.cpp:
2918         * svg/SVGFEFuncGElement.h:
2919         * svg/SVGFEFuncGElement.idl:
2920         * svg/SVGFEFuncRElement.cpp:
2921         * svg/SVGFEFuncRElement.h:
2922         * svg/SVGFEFuncRElement.idl:
2923         * svg/SVGFEGaussianBlurElement.cpp:
2924         * svg/SVGFEGaussianBlurElement.h:
2925         * svg/SVGFEGaussianBlurElement.idl:
2926         * svg/SVGFEImageElement.cpp:
2927         * svg/SVGFEImageElement.h:
2928         * svg/SVGFEImageElement.idl:
2929         * svg/SVGFELightElement.cpp:
2930         * svg/SVGFELightElement.h:
2931         * svg/SVGFEMergeElement.cpp:
2932         * svg/SVGFEMergeElement.h:
2933         * svg/SVGFEMergeElement.idl:
2934         * svg/SVGFEMergeNodeElement.cpp:
2935         * svg/SVGFEMergeNodeElement.h:
2936         * svg/SVGFEMergeNodeElement.idl:
2937         * svg/SVGFEOffsetElement.cpp:
2938         * svg/SVGFEOffsetElement.h:
2939         * svg/SVGFEOffsetElement.idl:
2940         * svg/SVGFEPointLightElement.cpp:
2941         * svg/SVGFEPointLightElement.h:
2942         * svg/SVGFEPointLightElement.idl:
2943         * svg/SVGFESpecularLightingElement.cpp:
2944         * svg/SVGFESpecularLightingElement.h:
2945         * svg/SVGFESpecularLightingElement.idl:
2946         * svg/SVGFESpotLightElement.cpp:
2947         * svg/SVGFESpotLightElement.h:
2948         * svg/SVGFESpotLightElement.idl:
2949         * svg/SVGFETileElement.cpp:
2950         * svg/SVGFETileElement.h:
2951         * svg/SVGFETileElement.idl:
2952         * svg/SVGFETurbulenceElement.cpp:
2953         * svg/SVGFETurbulenceElement.h:
2954         * svg/SVGFETurbulenceElement.idl:
2955         * svg/SVGFilterElement.cpp:
2956         * svg/SVGFilterElement.h:
2957         * svg/SVGFilterElement.idl:
2958         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
2959         * svg/SVGTimer.cpp:
2960         (WebCore::SVGTimer::animationsByElement):
2961         * svg/SVGUseElement.cpp:
2962         (WebCore::SVGUseElement::buildPendingResource):
2963         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2964         * svg/SVGUseElement.h:
2965         * svg/TimeScheduler.cpp:
2966         (WebCore::TimeScheduler::connectIntervalTimer):
2967         (WebCore::TimeScheduler::disconnectIntervalTimer):
2968         * svg/graphics/SVGResourceFilter.cpp:
2969         * svg/graphics/SVGResourceFilter.h:
2970         * svg/graphics/cg/SVGResourceFilterCg.cpp:
2971         * svg/graphics/cg/SVGResourceFilterCg.mm:
2972         * svg/graphics/filters/SVGDistantLightSource.h:
2973         * svg/graphics/filters/SVGFEBlend.cpp:
2974         * svg/graphics/filters/SVGFEBlend.h:
2975         * svg/graphics/filters/SVGFEColorMatrix.cpp:
2976         * svg/graphics/filters/SVGFEColorMatrix.h:
2977         * svg/graphics/filters/SVGFEComponentTransfer.cpp:
2978         * svg/graphics/filters/SVGFEComponentTransfer.h:
2979         * svg/graphics/filters/SVGFEComposite.cpp:
2980         * svg/graphics/filters/SVGFEComposite.h:
2981         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
2982         * svg/graphics/filters/SVGFEConvolveMatrix.h:
2983         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
2984         * svg/graphics/filters/SVGFEDiffuseLighting.h:
2985         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
2986         * svg/graphics/filters/SVGFEDisplacementMap.h:
2987         * svg/graphics/filters/SVGFEFlood.cpp:
2988         * svg/graphics/filters/SVGFEFlood.h:
2989         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
2990         * svg/graphics/filters/SVGFEGaussianBlur.h:
2991         * svg/graphics/filters/SVGFEImage.cpp:
2992         * svg/graphics/filters/SVGFEImage.h:
2993         * svg/graphics/filters/SVGFEMerge.cpp:
2994         * svg/graphics/filters/SVGFEMerge.h:
2995         * svg/graphics/filters/SVGFEMorphology.cpp:
2996         * svg/graphics/filters/SVGFEMorphology.h:
2997         * svg/graphics/filters/SVGFEOffset.cpp:
2998         * svg/graphics/filters/SVGFEOffset.h:
2999         * svg/graphics/filters/SVGFESpecularLighting.cpp:
3000         * svg/graphics/filters/SVGFESpecularLighting.h:
3001         * svg/graphics/filters/SVGFETile.h:
3002         * svg/graphics/filters/SVGFETurbulence.cpp:
3003         * svg/graphics/filters/SVGFETurbulence.h:
3004         * svg/graphics/filters/SVGFilterEffect.cpp:
3005         * svg/graphics/filters/SVGFilterEffect.h:
3006         * svg/graphics/filters/SVGLightSource.cpp:
3007         * svg/graphics/filters/SVGLightSource.h:
3008         * svg/graphics/filters/SVGPointLightSource.h:
3009         * svg/graphics/filters/SVGSpotLightSource.h:
3010         * svg/graphics/filters/cg/SVGFEBlendCg.mm:
3011         * svg/graphics/filters/cg/SVGFEColorMatrixCg.mm:
3012         * svg/graphics/filters/cg/SVGFEComponentTransferCg.mm:
3013         * svg/graphics/filters/cg/SVGFECompositeCg.mm:
3014         * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
3015         * svg/graphics/filters/cg/SVGFEDisplacementMapCg.mm:
3016         * svg/graphics/filters/cg/SVGFEFloodCg.mm:
3017         * svg/graphics/filters/cg/SVGFEGaussianBlurCg.mm:
3018         * svg/graphics/filters/cg/SVGFEHelpersCg.h:
3019         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
3020         * svg/graphics/filters/cg/SVGFEImageCg.mm:
3021         * svg/graphics/filters/cg/SVGFEMergeCg.mm:
3022         * svg/graphics/filters/cg/SVGFEOffsetCg.mm:
3023         * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
3024         * svg/graphics/filters/cg/SVGFETileCg.mm:
3025         * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
3026         * svg/graphics/filters/cg/WKArithmeticFilter.h:
3027         * svg/graphics/filters/cg/WKArithmeticFilter.m:
3028         * svg/graphics/filters/cg/WKComponentMergeFilter.h:
3029         * svg/graphics/filters/cg/WKComponentMergeFilter.m:
3030         * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
3031         * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
3032         * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
3033         * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
3034         * svg/graphics/filters/cg/WKDisplacementMapFilter.h:
3035         * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
3036         * svg/graphics/filters/cg/WKDistantLightFilter.h:
3037         * svg/graphics/filters/cg/WKDistantLightFilter.m:
3038         * svg/graphics/filters/cg/WKGammaTransferFilter.h:
3039         * svg/graphics/filters/cg/WKGammaTransferFilter.m:
3040         * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
3041         * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
3042         * svg/graphics/filters/cg/WKLinearTransferFilter.h:
3043         * svg/graphics/filters/cg/WKLinearTransferFilter.m:
3044         * svg/graphics/filters/cg/WKNormalMapFilter.h:
3045         * svg/graphics/filters/cg/WKNormalMapFilter.m:
3046         * svg/graphics/filters/cg/WKPointLightFilter.h:
3047         * svg/graphics/filters/cg/WKPointLightFilter.m:
3048         * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
3049         * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
3050         * svg/graphics/filters/cg/WKSpotLightFilter.h:
3051         * svg/graphics/filters/cg/WKSpotLightFilter.m:
3052         * svg/graphics/filters/cg/WKTableTransferFilter.h:
3053         * svg/graphics/filters/cg/WKTableTransferFilter.m:
3054         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
3055         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
3056         * svg/svgtags.in:
3057
3058 2007-12-08  Dan Bernstein  <mitz@apple.com>
3059
3060         Reviewed by Adele Peterson.
3061
3062         - fix two bugs in parsing of stylesheets in <style> elements created by
3063           the parser:
3064           1. each such stylesheet is parsed twice, once when the text node is
3065              added and again when the </style> tag is reached
3066           2. re-inserting such a <style> element into the document fails to
3067              re-parse and apply its stylesheet.
3068
3069         Test for bug #2: fast/dom/HTMLStyleElement/insert-parser-generated.html
3070
3071         * html/HTMLStyleElement.cpp:
3072         (WebCore::HTMLStyleElement::finishedParsing):
3073         * svg/SVGStyleElement.cpp:
3074         (WebCore::SVGStyleElement::finishedParsing):
3075
3076 2007-12-07  Sam Weinig  <sam@webkit.org>
3077
3078         Reviewed by Darin.
3079
3080         - Removes the faulty isSafeScript implementation that was only
3081           used for plugins.
3082         - Renames isSafeScript to allowsAccessFrom.
3083
3084         * bindings/js/JSDOMWindowCustom.cpp:
3085         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
3086         (WebCore::JSDOMWindow::customPut):
3087         * bindings/js/kjs_dom.cpp:
3088         (WebCore::checkNodeSecurity):
3089         * bindings/js/kjs_window.cpp:
3090         (KJS::createWindow):
3091         (KJS::Window::getValueProperty):
3092         (KJS::Window::namedItemGetter):
3093         (KJS::Window::getOwnPropertySlot):
3094         (KJS::Window::put):
3095         (KJS::Window::allowsAccessFrom):
3096         (KJS::Window::setListener):
3097         (KJS::Window::getListener):
3098         (KJS::WindowProtoFuncOpen::callAsFunction):
3099         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
3100         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
3101         (KJS::WindowProtoFuncSetInterval::callAsFunction):
3102         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
3103         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
3104         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
3105         (KJS::Location::getOwnPropertySlot):
3106         (KJS::Location::put):
3107         (KJS::LocationProtoFuncReplace::callAsFunction):
3108         (KJS::LocationProtoFuncReload::callAsFunction):
3109         (KJS::LocationProtoFuncAssign::callAsFunction):
3110         (KJS::LocationProtoFuncToString::callAsFunction):
3111         * bindings/js/kjs_window.h:
3112         (KJS::Window::allowsAccessFrom):
3113         * bindings/objc/WebScriptObject.mm:
3114         (-[WebScriptObject _isSafeScript]): Reverse caller/argument of allowsAccessFrom to match
3115         the new call.
3116         * bindings/scripts/CodeGeneratorJS.pm:
3117
3118 2007-12-08  Rob Buis  <buis@kde.org>
3119
3120         Reviewed by Darin.
3121
3122         http://bugs.webkit.org/show_bug.cgi?id=15464
3123         SVGLengthList allows bad values
3124
3125         Be more strict with svg lengths without a unit identifier.
3126
3127         Test: svg/custom/invalid-lengthlist.svg
3128
3129         * svg/SVGLength.cpp:
3130         (WebCore::SVGLength::setValueAsString):
3131
3132 2007-12-08  Rob Buis  <buis@kde.org>
3133
3134         Mac Tiger build fix.
3135
3136         Use the wtf prefix when including MathExtras.h.
3137
3138         * rendering/RenderMedia.cpp:
3139
3140 2007-12-08  Alp Toker  <alp@atoker.com>
3141
3142         GTK+ build fix (for ENABLE_VIDEO builds):
3143
3144         Include MathExtras.h to get isfinite().
3145
3146         * rendering/RenderMedia.cpp:
3147
3148 2007-12-08  Rob Buis  <buis@kde.org>
3149
3150         Reviewed by Darin.
3151
3152         http://bugs.webkit.org/show_bug.cgi?id=15528
3153         svg_dynamic_cast should be removed
3154
3155         Replace svg_dynamic_cast with a combination of
3156         isSVGElement and static_cast.
3157
3158         * rendering/SVGRootInlineBox.cpp:
3159         (WebCore::SVGRootInlineBox::buildLayoutInformation):
3160         (WebCore::SVGRootInlineBox::buildTextChunks):
3161         * svg/SVGAnimationElement.cpp:
3162         (WebCore::SVGAnimationElement::targetElement):
3163         * svg/SVGElement.h:
3164         * svg/SVGElementInstance.cpp:
3165         (WebCore::SVGElementInstance::updateInstance):
3166         * svg/SVGFilterElement.cpp:
3167         (WebCore::SVGFilterElement::canvasResource):
3168         * svg/SVGGradientElement.cpp:
3169         (WebCore::SVGGradientElement::buildStops):
3170         * svg/SVGLocatable.cpp:
3171         (WebCore::SVGLocatable::getTransformToElement):
3172         * svg/SVGMaskElement.cpp:
3173         (WebCore::SVGMaskElement::drawMaskerContent):
3174         * svg/SVGSwitchElement.cpp:
3175         (WebCore::SVGSwitchElement::childShouldCreateRenderer):
3176         * svg/SVGUseElement.cpp:
3177         (WebCore::SVGUseElement::insertedIntoDocument):
3178         (WebCore::SVGUseElement::buildPendingResource):
3179         (WebCore::SVGUseElement::buildInstanceTree):
3180         (WebCore::SVGUseElement::handleDeepUseReferencing):
3181         (WebCore::SVGUseElement::buildShadowTree):
3182         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
3183         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
3184         * svg/graphics/SVGResource.cpp:
3185         (WebCore::getResourceById):
3186
3187 2007-12-07  Antti Koivisto  <antti@apple.com>
3188
3189         Reviewed by Adele.
3190         
3191         Partial fix for <rdar://problem/5633400>
3192         Transformed <video>, <img>, <embed> are not clipped correctly until a repaint is forced
3193         
3194         Fix video painting when transform is applied.
3195
3196         Test: media/video-transformed.html
3197
3198         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3199         (WebCore::MediaPlayerPrivate::paint):
3200
3201 2007-12-07  Dan Bernstein  <mitz@apple.com>
3202
3203         Reviewed by Sam Weinig.
3204
3205         - fix http://bugs.webkit.org/show_bug.cgi?id=16348
3206           @font-face does not affect the default style
3207
3208         Test: fast/css/font-face-default-font.html
3209
3210         * dom/Document.cpp:
3211         (WebCore::Document::recalcStyle): Pass our font selector to
3212         Font::update() if we already have one.
3213
3214 2007-12-07  Darin Adler  <darin@apple.com>
3215
3216         - fix Windows build
3217
3218         * bridge/win/GlobalHistoryWin.cpp:
3219         (WebCore::historyContains): Missed a rename.
3220
3221 2007-12-07  Brady Eidson  <beidson@apple.com>
3222
3223         Reviewed by Anders and Darin
3224
3225         When a statement bumps up against the quota and the UI Delegate grants more space, we need to
3226         actually set the new maximum size on the SQLiteDatabase (in addition to storing the new max quota
3227         in the DatabaseTracker, which was already done)
3228
3229         * storage/SQLTransaction.cpp:
3230         (WebCore::SQLTransaction::runStatements): If a statement is being retried, set the maximum size on
3231           the SQLiteDatabase to the new maximum size
3232
3233 2007-12-07  Darin Adler  <darin@apple.com>
3234
3235         - fix Tiger build
3236
3237         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Tiger didn't even have
3238         QTKIT_VERSION_MAX_ALLOWED, so add logic to work without that.
3239
3240 2007-12-07  Darin Adler  <darin@apple.com>
3241
3242         - fix 64-bit build, hopefully without breaking Tiger build
3243
3244         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3245         (WebCore::MediaPlayerPrivate::updateStates):
3246         Don't use Movies.h constants that are nonexistent in 64-bit.
3247         Define the new QTMovie.h constants, though, when using an older QTKit.
3248
3249 2007-12-07  Brady Eidson  <beidson@apple.com>
3250
3251         Reviewed by Anders
3252
3253         Fix <rdar://problem/5636115> - Prompted for quota increase to create database when it already existed
3254
3255         * storage/DatabaseTracker.cpp:
3256         (WebCore::DatabaseTracker::canEstablishDatabase): Check hasEntryForDatabase before doing any prompting
3257         (WebCore::DatabaseTracker::hasEntryForDatabase): Check and see if this database already exists
3258         * storage/DatabaseTracker.h:
3259
3260 2007-12-07  Darin Adler  <darin@apple.com>
3261
3262         Reviewed by Mitz.
3263
3264         - http://bugs.webkit.org/show_bug.cgi?id=15981
3265           speed up visited-link code a bit
3266
3267         * bridge/GlobalHistory.h: Change historyContains to take a character pointer plus length
3268         instead of requiring a DeprecatedString.
3269
3270         * bridge/mac/GlobalHistoryMac.mm: (WebCore::historyContains): Updated for above change.
3271         Also removes pointless "fast Latin-1" case that was never used.
3272         * bridge/win/GlobalHistoryWin.cpp: (WebCore::historyContains): Ditto.
3273         * platform/gtk/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
3274         * platform/wx/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
3275
3276         * css/CSSStyleSelector.cpp:
3277         (WebCore::findHash): Added. Helper for cleanpath.
3278         (WebCore::findSlashDotDotSlash): Ditto.
3279         (WebCore::findSlashSlash): Ditto.
3280         (WebCore::findSlashDotSlash): Ditto.
3281         (WebCore::cleanpath): Changed to use fast helper functions instead of slower general-purpose
3282         DeprecatedString find function.
3283         (WebCore::containsColonSlashSlash): Added. Helper for checkPseudoState.
3284         (WebCore::checkPseudoState): Got rid of reference count churn by using an AtomicString*
3285         instead of an AtomicString for the attribute value. Changed to use fast helper function
3286         instead of slower DeprecatedString::contains function, and also made the fast case not
3287         bother allocating a DeprecatedConstString.
3288
3289         - unrelated tiny cleanup
3290
3291         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
3292         (WebCore::releaseCachedStops): Use static_cast instead of reinterpret_cast.
3293         (WebCore::cgGradientCallback): Ditto.
3294
3295 2007-12-07  Darin Adler  <darin@apple.com>
3296
3297         Fix build on Tiger (Mark Rowe told me how).
3298
3299         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3300         Include <objc/objc-runtime.h>, which existed back on Tiger,
3301         rather than <objc/runtime.h>, which did not.
3302
3303 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
3304
3305         Build fix: rolling out last build fix to change #include path.
3306
3307         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3308
3309 2007-12-07  Steve Falkenburg  <sfalken@apple.com>
3310
3311         Re-named our B&I flag from BUILDBOT to PRODUCTION.
3312
3313         Reviewed by Sam Weinig.
3314
3315         * WebCore.vcproj/WebCore.make:
3316
3317 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
3318
3319         Build fix: corrected #include path.
3320
3321         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3322
3323 2007-12-07  Geoffrey Garen  <ggaren@apple.com>
3324
3325         Reviewed by Sam Weinig.
3326
3327         Added some namespace qualifications and a forwarding header, now that
3328         KJS::Node is sometimes #included in WebCore by JavaScriptCore headers.
3329
3330         * ForwardingHeaders/wtf/ListRefPtr.h: Added.
3331         * bindings/js/JSXSLTProcessor.cpp:
3332         (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
3333         * bindings/js/kjs_binding.cpp:
3334         (KJS::ScriptInterpreter::getDOMNodeForDocument):
3335         (KJS::ScriptInterpreter::forgetDOMNodeForDocument):
3336         (KJS::ScriptInterpreter::putDOMNodeForDocument):
3337         (KJS::ScriptInterpreter::markDOMNodesForDocument):
3338         (KJS::ScriptInterpreter::updateDOMNodeDocument):
3339
3340 2007-12-07  Adam Roben  <aroben@apple.com>
3341
3342         Add SoftLinking.h for Windows and use it in a few places
3343
3344         Reviewed by Oliver.
3345
3346         * WebCore.vcproj/WebCore.vcproj: Added new file to project.
3347         * platform/win/PlatformScrollBarSafari.cpp: Use SoftLinking.h.
3348         (WebCore::PlatformScrollbar::PlatformScrollbar): Removed manual
3349         soft-linking calls.
3350         (WebCore::PlatformScrollbar::paintButton): Check for the presence of
3351         the SafariTheme library now that we can't check for the presence of
3352         paintThemePart directly.
3353         (WebCore::PlatformScrollbar::paintTrack): Ditto.
3354         (WebCore::PlatformScrollbar::paintThumb): Ditto.
3355         * platform/win/SoftLinking.h: Copied from WebCore/platform/mac/SoftLinking.h.
3356         * rendering/RenderThemeSafari.cpp: Same basic changes as to
3357         PlatformScrollBarSafari.cpp.
3358         (WebCore::RenderThemeSafari::RenderThemeSafari):
3359         (WebCore::RenderThemeSafari::isControlStyled):
3360         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
3361         * rendering/RenderThemeSafari.h: Removed m_themeDLL member.
3362
3363 2007-12-07  Darin Adler  <darin@apple.com>
3364
3365         Reviewed by Adele.
3366
3367         - fix <rdar://problem/5608795> CrashTracer: 481 crashes in Safari
3368           at WebCore::HTMLSelectElement::saveState const + 152
3369
3370         Test: fast/forms/select-set-inner.html
3371
3372         * dom/ContainerNode.cpp:
3373         (WebCore::ContainerNode::removeChildren): Added a return value, as with other
3374         calls that change children, so we can optimize for the case where it does nothing.
3375         (WebCore::ContainerNode::cloneChildNodes): Changed parameter type to ContainerNode.
3376         * dom/ContainerNode.h: See above.
3377
3378         * html/HTMLOptGroupElement.cpp:
3379         (WebCore::HTMLOptGroupElement::removeChildren): Override removeChildren and call
3380         recalcSelectOptions in that case.
3381         (WebCore::HTMLOptGroupElement::childrenChanged): Override childrenChanged instead of
3382         addChild, for consistency with HTMLSelectElement; no need to override both.
3383         (WebCore::HTMLOptGroupElement::groupLabelText): Made const.
3384         * html/HTMLOptGroupElement.h: See above.
3385
3386         * html/HTMLSelectElement.cpp: Don't override addChild any more, because we already
3387         override childrenChanged, and addChild calls that.
3388         (WebCore::HTMLSelectElement::removeChildren): Override removeChildren and call
3389         recalcSelectOptions in that case.
3390         (WebCore::HTMLSelectElement::recalcListItems): Tightened up the code a little bit
3391         by using a for loop and traverseNextSibling. Also added some new comments and
3392         removed some obsolete ones.
3393         (WebCore::HTMLSelectElement::checkListItems): Added. Debug-only check to make
3394         sure we don't have a stale list items vector.
3395         * html/HTMLSelectElement.h: Changed listItems() to invoke checkListItems().
3396         This will help us catch cases where we have too few calls to setRecalcListItems.
3397
3398 2007-12-07  Dan Bernstein  <mitz@apple.com>
3399
3400         Reviewed by Darin Adler.
3401
3402         - WebCore part of fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
3403
3404         Test: fast/repaint/focus-ring.html
3405
3406         * editing/SelectionController.cpp:
3407         (WebCore::SelectionController::caretRepaintRect): Changed to return just
3408         the caret rect without any padding.
3409         (WebCore::SelectionController::recomputeCaretRect): Changed to repaint
3410         just the caret rect without any padding.
3411         * platform/graphics/GraphicsContext.h: Removed setFocusRingClip() and
3412         clearFocusRingClip().
3413         * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
3414         * platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
3415         * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed
3416         m_focusRingClip member.
3417         * platform/graphics/mac/GraphicsContextMac.mm:
3418         (WebCore::GraphicsContext::drawFocusRing): Changed to call
3419         wkDrawFocusRing() once without setting up additional clip. On Leopard,
3420         wkDrawFocusRing() respects the context clip now. On Tiger, a
3421         transparency layer is used to apply clipping to the focus ring.
3422         * platform/graphics/qt/GraphicsContextQt.cpp: Removed focus ring clip
3423         methods and member.
3424         * platform/graphics/wx/GraphicsContextWx.cpp: Ditto.
3425         * platform/mac/WebCoreSystemInterface.h: Removed the clipRect argument
3426         to wkDrawFocusRing().
3427         * platform/mac/WebCoreSystemInterface.mm: Ditto.
3428         * rendering/RenderLayer.cpp:
3429         (WebCore::setClip): Removed call to set the focus ring clip.
3430         (WebCore::restoreClip): Removed call to reset the focus ring clip.
3431
3432 2007-12-07  Darin Adler  <darin@apple.com>
3433
3434         Reviewed by Antti Koivisto and Kevin Decker.
3435
3436         - fix <rdar://problem/5601586> QtKit should be dynamically loaded upon need, not linked at startup
3437
3438         Also did a lot of small tweaks to MediaPlayerPrivateQTKit.
3439
3440         * WebCore.xcodeproj/project.pbxproj: Don't link to QTKit.
3441
3442         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Omit unneeded includes and declarations.
3443         Made a lot more functions const. Made a few more members private and a couple inline.
3444         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Added soft linking machinery for all the
3445         things we currently use in QTKit. It's a little more awkward for classes and other data objects
3446         than it is for functions, but still relatively straightforward, with no changes needed to the
3447         client code. Added using namespace directives. Made a cuePointTimerInterval constant and put
3448         it at the top of the file. Use 0 consistently instead of sometimes 0 and sometimes 0.0f.
3449         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Removed unneeded initialization of RetainPtr
3450         members to nil.
3451         (WebCore::MediaPlayerPrivate::createQTMovie): Use adoptNS instead of autorelease.
3452         (WebCore::MediaPlayerPrivate::createQTMovieView): Ditto. Also use -[NSColor clearColor].
3453         (WebCore::MediaPlayerPrivate::createQTTime): Remove an unneeded type cast that had no effect.
3454         Changed to use long instead of int because that's the type for a QTTime time scale anyway.
3455         (WebCore::MediaPlayerPrivate::duration): Use a static_cast instead of a C-style cast.
3456         (WebCore::MediaPlayerPrivate::currentTime): Ditto. Also merged into a single expression.
3457         (WebCore::MediaPlayerPrivate::cuePointTimerFired): Added code to make a copy of the cue
3458         points set to avoid a potential problem with a set being modified as we iterate it.
3459         (WebCore::MediaPlayerPrivate::bytesLoaded): Removed unneeded null check of m_qtMovie.
3460         (WebCore::MediaPlayerPrivate::updateStates): Instead of comments explaining the numeric
3461         values, used the constants from the headers directly.
3462         (WebCore::MediaPlayerPrivate::getSupportedTypes): Instead of (QTMovieFileTypeOptions)0,
3463         pass the named constant with value 0, QTIncludeCommonTypes. Skipped the intermediate type
3464         of NSString to remove one cast. Replaced C-style cast with reinterpret_cast (arguably
3465         no better). Used RetainPtr instead of explicit CFRelease calls.
3466
3467         * platform/mac/SoftLinking.h: Added macros to do soft linking for classes and for pointers.
3468         It's not quite as automatic as the soft linking we can do for functions, since these define
3469         functions to get the values, so you need to define macros to make what look like variable
3470         accesses turn into function calls. See MediaPlayerPrivateQTKit for the details.
3471
3472         * html/HTMLMediaElement.h:
3473         * html/TimeRanges.h:
3474         * html/VoidCallback.h:
3475         * platform/graphics/MediaPlayer.h:
3476         Use angle brackets for wtf includes. Omit unneeded includes.
3477
3478 2007-12-07  Dan Bernstein  <mitz@apple.com>
3479
3480         Reviewed by Darin Adler.
3481
3482         - fix http://bugs.webkit.org/show_bug.cgi?id=16334
3483           <rdar://problem/5634923> REGRESSION (r28299): Homepage of any DotMac Web Gallery won't load completely
3484
3485         Test: fast/dynamic/subtree-no-common-root-static-y.html
3486
3487         * rendering/RenderObject.cpp:
3488         (WebCore::RenderObject::markContainingBlocksForLayout): Changed the call
3489         to setChildNeedsLayout() to not mark containing blocks and added a
3490         separate call to markContainingBlocksForLayout() that will not schedule
3491         a layout if we are already in the middle of scheduleRelayoutOfSubtree().
3492
3493 2007-12-07  Alexey Proskuryakov  <ap@webkit.org>
3494
3495         Reviewed by Darin.
3496
3497         http://bugs.webkit.org/show_bug.cgi?id=16325
3498         <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
3499         
3500         Test: http/tests/misc/empty-cookie.html
3501
3502         * platform/mac/CookieJar.mm:
3503         (WebCore::setCookies): Don't store empty cookies.
3504         (WebCore::cookies): Filter out empty cookies if we have them, as they could have been set
3505         with an earlier version of Leopard!
3506
3507 2007-12-06  Ada Chan  <adachan@apple.com>
3508
3509         Fixed the if statement (ERROR_SUCCESS is 0 and we were actually
3510         returning true when there's an error).
3511
3512         Reviewed by Steve.
3513
3514         * platform/win/FileSystemWin.cpp:
3515         (WebCore::makeAllDirectories):
3516
3517 2007-12-06  Darin Adler  <darin@apple.com>
3518
3519         - fix broken regression test
3520
3521         * bindings/js/kjs_binding.cpp:
3522         (KJS::setDOMException): Oops, this was just supposed to be PERMISSION_DENIED.
3523
3524 2007-12-06  Darin Adler  <darin@apple.com>
3525
3526         Reviewed by Sam Weinig.
3527
3528         - fix http://bugs.webkit.org/show_bug.cgi?id=16332
3529           ObjC DOM exception object descriptions should include the exception name
3530
3531         * WebCore.pro: Added ExceptionCode.cpp.
3532         * WebCore.vcproj/WebCore.vcproj: Added ExceptionCode.cpp.
3533         * WebCore.xcodeproj/project.pbxproj: Added ExceptionCode.cpp.
3534         * WebCoreSources.bkl: Added ExceptionCode.cpp.
3535
3536         * bindings/js/kjs_binding.cpp: (KJS::setDOMException): Moved the code to decompose an
3537         ExceptionCode into ExceptionCode.h/cpp -- getExceptionCodeDescription. Also removed
3538         the many unneeded includes that were here. Had to keep one special case here, for
3539         SECURITY_ERR.
3540
3541         * bindings/objc/ExceptionHandlers.mm: (WebCore::raiseDOMException): Changed to use the
3542         new getExceptionCodeDescription function so that this shares the exception name
3543         information that was previously only available to JavaScript.
3544
3545         * dom/ExceptionCode.cpp: Copied from bindings/js/kjs_binding.cpp.
3546         (WebCore::getExceptionCodeDescription): Added some assertions, and made the function
3547         handle exception names in a slightly more robust way that is not subject to integer
3548         overflow. (Not a real world issue since we should never receive a bad exception code.)
3549
3550         * dom/ExceptionCode.h: Added the ExceptionCodeDescription struct and the
3551         getExceptionCodeDescription function.
3552
3553         * svg/SVGException.h: Added a missing #include and got rid of some comments. Some of
3554         the comments were mildly helpful, but others were incorrect. This now matches the other
3555         exception-related headers such as RangeException.h.