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