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