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