2012-03-22 Mario Sanchez Prada [GTK] Fix the only remaining coding style issue in GTK accessibility code https://bugs.webkit.org/show_bug.cgi?id=81885 Reviewed by Xan Lopez. Add needed extra line and remove an unneeded one. * accessibility/gtk/AccessibilityObjectAtk.cpp: 2012-03-22 Kent Tamura Expand RenderTextControlSingleLine::controlClipRect() to contain contentRect(). https://bugs.webkit.org/show_bug.cgi?id=81866 Reviewed by Hajime Morita. We need to expand the controlClipRect because the existing shadow tree of a text field can be wrapped by another shadow tree. e.g. A current situation: ┗ ShadowRoot ┗ container element ┌────────────┐'s border box │┌──────────┐│ ││container box ││ │└──────────┘│ └────────────┘ Wrapped by another ShadowRoot: ┗ New ShadowRoot ┣ represents the existing shadow tree ┃ ┗ container element ┗ D: an additional decoration element ┌────────────┐'s border box │┌───────┬──┐│ ││container box │ D ││ │└───────┴──┘│ └────────────┘ In this case, if we clip child renderers by container box, D is not drawn. We should clip by the content box of the . A search field has an exceptional behavior. It can have the container box of which height is taller than the content box height. The controlClipRect should contain both of the container box and the content box in this case. In other cases, the container box is equivalent to the content box. So the code always unites them. No new tests. This won't make any behavior change for now. * rendering/RenderTextControlSingleLine.cpp: (WebCore::RenderTextControlSingleLine::controlClipRect): 2012-03-22 Yoshifumi Inoue [Forms] The option element should not be form associated element. https://bugs.webkit.org/show_bug.cgi?id=79764 Reviewed by Kent Tamura. This patch changes base class of HTMLOptionELement to HTMLElement from HTMLFormControlElement for saving memory space and iteration time of extra "option" elements in HTMLFormElement::m_formAssociatedElements and matching the HTML5 specification for ease of maintenance. This patch changes behavior of handling of CSS pseudo classes "invalid" and "valid". The "option" elements no longer use these CSS pseudo classes as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088 Changes of TextIterator is lead by usage of isFormControlElement. This changes will be replaced with more meaningful predicate as part of https://bugs.webkit.org/show_bug.cgi?id=80381 No new tests but updated select-live-pseudo-selectors.html test. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement. * css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked. * html/HTMLKeygenElement.cpp: (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create. * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization. (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed. (WebCore::HTMLOptionElement::attach): Changeid base class. (WebCore::HTMLOptionElement::detach): Changed base class. (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling. (WebCore::HTMLOptionElement::childrenChanged): Changed base class. (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class. * html/HTMLOptionElement.h: (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement. (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled. * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function. 2012-03-21 Pavel Podivilov Web Inspector: rename ClosureCompilerSourceMapping to SourceMapParser and move it to CompilerScriptMapping.js. https://bugs.webkit.org/show_bug.cgi?id=81780 Reviewed by Pavel Feldman. * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/compile-front-end.py: * inspector/front-end/CompilerScriptMapping.js: (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript): (WebInspector.SourceMapParserPayload): (WebInspector.SourceMapParser): (WebInspector.SourceMapParser.prototype.load): (WebInspector.SourceMapParser.prototype.compiledLocationToSourceLocation): (WebInspector.SourceMapParser.prototype.sourceLocationToCompiledLocation): (WebInspector.SourceMapParser.prototype.sources): (WebInspector.SourceMapParser.prototype.loadSourceCode): (WebInspector.SourceMapParser.prototype._findMapping): (WebInspector.SourceMapParser.prototype._parseMappingPayload): (WebInspector.SourceMapParser.prototype._parseSections): (WebInspector.SourceMapParser.prototype._parseMap): (WebInspector.SourceMapParser.prototype._isSeparator): (WebInspector.SourceMapParser.prototype._decodeVLQ): (WebInspector.SourceMapParser.prototype._canonicalizeURL): (WebInspector.SourceMapParser.StringCharIterator): (WebInspector.SourceMapParser.StringCharIterator.prototype.next): (WebInspector.SourceMapParser.StringCharIterator.prototype.peek): (WebInspector.SourceMapParser.StringCharIterator.prototype.hasNext): * inspector/front-end/CompilerSourceMapping.js: Removed. * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: 2012-03-21 Vsevolod Vlasov Web Inspector: IndexedDB transaction is not closed when requesting data. https://bugs.webkit.org/show_bug.cgi?id=81837 Reviewed by Pavel Feldman. * inspector/InspectorIndexedDBAgent.cpp: Added missing IDBCursorBackendInterface::postSuccessHandlerCallback() call. (WebCore): 2012-03-21 Yury Semikhatsky Web Inspector: event listeners section is broken for about:blank page https://bugs.webkit.org/show_bug.cgi?id=81795 Parse about:blank as a valid URL. Reviewed by Pavel Feldman. Test: inspector/elements/event-listeners-about-blank.html * inspector/front-end/utilities.js: (String.prototype.asParsedURL): 2012-03-21 Dan Bernstein REGRESSION (r111635): Assertion failure in RenderFlexibleBox::layoutFlexItems() (!lineContexts.size()) in many flexbox tests https://bugs.webkit.org/show_bug.cgi?id=81870 Reverted r111635, the fix for bug 81843. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::WrapReverseContext::WrapReverseContext): (WebCore::RenderFlexibleBox::WrapReverseContext::addCrossAxisOffset): (RenderFlexibleBox::WrapReverseContext): (WebCore::RenderFlexibleBox::WrapReverseContext::addNumberOfChildrenOnLine): (WebCore::RenderFlexibleBox::WrapReverseContext::lineCrossAxisDelta): (WebCore::RenderFlexibleBox::layoutFlexItems): (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): (WebCore::RenderFlexibleBox::alignChildren): (WebCore::RenderFlexibleBox::flipForWrapReverse): * rendering/RenderFlexibleBox.h: 2012-03-21 Emil A Eklund Unreviewed change touching CustomFilterProgram.h to try to force the chromium-win bots to rebuilt it and pick up on the fact that CSS_SHADERS is not set (since r111610). * platform/graphics/filters/CustomFilterProgram.h: 2012-03-21 Vangelis Kokkevis [chromium] FPS counter causes garbage to be displayed at top left corner https://bugs.webkit.org/show_bug.cgi?id=81851 The HUD expects the PlatformCanvas it paints on to be cleared on creation which is no longer true after http://src.chromium.org/viewvc/chrome?view=rev&revision=127196 . This patch does an explicit clearRect before the HUD contents are painted. Reviewed by Adrienne Walker. TEST=Manually verified that --show-fps-counter and --show-composited-layer-tree work correctly. * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::draw): 2012-03-21 Ryosuke Niwa Touch a file to make Chromium Windows bots happy. * css/CSSValueKeywords.in: 2012-03-19 Igor Oliveira Every call to RenderObject::setAnimatableStyle() iterates through all m_compositeAnimations: potentially O(N^2) https://bugs.webkit.org/show_bug.cgi?id=38025 Implement updateAnimationTimerForRender. This reduces unnecessary animation steps on the current RenderObject by checking the value of timeToNextService before starting a new timer. Reviewed by Dean Jackson. Test: animations/animation-welcome-safari.html * page/animation/AnimationController.cpp: (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer): (WebCore): (WebCore::AnimationController::updateAnimations): * page/animation/AnimationControllerPrivate.h: (AnimationControllerPrivate): 2012-03-21 Sheriff Bot Unreviewed, rolling out r111616. http://trac.webkit.org/changeset/111616 https://bugs.webkit.org/show_bug.cgi?id=81862 broke chromium mac (Requested by eae on #webkit). * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCLayerImpl.h: (CCLayerImpl): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::calculateRenderPasses): (WebCore::CCLayerTreeHostImpl::drawLayers): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: (CCLayerTreeHostImpl): * platform/graphics/chromium/cc/CCQuadCuller.cpp: (WebCore::CCQuadCuller::append): * platform/graphics/chromium/cc/CCQuadCuller.h: (CCQuadCuller): * platform/graphics/chromium/cc/CCRenderPass.cpp: (WebCore::CCRenderPass::appendQuadsForLayer): * platform/graphics/chromium/cc/CCRenderPass.h: (CCRenderPass): * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp: (WebCore::CCScrollbarLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h: (CCScrollbarLayerImpl): * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: (WebCore::CCSingleThreadProxy::doComposite): * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp: (WebCore::CCSolidColorLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h: (CCSolidColorLayerImpl): * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp: (WebCore::CCTextureLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCTextureLayerImpl.h: (CCTextureLayerImpl): * platform/graphics/chromium/cc/CCThreadProxy.cpp: (WebCore::CCThreadProxy::scheduledActionDrawAndSwap): * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp: (WebCore::CCTiledLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCTiledLayerImpl.h: (CCTiledLayerImpl): * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore::CCVideoLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCVideoLayerImpl.h: (CCVideoLayerImpl): 2012-03-21 Beth Dakin https://bugs.webkit.org/show_bug.cgi?id=80322 Implement image-set Reviewed by Dean Jackson. This initial implementation of -webkit-image-set. http://lists.w3.org/Archives/Public/www-style/2012Feb/1103.html The idea behind the feature is to allow authors to provide multiple variants of the same image at differing resolutions, and to allow the User Agent to choose the resource that is most appropriate at the time. This patch will choose the most appropriate image based on device scale factor. CSSImageSetValue inherits from CSSValueList and behaves a lot like CSSImageValue. * WebCore.xcodeproj/project.pbxproj: * css/CSSImageSetValue.h: Added. (WebCore): (CSSImageSetValue): (WebCore::CSSImageSetValue::create): (WebCore::CSSImageSetValue::isPending): (ImageWithScale): (WebCore::CSSImageSetValue::compareByScaleFactor): * css/CSSImageSetValue.cpp: Added. (WebCore): (WebCore::CSSImageSetValue::CSSImageSetValue): (WebCore::CSSImageSetValue::~CSSImageSetValue): (WebCore::CSSImageSetValue::cachedOrPendingImageSet): (WebCore::CSSImageSetValue::customCssText): fillImageSet() iterates through the value list and turns the information into a sorted Vector of ImageWithScales (which is a struct containing image URLs and scale factors). (WebCore::CSSImageSetValue::fillImageSet): cachedImageSet() finds which image is most appropriate based on the device scale factor, and it loads only that image. In the future, additional scale factors will be taken into account. (WebCore::CSSImageSetValue::bestImageForScaleFactor): (WebCore::CSSImageSetValue::cachedImageSet): parseImageSet() is called everywhere in the CSSParser that a regular image or generated image can be found. * css/CSSParser.cpp: (WebCore::CSSParser::parseValue): (WebCore::CSSParser::parseContent): (WebCore::CSSParser::parseFillImage): (WebCore::CSSParser::parseBorderImage): (WebCore): (WebCore::CSSParser::parseImageSet): * css/CSSParser.h: Since CSSImageSetValue is implemented as a value list, ApplyPropertyFillLayer::applyValue() needs to be more specific when it's looking for a list of multiple URLs. * css/CSSStyleApplyProperty.cpp: (WebCore::ApplyPropertyFillLayer::applyValue): Handle image-set as a valid image value. * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::collectMatchingRulesForList): * css/CSSStyleSelector.h: (CSSStyleSelector): * css/CSSValue.cpp: (WebCore::CSSValue::cssText): (WebCore::CSSValue::destroy): * css/CSSValue.h: (CSSValue): (WebCore::CSSValue::isImageSetValue): computeIntrinsicDimensions() now takes an optional scaleFactor parameter that represents the author-enforced "intrinsic" scale factor of the image. * loader/cache/CachedImage.cpp: (WebCore::CachedImage::computeIntrinsicDimensions): * loader/cache/CachedImage.h: (CachedImage): * platform/graphics/GeneratedImage.h: (GeneratedImage): * platform/graphics/GeneratorGeneratedImage.cpp: (WebCore::GeneratedImage::computeIntrinsicDimensions): * platform/graphics/Image.cpp: (WebCore::Image::computeIntrinsicDimensions): * platform/graphics/Image.h: (Image): * platform/graphics/cg/PDFDocumentImage.cpp: (WebCore::PDFDocumentImage::computeIntrinsicDimensions): * platform/graphics/cg/PDFDocumentImage.h: (PDFDocumentImage): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::computeIntrinsicDimensions): * svg/graphics/SVGImage.h: (SVGImage): Inherits from StyleImage and returns a scaled size for imageSize() and computeIntrinsicDimensions(). * rendering/style/StyleCachedImageSet.cpp: Added. (WebCore): (WebCore::StyleCachedImageSet::StyleCachedImageSet): (WebCore::StyleCachedImageSet::cssValue): (WebCore::StyleCachedImageSet::canRender): (WebCore::StyleCachedImageSet::isLoaded): (WebCore::StyleCachedImageSet::errorOccurred): (WebCore::StyleCachedImageSet::imageSize): (WebCore::StyleCachedImageSet::imageHasRelativeWidth): (WebCore::StyleCachedImageSet::imageHasRelativeHeight): (WebCore::StyleCachedImageSet::computeIntrinsicDimensions): (WebCore::StyleCachedImageSet::usesImageContainerSize): (WebCore::StyleCachedImageSet::setContainerSizeForRenderer): (WebCore::StyleCachedImageSet::addClient): (WebCore::StyleCachedImageSet::removeClient): (WebCore::StyleCachedImageSet::image): * rendering/style/StyleCachedImageSet.h: Added. (WebCore): (StyleCachedImageSet): (WebCore::StyleCachedImageSet::create): (WebCore::StyleCachedImageSet::data): (WebCore::StyleCachedImageSet::cachedImage): Handle image-set. * rendering/style/StyleImage.h: (WebCore::StyleImage::isCachedImageSet): (WebCore::StyleImage::StyleImage): (StyleImage): * rendering/style/StylePendingImage.h: (StylePendingImage): (WebCore::StylePendingImage::cssImageSetValue): 2012-03-21 David Barton MathML internals - improve naming in RenderMathMLSquareRoot.cpp and RenderMathMLRoot.cpp https://bugs.webkit.org/show_bug.cgi?id=81850 Reviewed by Eric Seidel. This prepares these files for bug fixes, and eventually combining their common code. To understand this patch, I suggest you start with RenderMathMLSquareRoot.cpp, as it's simpler than RenderMathMLRoot.cpp. No new tests. LayoutTests/mathml/presentation/roots.xhtml is thorough enough for this. * rendering/mathml/RenderMathMLRoot.cpp: (WebCore): (WebCore::RenderMathMLRoot::addChild): (WebCore::RenderMathMLRoot::paint): (WebCore::RenderMathMLRoot::layout): * rendering/mathml/RenderMathMLRoot.h: (WebCore): (RenderMathMLRoot): * rendering/mathml/RenderMathMLSquareRoot.cpp: (WebCore): (WebCore::RenderMathMLSquareRoot::paint): (WebCore::RenderMathMLSquareRoot::layout): * rendering/mathml/RenderMathMLSquareRoot.h: (WebCore): (RenderMathMLSquareRoot): * rendering/mathml/RenderMathMLSubSup.h: (WebCore): 2012-03-21 Tony Chang refactor flexbox in preparation for flex-line-pack https://bugs.webkit.org/show_bug.cgi?id=81843 Reviewed by Ojan Vafai. Replace WrapReverseContext with a vector of LineContexts that contain the same information, plus values needed for flex-align. alignChildren has been moved to after all the lines have been positioned. We want to align children after flex-line-pack has changed the size of each line to avoid unnecessary layouts. No new tests, just refactoring. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct, holds information needed for wrap-reverse and aligning children. (RenderFlexibleBox::LineContext): (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line. (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time. (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext * rendering/RenderFlexibleBox.h: 2012-03-21 Ryosuke Niwa BDI element should have dir=auto by default https://bugs.webkit.org/show_bug.cgi?id=68773 Reviewed by Daniel Bates. Treat bdi elements without dir content attribute as if they have dir=auto per spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-bdi-element The patch tries to encapsulate the logic to look for dir content attribute and dir=auto. It also adds HTMLBDIElement interface (binding remains to use HTMLElement) to set selfOrAncestorHasDirAutoAttribute flag true by default, which is used by functions like directionalityIfhasDirAutoAttribute to look for elements with dir=auto. Since dir=auto-ness of bdi elements can be overridden by dir content attribute, we must change and only change the default value. Tests: fast/text/international/bdi-dir-default-to-auto-expected.html fast/text/international/bdi-dir-default-to-auto.html * GNUmakefile.list.am: * Target.pri: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::collectMatchingRulesForList): * html/HTMLBDIElement.h: Added. (WebCore): (HTMLBDIElement): (WebCore::HTMLBDIElement::create): (WebCore::HTMLBDIElement::HTMLBDIElement): Sets selfOrAncestorHasDirAutoAttribute to true because bdi elements are treated as if it has dir=auto by default. * html/HTMLElement.cpp: (WebCore::elementAffectsDirectionality): Added. Checks if the specified element is bdi or has dir content attribute. (WebCore): (WebCore::setHasDirAutoFlagRecursively): (WebCore::HTMLElement::hasDirectionAuto): Added. Checks if the specified element should be treated as if it has dir=auto (bdi or element with dir=auto). (WebCore::HTMLElement::directionalityIfhasDirAutoAttribute): (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged): (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged): * html/HTMLElement.h: (HTMLElement): * html/HTMLTagNames.in: Use HTMLBDIElement instead of HTMLElement for constructing bdi element to set selfOrAncestorHasDirAutoAttribute true but still use HTMLElement for binding. 2012-03-21 Luke Macpherson Use CSSPrimitiveValue::convertToLength() in a few places. https://bugs.webkit.org/show_bug.cgi?id=81492 Reviewed by Eric Seidel. No new tests - refactoring only. CSSPrimitiveValue::convertToLength() provides the same functionality that is duplicated in many places in CSSStyleSelector. This patch removes some of that code duplication. * css/CSSStyleApplyProperty.cpp: (WebCore::ApplyPropertyVerticalAlign::applyValue): * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::collectMatchingRulesForList): 2012-03-21 Patrick Gansterer Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r111601. * rendering/svg/RenderSVGRoot.cpp: 2012-03-21 Patrick Gansterer Build fix for !ENABLE(INSPECTOR) after r104831. * bindings/js/ScriptDebugServer.cpp: (WebCore::ScriptDebugServer::dispatchDidParseSource): 2012-03-21 Xiaomei Ji visual word movement: using cache to decrease the number of collectLeafBoxesInLogicalOrder on RootInlineBox https://bugs.webkit.org/show_bug.cgi?id=81408 Reviewed by Ryosuke Niwa. Cache logically ordered leaf boxes under a particular root box. Also, move 'Vector string' declared in visualWordPosition() to outside of loop (it is always clear-ed before use). * editing/visible_units.cpp: (CachedLogicallyOrderedLeafBoxes): Add class to cache logically ordered leaf boxes under a particular root box. (WebCore::CachedLogicallyOrderedLeafBoxes::size): (WebCore::CachedLogicallyOrderedLeafBoxes::firstBox): (WebCore): (WebCore::CachedLogicallyOrderedLeafBoxes::CachedLogicallyOrderedLeafBoxes): (WebCore::CachedLogicallyOrderedLeafBoxes::previousTextBox): (WebCore::CachedLogicallyOrderedLeafBoxes::nextTextBox): (WebCore::CachedLogicallyOrderedLeafBoxes::collectBoxes): (WebCore::CachedLogicallyOrderedLeafBoxes::boxIndexInLeaves): (WebCore::logicallyPreviousBox): Pass CachedLogicallyOrderedLeafBoxes object around. (WebCore::logicallyNextBox): (WebCore::wordBreakIteratorForMinOffsetBoundary): (WebCore::wordBreakIteratorForMaxOffsetBoundary): (WebCore::visualWordPosition): 2012-03-21 Dana Jansens [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame https://bugs.webkit.org/show_bug.cgi?id=81437 Reviewed by Adrienne Walker. Split CCLayerTreeHostImpl::drawLayers() into two phases: prepareToDraw() and drawLayers(). When calculating a RenderPass, and we checkerboard a quad on a layer, bubble this info back up to CCLayerTreeHostImpl. If the layer is transforming in an animation, then abort the prepareToDraw() phase and cause it to return false back to the thread proxy. Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCLayerImpl.h: (CCLayerImpl): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::calculateRenderPasses): (WebCore::CCLayerTreeHostImpl::prepareToDraw): (WebCore): (WebCore::CCLayerTreeHostImpl::drawLayers): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: (CCLayerTreeHostImpl): (FrameData): * platform/graphics/chromium/cc/CCQuadCuller.cpp: (WebCore::CCQuadCuller::append): * platform/graphics/chromium/cc/CCQuadCuller.h: (CCQuadCuller): * platform/graphics/chromium/cc/CCRenderPass.cpp: (WebCore::CCRenderPass::appendQuadsForLayer): * platform/graphics/chromium/cc/CCRenderPass.h: (CCRenderPass): * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp: (WebCore::CCScrollbarLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h: (CCScrollbarLayerImpl): * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: (WebCore::CCSingleThreadProxy::doComposite): * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp: (WebCore::CCSolidColorLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h: (CCSolidColorLayerImpl): * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp: (WebCore::CCTextureLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCTextureLayerImpl.h: (CCTextureLayerImpl): * platform/graphics/chromium/cc/CCThreadProxy.cpp: (WebCore::CCThreadProxy::scheduledActionDrawAndSwap): * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp: (WebCore::CCTiledLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCTiledLayerImpl.h: (CCTiledLayerImpl): * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: (WebCore::CCVideoLayerImpl::appendQuads): * platform/graphics/chromium/cc/CCVideoLayerImpl.h: (CCVideoLayerImpl): 2012-03-21 Enrica Casucci WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters. https://bugs.webkit.org/show_bug.cgi?id=81835 Reviewed by Brady Eidson. When writing the URL in the pasteboard for the WebURLWithTitles format, we use the user visible string instead of the original URL. In case of URL with Unicode characters, we lose the encoding. Added TestWebKitAPI test. * platform/mac/PasteboardMac.mm: (WebCore::writeURLForTypes): Writes to the pasteboard the original URL. 2012-03-21 Levi Weintraub Correct LayoutUnit usage in VisiblePosition.cpp https://bugs.webkit.org/show_bug.cgi?id=81775 Reviewed by Eric Seidel. Correcting a mismatch between the .h and .cpp for the definition of localCaretRect, and properly using LayoutUnits for local coordinates. No new tests. No change in behavior. * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::localCaretRect): Switching to return a LayoutRect, as in the header. Local coordinates are in LayoutUnits. (WebCore::VisiblePosition::absoluteCaretBounds): Using LayoutRect for the localCaretRect. (WebCore::VisiblePosition::lineDirectionPointForBlockDirectionNavigation): Ditto. 2012-03-21 Adam Klein "this" argument for MutationCallbacks should be the MutationObserver https://bugs.webkit.org/show_bug.cgi?id=81712 Reviewed by Adam Barth. Test: fast/mutation/callback-arguments.html * bindings/js/JSCallbackData.cpp: (WebCore::JSCallbackData::invokeCallback): Add an overload that takes an explicit this argument and have the old method call the new one. * bindings/js/JSCallbackData.h: (JSCallbackData): * bindings/js/JSMutationCallbackCustom.cpp: (WebCore::JSMutationCallback::handleEvent): Call the new overload. * bindings/v8/custom/V8CustomVoidCallback.cpp: (WebCore::invokeCallback): Add an overload that takes an explicit this argument and have the old method call the new one. * bindings/v8/custom/V8CustomVoidCallback.h: (WebCore): * bindings/v8/custom/V8MutationCallbackCustom.cpp: (WebCore::V8MutationCallback::handleEvent): Call the new overload. 2012-03-21 Alexandru Chiculita [CSS Shaders] Make CSS Shaders compile on Chromium https://bugs.webkit.org/show_bug.cgi?id=81435 Reviewed by Stephen White. This patch enables the CSS Shaders compile time flag, but keeps the runtime flag disabled. The only way to test the functionality now is to use the overridePreference from dump render tree. Also part of this patch I fix a layering violation: I removed the "Document" reference from the FECustomFilter.cpp and passed the HostWindow directly. There should be no problem when the HostWindow changes, because the RenderLayer and the FECustomFilter get recreated anyway. No new tests. I've updated the existing custom filter tests to run under Chromium and added the expected results. I've just added window.layoutTestController.overridePreference("WebKitCSSCustomFilterEnabled", "1") to force enable the feature at runtime. * loader/cache/CachedResource.cpp: Made CachedResource::ShaderResource report as ResourceRequest::TargetIsSubresource for Chromium. (WebCore::cachedResourceTypeToTargetType): * platform/graphics/filters/FECustomFilter.cpp: (WebCore::FECustomFilter::FECustomFilter): Removed Document and just used the HostWindow directly. (WebCore::FECustomFilter::create): (WebCore::FECustomFilter::initializeContext): (WebCore::FECustomFilter::bindVertexAttribute): There was a typo and instead of using the "size" parameter it always used 4 component attribute. Other drivers didn't complain about it, but it was clearly a bug. (WebCore::FECustomFilter::bindProgramAndBuffers): Reading the image back from GPU will flip vertically the framebuffer in Chromium. I've flipped the projection matrix only on Chromium, so that we get the correct result. * rendering/FilterEffectRenderer.cpp: (WebCore::FilterEffectRenderer::build): Passing the HostWindow instead of the Document. 2012-03-21 Mark Pilgrim Realphabetize about webaudio move https://bugs.webkit.org/show_bug.cgi?id=81825 Reviewed by Adam Barth. No new tests, all existing tests pass. * CMakeLists.txt: 2012-03-21 Anders Carlsson Evict tiles from pages in background tabs https://bugs.webkit.org/show_bug.cgi?id=81829 Reviewed by Andreas Kling. When the tile cache for a page is no longer in a window (which happens when it's moved to a background tab), schedule a tile revalidation after 4 seconds. This tile revalidation will ensure that tiles outside of the visible rect will be dropped. * platform/graphics/ca/mac/TileCache.h: (TileCache): * platform/graphics/ca/mac/TileCache.mm: (WebCore::TileCache::tileCacheLayerBoundsChanged): (WebCore::TileCache::setIsInWindow): (WebCore::TileCache::tileCoverageRect): (WebCore): (WebCore::TileCache::scheduleTileRevalidation): (WebCore::TileCache::revalidateTiles): 2012-03-21 Stephen Chenney SVG layout leaves objects still needing layout https://bugs.webkit.org/show_bug.cgi?id=81006 Reviewed by Nikolas Zimmermann. Change the layout of SVG objects such that resources that trigger layout of other objects are handled in a distinct pass, and then objects still requiring layout are laid out again. Test: svg/custom/delete-text-innerText-crash.html * rendering/svg/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::layout): * rendering/svg/RenderSVGResourceMarker.cpp: (WebCore::RenderSVGResourceMarker::layout): * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::layout): (WebCore::RenderSVGRoot::addResourceForClientInvalidation): (WebCore): * rendering/svg/RenderSVGRoot.h: (RenderSVGRoot): 2012-03-21 Tim Horton Make use of CG rounded-rect primitives https://bugs.webkit.org/show_bug.cgi?id=79932 Reviewed by Simon Fraser. Portions of patch by Nikolas Zimmermann and Mustafizur Rahaman. Dispatch to potentially platform-specific rounded rectangle path construction from addPathForRoundedRect. Make use of this to call wkCGPathAddRoundedRect on Lion and above, as long as the rounded corners are all equivalent. The origin of the stroke dash differs between the bezier approach and the path added by wkCGPathAddRoundedRect, so Path::addRoundedRect() takes a new parameter allowing code which is sensitive to stroke dash origin (i.e. SVG) to fall back to the old behavior if need be. Make use of the new Path::addRoundedRect() parameter to fall back to the old (bezier) rounded-rect behavior when constructing a dashed SVG path, in order to continue complying with the spec. No new tests, as this is covered by many that use rounded corners, and is only a performance improvement. * WebCore.exp.in: * platform/graphics/Path.cpp: (WebCore::Path::addRoundedRect): (WebCore): (WebCore::Path::addPathForRoundedRect): * platform/graphics/Path.h: (Path): * platform/graphics/cg/PathCG.cpp: (WebCore::Path::platformAddPathForRoundedRect): (WebCore): * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: * rendering/svg/SVGPathData.cpp: (WebCore::updatePathFromRectElement): 2012-03-21 David Reveman [Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support. https://bugs.webkit.org/show_bug.cgi?id=80988 Reviewed by Adrienne Walker. Expose EXT_occlusion_query API to WebKit compositor. Add GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query enums. * platform/graphics/chromium/Extensions3DChromium.h: (Extensions3DChromium): 2012-03-21 Tony Chang compute the sign of flexibility for new flexbox https://bugs.webkit.org/show_bug.cgi?id=81722 Reviewed by Ojan Vafai. This implements the computation of the sign of flexibility used by the new flexing algorithm. http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths No new tests, we don't use the sign of flexibility yet. * rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutFlexItems): (WebCore::RenderFlexibleBox::computeNextFlexLine): Compute the size adjusted for min/max as well as not adjusted. (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Renamed to match spec text better. * rendering/RenderFlexibleBox.h: Added enum for flex sign. 2012-03-21 Vsevolod Vlasov Web Inspector: Extract WebInspector.UIBreakpoint from WebInspector.Breakpoint. https://bugs.webkit.org/show_bug.cgi?id=81669 Reviewed by Pavel Feldman. * inspector/front-end/BreakpointManager.js: (WebInspector.BreakpointManager.get for): (WebInspector.BreakpointManager): (WebInspector.BreakpointManager.prototype.uiSourceCodeAdded): (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved): (WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode): (WebInspector.BreakpointManager.prototype.setBreakpoint): (WebInspector.BreakpointManager.prototype.removeBreakpoint): (WebInspector.BreakpointManager.prototype._innerRemoveBreakpoint): (WebInspector.BreakpointManager.prototype.removeAllBreakpoints): (WebInspector.BreakpointManager.prototype._moveBreakpointInUI): (WebInspector.BreakpointManager.prototype._uiBreakpoints.get this): (WebInspector.BreakpointManager.prototype._uiBreakpoints): (WebInspector.BreakpointManager.prototype.get _uiBreakpoint): (WebInspector.BreakpointManager.prototype._addBreakpointToUI): (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI): (WebInspector.BreakpointManager.prototype._breakpoints): (WebInspector.BreakpointManager.prototype._breakpoint): (WebInspector.BreakpointManager.prototype._addBreakpointToModel): (WebInspector.BreakpointManager.prototype._removeBreakpointFromModel): (WebInspector.BreakpointManager.prototype._forEachBreakpoint): (WebInspector.BreakpointManager.prototype._setBreakpointInDebugger): (WebInspector.BreakpointManager.prototype._removeBreakpointFromDebugger): (WebInspector.BreakpointManager.prototype.debuggerReset): (WebInspector.Breakpoint.prototype.serialize): (WebInspector.Breakpoint.prototype.get uiBreakpoint): (WebInspector.Breakpoint.prototype.createUIBreakpoint): (WebInspector.Breakpoint.prototype.removeUIBreakpoint): (WebInspector.UIBreakpoint): * inspector/front-end/DebuggerPresentationModel.js: (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged): (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint): (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded): (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved): * inspector/front-end/ScriptsPanel.js: 2012-03-21 Anders Carlsson TileCache needs to know if its containing page is in a window https://bugs.webkit.org/show_bug.cgi?id=81821 Reviewed by Andreas Kling. This is in preparation for throwing away invisible tiles in background tabs to reduce memory usage. * page/FrameView.cpp: (WebCore::FrameView::didMoveOnscreen): (WebCore::FrameView::willMoveOffscreen): * page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::didMoveOnscreen): (WebCore::Page::willMoveOffscreen): * page/Page.h: (WebCore::Page::isOnscreen): (Page): * platform/graphics/TiledBacking.h: (TiledBacking): * platform/graphics/ca/mac/TileCache.h: (TileCache): * platform/graphics/ca/mac/TileCache.mm: (WebCore::TileCache::TileCache): (WebCore::TileCache::setIsInWindow): (WebCore): * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::RenderLayerBacking): 2012-03-21 Xingnan Wang Web audio layout test failed in debug with an ASSERT error in ReverbConvolverStage.cpp https://bugs.webkit.org/show_bug.cgi?id=81744 Reviewed by Chris Rogers. * platform/audio/ReverbConvolverStage.cpp: (WebCore::ReverbConvolverStage::ReverbConvolverStage): 2012-03-21 Xiaomei Ji [chromium] Font fallback in cr-win is wrong for string contains zero-width-space. https://bugs.webkit.org/show_bug.cgi?id=79961 Reviewed by Adam Barth. Treat zero-width-space (\u200B) as true for treatAsZeroWidthSpaceInComplexScipt(). * platform/graphics/Font.h: (WebCore::Font::treatAsZeroWidthSpaceInComplexScript): * platform/graphics/mac/ComplexTextController.cpp: (WebCore::ComplexTextController::adjustGlyphsAndAdvances): * platform/graphics/win/UniscribeController.cpp: (WebCore::UniscribeController::shapeAndPlaceItem): 2012-03-21 Patrick Gansterer Build fix for !ENABLE(INSPECTOR) after r111005. * inspector/ContentSearchUtils.h: 2012-03-21 Ulan Degenbaev [V8] V8GCForContextDispose should indicate whether a context is disposed for the main frame or not https://bugs.webkit.org/show_bug.cgi?id=81200 Reviewed by Adam Barth. Pass a hint to V8::IdleNotification that requests more aggressive GC when a main frame context is disposed and requests incremental GC otherwise. * bindings/v8/V8DOMWindowShell.cpp: (WebCore::V8DOMWindowShell::disposeContextHandles): * bindings/v8/V8GCForContextDispose.cpp: (WebCore::V8GCForContextDispose::V8GCForContextDispose): (WebCore::V8GCForContextDispose::notifyContextDisposed): (WebCore::V8GCForContextDispose::pseudoIdleTimerFired): * bindings/v8/V8GCForContextDispose.h: (V8GCForContextDispose): 2012-03-21 Nat Duca [chromium] CCThreadProxy must initialize frameBeginTime to monotonicallyIncreasingTime rather than zero https://bugs.webkit.org/show_bug.cgi?id=81790 Reviewed by James Robinson. * platform/graphics/chromium/cc/CCThreadProxy.cpp: (WebCore::CCThreadProxy::scheduledActionBeginFrame): 2012-03-21 Xingnan Wang Add multichannel support in RealtimeAnalyser https://bugs.webkit.org/show_bug.cgi?id=81745 Reviewed by Chris Rogers. * Modules/webaudio/RealtimeAnalyser.cpp: (WebCore::RealtimeAnalyser::writeInput): (WebCore): 2012-03-21 Eric Carlson Removing HTMLTrackElement does not delete TextTrack https://bugs.webkit.org/show_bug.cgi?id=80873 Reviewed by Antti Koivisto. No new tests, but media/track/track-language-preference.html has been updated to test this fix. * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::didAddTrack): Renamed from trackWasAdded. (WebCore::HTMLMediaElement::willRemoveTrack): Renamed from trackWasRemoved because it is called before the track is removed, to allow the TextTrack to be removed. * html/HTMLMediaElement.h: * html/HTMLTrackElement.cpp: (WebCore::HTMLTrackElement::insertedIntoTree): Renamed from insertedIntoDocument (WebCore::HTMLTrackElement::willRemove): Renamed from removedFromDocument. * html/HTMLTrackElement.h: * html/track/LoadableTextTrack.cpp: (WebCore::LoadableTextTrack::trackElementIndex): Don't include tracks that are not in the document in the calcualtion. 2012-03-21 Zeno Albisser [Qt][Mac] ranlib segfaults when creating symbol tables for libWebCore.a. https://bugs.webkit.org/show_bug.cgi?id=81750 Building WebCore on mac currently creates an archive that is bigger than 4GB. But ranlib fails to create a symbol table for such a big archive, even on 64bit machines. Therefore we start using SVGAllInOne.cpp when building debug on mac. This reduces the size of the archive by about 300MB. Reviewed by Tor Arne Vestbø. * Target.pri: 2012-03-21 Tommy Widenflycht [chromium] MediaStream API (JSEP): Introducing WebSessionDescription and WebIceCandidate https://bugs.webkit.org/show_bug.cgi?id=81339 Reviewed by Adam Barth. Not possible to test until the entire JSEP feature is commited. * Modules/mediastream/IceCandidate.cpp: (WebCore::IceCandidate::toSdp): * Modules/mediastream/SessionDescription.cpp: (WebCore::SessionDescription::toSdp): * platform/mediastream/IceCandidateDescriptor.cpp: (WebCore::IceCandidateDescriptor::toSDP): * platform/mediastream/IceCandidateDescriptor.h: (IceCandidateDescriptor): * platform/mediastream/MediaStreamCenter.cpp: (WebCore::MediaStreamCenter::constructSDP): * platform/mediastream/MediaStreamCenter.h: (MediaStreamCenter): * platform/mediastream/SessionDescriptionDescriptor.cpp: (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor): (WebCore::SessionDescriptionDescriptor::toSDP): (WebCore::SessionDescriptionDescriptor::initialSDP): * platform/mediastream/SessionDescriptionDescriptor.h: (SessionDescriptionDescriptor): 2012-03-21 Yuta Kitamura Use RFC version of WebSocket protocol by default https://bugs.webkit.org/show_bug.cgi?id=81718 Reviewed by Kent Tamura. Flip the default value of Settings::m_useHixie76WebSocketProtocol so WebKit ports will use RFC version of WebSocket protocol by default. All the existing ports already use the RFC protocol as of now, so this change will not make any impact (hopefully). No new tests. No change in functionality. * page/Settings.cpp: (WebCore::Settings::Settings): 2012-03-21 Andrey Kosyakov Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel https://bugs.webkit.org/show_bug.cgi?id=81798 Reviewed by Pavel Feldman. * bindings/js/JSInjectedScriptHostCustom.cpp: (WebCore::getJSListenerFunctions): * bindings/js/ScriptEventListener.cpp: (WebCore::eventListenerHandlerBody): (WebCore::eventListenerHandlerLocation): * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: (WebCore::getJSListenerFunctions): * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::getEventListeners): 2012-03-21 Andrey Kosyakov EventListener::Type enum has unused member InspectorDOMAgentType https://bugs.webkit.org/show_bug.cgi?id=81794 Reviewed by Pavel Feldman. * dom/EventListener.h: 2012-03-21 Tom Hudson Incremental cleanup of BitmapImage: inlined virtual functions https://bugs.webkit.org/show_bug.cgi?id=81688 Reviewed by James Robinson. No change in functionality, so no new tests. Move virtual functions defined in headers into .cpp files. * WebCore.gypi: * platform/graphics/BitmapImage.cpp: (WebCore::BitmapImage::isBitmapImage): (WebCore): (WebCore::BitmapImage::hasSingleSecurityOrigin): (WebCore::BitmapImage::nativeImageForCurrentFrame): (WebCore::BitmapImage::currentFrameHasAlpha): (WebCore::BitmapImage::notSolidColor): (WebCore::BitmapImage::decodedSize): (WebCore::BitmapImage::mayFillWithSolidColor): (WebCore::BitmapImage::solidColor): * platform/graphics/BitmapImage.h: (BitmapImage): * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Added. (WebCore): (WebCore::BitmapImageSingleFrameSkia::isBitmapImage): (WebCore::BitmapImageSingleFrameSkia::currentFrameHasAlpha): (WebCore::BitmapImageSingleFrameSkia::size): (WebCore::BitmapImageSingleFrameSkia::destroyDecodedData): (WebCore::BitmapImageSingleFrameSkia::decodedSize): (WebCore::BitmapImageSingleFrameSkia::nativeImageForCurrentFrame): (WebCore::BitmapImageSingleFrameSkia::notSolidColor): * platform/graphics/skia/BitmapImageSingleFrameSkia.h: (BitmapImageSingleFrameSkia): 2012-03-21 Alexey Proskuryakov Remove obsolete File attributes https://bugs.webkit.org/show_bug.cgi?id=79383 Reviewed by Hajime Morita. * bindings/objc/PublicDOMInterfaces.h: * fileapi/File.h: * fileapi/File.idl: Removed fileName and fileSize, they have different names now. * html/FileInputType.cpp: (WebCore::FileInputType::appendFormData): (WebCore::FileInputType::getTypeSpecificValue): (WebCore::FileInputType::defaultToolTip): Updated to use new function names. 2012-03-21 Jocelyn Turcotte TiledBackingStore: Create the first round of tiles synchronously after setting the visible rect. https://bugs.webkit.org/show_bug.cgi?id=81762 Reviewed by Kenneth Rohde Christiansen. The first round of tiles should cover completely the visible rect. Creating the tiles synchronously allows us to get the new tiles immediately and prevents an extra AC layers sync to be able to remove the old tiles. At some point it might also make sense to remove the tile creation timer completely. * platform/graphics/TiledBackingStore.cpp: (WebCore::TiledBackingStore::coverWithTilesIfNeeded): 2012-03-19 Jocelyn Turcotte TiledBackingStore: When checking if the visible area is covered, only convert to scaled coordinates once. https://bugs.webkit.org/show_bug.cgi?id=81519 Reviewed by Kenneth Rohde Christiansen. Both visibleRect and coverageRatio call mapFromContents on the input rect, this woulc cause the coverageRatio to never reach 1.0 when the contents is scaled up. * platform/graphics/TiledBackingStore.cpp: (WebCore::TiledBackingStore::visibleAreaIsCovered): 2012-03-21 Mao Yujie MediaStream API: Need to support MediaStream constructor for JSC https://bugs.webkit.org/show_bug.cgi?id=78781 Reviewed by Adam Barth. No new tests. * Modules/mediastream/DOMWindowMediaStream.idl: * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::webkitMediaStreamEnabled): 2012-03-21 Philip Rogers Skip building resources if SVGTRef is not in a document https://bugs.webkit.org/show_bug.cgi?id=81473 Reviewed by Nikolas Zimmermann. We can skip the building of pending resources in SVGTRef if we're not yet in a document. This mirrors the nearly identical logic in SVGUseElement::buildPendingResource() and SVGFEImageElement::buildPendingResource(). Test: http/tests/svg/tref-adoptNode-crash.html * svg/SVGTRefElement.cpp: (WebCore::SVGTRefElement::buildPendingResource): 2012-03-21 Sami Kyostila [chromium] Use floating point scroll deltas for layers https://bugs.webkit.org/show_bug.cgi?id=81546 Reviewed by James Robinson. Use floating point scroll deltas for layers instead of integral scroll deltas. This is because due to page scaling it may be necessary to scroll layers in sub-CSS-pixel steps to avoid visible jumps. When the floating point scroll offset is committed to the main thread, it is truncated to integer, but the fractional part is kept on the CC side to make sure fractional scroll offsets are accumulated correctly over multiple commits. Test: CCLayerTreeHostTestFractionalScroll * platform/graphics/FloatPoint.h: (WebCore::toSize): (WebCore): * platform/graphics/chromium/cc/CCLayerImpl.cpp: (WebCore::CCLayerImpl::scrollBy): (WebCore::CCLayerImpl::setScrollDelta): * platform/graphics/chromium/cc/CCLayerImpl.h: (WebCore::CCLayerImpl::scrollDelta): (CCLayerImpl): * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation): (WebCore::CCLayerTreeHostImpl::adjustScrollsForPageScaleChange): (WebCore::CCLayerTreeHostImpl::processScrollDeltas): (WebCore::CCLayerTreeHostImpl::animatePageScale): 2012-03-21 Li Yin [WebSocket]The Sec-WebSocket-Accept MUST NOT appear more than once in an HTTP response https://bugs.webkit.org/show_bug.cgi?id=81655 Reviewed by Adam Barth. Test: http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header.html * Modules/websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::readHTTPHeaders): 2012-03-21 Alexei Filippov Web Inspector: Speedup heap snapshot loading. https://bugs.webkit.org/show_bug.cgi?id=81788 Reviewed by Yury Semikhatsky. * inspector/front-end/HeapSnapshot.js: (WebInspector.HeapSnapshotLoader.prototype._parseNodes): 2012-03-21 Pavel Feldman Web Inspector: get rid of isInEditMode, use isBeingEdited on particular element. https://bugs.webkit.org/show_bug.cgi?id=81766 Reviewed by Yury Semikhatsky. We should check event target and its ancestors for being edited, not use some global property. This change also introduces Event.prototype.consume so that we were consistently consuming events. * inspector/front-end/AdvancedSearchController.js: (WebInspector.SearchView.prototype._onKeyDown): * inspector/front-end/BreakpointsSidebarPane.js: (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointCheckboxClicked): * inspector/front-end/CSSSelectorProfileView.js: * inspector/front-end/Checkbox.js: (WebInspector.Checkbox.prototype.addEventListener): * inspector/front-end/ConsoleView.js: (WebInspector.ConsoleView.prototype._enterKeyPressed): (WebInspector.ConsoleGroup.prototype._titleClicked): * inspector/front-end/ContextMenu.js: (WebInspector.ContextMenu.prototype.show): * inspector/front-end/DataGrid.js: (WebInspector.DataGrid.prototype._keyDown): * inspector/front-end/DatabaseQueryView.js: (WebInspector.DatabaseQueryView.prototype._enterKeyPressed): * inspector/front-end/DetailedHeapshotView.js: (WebInspector.DetailedHeapshotView.prototype._mouseDownInContentsGrid): (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging): (WebInspector.DetailedHeapshotView.prototype._retainersHeaderDragging): (WebInspector.DetailedHeapshotView.prototype._endRetainersHeaderDragging): * inspector/front-end/Dialog.js: (WebInspector.Dialog.prototype._onKeyDown): * inspector/front-end/Drawer.js: (WebInspector.Drawer.prototype._startStatusBarDragging): (WebInspector.Drawer.prototype._statusBarDragging): (WebInspector.Drawer.prototype._endStatusBarDragging): * inspector/front-end/EventListenersSidebarPane.js: (WebInspector.EventListenersSidebarPane.get if): * inspector/front-end/HelpScreen.js: (WebInspector.HelpScreen.prototype._onKeyDown): * inspector/front-end/InspectorView.js: (WebInspector.InspectorView.prototype._keyDown): * inspector/front-end/MetricsSidebarPane.js: (WebInspector.MetricsSidebarPane.prototype._highlightDOMNode): * inspector/front-end/NetworkPanel.js: * inspector/front-end/Object.js: (WebInspector.Event.prototype.preventDefault): (WebInspector.Event.prototype.consume): * inspector/front-end/ObjectPropertiesSection.js: (WebInspector.ObjectPropertyTreeElement.prototype._promptKeyDown): * inspector/front-end/ProfileView.js: * inspector/front-end/SearchController.js: (WebInspector.SearchController.prototype._onKeyDown): * inspector/front-end/Section.js: (WebInspector.Section.prototype.handleClick): * inspector/front-end/Settings.js: (WebInspector.ExperimentsSettings): * inspector/front-end/SoftContextMenu.js: (.WebInspector.SoftContextMenu.prototype.show): (.WebInspector.SoftContextMenu.prototype._menuItemMouseDown): (.WebInspector.SoftContextMenu.prototype._menuKeyDown): (.WebInspector.SoftContextMenu.prototype._discardMenu): * inspector/front-end/Spectrum.js: (WebInspector.Spectrum.draggable.consume): (WebInspector.Spectrum.draggable.start): (WebInspector.Spectrum.draggable.stop): (WebInspector.Spectrum.draggable): (WebInspector.Spectrum.prototype._onKeyDown): * inspector/front-end/StylesSidebarPane.js: (WebInspector.StylesSidebarPane.muteEventListener): (WebInspector.StylesSidebarPane): (WebInspector.StylesSidebarPane.prototype.set _createNewRule): (WebInspector.StylesSidebarPane.prototype._toggleElementStatePane): (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick): (WebInspector.StylePropertiesSection.prototype._handleSelectorClick): (WebInspector.StylePropertyTreeElement.prototype.updateTitle.): (WebInspector.StylePropertyTreeElement.prototype): * inspector/front-end/TextPrompt.js: (WebInspector.TextPrompt.prototype.onKeyDown): (WebInspector.TextPromptWithHistory.prototype.defaultKeyHandler): (WebInspector.TextPrompt.SuggestBox.prototype._onItemMouseDown): * inspector/front-end/TextViewer.js: (WebInspector.TextViewer.prototype._handleKeyDown): * inspector/front-end/Toolbar.js: (WebInspector.ToolbarDropdown.prototype._onKeyDown): * inspector/front-end/UIUtils.js: (WebInspector.isBeingEdited): (WebInspector.startEditing): * inspector/front-end/View.js: (WebInspector.View.prototype._doLoadCSS): * inspector/front-end/WatchExpressionsSidebarPane.js: (WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked): (WebInspector.WatchExpressionsSidebarPane.prototype._refreshButtonClicked): * inspector/front-end/inspector.js: (WebInspector.documentClick.followLink): (WebInspector.documentClick): (WebInspector.documentKeyDown): (WebInspector.postDocumentKeyDown): (WebInspector.addMainEventListeners): * inspector/front-end/treeoutline.js: (TreeOutline.prototype._treeKeyPress): (TreeOutline.prototype._treeKeyDown): (TreeOutline.prototype._searchInputKeyDown): (TreeElement.treeElementToggled): (TreeElement.prototype.selectOnMouseDown): * inspector/front-end/utilities.js: (Event.prototype.consume): 2012-03-21 Yury Semikhatsky Web Inspector: event listener section doesn't show all event listeners of the element ancestors https://bugs.webkit.org/show_bug.cgi?id=81782 Event listeners section now contains all event listeners for the selected element ancestors chain (in case option "All Nodes" is selected). Reviewed by Pavel Feldman. * inspector/InspectorDOMAgent.cpp: (WebCore::InspectorDOMAgent::getEventListenersForNode): * inspector/front-end/EventListenersSidebarPane.js: (WebInspector.EventListenersSidebarPane.prototype.update.callback): (WebInspector.EventListenersSidebarPane.prototype.update): (WebInspector.EventListenersSidebarPane.prototype): 2012-03-21 Ilya Tikhonovsky Web Inspector: HeapSnapshot: move all builders and calculation calls to HeapSnapshot._init function. https://bugs.webkit.org/show_bug.cgi?id=81784 Reviewed by Yury Semikhatsky. * inspector/front-end/HeapSnapshot.js: (WebInspector.HeapSnapshot.prototype._init): (WebInspector.HeapSnapshot.prototype.dispose): (WebInspector.HeapSnapshot.prototype._retainersForNode): (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode): (WebInspector.HeapSnapshot.prototype._flagsOfNode): (WebInspector.HeapSnapshot.prototype.aggregates): (WebInspector.HeapSnapshot.prototype._buildRetainers): (WebInspector.HeapSnapshot.prototype.get nodeIndexes): 2012-03-21 Jessie Berlin WTF headers should be in $(ConfigurationBuildDir)\include\private\wtf, not $(ConfigurationBuildDir)\include\private\JavaScriptCore\wtf. https://bugs.webkit.org/show_bug.cgi?id=81739 Reviewed by Dan Bernstein. * WebCore.vcproj/WebCore.vcproj: Look for AtomicString.cpp, StringBuilder.cpp, StringImpl.cpp, and WTFString.cpp in the wtf subdirectory of the build output, not the JavaScriptCore/wtf subdirectory. 2012-03-21 Jonathan Dong [BlackBerry] Credential save and autofill implemetation https://bugs.webkit.org/show_bug.cgi?id=80401 Reviewed by Rob Buis. Added interface function authenticationChallenge() and notifyShouldSaveCredential() into PageClientBlackBerry. As this class is our platform specific interface, by doing this we don't need to add an interface function in class FrameLoaderClient which is a platform independent interface. No new tests. * platform/blackberry/PageClientBlackBerry.h: (WebCore): * platform/network/blackberry/NetworkJob.cpp: (WebCore::NetworkJob::sendRequestWithCredentials): 2012-03-21 Ilya Tikhonovsky Web Inspector: HeapProfiler: DOM node id can overflow Int32. https://bugs.webkit.org/show_bug.cgi?id=81776 Reviewed by Pavel Feldman. * inspector/front-end/HeapSnapshot.js: (WebInspector.Uint32Array): (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk): (WebInspector.HeapSnapshot.prototype._buildReverseIndex.var): (WebInspector.HeapSnapshot.prototype._buildReverseIndex): (WebInspector.HeapSnapshot.prototype._buildNodeIndex): 2012-03-21 Tim Dresser [chromium] Increase size of Combo Box Options for touch and high DPI devices https://bugs.webkit.org/show_bug.cgi?id=80027 Reviewed by Darin Fisher. Scale Combo box popups by defaultDeviceScaleFactor, and add padding to