2010-05-07 Pavel Feldman Not reviewed: chromium dev tools tests fix. Add a more strict check prior to accessing constructor property in Web Inspector frontend. * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): 2010-05-07 Pavel Feldman Reviewed by Joseph Pecoraro. Web Inspector: On Linux/Windows panel history is traversed while iterating over words in text prompt. https://bugs.webkit.org/show_bug.cgi?id=38740 * inspector/front-end/TextPrompt.js: (WebInspector.TextPrompt): * inspector/front-end/inspector.js: (WebInspector.documentKeyDown): 2010-05-07 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: come up with InjectedScript._className that works for both JSC and V8. https://bugs.webkit.org/show_bug.cgi?id=38755 * inspector/front-end/InjectedScript.js: (injectedScriptConstructor): 2010-05-07 Joseph Pecoraro Reviewed by Adam Barth. document.write is not synchronous after page load https://bugs.webkit.org/show_bug.cgi?id=38146 If there are no pending scripts, a document.write call should be synchronous. This matches other browsers and the HTML5 spec. Forcing the tokenizer to be synchronous in Document::write does not affect external scripts written by the write call. This should only change behavior of document.write after the page is done loading. Difficult to test reliably due to HTMLTokenizing relying on processing time. I made a manual test because the test requires processing very large strings synchronously and therefore can take some time. Test: WebCore/manual-tests/dom/document-write-synchronous-after-page-load.html * dom/Document.cpp: (WebCore::SynchronousHTMLTokenizerGuard::SynchronousHTMLTokenizerGuard): if the provided tokenizer is an HTMLTokenizer make it synchronous (WebCore::SynchronousHTMLTokenizerGuard::~SynchronousHTMLTokenizerGuard): if the provided tokenizer was an HTMLTokenizer return its synchronous state (WebCore::Document::write): temporarily set the tokenizer to synchronous during document.write * dom/Tokenizer.h: (WebCore::Tokenizer::asHTMLTokenizer): default implementation returns 0, to be overridden by HTMLTokenizer * html/HTMLTokenizer.h: allow access to to the force synchronous state (WebCore::HTMLTokenizer::forceSynchronous): accessor (WebCore::HTMLTokenizer::asHTMLTokenizer): override the default to return itself * manual-tests/dom/document-write-synchronous-after-page-load.html: Added. 2010-05-07 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Fix rendering of -webkit-user-select: none -webkit-user-select: none is implemented by filling the area with an invalid default-constructed Color. In most ports passing an invalid color down to the graphics backend seems to produce transparent fills. In Qt the behavior of painting with an invalid QColor is undefined, and in practice it results in painting black opaque areas. One way to fix this would be to use Qt::transparent when converting an undefined Color to a QColor, but Qt does not have short circuits for fully transparent painting, and we actually end up in slow code paths due to the transparency. So, we're better of doing the short circuit in WebKit. https://bugs.webkit.org/show_bug.cgi?id=38523 * platform/graphics/qt/GraphicsContextQt.cpp: 2010-05-07 Ben Murdoch Reviewed by Darin Adler. Potential crash in EventHandler::handleTouchEvent https://bugs.webkit.org/show_bug.cgi?id=38646 Fix a ref counting bug that can cause a crash if the m_originatingouchPointTargets hashmap holds the last ref to an EventTarget when the user lifts their finger. This is very hard to reproduce in a consistent way and clearly a simple logic error in the code, therefore no new tests. * page/EventHandler.cpp: (WebCore::EventHandler::handleTouchEvent): Don't let the RefPtr we get back from the hasmap go out of scope so soon as it could delete the wrapped ptr if the hashmap held the last ref (and we use the raw ptr that the RefPtr wraps later in the WebCore::Touch constructor). 2010-05-07 Gustavo Noronha Silva Rubber-stamped by Kenneth Rohde Christiansen. [GTK] Fails to build on GTK+ < 2.14 https://bugs.webkit.org/show_bug.cgi?id=38746 Build fix only. Do basically the same as gtk_adjustment_configure would do if we are bellow GTK+ 2.14. * platform/gtk/ScrollViewGtk.cpp: (WebCore::AdjustmentConfigure): 2010-05-07 Gustavo Noronha Silva Rubber-stamped by Xan Lopez. Crash with MgOpenModerna font, with non-UTF-8 character https://bugs.webkit.org/show_bug.cgi?id=37795 NULL-check the font platform data, for now, to avoid the crash. Could not yet figure out a way to get a test written that does not involve adding the font to the tree, but there are doubts about licensing. * platform/graphics/cairo/FontCacheCairo.cpp: (WebCore::FontCache::getFontDataForCharacters): 2010-05-07 MORITA Hajime Reviewed by Eric Seidel. [Chromium] RenderThemeChromiumMac.mm should share the code with RenderThemeMac.mm https://bugs.webkit.org/show_bug.cgi?id=37204 Made RenderThemeChromiumMac subclass of RenderThemeMac, instead of RenderTheme. Added some method to RenderThemeMac for overriding on RenderThemeChromiumMac. No new tests; Should have no behavioural change. * WebCore.gyp/WebCore.gyp: * rendering/RenderThemeChromiumMac.h: * rendering/RenderThemeChromiumMac.mm: (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor): (WebCore::RenderThemeChromiumMac::documentViewFor): (WebCore::RenderThemeChromiumMac::adjustMediaSliderThumbSize): (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderTrack): (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderThumb): * rendering/RenderThemeMac.h: (WebCore::RenderThemeMac::updateActiveState): Added for overriding * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::usesTestModeFocusRingColor): Added for overriding (WebCore::RenderThemeMac::documentViewFor): Added for overriding (WebCore::RenderThemeMac::paintMenuList): (WebCore::RenderThemeMac::setPopupButtonCellState): (WebCore::RenderThemeMac::paintSliderThumb): (WebCore::RenderThemeMac::paintSearchField): (WebCore::RenderThemeMac::setSearchCellState): (WebCore::RenderThemeMac::paintSearchFieldCancelButton): (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration): (WebCore::RenderThemeMac::paintSearchFieldResultsButton): (WebCore::RenderThemeMac::adjustSliderThumbSize): (WebCore::RenderThemeMac::adjustMediaSliderThumbSize): Added for overriding (WebCore::RenderThemeMac::extraMediaControlsStyleSheet): 2010-05-06 Fumitoshi Ukai Reviewed by Alexey Proskuryakov. JavaScriptCore/wtf/RandomNumber.h should provide using WTF::* https://bugs.webkit.org/show_bug.cgi?id=38719 * platform/graphics/wince/FontCustomPlatformData.cpp: (WebCore::createUniqueFontName): Remove WTF:: prefix from randomNumber() * platform/network/FormDataBuilder.cpp: (WebCore::FormDataBuilder::generateUniqueBoundaryString): Ditto. 2010-04-27 Tony Chang Reviewed by Eric Seidel. [chromium] clicking a scrollbar in an iframe shouldn't lose the selection https://bugs.webkit.org/show_bug.cgi?id=38189 Test: fast/events/mousedown-in-subframe-scrollbar.html * page/chromium/EventHandlerChromium.cpp: (WebCore::EventHandler::passMousePressEventToSubframe): If clicking on a scrollbar, pass the event directly to the scrollbar. This matches mac which passes the event to the NSScroller. 2010-05-06 Simon Fraser Reviewed by Dan Bernstein. Compositing layers that are clipped out by an overflow:scroll parent fail to get created on reveal https://bugs.webkit.org/show_bug.cgi?id=38712 When compositing layer creation is testing layer overlap, we need to re-run the algorithm when an overflow:scroll element scrolls, to create new layers for revealed elements. Test: compositing/layer-creation/overflow-scroll-overlap.html * rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollToOffset): First, move the compositing updates until after the call to updateWidgetPositions(), so that this order is similar to what we done when a FrameView scrolls. This change has no known side effects. Second, if compositingConsultsOverlap() is true, we need to actually do a compositing layer update to compute whether revealed/hidden layers should be created/destroyed. 2010-05-06 Maciej Stachowiak Not reviewed, build fix. Try again - with quotes this time. *facepalm* * dom/Notation.cpp: 2010-05-06 Maciej Stachowiak Not reviewed, build fix. Speculative fix for Qt and Gtk. * dom/Notation.cpp: 2010-05-06 Maciej Stachowiak Not reviewed, build fix. Fix an assert that I failed to update in my earlier change. * dom/CharacterData.h: (WebCore::CharacterData::CharacterData): 2010-05-06 Alexey Proskuryakov Reviewed by Geoff Garen. https://bugs.webkit.org/show_bug.cgi?id=38697 REGRESSION (r58299): Replying on reddit.com no longer works * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Don't recognize :first, :left and :right. The aren't allowed in all contexts, and properly implementing them is out of scope for this regression fix. 2010-05-06 Jian Li Reviewed by Adam Barth. Improve code generator scripts to support converting ScriptString. https://bugs.webkit.org/show_bug.cgi?id=38699 Change both JSC and V8 generators to introduce "ConvertScriptString" attribute to allow converting from ScriptString. Also updated the bindings test result. These changes are necessary in order to avoid adding custom binding codes when we add the FileReader interface. * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_get_script_string_attr): (webkit_dom_test_obj_get_property): (webkit_dom_test_obj_class_init): * bindings/scripts/test/GObject/WebKitDOMTestObj.h: * bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::): (WebCore::jsTestObjScriptStringAttr): * bindings/scripts/test/JS/JSTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.h: * bindings/scripts/test/ObjC/DOMTestObj.mm: (-[DOMTestObj scriptStringAttr]): * bindings/scripts/test/TestObj.idl: * bindings/scripts/test/V8/V8TestObj.cpp: (WebCore::TestObjInternal::scriptStringAttrAttrGetter): (WebCore::): 2010-05-06 Jian Li Reviewed by Adam Barth. Improve code generator scripts to pass additional ScriptExecutionContext argument to the constructor. https://bugs.webkit.org/show_bug.cgi?id=38687 Change both JSC and V8 generators to introduce "CallWith=ScriptExecutionContext" attribute to allow passing the additional ScriptExecutionContext argument to the constructor. Also add another test IDL file to test interface-level features. These changes are necessary in order to avoid adding custom binding codes when we add the FileReader interface. * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Added. * bindings/scripts/test/GObject/WebKitDOMTestInterface.h: Added. * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h: Added. * bindings/scripts/test/JS/JSTestInterface.cpp: Added. * bindings/scripts/test/JS/JSTestInterface.h: Added. * bindings/scripts/test/ObjC/DOMTestInterface.h: Added. * bindings/scripts/test/ObjC/DOMTestInterface.mm: Added. * bindings/scripts/test/ObjC/DOMTestInterfaceInternal.h: Added. * bindings/scripts/test/TestInterface.idl: Added. * bindings/scripts/test/V8/V8TestInterface.cpp: Added. * bindings/scripts/test/V8/V8TestInterface.h: Added. * bindings/v8/V8Proxy.h: (WebCore::V8Proxy::constructDOMObjectWithScriptExecutionContext): 2010-05-06 Maciej Stachowiak Build fix, not reviewed. Speculative Windows and Debug build fixes for the last change. * dom/Node.h: (WebCore::Node::inDocument): (WebCore::Node::setFlag): 2010-05-06 James Robinson Reviewed by Eric Seidel. Fix warnings emitted by gcc 4.4.1 on linux in chromium-specific platform graphics files. https://bugs.webkit.org/show_bug.cgi?id=38158 Fixes: - replace NULL with 0 - remove unusued locals - add parens around ambiguous looking compound predicates like (a || b && c) This also adds a check for x >= 0 to FontLinux.cpp's in this statement: if (x < walker.width()) This is more documentation than anything else since walker.width() returns an unsigned the current behavior is that x is promoted to unsigned and as long as x + walker.width() is less than 2^31 all negative values of x end up wrapping around and not being < walker.width(). This behavior is tested by fast/text/international/khmer-selection.html * platform/graphics/chromium/FontLinux.cpp: (WebCore::adjustTextRenderMode): (WebCore::TextRunWalker::TextRunWalker): (WebCore::TextRunWalker::length): (WebCore::TextRunWalker::width): (WebCore::TextRunWalker::getTextRun): (WebCore::TextRunWalker::getNormalizedTextRun): (WebCore::Font::offsetForPositionForComplexText): * platform/graphics/chromium/FontPlatformDataLinux.cpp: (WebCore::FontPlatformData::setupPaint): * platform/graphics/chromium/HarfbuzzSkia.cpp: (WebCore::getOutlinePoint): * platform/graphics/skia/GraphicsContext3DSkia.cpp: (WebCore::GraphicsContext3D::getImageData): * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::isCoordinateSkiaSafe): (WebCore::GraphicsContext::fillRect): (WebCore::GraphicsContext::strokePath): (WebCore::GraphicsContext::strokeRect): 2010-05-06 Ada Chan Reviewed by David Kilzer. https://bugs.webkit.org/show_bug.cgi?id=38695 Check the result from widget() for NULL before accessing it. * rendering/RenderIFrame.cpp: (WebCore::RenderIFrame::calcHeight): (WebCore::RenderIFrame::calcWidth): 2010-05-06 Maciej Stachowiak Reviewed by Darin Adler. further fixes towards REGRESSION (r57292): 1% PLT regression from visited link information leak fix https://bugs.webkit.org/show_bug.cgi?id=38682 Looks like a 1-2% speedup on PLT. - Reorder CSS properties. - Remove short circuit tag check in matchRulesForList which costs more than it saves. - Inline initForStyleResolve. - Optimize applyDeclarations to avoid switch and take fewer branches in the inner loop. - Change the way Node handles flags - replace bitfield with a uint32_t and explicit masking, to make it cheaper to initialize the bits and give faster access. - Added new Node flags to check for isStyledElement, isHTMLElement, isSVGElement, isComment, and devirtualize those methods. - Inline constructors for Node, Element, Text, CharacterData, StyledElement, etc since they are very simple and lots of nodes get constructed. * css/CSSPropertyNames.in: Move a few of the properties up front so we can check for them with < instead of switch statements * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::matchRulesForList): Remove unnecessary preflight check for tag match before checking selector. This check very rarely short circuits anything, since most rules with a tag end up in the appropriate tag bucket. So doing the check cost more time than the time saved. (WebCore::CSSStyleSelector::initForStyleResolve): Inline. Create RenderStyle in a better way. (WebCore::CSSStyleSelector::applyDeclarations): Get rid of switch statement and use <= to check for the high priority properties. Convert to template to avoid checking "applyFirst" each time through the loop. (WebCore::CSSStyleSelector::styleForElement): Adjust for new applyDeclarations() signature. (WebCore::CSSStyleSelector::keyframeStylesForAnimation): ditto (WebCore::CSSStyleSelector::pseudoStyleForElement): ditto * css/CSSStyleSelector.h: Adjust for new applyDeclarations() signature. * rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::RenderStyle): Inline constructor. * rendering/style/RenderStyle.h: Make constructor private so it can be inline. * dom/Node.h: (WebCore::): See high-level description of changes above. Redid the way boolean flags work. (WebCore::Node::isElementNode): (WebCore::Node::isContainerNode): (WebCore::Node::isTextNode): (WebCore::Node::isHTMLElement): (WebCore::Node::isSVGElement): (WebCore::Node::isStyledElement): (WebCore::Node::isCommentNode): (WebCore::Node::hasID): (WebCore::Node::hasClass): (WebCore::Node::active): (WebCore::Node::inActiveChain): (WebCore::Node::inDetach): (WebCore::Node::hovered): (WebCore::Node::attached): (WebCore::Node::setAttached): (WebCore::Node::needsStyleRecalc): (WebCore::Node::styleChangeType): (WebCore::Node::childNeedsStyleRecalc): (WebCore::Node::isLink): (WebCore::Node::setHasID): (WebCore::Node::setHasClass): (WebCore::Node::setChildNeedsStyleRecalc): (WebCore::Node::clearChildNeedsStyleRecalc): (WebCore::Node::setInDocument): (WebCore::Node::clearInDocument): (WebCore::Node::setInActiveChain): (WebCore::Node::clearInActiveChain): (WebCore::Node::setIsLink): (WebCore::Node::clearIsLink): (WebCore::Node::setActive): (WebCore::Node::setHovered): (WebCore::Node::inDocument): (WebCore::Node::): (WebCore::Node::getFlag): (WebCore::Node::setFlag): (WebCore::Node::clearFlag): (WebCore::Node::hasRareData): (WebCore::Node::isParsingChildrenFinished): (WebCore::Node::setIsParsingChildrenFinished): (WebCore::Node::clearIsParsingChildrenFinished): (WebCore::Node::isStyleAttributeValid): (WebCore::Node::setIsStyleAttributeValid): (WebCore::Node::clearIsStyleAttributeValid): (WebCore::Node::isSynchronizingStyleAttribute): (WebCore::Node::setIsSynchronizingStyleAttribute): (WebCore::Node::clearIsSynchronizingStyleAttribute): (WebCore::Node::areSVGAttributesValid): (WebCore::Node::setAreSVGAttributesValid): (WebCore::Node::clearAreSVGAttributesValid): (WebCore::Node::isSynchronizingSVGAttributes): (WebCore::Node::setIsSynchronizingSVGAttributes): (WebCore::Node::clearIsSynchronizingSVGAttributes): (WebCore::Node::hasRareSVGData): (WebCore::Node::setHasRareSVGData): (WebCore::Node::clearHasRareSVGData): (WebCore::Node::initialRefCount): * dom/Node.cpp: (WebCore::Node::trackForDebugging): Adjusted for changes in flag handling. (WebCore::Node::ensureRareData): ditto (WebCore::Node::setStyleChange): ditto (WebCore::Node::setNeedsStyleRecalc): ditto (WebCore::Node::lazyAttach): ditto (WebCore::Node::attach): ditto (WebCore::Node::detach): ditto (WebCore::Node::insertedIntoDocument): ditto (WebCore::Node::removedFromDocument): ditto * dom/CharacterData.cpp: * dom/CharacterData.h: (WebCore::CharacterData::CharacterData): Inline the constructor (moved from .cpp) * dom/Comment.cpp: (WebCore::Comment::Comment): Tell the base class that we're a comment. * dom/Comment.h: Remove isCommentNode override. * dom/ContainerNode.cpp: (WebCore::ContainerNode::detach): Adjusted for changes in flag handling. (WebCore::ContainerNode::removedFromDocument): ditto * dom/Document.cpp: (WebCore::Document::Document): Adjusted for changes in flag handling. (WebCore::Document::recalcStyle): ditto (WebCore::Document::setFocusedNode): ditto * dom/Document.h: (WebCore::Node::Node): Inline the Node constructor - goes here because it uses Document. * dom/DocumentFragment.cpp: include Document.h due to above change * dom/EditingText.cpp: ditto * dom/EntityReference.cpp: ditto * dom/Element.cpp: (WebCore::Element::getAttribute): Adjusted for changes in flag handling. (WebCore::Element::setAttribute): ditto (WebCore::Element::hasAttributes): ditto (WebCore::Element::recalcStyle): ditto (WebCore::Element::finishParsingChildren): ditto * dom/Element.h: (WebCore::Element::Element): Inline (moved from .cpp) (WebCore::Element::isFinishedParsingChildren): (WebCore::Element::beginParsingChildren): (WebCore::Element::attributes): Adjusted for changes in flag handling. * dom/StyledElement.cpp: (WebCore::StyledElement::updateStyleAttribute): Adjust for changes to flag handling. (WebCore::StyledElement::mapToEntry): ditto (WebCore::StyledElement::parseMappedAttribute): ditto (WebCore::StyledElement::copyNonAttributeProperties): ditto * dom/StyledElement.h: (WebCore::StyledElement::StyledElement): Inline (moved from.cpp) (WebCore::StyledElement::invalidateStyleAttribute): Adjust for changes in flag handling. * dom/Text.h: (WebCore::Text::Text): Inline (moved from .cpp) * dom/Text.cpp: * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::HTMLAnchorElement): Adjust for changes in flag handling. (WebCore::HTMLAnchorElement::parseMappedAttribute): ditto * html/HTMLElement.cpp: (WebCore::HTMLElement::create): Tell base class we're an HTML element. * html/HTMLElement.h: ditto above; remove isHTMLElement override. * html/HTMLFormControlElement.h: Tell base class we're an HTML element. * html/HTMLFrameOwnerElement.cpp: (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement): ditto * html/HTMLProgressElement.cpp: (WebCore::HTMLProgressElement::HTMLProgressElement): ditto * mathml/MathMLElement.cpp: (WebCore::MathMLElement::MathMLElement): Tell base class we're a styled element. * rendering/MediaControlElements.cpp: (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): Adjust for changes in flag handling. (WebCore::MediaControlElement::MediaControlElement): ditto (WebCore::MediaControlInputElement::MediaControlInputElement): ditto * rendering/RenderFileUploadControl.cpp: (WebCore::RenderFileUploadControl::updateFromElement): ditto * rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateHoverActiveState): ditto * rendering/RenderProgress.cpp: (WebCore::RenderProgress::updateValuePartState): ditto * rendering/RenderSlider.cpp: (WebCore::RenderSlider::updateFromElement): ditto * rendering/SVGShadowTreeElements.cpp: (WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement): ditto * rendering/TextControlInnerElements.cpp: (WebCore::TextControlInnerElement::attachInnerElement): ditto * svg/SVGAnimatedProperty.h: (WebCore::SVGAnimatedPropertyTearOff::setBaseVal): ditto (WebCore::SVGAnimatedPropertyTearOff::setAnimVal): ditto * svg/SVGElement.cpp: (WebCore::SVGElement::SVGElement): Tell base class we're an svg element. (WebCore::SVGElement::ensureRareSVGData): Adjust for flag handling changes. (WebCore::SVGElement::updateAnimatedSVGAttribute): ditto * svg/SVGElement.h: (WebCore::SVGElement::invalidateSVGAttributes): ditto * svg/SVGPolyElement.cpp: (WebCore::SVGPolyElement::svgAttributeChanged): ditto * wml/WMLAnchorElement.cpp: (WebCore::WMLAnchorElement::WMLAnchorElement): ditto * wml/WMLElement.cpp: (WebCore::WMLElement::WMLElement): Tell base class we're a styled element. 2010-05-06 Adam Barth Unreviewed. Fix indent. Sorry, my OCD was acting up. * page/EventHandler.cpp: (WebCore::EventHandler::handleMouseReleaseEvent): 2010-05-06 Pavel Feldman Reviewed by Joseph Pecoraro. Web Inspector: store selected Headers / Content tab on explicit switch and/or explicit navigate only. https://bugs.webkit.org/show_bug.cgi?id=38660 * inspector/front-end/ResourceView.js: (WebInspector.ResourceView): (WebInspector.ResourceView.prototype._selectHeadersTab): (WebInspector.ResourceView.prototype.selectContentTab): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype.showResource): 2010-05-06 Luiz Agostini Rubber-stamped by Simon Hausmann. [Qt] use QT_MOBILE_THEME in Symbian https://bugs.webkit.org/show_bug.cgi?id=38440 Putting QT_MOBILE_THEME into use for Symbian. * WebCore.pro: 2010-05-06 Laszlo Gombos Unreviewed, build fix WinCE for QtWebKit. [Qt] Compilation with Plugins disabled is broken https://bugs.webkit.org/show_bug.cgi?id=31407 Rename platform/qt/TemporaryLinkStubs.cpp to avoid name collition on Windows. Thanks for Ismail "cartman" Donmez for help. No new tests, as there is no new functionality. * WebCore.gypi: * WebCore.pro: * platform/qt/TemporaryLinkStubs.cpp: Removed. * platform/qt/TemporaryLinkStubsQt.cpp: Copied from WebCore/platform/qt/TemporaryLinkStubs.cpp. 2010-05-06 Simon Hausmann Reviewed by Kenneth Rohde Christiansen. [Qt] REGRESSION: Loading of external CSS and JS files over network fails in some cases https://bugs.webkit.org/show_bug.cgi?id=36755 Enable the direct connection between QtNetwork and QtWebKit only for Qt versions greater than 4.6.2, due to a bug in Qt that's been fixed after 4.6.2. * platform/network/qt/QNetworkReplyHandler.cpp: 2010-05-06 Gustavo Noronha Silva Reviewed by Xan Lopez. Rework where we get page step and line step from, so we do not depend on scrollbars existing. Caught by API test I forgot to run. * platform/gtk/ScrollViewGtk.cpp: (WebCore::ScrollView::setGtkAdjustments): 2010-05-06 Gustavo Noronha Silva Reviewed by Xan Lopez. [GTK] Adjustment resetting uses wrong values, and misses page_size and steps https://bugs.webkit.org/show_bug.cgi?id=38657 Fix resetting adjustment values. In the page cache case, we were confusing page_size and upper, leading to stray scrollbars sometimes. * platform/gtk/ScrollViewGtk.cpp: (WebCore::ScrollView::setGtkAdjustments): 2010-05-06 Darin Adler Reviewed by Beth Dakin. Page::setCanStartMedia does not properly handle the case where a media listener is removed https://bugs.webkit.org/show_bug.cgi?id=38602 We can't find any real case where this causes a crash at this time, but we want to harden the code anyway. Thus there are no new regression tests. * page/Page.cpp: (WebCore::Page::removeMediaCanStartListener): Removed incorrect assertion. (WebCore::Page::setCanStartMedia): Change algorithm so we notify listeners one at a time and don't notify any listener that has already been removed from the set. 2010-05-05 Ojan Vafai Reviewed by Darin Adler. shift+click on an existing selection doesn't work right https://bugs.webkit.org/show_bug.cgi?id=36542 NSTextView behavior is to move the end of the selection closest to the shift-click. Win/Linux behavior is to always move the focus end of the selection. Test: editing/selection/shift-click.html * page/EventHandler.cpp: (WebCore::textDistance): (WebCore::EventHandler::handleMousePressEventSingleClick): 2010-05-06 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: implement panels history traversal on Cmd+Left/Right. https://bugs.webkit.org/show_bug.cgi?id=38649 * inspector/front-end/inspector.js: (WebInspector.set currentPanel): (WebInspector.loaded): (WebInspector.documentKeyDown): (WebInspector.PanelHistory): (WebInspector.PanelHistory.prototype.canGoBack): (WebInspector.PanelHistory.prototype.goBack): (WebInspector.PanelHistory.prototype.canGoForward): (WebInspector.PanelHistory.prototype.goForward): (WebInspector.PanelHistory.prototype.setPanel): 2010-05-03 Evan Martin Reviewed by Eric Seidel. [chromium] use glyphDataForCharacter so we hit the glyphdata cache https://bugs.webkit.org/show_bug.cgi?id=38500 Calling fontDataForCharacters() while rendering text is expensive. Examining the relevant Mac code in WebKit revealed that calling the similarly-named glyphDataForCharacters() results in caching the font data on a per-glyph basis. Since we now choose a font based on the first character in a run, we need to be careful that all the glyphs within the run use the same font. This is also similar to the WebKit Mac code. We need to remove all of the script run bits eventually and this is a step in that direction. Tests: fast/text/international/danda-space.html spacing changes slightly (now matches Firefox better) and fast/text/international/thai-baht-space.html now picks the correct (serif) font for the digits. * platform/graphics/chromium/FontLinux.cpp: (WebCore::TextRunWalker::nextScriptRun): (WebCore::TextRunWalker::setupFontForScriptRun): 2010-05-06 Martin Robinson Reviewed by Gustavo Noronha Silva. [GTK] Enable DOM clipboard and drag-and-drop access https://bugs.webkit.org/show_bug.cgi?id=30623 Convert dragging portion of drag-and-drop to use DataObjectGtk. No new tests, because functionality has not changed. * page/gtk/EventHandlerGtk.cpp: (WebCore::EventHandler::createDraggingClipboard): Pass the DataObjectGtk as a parameter here. * platform/gtk/ClipboardGtk.h: (WebCore::ClipboardGtk::create): Take the DataObject as a parameter instead of creating it here. (WebCore::ClipboardGtk::helper): Added. (WebCore::ClipboardGtk::dataObject): Added. * platform/gtk/PasteboardHelper.h: Make targetListForDataObject a public method. 2010-05-06 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: Do not show content tab for resources not supporting content preview. https://bugs.webkit.org/show_bug.cgi?id=38635 * English.lproj/localizedStrings.js: * inspector/front-end/FontView.js: (WebInspector.FontView.prototype.hasContentTab): * inspector/front-end/ImageView.js: (WebInspector.ImageView.prototype.hasContentTab): * inspector/front-end/ResourceView.js: (WebInspector.ResourceView): (WebInspector.ResourceView.prototype._selectTab): (WebInspector.ResourceView.prototype.hasContentTab): * inspector/front-end/SourceView.js: (WebInspector.SourceView.prototype.hasContentTab): 2010-05-06 Antonio Gomes Reviewed by Kenneth Christiansen. Spatial Navigation: adapt the logic of {deep}findFocusableNodeInDirection to do traversal starting from Node* not Document* https://bugs.webkit.org/show_bug.cgi?id=37803 Instead of receiving a Document pointer as incoming parameter, patch modifies findFocusableNodeInDirection and deepFindFocusableNodeInDirection methods to receive a Node pointer as start for content traversal. This way we can make good use of deepFindFocusableNodeInDirection to traverse other scrollable container like scrollable div's, and not only frames or iframes. Patch also makes use of 'while' instead of 'for' to loop control, that gives move flexibility to the incremental step: e.g. if a scrollable div was processed, the incremental step in the loop does not have to do node->traverseNextNode() but node->traverseNextSibling(). No behavior change. It is a preparation for supporting scrollable containers in Spatial Navigation. * page/FocusController.cpp: (WebCore::FocusController::advanceFocusDirectionally): (WebCore::FocusController::findFocusableNodeInDirection): (WebCore::FocusController::deepFindFocusableNodeInDirection): * page/FocusController.h: 2010-05-06 Csaba Osztrogonác Unreviewed WinCE buildfix after r58842. Preprocessor doesn't understand "true", changed to "1" * platform/graphics/MediaPlayer.cpp: 2010-05-06 Mikhail Naganov Reviewed by Pavel Feldman. Temporarily disable 'console.profiles' until we can distinguish functions from different frames https://bugs.webkit.org/show_bug.cgi?id=38638 * bindings/v8/custom/V8ConsoleCustom.cpp: (WebCore::V8Console::profilesAccessorGetter): 2010-05-06 Steve Block Reviewed by Eric Seidel. MAC_JAVA_BRIDGE should be renamed JAVA_BRIDGE https://bugs.webkit.org/show_bug.cgi?id=38544 No new tests, build fix only. * DerivedSources.make: * bindings/js/ScriptController.cpp: (WebCore::ScriptController::ScriptController): * bindings/js/ScriptController.h: * bindings/js/ScriptControllerMac.mm: (WebCore::ScriptController::createScriptInstanceForWidget): * bridge/jni/JNIBridge.cpp: * bridge/jni/JNIBridge.h: * bridge/jni/JNIUtility.cpp: * bridge/jni/JNIUtility.h: * bridge/jni/jni_jsobject.h: * bridge/jni/jni_jsobject.mm: * bridge/jni/jni_objc.mm: * bridge/jni/jsc/JNIBridgeJSC.cpp: * bridge/jni/jsc/JNIBridgeJSC.h: * bridge/jni/jsc/JNIUtilityPrivate.cpp: * bridge/jni/jsc/JNIUtilityPrivate.h: * bridge/jni/jsc/JavaClassJSC.cpp: * bridge/jni/jsc/JavaClassJSC.h: * bridge/jni/jsc/JavaInstanceJSC.cpp: * bridge/jni/jsc/JavaInstanceJSC.h: * loader/FrameLoaderClient.h: 2010-05-05 Alejandro G. Castro Reviewed by Xan Lopez. Fixed the gobject introspection compilation with the new DOM bindings, we needed to add DOM objects. * GNUmakefile.am: 2010-05-06 Adam Barth Reviewed by Eric Seidel. drop support for sessionStorage in sandbox iframes https://bugs.webkit.org/show_bug.cgi?id=38151 This patch causes us to throw a security exception when a sandboxed iframe attempts to access sessionStorage, matching our behavior for localStorage. The letter of the spec asks us to create a separate storage area for each unique origin. We might want to do that in a future patch, but throwing a security error seems like a safe move now. * page/DOMWindow.cpp: (WebCore::DOMWindow::sessionStorage): (WebCore::DOMWindow::localStorage): * page/DOMWindow.h: * page/DOMWindow.idl: * page/SecurityOrigin.h: (WebCore::SecurityOrigin::canAccessSessionStorage): * storage/StorageEventDispatcher.cpp: (WebCore::StorageEventDispatcher::dispatch): 2010-05-06 Andy Estes Reviewed by Maciej Stachowiak. Allow forms submitting to target="_blank" to open popups if the submission originated from a user gesture. https://bugs.webkit.org/show_bug.cgi?id=37335 Test: fast/events/popup-allowed-from-gesture-initiated-form-submit.html * bindings/js/ScriptController.cpp: (WebCore::ScriptController::processingUserGesture): If no DOM event is being processed, consult UserGestureIndicator to determine return value. * bindings/js/ScriptController.h: Moved the logic of processingUserGestureEvent() into processingUserGesture(). 2010-05-06 Xan Lopez Rubber-stamped by Eric Seidel. [GTK] Refactor GenerateProperties in CodeGenerationGObject.pm https://bugs.webkit.org/show_bug.cgi?id=38577 Thinko caught while refactoring, $custom variable was not initialized. * bindings/scripts/CodeGeneratorGObject.pm: * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: (webkit_dom_test_obj_set_property): (webkit_dom_test_obj_get_property): (webkit_dom_test_obj_class_init): 2010-05-06 Xan Lopez Rubber-stamped by Eric Seidel. [GTK] Refactor GenerateProperties in CodeGenerationGObject.pm https://bugs.webkit.org/show_bug.cgi?id=38577 Refactor GenerateProperty out of GenerateProperties. This is in preparation for EventListeren attributes, which won't generate normal GObject properties. * bindings/scripts/CodeGeneratorGObject.pm: 2010-05-06 Pavel Feldman Reviewed by Joseph Pecoraro. Web Inspector: follow up to linkify event listeners. https://bugs.webkit.org/show_bug.cgi?id=38257 * bindings/js/ScriptEventListener.cpp: (WebCore::eventListenerHandlerLocation): * bindings/v8/ScriptEventListener.cpp: (WebCore::eventListenerHandlerLocation): * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.linkifyNodeReference): * inspector/front-end/EventListenersSidebarPane.js: 2010-05-05 Charles Wei Reviewed by George Staikos https://bugs.webkit.org/show_bug.cgi?id=37848 This patch adds WCSS -wap-input-format and -wap-input-required support to WebKit Tests: fast/wcss/wap-input-format.xhtml fast/wcss/wap-input-required.xhtml * css/CSSParser.cpp: (WebCore::CSSParser::parseValue): (WebCore::CSSParser::parseWCSSInputProperty): * css/CSSParser.h: * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): * css/WCSSPropertyNames.in: * dom/InputElement.cpp: (WebCore::InputElement::sanitizeValue): (WebCore::InputElement::handleBeforeTextInsertedEvent): (WebCore::InputElementData::InputElementData): (WebCore::formatCodes): (WebCore::cursorPositionToMaskIndex): (WebCore::InputElement::isConformToInputMask): (WebCore::InputElement::validateInputMask): * dom/InputElement.h: (WebCore::InputElementData::inputFormatMask): (WebCore::InputElementData::setInputFormatMask): (WebCore::InputElementData::maxInputCharsAllowed): (WebCore::InputElementData::setMaxInputCharsAllowed): * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::setWapInputFormat): * html/HTMLInputElement.h: (WebCore::HTMLInputElement::data): * wml/WMLInputElement.h: (WebCore::WMLInputElement::data): 2010-05-05 MORITA Hajime Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=38150 Refactoring: webkitEditableContentChangedEvent should be handled by the owner of appropriate the renderer. Moved a part of code chunk in HTMLFormControlElementWithState::defaultEventHandler() which accesses the renderer from foreign node, to TextControlInnerTextElement::defaultEventHandler() which owns the renderer. No new tests. No behavioral change. * html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElementWithState::defaultEventHandler): * html/HTMLFormControlElement.h: * html/HTMLInputElement.h: * html/HTMLTextAreaElement.h: * rendering/TextControlInnerElements.cpp: (WebCore::TextControlInnerTextElement::defaultEventHandler): 2010-05-05 Joseph Pecoraro Reviewed by Timothy Hatcher. Web Inspector: Line Numbers should be Aligned with the Source Code Line https://bugs.webkit.org/show_bug.cgi?id=38593 If there is a message bubble, such as an error message, in a source view the line number should be in line with the source code line, not centered between the source and bubble. * inspector/front-end/textViewer.css: (.webkit-line-number): added vertical-align: top 2010-05-05 Dan Bernstein Fix the decelerated compositing build. * page/FrameView.cpp: (WebCore::FrameView::isEnclosedInCompositingLayer): * page/FrameView.h: 2010-05-05 Gavin Barraclough Reviewed by Darin Adler. Bug 38604 - workers-gc2 crashing on Qt This appears to be due to a couple of issues. (1) When the atomic string table is deleted it does not clear the 'inTable' bit on AtomicStrings - it implicitly assumes that all AtomicStrings have already been deleted at this point (otherwise they will crash in their destructor when they try to remove themselves from the atomic string table). (2) We don't fix the ordering in which WTF::WTFThreadData and WebCore::ThreadGlobalData are destructed. We should make sure that ThreadGlobalData is cleaned up before worker threads terminate and WTF::WTFThreadData is destroyed, and we should clear the inTable bit of members on atomic string table destruction. WTF changes (fix issue 2, above) - clean up the thread data on worker termination. * platform/ThreadGlobalData.cpp: (WebCore::ThreadGlobalData::~ThreadGlobalData): (WebCore::ThreadGlobalData::destroy): * platform/ThreadGlobalData.h: * workers/WorkerThread.cpp: (WebCore::WorkerThread::workerThread): 2010-05-05 Dan Bernstein Reviewed by Simon Fraser. Iframes in composited layers don’t repaint correctly (affects Yahoo! Mail with Flash Player 10.1) https://bugs.webkit.org/show_bug.cgi?id=38427 Test: compositing/iframes/iframe-in-composited-layer.html * WebCore.base.exp: Export FrameView::isEnclosedInCompositingLayer(). * page/FrameView.cpp: (WebCore::FrameView::isEnclosedInCompositingLayer): Added this predicate. * page/FrameView.h: 2010-05-05 Chris Marrin Reviewed by Simon Fraser. Got composited iframes showing up on Mac again https://bugs.webkit.org/show_bug.cgi?id=38565 This was broken by http://trac.webkit.org/changeset/58798. That change connected iframes through the parent document to the root of the layer tree. That is correct for Windows, but not for Mac. So the places where the linkage is made were wrapped in shouldPropagateCompositingToIFrameParent() calls, which is always false for Mac. Test: compositing/iframes/composited-iframe-alignment.html * rendering/RenderLayerCompositor.cpp:Avoid doing composited iframe linkage on Mac (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): (WebCore::RenderLayerCompositor::didMoveOnscreen): (WebCore::RenderLayerCompositor::willMoveOffscreen): (WebCore::RenderLayerCompositor::ensureRootPlatformLayer): 2010-05-05 Alexey Proskuryakov Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=38260 Fix whitespace removing in deprecatedParseURL(). Broken all the way since r4 (yes, that's a revision number). Test: http/tests/security/xss-DENIED-javascript-with-spaces.html * css/CSSHelper.cpp: (WebCore::deprecatedParseURL): Fixed loop conditions for remaining length. 2010-05-05 Chris Fleizach Reviewed by Beth Dakin. Many AXUnknown showing up in the hierarchy https://bugs.webkit.org/show_bug.cgi?id=38607 The RenderTableSection should not be an accessible element. Test: platform/mac/accessibility/parent-of-table-row-is-table.html * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::determineAccessibilityRole): 2010-05-05 Csaba Osztrogonác Reviewed by Simon Hausmann. [Qt]Disable Qt Multimedia backend for HTML 5 Audio and Video elements Fall back to the Phonon backend until the release situation has been cleared up. https://bugs.webkit.org/show_bug.cgi?id=38612 Buildfix for QT_VERSION >= 0x040700 after r58810. * platform/graphics/MediaPlayer.cpp: 2010-05-05 Jian Li Reviewed by David Levin. XMLHttpRequestUpload events do not fire when sending a raw file or FormData object. https://bugs.webkit.org/show_bug.cgi?id=37771 Test: http/tests/local/formdata/upload-events.html * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::createRequest): 2010-05-05 Csaba Osztrogonác Reviewed by Simon Hausmann. [Qt] Qt port should use its own QUuid class to create UUID string. https://bugs.webkit.org/show_bug.cgi?id=38581 * platform/UUID.cpp: (WebCore::createCanonicalUUIDString): Added PLATFORM(QT) case. 2010-05-05 Alexey Proskuryakov Roll out r58830 for breaking tests. Was: https://bugs.webkit.org/show_bug.cgi?id=38546 Node.focus() fails to move focus from subframe properly * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::setFocus): 2010-05-05 Jian Li Reviewed by Adam Barth. Implement FileReader class. https://bugs.webkit.org/show_bug.cgi?id=38157 This patch only contains the implementation of FileReader class as defined in the File API spec: http://www.w3.org/TR/file-upload/#dfn-filereader. New test will be added when a IDL is exposed and the FILE_READER is turned on. * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * dom/EventNames.h: * dom/EventTarget.cpp: (WebCore::EventTarget::toFileReader): * dom/EventTarget.h: * html/FileError.h: (WebCore::FileError::FileError): * html/FileReader.cpp: Added. * html/FileReader.h: Added. * html/FileStream.cpp: (WebCore::FileStream::FileStream): (WebCore::FileStream::openForRead): (WebCore::FileStream::close): (WebCore::FileStream::read): * html/FileStream.h: 2010-05-05 Steve Falkenburg Reviewed by Maciej Stachowiak. REGRESSION(r57969) Image decoder is repeatedly destroyed/created in CoreGraphics-based Windows WebKit https://bugs.webkit.org/show_bug.cgi?id=38595 * platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::setData): 2010-05-05 Alexey Proskuryakov Reviewed by Adele Peterson. https://bugs.webkit.org/show_bug.cgi?id=38546 Node.focus() fails to move focus from subframe properly Test: fast/frames/take-focus-from-iframe.html * html/HTMLFrameElementBase.cpp: (WebCore::HTMLFrameElementBase::setFocus): Don't clear focus if this frame doesn't have it. This can happen if page's and HTMLFrameElement's ideas of focused frame get out of sync temporarily. 2010-05-05 Alexey Proskuryakov Reviewed by Adele Peterson. https://bugs.webkit.org/show_bug.cgi?id=26824 EventHandler can operate on a wrong frame if focus changes during keyboard event dispatch. EventHandler object is tied to a frame, so it's wrong for it to continue processing a keyboard event if focused frame changes between keydown and keypress. * manual-tests/focus-change-between-key-events.html: Added. * page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Bail out early if focused frame changes while dispatching keydown. Also made similar changes for Windows to maintain matching behavior, even though EventHandler was re-entered anyway due to WM_KEYDOWN and WM_CHAR being separate events. 2010-05-05 Steve Block Reviewed by Adam Barth. MediaError.h is missing PassRefPtr.h include https://bugs.webkit.org/show_bug.cgi?id=38575 No new tests, build fix only. * html/MediaError.h: 2010-05-05 Alexander Pavlov Reviewed by Pavel Feldman. Web Inspector: Audits panel: Resource counters get reset when switching panels while reloading page https://bugs.webkit.org/show_bug.cgi?id=38579 * inspector/front-end/AuditLauncherView.js: (WebInspector.AuditLauncherView.prototype.updateResourceTrackingState): (WebInspector.AuditLauncherView.prototype._updateResourceProgress): 2010-05-05 Pavel Feldman Reviewed by Joseph Pecoraro. Web Inspector: Doubleclick on line number should not trigger source editing. https://bugs.webkit.org/show_bug.cgi?id=38588 * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._handleDoubleClick): 2010-05-05 Martin Robinson Reviewed by Gustavo Noronha. [GTK] Enable DOM clipboard and drag-and-drop access https://bugs.webkit.org/show_bug.cgi?id=30623 Add support in the PasteboardHelper for images, in preparation for drag-and-drop data. No new tests as functionality has not changed. * platform/gtk/PasteboardHelper.cpp: (WebCore::PasteboardHelper::fillSelectionData): Add support for images here. (WebCore::PasteboardHelper::targetListForDataObject): Add support for images here. 2010-05-05 Stuart Morgan Reviewed by Darin Fisher. Add a "focused" parameter to Widget::setFocus, and updates Document so that Widget is informed of focus loss as well as focus gain. Changes all existing setFocus implementations so that they ignore the 'false' case, so no behavior is changed until individual platforms are updated to handle the new case (if they want to). https://bugs.webkit.org/show_bug.cgi?id=37961 * dom/Document.cpp: (WebCore::Document::setFocusedNode): * platform/Widget.h: * platform/android/WidgetAndroid.cpp: (WebCore::Widget::setFocus): * platform/chromium/WidgetChromium.cpp: (WebCore::Widget::setFocus): * platform/efl/WidgetEfl.cpp: (WebCore::Widget::setFocus): * platform/gtk/WidgetGtk.cpp: (WebCore::Widget::setFocus): * platform/haiku/WidgetHaiku.cpp: (WebCore::Widget::setFocus): * platform/mac/WidgetMac.mm: (WebCore::Widget::setFocus): * platform/qt/WidgetQt.cpp: (WebCore::Widget::setFocus): * platform/win/WidgetWin.cpp: (WebCore::Widget::setFocus): * platform/wx/WidgetWx.cpp: (WebCore::Widget::setFocus): * plugins/PluginView.h: * plugins/PluginViewNone.cpp: (WebCore::PluginView::setFocus): * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::setFocus): * plugins/mac/PluginViewMac.cpp: (WebCore::PluginView::setFocus): * plugins/qt/PluginViewQt.cpp: (WebCore::PluginView::setFocus): * plugins/symbian/PluginViewSymbian.cpp: (WebCore::PluginView::setFocus): * plugins/win/PluginViewWin.cpp: (WebCore::PluginView::setFocus): 2010-05-05 Steve Block Reviewed by Pavel Feldman. Move V8 ScriptDebugServer::topStackFrame() to ScriptCallStack https://bugs.webkit.org/show_bug.cgi?id=38531 ScriptCallStack::create() uses ScriptDebugServer::topStackFrame(), but ScriptDebugServer is guarded with ENABLE(JAVASCRIPT_DEBUGGER). This prevents ScriptCallStack from being built on platforms that do not define ENABLE(JAVASCRIPT_DEBUGGER). No new tests, build fix only. * bindings/v8/ScriptCallStack.cpp: (WebCore::ScriptCallStack::callLocation): (WebCore::ScriptCallStack::createUtilityContext): Helper for topStackFrame, moved from ScriptDebugServer (WebCore::ScriptCallStack::topStackFrame): Moved from ScriptDebugServer * bindings/v8/ScriptCallStack.h: (WebCore::ScriptCallStack::utilityContext): Helper for topStackFrame, moved from ScriptDebugServer * bindings/v8/ScriptDebugServer.cpp: * bindings/v8/ScriptDebugServer.h: 2010-05-05 Csaba Osztrogonác Rubber-stamped by Simon Hausmann. [Qt] REGRESSION(r56869): WinCE build is broken https://bugs.webkit.org/show_bug.cgi?id=36929 * WebCore.pro: LIBS += -lOle32 added. 2010-05-05 Simon Hausmann Reviewed by Tor Arne Vestbø. [Qt] Disable Qt Multimedia backend for HTML 5 Audio and Video elements Fall back to the Phonon backend until the release situation has been cleared up. * WebCore.pro: 2010-05-05 Ilya Tikhonovsky Reviewed by Pavel Feldman. WebInspector: Clickable links to resources should be used as 'details' part for the all suitable kinds of records. https://bugs.webkit.org/show_bug.cgi?id=38542 * inspector/front-end/TimelinePanel.js: (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline): (WebInspector.TimelineRecordListRow): (WebInspector.TimelineRecordListRow.prototype.update): (WebInspector.TimelinePanel.FormattedRecord): (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent): (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails): (WebInspector.TimelinePanel.PopupContentHelper): (WebInspector.TimelinePanel.PopupContentHelper.prototype._createCell): (WebInspector.TimelinePanel.PopupContentHelper.prototype._appendTextRow): (WebInspector.TimelinePanel.PopupContentHelper.prototype._appendElementRow): (WebInspector.TimelinePanel.PopupContentHelper.prototype._appendLinkRow): 2010-05-05 Nikolas Zimmermann Not reviewed. Add missing files generated by "run-bindings-test", after the DOMTestCallback.idl addition. * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: Added. (WebKit::kit): (webkit_dom_test_callback_callback_with_class1param): (webkit_dom_test_callback_callback_with_class2param): (webkit_dom_test_callback_callback_with_non_bool_return_type): (WebKit::wrapTestCallback): (WebKit::core): (webkit_dom_test_callback_finalize): (webkit_dom_test_callback_set_property): (webkit_dom_test_callback_get_property): (webkit_dom_test_callback_class_init): (webkit_dom_test_callback_init): * bindings/scripts/test/GObject/WebKitDOMTestCallback.h: Added. * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h: Added. * bindings/scripts/test/ObjC/DOMTestCallback.h: Added. * bindings/scripts/test/ObjC/DOMTestCallback.mm: Added. (-[DOMTestCallback dealloc]): (-[DOMTestCallback finalize]): (-[DOMTestCallback callbackWithClass1Param:]): (-[DOMTestCallback callbackWithClass2Param:strArg:]): (-[DOMTestCallback callbackWithNonBoolReturnType:]): (-[DOMTestCallback customCallback:class6Param:]): (core): (kit): * bindings/scripts/test/ObjC/DOMTestCallbackInternal.h: Added. 2010-05-05 Joseph Pecoraro Reviewed by Pavel Feldman. Web Inspector: FontView needs Cleanup https://bugs.webkit.org/show_bug.cgi?id=38567 FontView was missing some of the newer practices for initialization that other Resource Views had. Also its width calculations could result in a single character wrapping. This is general cleanup. * inspector/front-end/FontView.js: (WebInspector.FontView): move initialization into contentTabSelected (WebInspector.FontView.prototype.contentTabSelected): handle initialization like other Resource Views (WebInspector.FontView.prototype.updateFontPreviewSize): use a narrower width to prevent text from widowing 2010-05-05 Dirk Schulze Reviewed by Nikolas Zimmermann. SVG hit testing is *way* too slow https://bugs.webkit.org/show_bug.cgi?id=19312 Use the cached stroke and fill boundaries in RenderPath as a heuristik to speed up SVG's hit testing. No new tests added. * rendering/RenderPath.cpp: (WebCore::RenderPath::fillContains): (WebCore::RenderPath::strokeContains): 2010-05-04 Dumitru Daniliuc Reviewed by Adam Barth. Auto-generate all Database callbacks. https://bugs.webkit.org/show_bug.cgi?id=38503 * DerivedSources.cpp: * DerivedSources.make: * GNUmakefile.am: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSCustomSQLStatementCallback.cpp: Removed. * bindings/js/JSCustomSQLStatementCallback.h: Removed. * bindings/js/JSCustomSQLStatementErrorCallback.cpp: (WebCore::JSSQLStatementErrorCallback::handleEvent): * bindings/js/JSCustomSQLStatementErrorCallback.h: Removed. * bindings/js/JSCustomSQLTransactionCallback.cpp: Removed. * bindings/js/JSCustomSQLTransactionCallback.h: Removed. * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: Removed. * bindings/js/JSCustomSQLTransactionErrorCallback.h: Removed. * bindings/js/JSDatabaseCallback.cpp: Removed. * bindings/js/JSDatabaseCallback.h: Removed. * bindings/js/JSDatabaseCustom.cpp: (WebCore::JSDatabase::changeVersion): (WebCore::createTransaction): * bindings/js/JSSQLTransactionCustom.cpp: (WebCore::JSSQLTransaction::executeSql): * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/test/JS/JSTestCallback.cpp: * bindings/v8/custom/V8CustomSQLStatementCallback.cpp: Removed. * bindings/v8/custom/V8CustomSQLStatementCallback.h: Removed. * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp: (WebCore::V8SQLStatementErrorCallback::handleEvent): * bindings/v8/custom/V8CustomSQLStatementErrorCallback.h: Removed. * bindings/v8/custom/V8CustomSQLTransactionCallback.cpp: Removed. * bindings/v8/custom/V8CustomSQLTransactionCallback.h: Removed. * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp: Removed. * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h: Removed. * bindings/v8/custom/V8DatabaseCallback.cpp: Removed. * bindings/v8/custom/V8DatabaseCallback.h: Removed. * bindings/v8/custom/V8DatabaseCustom.cpp: (WebCore::V8Database::changeVersionCallback): (WebCore::createTransaction): * bindings/v8/custom/V8SQLTransactionCustom.cpp: (WebCore::V8SQLTransaction::executeSqlCallback): * storage/DatabaseCallback.h: * storage/DatabaseCallback.idl: Added. * storage/SQLStatement.cpp: (WebCore::SQLStatement::performCallback): * storage/SQLStatementCallback.h: * storage/SQLStatementCallback.idl: Added. * storage/SQLStatementErrorCallback.idl: Added. * storage/SQLTransaction.cpp: (WebCore::SQLTransaction::deliverTransactionCallback): * storage/SQLTransactionCallback.h: * storage/SQLTransactionCallback.idl: Added. * storage/SQLTransactionErrorCallback.h: * storage/SQLTransactionErrorCallback.idl: Added. 2010-05-04 Chris Marrin Reviewed by Simon Fraser. Made composited iframes work on Windows https://bugs.webkit.org/show_bug.cgi?id=32446 This completes the work in http://trac.webkit.org/changeset/57919 to create compositing layers in the parent document when an iframe has a compositing layer. The parent document has a layer for the iframe element and builds a layer tree to the page root. The layer tree for the iframe document is then parented to the iframe element's GraphicsLayer. The RenderLayerCompositor for the iframe document (which owns the root of the layer tree) now has a clippingLayer which is the parent of the layer tree root so it can be clipped to the parent iframe's bounds, taking into account borders, padding, etc. in the parent iframe element. I also got rid of a no longer used function: RenderLayerCompositor::parentInRootLayer Test: compositing/iframes/composited-parent-iframe.html * rendering/RenderLayerBacking.cpp:Make calls to RenderLayerCompositor to set the clipping bounds for iframe content * rendering/RenderLayerCompositor.cpp:Hook the iframe content to the parent iframe element * rendering/RenderLayerCompositor.h: 2010-05-03 Alexey Proskuryakov Reviewed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=38497 Make sure that http URLs always have a host in SecurityOrigin This is a hardening fix, and behavior really depends on what an underlying networking layer does. So, no test. * page/SecurityOrigin.cpp: (WebCore::schemeRequiresAuthority): List schemes that need an authority for successful loading. (WebCore::SecurityOrigin::SecurityOrigin): Never let e.g. http origins with empty authorities have the same security origin. 2010-05-04 Zhenyao Mo Reviewed by Dimitri Glazkov. getFramebufferAttachmentParameter should return the original WebGLTexture/WebGLRenderbuffer instead of creating new ones sharing names. https://bugs.webkit.org/show_bug.cgi?id=38236 * html/canvas/CanvasObject.h: Add type check functions. (WebCore::CanvasObject::isBuffer): (WebCore::CanvasObject::isFramebuffer): (WebCore::CanvasObject::isProgram): (WebCore::CanvasObject::isRenderbuffer): (WebCore::CanvasObject::isShader): (WebCore::CanvasObject::isTexture): * html/canvas/WebGLBuffer.h: Add type check functions. (WebCore::WebGLBuffer::isBuffer): * html/canvas/WebGLFramebuffer.h: Add type check functions. (WebCore::WebGLFramebuffer::isFramebuffer): * html/canvas/WebGLProgram.h: Add type check functions. (WebCore::WebGLProgram::isProgram): * html/canvas/WebGLRenderbuffer.cpp: remove constructor using existing name. * html/canvas/WebGLRenderbuffer.h: Add type check functions; remove constructor using existing name. (WebCore::WebGLRenderbuffer::isRenderbuffer): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): Return original Texture/Renderbuffer instead of creating new ones. (WebCore::WebGLRenderingContext::findTexture): Find a WebGLTexture using a name. (WebCore::WebGLRenderingContext::findRenderbuffer): Find a WebGLRenderbuffer using a name. * html/canvas/WebGLRenderingContext.h: Add find* functions. * html/canvas/WebGLShader.h: Add type check functions. (WebCore::WebGLShader::isShader): * html/canvas/WebGLTexture.cpp: remove constructor using existing name. * html/canvas/WebGLTexture.h: Add type check functions; remove constructor using existing name. (WebCore::WebGLTexture::isTexture): 2010-05-04 Luiz Agostini Reviewed by Simon Hausmann. [Qt] QT_MOBILE_THEME compile time flag https://bugs.webkit.org/show_bug.cgi?id=38439 Replacing preprocessor conditional used in RenderThemeQt from Q_WS_MAEMO_5 to USE(QT_MOBILE_THEME). * WebCore.pro: * platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::RenderThemeQt): (WebCore::RenderThemeQt::qStyle): (WebCore::RenderThemeQt::extraDefaultStyleSheet): (WebCore::RenderThemeQt::adjustMenuListButtonStyle): (WebCore::RenderThemeQt::setPaletteFromPageClientIfExists): * platform/qt/RenderThemeQt.h: 2010-05-04 Joseph Pecoraro Reviewed by Dan Bernstein. SVG fonts trigger GlyphPage::fill with null font https://bugs.webkit.org/show_bug.cgi?id=38530 SVG fonts do not use the glyph page cache. This change detects when attempting to fill a GlyphPage with an SVG font and indicates that the glyphs were not available. * platform/graphics/GlyphPageTreeNode.cpp: (WebCore::fill): helper method which handles attempts to fill a GlyphPage with SVG or non-SVG fonts (WebCore::GlyphPageTreeNode::initializePage): use the helper where appropriate 2010-05-04 Kent Tamura Reviewed by David Levin (and unofficially by Enrica Casucci). REGRESSION(r54368): Text drag-and-drop from input/textarea doesn't work if the text is like a URL https://bugs.webkit.org/show_bug.cgi?id=38374 Since r54368, documentFragmentFromDragData() creates an element with no anchor text for URL-like text dragged from input/textarea element. If such text is dropped to input/textarea element, the text is not inserted. To fix this problem, use the original text or the URL as an anchor text. Test: editing/pasteboard/drag-drop-url-text.html * page/DragController.cpp: (WebCore::documentFragmentFromDragData): 2010-05-04 Steve Block Reviewed by Darin Adler. JavaInstanceJSC.cpp and JNIUtilityPrivate.cpp need to include jni_jsobject.h for jlong_to_pt() and ptr_to_jlong() https://bugs.webkit.org/show_bug.cgi?id=38525 No new tests, build fix only. * bridge/jni/jni_jsobject.h: Guard Mac-specific code with PLATFORM(MAC) * bridge/jni/jsc/JNIUtilityPrivate.cpp: Include jni_jsobject.h * bridge/jni/jsc/JavaInstanceJSC.cpp: Include jni_jsobject.h 2010-05-04 Steve Block Reviewed by Darin Adler. New FileSystemPOSIX functions cause linker errors on Android https://bugs.webkit.org/show_bug.cgi?id=38521 No new tests, build fix only. * platform/android/FileSystemAndroid.cpp: Remove closeFile, which is provided in FileSystemPOSIX.cpp * platform/posix/FileSystemPOSIX.cpp: Guard writeToFile with !PLATFORM(ANDROID) 2010-05-04 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: restore main and sidebar scroller positions when switching between panels. https://bugs.webkit.org/show_bug.cgi?id=38522 * inspector/front-end/ElementsPanel.js: (WebInspector.ElementsPanel.prototype.elementsToRestoreScrollPositionsFor): * inspector/front-end/Panel.js: (WebInspector.Panel.prototype.show): (WebInspector.Panel.prototype.hide): (WebInspector.Panel.prototype.elementsToRestoreScrollPositionsFor): (WebInspector.Panel.prototype._storeScrollPositions): (WebInspector.Panel.prototype._restoreScrollPositions): * inspector/front-end/ResourcesPanel.js: (WebInspector.ResourcesPanel.prototype.elementsToRestoreScrollPositionsFor): * inspector/front-end/ScriptsPanel.js: (WebInspector.ScriptsPanel.prototype.elementsToRestoreScrollPositionsFor): 2010-05-04 Steven Lai Reviewed by Darin Adler. https://bugs.webkit.org/show_bug.cgi?id=37900 cloneNode() does not preserve z-index with more than six digits Tests: fast/dom/HTMLInputElement/clone-input-checked.html fast/dom/clone-node-z-index.html * dom/Element.cpp: undid the order change of calling copyNonAttributeProperties() before setAttributes() (WebCore::Element::cloneElementWithoutChildren): uncheck the previous radio button in the same radio button group only when the checked radio box is appended to the dom tree * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::updateCheckedRadioButtons): (WebCore::HTMLInputElement::attach): (WebCore::HTMLInputElement::setChecked): * html/HTMLInputElement.h: 2010-04-29 John Gregg Reviewed by Dmitry Titov. notifications should have dir and replaceId attributes. Note that tests are only enabled in Chromium, skipped elsewhere since notifications aren't implemented. https://bugs.webkit.org/show_bug.cgi?id=38336 Tests: fast/notifications/notifications-replace.html fast/notifications/notifications-rtl.html * notifications/Notification.h: (WebCore::Notification::dir): (WebCore::Notification::setDir): (WebCore::Notification::replaceId): (WebCore::Notification::setReplaceId): * notifications/Notification.idl: 2010-05-04 Alejandro G. Castro Reviewed by Xan Lopez. Fixed error defining the float/double minimum in the object properties, the smallest value of a float/double is -G_MAXDOUBLE/-G_MAXFLOAT. * bindings/scripts/CodeGeneratorGObject.pm: 2010-05-03 Joseph Pecoraro Reviewed by Dan Bernstein. REGRESSION: Text clipped in absolutely positioned search inputs https://bugs.webkit.org/show_bug.cgi?id=38468 Previously I incorrectly added x() and y() to the tx and ty positioning. This clips a search input like a text input, respecting the vertically centered text. * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::layout): only the Y changes, so change setLocation to setY (WebCore::RenderTextControlSingleLine::controlClipRect): 2010-05-04 Alexander Pavlov Reviewed by Timothy Hatcher. Web Inspector: REGRESSION: Up/Down, PgUp/PgDown keys do not change numeric style properties https://bugs.webkit.org/show_bug.cgi?id=38516 * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylePropertyTreeElement.prototype): 2010-05-04 Ben Murdoch Reviewed by Simon Hausmann. Crash in handleTouchEvent: using dangling node ptrs in hashmap https://bugs.webkit.org/show_bug.cgi?id=38514 When navigating away from a page, if you have your finger still pressed and then lift it on the new page we see a crash if the node got deleted as we still have a dangling pointer in the m_originatingTouchPointTargets hashmap and try to use it as the receiver to dispatch a touchend event. Test: fast/events/touch/touch-stale-node-crash.html * page/EventHandler.cpp: (WebCore::EventHandler::clear): Clear the hashmap of touch targets. 2010-05-04 Joseph Pecoraro Reviewed by Pavel Feldman. Web Inspector: Drawer Misbehaving when Docking / Undocking in Console Panel https://bugs.webkit.org/show_bug.cgi?id=38510 * inspector/front-end/inspector.js: (WebInspector.set attached): resize the drawer after docking/undocking 2010-05-04 Laszlo Gombos Unreviewed, build fix for Symbian. [Symbian] Build fix after r58598. Use C99 integer types for the Symbian plugin implementation. No new tests, as there is no new functionality. * plugins/symbian/PluginPackageSymbian.cpp: (WebCore::PluginPackage::NPVersion): * plugins/symbian/PluginViewSymbian.cpp: (WebCore::PluginView::handlePostReadFile): 2010-05-04 Nikolas Zimmermann Reviewed by Dirk Schulze. Split SVGCharacterLayoutInfo in smaller pieces https://bugs.webkit.org/show_bug.cgi?id=38513 Split SVGCharacterLayoutInfo into SVGCharacterLayoutInfo/SVGCharacterData and SVGTextChunkLayoutInfo. This is a preparation for more work in the text area. * Android.mk: Add SVGCharacterData.(cpp|h) and SVGTextChunkLayoutInfo.h to build. * GNUmakefile.am: Ditto. * WebCore.gypi: Ditto. * WebCore.pro: Ditto * WebCore.vcproj/WebCore.vcproj: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * rendering/SVGCharacterData.cpp: Copied from rendering/SVGCharacterLayoutInfo.cpp. * rendering/SVGCharacterData.h: Copied from rendering/SVGCharacterLayoutInfo.h. (WebCore::SVGChar::SVGChar): * rendering/SVGCharacterLayoutInfo.cpp: (WebCore::SVGCharacterLayoutInfo::isInitialLayout): Introduced new helper function to share code between addLayoutInformation/addStackContent. (WebCore::SVGCharacterLayoutInfo::addLayoutInformation): Use new helper function. (WebCore::SVGCharacterLayoutInfo::addStackContent): Ditto * rendering/SVGCharacterLayoutInfo.h: * rendering/SVGRootInlineBox.h: Include new files. * rendering/SVGTextChunkLayoutInfo.h: Copied from rendering/SVGCharacterLayoutInfo.h. 2010-05-04 Xan Lopez Reviewed by Holger Freyther. [GTK] GObject DOM bindings https://bugs.webkit.org/show_bug.cgi?id=33590 Use helper functions from CodeGenerator.pm to figure out whether a type is "fundamental" or not (basically whether it's anything other than a string or a non-pointer type). * bindings/scripts/CodeGeneratorGObject.pm: 2010-04-30 Alexander Pavlov Reviewed by Yury Semikhatsky. Web Inspector: REGRESSION: Disabled style properties are absent in Styles sidebar after WebInspector is re-opened https://bugs.webkit.org/show_bug.cgi?id=38255 Moved stylesheet-related mappings into a separate object stored in InspectorController rather than InspectorDOMAgent (which gets reset on every frontend [dis]connect). * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * inspector/InspectorCSSStore.cpp: Added. (WebCore::InspectorCSSStore::InspectorCSSStore): (WebCore::InspectorCSSStore::~InspectorCSSStore): (WebCore::InspectorCSSStore::reset): * inspector/InspectorCSSStore.h: Added. * inspector/InspectorController.cpp: (WebCore::InspectorController::InspectorController): (WebCore::InspectorController::setFrontend): (WebCore::InspectorController::didCommitLoad): * inspector/InspectorController.h: * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::InspectorDOMAgent): (WebCore::InspectorDOMAgent::discardBindings): (WebCore::InspectorDOMAgent::applyStyleText): (WebCore::InspectorDOMAgent::setStyleText): (WebCore::InspectorDOMAgent::setStyleProperty): (WebCore::InspectorDOMAgent::toggleStyleEnabled): (WebCore::InspectorDOMAgent::setRuleSelector): (WebCore::InspectorDOMAgent::addRule): (WebCore::InspectorDOMAgent::bindStyle): (WebCore::InspectorDOMAgent::bindRule): (WebCore::InspectorDOMAgent::buildObjectForStyle): (WebCore::InspectorDOMAgent::buildObjectForRule): * inspector/InspectorDOMAgent.h: (WebCore::InspectorDOMAgent::create): (WebCore::InspectorDOMAgent::cssStore): 2010-05-04 Mikhail Naganov Reviewed by Pavel Feldman. Display "Recording..." item when recording an user-initiated CPU profile. https://bugs.webkit.org/show_bug.cgi?id=38043 * English.lproj/localizedStrings.js: * inspector/front-end/ProfilesPanel.js: (WebInspector.ProfilesPanel.prototype.addProfileHeader): (WebInspector.ProfilesPanel.prototype.removeProfileHeader): (WebInspector.ProfilesPanel.prototype.showProfile): * inspector/front-end/inspector.js: (WebInspector.setRecordingProfile): 2010-05-04 Tucker Jay Reviewed by Holger Freyther. Animated GIF images does not animate 10x as expected by default. https://bugs.webkit.org/show_bug.cgi?id=36818 Added test case to existing manual test to test the fixed functionality. * manual-tests/qt/qt-10loop-anim.gif: Added. * manual-tests/qt/qt-gif-test.html: * platform/graphics/qt/ImageDecoderQt.cpp: (WebCore::ImageDecoderQt::repetitionCount): 2010-05-04 Dirk Schulze Unreviewed sort of XCodes project file. * WebCore.xcodeproj/project.pbxproj: 2010-05-03 Steven Lai Reviewed by Brady Eidson. Reverted hashchange() event back to async. (This change does not update HashChangeEvent to its new proposed interface) https://bugs.webkit.org/show_bug.cgi?id=36201 rdar://problem/7780794 rdar://problem/7761278 (partial fix) Tests: fast/loader/hashchange-event-async.html * dom/Document.cpp: reverted hashchange() event back to async (WebCore::Document::enqueueHashchangeEvent): 2010-05-03 Holger Hans Peter Freyther Rubber-stamped by Xan Lopez. [Cairo,WX] Stop leaking a FontPlatformData. https://bugs.webkit.org/show_bug.cgi?id=37500 Stephan Aßmus pointed out that the pango font backend is leaking memory and fixed it. The WX font backend and the Cairo/Fontconfig backend have the same snippet of code and are leaking memory as well. This commit is fixing that. * platform/graphics/cairo/SimpleFontDataCairo.cpp: (WebCore::SimpleFontData::smallCapsFontData): * platform/graphics/wx/SimpleFontDataWx.cpp: (WebCore::SimpleFontData::smallCapsFontData): 2010-05-03 James Robinson Reviewed by Eric Seidel. Clean up a few compiler warnings https://bugs.webkit.org/show_bug.cgi?id=38073 * html/TextMetrics.h: (WebCore::TextMetrics::width): * rendering/style/StyleRareInheritedData.h: * rendering/style/StyleRareNonInheritedData.h: 2010-05-02 Dumitru Daniliuc Reviewed by Adam Barth. Add the ability to auto-generate callbacks to all code generators. https://bugs.webkit.org/show_bug.cgi?id=38414 * bindings/scripts/CodeGeneratorJS.pm: * bindings/scripts/CodeGeneratorV8.pm: * bindings/scripts/test/JS/JSTestCallback.cpp: Added. (WebCore::JSTestCallback::JSTestCallback): (WebCore::JSTestCallback::~JSTestCallback): (WebCore::JSTestCallback::callbackWithClass1Param): (WebCore::JSTestCallback::callbackWithClass2Param): * bindings/scripts/test/JS/JSTestCallback.h: Added. (WebCore::JSTestCallback::create): * bindings/scripts/test/V8/JSTestCallback.cpp: Added. (WebCore::V8TestCallback::V8TestCallback): (WebCore::V8TestCallback::~V8TestCallback): (WebCore::V8TestCallback::callbackWithClass1Param): (WebCore::V8TestCallback::callbackWithClass2Param): * bindings/scripts/test/V8/V8TestCallback.h: Added. (WebCore::V8TestCallback::create): * bindings/scripts/test/TestCallback.idl: Added. 2010-05-03 Kevin Watters Reviewed by Kevin Ollivier. [wx] Build and use Mac's ComplexTextController to support complex text in wx. https://bugs.webkit.org/show_bug.cgi?id=38482 * platform/graphics/FloatSize.h: * platform/graphics/GlyphBuffer.h: (WebCore::GlyphBuffer::advanceAt): (WebCore::GlyphBuffer::add): * platform/graphics/SimpleFontData.h: (WebCore::SimpleFontData::getNSFont): * platform/graphics/mac/ComplexTextController.cpp: * platform/graphics/mac/ComplexTextController.h: * platform/graphics/wx/FontCacheWx.cpp: (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::getLastResortFallbackFont): * platform/graphics/wx/FontPlatformData.h: (toCTFontRef): (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::allowsLigatures): * platform/graphics/wx/FontPlatformDataWx.cpp: (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::cgFont): * platform/graphics/wx/FontPlatformDataWxMac.mm: Added. (WebCore::FontPlatformData::nsFont): (WebCore::FontPlatformData::cacheNSFont): * platform/graphics/wx/FontWx.cpp: (WebCore::Font::canReturnFallbackFontsForComplexText): (WebCore::Font::selectionRectForComplexText): (WebCore::Font::drawComplexText): (WebCore::Font::floatWidthForComplexText): (WebCore::Font::offsetForPositionForComplexText): * platform/graphics/wx/SimpleFontDataWx.cpp: (WebCore::SimpleFontData::platformInit): (WebCore::SimpleFontData::containsCharacters): (WebCore::SimpleFontData::platformWidthForGlyph): * platform/wx/wxcode/fontprops.h: * platform/wx/wxcode/mac/carbon/fontprops.mm: (wxFontContainsCharacters): (GetTextExtent): * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp: (WebCore::drawTextWithSpacing): * platform/wx/wxcode/win/fontprops.cpp: (wxFontContainsCharacters): * wscript: 2010-05-03 Abhishek Arya Reviewed by Adam Barth. Add support for controlling clipboard access from javascript. Clipboard access from javascript is disabled by default. https://bugs.webkit.org/show_bug.cgi?id=27751 Test: editing/execCommand/clipboard-access.html * WebCore.base.exp: * editing/EditorCommand.cpp: (WebCore::supportedCopyCut): (WebCore::supportedPaste): (WebCore::createCommandMap): * page/Settings.cpp: (WebCore::Settings::Settings): (WebCore::Settings::setJavaScriptCanAccessClipboard): * page/Settings.h: (WebCore::Settings::javaScriptCanAccessClipboard): 2010-05-03 Alexey Proskuryakov Reviewed by Adam Barth. https://bugs.webkit.org/show_bug.cgi?id=38285 REGRESSION: Javascript command window.open does not work in empty tab Cannot be tested, because new windows created in DRT always have an opener, and thus inherit its security origin. Only new windows and tabs created by browser chrome had this problem. * loader/FrameLoader.cpp: (WebCore::FrameLoader::init): Moved updateSandboxFlags() call to the beginning, so that an initial document would get correct flags. 2010-05-03 Noam Rosenthal Reviewed by Darin Adler. WebGL compile issue. Added ExceptionCode.h to JSWebGLArrayBufferConstructor.cpp, for some reason it was missing. https://bugs.webkit.org/show_bug.cgi?id=38453 No new tests: compile fix. * bindings/js/JSWebGLArrayBufferConstructor.cpp: 2010-05-03 Eric Seidel Unreviewed, rolling out r58685. http://trac.webkit.org/changeset/58685 https://bugs.webkit.org/show_bug.cgi?id=38461 Broke a test on Gtk * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::updateStates): 2010-05-03 Yael Aharon Reviewed by Darin Adler. Use HTML5 number parsing in HTMLProgressElement https://bugs.webkit.org/show_bug.cgi?id=38434 Use parseToDoubleForNumberType instead of toDouble. Throw an exception when the number is NaN or Infinity. * html/HTMLProgressElement.cpp: (WebCore::HTMLProgressElement::value): (WebCore::HTMLProgressElement::setValue): (WebCore::HTMLProgressElement::max): (WebCore::HTMLProgressElement::setMax): * html/HTMLProgressElement.h: * html/HTMLProgressElement.idl: 2010-05-03 Jens Alfke Reviewed by Darin Fisher. [chromium] Add "willSendSubmitEvent" hook to WebFrameClient and FrameLoaderClient https://bugs.webkit.org/show_bug.cgi?id=38397 No tests (functionality is exposed only through native WebKit API.) * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::prepareSubmit): Call frame loader's dispatchWillSendSubmitEvent * loader/EmptyClients.h: * loader/FrameLoaderClient.h: (WebCore::FrameLoaderClient::dispatchWillSendSubmitEvent): New empty method 2010-05-03 Philippe Normand Reviewed by Eric Carlson. [GStreamer] forgotten call to durationChanged in updateStates() https://bugs.webkit.org/show_bug.cgi?id=38461 Notify MediaPlayer if duration is known after playback started. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::updateStates): 2010-05-03 Ryuan Choi Reviewed by Darin Adler. fixing build break due to clearWatch() when Geolocation feature is disabled. https://bugs.webkit.org/show_bug.cgi?id=38091 no test because this is a build fix only * page/Geolocation.cpp: (WebCore::Geolocation::clearWatch): 2010-05-03 Stephan Aßmus Reviewed by Holger Freyther. [Gtk] Fix leaking the FontPlatformData instance used to create the the small caps font data. https://bugs.webkit.org/show_bug.cgi?id=37500 No new tests needed. * platform/graphics/gtk/SimpleFontDataPango.cpp: (WebCore::SimpleFontData::smallCapsFontData): - Use a stack allocated FontPlatformData instead of a heap allocated one that is never freed. 2010-05-03 Jarkko Sakkinen Reviewed by Simon Hausmann. [Qt] GraphicsLayer: support webGL https://bugs.webkit.org/show_bug.cgi?id=35388 Added support GraphicsContext3D to GraphicsLayer. Added paint method to GraphicsContext3D for Qt platform that uses drawTexture() when QGLWidget is used as viewport of QGraphicsWebView. Fine-tuned texture and handling and image to texture conversion to work also when drawTexture() blitting is used. * platform/graphics/GraphicsContext3D.h: * platform/graphics/qt/GraphicsContext3DQt.cpp: (WebCore::GraphicsContext3DInternal::GraphicsContext3DInternal): (WebCore::GraphicsContext3D::beginPaint): (WebCore::GraphicsContext3D::paint): (WebCore::GraphicsContext3D::texImage2D): (WebCore::GraphicsContext3D::texSubImage2D): (WebCore::GraphicsContext3D::getImageData): * platform/graphics/qt/GraphicsLayerQt.cpp: (WebCore::GraphicsLayerQtImpl::): (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl): (WebCore::GraphicsLayerQtImpl::paint): (WebCore::GraphicsLayerQtImpl::flushChanges): (WebCore::GraphicsLayerQt::setContentsToGraphicsContext3D): (WebCore::GraphicsLayerQt::setGraphicsContext3DNeedsDisplay): * platform/graphics/qt/GraphicsLayerQt.h: 2010-05-03 Janne Koskinen Reviewed by Simon Hausmann. [Qt] Fix qtlibraryinfix not to contain space List catenation with += adds whitespace cutting the infix from the final target. * WebCore.pro: 2010-05-03 Tor Arne Vestbø Reviewed by Simon Hausmann. [Qt] Fix rendering of