2009-06-15 Adele Peterson Reviewed by Darin Adler. Fix for Pasting a paragraph as quotation leaves you typing in blue instead of black; repros * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): When inserting a newline after the blockquote, we don't want to apply the original style after the insertion. 2009-06-15 Sam Weinig Reviewed by Anders Carlsson. Remove outdated comment. * bindings/js/JSDOMWindowBase.h: 2009-06-15 Sam Weinig Reviewed by Anders Carlsson. Bring CustomGetPropertyNames more inline with the other extended attributes prefixed with Custom, by making it require a complete implementation. * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::getPropertyNames): * bindings/js/JSHistoryCustom.cpp: (WebCore::JSHistory::getPropertyNames): * bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::getPropertyNames): * bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::getPropertyNames): * bindings/scripts/CodeGeneratorJS.pm: 2009-06-15 Sam Weinig Reviewed by Anders Carlsson. Remove commented out ondataunavailable attribute event listener which has now been removed from HTML 5. * page/DOMWindow.idl: 2009-06-15 Sam Weinig Reviewed by Anders Carlsson. Move entire custom implementation of getOwnPropertySlot and put for JSDOMWindow into JSDOMWindowCustom, eliminating the bit in JSDOMWindowBase. * bindings/js/JSDOMWindowBase.cpp: * bindings/js/JSDOMWindowBase.h: * bindings/js/JSDOMWindowCustom.cpp: (WebCore::nonCachingStaticFunctionGetter): (WebCore::childFrameGetter): (WebCore::indexGetter): (WebCore::namedItemGetter): (WebCore::JSDOMWindow::getOwnPropertySlot): (WebCore::JSDOMWindow::put): (WebCore::JSDOMWindow::getPropertyAttributes): * bindings/js/JSDOMWindowCustom.h: * page/DOMWindow.idl: 2009-06-15 Jeremy Orlow (jorlow@chromium.org) Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=26356 Define the functions in V8CustomBindings.h. "Forgot" this in my earlier patch since it wasn't fully upstreamed when I wrote the patch. * bindings/v8/custom/V8CustomBinding.h: 2009-06-15 Andre Boule Reviewed by Cameron Zwarich and Dan Bernstein. - fix crash with NSString drawAtPoint No test possible because this crash can only occur if the client uses WebKit text drawing without ever using WebCore text, and DumpRenderTree cannot do either. * platform/graphics/FontCache.cpp: (WebCore::FontCache::purgeInactiveFontData): Null-check gFontPlatformDataCache. 2009-06-15 Simon Fraser Reviewed by Mark Rowe. Define ENABLE_3D_RENDERING when building on 10.6, and move ENABLE_3D_RENDERING switch from config.h to wtf/Platform.h. * Configurations/FeatureDefines.xcconfig: * config.h: 2009-06-15 Pavel Feldman Reviewed by Timothy Hatcher. Make WebInspector's console evaluation/completion asynchronous. This way of evaluation allows serializing calls between InspectorController and its frontend. https://bugs.webkit.org/show_bug.cgi?id=26350 * inspector/front-end/Console.js: (WebInspector.Console.prototype.completions): (WebInspector.Console.prototype._reportCompletions): (WebInspector.Console.prototype._evalInInspectedWindow): (WebInspector.Console.prototype._enterKeyPressed.printResult): (WebInspector.Console.prototype._enterKeyPressed): * inspector/front-end/DatabaseQueryView.js: * inspector/front-end/ObjectPropertiesSection.js: (WebInspector.ObjectPropertyTreeElement.prototype.evaluateExpression): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame): * inspector/front-end/TextPrompt.js: (WebInspector.TextPrompt.prototype.complete): (WebInspector.TextPrompt.prototype._completionsReady): 2009-06-15 Kevin McCullough Reviewed by Tim Hatcher. Reverted previous change as the old behavior was correct for heavy view. * inspector/front-end/BottomUpProfileDataGridTree.js: (WebInspector.BottomUpProfileDataGridNode.prototype._populate): 2009-06-15 Kevin McCullough Reviewed by Tim Hatcher. Profiler 'Call' count is incorrect in Heavy view (26418) - Removed code that copied call and time data from it's ancestor. * inspector/front-end/BottomUpProfileDataGridTree.js: (WebInspector.BottomUpProfileDataGridNode.prototype._populate): 2009-06-15 Chris Marrin Reviewed by Simon Fraser . https://bugs.webkit.org/show_bug.cgi?id=26163 Added logic to updateTransitions similar to that in updateKeyframeAnimations which detects and removes stale transitions. Test: transitions/cancel-transition.html * page/animation/CompositeAnimation.cpp: (WebCore::CompositeAnimation::updateTransitions): * page/animation/ImplicitAnimation.cpp: (WebCore::ImplicitAnimation::ImplicitAnimation): * page/animation/ImplicitAnimation.h: (WebCore::ImplicitAnimation::active): (WebCore::ImplicitAnimation::setActive): 2009-06-15 Dan Bernstein Reviewed by Tim Hatcher. - allow the source code font in the Web Inspector to be customized * css/view-source.css: Use the default monospace font family and size for source code. * inspector/front-end/inspector.css: Use the default monospace font family and size for console I/O. 2009-06-15 Simon Hausmann Reviewed by and done with Tor Arne Vestbø. Fix initialization of uninitialized members in FontFallbackListQt, leading to random crashes when rendering text. * platform/graphics/qt/FontFallbackListQt.cpp: (WebCore::FontFallbackList::FontFallbackList): (WebCore::FontFallbackList::invalidate): 2009-06-15 Xan Lopez Reviewed by Holger Freyther. https://bugs.webkit.org/show_bug.cgi?id=25895 [Gtk] Segfault when deleting the last/only character in an entry if a11y is enabled Use computeOffsetInContainerNode instead of the inline offsetInContainerNode to return the caret offset, since the former can handle all types of anchoring. Otherwise we'll hit an ASSERT in some situations in debug builds, and crash. * editing/gtk/SelectionControllerGtk.cpp: (WebCore::SelectionController::notifyAccessibilityForSelectionChange): 2009-06-15 Joe Ligman Reviewed by Simon Hausmann. [Qt] Fix build break Rename JSONObject to InspectorJSONObject https://bugs.webkit.org/show_bug.cgi?id=26340 * GNUmakefile.am: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * WebCoreSources.bkl: * inspector/ConsoleMessage.cpp: (WebCore::ConsoleMessage::addToConsole): * inspector/InspectorDOMStorageResource.cpp: (WebCore::InspectorDOMStorageResource::bind): * inspector/InspectorDatabaseResource.cpp: (WebCore::InspectorDatabaseResource::bind): * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::newInspectorJSONObject): (WebCore::InspectorFrontend::addMessageToConsole): (WebCore::InspectorFrontend::addResource): (WebCore::InspectorFrontend::updateResource): (WebCore::InspectorFrontend::addDatabase): (WebCore::InspectorFrontend::addDOMStorage): * inspector/InspectorFrontend.h: * inspector/InspectorJSONObject.cpp: Copied from WebCore/inspector/JSONObject.cpp. (WebCore::InspectorJSONObject::InspectorJSONObject): (WebCore::InspectorJSONObject::set): (WebCore::InspectorJSONObject::scriptObject): (WebCore::InspectorJSONObject::createNew): * inspector/InspectorJSONObject.h: Copied from WebCore/inspector/JSONObject.h. * inspector/InspectorResource.cpp: (WebCore::populateHeadersObject): (WebCore::InspectorResource::createScriptObject): (WebCore::InspectorResource::updateScriptObject): * inspector/JSONObject.cpp: Removed. * inspector/JSONObject.h: Removed. 2009-06-12 Tor Arne Vestbø Reviewed by Simon Hausmann. Refactor handling of options in the build-webkit script Options are now defined in one place, and then reused when creating the usage help text, the arguments to GetOptions(), and when passing the options on to the underlying port-dependent build systems. This allows the Qt port to read the defaults for the options from the pro file (dynamically), and to pass the options on to qmake at build. * WebCore.pro: 2009-06-14 chris fleizach Reviewed by Darin Adler. Bug 26399: REGRESSION: java applet accessibility broken https://bugs.webkit.org/show_bug.cgi?id=26399 Accessibility could not access the elements in a java applet when going down the AX hierarchy. Test: DRT does not allow java applets so add a manual test: manual-tests/accessibility/java-applet.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::doAccessibilityHitTest): * accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::accessibilityIgnoreAttachment): * accessibility/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper attachmentView]): * manual-tests/accessibility: Added. * manual-tests/accessibility/java-applet.html: Added. * manual-tests/accessibility/resources: Added. * manual-tests/accessibility/resources/AppletTest.class: Added. * manual-tests/accessibility/resources/AppletTest.java: Added. (AppletTest): (AppletTest.init): 2009-06-14 Sam Weinig Reviewed by Cameron Zwarich. Rename the CustomGetOwnPropertySlot and CustomPutFunction extended attributes to DelegatingGetOwnPropertySlot and DelegatingPutFunction to more clearly describe their functionality (customGetOwnPropertySlot and customPut member functions have been renamed getOwnPropertySlotDelegate and putDelegate). CustomGetOwnPropertySlot and CustomPutFunction have been repurposed to mean a complete custom implementation of the function which is inline with other extended attributes prefixed with Custom. * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::putDelegate): * bindings/js/JSDOMWindowCustom.h: (WebCore::JSDOMWindow::getOwnPropertySlotDelegate): (WebCore::JSDOMWindow::putDelegate): * bindings/js/JSHTMLAppletElementCustom.cpp: (WebCore::JSHTMLAppletElement::getOwnPropertySlotDelegate): (WebCore::JSHTMLAppletElement::putDelegate): * bindings/js/JSHTMLEmbedElementCustom.cpp: (WebCore::JSHTMLEmbedElement::getOwnPropertySlotDelegate): (WebCore::JSHTMLEmbedElement::putDelegate): * bindings/js/JSHTMLObjectElementCustom.cpp: (WebCore::JSHTMLObjectElement::getOwnPropertySlotDelegate): (WebCore::JSHTMLObjectElement::putDelegate): * bindings/js/JSHistoryCustom.cpp: (WebCore::JSHistory::getOwnPropertySlotDelegate): (WebCore::JSHistory::putDelegate): * bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::getOwnPropertySlotDelegate): (WebCore::JSLocation::putDelegate): (WebCore::JSLocationPrototype::putDelegate): * bindings/js/JSStorageCustom.cpp: (WebCore::JSStorage::putDelegate): * bindings/js/JSWorkerContextCustom.cpp: (WebCore::JSWorkerContext::getOwnPropertySlotDelegate): * bindings/scripts/CodeGeneratorJS.pm: * css/CSSStyleDeclaration.idl: * html/HTMLAppletElement.idl: * html/HTMLEmbedElement.idl: * html/HTMLObjectElement.idl: * page/DOMWindow.idl: * page/History.idl: * page/Location.idl: * storage/Storage.idl: * workers/WorkerContext.idl: 2009-06-14 Dan Bernstein Reviewed by Darin Adler. - fix https://bugs.webkit.org/show_bug.cgi?id=26395 REGRESSION (r40813-r40884): No caret after going back/forward to page with focused text field No test, since the back/forward cache is disabled in DumpRenderTree * loader/FrameLoader.cpp: (WebCore::FrameLoader::open): Added a call to CachedPage::restore(), which was removed in r40870. 2009-06-14 Darin Adler * editing/TextIterator.cpp: (WebCore::BitStack::push): Use named constant instead of hardcoded numbers. (WebCore::BitStack::top): Ditto. 2009-06-14 Darin Adler Reviewed by Dan Bernstein. Bug 26364: Search can find text that's hidden by overflow:hidden https://bugs.webkit.org/show_bug.cgi?id=26364 Test: fast/text/find-hidden-text.html * editing/TextIterator.cpp: (WebCore::BitStack::BitStack): Added. (WebCore::BitStack::push): Added. (WebCore::BitStack::pop): Added. (WebCore::BitStack::top): Added. (WebCore::BitStack::size): Added. (WebCore::parentOrShadowParent): Added. Helper function for walking up the parent node chain, crossing shadow tree boundaries. (WebCore::depthCrossingShadowBoundaries): Added for use in assertions. Counts the depth of a node using the parentOrShadowParent function. (WebCore::fullyClipsContents): Added. Returns true for an element that fully clips its contents, currently defined as a box that has zero width or height and hides overflow. We can add other cases here later. (WebCore::ignoresContainerClip): Added. Returns true for an element that ignores its container clip, currently defined as an element with absolute or fixed positioning. (WebCore::pushFullyClippedState): Added. Pushes a bit on the stack indicating if the node in question fully clips its contents. (WebCore::setUpFullyClippedStack): Added. Pushes a bit for each ancestor of a node. Used when creating an iterator. (WebCore::TextIterator::TextIterator): Removed code to initialize m_inShadowContent. Call setUpFullyClippedStack. (WebCore::TextIterator::advance): Use parentOrShadowParent. Call pop when moving up to a parent node, and also one extra time when moving to a sibling node. Call pushFullyClippedState when moving to a child node, or when moving to a sibling node after the aforementioned call to pop. (WebCore::TextIterator::handleTextNode): Return early if the node is fully clipped. (WebCore::TextIterator::handleReplacedElement): Ditto. (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Call setUpFullyClippedStack. (WebCore::SimplifiedBackwardsTextIterator::advance): Same changes as TextIterator::advance above. * editing/TextIterator.h: Added BitStack class and added m_fullyClippedStack to both TextIterator and SimplifiedBackwardsTextIterator. Removed unneeded m_inShadowContent. 2009-06-14 David Hyatt Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=26362 Back out Simon's fix and replace it with a better one that doesn't needlessly destroy RenderObjects. Use NoInherit rather than Detach for child index changes, and don't worry about other pseudo-class state changes, since they were handled already with setNeedsStyleRecalcs on the affected objects themselves. * dom/Element.cpp: (WebCore::Element::recalcStyle): * dom/Node.cpp: (WebCore::Node::diff): * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::setChildIndex): 2009-06-14 David Hyatt Reviewed by Dan Bernstein. Move all of the mutable member variables from Font into the refcounted FontFallbackList. This makes copying of Fonts more efficient and also effectively makes all of the mutations of a Font object happen inside the FontFallbackList. * WebCore.base.exp: * platform/graphics/Font.cpp: (WebCore::Font::Font): (WebCore::Font::operator=): (WebCore::Font::primaryFont): (WebCore::Font::update): * platform/graphics/Font.h: (WebCore::Font::setWordSpacing): (WebCore::Font::setLetterSpacing): * platform/graphics/FontFallbackList.cpp: (WebCore::FontFallbackList::FontFallbackList): (WebCore::FontFallbackList::invalidate): (WebCore::FontFallbackList::determinePitch): * platform/graphics/FontFallbackList.h: (WebCore::FontFallbackList::primarySimpleFontData): (WebCore::FontFallbackList::primaryFontData): * platform/graphics/FontFastPath.cpp: (WebCore::Font::glyphDataForCharacter): 2009-06-14 Simon Fraser Reviewed by Darin Adler https://bugs.webkit.org/show_bug.cgi?id=26362 Fix an issue noted on quirksmode.com where dynamically adding siblings does not update :nth-child style correctly. Test: fast/css/nth-child-dynamic.html * dom/Node.h: Change diff() to take const RenderStyle* * dom/Node.cpp: (WebCore::Node::diff): When comparing styles to decide whether to detach and reattach, we need to look at whether the pseudoclass-related data in the style changed (since RenderStyle::diff doesn't check this). * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::getCachedPseudoStyle): (WebCore::RenderStyle::inheritedNotEqual): Make these methods const. * rendering/style/RenderStyle.h: (WebCore::InheritedFlags::styleType): (WebCore::InheritedFlags::pseudoClassStateEquivalent): Make methods const. Add new method that compares the pseudoclass-related members. 2009-06-13 Peter Kasting Reviewed by Kevin Ollivier. https://bugs.webkit.org/show_bug.cgi?id=25709 part eleven Write a wx implementation so the wx port can compile. For now this is mostly a copy of the Cairo port, but in the future it can be changed to use a wxBitmap as the storage type everywhere (just as Cairo can probably be changed). Also ASSERT for any other ports who call getAddr() (I don't think there are any, and besides, they probably won't link, but this doesn't hurt). Also fixes a dumb Cairo build bustage typo introduced in part ten. * platform/graphics/wx/ImageSourceWx.cpp: (WebCore::ImageSource::createFrameAtIndex): * platform/image-decoders/ImageDecoder.h: (WebCore::RGBA32Buffer::getAddr): * platform/image-decoders/cairo/ImageDecoderCairo.cpp: (WebCore::RGBA32Buffer::setStatus): * platform/image-decoders/wx: Added. * platform/image-decoders/wx/ImageDecoderWx.cpp: Added. (WebCore::RGBA32Buffer::RGBA32Buffer): (WebCore::RGBA32Buffer::clear): (WebCore::RGBA32Buffer::zeroFill): (WebCore::RGBA32Buffer::copyBitmapData): (WebCore::RGBA32Buffer::setSize): (WebCore::RGBA32Buffer::asNewNativeImage): (WebCore::RGBA32Buffer::hasAlpha): (WebCore::RGBA32Buffer::setHasAlpha): (WebCore::RGBA32Buffer::setStatus): (WebCore::RGBA32Buffer::operator=): (WebCore::RGBA32Buffer::width): (WebCore::RGBA32Buffer::height): * webcore-wx.bkl: 2009-06-13 Stephen White Reviewed by Dimitri Glazkov. Landed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=26320 Some minor code cleanup for chromium/skia port. Removed #ifdef's around skia API changes, since the new version seems solid and we don't need to go back. Added some comments to TransparencyWin.h, as requested by Brett in https://bugs.webkit.org/show_bug.cgi?id=24584. * platform/graphics/chromium/FontCacheLinux.cpp: (WebCore::FontCache::createFontPlatformData): * platform/graphics/chromium/TransparencyWin.h: * platform/graphics/skia/PathSkia.cpp: (WebCore::Path::boundingRect): (WebCore::boundingBoxForCurrentStroke): * platform/graphics/skia/SkiaUtils.cpp: (WebCore::SkPathContainsPoint): 2009-06-13 Adam Barth Reviewed by Darin Fisher. https://bugs.webkit.org/show_bug.cgi?id=24492 Moved registerURLSchemeAsLocal and registerURLSchemeAsNoAccess from FrameLoader to SecurityOrigin. * WebCore.base.exp: * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadFrameRequest): (WebCore::FrameLoader::canLoad): * loader/FrameLoader.h: * page/SecurityOrigin.cpp: (WebCore::localSchemes): (WebCore::noAccessSchemes): (WebCore::SecurityOrigin::SecurityOrigin): (WebCore::SecurityOrigin::isLocal): (WebCore::SecurityOrigin::registerURLSchemeAsLocal): (WebCore::SecurityOrigin::shouldTreatURLAsLocal): (WebCore::SecurityOrigin::shouldTreatURLSchemeAsLocal): (WebCore::SecurityOrigin::registerURLSchemeAsNoAccess): (WebCore::SecurityOrigin::shouldTreatURLSchemeAsNoAccess): * page/SecurityOrigin.h: 2009-06-13 Ben Murdoch Reviewed by David Kilzer. Landed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=26189 This patch changes the way PageGroups create their localStorage objects. Rather than creating a local storage object for the page group when a page is added to the group, the local storage object is now created lazily when the local storage object is requested by the DOMWindow. * page/PageGroup.cpp: (WebCore::PageGroup::closeLocalStorage): Before attempting to close a local storage object for a page group, ensure one has been created. (WebCore::PageGroup::addPage): Do not automatically try to create a local storage object when a page is added to the group. (WebCore::PageGroup::localStorage): Create a local storage object if one does not exist and return it. * page/PageGroup.h: Add private hasLocalStorage method to PageGroup. 2009-06-13 Ben Murdoch Reviewed by Eric Seidel. Landed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=26189 Add ENABLE(DOM_STORAGE) guards to the dom storage source files. * storage/LocalStorage.cpp: Add ENABLE(DOM_STORAGE) guards to the file. * storage/LocalStorage.h: Ditto * storage/LocalStorageArea.cpp: Ditto * storage/LocalStorageArea.h: Ditto * storage/LocalStorageTask.cpp: Ditto * storage/LocalStorageTask.h: Ditto * storage/LocalStorageThread.cpp: Ditto * storage/LocalStorageThread.h: Ditto * storage/SessionStorage.cpp: Ditto * storage/SessionStorage.h: Ditto * storage/SessionStorageArea.cpp: Ditto * storage/SessionStorageArea.h: Ditto * storage/Storage.cpp: Ditto * storage/Storage.h: Ditto * storage/StorageArea.cpp: Ditto * storage/StorageArea.h: Ditto * storage/StorageEvent.cpp: Ditto * storage/StorageEvent.h: Ditto * storage/StorageMap.cpp: Ditto * storage/StorageMap.h: Ditto * storage/StorageEvent.idl: Add Conditional=DOM_STORAGE attribute. * storage/Storage.idl: Ditto 2009-06-13 Peter Kasting Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25709 part ten Make Skia use the root directory ImageDecoder.h and factor out most Skia-specific bits into skia/ImageDecoderSkia.cpp. Also fix a pair of style violations in ImageDecoderCairo.cpp. This is the last patch for this bug, everything beyond this is an enhancement rather than unforking. * platform/image-decoders/ImageDecoder.h: (WebCore::RGBA32Buffer::getAddr): * platform/image-decoders/cairo/ImageDecoderCairo.cpp: (WebCore::RGBA32Buffer::hasAlpha): (WebCore::RGBA32Buffer::setHasAlpha): (WebCore::setStatus): * platform/image-decoders/skia/ImageDecoder.h: Removed. * platform/image-decoders/skia/ImageDecoderSkia.cpp: Added. (WebCore::RGBA32Buffer::RGBA32Buffer): (WebCore::RGBA32Buffer::clear): (WebCore::RGBA32Buffer::zeroFill): (WebCore::RGBA32Buffer::copyBitmapData): (WebCore::RGBA32Buffer::setSize): (WebCore::RGBA32Buffer::asNewNativeImage): (WebCore::RGBA32Buffer::hasAlpha): (WebCore::RGBA32Buffer::setHasAlpha): (WebCore::RGBA32Buffer::setStatus): (WebCore::RGBA32Buffer::operator=): (WebCore::RGBA32Buffer::width): (WebCore::RGBA32Buffer::height): 2009-06-13 Victor Wang Reviewed by Eric Seidel. Landed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=26333 Alert during a dragenter event handler will crash the renderer This crash is casued by calling NULL pointer m_documentUnderMouse in DragController::tryDocumentDrag() tryDHTMLDrag fires dragenter event. The event listener that listens to this event may create a nested message loop (open a modal dialog), which could process dragleave event and reset m_documentUnderMouse in dragExited. Fix the crash by checking m_documentUnderMouse after tryDHTMLDrag and do not continue if the pointer has been set to NULL. Test: DRT does not show alerts so add a manual test: manual-tests/drag-enter-alert.html * manual-tests/drag-enter-alert.html: Added. * manual-tests/resources/drag-image.png: Added. * page/DragController.cpp: (WebCore::DragController::tryDocumentDrag): 2009-06-13 Nate Chapin Reviewed by Dimitri Glazkov. Landed by Adam Barth. Moved V8 Bindings for V8CustomXPathNSResolver to svn.webkit.org. https://bugs.webkit.org/show_bug.cgi?id=26227 * bindings/v8/custom/V8CustomXPathNSResolver.cpp: Added. (WebCore::V8CustomXPathNSResolver::V8CustomXPathNSResolver): Moved from src.chromium.org. (WebCore::V8CustomXPathNSResolver::~V8CustomXPathNSResolver): Moved from src.chromium.org. (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI): Moved from src.chromium.org. * bindings/v8/custom/V8CustomXPathNSResolver.h: Added. * bindings/v8/custom/V8DocumentCustom.cpp: Updated includes. (WebCore::CALLBACK_FUNC_DECL): Updated class name. 2009-06-13 Laszlo Gombos Reviewed by Mark Rowe. Landed by Adam Barth. Remove obsolete declarations for old Symbian port https://bugs.webkit.org/show_bug.cgi?id=26339 * platform/graphics/FloatPoint.h: Remove declarations for native SYMBIAN adaptation. * platform/graphics/FloatRect.h: Ditto. * platform/graphics/IntPoint.h: Ditto. * platform/graphics/IntRect.h: Ditto. * platform/graphics/IntSize.h: Ditto. 2009-06-13 Dirk Schulze Reviewed by Eric Seidel. Added subRegion calculation to SVG filter. Every filter effect is clipped to the filter region (according to the spec). This makes ImageBuffers for filter effects smaller and we just need to take care about big filter regions. SVGFEImage needed a correction, to avoid an ASSERT. The two filter effects feOffset and feFlood help to test the new subRegion code. Tests: svg/filters/subRegion-one-effect.svg svg/filters/subRegion-two-effects.svg * platform/graphics/filters/FEBlend.h: (WebCore::FEBlend::uniteChildEffectSubregions): * platform/graphics/filters/FEColorMatrix.h: (WebCore::FEColorMatrix::uniteChildEffectSubregions): * platform/graphics/filters/FEComponentTransfer.h: (WebCore::FEComponentTransfer::uniteChildEffectSubregions): * platform/graphics/filters/FEComposite.h: (WebCore::FEComposite::uniteChildEffectSubregions): * platform/graphics/filters/Filter.h: (WebCore::Filter::setSourceImage): (WebCore::Filter::sourceImage): * platform/graphics/filters/FilterEffect.cpp: (WebCore::FilterEffect::FilterEffect): (WebCore::FilterEffect::calculateUnionOfChildEffectSubregions): (WebCore::FilterEffect::calculateEffectRect): * platform/graphics/filters/FilterEffect.h: (WebCore::FilterEffect::setUnionOfChildEffectSubregions): (WebCore::FilterEffect::unionOfChildEffectSubregions): (WebCore::FilterEffect::hasX): (WebCore::FilterEffect::setHasX): (WebCore::FilterEffect::hasY): (WebCore::FilterEffect::setHasY): (WebCore::FilterEffect::hasWidth): (WebCore::FilterEffect::setHasWidth): (WebCore::FilterEffect::hasHeight): (WebCore::FilterEffect::setHasHeight): (WebCore::FilterEffect::setEffectBuffer): (WebCore::FilterEffect::uniteChildEffectSubregions): * platform/graphics/filters/SourceAlpha.h: (WebCore::SourceAlpha::calculateEffectRect): * platform/graphics/filters/SourceGraphic.cpp: (WebCore::SourceGraphic::calculateEffectRect): (WebCore::SourceGraphic::apply): * platform/graphics/filters/SourceGraphic.h: * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::prepareToRenderSVGContent): (WebCore::SVGRenderBase::finishRenderSVGContent): * svg/SVGFilterPrimitiveStandardAttributes.cpp: (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes): * svg/graphics/SVGResourceFilter.cpp: (WebCore::SVGResourceFilter::prepareFilter): (WebCore::SVGResourceFilter::applyFilter): * svg/graphics/SVGResourceFilter.h: * svg/graphics/filters/SVGFEConvolveMatrix.h: (WebCore::FEConvolveMatrix::uniteChildEffectSubregions): * svg/graphics/filters/SVGFEDiffuseLighting.h: (WebCore::FEDiffuseLighting::uniteChildEffectSubregions): * svg/graphics/filters/SVGFEDisplacementMap.h: (WebCore::FEDisplacementMap::uniteChildEffectSubregions): * svg/graphics/filters/SVGFEFlood.cpp: (WebCore::FEFlood::apply): * svg/graphics/filters/SVGFEGaussianBlur.h: (WebCore::FEGaussianBlur::uniteChildEffectSubregions): * svg/graphics/filters/SVGFEImage.cpp: (WebCore::FEImage::FEImage): * svg/graphics/filters/SVGFEImage.h: * svg/graphics/filters/SVGFEMerge.cpp: (WebCore::FEMerge::uniteEffectRect): * svg/graphics/filters/SVGFEMerge.h: * svg/graphics/filters/SVGFEMorphology.h: (WebCore::FEMorphology::uniteChildEffectSubregions): * svg/graphics/filters/SVGFEOffset.cpp: (WebCore::FEOffset::apply): * svg/graphics/filters/SVGFEOffset.h: (WebCore::FEOffset::uniteChildEffectSubregions): * svg/graphics/filters/SVGFESpecularLighting.h: (WebCore::FESpecularLighting::uniteEffectRect): * svg/graphics/filters/SVGFETile.cpp: (WebCore::FETile::uniteChildEffectSubregions): * svg/graphics/filters/SVGFETile.h: * svg/graphics/filters/SVGFilter.cpp: (WebCore::SVGFilter::calculateEffectSubRegion): * svg/graphics/filters/SVGFilter.h: (WebCore::SVGFilter::effectBoundingBoxMode): (WebCore::SVGFilter::filterRegion): (WebCore::SVGFilter::sourceImageRect): 2009-06-13 Peter Kasting Bustage: Fix broken GIFs on Cairo due to subtle typo. Fix a warning. * platform/image-decoders/ImageDecoder.h: (WebCore::RGBA32Buffer::copyRowNTimes): * platform/image-decoders/bmp/BMPImageReader.cpp: (WebCore::BMPImageReader::processBitmasks): 2009-06-13 Peter Kasting GTK bustage fix. "inline" is handled differently by different compilers. * platform/image-decoders/ImageDecoder.h: (WebCore::RGBA32Buffer::getAddr): * platform/image-decoders/cairo/ImageDecoderCairo.cpp: 2009-06-13 Peter Kasting Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25709 part nine Factor Cairo-specific implementation out of ImageDecoder.h into ImageDecoderCairo.cpp. Add some comments to functions declared in ImageDecoder.h. * GNUmakefile.am: * WebCore.vcproj/WebCore.vcproj: * platform/image-decoders/ImageDecoder.h: * platform/image-decoders/cairo: Added. * platform/image-decoders/cairo/ImageDecoderCairo.cpp: Added. (WebCore::RGBA32Buffer::RGBA32Buffer): (WebCore::RGBA32Buffer::clear): (WebCore::RGBA32Buffer::zeroFill): (WebCore::RGBA32Buffer::copyBitmapData): (WebCore::RGBA32Buffer::setSize): (WebCore::RGBA32Buffer::asNewNativeImage): (WebCore::RGBA32Buffer::hasAlpha): (WebCore::RGBA32Buffer::setHasAlpha): (WebCore::RGBA32Buffer::operator=): (WebCore::RGBA32Buffer::width): (WebCore::RGBA32Buffer::height): (WebCore::RGBA32Buffer::getAddr): 2009-06-13 David Hyatt Reviewed by Darin Adler. Cleanup of the new MidpointState class. Turn it into a struct instead. Fix a mistaken assertion removal and some unintentional whitespace changes. * platform/text/BidiResolver.h: (WebCore::MidpointState::reset): * rendering/RenderBlock.h: * rendering/bidi.cpp: (WebCore::BidiRun::operator delete): (WebCore::chopMidpointsAt): (WebCore::checkMidpoints): (WebCore::addMidpoint): (WebCore::appendRunsForObject): (WebCore::RenderBlock::findNextLineBreak): 2009-06-12 David Hyatt Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=26367 Remove the global variables in bidi.cpp. Make a new struct, MidpointState, that holds all of the midpoint information. Add the remaining global variables as arguments passed down through functions as needed. * platform/text/BidiResolver.h: (WebCore::MidpointState::MidpointState): (WebCore::MidpointState::reset): (WebCore::BidiResolver::midpointState): * rendering/RenderBlock.h: * rendering/bidi.cpp: (WebCore::BidiRun::operator delete): (WebCore::chopMidpointsAt): (WebCore::checkMidpoints): (WebCore::addMidpoint): (WebCore::appendRunsForObject): (WebCore::RenderBlock::bidiReorderLine): (WebCore::RenderBlock::layoutInlineChildren): (WebCore::RenderBlock::determineStartPosition): (WebCore::skipNonBreakingSpace): (WebCore::shouldCollapseWhiteSpace): (WebCore::requiresLineBox): (WebCore::RenderBlock::generatesLineBoxesForInlineChild): (WebCore::RenderBlock::skipTrailingWhitespace): (WebCore::RenderBlock::skipLeadingWhitespace): (WebCore::shouldSkipWhitespaceAfterStartObject): (WebCore::RenderBlock::findNextLineBreak): 2009-06-12 Holger Hans Peter Freyther Build fix for Qt. After recent ImageDeocder.h changes. I want the original change to be backed out as the whole Skia merging is going in the wrong direction. The discussion will happen in the bugtracker. https://bugs.webkit.org/show_bug.cgi?id=25709. * platform/image-decoders/ImageDecoder.h: 2009-06-12 Jan Michael Alonzo Gtk build fix: include cstdio so we can use sscanf Gtk/Win Cairo build fix: use isASCIISpace instead of isspace Suggested by Brent Fulgham * platform/image-decoders/xbm/XBMImageDecoder.cpp: (WebCore::XBMImageDecoder::decodeDatum): 2009-06-12 Peter Kasting Yet another Skia bustage fix. * platform/image-decoders/skia/ImageDecoder.h: (WebCore::RGBA32Buffer::setSize): Avoid symbol name clash. The better fix is to take an IntSize(); I'll do that later. 2009-06-12 Peter Kasting Fix remaining Cairo build bustage from https://bugs.webkit.org/show_bug.cgi?id=25709 changes. Use Vector in place of std::string. * platform/image-decoders/xbm/XBMImageDecoder.cpp: (WebCore::XBMImageDecoder::setData): (WebCore::XBMImageDecoder::decodeHeader): (WebCore::XBMImageDecoder::decodeDatum): * platform/image-decoders/xbm/XBMImageDecoder.h: 2009-06-12 David Levin Reviewed by Darin Adler. UString shouldn't create sharedBuffer for SmallStrings. https://bugs.webkit.org/show_bug.cgi?id=26347 Change the call to use the method UString::Rep::sharedBuffer due to changes in UString. No noticable change in behavior, so no test. * platform/text/StringImpl.cpp: (WebCore::StringImpl::create): 2009-06-12 Peter Kasting Fix Chromium and some of Cairo build bustage, fallout from https://bugs.webkit.org/show_bug.cgi?id=25709 changes. * WebCore.vcproj/WebCore.vcproj: Add missing XBM decoder files. * platform/image-decoders/skia/ImageDecoder.h: (WebCore::RGBA32Buffer::copyRowNTimes): Fix typo that broke Skia GIF decoding. 2009-06-12 Simon Fraser Reviewed by Dan Bernstein https://bugs.webkit.org/show_bug.cgi?id=26095 Fix crash when a renderer for an anonymous node is composited by null-checking renderer()->node(). Test: compositing/generated-content.html * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::createGraphicsLayer): (WebCore::RenderLayerBacking::rendererHasBackground): (WebCore::RenderLayerBacking::rendererBackgroundColor): (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): (WebCore::RenderLayerBacking::paintIntoLayer): 2009-06-12 Simon Fraser Fix build when ACCELERATED_COMPOSITING is defined. * loader/EmptyClients.h: (WebCore::EmptyChromeClient::attachRootGraphicsLayer): (WebCore::EmptyChromeClient::setNeedsOneShotDrawingSynchronization): (WebCore::EmptyChromeClient::scheduleViewUpdate): Add stubs for the compositing-related ChromeClient methods. * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateRootLayerPosition): (WebCore::RenderLayerCompositor::ensureRootPlatformLayer): docWidth()/docHeight() became private. Use overflowWidth()/overflowHeight() instead, which matches what is used to size the WebHTMLView. 2009-06-12 jorlow Reviewed by David Levin. https://bugs.webkit.org/show_bug.cgi?id=26356 http://crbug.com/14006 Create custom bindings for v8. The rest of these files are still forked (so the review is happening on the chromium review site). These bindings have been tested on a hacked up Chromium instance (also running --single-process) and Android. * bindings/v8/custom/V8StorageCustom.cpp: Added. 2009-06-12 Dmitry Titov Reviewed by David Levin. https://bugs.webkit.org/show_bug.cgi?id=26359 [v8] Add XMLHttpRequest to WorkerContextExecutionProxy. * bindings/v8/WorkerContextExecutionProxy.cpp: (WebCore::WorkerContextExecutionProxy::ToV8Object): Add type == V8ClassIndex::XMLHTTPREQUEST to the convertable types. (WebCore::WorkerContextExecutionProxy::EventTargetToV8Object): same. * bindings/v8/WorkerContextExecutionProxy.h: fix typo in the comment. 2009-06-12 Peter Kasting Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25709 part eight Replace placeholder Cairo BMP, ICO, XBM decoders with real ones. Remove all the decoders from skia/ since they are now just mirrors of the Cairo ones. * GNUmakefile.am: * WebCore.vcproj/WebCore.vcproj: * WebCoreSources.bkl: * platform/graphics/cairo/ImageSourceCairo.cpp: (WebCore::createDecoder): Pass IntSize() to ICOImageDecoder() so it will always decode the largest icon. Enable XBM decoding on Windows. * platform/graphics/skia/ImageSourceSkia.cpp: * platform/graphics/wx/ImageSourceWx.cpp: (WebCore::createDecoder): Pass IntSize() to ICOImageDecoder() so it will always decode the largest icon. * platform/image-decoders/bmp/BMPImageDecoder.cpp: Replaced with WebCore/platform/image-decoders/skia/BMPImageDecoder.cpp. * platform/image-decoders/bmp/BMPImageDecoder.h: Replaced with WebCore/platform/image-decoders/skia/BMPImageDecoder.h. * platform/image-decoders/bmp/BMPImageReader.cpp: Copied from WebCore/platform/image-decoders/skia/BMPImageReader.cpp. * platform/image-decoders/bmp/BMPImageReader.h: Copied from WebCore/platform/image-decoders/skia/BMPImageReader.h. * platform/image-decoders/ico/ICOImageDecoder.cpp: Replaced with WebCore/platform/image-decoders/skia/ICOImageDecoder.cpp. * platform/image-decoders/ico/ICOImageDecoder.h: Replaced with WebCore/platform/image-decoders/skia/ICOImageDecoder.h. * platform/image-decoders/skia/BMPImageDecoder.cpp: Removed. * platform/image-decoders/skia/BMPImageDecoder.h: Removed. * platform/image-decoders/skia/BMPImageReader.cpp: Removed. * platform/image-decoders/skia/BMPImageReader.h: Removed. * platform/image-decoders/skia/GIFImageDecoder.cpp: Removed. * platform/image-decoders/skia/GIFImageDecoder.h: Removed. * platform/image-decoders/skia/GIFImageReader.cpp: Removed. * platform/image-decoders/skia/GIFImageReader.h: Removed. * platform/image-decoders/skia/ICOImageDecoder.cpp: Removed. * platform/image-decoders/skia/ICOImageDecoder.h: Removed. * platform/image-decoders/skia/JPEGImageDecoder.cpp: Removed. * platform/image-decoders/skia/JPEGImageDecoder.h: Removed. * platform/image-decoders/skia/PNGImageDecoder.cpp: Removed. * platform/image-decoders/skia/PNGImageDecoder.h: Removed. * platform/image-decoders/skia/XBMImageDecoder.cpp: Removed. * platform/image-decoders/skia/XBMImageDecoder.h: Removed. * platform/image-decoders/xbm/XBMImageDecoder.cpp: Replaced with WebCore/platform/image-decoders/skia/XBMImageDecoder.cpp. * platform/image-decoders/xbm/XBMImageDecoder.h: Replaced with WebCore/platform/image-decoders/skia/XBMImageDecoder.h. 2009-06-11 Peter Kasting Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25709 part seven Update Skia's ImageDecoder.h with a few changes designed to reduce the delta between specific implementations of ImageDecoder.h. Update Cairo's ImageDecoder.h to sync up with the API changes in the Skia version in the last two chage sets. Update Cairo's PNG/JPEG/GIF decoders to use the APIs as well. All the Cairo image decoder changes are direct copies of the Skia versions except ImageDecoder.h, which is modified in the necessary ways for the differences between Cairo and Skia. * platform/graphics/cairo/ImageSourceCairo.cpp: (WebCore::ImageSource::createFrameAtIndex): Use new RGBA32Buffer::asNewNativeImage() API. * platform/image-decoders/ImageDecoder.h: Sync up with Skia version. (WebCore::RGBA32Buffer::): (WebCore::RGBA32Buffer::RGBA32Buffer): (WebCore::RGBA32Buffer::clear): (WebCore::RGBA32Buffer::zeroFill): (WebCore::RGBA32Buffer::copyBitmapData): (WebCore::RGBA32Buffer::copyRowNTimes): (WebCore::RGBA32Buffer::setSize): (WebCore::RGBA32Buffer::asNewNativeImage): (WebCore::RGBA32Buffer::hasAlpha): (WebCore::RGBA32Buffer::disposalMethod): (WebCore::RGBA32Buffer::setHasAlpha): (WebCore::RGBA32Buffer::setDisposalMethod): (WebCore::RGBA32Buffer::setRGBA): (WebCore::RGBA32Buffer::operator=): (WebCore::RGBA32Buffer::width): (WebCore::RGBA32Buffer::height): (WebCore::RGBA32Buffer::getAddr): * platform/image-decoders/gif/GIFImageDecoder.cpp: Sync up with Skia version. (WebCore::GIFImageDecoder::initFrameBuffer): (WebCore::GIFImageDecoder::haveDecodedRow): * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Sync up with Skia version. (WebCore::JPEGImageDecoder::outputScanlines): * platform/image-decoders/png/PNGImageDecoder.cpp: Sync up with Skia version. (WebCore::PNGImageDecoder::rowAvailable): * platform/image-decoders/skia/ImageDecoder.h: Add various typedefs or helper functions to minimize differences with Cairo version. Reorder functions slightly to match reordering of Cairo's m_hasAlpha variable, which I moved to increase readability. (WebCore::RGBA32Buffer::): (WebCore::RGBA32Buffer::copyRowNTimes): (WebCore::RGBA32Buffer::setSize): (WebCore::RGBA32Buffer::asNewNativeImage): (WebCore::RGBA32Buffer::hasAlpha): (WebCore::RGBA32Buffer::disposalMethod): (WebCore::RGBA32Buffer::setHasAlpha): (WebCore::RGBA32Buffer::setStatus): (WebCore::RGBA32Buffer::setDisposalMethod): (WebCore::RGBA32Buffer::setRGBA): (WebCore::RGBA32Buffer::operator=): (WebCore::RGBA32Buffer::width): (WebCore::RGBA32Buffer::height): (WebCore::RGBA32Buffer::getAddr): * platform/image-decoders/skia/JPEGImageDecoder.cpp: Add #include needed by JPEG headers on some platforms, plus comment. 2009-06-12 Brent Fulgham Unreviewed build correction. Revert accidental configuration checkin. Was not meant to be part of the last changeset. * config.h: 2009-06-12 Brent Fulgham Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=26353 Corrects handling of Cairo fonts that were getting out of sync due to default copy construction. Also refactors some incorrect platform font destruction code that belongs in the font object's destructor. * platform/graphics/win/FontPlatformData.h: * platform/graphics/win/FontPlatformDataCGWin.cpp: (WebCore::FontPlatformData::~FontPlatformData): * platform/graphics/win/FontPlatformDataCairoWin.cpp: (WebCore::FontPlatformData::platformDataInit): (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::setFont): (WebCore::FontPlatformData::~FontPlatformData): * platform/graphics/win/FontPlatformDataWin.cpp: * platform/graphics/win/SimpleFontDataCGWin.cpp: * platform/graphics/win/SimpleFontDataCairoWin.cpp: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::platformWidthForGlyph): * platform/graphics/win/SimpleFontDataWin.cpp: 2009-06-12 Peter Kasting Reviewed by Eric Seidel. * ChangeLog-2007-10-14: Update my email address. * ChangeLog-2008-08-10: Update my email address. 2009-06-12 Nate Chapin Reviewed by David Levin. Upstream V8Helpers. https://bugs.webkit.org/show_bug.cgi?id=26332 * bindings/v8/V8Helpers.cpp: Added. (wrapNPObject): Moved from v8_helpers.cpp. (toV8Context): Moved from v8_helpers.cpp. (toV8Proxy): Moved from v8_helpers.cpp. * bindings/v8/V8Helpers.h: Added. 2009-06-12 Jessie Berlin Reviewed by Mark Rowe. https://bugs.webkit.org/show_bug.cgi?id=24792 rdar://problem/6933055 Changes the radius in which cursor movement around the 4 arrow icon while pan-scrolling does not cause scrolling from around 10 pixels to 15 pixels, similar to what is found in IE and Firefox. * page/EventHandler.cpp: (WebCore::EventHandler::setPanScrollCursor): Factor out the no-pan-scroll radius. * platform/ScrollView.h: Create a constant for the no-pan-scroll radius. * rendering/RenderLayer.cpp: (WebCore::RenderLayer::panScrollFromPoint): Factor out the no-pan-scroll radius. 2009-06-12 Xan Lopez Reviewed by Gustavo Noronha. https://bugs.webkit.org/show_bug.cgi?id=25609 [GTK] Implement support for get_selection and get_n_selections Only use the VisibleSelection object if it actually belongs to the object we are using. This is pretty hacky-ish, but I can't seem to find a direct API to get the VisibleSelection for a given object, only the global one. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (selectionBelongsToObject): (webkit_accessible_text_get_n_selections): (webkit_accessible_text_get_selection): 2009-06-03 Eric Seidel Reviewed by Darin Adler. Crash at Node::nodeIndex() https://bugs.webkit.org/show_bug.cgi?id=26044 This crash seems to be caused by calling nodeIndex() on and invalid Node pointer. As far as I can tell, the most likely explanation is that the Range holding the node is actually deleted already (thus the memory is junk). Looking at the code Range changes m_start.container() in its destructor to tell if the range is detached or not. If somehow m_start.container() was cleared, the range will never be detached and the Document will end up with pointers to deleted ranges. I don't know how to reproduce this any reproduction I could think of would hit ASSERTS in Debug mode. One reproduction I tried, did not crash in Release mode, even though it did in Debug mode. I'm making a speculative fix by always detaching the Range from the document during ~Range. This is safer, and all we lose is an ASSERT to prevent double-detach. Another solution would be to instead store an m_attached bool on the Range object, or expose a Document::isRangeAttached(range) call. Either of those solutions could affect performance, so I went with this solution for now. I also removed the RangeBoundaryPoint default constructor as it is not used anywhere (and is more likely to cause confusion). Since I can't reproduce the crash, no test. * dom/Document.cpp: (WebCore::Document::detachRange): * dom/Range.cpp: (WebCore::Range::~Range): (WebCore::Range::detach): * dom/RangeBoundaryPoint.h: (WebCore::RangeBoundaryPoint::RangeBoundaryPoint): RangeBoundaryPoints always have an m_containerNode, ASSERT that. (WebCore::RangeBoundaryPoint::set): ASSERT(container) to match all the other functions. All callers already ASSERT(container). Since we only have reports if this crash from Release mode, I can only assume that those ASSERTs would have been hit in a Debug reproduction. 2009-06-11 Shinichiro Hamaji Reviewed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=25512 Handle texts after unfinished special tags (i.e., script, style, textarea, title, xmp, and iframe) as the text node under the tags in view-source mode. Before this change, all texts in unfinished special tags cannot be seen even in view-source mode. This was already done only for title. This change allows other special tags to be handled as well. Test: fast/frames/viewsource-unfinished-tags.html * html/HTMLTokenizer.cpp: (WebCore::HTMLTokenizer::parseNonHTMLText): (WebCore::HTMLTokenizer::parseTag): (WebCore::HTMLTokenizer::write): * html/HTMLTokenizer.h: (WebCore::HTMLTokenizer::State::inAnyNonHTMLText): 2009-06-11 Yongjun Zhang Reviewed by Ariya Hidayat. https://bugs.webkit.org/show_bug.cgi?id=26291 [Qt] build break in ImageDecoderQt.cpp. * platform/graphics/qt/ImageDecoderQt.cpp: (WebCore::ImageDecoderQt::reset): (WebCore::ImageDecoderQt::setData): (WebCore::ImageDecoderQt::isSizeAvailable): * platform/image-decoders/ImageDecoder.h: (WebCore::ImageDecoder::setSize): 2009-06-11 Simon Hausmann Rubber-stamped by Ariya Hidayat. Removed obsolete and unmaintained files from the old Symbian port. * platform/symbian/FloatPointSymbian.cpp: Removed. * platform/symbian/FloatRectSymbian.cpp: Removed. * platform/symbian/IntPointSymbian.cpp: Removed. * platform/symbian/IntRectSymbian.cpp: Removed. * platform/symbian/IntSizeSymbian.cpp: Removed. * platform/text/symbian/StringImplSymbian.cpp: Removed. * platform/text/symbian/StringSymbian.cpp: Removed. 2009-06-10 Peter Kasting Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25709 part six Miscellaneous tiny changes. The important bits here are the ANSI C++ compliance fix in skia/ImageDecoders.h (needed to compile this file on non-MSVC) and some behavioral fixes for the XBM decoder that Chromium unit tests partly exposed. Other changes are mostly cosmetic. * platform/image-decoders/ImageDecoder.h: Make some variables private again. This will break QTWebKit but those guys have agreed to wait on my finishing the ImageDecoder changes. * platform/image-decoders/gif/GIFImageDecoder.cpp: (WebCore::GIFImageDecoder::initFrameBuffer): Use IntPoint() instead of the redundant IntPoint(0, 0). (WebCore::GIFImageDecoder::frameComplete): Use IntPoint() instead of the redundant IntPoint(0, 0). * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: (WebCore::JPEGImageDecoder::outputScanlines): Remove obvious comments. * platform/image-decoders/png/PNGImageDecoder.cpp: (WebCore::PNGImageDecoder::rowAvailable): Remove obvious comments. * platform/image-decoders/skia/BMPImageReader.cpp: (WebCore::BMPImageReader::decodeBMP): Make more in line with other decoders' comments and structure, use a ref to decrease verbosity. (WebCore::BMPImageReader::processRLEData): Use a ref to decrease verbosity. (WebCore::BMPImageReader::processNonRLEData): Use a ref to decrease verbosity. * platform/image-decoders/skia/GIFImageDecoder.cpp: Use IntPoint() instead of the redundant IntPoint(0, 0). (WebCore::GIFImageDecoder::initFrameBuffer): Use IntPoint() instead of the redundant IntPoint(0, 0). (WebCore::GIFImageDecoder::frameComplete): Use IntPoint() instead of the redundant IntPoint(0, 0). * platform/image-decoders/skia/ImageDecoder.h: (WebCore::RGBA32Buffer::copyRowNTimes): Fix ANSI violation that MSVC let me compile (!). * platform/image-decoders/skia/JPEGImageDecoder.cpp: (WebCore::JPEGImageDecoder::outputScanlines): Remove obvious comments. * platform/image-decoders/skia/PNGImageDecoder.cpp: (WebCore::PNGImageDecoder::rowAvailable): Remove obvious comments. * platform/image-decoders/skia/XBMImageDecoder.cpp: (WebCore::XBMImageDecoder::frameBufferAtIndex): Return 0 for non-zero indexes, don't try to decode unnecessarily after failure or when the size couldn't be computed, make more in line with other decoders' comments and structure, call RGBA32Buffer::setRect() appropriately. 2009-06-10 Ojan Vafai Reviewed by Eric Seidel. The shadow node inside empty textareas gets collapsed in disabled textareas. This is a regression from moving the overflow from the shadow node to it's parent. The fix is to return true in RenderBlock::hasLineIfEmpty for textarea shadow nodes as we currently do for input shadow nodes. https://bugs.webkit.org/show_bug.cgi?id=26296 Test: fast/forms/empty-textarea-toggle-disabled.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::hasLineIfEmpty): 2009-06-10 Xan Lopez Reviewed by Gustavo Noronha. https://bugs.webkit.org/show_bug.cgi?id=25609 [GTK] Implement support for get_selection and get_n_selections Implement atk_text_get_n_selections. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (webkit_accessible_text_get_n_selections): 2009-06-10 Dan Bernstein Reviewed by Anders Carlsson. - fix REGRESSION (r42665): When I drag to pan a Google map in iPhoto Places, it drags a map tile instead Calling stopLoadRequest() from notifyFinished() removed the ScriptElementData from the CachedScript's client set, which could make it eligible for purging. The fix is to call removeClient() only after executing the script, which protects it from being purged while it is in the document's queue of scripts to execute soon. * dom/ScriptElement.cpp: (WebCore::ScriptElementData::execute): Call removeClient() here. (WebCore::ScriptElementData::notifyFinished): Instead of calling stopLoadRequest(), which calls removeClient(), just reset m_cachedScript. 2009-06-10 Jan Michael Alonzo Reviewed by Mark Rowe and Eric Seidel. Update WebInspector localizedStrings.js with new resource tracking strings https://bugs.webkit.org/show_bug.cgi?id=26247 * English.lproj/localizedStrings.js: 2009-06-10 Feng Qian Reviewed by Eric Seidel. Add Android specific files. https://bugs.webkit.org/show_bug.cgi?id=26280 * platform/text/android: Added. * platform/text/android/TextBreakIteratorInternalICU.cpp: Added. 2009-06-10 Feng Qian Reviewed by Eric Seidel. Add Android specific file to WebCore/platform/android (part 9). https://bugs.webkit.org/show_bug.cgi?id=26266 * platform/android/TemporaryLinkStubs.cpp: Added. 2009-06-10 Feng Qian Reviewed by Eric Seidel. Add Android platform specific files. https://bugs.webkit/org/show_bug.cgi?id=26265 (part 8). * platform/android/SystemTimeAndroid.cpp: Added. * platform/android/WidgetAndroid.cpp: Added. 2009-06-10 Feng Qian Reviewed by Eric Seidel. Add Android port files to WebCore/platform. (part 6). https://bugs.webkit.org/show_bug.cgi?id=26264 * platform/android/RenderThemeAndroid.cpp: Added. * platform/android/RenderThemeAndroid.h: Added. 2009-06-10 Feng Qian Reviewed by Eric Seidel. Add Android port files to WebCore/platform (part 7). https://bugs.webkit.org/show_bug.cgi?id=23296 * platform/android/ScreenAndroid.cpp: Added. * platform/android/ScrollViewAndroid.cpp: Added. * platform/android/SearchPopupMenuAndroid.cpp: Added. 2009-06-10 Feng Qian Reviewed by Eric Seidel. Add Android port files to WebCore/platform (part 5). https://bugs.webkit.org/show_bug.cgi?id=23296 * platform/android/LocalizedStringsAndroid.cpp: Added. * platform/android/PopupMenuAndroid.cpp: Added. 2009-06-10 Feng Qian Reviewed by Eric Seidel. Add Android port files to WebCore/platform (part 4). https://bugs.webkit.org/show_bug.cgi?id=23296 * platform/android/KeyEventAndroid.cpp: Added. * platform/android/KeyboardCodes.h: Added. 2009-06-10 Feng Qian Reviewed by Eric Seidel. Add Android port files to WebCore/platform (part 3). https://bugs.webkit.org/show_bug.cgi?id=23296 * platform/android/FileChooserAndroid.cpp: Added. * platform/android/FileSystemAndroid.cpp: Added. 2009-06-10 Feng Qian Reviewed by Eric Seidel. Add Android port files to WebCore/platform (part 2). https://bugs.webkit.org/show_bug.cgi?id=23296 * platform/android/CursorAndroid.cpp: Added. * platform/android/DragDataAndroid.cpp: Added. * platform/android/EventLoopAndroid.cpp: Added. 2009-06-10 Nate Chapin Reviewed by David Levin. Finish moving V8Custom from src.chromium.org to svn.webkit.org. https://bugs.webkit.org/show_bug.cgi?id=26258 * bindings/v8/custom/V8CustomBinding.cpp: Finished upstreaming. (WebCore::ACCESSOR_GETTER): Moved from v8_custom.cpp. (WebCore::INDEXED_ACCESS_CHECK): Moved from v8_custom.cpp. (WebCore::NAMED_ACCESS_CHECK): Moved from v8_custom.cpp. (WebCore::V8Custom::GetTargetFrame): Moved from v8_custom.cpp. (WebCore::V8Custom::DowncastSVGPathSeg): Moved from v8_custom.cpp. * bindings/v8/custom/V8CustomBinding.h: Finished upstreaming. * bindings/v8/custom/V8DatabaseCustom.cpp: Updated includes. * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Updated includes. * bindings/v8/custom/V8SQLTransactionCustom.cpp: Updated includes. * bindings/v8/custom/V8WebKitPointConstructor.cpp: Added. (WebCore::CALLBACK_FUNC_DECL): Moved from v8_custom.cpp. 2009-06-10 Takeshi Yoshino Reviewed by Justin Garcia. Bug 26214: RenderTextControl: Remove ASSERT for checking that visiblePositionForIndex()'s return is not null. https://bugs.webkit.org/show_bug.cgi?id=26214 visiblePositionForIndex can return an instance that returns true for isNotNull(). One of common case is when the corresponding input element has "-webkit-user-select: none" style attribute. We should allow the case instead of putting ASSERT. Test: fast/forms/input-select-webkit-user-select-none.html * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::setSelectionRange): 2009-06-10 Roland Steiner Reviewed by Eric Seidel. Bug 26197: Incorrect variable initialization in PlatformContextSkia.cpp https://bugs.webkit.org/show_bug.cgi?id=26197 The PlatformContextSkia constructor does a (very likely) wrong size initialization for its m_stateStack member: m_stateStack(sizeof(State)) The intended initialization is probably rather m_stateStack(1) However, since this doesn't buy much (see also comment #4), I removed the initialization completely. * platform/graphics/skia/PlatformContextSkia.cpp: (PlatformContextSkia::PlatformContextSkia): remove member initialization 2009-06-10 Dean McNamee Reviewed by Eric Seidel. When there is no backing bitmap, return a transparent pattern. https://bugs.webkit.org/show_bug.cgi?id=26061 Test: fast/canvas/canvas-empty-image-pattern.html * platform/graphics/skia/PatternSkia.cpp: (WebCore::Pattern::createPlatformPattern): 2009-06-10 Dean McNamee Reviewed by Eric Seidel. Fix a crash for radial gradients with a zero radius. https://bugs.webkit.org/show_bug.cgi?id=26059 Test: fast/gradients/crash-on-zero-radius.html * platform/graphics/skia/GradientSkia.cpp: (WebCore::Gradient::platformGradient): 2009-06-10 Peter Kasting Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25709 part five Rewrite users of ImageDecoder.h to use "safe" API calls, Skia side. This tweaks the RGBA32Buffer interfaces to be implementable by Cairo as well and modifies Skia's usage of those interfaces accordingly. Once a similar change lands on the Cairo side, the Skia and Cairo decoders should be identical except for the implementation of RGBA32Buffer. * platform/graphics/skia/ImageSourceSkia.cpp: (WebCore::ImageSource::createFrameAtIndex): Use new RGBA32Buffer::asNewNativeImage() function. * platform/image-decoders/skia/BMPImageReader.cpp: (WebCore::BMPImageReader::processNonRLEData): Use new RGBA32Buffer::zeroFill() function. * platform/image-decoders/skia/GIFImageDecoder.cpp: (WebCore::GIFImageDecoder::haveDecodedRow): Rewrite to use RGBA32Buffer::setRGBA(x, y, ...) calls as well as other RGBA32Buffer interface calls instead of knowing the underlying types inside the buffer; also try and add clarity. * platform/image-decoders/skia/ImageDecoder.h: Removed bitmap(), width(), and height(). (WebCore::RGBA32Buffer::zeroFill): Added. (WebCore::RGBA32Buffer::copyBitmapData): Avoid using bitmap(), which is going away. (WebCore::RGBA32Buffer::copyRowNTimes): Added. (WebCore::RGBA32Buffer::setSize): Use new zeroFill() function. (WebCore::RGBA32Buffer::asNewNativeImage): Added. (WebCore::RGBA32Buffer::setRGBA): Condensed two versions into one that takes coordinates instead of a raw pointer. 2009-06-10 Xan Lopez Reviewed by Gustavo Noronha. https://bugs.webkit.org/show_bug.cgi?id=25671 [GTK] Implement support for set_caret_offset Make an implementation that actually works. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (webkit_accessible_text_set_caret_offset): 2009-06-10 Darin Fisher Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=26294 Make sure all member variables are initialized so that the default assignment operator and copy constructors do not read uninitialized memory. * platform/network/ResourceResponseBase.cpp: 2009-06-10 Yury Semikhatsky Reviewed by Timothy Hatcher. Update main resource meta-data when resource tracking is disabled. https://bugs.webkit.org/show_bug.cgi?id=26253 * inspector/InspectorController.cpp: (WebCore::InspectorController::getTrackedResource): (WebCore::InspectorController::willSendRequest): (WebCore::InspectorController::didReceiveResponse): (WebCore::InspectorController::didReceiveContentLength): (WebCore::InspectorController::didFinishLoading): (WebCore::InspectorController::didFailLoading): * inspector/InspectorController.h: 2009-06-10 Xan Lopez Reviewed by Gustavo Noronha. https://bugs.webkit.org/show_bug.cgi?id=25609 [GTK] Implement support for get_selection and get_n_selections Implement atk_text_get_selection. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (webkit_accessible_text_get_selection): 2009-06-10 Xan Lopez Reviewed by Gustavo Noronha. Do not check if our parent class has the finalize method, it's guaranteed to be there. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (webkit_accessible_finalize): 2009-06-10 Brent Fulgham Build correct for Windows Cairo targets. * WebCore.vcproj/WebCore.vcproj: Disable warning 4611 (interaction between '_setjmp' and C++ object destruction is non-portable) for the two Cairo targets. This used to be disabled in a #pragma, but recent refactoring removed these lines. 2009-06-10 Tor Arne Vestbø Reviewed by Simon Hausmann. Fix the build of PluginView on Qt with 64-bit where we disable plugins at compile time. Use the FooNone.cpp files at compile-time. * plugins/PluginPackageNone.cpp: * plugins/mac/PluginPackageMac.cpp: * plugins/mac/PluginViewMac.cpp: 2009-06-10 Simon Hausmann Fix the Qt build. ImageDecoderQt needs m_size and m_sizeAvailable to be protected. * platform/image-decoders/ImageDecoder.h: 2009-06-10 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Use absolute path for install_name on Mac * WebCore.pro: 2009-06-10 Xan Lopez Reviewed by Jan Alonzo. https://bugs.webkit.org/show_bug.cgi?id=25415 [GTK][ATK] Please implement support for get_text_at_offset Reduce duplicated code to access the text of a AtkText object. doAXStringForRange calls text() internally, so we are doing exactly the same after the change. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (getGailTextUtilForAtk): (getPangoLayoutForAtk): 2009-06-10 Xan Lopez Reviewed by Jan Alonzo. https://bugs.webkit.org/show_bug.cgi?id=25415 [GTK][ATK] Please implement support for get_text_at_offset Pass a PangoLayout to the GailTextUtil function calls. It's needed for LINE boundary calls to work correctly. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (updateLayout): (getPangoLayoutForAtk): (webkit_accessible_text_get_text_after_offset): (webkit_accessible_text_get_text_at_offset): 2009-06-10 Xan Lopez Reviewed by Jan Alonzo. https://bugs.webkit.org/show_bug.cgi?id=25415 [GTK][ATK] Please implement support for get_text_at_offset Use GailUtilText instead of my crappy partial reimplementation of it. This should add support for LINE boundaries too, although it's mostly untested for now. * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: (getGailTextUtilForAtk): (webkit_accessible_text_get_text_after_offset): (webkit_accessible_text_get_text_at_offset): 2009-06-10 Jan Michael Alonzo Gtk build fix: include as it is required in jpeglib.h * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: 2009-06-09 Peter Kasting Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25709 part four Most of the remaining Cairo changes needed before merging Skia/Cairo image decoders. Most of these involve plumbing more error detection and handling (or, in some cases, merely the capability to detect errors, as e.g. Skia detects and handles image allocation failure while Cairo currently doesn't). There is also some general cleanup and simplification; RGBA32Buffer::m_height and all associated functions have been removed (set but never used) and some places now rely on superclass implementations. * platform/image-decoders/ImageDecoder.h: (WebCore::RGBA32Buffer::RGBA32Buffer): Remove m_height, ensureHeight() and associated stuff (WebCore::RGBA32Buffer::copyBitmapData): Add API function so refcounted backing stores (like Skia uses) can be used with GIFs (WebCore::RGBA32Buffer::setSize): Zero-fill image to avoid garbage (WebCore::RGBA32Buffer::height): Remove (WebCore::RGBA32Buffer::ensureHeight): Remove (WebCore::ImageDecoder::ImageDecoder): Keep member initialization in order, force subclasses to go through size() instead of accessing m_size directly (WebCore::ImageDecoder::isSizeAvailable): Check that decoding hasn't failed (WebCore::ImageDecoder::size): Check that decoding hasn't failed (WebCore::ImageDecoder::setSize): Protect against integer overflow (WebCore::ImageDecoder::isOverSize): Protect against integer overflow * platform/image-decoders/gif/GIFImageDecoder.cpp: Remove prepEmptyFrameBuffer() (WebCore::GIFImageDecoder::isSizeAvailable): Rely on superclass isSizeAvailable() for better failure handling (WebCore::GIFImageDecoder::sizeNowAvailable): Add return values for better failure handling, rely on superclass setSize() for overflow protection (WebCore::GIFImageDecoder::initFrameBuffer): Add return values for better failure handling, remove prepEmptyFrameBuffer(), use RGBA32Buffer::setSize() to handle potential allocation failures (won't happen with Cairo port, can in Skia), use RGBA32Buffer::copyBitmapData() so backing store can be refcounted internally (Cairo won't be, Skia is), rely on superclass size() for better failure handling (WebCore::GIFImageDecoder::haveDecodedRow): Fix style violation, remove RGBA32Buffer::ensureHeight() (WebCore::GIFImageDecoder::frameComplete): Remove RGBA32Buffer::ensureHeight() * platform/image-decoders/gif/GIFImageDecoder.h: Remove prepEmptyFrameBuffer(), add return values for better failure handling * platform/image-decoders/gif/GIFImageReader.cpp: (GIFImageReader::do_lzw): Protect against array overflow, add comments (GIFImageReader::read): Protect against array overflow, be more tolerant of bad data, better failure handling * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Remove MSVC-specific warning disable (bfulgham will move into build files) (WebCore::JPEGImageReader::decode): Better failure handling (WebCore::JPEGImageDecoder::isSizeAvailable): Rely on superclass isSizeAvailable() for better failure handling (WebCore::JPEGImageDecoder::outputScanlines): Use RGBA32Buffer::setSize() to handle potential allocation failures (won't happen with Cairo port, can in Skia), rely on superclass size() for better failure handling, remove RGBA32Buffer::ensureHeight() * platform/image-decoders/jpeg/JPEGImageDecoder.h: Rely on superclass setSize() for overflow protection * platform/image-decoders/png/PNGImageDecoder.cpp: Remove MSVC-specific warning disable (bfulgham will move into build files) (WebCore::PNGImageDecoder::PNGImageDecoder): Don't allocate a slot in the framebuffer cache until it's needed (WebCore::PNGImageDecoder::isSizeAvailable): Rely on superclass isSizeAvailable() for better failure handling (WebCore::PNGImageDecoder::frameBufferAtIndex): Don't allocate a slot in the framebuffer cache until it's needed (WebCore::PNGImageDecoder::decode): Don't allocate a slot in the framebuffer cache until it's needed (WebCore::PNGImageDecoder::decodingFailed): Fix style violation (WebCore::PNGImageDecoder::headerAvailable): Rely on superclass isSizeAvailable() and setSize() for overflow protection and better failure handling (WebCore::PNGImageDecoder::rowAvailable): Don't allocate a slot in the framebuffer cache until it's needed, use RGBA32Buffer::setSize() to handle potential allocation failures (won't happen with Cairo port, can in Skia), remove RGBA32Buffer::ensureHeight() (WebCore::PNGImageDecoder::pngComplete): Don't allocate a slot in the framebuffer cache until it's needed 2009-06-09 Kevin Ollivier wx build fix, adding JSCore/assembler to the list of include dirs, and adding editing/ReplaceNodeSpanCommand.cpp to the build. * WebCoreSources.bkl: * webcore-base.bkl: 2009-06-09 Yury Semikhatsky Reviewed by Timothy Hatcher. When checking if the loader is the main resource loader make sure that the loader's frame is the main frame. https://bugs.webkit.org/show_bug.cgi?id=26218 * inspector/InspectorController.cpp: (WebCore::InspectorController::didLoadResourceFromMemoryCache): (WebCore::InspectorController::identifierForInitialRequest): (WebCore::InspectorController::isMainResourceLoader): * inspector/InspectorController.h: 2009-06-09 Pierre d'Herbemont Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=26190 Test: media/controls-css-overload.html * rendering/RenderMedia.cpp: (WebCore::RenderMedia::updateControls): Prevent NULL dereference in case containers gets hidden. 2009-06-08 Peter Kasting Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25709 part three Various minor cleanups to the Skia files. Mostly non-functional, except for two specific changes: * JPEGs and PNGs were always marked as transparent; now they are only marked as transparent when they actually are. I doubt this has much of an effect but in theory it could be used to optimize their display. * Instead of arbitrarily disallowing images over 32 * 1024 * 1024 px^2, only disallow images which are so large they will cause overflow in other parts of the code. This should fix the testcase on http://code.google.com/p/chromium/issues/detail?id=3643. * platform/image-decoders/skia/BMPImageReader.h: (WebCore::BMPImageReader::setRGBA): Use simpler non-static setRGBA() form * platform/image-decoders/skia/GIFImageDecoder.cpp: (WebCore::GIFImageDecoder::initFrameBuffer): Remove unneeded code, use more readable setRGBA() form (WebCore::GIFImageDecoder::haveDecodedRow): Fix style violation * platform/image-decoders/skia/GIFImageDecoder.h: Remove unneeded code * platform/image-decoders/skia/ImageDecoder.h: (WebCore::RGBA32Buffer::setSize): setSize() should just setStatus() when it fails since all callers were doing it (WebCore::ImageDecoder::isOverSize): Ease "oversized" image constraints to allow any image that won't overflow * platform/image-decoders/skia/JPEGImageDecoder.cpp: (WebCore::JPEGImageDecoder::outputScanlines): Remove unneeded code, mark JPEGs as non-transparent * platform/image-decoders/skia/PNGImageDecoder.cpp: (WebCore::PNGImageDecoder::decodingFailed): Fix style violation (WebCore::PNGImageDecoder::rowAvailable): Mark un-decoded PNGs as non-transparent (this will get reset later as needed) * platform/image-decoders/skia/XBMImageDecoder.cpp: (WebCore::XBMImageDecoder::frameBufferAtIndex): Remove unneeded code 2009-06-09 Darin Fisher Fix Chromium build bustage. CachedResource.cpp no longer compiles if USE(JSC) is not defined. The problem is that this file is using a macro from StdLibExtras.h without including that file. It just happenes to get that file via a JSC specific include. * loader/CachedResource.cpp: 2009-06-09 Dean McNamee Reviewed by Oliver Hunt. Make sure the graphics backends are in sync with the canvas lineWidth state. https://bugs.webkit.org/show_bug.cgi?id=26187 Test: fast/canvas/canvas-line-width.html * html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): 2009-06-09 Michael Nordman Reviewed by Eric Seidel. Proactively cancel pending requests at DocLoader dtor time, otherwise crashes can occur. https://bugs.webkit.org/show_bug.cgi?id=26230 http://code.google.com/p/chromium/issues/detail?id=12161 Test: fast/frames/javascript-url-as-framesrc-crash.html * loader/DocLoader.cpp: (WebCore::DocLoader::~DocLoader): 2009-06-09 Eric Seidel Reviewed by Darin Adler. Fix ASSERT seen in shadow tree testing https://bugs.webkit.org/show_bug.cgi?id=25092 Test: svg/custom/use-mutation-event-crash.svg * svg/SVGUseElement.cpp: (WebCore::SVGUseElement::instanceForShadowTreeElement): 2009-06-09 Brent Fulgham Reviewed by Eric Seidel. Fixes https://bugs.webkit.org/show_bug.cgi?id=22891 Scrolling in Windows Cairo Broken if no background color set. * platform/graphics/cairo/GradientCairo.cpp: (WebCore::Gradient::fill): Use the GraphicsContext save and restore methods (rather than the Cairo-only functions) so that the Windows device context is kept in sync. * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::GraphicsContext): Add new constructor call to sync Windows HDC with Cairo surface. * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: (WebCore::GraphicsContextPlatformPrivate::syncContext): Provide declaration for Windows HDC sync method (and stub for non-Windows Cairo implementations). * platform/graphics/cairo/ImageCairo.cpp: (WebCore::BitmapImage::draw): Use GraphicsContext save and restore methods (rather than the Cairo-only functions) so that the Windows device context is kept in sync. * platform/graphics/win/GraphicsContextCairoWin.cpp: (WebCore::CairoContextWithHDC): New method to create a valid Cairo context for a given HDC. (WebCore::GraphicsContext::GraphicsContext): Modify constructor to use new CairoContextWithHDC call. (WebCore::GraphicsContext::getWindowsContext): Revise to match behavior of CG implementation. (WebCore::GraphicsContext::releaseWindowsContext): Revise to match behavior of CG implementation. (WebCore::GraphicsContextPlatformPrivate::concatCTM): Get rid of incorrect new HDC, and use object's HDC member for dealing with concatCTM operations. (WebCore::GraphicsContextPlatformPrivate::syncContext): New method to sync Windows HDC with Cairo context. * platform/graphics/win/ImageCairoWin.cpp: (WebCore::BitmapImage::getHBITMAPOfSize): Revise implementation to match CG behavior. 2009-06-09 Jian Li Reviewed by David Levin. Bug 26196: Fix the problem that worker's importScripts fails if the script URL is redirected from different origin. https://bugs.webkit.org/show_bug.cgi?id=26196 Test: http/tests/workers/worker-importScripts.html The fix is to pass an additional enum parameter to the loader in order to tell it to perform the redirect origin check or not. * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::create): (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): (WebCore::DocumentThreadableLoader::willSendRequest): * loader/DocumentThreadableLoader.h: * loader/ThreadableLoader.cpp: (WebCore::ThreadableLoader::create): (WebCore::ThreadableLoader::loadResourceSynchronously): * loader/ThreadableLoader.h: (WebCore::): * loader/WorkerThreadableLoader.cpp: (WebCore::WorkerThreadableLoader::WorkerThreadableLoader): (WebCore::WorkerThreadableLoader::loadResourceSynchronously): (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader): * loader/WorkerThreadableLoader.h: (WebCore::WorkerThreadableLoader::create): * workers/WorkerContext.cpp: (WebCore::WorkerContext::importScripts): * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::loadRequestAsynchronously): 2009-06-09 Anand K. Mistry Reviewed by Dimitri Glazkov. Paint bitmaps with the alpha channel in Skia. https://bugs.webkit.org/show_bug.cgi?id=26037 Test: fast/canvas/drawImage-with-globalAlpha.html * platform/graphics/skia/ImageSkia.cpp: (WebCore::paintSkBitmap): * platform/graphics/skia/PlatformContextSkia.cpp: (PlatformContextSkia::getAlpha): * platform/graphics/skia/PlatformContextSkia.h: 2009-06-09 Gustavo Noronha Silva Reviewed by Xan Lopez. https://bugs.webkit.org/show_bug.cgi?id=26104 [GTK] Make NetworkRequest a proper GObject and expose SoupMessage Refactor how SoupMessage is handled, so that our ResourceRequest object doesn't have to store it as a member, which complicates managing ResourceRequest's lifetime. * platform/network/soup/ResourceHandleSoup.cpp: (WebCore::ResourceHandle::startHttp): * platform/network/soup/ResourceRequest.h: (WebCore::ResourceRequest::ResourceRequest): (WebCore::ResourceRequest::doUpdatePlatformRequest): (WebCore::ResourceRequest::doUpdateResourceRequest): * platform/network/soup/ResourceRequestSoup.cpp: (WebCore::ResourceRequest::toSoupMessage): (WebCore::ResourceRequest::updateFromSoupMessage): 2009-06-09 Simon Hausmann Fix the Qt build, the time functions moved into the WTF namespace. * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant): (JSC::Bindings::convertQVariantToValue): 2009-06-08 Brady Eidson Reviewed by Antti Koivisto Repro crash in WebCore::Loader::Host::servePendingRequests() and dupes. Test: http/tests/loading/deleted-host-in-resource-load-delegate-callback.html Loader::Host objects were manually managed via new/delete. There's a variety of circumstances where a Host might've been deleted while it was still in the middle of a resource load delegate callback. Changing them to be RefCounted then adding protectors in the callbacks makes this possibility disappear. At the same time, remove ProcessingResource which was an earlier fix for this same problem that wasn't fully implemented. * loader/loader.cpp: (WebCore::Loader::Loader): (WebCore::Loader::load): (WebCore::Loader::servePendingRequests): (WebCore::Loader::resumePendingRequests): (WebCore::Loader::cancelRequests): (WebCore::Loader::Host::didFinishLoading): (WebCore::Loader::Host::didFail): (WebCore::Loader::Host::didReceiveResponse): (WebCore::Loader::Host::didReceiveData): * loader/loader.h: (WebCore::Loader::Host::create): 2009-06-08 Dmitry Titov Reviewed by David Levin. https://bugs.webkit.org/show_bug.cgi?id=26126 Refactor methods of WorkerMessagingProxy used to talk to main-thread loader into new interface. Split a couple of methods used to schedule cross-thread tasks between worker thread and loader thread implemented on WorkerMessagingProxy into a separate interface so the loading can be implemented in Chromium's workers. No changes in functionality so no tests added. * GNUmakefile.am: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: Added WorkerLoaderProxy.h to the bulid. * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): WorkerThread::workerObjectProxy() now returns & instead of * * bindings/v8/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate): same. * workers/WorkerContext.cpp: (WebCore::WorkerContext::~WorkerContext): same. (WebCore::WorkerContext::reportException): same. (WebCore::WorkerContext::addMessage): same. (WebCore::WorkerContext::postMessage): same. * loader/WorkerThreadableLoader.cpp: (WebCore::WorkerThreadableLoader::WorkerThreadableLoader): (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy): (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData): (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse): (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData): (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading): (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail): (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck): (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveAuthenticationCancellation): Use WorkerLoaderProxy instead of WorkerMessagingProxy for the MainThreadBridge. Mostly rename. (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader): In addition to using WorkerLoaderProxy instead of WorkerMessagingProxy, the check for AskedToTerminate is removed. It seems to be an optimization for a very small number of cases when worker termination is requested a very short time before the request to load something (XHR or importScript) was dispatched on the main thread. * loader/WorkerThreadableLoader.h: Now keeps a pointer to WorkerLoaderProxy rather then to a WorkerMessagingProxy. This allows to implement WorkerThreadableLoader for Chromium. * workers/WorkerLoaderProxy.h: Added. (WebCore::WorkerLoaderProxy::~WorkerLoaderProxy): * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::startWorkerContext): (WebCore::WorkerMessagingProxy::postTaskToLoader): Added ASSERT since this needs to be implemented for nested workers. * workers/WorkerMessagingProxy.h: Derived from WorkerLoaderProxy, the methods for posting tasks cross-thread are now virtual. Removed unused postTaskToWorkerContext() method. * workers/WorkerThread.cpp: (WebCore::WorkerThread::create): (WebCore::WorkerThread::WorkerThread): * workers/WorkerThread.h: (WebCore::WorkerThread::workerLoaderProxy): * workers/WorkerThread.cpp: (WebCore::WorkerThread::create): (WebCore::WorkerThread::WorkerThread): (WebCore::WorkerThread::workerThread): * workers/WorkerThread.h: (WebCore::WorkerThread::workerLoaderProxy): (WebCore::WorkerThread::workerObjectProxy): WorkerThread gets a new member of type WorkerLoaderProxy&, and accessor. Also, existing WorkerObjectProxy* member is now WorkerObjectProxy& because it can't be null. 2009-06-08 Dimitri Glazkov Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=26238 Add parseDate helper to HTTPParsers, which uses WTF::parseDateFromNullTerminatedCharacters. * ForwardingHeaders/runtime/DateMath.h: Removed. * ForwardingHeaders/wtf/DateMath.h: Copied from WebCore/ForwardingHeaders/runtime/DateMath.h. * platform/network/HTTPParsers.cpp: (WebCore::parseDate): Added. * platform/network/HTTPParsers.h: * platform/network/ResourceResponseBase.cpp: (WebCore::parseDateValueInHeader): Changed to use the new helper. 2009-06-08 Adam Langley Reviewed by Eric Siedel. Chromium Linux ignored the background color on s with a background-color will now renderer correctly, which may require rebaselining pixel tests in the Chromium tree. https://bugs.webkit.org/show_bug.cgi?id=26030 http://code.google.com/p/chromium/issues/detail?id=12596 * platform/graphics/Color.cpp: (WebCore::Color::getHSL): new member * platform/graphics/Color.h: * rendering/RenderThemeChromiumLinux.cpp: (WebCore::RenderThemeChromiumLinux::systemColor): (WebCore::brightenColor): (WebCore::paintButtonLike): 2009-06-08 Victor Wang Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=26087 Bug 26087: Removing element in JS crashes Chrome tab if it fired the change event Fix tab crash caused by destroying the popup list that fired the change event on abandon. If a popup list is abandoned (press a key to jump to an item and then use tab or mouse to get away from the select box), the current code fires a change event in PopupListBox::updateFromElemt(). The JS that listens to this event may destroy the object and cause the rest of popup list code crashes. The updateFromElement() is called before abandon() and this causes the selected index to be discarded after updateFromElement(). From the code comments, this appears to be the reason why valueChanged is called in updateFromElement. Fix the issue by removing the valueChanged call in updateFromElement, saving the selected index that we should accept on abandon and pass it to the valueChange in abandon(). A manual test has been added. * manual-tests/chromium: Added. * manual-tests/chromium/onchange-reload-popup.html: Added. * platform/chromium/PopupMenuChromium.cpp: (WebCore::PopupListBox::PopupListBox): (WebCore::PopupListBox::handleKeyEvent): (WebCore::PopupListBox::abandon): (WebCore::PopupListBox::updateFromElement): 2009-06-08 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Disable a few warnings on Windows * WebCore.pro: 2009-06-08 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Don't enable ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH on Windows This define was brought in after refactoring some code from PluginPackage(Qt|Gtk).cpp into the shared PluginPackage.cpp. * WebCore.pro: 2009-06-08 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Use $QMAKE_PATH_SEP instead of hardcoded / to fix Windows build * WebCore.pro: 2009-06-08 Laszlo Gombos Reviewed by Ariya Hidayat. [Qt] Build fix when NETSCAPE_PLUGIN_API support is turned off https://bugs.webkit.org/show_bug.cgi?id=26244 * WebCore.pro: Define PLUGIN_PACKAGE_SIMPLE_HASH only if NETSCAPE_PLUGIN_API is turned on * plugins/PluginPackage.cpp: Guard initializeBrowserFuncs() * plugins/PluginViewNone.cpp: Match guards with PluginView.h 2009-06-07 Dan Bernstein Reviewed by Sam Weinig. - fix -[WebView _selectionIsAll] returns YES when the selection is inside a text field. * editing/VisibleSelection.cpp: (WebCore::VisibleSelection::isAll): Return false if the selection is in a shadow tree. 2009-06-07 Gustavo Noronha Silva Reviewed by Holger Freyther. https://bugs.webkit.org/show_bug.cgi?id=26106 [GTK] Crashes when you keep a combo open during a page transition, then close it Hide the combo popup and disconnect from its signals during PopupMenu destruction to handle this exceptional case with no crash. * platform/gtk/PopupMenuGtk.cpp: (WebCore::PopupMenu::~PopupMenu): (WebCore::PopupMenu::menuUnmapped): 2009-06-06 Sam Weinig Reviewed by Dan Bernstein. Fix for REGRESSION (r43797): Serif and fantasy font-family names are wrong in result of getComputedStyle Test: fast/css/font-family-builtins.html * css/CSSComputedStyleDeclaration.cpp: (WebCore::identifierForFamily): Fix typo. Fantasy family should be -webkit-fantasy not, -webkit-serif. 2009-06-06 Sam Weinig Reviewed by Brady Eidson. Fix for Need to support StorageEvent.storageArea to meet the Web Storage spec * storage/LocalStorageArea.cpp: (WebCore::LocalStorageArea::dispatchStorageEvent): Pass the localStorage for the frame being dispatched to. * storage/SessionStorageArea.cpp: (WebCore::SessionStorageArea::dispatchStorageEvent): Ditto, only for sessionStorage. * storage/StorageEvent.cpp: (WebCore::StorageEvent::StorageEvent): (WebCore::StorageEvent::initStorageEvent): * storage/StorageEvent.h: (WebCore::StorageEvent::create): (WebCore::StorageEvent::storageArea): * storage/StorageEvent.idl: Add storageArea member. 2009-06-05 Nikolas Zimmermann Reviewed by Anders Carlsson. Fix WMLInputElement initialization code. Don't call initialize() on attach(), let WMLCardElement handle initialization once, after the document has been parsed. To keep layout tests working introduce a new function in Document.idl: initializeWMLPageState(). WMLTestCase.js (the wml/ layout test framework) will use it to simulate a regular WML document, whose variable state gets initialized on WMLDocument::finishedParsing(). Force initialization of the WML variable state, right after the dynamically created elements have been inserted into the tree. * dom/Document.cpp: (WebCore::Document::initializeWMLPageState): * dom/Document.h: * dom/Document.idl: * wml/WMLCardElement.cpp: (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded): * wml/WMLDocument.cpp: (WebCore::WMLDocument::finishedParsing): (WebCore::WMLDocument::initialize): * wml/WMLDocument.h: * wml/WMLInputElement.cpp: (WebCore::WMLInputElement::initialize): * wml/WMLInputElement.h: 2009-06-05 Sam Weinig Reviewed by Anders Carlsson. Add ononline and onoffline attributes for the element. * html/HTMLAttributeNames.in: Added ononlineAttr and onofflineAttr. * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::parseMappedAttribute): Map ononlineAttr and onofflineAttr to window event listeners. 2009-06-05 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Add missing includes of config.h * platform/qt/QWebPopup.cpp: * platform/text/qt/TextBreakIteratorQt.cpp: 2009-06-05 Fumitoshi Ukai Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=26215 Try to fix the Chromium build. * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp: (WebCore::fillBMPGlyphs): (WebCore::fillNonBMPGlyphs): 2009-06-05 Shinichiro Hamaji Bug 26160: Compile fails in MacOSX when GNU fileutils are installed Reviewed by Alexey Proskuryakov. Use /bin/ln instead of ln for cases where this command is used with -h option. As this option is not supported by GNU fileutils, this change helps users who have GNU fileutils in their PATH. * WebCore.xcodeproj/project.pbxproj: 2009-06-03 Ben Murdoch HTML5 Database stops executing transactions if the URL hash changes while a transaction is open and an XHR is in progress. Reviewed by Alexey Proskuryakov. Fix a bug that causes database transactions to fail if a history navigation to a hash fragment of the same document is made while resources (e.g. an XHR) are loading Test: storage/hash-change-with-xhr.html * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::stopLoading): * loader/DocumentLoader.h: * loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading): (WebCore::FrameLoader::stopAllLoaders): * loader/FrameLoader.h: * loader/FrameLoaderTypes.h: (WebCore::): * page/Page.cpp: (WebCore::Page::goToItem): * WebCore.base.exp: 2009-06-03 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Make sure the correct config.h is included when shadowbuilding * WebCore.pro: 2009-06-05 Tor Arne Vestbø Reviewed by Simon Hausmann. Fix Qt build after r44452 * platform/network/qt/QNetworkReplyHandler.cpp: (WebCore::QNetworkReplyHandler::sendResponseIfNeeded): 2009-06-05 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Remove some dead code (MenuEventProxy) * WebCore.pro: * platform/ContextMenu.h: * platform/qt/ContextMenuQt.cpp: * platform/qt/MenuEventProxy.h: Removed. 2009-06-05 Xan Lopez More build fixes. * platform/graphics/gtk/GlyphPageTreeNodePango.cpp: (WebCore::GlyphPage::fill): 2009-06-05 Xan Lopez Fix the GTK+ build. * GNUmakefile.am: * platform/graphics/gtk/FontCacheGtk.cpp: (WebCore::FontCache::getFontDataForCharacters): * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp: (WebCore::GlyphPage::fill): 2009-06-05 Antti Koivisto Try to fix Windows (and possibly other platforms) build. Restore ResourceResponseBase::lastModifiedDate() and setLastModifiedDate() removed in previous commit. for now since PluginStream used on some platforms expects them and calculations differ from plain Last-modified header value. Also include to get isfinite(). * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::adopt): (WebCore::ResourceResponseBase::copyData): (WebCore::ResourceResponseBase::setLastModifiedDate): (WebCore::ResourceResponseBase::lastModifiedDate): * platform/network/ResourceResponseBase.h: * platform/network/cf/ResourceResponseCFNet.cpp: (WebCore::ResourceResponse::platformLazyInit): 2009-06-03 Antti Koivisto Reviewed by Dave Kilzer. https://bugs.webkit.org/show_bug.cgi?id=13128 Safari not obeying cache header Implement RFC 2616 cache expiration calculations in WebKit instead of relying on the networking layer. * ForwardingHeaders/runtime/DateMath.h: Added. * WebCore.base.exp: * loader/Cache.cpp: (WebCore::Cache::revalidationSucceeded): * loader/CachedResource.cpp: (WebCore::CachedResource::CachedResource): (WebCore::CachedResource::isExpired): (WebCore::CachedResource::currentAge): (WebCore::CachedResource::freshnessLifetime): (WebCore::CachedResource::setResponse): (WebCore::CachedResource::updateResponseAfterRevalidation): (WebCore::CachedResource::mustRevalidate): * loader/CachedResource.h: * platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::ResourceResponseBase): (WebCore::ResourceResponseBase::adopt): (WebCore::ResourceResponseBase::copyData): (WebCore::ResourceResponseBase::setHTTPHeaderField): (WebCore::ResourceResponseBase::parseCacheControlDirectives): (WebCore::ResourceResponseBase::cacheControlContainsNoCache): (WebCore::ResourceResponseBase::cacheControlContainsMustRevalidate): (WebCore::ResourceResponseBase::cacheControlMaxAge): (WebCore::parseDateValueInHeader): (WebCore::ResourceResponseBase::date): (WebCore::ResourceResponseBase::age): (WebCore::ResourceResponseBase::expires): (WebCore::ResourceResponseBase::lastModified): (WebCore::ResourceResponseBase::isAttachment): (WebCore::ResourceResponseBase::compare): * platform/network/ResourceResponseBase.h: * platform/network/cf/ResourceResponseCFNet.cpp: (WebCore::ResourceResponse::platformLazyInit): * platform/network/mac/ResourceResponseMac.mm: (WebCore::ResourceResponse::platformLazyInit): 2009-06-04 Roland Steiner Reviewed by Eric Seidel. Bug 26201: Remove superfluous 'if' statements in RenderTable::addChild https://bugs.webkit.org/show_bug.cgi?id=26201 * rendering/RenderTable.cpp: (WebCore::RenderTable::addChild): remove superfluous 'if' statements 2009-06-04 Roland Steiner Reviewed by Eric Seidel. Bug 26202: add macros for primitive values to simplify CSSStyleSelector::applyProperty https://bugs.webkit.org/show_bug.cgi?id=26202 * css/CSSStyleSelector.cpp: add HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE[_WITH_VALUE] macros (WebCore::CSSStyleSelector::applyProperty): use new macros 2009-06-04 Roland Steiner Reviewed by Eric Seidel Bug 26203: Move parsing of 'attr(X)' values to own method https://bugs.webkit.org/show_bug.cgi?id=26203 * css/CSSParser.cpp: (WebCore::CSSParser::parseAttr): new method (WebCore::CSSParser::parseContent): use new parseAttr method * css/CSSParser.h: (WebCore::CSSParser::parseAttr): new method 2009-06-04 Roland Steiner Reviewed by Eric Seidel. Bug 26205: RenderTableSection::addChild : correct comment https://bugs.webkit.org/show_bug.cgi?id=26205 * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::addChild): correct comment 2009-06-04 Roland Steiner Reviewed by Eric Seidel. Bug 26204: RenderBlock : simplify handleSpecialChild, comment correction https://bugs.webkit.org/show_bug.cgi?id=26204 * rendering/RenderBlock.cpp: (WebCore::RenderBlock::handleSpecialChild): simplify usage (WebCore::RenderBlock::handlePositionedChild): simplify usage (WebCore::RenderBlock::handleFloatingChild): simplify usage (WebCore::RenderBlock::handleRunInChild): simplify usage (WebCore::RenderBlock::layoutBlock): correct comment (WebCore::RenderBlock::layoutBlockChildren): simplify loop, change call to handleSpecialChild * rendering/RenderBlock.h: (WebCore::RenderBlock::handleSpecialChild): change signature (WebCore::RenderBlock::handlePositionedChild): change signature (WebCore::RenderBlock::handleFloatingChild): change signature (WebCore::RenderBlock::handleRunInChild): change signature 2009-06-04 Dan Bernstein - retry to fix the Tiger build * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::initFontData): 2009-06-04 Dan Bernstein - try to fix the Tiger build * platform/graphics/SimpleFontData.h: 2009-06-04 Dan Bernstein - try to fix the Leopard and Tiger builds * platform/graphics/SimpleFontData.h: 2009-06-04 Dan Bernstein - try to fix the Windows build * platform/graphics/win/UniscribeController.cpp: (WebCore::UniscribeController::shapeAndPlaceItem): 2009-06-04 Dan Bernstein Reviewed by Sam Weinig. - make SimpleFontData's data members private - rename SimpleFontData's m_font member to m_platformData * platform/graphics/Font.h: (WebCore::Font::spaceWidth): * platform/graphics/SimpleFontData.cpp: (WebCore::SimpleFontData::SimpleFontData): * platform/graphics/SimpleFontData.h: (WebCore::SimpleFontData::platformData): (WebCore::SimpleFontData::spaceWidth): (WebCore::SimpleFontData::adjustedSpaceWidth): (WebCore::SimpleFontData::syntheticBoldOffset): (WebCore::SimpleFontData::spaceGlyph): (WebCore::SimpleFontData::getNSFont): (WebCore::SimpleFontData::getQtFont): (WebCore::SimpleFontData::getWxFont): * platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::advance): * platform/graphics/cairo/FontCairo.cpp: (WebCore::Font::drawGlyphs): * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::determinePitch): (WebCore::SimpleFontData::platformWidthForGlyph): * platform/graphics/chromium/SimpleFontDataLinux.cpp: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::containsCharacters): (WebCore::SimpleFontData::platformWidthForGlyph): * platform/graphics/gtk/FontGtk.cpp: (WebCore::setPangoAttributes): * platform/graphics/gtk/SimpleFontDataGtk.cpp: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::containsCharacters): (WebCore::SimpleFontData::determinePitch): (WebCore::SimpleFontData::platformWidthForGlyph): (WebCore::SimpleFontData::setFont): * platform/graphics/gtk/SimpleFontDataPango.cpp: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::containsCharacters): (WebCore::SimpleFontData::determinePitch): (WebCore::SimpleFontData::platformWidthForGlyph): (WebCore::SimpleFontData::setFont): * platform/graphics/mac/CoreTextController.cpp: (WebCore::CoreTextController::adjustGlyphsAndAdvances): * platform/graphics/mac/FontMac.mm: (WebCore::Font::drawGlyphs): * platform/graphics/mac/FontMacATSUI.mm: (WebCore::initializeATSUStyle): (WebCore::overrideLayoutOperation): (WebCore::ATSULayoutParameters::initialize): * platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::initFontData): (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::platformCharWidthInit): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::containsCharacters): (WebCore::SimpleFontData::determinePitch): (WebCore::SimpleFontData::platformWidthForGlyph): (WebCore::SimpleFontData::checkShapesArabic): (WebCore::SimpleFontData::getCTFont): * platform/graphics/qt/SimpleFontDataQt.cpp: (WebCore::SimpleFontData::determinePitch): (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::platformCharWidthInit): * platform/graphics/win/FontCGWin.cpp: (WebCore::drawGDIGlyphs): (WebCore::Font::drawGlyphs): * platform/graphics/win/SimpleFontDataCGWin.cpp: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::platformCharWidthInit): (WebCore::SimpleFontData::platformWidthForGlyph): * platform/graphics/win/SimpleFontDataCairoWin.cpp: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::platformDestroy): (WebCore::SimpleFontData::platformWidthForGlyph): (WebCore::SimpleFontData::setFont): * platform/graphics/win/SimpleFontDataWin.cpp: (WebCore::SimpleFontData::initGDIFont): (WebCore::SimpleFontData::smallCapsFontData): (WebCore::SimpleFontData::containsCharacters): (WebCore::SimpleFontData::determinePitch): (WebCore::SimpleFontData::widthForGDIGlyph): (WebCore::SimpleFontData::scriptFontProperties): * platform/graphics/wx/SimpleFontDataWx.cpp: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::determinePitch): (WebCore::SimpleFontData::platformWidthForGlyph): 2009-06-04 Paul Godavari Reviewed by Eric Seidel. Initialize the width of PopupMenuListBox properly for Mac Chromium. Added a test that works only with this patch applied. The test is a manual one, since the hit testing infrastructure in the layout tests sends keyboard and mouse events to the main window and not the cocoa control that implements the popup up, which means we can't select items from the popup up. https://bugs.webkit.org/show_bug.cgi?id=25904 * manual-tests/select-narrow-width.html: Added. * platform/chromium/PopupMenuChromium.cpp: (WebCore::PopupListBox::PopupListBox): (WebCore::PopupContainer::showExternal): 2009-06-04 Brent Fulgham Unreviewed Windows build correction. * WebCore.vcproj/WebCore.vcproj: Add missing 'ReplaceNodeWithSpanCommand.cpp' and 'ReplaceNodeWithSpanCommand.h' 2009-02-03 Eric Seidel Reviewed by Justin Garcia. Make sure execCommand("bold") on test only removes the bold and not the underline. https://bugs.webkit.org/show_bug.cgi?id=23496 Test: editing/execCommand/convert-style-elements-to-spans.html * WebCore.xcodeproj/project.pbxproj: * css/CSSStyleDeclaration.h: (WebCore::CSSStyleDeclaration::isEmpty): * dom/NamedAttrMap.h: (WebCore::NamedAttrMap::isEmpty): * editing/ApplyStyleCommand.cpp: (WebCore::isUnstyledStyleSpan): (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan): (WebCore::ApplyStyleCommand::applyBlockStyle): (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): (WebCore::ApplyStyleCommand::implicitlyStyledElementShouldBeRemovedWhenApplyingStyle): (WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes): (WebCore::ApplyStyleCommand::removeCSSStyle): (WebCore::ApplyStyleCommand::applyTextDecorationStyle): (WebCore::ApplyStyleCommand::removeInlineStyle): (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): * editing/ApplyStyleCommand.h: * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::replaceNodeWithSpanPreservingChildrenAndAttributes): * editing/CompositeEditCommand.h: * editing/RemoveNodePreservingChildrenCommand.cpp: (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): * editing/ReplaceNodeWithSpanCommand.cpp: Added. (WebCore::ReplaceNodeWithSpanCommand::ReplaceNodeWithSpanCommand): (WebCore::swapInNodePreservingAttributesAndChildren): (WebCore::ReplaceNodeWithSpanCommand::doApply): (WebCore::ReplaceNodeWithSpanCommand::doUnapply): * editing/ReplaceNodeWithSpanCommand.h: Added. (WebCore::ReplaceNodeWithSpanCommand::create): 2009-06-04 Brent Fulgham Unreviewed build fix for Windows Cairo target. Add missing post-build command to copy history/cf contents to output directory. * WebCore.vcproj/WebCore.vcproj: Update Debug_Cairo and Release_Cairo target post-build steps with copy commands. 2009-06-04 Pierre d'Herbemont Reviewed by Simon Fraser. Movie controller thumb fails to scale with full page zoom Account for zoom level when drawing media controller thumb on Windows. * rendering/RenderMediaControls.cpp: (WebCore::RenderMediaControls::adjustMediaSliderThumbSize): 2009-06-04 David Hyatt Reviewed by Sam Weinig. Move DOM window focus/blur out of SelectionController and into FocusController. Make sure it fires on the focused frame when the page activation state changes also. This is covered by an existing layout test (albeit badly). I have modified the test to be correct. * editing/SelectionController.cpp: (WebCore::SelectionController::setFocused): * page/FocusController.cpp: (WebCore::FocusController::setFocusedFrame): (WebCore::FocusController::setActive): 2009-06-04 Albert J. Wong Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=26148 Adding in empty files to stage the extract of RenderThemeChromiumSkia from RenderThemeChromiumLinux and RenderThemeChromiumWindows. * rendering/RenderThemeChromiumSkia.cpp: Added. * rendering/RenderThemeChromiumSkia.h: Added. 2009-06-04 Andrei Popescu Reviewed by Alexey Proskuryakov. https://bugs.webkit.org/show_bug.cgi?id=25562 Potential crash after ApplicationCacheStorage::storeNewestCache() fails Fix the crash by checking the return value of cacheStorage().storeNewestCache(this) in WebCore::ApplicationCacheGroup::checkIfLoadIsComplete. If storeNewestCache failed, we run the cache failure steps: 1. Fire the error events to all pending master entries, as well any other cache hosts currently associated with a cache in this group. 2. Disassociate the pending master entries from the failed new cache. 3. Reinstate the old "newest cache", if there was one. We also introduce two other changes: 1. a mechanism to rollback storageID changes to the in-memory resource objects when the storing of an ApplicationCache object fails. 2. defer removing the pending master entries from the list of pending master entries until the entire load is complete. This matches the HTML 5 spec better. To track if the load is complete we now introduce a counter for those pending master entries that haven't yet finshed downloading. * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): initializes the new counter to 0 (WebCore::ApplicationCacheGroup::selectCache): increments the counter when a new pending master entry is added. (WebCore::ApplicationCacheGroup::finishedLoadingMainResource): decrements the counter instead of removing the pending master entry. (WebCore::ApplicationCacheGroup::failedLoadingMainResource): decrements the counter instead of removing the pending master entry. (WebCore::ApplicationCacheGroup::setNewestCache): removes an assertion that no longer holds true. In particular, the newest cache is not necessarily new anymore. We can set an old cache as the new cache. This can happen if we failed to store a newly downloaded cache to the database and we are now reinstating the former newest cache. (WebCore::ApplicationCacheGroup::manifestNotFound): resets the counter to 0. (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): check if the loading is complete based on the counter instead of the list of pending master entries. Empty the list of master entries if the load is complete. * loader/appcache/ApplicationCacheGroup.h: add the new counter. * loader/appcache/ApplicationCacheStorage.cpp: introduce the journaling mechanism for in-memory resource objects. (WebCore::ResourceStorageIDJournal::~ResourceStorageIDJournal): (WebCore::ResourceStorageIDJournal::add): (WebCore::ResourceStorageIDJournal::commit): (WebCore::ResourceStorageIDJournal::Record::Record): (WebCore::ResourceStorageIDJournal::Record::restore): (WebCore::ApplicationCacheStorage::store): log the changes to the in-memory resource objects. (WebCore::ApplicationCacheStorage::storeNewestCache): create the journal object. * loader/appcache/ApplicationCacheStorage.h: modify the signature of bool store(ApplicationCache*) to add a pointer to the logger object used to trace the changes to the storageID of the resource objects. 2009-06-04 Jeremy Orlow Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=26154 Allow underscores in the hostnames we parse out of databaseIdentifiers. This code is used for HTML 5 database support. * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::createFromDatabaseIdentifier): 2009-06-04 Mihnea Ovidenie Reviewed by Darin Adler. Bug 26084: Multiple missing images in webkit-mask-image prevent rendering https://bugs.webkit.org/show_bug.cgi?id=26084 When painting multiple images, make sure that at least one image is valid before pushing a transparency layer. Added a manual test. * manual-tests/mask-composite-missing-images.html: Added. * rendering/RenderBox.cpp: (WebCore::RenderBox::paintMaskImages): 2009-06-04 Jeremy Orlow Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=26180 Add a fast path for SecurityOrigin::equal. If "other == this" (where other is the other security origin), then we really don't need to do all the other (expensive) comparisons. We know it's equal. * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::equal): 2009-06-03 David Hyatt Reviewed by Sam Weinig. Improvements in how selection behaves with focus/activation and a reversion back to using isActive in the scrollbar theme code to remove a Chromium ifdef. * editing/SelectionController.cpp: (WebCore::SelectionController::SelectionController): Make the controller set its focused state correctly upon initial creation. (WebCore::SelectionController::setSelection): Make selection willing to shift the focus node if the selection is focused even if the selection is not active. Whether or not the Page is active is irrelevant to focus changes. (WebCore::SelectionController::setFocused): * editing/SelectionController.h: (WebCore::SelectionController::isFocused): Add a new isFocused() method so that code can check if the Selection is focused without caring about the active state. * page/Frame.cpp: (WebCore::Frame::setFocusedNodeIfNeeded): Allow focus shifts even when the selection is not active. * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::paint): Revert Dan's change to directly talk to AppKit for checking active state. Now that the WebCore isActive method works, ditch the Chromium-specific #ifdef and go back to the original code. 2009-06-04 Pierre d'Herbemont Reviewed by Darin Adler. Test: media/before-load-member-access.html https://bugs.webkit.org/show_bug.cgi?id=26081 * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::played): Ensure that if m_playedTimeRanges, is not initialized we return a valid range, and don't attempt to use it. 2009-06-03 Kenneth Rohde Christiansen Reviewed by Simon Hausmann. Implement a way to invalidate the FontCache used by the Qt port. * platform/graphics/qt/FontCacheQt.cpp: (WebCore::FontCache::invalidate): 2009-06-04 Laszlo Gombos Reviewed by Ariya Hidayat. https://bugs.webkit.org/show_bug.cgi?id=26015 [Qt] Single-threaded QtWebKit configuration Turn off Database, DOM storage, icon database and Web Workers support when ENABLE_SINGLE_THREADED is turned on. Set SQLITE_THREADSAFE to false to turn off SQLite mutexes when ENABLE_SINGLE_THREADED is turned on. * WebCore.pro: 2009-06-03 Dan Bernstein Reviewed by Sam Weinig. - add some assertions that Font methods are used on the main thread * platform/graphics/Font.cpp: (WebCore::Font::setShouldUseSmoothing): * platform/graphics/Font.h: (WebCore::Font::primaryFont): * platform/graphics/FontFastPath.cpp: (WebCore::Font::glyphDataForCharacter): 2009-06-03 Dan Bernstein - Windows build fix Rolled out apparently-accidental changes to config.h from r44398. These were not part of the patch as reviewed. * config.h: 2009-06-03 Dmitry Titov Not reviewed, Chromium build fix. https://bugs.webkit.org/show_bug.cgi?id=26177 Reverting 'private' to 'protected' on 2 classes. Chromium glue layer (not yet in Webkit tree) relies on ability to derive Chromium-specific platform classes and access the data members. See bug for more details. * platform/PlatformMouseEvent.h: * platform/PlatformWheelEvent.h: 2009-06-03 Chris Marrin Reviewed by Simon Fraser . Fixed https://bugs.webkit.org/show_bug.cgi?id=26162 This corrects an error when destroying an animation or transition where endAnimation was never getting called and therefore the hardware animation was never getting removed. This includes a manual-test since it's really impossible to make a meaningful automatic test for an animation bug like this. This has no effect unless accelerated compositing is enabled. * manual-tests/interrupted-compound-transform.html: Added. * page/animation/ImplicitAnimation.cpp: (WebCore::ImplicitAnimation::~ImplicitAnimation): * page/animation/KeyframeAnimation.cpp: (WebCore::KeyframeAnimation::~KeyframeAnimation): 2009-06-03 Adam Langley Reviewed by Eric Seidel. Make the scrollbar thumb size twice the width for Chromium Linux. This matches Firefox on Linux. This will need layout test pixel results to be rebaselined in the Chromium tree. http://code.google.com/p/chromium/issues/detail?id=12602 https://bugs.webkit.org/show_bug.cgi?id=26176 * platform/chromium/ScrollbarThemeChromiumLinux.cpp: (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength): * platform/chromium/ScrollbarThemeChromiumLinux.h: 2009-06-03 Adam Langley Reviewed by Eric Seidel. Change Chromium scrollbar theme code to use different classes on Windows and Linux rather than suppling symbols. The ScrollbarTheme class is already using virtual dispatch, so there's no reason not to. This should not affect any layout tests. https://bugs.webkit.org/show_bug.cgi?id=26174 * platform/chromium/ScrollbarThemeChromium.cpp: * platform/chromium/ScrollbarThemeChromium.h: * platform/chromium/ScrollbarThemeChromiumLinux.cpp: (WebCore::ScrollbarTheme::nativeTheme): (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness): (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece): (WebCore::ScrollbarThemeChromiumLinux::paintButton): (WebCore::ScrollbarThemeChromiumLinux::paintThumb): (WebCore::ScrollbarThemeChromiumLinux::buttonSize): * platform/chromium/ScrollbarThemeChromiumLinux.h: Added. * platform/chromium/ScrollbarThemeChromiumWin.cpp: (WebCore::ScrollbarTheme::nativeTheme): (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness): (WebCore::ScrollbarThemeChromiumWin::invalidateOnMouseEnterExit): (WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin): (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece): (WebCore::ScrollbarThemeChromiumWin::paintButton): (WebCore::ScrollbarThemeChromiumWin::paintThumb): (WebCore::ScrollbarThemeChromiumWin::getThemeState): (WebCore::ScrollbarThemeChromiumWin::getThemeArrowState): (WebCore::ScrollbarThemeChromiumWin::getClassicThemeState): (WebCore::ScrollbarThemeChromiumWin::buttonSize): * platform/chromium/ScrollbarThemeChromiumWin.h: Added. 2009-06-03 Pavel Feldman Reviewed by Timothy Hatcher. Enabling debugger requires that Scripts panel is already attached to the render tree. The reason is that recompile events result in script sources being added into the source frames. Prior to the global options introduced, debugger was enabled from the Scripts panel, so that it was guaranteed to exist. The InspectorController::enableDebugger API calls with no inspector frontend showing were failing though. https://bugs.webkit.org/show_bug.cgi?id=26145 * WebCore.base.exp: * inspector/InspectorController.cpp: (WebCore::InspectorController::setWindowVisible): (WebCore::InspectorController::scriptObjectReady): (WebCore::InspectorController::enableDebuggerFromFrontend): (WebCore::InspectorController::enableDebugger): * inspector/InspectorController.h: * inspector/InspectorController.idl: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::attachDebuggerWhenShown): * inspector/InspectorFrontend.h: * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.show): (WebInspector.ScriptsPanel.prototype.attachDebuggerWhenShown): * inspector/front-end/inspector.js: (WebInspector.attachDebuggerWhenShown): 2009-06-03 Dan Bernstein Reviewed by Anders Carlsson. - fix a regression from the previous patch * platform/graphics/Font.cpp: Initialize shouldUseFontSmoothing to true. 2009-06-03 Dan Bernstein Reviewed by Anders Carlsson. - eliminate WebCoreTextRenderer * WebCore.base.exp: Updated. * WebCore.xcodeproj/project.pbxproj: Removed WebCoreTextRenderer.{h,mm} and promoted WebFontCache.h to private. * platform/graphics/Font.cpp: (WebCore::Font::setShouldUseSmoothing): Added this static setter for a new file-static boolean. (WebCore::Font::shouldUseSmoothing): Added this static getter. * platform/graphics/Font.h: Decleared setShouldUseSmoothing() and shouldUseSmoothing(). * platform/graphics/mac/FontMac.mm: (WebCore::Font::drawGlyphs): Use Font::shouldUseSmoothing() instead of WebCoreShouldUseFontSmoothing(). * platform/graphics/mac/WebLayer.mm: Removed unneeded #import. * platform/mac/WebCoreTextRenderer.h: Removed. * platform/mac/WebCoreTextRenderer.mm: Removed. 2009-06-03 David Levin Reviewed by Dimitri Glazkov. v8's ScriptController::evaluate should protect the Frame like the jsc version. https://bugs.webkit.org/show_bug.cgi?id=26172 This change is simply copying protections done for Frame in the method WebCore::ScriptController::evaluate in the file js/ScriptController.cpp. * bindings/v8/ScriptController.cpp: (WebCore::ScriptController::evaluate): 2009-06-03 Dan Bernstein Reviewed by John Sullivan. - fix Use CTFontManager notifications instead of ATS notifications * platform/graphics/FontCache.h: Made it an error to destroy a FontCache instance. * platform/graphics/mac/FontCacheMac.mm: (WebCore::fontCacheRegisteredFontsChangedNotificationCallback): Added this notification callback for the kCTFontManagerRegisteredFontsChangedNotification, which calls invalidate(). (WebCore::FontCache::platformInit): Register for kCTFontManagerRegisteredFontsChangedNotification. 2009-06-03 Kevin Watters Reviewed by Kevin Ollivier. Use CGContextShowGlyphsWithAdvances to get more accurate text rendering on Mac. https://bugs.webkit.org/show_bug.cgi?id=26161 * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp: (WebCore::drawTextWithSpacing): 2009-06-03 Pavel Feldman Reviewed by Timothy Hatcher. Reorder ResourcesPanel components initialization to unfreeze resource list scroller. https://bugs.webkit.org/show_bug.cgi?id=26159 * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel): 2009-06-03 Pavel Feldman Reviewed by Timothy Hatcher. - Fix for crash (preceded by assertion) in InspectorController::didCommitLoad when reloading or navigating with the Inspector open. - Fix for Inspector's Elements panel being empty when Inspector first appears. https://bugs.webkit.org/show_bug.cgi?id=26134 https://bugs.webkit.org/show_bug.cgi?id=26135 * inspector/InspectorController.cpp: (WebCore::InspectorController::scriptObjectReady): (WebCore::InspectorController::didLoadResourceFromMemoryCache): (WebCore::InspectorController::identifierForInitialRequest): (WebCore::InspectorController::ensureResourceTrackingSettingsLoaded): * inspector/InspectorController.h: 2009-06-03 Adam Roben Windows build fix after r44379 * svg/graphics/SVGImage.cpp: Move EmptyClients.h back down below the other #includes to fix a compiler warning on Windows. 2009-06-02 Kenneth Rohde Christiansen Reviewed by Simon Hausmann. Add workaround for crash in Linux Flash Player when hosted by another toolkit than GTK+. Bug fixed at the Flash Player bugzilla, issue (FP-2140). * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::setNPWindowIfNeeded): 2009-06-01 Kenneth Rohde Christiansen Reviewed by Simon Hausmann. Refactor the Qt plugin code to use NPP_SetWindow correctly, to make resizing of plugins work. Attention was paid to make sure that the windowed plugins scroll synchronized with the page view. A manual test has been added. * manual-tests/qt/plugin-iframe.html: Added. * plugins/PluginView.cpp: (WebCore::PluginView::setFrameRect): (WebCore::PluginView::frameRectsChanged): * plugins/PluginView.h: * plugins/qt/PluginContainerQt.cpp: (PluginContainerQt::PluginContainerQt): * plugins/qt/PluginContainerQt.h: * plugins/qt/PluginPackageQt.cpp: (WebCore::PluginPackage::load): * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::updatePluginWidget): (WebCore::PluginView::paint): (WebCore::PluginView::setParent): (WebCore::PluginView::setNPWindowRect): (WebCore::PluginView::setNPWindowIfNeeded): (WebCore::PluginView::handlePostReadFile): (WebCore::PluginView::getValue): (WebCore::PluginView::invalidateRect): (WebCore::PluginView::init): 2009-06-02 Darin Adler Reviewed by David Hyatt. Bug 26112: viewless WebKit -- make events work https://bugs.webkit.org/show_bug.cgi?id=26112 The main fix here is to make mouse and wheel event coordinates in the coordinate system of the top level NSView rather than the NSWindow when in the viewless mode. This is the design Hyatt chose, but the event part of it wasn't done yet. Also fix FrameView to do normal reference counting instead of a strange model with an explicit deref near creation time. * WebCore.base.exp: Updated. * page/EventHandler.cpp: (WebCore::EventHandler::eventLoopHandleMouseUp): Moved this function into the file to reduce conditionals in the header. (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto. * page/EventHandler.h: Reduced includes. Fixed formatting of Objective-C types. Made currentNSEvent a static member function. Added sendContextMenuEvent and eventMayStartDrag functions that takes NSEvent * so the conversion to PlatformMouseEvent can be done here rather than in WebKit. Reduced #if by making eventLoopHandleMouseUp and eventLoopHandleMouseDragged unconditional. * page/Frame.cpp: (WebCore::Frame::setView): Made this take a PassRefPtr since it takes ownership. (WebCore::Frame::createView): Changed to use RefPtr and FrameView::create and remove the explicit deref. * page/Frame.h: Changed setView to take a PassRefPtr. * page/FrameTree.cpp: Added newly-needed include. * page/FrameView.cpp: (WebCore::FrameView::FrameView): Got rid of one of the two constructors, and removed the initialization of m_refCount and call to show from the reamining one. (WebCore::FrameView::create): Added two create functions that do what the two constructors did before, except that they return a PassRefPtr to make sure the reference counting is handled correctly. (WebCore::FrameView::~FrameView): Removed assertion from when FrameView implemented its own reference counting. * page/FrameView.h: Inherit from RefCounted for reference counting. Made the constructor private and added create functions. Got rid of the hand-implemented reference counting in this class. * page/mac/EventHandlerMac.mm: (WebCore::currentNSEventSlot): Renamed currentEvent to currentNSEventSlot to make it more clear how it relates to currentNSEvent. (WebCore::EventHandler::currentNSEvent): Updated. (WebCore::CurrentEventScope::CurrentEventScope): Added. Use to set/reset the current event in a foolproof way. (WebCore::CurrentEventScope::~CurrentEventScope): Ditto. (WebCore::EventHandler::wheelEvent): Use CurrentEventScope. Pass the platform window in when constructing the PlatformWheelEvent. (WebCore::EventHandler::keyEvent): Use CurrentEventScope. (WebCore::lastEventIsMouseUp): Use currentNSEvent. (WebCore::EventHandler::passMouseDownEventToWidget): Ditto. (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto. (WebCore::EventHandler::eventLoopHandleMouseUp): Ditto. (WebCore::EventHandler::passSubframeEventToSubframe): Use currentPlatformMouseEvent to get a mouse event that has the appropriate platform window passed to create it. (WebCore::EventHandler::passWheelEventToWidget): Ditto. (WebCore::EventHandler::mouseDown): Ditto. (WebCore::EventHandler::mouseDragged): Ditto. (WebCore::EventHandler::mouseUp): Ditto. (WebCore::EventHandler::mouseMoved): Ditto. (WebCore::EventHandler::currentPlatformMouseEvent): Added. Passes the platform window that's now needed to create a PlatformMouseEvent. (WebCore::EventHandler::sendContextMenuEvent): Added. (WebCore::EventHandler::eventMayStartDrag): Added. * platform/HostWindow.h: Removed unneeded includes and constructor definition. * platform/PlatformMouseEvent.h: Sorted things in alphabetical order. Changed Mac constructor to take a windowView as well as the event. This is needed in viewless mode, since the "window" is actually an NSView, so the event has to know which view to compute the coordinates with. Made the same change to pointForEvent. * platform/PlatformWheelEvent.h: Ditto. * platform/mac/PlatformMouseEventMac.mm: (WebCore::pointForEvent): Convert point from window coordinates to view coordinates if a windowView is passed in. This is used in viewless mode. (WebCore::PlatformMouseEvent::PlatformMouseEvent): Ditto. * platform/mac/WheelEventMac.mm: (WebCore::PlatformWheelEvent::PlatformWheelEvent): Ditto. * platform/mac/WidgetMac.mm: (WebCore::Widget::convertFromContainingWindow): Fixed case where there is no platform widget and no parent. Before it would yield unpredictable results because of dispatching to a nil object and returning a structure. Now it returns the point without changing coordinates at all, which is what we need for this case in viewless mode. * rendering/RenderApplet.cpp: Removed unneeded includes. (WebCore::RenderApplet::intrinsicSize): Use widget function. (WebCore::RenderApplet::createWidgetIfNecessary): Ditto. * rendering/RenderApplet.h: Make more things private. Get rid of unneeded explicit destructor. * rendering/RenderFrame.cpp: Removed unneeded includes. (WebCore::RenderFrame::edgeInfo): Updated to use node function so header doesn't have to define element function. (WebCore::RenderFrame::viewCleared): Ditto. Also changed to use widget function. * rendering/RenderFrame.h: Removed unneeded includes. Made some things private. Got rid of element function. * rendering/RenderPart.cpp: Removed unneeded includes. (WebCore::RenderPart::~RenderPart): Changed to use clearWidget function. (WebCore::RenderPart::setWidget): Changed to use widget function. (WebCore::RenderPart::deleteWidget): Changed to use passed-in widget. This is now only called by the clearWidget function. * rendering/RenderPart.h: Removed unneeded forward declarations. Made more functions private. Updated deleteWidget to take widget argument. * rendering/RenderPartObject.cpp: (WebCore::RenderPartObject::~RenderPartObject): use frameView function instead of getting at m_view directly. (WebCore::RenderPartObject::updateWidget): Ditto. (WebCore::RenderPartObject::layout): Ditto. Same for widget and m_widget. (WebCore::RenderPartObject::viewCleared): Ditto. * rendering/RenderPartObject.h: Made some functions private. * rendering/RenderWidget.cpp: (WebCore::RenderWidget::RenderWidget): Initialize m_frameView with construction syntax instead of assignment. (WebCore::RenderWidget::destroy): Updated for name change of m_view to m_frameView. (WebCore::RenderWidget::~RenderWidget): Use clearWidget to delete the widget. (WebCore::RenderWidget::setWidget): Use clearWidget. (WebCore::RenderWidget::paint): Updated for name change of m_view to m_frameView. (WebCore::RenderWidget::deleteWidget): Changed to use passed-in widget. * rendering/RenderWidget.h: Made many functions protected, others private and made all data members private. * svg/animation/SMILTime.h: Removed unhelpful max and min functions. These just do what std::max and std::min will already do automatically for this type, so they are not helpful. * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::SVGImage): Removed unneeded initial values for types that initialize to zero without anything explicit. (WebCore::SVGImage::~SVGImage): Update since m_frame and m_frameView are no longer stored. (WebCore::SVGImage::setContainerSize): Ditto. (WebCore::SVGImage::usesContainerSize): Ditto. (WebCore::SVGImage::size): Ditto. (WebCore::SVGImage::hasRelativeWidth): Ditto. (WebCore::SVGImage::hasRelativeHeight): Ditto. (WebCore::SVGImage::draw): Ditto. (WebCore::SVGImage::nativeImageForCurrentFrame): Ditto. (WebCore::SVGImage::dataChanged): Ditto. * svg/graphics/SVGImage.h: Removed unneeded includes and unneeded data members m_document, m_frame, m_frameView, and m_minSize. 2009-06-02 Adam Langley Reviewed by Eric Seidel. The previous code was assuming that we'll be painting buttons on the scrollbar which isn't true on Linux. To reproduce, resize a page with scrollbars until they are less than two widths high. This will need pixel test baselines to be updated in the Chromium tree. * platform/chromium/ScrollbarThemeChromium.cpp: move this function... * platform/chromium/ScrollbarThemeChromiumWin.cpp: (WebCore::ScrollbarThemeChromium::trackRect): ... to here * platform/chromium/ScrollbarThemeChromiumLinux.cpp: (WebCore::ScrollbarThemeChromium::trackRect): add an alternative which doesn't remove the track when the scrollbar is less than two widths high. 2009-06-02 Mark Rowe Reviewed by Anders Carlsson. Remove workaround that was added to address as it no longer affects our Tiger builds. * Configurations/Base.xcconfig: 2009-06-02 Eric Seidel Reviewed by Maciej Stachowiak. Insert*List on an stand-alone image in a content editable region ASSERTS ASSERTION FAILED: isStartOfParagraph(startOfParagraphToMove) https://bugs.webkit.org/show_bug.cgi?id=19066 Attempt to fix this by noticing that we inserted the list inside the selection which includes the image, and re-adjust the selection to not include the list before trying to move the image into the list item. Test: editing/execCommand/list-wrapping-image-crash.html * editing/InsertListCommand.cpp: (WebCore::InsertListCommand::doApply): 2009-06-02 Eric Seidel Reviewed by Darin Adler. Rename PositionIterator members in hope of further clarity https://bugs.webkit.org/show_bug.cgi?id=24854 Rename m_parent to m_anchorNode (since although it's always the parent of the previous m_child member, it is not always the parent of the effective position) Rename m_child to m_nodeAfterPositionInAnchor to make clear that it's the node directly following the position. This member is often NULL, but is always a child of m_parent, now m_anchorNode if set. Rename m_offset to m_offsetInAnchor (since it's interpreted relative to m_anchorNode) * dom/PositionIterator.cpp: (WebCore::PositionIterator::operator Position): (WebCore::PositionIterator::increment): (WebCore::PositionIterator::decrement): (WebCore::PositionIterator::atStart): (WebCore::PositionIterator::atEnd): (WebCore::PositionIterator::atStartOfNode): (WebCore::PositionIterator::atEndOfNode): (WebCore::PositionIterator::isCandidate): * dom/PositionIterator.h: (WebCore::PositionIterator::PositionIterator): (WebCore::PositionIterator::node): (WebCore::PositionIterator::offsetInLeafNode): 2009-06-02 Julien Chaffraix Reviewed by Eric Seidel. Bug 17167: Failures in fast/dom/Node/initial-values.html This partly solve a compatibility issue with other browsers. It will also make us more consistent while handling XHTML element. The issue is that when we create an XHTML element inside an HTML document (as it is the case when calling createElementNS), we default to the HTML behaviour in nodeName. As we cannot test if an HTMLElement is an XHTML element, our fix is to check whether it has a prefix and then default to XML behaviour for nodeName. * html/HTMLElement.cpp: (WebCore::HTMLElement::nodeName): Add a prefix check before returning the uppercase tagName (HTML behaviour). 2009-06-02 Eric Seidel Reviewed by Maciej Stachowiak. Add a compareBoundaryPoints which takes RangeBoundaryPoints https://bugs.webkit.org/show_bug.cgi?id=25500 I noticed the need for this function when removing compareBoundaryPoints(Position, Position) This patch is almost entirely minus lines. No functional changes, thus no tests. * dom/Range.cpp: (WebCore::Range::setStart): (WebCore::Range::setEnd): (WebCore::Range::compareBoundaryPoints): (WebCore::Range::boundaryPointsValid): * dom/Range.h: 2009-06-02 Eric Seidel Reviewed by Maciej Stachowiak. Remove Range::compareBoundaryPoints(Position, Position) per Darin's suggestion in bug 25056 https://bugs.webkit.org/show_bug.cgi?id=25500 Darin indicated the Range should deal only with primitive DOM node/offset pairs, and that Position (which is a more robust editing construct) should have its own comparison functions and that Range.h should not mention Position at all. Turns out that Position already has a comparePositions() function (which knows how to additionally handled positions in shadow trees). So I've just changed all callers of compareBoundaryPoints(Position, Position) to use the existing comparePositions() function. I've also added a comparePositions which takes VisiblePositions for convenience. * dom/Range.cpp: * dom/Range.h: * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::updateStartEnd): (WebCore::ApplyStyleCommand::applyBlockStyle): (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): (WebCore::ApplyStyleCommand::applyInlineStyle): (WebCore::ApplyStyleCommand::applyInlineStyleToRange): (WebCore::ApplyStyleCommand::removeInlineStyle): (WebCore::ApplyStyleCommand::nodeFullySelected): (WebCore::ApplyStyleCommand::nodeFullyUnselected): * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::deleteInsignificantText): (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): (WebCore::CompositeEditCommand::moveParagraphs): * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::initializeStartEnd): (WebCore::DeleteSelectionCommand::handleGeneralDelete): (WebCore::DeleteSelectionCommand::mergeParagraphs): * editing/SelectionController.cpp: (WebCore::SelectionController::nodeWillBeRemoved): * editing/VisibleSelection.cpp: (WebCore::VisibleSelection::toNormalizedRange): * editing/htmlediting.cpp: (WebCore::comparePositions): * editing/htmlediting.h: * page/EventHandler.cpp: (WebCore::EventHandler::handleMousePressEventSingleClick): 2009-06-02 Albert J. Wong Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=26122 Upstream v8_utility.h functions into V8Utilities.h. This patch has some transitional code to make upstreaming easier. This code will be deleted in a few days. * bindings/v8/ScriptFunctionCall.cpp: (WebCore::ScriptFunctionCall::construct): NewInstance -> newInstance. * bindings/v8/V8Utilities.h: (WebCore::AllowAllocation::AllowAllocation): Function added. (WebCore::AllowAllocation::~AllowAllocation): Function added. (WebCore::SafeAllocation::NewInstance): Function added. * bindings/v8/WorkerContextExecutionProxy.cpp: (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): NewInstance -> newInstance. (WebCore::WorkerContextExecutionProxy::toV8): NewInstance -> newInstance. 2009-06-02 Dan Bernstein Reviewed by John Sullivan. - fix Search field’s focus ring is outset * rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::adjustSearchFieldStyle): Set the focused search field outline offset to -2. 2009-06-02 Sam Weinig Reviewed by Alexey Proskuryakov. Add list of unimplemented event handlers to DOMWindow. * page/DOMWindow.idl: 2009-06-02 Alexey Proskuryakov Reviewed by Sam Weinig. https://bugs.webkit.org/show_bug.cgi?id=26133 Adapt and import py-dom-xpath tests Tests: fast/xpath/py-dom-xpath/abbreviations.html fast/xpath/py-dom-xpath/axes.html fast/xpath/py-dom-xpath/data.html fast/xpath/py-dom-xpath/expressions.html fast/xpath/py-dom-xpath/functions.html fast/xpath/py-dom-xpath/nodetests.html fast/xpath/py-dom-xpath/paths.html fast/xpath/py-dom-xpath/predicates.html Fix bugs found with this test suite: - name and local-name were incorrect for processing instructions (XPath expanded-name doesn't match DOM exactly); - name, local-name and namespace functions should crash on attribute nodes; - attemps to make node sets from other types were not detected as errors. No performance impact. * xml/XPathExpressionNode.h: Track type conversion errors that happen during evaluation. An error won't stop evaluation, but an exception will be raised afterwards. We could also detect conversion errors at compile time, but not if we're going to support XPath variables (which is unnecessary for XPathEvaluator, but will be necessary if we decide to make our own XSLT one day). * xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): Check whether a type conversion exception occurred during evaluation, and raise an excpetion if it did. * xml/XPathFunctions.cpp: (WebCore::XPath::expandedNameLocalPart): (WebCore::XPath::expandedName): XPath name(), local-name() and namespace-uri() functions are defined in terms of expanded-name, which doesn't match anything available via DOM exactly. Calculate the expanded name properly. (WebCore::XPath::FunNamespaceURI::evaluate): This function could crash if used with an attribute node, because it released what was possibly the only reference to attribute node before using it. Changed the function to avoid such situation. (WebCore::XPath::FunLocalName::evaluate): Ditto. Also, used the new expandedNameLocalPart() to work properly with processing instruction nodes. (WebCore::XPath::FunName::evaluate): Ditto (using expandedName()). (WebCore::XPath::FunCount::evaluate): Signal an error if the argument is not a node-set (by using toNodeSet unconditionally, which will raise an error, and return an empty set). * xml/XPathPath.cpp: (WebCore::XPath::Filter::evaluate): Signal an error if the expression evaluation result is not a node-set. * xml/XPathPath.h: (WebCore::XPath::Filter::resultType): A Filter's result is actually always a node-set (this is not so for FilterExpr production in the spec, but is for us, because we don't naively map BNF productions to classes). * xml/XPathPredicate.cpp: (WebCore::XPath::Union::evaluate): Signal an error if either side is not a node-set. * xml/XPathStep.cpp: Removed an unnecesary include. * xml/XPathValue.cpp: (WebCore::XPath::Value::toNodeSet): Signal an error if conversion fails. (WebCore::XPath::Value::modifiableNodeSet): Ditto. (WebCore::XPath::Value::toNumber): Don't allow inputs that don't match XPath Number production (in particular, those using exponential notation). 2009-06-01 Sam Weinig Reviewed by Brady Eidson. Part of https://bugs.webkit.org/show_bug.cgi?id=26100 Add missing event handler properties to the DOMWindow Added oncontextmenu, oninput, and onmessage event handlers to the DOMWindow. Aditionally, the onloadstart, onprogress, onstalled, and onsuspend event handlers were implemented but not added to DOMWindow.idl. * page/DOMWindow.cpp: (WebCore::DOMWindow::oninput): (WebCore::DOMWindow::setOninput): (WebCore::DOMWindow::onmessage): (WebCore::DOMWindow::setOnmessage): (WebCore::DOMWindow::oncontextmenu): (WebCore::DOMWindow::setOncontextmenu): * page/DOMWindow.h: * page/DOMWindow.idl: 2009-06-01 Jeremy Orlow Reviewed by Darin Adler. Landed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=26123 Remove a redundant checkEncodedString call when constructing a KURL object from a string. * platform/KURL.cpp: (WebCore::KURL::KURL): 2009-06-01 Dimitri Glazkov Unreviewed, build fix. Reposition platform guard, improperly placed by http://trac.webkit.org/changeset/44340 Bad Dimitri. * platform/KeyboardCodes.h: Repositioned the guard to avoid nested WebCore namespace declarations. 2009-06-01 Dimitri Glazkov Unreviewed, build fix. * platform/KeyboardCodes.h: Integrated contents of platform/chromium/KeyboardCodes.h with a stern FIXME. * platform/chromium/KeyboardCodes.h: Removed. 2009-06-01 Nikolas Zimmermann Reviewed by Eric Seidel. Fix assertion error in --filters enabled debug builds. Instead of using RefPtr as keys for the hash maps in SVGFilterBuilder, just use AtomicString objects. * svg/graphics/filters/SVGFilterBuilder.cpp: (WebCore::SVGFilterBuilder::SVGFilterBuilder): (WebCore::SVGFilterBuilder::add): (WebCore::SVGFilterBuilder::getEffectById): * svg/graphics/filters/SVGFilterBuilder.h: 2009-06-01 Nikolas Zimmermann Reviewed by Eric Seidel. Fix --filters enabled build on Mac. Remove unnecessary 'boundingBox' parameter from finishRenderSVGContent() method. Kill several warnings, to make build pass. * rendering/RenderPath.cpp: (WebCore::RenderPath::paint): * rendering/RenderSVGContainer.cpp: (WebCore::RenderSVGContainer::paint): * rendering/RenderSVGImage.cpp: (WebCore::RenderSVGImage::paint): * rendering/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::paint): * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::finishRenderSVGContent): * rendering/SVGRenderSupport.h: * rendering/SVGRootInlineBox.cpp: (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback): * svg/SVGFEGaussianBlurElement.cpp: (WebCore::SVGFEGaussianBlurElement::setStdDeviation): * svg/graphics/filters/SVGFEFlood.cpp: (WebCore::FEFlood::FEFlood): 2009-06-01 Dimitri Glazkov Reviewed by Dave Hyatt. Fix Chromium build by adding an #ifdef, restoring the code path to that before http://trac.webkit.org/changeset/44287. * platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::paint): Added an #ifdef. 2009-06-01 Dirk Schulze Reviewed by Nikolas Zimmermann. Remove last pieces of the old SVG filter system. They are not usable with our current filter system. The new filter effects will replace the functionality step by step. * GNUmakefile.am: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * svg/graphics/cairo: Removed. * svg/graphics/cairo/SVGResourceFilterCairo.cpp: Removed. * svg/graphics/cg: Removed. * svg/graphics/cg/SVGResourceFilterCg.cpp: Removed. * svg/graphics/cg/SVGResourceFilterCg.mm: Removed. * svg/graphics/filters/SVGFilterEffect.cpp: Removed. * svg/graphics/filters/SVGFilterEffect.h: Removed. * svg/graphics/filters/cg: Removed. * svg/graphics/filters/cg/SVGFEHelpersCg.h: Removed. * svg/graphics/filters/cg/SVGFEHelpersCg.mm: Removed. * svg/graphics/filters/cg/SVGFilterEffectCg.mm: Removed. * svg/graphics/filters/cg/WKArithmeticFilter.cikernel: Removed. * svg/graphics/filters/cg/WKArithmeticFilter.h: Removed. * svg/graphics/filters/cg/WKArithmeticFilter.m: Removed. * svg/graphics/filters/cg/WKComponentMergeFilter.cikernel: Removed. * svg/graphics/filters/cg/WKComponentMergeFilter.h: Removed. * svg/graphics/filters/cg/WKComponentMergeFilter.m: Removed. * svg/graphics/filters/cg/WKDiffuseLightingFilter.cikernel: Removed. * svg/graphics/filters/cg/WKDiffuseLightingFilter.h: Removed. * svg/graphics/filters/cg/WKDiffuseLightingFilter.m: Removed. * svg/graphics/filters/cg/WKDiscreteTransferFilter.cikernel: Removed. * svg/graphics/filters/cg/WKDiscreteTransferFilter.h: Removed. * svg/graphics/filters/cg/WKDiscreteTransferFilter.m: Removed. * svg/graphics/filters/cg/WKDisplacementMapFilter.cikernel: Removed. * svg/graphics/filters/cg/WKDisplacementMapFilter.h: Removed. * svg/graphics/filters/cg/WKDisplacementMapFilter.m: Removed. * svg/graphics/filters/cg/WKDistantLightFilter.cikernel: Removed. * svg/graphics/filters/cg/WKDistantLightFilter.h: Removed. * svg/graphics/filters/cg/WKDistantLightFilter.m: Removed. * svg/graphics/filters/cg/WKGammaTransferFilter.cikernel: Removed. * svg/graphics/filters/cg/WKGammaTransferFilter.h: Removed. * svg/graphics/filters/cg/WKGammaTransferFilter.m: Removed. * svg/graphics/filters/cg/WKIdentityTransferFilter.h: Removed. * svg/graphics/filters/cg/WKIdentityTransferFilter.m: Removed. * svg/graphics/filters/cg/WKLinearTransferFilter.cikernel: Removed. * svg/graphics/filters/cg/WKLinearTransferFilter.h: Removed. * svg/graphics/filters/cg/WKLinearTransferFilter.m: Removed. * svg/graphics/filters/cg/WKNormalMapFilter.cikernel: Removed. * svg/graphics/filters/cg/WKNormalMapFilter.h: Removed. * svg/graphics/filters/cg/WKNormalMapFilter.m: Removed. * svg/graphics/filters/cg/WKPointLightFilter.cikernel: Removed. * svg/graphics/filters/cg/WKPointLightFilter.h: Removed. * svg/graphics/filters/cg/WKPointLightFilter.m: Removed. * svg/graphics/filters/cg/WKSpecularLightingFilter.cikernel: Removed. * svg/graphics/filters/cg/WKSpecularLightingFilter.h: Removed. * svg/graphics/filters/cg/WKSpecularLightingFilter.m: Removed. * svg/graphics/filters/cg/WKSpotLightFilter.cikernel: Removed. * svg/graphics/filters/cg/WKSpotLightFilter.h: Removed. * svg/graphics/filters/cg/WKSpotLightFilter.m: Removed. * svg/graphics/filters/cg/WKTableTransferFilter.cikernel: Removed. * svg/graphics/filters/cg/WKTableTransferFilter.h: Removed. * svg/graphics/filters/cg/WKTableTransferFilter.m: Removed. * svg/graphics/mac: Removed. * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h: Removed. * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm: Removed. * svg/graphics/qt: Removed. * svg/graphics/qt/SVGResourceFilterQt.cpp: Removed. * svg/graphics/skia: Removed. * svg/graphics/skia/SVGResourceFilterSkia.cpp: Removed. 2009-06-01 Dmitry Titov Fix the previous checkin (ttp://trac.webkit.org/changeset/44327). This adds a comment suggested during review. * platform/ThreadGlobalData.cpp: (WebCore::ThreadGlobalData::~ThreadGlobalData): Add comment clarifying the change. 2009-06-01 Dmitry Titov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=25973 Avoid calling CurrentThread() in thread-specific destructors in OSX Chromium. Pthreads invoke thread-specific destructors after WTF::detachThread() is called and ThreadIdentifier for the thread removed from the WTF thread map. Calling CurrentThread() in such destructor causes the ThreadIdentifier to be re-created and inserted into the map again. Since Pthreads on OSX reuse the pthread_t between threads, the next created thread will have the same pthread_t and cause an assert in establishIdentifierForPthreadHandle() since the id is already in the map. The behavior is covered by existing test LayoutTests/fast/workers/worker-terminate.html, which currently fails on OSX Chromium and will stop failing after this change. * platform/ThreadGlobalData.h: * platform/ThreadGlobalData.cpp: (WebCore::ThreadGlobalData::~ThreadGlobalData): Store the result of "isMainThread()" in a member variable during construction of thread-specific data to avoid calling IsMainThread() in destructor, since the latter calls CurrentThread() in OSX Chromium. 2009-06-01 David Levin Reviewed by Darin Alder and Maciej Stachowiak. Bug 26057: StringImpl should share buffers with UString. https://bugs.webkit.org/show_bug.cgi?id=26057 This change results in the following performance improvements: On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/001.html the time went from 78ms to 40ms for append (other times remained constant). On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/002.html, the time went from 3900ms to 2600ms. For http://dromaeo.com/?dom, the time for DomModification improved by ~6%. Other tests in dom seemed to be faster across several runs but within the margin of error (except DOM Attributes which was slightly ~1.5% worse). Existing tests cover this code and there is no new functionality that is exposed to test. * platform/text/AtomicString.cpp: (WebCore::AtomicString::add): * platform/text/String.cpp: (WebCore::String::String): (WebCore::String::operator UString): * platform/text/StringImpl.cpp: (WebCore::StringImpl::StringImpl): (WebCore::StringImpl::~StringImpl): (WebCore::StringImpl::create): Consumes a shared buffer. (WebCore::StringImpl::ustring): Shares the StringImpl's buffer with the UString. (WebCore::StringImpl::sharedBuffer): Exposes the buffer that may be shared. * platform/text/StringImpl.h: (WebCore::StringImpl::hasTerminatingNullCharacter): (WebCore::StringImpl::inTable): (WebCore::StringImpl::setInTable): Converted the bools to be inside of PtrAndFlags to avoid growing StringImpl in size. 2009-06-01 Dimitri Glazkov Unreviewed, build fix. V8 bindings follow-up to to DOMWindow-related cleanup: http://trac.webkit.org/changeset/44215 * bindings/v8/ScriptController.cpp: Removed disconnectFrame(), relocated its body to destructor. * bindings/v8/ScriptController.h: Removed disconnectFrame() decl. 2009-05-28 Pavel Feldman Reviewed by Timothy Hatcher. - Add panel enabler to the resources panel. - Add session / always options into the panel enabler. - Make enabled status for three panels sticky (globally). - Persist enabled status using InspectorController::Settings - Make InspectorController produce no network-related overhead when resources panel is not enabled. https://bugs.webkit.org/show_bug.cgi?id=26046 * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::setWindowVisible): (WebCore::InspectorController::populateScriptObjects): (WebCore::InspectorController::identifierForInitialRequest): (WebCore::InspectorController::willSendRequest): (WebCore::InspectorController::didReceiveResponse): (WebCore::InspectorController::didReceiveContentLength): (WebCore::InspectorController::didFinishLoading): (WebCore::InspectorController::didFailLoading): (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest): (WebCore::InspectorController::scriptImported): (WebCore::InspectorController::enableResourceTracking): (WebCore::InspectorController::disableResourceTracking): (WebCore::InspectorController::startUserInitiatedProfiling): (WebCore::InspectorController::enableProfiler): (WebCore::InspectorController::disableProfiler): (WebCore::InspectorController::enableDebugger): (WebCore::InspectorController::disableDebugger): * inspector/InspectorController.h: (WebCore::InspectorController::Setting::Setting): (WebCore::InspectorController::resourceTrackingEnabled): * inspector/InspectorController.idl: * inspector/InspectorFrontend.cpp: (WebCore::InspectorFrontend::resourceTrackingWasEnabled): (WebCore::InspectorFrontend::resourceTrackingWasDisabled): * inspector/InspectorFrontend.h: * inspector/front-end/PanelEnablerView.js: (WebInspector.PanelEnablerView.enableOption): (WebInspector.PanelEnablerView): (WebInspector.PanelEnablerView.prototype._windowResized): (WebInspector.PanelEnablerView.prototype.alwaysWasChosen): * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfilesPanel.prototype._enableProfiling): (WebInspector.ProfilesPanel.prototype._toggleProfiling): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel): (WebInspector.ResourcesPanel.prototype.get statusBarItems): (WebInspector.ResourcesPanel.prototype.resourceTrackingWasEnabled): (WebInspector.ResourcesPanel.prototype.resourceTrackingWasDisabled): (WebInspector.ResourcesPanel.prototype.reset): (WebInspector.ResourcesPanel.prototype._updateSidebarWidth): (WebInspector.ResourcesPanel.prototype._enableResourceTracking): (WebInspector.ResourcesPanel.prototype._toggleResourceTracking): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype._enableDebugging): (WebInspector.ScriptsPanel.prototype._toggleDebugging): * inspector/front-end/inspector.css: * inspector/front-end/inspector.js: (WebInspector.resourceTrackingWasEnabled): (WebInspector.resourceTrackingWasDisabled): 2009-06-01 Drew Wilson Reviewed by Darin Adler. Landed (and tweaked) by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=25902 Added WorkerContext.close() Test: fast/workers/worker-close.html * workers/WorkerContext.cpp: (WebCore::WorkerContext::close): * workers/WorkerContext.h: * workers/WorkerContext.idl: * workers/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal): 2009-06-01 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=12471 XPathResult not invalidated for documents retrieved via XMLHttpRequest Test: fast/xpath/detached-subtree-invalidate-iterator.html and existing tests in dom/svg/level3/xpath. Use DOM tree version instead of DOMSubtreeModified events to invalidate, which is more reliable and much faster. * xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): * xml/XPathResult.cpp: (WebCore::XPathResult::XPathResult): (WebCore::XPathResult::~XPathResult): (WebCore::XPathResult::invalidIteratorState): (WebCore::XPathResult::iterateNext): * xml/XPathResult.h: (WebCore::XPathResult::create): 2009-06-01 Brett Wilson Reviewed by Darin Adler. Landed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=25750 Test: fast/transforms/bounding-rect-zoom.html Make getClientRects and getBoundingClientRect account for ther zoom factor. * dom/Element.cpp: (WebCore::adjustFloatPointForAbsoluteZoom): (WebCore::adjustFloatQuadForAbsoluteZoom): (WebCore::adjustIntRectForAbsoluteZoom): (WebCore::Element::getClientRects): (WebCore::Element::getBoundingClientRect): 2009-06-01 Tony Chang Reviewed by Dimitri Glazkov. Landed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=26026 Fix an infinite loop when using the keyboard in Chromium select popups. Not testable since it involves sending a keyboard event to the popup, which is not possible (eventSender sends the key events through webview, we want to go through the webwidget). * platform/chromium/PopupMenuChromium.cpp: 2009-06-01 Nate Chapin Reviewed by Dimitri Glazkov. Landed by Adam Barth. If a url with an anchor is being loaded, ensure that the anchor remains locked in view until the page has finished loading compeltely or the user has manually scrolled. Refreshing an anchor url after scrolling to a new location on the page will still result in jumping to the new location. https://bugs.webkit.org/show_bug.cgi?id=26034 * loader/FrameLoader.cpp: (WebCore::FrameLoader::gotoAnchor): Set anchor lock after navigating to anchor. (WebCore::FrameLoader::completed): Release anchor lock. * page/FrameView.cpp: (WebCore::FrameView::FrameView): Ensure anchor lock starts unset. (WebCore::FrameView::reset): Ensure anchor lock starts unset. (WebCore::FrameView::layout): If anchor lock is set, force a gotoAnchor() after layout. (WebCore::FrameView::scrollRectIntoViewRecursively): Release anchor lock if a programmatic scroll begins. (WebCore::FrameView::setWasScrolledByUser): Release anchor lock if user manually scrolls. (WebCore::FrameView::setScrollPosition): Release anchor lock if a programmatic scroll begins. * page/FrameView.h: (WebCore::FrameView::lockedToAnchor): Added. (WebCore::FrameView::setLockedToAnchor): Added. 2009-05-31 Dirk Schulze Reviewed by Nikolas Zimmermann. WebKit needs cross-platform filter system [https://bugs.webkit.org/show_bug.cgi?id=19991] A short clean-up. FilterBuilder is SVG specific. Move it to svg/graphics/filters and rename it to SVGFilterBuilder. * GNUmakefile.am: * WebCore.pro: * WebCore.xcodeproj/project.pbxproj: * svg/FilterBuilder.cpp: Removed. * svg/FilterBuilder.h: Removed. * svg/SVGFilterElement.cpp: * svg/SVGFilterPrimitiveStandardAttributes.h: * svg/graphics/SVGResourceFilter.cpp: (WebCore::SVGResourceFilter::SVGResourceFilter): * svg/graphics/SVGResourceFilter.h: (WebCore::SVGResourceFilter::builder): * svg/graphics/filters/SVGFilterBuilder.cpp: Added. (WebCore::SVGFilterBuilder::SVGFilterBuilder): (WebCore::SVGFilterBuilder::add): (WebCore::SVGFilterBuilder::getEffectById): (WebCore::SVGFilterBuilder::clearEffects): * svg/graphics/filters/SVGFilterBuilder.h: Added. (WebCore::SVGFilterBuilder::lastEffect): 2009-05-31 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=13233 Need to implement an optimizing XPath evaluator Avoid sorting results of hierarchical paths that are naturally sorted. On a flat data structure with 128K nodes and a simple XPath expression, this changes evaluation time from 1.5 minutes to 33 ms. * xml/XPathNodeSet.h: Keep track of whether subtrees rooted at nodes in set are disjoint, which is useful for optimization. (WebCore::XPath::NodeSet::NodeSet): Removed, it was identical to compiler generated one. (WebCore::XPath::NodeSet::operator=): Ditto. (WebCore::XPath::NodeSet::swap): Ditto. (WebCore::XPath::NodeSet::isSorted): Single element sets are always sorted, even if sort() was never called. (WebCore::XPath::NodeSet::markSubtreesDisjoint): Just like being sorted, the new flag is maintained by callers. (WebCore::XPath::NodeSet::subtreesAreDisjoint): A single element set only has one subtree. Currently, the only way for a set to gain this flag is to be produced from a single element set with a hierarchical location path. * xml/XPathPath.cpp: (WebCore::XPath::LocationPath::evaluate): Use the new flag to avoid maintaining a set of unique nodes, and to avoid sorting the result. 2009-05-31 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=13233 Need to implement an optimizing XPath evaluator This patch adds some infrastructure and simple optimizations. Namely, - we now avoid building a full NodeSet just to evaluate a predicate in some cases; - "/descendant-or-self::node()/child::" is optimized to iterate the tree once when possible; * xml/XPathExpressionNode.cpp: (WebCore::XPath::Expression::Expression): * xml/XPathExpressionNode.h: (WebCore::XPath::Expression::addSubExpression): (WebCore::XPath::Expression::isContextNodeSensitive): (WebCore::XPath::Expression::isContextPositionSensitive): (WebCore::XPath::Expression::isContextSizeSensitive): (WebCore::XPath::Expression::setIsContextNodeSensitive): (WebCore::XPath::Expression::setIsContextPositionSensitive): (WebCore::XPath::Expression::setIsContextSizeSensitive): XPath expression now knows its result type, and whether evaluation depends on context. * xml/XPathFunctions.cpp: (WebCore::XPath::FunLast::resultType): (WebCore::XPath::FunLast::FunLast): (WebCore::XPath::FunPosition::resultType): (WebCore::XPath::FunPosition::FunPosition): (WebCore::XPath::FunCount::resultType): (WebCore::XPath::FunId::resultType): (WebCore::XPath::FunLocalName::resultType): (WebCore::XPath::FunLocalName::FunLocalName): (WebCore::XPath::FunNamespaceURI::resultType): (WebCore::XPath::FunNamespaceURI::FunNamespaceURI): (WebCore::XPath::FunName::resultType): (WebCore::XPath::FunName::FunName): (WebCore::XPath::FunString::resultType): (WebCore::XPath::FunString::FunString): (WebCore::XPath::FunConcat::resultType): (WebCore::XPath::FunStartsWith::resultType): (WebCore::XPath::FunContains::resultType): (WebCore::XPath::FunSubstringBefore::resultType): (WebCore::XPath::FunSubstringAfter::resultType): (WebCore::XPath::FunSubstring::resultType): (WebCore::XPath::FunStringLength::resultType): (WebCore::XPath::FunStringLength::FunStringLength): (WebCore::XPath::FunNormalizeSpace::resultType): (WebCore::XPath::FunNormalizeSpace::FunNormalizeSpace): (WebCore::XPath::FunTranslate::resultType): (WebCore::XPath::FunBoolean::resultType): (WebCore::XPath::FunNot::resultType): (WebCore::XPath::FunTrue::resultType): (WebCore::XPath::FunFalse::resultType): (WebCore::XPath::FunLang::resultType): (WebCore::XPath::FunLang::FunLang): (WebCore::XPath::FunNumber::resultType): (WebCore::XPath::FunNumber::FunNumber): (WebCore::XPath::FunSum::resultType): (WebCore::XPath::FunFloor::resultType): (WebCore::XPath::FunCeiling::resultType): (WebCore::XPath::FunRound::resultType): (WebCore::XPath::Function::setArguments): Set optimization details for the expression. Normally, a function does not introduce context node set dependency, but some use context node as default argument, or otherwise use the context. * xml/XPathFunctions.h: Tweaked style. * xml/XPathPath.cpp: (WebCore::XPath::Filter::Filter): A filter is as context node set sensitive as its expression is. (WebCore::XPath::LocationPath::LocationPath): A location path can only be context node sensitive, and only if the path relative. (WebCore::XPath::LocationPath::appendStep): Invoke compile-time Step optimizations. (WebCore::XPath::LocationPath::insertFirstStep): Ditto. (WebCore::XPath::Path::Path): A path is as context node set sensitive as its filter is. * xml/XPathPath.h: (WebCore::XPath::Filter::resultType): Result type of a filter is the same as of its expression (useful filters return NodeSets, of course). (WebCore::XPath::LocationPath::setAbsolute): An absolute location path if context node set insensitive. (WebCore::XPath::LocationPath::resultType): A path's result is always a node set. (WebCore::XPath::Path::resultType): Ditto. * xml/XPathPredicate.h: (WebCore::XPath::Number::resultType): Return a proper result type. (WebCore::XPath::StringExpression::resultType): Ditto. (WebCore::XPath::Negative::resultType): Ditto. (WebCore::XPath::NumericOp::resultType): Ditto. (WebCore::XPath::EqTestOp::resultType): Ditto. (WebCore::XPath::LogicalOp::resultType): Ditto. (WebCore::XPath::Union::resultType): Ditto. (WebCore::XPath::Predicate::isContextPositionSensitive): A predicate can be context position sensitive even if its expression is not, because e.g. [5] is a shortcut for [position()=5]. (WebCore::XPath::Predicate::isContextSizeSensitive): This matches expression result. * xml/XPathStep.h: (WebCore::XPath::Step::NodeTest::Kind): Removed unused ElementNodeTest, which was previously borrowed from XPath 2.0 to express some optimizations. (WebCore::XPath::Step::NodeTest::mergedPredicates): To avoid building a huge node set and filtering it with predicates, we now try to apply predicates while enumerating an axis. (WebCore::XPath::Step::nodeTest): Expose m_nodeTest. * xml/XPathStep.cpp: (WebCore::XPath::Step::~Step): The step owns NodeTest merged predicates, so it is still possible to copy NodeTests. (WebCore::XPath::Step::optimize): Merge predicates into NodeTest if possible. (WebCore::XPath::optimizeStepPair): Optimize some expressions containing "//". (WebCore::XPath::Step::predicatesAreContextListInsensitive): The above optimization is only possible if there are no context sensitive predicates for "//". (WebCore::XPath::Step::evaluate): Track context position for the first merged predicate. (WebCore::XPath::nodeMatchesBasicTest): Check whether the node matches node test, ignoring merged predicates. (WebCore::XPath::nodeMatches): Additionally check merged predicates, and update position. (WebCore::XPath::Step::nodesInAxis): Check merged predicates in optimized attribute code path. * xml/XPathVariableReference.h: (WebCore::XPath::VariableReference::resultType): Variable references are not used with XPathEvaluator, so we'll only need them if we decide to reimplement XSLT. The type of variable reference is not known at compile time. 2009-05-31 Sam Weinig Rubber-stamped by Dan Bernstein. Remove unused JSEventTargetBase.h * GNUmakefile.am: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSEventTargetBase.h: Removed. 2009-05-31 Sam Weinig Reviewed by Dan Bernstein. Part of https://bugs.webkit.org/show_bug.cgi?id=26100 Add missing event handler properties to the DOMWindow Add missing oncanplay, oncanplaythrough, ondurationchange, onemptied, onended, onloadeddata, onloadedmetadata, onpause, onplay, onplaying, onratechange, onseeked, onseeking, ontimeupdate, onvolumechange, onwaiting, onloadstart, onprogress, onstalled, onsuspend, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart and ondrop event handlers to the DOMWindow. * page/DOMWindow.cpp: (WebCore::DOMWindow::ondrag): (WebCore::DOMWindow::setOndrag): (WebCore::DOMWindow::ondragend): (WebCore::DOMWindow::setOndragend): (WebCore::DOMWindow::ondragenter): (WebCore::DOMWindow::setOndragenter): (WebCore::DOMWindow::ondragleave): (WebCore::DOMWindow::setOndragleave): (WebCore::DOMWindow::ondragover): (WebCore::DOMWindow::setOndragover): (WebCore::DOMWindow::ondragstart): (WebCore::DOMWindow::setOndragstart): (WebCore::DOMWindow::ondrop): (WebCore::DOMWindow::setOndrop): (WebCore::DOMWindow::oncanplay): (WebCore::DOMWindow::setOncanplay): (WebCore::DOMWindow::oncanplaythrough): (WebCore::DOMWindow::setOncanplaythrough): (WebCore::DOMWindow::ondurationchange): (WebCore::DOMWindow::setOndurationchange): (WebCore::DOMWindow::onemptied): (WebCore::DOMWindow::setOnemptied): (WebCore::DOMWindow::onended): (WebCore::DOMWindow::setOnended): (WebCore::DOMWindow::onloadeddata): (WebCore::DOMWindow::setOnloadeddata): (WebCore::DOMWindow::onloadedmetadata): (WebCore::DOMWindow::setOnloadedmetadata): (WebCore::DOMWindow::onpause): (WebCore::DOMWindow::setOnpause): (WebCore::DOMWindow::onplay): (WebCore::DOMWindow::setOnplay): (WebCore::DOMWindow::onplaying): (WebCore::DOMWindow::setOnplaying): (WebCore::DOMWindow::onratechange): (WebCore::DOMWindow::setOnratechange): (WebCore::DOMWindow::onseeked): (WebCore::DOMWindow::setOnseeked): (WebCore::DOMWindow::onseeking): (WebCore::DOMWindow::setOnseeking): (WebCore::DOMWindow::ontimeupdate): (WebCore::DOMWindow::setOntimeupdate): (WebCore::DOMWindow::onvolumechange): (WebCore::DOMWindow::setOnvolumechange): (WebCore::DOMWindow::onwaiting): (WebCore::DOMWindow::setOnwaiting): (WebCore::DOMWindow::onloadstart): (WebCore::DOMWindow::setOnloadstart): (WebCore::DOMWindow::onprogress): (WebCore::DOMWindow::setOnprogress): (WebCore::DOMWindow::onstalled): (WebCore::DOMWindow::setOnstalled): (WebCore::DOMWindow::onsuspend): (WebCore::DOMWindow::setOnsuspend): * page/DOMWindow.h: * page/DOMWindow.idl: 2009-05-31 Sam Weinig Reviewed by Anders Carlsson. Part of https://bugs.webkit.org/show_bug.cgi?id=26100 Add missing event handler properties to the DOMWindow Add missing onstorage event handler to the DOMWindow. * page/DOMWindow.cpp: (WebCore::DOMWindow::onstorage): (WebCore::DOMWindow::setOnstorage): * page/DOMWindow.h: * page/DOMWindow.idl: 2009-05-30 Sam Weinig Reviewed by Mark Rowe. Fix for https://bugs.webkit.org/show_bug.cgi?id=26110 Update online/offline events to match the current spec. - Also adds window.ononline and window.onoffline event handler properties. * page/DOMWindow.cpp: (WebCore::DOMWindow::onoffline): (WebCore::DOMWindow::setOnoffline): (WebCore::DOMWindow::ononline): (WebCore::DOMWindow::setOnonline): * page/DOMWindow.h: * page/DOMWindow.idl: * page/Page.cpp: (WebCore::networkStateChanged): 2009-05-31 Dirk Schulze Reviewed by Nikolas Zimmermann. WebKit needs cross-platform filter system [https://bugs.webkit.org/show_bug.cgi?id=19991] Make use of the new filter system in WebCore for SVG. Deleted Mac bindings and replace it by a platform independent code. Calculation of subRegions is missing but needed for a first filter effect. * GNUmakefile.am: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/filters/Filter.h: (WebCore::Filter::~Filter): (WebCore::Filter::setSourceImage): * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::prepareToRenderSVGContent): (WebCore::SVGRenderBase::finishRenderSVGContent): * svg/FilterBuilder.h: (WebCore::FilterBuilder::lastEffect): * svg/SVGFEBlendElement.cpp: (WebCore::SVGFEBlendElement::SVGFEBlendElement): (WebCore::SVGFEBlendElement::build): * svg/SVGFEBlendElement.h: * svg/SVGFEColorMatrixElement.cpp: (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement): (WebCore::SVGFEColorMatrixElement::build): * svg/SVGFEColorMatrixElement.h: * svg/SVGFEComponentTransferElement.cpp: (WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement): (WebCore::SVGFEComponentTransferElement::build): * svg/SVGFEComponentTransferElement.h: * svg/SVGFECompositeElement.cpp: (WebCore::SVGFECompositeElement::SVGFECompositeElement): (WebCore::SVGFECompositeElement::build): * svg/SVGFECompositeElement.h: * svg/SVGFEDiffuseLightingElement.cpp: (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement): (WebCore::SVGFEDiffuseLightingElement::build): * svg/SVGFEDiffuseLightingElement.h: * svg/SVGFEDisplacementMapElement.cpp: (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement): (WebCore::SVGFEDisplacementMapElement::build): * svg/SVGFEDisplacementMapElement.h: * svg/SVGFEFloodElement.cpp: (WebCore::SVGFEFloodElement::SVGFEFloodElement): (WebCore::SVGFEFloodElement::build): * svg/SVGFEFloodElement.h: * svg/SVGFEGaussianBlurElement.cpp: (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement): (WebCore::SVGFEGaussianBlurElement::build): * svg/SVGFEGaussianBlurElement.h: * svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::SVGFEImageElement): (WebCore::SVGFEImageElement::notifyFinished): (WebCore::SVGFEImageElement::build): * svg/SVGFEImageElement.h: * svg/SVGFEMergeElement.cpp: (WebCore::SVGFEMergeElement::SVGFEMergeElement): (WebCore::SVGFEMergeElement::build): * svg/SVGFEMergeElement.h: * svg/SVGFEOffsetElement.cpp: (WebCore::SVGFEOffsetElement::SVGFEOffsetElement): (WebCore::SVGFEOffsetElement::build): * svg/SVGFEOffsetElement.h: * svg/SVGFESpecularLightingElement.cpp: (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement): (WebCore::SVGFESpecularLightingElement::build): * svg/SVGFESpecularLightingElement.h: * svg/SVGFETileElement.cpp: (WebCore::SVGFETileElement::SVGFETileElement): (WebCore::SVGFETileElement::build): * svg/SVGFETileElement.h: * svg/SVGFETurbulenceElement.cpp: (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement): (WebCore::SVGFETurbulenceElement::build): * svg/SVGFETurbulenceElement.h: * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::canvasResource): * svg/SVGFilterPrimitiveStandardAttributes.cpp: (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes): * svg/SVGFilterPrimitiveStandardAttributes.h: (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement): * svg/graphics/SVGResourceFilter.cpp: (WebCore::SVGResourceFilter::SVGResourceFilter): (WebCore::SVGResourceFilter::addFilterEffect): (WebCore::SVGResourceFilter::filterBBoxForItemBBox): (WebCore::SVGResourceFilter::prepareFilter): (WebCore::SVGResourceFilter::applyFilter): (WebCore::SVGResourceFilter::externalRepresentation): * svg/graphics/SVGResourceFilter.h: (WebCore::SVGResourceFilter::filterBoundingBox): (WebCore::SVGResourceFilter::setFilterBoundingBox): (WebCore::SVGResourceFilter::itemBoundingBox): (WebCore::SVGResourceFilter::setItemBoundingBox): (WebCore::SVGResourceFilter::builder): 2009-05-31 Dirk Schulze Reviewed by Nikolas Zimmermann. WebKit needs cross-platform filter system [https://bugs.webkit.org/show_bug.cgi?id=19991] Adding 'in1' attribute support for , as specified in SVG 1.1. This change helps creating test cases, once filters are activated. * svg/SVGFEFloodElement.cpp: (WebCore::SVGFEFloodElement::SVGFEFloodElement): (WebCore::SVGFEFloodElement::parseMappedAttribute): (WebCore::SVGFEFloodElement::build): * svg/SVGFEFloodElement.h: * svg/SVGFEFloodElement.idl: * svg/graphics/filters/SVGFEFlood.cpp: (WebCore::FEFlood::FEFlood): (WebCore::FEFlood::create): * svg/graphics/filters/SVGFEFlood.h: 2009-05-31 Dirk Schulze Reviewed by Nikolas Zimmermann. WebKit needs cross-platform filter system [https://bugs.webkit.org/show_bug.cgi?id=19991] Replace all occurrences of SVGResourceFilter by Filter. This is the last step for a SVG independent filter system. Every other part of WebCore can use the filter system by creating a new Filter object. * GNUmakefile.am: * WebCore.pro: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/filters/FEBlend.cpp: (WebCore::FEBlend::apply): * platform/graphics/filters/FEBlend.h: * platform/graphics/filters/FEColorMatrix.cpp: (WebCore::FEColorMatrix::apply): * platform/graphics/filters/FEColorMatrix.h: * platform/graphics/filters/FEComponentTransfer.cpp: (WebCore::FEComponentTransfer::apply): * platform/graphics/filters/FEComponentTransfer.h: * platform/graphics/filters/FEComposite.cpp: (WebCore::FEComposite::apply): * platform/graphics/filters/FEComposite.h: * platform/graphics/filters/Filter.h: Added. (WebCore::Filter::setSourceImage): (WebCore::Filter::sourceImage): * platform/graphics/filters/FilterEffect.h: * platform/graphics/filters/SourceAlpha.cpp: (WebCore::SourceAlpha::apply): * platform/graphics/filters/SourceAlpha.h: * platform/graphics/filters/SourceGraphic.cpp: (WebCore::SourceGraphic::apply): * platform/graphics/filters/SourceGraphic.h: * svg/Filter.cpp: Removed. * svg/Filter.h: Removed. * svg/graphics/filters/SVGFEConvolveMatrix.cpp: (WebCore::FEConvolveMatrix::apply): * svg/graphics/filters/SVGFEConvolveMatrix.h: * svg/graphics/filters/SVGFEDiffuseLighting.cpp: (WebCore::FEDiffuseLighting::apply): * svg/graphics/filters/SVGFEDiffuseLighting.h: * svg/graphics/filters/SVGFEDisplacementMap.cpp: (WebCore::FEDisplacementMap::apply): * svg/graphics/filters/SVGFEDisplacementMap.h: * svg/graphics/filters/SVGFEFlood.cpp: (WebCore::FEFlood::apply): * svg/graphics/filters/SVGFEFlood.h: * svg/graphics/filters/SVGFEGaussianBlur.cpp: (WebCore::FEGaussianBlur::apply): * svg/graphics/filters/SVGFEGaussianBlur.h: * svg/graphics/filters/SVGFEImage.cpp: (WebCore::FEImage::apply): * svg/graphics/filters/SVGFEImage.h: * svg/graphics/filters/SVGFEMerge.cpp: (WebCore::FEMerge::apply): * svg/graphics/filters/SVGFEMerge.h: * svg/graphics/filters/SVGFEMorphology.cpp: (WebCore::FEMorphology::apply): * svg/graphics/filters/SVGFEMorphology.h: * svg/graphics/filters/SVGFEOffset.cpp: (WebCore::FEOffset::apply): * svg/graphics/filters/SVGFEOffset.h: * svg/graphics/filters/SVGFESpecularLighting.cpp: (WebCore::FESpecularLighting::apply): * svg/graphics/filters/SVGFESpecularLighting.h: * svg/graphics/filters/SVGFETile.cpp: (WebCore::FETile::apply): * svg/graphics/filters/SVGFETile.h: * svg/graphics/filters/SVGFETurbulence.cpp: (WebCore::FETurbulence::apply): * svg/graphics/filters/SVGFETurbulence.h: * svg/graphics/filters/SVGFilter.cpp: Added. (WebCore::SVGFilter::SVGFilter): (WebCore::SVGFilter::calculateEffectSubRegion): (WebCore::SVGFilter::create): * svg/graphics/filters/SVGFilter.h: Added. 2009-05-30 Kevin Ollivier Build fix for platforms without plugins support. * plugins/PluginViewNone.cpp: (WebCore::PluginView::userAgentStatic): (WebCore::PluginView::getValueStatic): 2009-05-30 Nikolas Zimmermann Reviewed by Darin Adler. Fixes: https://bugs.webkit.org/show_bug.cgi?id=25979 Fix regression, local WML files won't load anymore, as the mimetype isn't correctly detected. Bug filed at to cover this CFNetwork limitation. * platform/network/mac/ResourceHandleMac.mm: (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): 2009-05-29 Sam Weinig Reviewed by Anders Carlsson. Fix for https://bugs.webkit.org/show_bug.cgi?id=26091 Make storage events match the current spec. - Storage event listeners are added to the window. - Storage events are dispatched to the window. Updated existing tests. * dom/Document.cpp: (WebCore::Document::dispatchWindowEvent): * dom/Document.h: * dom/Node.cpp: * dom/Node.h: * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::parseMappedAttribute): * storage/LocalStorageArea.cpp: (WebCore::LocalStorageArea::dispatchStorageEvent): * storage/SessionStorageArea.cpp: (WebCore::SessionStorageArea::dispatchStorageEvent): 2009-05-30 Darin Adler Reviewed by Adele Peterson. Bug 26097: REGRESSION (r44283): Tab key doesn't work when focus is on a . This patch adds WMLSelectElement, providing the same functionality HTMLSelectElement has. The WML specific features will follow soon. Add simple testcase covering support) Added a site specific quirk for mail.google.com which returns "text" when getting the type of an * bindings/js/JSHTMLInputElementCustom.cpp: (WebCore::needsGmailQuirk): (WebCore::JSHTMLInputElement::type): * html/HTMLInputElement.idl: 2009-05-14 Dimitri Glazkov Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25810 Upstream V8 DOM Wrapper map declarations. No behavior change, so no tests. * bindings/v8/V8DOMMap.h: (WebCore::WeakReferenceMap::WeakReferenceMap): Added. (WebCore::WeakReferenceMap::~WeakReferenceMap): Added. (WebCore::WeakReferenceMap::get): Added. (WebCore::WeakReferenceMap::set): Added. (WebCore::WeakReferenceMap::forget): Added. (WebCore::WeakReferenceMap::contains): Added. (WebCore::WeakReferenceMap::impl): Added. (WebCore::DOMWrapperMap::DOMWrapperMap): Added. 2009-05-15 Simon Fraser Reviewed by Dave Hyatt https://bugs.webkit.org/show_bug.cgi?id=25773 Rename GraphicsLayer::graphicsContextsFlipped() to GraphicsLayer::compositingCoordinatesOrientation() in order to clarify the usage. Clean up code around the GraphicsLayer "contents" layer that makes use of this flag, by removing the setHasContentsLayer() method, and just using setContentsLayer(), which can then always do the flipping if necessary. Only affects ACCELERATED_COMPOSITING builds. * platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::): * platform/graphics/mac/GraphicsLayerCA.h: (WebCore::GraphicsLayerCA::contentsLayer): * platform/graphics/mac/GraphicsLayerCA.mm: (WebCore::GraphicsLayer::compositingCoordinatesOrientation): (WebCore::GraphicsLayerCA::setBackgroundColor): (WebCore::GraphicsLayerCA::clearBackgroundColor): (WebCore::GraphicsLayerCA::setContentsToImage): (WebCore::GraphicsLayerCA::clearContents): (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): (WebCore::GraphicsLayerCA::setContentsLayer): * rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::ensureRootPlatformLayer): 2009-05-15 Chris Marrin Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=25765 Avoid calling setNeedsStyleRecalc() when we are putting an animated page in the cache. This avoids the assert and subsequent problems with a dirty page going into the cache. * page/animation/KeyframeAnimation.cpp: (WebCore::KeyframeAnimation::endAnimation): 2009-05-15 Francisco Tolmasky BUG 25467: JavaScript debugger should use function.displayName as the function's name in the call stack Reviewed by Adam Roben. * inspector/JavaScriptCallFrame.cpp: (WebCore::JavaScriptCallFrame::functionName): Use calculatedFunctionName which takes into account displayName * inspector/front-end/CallStackSidebarPane.js: Remove "|| anonymous function" since it is handled internally just like in profiles (WebInspector.CallStackSidebarPane.prototype.update): 2009-05-15 Alexey Proskuryakov Windows build fix (and a matching Mac change, to avoid unnecessarily diverging the implementations). * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::start): * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::start): Check strings with isEmpty(), not relying on any implicit conversions. 2009-05-15 Alexey Proskuryakov Reviewed by Darin Adler, Brady Eidson and Eric Carlson. REGRESSION: Unable to download file with FTP URL that includes username and password (Lightwave 9.6 for Mac from Newtek site) CFNetwork only invokes didReceiveAuthenticationChallenge for HTTP requests. Credentials for other protocols (including FTP) should be included as part of the URL. * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::start): (WebCore::WebCoreSynchronousLoader::load): * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::start): (+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]): Put credentials in URL for non-HTTP requests. * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::makeSimpleCrossOriginAccessRequest): Bail out quickly if the URL is non-HTTP. Cross-origin requests require specific HTTP headers to be received, so they cannot work with other protocols. 2009-05-15 Ariya Hidayat Reviewed by Holger Freyther. [Qt] In the image decoder, remove the raw image data represented as QImage once the image is converted to QPixmap and inserted in the pixmap cache. This effectively reduces the heap usage when running on graphics system other than raster (i.e the case where QImage != QPixmap). * platform/graphics/qt/ImageDecoderQt.cpp: (WebCore::ImageDecoderQt::imageAtIndex): Nullified the image on purpose. * platform/graphics/qt/ImageDecoderQt.h: Made m_imageList mutable. 2009-05-15 Ariya Hidayat Reviewed by Holger Freyther. [Qt] Refactor alpha channel detection the image decoder. Sets the boolean flag as soon as the image is being read. * platform/graphics/qt/ImageDecoderQt.cpp: (WebCore::ImageDecoderQt::ImageDecoderQt): Initialized m_hasAlphaChannel. (WebCore::ImageDecoderQt::setData): Set the flag when appropriate. (WebCore::ImageDecoderQt::supportsAlpha): Simplified. (WebCore::ImageDecoderQt::reset): Resetted the flag. * platform/graphics/qt/ImageDecoderQt.h: Added m_hasAlphaChannel. 2009-05-15 Laszlo Gombos Reviewed by Darin Adler. Finish support for disabling the JavaScript Debugger and Profiler at compile time in WebCore https://bugs.webkit.org/show_bug.cgi?id=24917 * bindings/js/JSInspectorControllerCustom.cpp: ENABLE_JAVASCRIPT_DEBUGGER guard * bindings/js/JSJavaScriptCallFrameCustom.cpp: Ditto. * inspector/JavaScriptCallFrame.cpp: Ditto. * inspector/JavaScriptCallFrame.h: Ditto. * inspector/JavaScriptCallFrame.idl: Ditto. * inspector/JavaScriptDebugListener.h: Ditto. * inspector/JavaScriptDebugServer.cpp: Ditto. * inspector/JavaScriptDebugServer.h: Ditto. * inspector/JavaScriptProfile.cpp: Ditto. * inspector/JavaScriptProfile.h: Ditto. * inspector/JavaScriptProfileNode.cpp: Ditto. * inspector/JavaScriptProfileNode.h: Ditto. * page/Console.cpp: Use guard ENABLE(JAVASCRIPT_DEBUGGER) instead of USE(JSC) * page/Console.h: Ditto. * page/Console.idl: Use guard ENABLE(JAVASCRIPT_DEBUGGER) instead of !defined(V8_BINDING) 2009-05-15 Jungshik Shin Reviewed by Dimitri Glazkov http://bugs.webkit.org/show_bug.cgi?id=25464 Improve the font fallback for characters belonging to 'common' scripts in ChromiumWin port. Make characters like Danda, Double Danda (punctuation marks in North Indian scripts) and currency signs (e.g. Thai Baht) rendered correctly in Chromium on Win. Tests: fast/text/international/danda-space.html fast/text/international/thai-baht-space.html * platform/graphics/chromium/FontUtilsChromiumWin.cpp: (WebCore::FontMap::getScriptBasedOnUnicodeBlock): (WebCore::FontMap::getScript): (WebCore::getFallbackFamily): 2009-05-15 Laszlo Gombos Reviewed by Holger Freyther. https://bugs.webkit.org/show_bug.cgi?id=25731 [Qt] Cleanup - move files exclusive to XPATH and XSLT under the appropriate build section * WebCore.pro: 2009-05-14 Evan Martin Reviewed by Eric Seidel and Darin Fisher. Fix a font-related leak in Chromium's Skia backend found by Valgrind. https://bugs.webkit.org/show_bug.cgi?id=25760 * platform/graphics/chromium/FontCacheLinux.cpp: (WebCore::FontCache::getFontDataForCharacters): Use caches instead of "new" on every call. 2009-05-14 Rahul Kuchhal Reviewed by Eric Seidel. Initialize m_spreadMethod in the second constructor too. Not sure if a test case can be written, so no test case. https://bugs.webkit.org/show_bug.cgi?id=25814 No test possible: spreadMethod() is only used by SVG, doesn't seem possible to hit this case, since several other SVG tests already should be calling spreadMethod(). * platform/graphics/Gradient.cpp: (WebCore::Gradient::Gradient): 2009-05-14 Simon Fraser No review. Fix Windows build after renaming MediaControlElements to MediaControlElementType. * rendering/RenderMediaControls.cpp: (WebCore::RenderMediaControls::paintMediaControlsPart): * rendering/RenderMediaControls.h: 2009-05-14 Simon Fraser Reviewed by Darin Adler Movie controller’s play button does not change into a pause button Fix a controls repaint issue when the playing state of a video changes by educating the MediaControlInputElements about the state they are currently displaying, and making them repaint when that state changes. This applies to the play/pause and mute/unmute buttons, which both have two states. * rendering/MediaControlElements.cpp: (WebCore::MediaControlInputElement::MediaControlInputElement): (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Pass in and initialize the MediaControlElementType. (WebCore::MediaControlInputElement::update): Update the display type too (WebCore::MediaControlInputElement::setDisplayType): (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): (WebCore::MediaControlMuteButtonElement::updateDisplayType): Choose muted vs. unmuted display. (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): (WebCore::MediaControlPlayButtonElement::updateDisplayType): Choose play vs. paused display. * rendering/MediaControlElements.h: Renamed the MediaControlElements enum to MediaControlElementType. (WebCore::MediaControlInputElement::updateDisplayType): Add a MediaControlElementType member variable with a setter to allow the element to know what type it is displaying. 2009-05-14 Dean Jackson Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=25197 Add support for aspect-ratio and orientation media queries. Tests: fast/media/mq-aspect-ratio.html fast/media/mq-orientation.html * css/MediaFeatureNames.h: * css/MediaQueryEvaluator.cpp: (WebCore::orientationMediaFeatureEval): (WebCore::aspect_ratioMediaFeatureEval): (WebCore::min_aspect_ratioMediaFeatureEval): (WebCore::max_aspect_ratioMediaFeatureEval): * css/MediaQueryExp.h: (WebCore::MediaQueryExp::isViewportDependent): 2009-05-14 Kevin McCullough - Resubmitting previous patch, correctly this time. * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::splitTreeToNode): * editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::outdentParagraph): 2009-05-14 Kevin McCullough - Rolling out to fix a bug and the build * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::splitTreeToNode): * editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::outdentParagraph): 2009-05-14 Kevin McCullough Reviewed by Dan Bernstein. In some situations message content is messed up when indentation is decreased * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::splitTreeToNode): Calling recursively here served to do nothing because this function will return if the second argument is the parent of the first. Not only does this now work as intended, but is necessary for the rest of this fix. * editing/IndentOutdentCommand.cpp: (WebCore::IndentOutdentCommand::outdentParagraph): To determine if we are the last node in a
, and can therefore remove the
we need the endOfEnclosingBlock to extend to the end of the
not just the next block, which could be a
, for example. - Also If a
is removed, but it's the child of another
then its children are now children of the top
. In this case we want to split the parent
because the next paragraph assumes that it is the first node in its
and if that is not true, various bugs arise. 2009-05-14 Brady Eidson Build fix. * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::setDefaultMIMEType): 2009-05-14 Brady Eidson Reviewed by Adam Roben. Fix http/tests/xmlhttprequest/cache-override.html on Windows * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::setDefaultMIMEType): Modify the previous response so it maintains all of its data. (WebCore::didReceiveResponse): Call setDefaultMIMEType() when needed. (WebCore::WebCoreSynchronousLoader::load): Ditto. 2009-05-14 Paul Godavari Reviewed by Dimitri Glazkov. Bug: Mac Chromium popup menus are not positioned correctly on scrolled pages: https://bugs.webkit.org/show_bug.cgi?id=25772 Fix Mac Chromium popup menu placement by taking into account any scrolling in the current window. This mirrors the positioning done in PopupContainer::show(), which is used on Chromium Windows and linux. Also fixed indenting for this method. * platform/chromium/PopupMenuChromium.cpp: (WebCore::PopupContainer::showExternal): 2009-05-14 Drew Wilson Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25774 Upstream V8MessagePortCustom.cpp from the chromium repository. * bindings/v8/custom/V8MessagePortCustom.cpp: Added. (WebCore::ACCESSOR_GETTER): (WebCore::ACCESSOR_SETTER): (WebCore::CALLBACK_FUNC_DECL): 2009-05-14 Simon Fraser Reviewed by Darin Adler https://bugs.webkit.org/show_bug.cgi?id=25777 StyleGeneratedImage::imageSize() needs to take zooming into account for fixed-size images (i.e. canvas) so that canvas-as-image-background renders correctly with zooming. Test: fast/canvas/canvas-bg-zoom.html * rendering/style/StyleGeneratedImage.cpp: (WebCore::StyleGeneratedImage::imageSize): 2009-05-14 Alexey Proskuryakov Reviewed by Darin Adler. Patch originally by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=25796 Shouldn't set referer and origin in Loader::Host::servePendingRequests(). Test: http/tests/security/credentials-in-referer.html * loader/loader.cpp: (WebCore::Loader::Host::servePendingRequests): This will be done in SubresourceLoader::create() anyway. 2009-05-14 Chris Fleizach Reviewed by Darin Adler. Bug 25797: Pages with image maps are not properly read with Voiceover https://bugs.webkit.org/show_bug.cgi?id=25797 * page/AccessibilityImageMapLink.h: (WebCore::AccessibilityImageMapLink::isEnabled): 2009-05-14 Brady Eidson Reviewed by Darin Adler. and https://bugs.webkit.org/show_bug.cgi?id=25790 Nuke the bogus ASSERT and add a legitimate ASSERT with a little help from a new accessor. * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::shouldContentSniff): * platform/network/ResourceHandle.h: * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::createCFURLResponseWithDefaultMIMEType): (WebCore::didReceiveResponse): 2009-05-14 Eric Carlson Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=25791 Bug 25791: HTMLMediaElement: implement 'startTime' attribute Support the recently added HTMLMediaElement 'startTime' attribute. This is a read-only value that only the media engine can know, so we just need to add the attribute to HTMLMediaElement and add methods to MediaPlayer and MediaPlayerPrivateInterface so the engine can make it available. Test: media/media-startTime.html * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::startTime): New. * html/HTMLMediaElement.h: * html/HTMLMediaElement.idl: * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::startTime): New. * platform/graphics/MediaPlayer.h: * platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::startTime): New. 2009-05-14 Kenneth Rohde Christiansen Reviewed by Ariya Hidayat. Only create a QWidget wrapper for the plugin in the case it is not in the Qt window mapper, and thus receiving events from the Qt event system. Native Qt based plugins running in process, will already be in the window mapper, and thus creating a wrapper, stops them from getting events from Qt, as they are redirected to the wrapper. * plugins/qt/PluginContainerQt.cpp: (PluginContainerQt::on_clientIsEmbedded): 2009-05-14 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=25784 Leaks seen on HTTP tests We should change ResourceHandleMac.mm to use smart pointers some day, but this is a minimal fix. * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::loadResourceSynchronously): Release mutable request copy made for disabling content sniffing, matching the normal code path. (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Release m_user and m_pass before overwriting. (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Ditto. 2009-05-14 Yury Semikhatsky Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25418 Remove new lines from event handler wrapper to make line numbers in the wrapped script conside with the lines in the original script. * bindings/v8/V8LazyEventListener.cpp: (WebCore::V8LazyEventListener::getListenerFunction): (WebCore::V8LazyEventListener::getWrappedListenerFunction): 2009-05-14 Dimitri Glazkov Reviewed by Alexey Proskuryakov. Remove a JSC-specific include that is already added by including ScriptController. No change in behavior, so no tests. * dom/Document.cpp: Removed JSDOMBinding include. 2009-05-14 Alexey Proskuryakov Reviewed by Brady Eidson. Downloaded non-ASCII file name becomes garbled Hopefully, a final stroke. When updating ResourceRequest from a platform request, a wrong CFString function was used, so a user-friendly name was stored in encoding fallback array. * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdateResourceRequest): * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::doUpdateResourceRequest): 2009-05-14 Ben Murdoch Reviewed by Darin Adler. Add more ENABLE_DATABASE guards. https://bugs.webkit.org/show_bug.cgi?id=25616 See also https://bugs.webkit.org/show_bug.cgi?id=24776 (original set of guards) * bindings/js/JSSQLResultSetRowListCustom.cpp: * bindings/v8/custom/V8CustomSQLStatementCallback.cpp: * bindings/v8/custom/V8CustomSQLStatementCallback.h: * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp: * bindings/v8/custom/V8CustomSQLStatementErrorCallback.h: * bindings/v8/custom/V8CustomSQLTransactionCallback.cpp: * bindings/v8/custom/V8CustomSQLTransactionCallback.h: * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp: * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h: * bindings/v8/custom/V8DatabaseCustom.cpp: * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: * bindings/v8/custom/V8SQLTransactionCustom.cpp: * storage/Database.cpp: * storage/DatabaseDetails.h: * storage/OriginUsageRecord.cpp: * storage/OriginUsageRecord.h: * storage/SQLError.h: * storage/SQLError.idl: * storage/SQLResultSet.cpp: * storage/SQLResultSet.h: * storage/SQLResultSet.idl: * storage/SQLResultSetRowList.cpp: * storage/SQLResultSetRowList.h: * storage/SQLResultSetRowList.idl: * storage/SQLStatementCallback.h: * storage/SQLStatementErrorCallback.h: * storage/SQLTransactionCallback.h: * storage/SQLTransactionErrorCallback.h: 2009-05-11 Holger Hans Peter Freyther Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=25787 Gtk was the last platform to not unregister plugins when the plugin is stopped. Catch up with r43550. * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::stop): 2009-05-14 Adam Roben Make WebCore.vcproj's pre-build event work again * WebCore.vcproj/WebCore.vcproj: Removed empty override of the pre-build event that was accidentally left in when the pre-build event was moved to WebCoreCommon.vsprops. 2009-05-14 Darin Adler * manual-tests/right-click-crash.html: Added. 2009-05-14 Mark Rowe Rubber-stamped by Darin Adler. When building with Xcode 3.1.3 should be using gcc 4.2 The meaning of XCODE_VERSION_ACTUAL is more sensible in newer versions of Xcode. Update our logic to select the compiler version to use the more appropriate XCODE_VERSION_MINOR if the version of Xcode supports it, and fall back to XCODE_VERSION_ACTUAL if not. * Configurations/Base.xcconfig: 2009-05-13 Anders Carlsson Fix build. * WebCore.NPAPI.exp: 2009-05-13 Eric Seidel Reviewed by Oliver Hunt. Fix invalid memory write seen in HTMLCanvasElement by Valgrind https://bugs.webkit.org/show_bug.cgi?id=25759 I can't think of any way to catch this with a layout test, so no test. * css/CSSCanvasValue.cpp: (WebCore::CSSCanvasValue::canvasDestroyed): * css/CSSCanvasValue.h: * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::~HTMLCanvasElement): * html/HTMLCanvasElement.h: 2009-05-13 Dan Bernstein Reviewed by Anders Carlsson. - fix Replies in Mail are drawn first without the user style sheet and then redrawn with the style sheet Test: platform/mac/fast/loader/user-stylesheet-fast-path.html * page/mac/FrameMac.mm: (WebCore::Frame::setUserStyleSheetLocation): For data URLs with base64-encoded UTF-8 data, just decode the style sheet here an apply it synchronously instead of invoking an asynchronous loader. 2009-05-13 Chris Fleizach Bug 25755: Implement ARIA grid role https://bugs.webkit.org/show_bug.cgi?id=25755 Fix build bustage from last checkin. * page/AccessibilityAriaGrid.cpp: (WebCore::AccessibilityAriaGrid::addChild): 2009-05-13 Chris Fleizach Reviewed by Beth Dakin. Bug 25755: Implement ARIA grid role https://bugs.webkit.org/show_bug.cgi?id=25755 Test: accessibility/aria-tables.html * GNUmakefile.am: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * WebCoreSources.bkl: * page/AXObjectCache.cpp: (WebCore::AXObjectCache::nodeIsAriaType): (WebCore::AXObjectCache::getOrCreate): * page/AXObjectCache.h: * page/AccessibilityAriaGrid.cpp: Added. (WebCore::AccessibilityAriaGrid::AccessibilityAriaGrid): (WebCore::AccessibilityAriaGrid::~AccessibilityAriaGrid): (WebCore::AccessibilityAriaGrid::create): (WebCore::AccessibilityAriaGrid::addChild): (WebCore::AccessibilityAriaGrid::addChildren): (WebCore::AccessibilityAriaGrid::cellForColumnAndRow): * page/AccessibilityAriaGrid.h: Added. (WebCore::AccessibilityAriaGrid::isAriaTable): * page/AccessibilityAriaGridCell.cpp: Added. (WebCore::AccessibilityAriaGridCell::AccessibilityAriaGridCell): (WebCore::AccessibilityAriaGridCell::~AccessibilityAriaGridCell): (WebCore::AccessibilityAriaGridCell::create): (WebCore::AccessibilityAriaGridCell::parentTable): (WebCore::AccessibilityAriaGridCell::rowIndexRange): (WebCore::AccessibilityAriaGridCell::columnIndexRange): * page/AccessibilityAriaGridCell.h: Added. * page/AccessibilityAriaGridRow.cpp: Added. (WebCore::AccessibilityAriaGridRow::AccessibilityAriaGridRow): (WebCore::AccessibilityAriaGridRow::~AccessibilityAriaGridRow): (WebCore::AccessibilityAriaGridRow::create): (WebCore::AccessibilityAriaGridRow::parentTable): (WebCore::AccessibilityAriaGridRow::headerObject): * page/AccessibilityAriaGridRow.h: Added. * page/AccessibilityList.cpp: (WebCore::AccessibilityList::accessibilityIsIgnored): * page/AccessibilityList.h: * page/AccessibilityObject.h: (WebCore::): * page/AccessibilityRenderObject.cpp: (WebCore::RoleEntry::): * page/AccessibilityTable.cpp: (WebCore::AccessibilityTable::AccessibilityTable): (WebCore::AccessibilityTable::isTableExposableThroughAccessibility): * page/AccessibilityTable.h: (WebCore::AccessibilityTable::isAriaTable): * page/AccessibilityTableCell.cpp: (WebCore::AccessibilityTableCell::parentTable): (WebCore::AccessibilityTableCell::isTableCell): (WebCore::AccessibilityTableCell::titleUIElement): * page/AccessibilityTableCell.h: * page/AccessibilityTableColumn.cpp: (WebCore::AccessibilityTableColumn::setParentTable): (WebCore::AccessibilityTableColumn::headerObject): * page/AccessibilityTableRow.cpp: (WebCore::AccessibilityTableRow::isTableRow): (WebCore::AccessibilityTableRow::parentTable): * page/AccessibilityTableRow.h: * page/mac/AccessibilityObjectWrapper.mm: (RoleEntry::): 2009-05-13 David Levin Reviewed by Dimitri Glazkov. Bug 25763: Need to move v8 custom binding to the custom directory. https://bugs.webkit.org/show_bug.cgi?id=25763 No test due to no change in behavior. * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp: Renamed from WebCore/bindings/v8/V8CanvasPixelArrayCustom.cpp. 2009-05-13 Nate Chapin Reviewed by Dimitri Glazkov. Fix LayoutTests/fast/dom/Element/attr-param-typechecking.html crashing with V8. https://bugs.webkit.org/show_bug.cgi?id=25758 * bindings/v8/custom/V8ElementCustom.cpp: (WebCore::CALLBACK_FUNC_DECL): return the result of throwError() if it is called. 2009-05-13 Jeremy Moskovich Reviewed by Dave Hyatt. Fix a number of bugs relating to RTL and text-overflow:ellipsis. Also refactor the relevant code to make it a little clearer. This CL fixes 3 fundamental issues: - Corrects behavior if the truncated InlineTextBox's directionality is different from the overall flow direction - bug 25135. - Make decoration drawing in InlineFlowbox RTL-aware - bug 24206. - Full truncation on InlineBoxes in RTL flow - bug 24186 - Add tests for the above + reorder/cleanup tests for easier interpretation of outcome. The code for placing ellipsis has been refactored to use left/right notation rather than a single variable whose meaning could differ based on flow directionality. To support differing inline directionality vs flow directionality, different variables are now used in InlineTextBox::placeEllipsisBox to track the two. The drawing mode for underlines in standards mode now correctly handles RTL truncation and relevant test where added. https://bugs.webkit.org/show_bug.cgi?id=24186 https://bugs.webkit.org/show_bug.cgi?id=25135 https://bugs.webkit.org/show_bug.cgi?id=24206 Tests: fast/css/text-overflow-ellipsis-bidi.html fast/css/text-overflow-ellipsis-strict.html * rendering/InlineBox.cpp: (WebCore::InlineBox::placeEllipsisBox): * rendering/InlineBox.h: * rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::paintTextDecorations): (WebCore::InlineFlowBox::placeEllipsisBox): * rendering/InlineFlowBox.h: * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::placeEllipsisBox): (WebCore::InlineTextBox::paint): * rendering/InlineTextBox.h: * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutVerticalBox): * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::placeEllipsis): (WebCore::RootInlineBox::placeEllipsisBox): * rendering/RootInlineBox.h: * rendering/bidi.cpp: (WebCore::RenderBlock::checkLinesForTextOverflow): 2009-05-13 Dmitry Titov Rubber-stamped by Mark Rowe. https://bugs.webkit.org/show_bug.cgi?id=25746 Revert http://trac.webkit.org/changeset/43507 which caused crash in PPC nightlies with Safari 4. * dom/XMLTokenizerLibxml2.cpp: (WebCore::matchFunc): (WebCore::openFunc): (WebCore::createStringParser): (WebCore::createMemoryParser): * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::open): * platform/sql/SQLiteDatabase.cpp: (WebCore::SQLiteDatabase::SQLiteDatabase): (WebCore::SQLiteDatabase::close): * storage/DatabaseThread.cpp: (WebCore::DatabaseThread::DatabaseThread): (WebCore::DatabaseThread::start): (WebCore::DatabaseThread::databaseThread): * storage/LocalStorageThread.cpp: (WebCore::LocalStorageThread::LocalStorageThread): (WebCore::LocalStorageThread::start): (WebCore::LocalStorageThread::localStorageThread): (WebCore::LocalStorageThread::scheduleImport): (WebCore::LocalStorageThread::scheduleSync): (WebCore::LocalStorageThread::terminate): * workers/WorkerThread.cpp: (WebCore::WorkerThread::WorkerThread): (WebCore::WorkerThread::start): 2009-05-13 David Hyatt Reviewed by Beth Dakin. Fix for REGRESSION (r41896-42143): First letter cut off in styled select menus Make sure to do rounded clipping for overflow and controls relative to the border box and not to the overflow/control clip rect (which is typically clipped to the padding or content box). Doing so was causing rounded clips to be incorrectly applied to padding and content. Added fast/overflow/border-radius-clipping.html * rendering/RenderBox.cpp: (WebCore::RenderBox::pushContentsClip): 2009-05-13 Darin Adler Revert the parser arena change. It was a slowdown, not a speedup. Better luck next time (I'll break it up into pieces). 2009-05-13 David Hyatt Reviewed by Beth Dakin and Darin Adler. Fix for REGRESSION (r41203): Facebook friend suggestions disappear on update. Make sure that renderers are marked for layout if a style change causes them to switch from having a self-painting layer to a non-self-painting layer (and vice versa). Move misplaced layer repainting code that was in RenderBox up into RenderBoxModelObject so that inlines with layers repaint properly on opacity changes, etc. Added fast/repaint/opacity-change-on-overflow-float.html. * rendering/RenderBox.cpp: (WebCore::RenderBox::styleWillChange): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::styleWillChange): (WebCore::RenderBoxModelObject::styleDidChange): * rendering/RenderBoxModelObject.h: 2009-05-13 Dimitri Glazkov Not reviewed, build fix. Move an include, needed by Debugger under the corresponding guard. * inspector/InspectorController.cpp: Moved parser/SourceCode under JAVASCRIPT_DEBUGGER guard. 2009-05-13 David Levin Reviewed by Darin Adler. Bug 25394: REGRESSION: crash in DocumentLoader::addResponse due to bad |this| pointer https://bugs.webkit.org/show_bug.cgi?id=25394 Test: http/tests/xmlhttprequest/frame-unload-abort-crash.html * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create): Add another check to subresource loader to avoid doing any loads in frames when the loaders are being stopped. 2009-05-13 Stephan Haller Reviewed by Gustavo Noronha. Wrong handling of file upload if no file selected https://bugs.webkit.org/show_bug.cgi?id=25649 Fixed returned path if path is empty * WebCore/platform/gtk/FileSystemGtk.cpp: 2009-05-13 Dan Bernstein Reviewed by Dave Hyatt. - fix REGRESSION (r42348): Notes flicker white when loading Tests: fast/frames/content-opacity-1.html fast/frames/content-opacity-2.html * page/FrameView.cpp: (WebCore::FrameView::reset): Reset m_contentIsOpaque to false. (WebCore::FrameView::useSlowRepaints): Use slow repaints if the content is not known to be opaque. (WebCore::FrameView::setContentIsOpaque): Added. Sets m_contentIsOpaque and enables or disables fast repaints accordingly. * page/FrameView.h: * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::paintFillLayerExtended): Removed the document()->haveStylesheetsLoaded() condition in determining whether the root is opaque. This is what was causing the bug, as iframes were considered to be opaque, and thus painted an opaque white background, whenever they were pending a style sheet load. Changed to call FrameView::setContentIsOpaqe() instead of setUseSlowRepaints(), which allows the frame to go back to fast repaints if the content becomes opaque. Corrected the check for background color opacity: any alpha value other than 255--not just zero--is not opaque. 2009-05-13 Ariya Hidayat Reviewed by Sam Weinig. [Qt] Fix "lighther" composition mode. QPainter::CompositionMode_Plus is the right match. * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::toQtCompositionMode): 2009-05-13 Darin Adler Reviewed by Cameron Zwarich. Bug 25674: syntax tree nodes should use arena allocation https://bugs.webkit.org/show_bug.cgi?id=25674 * bindings/js/JSDOMBinding.h: Removed include of JSFunction.h. We don't want the entire DOM binding to depend on that file. * bindings/js/JSAudioConstructor.cpp: Added include of Error.h. Before we inherited this automatically because JDDOMBinding.h included JSFunction.h, but that was excessive. * bindings/js/JSDOMWindowCustom.cpp: Ditto. * bindings/js/JSHTMLInputElementCustom.cpp: Ditto. * bindings/js/JSImageConstructor.cpp: Ditto. * bindings/js/JSLazyEventListener.cpp: Ditto, but for JSFunction.h. * bindings/js/JSMessageChannelConstructor.cpp: Ditto. * bindings/js/JSOptionConstructor.cpp: Ditto. * bindings/js/JSWorkerConstructor.cpp: Ditto. * bindings/js/JSXMLHttpRequestConstructor.cpp: Ditto. * bridge/jni/jni_jsobject.mm: Ditto, but for SourceCode.h. * inspector/InspectorController.cpp: Ditto. * inspector/JavaScriptDebugServer.cpp: (WebCore::JavaScriptDebugServer::recompileAllJSFunctions): Moved mose of this function into the base class in JavaScriptCore, so the details of compilation don't have to be exposed. 2009-05-13 Douglas R. Davidson Reviewed by Darin Adler. Generate a contextual menu item allowing autocorrections to easily be changed back. Refrain from re-correcting items that have already been autocorrected once. * dom/DocumentMarker.h: * editing/Editor.cpp: (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): (WebCore::Editor::changeBackToReplacedString): * editing/Editor.h: * page/ContextMenuController.cpp: (WebCore::ContextMenuController::contextMenuItemSelected): * page/mac/WebCoreViewFactory.h: * platform/ContextMenu.cpp: (WebCore::ContextMenu::populate): (WebCore::ContextMenu::checkOrEnableIfNeeded): * platform/ContextMenuItem.h: * platform/LocalizedStrings.h: * platform/mac/LocalizedStringsMac.mm: (WebCore::contextMenuItemTagChangeBack): * rendering/HitTestResult.cpp: (WebCore::HitTestResult::replacedString): * rendering/HitTestResult.h: * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::computeRectForReplacementMarker): (WebCore::InlineTextBox::paintDocumentMarkers): * rendering/InlineTextBox.h: 2009-05-13 Holger Hans Peter Freyther Rubber Stamped by Oliver Hunt. [GTK] Fix Gtk+/X11 build on OSX Including the CoreFoundation header here and X11 headers later will result in different definitions of Boolean. The CoreFoundation include does not seem to be necessary here and my mac build was successfull without it. I will remove it for now. If the build bots disagree this will be replaced by a #if PLATFORM(CF). * platform/FileSystem.h: 2009-05-13 Holger Hans Peter Freyther Rubber Stamped by Gustavo Noronha. [GTK] Move the #ifdef around for a buildfix for Gtk+ on OSX When building Gtk+ on OSX we ended up declaring setNPWindowIfNeeded twice. Fix that by moving the #if PLATFORM(GTK) up and using elif instead of else. * plugins/PluginView.h: 2009-05-13 Holger Hans Peter Freyther Reviewed by Xan Lopez. https://bugs.webkit.org/show_bug.cgi?id=25685 [GTK] Middle click paste form the pasteboard The kit wants to paste from at least two different clipboards. By introducing getCurrentTarget to the PasteboardHelper interface we can make this decision in the kit. Use the new method in PasteboardGtk to get the right GdkClipboard for the paste operation. * platform/gtk/PasteboardGtk.cpp: (WebCore::Pasteboard::documentFragment): (WebCore::Pasteboard::plainText): * platform/gtk/PasteboardHelper.h: 2009-05-13 Eric Carlson Reviewed by Darin Adler. QTMoviePreferredTransformAttribute only supported on SnowLeopard QTMovieOpenForPlaybackAttribute only supported on SnowLeopard QTMoviePreferredTransformAttribute and QTMovieOpenForPlaybackAttribute are not supported on Tiger or Leopard. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setNetworkState): Remove invalid ASSERT. * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::createQTMovie): Only request QTMoviePreferredTransformAttribute when !BUILDING_ON_TIGER and !BUILDING_ON_LEOPARD. (WebCore::MediaPlayerPrivate::cacheMovieScale): Only ask for QTMovieOpenForPlaybackAttribute when !BUILDING_ON_TIGER and !BUILDING_ON_LEOPARD, 2009-05-12 Roland Steiner Reviewed by Eric Seidel. Bug 25738: Skia: CSS border style not cleared for SVG object https://bugs.webkit.org/show_bug.cgi?id=25738 If no dashing is set, this change reverts to solid stroke (previously the code bailed and left the old setting, whatever it was) Test case listed in above bug entry. (Additional complications due to each platform rendering dotted lines differently - c.f. https://bugs.webkit.org/show_bug.cgi?id=25737) * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::setLineDash): 2009-05-11 Erik Arvidsson Reviewed by Eric Seidel. Bug 21903: Adds DOM bindings for the placeholder property of the HTMLInputElement. https://bugs.webkit.org/show_bug.cgi?id=21903 Test: fast/forms/placeholder-dom-property.html * dom/InputElement.cpp: (WebCore::InputElement::updatePlaceholderVisibility): * dom/InputElement.h: * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::placeholder): (WebCore::HTMLInputElement::setPlaceholder): * html/HTMLInputElement.h: * html/HTMLInputElement.idl: * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::updateFromElement): * wml/WMLInputElement.h: (WebCore::WMLInputElement::placeholder): (WebCore::WMLInputElement::setPlaceholder): 2009-05-12 Adam Barth Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25706 Change V8 bindings to match JSC bindings with respect to using the lexical or dynamic global object. Tests: http/tests/security/aboutBlank/security-context-grandchildren-lexical.html http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::CALLBACK_FUNC_DECL): 2009-03-19 Oliver Hunt Reviewed by Darin Adler. Incorrect bound check in SVGList::insertItemBefore SVGList::insertItemBefore would not perform a bounds check on the index it was provided, potentially leading to a buffer overflow. Test: svg/dom/svglist-exception-on-out-bounds-error.html * svg/SVGList.h: (WebCore::SVGList::insertItemBefore): 2009-05-12 Paul Godavari Reviewed by Dimitri Glazkov. Bug 25708: Cannot choose menu items in popups with many entries in Chromium https://bugs.webkit.org/show_bug.cgi?id=25708 This change sets the window size for popups on Mac to include all items in the menu. This is required for hit testing on Mac, where we use native controls to manage the popups and don't want to artificially limit the valid hit testing region to a limited scroll window. * platform/chromium/PopupMenuChromium.cpp: (WebCore::PopupListBox::layout): 2009-05-12 Stephen White Reviewed by Dimitri Glazkov. Fixes to build with latest skia: SkTypeface::Create() is now SkTypeface::CreateFromName(); computeBounds() has been reworked as getBounds(). The changes are placed behind an #ifdef for now, so that we can roll back the skia version in Chromium if necessary without having to roll back this change. https://bugs.webkit.org/show_bug.cgi?id=25705 * platform/graphics/chromium/FontCacheLinux.cpp: (WebCore::FontCache::createFontPlatformData): * platform/graphics/skia/PathSkia.cpp: (WebCore::Path::boundingRect): (WebCore::boundingBoxForCurrentStroke): * platform/graphics/skia/SkiaUtils.cpp: (WebCore::SkPathContainsPoint): 2009-05-12 Nate Chapin Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25732 Update V8ElementCustom.cpp to match the current API of V8Proxy. (WebCore::ACCESSOR_SETTER): Change retrieveActiveFrame() to retrieveFrameForEnteredContext(). 2009-05-12 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=25694 HTMLParser::createHead() ASSERT: Creating an element, calling document.open() and writing to the document NULL ptr Test: fast/parser/implicit-head-in-fragment-crash.html * html/HTMLParser.cpp: (WebCore::HTMLParser::bodyCreateErrorCheck): Do not try to implicitly create when parsing a fragment. 2009-05-12 Soren Gjesse Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25687 Missing check for valid function in V8 bindings for toString function for event listeners. * bindings/v8/V8LazyEventListener.cpp: (WebCore::V8LazyEventListener::getWrappedListenerFunction): Added empty handle checks. 2009-05-11 Yael Aharon Reviewed by Holger Freyther. Change Qt port to match the mac and windows ports, and unregister plugins when plugins are stopped. Not doing that can cause assersion failure. https://bugs.webkit.org/show_bug.cgi?id=25702 * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::stop): 2009-05-11 Laszlo Gombos Reviewed by Holger Freyther. Bug 25714: [Qt] Decouple HTML5 Database support from the SQLite/generic database support in the Qt port * WebCore.pro: 2009-05-11 Chris Fleizach Reviewed by Beth Dakin. Bug 25713: AX: Control Elements not identified in HTML content https://bugs.webkit.org/show_bug.cgi?id=25713 Test: accessibility/onclick-handlers.html * page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::mouseButtonListener): 2009-05-11 Darin Adler Reviewed by Dan Bernstein. REGRESSION: TextIterator generates an extra newline for ranges that start outside of body * editing/TextIterator.cpp: (WebCore::TextIterator::shouldRepresentNodeOffsetZero): Check startPos for null, not just currPos. 2009-05-11 Chris Fleizach Reviewed by Darin Adler. Bug 25700: Regression:WebKit:cmd-left and cmd-right use to go to the beginning and end of a line in Mail https://bugs.webkit.org/show_bug.cgi?id=25700 Keyboard selection movement handlers need to also watch for the Cmd key when Accessibility is enabled. Note: This code is only used when accessibility is enabled. * page/EventHandler.cpp: (WebCore::EventHandler::handleKeyboardSelectionMovement): 2009-05-11 David Kilzer Bug 25087: Test for ENABLE_FOO macros consistently in IDL files Reviewed by Timothy Hatcher. Change tests for ENABLE macros to check for both existence and value: - Negative: #if !defined(ENABLE_FOO) || !ENABLE_FOO - Positive: #if defined(ENABLE_FOO) && ENABLE_FOO * css/CSSCharsetRule.idl: * css/CSSPrimitiveValue.idl: * css/RGBColor.idl: * dom/Attr.idl: * dom/DOMCoreException.idl: * dom/DOMImplementation.idl: * dom/Document.idl: * dom/Element.idl: * dom/Event.idl: * dom/EventException.idl: * dom/KeyboardEvent.idl: * dom/MessagePort.idl: * dom/MouseEvent.idl: * dom/Node.idl: * dom/ProcessingInstruction.idl: * dom/Range.idl: * dom/RangeException.idl: * dom/WheelEvent.idl: * html/CanvasPixelArray.idl: * html/HTMLAnchorElement.idl: * html/HTMLAppletElement.idl: * html/HTMLAreaElement.idl: * html/HTMLBaseFontElement.idl: * html/HTMLCanvasElement.idl: * html/HTMLDocument.idl: * html/HTMLElement.idl: * html/HTMLEmbedElement.idl: * html/HTMLFrameElement.idl: * html/HTMLIFrameElement.idl: * html/HTMLImageElement.idl: * html/HTMLInputElement.idl: * html/HTMLLinkElement.idl: * html/HTMLObjectElement.idl: * html/HTMLOptionElement.idl: * html/HTMLOptionsCollection.idl: * html/HTMLSelectElement.idl: * html/HTMLStyleElement.idl: * html/ImageData.idl: * inspector/InspectorController.idl: * loader/appcache/DOMApplicationCache.idl: * page/Console.idl: * page/Coordinates.idl: * page/DOMSelection.idl: * page/DOMWindow.idl: * page/Geoposition.idl: * page/History.idl: * page/Location.idl: * page/Navigator.idl: * svg/SVGElementInstance.idl: * svg/SVGException.idl: * workers/WorkerContext.idl: * xml/XMLHttpRequestException.idl: * xml/XPathException.idl: 2009-05-11 Norbert Leser Reviewed by Darin Adler. Bug 24538: class/struct mixup in forward declarations https://bugs.webkit.org/show_bug.cgi?id=24538 * inspector/InspectorResource.h: * loader/CachedFont.h: * loader/appcache/ApplicationCache.h: * rendering/RenderBlock.h: * rendering/RootInlineBox.h: * rendering/SVGInlineTextBox.h: * svg/SVGGlyphElement.h: * svg/SVGHKernElement.h: 2009-05-11 Norbert Leser Reviewed by Darin Adler. Bug 24539: Unresolved CSSMutableStyleDeclaration https://bugs.webkit.org/show_bug.cgi?id=24539 The Symbian tools can't compile and link this without this include. It's not clear why this is different from other toolsets or why it affects only this header file, but adding the include for now. * editing/RemoveCSSPropertyCommand.h: Added include of CSSMutableStyleDeclaration.h. 2009-05-11 Alice Liu Reviewed by Dan Bernstein. https://bugs.webkit.org/show_bug.cgi?id=25701 REGRESSION(r38788 & r42020): styled searchfields look wrong on Windows, affects Facebook Test: fast/forms/search-styled.html * css/themeWin.css: Remove the overriding of -webkit-appearance for searchfields. This will cause background images to not be honored when styling searchfields * rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::adjustSearchFieldStyle): * rendering/RenderThemeWin.h: Re-instate final adjustments to searchfield styling that were removed in r42020 2009-05-11 Brady Eidson Fix Windows build * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::createCFURLResponseWithDefaultMIMEType): 2009-05-11 Nate Chapin Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25626 Update V8ElementCustom.cpp to match the current API of Node. * bindings/v8/custom/V8ElementCustom.cpp: (WebCore::ACCESSOR_SETTER): Changed a couple of method names to match current names. (WebCore::ACCESSOR_GETTER): Changed a method name to match current name. 2009-05-11 Brady Eidson Fix Windows build * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::createCFURLResponseWithDefaultMIMEType): (WebCore::WebCoreSynchronousLoader::load): 2009-05-11 Brady Eidson Fix Windows build * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::createCFURLResponseWithDefaultMIMEType): 2009-05-11 Nate Chapin Reviewed by Dimitri Glazkov. V8CustomBinding.cpp is missing a header file https://bugs.webkit.org/show_bug.cgi?id=25644 * bindings/v8/custom/V8CustomBinding.cpp: Added #include "V8Proxy.h". 2009-05-11 Aaron Boodman Reviewed by Darin Fisher. https://bugs.webkit.org/show_bug.cgi?id=25634 Change V8Proxy::retrieveActiveFrame() call sites to V8Proxy::retrieveFrameForEnteredContext(). Also, change instances of ScriptController::retrieveActiveFrame() to V8::retrieveFrameForEnteredContext() for consistency. See http://codereview.chromium.org/113085 for the corresponding Chromium change. * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::V8Custom::WindowSetLocation): * bindings/v8/custom/V8HTMLDocumentCustom.cpp: (WebCore::CALLBACK_FUNC_DECL): * bindings/v8/custom/V8LocationCustom.cpp: (WebCore::navigateIfAllowed): (WebCore::ACCESSOR_SETTER): (WebCore::CALLBACK_FUNC_DECL): 2009-05-11 Brady Eidson Reviewed by Darin Adler. Local image files (BMP, ico) can be misidentified as HTML. First part of the fix - Disable content sniffing for file resources which never should've been happening anyways. Second part of the fix - If the networking layer doesn't give us back a MIME type default to "application/octet-stream". * platform/MIMETypeRegistry.cpp: (WebCore::defaultMIMEType): "application/octet-stream" * platform/MIMETypeRegistry.h: * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::create): If content sniffing is true, double check with "shouldContentSniffRequest()" which might override it to false. (WebCore::ResourceHandle::shouldContentSniffURL): Return false for file:// urls, true for everything else. * platform/network/ResourceHandle.h: * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::createCFURLResponseWithDefaultMIMEType): Create a copy of the CFURLRequest with the default MIME type instead of null. (WebCore::didReceiveResponse): If the MIME type for the response is null, create a copy with the default MIME type. (WebCore::WebCoreSynchronousLoader::load): Use shouldContentSniffRequest() to make synchronous loads have the same sniffing policy as asynchronous loads. Also, correct a null MIME type by creating a copy with the default type. * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::loadResourceSynchronously): Use shouldContentSniffRequest() to make synchronous loads have the same sniffing policy as asynchronous loads. (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Set up the [NSURLResponse MIMEType] swizzling if it hasn't been set up yet. (_web_NSURLResponse_MIMEType): Either return the actual MIME type of the response, or the default MIME type if it's nil. * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::loadRequestAsynchronously): Remove the workaround added in r29370 as it will now be covered by the new mechanism. 2009-05-11 David Kilzer Fix typo "APPLICATION_CAHE_DYNAMIC_ENTRIES" to "APPLICATION_CACHE_DYNAMIC_ENTRIES" This was added in r39816 to disable dynamic entries. They are still disabled after fixing the typo since this feature define is never set anywhere. * bindings/js/JSDOMApplicationCacheCustom.cpp: * loader/appcache/DOMApplicationCache.idl: 2009-05-11 Dmitry Titov Reviewed by Alexey Proskuryakov and Adam Roben. https://bugs.webkit.org/show_bug.cgi?id=25348 Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap. Most of the change is in WTF. Unless noted, all the following files changed to use the new ThreadIdentifier::isValid() method instead of just doing 'if(m_threadID)' kind of checks, since ThreadIdentifier is now a class rather then an integer. Also, there is no need to initialize threadID in constructors to 0 now. * dom/XMLTokenizerLibxml2.cpp: (WebCore::libxmlLoaderThread): use DEFINE_STATIC_LOCAL and accessor function for static thread id, since now ThreadIdentifier needs construction and we avoid having global initializers. (WebCore::matchFunc): use the new accessor function. (WebCore::openFunc): ditto. (WebCore::createStringParser): ditto. (WebCore::createMemoryParser): ditto. * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::open): * platform/sql/SQLiteDatabase.cpp: (WebCore::SQLiteDatabase::SQLiteDatabase): (WebCore::SQLiteDatabase::close): * storage/DatabaseThread.cpp: (WebCore::DatabaseThread::start): (WebCore::DatabaseThread::databaseThread): remove m_threadID from debug output. * storage/LocalStorageThread.cpp: (WebCore::LocalStorageThread::start): (WebCore::LocalStorageThread::scheduleImport): (WebCore::LocalStorageThread::scheduleSync): (WebCore::LocalStorageThread::terminate): * workers/WorkerThread.cpp: (WebCore::WorkerThread::start): (WebCore::WorkerThread::WorkerThread): (WebCore::WorkerThread::start): 2009-05-11 Brady Eidson Reviewed by Darin Adler. Remove unused header that declared one function which was never defined anywhere. * WebCore.vcproj/WebCore.vcproj: * platform/network/cf/ResourceResponseCFNet.cpp: Change to include ResourceResponse.h (which really means platform/network/cf/ResourceResponse.h) * platform/network/cf/ResourceResponseCFNet.h: Removed. 2009-05-11 Dimitri Glazkov Reviewed by Timothy Hatcher. https://bugs.webkit.org/show_bug.cgi?id=25213 Fix assert during Inspector destruction. * inspector/InspectorController.cpp: (WebCore::InspectorController::inspectedPageDestroyed): Moved closing inspector above removing InspectorController object to fix JS errors, added clearing inspector page ptr. 2009-05-11 Laszlo Gombos Reviewed by Holger Freyther. [Qt] Make sure that public APIs are properly exported on all Qt platforms https://bugs.webkit.org/show_bug.cgi?id=25601 * WebCore.pro: Define QT_MAKEDLL for all non-static builds, not just for win 2009-05-11 Csaba Osztrogonac Reviewed by Holger Freyther. https://bugs.webkit.org/show_bug.cgi?id=24284 * WebCore.pro: duplicated values removed from INCLUDEPATH 2009-05-11 Laszlo Gombos Reviewed by Eric Seidel. Build fix Symbian; clean Up WebKit/Qt if ENABLE_NETSCAPE_PLUGIN_API=0 https://bugs.webkit.org/show_bug.cgi?id=24688 * WebCore.pro: Use platform independent plugin stubs if ENABLE_NETSCAPE_PLUGIN_API=0 * platform/qt/TemporaryLinkStubs.cpp: Remove stub functions for plugins 2009-05-10 Dan Bernstein Reviewed by Darin Adler. - fix a crash when deactivating a document that had adopted a
element Test: fast/dom/HTMLFormElement/document-deactivation-callback-crash.html * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Corrected the logic here: elements should be registered for document activation callbacks if and only if autocomplete is off. 2009-05-10 Alexey Proskuryakov Reviewed by Dan Bernstein. REGRESSION (r42483): Have to enter credentials twice when trying to view protected MobileMe video Add a temporary workaround. * platform/network/ResourceHandleInternal.h: (WebCore::ResourceHandleInternal::ResourceHandleInternal): Added an m_useSiteSpecificQuirks boolean (Mac-only). A Frame pointer is only available when starting a request, so we need to store this data for later use. * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::start): Initialize m_useSiteSpecificQuirks. (WebCore::ResourceHandle::receivedCredential): Use per-session credentials with gallery.me.com. 2009-05-10 Alexey Proskuryakov Reviewed by Dan Bernstein. Have to enter credentials twice when downloading from a protected page * platform/network/cf/AuthenticationCF.cpp: * platform/network/cf/AuthenticationCF.h: (WebCore::WebCoreCredentialStorage::set): (WebCore::WebCoreCredentialStorage::get): * platform/network/cf/ResourceHandleCFNet.cpp: Move WebCore credential storage to AuthenticationCF, so that WebKit could use it (macthing an earlier Mac change). 2009-05-10 Alexey Proskuryakov Reviewed by Dan Bernstein. Match newer XMLHttpRequest draft and make withCredential setter raise an exception when called at a wrong time. No test, because we are waiting for a newer version of system frameworks to test the attribute. * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::setWithCredentials): * xml/XMLHttpRequest.h: * xml/XMLHttpRequest.idl: Raise INVALID_STATE_ERR if the state is not OPENED, or if the send() flag is true. 2009-05-10 Dan Bernstein Reviewed by Dave Kilzer. - fix https://bugs.webkit.org/show_bug.cgi?id=25602 REGRESSION: fast/overflow/overflow-focus-ring.html seems double-drawn on ToT Test: fast/layers/self-painting-outline.html * rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayer): Paint the layer's own outline only if it is a self-painting layer. 2009-05-09 Dan Bernstein Reviewed by Geoffrey Garen and Mark Rowe. - fix https://bugs.webkit.org/show_bug.cgi?id=25666 Assertion failure in Node::setDocument() (willMoveToNewOwnerDocumentWasCalled) when adopting a element Test: fast/dom/HTMLFormElement/adopt-assertion.html * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::willMoveToNewOwnerDocument): Overrides of this method are required to call the base class implementation. Do it. (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Ditto. 2009-03-29 Kevin Ollivier Reviewed by Maciej Stachowiak. WebCore::DocumentLoader::mainReceivedError now asserts if error.isNull(), so make sure CURL does not create empty ResourceError() objects. https://bugs.webkit.org/show_bug.cgi?id=24927 * platform/network/curl/ResourceHandleManager.cpp: (WebCore::ResourceHandleManager::downloadTimerCallback): 2009-05-09 Gustavo Noronha Silva Build fix, adding missing files to make dist. * GNUmakefile.am: 2009-05-08 Simon Fraser Reviewed by Dan Bernstein https://bugs.webkit.org/show_bug.cgi?id=25656 Reduce the inline capacity of CSSParserValueList's m_values vector to reduce the size of CSSParserValueList from 544 to 160 bytes in 64-bit. * css/CSSParserValues.h: 2009-05-08 Nikolas Zimmermann Not reviewed. Used sort-Xcode-project-file to sort the XCode project file - it hasn't been done for a while. * WebCore.xcodeproj/project.pbxproj: 2009-05-08 Dan Bernstein Reviewed by Darin Adler. - fix REGRESSION: Crash below ApplyStyleCommand::applyInlineStyleToRange when reviewing a patch in Bugzilla Test: editing/style/apply-through-end-of-document.html * editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::applyInlineStyleToRange): Added a null check for the case of a range extending through the end of the document, in which pastEndNode is 0. 2009-05-08 Douglas R. Davidson Reviewed by Beth Dakin. REGRESSION (Safari 3-4): Contraction base marked as misspelled even though contraction is a word Make sure spelling underline does not persist on words like . * editing/TypingCommand.cpp: (WebCore::TypingCommand::typingAddedToOpenCommand): 2009-05-08 Kevin Watters Reviewed by Kevin Ollivier. Make sure the path's refdata isn't deleted before we're done with the object. https://bugs.webkit.org/show_bug.cgi?id=25652 * platform/graphics/wx/PathWx.cpp: (WebCore::Path::~Path): (WebCore::Path::Path): (WebCore::Path::translate): 2009-05-08 Kevin Watters Reviewed by Darin Adler. Fix for memory leak on Mac. https://bugs.webkit.org/show_bug.cgi?id=25650 * platform/wx/wxcode/mac/carbon/fontprops.cpp: (wxFontProperties::wxFontProperties): 2009-05-08 Beth Dakin Reviewed by Dan Bernstein. REGRESSION (r37591): Cannot print or preview from maps.yandex.ru We need to fall into the stretchesToViewHeight() quirk when we are printing and we are the root and the root has percentage height OR when we are the body and the root has percentage height. Otherwise we have a height of 0 and can run into painting troubles. * rendering/RenderBox.cpp: (WebCore::RenderBox::calcHeight): 2009-05-08 Douglas Davidson Reviewed by Darin Adler. Fixes for . Prevent text checking replacement immediately after an apostrophe and automatic link addition except immediately after typing. * editing/Editor.cpp: (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): 2009-05-08 Eric Carlson Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=25627 Bug 25627: HTMLMediaElement: some errors should fire on elements Update for HTML5 spec change to fire 'error' events on element when there is a failure while processing/loading a . Test: media/video-source-error.html * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::enqueueEvent): Remove white-space. (WebCore::HTMLMediaElement::loadInternal): Call cancelPendingEventsAndCallbacks instead of just calling m_pendingEvents.clear() as we now also need to cancel pending errors on all element. (WebCore::HTMLMediaElement::selectMediaResource): Call isSafeToLoadURL() here instead of in loadResource() as we need to report errors differently depending on the type of failure. Use KURL instead of String. (WebCore::HTMLMediaElement::loadNextSourceChild): nextSourceChild -> selectNextSourceChild. Fail silently when there are no more canditates because that is what spec mandates. Keep url as KURL instead of converting to String. (WebCore::HTMLMediaElement::loadResource): ASSERT that the URL is safe to load as we now assume the safety check now done before this function. Takes KURL instead of String. (WebCore::HTMLMediaElement::isSafeToLoadURL): New, checks to see if a url is safe to load, logs failure if not. (WebCore::HTMLMediaElement::noneSupported): MEDIA_ERR_NONE_SUPPORTED -> MEDIA_ERR_SRC_NOT_SUPPORTED (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks): New, clear all events pending on the media and all source elements. (WebCore::HTMLMediaElement::setNetworkState): Fire an error on the source element when the the failure happened while processing one. Only call nonSupported() when the failure happened while processing media element 'src' attribute. (WebCore::HTMLMediaElement::havePotentialSourceChild): nextSourceChild -> selectNextSourceChild. Deal with selectNextSourceChild returning a KURL instead of a String. (WebCore::HTMLMediaElement::selectNextSourceChild): Renamed from nextSourceChild, add optional param to control whether or not errors are fired on a source element when it will not be used. Check safety of url here instead of waiting until loadResource(). Return a KURL instead of a String. (WebCore::HTMLMediaElement::initialURL): nextSourceChild -> selectNextSourceChild. Keep url as a KURL instead of a String. * html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::): * html/HTMLSourceElement.cpp: (WebCore::HTMLSourceElement::HTMLSourceElement): Initialize timer related variables. (WebCore::HTMLSourceElement::scheduleErrorEvent): New, start one-shot timer to fire an error event ASAP. (WebCore::HTMLSourceElement::cancelPendingErrorEvent): New, cancel pending error event. (WebCore::HTMLSourceElement::errorEventTimerFired): New, fire error event if it has not been cancelled. * html/HTMLSourceElement.h: * html/MediaError.h: (WebCore::MediaError::): MEDIA_ERR_NONE_SUPPORTED -> MEDIA_ERR_SRC_NOT_SUPPORTED * html/MediaError.idl: Ditto 2009-05-08 Dan Bernstein Reviewed by Maciej Stachowiak. - fix Undoing typed text after selecting all leaves non-text areas highlighted Test: fast/repaint/selection-clear.html When RenderView::clearSelection() is called from SelectionController::nodeWillBeRemoved(), selected renderers may already be marked for layout, which means that they can no longer compute their selection repaint info. Instead, an empty IntRect (or GapRects) is returned, leading to incomplete repaint. The fix is not to rely on individual renderers when clearing the selection, but instead, cache the bounding rectangle of the selected blocks' GapRects when setting the selection, and invalidate that entire rectangle when clearing it. * rendering/RenderView.cpp: (WebCore::RenderView::setSelection): Added a parameter saying whether the repainting of selected blocks should include both previously-selected areas and newly-selected areas or only newly-selected areas. The default is both. Also compute m_cachedSelectionBounds to be the bounding rectangle of the new selection's BlockSelectionInfos' GapRects. (WebCore::RenderView::clearSelection): Repaint m_cachedSelectionBounds, and tell setSelection() that it should not paint areas that were in the old selection's BlockSelectionInfos' GapRects. * rendering/RenderView.h: (WebCore::RenderView::): 2009-05-08 Alexey Proskuryakov Reviewed by Maciej Stachowiak. NPN_GetAuthenticationInfo does not work with non-permanent credentials * WebCore.base.exp: * platform/network/mac/AuthenticationMac.h: (WebCore::WebCoreCredentialStorage::set): (WebCore::WebCoreCredentialStorage::get): * platform/network/mac/AuthenticationMac.mm: * platform/network/mac/ResourceHandleMac.mm: Moved WebCoreCredentialStorage to AuthenticationMac, so that it could be used from WebKit. 2009-05-08 Jedrzej Nowacki Reviewed by Simon Hausmann. Fix the Qt build, add missing JSC_HOST_CALL macros to the runtime call methods. * bridge/qt/qt_runtime.h: 2009-05-08 Jan Michael Alonzo Reviewed by Mark Rowe. Add missing strings to localizedStrings.js https://bugs.webkit.org/show_bug.cgi?id=25635 Add the strings "Delete", "Key", "Refresh" and "Value". * English.lproj/localizedStrings.js: 2009-05-08 Robert Hogan Reviewed, tweaked and landed by Alexey Proskuryakov. https://bugs.webkit.org/show_bug.cgi?id=24992 [Qt] crash at http://browserspy.dk/browser.php This cannot be easily tested in DRT, because it relies on interaction with QApplication, but the added assertions guard against re-introducing this issue. * loader/FrameLoader.cpp: (WebCore::FrameLoader::didOpenURL): Don't make client calls while the frame is being constructed, because the intermediate state without a document is something we don't want to expose. * page/Frame.cpp: (WebCore::Frame::setJSStatusBarText): Assert that the frame has a document, which is an approximation of it being in a consistent state for client calls. (WebCore::Frame::setJSDefaultStatusBarText): Ditto. 2009-05-07 Mark Rowe Rubber-stamped by Oliver Hunt. Fix . Bug 25640: Crash on quit in r43384 nightly build on Leopard w/ Safari 4 beta installed Roll out r43366 as it removed symbols that Safari 4 Beta uses. * dom/XMLTokenizerLibxml2.cpp: (WebCore::matchFunc): (WebCore::openFunc): (WebCore::createStringParser): (WebCore::createMemoryParser): * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::open): * platform/sql/SQLiteDatabase.cpp: (WebCore::SQLiteDatabase::SQLiteDatabase): (WebCore::SQLiteDatabase::close): * storage/DatabaseThread.cpp: (WebCore::DatabaseThread::DatabaseThread): (WebCore::DatabaseThread::start): (WebCore::DatabaseThread::databaseThread): * storage/LocalStorageThread.cpp: (WebCore::LocalStorageThread::LocalStorageThread): (WebCore::LocalStorageThread::start): (WebCore::LocalStorageThread::localStorageThread): (WebCore::LocalStorageThread::scheduleImport): (WebCore::LocalStorageThread::scheduleSync): (WebCore::LocalStorageThread::terminate): * workers/WorkerThread.cpp: (WebCore::WorkerThread::WorkerThread): (WebCore::WorkerThread::start): 2009-05-08 Xan Lopez Reviewed by Gustavo Noronha. Unify scrolling code via adjustments and keys. Use the WebCore defined constants, since that's what people are most used to at this point. * platform/gtk/ScrollViewGtk.cpp: (WebCore::ScrollView::platformHandleHorizontalAdjustment): (WebCore::ScrollView::platformHandleVerticalAdjustment): 2009-05-07 David Levin Reviewed by NOBODY. Suggested by Oliver Hunt. Rolling back http://trac.webkit.org/changeset/43385 because we have to use mac artwork for the underline on OSX. * platform/graphics/cg/GraphicsContextCG.cpp: * platform/graphics/mac/GraphicsContextMac.mm: (WebCore::createPatternColor): (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): * platform/graphics/win/GraphicsContextCGWin.cpp: (WebCore::setCGStrokeColor): (WebCore::spellingPatternColor): (WebCore::grammarPatternColor): (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): 2009-05-07 John Grabowski Reviewed by Simon Fraser. https://bugs.webkit.org/show_bug.cgi?id=25573 Unify use of CG-common routine for drawLineForMisspellingOrBadGrammar. Cleanup for WebKit, but required for Chromium happiness. * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::spellingPatternColor): (WebCore::grammarPatternColor): (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar): * platform/graphics/mac/GraphicsContextMac.mm: * platform/graphics/win/GraphicsContextCGWin.cpp: 2009-05-07 Darin Adler Reviewed by Simon Fraser. Bug 25575: Registered mutation event listener crashes HTMLMediaElement https://bugs.webkit.org/show_bug.cgi?id=25575 Test: fast/media/video-controls-with-mutation-event-handler.html * rendering/MediaControlElements.cpp: (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Don't call setAttribute. * rendering/RenderMedia.cpp: (WebCore::RenderMedia::createTimeline): Call setAttribute here. 2009-05-07 Simon Fraser Rubber Stamped by Dave Hyatt Shuffle the data members to minimize padding. * rendering/RenderTableSection.cpp: (WebCore::RenderTableSection::RenderTableSection): * rendering/RenderTableSection.h: 2009-05-07 Simon Fraser Rubber Stamped by Dave Hyatt Shuffle the data members to make Events 8 bytes smaller in 64-bit. * dom/Event.cpp: (WebCore::Event::Event): * dom/Event.h: 2009-05-07 Eric Seidel Reviewed by Beth Dakin. Fix regression caused by r41469, add test case to prevent it from happening again. https://bugs.webkit.org/show_bug.cgi?id=25252 hasLayer() was true during removeOnlyThisLayer()/ updateLayerPositions() which caused updateLayerPosition()'s walk up the render tree to include offsets from the layer we were about to remove. I'm not 100% convinced that this wasn't a bug in updateLayerPosition() or in RenderBoxModelObject::styleDidChange, because the layer in question is not the containing block for the block which gets laid out wrong. But this restores the previous behavior and adds a test. So the next time someone is in here re- factoring, they will at least know if they break something. Test: fast/layers/remove-only-this-layer-update.html * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::destroyLayer): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::removeOnlyThisLayer): * rendering/RenderObject.cpp: (WebCore::RenderObject::destroy): * rendering/RenderWidget.cpp: (WebCore::RenderWidget::destroy): 2009-05-07 Dmitry Titov Attempt to fix GTK build. * platform/graphics/GlyphPageTreeNode.h: add #include to ensure memcpy and memset are defined. 2009-05-07 Oliver Hunt Reviewed by Gavin Barraclough. Improve native call performance Add calling convention declarations where necessary, and update bindings script to generate them as well. * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::callHTMLCollection): * bindings/js/JSNodeListCustom.cpp: (WebCore::callNodeList): * bindings/js/JSPluginElementFunctions.cpp: (WebCore::callPlugin): * bindings/js/JSQuarantinedObjectWrapper.h: * bindings/scripts/CodeGeneratorJS.pm: * bridge/runtime_method.cpp: (JSC::callRuntimeMethod): * bridge/runtime_object.cpp: (JSC::callRuntimeObject): 2009-05-07 Nikolas Zimmermann Reviewed by Dave Hyatt. Fixes: https://bugs.webkit.org/show_bug.cgi?id=25617 Fix memory/performance regression because of too much form control related abstraction just for WMLs sake. Remove FormControlElement and FormControlElementWithState base classes, as the overhead is too high for the gain. HTML has no benefit of that kind of abstraction, so we're going to move the functionality to Element directly. The functions now living in FormControlElement(WithState) lived in Node/Element/HTMLFormControlElement before. This patches moves all of them in a central place in Element.h, as virtual functions with an inline default implementation. To avoid confusion like isEnabled() living on Node, before the creation of the FormControlElement abstraction layer, all methods are renamed to clarify where they belong to. All renames are listed here: From FormControlElement: - isEnabled() -> isEnabledFormControl() - isReadOnly() -> isReadOnlyFormControl() - isTextControl() -> isTextFormControl() - valueMatchesRenderer() -> formControlValueMatchesRenderer() - setValueMatchesRenderer() -> setFormControlValueMatchesRenderer() - name() -> formControlName() - type() -> formControlType() From FormControlElementWithState: - saveState() -> saveFormControlState() - restoreState() -> restoreFormControlState() A lot of Element -> FormControlElement(WithState) casting is gone again, so it's not only a memory, but also a performance progression. No testcases affected, no new tests needed. * GNUmakefile.am: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * WebCoreSources.bkl: * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::canShareStyleWithElement): (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): * dom/Document.cpp: (WebCore::Document::formElementsState): * dom/Document.h: (WebCore::Document::registerFormElementWithState): (WebCore::Document::unregisterFormElementWithState): * dom/Element.h: (WebCore::Element::isFormControlElement): (WebCore::Element::isEnabledFormControl): (WebCore::Element::isReadOnlyFormControl): (WebCore::Element::isTextFormControl): (WebCore::Element::formControlValueMatchesRenderer): (WebCore::Element::setFormControlValueMatchesRenderer): (WebCore::Element::formControlName): (WebCore::Element::formControlType): (WebCore::Element::saveFormControlState): (WebCore::Element::restoreFormControlState): * dom/FormControlElement.cpp: Removed. * dom/FormControlElement.h: Removed. * dom/FormControlElementWithState.cpp: Removed. * dom/FormControlElementWithState.h: Removed. * dom/InputElement.cpp: (WebCore::InputElement::setValueFromRenderer): * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::formControlType): * html/HTMLButtonElement.h: * html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::formControlType): * html/HTMLFieldSetElement.h: * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::attach): (WebCore::HTMLFormControlElement::formControlName): (WebCore::HTMLFormControlElement::willValidate): (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState): (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState): (WebCore::HTMLFormControlElementWithState::willMoveToNewOwnerDocument): (WebCore::HTMLFormControlElementWithState::didMoveToNewOwnerDocument): (WebCore::HTMLFormControlElementWithState::finishParsingChildren): * html/HTMLFormControlElement.h: (WebCore::HTMLFormControlElement::isTextFormControl): (WebCore::HTMLFormControlElement::isEnabledFormControl): (WebCore::HTMLFormControlElement::formControlValueMatchesRenderer): (WebCore::HTMLFormControlElement::setFormControlValueMatchesRenderer): (WebCore::HTMLFormControlElement::isReadOnlyFormControl): (WebCore::HTMLFormControlElement::type): (WebCore::HTMLFormControlElement::name): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::formControlName): (WebCore::HTMLInputElement::formControlType): (WebCore::HTMLInputElement::saveFormControlState): (WebCore::HTMLInputElement::restoreFormControlState): (WebCore::HTMLInputElement::parseMappedAttribute): (WebCore::HTMLInputElement::detach): (WebCore::HTMLInputElement::setValue): (WebCore::HTMLInputElement::setFileListFromRenderer): * html/HTMLInputElement.h: (WebCore::HTMLInputElement::readOnly): (WebCore::HTMLInputElement::isTextFormControl): * html/HTMLKeygenElement.cpp: (WebCore::HTMLKeygenElement::formControlType): * html/HTMLKeygenElement.h: * html/HTMLLegendElement.cpp: (WebCore::HTMLLegendElement::formControlType): * html/HTMLLegendElement.h: * html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::formControlType): * html/HTMLOptGroupElement.h: * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::formControlType): * html/HTMLOptionElement.h: * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::formControlType): (WebCore::HTMLSelectElement::saveFormControlState): (WebCore::HTMLSelectElement::restoreFormControlState): * html/HTMLSelectElement.h: * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::HTMLTextAreaElement): (WebCore::HTMLTextAreaElement::formControlType): (WebCore::HTMLTextAreaElement::saveFormControlState): (WebCore::HTMLTextAreaElement::restoreFormControlState): (WebCore::HTMLTextAreaElement::updateValue): (WebCore::HTMLTextAreaElement::setValue): * html/HTMLTextAreaElement.h: (WebCore::HTMLTextAreaElement::readOnly): (WebCore::HTMLTextAreaElement::isTextFormControl): * page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isEnabled): (WebCore::AccessibilityRenderObject::canSetFocusAttribute): * page/DragController.cpp: (WebCore::DragController::concludeEditDrag): * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::itemIsEnabled): * rendering/RenderTextControl.cpp: (WebCore::updateUserModifyProperty): (WebCore::RenderTextControl::setInnerTextValue): * rendering/RenderTextControl.h: * rendering/RenderTextControlMultiLine.cpp: (WebCore::RenderTextControlMultiLine::subtreeHasChanged): * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::updateFromElement): * rendering/RenderTheme.cpp: (WebCore::RenderTheme::isEnabled): (WebCore::RenderTheme::isReadOnlyControl): * rendering/RenderThemeChromiumMac.mm: (WebCore::RenderThemeChromiumMac::adjustMenuListStyle): * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::adjustMenuListStyle): * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::adjustMenuListStyle): * wml/WMLFormControlElement.cpp: * wml/WMLFormControlElement.h: (WebCore::WMLFormControlElement::isReadOnlyFormControl): (WebCore::WMLFormControlElement::isTextFormControl): (WebCore::WMLFormControlElement::formControlValueMatchesRenderer): (WebCore::WMLFormControlElement::setFormControlValueMatchesRenderer): * wml/WMLInputElement.cpp: (WebCore::WMLInputElement::WMLInputElement): (WebCore::WMLInputElement::isKeyboardFocusable): (WebCore::WMLInputElement::isMouseFocusable): (WebCore::WMLInputElement::dispatchBlurEvent): (WebCore::WMLInputElement::formControlType): (WebCore::WMLInputElement::formControlName): (WebCore::WMLInputElement::setValue): (WebCore::WMLInputElement::saveFormControlState): (WebCore::WMLInputElement::restoreFormControlState): (WebCore::WMLInputElement::parseMappedAttribute): (WebCore::WMLInputElement::detach): (WebCore::WMLInputElement::appendFormData): (WebCore::WMLInputElement::init): * wml/WMLInputElement.h: (WebCore::WMLInputElement::isTextFormControl): * wml/WMLOptGroupElement.cpp: (WebCore::WMLOptGroupElement::formControlType): * wml/WMLOptGroupElement.h: * wml/WMLOptionElement.cpp: (WebCore::WMLOptionElement::formControlType): * wml/WMLOptionElement.h: 2009-05-07 Dmitry Titov Reviewed by Alexey Proskuryakov and Adam Roben. https://bugs.webkit.org/show_bug.cgi?id=25348 Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap. Most of the change is in WTF. Unless noted, all the following files changed to use the new ThreadIdentifier::isValid() method instead of just doing 'if(m_threadID)' kind of checks, since ThreadIdentifier is now a class rather then an integer. Also, there is no need to initialize threadID in constructors to 0 now. * dom/XMLTokenizerLibxml2.cpp: (WebCore::libxmlLoaderThread): use DEFINE_STATIC_LOCAL and accessor function for static thread id, since now ThreadIdentifier needs construction and we avoid having global initializers. (WebCore::matchFunc): use the new accessor function. (WebCore::openFunc): ditto. (WebCore::createStringParser): ditto. (WebCore::createMemoryParser): ditto. * loader/icon/IconDatabase.cpp: (WebCore::IconDatabase::open): * platform/sql/SQLiteDatabase.cpp: (WebCore::SQLiteDatabase::SQLiteDatabase): (WebCore::SQLiteDatabase::close): * storage/DatabaseThread.cpp: (WebCore::DatabaseThread::start): (WebCore::DatabaseThread::databaseThread): remove m_threadID from debug output. * storage/LocalStorageThread.cpp: (WebCore::LocalStorageThread::start): (WebCore::LocalStorageThread::scheduleImport): (WebCore::LocalStorageThread::scheduleSync): (WebCore::LocalStorageThread::terminate): * workers/WorkerThread.cpp: (WebCore::WorkerThread::start): (WebCore::WorkerThread::WorkerThread): (WebCore::WorkerThread::start): 2009-05-07 Simon Fraser Rubber Stamped by Dave Hyatt Shuffle the data members to minimize padding. * dom/ClassNames.h: 2009-05-07 Simon Fraser Reviewed by Darin Adler Shrink GlyphPage from 4112 to 2576 bytes in 64-bit https://bugs.webkit.org/show_bug.cgi?id=25605 Shrink GlyphPage by splitting the array of GlyphData, which has lots of padding, into separate Glyph and SimpleFontData* arrays. * platform/graphics/Font.h: glyphDataForCharacter has to return a GlyphData by value now. * platform/graphics/FontFastPath.cpp: (WebCore::Font::glyphDataForCharacter): Return GlyphData by value. * platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): Better encapsulation of GlyphPage, using the new methods. * platform/graphics/Font.h: * platform/graphics/FontFastPath.cpp: (WebCore::Font::glyphDataForCharacter): * platform/graphics/GlyphPageTreeNode.cpp: (WebCore::GlyphPageTreeNode::initializePage): * platform/graphics/GlyphPageTreeNode.h: (WebCore::GlyphData::GlyphData): (WebCore::GlyphPage::indexForCharacter): (WebCore::GlyphPage::glyphDataForCharacter): (WebCore::GlyphPage::glyphDataForIndex): (WebCore::GlyphPage::glyphAt): (WebCore::GlyphPage::fontDataForCharacter): (WebCore::GlyphPage::setGlyphDataForCharacter): (WebCore::GlyphPage::setGlyphDataForIndex): (WebCore::GlyphPage::copyFrom): (WebCore::GlyphPage::clear): 2009-05-07 Dimitri Glazkov Reviewed by Darin Fisher. https://bugs.webkit.org/show_bug.cgi?id=25625 Implement Image/Option constructors in V8 bindings. * bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::NAMED_PROPERTY_GETTER): Removed old JS-based code. * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: Added. * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp: Added. 2009-05-07 Brady Eidson I hate myself for doing this, but need to fix that ChangeLog entry. * ChangeLog: 2009-05-07 Brady Eidson Rubberstamped by Darin Adler * html/HTMLParser.cpp: Use the correct style of BUILDING_ON_* for WebCore. * html/HTMLParser.h: Ditto 2009-05-07 David Hyatt Restore intrinsic margins to all form controls on Mac and Windows. Some of this regressed in 43007 when textareas were given explicit margins. Some of it had already regressed earlier whenever intrinsic margins were turned off in themeWin.css. Reviewed by Beth Dakin. * css/html4.css: * css/themeWin.css: 2009-05-07 Brady Eidson Reviewed by Darin Adler and Alexey Proskuryakov. Exception occurs in Mail when attempting to create signatures due to element creation * dom/Document.cpp: (WebCore::Document::implicitClose): Check shouldCreateImplicitHead() before creating it. * html/HTMLParser.cpp: (WebCore::HTMLParser::handleError): Check shouldCreateImplicitHead() before creating it. (WebCore::HTMLParser::bodyCreateErrorCheck): Ditto. (WebCore::shouldCreateImplicitHead): For Tiger/Leopard when running under Mail, the implicit shouldn't be created. * html/HTMLParser.h: (WebCore::shouldCreateImplicitHead): Inline implementation for non-Tiger/Leopard platforms 2009-05-07 Antony Sargent Reviewed by Darin Fisher. Fix a memory leak in V8EventListenerList::remove. https://bugs.webkit.org/show_bug.cgi?id=25618 No new functionality so no new tests. * bindings/v8/V8EventListenerList.cpp: (WebCore::V8EventListenerList::remove): 2009-05-07 Darin Fisher Fix Chromium build bustage. * bindings/v8/custom/V8HTMLFormElementCustom.cpp: Add missing HTMLCollection.h include. 2009-05-07 Chris Fleizach Reviewed by Beth Dakin. Bug 25598: AX: if a radio button has a label and a title, the label is not exposed https://bugs.webkit.org/show_bug.cgi?id=25598 Test: accessibility/radio-button-title-label.html * page/AccessibilityObject.h: (WebCore::AccessibilityObject::exposesTitleUIElement): * page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::exposesTitleUIElement): (WebCore::AccessibilityRenderObject::titleUIElement): (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): * page/AccessibilityRenderObject.h: 2009-05-07 Darin Fisher Fix Chromium build bustage. * bindings/v8/custom/V8HTMLFormElementCustom.cpp: (WebCore::INDEXED_PROPERTY_GETTER): ":" should be "::" 2009-05-07 Xan Lopez Reviewed by Gustavo Noronha. https://bugs.webkit.org/show_bug.cgi?id=25610 [GTK] text.caretOffset is reportedly always 0 Use the right function to get the caret offset in an element. selectionStart() would only work for text controls (there's even an ASSERT when calculating the selected text range). Instead just get the selection and get the offset of the start position. * page/gtk/AccessibilityObjectWrapperAtk.cpp: 2009-05-07 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Fix support for antialiased CSS border-radius WebKit implements border-radius by drawing a double-size border, and then letting the clip constrain the border to the right width and position. This requires support for antialiased clipping, as well as painting, to get a nice smooth border. Qt only does antialiased clipping if the anti-alias flag is set at the time of clipping, so we have to enable this in the method addInnerRoundedRectClip(), as well as when we draw the border. Currently the raster-engine is the only Qt paint engine to support anti-aliased clipping, but the OpenGL and Mac paint engines could potentially support this in the future. * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::strokeArc): (WebCore::GraphicsContext::addInnerRoundedRectClip): 2009-05-07 Adam Langley Reviewed by Eric Seidel. Render empty optgroup elements. https://bugs.webkit.org/show_bug.cgi?id=24900 Currently, optgroup elements which are empty are not rendered. The HTML specification gives no guidance on this situation. However, the test for being empty is that they have no children, thus this will not render: while this /will/ render (because of the text node child): This patch will cause both cases to render which matches IE's and Firefox's behaviour. The difference only appears when opening the select element and does not appear in the render tree. Thus, a manual layout-test is required. * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::recalcListItems): * manual-tests/optgroup-empty-and-nested.html: Added. 2009-05-06 Julie Parent Reviewed by Eric Seidel. Bug 25608: Unused m_frame in ChromiumClipboard. https://bugs.webkit.org/show_bug.cgi?id=25608 * platform/chromium/ClipboardChromium.h: No tests added as this is only removing dead code, no functional changes. 2009-05-06 Dan Bernstein Reviewed by Simon Fraser and Justin Garcia. - fix another part of Triple-click quoted line and type Return creates an extra quoted blank line Test: editing/inserting/6703873-2.html * editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply): Corrected the logic for determining the first node that should go into the new blockquote given the split position: if it is at the end of a container, use the next node after the container. Otherwise, use the child at the position's offset. 2009-05-06 Kevin Ollivier wx build fix, fixes for wx trunk builds. * platform/graphics/wx/ImageWx.cpp: (WebCore::BitmapImage::draw): * platform/wx/RenderThemeWx.cpp: * platform/wx/wxcode/mac/carbon/fontprops.cpp: (wxFontProperties::wxFontProperties): 2009-05-06 Albert J. Wong Reviewed by Darin Fisher. https://bugs.webkit.org/show_bug.cgi?id=25597 Fix API drift compile errors that occurred while this was ifdef-ed out. The two big issues were that RenderObject::element() became RenderObject::node() and some of the wk* drawing functions had an extra theme parameter added to the argument list. * rendering/RenderThemeChromiumMac.mm: (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton): (WebCore::RenderThemeChromiumMac::paintMediaMuteButton): (WebCore::RenderThemeChromiumMac::paintMediaPlayButton): (WebCore::RenderThemeChromiumMac::paintMediaSeekBackButton): (WebCore::RenderThemeChromiumMac::paintMediaSeekForwardButton): (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack): (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb): 2009-05-06 Jian Li Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25385 Upstream changes to V8 bindings for supporting nested workers. * bindings/v8/WorkerContextExecutionProxy.cpp: (WebCore::WorkerContextExecutionProxy::ToV8Object): (WebCore::WorkerContextExecutionProxy::EventTargetToV8Object): * bindings/v8/custom/V8WorkerCustom.cpp: (WebCore::getEventListener): (WebCore::ACCESSOR_SETTER WorkerOnmessage): (WebCore::CALLBACK_FUNC_DECL WorkerAddEventListener): 2009-05-06 Dave Moore Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25513 The V8 bindings convert every javascript property to its associated css style name. It then calls functions that convert that name to an id. This makes getting or setting css styles on elements slow. The patch fixes this by caching the results of the transformation, mapping a javascript property name to its css property id. It then calls the already public webkit methods that take the id in place of the string property names. * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp: 2009-05-06 Nate Chapin Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25591 Upstream V8HTMLFormElement from the Chromium repository. * bindings/v8/custom/V8HTMLFormElementCustom.cpp: (WebCore::INDEXED_PROPERTY_GETTER HTMLFormElement): Upstreamed from Chromium repository (WebCore::NAMED_PROPERTY_GETTER HTMLFormElement): Changed empty element return case to return notHandledByInterceptor(); (WebCore::CALLBACK_FUNC_DECL HTMLFormElementSubmit): Upstreamed from Chromium repository 2009-05-06 Albert J. Wong Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25595 Upstream V8CanvasPixelArrayCustom from chromium port tree. * bindings/v8/V8CanvasPixelArrayCustom.cpp: Added. 2009-05-06 Simon Fraser Rubber-stampted by Eric Seidel Add braces to clarify logic flow in RenderObject::adjustStyleDifference. Only affects ACCELERATED_COMPOSITING builds. * rendering/RenderObject.cpp: (WebCore::RenderObject::adjustStyleDifference): 2009-05-06 Simon Fraser Reviewed by Dan Bernstein Reduce size of RenderText in 64-bit Rearrange data members of RenderText so that an int comes first, to minimize padding. * rendering/RenderText.cpp: (WebCore::RenderText::RenderText): * rendering/RenderText.h: 2009-05-06 Simon Fraser Reviewed by Dan Bernstein Reduce size of RenderStyle in 64-bit Rearrange data members of RenderStyle to minimize padding when building for 64-bit. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::RenderStyle): * rendering/style/RenderStyle.h: (WebCore::): 2009-05-06 Darin Fisher Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25596 Fixes Chromium build bustage caused by r43317 (making RefCountedBase::m_refCount private) * page/chromium/AccessibilityObjectWrapper.h: (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper): 2009-05-06 Hin-Chung Lam Reviewed by Darin Fisher. https://bugs.webkit.org/show_bug.cgi?id=25593 Refactor for MediaPlayerPrivate for Chromium port. Remove the implementation of MediaPlayerPrivateInferface from it. * platform\graphics\chromium\MediaPlayerPrivateChromium.h: 2009-05-06 Simon Fraser Reviewed by Dave Hyatt, Dan Bernstein Reduce the size of FontFallbackList in 64-bit Re-order the data members of FontFallbackList to save 8 bytes when building 64-bit. * platform/graphics/FontFallbackList.cpp: (WebCore::FontFallbackList::FontFallbackList): * platform/graphics/FontFallbackList.h: 2009-05-06 Simon Fraser Reviewed by Darin Adler, Dan Bernstein Reduce size of InlineBox in 64-bit Re-order the data members of InlineBox to save 8 bytes when building 64-bit. * rendering/InlineBox.h: (WebCore::InlineBox::InlineBox): 2009-05-06 David Levin Reviewed by Dimitri Glazkov. https://bugs.webkit.org/show_bug.cgi?id=25588 Adding the custom v8 bindings Document.location. * bindings/v8/custom/V8DocumentLocationCustom.cpp: Added. 2009-05-06 Kevin McCullough -Clarified a comment * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): 2009-05-06 Nikolas Zimmermann Not reviewed. Fix WML enabled builds by including "MappedAttribute.h" in several places. * wml/WMLAElement.cpp: * wml/WMLAccessElement.cpp: * wml/WMLBRElement.cpp: * wml/WMLCardElement.cpp: * wml/WMLDoElement.cpp: * wml/WMLElement.cpp: * wml/WMLFieldSetElement.cpp: * wml/WMLGoElement.cpp: * wml/WMLImageElement.cpp: * wml/WMLInputElement.cpp: * wml/WMLMetaElement.cpp: * wml/WMLOnEventElement.cpp: * wml/WMLOptGroupElement.cpp: * wml/WMLOptionElement.cpp: * wml/WMLPElement.cpp: * wml/WMLPostfieldElement.cpp: * wml/WMLSetvarElement.cpp: * wml/WMLTableElement.cpp: * wml/WMLTemplateElement.cpp: * wml/WMLTimerElement.cpp: 2009-05-06 Xan Lopez Reviewed by Gustavo Noronha. https://bugs.webkit.org/show_bug.cgi?id=25526 [Gtk] Additional support is needed for caret browsing Emit AtkText::text-selection-changed when the selection changes and the current selection is of Range (ie, the start and end positions are different) type. This seems to match what Gecko does. * editing/gtk/SelectionControllerGtk.cpp: (WebCore::SelectionController::notifyAccessibilityForSelectionChange): 2009-05-05 Xan Lopez Reviewed by Gustavo Noronha. https://bugs.webkit.org/show_bug.cgi?id=25526 [Gtk] Additional support is needed for caret browsing Emit AtkText::text-caret-moved when selection changes. * GNUmakefile.am: * editing/SelectionController.h: * editing/gtk/SelectionController.cpp: Added. (WebCore::SelectionController::notifyAccessibilityForSelectionChange): 2009-05-06 Holger Hans Peter Freyther Reviewed by Gustavo Noronha. Use mozilla cursors for the previously not implemented cursors. The manual-tests/cursor.html is looking complete now. * platform/gtk/CursorGtk.cpp: (WebCore::cellCursor): (WebCore::noDropCursor): (WebCore::progressCursor): (WebCore::noneCursor): (WebCore::notAllowedCursor): (WebCore::grabCursor): (WebCore::grabbingCursor): * platform/gtk/CursorGtk.h: 2009-05-06 Holger Hans Peter Freyther Reviewed by Xan Lopez. Properly indent the header file. * platform/gtk/CursorGtk.h: 2009-05-06 Holger Hans Peter Freyther Reviewed by Gustavo Noronha. Use the mozilla copyright header. Use MPL1.1/GPL2.0 and LGPL2.1 as the license compared to LGPL2.0. * platform/gtk/CursorGtk.h: 2009-05-06 Holger Hans Peter Freyther Reviewed by Gustavo Noronha. Move PluginView::invalidateRegion from the TemporaryLinkStubs to PluginViewGtk.cpp and implement it with a call to Widget::invalidate() just like mac is doing. Optimisations would have to be window system specific. * platform/gtk/TemporaryLinkStubs.cpp: * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::invalidateRegion): 2009-05-06 Jan Michael Alonzo Reviewed by Holger Freyther. Misc fixes to InspectorClientGtk. * GNUmakefile.am: Add localizedStrings.js to webinspector_DATA. This prevents copious amounts "Localized string not found" errors in the console 2009-05-06 Simon Hausmann Reviewed by Ariya Hidayat. Fix the Qt build on Windows. * platform/graphics/GraphicsContext.h: (WebCore::GraphicsContext::shouldIncludeChildWindows): Implemented dummy accessor. 2009-05-06 Simon Hausmann Reviewed by Tor Arne Vestbø. Tweak WebCore.pro for being able to override the generated sources dir for the generated_files target. * WebCore.pro: 2009-05-06 Simon Hausmann Reviewed by Holger Freyther. Fix the Qt/Windows build, use iface instead of interface to avoid conflict with VS2005 headers. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): 2009-05-06 Joerg Bornemann Reviewed by Simon Hausmann. We need to include StringExtras.h on Windows CE to access the strdup function. * plugins/PluginStream.cpp: 2009-05-06 Soren Gjesse Reviewed by Eric Seidel. Changed the toString behaviour for non document dom node event handlers in the V8 bindings. https://bugs.webkit.org/show_bug.cgi?id=25544 In the V8 bindings non document dom node event handlers are wrapped in a number of with blocks and uses an inner function. This causes the default toString on such a handler to return all this wrapper code. As some web sites use the source of an event handler to create new functions this wrapper code causes compatibility problems. Create a specific toString function for these handlers which will return a function source compatible with the source returned by the JSC bindings and other browsers. Test: fast/events/event-function-toString.html * bindings/v8/ScriptEventListener.cpp: (WebCore::createAttributeEventListener): * bindings/v8/V8LazyEventListener.cpp: (WebCore::V8LazyEventListener::V8LazyEventListener): (WebCore::V8LazyEventListener::getListenerFunction): (WebCore::V8LazyEventListenerToString): (WebCore::V8LazyEventListener::getWrappedListenerFunction): * bindings/v8/V8LazyEventListener.h: (WebCore::V8LazyEventListener::create): 2009-05-06 Tor Arne Vestbø Reviewed by Simon Hausmann. Build QtWebKit as a framework on Mac This implies both debug and release build by default, unless one of the --debug or --release config options are passed to the build-webkit script. Frameworks can be disabled by passing CONFIG+=webkit_no_framework to the build-webkit script. To be able to build both debug and release targets in parallel we have to use separate output directories for the generated sources, which is not optimal, but required to avoid race conditions. An optimization would be to only require this spit-up on Mac. * WebCore.pro: 2009-05-06 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Use $$GENERATED_SOURCES_DIR as output when running bison A couple of the generators left the bison output file in the source tree, and then moved it into $$GENERATED_SOURCES_DIR, which did not work well when building release and debug configurations in parallel. * WebCore.pro: 2009-05-06 Dan Bernstein Reviewed by Justin Garcia. - fix an assertion failure in RemoveNodeCommand() when deleting a
between a block and a mail blockquote Test: editing/deleting/removeNodeCommand-assert.html * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::mergeParagraphs): Pass the start block to prune() instead of passing m_upstreamStart.node(), because the latter may have been removed already. 2009-05-05 Eric Seidel No review, roll out only. Roll out r23072 since it broke layout tests * page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): 2009-05-05 Ben Murdoch Reviewed by Eric Seidel. Add #if ENABLE(DATABASE) guards around database code so toggling ENABLE_DATABASE off does not break builds. https://bugs.webkit.org/show_bug.cgi?id=24776 No functional changes, thus no tests. * bindings/js/JSCustomSQLStatementCallback.cpp: * bindings/js/JSCustomSQLStatementCallback.h: * bindings/js/JSCustomSQLStatementErrorCallback.cpp: * bindings/js/JSCustomSQLStatementErrorCallback.h: * bindings/js/JSCustomSQLTransactionCallback.cpp: * bindings/js/JSCustomSQLTransactionCallback.h: * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: * bindings/js/JSCustomSQLTransactionErrorCallback.h: * bindings/js/JSDatabaseCustom.cpp: * bindings/js/JSSQLTransactionCustom.cpp: * loader/EmptyClients.h: * page/ChromeClient.h: * storage/ChangeVersionWrapper.cpp: * storage/ChangeVersionWrapper.h: * storage/Database.cpp: (WebCore::Database::databaseInfoTableName): * storage/Database.h: * storage/Database.idl: * storage/DatabaseTask.cpp: * storage/DatabaseTask.h: * storage/DatabaseThread.cpp: * storage/DatabaseThread.h: * storage/DatabaseTracker.cpp: * storage/DatabaseTracker.h: * storage/DatabaseTrackerClient.h: * storage/OriginQuotaManager.cpp: * storage/OriginQuotaManager.h: * storage/SQLStatement.cpp: * storage/SQLStatement.h: * storage/SQLTransaction.cpp: * storage/SQLTransaction.h: * storage/SQLTransaction.idl: 2009-05-05 Jeremy Moskovich Reviewed by Eric Seidel. Add some documentation to InlineBox::x(),y(). https://bugs.webkit.org/show_bug.cgi?id=25378 * rendering/InlineBox.h: 2009-05-05 Laszlo Gombos Reviewed by Eric Seidel. Disable all the SVG features for WebKit/Qt if ENABLE_SVG=0 https://bugs.webkit.org/show_bug.cgi?id=24693 * WebCore.pro: 2009-05-05 Sankar Aditya Tanguturi Reviewed by Eric Seidel. Anonymous blocks should not be exposed in accessibility tree. Part of https://bugs.webkit.org/show_bug.cgi?id=23072 Tests: accessibility/ignore-anonymous-block.html platform/win/accessibility/document-role.html * page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):Return true for Anonymous blocks. Matching Firefox 2.0.0.14 2009-05-05 Jungshik Shin Reviewed by Alexey Proskuryakov. http://bugs.webkit.org/show_bug.cgi?id=25487 For euc-kr and other 8bit Korean encodings (similar to euc-kr/windows-949), make document.charset return EUC-KR instead of windows-949. The latter is not recognized by Korean web servers. Add domName method to TextEncoding to deal with cases where our internal encoding name does not match what's widely recognized by web servers. Currently, the only case is 'windows-949' (internal name) vs 'EUC-KR'. Test: fast/encoding/euckr-name.html * dom/Document.cpp: (WebCore::Document::encoding): Call TextEncoding.domName() instead of TextEncoding.name(). * platform/text/TextEncoding.cpp: (WebCore::TextEncoding::domName): For the canonical name 'windows-949', return 'EUC-KR'. Otherwise, just return the canonical name. * platform/text/TextEncoding.h: 2009-05-05 Adam Langley Reviewed by Darin Adler. Rendering fix for element from display:none to default display, we would fail to invalidate the parent's pref widths in some situations: When attaching the element, RenderMenuList::updateOptionsWidth would call setNeedsLayoutAndPrefWidthsRecalc before the parent pointer was set. This would mark the pref widths as dirty, but not for any parent objects. When RenderObjectChildList::appendChildNode later calls setNeedsLayoutAndPrefWidthsRecalc again, with a valid parent pointer, nothing would be done because the pref widths were already dirty for. the RenderMenuList. * rendering/RenderMenuList.cpp: (WebCore::RenderMenuList::updateOptionsWidth): 2009-05-05 Antony Sargent Reviewed by Dimitri Glazkov. Switch V8EventListenerList to use HashTable. https://bugs.webkit.org/show_bug.cgi?id=25496 This avoids some tricky issues with event listener removal in the current implementation and has slightly better performance. No new functionality so no new tests. * bindings/v8/V8EventListenerList.cpp: Added V8EventListenerListIterator. * bindings/v8/V8EventListenerList.h: (WebCore::V8EventListenerList::size): * bindings/v8/WorkerContextExecutionProxy.cpp: (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): 2009-05-05 Darin Fisher Fixing build bustage. Add some missing includes to fix the Chromium build. * bindings/v8/custom/V8DOMWindowCustom.cpp: * bindings/v8/custom/V8HTMLDocumentCustom.cpp: 2009-05-05 Darin Fisher Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=25570 history.{back,forward,go} should always be dispatched asynchronously, even when the history navigation would just result in scrolling the page. This matches the behavior of other browsers like IE and FF. Test: fast/history/back-forward-is-asynchronous.html * loader/FrameLoader.cpp: (WebCore::FrameLoader::scheduleHistoryNavigation): 2009-05-05 Eric Seidel Reviewed by Simon Fraser. Add an ASSERT(useTransforms) to mapLocalToContainer implementations in SVG. https://bugs.webkit.org/show_bug.cgi?id=25532 https://bugs.webkit.org/show_bug.cgi?id=25568 Adding this ASSERT exposed a bug in SVGPaintServerPattern::setup which was causing transformed SVG text when filled/stroked with a pattern using patternUnits=objectBoundingBox to draw incorrectly. I fixed the incorrect drawing (by removing the broken code) and added two test cases to test the fix: * svg/transforms/text-with-pattern-inside-transformed-html.xhtml * svg/transforms/text-with-pattern-with-svg-transform.svg * rendering/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::mapLocalToContainer): * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::mapLocalToContainer): * svg/graphics/SVGPaintServerPattern.cpp: (WebCore::SVGPaintServerPattern::setup): 2009-05-05 Greg Bolsinga Reviewed by Sam Weinig. https://bugs.webkit.org/show_bug.cgi?id=25554 Support HTML5 text control input types: email, number, tel, url Test: fast/html/text-field-input-types.html * bindings/objc/DOMHTML.mm: (-[DOMHTMLInputElement _isTextField]): Call HTMLInputElement::isTextField directly. * html/HTMLInputElement.cpp: Use the new types where appropriate. (WebCore::HTMLInputElement::setInputType): (WebCore::HTMLInputElement::type): (WebCore::HTMLInputElement::saveState): (WebCore::HTMLInputElement::restoreState): (WebCore::HTMLInputElement::accessKeyAction): (WebCore::HTMLInputElement::rendererIsNeeded): (WebCore::HTMLInputElement::createRenderer): (WebCore::HTMLInputElement::appendFormData): (WebCore::HTMLInputElement::valueWithDefault): (WebCore::HTMLInputElement::storesValueSeparateFromAttribute): (WebCore::HTMLInputElement::defaultEventHandler): * html/HTMLInputElement.h: Ditto. (WebCore::HTMLInputElement::): (WebCore::HTMLInputElement::isTextField): 2009-04-01 miggilin Reviewed by Kevin Ollivier. Mouse wheel scrolling and keyboard shortcut support for wx. https://bugs.webkit.org/show_bug.cgi?id=24797 * platform/ScrollView.cpp: (WebCore::ScrollView::wheelEvent): * platform/wx/KeyboardEventWx.cpp: (WebCore::windowsKeyCodeForKeyEvent): (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): * platform/wx/ScrollViewWx.cpp: (WebCore::ScrollView::platformSetScrollPosition): 2009-05-05 Kevin Ollivier wx build fix for Windows, add missing include. https://bugs.webkit.org/show_bug.cgi?id=24798 * platform/wx/wxcode/win/non-kerned-drawing.cpp: 2009-05-05 Chris Fleizach Reviewed by Beth Dakin. Bug 25574: AXImageMap children links don't respond properly to accessibilityHitTest: https://bugs.webkit.org/show_bug.cgi?id=25574 Enable accessibility hit-testing for image map links. Allow image map links to return AXURLs and AXAccessKey information. Test: platform/mac/accessibility/imagemap-hittest.html * page/AccessibilityImageMapLink.cpp: (WebCore::AccessibilityImageMapLink::url): * page/AccessibilityImageMapLink.h: * page/AccessibilityObject.h: (WebCore::AccessibilityObject::minValueForRange): * page/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap): (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest): (WebCore::AccessibilityRenderObject::doAccessibilityHitTest): * page/AccessibilityRenderObject.h: * page/mac/AccessibilityObjectWrapper.mm: (-[AccessibilityObjectWrapper accessibilityAttributeNames]): 2009-05-05 Kevin McCullough Reviewed by Dan Bernstein. Select a quote line and paste elsewhere, you get that line and an extra quoted blank line Triple-click a quoted header line, copy, paste onto an empty line makes an extra quoted line - When pasting a blockquote with a newline, make sure we put the newline outside of the blockquote so that it is not quoted. * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply): 2009-05-05 Jan Michael Alonzo Reviewed by Xan Lopez. Call moz_gtk_shutdown on RenderThemeGtk destruction. * platform/gtk/RenderThemeGtk.cpp: (WebCore::RenderThemeGtk::~RenderThemeGtk): * platform/gtk/RenderThemeGtk.h: 2009-05-05 Darin Adler Reviewed by Steve Falkenburg. REGRESSION: can't drag local HTML files into Safari because CFURLCreateWithFileSystemPath inserts "localhost" * platform/win/ClipboardUtilitiesWin.cpp: (WebCore::urlFromPath): Remove localhost. 2009-05-05 Peter Kasting Reviewed by Brady Eidson. Safety-check m_documentLoader before dereferencing. While it seems unlikely this could fail (as Safari 3 shipped without this), technically almost any call can change or reset m_documentLoader. * loader/FrameLoader.cpp: (WebCore::FrameLoader::receivedFirstData): 2009-05-05 Dan Bernstein - Tiger build fix * css/CSSComputedStyleDeclaration.cpp: (WebCore::toCSSIdentifier): 2009-05-05 Peter Kasting Reviewed by Eric Seidel. https://bugs.webkit.org/show_bug.cgi?id=25303 No need to ref the internal buffer inside the Skia ImageDecoder. * platform/image-decoders/skia/ImageDecoder.h: (WebCore::RGBA32Buffer::RGBA32Buffer): (WebCore::RGBA32Buffer::operator=): (WebCore::RGBA32Buffer::clear): (WebCore::RGBA32Buffer::copyBitmapData): (WebCore::RGBA32Buffer::bitmap): (WebCore::RGBA32Buffer::setSize): (WebCore::RGBA32Buffer::width): (WebCore::RGBA32Buffer::height): (WebCore::RGBA32Buffer::hasAlpha): (WebCore::RGBA32Buffer::setStatus): (WebCore::RGBA32Buffer::setHasAlpha): (WebCore::RGBA32Buffer::setRGBA): 2009-05-05 Dan Bernstein Reviewed by Darin Adler. - fix https://bugs.webkit.org/show_bug.cgi?id=24192 Replying to a Mail message that contains fixed width text can change the size of the text Covered by existing tests: editing/pasteboard/5027857.html editing/pasteboard/paste-pre-002.html * css/CSSComputedStyleDeclaration.cpp: (WebCore::CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeyword): Added. If the font-size is keyword-based, returns the keyword value instead of the pixel size. (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): If font-family is a generic family, return the generic family instead of the the internal string -webkit-[serif|sans-serif|cursive|fantasy |monospace]. (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties): For the font-size property, prefer a keyword value over a pixel size. * css/CSSComputedStyleDeclaration.h: * editing/ApplyStyleCommand.cpp: (WebCore::StyleChange::currentlyHasStyle): For the font-size property, call getFontSizeCSSValuePreferringKeyword(). * platform/graphics/FontDescription.h: (WebCore::FontDescription::keywordSize): Changed the return type to unsigned. (WebCore::FontDescription::setKeywordSize): Changed the parameter type to unsigned. (WebCore::FontDescription::m_keywordSize): Changed the type of this 4-bit field to unsigned, because it takes values as high as 8. 2009-05-05 Oliver Hunt Reviewed by Maciej Stachowiak. Fix http/tests/misc/DOMContentLoaded-event.html The native call performance improvement removed a few places where we unintentionally performed a toThisObject conversion. This patch updates the bindings codegen to not rely on this bug. * bindings/scripts/CodeGeneratorJS.pm: 2009-05-05 Holger Hans Peter Freyther Reviewed by Xan Lopez and Gustavo Noronha. Implement WebCore::directoryName for Gtk+. * platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): 2009-05-05 Eric Seidel Reviewed by Adam Roben. Fix mappedAttributes() access without NULL check https://bugs.webkit.org/show_bug.cgi?id=25553 SVGStyledElement::getPresentationAttribute was using mappedAttributes() without checking for NULL. HTMLInputElement::setInputType also doesn't NULL check, but I was not able to get it to crash with a test case so I just added an ASSERT. * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setInputType): * svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::getPresentationAttribute): 2009-05-05 Holger Hans Peter Freyther Reviewed by Xan Lopez. Implement WebCore::imageTitle for Gtk+. * platform/gtk/LocalizedStringsGtk.cpp: (WebCore::imageTitle): 2009-05-05 Oliver Hunt Reviewed by Gavin Barraclough. Bug 25559: Improve native function call performance Add forwarding header necessary for compilation, and fix debugger to correctly account for change in JSFunction behaviour. * ForwardingHeaders/jit/JITCode.h: Added. * inspector/JavaScriptDebugServer.cpp: (WebCore::JavaScriptDebugServer::recompileAllJSFunctions): 2009-05-05 Simon Hausmann Reviewed by Ariya Hidayat. Make convertValueToQVariant more robust against null JSValues. Don't require the caller to do the null check. * bridge/qt/qt_runtime.cpp: (JSC::Bindings::convertValueToQVariant): 2009-05-05 Eric Seidel No review, just a revert. Roll out http://trac.webkit.org/changeset/43213 as it caused 4 tests to crash. * rendering/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::mapLocalToContainer): * rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::mapLocalToContainer): 2009-05-04 Alexey Proskuryakov Reviewed by Dave Hyatt. REGRESSION (r35185): Cannot watch Flash movies on omg.yahoo.com The problem was caused by missing element - we used to create it when moving a misplaced