5d38afd58223b3dfcec10e7084684e63185bac95
[WebKit-https.git] / WebCore / ChangeLog
1 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
2
3         Reviewed by Darin.
4
5         <rdar://problem/5841351> Turkish ISO 8859-9 encoding should be treated as windows-1254
6
7         Match IE and upgrade ISO-8859-9 to windows-1254, which is its strict superset.
8
9         Test: fast/encoding/char-decoding.html
10
11         * platform/text/TextCodecICU.cpp:
12         (WebCore::TextCodecICU::registerExtendedEncodingNames): Register the standard name
13         unconditionally. Previously, we registered windows-949-2000 as a special case that lacked 
14         an IANA standard name, and got away with not registering GBK because it happened
15         to be reported by ICU normally earlier than any encoding upgraded to it.
16
17 2008-05-13  Tor Arne Vestbø  <tavestbo@trolltech.com>
18
19         Reviewed by Simon
20
21         Fix QtWebKit build on Qt embedded.
22
23         * WebCore.pro:
24         * platform/FileSystem.h:
25         * platform/qt/FileSystemQt.cpp:
26
27 2008-05-13  Ariya Hidayat  <ariya.hidayat@trolltech.com>
28
29         Reviewed by Simon.
30
31         For Gtk/X11 and Qt/X11, use a more extensive plug-ins scan directories set
32
33         * plugins/PluginDatabase.cpp:
34         (WebCore::addMozillaPluginDirectories):
35         (WebCore::PluginDatabase::isPreferredPluginDirectory):
36
37 2008-05-12  Adam Roben  <aroben@apple.com>
38
39         Turn on warnings as errors in WebCore.vcproj
40
41         Rubberstamped by Anders Carlsson.
42
43         * WebCore.vcproj/WebCore.vcproj: Also let VS reformat the file as it
44         saw fit. The important part is the removal of the WarnAsError="false"
45         lines.
46
47 2008-05-12  Adam Roben  <aroben@apple.com>
48
49         Fix a MSVC warning in PluginViewWin
50
51         Reviewed by Anders Carlsson.
52
53         Test: http/tests/plugins/post-url-file.html
54
55         * plugins/win/PluginViewWin.cpp:
56         (WebCore::PluginView::handlePostReadFile): Added a missing return
57         statement.
58
59 2008-05-12  Adam Roben  <aroben@apple.com>
60
61         Fix a MSVC warning in GetEOTHeader
62
63         Reviewed by Dan Bernstein.
64
65         * platform/graphics/win/GetEOTHeader.cpp:
66         (WebCore::getEOTHeader): MSVC complains that having a 0-sized array in
67         a struct is a non-standard extension. I've replaced the 0-sized arrays
68         with arrays of 1 element, and replaced sizeof(structType) with
69         offsetof(structType, arrayMember).
70
71 2008-05-09  Adam Roben  <aroben@apple.com>
72
73         Fix a MSVC warning in TextCodecICU
74
75         Reviewed by John Sullivan and Dan Bernstein.
76
77         * platform/text/TextCodecICU.cpp:
78         (WebCore::ErrorCallbackSetter::~ErrorCallbackSetter):
79         UCNV_SUB_STOP_ON_ILLEGAL is a string literal, so using == with it
80         doesn't really do what we want. Use strcmp instead. It's OK to pass an
81         unknown value to strcmp here since 1) UCNV_SUB_STOP_ON_ILLEGAL is only
82         a single character long so we're not going to ready more than 2 bytes
83         from oldContext, and 2) we're inside an ASSERT which will cause a
84         crash anyway if it fails.
85
86 2008-05-09  Adam Roben  <aroben@apple.com>
87
88         Fix a MSVC warning in CSSComputedStyleDeclaration
89
90         Reviewed by Geoff Garen.
91
92         * css/CSSComputedStyleDeclaration.cpp:
93         (WebCore::valueForRepeatRule): Removed some unreachable code.
94
95 2008-05-09  Adam Roben  <aroben@apple.com>
96
97         Fix a MSVC warning in InlineTextBox
98
99         Reviewed by Dan Bernstein.
100
101         * rendering/InlineTextBox.cpp:
102         (WebCore::InlineTextBox::paint): Initialize some variables that MSVC
103         isn't smart enough to figure out will always be initialized in the
104         cases where they are used.
105
106 2008-05-09  Adam Roben  <aroben@apple.com>
107
108         Fix a MSVC warning in Position
109
110         Reviewed by Darin Adler.
111
112         * dom/Position.cpp:
113         (WebCore::Position::getInlineBoxAndOffset): Use parentheses to make
114         the precedence of our expressions explicit.
115
116 2008-05-09  Adam Roben  <aroben@apple.com>
117
118         Fix a MSVC warning in String
119
120         Reviewed by Geoff Garen.
121
122         * platform/text/String.cpp:
123         (WebCore::toIntegralType): Disable a bogus warning about using unary -
124         on an unsigned value. MSVC isn't smart enough to figure out that
125         isNegative will always be false when value is unsigned.
126
127 2008-05-09  Adam Roben  <aroben@apple.com>
128
129         Fix a MSVC warning in XMLHttpRequest
130
131         Reviewed by Geoff Garen.
132
133         * xml/XMLHttpRequest.cpp:
134         (WebCore::XMLHttpRequest::XMLHttpRequest): Added static_cast<unsigned
135         long>.
136
137 2008-05-12  Anders Carlsson  <andersca@apple.com>
138
139         Reviewed by Adam.
140
141         Handle the case when a resource with the same URL as the manifest is listed in the manifest.
142
143         * loader/appcache/ApplicationCacheGroup.cpp:
144         (WebCore::ApplicationCacheGroup::addEntry):
145
146 2008-05-12  Sam Weinig  <sam@webkit.org>
147
148         Reviewed by Dan Bernstein.
149
150         Add parsing of AccessControlHeader and AccessItemRule.
151
152         * xml/AccessControlList.cpp:
153         (WebCore::AccessControlList::parseAccessControlHeader): When multiple http headers are sent
154         in the response, the engine will concatenate them with commas separating the rules.  This simply
155         reverses that process by splitting on the commas.
156         (WebCore::AccessControlList::show):
157         * xml/AccessControlList.h:
158         * xml/AccessItem.cpp:
159         (WebCore::AccessItem::AccessItem):
160         (WebCore::AccessItem::show):
161         * xml/AccessItem.h:
162         (WebCore::AccessItem::isValid):
163         * xml/AccessItemRule.cpp:
164         (WebCore::skipLWS):
165         (WebCore::AccessItemRule::parseAccessItemRule): Parse the rule according to the BNF provided by
166         the Access Control spec.
167         (WebCore::AccessItemRule::parsePatternList):
168         (WebCore::AccessItemRule::invalidate):
169         (WebCore::AccessItemRule::show):
170         * xml/AccessItemRule.h:
171
172 2008-05-12  David Kilzer  <ddkilzer@apple.com>
173
174         Fix logic error in DocLoader::clearPreloads()
175
176         Reviewed by Antti.
177
178         * loader/DocLoader.cpp:
179         (WebCore::DocLoader::clearPreloads): Be sure to decrease the preload count for
180         the cached resource before trying to remove it from the cache.  A non-zero
181         preload count can prevent the resource from being removed from the cache.
182
183 2008-05-12  Anders Carlsson  <andersca@apple.com>
184
185         Reviewed by Adam.
186
187         Handle empty manifest files without crashing.
188         
189         * loader/appcache/ApplicationCacheGroup.cpp:
190         (WebCore::ApplicationCacheGroup::startLoadingEntry):
191
192 2008-05-12  Alp Toker  <alp@nuanti.com>
193
194         GTK+ build fix for breakage in r33056. Include limits.h for INT_MAX.
195
196         * platform/graphics/FontCache.h:
197
198 2008-05-12  Anders Carlsson  <andersca@apple.com>
199
200         Reviewed by Adam.
201
202         Add user agent to requests when loading/updating the cache.
203     
204         * loader/FrameLoader.h:
205         * loader/appcache/ApplicationCacheGroup.cpp:
206         (WebCore::ApplicationCacheGroup::update):
207         (WebCore::ApplicationCacheGroup::startLoadingEntry):
208
209 2008-05-12  Anders Carlsson  <andersca@apple.com>
210
211         Reviewed by Adam.
212
213         Make it possible to perform synchronous loads from the application cache.
214         
215         * loader/DocumentLoader.cpp:
216         (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
217         Factor out code from scheduleApplicationCacheLoad in its own method.
218         
219         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
220         Call shouldLoadResourceFromApplicationCache here instead.
221         
222         * loader/DocumentLoader.h:
223         
224         * loader/FrameLoader.cpp:
225         (WebCore::FrameLoader::loadResourceSynchronously):
226         Call shouldLoadResourceFromApplicationCache.
227
228 2008-05-12  Dan Bernstein  <mitz@apple.com>
229
230         Reviewed by Ada Chan and Sam Weinig.
231
232         - WebCore changes for https://bugs.webkit.org/show_bug.cgi?id=17097
233           <rdar://problem/5715471> CGFontRefs (and HFONTs on Windows) leak because FontCache grows without bound
234
235         Added a way for clients to let the cache know that they no longer need
236         font data, which lets the cache release it. Changed clients to track
237         most of the font data they get from the cache so that they can later
238         release it. Some instances of font data -- namely, those used for system
239         font fallback -- are still not tracked and will therefore remain in the
240         cache indefinitely.
241
242         * WebCore.base.exp: Added exports for WebCoreStatistics in WebKit.
243
244         * platform/graphics/Font.cpp:
245         (WebCore::Font::Font): Changed to use FontFallbackList::create().
246         (WebCore::Font::update): Ditto.
247
248         * platform/graphics/FontCache.cpp:
249         (WebCore::FontCache::getCachedFontData): Added code to track the number
250         of times a SimpleFontData instance has been requested from the cache,
251         remove requested instances from the inactive list, and purge inactive
252         font data if the inactive list has grown above its maximum allowed size.
253         (WebCore::FontCache::releaseFontData): Added. Called by clients to let
254         the cache know that they no longer need the font data. Adds the font
255         data to the inactive list if the last client has released it.
256         (WebCore::FontCache::purgeInactiveFontData): Added. Removes inactive
257         font data from the cache (and the inactive list).
258         (WebCore::FontCache::fontDataCount): Added to provide statistics.
259         (WebCore::FontCache::inactiveFontDataCount): Ditto.
260
261         * platform/graphics/FontCache.h:
262
263         * platform/graphics/FontData.h:
264         (WebCore::FontData::FontData): Added a member variable to store the
265         highest glyph page tree level in which there is a node for this FontData.
266         This is used to limit the depth of the search when pruning glyph page
267         trees.
268         (WebCore::FontData::setMaxGlyphPageTreeLevel): Added this accessor.
269         (WebCore::FontData::maxGlyphPageTreeLevel): Ditto.
270
271         * platform/graphics/FontFallbackList.cpp:
272         (WebCore::FontFallbackList::FontFallbackList): Changed to start with a
273         refcount of 1.
274         (WebCore::FontFallbackList::invalidate): Added a call to
275         releaseFontData().
276         (WebCore::FontFallbackList::releaseFontData): Added. Lets the font cache
277         know that we no longer need the FontData in our font list.
278         (WebCore::FontFallbackList::fontDataAt): Changed to record in the font
279         list whether the font data is a custom font data or not.
280         (WebCore::FontFallbackList::setPlatformFont): Ditto.
281
282         * platform/graphics/FontFallbackList.h:
283         (WebCore::FontFallbackList::create): Added and made the constructor
284         private.
285         (WebCore::FontFallbackList::~FontFallbackList): Added a call to
286         releaseFontData().
287
288         * platform/graphics/GlyphPageTreeNode.cpp:
289         (WebCore::GlyphPageTreeNode::treeGlyphPageCount): Added to provide
290         statistics.
291         (WebCore::GlyphPageTreeNode::pageCount): Ditto.
292
293         (WebCore::GlyphPageTreeNode::pruneTreeFontData): Added.
294         (WebCore::GlyphPageTreeNode::getChild): Added code to update the font
295         data's maximum glyph page tree level.
296         (WebCore::GlyphPageTreeNode::pruneFontData): Added.
297
298         * platform/graphics/GlyphPageTreeNode.h:
299
300         * platform/graphics/SimpleFontData.cpp:
301         (WebCore::SimpleFontData::~SimpleFontData): Added code to let the font
302         cache know that we no longer need the small caps font data and to prune
303         the glyph page trees.
304
305 2008-05-12  Anders Carlsson  <andersca@apple.com>
306
307         Reviewed by Alexey.
308
309         Add ApplicationCacheStorage::empty() method which will empty
310         the application cache database.
311         
312         * WebCore.base.exp:
313         * loader/appcache/ApplicationCache.cpp:
314         (WebCore::ApplicationCache::clearStorageID):
315         * loader/appcache/ApplicationCache.h:
316         * loader/appcache/ApplicationCacheGroup.cpp:
317         (WebCore::ApplicationCacheGroup::clearStorageID):
318         * loader/appcache/ApplicationCacheGroup.h:
319         * loader/appcache/ApplicationCacheResource.h:
320         (WebCore::ApplicationCacheResource::clearStorageID):
321         * loader/appcache/ApplicationCacheStorage.cpp:
322         (WebCore::ApplicationCacheStorage::empty):
323         * loader/appcache/ApplicationCacheStorage.h:
324
325 2008-05-12  Anders Carlsson  <andersca@apple.com>
326
327         Reviewed by John.
328
329         Don't throw an exception if the string passed in is an invalid URL.
330         
331         * loader/appcache/DOMApplicationCache.cpp:
332         (WebCore::DOMApplicationCache::remove):
333
334 2008-05-12  Anders Carlsson  <andersca@apple.com>
335
336         Reviewed by Mitz.
337
338         Add the variable enums for getting the input vtables.
339         
340         * bridge/npapi.h:
341
342 2008-05-12  Adam Roben  <aroben@apple.com>
343
344         Windows build fix
345
346         * WebCorePrefix.cpp: Touched this so that it will rebuild now that
347         ENABLE_CROSS_DOCUMENT_MESSAGING has been removed.
348
349 2008-05-12  Alexey Proskuryakov  <ap@webkit.org>
350
351         Roll out recent  threading changes (r32807, r32810, r32819, r32822) to simplify
352         SquirrelFish merging.
353
354         * bindings/js/GCController.cpp:
355         (WebCore::collect):
356         (WebCore::GCController::gcTimerFired):
357         (WebCore::GCController::garbageCollectNow):
358         * bindings/js/JSAudioConstructor.cpp:
359         (WebCore::JSAudioConstructor::JSAudioConstructor):
360         * bindings/js/JSCSSRuleCustom.cpp:
361         (WebCore::toJS):
362         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
363         (WebCore::JSCSSStyleDeclaration::nameGetter):
364         * bindings/js/JSCSSValueCustom.cpp:
365         (WebCore::toJS):
366         * bindings/js/JSCanvasPixelArrayCustom.cpp:
367         (WebCore::JSCanvasPixelArray::indexGetter):
368         (WebCore::toJS):
369         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
370         (WebCore::toJS):
371         * bindings/js/JSClipboardCustom.cpp:
372         (WebCore::JSClipboard::types):
373         (WebCore::JSClipboard::getData):
374         * bindings/js/JSCustomXPathNSResolver.cpp:
375         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
376         * bindings/js/JSDOMApplicationCacheCustom.cpp:
377         (WebCore::JSDOMApplicationCache::addEventListener):
378         (WebCore::JSDOMApplicationCache::removeEventListener):
379         (WebCore::JSDOMApplicationCache::setOnchecking):
380         (WebCore::JSDOMApplicationCache::setOnerror):
381         (WebCore::JSDOMApplicationCache::setOnnoupdate):
382         (WebCore::JSDOMApplicationCache::setOndownloading):
383         (WebCore::JSDOMApplicationCache::setOnprogress):
384         (WebCore::JSDOMApplicationCache::setOnupdateready):
385         (WebCore::JSDOMApplicationCache::setOncached):
386         * bindings/js/JSDOMWindowBase.cpp:
387         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
388         (WebCore::JSDOMWindowBase::getValueProperty):
389         (WebCore::JSDOMWindowBase::setListener):
390         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
391         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
392         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
393         (WebCore::windowProtoFuncAToB):
394         (WebCore::windowProtoFuncBToA):
395         (WebCore::windowProtoFuncSetTimeout):
396         (WebCore::windowProtoFuncSetInterval):
397         (WebCore::windowProtoFuncAddEventListener):
398         * bindings/js/JSDOMWindowBase.h:
399         * bindings/js/JSDOMWindowShell.cpp:
400         * bindings/js/JSDOMWindowShell.h:
401         * bindings/js/JSDocumentCustom.cpp:
402         (WebCore::toJS):
403         * bindings/js/JSEventCustom.cpp:
404         (WebCore::toJS):
405         * bindings/js/JSEventTargetBase.cpp:
406         (WebCore::jsEventTargetAddEventListener):
407         * bindings/js/JSEventTargetBase.h:
408         (WebCore::JSEventTargetPrototype::self):
409         * bindings/js/JSEventTargetNode.cpp:
410         (WebCore::JSEventTargetNode::setListener):
411         * bindings/js/JSHTMLCollectionCustom.cpp:
412         (WebCore::getNamedItems):
413         (WebCore::toJS):
414         * bindings/js/JSHTMLElementWrapperFactory.cpp:
415         (WebCore::createJSHTMLWrapper):
416         * bindings/js/JSHTMLFormElementCustom.cpp:
417         (WebCore::JSHTMLFormElement::nameGetter):
418         * bindings/js/JSHTMLInputElementBase.cpp:
419         (WebCore::JSHTMLInputElementBase::getValueProperty):
420         * bindings/js/JSHTMLOptionElementConstructor.cpp:
421         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
422         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
423         (WebCore::JSHTMLOptionsCollection::length):
424         * bindings/js/JSInspectedObjectWrapper.cpp:
425         (WebCore::JSInspectedObjectWrapper::wrap):
426         * bindings/js/JSInspectorCallbackWrapper.cpp:
427         (WebCore::JSInspectorCallbackWrapper::wrap):
428         * bindings/js/JSLocationCustom.cpp:
429         (WebCore::JSLocation::toString):
430         * bindings/js/JSNamedNodesCollection.cpp:
431         (WebCore::JSNamedNodesCollection::lengthGetter):
432         * bindings/js/JSNavigatorCustom.cpp:
433         (WebCore::JSNavigator::appVersion):
434         * bindings/js/JSNodeCustom.cpp:
435         (WebCore::toJS):
436         * bindings/js/JSNodeFilterCustom.cpp:
437         (WebCore::JSNodeFilter::acceptNode):
438         * bindings/js/JSRGBColor.cpp:
439         (WebCore::getJSRGBColor):
440         * bindings/js/JSSQLResultSetRowListCustom.cpp:
441         (WebCore::JSSQLResultSetRowList::item):
442         * bindings/js/JSSVGElementWrapperFactory.cpp:
443         (WebCore::createJSSVGWrapper):
444         * bindings/js/JSSVGLazyEventListener.cpp:
445         (WebCore::JSSVGLazyEventListener::eventParameterName):
446         * bindings/js/JSStorageCustom.cpp:
447         (WebCore::JSStorage::nameGetter):
448         * bindings/js/JSStyleSheetCustom.cpp:
449         (WebCore::toJS):
450         * bindings/js/JSXMLHttpRequestConstructor.cpp:
451         (WebCore::JSXMLHttpRequestConstructor::construct):
452         * bindings/js/JSXMLHttpRequestCustom.cpp:
453         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
454         (WebCore::JSXMLHttpRequest::setOnload):
455         (WebCore::JSXMLHttpRequest::setOnprogress):
456         (WebCore::JSXMLHttpRequest::getResponseHeader):
457         (WebCore::JSXMLHttpRequest::addEventListener):
458         (WebCore::JSXMLHttpRequest::removeEventListener):
459         * bindings/js/JSXSLTProcessorConstructor.cpp:
460         (WebCore::JSXSLTProcessorConstructor::construct):
461         * bindings/js/JSXSLTProcessorCustom.cpp:
462         (WebCore::JSXSLTProcessor::getParameter):
463         * bindings/js/kjs_binding.cpp:
464         (WebCore::jsStringOrNull):
465         (WebCore::jsOwnedStringOrNull):
466         (WebCore::jsStringOrUndefined):
467         (WebCore::jsStringOrFalse):
468         (WebCore::nonCachingStaticFunctionGetter):
469         (WebCore::objectToStringFunctionGetter):
470         * bindings/js/kjs_binding.h:
471         (WebCore::DOMObject::DOMObject):
472         (WebCore::cacheDOMObject):
473         (WebCore::cacheSVGDOMObject):
474         * bindings/js/kjs_events.cpp:
475         (WebCore::JSLazyEventListener::eventParameterName):
476         (WebCore::JSLazyEventListener::parseCode):
477         * bindings/js/kjs_html.cpp:
478         (WebCore::getRuntimeObject):
479         * bindings/scripts/CodeGeneratorJS.pm:
480         * bridge/c/c_instance.cpp:
481         (KJS::Bindings::CInstance::defaultValue):
482         (KJS::Bindings::CInstance::stringValue):
483         (KJS::Bindings::CInstance::numberValue):
484         (KJS::Bindings::CInstance::valueOf):
485         * bridge/c/c_instance.h:
486         * bridge/c/c_utility.cpp:
487         (KJS::Bindings::convertNPVariantToValue):
488         * bridge/jni/jni_instance.cpp:
489         (JavaInstance::stringValue):
490         (JavaInstance::numberValue):
491         (JavaInstance::invokeMethod):
492         (JavaInstance::defaultValue):
493         (JavaInstance::valueOf):
494         * bridge/jni/jni_instance.h:
495         * bridge/jni/jni_jsobject.h:
496         * bridge/jni/jni_jsobject.mm:
497         (JavaJSObject::call):
498         (JavaJSObject::setMember):
499         (JavaJSObject::setSlot):
500         (JavaJSObject::convertJObjectToValue):
501         (JavaJSObject::getListFromJArray):
502         * bridge/jni/jni_objc.mm:
503         (KJS::Bindings::dispatchJNICall):
504         * bridge/jni/jni_runtime.cpp:
505         (JavaArray::convertJObjectToArray):
506         (JavaField::dispatchValueFromInstance):
507         (JavaField::valueFromInstance):
508         (JavaField::dispatchSetValueToInstance):
509         (JavaArray::valueAt):
510         * bridge/jni/jni_utility.h:
511         * bridge/objc/objc_class.mm:
512         (KJS::Bindings::ObjcClass::fallbackObject):
513         * bridge/objc/objc_instance.h:
514         * bridge/objc/objc_instance.mm:
515         (ObjcInstance::defaultValue):
516         (ObjcInstance::stringValue):
517         (ObjcInstance::numberValue):
518         (ObjcInstance::valueOf):
519         * bridge/objc/objc_utility.h:
520         * bridge/objc/objc_utility.mm:
521         (KJS::Bindings::convertNSStringToString):
522         (KJS::Bindings::convertObjcValueToValue):
523         * bridge/qt/qt_class.cpp:
524         (KJS::Bindings::QtClass::fallbackObject):
525         * bridge/qt/qt_instance.cpp:
526         (KJS::Bindings::QtRuntimeObjectImp::construct):
527         (KJS::Bindings::QtInstance::getRuntimeObject):
528         (KJS::Bindings::QtInstance::invokeDefaultMethod):
529         (KJS::Bindings::QtInstance::defaultValue):
530         (KJS::Bindings::QtInstance::stringValue):
531         (KJS::Bindings::QtInstance::numberValue):
532         (KJS::Bindings::QtInstance::valueOf):
533         * bridge/qt/qt_instance.h:
534         * bridge/qt/qt_runtime.cpp:
535         (KJS::Bindings::convertValueToQVariant):
536         (KJS::Bindings::convertQVariantToValue):
537         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
538         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
539         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
540         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
541         (KJS::Bindings::QtConnectionObject::execute):
542         * bridge/runtime.cpp:
543         (KJS::Bindings::Instance::createRuntimeObject):
544         * bridge/runtime.h:
545         (KJS::Bindings::Instance::valueOf):
546         * bridge/runtime_array.cpp:
547         (RuntimeArray::lengthGetter):
548         * bridge/runtime_method.cpp:
549         (RuntimeMethod::lengthGetter):
550         * bridge/runtime_object.cpp:
551         (RuntimeObjectImp::RuntimeObjectImp):
552         (RuntimeObjectImp::methodGetter):
553         (RuntimeObjectImp::defaultValue):
554         * xml/XMLHttpRequest.cpp:
555         (WebCore::XMLHttpRequest::dropProtection):
556
557 2008-05-11  Robin Dunn  <robin@alldunn.com>
558
559         Reviewed by Kevin Ollivier.
560
561         Since wx popup menus dismiss themselves when an item is selected we need to
562         call hidePopup so webkit's internal state is correct.
563         
564         https://bugs.webkit.org/show_bug.cgi?id=19000
565
566         * platform/wx/PopupMenuWx.cpp:
567         (WebCore::PopupMenu::OnMenuItemSelected):
568         (WebCore::PopupMenu::hide):
569
570 2008-05-11  Sam Weinig  <sam@webkit.org>
571
572         Reviewed by Mark Rowe.
573
574         Move some generic parsing functions into a new ParserUtilities header so that
575         they can be used for non-SVG builds too.
576
577         * WebCore.vcproj/WebCore.vcproj:
578         * WebCore.xcodeproj/project.pbxproj:
579         * platform/text/ParserUtilities.h: Added.
580         (WebCore::skipString):
581         * svg/SVGParserUtilities.h:
582         (WebCore::isWhitespace):
583         (WebCore::skipOptionalSpaces):
584         (WebCore::skipOptionalSpacesOrDelimiter):
585
586 2008-05-11  Sam Weinig  <sam@webkit.org>
587
588         Reviewed by Dan Bernstein.
589
590         Add scaffolding for the implementation of Access Control for Cross-site Requests. 
591
592         * GNUmakefile.am:
593         * WebCore.pro:
594         * WebCore.vcproj/WebCore.vcproj:
595         * WebCore.xcodeproj/project.pbxproj:
596         * WebCoreSources.bkl:
597         * xml/AccessControlList.cpp: Added.
598         (WebCore::AccessControlList::AccessControlList):
599         (WebCore::AccessControlList::~AccessControlList):
600         (WebCore::AccessControlList::parseAccessControlHeader):
601         (WebCore::AccessControlList::checkOrigin):
602         * xml/AccessControlList.h: Added.
603         * xml/AccessItem.cpp: Added.
604         (WebCore::AccessItem::AccessItem):
605         (WebCore::AccessItem::parseAccessItem):
606         (WebCore::AccessItem::matches):
607         * xml/AccessItem.h: Added.
608         * xml/AccessItemRule.cpp: Added.
609         (WebCore::AccessItemRule::AccessItemRule):
610         (WebCore::AccessItemRule::parseAccessItemRule):
611         * xml/AccessItemRule.h: Added.
612
613 2008-05-11  Julien Chaffraix  <jchaffraix@webkit.org>
614
615         Debug build fix.
616
617         * loader/appcache/ApplicationCache.cpp: Include stdio.h
618         as we are using printf in ApplicationCache::dump().
619
620 2008-05-10  Dan Bernstein  <mitz@apple.com>
621
622         Reviewed by Jessica Kahn.
623
624         - add a copy assignment operator to FontPlatformData on Mac to properly
625           retain the m_font data member.
626
627         * platform/graphics/mac/FontPlatformData.h:
628         * platform/graphics/mac/FontPlatformDataMac.mm:
629         (WebCore::FontPlatformData::FontPlatformData):
630         (WebCore::~FontPlatformData):
631         (WebCore::FontPlatformData::operator=):
632         (WebCore::FontPlatformData::setFont):
633
634 2008-05-10  Adele Peterson  <adele@apple.com>
635
636         Reviewed by Tim Hatcher.
637
638         Fix crash for WebKit clients that don't set a group name for the WebView/Page.
639
640         * page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): Instead of adding the Page directly to the group,
641           call the addPage method, since it does extra work initializing m_localStorage.
642
643 2008-05-09  Sam Weinig  <sam@webkit.org>
644
645         Reviewed by Mark Rowe.
646
647         Fix for https://bugs.webkit.org/show_bug.cgi?id=18958
648         NULL pointer dereference in NamedAttrMap::setNamedItem
649
650         Test: fast/dom/NamedNodeMap-setNamedItem-crash.html
651
652         * dom/NamedAttrMap.cpp:
653         (WebCore::NamedAttrMap::setNamedItem): Null check the argument.
654
655 2008-05-09  Kevin McCullough  <kmccullough@apple.com>
656
657         Build fix.
658
659         * page/Console.cpp:
660         (WebCore::Console::profile):
661
662 2008-05-09  Sam Weinig  <sam@webkit.org>
663
664         Rubber-stamped by Mark Rowe.
665
666         Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.
667
668         * Configurations/WebCore.xcconfig:
669         * WebCore.vcproj/WebCore.vcproj:
670         * WebCore.vcproj/build-generated-files.sh:
671         * bindings/js/JSDOMWindowCustom.cpp:
672         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
673         (WebCore::JSDOMWindow::postMessage):
674         * bindings/js/JSEventCustom.cpp:
675         (WebCore::toJS):
676         * bindings/objc/DOMEvents.mm:
677         (+[DOMEvent _wrapEvent:WebCore::]):
678         * dom/Document.cpp:
679         (WebCore::Document::createEvent):
680         * dom/Event.cpp:
681         (WebCore::Event::isMessageEvent):
682         * dom/Event.h:
683         * dom/MessageEvent.cpp:
684         * dom/MessageEvent.h:
685         * dom/MessageEvent.idl:
686         * page/DOMWindow.cpp:
687         (WebCore::DOMWindow::postMessageTimerFired):
688         * page/DOMWindow.h:
689         * page/DOMWindow.idl:
690
691 2008-05-09  Adam Barth  <abarth-webkit@adambarth.com>
692
693         Reviewed by Sam Weinig.
694
695         https://bugs.webkit.org/show_bug.cgi?id=18771
696
697         Make postMessage generate an event on the window instead of the
698         document.
699
700         Test: http/tests/messaging/cross-domain-message-event-dispatch.html
701
702         * dom/EventTargetNode.cpp:
703         (WebCore::EventTargetNode::dispatchWindowEvent):
704         * dom/EventTargetNode.h:
705         * page/DOMWindow.cpp:
706         (WebCore::DOMWindow::postMessageTimerFired):
707
708 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
709
710         Reviewed by Simon.
711
712         Replaced all instances of qDebug() with LOG(Media, ...)
713         in MediaPlayerPrivatePhonon.
714
715         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
716         (WebCore::MediaPlayerPrivate::updateStates):
717
718 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
719
720         Reviewed by Simon
721
722         Fix the Qt/Mac build.
723
724         * platform/qt/FileSystemQt.cpp:
725
726 2008-05-08  Sam Weinig  <sam@webkit.org>
727
728         Reviewed by Anders Carlsson.
729
730         Rename the XMLHttpRequestState enum values to match the spec.
731
732         * xml/XMLHttpRequest.cpp:
733         (WebCore::XMLHttpRequest::responseXML):
734         (WebCore::XMLHttpRequest::XMLHttpRequest):
735         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
736         (WebCore::XMLHttpRequest::open):
737         (WebCore::XMLHttpRequest::send):
738         (WebCore::XMLHttpRequest::abort):
739         (WebCore::XMLHttpRequest::setRequestHeader):
740         (WebCore::XMLHttpRequest::getAllResponseHeaders):
741         (WebCore::XMLHttpRequest::getResponseHeader):
742         (WebCore::XMLHttpRequest::status):
743         (WebCore::XMLHttpRequest::statusText):
744         (WebCore::XMLHttpRequest::processSyncLoadResults):
745         (WebCore::XMLHttpRequest::didFinishLoading):
746         (WebCore::XMLHttpRequest::didReceiveData):
747         * xml/XMLHttpRequest.h:
748         (WebCore::):
749
750 2008-05-08  Dan Bernstein  <mitz@apple.com>
751
752         Reviewed by Mark Rowe.
753
754         - fix https://bugs.webkit.org/show_bug.cgi?id=18818
755           <rdar://problem/5901544> REGRESSION (3.1.1-TOT): Character order (float:left ordered after the first letter)
756
757         Test: fast/css/first-letter-float-after-float.html
758
759         * rendering/RenderBlock.cpp:
760         (WebCore::RenderBlock::updateFirstLetter): Changed to add the first
761         letter container right before the rest of the text it is taken from,
762         instead of at the beginning of the block.
763
764 2008-05-08  Chris Fleizach  <cfleizach@apple.com>
765
766         Reviewed by Darin Adler.
767
768         <rdar://problem/5921046> AX: list box options have wrong AXPosition
769
770         * page/AccessibilityObject.cpp:
771         (WebCore::AccessibilityObject::documentFrameView):
772         * page/AccessibilityObject.h:
773
774 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
775
776         Reviewed by Eric.
777
778         Bug 18916: make_names.pl --factory needs to support custom c++ guard
779
780         Add --guardFactoryWith to handle the cpp guard around generated factories.
781
782         * DerivedSources.make: Set the guardFactoryWith variable for SVG factory.
783         * GNUmakefile.am: Ditto.
784         * WebCore.pro: Ditto.
785         * dom/make_names.pl: Add guardFactoryWith option.
786
787 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
788
789         Reviewed by Adam Roben.
790
791         wx & Gtk build fix.
792
793         Should also fix the cURL backend for the Windows port.
794
795         * WebCore.vcproj/WebCore.vcproj: Add FormDataStreamCurl information.
796         * platform/network/curl/FormDataStreamCurl.h: Include stdio.h which
797         fixes the build on some machine.
798
799         * webcore-wx.bkl: Add FormDataStreamCurl.cpp.
800
801 2008-05-08  Timothy Hatcher  <timothy@apple.com>
802
803         Fixes the bug where the Web Inspector could not
804         find any localization strings.
805
806         Reviewed by Mark Rowe.
807
808         * WebCore.xcodeproj/project.pbxproj: Add the localizedStrings.js
809         file to the WebCore Copy Resources phase. Also removes an idl from
810         the Copy Resources phase.
811
812 2008-05-08  Dan Bernstein  <mitz@apple.com>
813
814         Reviewed by Adam Roben.
815
816         - fix <rdar://problem/5697957> "No recent searches" label in a narrow search field's history popup is truncated
817
818         * platform/win/PopupMenuWin.cpp:
819         (WebCore::PopupMenu::calculatePositionAndSize): Changed to use a bold
820         font for measuring labels.
821
822 2008-05-08  Dan Bernstein  <mitz@apple.com>
823
824         Reviewed by Geoffrey Garen.
825
826         - cross-platform fix for http://bugs.webkit.org/show_bug.cgi?id=17590 
827           ASSERTION FAILED: subject in jsRegExpExecute()
828
829         * page/Frame.cpp:
830         (WebCore::Frame::matchLabelsAgainstElement):
831
832 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
833
834         Reviewed by Simon.
835
836         Simple ImageBuffer::image implementation.
837
838         In contrast to cg and cairo we do not use a special BitmapImage because
839         the ownership of the FrameData inside the BitmapImage is a bit backward
840         (actually owned by the ImageDecoderQt...). Further work is needed for image
841         and pixmap handling in the qt port...
842
843         * WebCore.pro:
844         * platform/graphics/ImageBuffer.h:
845         * platform/graphics/qt/ImageBufferQt.cpp:
846         (WebCore::ImageBuffer::image):
847         * platform/graphics/qt/ImageQt.cpp:
848         * platform/graphics/qt/StillImageQt.cpp: Added.
849         (WebCore::StillImage::StillImage):
850         (WebCore::StillImage::size):
851         (WebCore::StillImage::getPixmap):
852         (WebCore::StillImage::draw):
853         * platform/graphics/qt/StillImageQt.h: Added.
854
855 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
856
857         Reviewed by Simon.
858
859         Update the WebKit.qrc of the inspector to be functional again
860
861         * page/inspector/WebKit.qrc:
862
863 2008-05-08  Tor Arne Vestbø  <tavestbo@trolltech.com>
864
865         Reviewed by Simon
866
867         Fix the Qt/Mac build.
868
869         * platform/FileSystem.h:
870
871 2008-05-08  Ariya Hidayat  <ariya.hidayat@trolltech.com>
872
873         Reviewed by Simon.
874
875         Use native Windows library handling (instead of QLibrary) 
876         for Qt/Win32's PlatformModule.
877
878         * platform/FileSystem.h:
879         (WebCore::PlatformModuleVersion::PlatformModuleVersion):
880         * platform/qt/FileSystemQt.cpp:
881         (WebCore::unloadModule):
882
883 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
884
885         Reviewed and found by Holger.
886
887         Include .css in the list of extensions for text/css. Fixes
888         fast/loader/local-css-allowed-in-strict-mode.html.
889
890         * platform/qt/MIMETypeRegistryQt.cpp:
891
892 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
893
894         Fix the Qt and Wx build when compiling without offline app support.
895
896         * loader/FrameLoader.cpp:
897         (WebCore::FrameLoader::canCachePage):
898
899 2008-05-07  Sam Weinig  <sam@webkit.org>
900
901         Reviewed by Adele Peterson
902
903         Update MessageEvent to match the latest version of the HTML5 spec,
904         adding the lastEventId attribute.
905
906         * dom/MessageEvent.cpp:
907         (WebCore::MessageEvent::MessageEvent):
908         (WebCore::MessageEvent::initMessageEvent):
909         * dom/MessageEvent.h:
910         (WebCore::MessageEvent::lastEventId):
911         * dom/MessageEvent.idl:
912         * page/DOMWindow.cpp:
913         (WebCore::DOMWindow::postMessage):
914
915 2008-05-07  Stephanie Lewis <slewis@apple.com>
916
917         Reviewed by Maciej.
918
919         remove non-functioning code.  If onunload should be fired from these nodes then
920         a WindowEventListener needs to be set.  However, Firefox and IE also do not
921         fire onunload events for these cases.
922
923         Test: fast/events/onunload-not-on-body.html 
924         
925         * html/HTMLFrameElementBase.cpp:
926         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
927         * html/HTMLObjectElement.cpp
928         (WebCore::HTMLObjectElement::parseMappedAttribute):
929
930 2008-05-07  Dan Bernstein  <mitz@apple.com>
931
932         Reviewed by John Sullivan.
933
934         - fix https://bugs.webkit.org/show_bug.cgi?id=18909
935           <rdar://problem/5914165> REGRESSION (r31872-r31878): Viewed photos not closing completely at indycar.com
936
937         Test: fast/dynamic/positioned-movement-with-positioned-children.html
938
939         * rendering/RenderBlock.cpp:
940         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Cover the case of
941         a positioned object that has only moved and has only positioned children
942         that have changed.
943         * rendering/RenderObject.h:
944         (WebCore::RenderObject::needsPositionedMovementLayout): Added this
945         accessor.
946
947 2008-05-07  Anders Carlsson  <andersca@apple.com>
948
949         Reviewed by John.
950
951         When no document loaders are associated with an application cache group,
952         release the reference to the newest cache group. This prevents reference cycles.
953         
954         * loader/appcache/ApplicationCacheGroup.cpp:
955         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
956         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
957         (WebCore::ApplicationCacheGroup::cacheDestroyed):
958         * loader/appcache/ApplicationCacheGroup.h:
959         
960         * loader/appcache/ApplicationCacheStorage.cpp:
961         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
962         Return early if the datbase wasn't open.
963         
964         (WebCore::ApplicationCacheStorage::loadCache):
965         Add error.
966
967 2008-05-07  Anders Carlsson  <andersca@apple.com>
968
969         Reviewed by Adam.
970
971         Don't put pages with an application cache in the BF cache.
972         
973         * loader/FrameLoader.cpp:
974         (WebCore::FrameLoader::canCachePage):
975
976 2008-05-07  Justin Garcia  <justin.garcia@apple.com>
977
978         Reviewed by John Sullivan.
979
980         <rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply
981         
982         When a single tab or series of tabs was copied, we weren't putting them into a 
983         tab span.  On Paste, we would be given a text node with a single tab or series
984         of tabs in it, and we would crash when inserting it at the start of a block
985         (where that kind of text becomes completely unrendered).
986
987         * editing/ReplaceSelectionCommand.cpp:
988         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Clean
989         up correctly and early return if we removed everything that was inserted.
990         * editing/markup.cpp:
991         (WebCore::createMarkup):  Include the tab span when the only thing copied
992         was a tab or a series of tabs.
993
994 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
995
996         Reviewed by Adam Roben.
997
998         wx & Gtk build fix.
999
1000         * platform/network/curl/FormDataStreamCurl.cpp: Added stdint.h include. We need to define
1001         __STDC_LIMIT_MACROS to have SIZE_MAX exported.
1002         * platform/network/curl/FormDataStreamCurl.h: Removed cstdint include (replaced by stdint.h)
1003         as it is not present on the build bots.
1004         * plugins/gtk/PluginDatabaseGtk.cpp: Added missing #endif.
1005
1006 2008-05-07  David Kilzer  <ddkilzer@apple.com>
1007
1008         Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
1009         <https://bugs.webkit.org/show_bug.cgi?id=18900>
1010         <rdar://problem/5912383>
1011
1012         Original patch by Aaron Golden and Tim Omernick.  Reviewed by Adele.
1013
1014         Test: fast/forms/textfield-to-password-on-focus.html
1015
1016         * html/HTMLInputElement.cpp:
1017         (WebCore::HTMLInputElement::setInputType): If the current node has
1018         focus, call updateFocusAppearance() to make sure its state is correct
1019         after changing its type.
1020
1021 2008-05-07  Chris Fleizach  <cfleizach@apple.com>
1022
1023         Reviewed by Alice Liu
1024
1025         <rdar://problem/4867889> REGRESSION: "Choose File.." buttons are exposed as AXGroup instead of AXButton
1026
1027         * page/AccessibilityObject.h:
1028         (WebCore::AccessibilityObject::isFileUploadButton):
1029         * page/AccessibilityRenderObject.cpp:
1030         (WebCore::AccessibilityRenderObject::isFileUploadButton):
1031         (WebCore::AccessibilityRenderObject::actionElement):
1032         (WebCore::AccessibilityRenderObject::textUnderElement):
1033         (WebCore::AccessibilityRenderObject::stringValue):
1034         (WebCore::AccessibilityRenderObject::roleValue):
1035         * page/AccessibilityRenderObject.h:
1036         * rendering/RenderFileUploadControl.cpp:
1037         (WebCore::RenderFileUploadControl::buttonValue):
1038         (WebCore::RenderFileUploadControl::fileTextValue):
1039         * rendering/RenderFileUploadControl.h:
1040
1041 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
1042
1043         Reviewed by Eric.
1044
1045         Bug 17971: [Curl] FormData processing should be moved to its own class
1046
1047         Move FormData treatment into FormDataStream. The aim is to have FormDataStream behave like a stream that cURL
1048         could manipulate.
1049
1050         First step into having complete file uploading facility in cURL.
1051
1052         No test case as it is only code refactoring.
1053
1054         * GNUmakefile.am: Add FormDataStreamCurl.cpp
1055         * platform/network/ResourceHandleInternal.h: Move code to FormStreamDataCurl.h
1056         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
1057         * platform/network/curl/FormDataStreamCurl.cpp: Added.
1058         (WebCore::FormDataStream::~FormDataStream):
1059         (WebCore::FormDataStream::read):
1060         * platform/network/curl/FormDataStreamCurl.h: Added.
1061         (WebCore::FormDataStream::FormDataStream):
1062         * platform/network/curl/ResourceHandleCurl.cpp:
1063         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
1064         * platform/network/curl/ResourceHandleManager.cpp:
1065         (WebCore::readCallback): Move code to FormDataStreamCurl.cpp
1066
1067 2008-05-07  Adam Treat  <treat@kde.org>
1068
1069         Reviewed by Simon.
1070
1071         https://bugs.webkit.org/show_bug.cgi?id=18898
1072
1073         Fixed wrong transform being used for creating the pixmap for a new
1074         transparency layer. This fixes the popup menus on dell.com.
1075
1076         * platform/graphics/qt/GraphicsContextQt.cpp:
1077         (WebCore::GraphicsContext::beginTransparencyLayer):
1078
1079 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
1080
1081         Reviewed by Simon.
1082
1083         Share the plug-in directories between Gtk and Qt/X11 port.
1084
1085         * platform/qt/FileSystemQt.cpp:
1086         (WebCore::homeDirectoryPath): Implement it for Qt.
1087         * plugins/PluginDatabase.cpp:
1088         (WebCore::addMozillaPluginDirectories): Shared code.
1089         (WebCore::PluginDatabase::defaultPluginDirectories):
1090         (WebCore::PluginDatabase::isPreferredPluginDirectory): Shared code.
1091         * plugins/gtk/PluginDatabaseGtk.cpp:
1092         (WebCore::PluginDatabase::isPreferredPluginDirectory): Refactored.
1093         * plugins/qt/PluginDatabaseQt.cpp: Refactored.
1094
1095 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
1096
1097         Reviewed by Simon
1098
1099         Fix build issues on Mac and refeactor the .pro file a bit.
1100
1101         * WebCore.pro:
1102         * platform/qt/TemporaryLinkStubs.cpp:
1103         (PluginPackage::fetchInfo):
1104
1105 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
1106
1107         Reviewed by Simon
1108
1109         Draw scrollview corners (between scrollbars) using the Qt style.
1110
1111         https://bugs.webkit.org/show_bug.cgi?id=18894
1112
1113         * platform/qt/ScrollViewQt.cpp:
1114         (WebCore::drawScrollbarCorner):
1115         (WebCore::ScrollView::paint):
1116
1117 2008-05-07  Simon Hausmann  <hausmann@webkit.org>
1118
1119         Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
1120         the build.
1121
1122         * WebCore.pro:
1123
1124 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
1125
1126         Rubber-stamped by Holger.
1127
1128         Fix building without storage support.
1129
1130         * page/PageGroup.cpp:
1131         (WebCore::PageGroup::closeLocalStorage): proper #if
1132
1133 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
1134
1135         Rubber-stamped by Oliver Hunt.
1136
1137         Fix building without accessibility.
1138
1139         * page/AXObjectCache.cpp:
1140         (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
1141
1142 2008-05-06  Dan Bernstein  <mitz@apple.com>
1143
1144         Reviewed by Darin Adler.
1145
1146         - fix <rdar://problem/5914544> Crash in layoutInlineChildren()
1147
1148         Test: fast/block/float/float-on-zero-height-line.html
1149
1150         * rendering/RenderBlock.cpp:
1151         (WebCore::RenderBlock::markLinesDirtyInVerticalRange):
1152
1153 2008-05-06  Alice Liu  <alice.liu@apple.com>
1154
1155         Reviewed by Adele Peterson and John Sullivan.
1156
1157         changes needed to build on Windows after r32911 and r32927
1158
1159         * WebCore.vcproj/WebCore.vcproj:
1160         * page/AXObjectCache.cpp:
1161         (WebCore::AXObjectCache::selectedChildrenChanged):
1162         * page/AccessibilityObject.h:
1163         (WebCore::AccessibilityObject::document):
1164         (WebCore::AccessibilityObject::topDocumentFrameView):
1165         (WebCore::AccessibilityObject::documentFrameView):
1166         * page/AccessibilityRenderObject.cpp:
1167         (WebCore::AccessibilityRenderObject::document):
1168         (WebCore::AccessibilityRenderObject::topDocumentFrameView):
1169         (WebCore::AccessibilityRenderObject::documentFrameView):
1170         * page/AccessibilityRenderObject.h:
1171         * page/mac/AXObjectCacheMac.mm:
1172         * page/mac/AccessibilityObjectWrapper.mm:
1173         (-[AccessibilityObjectWrapper position]):
1174         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1175
1176 2008-05-06  Brady Eidson  <beidson@apple.com>
1177
1178         Reviewed by Sam Weinig
1179
1180         Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
1181         1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
1182         2 - Pending sync timers all need to be cancelled.
1183
1184         * storage/LocalStorage.cpp:
1185         (WebCore::LocalStorage::storageArea):
1186         (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
1187           thread termination.
1188         * storage/LocalStorage.h:  Change the map to be of LocalStorageAreas instead of StorageAreas
1189
1190         * storage/LocalStorageArea.cpp:
1191         (WebCore::LocalStorageArea::LocalStorageArea):
1192         (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
1193           in release builds.
1194         (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the
1195           "final sync scheduled" flag
1196         (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled
1197         (WebCore::LocalStorageArea::scheduleClear): Ditto
1198         * storage/LocalStorageArea.h:
1199
1200 2008-05-06  Kevin Ollivier  <kevino@theolliviers.com>
1201
1202         wx build fix. Adding files added in  r32925 to the bakefiles.
1203
1204         * WebCoreSources.bkl:
1205
1206 2008-05-06  Alp Toker  <alp@nuanti.com>
1207
1208         GTK+ build fix. Add empty stub to keep non-accessible ports building.
1209
1210         * page/AXObjectCache.h:
1211         (WebCore::AXObjectCache::selectedChildrenChanged):
1212
1213 2008-05-06  Beth Dakin  <bdakin@apple.com>
1214
1215         Reviewed by Darin.
1216
1217         Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and 
1218         'aria-describedby' attributes.
1219
1220         * html/HTMLAttributeNames.in: Added new attributes. Added both the 
1221         British spelling (since that is what is specified in the spec), and 
1222         the American spelling (since the bug filer and I are two Americans 
1223         who keep spelling it the American way by accident). 
1224         * page/AccessibilityObject.cpp: Added empty wrappers. These 
1225         functions can't do anything meaningful without a renderer.
1226         (WebCore::AccessibilityObject::ariaAccessiblityName):
1227         (WebCore::AccessibilityObject::ariaLabeledByAttribute):
1228         (WebCore::AccessibilityObject::ariaDescribedByAttribute):
1229         * page/AccessibilityObject.h:
1230
1231         Here is where the real work is done.
1232         * page/AccessibilityRenderObject.h:
1233         * page/AccessibilityRenderObject.cpp:
1234         (WebCore::accessibleNameForNode): Takes a node and finds its 
1235         contribution to the accessible name, as defined by the Mozilla ARIA 
1236         Implementer's Guide. 
1237         (WebCore::AccessibilityRenderObject::ariaAccessiblityName): Takes a 
1238         string of space-separated IDs, fetches the corresponding element 
1239         for each ID, and concatenates an accessible name based on the 
1240         elements.
1241         (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute): 
1242         Retrieve the labeledby attribute and send its contents to 
1243         ariaAccessibilityName().
1244         (WebCore::AccessibilityRenderObject::title): Return the ARIA 
1245         labeledby value if one exists.
1246         (WebCore::AccessibilityRenderObject::ariaDescribedByAttribute): 
1247         Retrieve the describedby attribute and send its contents to 
1248         ariaAccessibilityName().
1249         (WebCore::AccessibilityRenderObject::accessibilityDescription): 
1250         Return the ARIA describedby attribute if one exists. 
1251
1252         These are two bugs I spotted. 
1253         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Don't 
1254         ignore anything with an ARIA role.
1255         (WebCore::AccessibilityRenderObject::roleValue): Button tags maps 
1256         to ButtonRole.
1257
1258 2008-05-06  Anders Carlsson  <andersca@apple.com>
1259
1260         Reviewed by Brady.
1261
1262         Support reading back app caches from the database.
1263     
1264         * loader/appcache/ApplicationCache.cpp:
1265         (WebCore::ApplicationCache::ApplicationCache):
1266         Initialize m_storageID to 0.
1267         
1268         * loader/appcache/ApplicationCacheGroup.cpp:
1269         (WebCore::ApplicationCacheGroup::cacheDestroyed):
1270         If the cache being destroyed is not the newest cache, it should no longer be 
1271         stored in the database. Remove it.
1272         
1273         (WebCore::ApplicationCacheGroup::setNewestCache):
1274         Don't store the cache here.
1275         
1276         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
1277         Store it here instead.
1278         
1279         * loader/appcache/ApplicationCacheStorage.cpp:
1280         (WebCore::ApplicationCacheStorage::loadCacheGroup):
1281         New method that loads a cache group with a given manifest URL (or returns 0 if the load fails).
1282         
1283         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
1284         Search for the group in the database.
1285         
1286         (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
1287         New method that loads the host hashes from the database.
1288         
1289         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
1290         Search in the database for a cache that contains the resource.
1291         
1292         (WebCore::ApplicationCacheStorage::loadCache):
1293         New method that loads a cache with a given ID.
1294         
1295         (WebCore::ApplicationCacheStorage::remove):
1296         New method that removes a cache.
1297         
1298         * loader/appcache/ApplicationCacheStorage.h:
1299         Add definitions.
1300
1301 2008-05-06  Alp Toker  <alp@nuanti.com>
1302
1303         Partial GTK+ build fix. Add files from r32925 to the build and replace
1304         'nil' return with 0.
1305
1306         * GNUmakefile.am:
1307         * page/AccessibilityListBoxOption.cpp:
1308         (WebCore::AccessibilityListBoxOption::parentObject):
1309
1310 2008-05-06  Brady Eidson  <beidson@apple.com>
1311
1312         Reviewed by Anders
1313
1314         Make LocalStorage persistent using a SQLite database.
1315
1316         There's a few things going on here.  Whenever an item is changed, we add it to a set of
1317         "items to be sync'ed."  Instead of immediately scheduling the sync'ing on the background
1318         thread, we set a "sync timer" instead.  This is to shield against a series of rapid changes
1319         to avoid thread churn.
1320
1321         When the sync timer fires, we move the "items to be sync'ed" set to a background thread set
1322         and schedule the sync task which is where the items are actually committed to disk.
1323
1324         Current design for reading items back in from disk is to be as aggressive as possible.
1325         When a page first accesses it's LocalStorage area, we begin to import all items in from disk so
1326         they are immediately available.  A future enhancement will be to being this pre-fetching the
1327         moment we start loading a page when we know that page has LocalStorage.
1328
1329         * storage/LocalStorageArea.cpp:
1330         (WebCore::LocalStorageArea::LocalStorageArea):
1331         (WebCore::LocalStorageArea::length): Return the length, or wait for the import to complete then return it.
1332         (WebCore::LocalStorageArea::key): Return the key, or wait for the import to complete then return it.
1333         (WebCore::LocalStorageArea::getItem): Return the item, or wait for the import to complete then return it.
1334         (WebCore::LocalStorageArea::setItem): Set the item, or hold the import lock and set it.  The second case is
1335           because if the item is set while the import is still in progress, the new value should override whatever
1336           the imported value is.
1337         (WebCore::LocalStorageArea::removeItem): Remove the item, or hold the import lock and remove it.  See the 
1338           explanation for setItem()
1339         (WebCore::LocalStorageArea::contains): Return whether or not the item is contained.  Do the same dance with
1340           the import flag, import lock, and import condition that the above methods do.
1341
1342         (WebCore::LocalStorageArea::itemChanged): Schedule the item for sync'ing
1343         (WebCore::LocalStorageArea::itemRemoved): Schedule the removal of the item for sync'ing
1344         (WebCore::LocalStorageArea::areaCleared): Schedule the clear for sync'ing, and clear all previously 
1345           scheduled items.
1346
1347         (WebCore::LocalStorageArea::scheduleItemForSync): Add an item to the sync set.
1348         (WebCore::LocalStorageArea::scheduleClear): Set a bool flag denoting "All items removed."  If any
1349           items are later set before the actual removal takes place, they will be written *after* the removal.
1350         (WebCore::LocalStorageArea::syncTimerFired): Move the current sync-set to the background thread sync set, then 
1351           schedule a sync task.  Also transfer the "items cleared" flag to the "background thread items cleared" flag
1352         (WebCore::LocalStorageArea::performImport): Import all items from disk, then signal the import complete.
1353         (WebCore::LocalStorageArea::markImported): Set the imported flag and signal the import complete
1354         (WebCore::LocalStorageArea::performSync): If the clear flag is set then drop all items.  Then update or delete 
1355           each item waiting to be sync'ed
1356         * storage/LocalStorageArea.h:
1357
1358 2008-05-06  Brady Eidson  <beidson@apple.com>
1359
1360         Rubberstamped by Mitz Pettel RTL
1361
1362         * storage/LocalStorage.cpp:
1363         (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
1364
1365 2008-05-06  Brady Eidson  <beidson@apple.com>
1366
1367         Reviewed by Darin, Sam Weinig, and Anders
1368
1369         Preparation for upcoming work making LocalStorage persistent.
1370
1371         The final step before code that actually does storage and retrieval of LocalStorage items.
1372
1373         The LocalStorage set is responsible for controlling the path and filenames that individual
1374         LocalStorageAreas will use for their persistent store.  This adds the ability to return that
1375         filename.
1376
1377         Also, add the scheduling methods that LocalStorageArea will use for importing and syncing 
1378         it's persistent items.
1379
1380         * storage/LocalStorage.cpp:
1381         (WebCore::LocalStorage::storageArea):  Add some comments re: the future direction of this
1382           method once we actually do quota tracking.
1383         (WebCore::LocalStorage::fullDatabaseFilename):
1384         (WebCore::LocalStorage::scheduleImport):
1385         (WebCore::LocalStorage::scheduleSync):
1386         * storage/LocalStorage.h:
1387
1388 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
1389
1390         Reviewed by Beth Dakin.
1391
1392         rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
1393
1394         * WebCore.xcodeproj/project.pbxproj:
1395         * html/HTMLOptGroupElement.cpp:
1396         (WebCore::HTMLOptGroupElement::ownerSelectElement):
1397         (WebCore::HTMLOptGroupElement::accessKeyAction):
1398         * html/HTMLOptGroupElement.h:
1399         * html/HTMLOptionElement.cpp:
1400         (WebCore::HTMLOptionElement::accessKeyAction):
1401         (WebCore::HTMLOptionElement::index):
1402         (WebCore::HTMLOptionElement::setSelected):
1403         (WebCore::HTMLOptionElement::childrenChanged):
1404         (WebCore::HTMLOptionElement::ownerSelectElement):
1405         (WebCore::HTMLOptionElement::insertedIntoDocument):
1406         * html/HTMLOptionElement.h:
1407         * html/HTMLSelectElement.cpp:
1408         (WebCore::HTMLSelectElement::childrenChanged):
1409         (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
1410         * html/HTMLSelectElement.h:
1411         * page/AXObjectCache.cpp:
1412         (WebCore::AXObjectCache::get):
1413         * page/AccessibilityListBox.cpp: Added.
1414         (WebCore::AccessibilityListBox::AccessibilityListBox):
1415         (WebCore::AccessibilityListBox::~AccessibilityListBox):
1416         (WebCore::AccessibilityListBox::create):
1417         (WebCore::AccessibilityListBox::addChildren):
1418         (WebCore::AccessibilityListBox::selectedChildren):
1419         (WebCore::AccessibilityListBox::visibleChildren):
1420         (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
1421         (WebCore::AccessibilityListBox::doAccessibilityHitTest):
1422         * page/AccessibilityListBox.h: Added.
1423         (WebCore::AccessibilityListBox::accessibilityShouldUseUniqueId):
1424         (WebCore::AccessibilityListBox::isListBox):
1425         (WebCore::AccessibilityListBox::canSetFocusAttribute):
1426         (WebCore::AccessibilityListBox::roleValue):
1427         (WebCore::AccessibilityListBox::accessibilityIsIgnored):
1428         * page/AccessibilityListBoxOption.cpp: Added.
1429         (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
1430         (WebCore::AccessibilityListBoxOption::~AccessibilityListBoxOption):
1431         (WebCore::AccessibilityListBoxOption::create):
1432         (WebCore::AccessibilityListBoxOption::isEnabled):
1433         (WebCore::AccessibilityListBoxOption::isSelected):
1434         (WebCore::AccessibilityListBoxOption::elementRect):
1435         (WebCore::AccessibilityListBoxOption::title):
1436         (WebCore::AccessibilityListBoxOption::size):
1437         (WebCore::AccessibilityListBoxOption::actionElement):
1438         (WebCore::AccessibilityListBoxOption::parentObject):
1439         (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
1440         (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
1441         * page/AccessibilityListBoxOption.h: Added.
1442         (WebCore::AccessibilityListBoxOption::setHTMLElement):
1443         (WebCore::AccessibilityListBoxOption::roleValue):
1444         (WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
1445         (WebCore::AccessibilityListBoxOption::isListBoxOption):
1446         * page/AccessibilityObject.h:
1447         (WebCore::AccessibilityObject::isListBox):
1448         * page/AccessibilityRenderObject.cpp:
1449         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
1450         * page/mac/AccessibilityObjectWrapper.mm:
1451         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1452         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1453         * rendering/RenderListBox.cpp:
1454         (WebCore::RenderListBox::selectionChanged):
1455         * rendering/RenderListBox.h:
1456
1457 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
1458
1459         Reviewed by Beth Dakin.
1460
1461          <rdar://problem/5455287> AXWebArea should include AXURL
1462
1463         * page/AccessibilityRenderObject.cpp:
1464         (WebCore::AccessibilityRenderObject::url):
1465         * page/mac/AccessibilityObjectWrapper.mm:
1466         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1467
1468 2008-05-06  Alice Liu  <alice.liu@apple.com>
1469
1470         Rubber-stamped by Beth
1471         
1472         stab-in-the-dark attempt at fixing non-mac builds.
1473
1474         * GNUmakefile.am:
1475         * WebCore.pro:
1476         * WebCore.vcproj/WebCore.vcproj:
1477         * WebCoreSources.bkl:
1478
1479 2008-05-06  Anders Carlsson  <andersca@apple.com>
1480
1481         Reviewed by Adam.
1482
1483         Only use the toplevel application cache when loading subframes.
1484
1485         * loader/MainResourceLoader.cpp:
1486         (WebCore::MainResourceLoader::load):
1487
1488 2008-05-06  Adam Barth  <abarth-webkit@adambarth.com>
1489
1490         Reviewed by Sam Weinig.
1491
1492         https://bugs.webkit.org/show_bug.cgi?id=18725
1493         Implement asynchronous postMessage.
1494         MessageEvent no longer bubbles as per r1237 in the HTML 5 working draft.
1495
1496         Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
1497
1498         Test: http/tests/security/postMessage/delivery-order.html
1499
1500         * dom/MessageEvent.cpp:
1501         (WebCore::MessageEvent::MessageEvent):
1502         * page/DOMWindow.cpp:
1503         (WebCore::PostMessageTimer::PostMessageTimer):
1504         (WebCore::PostMessageTimer::event):
1505         (WebCore::PostMessageTimer::targetOrigin):
1506         (WebCore::PostMessageTimer::fired):
1507         (WebCore::DOMWindow::postMessage):
1508         (WebCore::DOMWindow::postMessageTimerFired):
1509         * page/DOMWindow.h:
1510         * page/DOMWindow.idl:
1511         
1512 2008-05-06  Anders Carlsson  <andersca@apple.com>
1513
1514         Reviewed by Brady.
1515
1516         Store cache to the database.
1517
1518         * loader/appcache/ApplicationCache.cpp:
1519         (WebCore::ApplicationCache::addResource):
1520         If the cache has been saved to disk, save the resource as well.
1521         
1522         * loader/appcache/ApplicationCache.h:
1523         (WebCore::ApplicationCache::onlineWhitelist):
1524         New method which returns the online whitelist.
1525
1526         (WebCore::ApplicationCache::setStorageId):
1527         (WebCore::ApplicationCache::storageId):
1528         Setter/getter for the application cache storage ID.
1529
1530         * loader/appcache/ApplicationCacheGroup.cpp:
1531         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
1532         Save the cache/group to disk.
1533         
1534         * loader/appcache/ApplicationCacheGroup.h:
1535         (WebCore::ApplicationCacheGroup::setStorageID):
1536         (WebCore::ApplicationCacheGroup::storageID):
1537         Setter/getter for the application cache group storage ID.
1538         
1539         * loader/appcache/ApplicationCacheResource.cpp:
1540         (WebCore::ApplicationCacheResource::addType):
1541         We can't add a new type if the resource has been saved to disk.
1542         
1543         * loader/appcache/ApplicationCacheResource.h:
1544         (WebCore::ApplicationCacheResource::setStorageID):
1545         (WebCore::ApplicationCacheResource::storageID):
1546         Setter/getter for the application cache resource storage ID.
1547
1548         * loader/appcache/ApplicationCacheStorage.cpp:
1549         * loader/appcache/ApplicationCacheStorage.cpp:
1550         (WebCore::ApplicationCacheStorage::executeSQLCommand):
1551         New method for executing SQL and logging any errors.
1552         
1553         (WebCore::ApplicationCacheStorage::openDatabase):
1554         Create new tables.
1555         
1556         (WebCore::ApplicationCacheStorage::executeStatement):
1557         New method for executing an SQL statement and logging any errors.
1558         
1559         (WebCore::ApplicationCacheStorage::store):
1560         New methods for storing a cache group, cache and cache resource to the store.
1561
1562         (WebCore::ApplicationCacheStorage::storeNewestCache):
1563         New method which stores the newest cache and updates the newest cache field in the cache group.
1564         
1565         * loader/appcache/ApplicationCacheStorage.h:
1566         Add new methods.
1567         
1568         * platform/sql/SQLiteStatement.h:
1569         (WebCore::SQLiteStatement::query):
1570         Getter for the SQL query.
1571
1572 2008-05-06  Brady Eidson  <beidson@apple.com>
1573
1574         Reviewed by Darin Adler
1575
1576         Preparation for upcoming work making LocalStorage persistent.
1577
1578         Writing persistent values for LocalStorage will take place on a background thread.
1579         Here is that background thread, as well as most of the hooks that will be utilized to
1580         make the whole song and dance work.
1581
1582         The thread itself is very simple and MessageQueue based.  LocalStorageTasks are what 
1583         mark the work that needs to be done and come in 5 flavors:  Import and Sync a LocalStorage set,
1584         Import and Sync a LocalStorageArea, and terminate the thread.
1585
1586         This patch accomplished 2 things:
1587         
1588         1 - Each PageGroup has its own LocalStorage set.  Upon its creation its LocalStorageThread is 
1589             created and started.
1590
1591         2 - At application shutdown, each thread is synchronously terminated.
1592
1593         What happens between steps 1 and 2 will come later.
1594
1595         * GNUmakefile.am:
1596         * WebCore.pro:
1597         * WebCore.vcproj/WebCore.vcproj:
1598         * WebCore.xcodeproj/project.pbxproj:
1599         * WebCoreSources.bkl:
1600
1601         * storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each
1602           method is meant to be called from.
1603         (WebCore::LocalStorage::LocalStorage):
1604         (WebCore::LocalStorage::storageArea):
1605         (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas
1606         (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas
1607         (WebCore::LocalStorage::close): Synchronously terminate the thread.
1608         * storage/LocalStorage.h:
1609
1610         * storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each
1611           method is meant to be called from.
1612         (WebCore::LocalStorageArea::itemChanged):
1613         (WebCore::LocalStorageArea::itemRemoved):
1614         (WebCore::LocalStorageArea::areaCleared):
1615         (WebCore::LocalStorageArea::dispatchStorageEvent):
1616         (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this 
1617           LocalStorageArea to prime the page before the items are needed
1618         (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
1619         * storage/LocalStorageArea.h:
1620
1621         * storage/LocalStorageTask.cpp: Added.
1622         (WebCore::LocalStorageTask::LocalStorageTask):
1623         (WebCore::LocalStorageTask::performTask):
1624         * storage/LocalStorageTask.h: Added.
1625         (WebCore::LocalStorageTask::):
1626         (WebCore::LocalStorageTask::createImport):
1627         (WebCore::LocalStorageTask::createSync):
1628         (WebCore::LocalStorageTask::createTerminate):
1629
1630         * storage/LocalStorageThread.cpp: Added.
1631         (WebCore::LocalStorageThread::create):
1632         (WebCore::LocalStorageThread::LocalStorageThread):
1633         (WebCore::LocalStorageThread::start):
1634         (WebCore::LocalStorageThread::localStorageThreadStart):
1635         (WebCore::LocalStorageThread::localStorageThread):
1636         (WebCore::LocalStorageThread::scheduleImport):
1637         (WebCore::LocalStorageThread::scheduleSync):
1638         (WebCore::LocalStorageThread::terminate): 
1639         (WebCore::LocalStorageThread::performTerminate):
1640         * storage/LocalStorageThread.h: Added.
1641
1642 2008-05-06  Anders Carlsson  <andersca@apple.com>
1643
1644         Reviewed by Darin.
1645
1646         Add NPN_PopUpContextMenu.
1647         
1648         * bridge/npapi.h:
1649         * plugins/npfunctions.h:
1650
1651 2008-05-06  Alp Toker  <alp@nuanti.com>
1652
1653         GTK+ build fix. Add file from r32911 to the build.
1654
1655         * GNUmakefile.am:
1656
1657 2008-05-06  Gwenole Beauchesne  <gbeauchesne@splitted-desktop.org>
1658
1659         Reviewed by Alp Toker.
1660
1661         http://bugs.webkit.org/show_bug.cgi?id=18906
1662         [GTK] Fix varargs terminator in g_build_filename()
1663
1664         * plugins/gtk/PluginDatabaseGtk.cpp:
1665         (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs
1666         terminator.
1667
1668 2008-05-06  Kevin McCullough  <kmccullough@apple.com>
1669
1670         - Forgot to update localized Strings from previous checkin.
1671
1672         * English.lproj/localizedStrings.js:
1673
1674 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
1675
1676         Reviewed by Beth Dakin
1677
1678         <rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
1679         <rdar://problem/5895634> AX: AccessibilityObjectWrapper is being leaked all over the place
1680         <rdar://problem/5893907> CrashTracer: [REGRESSION] 44 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityObject::clearChildren + 9
1681         
1682         Initial prep work to support accessibility objects that do not have renderers. 
1683
1684         * WebCore.xcodeproj/project.pbxproj:
1685         * page/AXObjectCache.cpp:
1686         (WebCore::AXObjectCache::~AXObjectCache):
1687         (WebCore::AXObjectCache::get):
1688         (WebCore::AXObjectCache::remove):
1689         (WebCore::AXObjectCache::getAXID):
1690         (WebCore::AXObjectCache::removeAXID):
1691         (WebCore::AXObjectCache::childrenChanged):
1692         * page/AXObjectCache.h:
1693         (WebCore::AXObjectCache::isIDinUse):
1694         * page/AccessibilityObject.cpp:
1695         (WebCore::AccessibilityObject::AccessibilityObject):
1696         (WebCore::AccessibilityObject::create):
1697         (WebCore::AccessibilityObject::detach):
1698         (WebCore::AccessibilityObject::firstChild):
1699         (WebCore::AccessibilityObject::lastChild):
1700         (WebCore::AccessibilityObject::previousSibling):
1701         (WebCore::AccessibilityObject::nextSibling):
1702         (WebCore::AccessibilityObject::parentObject):
1703         (WebCore::AccessibilityObject::layoutCount):
1704         (WebCore::AccessibilityObject::text):
1705         (WebCore::AccessibilityObject::helpText):
1706         (WebCore::AccessibilityObject::textUnderElement):
1707         (WebCore::AccessibilityObject::isARIAInput):
1708         (WebCore::AccessibilityObject::isARIAControl):
1709         (WebCore::AccessibilityObject::intValue):
1710         (WebCore::AccessibilityObject::stringValue):
1711         (WebCore::AccessibilityObject::title):
1712         (WebCore::AccessibilityObject::accessibilityDescription):
1713         (WebCore::AccessibilityObject::boundingBoxRect):
1714         (WebCore::AccessibilityObject::elementRect):
1715         (WebCore::AccessibilityObject::size):
1716         (WebCore::AccessibilityObject::linkedUIElement):
1717         (WebCore::AccessibilityObject::textLength):
1718         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
1719         (WebCore::AccessibilityObject::selectedText):
1720         (WebCore::AccessibilityObject::accessKey):
1721         (WebCore::AccessibilityObject::selection):
1722         (WebCore::AccessibilityObject::selectedTextRange):
1723         (WebCore::AccessibilityObject::setSelectedTextRange):
1724         (WebCore::AccessibilityObject::url):
1725         (WebCore::AccessibilityObject::setFocused):
1726         (WebCore::AccessibilityObject::setValue):
1727         (WebCore::AccessibilityObject::axObjectCache):
1728         (WebCore::AccessibilityObject::getDocumentLinks):
1729         (WebCore::AccessibilityObject::widget):
1730         (WebCore::AccessibilityObject::widgetForAttachmentView):
1731         (WebCore::AccessibilityObject::anchorElement):
1732         (WebCore::AccessibilityObject::actionElement):
1733         (WebCore::AccessibilityObject::visiblePositionRange):
1734         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
1735         (WebCore::AccessibilityObject::visiblePositionForIndex):
1736         (WebCore::AccessibilityObject::indexForVisiblePosition):
1737         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
1738         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
1739         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
1740         (WebCore::AccessibilityObject::textMarkerForIndex):
1741         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
1742         (WebCore::AccessibilityObject::indexForTextMarker):
1743         (WebCore::AccessibilityObject::doAXRangeForLine):
1744         (WebCore::AccessibilityObject::doAXRangeForPosition):
1745         (WebCore::AccessibilityObject::doAXRangeForIndex):
1746         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
1747         (WebCore::AccessibilityObject::doAXStringForRange):
1748         (WebCore::AccessibilityObject::doAXBoundsForRange):
1749         (WebCore::AccessibilityObject::doAccessibilityHitTest):
1750         (WebCore::AccessibilityObject::focusedUIElement):
1751         (WebCore::AccessibilityObject::observableObject):
1752         (WebCore::AccessibilityObject::roleValue):
1753         (WebCore::AccessibilityObject::ariaRoleAttribute):
1754         (WebCore::AccessibilityObject::childrenChanged):
1755         (WebCore::AccessibilityObject::addChildren):
1756         (WebCore::AccessibilityObject::removeAXObjectID):
1757         * page/AccessibilityObject.h:
1758         (WebCore::):
1759         (WebCore::PlainTextRange::PlainTextRange):
1760         (WebCore::PlainTextRange::isNull):
1761         (WebCore::AccessibilityObject::isAccessibilityRenderObject):
1762         (WebCore::AccessibilityObject::isAnchor):
1763         (WebCore::AccessibilityObject::isAttachment):
1764         (WebCore::AccessibilityObject::isHeading):
1765         (WebCore::AccessibilityObject::isLink):
1766         (WebCore::AccessibilityObject::isImage):
1767         (WebCore::AccessibilityObject::isNativeImage):
1768         (WebCore::AccessibilityObject::isImageButton):
1769         (WebCore::AccessibilityObject::isPasswordField):
1770         (WebCore::AccessibilityObject::isTextControl):
1771         (WebCore::AccessibilityObject::isNativeTextControl):
1772         (WebCore::AccessibilityObject::isWebArea):
1773         (WebCore::AccessibilityObject::isCheckboxOrRadio):
1774         (WebCore::AccessibilityObject::isChecked):
1775         (WebCore::AccessibilityObject::isEnabled):
1776         (WebCore::AccessibilityObject::isSelected):
1777         (WebCore::AccessibilityObject::isFocused):
1778         (WebCore::AccessibilityObject::isHovered):
1779         (WebCore::AccessibilityObject::isIndeterminate):
1780         (WebCore::AccessibilityObject::isLoaded):
1781         (WebCore::AccessibilityObject::isMultiSelect):
1782         (WebCore::AccessibilityObject::isOffScreen):
1783         (WebCore::AccessibilityObject::isPressed):
1784         (WebCore::AccessibilityObject::isReadOnly):
1785         (WebCore::AccessibilityObject::isVisited):
1786         (WebCore::AccessibilityObject::canSetFocusAttribute):
1787         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
1788         (WebCore::AccessibilityObject::canSetValueAttribute):
1789         (WebCore::AccessibilityObject::hasIntValue):
1790         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
1791         (WebCore::AccessibilityObject::accessibilityIsIgnored):
1792         (WebCore::AccessibilityObject::children):
1793         (WebCore::AccessibilityObject::hasChildren):
1794         (WebCore::AccessibilityObject::setWrapper):
1795         (WebCore::AccessibilityObject::isDetached):
1796         * page/AccessibilityRenderObject.cpp: Added.
1797         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
1798         (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
1799         (WebCore::AccessibilityRenderObject::create):
1800         (WebCore::AccessibilityRenderObject::detach):
1801         (WebCore::AccessibilityRenderObject::firstChild):
1802         (WebCore::AccessibilityRenderObject::lastChild):
1803         (WebCore::AccessibilityRenderObject::previousSibling):
1804         (WebCore::AccessibilityRenderObject::nextSibling):
1805         (WebCore::AccessibilityRenderObject::parentObject):
1806         (WebCore::AccessibilityRenderObject::isWebArea):
1807         (WebCore::AccessibilityRenderObject::isImageButton):
1808         (WebCore::AccessibilityRenderObject::isAnchor):
1809         (WebCore::AccessibilityRenderObject::isNativeTextControl):
1810         (WebCore::AccessibilityRenderObject::isTextControl):
1811         (WebCore::AccessibilityRenderObject::isNativeImage):
1812         (WebCore::AccessibilityRenderObject::isImage):
1813         (WebCore::AccessibilityRenderObject::isAttachment):
1814         (WebCore::AccessibilityRenderObject::isPasswordField):
1815         (WebCore::AccessibilityRenderObject::isCheckboxOrRadio):
1816         (WebCore::AccessibilityRenderObject::isPressed):
1817         (WebCore::AccessibilityRenderObject::isIndeterminate):
1818         (WebCore::AccessibilityRenderObject::isChecked):
1819         (WebCore::AccessibilityRenderObject::isHovered):
1820         (WebCore::AccessibilityRenderObject::isMultiSelect):
1821         (WebCore::AccessibilityRenderObject::isReadOnly):
1822         (WebCore::AccessibilityRenderObject::isOffScreen):
1823         (WebCore::AccessibilityRenderObject::headingLevel):
1824         (WebCore::AccessibilityRenderObject::isHeading):
1825         (WebCore::AccessibilityRenderObject::isLink):
1826         (WebCore::AccessibilityRenderObject::anchorElement):
1827         (WebCore::AccessibilityRenderObject::actionElement):
1828         (WebCore::AccessibilityRenderObject::mouseButtonListener):
1829         (WebCore::AccessibilityRenderObject::helpText):
1830         (WebCore::AccessibilityRenderObject::textUnderElement):
1831         (WebCore::AccessibilityRenderObject::hasIntValue):
1832         (WebCore::AccessibilityRenderObject::intValue):
1833         (WebCore::AccessibilityRenderObject::stringValue):
1834         (WebCore::labelForElement):
1835         (WebCore::AccessibilityRenderObject::title):
1836         (WebCore::AccessibilityRenderObject::accessibilityDescription):
1837         (WebCore::AccessibilityRenderObject::boundingBoxRect):
1838         (WebCore::AccessibilityRenderObject::elementRect):
1839         (WebCore::AccessibilityRenderObject::size):
1840         (WebCore::AccessibilityRenderObject::linkedUIElement):
1841         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
1842         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1843         (WebCore::AccessibilityRenderObject::isLoaded):
1844         (WebCore::AccessibilityRenderObject::layoutCount):
1845         (WebCore::AccessibilityRenderObject::text):
1846         (WebCore::AccessibilityRenderObject::textLength):
1847         (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
1848         (WebCore::AccessibilityRenderObject::selectedText):
1849         (WebCore::AccessibilityRenderObject::accessKey):
1850         (WebCore::AccessibilityRenderObject::selection):
1851         (WebCore::AccessibilityRenderObject::selectedTextRange):
1852         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
1853         (WebCore::AccessibilityRenderObject::url):
1854         (WebCore::AccessibilityRenderObject::isVisited):
1855         (WebCore::AccessibilityRenderObject::isSelected):
1856         (WebCore::AccessibilityRenderObject::isFocused):
1857         (WebCore::AccessibilityRenderObject::setFocused):
1858         (WebCore::AccessibilityRenderObject::setValue):
1859         (WebCore::AccessibilityRenderObject::isEnabled):
1860         (WebCore::AccessibilityRenderObject::topRenderer):
1861         (WebCore::AccessibilityRenderObject::widget):
1862         (WebCore::AccessibilityRenderObject::axObjectCache):
1863         (WebCore::AccessibilityRenderObject::getDocumentLinks):
1864         (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
1865         (WebCore::AccessibilityRenderObject::frameViewIfRenderView):
1866         (WebCore::AccessibilityRenderObject::visiblePositionRange):
1867         (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
1868         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
1869         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
1870         (WebCore::AccessibilityRenderObject::doAXBoundsForTextMarkerRange):
1871         (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
1872         (WebCore::AccessibilityRenderObject::doAXTextMarkerForPosition):
1873         (WebCore::AccessibilityRenderObject::textMarkerForIndex):
1874         (WebCore::AccessibilityRenderObject::indexForTextMarker):
1875         (WebCore::AccessibilityRenderObject::doAXRangeForLine):
1876         (WebCore::AccessibilityRenderObject::doAXRangeForIndex):
1877         (WebCore::AccessibilityRenderObject::doAXStringForRange):
1878         (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
1879         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
1880         (WebCore::AccessibilityRenderObject::focusedUIElement):
1881         (WebCore::AccessibilityRenderObject::observableObject):
1882         (WebCore::createARIARoleMap):
1883         (WebCore::RoleEntry::):
1884         (WebCore::ariaRoleToWebCoreRole):
1885         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
1886         (WebCore::AccessibilityRenderObject::roleValue):
1887         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
1888         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
1889         (WebCore::AccessibilityRenderObject::canSetTextRangeAttributes):
1890         (WebCore::AccessibilityRenderObject::childrenChanged):
1891         (WebCore::AccessibilityRenderObject::children):
1892         (WebCore::AccessibilityRenderObject::addChildren):
1893         (WebCore::AccessibilityRenderObject::removeAXObjectID):
1894         (WebCore::AccessibilityRenderObject::actionVerb):
1895         * page/AccessibilityRenderObject.h: Added.
1896         (WebCore::AccessibilityRenderObject::isAccessibilityRenderObject):
1897         (WebCore::AccessibilityRenderObject::areaElement):
1898         (WebCore::AccessibilityRenderObject::setRenderer):
1899         (WebCore::AccessibilityRenderObject::renderer):
1900         (WebCore::AccessibilityRenderObject::setRenderObject):
1901         (WebCore::AccessibilityRenderObject::isDetached):
1902         * page/mac/AXObjectCacheMac.mm:
1903         (WebCore::AXObjectCache::detachWrapper):
1904         (WebCore::AXObjectCache::selectedChildrenChanged):
1905         (WebCore::AXObjectCache::postNotification):
1906         * page/mac/AccessibilityObjectWrapper.mm:
1907         (textMarkerForVisiblePosition):
1908         (CreateCGColorIfDifferent):
1909         (AXAttributeStringSetHeadingLevel):
1910         (AXLinkElementForNode):
1911         (AXAttributeStringSetElement):
1912         (AXAttributedStringAppendText):
1913         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1914         (-[AccessibilityObjectWrapper documentFrameView:]):
1915         (-[AccessibilityObjectWrapper position]):
1916         (RoleEntry::):
1917         (-[AccessibilityObjectWrapper roleDescription]):
1918         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1919         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
1920         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1921         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
1922         (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
1923         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
1924         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1925
1926 2008-05-06  Jonathan Haas  <myrdred@gmail.com>
1927
1928         Reviewed by Rob Buis.
1929
1930         https://bugs.webkit.org/show_bug.cgi?id=18859\
1931         Prevented SVGRootInlineBox from static_casting a
1932         node to a class it doesn't inherit
1933         
1934         * rendering/SVGRootInlineBox.cpp:
1935         (WebCore::SVGRootInlineBox::buildTextChunks):
1936
1937 2008-05-06  Brady Eidson  <beidson@apple.com>
1938
1939         Reviewed by Darin Adler
1940
1941         Preparation for upcoming work making LocalStorage persistent.
1942
1943         When the application terminates, all pending local storage writes need to be
1944         sync'ed out to disk.
1945         This works n combination with platform specific code in WebKit that calls it.
1946
1947         * WebCore.base.exp:
1948
1949         * page/PageGroup.cpp:
1950         (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
1951         * page/PageGroup.h:
1952
1953         * storage/LocalStorage.cpp:
1954         (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the
1955           local storage thread in the future.
1956         * storage/LocalStorage.h:
1957
1958 2008-05-06  Brady Eidson  <beidson@apple.com>
1959
1960         Rubberstamped by David Kilzer
1961
1962         * WebCore.base.exp:  Sort this mess!
1963
1964 2008-05-05  Mark Rowe  <mrowe@apple.com>
1965
1966         Reviewed by Dan Bernstein.
1967
1968         Fix 60 crashes seen on the buildbots that were misreported as hangs.
1969
1970         * dom/Document.cpp:
1971         (WebCore::Document::detachNodeIterator): Null-check page() before dereferencing it.
1972         (WebCore::Document::nodeWillBeRemoved): Ditto.
1973         (WebCore::Document::textInserted): Ditto.
1974         (WebCore::Document::textNodesMerged): Ditto.
1975         (WebCore::Document::textRemoved): Ditto.
1976
1977 2008-05-05  Brady Eidson  <beidson@apple.com>
1978
1979         Reviewed by Mitz Pettel RTL
1980
1981         Preparation for upcoming work making LocalStorage persistent.
1982
1983         The other half of the StorageMap::importItem() addition.
1984
1985         * storage/StorageArea.cpp:
1986         (WebCore::StorageArea::importItem):
1987         * storage/StorageArea.h:
1988
1989 2008-05-05  Brady Eidson  <beidson@apple.com>
1990
1991         Reviewed by Mitz Pettel RTL
1992
1993         Preparation for upcoming work making LocalStorage persistent.
1994
1995         - Create the LocalStorage object for a PageGroup the moment the first Page is added to it
1996           The Settings of the first Page define what persistent path the LocalStorage will use
1997         - Add a Frame argument for the LocalStorageArea request - this will allow a client object
1998           to be queried before the LocalStorageArea is established
1999
2000         * page/DOMWindow.cpp:
2001         (WebCore::DOMWindow::localStorage):
2002
2003         * page/PageGroup.cpp:
2004         (WebCore::PageGroup::addPage):
2005         (WebCore::PageGroup::localStorage):
2006
2007         * storage/LocalStorage.cpp:
2008         (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument.  Deep copy
2009           the path as it will be used from another thread.
2010         (WebCore::LocalStorage::storageArea):
2011         * storage/LocalStorage.h:
2012         (WebCore::LocalStorage::create):
2013
2014 2008-05-05  Brady Eidson  <beidson@apple.com>
2015
2016         Reviewed by Mitz Pettel RTL
2017
2018         Preparation for upcoming work making LocalStorage persistent.
2019
2020         StorageMaps normally have copy-on-write semantics to help support SessionStorage.
2021         For LocalStorage, we never want this behavior.  When we forcefully import items into 
2022         a StorageMap from the LocalStorage background thread, this new import method will be used.
2023
2024         * storage/StorageMap.cpp:
2025         (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
2026           about copy-on-write.
2027         * storage/StorageMap.h:
2028
2029 2008-05-05  Kevin McCullough  <kmccullough@apple.com>
2030
2031         Reviewed by Tim.
2032
2033         -<rdar://problem/5770054> JavaScript profiler (10928)
2034         -Begininings of a UI for the Profiler in the WebInspector.
2035
2036         * English.lproj/InspectorLocalizedStrings.js: Add new strings to be
2037         localized.
2038         * page/inspector/DatabasesPanel.js: Changed the name of the Databae's
2039         results table to be more generic as it is now also used by the profiler.
2040         * page/inspector/Images/glossySelected.png: Added.
2041         * page/inspector/Images/profilesIcon.png: Added.
2042         * page/inspector/Images/treeUpTriangleBlack.png: Added.
2043         * page/inspector/Images/treeUpTriangleWhite.png: Added.
2044         * page/inspector/ProfileView.js: Added. Sets up the header of the table.
2045         * page/inspector/ProfilesPanel.js: Added.
2046         * page/inspector/ProfilesPanel.js: Added. Sets up the containers of the
2047         profiler's content.
2048         * page/inspector/inspector.css: Change database-result-table to be more
2049         generic as well as add the styles needed by the profiler.
2050         * page/inspector/inspector.html: Add profiler support.
2051
2052 2008-05-05  Brady Eidson  <beidson@apple.com>
2053
2054         Change by Darin, reviewed by Brady
2055
2056         Small efficiency improvement Darin just spotted
2057
2058         * storage/StorageMap.cpp:
2059         (WebCore::StorageMap::setItem):
2060
2061 2008-05-05  Antti Koivisto  <antti@apple.com>
2062
2063         Reviewed by Anders.
2064
2065         Fix https://bugs.webkit.org/show_bug.cgi?id=18899
2066         Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup
2067
2068         * loader/loader.cpp:
2069         (WebCore::Loader::Loader):
2070
2071 2008-05-05  Brady Eidson  <beidson@apple.com>
2072
2073         Reviewed by Sam Weinig
2074
2075         Fix a bug in StorageMap iterator tracking where the iterator was not successfully
2076         invalidated at an appropriate time.
2077
2078         * storage/StorageMap.cpp:
2079         (WebCore::StorageMap::setItem): ALWAYS invalidate it here
2080
2081 2008-05-05  Justin Garcia  <justin.garcia@apple.com>
2082
2083         Reviewed by Darin.
2084
2085         <rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end
2086         
2087         Disable Range mutation on document modifications in Tiger and Leopard Mail,
2088         since they do their own mutation which interferes with ours.
2089
2090         * WebCore.base.exp:
2091         * dom/Document.cpp:
2092         (WebCore::Document::nodeChildrenChanged):
2093         (WebCore::Document::nodeWillBeRemoved):
2094         (WebCore::Document::textInserted):
2095         (WebCore::Document::textRemoved):
2096         (WebCore::Document::textNodesMerged):
2097         (WebCore::Document::textNodeSplit):
2098         * page/Settings.cpp:
2099         (WebCore::Settings::Settings):
2100         (WebCore::Settings::disableRangeMutationForOldAppleMail):
2101         * page/Settings.h:
2102         (WebCore::Settings::rangeMutationDisabledForOldAppleMail):
2103
2104 2008-05-05  Sam Weinig  <sam@webkit.org>
2105
2106         Reviewed by Tim Hatcher.
2107
2108         Make the Inspector's localizable strings file match the format used by Dashboard widgets.
2109
2110         * English.lproj/InspectorLocalizedStrings.js: Removed.
2111         * English.lproj/localizedStrings.js: Added.
2112         * WebCore.vcproj/WebCore.vcproj:
2113         * WebCore.xcodeproj/project.pbxproj:
2114         * page/inspector/inspector.js:
2115
2116 2008-05-05  Steve Falkenburg  <sfalken@apple.com>
2117
2118         Add support for default button appearance.
2119         Add WebCore setting for app chrome mode.
2120         
2121         Reviewed by Dave Hyatt.
2122
2123         * css/CSSPrimitiveValueMappings.h:
2124         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2125         * css/CSSValueKeywords.in: Added default-button value keyword.
2126         * page/Settings.cpp:
2127         (WebCore::Settings::Settings):
2128         (WebCore::Settings::setApplicationChromeMode):
2129         * page/Settings.h:
2130         (WebCore::Settings::inApplicationChromeMode):
2131         * rendering/RenderButton.cpp:
2132         (WebCore::RenderButton::RenderButton):
2133         (WebCore::RenderButton::setStyle):
2134         (WebCore::RenderButton::timerFired):
2135         * rendering/RenderButton.h:
2136         * rendering/RenderStyle.h:
2137         (WebCore::):
2138         * rendering/RenderTheme.cpp:
2139         (WebCore::RenderTheme::adjustStyle):
2140         (WebCore::RenderTheme::paint):
2141         (WebCore::RenderTheme::paintBorderOnly):
2142         (WebCore::RenderTheme::paintDecorations):
2143         (WebCore::RenderTheme::isControlStyled):
2144         (WebCore::RenderTheme::isDefault):
2145         * rendering/RenderTheme.h:
2146         (WebCore::):
2147         * rendering/RenderThemeSafari.cpp:
2148         (WebCore::RenderThemeSafari::determineState):
2149         (WebCore::RenderThemeSafari::adjustRepaintRect):
2150         (WebCore::RenderThemeSafari::adjustButtonStyle):
2151         * rendering/RenderThemeWin.cpp:
2152         (WebCore::RenderThemeWin::supportsFocus):
2153
2154 2008-05-05  Alexey Proskuryakov  <ap@webkit.org>
2155
2156         Reviewed by Darin.
2157
2158         https://bugs.webkit.org/show_bug.cgi?id=11947
2159         nbsps should be converted to entities in innerHTML
2160
2161         https://bugs.webkit.org/show_bug.cgi?id=18769
2162         replacing &nbsp; with spaces using regexp creates inconsistent result
2163
2164         Tests: fast/dom/innerHTML-nbsp.html
2165                fast/dom/innerHTML-escaping-attribute.html
2166
2167         * editing/markup.cpp:
2168         (WebCore::appendAttributeValue):
2169         (WebCore::escapeContentText):
2170         (WebCore::appendEscapedContent):
2171         Added U+00a0/nbsp to the list of characters to escape.
2172
2173 2008-05-05  David Hyatt  <hyatt@apple.com>
2174
2175         Fix for https://bugs.webkit.org/show_bug.cgi?id=18821.  Fix some bugs in both get/PutImageData of <canvas>.
2176
2177         Reviewed by Eric
2178
2179         New tests added in fast/canvas/
2180
2181         * platform/graphics/cg/ImageBufferCG.cpp:
2182         (WebCore::ImageBuffer::getImageData):
2183         (WebCore::ImageBuffer::putImageData):
2184
2185 2008-05-05  Dan Bernstein  <mitz@apple.com>
2186
2187         Reviewed by Dave Hyatt.
2188
2189         - fix https://bugs.webkit.org/show_bug.cgi?id=18809
2190           Forms with block level generated content and absolutely positioned labels break inline layout (fixed on reflow)
2191
2192         Test: fast/block/basic/adding-near-anonymous-block.html
2193
2194         * rendering/RenderBlock.cpp:
2195         (WebCore::RenderBlock::addChildToFlow): When adding a floating or
2196         positioned object, if it follows an anonymous block, put it
2197         inside the anonymous block. When adding an inline, check if it comes
2198         after an anonymous block and put it in the anonymous block.
2199
2200 2008-05-05  Antti Koivisto  <antti@apple.com>
2201
2202         Reviewed by Darin.
2203
2204         Speculative fix for <rdar://problem/5906790> 
2205         Crash in Loader::servePendingRequests() due to hash table being modified during iteration
2206         
2207         I don't know how to reproduce this. It would require the load to fail (or succeed)
2208         synchronously, something that should not usually happen.
2209
2210         * loader/loader.cpp:
2211         (WebCore::Loader::Loader):
2212         (WebCore::Loader::load):
2213         (WebCore::Loader::servePendingRequests):
2214         (WebCore::Loader::cancelRequests):
2215         (WebCore::Loader::Host::Host):
2216         * loader/loader.h:
2217         (WebCore::Loader::Host::name):
2218
2219 2008-05-05  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2220
2221         Reviewed by Simon.
2222
2223         Disable SVG As Image support in the Qt port again, as it
2224         requires more work. Right now the chrome client is
2225         assumed to be a ChromeClientQt, which the SVG Image support
2226         changes.
2227
2228         * WebCore.pro:
2229
2230 2008-05-02  Antti Koivisto  <antti@apple.com>
2231
2232         Reviewed by Mitz.
2233
2234         Fix <rdar://problem/5840475>
2235         CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject
2236         
2237         Non-block objects can have transforms so containingBlock() could end up returning null. 
2238         RenderObject::container() needs to match.
2239
2240         Test: fast/transforms/container-transform-crash.html
2241
2242         * rendering/RenderObject.cpp:
2243         (WebCore::RenderObject::containingBlock):
2244         (WebCore::RenderObject::container):
2245
2246 2008-05-04  Sam Weinig  <sam@webkit.org>
2247
2248         Roll out r32851.  It broke tiger builds.
2249
2250         * bindings/objc/DOMUtility.mm:
2251         (KJS::createDOMWrapper):
2252         (WebCore::createDOMWrapper):
2253
2254 2008-05-04  Dan Bernstein  <mitz@apple.com>
2255
2256         Reviewed by Sam Weinig.
2257
2258         - fix https://bugs.webkit.org/show_bug.cgi?id=18879
2259           <rdar://problem/5909481> Reproducible crash when removing a gradient
2260
2261         Test: fast/gradients/crash-on-remove.html
2262
2263         * css/CSSImageGeneratorValue.cpp:
2264         (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
2265         (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the
2266         value.
2267         (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref()
2268         the value.
2269
2270 2008-05-03  Sam Weinig  <sam@webkit.org>
2271
2272         Reviewed by Mark Rowe.
2273
2274         Move createDOMWrapper(JSObject* object) out of the KJS namespace and into
2275         the WebCore namespace now that the required compilers don't freak out about
2276         this anymore.
2277
2278         * bindings/objc/DOMUtility.mm:
2279         (WebCore::createDOMWrapper):
2280
2281 2008-05-03  Rob Buis  <buis@kde.org>
2282
2283         Reviewed by Sam.
2284
2285         https://bugs.webkit.org/show_bug.cgi?id=18652
2286         onchange events don't seem to fire for input[type=range] controls.
2287
2288         Fire changeEvent when clicking the slider outside the current
2289         thumb position.
2290
2291         * rendering/RenderSlider.cpp:
2292         (WebCore::RenderSlider::setValueForPosition):
2293
2294 2008-05-03  Sam Weinig  <sam@webkit.org>
2295
2296         Reviewed by Mark Rowe.
2297
2298         Remove unused enums from JSDOMWindowBase.
2299
2300         * bindings/js/JSDOMWindowBase.h:
2301         (WebCore::JSDOMWindowBase::):
2302
2303 2008-05-03  Sam Weinig  <sam@webkit.org>
2304
2305         Real build fix.
2306
2307         * WebCore.xcodeproj/project.pbxproj:
2308
2309 2008-05-03  Sam Weinig  <sam@webkit.org>
2310
2311         Build fix.
2312
2313         * bindings/js/kjs_events.cpp:
2314         (WebCore::JSAbstractEventListener::handleEvent):
2315
2316 2008-05-03  Sam Weinig  <sam@webkit.org>
2317
2318         Rubber-stamped by Geoffrey Garen.
2319
2320         Rename JSDOMWindowWrapper to JSDOMWindowShell.
2321
2322 2008-05-01  Rob Buis  <buis@kde.org>
2323
2324         Reviewed by Eric.
2325
2326         https://bugs.webkit.org/show_bug.cgi?id=18568
2327         background: currentColor fails
2328
2329         Implement currentColor from CSS3 color module.
2330
2331         Tests: fast/css/background-currentcolor.html
2332
2333         * css/CSSParser.cpp:
2334         (WebCore::CSSParser::parseValue):
2335         (WebCore::CSSParser::parseBackgroundColor):
2336         * css/CSSStyleSelector.cpp:
2337         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
2338         * css/CSSValueKeywords.in:
2339         * css/SVGCSSValueKeywords.in:
2340
2341 2008-05-02  Anders Carlsson  <andersca@apple.com>
2342
2343         Reviewed by Mark.
2344
2345         Turns out calling locationInWindow on keyboard events will not throw an exception,
2346         but the point returned is completely bogus, so remove coordinates from the keyboard event struct.
2347         
2348         * bridge/npapi.h:
2349         (_NPCocoaEvent::):
2350
2351 2008-05-02  Benjamin Otte  <otte@gnome.org>
2352
2353         Reviewed by Alp Toker.
2354
2355         http://bugs.webkit.org/show_bug.cgi?id=18856
2356         [GTK] variable initialization missing
2357
2358         Not initializing the m_needsXEmbed variable could have very funny
2359         results. Most often those results would be crashes.
2360
2361         * plugins/PluginView.cpp:
2362         (WebCore::PluginView::PluginView):
2363
2364 2008-05-02  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
2365
2366         Reviewed by Eric.
2367
2368         https://bugs.webkit.org/show_bug.cgi?id=18811
2369         Enable dashboard and offline web apps in autotools
2370
2371         * GNUmakefile.am:
2372
2373 2008-05-02  Anders Carlsson  <andersca@apple.com>
2374
2375         Reviewed by Sam.
2376
2377         Name the event union so it will work in plain C.
2378
2379         * bridge/npapi.h:
2380         (_NPCocoaEvent::):
2381
2382 2008-05-02  Dan Bernstein  <mitz@apple.com>
2383
2384         Reviewed by John Sullivan.
2385
2386         - render text shadows with zero offset, as the shadow can be seen behind
2387           the text if the text is translucent
2388
2389         Test: fast/text/shadow-no-blur.html
2390
2391         * platform/graphics/mac/FontMac.mm:
2392         (WebCore::Font::drawComplexText): Removed the isEmpty() condition on the
2393         shadow offset. Since isEmpty() is also true for sizes that have one or
2394         more non-positive components, this also ensures that subpixel
2395         antialiasing of the text is maintained with shadows in all directions.
2396         (WebCore::Font::drawGlyphs): Ditto.
2397         * platform/graphics/win/FontCGWin.cpp:
2398         (WebCore::Font::drawGlyphs): Ditto.
2399
2400 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2401
2402         Reviewed by Simon.
2403
2404         Build the Qt port with SVG Use and As Image support.
2405
2406         * WebCore.pro:
2407
2408 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2409
2410         Reviewed by Simon.
2411
2412         Fixed potential crash on SVG animation (added more checks to the assert).
2413
2414         * svg/SVGUseElement.cpp:
2415         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2416
2417 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
2418
2419         Rubber-stamped by John Sullivan.
2420
2421         Fix a debug-only crash in layout tests.
2422
2423         * loader/CachedResource.cpp:
2424         (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
2425
2426 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
2427
2428         Fix the Qt build on Windows when Phonon is enabled for Audio/Video support
2429
2430         * WebCore.pro: Don't use QT += phonon as it prepends the phonon
2431         includes to the include paths. Instead add it manually and make sure
2432         phonon comes last, to avoid the conflict of phonon's path.h with
2433         WebCore's Path.h on case-insensitive filesystems.
2434
2435 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
2436
2437         Fix the Qt build. Add ExecState where necessary.
2438
2439         * bridge/qt/qt_class.cpp:
2440         (KJS::Bindings::QtClass::fallbackObject):
2441         * bridge/qt/qt_instance.cpp:
2442         (KJS::Bindings::QtRuntimeObjectImp::construct):
2443         (KJS::Bindings::QtInstance::getRuntimeObject):
2444         (KJS::Bindings::QtInstance::invokeDefaultMethod):
2445         (KJS::Bindings::QtInstance::defaultValue):
2446         (KJS::Bindings::QtInstance::stringValue):
2447         * bridge/qt/qt_instance.h:
2448         (KJS::Bindings::QtInstance::getObject):
2449         * bridge/qt/qt_runtime.cpp:
2450         (KJS::Bindings::convertValueToQVariant):
2451         (KJS::Bindings::convertQVariantToValue):
2452         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
2453         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
2454         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
2455         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
2456         (KJS::Bindings::QtConnectionObject::execute):
2457         * bridge/runtime.cpp:
2458         (KJS::Bindings::Instance::createRuntimeObject):
2459
2460 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
2461
2462         Fix the Qt/Win build.
2463
2464         * WebCore.pro:
2465         * platform/qt/TemporaryLinkStubs.cpp:
2466         (PluginDatabase::getPluginPathsInDirectories):
2467         (PluginDatabase::defaultPluginDirectories):
2468         (PluginDatabase::isPreferredPluginDirectory):
2469         (PluginView::setNPWindowRect):
2470         (PluginView::userAgent):
2471         (PluginView::invalidateRect):
2472         (PluginView::invalidateRegion):
2473         (PluginView::forceRedraw):
2474         (PluginView::setFocus):
2475         (PluginView::show):
2476         (PluginView::hide):
2477         (PluginView::paint):
2478         (PluginView::setParent):
2479         (PluginView::attachToWindow):
2480         (PluginView::detachFromWindow):
2481         (PluginView::updateWindow):
2482         (PluginView::handleKeyboardEvent):
2483         (PluginView::handleMouseEvent):
2484         (PluginView::handlePostReadFile):
2485         (PluginView::getValue):
2486         * plugins/qt/PluginPackageQt.cpp:
2487         (WebCore::PluginPackage::load):
2488
2489 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
2490
2491         Reviewed by Geoffrey Garen.
2492
2493         https://bugs.webkit.org/show_bug.cgi?id=18826
2494         Make JavaScript heap per-thread
2495
2496         This is mostly adaptation for JSC changes. The most prominent one is that JSObject
2497         allocator now takes ExecState, e.g. "new (exec) JSXMLHttpRequestConstructor(...)". It is
2498         OK to pass either the current or global one, whichever is faster to get hold of, as both
2499         have the same reference to a per-thread JS heap.
2500
2501         * bindings/scripts/CodeGeneratorJS.pm: Pass ExecState to functions that now need it.
2502         JSDOMWindow, JSDOMWindowPrototype and JSDOMWindowWrapper are special, because they are
2503         constructed before any ExecState comes into existence, so they use Heap::threadHeap()
2504         directly for allocation.
2505
2506         * bindings/js/JSDOMWindowWrapper.cpp:
2507         (WebCore::JSDOMWindowWrapper::operator new):
2508         * bindings/js/JSDOMWindowWrapper.h:
2509         Added a custom operator new to use per-thread heap when there's no ExecState around.
2510
2511         * bindings/js/JSAudioConstructor.cpp:
2512         (WebCore::JSAudioConstructor::JSAudioConstructor):
2513         * bindings/js/JSCSSRuleCustom.cpp:
2514         (WebCore::toJS):
2515         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2516         (WebCore::JSCSSStyleDeclaration::nameGetter):
2517         * bindings/js/JSCSSValueCustom.cpp:
2518         (WebCore::toJS):
2519         * bindings/js/JSCanvasPixelArrayCustom.cpp:
2520         (WebCore::JSCanvasPixelArray::indexGetter):
2521         (WebCore::toJS):
2522         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2523         (WebCore::toJS):
2524         * bindings/js/JSClipboardCustom.cpp:
2525         (WebCore::JSClipboard::types):
2526         (WebCore::JSClipboard::getData):
2527         * bindings/js/JSCustomXPathNSResolver.cpp:
2528         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2529         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2530         (WebCore::JSDOMApplicationCache::addEventListener):
2531         (WebCore::JSDOMApplicationCache::removeEventListener):
2532         (WebCore::JSDOMApplicationCache::setOnchecking):
2533         (WebCore::JSDOMApplicationCache::setOnerror):
2534         (WebCore::JSDOMApplicationCache::setOnnoupdate):
2535         (WebCore::JSDOMApplicationCache::setOndownloading):
2536         (WebCore::JSDOMApplicationCache::setOnprogress):
2537         (WebCore::JSDOMApplicationCache::setOnupdateready):
2538         (WebCore::JSDOMApplicationCache::setOncached):
2539         * bindings/js/JSDOMWindowBase.cpp:
2540         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
2541         (WebCore::JSDOMWindowBase::getValueProperty):
2542         (WebCore::JSDOMWindowBase::setListener):
2543         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
2544         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
2545         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
2546         (WebCore::windowProtoFuncAToB):
2547         (WebCore::windowProtoFuncBToA):
2548         (WebCore::windowProtoFuncSetTimeout):
2549         (WebCore::windowProtoFuncSetInterval):
2550         (WebCore::windowProtoFuncAddEventListener):
2551         * bindings/js/JSDOMWindowBase.h:
2552         * bindings/js/JSDocumentCustom.cpp:
2553         (WebCore::toJS):
2554         * bindings/js/JSEventCustom.cpp:
2555         (WebCore::toJS):
2556         * bindings/js/JSEventTargetBase.cpp:
2557         (WebCore::jsEventTargetAddEventListener):
2558         * bindings/js/JSEventTargetBase.h:
2559         (WebCore::JSEventTargetPrototype::self):
2560         * bindings/js/JSEventTargetNode.cpp:
2561         (WebCore::JSEventTargetNode::setListener):
2562         * bindings/js/JSHTMLCollectionCustom.cpp:
2563         (WebCore::getNamedItems):
2564         (WebCore::toJS):
2565         * bindings/js/JSHTMLElementWrapperFactory.cpp:
2566         (WebCore::createJSHTMLWrapper):
2567         * bindings/js/JSHTMLFormElementCustom.cpp:
2568         (WebCore::JSHTMLFormElement::nameGetter):
2569         * bindings/js/JSHTMLInputElementBase.cpp:
2570         (WebCore::JSHTMLInputElementBase::getValueProperty):
2571         * bindings/js/JSHTMLOptionElementConstructor.cpp:
2572         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
2573         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2574         (WebCore::JSHTMLOptionsCollection::length):
2575         * bindings/js/JSInspectedObjectWrapper.cpp:
2576         (WebCore::JSInspectedObjectWrapper::wrap):
2577         * bindings/js/JSInspectorCallbackWrapper.cpp:
2578         (WebCore::JSInspectorCallbackWrapper::wrap):
2579         * bindings/js/JSLocationCustom.cpp:
2580         (WebCore::JSLocation::toString):
2581         * bindings/js/JSNamedNodesCollection.cpp:
2582         (WebCore::JSNamedNodesCollection::lengthGetter):
2583         * bindings/js/JSNavigatorCustom.cpp:
2584         (WebCore::JSNavigator::appVersion):
2585         * bindings/js/JSNodeCustom.cpp:
2586         (WebCore::toJS):
2587         * bindings/js/JSNodeFilterCustom.cpp:
2588         (WebCore::JSNodeFilter::acceptNode):
2589         * bindings/js/JSRGBColor.cpp:
2590         (WebCore::getJSRGBColor):
2591         * bindings/js/JSSQLResultSetRowListCustom.cpp:
2592         (WebCore::JSSQLResultSetRowList::item):
2593         * bindings/js/JSSVGElementWrapperFactory.cpp:
2594         (WebCore::createJSSVGWrapper):
2595         * bindings/js/JSSVGLazyEventListener.cpp:
2596         (WebCore::JSSVGLazyEventListener::eventParameterName):
2597         * bindings/js/JSStorageCustom.cpp:
2598         (WebCore::JSStorage::nameGetter):
2599         * bindings/js/JSStyleSheetCustom.cpp:
2600         (WebCore::toJS):
2601         * bindings/js/JSXMLHttpRequestConstructor.cpp:
2602         (WebCore::JSXMLHttpRequestConstructor::construct):
2603         * bindings/js/JSXMLHttpRequestCustom.cpp:
2604         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
2605         (WebCore::JSXMLHttpRequest::setOnload):
2606         (WebCore::JSXMLHttpRequest::setOnprogress):
2607         (WebCore::JSXMLHttpRequest::getResponseHeader):
2608         (WebCore::JSXMLHttpRequest::addEventListener):
2609         (WebCore::JSXMLHttpRequest::removeEventListener):
2610         * bindings/js/JSXSLTProcessor.cpp:
2611         (WebCore::jsXSLTProcessorPrototypeFunctionGetParameter):
2612         (WebCore::JSXSLTProcessorConstructor::construct):
2613         * bindings/js/kjs_binding.cpp:
2614         (WebCore::jsStringOrNull):
2615         (WebCore::jsOwnedStringOrNull):
2616         (WebCore::jsStringOrUndefined):
2617         (WebCore::jsStringOrFalse):
2618         (WebCore::nonCachingStaticFunctionGetter):
2619         (WebCore::objectToStringFunctionGetter):
2620         * bindings/js/kjs_binding.h:
2621         (WebCore::DOMObject::DOMObject):
2622         (WebCore::cacheDOMObject):
2623         (WebCore::cacheSVGDOMObject):
2624         * bindings/js/kjs_events.cpp:
2625         (WebCore::JSLazyEventListener::eventParameterName):
2626         (WebCore::JSLazyEventListener::parseCode):
2627         * bindings/js/kjs_html.cpp:
2628         (WebCore::getRuntimeObject):
2629         * bridge/c/c_instance.cpp:
2630         (KJS::Bindings::CInstance::defaultValue):
2631         (KJS::Bindings::CInstance::stringValue):
2632         (KJS::Bindings::CInstance::numberValue):
2633         (KJS::Bindings::CInstance::valueOf):
2634         * bridge/c/c_instance.h:
2635         * bridge/c/c_utility.cpp:
2636         (KJS::Bindings::convertNPVariantToValue):
2637         * bridge/jni/jni_instance.cpp:
2638         (JavaInstance::stringValue):
2639         (JavaInstance::numberValue):
2640         (JavaInstance::invokeMethod):
2641         (JavaInstance::defaultValue):
2642         (JavaInstance::valueOf):
2643         * bridge/jni/jni_instance.h:
2644         * bridge/jni/jni_jsobject.h:
2645         * bridge/jni/jni_jsobject.mm:
2646         (JavaJSObject::call):
2647         (JavaJSObject::setMember):
2648         (JavaJSObject::setSlot):
2649         (JavaJSObject::convertJObjectToValue):
2650         (JavaJSObject::getListFromJArray):
2651         * bridge/jni/jni_objc.mm:
2652         (KJS::Bindings::dispatchJNICall):
2653         * bridge/jni/jni_runtime.cpp:
2654         (JavaArray::convertJObjectToArray):
2655         (JavaField::dispatchValueFromInstance):
2656         (JavaField::valueFromInstance):
2657         (JavaField::dispatchSetValueToInstance):
2658         (JavaArray::valueAt):
2659         * bridge/jni/jni_utility.h:
2660         * bridge/objc/objc_class.mm:
2661         (KJS::Bindings::ObjcClass::fallbackObject):
2662         * bridge/objc/objc_instance.h:
2663         * bridge/objc/objc_instance.mm:
2664         (ObjcInstance::defaultValue):
2665         (ObjcInstance::stringValue):
2666         (ObjcInstance::numberValue):
2667         (ObjcInstance::valueOf):
2668         * bridge/objc/objc_utility.h:
2669         * bridge/objc/objc_utility.mm:
2670         (KJS::Bindings::convertNSStringToString):
2671         (KJS::Bindings::convertObjcValueToValue):
2672         * bridge/runtime.cpp:
2673         (KJS::Bindings::Instance::createRuntimeObject):
2674         * bridge/runtime.h:
2675         (KJS::Bindings::Instance::valueOf):
2676         * bridge/runtime_array.cpp:
2677         (RuntimeArray::lengthGetter):
2678         * bridge/runtime_method.cpp:
2679         (RuntimeMethod::lengthGetter):
2680         * bridge/runtime_object.cpp:
2681         (RuntimeObjectImp::RuntimeObjectImp):
2682         (RuntimeObjectImp::methodGetter):
2683         (RuntimeObjectImp::defaultValue):
2684         * xml/XMLHttpRequest.cpp:
2685         (WebCore::XMLHttpRequest::dropProtection):
2686         * bindings/js/GCController.cpp:
2687         (WebCore::GCController::gcTimerFired):
2688         (WebCore::GCController::garbageCollectNow):
2689         Adapted to JSC changes. Pass ExecState to functions that now need it. Removed
2690         collectOnMainThreadOnly, as this is the only way to collect now. Replaced calls to static
2691         Collector methods with calls to per-thread Heap ones.
2692
2693 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2694
2695         Reviewed by Simon.
2696
2697         Build the Qt port with SVG Animation support.
2698
2699         * WebCore.pro:
2700
2701 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
2702
2703         Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
2704         with different signatures.
2705
2706         * plugins/npfunctions.h:
2707
2708 2008-05-01  Robin Dunn  <robin@alldunn.com>
2709
2710         Reviewed by Kevin Ollivier.
2711
2712         Explicitly set the pen style in wx port to keep pen style changes from 
2713         affecting URL underline or text field drawing.
2714         
2715         https://bugs.webkit.org/show_bug.cgi?id=18775
2716
2717         * platform/graphics/wx/GraphicsContextWx.cpp:
2718         (WebCore::GraphicsContext::fillRect):
2719         (WebCore::GraphicsContext::drawLineForText):
2720         * platform/wx/RenderThemeWx.cpp:
2721         (WebCore::RenderThemeWx::paintTextField):
2722
2723 2008-05-01  Robin Dunn  <robin@alldunn.com>
2724
2725         Reviewed by Kevin Ollivier.
2726
2727         Implement popup menu support for wx port.
2728         
2729         https://bugs.webkit.org/show_bug.cgi?id=18776
2730
2731         * platform/PopupMenu.h:
2732         * platform/wx/PopupMenuWx.cpp: Added.
2733         (WebCore::PopupMenu::PopupMenu):
2734         (WebCore::PopupMenu::~PopupMenu):
2735         (WebCore::PopupMenu::show):
2736         (WebCore::PopupMenu::OnMenuItemSelected):
2737         (WebCore::PopupMenu::hide):
2738         (WebCore::PopupMenu::updateFromElement):
2739         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
2740         * platform/wx/TemporaryLinkStubs.cpp:
2741         * webcore-wx.bkl:
2742
2743 2008-05-01  Kevin Ollivier  <kevino@theolliviers.com>
2744
2745         Reviewed by Eric Seidel.
2746
2747         Make sure we properly set the button for all mouse events,
2748         not just mouse down, set the click count to 0
2749         for non-click events, and finally set the timestamp.
2750         
2751         https://bugs.webkit.org/show_bug.cgi?id=18464
2752
2753         * platform/wx/MouseEventWx.cpp:
2754         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
2755
2756 2008-05-01  Sam Weinig  <sam@webkit.org>
2757
2758         Reviewed by Mark Rowe (in his infinite wisdom).
2759
2760         Auto-generate the JSXSLTProcessor binding.
2761
2762         * DerivedSources.make:
2763         * GNUmakefile.am:
2764         * WebCore.pro:
2765         * WebCore.vcproj/WebCore.vcproj:
2766         * WebCore.xcodeproj/project.pbxproj:
2767         * WebCoreSources.bkl:
2768         * bindings/js/JSDOMWindowBase.cpp:
2769         (WebCore::JSDOMWindowBase::getValueProperty):
2770         * bindings/js/JSDOMWindowBase.h:
2771         (WebCore::JSDOMWindowBase::):
2772         * bindings/js/JSXSLTProcessor.cpp: Removed.
2773         * bindings/js/JSXSLTProcessor.h: Removed.
2774         * xml/XSLTProcessor.h:
2775
2776 2008-05-01  Sam Weinig  <sam@webkit.org>
2777
2778         Reviewed by Geoffrey Garen.
2779
2780         Fixes:
2781           - https://bugs.webkit.org/show_bug.cgi?id=17249
2782             Incorrect lexical scope after navigation leads to UXSS
2783             <rdar://problem/5738497>
2784
2785           - https://bugs.webkit.org/show_bug.cgi?id=16824
2786             Script authorization should follow lexical (not dynamic) scope
2787             <rdar://problem/5683032>
2788
2789         This patch changes us to perform same-origin checks based on the lexical global object) 
2790         rather than dynamic global object, which is now possible we don't re-use the window on 
2791         navigations, but rather switch in a new one and re-use the outer shell.  This is both
2792         more secure and conforms with the HTML5 specification.  Now that all the checks are
2793         done based on the lexical global object, we can remove the SecurityOrigin::Reason
2794         concept, as it was only around to work around an ebay.com bug that required the check to
2795         be done that way.
2796
2797         An important thing to note is that we currently implement a stricter than necessary policy
2798         and perform the same-origin check based on the currently active global object to avoid leaking
2799         the document in cases when the target frame is navigated before access.  This will be fixed in
2800         an upcoming patch.
2801
2802         * bindings/js/JSDOMWindowBase.cpp:
2803         (WebCore::JSDOMWindowBase::allowsAccessFrom):
2804         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
2805         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
2806         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
2807         (WebCore::JSDOMWindowBase::printErrorMessage):
2808         (WebCore::asJSDOMWindow):
2809         * bindings/js/JSDOMWindowBase.h:
2810         * html/CanvasRenderingContext2D.cpp:
2811         (WebCore::CanvasRenderingContext2D::checkOrigin):
2812         (WebCore::CanvasRenderingContext2D::createPattern):
2813         * loader/FrameLoader.cpp:
2814         (WebCore::FrameLoader::begin):
2815         (WebCore::FrameLoader::write):
2816         (WebCore::FrameLoader::setOpener):
2817         (WebCore::FrameLoader::shouldAllowNavigation):
2818         * page/DOMWindow.h:
2819         (WebCore::DOMWindow::setSecurityOrigin):
2820         (WebCore::DOMWindow::securityOrigin):
2821         (WebCore::DOMWindow::setURL):
2822         (WebCore::DOMWindow::url):
2823         * platform/SecurityOrigin.cpp:
2824         (WebCore::SecurityOrigin::canAccess):
2825         (WebCore::SecurityOrigin::isSecureTransitionTo):
2826         * platform/SecurityOrigin.h:
2827
2828 2008-05-01  Anders Carlsson  <andersca@apple.com>
2829
2830         Reviewed by Mark.
2831
2832         Enable 64-bit NPAPI plugins.
2833         
2834         * WebCore.xcodeproj/project.pbxproj:
2835         Don't remove NPAPI related symbols from the 64-bit .exp file.
2836         
2837         * bridge/npruntime.h:
2838         Remove now unnecessary #error.
2839
2840 2008-05-01  Maciej Stachowiak  <mjs@apple.com>
2841
2842         Reviewed by Oliver (a while ago)
2843
2844         - just a wee bit more bindings speedup
2845         
2846         Store the per-document Node --> JS wrapper cache in the document
2847         instead of an external hashtable.
2848
2849         * bindings/js/kjs_binding.cpp:
2850         (WebCore::ScriptInterpreter::getDOMNodeForDocument):
2851         (WebCore::ScriptInterpreter::forgetDOMNodeForDocument):
2852         (WebCore::ScriptInterpreter::putDOMNodeForDocument):
2853         (WebCore::ScriptInterpreter::forgetAllDOMNodesForDocument):
2854         (WebCore::ScriptInterpreter::markDOMNodesForDocument):
2855         * dom/Document.h:
2856         (WebCore::Document::wrapperCache):
2857
2858 2008-05-01  Anders Carlsson  <andersca@apple.com>
2859
2860         Reviewed by Tim.
2861
2862         Remove duplicate npfunctions.h header from WebKit.
2863         
2864         * WebCore.xcodeproj/project.pbxproj:
2865         Add npfunctions.h and set its role to private.
2866         
2867         * plugins/npfunctions.h:
2868         Merge Mac specific changes.
2869
2870 2008-05-01  Sam Weinig  <sam@webkit.org>
2871
2872         Reviewed by Geoffrey Garen.
2873
2874         Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
2875         cast.
2876
2877         * bindings/js/JSCustomVoidCallback.cpp:
2878         (WebCore::toVoidCallback):
2879         * bindings/js/JSCustomXPathNSResolver.cpp:
2880         (WebCore::JSCustomXPathNSResolver::create):
2881         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2882         (WebCore::JSDOMApplicationCache::add):
2883         (WebCore::JSDOMApplicationCache::remove):
2884         * bindings/js/JSDOMWindowBase.cpp:
2885         (WebCore::allowPopUp):
2886         (WebCore::createWindow):
2887         (WebCore::windowProtoFuncOpen):
2888         (WebCore::asJSDOMWindow):
2889         * bindings/js/JSDOMWindowBase.h:
2890         * bindings/js/JSDOMWindowCustom.cpp:
2891         (WebCore::JSDOMWindow::setLocation):
2892         (WebCore::JSDOMWindow::postMessage):
2893         * bindings/js/JSDatabaseCustom.cpp:
2894         (WebCore::JSDatabase::changeVersion):
2895         (WebCore::JSDatabase::transaction):
2896         * bindings/js/JSDocumentCustom.cpp:
2897         (WebCore::JSDocument::setLocation):
2898         * bindings/js/JSLocationCustom.cpp:
2899         (WebCore::navigateIfAllowed):
2900         (WebCore::JSLocation::setHref):
2901         (WebCore::JSLocation::replace):
2902         (WebCore::JSLocation::reload):
2903         (WebCore::JSLocation::assign):
2904         * bindings/js/JSSQLTransactionCustom.cpp:
2905         (WebCore::JSSQLTransaction::executeSql):
2906         * bindings/js/JSXMLHttpRequestCustom.cpp:
2907         (WebCore::JSXMLHttpRequest::open):
2908         * page/JavaScriptDebugServer.cpp:
2909         (WebCore::toPage):
2910
2911 2008-05-01  Anatoli Papirovski  <apapirovski@mac.com>
2912
2913         Reviewed by Dave Hyatt.
2914
2915         - fix https://bugs.webkit.org/show_bug.cgi?id=18347
2916           Absolutely positioned image percentage width does not respect container's padding
2917
2918         Test: fast/replaced/absolute-position-percentage-width.html
2919
2920         * rendering/RenderBox.cpp:
2921         (WebCore::RenderBox::calcReplacedWidthUsing):
2922
2923 2008-05-01  Dan Bernstein  <mitz@apple.com>
2924
2925         - Windows build fix
2926
2927         * platform/graphics/win/FontCGWin.cpp:
2928         (WebCore::Font::drawGlyphs):
2929
2930 2008-05-01  Dan Bernstein  <mitz@apple.com>
2931
2932         Reviewed by Darin Adler.
2933
2934         - make synthetic bold and synthetic italics work in GDI text
2935         - account for synthetic bold in complex text on Windows
2936
2937         * platform/graphics/win/FontCGWin.cpp:
2938         (WebCore::Font::drawGlyphs): Adjusted the text rectangle's x coordinates
2939         to fit italics. Added a skew transform for synthetic italics and a
2940         second paint pass for synthetic bold.
2941         * platform/graphics/win/SimpleFontDataWin.cpp:
2942         (WebCore::SimpleFontData::widthForGDIGlyph): Added the synthetic bold
2943         offset.
2944         * platform/graphics/win/UniscribeController.cpp:
2945         (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic
2946         bold offset.
2947
2948 2008-05-01  Alp Toker  <alp@nuanti.com>
2949
2950         Qt/Win build fix attempt following plugin changes. Add missing return
2951         statements.
2952
2953         Also fixes some newly introduced coding style issues in the Qt port.
2954
2955         * platform/qt/FileSystemQt.cpp:
2956         (WebCore::openTemporaryFile):
2957         (WebCore::closeFile):
2958         (WebCore::writeToFile):
2959         (WebCore::unloadModule):
2960
2961 2008-05-01  Anders Carlsson  <andersca@apple.com>
2962
2963         Reviewed by Adam.
2964
2965         Export methods needed to subclass Widget.  (See r32770.)
2966
2967         * WebCore.base.exp:
2968
2969 2008-05-01  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
2970
2971         Reviewed by Alp Toker.
2972         Qt parts OK'ed by Simon Hausmann.
2973
2974         https://bugs.webkit.org/show_bug.cgi?id=14750
2975         Added support for NPAPI plugins on Gtk and Qt-x11 ports.
2976
2977         * GNUmakefile.am: Added Gtk plugin files.
2978         * WebCore.pro: Added Qt plugins files, defined XP_UNIX and
2979         ENABLE_NETSCAPE_PLUGIN_API
2980         * bridge/npruntime_internal.h: Additional undefs that conflict
2981         with Qt headers.
2982         * page/gtk/FrameGtk.cpp: Create js bindings for PluginView.
2983         (WebCore::Frame::createScriptInstanceForWidget):
2984         * page/qt/FrameQt.cpp: Create js bindings for PluginView.
2985         (WebCore::Frame::createScriptInstanceForWidget):
2986         (WebCore::Frame::clearPlatformScriptObjects):
2987         (WebCore::Frame::disconnectPlatformScriptObjects):
2988         * platform/FileSystem.h: Qt FileSystem implementation.
2989         * platform/Widget.h: Members to differentiate between Qt plugins and
2990         NPAPI ones.
2991         * platform/gtk/ScrollViewGtk.cpp:
2992         (WebCore::ScrollView::addChild): Set containing window before calling setParent.
2993         * platform/gtk/TemporaryLinkStubs.cpp: Removed implemented functions.
2994         (PluginView::invalidateRegion):
2995         * platform/qt/FileSystemQt.cpp: Implemented functions necessary for
2996         NPAPI plugins.
2997         (WebCore::openTemporaryFile):
2998         (WebCore::closeFile):
2999         (WebCore::writeToFile):
3000         (WebCore::unloadModule): Delete module if unloaded.
3001         * platform/qt/TemporaryLinkStubs.cpp: Removed implemented functions.
3002         * platform/qt/WidgetQt.cpp: Differentiate between Qt plugins and
3003         NPAPI ones.
3004         (WebCore::WidgetPrivate::WidgetPrivate):
3005         (WebCore::Widget::isNPAPIPlugin):
3006         (WebCore::Widget::setIsNPAPIPlugin):
3007         * plugins/PluginPackage.cpp:
3008         (WebCore::PluginPackage::~PluginPackage): Unload the module before
3009         destruction.
3010         (WebCore::PluginPackage::compare): Moved here as it's platform
3011         independent.
3012         * plugins/PluginView.cpp: Moved platform-independent functions here.
3013         (WebCore::PluginView::PluginView): Initialize m_npWindow.ws_info on
3014         Unix platforms.
3015         (WebCore::PluginView::freeStringArray):
3016         (WebCore::startsWithBlankLine):
3017         (WebCore::locationAfterFirstBlankLine):
3018         (WebCore::findEOL):
3019         (WebCore::capitalizeRFC822HeaderFieldName):
3020         (WebCore::parseRFC822HeaderFields):
3021         (WebCore::PluginView::handlePost):
3022         * plugins/PluginView.h: Moved platform-independent functions here.
3023         Added member to signal plugin needs XEmbed extension.
3024         * plugins/gtk/PluginDataGtk.cpp: Added.
3025         (WebCore::PluginData::initPlugins):
3026         (WebCore::PluginData::refresh):
3027         * plugins/gtk/PluginDatabaseGtk.cpp:
3028         (WebCore::PluginDatabase::defaultPluginDirectories):
3029         (WebCore::PluginDatabase::isPreferredPluginDirectory):
3030         * plugins/gtk/PluginPackageGtk.cpp: Added.
3031         (WebCore::PluginPackage::determineQuirks):
3032         (WebCore::PluginPackage::fetchInfo):
3033         (WebCore::PluginPackage::load):
3034         (WebCore::PluginPackage::hash):
3035         (WebCore::PluginPackage::equal):
3036         (WebCore::PluginPackage::compareFileVersion):
3037         * plugins/gtk/PluginViewGtk.cpp: Added.
3038         (WebCore::PluginView::updateWindow):
3039         (WebCore::PluginView::setFocus):
3040         (WebCore::PluginView::show):
3041         (WebCore::PluginView::hide):
3042         (WebCore::PluginView::paint):
3043         (WebCore::PluginView::handleKeyboardEvent):
3044         (WebCore::PluginView::handleMouseEvent):
3045         (WebCore::PluginView::setParent):
3046         (WebCore::PluginView::setNPWindowRect):
3047         (WebCore::PluginView::attachToWindow):
3048         (WebCore::PluginView::detachFromWindow):
3049         (WebCore::PluginView::stop):
3050         (WebCore::PluginView::userAgent):
3051         (WebCore::PluginView::handlePostReadFile):
3052         (WebCore::PluginView::getValue):
3053         (WebCore::PluginView::invalidateRect):
3054         (WebCore::PluginView::forceRedraw):
3055         (WebCore::PluginView::~PluginView):
3056         (WebCore::plug_removed_cb): Added callback to handle plug removal.
3057         (WebCore::PluginView::init):
3058         * plugins/gtk/xembed.h: Added.
3059         * plugins/npapi.cpp:
3060         (NPN_GetValue): Return error if no view present.
3061         * plugins/qt/PluginDataQt.cpp:
3062         (WebCore::PluginData::initPlugins):
3063         (WebCore::PluginData::refresh):
3064         * plugins/qt/PluginDatabaseQt.cpp: Added.
3065         (WebCore::PluginDatabase::getPluginPathsInDirectories):
3066         (WebCore::addQtWebKitPluginDirectories):
3067         (WebCore::addMozillaPluginDirectories):
3068         (WebCore::PluginDatabase::defaultPluginDirectories):
3069         (WebCore::PluginDatabase::isPreferredPluginDirectory):
3070         * plugins/qt/PluginPackageQt.cpp: Added.
3071         (WebCore::PluginPackage::determineQuirks):
3072         (WebCore::PluginPackage::fetchInfo):
3073         (WebCore::PluginPackage::load):
3074         (WebCore::PluginPackage::hash):
3075         (WebCore::PluginPackage::equal):
3076         (WebCore::PluginPackage::compareFileVersion):
3077         * plugins/qt/PluginViewQt.cpp: Added.
3078         (WebCore::PluginView::updateWindow):
3079         (WebCore::PluginView::setFocus):
3080         (WebCore::PluginView::show):
3081         (WebCore::PluginView::hide):
3082         (WebCore::PluginView::paint):
3083         (WebCore::PluginView::handleKeyboardEvent):
3084         (WebCore::PluginView::handleMouseEvent):
3085         (WebCore::PluginView::setParent):
3086         (WebCore::PluginView::setNPWindowRect):
3087         (WebCore::PluginView::attachToWindow):
3088         (WebCore::PluginView::detachFromWindow):
3089         (WebCore::PluginView::stop):
3090         (WebCore::PluginView::userAgent):
3091         (WebCore::PluginView::handlePostReadFile):
3092         (WebCore::PluginView::getValue):
3093         (WebCore::PluginView::invalidateRect):
3094         (WebCore::PluginView::invalidateRegion):
3095         (WebCore::PluginView::forceRedraw):
3096         (WebCore::PluginView::~PluginView):
3097         (WebCore::PluginView::init):
3098         * plugins/win/PluginPackageWin.cpp: Moved platform-independent code
3099         to plugins/PluginPackage.cpp
3100         * plugins/win/PluginViewWin.cpp: Moved platform-independent code to
3101         plugins/PluginView.cpp
3102         (WebCore::PluginView::stop):
3103         (WebCore::PluginView::handlePostReadFile):
3104         (WebCore::PluginView::getValue): Moved this function to each platform.
3105
3106 2008-05-01  Sam Weinig  <sam@webkit.org>
3107
3108         Fix build.
3109
3110         * ForwardingHeaders/wtf/StrHash.h: Added.
3111
3112 2008-05-01  Anders Carlsson  <andersca@apple.com>
3113
3114         Reviewed by Darin.
3115
3116         Move management of cache groups to ApplicationCacheStorage. Also,
3117         application caches now start out with a null group and will have their group set
3118         when the cache has finished loading. 
3119
3120         * loader/appcache/ApplicationCache.cpp:
3121         (WebCore::ApplicationCache::ApplicationCache):
3122         Initialize m_group to 0.
3123         
3124         (WebCore::ApplicationCache::~ApplicationCache):
3125         Null check the group.
3126         
3127         (WebCore::ApplicationCache::setGroup):
3128         New method for setting the group.
3129         
3130         * loader/appcache/ApplicationCache.h:        
3131         (WebCore::ApplicationCache::create):
3132         Remove the group argument.
3133         
3134         * loader/appcache/ApplicationCacheGroup.cpp:
3135         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
3136         Let the storage know that the cache group has been destroyed.
3137         
3138         (WebCore::ApplicationCacheGroup::cacheForMainRequest):
3139         Call into the storage.
3140         
3141         (WebCore::ApplicationCacheGroup::selectCache):
3142         Call into the storage.
3143         
3144         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
3145         When there are no document loaders associated with the cache group,
3146         set the newest cache to 0.
3147         
3148         (WebCore::ApplicationCacheGroup::cacheDestroyed):
3149         Delete the group if there are no associated caches.
3150         
3151         (WebCore::ApplicationCacheGroup::setNewestCache):
3152         New method that will set the newest cache and associate the group with the cache.
3153         
3154         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
3155         Call setNewestCache instead.
3156         
3157         * loader/appcache/ApplicationCacheStorage.cpp:
3158         (WebCore::urlHostHash):
3159         Move host hash method here.
3160         
3161         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
3162         New method that finds a cache group with a given manifest URL or creates a new one.
3163
3164         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
3165         New method that returns a cache group for a given URL.
3166         
3167         (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
3168         When the cache group has been destroyed, remove it from the hash map.
3169         
3170         * loader/appcache/ApplicationCacheStorage.h:
3171         Add new methods.I b
3172
3173 2008-05-01  Dan Winship  <danw@gnome.org>
3174
3175         Reviewed by Alp Toker.
3176
3177         http://bugs.webkit.org/show_bug.cgi?id=18490
3178         Add mostly-working file: support and mostly-broken ftp: support to
3179         the soup backend.
3180
3181         * platform/network/soup/ResourceHandleSoup.cpp (start): after
3182         doing basic checks, delegate to one of three submethods
3183         (startData): handles data: URLs
3184         (startHttp): handles http: and https: URLs, via libsoup
3185         (startGio, etc): handles file: and ftp: URLs, via gio. Lots of
3186         FIXMEs detailing the parts that don't fully work yet.
3187
3188         * platform/network/ResourceHandle.h:
3189         * platform/network/ResourceHandleInternal.h: add new member
3190         variables for gio-based loading
3191
3192 2008-05-01  Alp Toker  <alp@nuanti.com>
3193
3194         Rubber-stamped by Anders.
3195
3196         GTK+ build fix for changes in r32752. Use int32, not int32_t types in
3197         npapi.h.
3198
3199         Additional fix to use same signedness in npapi.h and Mac for the
3200         interval parameter.
3201
3202         * bridge/npapi.h:
3203
3204 2008-04-30  Anders Carlsson  <andersca@apple.com>
3205
3206         Reviewed by Adam.
3207
3208         Add new Cocoa event model type declarations.
3209         
3210         * bridge/npapi.h:
3211
3212 2008-04-30  Beth Dakin  <bdakin@apple.com>
3213
3214         Reviewed by Sam Weinig.
3215
3216         This patch does three things:
3217         1. Adds support for the "img" ARIA role
3218         2. Switches over to a HashMap for converting ARIA role attributes 
3219         to WebCore's AccessibilityRole type. 
3220         3. Fixes a crash in the new ARIA code that I ran into while 
3221         browsing with VoiceOver enabled.
3222
3223         * page/AccessibilityObject.cpp:
3224         (WebCore::AccessibilityObject::headingLevel): This is the crash 
3225         fix. Make sure the node's renderer is not null before looking up 
3226         its corresponding AccessibilityObject in the cache.
3227         (WebCore::AccessibilityObject::accessibilityIsIgnored): Account for 
3228         ARIA images.
3229         (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to 
3230         the Map.
3231         (WebCore::RoleEntry::): Same.
3232         (WebCore::ariaRoleToWebCoreRole): Same.
3233         (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
3234
3235 2008-04-30  Rob Buis  <buis@kde.org>
3236
3237         Reviewed by Nikolas.
3238
3239         https://bugs.webkit.org/show_bug.cgi?id=16447
3240         onload called too many times for <svg:image>
3241         https://bugs.webkit.org/show_bug.cgi?id=12282
3242         SVG wastes time in malloc to send loadEvents to non-existent listeners
3243
3244         Postpone load event dispatching for image when externalResourcesRequired
3245         is true, delaying parents but not siblings, and make sure the load event
3246         is sent once for image in all cases.
3247
3248         * svg/SVGElement.cpp:
3249         (WebCore::hasLoadListener):
3250         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
3251         * svg/SVGImageElement.cpp:
3252         (WebCore::SVGImageElement::haveLoadedRequiredResources):
3253         * svg/SVGImageLoader.cpp:
3254         (WebCore::SVGImageLoader::dispatchLoadEvent):
3255
3256 2008-04-30  David Hyatt  <hyatt@apple.com>
3257
3258         Fix crashes when dynamically removing <video> elements with layers that establish stacking contexts.  This
3259         won't typically crash release builds because of arena recycling.
3260
3261         Reviewed by Dan Bernstein
3262         
3263         * rendering/RenderLayer.cpp:
3264         (WebCore::RenderLayer::~RenderLayer):
3265         Make sure to remove the reflection's child layer from its parent.
3266
3267         * rendering/RenderMedia.cpp:
3268         (WebCore::RenderMedia::~RenderMedia):
3269         (WebCore::RenderMedia::destroy):
3270         (WebCore::RenderMedia::removeChild):
3271         * rendering/RenderMedia.h:
3272         Adjust the teardown of RenderMedia so that it does all of its teardown inside destroy() (this makes it more
3273         like other renderers and doesn't leave you staring at a trashed layer hierarchy in the RenderMedia
3274         destructor).
3275
3276 2008-04-30  Rémi Zara  <remi_zara@mac.com>
3277
3278         Reviewed by Dave Hyatt.
3279
3280         fix https://bugs.webkit.org/show_bug.cgi?id=18618
3281         <rdar://problem/5876063> REGRESSION (r31823-r31847): Patterns are upside down
3282
3283         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
3284         (WebCore::patternCallback): flip the y axis when drawing the tile
3285
3286 2008-04-30  Timothy Hatcher  <timothy@apple.com>
3287
3288         Fixes an undefined type exception that fires when adding a resource to the inspector
3289         that has a MIME type warning.
3290
3291         Reviewed by Adam Roben.
3292
3293         * page/inspector/Resource.js:
3294         (WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
3295         WebInspector.consolePanel.
3296         (WebInspector.Resource.prototype._checkWarning): Ditto.
3297
3298 2008-04-30  Timothy Hatcher  <timothy@apple.com>
3299
3300         Fixes the bug where the selected resource would be deselected after
3301         changing the sort order in the Resources panel.
3302
3303         Reviewed by Dan Bernstein.
3304
3305         * page/inspector/ResourcesPanel.js:
3306         (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded):
3307         Rememebr if the tree element that we are sorting was selected, so
3308         the selection can be restored after it is re-inserted. The onSelect
3309         is suppressed since we don't need to show the resource again.
3310
3311 2008-04-29  Timothy Hatcher  <timothy@apple.com>
3312
3313         Fixes the regression where error bubbles in source views always show
3314         "undefined" for the content because the message property on
3315         ConsoleMessage was removed. Adds support for a plain text formated
3316         message that is stored in the message proeprty.
3317
3318         Reviewed by Adam Roben.
3319
3320         * page/inspector/Console.js:
3321         (WebInspector.Console.prototype._format): Add a plainText argument that is passed to
3322         the formatters.
3323         (WebInspector.Console.prototype._formatvalue): Add a plainText argument, and a comment
3324         about needing to honor it if the textContent of the output doesn't make sense.
3325         (WebInspector.Console.prototype._formatvalue): Ditto.
3326         (WebInspector.Console.prototype._formatstring): Ditto.
3327         (WebInspector.Console.prototype._formatregexp): Ditto.
3328         (WebInspector.Console.prototype._formatarray): Ditto.
3329         (WebInspector.Console.prototype._formatnode): Ditto.
3330         (WebInspector.Console.prototype._formatobject): Ditto.
3331         (WebInspector.Console.prototype._formaterror): Ditto.
3332         (WebInspector.ConsoleMessage): Call _format passing true for plainText. Get the 
3333         textContnet of the result and assign to the message proeprty. This property is 
3334         referenced from the SourceView.
3335         (WebInspector.ConsoleMessage.prototype._format): Add a plainText argument. Build the 
3336         result element as a local and return it, instead of using formatedMessage directly.
3337
3338 2008-04-30  Timothy Hatcher  <timothy@apple.com>
3339
3340         Adds a helper function to convert a JSValueRef to a String.
3341
3342         Reviewed by Adam Roben.
3343
3344         * page/InspectorController.cpp:
3345         (WebCore::toString): Converts a JSValueRef to a String.
3346         (WebCore::search): Use toString.
3347         (WebCore::InspectorController::handleException): Ditto.
3348
3349 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
3350
3351         Reviewed by Simon.
3352         
3353         Build the Qt port with SVG Foreign Object support.
3354
3355         * WebCore.pro:
3356
3357 2008-04-30  Simon Hausmann  <hausmann@webkit.org>
3358
3359         Reviewed by Holger.
3360
3361         Fix null pointer deference triggered by
3362         LayoutTests/fast/loader/cancel-load-during-port-block-timer.html
3363
3364         * platform/network/qt/ResourceHandleQt.cpp:
3365         (WebCore::ResourceHandle::cancel): Check m_job before dereferencing.
3366
3367 2008-04-29  David Hyatt  <hyatt@apple.com>
3368
3369         Improve the performance of masks by adding code to set more precise clips on the transparency layers
3370         used to paint the content under the mask, and then also avoid creating transparency layers for the masks
3371         themselves in common cases.
3372
3373         Reviewed by Dan Bernstein
3374
3375         * platform/graphics/GraphicsContext.cpp:
3376         (WebCore::GraphicsContext::drawTiledImage):
3377         Fix a bug in drawTiledImage where the composite mode got lost in the double stretch case for nine piece
3378         images.
3379
3380         * rendering/InlineFlowBox.cpp:
3381         (WebCore::InlineFlowBox::paintFillLayers):
3382         (WebCore::InlineFlowBox::paintFillLayer):
3383         (WebCore::InlineFlowBox::paintMask):
3384         Optimize to only push a transparency layer for the mask if multiple images are combining.  Add a new
3385         composite operator argument for use when painting fill layers to do direct destination-in compositing while
3386         painting images.
3387
3388
3389         * rendering/InlineFlowBox.h:
3390         * rendering/RenderBox.cpp:
3391         (WebCore::RenderBox::paintMask):
3392         (WebCore::RenderBox::paintMaskImages):
3393         Optimize to only push a transparency layer for the mask if multiple images are combining.
3394
3395         (WebCore::RenderBox::maskClipRect):
3396         A new method that attempts to compute a precise clip rect for the mask images.
3397
3398         (WebCore::RenderBox::paintFillLayers):
3399         (WebCore::RenderBox::paintFillLayer):
3400         (WebCore::RenderBox::paintFillLayerExtended):
3401         * rendering/RenderBox.h:
3402         Added the composite operator argument to the paintFillLayer methods.
3403
3404         * rendering/RenderFieldset.cpp:
3405         (WebCore::RenderFieldset::paintMask):
3406         Call the new base class paintMaskImages method for optimized mask painting.
3407
3408         * rendering/RenderLayer.cpp:
3409         (WebCore::transparencyClipBox):
3410         Fix a coordinate space issue with transparencyClipBox when masks were used.  The border box was in the
3411         wrong coordinate space.  Moved the code into the layer's boundingBox() method instead.
3412
3413         (WebCore::RenderLayer::paintLayer):
3414         Removed the code that always pushed a transparency layer before painting masks.
3415
3416         (WebCore::RenderLayer::boundingBox):
3417         Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.
3418
3419         * rendering/RenderObject.cpp:
3420         (WebCore::RenderObject::paintNinePieceImage):
3421         Added a composite operator argument for direct destination-in painting of nine piece images.
3422
3423         * rendering/RenderObject.h:
3424         (WebCore::RenderObject::maskClipRect):
3425         (WebCore::RenderObject::paintFillLayerExtended):
3426         Base class stubs for RenderBox-implemented methods.
3427
3428         * rendering/RenderTable.cpp:
3429         (WebCore::RenderTable::paintMask):
3430         * rendering/RenderTableCell.cpp:
3431         (WebCore::RenderTableCell::paintMask):
3432         Modified to call the new paintMaskImages function.
3433
3434         * svg/graphics/SVGImage.cpp:
3435         (WebCore::SVGImage::draw):
3436         SVG images now respect composite modes by pushing a transparency layer when the composite mode
3437         is anything other than source-over.
3438
3439 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
3440
3441         Rubber-stamped by Rob Buis.
3442
3443         Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled
3444
3445         * svg/SVGUseElement.cpp:
3446         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
3447
3448 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
3449
3450         Rubber-stamped by Rob Buis.
3451
3452         Fixed compile, due to API change in XMLSerializer
3453
3454         * svg/SVGUseElement.cpp:
3455         (WebCore::SVGUseElement::buildPendingResource):
3456
3457 2008-04-30  Rob Buis  <buis@kde.org>
3458
3459         Reviewed by Eric.
3460
3461         https://bugs.webkit.org/show_bug.cgi?id=11939
3462         Quirksmode: Ignores media types in stylesheet PIs
3463
3464         Transfer the xml-stylesheet pseudo attribute media to the css
3465         stylesheet created from the ProcessingInstruction.
3466
3467         Tests: fast/css/xml-stylesheet-media-processing.xhtml
3468
3469         * css/StyleSheet.cpp:
3470         (WebCore::StyleSheet::setMedia):
3471         * css/StyleSheet.h:
3472         * dom/ProcessingInstruction.cpp:
3473         (WebCore::ProcessingInstruction::checkStyleSheet):
3474         (WebCore::ProcessingInstruction::setCSSStyleSheet):
3475         * dom/ProcessingInstruction.h:
3476
3477 2008-04-29  David D. Kilzer  <ddkilzer@apple.com>
3478
3479         BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()
3480
3481         On the buildbot, this is a fatal error:
3482
3483         ld: symbols names listed in -exported_symbols_list: WebKitBuild/Release/DerivedSources/WebCore/WebCore.exp not in linked objects
3484         __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv
3485         /usr/bin/libtool: internal link edit command failed
3486
3487         Newer dev tools only produce a warning:
3488
3489         ld warning: cannot export hidden symbol __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o
3490
3491         * WebCore.base.exp: Remove hidden symbol from export list.
3492
3493 2008-04-29  David Kilzer  <ddkilzer@apple.com>
3494
3495         Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
3496
3497         * dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
3498
3499 2008-04-29  David Kilzer  <ddkilzer@apple.com>
3500
3501         BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
3502
3503         * DerivedSources.make: Removed duplication of targets for
3504         generating CSSPropertyNames.h and CSSValueKeywords.h.
3505         * GNUmakefile.am: Ditto.  Added support for ENABLE_DASHBOARD_SUPPORT.
3506         * WebCore.pro: Added support for ENABLE_DASHBOARD_SUPPORT.
3507         Made both SVG and non-SVG variables of GENERATOR 6-A use new
3508         DASHBOARDSUPPORTCSSPROPERTIES variable.
3509
3510 2008-04-29  Ada Chan  <adachan@apple.com>
3511
3512         Added missing return.        
3513
3514         * platform/win/COMPtr.h:
3515         (WTF::):
3516
3517 2008-04-29  Alp Toker  <alp@nuanti.com>
3518
3519         GTK+ build fix attempt following breakage in r32700 which
3520         conditionalised dashboard support.
3521
3522         * GNUmakefile.am:
3523
3524 2008-04-29  Adam Roben  <aroben@apple.com>
3525
3526         Restore the beloved COMPtr::operator&
3527
3528         * platform/win/COMPtr.h: Removed the HashTableDeletedValueType
3529         constructor and isHashTableDeletedValue and hashTableDeletedValue
3530         functions.
3531         (WTF::): Changed constructDeletedValue to play nicely with
3532         COMPtr::operator&.
3533
3534 2008-04-29  Adam Roben  <aroben@apple.com>
3535
3536         Fix assertion on launch on Windows
3537
3538         * platform/graphics/win/FontPlatformData.h: Pass
3539         WTF::HashTableDeletedValue to the m_font constructor instead of a
3540         bogus -1 value. This is needed because m_font is a RefPtr.
3541
3542 2008-04-29  Greg Bolsinga  <bolsinga@apple.com>
3543
3544         Reviewed by Darin.
3545
3546         Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)
3547
3548         * DerivedSources.make:
3549         * WebCore.DashboardSupport.exp: Added.
3550         * WebCore.base.exp:
3551         * WebCore.xcodeproj/project.pbxproj:
3552         * bindings/js/JSDOMWindowCustom.cpp:
3553         (WebCore::JSDOMWindow::setLocation):
3554         * css/CSSComputedStyleDeclaration.cpp:
3555         (WebCore::):
3556         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3557         * css/CSSParser.cpp:
3558         (WebCore::CSSParser::parseValue):
3559         * css/CSSPrimitiveValue.cpp:
3560         (WebCore::CSSPrimitiveValue::cleanup):
3561         (WebCore::CSSPrimitiveValue::cssText):
3562         * css/CSSPropertyNames.in:
3563         * css/CSSStyleSelector.cpp:
3564         (WebCore::CSSStyleSelector::applyProperty):
3565         * css/DashboardRegion.h:
3566         * css/DashboardSupportCSSPropertyNames.in: Added.
3567         * dom/DOMImplementation.cpp:
3568         (WebCore::DOMImplementation::createDocument):
3569         * dom/Document.cpp:
3570         (WebCore::Document::Document):
3571         (WebCore::Document::importNode):
3572         * dom/Document.h:
3573         * html/CanvasRenderingContext2D.cpp:
3574         (WebCore::CanvasRenderingContext2D::fill):
3575         (WebCore::CanvasRenderingContext2D::stroke):
3576         (WebCore::CanvasRenderingContext2D::clip):
3577         * html/CanvasRenderingContext2D.h:
3578         * html/HTMLCanvasElement.cpp:
3579         * html/HTMLCanvasElement.h:
3580         * page/Chrome.cpp:
3581         * page/ChromeClient.h:
3582         * page/Frame.cpp:
3583         (WebCore::Frame::paint):
3584         * page/Frame.h:
3585         * page/FrameView.cpp:
3586         (WebCore::FrameView::layout):
3587         * page/FrameView.h:
3588         * page/Settings.cpp:
3589         (WebCore::Settings::Settings):
3590         * page/Settings.h:
3591         * page/mac/EventHandlerMac.mm:
3592         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
3593         * page/mac/FrameMac.mm:
3594         * page/mac/WebDashboardRegion.h:
3595         * page/mac/WebDashboardRegion.m:
3596         * rendering/RenderLayer.cpp:
3597         (WebCore::RenderLayer::scrollToOffset):
3598         (WebCore::RenderLayer::setHasHorizontalScrollbar):
3599         (WebCore::RenderLayer::setHasVerticalScrollbar):
3600         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
3601         * rendering/RenderObject.cpp:
3602         (WebCore::RenderObject::setStyle):
3603         * rendering/RenderObject.h:
3604         * rendering/RenderStyle.cpp:
3605         (WebCore::StyleRareNonInheritedData::operator==):
3606         (WebCore::RenderStyle::diff):
3607         * rendering/RenderStyle.h:
3608         * xml/XMLHttpRequest.cpp:
3609         (WebCore::XMLHttpRequest::send):
3610         (WebCore::XMLHttpRequest::setRequestHeader):
3611
3612 2008-04-29  Adam Roben  <aroben@apple.com>
3613
3614         Windows build fix
3615
3616         This removes COMPtr::operator&, which didn't jive with HashTable. It
3617         is replaced by COMPtr::adoptionPointer.
3618
3619         Discussed with Darin Adler and Anders Carlsson.
3620
3621         * platform/win/COMPtr.h: Replaced operator& with adoptionPointer.
3622
3623 2008-04-29  David Hyatt  <hyatt@apple.com>
3624
3625         Implement the new box-reflect property in CSS.  This property enables real-time reflections on
3626         objects (yes you can reflect <video>!).
3627
3628         Reviewed by Dan Bernstein
3629
3630         Test cases added in fast/reflections/
3631
3632         * GNUmakefile.am:
3633         * WebCore.pro:
3634         * WebCore.xcodeproj/project.pbxproj:
3635         * WebCoreSources.bkl:
3636         * css/CSSComputedStyleDeclaration.cpp:
3637         (WebCore::):
3638         (WebCore::valueForReflection):
3639         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3640         * css/CSSParser.cpp:
3641         (WebCore::CSSParser::parseValue):
3642         (WebCore::CSSParser::parseReflect):
3643         (WebCore::BorderImageParseContext::commitBorderImage):
3644         (WebCore::CSSParser::parseBorderImage):
3645         (WebCore::parseGradientColorStop):
3646         (WebCore::CSSParser::parseTransform):
3647         * css/CSSParser.h:
3648         * css/CSSPropertyNames.in:
3649         * css/CSSReflectValue.cpp: Added.
3650         (WebCore::CSSReflectValue::cssText):
3651         * css/CSSReflectValue.h: Added.
3652         (WebCore::):
3653         (WebCore::CSSReflectValue::CSSReflectValue):
3654         (WebCore::CSSReflectValue::direction):
3655         (WebCore::CSSReflectValue::offset):
3656         (WebCore::CSSReflectValue::mask):
3657         (WebCore::CSSReflectValue::setDirection):
3658         (WebCore::CSSReflectValue::setOffset):
3659         (WebCore::CSSReflectValue::setMask):
3660         * css/CSSStyleSelector.cpp:
3661         (WebCore::CSSStyleSelector::adjustRenderStyle):
3662         (WebCore::CSSStyleSelector::applyProperty):
3663         (WebCore::CSSStyleSelector::mapNinePieceImage):
3664         * css/CSSStyleSelector.h:
3665         * rendering/InlineFlowBox.cpp:
3666         (WebCore::InlineFlowBox::placeBoxesVertically):
3667         (WebCore::InlineFlowBox::paintMask):
3668         * rendering/Length.h:
3669         (WebCore::Length::calcFloatValue):
3670         * rendering/RenderBlock.cpp:
3671         (WebCore::RenderBlock::overflowHeight):
3672         (WebCore::RenderBlock::overflowWidth):
3673         (WebCore::RenderBlock::overflowLeft):
3674         (WebCore::RenderBlock::overflowTop):
3675         (WebCore::RenderBlock::overflowRect):
3676         (WebCore::RenderBlock::layoutBlock):
3677         * rendering/RenderBox.cpp:
3678         (WebCore::RenderBox::setStyle):
3679         (WebCore::RenderBox::paintMask):
3680         (WebCore::RenderBox::imageChanged):
3681         (WebCore::RenderBox::computeAbsoluteRepaintRect):
3682         * rendering/RenderFlexibleBox.cpp:
3683         (WebCore::RenderFlexibleBox::layoutBlock):
3684         * rendering/RenderLayer.cpp:
3685         (WebCore::RenderLayer::RenderLayer):
3686         (WebCore::RenderLayer::~RenderLayer):
3687         (WebCore::RenderLayer::updateLayerPositions):
3688         (WebCore::RenderLayer::enclosingPositionedAncestor):
3689         (WebCore::RenderLayer::enclosingTransformedAncestor):
3690         (WebCore::RenderLayer::isTransparent):
3691         (WebCore::transparencyClipBox):
3692         (WebCore::RenderLayer::operator delete):
3693         (WebCore::RenderLayer::destroy):
3694         (WebCore::RenderLayer::removeOnlyThisLayer):
3695         (WebCore::RenderLayer::insertOnlyThisLayer):
3696         (WebCore::RenderLayer::paintLayer):
3697         (WebCore::RenderLayer::updateZOrderLists):
3698         (WebCore::RenderLayer::updateOverflowList):
3699         (WebCore::RenderLayer::collectLayers):
3700         (WebCore::RenderLayer::shouldBeOverflowOnly):
3701         (WebCore::RenderLayer::styleChanged):
3702         (WebCore::RenderLayer::reflectionLayer):
3703         (WebCore::RenderLayer::createReflection):
3704         (WebCore::RenderLayer::updateReflectionStyle):
3705         * rendering/RenderLayer.h:
3706         (WebCore::RenderLayer::hasReflection):
3707         (WebCore::RenderLayer::reflection):
3708         (WebCore::RenderLayer::paintingInsideReflection):
3709         * rendering/RenderObject.cpp:
3710         (WebCore::RenderObject::RenderObject):
3711         (WebCore::RenderObject::requiresLayer):
3712         (WebCore::RenderObject::setStyle):
3713         (WebCore::RenderObject::updateImage):
3714         (WebCore::RenderObject::reflectionBox):
3715         (WebCore::RenderObject::reflectionOffset):
3716         * rendering/RenderObject.h:
3717         (WebCore::RenderObject::hasTransform):
3718         (WebCore::RenderObject::setHasReflection):
3719         (WebCore::RenderObject::hasReflection):
3720         * rendering/RenderReplica.cpp: Added.
3721         (WebCore::RenderReplica::RenderReplica):
3722         (WebCore::RenderReplica::~RenderReplica):
3723         (WebCore::RenderReplica::layout):
3724         (WebCore::RenderReplica::calcPrefWidths):
3725         (WebCore::RenderReplica::paint):
3726         * rendering/RenderReplica.h: Added.
3727         (WebCore::RenderReplica::renderName):
3728         (WebCore::RenderReplica::requiresLayer):
3729         * rendering/RenderStyle.cpp:
3730         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3731         (WebCore::StyleRareNonInheritedData::operator==):
3732         (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent):
3733         (WebCore::RenderStyle::diff):
3734         (WebCore::RenderStyle::applyTransform):
3735         * rendering/RenderStyle.h:
3736         (WebCore::TranslateTransformOperation::apply):
3737         (WebCore::StyleReflection::StyleReflection):
3738         (WebCore::StyleReflection::operator==):
3739         (WebCore::StyleReflection::operator!=):
3740         (WebCore::StyleReflection::direction):
3741         (WebCore::StyleReflection::offset):
3742         (WebCore::StyleReflection::mask):
3743         (WebCore::StyleReflection::setDirection):
3744         (WebCore::StyleReflection::setOffset):
3745         (WebCore::StyleReflection::setMask):
3746         (WebCore::RenderStyle::boxReflect):
3747         (WebCore::RenderStyle::setBoxReflect):
3748         (WebCore::RenderStyle::initialBoxReflect):
3749         * rendering/RenderTable.cpp:
3750         (WebCore::RenderTable::layout):
3751         (WebCore::RenderTable::paintMask):
3752         * rendering/RenderTableCell.cpp:
3753         (WebCore::RenderTableCell::requiresLayer):
3754         (WebCore::RenderTableCell::paintMask):
3755
3756 2008-04-29  Beth Dakin  <bdakin@apple.com>
3757
3758         Reviewed by Alice.
3759
3760         Initial implementation of the following ARIA roles: button, 
3761         checkbox, heading, link, radio, textbox.
3762
3763         * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
3764
3765         * page/AccessibilityObject.cpp:
3766          When an ARIA role is set, the role overrides whatever the actual 
3767 element is when the element reports itself to the screen reader. So all of these isBlah functions report based on their roleValue now.
3768         (WebCore::AccessibilityObject::isWebArea):
3769         (WebCore::AccessibilityObject::isImageButton):
3770         (WebCore::AccessibilityObject::isAnchor):
3771         (WebCore::AccessibilityObject::isTextControl):
3772         (WebCore::AccessibilityObject::isImage):
3773         (WebCore::AccessibilityObject::isAttachment):
3774         (WebCore::AccessibilityObject::isPasswordField):
3775         (WebCore::AccessibilityObject::isCheckboxOrRadio):
3776         (WebCore::AccessibilityObject::isHeading):
3777         (WebCore::AccessibilityObject::isLink):
3778
3779         Check for ARIA information:
3780         (WebCore::AccessibilityObject::headingLevel):
3781         (WebCore::AccessibilityObject::anchorElement):
3782         (WebCore::AccessibilityObject::actionElement):
3783         (WebCore::AccessibilityObject::hasIntValue):
3784         (WebCore::AccessibilityObject::intValue):
3785         (WebCore::AccessibilityObject::stringValue):
3786         (WebCore::AccessibilityObject::title):
3787         (WebCore::AccessibilityObject::accessibilityIsIgnored):
3788         (WebCore::AccessibilityObject::roleValue):
3789
3790         There are a few places in the code where it is important to identify the difference between ARIA and non-ARIA.
3791         (WebCore::AccessibilityObject::isNativeImage):
3792         (WebCore::AccessibilityObject::isNativeTextControl):
3793         (WebCore::isARIAInput):
3794         (WebCore::isARIAControl):
3795
3796         A lot of spots in the code used to cast to RenderTextControl to get information about the text inside the element. Now that non-native text controls can run this code with the ARIA role 'textbox', it needs to be as general as possible. 
3797         (WebCore::AccessibilityObject::text): Still calls into 
3798         RenderTextControl's text() for native text controls. Uses Element's 
3799         innerText() for ARIA textboxes.
3800         (WebCore::AccessibilityObject::textLength): Call 
3801         AccessibilityObject's text() instead of RenderTextControl's.
3802         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
3803         (WebCore::AccessibilityObject::selectedText):
3804         (WebCore::AccessibilityObject::selectedTextRange):
3805         (WebCore::AccessibilityObject::selectionStart):
3806         (WebCore::AccessibilityObject::selectionEnd):
3807         (WebCore::AccessibilityObject::setSelectedTextRange):
3808         (WebCore::AccessibilityObject::setValue):
3809         (WebCore::AccessibilityObject::visiblePositionForIndex):
3810         (WebCore::AccessibilityObject::indexForVisiblePosition):
3811         (WebCore::AccessibilityObject::textMarkerRangeForRange):
3812         (WebCore::AccessibilityObject::textMarkerForIndex):
3813         (WebCore::AccessibilityObject::indexForTextMarker):
3814         (WebCore::AccessibilityObject::doAXRangeForLine):
3815         (WebCore::AccessibilityObject::doAXRangeForIndex):
3816         (WebCore::AccessibilityObject::doAXStringForRange):
3817         (WebCore::AccessibilityObject::doAXBoundsForRange):
3818         
3819         Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
3820         (WebCore::AccessibilityObject::ariaRoleAttribute):
3821         
3822         Added several new functions. Most of them existed before but were static, or have been added to reduce the dependency on RenderTextControl for a lot of the text functionality.
3823         * page/AccessibilityObject.h:
3824
3825         Eliminated dependency on RenderTextControl cast. The information is generalized now and available directly through the AccessibilityObject.
3826         * page/mac/AccessibilityObjectWrapper.mm:
3827         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
3828         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
3829
3830 2008-04-29  Timothy Hatcher  <timothy@apple.com>
3831
3832         Make the exceptions that the InspectorController catches log the
3833         original file and line number, if present on the exception object.
3834
3835         Reviewed by Adam Roben.
3836
3837         * page/InspectorController.cpp:
3838         (WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
3839         (WebCore::InspectorController::~InspectorController): Ditto.
3840         (WebCore::InspectorController::scriptObjectReady): Ditto.
3841         (WebCore::InspectorController::addScriptResource): Ditto.
3842         (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
3843         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
3844         (WebCore::InspectorController::updateScriptResource): Ditto.
3845         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
3846         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
3847         (WebCore::InspectorController::handleException): Take a context. Pull the line
3848         and sourceURL properties off the exception if it is an object.
3849         * page/InspectorController.h: Change handleException to take a context.
3850
3851 2008-04-29  Timothy Hatcher  <timothy@apple.com>
3852
3853         Fixes a regression where the Page's debugger would not be reattached
3854         when a new JSDOMWindow is created.
3855
3856         Reviewed by Sam Weinig.
3857
3858         * bindings/js/kjs_proxy.cpp:
3859         (WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.
3860         * history/CachedPage.cpp:
3861         (WebCore::CachedPage::restore): For the case where the CachedPage doesn't
3862         contain a window, reattach the debugger to the new JSDOMWindow by calling
3863         proxy->attachDebugger. Also restore the setPageGroupIdentifier.
3864
3865 2008-04-29  Anatoli Papirovski  <apapirovski@mac.com>
3866
3867         Reviewed by Darin Adler.
3868
3869         Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
3870         Fixed RGB and RGBA parsing to ignore the declaration when the value is not
3871         "either three integer values or three percentage values."
3872
3873         * css/CSSParser.cpp:
3874         (WebCore::CSSParser::parseColorParameters):
3875
3876 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3877
3878         Reviewed by Simon.
3879
3880         Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
3881
3882         Ben found this crash in the demo browser.
3883
3884         In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
3885
3886         case PolicyDownload:
3887         frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
3888         receivedError(interruptionForPolicyChangeError());
3889
3890         We are in a policy check, the download() call will call setHtml, which will start loading
3891         the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
3892         which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
3893         will use the m_frame->loader() but it is gone. Do not call into receivedError and
3894         interruptionForPolicyChangeError if we are gone anyway...
3895
3896         * loader/MainResourceLoader.cpp:
3897         (WebCore::MainResourceLoader::continueAfterContentPolicy):
3898
3899 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3900
3901         Reviewed by Simon.
3902
3903         Rely on auto-boxing of C++ for the QCursor c'tor
3904
3905         * platform/qt/CursorQt.cpp:
3906
3907 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3908
3909         Reviewed by Simon.
3910
3911         Add the remaining cursors that defaulted to PointerCursor
3912
3913         * Resources/WebKitResources.qrc:
3914         * platform/qt/CursorQt.cpp:
3915         (WebCore::verticalTextCursor):
3916         (WebCore::cellCursor):
3917         (WebCore::contextMenuCursor):
3918         (WebCore::copyCursor):
3919         (WebCore::progressCursor):
3920         (WebCore::aliasCursor):
3921
3922 2008-04-29  Alice Liu  <alice.liu@apple.com>
3923
3924         Reviewed by Beth Dakin.
3925
3926         Comply with HTML5 spec about parsing tabindex property according to
3927         integer parsing rules
3928
3929         Test: fast/parser/tabindex-parsing.html
3930
3931         * html/HTMLElement.cpp:
3932         (WebCore::HTMLElement::parseMappedAttribute):
3933
3934 2008-04-29  Tor Arne Vestbø  <tavestbo@trolltech.com>
3935
3936         Reviewed by Simon.
3937
3938         Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.
3939
3940         https://bugs.webkit.org/show_bug.cgi?id=18482
3941
3942         We need to repaint scrollbars after a geometry change, and also make sure
3943         the computed clipping rect for the corners between scrollbars is propagated
3944         to the chrome client without beeing intersected by the visible content rect
3945         of the frame.
3946
3947         * platform/ScrollView.h:
3948         * platform/qt/ScrollViewQt.cpp:
3949         (WebCore::ScrollView::geometryChanged):
3950         (WebCore::ScrollView::suppressScrollbars):
3951         (WebCore::ScrollView::invalidateScrollbars):
3952
3953 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3954
3955         Reviewed by Simon.
3956
3957         Calling QWebView::setCursor will override the WebCore Cursor.
3958         Calling QWebView::setCursor will override the WebCore Cursor using
3959         QWidget::unsetCursor will revert to the WebCore Cursor.
3960
3961         For detecting the unset we have to compare the shape of the
3962         cursor to the default arrow. Qt::WA_SetCursor can not be used
3963         as it is set unconditionally but conditionally removed.
3964
3965         Calling QWidget::setCursor will immediately send the CursorChange
3966         event. We listen to this event to decide if we currently use a
3967         WebCore cursor, got a cursor from outside, or revert to the default.
3968
3969         This should be race free and work reliable, the manual test for this
3970         is WebCore/manual-tests/cursor.html
3971
3972         * platform/qt/WidgetQt.cpp:
3973         (WebCore::Widget::setCursor):
3974
3975 2008-04-28  Dan Bernstein  <mitz@apple.com>
3976
3977         Reviewed by Maciej Stachowiak.
3978
3979         - fix https://bugs.webkit.org/show_bug.cgi?id=18795
3980           REGRESSION (r32660): Text heavier with text-shadow
3981
3982         * rendering/InlineTextBox.cpp:
3983         (WebCore::paintTextWithShadows): The loop was doing one extra pass
3984         without shadow even in cases where the last pass with a shadow was
3985         painting the text at the right position (rather than outside the clip).
3986         Fixed that. The only case where a separate pass without shadow is needed
3987         is when there is text-stroke, since in that case all shadow passes
3988         paint the text outside the clip.
3989
3990 2008-04-28  Brady Eidson <beidson@apple.com>
3991
3992         Reviewed by Sam Weinig
3993
3994         Add Storage.clear(), per updates to HTML5
3995
3996         Tests: storage/domstorage/localstorage/clear.html
3997                storage/domstorage/sessionstorage/clear.html
3998
3999         * storage/LocalStorageArea.cpp:
4000         (WebCore::LocalStorageArea::areaCleared):
4001         * storage/LocalStorageArea.h:
4002
4003         * storage/SessionStorageArea.cpp:
4004         (WebCore::SessionStorageArea::areaCleared):
4005         * storage/SessionStorageArea.h:
4006
4007         * storage/Storage.cpp:
4008         (WebCore::Storage::clear):
4009         * storage/Storage.h:
4010         * storage/Storage.idl:
4011
4012         * storage/StorageArea.cpp:
4013         (WebCore::StorageArea::internalClear):
4014         * storage/StorageArea.h:
4015         (WebCore::StorageArea::clear):
4016
4017 2008-04-28  Adele Peterson  <adele@apple.com>
4018
4019         Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.
4020
4021         WebCore part of fix for <rdar://problem/3709505>
4022         Safari should have a way to upload bundles from the file upload control (as zip)
4023
4024         * WebCore.base.exp: Added symbols.
4025
4026         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Ask the application if a file will need to be replaced before it's uploaded.
4027           It will also give the replacement filename which is used to determine the correct mime-type and to construct the correct header.
4028
4029         * loader/FrameLoader.cpp:
4030         (WebCore::FrameLoader::submitForm): Asks the application to generate any files for the form data before a form submission starts.
4031         (WebCore::FrameLoader::loadItem): ditto.
4032         * loader/ResourceLoader.cpp:
4033         (WebCore::ResourceLoader::didReceiveResponse): Tells the FormData from the request to remove any generated files if it needs to.
4034         (WebCore::ResourceLoader::didCancel): ditto.
4035         (WebCore::ResourceLoader::didFail): ditto.
4036
4037         * platform/network/FormData.cpp:
4038         (WebCore::FormData::FormData): Initializes m_hasGeneratedFiles, which keeps track of whether there are files that will need to be removed.
4039         (WebCore::FormData::~FormData): Added.  Assert that there are no files that need to be removed, but if there are, release builds will still remove them here.
4040         (WebCore::FormData::appendFile): Passes along a shouldGenerateFile flag to the FormDataElement.
4041         (WebCore::FormData::generateFiles): Added. Iterates through the FormDataElements, and using the ChromeClient pointer, asks the application to
4042          create any compressed files so the FormDataElements can store the paths.
4043         (WebCore::FormData::removeGeneratedFilesIfNeeded): Added.  Removes generated files and their directories (if empty).
4044         * platform/network/FormData.h:
4045         (WebCore::FormDataElement::FormDataElement): Added a boolean to track whether the file will need to be generated,
4046          and a string to hold the path of the generated file.
4047
4048         * platform/network/mac/FormDataStreamMac.mm:
4049         (WebCore::advanceCurrentStream): Uses the generated file path instead of the original file path when streaming the file.
4050         (WebCore::setHTTPBody): Uses the generated file path when determining the size of the file to be uploaded.
4051
4052         * platform/FileSystem.h: Added directoryName.
4053         * platform/posix/FileSystemPOSIX.cpp: (WebCore::directoryName): Added.
4054         * platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): Added empty implementation.
4055         * platform/qt/FileSystemQt.cpp: (WebCore::directoryName): ditto.
4056         * platform/win/FileSystemWin.cpp: (WebCore::directoryName): ditto.
4057         * platform/wx/FileSystemWx.cpp: (WebCore::directoryName): ditto.
4058
4059         Added new ChromeClient methods to give the application control over the file compression for uploading.
4060         * page/Chrome.cpp:
4061         (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation.
4062         (WebCore::ChromeClient::generateReplacementFile): ditto.
4063         * page/ChromeClient.h:
4064
4065 2008-04-28  Anders Carlsson  <andersca@apple.com>
4066
4067         Reviewed by Sam, Mark, Adele and Darin.
4068
4069         Add a (currently not called) method for opening the application cache database.
4070         
4071         * WebCore.base.exp:
4072         * loader/appcache/ApplicationCacheStorage.cpp:
4073         (WebCore::ApplicationCacheStorage::setCacheDirectory):
4074         (WebCore::ApplicationCacheStorage::openDatabase):
4075         * loader/appcache/ApplicationCacheStorage.h:
4076
4077 2008-04-28  Alice Liu  <alice.liu@apple.com>
4078
4079         Reviewed by Darin.
4080
4081         Fix <rdar://problem/4911289> Add tabindex property to all children 
4082         of HTMLElement (7138)
4083         http://bugs.webkit.org/show_bug.cgi?id=7138
4084
4085         Test: fast/events/tabindex-focus-blur-all.html
4086
4087         * WebCore.xcodeproj/project.pbxproj:
4088         * bindings/objc/DOMPrivate.h:
4089         -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no
4090          longer needed
4091
4092         * bindings/objc/PublicDOMInterfaces.h:
4093         -Moving focus, blur, tabindex to HTMLElement from its descendants.
4094
4095         * dom/Node.cpp:
4096         (WebCore::Node::Node):
4097         (WebCore::Node::isFocusable):
4098         (WebCore::Node::isKeyboardFocusable):
4099         -The concept of being focusable now needs to account for tabindex
4100         attribute.
4101
4102         * dom/Node.h:
4103         -Need to use a bit to keep track of whether tabindex was explicitly set
4104          to 0 or was just initialized to 0.
4105         (WebCore::Node::tabIndex):
4106         -Make this virtual so that Anchors and GenericFormElements can determine
4107          tabindex without accounting for focusability
4108         (WebCore::Node::setTabIndexExplicitly):
4109         -Renamed setTabIndex() to setTabIndexExplicitly() so as not to hide
4110          behind and/or be confused for HTMLElement::setTabIndex
4111
4112         * html/HTMLAnchorElement.cpp:
4113         * html/HTMLAnchorElement.h:
4114         (WebCore::HTMLAnchorElement::tabIndex):
4115         * html/HTMLGenericFormElement.cpp:
4116         * html/HTMLGenericFormElement.h:
4117         (WebCore::HTMLGenericFormElement::tabIndex):
4118         -Anchors and form elements are normally focusable, and need to avert the
4119          check for focusability in HTMLElement::tabIndex
4120          because tabIndex could be queried before a first layout happens.
4121
4122         * html/HTMLElement.cpp:
4123         (WebCore::HTMLElement::parseMappedAttribute):
4124         -Function Node::setTabIndex changed to Node::setTabIndexExplicitly
4125         (WebCore::HTMLElement::isFocusable):
4126         -The concept of being focusable now needs to account for tabindex
4127          attribute.
4128         (WebCore::HTMLElement::tabIndex):
4129         -HTML5 specifies that querying tabindex for elements that aren't
4130          focusable shall return -1
4131         (WebCore::HTMLElement::setTabIndex):
4132         -New default implementation
4133         * html/HTMLElement.h:
4134
4135         * html/HTMLLegendElement.cpp:
4136         (WebCore::HTMLLegendElement::focus):
4137         -Now with HTML5's enhanced specification of tabindex, legend elements
4138          themselves shall focus (if they should), and not the first form element 
4139          they encapsulate.  This matches Firefox behavior.  HTMLLabelElements
4140          still forward focus to the encapsulated element.  This also matches
4141          other browsers. 
4142
4143         * html/HTMLAreaElement.cpp:
4144         (WebCore::HTMLAreaElement::isFocusable):
4145         * html/HTMLAreaElement.h:
4146         -HTMLAreaElement isn't subject to the same focusability requirements as
4147          its parent, HTMLAnchorElement. Default HTMLElement implementation is
4148          desired.  
4149
4150         * html/HTMLFieldSetElement.cpp:
4151         (WebCore::HTMLFieldSetElement::isFocusable):
4152         * html/HTMLLegendElement.cpp:
4153         (WebCore::HTMLLegendElement::isFocusable):
4154         * html/HTMLOptGroupElement.cpp:
4155         (WebCore::HTMLOptGroupElement::isFocusable):
4156         * html/HTMLOptionElement.cpp:
4157         (WebCore::HTMLOptionElement::isFocusable):
4158         -These elements aren't subject to the same focusability requirements as
4159          their parent, HTMLGenericFormElement. Default HTMLElement 
4160          implementation is desired.  
4161
4162         * html/HTMLAnchorElement.idl:
4163         * html/HTMLAreaElement.idl:
4164         * html/HTMLButtonElement.idl:
4165         * html/HTMLElement.idl:
4166         * html/HTMLInputElement.idl:
4167         * html/HTMLLabelElement.idl:
4168         * html/HTMLLegendElement.idl:
4169         * html/HTMLObjectElement.idl:
4170         * html/HTMLSelectElement.idl:
4171         * html/HTMLTextAreaElement.idl:
4172         -Moving tabindex attribute, focus and blur methods from descendants of
4173          HTMLElement to HTMLElement
4174
4175 2008-04-28  Dan Bernstein  <mitz@apple.com>
4176
4177         Reviewed by Dave Hyatt.
4178
4179         - support multiple box- and text-shadows
4180
4181         Tests: fast/css/shadow-multiple.html
4182                fast/repaint/shadow-multiple-horizontal.html
4183                fast/repaint/shadow-multiple-strict-horizontal.html
4184                fast/repaint/shadow-multiple-strict-vertical.html
4185                fast/repaint/shadow-multiple-vertical.html
4186
4187         * css/CSSComputedStyleDeclaration.cpp:
4188         (WebCore::valueForShadow): Changed to account for reversing the order
4189         of the shadow values in the ShadowData list.
4190
4191         * css/CSSValueList.cpp:
4192         (WebCore::CSSValueList::prepend): Added.
4193         * css/CSSValueList.h:
4194
4195         * rendering/InlineFlowBox.cpp:
4196         (WebCore::InlineFlowBox::placeBoxesHorizontally): Changed to account for
4197         all shadows in overflow calculation.
4198         (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
4199         (WebCore::InlineFlowBox::paint): Changed to account for all shadows
4200         when testing for intersection with the damage rect.
4201         (WebCore::InlineFlowBox::paintTextDecorations): Changed to paint all
4202         shadows.
4203
4204         * rendering/InlineTextBox.cpp:
4205         (WebCore::paintTextWithShadows): Factored out from paint() and changed
4206         to paint all shadows.
4207         (WebCore::InlineTextBox::paint): Moved the text painting code out to
4208         paintTextWithShadows(). Changed to not paint shadows for markers and
4209         composition underlines and in "force black text" mode.
4210         (WebCore::InlineTextBox::paintSelection):
4211         (WebCore::InlineTextBox::paintCompositionBackground):
4212         (WebCore::InlineTextBox::paintDecoration): Changed to paint all shadows.
4213         * rendering/InlineTextBox.h: Changed some public methods to private
4214         or protected.
4215
4216         * rendering/RenderBlock.cpp:
4217         (WebCore::RenderBlock::overflowHeight): Changed to account for all
4218         shadows.
4219         (WebCore::RenderBlock::overflowWidth): Ditto.
4220         (WebCore::RenderBlock::overflowLeft): Ditto.
4221         (WebCore::RenderBlock::overflowTop): Ditto.
4222         (WebCore::RenderBlock::overflowRect): Ditto.
4223         (WebCore::RenderBlock::layoutBlock): Ditto.
4224
4225         * rendering/RenderFlexibleBox.cpp:
4226         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
4227
4228         * rendering/RenderLayer.cpp:
4229         (WebCore::RenderLayer::calculateRects): Ditto.
4230
4231         * rendering/RenderObject.cpp:
4232         (WebCore::RenderObject::paintBoxShadow): Changed to paint all shadows.
4233         Changed to avoid clipping out the box if it has a fully opaque
4234         background.
4235         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Changed to account
4236         for all shadows.
4237         (WebCore::RenderObject::selectionForegroundColor): Cleaned up.