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